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 expr(&self) -> Option<Expr> {
1003        support::child(&self.syntax)
1004    }
1005    #[inline]
1006    pub fn name_ref(&self) -> Option<NameRef> {
1007        support::child(&self.syntax)
1008    }
1009    #[inline]
1010    pub fn on_table(&self) -> Option<OnTable> {
1011        support::child(&self.syntax)
1012    }
1013    #[inline]
1014    pub fn rename_to(&self) -> Option<RenameTo> {
1015        support::child(&self.syntax)
1016    }
1017    #[inline]
1018    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1019        support::child(&self.syntax)
1020    }
1021    #[inline]
1022    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1023        support::token(&self.syntax, SyntaxKind::L_PAREN)
1024    }
1025    #[inline]
1026    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1027        support::token(&self.syntax, SyntaxKind::R_PAREN)
1028    }
1029    #[inline]
1030    pub fn alter_token(&self) -> Option<SyntaxToken> {
1031        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1032    }
1033    #[inline]
1034    pub fn check_token(&self) -> Option<SyntaxToken> {
1035        support::token(&self.syntax, SyntaxKind::CHECK_KW)
1036    }
1037    #[inline]
1038    pub fn policy_token(&self) -> Option<SyntaxToken> {
1039        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1040    }
1041    #[inline]
1042    pub fn to_token(&self) -> Option<SyntaxToken> {
1043        support::token(&self.syntax, SyntaxKind::TO_KW)
1044    }
1045    #[inline]
1046    pub fn using_token(&self) -> Option<SyntaxToken> {
1047        support::token(&self.syntax, SyntaxKind::USING_KW)
1048    }
1049    #[inline]
1050    pub fn with_token(&self) -> Option<SyntaxToken> {
1051        support::token(&self.syntax, SyntaxKind::WITH_KW)
1052    }
1053}
1054
1055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1056pub struct AlterProcedure {
1057    pub(crate) syntax: SyntaxNode,
1058}
1059impl AlterProcedure {
1060    #[inline]
1061    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1062        support::child(&self.syntax)
1063    }
1064    #[inline]
1065    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1066        support::child(&self.syntax)
1067    }
1068    #[inline]
1069    pub fn function_sig(&self) -> Option<FunctionSig> {
1070        support::child(&self.syntax)
1071    }
1072    #[inline]
1073    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1074        support::child(&self.syntax)
1075    }
1076    #[inline]
1077    pub fn owner_to(&self) -> Option<OwnerTo> {
1078        support::child(&self.syntax)
1079    }
1080    #[inline]
1081    pub fn rename_to(&self) -> Option<RenameTo> {
1082        support::child(&self.syntax)
1083    }
1084    #[inline]
1085    pub fn set_schema(&self) -> Option<SetSchema> {
1086        support::child(&self.syntax)
1087    }
1088    #[inline]
1089    pub fn alter_token(&self) -> Option<SyntaxToken> {
1090        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1091    }
1092    #[inline]
1093    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1094        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1095    }
1096    #[inline]
1097    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1098        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1099    }
1100}
1101
1102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1103pub struct AlterPublication {
1104    pub(crate) syntax: SyntaxNode,
1105}
1106impl AlterPublication {
1107    #[inline]
1108    pub fn name_ref(&self) -> Option<NameRef> {
1109        support::child(&self.syntax)
1110    }
1111    #[inline]
1112    pub fn alter_token(&self) -> Option<SyntaxToken> {
1113        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1114    }
1115    #[inline]
1116    pub fn publication_token(&self) -> Option<SyntaxToken> {
1117        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1118    }
1119}
1120
1121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1122pub struct AlterRole {
1123    pub(crate) syntax: SyntaxNode,
1124}
1125impl AlterRole {
1126    #[inline]
1127    pub fn role_ref(&self) -> Option<RoleRef> {
1128        support::child(&self.syntax)
1129    }
1130    #[inline]
1131    pub fn alter_token(&self) -> Option<SyntaxToken> {
1132        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1133    }
1134    #[inline]
1135    pub fn role_token(&self) -> Option<SyntaxToken> {
1136        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1137    }
1138}
1139
1140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1141pub struct AlterRoutine {
1142    pub(crate) syntax: SyntaxNode,
1143}
1144impl AlterRoutine {
1145    #[inline]
1146    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1147        support::child(&self.syntax)
1148    }
1149    #[inline]
1150    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1151        support::child(&self.syntax)
1152    }
1153    #[inline]
1154    pub fn function_sig(&self) -> Option<FunctionSig> {
1155        support::child(&self.syntax)
1156    }
1157    #[inline]
1158    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1159        support::child(&self.syntax)
1160    }
1161    #[inline]
1162    pub fn owner_to(&self) -> Option<OwnerTo> {
1163        support::child(&self.syntax)
1164    }
1165    #[inline]
1166    pub fn rename_to(&self) -> Option<RenameTo> {
1167        support::child(&self.syntax)
1168    }
1169    #[inline]
1170    pub fn set_schema(&self) -> Option<SetSchema> {
1171        support::child(&self.syntax)
1172    }
1173    #[inline]
1174    pub fn alter_token(&self) -> Option<SyntaxToken> {
1175        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1176    }
1177    #[inline]
1178    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1179        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1180    }
1181    #[inline]
1182    pub fn routine_token(&self) -> Option<SyntaxToken> {
1183        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1184    }
1185}
1186
1187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1188pub struct AlterRule {
1189    pub(crate) syntax: SyntaxNode,
1190}
1191impl AlterRule {
1192    #[inline]
1193    pub fn name_ref(&self) -> Option<NameRef> {
1194        support::child(&self.syntax)
1195    }
1196    #[inline]
1197    pub fn on_table(&self) -> Option<OnTable> {
1198        support::child(&self.syntax)
1199    }
1200    #[inline]
1201    pub fn rename_to(&self) -> Option<RenameTo> {
1202        support::child(&self.syntax)
1203    }
1204    #[inline]
1205    pub fn alter_token(&self) -> Option<SyntaxToken> {
1206        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1207    }
1208    #[inline]
1209    pub fn on_token(&self) -> Option<SyntaxToken> {
1210        support::token(&self.syntax, SyntaxKind::ON_KW)
1211    }
1212    #[inline]
1213    pub fn rule_token(&self) -> Option<SyntaxToken> {
1214        support::token(&self.syntax, SyntaxKind::RULE_KW)
1215    }
1216}
1217
1218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1219pub struct AlterSchema {
1220    pub(crate) syntax: SyntaxNode,
1221}
1222impl AlterSchema {
1223    #[inline]
1224    pub fn name_ref(&self) -> Option<NameRef> {
1225        support::child(&self.syntax)
1226    }
1227    #[inline]
1228    pub fn owner_to(&self) -> Option<OwnerTo> {
1229        support::child(&self.syntax)
1230    }
1231    #[inline]
1232    pub fn rename_to(&self) -> Option<RenameTo> {
1233        support::child(&self.syntax)
1234    }
1235    #[inline]
1236    pub fn alter_token(&self) -> Option<SyntaxToken> {
1237        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1238    }
1239    #[inline]
1240    pub fn schema_token(&self) -> Option<SyntaxToken> {
1241        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1242    }
1243}
1244
1245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1246pub struct AlterSequence {
1247    pub(crate) syntax: SyntaxNode,
1248}
1249impl AlterSequence {
1250    #[inline]
1251    pub fn if_exists(&self) -> Option<IfExists> {
1252        support::child(&self.syntax)
1253    }
1254    #[inline]
1255    pub fn path(&self) -> Option<Path> {
1256        support::child(&self.syntax)
1257    }
1258    #[inline]
1259    pub fn alter_token(&self) -> Option<SyntaxToken> {
1260        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1261    }
1262    #[inline]
1263    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1264        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1265    }
1266}
1267
1268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1269pub struct AlterServer {
1270    pub(crate) syntax: SyntaxNode,
1271}
1272impl AlterServer {
1273    #[inline]
1274    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1275        support::child(&self.syntax)
1276    }
1277    #[inline]
1278    pub fn name_ref(&self) -> Option<NameRef> {
1279        support::child(&self.syntax)
1280    }
1281    #[inline]
1282    pub fn alter_token(&self) -> Option<SyntaxToken> {
1283        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1284    }
1285    #[inline]
1286    pub fn server_token(&self) -> Option<SyntaxToken> {
1287        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1288    }
1289}
1290
1291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1292pub struct AlterSetStatistics {
1293    pub(crate) syntax: SyntaxNode,
1294}
1295impl AlterSetStatistics {
1296    #[inline]
1297    pub fn literal(&self) -> Option<Literal> {
1298        support::child(&self.syntax)
1299    }
1300    #[inline]
1301    pub fn name_ref(&self) -> Option<NameRef> {
1302        support::child(&self.syntax)
1303    }
1304    #[inline]
1305    pub fn column_token(&self) -> Option<SyntaxToken> {
1306        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1307    }
1308    #[inline]
1309    pub fn set_token(&self) -> Option<SyntaxToken> {
1310        support::token(&self.syntax, SyntaxKind::SET_KW)
1311    }
1312    #[inline]
1313    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1314        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1315    }
1316}
1317
1318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1319pub struct AlterStatistics {
1320    pub(crate) syntax: SyntaxNode,
1321}
1322impl AlterStatistics {
1323    #[inline]
1324    pub fn path(&self) -> Option<Path> {
1325        support::child(&self.syntax)
1326    }
1327    #[inline]
1328    pub fn alter_token(&self) -> Option<SyntaxToken> {
1329        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1330    }
1331    #[inline]
1332    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1333        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1334    }
1335}
1336
1337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1338pub struct AlterSubscription {
1339    pub(crate) syntax: SyntaxNode,
1340}
1341impl AlterSubscription {
1342    #[inline]
1343    pub fn name_ref(&self) -> Option<NameRef> {
1344        support::child(&self.syntax)
1345    }
1346    #[inline]
1347    pub fn alter_token(&self) -> Option<SyntaxToken> {
1348        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1349    }
1350    #[inline]
1351    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1352        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1353    }
1354}
1355
1356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1357pub struct AlterSystem {
1358    pub(crate) syntax: SyntaxNode,
1359}
1360impl AlterSystem {
1361    #[inline]
1362    pub fn alter_token(&self) -> Option<SyntaxToken> {
1363        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1364    }
1365    #[inline]
1366    pub fn set_token(&self) -> Option<SyntaxToken> {
1367        support::token(&self.syntax, SyntaxKind::SET_KW)
1368    }
1369    #[inline]
1370    pub fn system_token(&self) -> Option<SyntaxToken> {
1371        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1372    }
1373}
1374
1375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1376pub struct AlterTable {
1377    pub(crate) syntax: SyntaxNode,
1378}
1379impl AlterTable {
1380    #[inline]
1381    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1382        support::children(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn relation_name(&self) -> Option<RelationName> {
1386        support::child(&self.syntax)
1387    }
1388    #[inline]
1389    pub fn alter_token(&self) -> Option<SyntaxToken> {
1390        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1391    }
1392    #[inline]
1393    pub fn table_token(&self) -> Option<SyntaxToken> {
1394        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1395    }
1396}
1397
1398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1399pub struct AlterTablespace {
1400    pub(crate) syntax: SyntaxNode,
1401}
1402impl AlterTablespace {
1403    #[inline]
1404    pub fn owner_to(&self) -> Option<OwnerTo> {
1405        support::child(&self.syntax)
1406    }
1407    #[inline]
1408    pub fn path(&self) -> Option<Path> {
1409        support::child(&self.syntax)
1410    }
1411    #[inline]
1412    pub fn rename_to(&self) -> Option<RenameTo> {
1413        support::child(&self.syntax)
1414    }
1415    #[inline]
1416    pub fn reset_options(&self) -> Option<ResetOptions> {
1417        support::child(&self.syntax)
1418    }
1419    #[inline]
1420    pub fn set_options(&self) -> Option<SetOptions> {
1421        support::child(&self.syntax)
1422    }
1423    #[inline]
1424    pub fn alter_token(&self) -> Option<SyntaxToken> {
1425        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1426    }
1427    #[inline]
1428    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1429        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1430    }
1431}
1432
1433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1434pub struct AlterTextSearchConfiguration {
1435    pub(crate) syntax: SyntaxNode,
1436}
1437impl AlterTextSearchConfiguration {
1438    #[inline]
1439    pub fn owner_to(&self) -> Option<OwnerTo> {
1440        support::child(&self.syntax)
1441    }
1442    #[inline]
1443    pub fn path(&self) -> Option<Path> {
1444        support::child(&self.syntax)
1445    }
1446    #[inline]
1447    pub fn rename_to(&self) -> Option<RenameTo> {
1448        support::child(&self.syntax)
1449    }
1450    #[inline]
1451    pub fn set_schema(&self) -> Option<SetSchema> {
1452        support::child(&self.syntax)
1453    }
1454    #[inline]
1455    pub fn alter_token(&self) -> Option<SyntaxToken> {
1456        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1457    }
1458    #[inline]
1459    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1460        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1461    }
1462    #[inline]
1463    pub fn search_token(&self) -> Option<SyntaxToken> {
1464        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1465    }
1466    #[inline]
1467    pub fn text_token(&self) -> Option<SyntaxToken> {
1468        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1469    }
1470}
1471
1472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1473pub struct AlterTextSearchDictionary {
1474    pub(crate) syntax: SyntaxNode,
1475}
1476impl AlterTextSearchDictionary {
1477    #[inline]
1478    pub fn attribute_list(&self) -> Option<AttributeList> {
1479        support::child(&self.syntax)
1480    }
1481    #[inline]
1482    pub fn owner_to(&self) -> Option<OwnerTo> {
1483        support::child(&self.syntax)
1484    }
1485    #[inline]
1486    pub fn path(&self) -> Option<Path> {
1487        support::child(&self.syntax)
1488    }
1489    #[inline]
1490    pub fn rename_to(&self) -> Option<RenameTo> {
1491        support::child(&self.syntax)
1492    }
1493    #[inline]
1494    pub fn set_schema(&self) -> Option<SetSchema> {
1495        support::child(&self.syntax)
1496    }
1497    #[inline]
1498    pub fn alter_token(&self) -> Option<SyntaxToken> {
1499        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1500    }
1501    #[inline]
1502    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1503        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1504    }
1505    #[inline]
1506    pub fn search_token(&self) -> Option<SyntaxToken> {
1507        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1508    }
1509    #[inline]
1510    pub fn text_token(&self) -> Option<SyntaxToken> {
1511        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1512    }
1513}
1514
1515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1516pub struct AlterTextSearchParser {
1517    pub(crate) syntax: SyntaxNode,
1518}
1519impl AlterTextSearchParser {
1520    #[inline]
1521    pub fn path(&self) -> Option<Path> {
1522        support::child(&self.syntax)
1523    }
1524    #[inline]
1525    pub fn rename_to(&self) -> Option<RenameTo> {
1526        support::child(&self.syntax)
1527    }
1528    #[inline]
1529    pub fn set_schema(&self) -> Option<SetSchema> {
1530        support::child(&self.syntax)
1531    }
1532    #[inline]
1533    pub fn alter_token(&self) -> Option<SyntaxToken> {
1534        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1535    }
1536    #[inline]
1537    pub fn parser_token(&self) -> Option<SyntaxToken> {
1538        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1539    }
1540    #[inline]
1541    pub fn search_token(&self) -> Option<SyntaxToken> {
1542        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1543    }
1544    #[inline]
1545    pub fn text_token(&self) -> Option<SyntaxToken> {
1546        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1547    }
1548}
1549
1550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1551pub struct AlterTextSearchTemplate {
1552    pub(crate) syntax: SyntaxNode,
1553}
1554impl AlterTextSearchTemplate {
1555    #[inline]
1556    pub fn path(&self) -> Option<Path> {
1557        support::child(&self.syntax)
1558    }
1559    #[inline]
1560    pub fn rename_to(&self) -> Option<RenameTo> {
1561        support::child(&self.syntax)
1562    }
1563    #[inline]
1564    pub fn set_schema(&self) -> Option<SetSchema> {
1565        support::child(&self.syntax)
1566    }
1567    #[inline]
1568    pub fn alter_token(&self) -> Option<SyntaxToken> {
1569        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1570    }
1571    #[inline]
1572    pub fn search_token(&self) -> Option<SyntaxToken> {
1573        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1574    }
1575    #[inline]
1576    pub fn template_token(&self) -> Option<SyntaxToken> {
1577        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1578    }
1579    #[inline]
1580    pub fn text_token(&self) -> Option<SyntaxToken> {
1581        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1582    }
1583}
1584
1585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1586pub struct AlterTrigger {
1587    pub(crate) syntax: SyntaxNode,
1588}
1589impl AlterTrigger {
1590    #[inline]
1591    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1592        support::child(&self.syntax)
1593    }
1594    #[inline]
1595    pub fn name_ref(&self) -> Option<NameRef> {
1596        support::child(&self.syntax)
1597    }
1598    #[inline]
1599    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1600        support::child(&self.syntax)
1601    }
1602    #[inline]
1603    pub fn on_table(&self) -> Option<OnTable> {
1604        support::child(&self.syntax)
1605    }
1606    #[inline]
1607    pub fn rename_to(&self) -> Option<RenameTo> {
1608        support::child(&self.syntax)
1609    }
1610    #[inline]
1611    pub fn alter_token(&self) -> Option<SyntaxToken> {
1612        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1613    }
1614    #[inline]
1615    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1616        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1617    }
1618}
1619
1620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1621pub struct AlterType {
1622    pub(crate) syntax: SyntaxNode,
1623}
1624impl AlterType {
1625    #[inline]
1626    pub fn path(&self) -> Option<Path> {
1627        support::child(&self.syntax)
1628    }
1629    #[inline]
1630    pub fn alter_token(&self) -> Option<SyntaxToken> {
1631        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1632    }
1633    #[inline]
1634    pub fn type_token(&self) -> Option<SyntaxToken> {
1635        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1636    }
1637}
1638
1639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1640pub struct AlterUser {
1641    pub(crate) syntax: SyntaxNode,
1642}
1643impl AlterUser {
1644    #[inline]
1645    pub fn role_ref(&self) -> Option<RoleRef> {
1646        support::child(&self.syntax)
1647    }
1648    #[inline]
1649    pub fn alter_token(&self) -> Option<SyntaxToken> {
1650        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1651    }
1652    #[inline]
1653    pub fn user_token(&self) -> Option<SyntaxToken> {
1654        support::token(&self.syntax, SyntaxKind::USER_KW)
1655    }
1656}
1657
1658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1659pub struct AlterUserMapping {
1660    pub(crate) syntax: SyntaxNode,
1661}
1662impl AlterUserMapping {
1663    #[inline]
1664    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1665        support::child(&self.syntax)
1666    }
1667    #[inline]
1668    pub fn role_ref(&self) -> Option<RoleRef> {
1669        support::child(&self.syntax)
1670    }
1671    #[inline]
1672    pub fn server_name(&self) -> Option<ServerName> {
1673        support::child(&self.syntax)
1674    }
1675    #[inline]
1676    pub fn alter_token(&self) -> Option<SyntaxToken> {
1677        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1678    }
1679    #[inline]
1680    pub fn for_token(&self) -> Option<SyntaxToken> {
1681        support::token(&self.syntax, SyntaxKind::FOR_KW)
1682    }
1683    #[inline]
1684    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1685        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1686    }
1687    #[inline]
1688    pub fn user_token(&self) -> Option<SyntaxToken> {
1689        support::token(&self.syntax, SyntaxKind::USER_KW)
1690    }
1691}
1692
1693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1694pub struct AlterView {
1695    pub(crate) syntax: SyntaxNode,
1696}
1697impl AlterView {
1698    #[inline]
1699    pub fn path(&self) -> Option<Path> {
1700        support::child(&self.syntax)
1701    }
1702    #[inline]
1703    pub fn alter_token(&self) -> Option<SyntaxToken> {
1704        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1705    }
1706    #[inline]
1707    pub fn view_token(&self) -> Option<SyntaxToken> {
1708        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1709    }
1710}
1711
1712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1713pub struct Analyze {
1714    pub(crate) syntax: SyntaxNode,
1715}
1716impl Analyze {
1717    #[inline]
1718    pub fn option_item_list(&self) -> Option<OptionItemList> {
1719        support::child(&self.syntax)
1720    }
1721    #[inline]
1722    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
1723        support::child(&self.syntax)
1724    }
1725    #[inline]
1726    pub fn analyse_token(&self) -> Option<SyntaxToken> {
1727        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
1728    }
1729    #[inline]
1730    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1731        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1732    }
1733    #[inline]
1734    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1735        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1736    }
1737}
1738
1739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1740pub struct AnyFn {
1741    pub(crate) syntax: SyntaxNode,
1742}
1743impl AnyFn {
1744    #[inline]
1745    pub fn expr(&self) -> Option<Expr> {
1746        support::child(&self.syntax)
1747    }
1748    #[inline]
1749    pub fn select_variant(&self) -> Option<SelectVariant> {
1750        support::child(&self.syntax)
1751    }
1752    #[inline]
1753    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1754        support::token(&self.syntax, SyntaxKind::L_PAREN)
1755    }
1756    #[inline]
1757    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1758        support::token(&self.syntax, SyntaxKind::R_PAREN)
1759    }
1760    #[inline]
1761    pub fn any_token(&self) -> Option<SyntaxToken> {
1762        support::token(&self.syntax, SyntaxKind::ANY_KW)
1763    }
1764}
1765
1766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1767pub struct Arg {
1768    pub(crate) syntax: SyntaxNode,
1769}
1770impl Arg {
1771    #[inline]
1772    pub fn expr(&self) -> Option<Expr> {
1773        support::child(&self.syntax)
1774    }
1775}
1776
1777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1778pub struct ArgList {
1779    pub(crate) syntax: SyntaxNode,
1780}
1781impl ArgList {
1782    #[inline]
1783    pub fn args(&self) -> AstChildren<Expr> {
1784        support::children(&self.syntax)
1785    }
1786    #[inline]
1787    pub fn expr(&self) -> Option<Expr> {
1788        support::child(&self.syntax)
1789    }
1790    #[inline]
1791    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1792        support::token(&self.syntax, SyntaxKind::L_PAREN)
1793    }
1794    #[inline]
1795    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1796        support::token(&self.syntax, SyntaxKind::R_PAREN)
1797    }
1798    #[inline]
1799    pub fn star_token(&self) -> Option<SyntaxToken> {
1800        support::token(&self.syntax, SyntaxKind::STAR)
1801    }
1802    #[inline]
1803    pub fn all_token(&self) -> Option<SyntaxToken> {
1804        support::token(&self.syntax, SyntaxKind::ALL_KW)
1805    }
1806    #[inline]
1807    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1809    }
1810    #[inline]
1811    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1813    }
1814}
1815
1816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1817pub struct ArrayExpr {
1818    pub(crate) syntax: SyntaxNode,
1819}
1820impl ArrayExpr {
1821    #[inline]
1822    pub fn exprs(&self) -> AstChildren<Expr> {
1823        support::children(&self.syntax)
1824    }
1825    #[inline]
1826    pub fn select(&self) -> Option<Select> {
1827        support::child(&self.syntax)
1828    }
1829    #[inline]
1830    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1831        support::token(&self.syntax, SyntaxKind::L_PAREN)
1832    }
1833    #[inline]
1834    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1835        support::token(&self.syntax, SyntaxKind::R_PAREN)
1836    }
1837    #[inline]
1838    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1839        support::token(&self.syntax, SyntaxKind::L_BRACK)
1840    }
1841    #[inline]
1842    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1843        support::token(&self.syntax, SyntaxKind::R_BRACK)
1844    }
1845    #[inline]
1846    pub fn array_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1848    }
1849}
1850
1851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1852pub struct ArrayType {
1853    pub(crate) syntax: SyntaxNode,
1854}
1855impl ArrayType {
1856    #[inline]
1857    pub fn expr(&self) -> Option<Expr> {
1858        support::child(&self.syntax)
1859    }
1860    #[inline]
1861    pub fn name_ref(&self) -> Option<NameRef> {
1862        support::child(&self.syntax)
1863    }
1864    #[inline]
1865    pub fn ty(&self) -> Option<Type> {
1866        support::child(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1870        support::token(&self.syntax, SyntaxKind::L_BRACK)
1871    }
1872    #[inline]
1873    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1874        support::token(&self.syntax, SyntaxKind::R_BRACK)
1875    }
1876    #[inline]
1877    pub fn array_token(&self) -> Option<SyntaxToken> {
1878        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1879    }
1880}
1881
1882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1883pub struct AsFuncOption {
1884    pub(crate) syntax: SyntaxNode,
1885}
1886impl AsFuncOption {
1887    #[inline]
1888    pub fn definition(&self) -> Option<Literal> {
1889        support::child(&self.syntax)
1890    }
1891    #[inline]
1892    pub fn link_symbol(&self) -> Option<Literal> {
1893        support::child(&self.syntax)
1894    }
1895    #[inline]
1896    pub fn obj_file(&self) -> Option<Literal> {
1897        support::child(&self.syntax)
1898    }
1899    #[inline]
1900    pub fn comma_token(&self) -> Option<SyntaxToken> {
1901        support::token(&self.syntax, SyntaxKind::COMMA)
1902    }
1903    #[inline]
1904    pub fn as_token(&self) -> Option<SyntaxToken> {
1905        support::token(&self.syntax, SyntaxKind::AS_KW)
1906    }
1907}
1908
1909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1910pub struct AsName {
1911    pub(crate) syntax: SyntaxNode,
1912}
1913impl AsName {
1914    #[inline]
1915    pub fn name(&self) -> Option<Name> {
1916        support::child(&self.syntax)
1917    }
1918    #[inline]
1919    pub fn as_token(&self) -> Option<SyntaxToken> {
1920        support::token(&self.syntax, SyntaxKind::AS_KW)
1921    }
1922}
1923
1924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1925pub struct AtTimeZone {
1926    pub(crate) syntax: SyntaxNode,
1927}
1928impl AtTimeZone {
1929    #[inline]
1930    pub fn at_token(&self) -> Option<SyntaxToken> {
1931        support::token(&self.syntax, SyntaxKind::AT_KW)
1932    }
1933    #[inline]
1934    pub fn time_token(&self) -> Option<SyntaxToken> {
1935        support::token(&self.syntax, SyntaxKind::TIME_KW)
1936    }
1937    #[inline]
1938    pub fn zone_token(&self) -> Option<SyntaxToken> {
1939        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1940    }
1941}
1942
1943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1944pub struct AttachPartition {
1945    pub(crate) syntax: SyntaxNode,
1946}
1947impl AttachPartition {
1948    #[inline]
1949    pub fn partition_type(&self) -> Option<PartitionType> {
1950        support::child(&self.syntax)
1951    }
1952    #[inline]
1953    pub fn path(&self) -> Option<Path> {
1954        support::child(&self.syntax)
1955    }
1956    #[inline]
1957    pub fn attach_token(&self) -> Option<SyntaxToken> {
1958        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1959    }
1960    #[inline]
1961    pub fn partition_token(&self) -> Option<SyntaxToken> {
1962        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1963    }
1964}
1965
1966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1967pub struct AttributeList {
1968    pub(crate) syntax: SyntaxNode,
1969}
1970impl AttributeList {
1971    #[inline]
1972    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1973        support::children(&self.syntax)
1974    }
1975    #[inline]
1976    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1977        support::token(&self.syntax, SyntaxKind::L_PAREN)
1978    }
1979    #[inline]
1980    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1981        support::token(&self.syntax, SyntaxKind::R_PAREN)
1982    }
1983}
1984
1985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1986pub struct AttributeOption {
1987    pub(crate) syntax: SyntaxNode,
1988}
1989impl AttributeOption {
1990    #[inline]
1991    pub fn attribute_value(&self) -> Option<AttributeValue> {
1992        support::child(&self.syntax)
1993    }
1994    #[inline]
1995    pub fn name(&self) -> Option<Name> {
1996        support::child(&self.syntax)
1997    }
1998    #[inline]
1999    pub fn dot_token(&self) -> Option<SyntaxToken> {
2000        support::token(&self.syntax, SyntaxKind::DOT)
2001    }
2002    #[inline]
2003    pub fn eq_token(&self) -> Option<SyntaxToken> {
2004        support::token(&self.syntax, SyntaxKind::EQ)
2005    }
2006}
2007
2008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2009pub struct AttributeValue {
2010    pub(crate) syntax: SyntaxNode,
2011}
2012impl AttributeValue {
2013    #[inline]
2014    pub fn literal(&self) -> Option<Literal> {
2015        support::child(&self.syntax)
2016    }
2017    #[inline]
2018    pub fn op(&self) -> Option<Op> {
2019        support::child(&self.syntax)
2020    }
2021    #[inline]
2022    pub fn ty(&self) -> Option<Type> {
2023        support::child(&self.syntax)
2024    }
2025    #[inline]
2026    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2027        support::token(&self.syntax, SyntaxKind::L_PAREN)
2028    }
2029    #[inline]
2030    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2031        support::token(&self.syntax, SyntaxKind::R_PAREN)
2032    }
2033    #[inline]
2034    pub fn none_token(&self) -> Option<SyntaxToken> {
2035        support::token(&self.syntax, SyntaxKind::NONE_KW)
2036    }
2037    #[inline]
2038    pub fn operator_token(&self) -> Option<SyntaxToken> {
2039        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2040    }
2041}
2042
2043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2044pub struct Begin {
2045    pub(crate) syntax: SyntaxNode,
2046}
2047impl Begin {
2048    #[inline]
2049    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2050        support::child(&self.syntax)
2051    }
2052    #[inline]
2053    pub fn begin_token(&self) -> Option<SyntaxToken> {
2054        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2055    }
2056    #[inline]
2057    pub fn start_token(&self) -> Option<SyntaxToken> {
2058        support::token(&self.syntax, SyntaxKind::START_KW)
2059    }
2060    #[inline]
2061    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2062        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2063    }
2064    #[inline]
2065    pub fn work_token(&self) -> Option<SyntaxToken> {
2066        support::token(&self.syntax, SyntaxKind::WORK_KW)
2067    }
2068}
2069
2070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2071pub struct BeginFuncOption {
2072    pub(crate) syntax: SyntaxNode,
2073}
2074impl BeginFuncOption {
2075    #[inline]
2076    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2077        support::child(&self.syntax)
2078    }
2079    #[inline]
2080    pub fn stmt(&self) -> Option<Stmt> {
2081        support::child(&self.syntax)
2082    }
2083    #[inline]
2084    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2085        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2086    }
2087}
2088
2089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2090pub struct BeginFuncOptionList {
2091    pub(crate) syntax: SyntaxNode,
2092}
2093impl BeginFuncOptionList {
2094    #[inline]
2095    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2096        support::children(&self.syntax)
2097    }
2098    #[inline]
2099    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2100        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2101    }
2102    #[inline]
2103    pub fn begin_token(&self) -> Option<SyntaxToken> {
2104        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2105    }
2106    #[inline]
2107    pub fn end_token(&self) -> Option<SyntaxToken> {
2108        support::token(&self.syntax, SyntaxKind::END_KW)
2109    }
2110}
2111
2112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2113pub struct BetweenExpr {
2114    pub(crate) syntax: SyntaxNode,
2115}
2116impl BetweenExpr {
2117    #[inline]
2118    pub fn and_token(&self) -> Option<SyntaxToken> {
2119        support::token(&self.syntax, SyntaxKind::AND_KW)
2120    }
2121    #[inline]
2122    pub fn between_token(&self) -> Option<SyntaxToken> {
2123        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2124    }
2125}
2126
2127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2128pub struct BinExpr {
2129    pub(crate) syntax: SyntaxNode,
2130}
2131impl BinExpr {
2132    #[inline]
2133    pub fn op(&self) -> Option<Op> {
2134        support::child(&self.syntax)
2135    }
2136}
2137
2138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2139pub struct BitType {
2140    pub(crate) syntax: SyntaxNode,
2141}
2142impl BitType {
2143    #[inline]
2144    pub fn arg_list(&self) -> Option<ArgList> {
2145        support::child(&self.syntax)
2146    }
2147    #[inline]
2148    pub fn bit_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::BIT_KW)
2150    }
2151    #[inline]
2152    pub fn varying_token(&self) -> Option<SyntaxToken> {
2153        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2154    }
2155}
2156
2157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2158pub struct Call {
2159    pub(crate) syntax: SyntaxNode,
2160}
2161impl Call {
2162    #[inline]
2163    pub fn arg_list(&self) -> Option<ArgList> {
2164        support::child(&self.syntax)
2165    }
2166    #[inline]
2167    pub fn path(&self) -> Option<Path> {
2168        support::child(&self.syntax)
2169    }
2170    #[inline]
2171    pub fn call_token(&self) -> Option<SyntaxToken> {
2172        support::token(&self.syntax, SyntaxKind::CALL_KW)
2173    }
2174}
2175
2176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2177pub struct CallExpr {
2178    pub(crate) syntax: SyntaxNode,
2179}
2180impl CallExpr {
2181    #[inline]
2182    pub fn all_fn(&self) -> Option<AllFn> {
2183        support::child(&self.syntax)
2184    }
2185    #[inline]
2186    pub fn any_fn(&self) -> Option<AnyFn> {
2187        support::child(&self.syntax)
2188    }
2189    #[inline]
2190    pub fn arg_list(&self) -> Option<ArgList> {
2191        support::child(&self.syntax)
2192    }
2193    #[inline]
2194    pub fn exists_fn(&self) -> Option<ExistsFn> {
2195        support::child(&self.syntax)
2196    }
2197    #[inline]
2198    pub fn expr(&self) -> Option<Expr> {
2199        support::child(&self.syntax)
2200    }
2201    #[inline]
2202    pub fn extract_fn(&self) -> Option<ExtractFn> {
2203        support::child(&self.syntax)
2204    }
2205    #[inline]
2206    pub fn filter_clause(&self) -> Option<FilterClause> {
2207        support::child(&self.syntax)
2208    }
2209    #[inline]
2210    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2211        support::child(&self.syntax)
2212    }
2213    #[inline]
2214    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2215        support::child(&self.syntax)
2216    }
2217    #[inline]
2218    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2219        support::child(&self.syntax)
2220    }
2221    #[inline]
2222    pub fn json_fn(&self) -> Option<JsonFn> {
2223        support::child(&self.syntax)
2224    }
2225    #[inline]
2226    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2227        support::child(&self.syntax)
2228    }
2229    #[inline]
2230    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2231        support::child(&self.syntax)
2232    }
2233    #[inline]
2234    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2235        support::child(&self.syntax)
2236    }
2237    #[inline]
2238    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2239        support::child(&self.syntax)
2240    }
2241    #[inline]
2242    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2243        support::child(&self.syntax)
2244    }
2245    #[inline]
2246    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2247        support::child(&self.syntax)
2248    }
2249    #[inline]
2250    pub fn over_clause(&self) -> Option<OverClause> {
2251        support::child(&self.syntax)
2252    }
2253    #[inline]
2254    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2255        support::child(&self.syntax)
2256    }
2257    #[inline]
2258    pub fn position_fn(&self) -> Option<PositionFn> {
2259        support::child(&self.syntax)
2260    }
2261    #[inline]
2262    pub fn some_fn(&self) -> Option<SomeFn> {
2263        support::child(&self.syntax)
2264    }
2265    #[inline]
2266    pub fn substring_fn(&self) -> Option<SubstringFn> {
2267        support::child(&self.syntax)
2268    }
2269    #[inline]
2270    pub fn trim_fn(&self) -> Option<TrimFn> {
2271        support::child(&self.syntax)
2272    }
2273    #[inline]
2274    pub fn within_clause(&self) -> Option<WithinClause> {
2275        support::child(&self.syntax)
2276    }
2277    #[inline]
2278    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2279        support::child(&self.syntax)
2280    }
2281    #[inline]
2282    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2283        support::child(&self.syntax)
2284    }
2285    #[inline]
2286    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2287        support::child(&self.syntax)
2288    }
2289    #[inline]
2290    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2291        support::child(&self.syntax)
2292    }
2293    #[inline]
2294    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2295        support::child(&self.syntax)
2296    }
2297    #[inline]
2298    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2299        support::child(&self.syntax)
2300    }
2301    #[inline]
2302    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2303        support::child(&self.syntax)
2304    }
2305}
2306
2307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2308pub struct Cascade {
2309    pub(crate) syntax: SyntaxNode,
2310}
2311impl Cascade {
2312    #[inline]
2313    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2314        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2315    }
2316}
2317
2318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2319pub struct CaseExpr {
2320    pub(crate) syntax: SyntaxNode,
2321}
2322impl CaseExpr {
2323    #[inline]
2324    pub fn else_clause(&self) -> Option<ElseClause> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn expr(&self) -> Option<Expr> {
2329        support::child(&self.syntax)
2330    }
2331    #[inline]
2332    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2333        support::child(&self.syntax)
2334    }
2335    #[inline]
2336    pub fn case_token(&self) -> Option<SyntaxToken> {
2337        support::token(&self.syntax, SyntaxKind::CASE_KW)
2338    }
2339}
2340
2341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2342pub struct CastExpr {
2343    pub(crate) syntax: SyntaxNode,
2344}
2345impl CastExpr {
2346    #[inline]
2347    pub fn colon_colon(&self) -> Option<ColonColon> {
2348        support::child(&self.syntax)
2349    }
2350    #[inline]
2351    pub fn expr(&self) -> Option<Expr> {
2352        support::child(&self.syntax)
2353    }
2354    #[inline]
2355    pub fn literal(&self) -> Option<Literal> {
2356        support::child(&self.syntax)
2357    }
2358    #[inline]
2359    pub fn ty(&self) -> Option<Type> {
2360        support::child(&self.syntax)
2361    }
2362    #[inline]
2363    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::L_PAREN)
2365    }
2366    #[inline]
2367    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::R_PAREN)
2369    }
2370    #[inline]
2371    pub fn as_token(&self) -> Option<SyntaxToken> {
2372        support::token(&self.syntax, SyntaxKind::AS_KW)
2373    }
2374    #[inline]
2375    pub fn cast_token(&self) -> Option<SyntaxToken> {
2376        support::token(&self.syntax, SyntaxKind::CAST_KW)
2377    }
2378    #[inline]
2379    pub fn treat_token(&self) -> Option<SyntaxToken> {
2380        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2381    }
2382}
2383
2384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2385pub struct CastSig {
2386    pub(crate) syntax: SyntaxNode,
2387}
2388impl CastSig {
2389    #[inline]
2390    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2391        support::token(&self.syntax, SyntaxKind::L_PAREN)
2392    }
2393    #[inline]
2394    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2395        support::token(&self.syntax, SyntaxKind::R_PAREN)
2396    }
2397    #[inline]
2398    pub fn as_token(&self) -> Option<SyntaxToken> {
2399        support::token(&self.syntax, SyntaxKind::AS_KW)
2400    }
2401}
2402
2403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2404pub struct CharType {
2405    pub(crate) syntax: SyntaxNode,
2406}
2407impl CharType {
2408    #[inline]
2409    pub fn arg_list(&self) -> Option<ArgList> {
2410        support::child(&self.syntax)
2411    }
2412    #[inline]
2413    pub fn char_token(&self) -> Option<SyntaxToken> {
2414        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2415    }
2416    #[inline]
2417    pub fn character_token(&self) -> Option<SyntaxToken> {
2418        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2419    }
2420    #[inline]
2421    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2422        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2423    }
2424    #[inline]
2425    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2426        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2427    }
2428    #[inline]
2429    pub fn varying_token(&self) -> Option<SyntaxToken> {
2430        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2431    }
2432}
2433
2434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2435pub struct CheckConstraint {
2436    pub(crate) syntax: SyntaxNode,
2437}
2438impl CheckConstraint {
2439    #[inline]
2440    pub fn constraint_name(&self) -> Option<ConstraintName> {
2441        support::child(&self.syntax)
2442    }
2443    #[inline]
2444    pub fn expr(&self) -> Option<Expr> {
2445        support::child(&self.syntax)
2446    }
2447    #[inline]
2448    pub fn no_inherit(&self) -> Option<NoInherit> {
2449        support::child(&self.syntax)
2450    }
2451    #[inline]
2452    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2453        support::token(&self.syntax, SyntaxKind::L_PAREN)
2454    }
2455    #[inline]
2456    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2457        support::token(&self.syntax, SyntaxKind::R_PAREN)
2458    }
2459    #[inline]
2460    pub fn check_token(&self) -> Option<SyntaxToken> {
2461        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2462    }
2463}
2464
2465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2466pub struct Checkpoint {
2467    pub(crate) syntax: SyntaxNode,
2468}
2469impl Checkpoint {
2470    #[inline]
2471    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2472        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2473    }
2474}
2475
2476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2477pub struct Close {
2478    pub(crate) syntax: SyntaxNode,
2479}
2480impl Close {
2481    #[inline]
2482    pub fn name_ref(&self) -> Option<NameRef> {
2483        support::child(&self.syntax)
2484    }
2485    #[inline]
2486    pub fn close_token(&self) -> Option<SyntaxToken> {
2487        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2488    }
2489}
2490
2491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2492pub struct Cluster {
2493    pub(crate) syntax: SyntaxNode,
2494}
2495impl Cluster {
2496    #[inline]
2497    pub fn option_item_list(&self) -> Option<OptionItemList> {
2498        support::child(&self.syntax)
2499    }
2500    #[inline]
2501    pub fn path(&self) -> Option<Path> {
2502        support::child(&self.syntax)
2503    }
2504    #[inline]
2505    pub fn using_method(&self) -> Option<UsingMethod> {
2506        support::child(&self.syntax)
2507    }
2508    #[inline]
2509    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2510        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2511    }
2512    #[inline]
2513    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2514        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2515    }
2516}
2517
2518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2519pub struct ClusterOn {
2520    pub(crate) syntax: SyntaxNode,
2521}
2522impl ClusterOn {
2523    #[inline]
2524    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2525        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2526    }
2527    #[inline]
2528    pub fn on_token(&self) -> Option<SyntaxToken> {
2529        support::token(&self.syntax, SyntaxKind::ON_KW)
2530    }
2531}
2532
2533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2534pub struct Collate {
2535    pub(crate) syntax: SyntaxNode,
2536}
2537impl Collate {
2538    #[inline]
2539    pub fn path(&self) -> Option<Path> {
2540        support::child(&self.syntax)
2541    }
2542    #[inline]
2543    pub fn collate_token(&self) -> Option<SyntaxToken> {
2544        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2545    }
2546}
2547
2548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2549pub struct ColonColon {
2550    pub(crate) syntax: SyntaxNode,
2551}
2552impl ColonColon {
2553    #[inline]
2554    pub fn colon_token(&self) -> Option<SyntaxToken> {
2555        support::token(&self.syntax, SyntaxKind::COLON)
2556    }
2557}
2558
2559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2560pub struct ColonEq {
2561    pub(crate) syntax: SyntaxNode,
2562}
2563impl ColonEq {
2564    #[inline]
2565    pub fn colon_token(&self) -> Option<SyntaxToken> {
2566        support::token(&self.syntax, SyntaxKind::COLON)
2567    }
2568    #[inline]
2569    pub fn eq_token(&self) -> Option<SyntaxToken> {
2570        support::token(&self.syntax, SyntaxKind::EQ)
2571    }
2572}
2573
2574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2575pub struct Column {
2576    pub(crate) syntax: SyntaxNode,
2577}
2578impl Column {
2579    #[inline]
2580    pub fn collate(&self) -> Option<Collate> {
2581        support::child(&self.syntax)
2582    }
2583    #[inline]
2584    pub fn compression_method(&self) -> Option<CompressionMethod> {
2585        support::child(&self.syntax)
2586    }
2587    #[inline]
2588    pub fn constraint(&self) -> Option<ColumnConstraint> {
2589        support::child(&self.syntax)
2590    }
2591    #[inline]
2592    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2593        support::child(&self.syntax)
2594    }
2595    #[inline]
2596    pub fn enforced(&self) -> Option<Enforced> {
2597        support::child(&self.syntax)
2598    }
2599    #[inline]
2600    pub fn index_expr(&self) -> Option<IndexExpr> {
2601        support::child(&self.syntax)
2602    }
2603    #[inline]
2604    pub fn initially_deferred_constraint_option(
2605        &self,
2606    ) -> Option<InitiallyDeferredConstraintOption> {
2607        support::child(&self.syntax)
2608    }
2609    #[inline]
2610    pub fn initially_immediate_constraint_option(
2611        &self,
2612    ) -> Option<InitiallyImmediateConstraintOption> {
2613        support::child(&self.syntax)
2614    }
2615    #[inline]
2616    pub fn name(&self) -> Option<Name> {
2617        support::child(&self.syntax)
2618    }
2619    #[inline]
2620    pub fn name_ref(&self) -> Option<NameRef> {
2621        support::child(&self.syntax)
2622    }
2623    #[inline]
2624    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2625        support::child(&self.syntax)
2626    }
2627    #[inline]
2628    pub fn not_enforced(&self) -> Option<NotEnforced> {
2629        support::child(&self.syntax)
2630    }
2631    #[inline]
2632    pub fn storage(&self) -> Option<Storage> {
2633        support::child(&self.syntax)
2634    }
2635    #[inline]
2636    pub fn ty(&self) -> Option<Type> {
2637        support::child(&self.syntax)
2638    }
2639    #[inline]
2640    pub fn with_options(&self) -> Option<WithOptions> {
2641        support::child(&self.syntax)
2642    }
2643    #[inline]
2644    pub fn period_token(&self) -> Option<SyntaxToken> {
2645        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2646    }
2647}
2648
2649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2650pub struct ColumnList {
2651    pub(crate) syntax: SyntaxNode,
2652}
2653impl ColumnList {
2654    #[inline]
2655    pub fn columns(&self) -> AstChildren<Column> {
2656        support::children(&self.syntax)
2657    }
2658    #[inline]
2659    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2660        support::token(&self.syntax, SyntaxKind::L_PAREN)
2661    }
2662    #[inline]
2663    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2664        support::token(&self.syntax, SyntaxKind::R_PAREN)
2665    }
2666}
2667
2668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2669pub struct CommentOn {
2670    pub(crate) syntax: SyntaxNode,
2671}
2672impl CommentOn {
2673    #[inline]
2674    pub fn literal(&self) -> Option<Literal> {
2675        support::child(&self.syntax)
2676    }
2677    #[inline]
2678    pub fn name_ref(&self) -> Option<NameRef> {
2679        support::child(&self.syntax)
2680    }
2681    #[inline]
2682    pub fn path(&self) -> Option<Path> {
2683        support::child(&self.syntax)
2684    }
2685    #[inline]
2686    pub fn comment_token(&self) -> Option<SyntaxToken> {
2687        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2688    }
2689    #[inline]
2690    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2691        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2692    }
2693    #[inline]
2694    pub fn domain_token(&self) -> Option<SyntaxToken> {
2695        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2696    }
2697    #[inline]
2698    pub fn is_token(&self) -> Option<SyntaxToken> {
2699        support::token(&self.syntax, SyntaxKind::IS_KW)
2700    }
2701    #[inline]
2702    pub fn null_token(&self) -> Option<SyntaxToken> {
2703        support::token(&self.syntax, SyntaxKind::NULL_KW)
2704    }
2705    #[inline]
2706    pub fn on_token(&self) -> Option<SyntaxToken> {
2707        support::token(&self.syntax, SyntaxKind::ON_KW)
2708    }
2709    #[inline]
2710    pub fn table_token(&self) -> Option<SyntaxToken> {
2711        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2712    }
2713}
2714
2715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2716pub struct Commit {
2717    pub(crate) syntax: SyntaxNode,
2718}
2719impl Commit {
2720    #[inline]
2721    pub fn literal(&self) -> Option<Literal> {
2722        support::child(&self.syntax)
2723    }
2724    #[inline]
2725    pub fn and_token(&self) -> Option<SyntaxToken> {
2726        support::token(&self.syntax, SyntaxKind::AND_KW)
2727    }
2728    #[inline]
2729    pub fn chain_token(&self) -> Option<SyntaxToken> {
2730        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2731    }
2732    #[inline]
2733    pub fn commit_token(&self) -> Option<SyntaxToken> {
2734        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2735    }
2736    #[inline]
2737    pub fn no_token(&self) -> Option<SyntaxToken> {
2738        support::token(&self.syntax, SyntaxKind::NO_KW)
2739    }
2740    #[inline]
2741    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2742        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2743    }
2744    #[inline]
2745    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2746        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2747    }
2748    #[inline]
2749    pub fn work_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::WORK_KW)
2751    }
2752}
2753
2754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2755pub struct CompoundSelect {
2756    pub(crate) syntax: SyntaxNode,
2757}
2758impl CompoundSelect {
2759    #[inline]
2760    pub fn all_token(&self) -> Option<SyntaxToken> {
2761        support::token(&self.syntax, SyntaxKind::ALL_KW)
2762    }
2763    #[inline]
2764    pub fn except_token(&self) -> Option<SyntaxToken> {
2765        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2766    }
2767    #[inline]
2768    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2769        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2770    }
2771    #[inline]
2772    pub fn union_token(&self) -> Option<SyntaxToken> {
2773        support::token(&self.syntax, SyntaxKind::UNION_KW)
2774    }
2775}
2776
2777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2778pub struct CompressionMethod {
2779    pub(crate) syntax: SyntaxNode,
2780}
2781impl CompressionMethod {
2782    #[inline]
2783    pub fn compression_token(&self) -> Option<SyntaxToken> {
2784        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2785    }
2786    #[inline]
2787    pub fn default_token(&self) -> Option<SyntaxToken> {
2788        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2789    }
2790    #[inline]
2791    pub fn ident_token(&self) -> Option<SyntaxToken> {
2792        support::token(&self.syntax, SyntaxKind::IDENT)
2793    }
2794}
2795
2796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2797pub struct ConflictDoNothing {
2798    pub(crate) syntax: SyntaxNode,
2799}
2800impl ConflictDoNothing {
2801    #[inline]
2802    pub fn do_token(&self) -> Option<SyntaxToken> {
2803        support::token(&self.syntax, SyntaxKind::DO_KW)
2804    }
2805    #[inline]
2806    pub fn nothing_token(&self) -> Option<SyntaxToken> {
2807        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
2808    }
2809}
2810
2811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2812pub struct ConflictDoUpdateSet {
2813    pub(crate) syntax: SyntaxNode,
2814}
2815impl ConflictDoUpdateSet {
2816    #[inline]
2817    pub fn set_clause(&self) -> Option<SetClause> {
2818        support::child(&self.syntax)
2819    }
2820    #[inline]
2821    pub fn where_clause(&self) -> Option<WhereClause> {
2822        support::child(&self.syntax)
2823    }
2824    #[inline]
2825    pub fn do_token(&self) -> Option<SyntaxToken> {
2826        support::token(&self.syntax, SyntaxKind::DO_KW)
2827    }
2828    #[inline]
2829    pub fn update_token(&self) -> Option<SyntaxToken> {
2830        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
2831    }
2832}
2833
2834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2835pub struct ConflictIndexItem {
2836    pub(crate) syntax: SyntaxNode,
2837}
2838impl ConflictIndexItem {
2839    #[inline]
2840    pub fn collate(&self) -> Option<Collate> {
2841        support::child(&self.syntax)
2842    }
2843    #[inline]
2844    pub fn expr(&self) -> Option<Expr> {
2845        support::child(&self.syntax)
2846    }
2847    #[inline]
2848    pub fn ident_token(&self) -> Option<SyntaxToken> {
2849        support::token(&self.syntax, SyntaxKind::IDENT)
2850    }
2851}
2852
2853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2854pub struct ConflictIndexItemList {
2855    pub(crate) syntax: SyntaxNode,
2856}
2857impl ConflictIndexItemList {
2858    #[inline]
2859    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
2860        support::children(&self.syntax)
2861    }
2862    #[inline]
2863    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2864        support::token(&self.syntax, SyntaxKind::L_PAREN)
2865    }
2866    #[inline]
2867    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2868        support::token(&self.syntax, SyntaxKind::R_PAREN)
2869    }
2870}
2871
2872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2873pub struct ConflictOnConstraint {
2874    pub(crate) syntax: SyntaxNode,
2875}
2876impl ConflictOnConstraint {
2877    #[inline]
2878    pub fn name_ref(&self) -> Option<NameRef> {
2879        support::child(&self.syntax)
2880    }
2881    #[inline]
2882    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2883        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2884    }
2885    #[inline]
2886    pub fn on_token(&self) -> Option<SyntaxToken> {
2887        support::token(&self.syntax, SyntaxKind::ON_KW)
2888    }
2889}
2890
2891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2892pub struct ConflictOnIndex {
2893    pub(crate) syntax: SyntaxNode,
2894}
2895impl ConflictOnIndex {
2896    #[inline]
2897    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
2898        support::child(&self.syntax)
2899    }
2900    #[inline]
2901    pub fn where_clause(&self) -> Option<WhereClause> {
2902        support::child(&self.syntax)
2903    }
2904}
2905
2906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2907pub struct ConstraintExclusion {
2908    pub(crate) syntax: SyntaxNode,
2909}
2910impl ConstraintExclusion {
2911    #[inline]
2912    pub fn expr(&self) -> Option<Expr> {
2913        support::child(&self.syntax)
2914    }
2915    #[inline]
2916    pub fn op(&self) -> Option<Op> {
2917        support::child(&self.syntax)
2918    }
2919    #[inline]
2920    pub fn with_token(&self) -> Option<SyntaxToken> {
2921        support::token(&self.syntax, SyntaxKind::WITH_KW)
2922    }
2923}
2924
2925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2926pub struct ConstraintExclusionList {
2927    pub(crate) syntax: SyntaxNode,
2928}
2929impl ConstraintExclusionList {
2930    #[inline]
2931    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
2932        support::children(&self.syntax)
2933    }
2934    #[inline]
2935    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2936        support::token(&self.syntax, SyntaxKind::L_PAREN)
2937    }
2938    #[inline]
2939    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2940        support::token(&self.syntax, SyntaxKind::R_PAREN)
2941    }
2942}
2943
2944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2945pub struct ConstraintIncludeClause {
2946    pub(crate) syntax: SyntaxNode,
2947}
2948impl ConstraintIncludeClause {
2949    #[inline]
2950    pub fn include_token(&self) -> Option<SyntaxToken> {
2951        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2952    }
2953}
2954
2955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2956pub struct ConstraintIndexMethod {
2957    pub(crate) syntax: SyntaxNode,
2958}
2959impl ConstraintIndexMethod {
2960    #[inline]
2961    pub fn using_token(&self) -> Option<SyntaxToken> {
2962        support::token(&self.syntax, SyntaxKind::USING_KW)
2963    }
2964}
2965
2966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2967pub struct ConstraintIndexTablespace {
2968    pub(crate) syntax: SyntaxNode,
2969}
2970impl ConstraintIndexTablespace {
2971    #[inline]
2972    pub fn name_ref(&self) -> Option<NameRef> {
2973        support::child(&self.syntax)
2974    }
2975    #[inline]
2976    pub fn index_token(&self) -> Option<SyntaxToken> {
2977        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2978    }
2979    #[inline]
2980    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2981        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2982    }
2983    #[inline]
2984    pub fn using_token(&self) -> Option<SyntaxToken> {
2985        support::token(&self.syntax, SyntaxKind::USING_KW)
2986    }
2987}
2988
2989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2990pub struct ConstraintName {
2991    pub(crate) syntax: SyntaxNode,
2992}
2993impl ConstraintName {
2994    #[inline]
2995    pub fn name(&self) -> Option<Name> {
2996        support::child(&self.syntax)
2997    }
2998    #[inline]
2999    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3000        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3001    }
3002}
3003
3004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3005pub struct Copy {
3006    pub(crate) syntax: SyntaxNode,
3007}
3008impl Copy {
3009    #[inline]
3010    pub fn column_list(&self) -> Option<ColumnList> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn literal(&self) -> Option<Literal> {
3015        support::child(&self.syntax)
3016    }
3017    #[inline]
3018    pub fn path(&self) -> Option<Path> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3023        support::child(&self.syntax)
3024    }
3025    #[inline]
3026    pub fn where_clause(&self) -> Option<WhereClause> {
3027        support::child(&self.syntax)
3028    }
3029    #[inline]
3030    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3031        support::token(&self.syntax, SyntaxKind::L_PAREN)
3032    }
3033    #[inline]
3034    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3035        support::token(&self.syntax, SyntaxKind::R_PAREN)
3036    }
3037    #[inline]
3038    pub fn binary_token(&self) -> Option<SyntaxToken> {
3039        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3040    }
3041    #[inline]
3042    pub fn copy_token(&self) -> Option<SyntaxToken> {
3043        support::token(&self.syntax, SyntaxKind::COPY_KW)
3044    }
3045    #[inline]
3046    pub fn from_token(&self) -> Option<SyntaxToken> {
3047        support::token(&self.syntax, SyntaxKind::FROM_KW)
3048    }
3049    #[inline]
3050    pub fn program_token(&self) -> Option<SyntaxToken> {
3051        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3052    }
3053    #[inline]
3054    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3055        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3056    }
3057    #[inline]
3058    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3059        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3060    }
3061    #[inline]
3062    pub fn to_token(&self) -> Option<SyntaxToken> {
3063        support::token(&self.syntax, SyntaxKind::TO_KW)
3064    }
3065    #[inline]
3066    pub fn with_token(&self) -> Option<SyntaxToken> {
3067        support::token(&self.syntax, SyntaxKind::WITH_KW)
3068    }
3069}
3070
3071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3072pub struct CopyOption {
3073    pub(crate) syntax: SyntaxNode,
3074}
3075impl CopyOption {
3076    #[inline]
3077    pub fn name(&self) -> Option<Name> {
3078        support::child(&self.syntax)
3079    }
3080}
3081
3082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3083pub struct CopyOptionList {
3084    pub(crate) syntax: SyntaxNode,
3085}
3086impl CopyOptionList {
3087    #[inline]
3088    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3089        support::children(&self.syntax)
3090    }
3091    #[inline]
3092    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3093        support::token(&self.syntax, SyntaxKind::L_PAREN)
3094    }
3095    #[inline]
3096    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3097        support::token(&self.syntax, SyntaxKind::R_PAREN)
3098    }
3099}
3100
3101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3102pub struct CostFuncOption {
3103    pub(crate) syntax: SyntaxNode,
3104}
3105impl CostFuncOption {
3106    #[inline]
3107    pub fn cost_token(&self) -> Option<SyntaxToken> {
3108        support::token(&self.syntax, SyntaxKind::COST_KW)
3109    }
3110}
3111
3112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3113pub struct CreateAccessMethod {
3114    pub(crate) syntax: SyntaxNode,
3115}
3116impl CreateAccessMethod {
3117    #[inline]
3118    pub fn handler_clause(&self) -> Option<HandlerClause> {
3119        support::child(&self.syntax)
3120    }
3121    #[inline]
3122    pub fn name(&self) -> Option<Path> {
3123        support::child(&self.syntax)
3124    }
3125    #[inline]
3126    pub fn access_token(&self) -> Option<SyntaxToken> {
3127        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3128    }
3129    #[inline]
3130    pub fn create_token(&self) -> Option<SyntaxToken> {
3131        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3132    }
3133    #[inline]
3134    pub fn index_token(&self) -> Option<SyntaxToken> {
3135        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3136    }
3137    #[inline]
3138    pub fn method_token(&self) -> Option<SyntaxToken> {
3139        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3140    }
3141    #[inline]
3142    pub fn table_token(&self) -> Option<SyntaxToken> {
3143        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3144    }
3145    #[inline]
3146    pub fn type_token(&self) -> Option<SyntaxToken> {
3147        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3148    }
3149}
3150
3151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3152pub struct CreateAggregate {
3153    pub(crate) syntax: SyntaxNode,
3154}
3155impl CreateAggregate {
3156    #[inline]
3157    pub fn or_replace(&self) -> Option<OrReplace> {
3158        support::child(&self.syntax)
3159    }
3160    #[inline]
3161    pub fn param_list(&self) -> Option<ParamList> {
3162        support::child(&self.syntax)
3163    }
3164    #[inline]
3165    pub fn path(&self) -> Option<Path> {
3166        support::child(&self.syntax)
3167    }
3168    #[inline]
3169    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3170        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3171    }
3172    #[inline]
3173    pub fn create_token(&self) -> Option<SyntaxToken> {
3174        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3175    }
3176}
3177
3178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3179pub struct CreateCast {
3180    pub(crate) syntax: SyntaxNode,
3181}
3182impl CreateCast {
3183    #[inline]
3184    pub fn cast_sig(&self) -> Option<CastSig> {
3185        support::child(&self.syntax)
3186    }
3187    #[inline]
3188    pub fn function_sig(&self) -> Option<FunctionSig> {
3189        support::child(&self.syntax)
3190    }
3191    #[inline]
3192    pub fn as_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::AS_KW)
3194    }
3195    #[inline]
3196    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3198    }
3199    #[inline]
3200    pub fn cast_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::CAST_KW)
3202    }
3203    #[inline]
3204    pub fn create_token(&self) -> Option<SyntaxToken> {
3205        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3206    }
3207    #[inline]
3208    pub fn function_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3210    }
3211    #[inline]
3212    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3214    }
3215    #[inline]
3216    pub fn inout_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3218    }
3219    #[inline]
3220    pub fn with_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::WITH_KW)
3222    }
3223    #[inline]
3224    pub fn without_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3226    }
3227}
3228
3229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3230pub struct CreateCollation {
3231    pub(crate) syntax: SyntaxNode,
3232}
3233impl CreateCollation {
3234    #[inline]
3235    pub fn path(&self) -> Option<Path> {
3236        support::child(&self.syntax)
3237    }
3238    #[inline]
3239    pub fn collation_token(&self) -> Option<SyntaxToken> {
3240        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3241    }
3242    #[inline]
3243    pub fn create_token(&self) -> Option<SyntaxToken> {
3244        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3245    }
3246}
3247
3248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3249pub struct CreateConversion {
3250    pub(crate) syntax: SyntaxNode,
3251}
3252impl CreateConversion {
3253    #[inline]
3254    pub fn literal(&self) -> Option<Literal> {
3255        support::child(&self.syntax)
3256    }
3257    #[inline]
3258    pub fn path(&self) -> Option<Path> {
3259        support::child(&self.syntax)
3260    }
3261    #[inline]
3262    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3263        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3264    }
3265    #[inline]
3266    pub fn create_token(&self) -> Option<SyntaxToken> {
3267        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3268    }
3269    #[inline]
3270    pub fn default_token(&self) -> Option<SyntaxToken> {
3271        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3272    }
3273    #[inline]
3274    pub fn for_token(&self) -> Option<SyntaxToken> {
3275        support::token(&self.syntax, SyntaxKind::FOR_KW)
3276    }
3277    #[inline]
3278    pub fn from_token(&self) -> Option<SyntaxToken> {
3279        support::token(&self.syntax, SyntaxKind::FROM_KW)
3280    }
3281    #[inline]
3282    pub fn to_token(&self) -> Option<SyntaxToken> {
3283        support::token(&self.syntax, SyntaxKind::TO_KW)
3284    }
3285}
3286
3287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3288pub struct CreateDatabase {
3289    pub(crate) syntax: SyntaxNode,
3290}
3291impl CreateDatabase {
3292    #[inline]
3293    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3294        support::child(&self.syntax)
3295    }
3296    #[inline]
3297    pub fn name(&self) -> Option<Name> {
3298        support::child(&self.syntax)
3299    }
3300    #[inline]
3301    pub fn create_token(&self) -> Option<SyntaxToken> {
3302        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3303    }
3304    #[inline]
3305    pub fn database_token(&self) -> Option<SyntaxToken> {
3306        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3307    }
3308}
3309
3310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3311pub struct CreateDatabaseOption {
3312    pub(crate) syntax: SyntaxNode,
3313}
3314impl CreateDatabaseOption {
3315    #[inline]
3316    pub fn literal(&self) -> Option<Literal> {
3317        support::child(&self.syntax)
3318    }
3319    #[inline]
3320    pub fn eq_token(&self) -> Option<SyntaxToken> {
3321        support::token(&self.syntax, SyntaxKind::EQ)
3322    }
3323    #[inline]
3324    pub fn connection_token(&self) -> Option<SyntaxToken> {
3325        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3326    }
3327    #[inline]
3328    pub fn default_token(&self) -> Option<SyntaxToken> {
3329        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3330    }
3331    #[inline]
3332    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3333        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3334    }
3335    #[inline]
3336    pub fn ident_token(&self) -> Option<SyntaxToken> {
3337        support::token(&self.syntax, SyntaxKind::IDENT)
3338    }
3339    #[inline]
3340    pub fn limit_token(&self) -> Option<SyntaxToken> {
3341        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3342    }
3343    #[inline]
3344    pub fn owner_token(&self) -> Option<SyntaxToken> {
3345        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3346    }
3347    #[inline]
3348    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3349        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3350    }
3351    #[inline]
3352    pub fn template_token(&self) -> Option<SyntaxToken> {
3353        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3354    }
3355}
3356
3357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3358pub struct CreateDatabaseOptionList {
3359    pub(crate) syntax: SyntaxNode,
3360}
3361impl CreateDatabaseOptionList {
3362    #[inline]
3363    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3364        support::children(&self.syntax)
3365    }
3366    #[inline]
3367    pub fn with_token(&self) -> Option<SyntaxToken> {
3368        support::token(&self.syntax, SyntaxKind::WITH_KW)
3369    }
3370}
3371
3372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3373pub struct CreateDomain {
3374    pub(crate) syntax: SyntaxNode,
3375}
3376impl CreateDomain {
3377    #[inline]
3378    pub fn collate(&self) -> Option<Collate> {
3379        support::child(&self.syntax)
3380    }
3381    #[inline]
3382    pub fn constraints(&self) -> AstChildren<Constraint> {
3383        support::children(&self.syntax)
3384    }
3385    #[inline]
3386    pub fn path(&self) -> Option<Path> {
3387        support::child(&self.syntax)
3388    }
3389    #[inline]
3390    pub fn ty(&self) -> Option<Type> {
3391        support::child(&self.syntax)
3392    }
3393    #[inline]
3394    pub fn as_token(&self) -> Option<SyntaxToken> {
3395        support::token(&self.syntax, SyntaxKind::AS_KW)
3396    }
3397    #[inline]
3398    pub fn create_token(&self) -> Option<SyntaxToken> {
3399        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3400    }
3401    #[inline]
3402    pub fn domain_token(&self) -> Option<SyntaxToken> {
3403        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3404    }
3405}
3406
3407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3408pub struct CreateEventTrigger {
3409    pub(crate) syntax: SyntaxNode,
3410}
3411impl CreateEventTrigger {
3412    #[inline]
3413    pub fn call_expr(&self) -> Option<CallExpr> {
3414        support::child(&self.syntax)
3415    }
3416    #[inline]
3417    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3418        support::child(&self.syntax)
3419    }
3420    #[inline]
3421    pub fn name(&self) -> Option<Name> {
3422        support::child(&self.syntax)
3423    }
3424    #[inline]
3425    pub fn name_ref(&self) -> Option<NameRef> {
3426        support::child(&self.syntax)
3427    }
3428    #[inline]
3429    pub fn create_token(&self) -> Option<SyntaxToken> {
3430        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3431    }
3432    #[inline]
3433    pub fn event_token(&self) -> Option<SyntaxToken> {
3434        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3435    }
3436    #[inline]
3437    pub fn execute_token(&self) -> Option<SyntaxToken> {
3438        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3439    }
3440    #[inline]
3441    pub fn function_token(&self) -> Option<SyntaxToken> {
3442        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3443    }
3444    #[inline]
3445    pub fn on_token(&self) -> Option<SyntaxToken> {
3446        support::token(&self.syntax, SyntaxKind::ON_KW)
3447    }
3448    #[inline]
3449    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3450        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3451    }
3452    #[inline]
3453    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3454        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3455    }
3456}
3457
3458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3459pub struct CreateExtension {
3460    pub(crate) syntax: SyntaxNode,
3461}
3462impl CreateExtension {
3463    #[inline]
3464    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3465        support::child(&self.syntax)
3466    }
3467    #[inline]
3468    pub fn name(&self) -> Option<Name> {
3469        support::child(&self.syntax)
3470    }
3471    #[inline]
3472    pub fn create_token(&self) -> Option<SyntaxToken> {
3473        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3474    }
3475    #[inline]
3476    pub fn extension_token(&self) -> Option<SyntaxToken> {
3477        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3478    }
3479}
3480
3481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3482pub struct CreateForeignDataWrapper {
3483    pub(crate) syntax: SyntaxNode,
3484}
3485impl CreateForeignDataWrapper {
3486    #[inline]
3487    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3488        support::child(&self.syntax)
3489    }
3490    #[inline]
3491    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3492        support::child(&self.syntax)
3493    }
3494    #[inline]
3495    pub fn name(&self) -> Option<Name> {
3496        support::child(&self.syntax)
3497    }
3498    #[inline]
3499    pub fn create_token(&self) -> Option<SyntaxToken> {
3500        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3501    }
3502    #[inline]
3503    pub fn data_token(&self) -> Option<SyntaxToken> {
3504        support::token(&self.syntax, SyntaxKind::DATA_KW)
3505    }
3506    #[inline]
3507    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3508        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3509    }
3510    #[inline]
3511    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3512        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3513    }
3514}
3515
3516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3517pub struct CreateForeignTable {
3518    pub(crate) syntax: SyntaxNode,
3519}
3520impl CreateForeignTable {
3521    #[inline]
3522    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3523        support::child(&self.syntax)
3524    }
3525    #[inline]
3526    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3527        support::child(&self.syntax)
3528    }
3529    #[inline]
3530    pub fn inherits(&self) -> Option<Inherits> {
3531        support::child(&self.syntax)
3532    }
3533    #[inline]
3534    pub fn partition_of(&self) -> Option<PartitionOf> {
3535        support::child(&self.syntax)
3536    }
3537    #[inline]
3538    pub fn partition_type(&self) -> Option<PartitionType> {
3539        support::child(&self.syntax)
3540    }
3541    #[inline]
3542    pub fn path(&self) -> Option<Path> {
3543        support::child(&self.syntax)
3544    }
3545    #[inline]
3546    pub fn server_name(&self) -> Option<ServerName> {
3547        support::child(&self.syntax)
3548    }
3549    #[inline]
3550    pub fn table_arg_list(&self) -> Option<TableArgList> {
3551        support::child(&self.syntax)
3552    }
3553    #[inline]
3554    pub fn create_token(&self) -> Option<SyntaxToken> {
3555        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3556    }
3557    #[inline]
3558    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3559        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3560    }
3561    #[inline]
3562    pub fn table_token(&self) -> Option<SyntaxToken> {
3563        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3564    }
3565}
3566
3567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3568pub struct CreateFunction {
3569    pub(crate) syntax: SyntaxNode,
3570}
3571impl CreateFunction {
3572    #[inline]
3573    pub fn option_list(&self) -> Option<FuncOptionList> {
3574        support::child(&self.syntax)
3575    }
3576    #[inline]
3577    pub fn or_replace(&self) -> Option<OrReplace> {
3578        support::child(&self.syntax)
3579    }
3580    #[inline]
3581    pub fn param_list(&self) -> Option<ParamList> {
3582        support::child(&self.syntax)
3583    }
3584    #[inline]
3585    pub fn path(&self) -> Option<Path> {
3586        support::child(&self.syntax)
3587    }
3588    #[inline]
3589    pub fn ret_type(&self) -> Option<RetType> {
3590        support::child(&self.syntax)
3591    }
3592    #[inline]
3593    pub fn create_token(&self) -> Option<SyntaxToken> {
3594        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3595    }
3596    #[inline]
3597    pub fn function_token(&self) -> Option<SyntaxToken> {
3598        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3599    }
3600}
3601
3602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3603pub struct CreateGroup {
3604    pub(crate) syntax: SyntaxNode,
3605}
3606impl CreateGroup {
3607    #[inline]
3608    pub fn name(&self) -> Option<Name> {
3609        support::child(&self.syntax)
3610    }
3611    #[inline]
3612    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3613        support::child(&self.syntax)
3614    }
3615    #[inline]
3616    pub fn create_token(&self) -> Option<SyntaxToken> {
3617        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3618    }
3619    #[inline]
3620    pub fn group_token(&self) -> Option<SyntaxToken> {
3621        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3622    }
3623}
3624
3625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3626pub struct CreateIndex {
3627    pub(crate) syntax: SyntaxNode,
3628}
3629impl CreateIndex {
3630    #[inline]
3631    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3632        support::child(&self.syntax)
3633    }
3634    #[inline]
3635    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3636        support::child(&self.syntax)
3637    }
3638    #[inline]
3639    pub fn name(&self) -> Option<Name> {
3640        support::child(&self.syntax)
3641    }
3642    #[inline]
3643    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3644        support::child(&self.syntax)
3645    }
3646    #[inline]
3647    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3648        support::child(&self.syntax)
3649    }
3650    #[inline]
3651    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3652        support::child(&self.syntax)
3653    }
3654    #[inline]
3655    pub fn relation_name(&self) -> Option<RelationName> {
3656        support::child(&self.syntax)
3657    }
3658    #[inline]
3659    pub fn tablespace(&self) -> Option<Tablespace> {
3660        support::child(&self.syntax)
3661    }
3662    #[inline]
3663    pub fn using_method(&self) -> Option<UsingMethod> {
3664        support::child(&self.syntax)
3665    }
3666    #[inline]
3667    pub fn where_clause(&self) -> Option<WhereClause> {
3668        support::child(&self.syntax)
3669    }
3670    #[inline]
3671    pub fn with_params(&self) -> Option<WithParams> {
3672        support::child(&self.syntax)
3673    }
3674    #[inline]
3675    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3676        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3677    }
3678    #[inline]
3679    pub fn create_token(&self) -> Option<SyntaxToken> {
3680        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3681    }
3682    #[inline]
3683    pub fn index_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3685    }
3686    #[inline]
3687    pub fn on_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::ON_KW)
3689    }
3690    #[inline]
3691    pub fn unique_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3693    }
3694}
3695
3696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3697pub struct CreateLanguage {
3698    pub(crate) syntax: SyntaxNode,
3699}
3700impl CreateLanguage {
3701    #[inline]
3702    pub fn name(&self) -> Option<Name> {
3703        support::child(&self.syntax)
3704    }
3705    #[inline]
3706    pub fn or_replace(&self) -> Option<OrReplace> {
3707        support::child(&self.syntax)
3708    }
3709    #[inline]
3710    pub fn path(&self) -> Option<Path> {
3711        support::child(&self.syntax)
3712    }
3713    #[inline]
3714    pub fn create_token(&self) -> Option<SyntaxToken> {
3715        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3716    }
3717    #[inline]
3718    pub fn handler_token(&self) -> Option<SyntaxToken> {
3719        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3720    }
3721    #[inline]
3722    pub fn inline_token(&self) -> Option<SyntaxToken> {
3723        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3724    }
3725    #[inline]
3726    pub fn language_token(&self) -> Option<SyntaxToken> {
3727        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3728    }
3729    #[inline]
3730    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3731        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3732    }
3733    #[inline]
3734    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3735        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3736    }
3737    #[inline]
3738    pub fn validator_token(&self) -> Option<SyntaxToken> {
3739        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3740    }
3741}
3742
3743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3744pub struct CreateMaterializedView {
3745    pub(crate) syntax: SyntaxNode,
3746}
3747impl CreateMaterializedView {
3748    #[inline]
3749    pub fn column_list(&self) -> Option<ColumnList> {
3750        support::child(&self.syntax)
3751    }
3752    #[inline]
3753    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3754        support::child(&self.syntax)
3755    }
3756    #[inline]
3757    pub fn path(&self) -> Option<Path> {
3758        support::child(&self.syntax)
3759    }
3760    #[inline]
3761    pub fn query(&self) -> Option<SelectVariant> {
3762        support::child(&self.syntax)
3763    }
3764    #[inline]
3765    pub fn tablespace(&self) -> Option<Tablespace> {
3766        support::child(&self.syntax)
3767    }
3768    #[inline]
3769    pub fn using_method(&self) -> Option<UsingMethod> {
3770        support::child(&self.syntax)
3771    }
3772    #[inline]
3773    pub fn with_data(&self) -> Option<WithData> {
3774        support::child(&self.syntax)
3775    }
3776    #[inline]
3777    pub fn with_no_data(&self) -> Option<WithNoData> {
3778        support::child(&self.syntax)
3779    }
3780    #[inline]
3781    pub fn with_params(&self) -> Option<WithParams> {
3782        support::child(&self.syntax)
3783    }
3784    #[inline]
3785    pub fn as_token(&self) -> Option<SyntaxToken> {
3786        support::token(&self.syntax, SyntaxKind::AS_KW)
3787    }
3788    #[inline]
3789    pub fn create_token(&self) -> Option<SyntaxToken> {
3790        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3791    }
3792    #[inline]
3793    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3794        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3795    }
3796    #[inline]
3797    pub fn view_token(&self) -> Option<SyntaxToken> {
3798        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3799    }
3800}
3801
3802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3803pub struct CreateOperator {
3804    pub(crate) syntax: SyntaxNode,
3805}
3806impl CreateOperator {
3807    #[inline]
3808    pub fn attribute_list(&self) -> Option<AttributeList> {
3809        support::child(&self.syntax)
3810    }
3811    #[inline]
3812    pub fn op(&self) -> Option<Op> {
3813        support::child(&self.syntax)
3814    }
3815    #[inline]
3816    pub fn path(&self) -> Option<Path> {
3817        support::child(&self.syntax)
3818    }
3819    #[inline]
3820    pub fn create_token(&self) -> Option<SyntaxToken> {
3821        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3822    }
3823    #[inline]
3824    pub fn operator_token(&self) -> Option<SyntaxToken> {
3825        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3826    }
3827}
3828
3829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3830pub struct CreateOperatorClass {
3831    pub(crate) syntax: SyntaxNode,
3832}
3833impl CreateOperatorClass {
3834    #[inline]
3835    pub fn name_ref(&self) -> Option<NameRef> {
3836        support::child(&self.syntax)
3837    }
3838    #[inline]
3839    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
3840        support::child(&self.syntax)
3841    }
3842    #[inline]
3843    pub fn path(&self) -> Option<Path> {
3844        support::child(&self.syntax)
3845    }
3846    #[inline]
3847    pub fn ty(&self) -> Option<Type> {
3848        support::child(&self.syntax)
3849    }
3850    #[inline]
3851    pub fn as_token(&self) -> Option<SyntaxToken> {
3852        support::token(&self.syntax, SyntaxKind::AS_KW)
3853    }
3854    #[inline]
3855    pub fn class_token(&self) -> Option<SyntaxToken> {
3856        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3857    }
3858    #[inline]
3859    pub fn create_token(&self) -> Option<SyntaxToken> {
3860        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3861    }
3862    #[inline]
3863    pub fn default_token(&self) -> Option<SyntaxToken> {
3864        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3865    }
3866    #[inline]
3867    pub fn family_token(&self) -> Option<SyntaxToken> {
3868        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3869    }
3870    #[inline]
3871    pub fn for_token(&self) -> Option<SyntaxToken> {
3872        support::token(&self.syntax, SyntaxKind::FOR_KW)
3873    }
3874    #[inline]
3875    pub fn operator_token(&self) -> Option<SyntaxToken> {
3876        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3877    }
3878    #[inline]
3879    pub fn type_token(&self) -> Option<SyntaxToken> {
3880        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3881    }
3882    #[inline]
3883    pub fn using_token(&self) -> Option<SyntaxToken> {
3884        support::token(&self.syntax, SyntaxKind::USING_KW)
3885    }
3886}
3887
3888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3889pub struct CreateOperatorFamily {
3890    pub(crate) syntax: SyntaxNode,
3891}
3892impl CreateOperatorFamily {
3893    #[inline]
3894    pub fn name_ref(&self) -> Option<NameRef> {
3895        support::child(&self.syntax)
3896    }
3897    #[inline]
3898    pub fn path(&self) -> Option<Path> {
3899        support::child(&self.syntax)
3900    }
3901    #[inline]
3902    pub fn create_token(&self) -> Option<SyntaxToken> {
3903        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3904    }
3905    #[inline]
3906    pub fn family_token(&self) -> Option<SyntaxToken> {
3907        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3908    }
3909    #[inline]
3910    pub fn operator_token(&self) -> Option<SyntaxToken> {
3911        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3912    }
3913    #[inline]
3914    pub fn using_token(&self) -> Option<SyntaxToken> {
3915        support::token(&self.syntax, SyntaxKind::USING_KW)
3916    }
3917}
3918
3919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3920pub struct CreatePolicy {
3921    pub(crate) syntax: SyntaxNode,
3922}
3923impl CreatePolicy {
3924    #[inline]
3925    pub fn expr(&self) -> Option<Expr> {
3926        support::child(&self.syntax)
3927    }
3928    #[inline]
3929    pub fn name(&self) -> Option<Name> {
3930        support::child(&self.syntax)
3931    }
3932    #[inline]
3933    pub fn on_table(&self) -> Option<OnTable> {
3934        support::child(&self.syntax)
3935    }
3936    #[inline]
3937    pub fn role_ref_list(&self) -> Option<RoleRefList> {
3938        support::child(&self.syntax)
3939    }
3940    #[inline]
3941    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3942        support::token(&self.syntax, SyntaxKind::L_PAREN)
3943    }
3944    #[inline]
3945    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3946        support::token(&self.syntax, SyntaxKind::R_PAREN)
3947    }
3948    #[inline]
3949    pub fn all_token(&self) -> Option<SyntaxToken> {
3950        support::token(&self.syntax, SyntaxKind::ALL_KW)
3951    }
3952    #[inline]
3953    pub fn as_token(&self) -> Option<SyntaxToken> {
3954        support::token(&self.syntax, SyntaxKind::AS_KW)
3955    }
3956    #[inline]
3957    pub fn check_token(&self) -> Option<SyntaxToken> {
3958        support::token(&self.syntax, SyntaxKind::CHECK_KW)
3959    }
3960    #[inline]
3961    pub fn create_token(&self) -> Option<SyntaxToken> {
3962        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3963    }
3964    #[inline]
3965    pub fn delete_token(&self) -> Option<SyntaxToken> {
3966        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3967    }
3968    #[inline]
3969    pub fn for_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::FOR_KW)
3971    }
3972    #[inline]
3973    pub fn ident_token(&self) -> Option<SyntaxToken> {
3974        support::token(&self.syntax, SyntaxKind::IDENT)
3975    }
3976    #[inline]
3977    pub fn insert_token(&self) -> Option<SyntaxToken> {
3978        support::token(&self.syntax, SyntaxKind::INSERT_KW)
3979    }
3980    #[inline]
3981    pub fn policy_token(&self) -> Option<SyntaxToken> {
3982        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3983    }
3984    #[inline]
3985    pub fn select_token(&self) -> Option<SyntaxToken> {
3986        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3987    }
3988    #[inline]
3989    pub fn to_token(&self) -> Option<SyntaxToken> {
3990        support::token(&self.syntax, SyntaxKind::TO_KW)
3991    }
3992    #[inline]
3993    pub fn update_token(&self) -> Option<SyntaxToken> {
3994        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3995    }
3996    #[inline]
3997    pub fn using_token(&self) -> Option<SyntaxToken> {
3998        support::token(&self.syntax, SyntaxKind::USING_KW)
3999    }
4000    #[inline]
4001    pub fn with_token(&self) -> Option<SyntaxToken> {
4002        support::token(&self.syntax, SyntaxKind::WITH_KW)
4003    }
4004}
4005
4006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4007pub struct CreateProcedure {
4008    pub(crate) syntax: SyntaxNode,
4009}
4010impl CreateProcedure {
4011    #[inline]
4012    pub fn option_list(&self) -> Option<FuncOptionList> {
4013        support::child(&self.syntax)
4014    }
4015    #[inline]
4016    pub fn or_replace(&self) -> Option<OrReplace> {
4017        support::child(&self.syntax)
4018    }
4019    #[inline]
4020    pub fn param_list(&self) -> Option<ParamList> {
4021        support::child(&self.syntax)
4022    }
4023    #[inline]
4024    pub fn path(&self) -> Option<Path> {
4025        support::child(&self.syntax)
4026    }
4027    #[inline]
4028    pub fn create_token(&self) -> Option<SyntaxToken> {
4029        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4030    }
4031    #[inline]
4032    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4033        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4034    }
4035}
4036
4037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4038pub struct CreatePublication {
4039    pub(crate) syntax: SyntaxNode,
4040}
4041impl CreatePublication {
4042    #[inline]
4043    pub fn name(&self) -> Option<Name> {
4044        support::child(&self.syntax)
4045    }
4046    #[inline]
4047    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4048        support::children(&self.syntax)
4049    }
4050    #[inline]
4051    pub fn with_params(&self) -> Option<WithParams> {
4052        support::child(&self.syntax)
4053    }
4054    #[inline]
4055    pub fn all_token(&self) -> Option<SyntaxToken> {
4056        support::token(&self.syntax, SyntaxKind::ALL_KW)
4057    }
4058    #[inline]
4059    pub fn create_token(&self) -> Option<SyntaxToken> {
4060        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4061    }
4062    #[inline]
4063    pub fn for_token(&self) -> Option<SyntaxToken> {
4064        support::token(&self.syntax, SyntaxKind::FOR_KW)
4065    }
4066    #[inline]
4067    pub fn publication_token(&self) -> Option<SyntaxToken> {
4068        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4069    }
4070    #[inline]
4071    pub fn tables_token(&self) -> Option<SyntaxToken> {
4072        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4073    }
4074}
4075
4076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4077pub struct CreateRole {
4078    pub(crate) syntax: SyntaxNode,
4079}
4080impl CreateRole {
4081    #[inline]
4082    pub fn name(&self) -> Option<Name> {
4083        support::child(&self.syntax)
4084    }
4085    #[inline]
4086    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4087        support::child(&self.syntax)
4088    }
4089    #[inline]
4090    pub fn create_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4092    }
4093    #[inline]
4094    pub fn role_token(&self) -> Option<SyntaxToken> {
4095        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4096    }
4097}
4098
4099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4100pub struct CreateRule {
4101    pub(crate) syntax: SyntaxNode,
4102}
4103impl CreateRule {
4104    #[inline]
4105    pub fn name(&self) -> Option<Name> {
4106        support::child(&self.syntax)
4107    }
4108    #[inline]
4109    pub fn or_replace(&self) -> Option<OrReplace> {
4110        support::child(&self.syntax)
4111    }
4112    #[inline]
4113    pub fn path(&self) -> Option<Path> {
4114        support::child(&self.syntax)
4115    }
4116    #[inline]
4117    pub fn stmt(&self) -> Option<Stmt> {
4118        support::child(&self.syntax)
4119    }
4120    #[inline]
4121    pub fn stmts(&self) -> AstChildren<Stmt> {
4122        support::children(&self.syntax)
4123    }
4124    #[inline]
4125    pub fn where_clause(&self) -> Option<WhereClause> {
4126        support::child(&self.syntax)
4127    }
4128    #[inline]
4129    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4130        support::token(&self.syntax, SyntaxKind::L_PAREN)
4131    }
4132    #[inline]
4133    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4134        support::token(&self.syntax, SyntaxKind::R_PAREN)
4135    }
4136    #[inline]
4137    pub fn also_token(&self) -> Option<SyntaxToken> {
4138        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4139    }
4140    #[inline]
4141    pub fn as_token(&self) -> Option<SyntaxToken> {
4142        support::token(&self.syntax, SyntaxKind::AS_KW)
4143    }
4144    #[inline]
4145    pub fn create_token(&self) -> Option<SyntaxToken> {
4146        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4147    }
4148    #[inline]
4149    pub fn delete_token(&self) -> Option<SyntaxToken> {
4150        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4151    }
4152    #[inline]
4153    pub fn do_token(&self) -> Option<SyntaxToken> {
4154        support::token(&self.syntax, SyntaxKind::DO_KW)
4155    }
4156    #[inline]
4157    pub fn ident_token(&self) -> Option<SyntaxToken> {
4158        support::token(&self.syntax, SyntaxKind::IDENT)
4159    }
4160    #[inline]
4161    pub fn insert_token(&self) -> Option<SyntaxToken> {
4162        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4163    }
4164    #[inline]
4165    pub fn instead_token(&self) -> Option<SyntaxToken> {
4166        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4167    }
4168    #[inline]
4169    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4170        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4171    }
4172    #[inline]
4173    pub fn on_token(&self) -> Option<SyntaxToken> {
4174        support::token(&self.syntax, SyntaxKind::ON_KW)
4175    }
4176    #[inline]
4177    pub fn rule_token(&self) -> Option<SyntaxToken> {
4178        support::token(&self.syntax, SyntaxKind::RULE_KW)
4179    }
4180    #[inline]
4181    pub fn select_token(&self) -> Option<SyntaxToken> {
4182        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4183    }
4184    #[inline]
4185    pub fn to_token(&self) -> Option<SyntaxToken> {
4186        support::token(&self.syntax, SyntaxKind::TO_KW)
4187    }
4188    #[inline]
4189    pub fn update_token(&self) -> Option<SyntaxToken> {
4190        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4191    }
4192}
4193
4194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4195pub struct CreateSchema {
4196    pub(crate) syntax: SyntaxNode,
4197}
4198impl CreateSchema {
4199    #[inline]
4200    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4201        support::child(&self.syntax)
4202    }
4203    #[inline]
4204    pub fn name(&self) -> Option<Name> {
4205        support::child(&self.syntax)
4206    }
4207    #[inline]
4208    pub fn role(&self) -> Option<Role> {
4209        support::child(&self.syntax)
4210    }
4211    #[inline]
4212    pub fn role_ref(&self) -> Option<RoleRef> {
4213        support::child(&self.syntax)
4214    }
4215    #[inline]
4216    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4217        support::children(&self.syntax)
4218    }
4219    #[inline]
4220    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4221        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4222    }
4223    #[inline]
4224    pub fn create_token(&self) -> Option<SyntaxToken> {
4225        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4226    }
4227    #[inline]
4228    pub fn schema_token(&self) -> Option<SyntaxToken> {
4229        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4230    }
4231}
4232
4233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4234pub struct CreateSequence {
4235    pub(crate) syntax: SyntaxNode,
4236}
4237impl CreateSequence {
4238    #[inline]
4239    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4240        support::child(&self.syntax)
4241    }
4242    #[inline]
4243    pub fn path(&self) -> Option<Path> {
4244        support::child(&self.syntax)
4245    }
4246    #[inline]
4247    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4248        support::children(&self.syntax)
4249    }
4250    #[inline]
4251    pub fn create_token(&self) -> Option<SyntaxToken> {
4252        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4253    }
4254    #[inline]
4255    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4256        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4257    }
4258    #[inline]
4259    pub fn temp_token(&self) -> Option<SyntaxToken> {
4260        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4261    }
4262    #[inline]
4263    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4264        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4265    }
4266    #[inline]
4267    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4268        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4269    }
4270}
4271
4272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4273pub struct CreateServer {
4274    pub(crate) syntax: SyntaxNode,
4275}
4276impl CreateServer {
4277    #[inline]
4278    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4279        support::child(&self.syntax)
4280    }
4281    #[inline]
4282    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4283        support::child(&self.syntax)
4284    }
4285    #[inline]
4286    pub fn literal(&self) -> Option<Literal> {
4287        support::child(&self.syntax)
4288    }
4289    #[inline]
4290    pub fn name(&self) -> Option<Name> {
4291        support::child(&self.syntax)
4292    }
4293    #[inline]
4294    pub fn name_ref(&self) -> Option<NameRef> {
4295        support::child(&self.syntax)
4296    }
4297    #[inline]
4298    pub fn create_token(&self) -> Option<SyntaxToken> {
4299        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4300    }
4301    #[inline]
4302    pub fn data_token(&self) -> Option<SyntaxToken> {
4303        support::token(&self.syntax, SyntaxKind::DATA_KW)
4304    }
4305    #[inline]
4306    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4307        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4308    }
4309    #[inline]
4310    pub fn server_token(&self) -> Option<SyntaxToken> {
4311        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4312    }
4313    #[inline]
4314    pub fn type_token(&self) -> Option<SyntaxToken> {
4315        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4316    }
4317    #[inline]
4318    pub fn version_token(&self) -> Option<SyntaxToken> {
4319        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4320    }
4321    #[inline]
4322    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4323        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4324    }
4325}
4326
4327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4328pub struct CreateStatistics {
4329    pub(crate) syntax: SyntaxNode,
4330}
4331impl CreateStatistics {
4332    #[inline]
4333    pub fn from_table(&self) -> Option<FromTable> {
4334        support::child(&self.syntax)
4335    }
4336    #[inline]
4337    pub fn name_refs(&self) -> AstChildren<NameRef> {
4338        support::children(&self.syntax)
4339    }
4340    #[inline]
4341    pub fn path(&self) -> Option<Path> {
4342        support::child(&self.syntax)
4343    }
4344    #[inline]
4345    pub fn create_token(&self) -> Option<SyntaxToken> {
4346        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4347    }
4348    #[inline]
4349    pub fn on_token(&self) -> Option<SyntaxToken> {
4350        support::token(&self.syntax, SyntaxKind::ON_KW)
4351    }
4352    #[inline]
4353    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4354        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4355    }
4356}
4357
4358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4359pub struct CreateSubscription {
4360    pub(crate) syntax: SyntaxNode,
4361}
4362impl CreateSubscription {
4363    #[inline]
4364    pub fn literal(&self) -> Option<Literal> {
4365        support::child(&self.syntax)
4366    }
4367    #[inline]
4368    pub fn name(&self) -> Option<Name> {
4369        support::child(&self.syntax)
4370    }
4371    #[inline]
4372    pub fn name_refs(&self) -> AstChildren<NameRef> {
4373        support::children(&self.syntax)
4374    }
4375    #[inline]
4376    pub fn with_params(&self) -> Option<WithParams> {
4377        support::child(&self.syntax)
4378    }
4379    #[inline]
4380    pub fn connection_token(&self) -> Option<SyntaxToken> {
4381        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4382    }
4383    #[inline]
4384    pub fn create_token(&self) -> Option<SyntaxToken> {
4385        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4386    }
4387    #[inline]
4388    pub fn publication_token(&self) -> Option<SyntaxToken> {
4389        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4390    }
4391    #[inline]
4392    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4393        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4394    }
4395}
4396
4397#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4398pub struct CreateTable {
4399    pub(crate) syntax: SyntaxNode,
4400}
4401impl CreateTable {
4402    #[inline]
4403    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4404        support::child(&self.syntax)
4405    }
4406    #[inline]
4407    pub fn inherits(&self) -> Option<Inherits> {
4408        support::child(&self.syntax)
4409    }
4410    #[inline]
4411    pub fn of_type(&self) -> Option<OfType> {
4412        support::child(&self.syntax)
4413    }
4414    #[inline]
4415    pub fn on_commit(&self) -> Option<OnCommit> {
4416        support::child(&self.syntax)
4417    }
4418    #[inline]
4419    pub fn partition_by(&self) -> Option<PartitionBy> {
4420        support::child(&self.syntax)
4421    }
4422    #[inline]
4423    pub fn partition_of(&self) -> Option<PartitionOf> {
4424        support::child(&self.syntax)
4425    }
4426    #[inline]
4427    pub fn path(&self) -> Option<Path> {
4428        support::child(&self.syntax)
4429    }
4430    #[inline]
4431    pub fn table_arg_list(&self) -> Option<TableArgList> {
4432        support::child(&self.syntax)
4433    }
4434    #[inline]
4435    pub fn tablespace(&self) -> Option<Tablespace> {
4436        support::child(&self.syntax)
4437    }
4438    #[inline]
4439    pub fn using_method(&self) -> Option<UsingMethod> {
4440        support::child(&self.syntax)
4441    }
4442    #[inline]
4443    pub fn with_params(&self) -> Option<WithParams> {
4444        support::child(&self.syntax)
4445    }
4446    #[inline]
4447    pub fn without_oids(&self) -> Option<WithoutOids> {
4448        support::child(&self.syntax)
4449    }
4450    #[inline]
4451    pub fn create_token(&self) -> Option<SyntaxToken> {
4452        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4453    }
4454    #[inline]
4455    pub fn global_token(&self) -> Option<SyntaxToken> {
4456        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4457    }
4458    #[inline]
4459    pub fn local_token(&self) -> Option<SyntaxToken> {
4460        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4461    }
4462    #[inline]
4463    pub fn table_token(&self) -> Option<SyntaxToken> {
4464        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4465    }
4466    #[inline]
4467    pub fn temp_token(&self) -> Option<SyntaxToken> {
4468        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4469    }
4470    #[inline]
4471    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4472        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4473    }
4474    #[inline]
4475    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4476        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4477    }
4478}
4479
4480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4481pub struct CreateTableAs {
4482    pub(crate) syntax: SyntaxNode,
4483}
4484impl CreateTableAs {
4485    #[inline]
4486    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4487        support::child(&self.syntax)
4488    }
4489    #[inline]
4490    pub fn on_commit(&self) -> Option<OnCommit> {
4491        support::child(&self.syntax)
4492    }
4493    #[inline]
4494    pub fn path(&self) -> Option<Path> {
4495        support::child(&self.syntax)
4496    }
4497    #[inline]
4498    pub fn query(&self) -> Option<SelectVariant> {
4499        support::child(&self.syntax)
4500    }
4501    #[inline]
4502    pub fn tablespace(&self) -> Option<Tablespace> {
4503        support::child(&self.syntax)
4504    }
4505    #[inline]
4506    pub fn using_method(&self) -> Option<UsingMethod> {
4507        support::child(&self.syntax)
4508    }
4509    #[inline]
4510    pub fn with_data(&self) -> Option<WithData> {
4511        support::child(&self.syntax)
4512    }
4513    #[inline]
4514    pub fn with_no_data(&self) -> Option<WithNoData> {
4515        support::child(&self.syntax)
4516    }
4517    #[inline]
4518    pub fn with_params(&self) -> Option<WithParams> {
4519        support::child(&self.syntax)
4520    }
4521    #[inline]
4522    pub fn without_oids(&self) -> Option<WithoutOids> {
4523        support::child(&self.syntax)
4524    }
4525    #[inline]
4526    pub fn as_token(&self) -> Option<SyntaxToken> {
4527        support::token(&self.syntax, SyntaxKind::AS_KW)
4528    }
4529    #[inline]
4530    pub fn create_token(&self) -> Option<SyntaxToken> {
4531        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4532    }
4533    #[inline]
4534    pub fn global_token(&self) -> Option<SyntaxToken> {
4535        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4536    }
4537    #[inline]
4538    pub fn local_token(&self) -> Option<SyntaxToken> {
4539        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4540    }
4541    #[inline]
4542    pub fn table_token(&self) -> Option<SyntaxToken> {
4543        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4544    }
4545    #[inline]
4546    pub fn temp_token(&self) -> Option<SyntaxToken> {
4547        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4548    }
4549    #[inline]
4550    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4551        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4552    }
4553    #[inline]
4554    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4555        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4556    }
4557}
4558
4559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4560pub struct CreateTablespace {
4561    pub(crate) syntax: SyntaxNode,
4562}
4563impl CreateTablespace {
4564    #[inline]
4565    pub fn literal(&self) -> Option<Literal> {
4566        support::child(&self.syntax)
4567    }
4568    #[inline]
4569    pub fn name(&self) -> Option<Name> {
4570        support::child(&self.syntax)
4571    }
4572    #[inline]
4573    pub fn role_ref(&self) -> Option<RoleRef> {
4574        support::child(&self.syntax)
4575    }
4576    #[inline]
4577    pub fn with_params(&self) -> Option<WithParams> {
4578        support::child(&self.syntax)
4579    }
4580    #[inline]
4581    pub fn create_token(&self) -> Option<SyntaxToken> {
4582        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4583    }
4584    #[inline]
4585    pub fn location_token(&self) -> Option<SyntaxToken> {
4586        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4587    }
4588    #[inline]
4589    pub fn owner_token(&self) -> Option<SyntaxToken> {
4590        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4591    }
4592    #[inline]
4593    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4594        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4595    }
4596}
4597
4598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4599pub struct CreateTextSearchConfiguration {
4600    pub(crate) syntax: SyntaxNode,
4601}
4602impl CreateTextSearchConfiguration {
4603    #[inline]
4604    pub fn attribute_list(&self) -> Option<AttributeList> {
4605        support::child(&self.syntax)
4606    }
4607    #[inline]
4608    pub fn path(&self) -> Option<Path> {
4609        support::child(&self.syntax)
4610    }
4611    #[inline]
4612    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4613        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4614    }
4615    #[inline]
4616    pub fn create_token(&self) -> Option<SyntaxToken> {
4617        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4618    }
4619    #[inline]
4620    pub fn search_token(&self) -> Option<SyntaxToken> {
4621        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4622    }
4623    #[inline]
4624    pub fn text_token(&self) -> Option<SyntaxToken> {
4625        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4626    }
4627}
4628
4629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4630pub struct CreateTextSearchDictionary {
4631    pub(crate) syntax: SyntaxNode,
4632}
4633impl CreateTextSearchDictionary {
4634    #[inline]
4635    pub fn attribute_list(&self) -> Option<AttributeList> {
4636        support::child(&self.syntax)
4637    }
4638    #[inline]
4639    pub fn path(&self) -> Option<Path> {
4640        support::child(&self.syntax)
4641    }
4642    #[inline]
4643    pub fn create_token(&self) -> Option<SyntaxToken> {
4644        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4645    }
4646    #[inline]
4647    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4648        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4649    }
4650    #[inline]
4651    pub fn search_token(&self) -> Option<SyntaxToken> {
4652        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4653    }
4654    #[inline]
4655    pub fn text_token(&self) -> Option<SyntaxToken> {
4656        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4657    }
4658}
4659
4660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4661pub struct CreateTextSearchParser {
4662    pub(crate) syntax: SyntaxNode,
4663}
4664impl CreateTextSearchParser {
4665    #[inline]
4666    pub fn attribute_list(&self) -> Option<AttributeList> {
4667        support::child(&self.syntax)
4668    }
4669    #[inline]
4670    pub fn path(&self) -> Option<Path> {
4671        support::child(&self.syntax)
4672    }
4673    #[inline]
4674    pub fn create_token(&self) -> Option<SyntaxToken> {
4675        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4676    }
4677    #[inline]
4678    pub fn parser_token(&self) -> Option<SyntaxToken> {
4679        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4680    }
4681    #[inline]
4682    pub fn search_token(&self) -> Option<SyntaxToken> {
4683        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4684    }
4685    #[inline]
4686    pub fn text_token(&self) -> Option<SyntaxToken> {
4687        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4688    }
4689}
4690
4691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4692pub struct CreateTextSearchTemplate {
4693    pub(crate) syntax: SyntaxNode,
4694}
4695impl CreateTextSearchTemplate {
4696    #[inline]
4697    pub fn attribute_list(&self) -> Option<AttributeList> {
4698        support::child(&self.syntax)
4699    }
4700    #[inline]
4701    pub fn path(&self) -> Option<Path> {
4702        support::child(&self.syntax)
4703    }
4704    #[inline]
4705    pub fn create_token(&self) -> Option<SyntaxToken> {
4706        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4707    }
4708    #[inline]
4709    pub fn search_token(&self) -> Option<SyntaxToken> {
4710        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4711    }
4712    #[inline]
4713    pub fn template_token(&self) -> Option<SyntaxToken> {
4714        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4715    }
4716    #[inline]
4717    pub fn text_token(&self) -> Option<SyntaxToken> {
4718        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4719    }
4720}
4721
4722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4723pub struct CreateTransform {
4724    pub(crate) syntax: SyntaxNode,
4725}
4726impl CreateTransform {
4727    #[inline]
4728    pub fn from_func(&self) -> Option<TransformFromFunc> {
4729        support::child(&self.syntax)
4730    }
4731    #[inline]
4732    pub fn language(&self) -> Option<NameRef> {
4733        support::child(&self.syntax)
4734    }
4735    #[inline]
4736    pub fn or_replace(&self) -> Option<OrReplace> {
4737        support::child(&self.syntax)
4738    }
4739    #[inline]
4740    pub fn to_func(&self) -> Option<TransformToFunc> {
4741        support::child(&self.syntax)
4742    }
4743    #[inline]
4744    pub fn ty(&self) -> Option<Type> {
4745        support::child(&self.syntax)
4746    }
4747    #[inline]
4748    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4749        support::token(&self.syntax, SyntaxKind::L_PAREN)
4750    }
4751    #[inline]
4752    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4753        support::token(&self.syntax, SyntaxKind::R_PAREN)
4754    }
4755    #[inline]
4756    pub fn comma_token(&self) -> Option<SyntaxToken> {
4757        support::token(&self.syntax, SyntaxKind::COMMA)
4758    }
4759    #[inline]
4760    pub fn create_token(&self) -> Option<SyntaxToken> {
4761        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4762    }
4763    #[inline]
4764    pub fn for_token(&self) -> Option<SyntaxToken> {
4765        support::token(&self.syntax, SyntaxKind::FOR_KW)
4766    }
4767    #[inline]
4768    pub fn language_token(&self) -> Option<SyntaxToken> {
4769        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4770    }
4771    #[inline]
4772    pub fn transform_token(&self) -> Option<SyntaxToken> {
4773        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4774    }
4775}
4776
4777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4778pub struct CreateTrigger {
4779    pub(crate) syntax: SyntaxNode,
4780}
4781impl CreateTrigger {
4782    #[inline]
4783    pub fn call_expr(&self) -> Option<CallExpr> {
4784        support::child(&self.syntax)
4785    }
4786    #[inline]
4787    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4788        support::child(&self.syntax)
4789    }
4790    #[inline]
4791    pub fn from_table(&self) -> Option<FromTable> {
4792        support::child(&self.syntax)
4793    }
4794    #[inline]
4795    pub fn initially_deferred_constraint_option(
4796        &self,
4797    ) -> Option<InitiallyDeferredConstraintOption> {
4798        support::child(&self.syntax)
4799    }
4800    #[inline]
4801    pub fn initially_immediate_constraint_option(
4802        &self,
4803    ) -> Option<InitiallyImmediateConstraintOption> {
4804        support::child(&self.syntax)
4805    }
4806    #[inline]
4807    pub fn name(&self) -> Option<Name> {
4808        support::child(&self.syntax)
4809    }
4810    #[inline]
4811    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4812        support::child(&self.syntax)
4813    }
4814    #[inline]
4815    pub fn on_table(&self) -> Option<OnTable> {
4816        support::child(&self.syntax)
4817    }
4818    #[inline]
4819    pub fn or_replace(&self) -> Option<OrReplace> {
4820        support::child(&self.syntax)
4821    }
4822    #[inline]
4823    pub fn referencing(&self) -> Option<Referencing> {
4824        support::child(&self.syntax)
4825    }
4826    #[inline]
4827    pub fn timing(&self) -> Option<Timing> {
4828        support::child(&self.syntax)
4829    }
4830    #[inline]
4831    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
4832        support::child(&self.syntax)
4833    }
4834    #[inline]
4835    pub fn when_condition(&self) -> Option<WhenCondition> {
4836        support::child(&self.syntax)
4837    }
4838    #[inline]
4839    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4840        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4841    }
4842    #[inline]
4843    pub fn create_token(&self) -> Option<SyntaxToken> {
4844        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4845    }
4846    #[inline]
4847    pub fn each_token(&self) -> Option<SyntaxToken> {
4848        support::token(&self.syntax, SyntaxKind::EACH_KW)
4849    }
4850    #[inline]
4851    pub fn execute_token(&self) -> Option<SyntaxToken> {
4852        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4853    }
4854    #[inline]
4855    pub fn for_token(&self) -> Option<SyntaxToken> {
4856        support::token(&self.syntax, SyntaxKind::FOR_KW)
4857    }
4858    #[inline]
4859    pub fn function_token(&self) -> Option<SyntaxToken> {
4860        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4861    }
4862    #[inline]
4863    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4864        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4865    }
4866    #[inline]
4867    pub fn row_token(&self) -> Option<SyntaxToken> {
4868        support::token(&self.syntax, SyntaxKind::ROW_KW)
4869    }
4870    #[inline]
4871    pub fn statement_token(&self) -> Option<SyntaxToken> {
4872        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
4873    }
4874    #[inline]
4875    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4876        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4877    }
4878}
4879
4880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4881pub struct CreateType {
4882    pub(crate) syntax: SyntaxNode,
4883}
4884impl CreateType {
4885    #[inline]
4886    pub fn attribute_list(&self) -> Option<AttributeList> {
4887        support::child(&self.syntax)
4888    }
4889    #[inline]
4890    pub fn column_list(&self) -> Option<ColumnList> {
4891        support::child(&self.syntax)
4892    }
4893    #[inline]
4894    pub fn path(&self) -> Option<Path> {
4895        support::child(&self.syntax)
4896    }
4897    #[inline]
4898    pub fn variant_list(&self) -> Option<VariantList> {
4899        support::child(&self.syntax)
4900    }
4901    #[inline]
4902    pub fn as_token(&self) -> Option<SyntaxToken> {
4903        support::token(&self.syntax, SyntaxKind::AS_KW)
4904    }
4905    #[inline]
4906    pub fn create_token(&self) -> Option<SyntaxToken> {
4907        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4908    }
4909    #[inline]
4910    pub fn enum_token(&self) -> Option<SyntaxToken> {
4911        support::token(&self.syntax, SyntaxKind::ENUM_KW)
4912    }
4913    #[inline]
4914    pub fn range_token(&self) -> Option<SyntaxToken> {
4915        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4916    }
4917    #[inline]
4918    pub fn type_token(&self) -> Option<SyntaxToken> {
4919        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4920    }
4921}
4922
4923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4924pub struct CreateUser {
4925    pub(crate) syntax: SyntaxNode,
4926}
4927impl CreateUser {
4928    #[inline]
4929    pub fn name(&self) -> Option<Name> {
4930        support::child(&self.syntax)
4931    }
4932    #[inline]
4933    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4934        support::child(&self.syntax)
4935    }
4936    #[inline]
4937    pub fn create_token(&self) -> Option<SyntaxToken> {
4938        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4939    }
4940    #[inline]
4941    pub fn user_token(&self) -> Option<SyntaxToken> {
4942        support::token(&self.syntax, SyntaxKind::USER_KW)
4943    }
4944}
4945
4946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4947pub struct CreateUserMapping {
4948    pub(crate) syntax: SyntaxNode,
4949}
4950impl CreateUserMapping {
4951    #[inline]
4952    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4953        support::child(&self.syntax)
4954    }
4955    #[inline]
4956    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4957        support::child(&self.syntax)
4958    }
4959    #[inline]
4960    pub fn role_ref(&self) -> Option<RoleRef> {
4961        support::child(&self.syntax)
4962    }
4963    #[inline]
4964    pub fn server_name(&self) -> Option<ServerName> {
4965        support::child(&self.syntax)
4966    }
4967    #[inline]
4968    pub fn create_token(&self) -> Option<SyntaxToken> {
4969        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4970    }
4971    #[inline]
4972    pub fn for_token(&self) -> Option<SyntaxToken> {
4973        support::token(&self.syntax, SyntaxKind::FOR_KW)
4974    }
4975    #[inline]
4976    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4977        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4978    }
4979    #[inline]
4980    pub fn user_token(&self) -> Option<SyntaxToken> {
4981        support::token(&self.syntax, SyntaxKind::USER_KW)
4982    }
4983}
4984
4985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4986pub struct CreateView {
4987    pub(crate) syntax: SyntaxNode,
4988}
4989impl CreateView {
4990    #[inline]
4991    pub fn column_list(&self) -> Option<ColumnList> {
4992        support::child(&self.syntax)
4993    }
4994    #[inline]
4995    pub fn or_replace(&self) -> Option<OrReplace> {
4996        support::child(&self.syntax)
4997    }
4998    #[inline]
4999    pub fn path(&self) -> Option<Path> {
5000        support::child(&self.syntax)
5001    }
5002    #[inline]
5003    pub fn query(&self) -> Option<SelectVariant> {
5004        support::child(&self.syntax)
5005    }
5006    #[inline]
5007    pub fn with_params(&self) -> Option<WithParams> {
5008        support::child(&self.syntax)
5009    }
5010    #[inline]
5011    pub fn as_token(&self) -> Option<SyntaxToken> {
5012        support::token(&self.syntax, SyntaxKind::AS_KW)
5013    }
5014    #[inline]
5015    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5016        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5017    }
5018    #[inline]
5019    pub fn check_token(&self) -> Option<SyntaxToken> {
5020        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5021    }
5022    #[inline]
5023    pub fn create_token(&self) -> Option<SyntaxToken> {
5024        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5025    }
5026    #[inline]
5027    pub fn local_token(&self) -> Option<SyntaxToken> {
5028        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5029    }
5030    #[inline]
5031    pub fn option_token(&self) -> Option<SyntaxToken> {
5032        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5033    }
5034    #[inline]
5035    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5036        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5037    }
5038    #[inline]
5039    pub fn temp_token(&self) -> Option<SyntaxToken> {
5040        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5041    }
5042    #[inline]
5043    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5044        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5045    }
5046    #[inline]
5047    pub fn view_token(&self) -> Option<SyntaxToken> {
5048        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5049    }
5050    #[inline]
5051    pub fn with_token(&self) -> Option<SyntaxToken> {
5052        support::token(&self.syntax, SyntaxKind::WITH_KW)
5053    }
5054}
5055
5056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5057pub struct CustomOp {
5058    pub(crate) syntax: SyntaxNode,
5059}
5060impl CustomOp {
5061    #[inline]
5062    pub fn bang_token(&self) -> Option<SyntaxToken> {
5063        support::token(&self.syntax, SyntaxKind::BANG)
5064    }
5065    #[inline]
5066    pub fn pound_token(&self) -> Option<SyntaxToken> {
5067        support::token(&self.syntax, SyntaxKind::POUND)
5068    }
5069    #[inline]
5070    pub fn percent_token(&self) -> Option<SyntaxToken> {
5071        support::token(&self.syntax, SyntaxKind::PERCENT)
5072    }
5073    #[inline]
5074    pub fn amp_token(&self) -> Option<SyntaxToken> {
5075        support::token(&self.syntax, SyntaxKind::AMP)
5076    }
5077    #[inline]
5078    pub fn star_token(&self) -> Option<SyntaxToken> {
5079        support::token(&self.syntax, SyntaxKind::STAR)
5080    }
5081    #[inline]
5082    pub fn plus_token(&self) -> Option<SyntaxToken> {
5083        support::token(&self.syntax, SyntaxKind::PLUS)
5084    }
5085    #[inline]
5086    pub fn minus_token(&self) -> Option<SyntaxToken> {
5087        support::token(&self.syntax, SyntaxKind::MINUS)
5088    }
5089    #[inline]
5090    pub fn slash_token(&self) -> Option<SyntaxToken> {
5091        support::token(&self.syntax, SyntaxKind::SLASH)
5092    }
5093    #[inline]
5094    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5095        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5096    }
5097    #[inline]
5098    pub fn eq_token(&self) -> Option<SyntaxToken> {
5099        support::token(&self.syntax, SyntaxKind::EQ)
5100    }
5101    #[inline]
5102    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5103        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5104    }
5105    #[inline]
5106    pub fn question_token(&self) -> Option<SyntaxToken> {
5107        support::token(&self.syntax, SyntaxKind::QUESTION)
5108    }
5109    #[inline]
5110    pub fn at_token(&self) -> Option<SyntaxToken> {
5111        support::token(&self.syntax, SyntaxKind::AT)
5112    }
5113    #[inline]
5114    pub fn caret_token(&self) -> Option<SyntaxToken> {
5115        support::token(&self.syntax, SyntaxKind::CARET)
5116    }
5117    #[inline]
5118    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5119        support::token(&self.syntax, SyntaxKind::BACKTICK)
5120    }
5121    #[inline]
5122    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5123        support::token(&self.syntax, SyntaxKind::PIPE)
5124    }
5125    #[inline]
5126    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5127        support::token(&self.syntax, SyntaxKind::TILDE)
5128    }
5129}
5130
5131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5132pub struct Deallocate {
5133    pub(crate) syntax: SyntaxNode,
5134}
5135impl Deallocate {
5136    #[inline]
5137    pub fn name_ref(&self) -> Option<NameRef> {
5138        support::child(&self.syntax)
5139    }
5140    #[inline]
5141    pub fn all_token(&self) -> Option<SyntaxToken> {
5142        support::token(&self.syntax, SyntaxKind::ALL_KW)
5143    }
5144    #[inline]
5145    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5146        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5147    }
5148    #[inline]
5149    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5150        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5151    }
5152}
5153
5154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5155pub struct Declare {
5156    pub(crate) syntax: SyntaxNode,
5157}
5158impl Declare {
5159    #[inline]
5160    pub fn name(&self) -> Option<Name> {
5161        support::child(&self.syntax)
5162    }
5163    #[inline]
5164    pub fn query(&self) -> Option<SelectVariant> {
5165        support::child(&self.syntax)
5166    }
5167    #[inline]
5168    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5169        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5170    }
5171    #[inline]
5172    pub fn binary_token(&self) -> Option<SyntaxToken> {
5173        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5174    }
5175    #[inline]
5176    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5177        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5178    }
5179    #[inline]
5180    pub fn declare_token(&self) -> Option<SyntaxToken> {
5181        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5182    }
5183    #[inline]
5184    pub fn for_token(&self) -> Option<SyntaxToken> {
5185        support::token(&self.syntax, SyntaxKind::FOR_KW)
5186    }
5187    #[inline]
5188    pub fn hold_token(&self) -> Option<SyntaxToken> {
5189        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5190    }
5191    #[inline]
5192    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5193        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5194    }
5195    #[inline]
5196    pub fn no_token(&self) -> Option<SyntaxToken> {
5197        support::token(&self.syntax, SyntaxKind::NO_KW)
5198    }
5199    #[inline]
5200    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5201        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5202    }
5203    #[inline]
5204    pub fn with_token(&self) -> Option<SyntaxToken> {
5205        support::token(&self.syntax, SyntaxKind::WITH_KW)
5206    }
5207    #[inline]
5208    pub fn without_token(&self) -> Option<SyntaxToken> {
5209        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5210    }
5211}
5212
5213#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5214pub struct DefaultConstraint {
5215    pub(crate) syntax: SyntaxNode,
5216}
5217impl DefaultConstraint {
5218    #[inline]
5219    pub fn expr(&self) -> Option<Expr> {
5220        support::child(&self.syntax)
5221    }
5222    #[inline]
5223    pub fn name_ref(&self) -> Option<NameRef> {
5224        support::child(&self.syntax)
5225    }
5226    #[inline]
5227    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5228        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5229    }
5230    #[inline]
5231    pub fn default_token(&self) -> Option<SyntaxToken> {
5232        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5233    }
5234}
5235
5236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5237pub struct Deferrable {
5238    pub(crate) syntax: SyntaxNode,
5239}
5240impl Deferrable {
5241    #[inline]
5242    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5243        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5244    }
5245}
5246
5247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5248pub struct DeferrableConstraintOption {
5249    pub(crate) syntax: SyntaxNode,
5250}
5251impl DeferrableConstraintOption {
5252    #[inline]
5253    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5254        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5255    }
5256}
5257
5258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5259pub struct Delete {
5260    pub(crate) syntax: SyntaxNode,
5261}
5262impl Delete {
5263    #[inline]
5264    pub fn alias(&self) -> Option<Alias> {
5265        support::child(&self.syntax)
5266    }
5267    #[inline]
5268    pub fn relation_name(&self) -> Option<RelationName> {
5269        support::child(&self.syntax)
5270    }
5271    #[inline]
5272    pub fn returning_clause(&self) -> Option<ReturningClause> {
5273        support::child(&self.syntax)
5274    }
5275    #[inline]
5276    pub fn using_clause(&self) -> Option<UsingClause> {
5277        support::child(&self.syntax)
5278    }
5279    #[inline]
5280    pub fn where_clause(&self) -> Option<WhereClause> {
5281        support::child(&self.syntax)
5282    }
5283    #[inline]
5284    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5285        support::child(&self.syntax)
5286    }
5287    #[inline]
5288    pub fn with_clause(&self) -> Option<WithClause> {
5289        support::child(&self.syntax)
5290    }
5291    #[inline]
5292    pub fn delete_token(&self) -> Option<SyntaxToken> {
5293        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5294    }
5295    #[inline]
5296    pub fn from_token(&self) -> Option<SyntaxToken> {
5297        support::token(&self.syntax, SyntaxKind::FROM_KW)
5298    }
5299}
5300
5301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5302pub struct DeleteRows {
5303    pub(crate) syntax: SyntaxNode,
5304}
5305impl DeleteRows {
5306    #[inline]
5307    pub fn delete_token(&self) -> Option<SyntaxToken> {
5308        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5309    }
5310    #[inline]
5311    pub fn rows_token(&self) -> Option<SyntaxToken> {
5312        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5313    }
5314}
5315
5316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5317pub struct DependsOnExtension {
5318    pub(crate) syntax: SyntaxNode,
5319}
5320impl DependsOnExtension {
5321    #[inline]
5322    pub fn name_ref(&self) -> Option<NameRef> {
5323        support::child(&self.syntax)
5324    }
5325    #[inline]
5326    pub fn depends_token(&self) -> Option<SyntaxToken> {
5327        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5328    }
5329    #[inline]
5330    pub fn extension_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5332    }
5333    #[inline]
5334    pub fn on_token(&self) -> Option<SyntaxToken> {
5335        support::token(&self.syntax, SyntaxKind::ON_KW)
5336    }
5337}
5338
5339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5340pub struct DetachPartition {
5341    pub(crate) syntax: SyntaxNode,
5342}
5343impl DetachPartition {
5344    #[inline]
5345    pub fn detach_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5347    }
5348    #[inline]
5349    pub fn partition_token(&self) -> Option<SyntaxToken> {
5350        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5351    }
5352}
5353
5354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5355pub struct DisableRls {
5356    pub(crate) syntax: SyntaxNode,
5357}
5358impl DisableRls {
5359    #[inline]
5360    pub fn disable_token(&self) -> Option<SyntaxToken> {
5361        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5362    }
5363    #[inline]
5364    pub fn level_token(&self) -> Option<SyntaxToken> {
5365        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5366    }
5367    #[inline]
5368    pub fn row_token(&self) -> Option<SyntaxToken> {
5369        support::token(&self.syntax, SyntaxKind::ROW_KW)
5370    }
5371    #[inline]
5372    pub fn security_token(&self) -> Option<SyntaxToken> {
5373        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5374    }
5375}
5376
5377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5378pub struct DisableRule {
5379    pub(crate) syntax: SyntaxNode,
5380}
5381impl DisableRule {
5382    #[inline]
5383    pub fn disable_token(&self) -> Option<SyntaxToken> {
5384        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5385    }
5386    #[inline]
5387    pub fn rule_token(&self) -> Option<SyntaxToken> {
5388        support::token(&self.syntax, SyntaxKind::RULE_KW)
5389    }
5390}
5391
5392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5393pub struct DisableTrigger {
5394    pub(crate) syntax: SyntaxNode,
5395}
5396impl DisableTrigger {
5397    #[inline]
5398    pub fn disable_token(&self) -> Option<SyntaxToken> {
5399        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5400    }
5401    #[inline]
5402    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5403        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5404    }
5405}
5406
5407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5408pub struct Discard {
5409    pub(crate) syntax: SyntaxNode,
5410}
5411impl Discard {
5412    #[inline]
5413    pub fn all_token(&self) -> Option<SyntaxToken> {
5414        support::token(&self.syntax, SyntaxKind::ALL_KW)
5415    }
5416    #[inline]
5417    pub fn discard_token(&self) -> Option<SyntaxToken> {
5418        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5419    }
5420    #[inline]
5421    pub fn plans_token(&self) -> Option<SyntaxToken> {
5422        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5423    }
5424    #[inline]
5425    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5426        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5427    }
5428    #[inline]
5429    pub fn temp_token(&self) -> Option<SyntaxToken> {
5430        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5431    }
5432    #[inline]
5433    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5434        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5435    }
5436}
5437
5438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5439pub struct DistinctClause {
5440    pub(crate) syntax: SyntaxNode,
5441}
5442impl DistinctClause {
5443    #[inline]
5444    pub fn exprs(&self) -> AstChildren<Expr> {
5445        support::children(&self.syntax)
5446    }
5447    #[inline]
5448    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5449        support::token(&self.syntax, SyntaxKind::L_PAREN)
5450    }
5451    #[inline]
5452    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5453        support::token(&self.syntax, SyntaxKind::R_PAREN)
5454    }
5455    #[inline]
5456    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5457        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5458    }
5459    #[inline]
5460    pub fn on_token(&self) -> Option<SyntaxToken> {
5461        support::token(&self.syntax, SyntaxKind::ON_KW)
5462    }
5463}
5464
5465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5466pub struct Do {
5467    pub(crate) syntax: SyntaxNode,
5468}
5469impl Do {
5470    #[inline]
5471    pub fn do_token(&self) -> Option<SyntaxToken> {
5472        support::token(&self.syntax, SyntaxKind::DO_KW)
5473    }
5474}
5475
5476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5477pub struct DoubleType {
5478    pub(crate) syntax: SyntaxNode,
5479}
5480impl DoubleType {
5481    #[inline]
5482    pub fn double_token(&self) -> Option<SyntaxToken> {
5483        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5484    }
5485    #[inline]
5486    pub fn precision_token(&self) -> Option<SyntaxToken> {
5487        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5488    }
5489}
5490
5491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5492pub struct Drop {
5493    pub(crate) syntax: SyntaxNode,
5494}
5495impl Drop {
5496    #[inline]
5497    pub fn drop_token(&self) -> Option<SyntaxToken> {
5498        support::token(&self.syntax, SyntaxKind::DROP_KW)
5499    }
5500}
5501
5502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5503pub struct DropAccessMethod {
5504    pub(crate) syntax: SyntaxNode,
5505}
5506impl DropAccessMethod {
5507    #[inline]
5508    pub fn if_exists(&self) -> Option<IfExists> {
5509        support::child(&self.syntax)
5510    }
5511    #[inline]
5512    pub fn name_ref(&self) -> Option<NameRef> {
5513        support::child(&self.syntax)
5514    }
5515    #[inline]
5516    pub fn access_token(&self) -> Option<SyntaxToken> {
5517        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5518    }
5519    #[inline]
5520    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5521        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5522    }
5523    #[inline]
5524    pub fn drop_token(&self) -> Option<SyntaxToken> {
5525        support::token(&self.syntax, SyntaxKind::DROP_KW)
5526    }
5527    #[inline]
5528    pub fn method_token(&self) -> Option<SyntaxToken> {
5529        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5530    }
5531    #[inline]
5532    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5533        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5534    }
5535}
5536
5537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5538pub struct DropAggregate {
5539    pub(crate) syntax: SyntaxNode,
5540}
5541impl DropAggregate {
5542    #[inline]
5543    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5544        support::children(&self.syntax)
5545    }
5546    #[inline]
5547    pub fn if_exists(&self) -> Option<IfExists> {
5548        support::child(&self.syntax)
5549    }
5550    #[inline]
5551    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5552        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5553    }
5554    #[inline]
5555    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5556        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5557    }
5558    #[inline]
5559    pub fn drop_token(&self) -> Option<SyntaxToken> {
5560        support::token(&self.syntax, SyntaxKind::DROP_KW)
5561    }
5562    #[inline]
5563    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5564        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5565    }
5566}
5567
5568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5569pub struct DropCast {
5570    pub(crate) syntax: SyntaxNode,
5571}
5572impl DropCast {
5573    #[inline]
5574    pub fn cast_sig(&self) -> Option<CastSig> {
5575        support::child(&self.syntax)
5576    }
5577    #[inline]
5578    pub fn if_exists(&self) -> Option<IfExists> {
5579        support::child(&self.syntax)
5580    }
5581    #[inline]
5582    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5583        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5584    }
5585    #[inline]
5586    pub fn cast_token(&self) -> Option<SyntaxToken> {
5587        support::token(&self.syntax, SyntaxKind::CAST_KW)
5588    }
5589    #[inline]
5590    pub fn drop_token(&self) -> Option<SyntaxToken> {
5591        support::token(&self.syntax, SyntaxKind::DROP_KW)
5592    }
5593    #[inline]
5594    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5595        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5596    }
5597}
5598
5599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5600pub struct DropCollation {
5601    pub(crate) syntax: SyntaxNode,
5602}
5603impl DropCollation {
5604    #[inline]
5605    pub fn if_exists(&self) -> Option<IfExists> {
5606        support::child(&self.syntax)
5607    }
5608    #[inline]
5609    pub fn paths(&self) -> AstChildren<Path> {
5610        support::children(&self.syntax)
5611    }
5612    #[inline]
5613    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5614        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5615    }
5616    #[inline]
5617    pub fn collation_token(&self) -> Option<SyntaxToken> {
5618        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5619    }
5620    #[inline]
5621    pub fn drop_token(&self) -> Option<SyntaxToken> {
5622        support::token(&self.syntax, SyntaxKind::DROP_KW)
5623    }
5624    #[inline]
5625    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5626        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5627    }
5628}
5629
5630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5631pub struct DropColumn {
5632    pub(crate) syntax: SyntaxNode,
5633}
5634impl DropColumn {
5635    #[inline]
5636    pub fn if_exists(&self) -> Option<IfExists> {
5637        support::child(&self.syntax)
5638    }
5639    #[inline]
5640    pub fn name_ref(&self) -> Option<NameRef> {
5641        support::child(&self.syntax)
5642    }
5643    #[inline]
5644    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5645        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5646    }
5647    #[inline]
5648    pub fn column_token(&self) -> Option<SyntaxToken> {
5649        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5650    }
5651    #[inline]
5652    pub fn drop_token(&self) -> Option<SyntaxToken> {
5653        support::token(&self.syntax, SyntaxKind::DROP_KW)
5654    }
5655    #[inline]
5656    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5657        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5658    }
5659}
5660
5661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5662pub struct DropConstraint {
5663    pub(crate) syntax: SyntaxNode,
5664}
5665impl DropConstraint {
5666    #[inline]
5667    pub fn if_exists(&self) -> Option<IfExists> {
5668        support::child(&self.syntax)
5669    }
5670    #[inline]
5671    pub fn name_ref(&self) -> Option<NameRef> {
5672        support::child(&self.syntax)
5673    }
5674    #[inline]
5675    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5676        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5677    }
5678    #[inline]
5679    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5680        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5681    }
5682    #[inline]
5683    pub fn drop_token(&self) -> Option<SyntaxToken> {
5684        support::token(&self.syntax, SyntaxKind::DROP_KW)
5685    }
5686    #[inline]
5687    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5688        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5689    }
5690}
5691
5692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5693pub struct DropConversion {
5694    pub(crate) syntax: SyntaxNode,
5695}
5696impl DropConversion {
5697    #[inline]
5698    pub fn if_exists(&self) -> Option<IfExists> {
5699        support::child(&self.syntax)
5700    }
5701    #[inline]
5702    pub fn path(&self) -> Option<Path> {
5703        support::child(&self.syntax)
5704    }
5705    #[inline]
5706    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5707        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5708    }
5709    #[inline]
5710    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5711        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5712    }
5713    #[inline]
5714    pub fn drop_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::DROP_KW)
5716    }
5717    #[inline]
5718    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5720    }
5721}
5722
5723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5724pub struct DropDatabase {
5725    pub(crate) syntax: SyntaxNode,
5726}
5727impl DropDatabase {
5728    #[inline]
5729    pub fn if_exists(&self) -> Option<IfExists> {
5730        support::child(&self.syntax)
5731    }
5732    #[inline]
5733    pub fn name_ref(&self) -> Option<NameRef> {
5734        support::child(&self.syntax)
5735    }
5736    #[inline]
5737    pub fn database_token(&self) -> Option<SyntaxToken> {
5738        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5739    }
5740    #[inline]
5741    pub fn drop_token(&self) -> Option<SyntaxToken> {
5742        support::token(&self.syntax, SyntaxKind::DROP_KW)
5743    }
5744}
5745
5746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5747pub struct DropDefault {
5748    pub(crate) syntax: SyntaxNode,
5749}
5750impl DropDefault {
5751    #[inline]
5752    pub fn default_token(&self) -> Option<SyntaxToken> {
5753        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5754    }
5755    #[inline]
5756    pub fn drop_token(&self) -> Option<SyntaxToken> {
5757        support::token(&self.syntax, SyntaxKind::DROP_KW)
5758    }
5759}
5760
5761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5762pub struct DropDomain {
5763    pub(crate) syntax: SyntaxNode,
5764}
5765impl DropDomain {
5766    #[inline]
5767    pub fn if_exists(&self) -> Option<IfExists> {
5768        support::child(&self.syntax)
5769    }
5770    #[inline]
5771    pub fn paths(&self) -> AstChildren<Path> {
5772        support::children(&self.syntax)
5773    }
5774    #[inline]
5775    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5776        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5777    }
5778    #[inline]
5779    pub fn domain_token(&self) -> Option<SyntaxToken> {
5780        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5781    }
5782    #[inline]
5783    pub fn drop_token(&self) -> Option<SyntaxToken> {
5784        support::token(&self.syntax, SyntaxKind::DROP_KW)
5785    }
5786    #[inline]
5787    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5788        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5789    }
5790}
5791
5792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5793pub struct DropEventTrigger {
5794    pub(crate) syntax: SyntaxNode,
5795}
5796impl DropEventTrigger {
5797    #[inline]
5798    pub fn if_exists(&self) -> Option<IfExists> {
5799        support::child(&self.syntax)
5800    }
5801    #[inline]
5802    pub fn name_ref(&self) -> Option<NameRef> {
5803        support::child(&self.syntax)
5804    }
5805    #[inline]
5806    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5807        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5808    }
5809    #[inline]
5810    pub fn drop_token(&self) -> Option<SyntaxToken> {
5811        support::token(&self.syntax, SyntaxKind::DROP_KW)
5812    }
5813    #[inline]
5814    pub fn event_token(&self) -> Option<SyntaxToken> {
5815        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5816    }
5817    #[inline]
5818    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5819        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5820    }
5821    #[inline]
5822    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5823        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5824    }
5825}
5826
5827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5828pub struct DropExpression {
5829    pub(crate) syntax: SyntaxNode,
5830}
5831impl DropExpression {
5832    #[inline]
5833    pub fn if_exists(&self) -> Option<IfExists> {
5834        support::child(&self.syntax)
5835    }
5836    #[inline]
5837    pub fn drop_token(&self) -> Option<SyntaxToken> {
5838        support::token(&self.syntax, SyntaxKind::DROP_KW)
5839    }
5840    #[inline]
5841    pub fn expression_token(&self) -> Option<SyntaxToken> {
5842        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
5843    }
5844}
5845
5846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5847pub struct DropExtension {
5848    pub(crate) syntax: SyntaxNode,
5849}
5850impl DropExtension {
5851    #[inline]
5852    pub fn if_exists(&self) -> Option<IfExists> {
5853        support::child(&self.syntax)
5854    }
5855    #[inline]
5856    pub fn name_refs(&self) -> AstChildren<NameRef> {
5857        support::children(&self.syntax)
5858    }
5859    #[inline]
5860    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5861        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5862    }
5863    #[inline]
5864    pub fn drop_token(&self) -> Option<SyntaxToken> {
5865        support::token(&self.syntax, SyntaxKind::DROP_KW)
5866    }
5867    #[inline]
5868    pub fn extension_token(&self) -> Option<SyntaxToken> {
5869        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5870    }
5871    #[inline]
5872    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5873        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5874    }
5875}
5876
5877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5878pub struct DropForeignDataWrapper {
5879    pub(crate) syntax: SyntaxNode,
5880}
5881impl DropForeignDataWrapper {
5882    #[inline]
5883    pub fn if_exists(&self) -> Option<IfExists> {
5884        support::child(&self.syntax)
5885    }
5886    #[inline]
5887    pub fn name_refs(&self) -> AstChildren<NameRef> {
5888        support::children(&self.syntax)
5889    }
5890    #[inline]
5891    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5892        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5893    }
5894    #[inline]
5895    pub fn data_token(&self) -> Option<SyntaxToken> {
5896        support::token(&self.syntax, SyntaxKind::DATA_KW)
5897    }
5898    #[inline]
5899    pub fn drop_token(&self) -> Option<SyntaxToken> {
5900        support::token(&self.syntax, SyntaxKind::DROP_KW)
5901    }
5902    #[inline]
5903    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5904        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5905    }
5906    #[inline]
5907    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5908        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5909    }
5910    #[inline]
5911    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5912        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5913    }
5914}
5915
5916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5917pub struct DropForeignTable {
5918    pub(crate) syntax: SyntaxNode,
5919}
5920impl DropForeignTable {
5921    #[inline]
5922    pub fn if_exists(&self) -> Option<IfExists> {
5923        support::child(&self.syntax)
5924    }
5925    #[inline]
5926    pub fn path(&self) -> Option<Path> {
5927        support::child(&self.syntax)
5928    }
5929    #[inline]
5930    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5931        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5932    }
5933    #[inline]
5934    pub fn drop_token(&self) -> Option<SyntaxToken> {
5935        support::token(&self.syntax, SyntaxKind::DROP_KW)
5936    }
5937    #[inline]
5938    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5939        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5940    }
5941    #[inline]
5942    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5943        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5944    }
5945    #[inline]
5946    pub fn table_token(&self) -> Option<SyntaxToken> {
5947        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5948    }
5949}
5950
5951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5952pub struct DropFunction {
5953    pub(crate) syntax: SyntaxNode,
5954}
5955impl DropFunction {
5956    #[inline]
5957    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
5958        support::child(&self.syntax)
5959    }
5960    #[inline]
5961    pub fn if_exists(&self) -> Option<IfExists> {
5962        support::child(&self.syntax)
5963    }
5964    #[inline]
5965    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5966        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5967    }
5968    #[inline]
5969    pub fn drop_token(&self) -> Option<SyntaxToken> {
5970        support::token(&self.syntax, SyntaxKind::DROP_KW)
5971    }
5972    #[inline]
5973    pub fn function_token(&self) -> Option<SyntaxToken> {
5974        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5975    }
5976    #[inline]
5977    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5978        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5979    }
5980}
5981
5982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5983pub struct DropGroup {
5984    pub(crate) syntax: SyntaxNode,
5985}
5986impl DropGroup {
5987    #[inline]
5988    pub fn if_exists(&self) -> Option<IfExists> {
5989        support::child(&self.syntax)
5990    }
5991    #[inline]
5992    pub fn name_refs(&self) -> AstChildren<NameRef> {
5993        support::children(&self.syntax)
5994    }
5995    #[inline]
5996    pub fn drop_token(&self) -> Option<SyntaxToken> {
5997        support::token(&self.syntax, SyntaxKind::DROP_KW)
5998    }
5999    #[inline]
6000    pub fn group_token(&self) -> Option<SyntaxToken> {
6001        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6002    }
6003}
6004
6005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6006pub struct DropIdentity {
6007    pub(crate) syntax: SyntaxNode,
6008}
6009impl DropIdentity {
6010    #[inline]
6011    pub fn if_exists(&self) -> Option<IfExists> {
6012        support::child(&self.syntax)
6013    }
6014    #[inline]
6015    pub fn drop_token(&self) -> Option<SyntaxToken> {
6016        support::token(&self.syntax, SyntaxKind::DROP_KW)
6017    }
6018    #[inline]
6019    pub fn identity_token(&self) -> Option<SyntaxToken> {
6020        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6021    }
6022}
6023
6024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6025pub struct DropIndex {
6026    pub(crate) syntax: SyntaxNode,
6027}
6028impl DropIndex {
6029    #[inline]
6030    pub fn if_exists(&self) -> Option<IfExists> {
6031        support::child(&self.syntax)
6032    }
6033    #[inline]
6034    pub fn paths(&self) -> AstChildren<Path> {
6035        support::children(&self.syntax)
6036    }
6037    #[inline]
6038    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6039        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6040    }
6041    #[inline]
6042    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6043        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6044    }
6045    #[inline]
6046    pub fn drop_token(&self) -> Option<SyntaxToken> {
6047        support::token(&self.syntax, SyntaxKind::DROP_KW)
6048    }
6049    #[inline]
6050    pub fn index_token(&self) -> Option<SyntaxToken> {
6051        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6052    }
6053    #[inline]
6054    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6055        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6056    }
6057}
6058
6059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6060pub struct DropLanguage {
6061    pub(crate) syntax: SyntaxNode,
6062}
6063impl DropLanguage {
6064    #[inline]
6065    pub fn if_exists(&self) -> Option<IfExists> {
6066        support::child(&self.syntax)
6067    }
6068    #[inline]
6069    pub fn name_ref(&self) -> Option<NameRef> {
6070        support::child(&self.syntax)
6071    }
6072    #[inline]
6073    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6074        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6075    }
6076    #[inline]
6077    pub fn drop_token(&self) -> Option<SyntaxToken> {
6078        support::token(&self.syntax, SyntaxKind::DROP_KW)
6079    }
6080    #[inline]
6081    pub fn language_token(&self) -> Option<SyntaxToken> {
6082        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6083    }
6084    #[inline]
6085    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6086        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6087    }
6088    #[inline]
6089    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6090        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6091    }
6092}
6093
6094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6095pub struct DropMaterializedView {
6096    pub(crate) syntax: SyntaxNode,
6097}
6098impl DropMaterializedView {
6099    #[inline]
6100    pub fn if_exists(&self) -> Option<IfExists> {
6101        support::child(&self.syntax)
6102    }
6103    #[inline]
6104    pub fn paths(&self) -> AstChildren<Path> {
6105        support::children(&self.syntax)
6106    }
6107    #[inline]
6108    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6109        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6110    }
6111    #[inline]
6112    pub fn drop_token(&self) -> Option<SyntaxToken> {
6113        support::token(&self.syntax, SyntaxKind::DROP_KW)
6114    }
6115    #[inline]
6116    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6117        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6118    }
6119    #[inline]
6120    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6121        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6122    }
6123    #[inline]
6124    pub fn view_token(&self) -> Option<SyntaxToken> {
6125        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6126    }
6127}
6128
6129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6130pub struct DropNotNull {
6131    pub(crate) syntax: SyntaxNode,
6132}
6133impl DropNotNull {
6134    #[inline]
6135    pub fn drop_token(&self) -> Option<SyntaxToken> {
6136        support::token(&self.syntax, SyntaxKind::DROP_KW)
6137    }
6138    #[inline]
6139    pub fn not_token(&self) -> Option<SyntaxToken> {
6140        support::token(&self.syntax, SyntaxKind::NOT_KW)
6141    }
6142    #[inline]
6143    pub fn null_token(&self) -> Option<SyntaxToken> {
6144        support::token(&self.syntax, SyntaxKind::NULL_KW)
6145    }
6146}
6147
6148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6149pub struct DropOpClassOption {
6150    pub(crate) syntax: SyntaxNode,
6151}
6152impl DropOpClassOption {
6153    #[inline]
6154    pub fn literal(&self) -> Option<Literal> {
6155        support::child(&self.syntax)
6156    }
6157    #[inline]
6158    pub fn param_list(&self) -> Option<ParamList> {
6159        support::child(&self.syntax)
6160    }
6161    #[inline]
6162    pub fn function_token(&self) -> Option<SyntaxToken> {
6163        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6164    }
6165    #[inline]
6166    pub fn operator_token(&self) -> Option<SyntaxToken> {
6167        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6168    }
6169}
6170
6171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6172pub struct DropOpClassOptionList {
6173    pub(crate) syntax: SyntaxNode,
6174}
6175impl DropOpClassOptionList {
6176    #[inline]
6177    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6178        support::children(&self.syntax)
6179    }
6180}
6181
6182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6183pub struct DropOpClassOptions {
6184    pub(crate) syntax: SyntaxNode,
6185}
6186impl DropOpClassOptions {
6187    #[inline]
6188    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6189        support::child(&self.syntax)
6190    }
6191    #[inline]
6192    pub fn drop_token(&self) -> Option<SyntaxToken> {
6193        support::token(&self.syntax, SyntaxKind::DROP_KW)
6194    }
6195}
6196
6197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6198pub struct DropOperator {
6199    pub(crate) syntax: SyntaxNode,
6200}
6201impl DropOperator {
6202    #[inline]
6203    pub fn if_exists(&self) -> Option<IfExists> {
6204        support::child(&self.syntax)
6205    }
6206    #[inline]
6207    pub fn op_sig_list(&self) -> Option<OpSigList> {
6208        support::child(&self.syntax)
6209    }
6210    #[inline]
6211    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6212        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6213    }
6214    #[inline]
6215    pub fn drop_token(&self) -> Option<SyntaxToken> {
6216        support::token(&self.syntax, SyntaxKind::DROP_KW)
6217    }
6218    #[inline]
6219    pub fn operator_token(&self) -> Option<SyntaxToken> {
6220        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6221    }
6222    #[inline]
6223    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6224        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6225    }
6226}
6227
6228#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6229pub struct DropOperatorClass {
6230    pub(crate) syntax: SyntaxNode,
6231}
6232impl DropOperatorClass {
6233    #[inline]
6234    pub fn if_exists(&self) -> Option<IfExists> {
6235        support::child(&self.syntax)
6236    }
6237    #[inline]
6238    pub fn name_ref(&self) -> Option<NameRef> {
6239        support::child(&self.syntax)
6240    }
6241    #[inline]
6242    pub fn path(&self) -> Option<Path> {
6243        support::child(&self.syntax)
6244    }
6245    #[inline]
6246    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6247        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6248    }
6249    #[inline]
6250    pub fn class_token(&self) -> Option<SyntaxToken> {
6251        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6252    }
6253    #[inline]
6254    pub fn drop_token(&self) -> Option<SyntaxToken> {
6255        support::token(&self.syntax, SyntaxKind::DROP_KW)
6256    }
6257    #[inline]
6258    pub fn operator_token(&self) -> Option<SyntaxToken> {
6259        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6260    }
6261    #[inline]
6262    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6263        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6264    }
6265    #[inline]
6266    pub fn using_token(&self) -> Option<SyntaxToken> {
6267        support::token(&self.syntax, SyntaxKind::USING_KW)
6268    }
6269}
6270
6271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6272pub struct DropOperatorFamily {
6273    pub(crate) syntax: SyntaxNode,
6274}
6275impl DropOperatorFamily {
6276    #[inline]
6277    pub fn if_exists(&self) -> Option<IfExists> {
6278        support::child(&self.syntax)
6279    }
6280    #[inline]
6281    pub fn name_ref(&self) -> Option<NameRef> {
6282        support::child(&self.syntax)
6283    }
6284    #[inline]
6285    pub fn path(&self) -> Option<Path> {
6286        support::child(&self.syntax)
6287    }
6288    #[inline]
6289    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6290        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6291    }
6292    #[inline]
6293    pub fn drop_token(&self) -> Option<SyntaxToken> {
6294        support::token(&self.syntax, SyntaxKind::DROP_KW)
6295    }
6296    #[inline]
6297    pub fn family_token(&self) -> Option<SyntaxToken> {
6298        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6299    }
6300    #[inline]
6301    pub fn operator_token(&self) -> Option<SyntaxToken> {
6302        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6303    }
6304    #[inline]
6305    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6306        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6307    }
6308    #[inline]
6309    pub fn using_token(&self) -> Option<SyntaxToken> {
6310        support::token(&self.syntax, SyntaxKind::USING_KW)
6311    }
6312}
6313
6314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6315pub struct DropOwned {
6316    pub(crate) syntax: SyntaxNode,
6317}
6318impl DropOwned {
6319    #[inline]
6320    pub fn role_ref_list(&self) -> Option<RoleRefList> {
6321        support::child(&self.syntax)
6322    }
6323    #[inline]
6324    pub fn by_token(&self) -> Option<SyntaxToken> {
6325        support::token(&self.syntax, SyntaxKind::BY_KW)
6326    }
6327    #[inline]
6328    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6329        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6330    }
6331    #[inline]
6332    pub fn drop_token(&self) -> Option<SyntaxToken> {
6333        support::token(&self.syntax, SyntaxKind::DROP_KW)
6334    }
6335    #[inline]
6336    pub fn owned_token(&self) -> Option<SyntaxToken> {
6337        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6338    }
6339    #[inline]
6340    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6341        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6342    }
6343}
6344
6345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6346pub struct DropPolicy {
6347    pub(crate) syntax: SyntaxNode,
6348}
6349impl DropPolicy {
6350    #[inline]
6351    pub fn if_exists(&self) -> Option<IfExists> {
6352        support::child(&self.syntax)
6353    }
6354    #[inline]
6355    pub fn name_ref(&self) -> Option<NameRef> {
6356        support::child(&self.syntax)
6357    }
6358    #[inline]
6359    pub fn on_table(&self) -> Option<OnTable> {
6360        support::child(&self.syntax)
6361    }
6362    #[inline]
6363    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6364        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6365    }
6366    #[inline]
6367    pub fn drop_token(&self) -> Option<SyntaxToken> {
6368        support::token(&self.syntax, SyntaxKind::DROP_KW)
6369    }
6370    #[inline]
6371    pub fn policy_token(&self) -> Option<SyntaxToken> {
6372        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6373    }
6374    #[inline]
6375    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6376        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6377    }
6378}
6379
6380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6381pub struct DropProcedure {
6382    pub(crate) syntax: SyntaxNode,
6383}
6384impl DropProcedure {
6385    #[inline]
6386    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6387        support::child(&self.syntax)
6388    }
6389    #[inline]
6390    pub fn if_exists(&self) -> Option<IfExists> {
6391        support::child(&self.syntax)
6392    }
6393    #[inline]
6394    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6395        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6396    }
6397    #[inline]
6398    pub fn drop_token(&self) -> Option<SyntaxToken> {
6399        support::token(&self.syntax, SyntaxKind::DROP_KW)
6400    }
6401    #[inline]
6402    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6403        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6404    }
6405    #[inline]
6406    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6407        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6408    }
6409}
6410
6411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6412pub struct DropPublication {
6413    pub(crate) syntax: SyntaxNode,
6414}
6415impl DropPublication {
6416    #[inline]
6417    pub fn if_exists(&self) -> Option<IfExists> {
6418        support::child(&self.syntax)
6419    }
6420    #[inline]
6421    pub fn name_refs(&self) -> AstChildren<NameRef> {
6422        support::children(&self.syntax)
6423    }
6424    #[inline]
6425    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6426        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6427    }
6428    #[inline]
6429    pub fn drop_token(&self) -> Option<SyntaxToken> {
6430        support::token(&self.syntax, SyntaxKind::DROP_KW)
6431    }
6432    #[inline]
6433    pub fn publication_token(&self) -> Option<SyntaxToken> {
6434        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6435    }
6436    #[inline]
6437    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6438        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6439    }
6440}
6441
6442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6443pub struct DropRole {
6444    pub(crate) syntax: SyntaxNode,
6445}
6446impl DropRole {
6447    #[inline]
6448    pub fn if_exists(&self) -> Option<IfExists> {
6449        support::child(&self.syntax)
6450    }
6451    #[inline]
6452    pub fn name_refs(&self) -> AstChildren<NameRef> {
6453        support::children(&self.syntax)
6454    }
6455    #[inline]
6456    pub fn drop_token(&self) -> Option<SyntaxToken> {
6457        support::token(&self.syntax, SyntaxKind::DROP_KW)
6458    }
6459    #[inline]
6460    pub fn role_token(&self) -> Option<SyntaxToken> {
6461        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6462    }
6463}
6464
6465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6466pub struct DropRoutine {
6467    pub(crate) syntax: SyntaxNode,
6468}
6469impl DropRoutine {
6470    #[inline]
6471    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6472        support::child(&self.syntax)
6473    }
6474    #[inline]
6475    pub fn if_exists(&self) -> Option<IfExists> {
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 restrict_token(&self) -> Option<SyntaxToken> {
6488        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6489    }
6490    #[inline]
6491    pub fn routine_token(&self) -> Option<SyntaxToken> {
6492        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6493    }
6494}
6495
6496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6497pub struct DropRule {
6498    pub(crate) syntax: SyntaxNode,
6499}
6500impl DropRule {
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 on_table(&self) -> Option<OnTable> {
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 drop_token(&self) -> Option<SyntaxToken> {
6519        support::token(&self.syntax, SyntaxKind::DROP_KW)
6520    }
6521    #[inline]
6522    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6523        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6524    }
6525    #[inline]
6526    pub fn rule_token(&self) -> Option<SyntaxToken> {
6527        support::token(&self.syntax, SyntaxKind::RULE_KW)
6528    }
6529}
6530
6531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6532pub struct DropSchema {
6533    pub(crate) syntax: SyntaxNode,
6534}
6535impl DropSchema {
6536    #[inline]
6537    pub fn if_exists(&self) -> Option<IfExists> {
6538        support::child(&self.syntax)
6539    }
6540    #[inline]
6541    pub fn name_refs(&self) -> AstChildren<NameRef> {
6542        support::children(&self.syntax)
6543    }
6544    #[inline]
6545    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6546        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6547    }
6548    #[inline]
6549    pub fn drop_token(&self) -> Option<SyntaxToken> {
6550        support::token(&self.syntax, SyntaxKind::DROP_KW)
6551    }
6552    #[inline]
6553    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6554        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6555    }
6556    #[inline]
6557    pub fn schema_token(&self) -> Option<SyntaxToken> {
6558        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6559    }
6560}
6561
6562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6563pub struct DropSequence {
6564    pub(crate) syntax: SyntaxNode,
6565}
6566impl DropSequence {
6567    #[inline]
6568    pub fn if_exists(&self) -> Option<IfExists> {
6569        support::child(&self.syntax)
6570    }
6571    #[inline]
6572    pub fn paths(&self) -> AstChildren<Path> {
6573        support::children(&self.syntax)
6574    }
6575    #[inline]
6576    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6577        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6578    }
6579    #[inline]
6580    pub fn drop_token(&self) -> Option<SyntaxToken> {
6581        support::token(&self.syntax, SyntaxKind::DROP_KW)
6582    }
6583    #[inline]
6584    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6585        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6586    }
6587    #[inline]
6588    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6589        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6590    }
6591}
6592
6593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6594pub struct DropServer {
6595    pub(crate) syntax: SyntaxNode,
6596}
6597impl DropServer {
6598    #[inline]
6599    pub fn if_exists(&self) -> Option<IfExists> {
6600        support::child(&self.syntax)
6601    }
6602    #[inline]
6603    pub fn name_ref(&self) -> Option<NameRef> {
6604        support::child(&self.syntax)
6605    }
6606    #[inline]
6607    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6608        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6609    }
6610    #[inline]
6611    pub fn drop_token(&self) -> Option<SyntaxToken> {
6612        support::token(&self.syntax, SyntaxKind::DROP_KW)
6613    }
6614    #[inline]
6615    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6616        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6617    }
6618    #[inline]
6619    pub fn server_token(&self) -> Option<SyntaxToken> {
6620        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6621    }
6622}
6623
6624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6625pub struct DropStatistics {
6626    pub(crate) syntax: SyntaxNode,
6627}
6628impl DropStatistics {
6629    #[inline]
6630    pub fn if_exists(&self) -> Option<IfExists> {
6631        support::child(&self.syntax)
6632    }
6633    #[inline]
6634    pub fn paths(&self) -> AstChildren<Path> {
6635        support::children(&self.syntax)
6636    }
6637    #[inline]
6638    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6639        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6640    }
6641    #[inline]
6642    pub fn drop_token(&self) -> Option<SyntaxToken> {
6643        support::token(&self.syntax, SyntaxKind::DROP_KW)
6644    }
6645    #[inline]
6646    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6647        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6648    }
6649    #[inline]
6650    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6651        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6652    }
6653}
6654
6655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6656pub struct DropSubscription {
6657    pub(crate) syntax: SyntaxNode,
6658}
6659impl DropSubscription {
6660    #[inline]
6661    pub fn if_exists(&self) -> Option<IfExists> {
6662        support::child(&self.syntax)
6663    }
6664    #[inline]
6665    pub fn name_ref(&self) -> Option<NameRef> {
6666        support::child(&self.syntax)
6667    }
6668    #[inline]
6669    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6670        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6671    }
6672    #[inline]
6673    pub fn drop_token(&self) -> Option<SyntaxToken> {
6674        support::token(&self.syntax, SyntaxKind::DROP_KW)
6675    }
6676    #[inline]
6677    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6678        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6679    }
6680    #[inline]
6681    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6682        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6683    }
6684}
6685
6686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6687pub struct DropTable {
6688    pub(crate) syntax: SyntaxNode,
6689}
6690impl DropTable {
6691    #[inline]
6692    pub fn if_exists(&self) -> Option<IfExists> {
6693        support::child(&self.syntax)
6694    }
6695    #[inline]
6696    pub fn path(&self) -> Option<Path> {
6697        support::child(&self.syntax)
6698    }
6699    #[inline]
6700    pub fn comma_token(&self) -> Option<SyntaxToken> {
6701        support::token(&self.syntax, SyntaxKind::COMMA)
6702    }
6703    #[inline]
6704    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6705        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6706    }
6707    #[inline]
6708    pub fn drop_token(&self) -> Option<SyntaxToken> {
6709        support::token(&self.syntax, SyntaxKind::DROP_KW)
6710    }
6711    #[inline]
6712    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6713        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6714    }
6715    #[inline]
6716    pub fn table_token(&self) -> Option<SyntaxToken> {
6717        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6718    }
6719}
6720
6721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6722pub struct DropTablespace {
6723    pub(crate) syntax: SyntaxNode,
6724}
6725impl DropTablespace {
6726    #[inline]
6727    pub fn if_exists(&self) -> Option<IfExists> {
6728        support::child(&self.syntax)
6729    }
6730    #[inline]
6731    pub fn name_ref(&self) -> Option<NameRef> {
6732        support::child(&self.syntax)
6733    }
6734    #[inline]
6735    pub fn drop_token(&self) -> Option<SyntaxToken> {
6736        support::token(&self.syntax, SyntaxKind::DROP_KW)
6737    }
6738    #[inline]
6739    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6740        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6741    }
6742}
6743
6744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6745pub struct DropTextSearchConfig {
6746    pub(crate) syntax: SyntaxNode,
6747}
6748impl DropTextSearchConfig {
6749    #[inline]
6750    pub fn if_exists(&self) -> Option<IfExists> {
6751        support::child(&self.syntax)
6752    }
6753    #[inline]
6754    pub fn path(&self) -> Option<Path> {
6755        support::child(&self.syntax)
6756    }
6757    #[inline]
6758    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6759        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6760    }
6761    #[inline]
6762    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6763        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6764    }
6765    #[inline]
6766    pub fn drop_token(&self) -> Option<SyntaxToken> {
6767        support::token(&self.syntax, SyntaxKind::DROP_KW)
6768    }
6769    #[inline]
6770    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6771        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6772    }
6773    #[inline]
6774    pub fn search_token(&self) -> Option<SyntaxToken> {
6775        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6776    }
6777    #[inline]
6778    pub fn text_token(&self) -> Option<SyntaxToken> {
6779        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6780    }
6781}
6782
6783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6784pub struct DropTextSearchDict {
6785    pub(crate) syntax: SyntaxNode,
6786}
6787impl DropTextSearchDict {
6788    #[inline]
6789    pub fn if_exists(&self) -> Option<IfExists> {
6790        support::child(&self.syntax)
6791    }
6792    #[inline]
6793    pub fn path(&self) -> Option<Path> {
6794        support::child(&self.syntax)
6795    }
6796    #[inline]
6797    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6798        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6799    }
6800    #[inline]
6801    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6802        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6803    }
6804    #[inline]
6805    pub fn drop_token(&self) -> Option<SyntaxToken> {
6806        support::token(&self.syntax, SyntaxKind::DROP_KW)
6807    }
6808    #[inline]
6809    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6810        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6811    }
6812    #[inline]
6813    pub fn search_token(&self) -> Option<SyntaxToken> {
6814        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6815    }
6816    #[inline]
6817    pub fn text_token(&self) -> Option<SyntaxToken> {
6818        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6819    }
6820}
6821
6822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6823pub struct DropTextSearchParser {
6824    pub(crate) syntax: SyntaxNode,
6825}
6826impl DropTextSearchParser {
6827    #[inline]
6828    pub fn if_exists(&self) -> Option<IfExists> {
6829        support::child(&self.syntax)
6830    }
6831    #[inline]
6832    pub fn path(&self) -> Option<Path> {
6833        support::child(&self.syntax)
6834    }
6835    #[inline]
6836    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6837        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6838    }
6839    #[inline]
6840    pub fn drop_token(&self) -> Option<SyntaxToken> {
6841        support::token(&self.syntax, SyntaxKind::DROP_KW)
6842    }
6843    #[inline]
6844    pub fn parser_token(&self) -> Option<SyntaxToken> {
6845        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6846    }
6847    #[inline]
6848    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6849        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6850    }
6851    #[inline]
6852    pub fn search_token(&self) -> Option<SyntaxToken> {
6853        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6854    }
6855    #[inline]
6856    pub fn text_token(&self) -> Option<SyntaxToken> {
6857        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6858    }
6859}
6860
6861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6862pub struct DropTextSearchTemplate {
6863    pub(crate) syntax: SyntaxNode,
6864}
6865impl DropTextSearchTemplate {
6866    #[inline]
6867    pub fn if_exists(&self) -> Option<IfExists> {
6868        support::child(&self.syntax)
6869    }
6870    #[inline]
6871    pub fn path(&self) -> Option<Path> {
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 search_token(&self) -> Option<SyntaxToken> {
6888        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6889    }
6890    #[inline]
6891    pub fn template_token(&self) -> Option<SyntaxToken> {
6892        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6893    }
6894    #[inline]
6895    pub fn text_token(&self) -> Option<SyntaxToken> {
6896        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6897    }
6898}
6899
6900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6901pub struct DropTransform {
6902    pub(crate) syntax: SyntaxNode,
6903}
6904impl DropTransform {
6905    #[inline]
6906    pub fn if_exists(&self) -> Option<IfExists> {
6907        support::child(&self.syntax)
6908    }
6909    #[inline]
6910    pub fn language(&self) -> Option<NameRef> {
6911        support::child(&self.syntax)
6912    }
6913    #[inline]
6914    pub fn ty(&self) -> Option<Type> {
6915        support::child(&self.syntax)
6916    }
6917    #[inline]
6918    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6919        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6920    }
6921    #[inline]
6922    pub fn drop_token(&self) -> Option<SyntaxToken> {
6923        support::token(&self.syntax, SyntaxKind::DROP_KW)
6924    }
6925    #[inline]
6926    pub fn for_token(&self) -> Option<SyntaxToken> {
6927        support::token(&self.syntax, SyntaxKind::FOR_KW)
6928    }
6929    #[inline]
6930    pub fn language_token(&self) -> Option<SyntaxToken> {
6931        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6932    }
6933    #[inline]
6934    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6935        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6936    }
6937    #[inline]
6938    pub fn transform_token(&self) -> Option<SyntaxToken> {
6939        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6940    }
6941}
6942
6943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6944pub struct DropTrigger {
6945    pub(crate) syntax: SyntaxNode,
6946}
6947impl DropTrigger {
6948    #[inline]
6949    pub fn if_exists(&self) -> Option<IfExists> {
6950        support::child(&self.syntax)
6951    }
6952    #[inline]
6953    pub fn on_table(&self) -> Option<OnTable> {
6954        support::child(&self.syntax)
6955    }
6956    #[inline]
6957    pub fn path(&self) -> Option<Path> {
6958        support::child(&self.syntax)
6959    }
6960    #[inline]
6961    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6962        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6963    }
6964    #[inline]
6965    pub fn drop_token(&self) -> Option<SyntaxToken> {
6966        support::token(&self.syntax, SyntaxKind::DROP_KW)
6967    }
6968    #[inline]
6969    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6970        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6971    }
6972    #[inline]
6973    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6974        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6975    }
6976}
6977
6978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6979pub struct DropType {
6980    pub(crate) syntax: SyntaxNode,
6981}
6982impl DropType {
6983    #[inline]
6984    pub fn if_exists(&self) -> Option<IfExists> {
6985        support::child(&self.syntax)
6986    }
6987    #[inline]
6988    pub fn paths(&self) -> AstChildren<Path> {
6989        support::children(&self.syntax)
6990    }
6991    #[inline]
6992    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6993        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6994    }
6995    #[inline]
6996    pub fn drop_token(&self) -> Option<SyntaxToken> {
6997        support::token(&self.syntax, SyntaxKind::DROP_KW)
6998    }
6999    #[inline]
7000    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7001        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7002    }
7003    #[inline]
7004    pub fn type_token(&self) -> Option<SyntaxToken> {
7005        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7006    }
7007}
7008
7009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7010pub struct DropUser {
7011    pub(crate) syntax: SyntaxNode,
7012}
7013impl DropUser {
7014    #[inline]
7015    pub fn if_exists(&self) -> Option<IfExists> {
7016        support::child(&self.syntax)
7017    }
7018    #[inline]
7019    pub fn name_refs(&self) -> AstChildren<NameRef> {
7020        support::children(&self.syntax)
7021    }
7022    #[inline]
7023    pub fn drop_token(&self) -> Option<SyntaxToken> {
7024        support::token(&self.syntax, SyntaxKind::DROP_KW)
7025    }
7026    #[inline]
7027    pub fn user_token(&self) -> Option<SyntaxToken> {
7028        support::token(&self.syntax, SyntaxKind::USER_KW)
7029    }
7030}
7031
7032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7033pub struct DropUserMapping {
7034    pub(crate) syntax: SyntaxNode,
7035}
7036impl DropUserMapping {
7037    #[inline]
7038    pub fn if_exists(&self) -> Option<IfExists> {
7039        support::child(&self.syntax)
7040    }
7041    #[inline]
7042    pub fn role_ref(&self) -> Option<RoleRef> {
7043        support::child(&self.syntax)
7044    }
7045    #[inline]
7046    pub fn server_name(&self) -> Option<ServerName> {
7047        support::child(&self.syntax)
7048    }
7049    #[inline]
7050    pub fn drop_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::DROP_KW)
7052    }
7053    #[inline]
7054    pub fn for_token(&self) -> Option<SyntaxToken> {
7055        support::token(&self.syntax, SyntaxKind::FOR_KW)
7056    }
7057    #[inline]
7058    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7059        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7060    }
7061    #[inline]
7062    pub fn user_token(&self) -> Option<SyntaxToken> {
7063        support::token(&self.syntax, SyntaxKind::USER_KW)
7064    }
7065}
7066
7067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7068pub struct DropView {
7069    pub(crate) syntax: SyntaxNode,
7070}
7071impl DropView {
7072    #[inline]
7073    pub fn if_exists(&self) -> Option<IfExists> {
7074        support::child(&self.syntax)
7075    }
7076    #[inline]
7077    pub fn path(&self) -> Option<Path> {
7078        support::child(&self.syntax)
7079    }
7080    #[inline]
7081    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7083    }
7084    #[inline]
7085    pub fn drop_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::DROP_KW)
7087    }
7088    #[inline]
7089    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7091    }
7092    #[inline]
7093    pub fn view_token(&self) -> Option<SyntaxToken> {
7094        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7095    }
7096}
7097
7098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7099pub struct ElseClause {
7100    pub(crate) syntax: SyntaxNode,
7101}
7102impl ElseClause {
7103    #[inline]
7104    pub fn expr(&self) -> Option<Expr> {
7105        support::child(&self.syntax)
7106    }
7107    #[inline]
7108    pub fn else_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7110    }
7111}
7112
7113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7114pub struct EnableAlwaysRule {
7115    pub(crate) syntax: SyntaxNode,
7116}
7117impl EnableAlwaysRule {
7118    #[inline]
7119    pub fn always_token(&self) -> Option<SyntaxToken> {
7120        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7121    }
7122    #[inline]
7123    pub fn enable_token(&self) -> Option<SyntaxToken> {
7124        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7125    }
7126    #[inline]
7127    pub fn rule_token(&self) -> Option<SyntaxToken> {
7128        support::token(&self.syntax, SyntaxKind::RULE_KW)
7129    }
7130}
7131
7132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7133pub struct EnableAlwaysTrigger {
7134    pub(crate) syntax: SyntaxNode,
7135}
7136impl EnableAlwaysTrigger {
7137    #[inline]
7138    pub fn always_token(&self) -> Option<SyntaxToken> {
7139        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7140    }
7141    #[inline]
7142    pub fn enable_token(&self) -> Option<SyntaxToken> {
7143        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7144    }
7145    #[inline]
7146    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7147        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7148    }
7149}
7150
7151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7152pub struct EnableReplicaRule {
7153    pub(crate) syntax: SyntaxNode,
7154}
7155impl EnableReplicaRule {
7156    #[inline]
7157    pub fn enable_token(&self) -> Option<SyntaxToken> {
7158        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7159    }
7160    #[inline]
7161    pub fn replica_token(&self) -> Option<SyntaxToken> {
7162        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7163    }
7164    #[inline]
7165    pub fn rule_token(&self) -> Option<SyntaxToken> {
7166        support::token(&self.syntax, SyntaxKind::RULE_KW)
7167    }
7168}
7169
7170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7171pub struct EnableReplicaTrigger {
7172    pub(crate) syntax: SyntaxNode,
7173}
7174impl EnableReplicaTrigger {
7175    #[inline]
7176    pub fn enable_token(&self) -> Option<SyntaxToken> {
7177        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7178    }
7179    #[inline]
7180    pub fn replica_token(&self) -> Option<SyntaxToken> {
7181        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7182    }
7183    #[inline]
7184    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7185        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7186    }
7187}
7188
7189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7190pub struct EnableRls {
7191    pub(crate) syntax: SyntaxNode,
7192}
7193impl EnableRls {
7194    #[inline]
7195    pub fn enable_token(&self) -> Option<SyntaxToken> {
7196        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7197    }
7198    #[inline]
7199    pub fn level_token(&self) -> Option<SyntaxToken> {
7200        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7201    }
7202    #[inline]
7203    pub fn row_token(&self) -> Option<SyntaxToken> {
7204        support::token(&self.syntax, SyntaxKind::ROW_KW)
7205    }
7206    #[inline]
7207    pub fn security_token(&self) -> Option<SyntaxToken> {
7208        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7209    }
7210}
7211
7212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7213pub struct EnableRule {
7214    pub(crate) syntax: SyntaxNode,
7215}
7216impl EnableRule {
7217    #[inline]
7218    pub fn enable_token(&self) -> Option<SyntaxToken> {
7219        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7220    }
7221    #[inline]
7222    pub fn rule_token(&self) -> Option<SyntaxToken> {
7223        support::token(&self.syntax, SyntaxKind::RULE_KW)
7224    }
7225}
7226
7227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7228pub struct EnableTrigger {
7229    pub(crate) syntax: SyntaxNode,
7230}
7231impl EnableTrigger {
7232    #[inline]
7233    pub fn enable_token(&self) -> Option<SyntaxToken> {
7234        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7235    }
7236    #[inline]
7237    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7238        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7239    }
7240}
7241
7242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7243pub struct Enforced {
7244    pub(crate) syntax: SyntaxNode,
7245}
7246impl Enforced {
7247    #[inline]
7248    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7249        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7250    }
7251}
7252
7253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7254pub struct EventTriggerWhen {
7255    pub(crate) syntax: SyntaxNode,
7256}
7257impl EventTriggerWhen {
7258    #[inline]
7259    pub fn literals(&self) -> AstChildren<Literal> {
7260        support::children(&self.syntax)
7261    }
7262    #[inline]
7263    pub fn name_ref(&self) -> Option<NameRef> {
7264        support::child(&self.syntax)
7265    }
7266    #[inline]
7267    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::L_PAREN)
7269    }
7270    #[inline]
7271    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::R_PAREN)
7273    }
7274    #[inline]
7275    pub fn in_token(&self) -> Option<SyntaxToken> {
7276        support::token(&self.syntax, SyntaxKind::IN_KW)
7277    }
7278}
7279
7280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7281pub struct EventTriggerWhenClause {
7282    pub(crate) syntax: SyntaxNode,
7283}
7284impl EventTriggerWhenClause {
7285    #[inline]
7286    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7287        support::children(&self.syntax)
7288    }
7289    #[inline]
7290    pub fn when_token(&self) -> Option<SyntaxToken> {
7291        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7292    }
7293}
7294
7295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7296pub struct ExceptTables {
7297    pub(crate) syntax: SyntaxNode,
7298}
7299impl ExceptTables {
7300    #[inline]
7301    pub fn name_refs(&self) -> AstChildren<NameRef> {
7302        support::children(&self.syntax)
7303    }
7304    #[inline]
7305    pub fn except_token(&self) -> Option<SyntaxToken> {
7306        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7307    }
7308}
7309
7310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7311pub struct ExcludeConstraint {
7312    pub(crate) syntax: SyntaxNode,
7313}
7314impl ExcludeConstraint {
7315    #[inline]
7316    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7317        support::child(&self.syntax)
7318    }
7319    #[inline]
7320    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7321        support::child(&self.syntax)
7322    }
7323    #[inline]
7324    pub fn constraint_name(&self) -> Option<ConstraintName> {
7325        support::child(&self.syntax)
7326    }
7327    #[inline]
7328    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7329        support::child(&self.syntax)
7330    }
7331    #[inline]
7332    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7333        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7334    }
7335}
7336
7337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7338pub struct Execute {
7339    pub(crate) syntax: SyntaxNode,
7340}
7341impl Execute {
7342    #[inline]
7343    pub fn arg_list(&self) -> Option<ArgList> {
7344        support::child(&self.syntax)
7345    }
7346    #[inline]
7347    pub fn name_ref(&self) -> Option<NameRef> {
7348        support::child(&self.syntax)
7349    }
7350    #[inline]
7351    pub fn execute_token(&self) -> Option<SyntaxToken> {
7352        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7353    }
7354}
7355
7356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7357pub struct ExistsFn {
7358    pub(crate) syntax: SyntaxNode,
7359}
7360impl ExistsFn {
7361    #[inline]
7362    pub fn select_variant(&self) -> Option<SelectVariant> {
7363        support::child(&self.syntax)
7364    }
7365    #[inline]
7366    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7367        support::token(&self.syntax, SyntaxKind::L_PAREN)
7368    }
7369    #[inline]
7370    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7371        support::token(&self.syntax, SyntaxKind::R_PAREN)
7372    }
7373    #[inline]
7374    pub fn exists_token(&self) -> Option<SyntaxToken> {
7375        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7376    }
7377}
7378
7379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7380pub struct Explain {
7381    pub(crate) syntax: SyntaxNode,
7382}
7383impl Explain {
7384    #[inline]
7385    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7386        support::child(&self.syntax)
7387    }
7388    #[inline]
7389    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7390        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7391    }
7392    #[inline]
7393    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7394        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7395    }
7396    #[inline]
7397    pub fn explain_token(&self) -> Option<SyntaxToken> {
7398        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7399    }
7400    #[inline]
7401    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7402        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7403    }
7404}
7405
7406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7407pub struct ExprAsName {
7408    pub(crate) syntax: SyntaxNode,
7409}
7410impl ExprAsName {
7411    #[inline]
7412    pub fn as_name(&self) -> Option<AsName> {
7413        support::child(&self.syntax)
7414    }
7415    #[inline]
7416    pub fn expr(&self) -> Option<Expr> {
7417        support::child(&self.syntax)
7418    }
7419}
7420
7421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7422pub struct ExprType {
7423    pub(crate) syntax: SyntaxNode,
7424}
7425impl ExprType {
7426    #[inline]
7427    pub fn expr(&self) -> Option<Expr> {
7428        support::child(&self.syntax)
7429    }
7430}
7431
7432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7433pub struct ExtractFn {
7434    pub(crate) syntax: SyntaxNode,
7435}
7436impl ExtractFn {
7437    #[inline]
7438    pub fn expr(&self) -> Option<Expr> {
7439        support::child(&self.syntax)
7440    }
7441    #[inline]
7442    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7443        support::token(&self.syntax, SyntaxKind::L_PAREN)
7444    }
7445    #[inline]
7446    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7447        support::token(&self.syntax, SyntaxKind::R_PAREN)
7448    }
7449    #[inline]
7450    pub fn day_token(&self) -> Option<SyntaxToken> {
7451        support::token(&self.syntax, SyntaxKind::DAY_KW)
7452    }
7453    #[inline]
7454    pub fn extract_token(&self) -> Option<SyntaxToken> {
7455        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7456    }
7457    #[inline]
7458    pub fn from_token(&self) -> Option<SyntaxToken> {
7459        support::token(&self.syntax, SyntaxKind::FROM_KW)
7460    }
7461    #[inline]
7462    pub fn hour_token(&self) -> Option<SyntaxToken> {
7463        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7464    }
7465    #[inline]
7466    pub fn ident_token(&self) -> Option<SyntaxToken> {
7467        support::token(&self.syntax, SyntaxKind::IDENT)
7468    }
7469    #[inline]
7470    pub fn minute_token(&self) -> Option<SyntaxToken> {
7471        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7472    }
7473    #[inline]
7474    pub fn month_token(&self) -> Option<SyntaxToken> {
7475        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7476    }
7477    #[inline]
7478    pub fn second_token(&self) -> Option<SyntaxToken> {
7479        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7480    }
7481    #[inline]
7482    pub fn string_token(&self) -> Option<SyntaxToken> {
7483        support::token(&self.syntax, SyntaxKind::STRING_KW)
7484    }
7485    #[inline]
7486    pub fn year_token(&self) -> Option<SyntaxToken> {
7487        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7488    }
7489}
7490
7491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7492pub struct FatArrow {
7493    pub(crate) syntax: SyntaxNode,
7494}
7495impl FatArrow {
7496    #[inline]
7497    pub fn eq_token(&self) -> Option<SyntaxToken> {
7498        support::token(&self.syntax, SyntaxKind::EQ)
7499    }
7500    #[inline]
7501    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7502        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7503    }
7504}
7505
7506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7507pub struct FdwOption {
7508    pub(crate) syntax: SyntaxNode,
7509}
7510impl FdwOption {
7511    #[inline]
7512    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7513        support::child(&self.syntax)
7514    }
7515    #[inline]
7516    pub fn path(&self) -> Option<Path> {
7517        support::child(&self.syntax)
7518    }
7519    #[inline]
7520    pub fn handler_token(&self) -> Option<SyntaxToken> {
7521        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7522    }
7523    #[inline]
7524    pub fn no_token(&self) -> Option<SyntaxToken> {
7525        support::token(&self.syntax, SyntaxKind::NO_KW)
7526    }
7527    #[inline]
7528    pub fn options_token(&self) -> Option<SyntaxToken> {
7529        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7530    }
7531    #[inline]
7532    pub fn validator_token(&self) -> Option<SyntaxToken> {
7533        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7534    }
7535}
7536
7537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7538pub struct FdwOptionList {
7539    pub(crate) syntax: SyntaxNode,
7540}
7541impl FdwOptionList {
7542    #[inline]
7543    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7544        support::children(&self.syntax)
7545    }
7546}
7547
7548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7549pub struct Fetch {
7550    pub(crate) syntax: SyntaxNode,
7551}
7552impl Fetch {
7553    #[inline]
7554    pub fn name_ref(&self) -> Option<NameRef> {
7555        support::child(&self.syntax)
7556    }
7557    #[inline]
7558    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7559        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7560    }
7561    #[inline]
7562    pub fn from_token(&self) -> Option<SyntaxToken> {
7563        support::token(&self.syntax, SyntaxKind::FROM_KW)
7564    }
7565    #[inline]
7566    pub fn in_token(&self) -> Option<SyntaxToken> {
7567        support::token(&self.syntax, SyntaxKind::IN_KW)
7568    }
7569}
7570
7571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7572pub struct FetchClause {
7573    pub(crate) syntax: SyntaxNode,
7574}
7575impl FetchClause {
7576    #[inline]
7577    pub fn expr(&self) -> Option<Expr> {
7578        support::child(&self.syntax)
7579    }
7580    #[inline]
7581    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7582        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7583    }
7584    #[inline]
7585    pub fn first_token(&self) -> Option<SyntaxToken> {
7586        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7587    }
7588    #[inline]
7589    pub fn next_token(&self) -> Option<SyntaxToken> {
7590        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7591    }
7592    #[inline]
7593    pub fn only_token(&self) -> Option<SyntaxToken> {
7594        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7595    }
7596    #[inline]
7597    pub fn row_token(&self) -> Option<SyntaxToken> {
7598        support::token(&self.syntax, SyntaxKind::ROW_KW)
7599    }
7600    #[inline]
7601    pub fn rows_token(&self) -> Option<SyntaxToken> {
7602        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7603    }
7604    #[inline]
7605    pub fn ties_token(&self) -> Option<SyntaxToken> {
7606        support::token(&self.syntax, SyntaxKind::TIES_KW)
7607    }
7608    #[inline]
7609    pub fn with_token(&self) -> Option<SyntaxToken> {
7610        support::token(&self.syntax, SyntaxKind::WITH_KW)
7611    }
7612}
7613
7614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7615pub struct FieldExpr {
7616    pub(crate) syntax: SyntaxNode,
7617}
7618impl FieldExpr {
7619    #[inline]
7620    pub fn star_token(&self) -> Option<SyntaxToken> {
7621        support::token(&self.syntax, SyntaxKind::STAR)
7622    }
7623    #[inline]
7624    pub fn dot_token(&self) -> Option<SyntaxToken> {
7625        support::token(&self.syntax, SyntaxKind::DOT)
7626    }
7627}
7628
7629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7630pub struct FilterClause {
7631    pub(crate) syntax: SyntaxNode,
7632}
7633impl FilterClause {
7634    #[inline]
7635    pub fn expr(&self) -> Option<Expr> {
7636        support::child(&self.syntax)
7637    }
7638    #[inline]
7639    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7640        support::token(&self.syntax, SyntaxKind::L_PAREN)
7641    }
7642    #[inline]
7643    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7644        support::token(&self.syntax, SyntaxKind::R_PAREN)
7645    }
7646    #[inline]
7647    pub fn filter_token(&self) -> Option<SyntaxToken> {
7648        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7649    }
7650    #[inline]
7651    pub fn where_token(&self) -> Option<SyntaxToken> {
7652        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7653    }
7654}
7655
7656#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7657pub struct ForProvider {
7658    pub(crate) syntax: SyntaxNode,
7659}
7660impl ForProvider {
7661    #[inline]
7662    pub fn literal(&self) -> Option<Literal> {
7663        support::child(&self.syntax)
7664    }
7665    #[inline]
7666    pub fn name_ref(&self) -> Option<NameRef> {
7667        support::child(&self.syntax)
7668    }
7669    #[inline]
7670    pub fn for_token(&self) -> Option<SyntaxToken> {
7671        support::token(&self.syntax, SyntaxKind::FOR_KW)
7672    }
7673}
7674
7675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7676pub struct ForceRls {
7677    pub(crate) syntax: SyntaxNode,
7678}
7679impl ForceRls {
7680    #[inline]
7681    pub fn force_token(&self) -> Option<SyntaxToken> {
7682        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7683    }
7684    #[inline]
7685    pub fn level_token(&self) -> Option<SyntaxToken> {
7686        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7687    }
7688    #[inline]
7689    pub fn row_token(&self) -> Option<SyntaxToken> {
7690        support::token(&self.syntax, SyntaxKind::ROW_KW)
7691    }
7692    #[inline]
7693    pub fn security_token(&self) -> Option<SyntaxToken> {
7694        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7695    }
7696}
7697
7698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7699pub struct ForeignKeyConstraint {
7700    pub(crate) syntax: SyntaxNode,
7701}
7702impl ForeignKeyConstraint {
7703    #[inline]
7704    pub fn constraint_name(&self) -> Option<ConstraintName> {
7705        support::child(&self.syntax)
7706    }
7707    #[inline]
7708    pub fn match_type(&self) -> Option<MatchType> {
7709        support::child(&self.syntax)
7710    }
7711    #[inline]
7712    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7713        support::child(&self.syntax)
7714    }
7715    #[inline]
7716    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7717        support::child(&self.syntax)
7718    }
7719    #[inline]
7720    pub fn path(&self) -> Option<Path> {
7721        support::child(&self.syntax)
7722    }
7723    #[inline]
7724    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7725        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7726    }
7727    #[inline]
7728    pub fn key_token(&self) -> Option<SyntaxToken> {
7729        support::token(&self.syntax, SyntaxKind::KEY_KW)
7730    }
7731    #[inline]
7732    pub fn references_token(&self) -> Option<SyntaxToken> {
7733        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7734    }
7735}
7736
7737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7738pub struct FrameClause {
7739    pub(crate) syntax: SyntaxNode,
7740}
7741impl FrameClause {
7742    #[inline]
7743    pub fn groups_token(&self) -> Option<SyntaxToken> {
7744        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7745    }
7746    #[inline]
7747    pub fn range_token(&self) -> Option<SyntaxToken> {
7748        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7749    }
7750    #[inline]
7751    pub fn rows_token(&self) -> Option<SyntaxToken> {
7752        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7753    }
7754}
7755
7756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7757pub struct FromClause {
7758    pub(crate) syntax: SyntaxNode,
7759}
7760impl FromClause {
7761    #[inline]
7762    pub fn from_items(&self) -> AstChildren<FromItem> {
7763        support::children(&self.syntax)
7764    }
7765    #[inline]
7766    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7767        support::children(&self.syntax)
7768    }
7769    #[inline]
7770    pub fn from_token(&self) -> Option<SyntaxToken> {
7771        support::token(&self.syntax, SyntaxKind::FROM_KW)
7772    }
7773}
7774
7775#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7776pub struct FromItem {
7777    pub(crate) syntax: SyntaxNode,
7778}
7779impl FromItem {
7780    #[inline]
7781    pub fn alias(&self) -> Option<Alias> {
7782        support::child(&self.syntax)
7783    }
7784    #[inline]
7785    pub fn call_expr(&self) -> Option<CallExpr> {
7786        support::child(&self.syntax)
7787    }
7788    #[inline]
7789    pub fn cast_expr(&self) -> Option<CastExpr> {
7790        support::child(&self.syntax)
7791    }
7792    #[inline]
7793    pub fn field_expr(&self) -> Option<FieldExpr> {
7794        support::child(&self.syntax)
7795    }
7796    #[inline]
7797    pub fn json_table(&self) -> Option<JsonTable> {
7798        support::child(&self.syntax)
7799    }
7800    #[inline]
7801    pub fn name_ref(&self) -> Option<NameRef> {
7802        support::child(&self.syntax)
7803    }
7804    #[inline]
7805    pub fn paren_expr(&self) -> Option<ParenExpr> {
7806        support::child(&self.syntax)
7807    }
7808    #[inline]
7809    pub fn paren_select(&self) -> Option<ParenSelect> {
7810        support::child(&self.syntax)
7811    }
7812    #[inline]
7813    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
7814        support::child(&self.syntax)
7815    }
7816    #[inline]
7817    pub fn xml_table(&self) -> Option<XmlTable> {
7818        support::child(&self.syntax)
7819    }
7820    #[inline]
7821    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7822        support::token(&self.syntax, SyntaxKind::L_PAREN)
7823    }
7824    #[inline]
7825    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7826        support::token(&self.syntax, SyntaxKind::R_PAREN)
7827    }
7828    #[inline]
7829    pub fn star_token(&self) -> Option<SyntaxToken> {
7830        support::token(&self.syntax, SyntaxKind::STAR)
7831    }
7832    #[inline]
7833    pub fn from_token(&self) -> Option<SyntaxToken> {
7834        support::token(&self.syntax, SyntaxKind::FROM_KW)
7835    }
7836    #[inline]
7837    pub fn lateral_token(&self) -> Option<SyntaxToken> {
7838        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
7839    }
7840    #[inline]
7841    pub fn only_token(&self) -> Option<SyntaxToken> {
7842        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7843    }
7844    #[inline]
7845    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
7846        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
7847    }
7848    #[inline]
7849    pub fn rows_token(&self) -> Option<SyntaxToken> {
7850        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7851    }
7852    #[inline]
7853    pub fn with_token(&self) -> Option<SyntaxToken> {
7854        support::token(&self.syntax, SyntaxKind::WITH_KW)
7855    }
7856}
7857
7858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7859pub struct FromTable {
7860    pub(crate) syntax: SyntaxNode,
7861}
7862impl FromTable {
7863    #[inline]
7864    pub fn path(&self) -> Option<Path> {
7865        support::child(&self.syntax)
7866    }
7867    #[inline]
7868    pub fn from_token(&self) -> Option<SyntaxToken> {
7869        support::token(&self.syntax, SyntaxKind::FROM_KW)
7870    }
7871}
7872
7873#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7874pub struct FuncOptionList {
7875    pub(crate) syntax: SyntaxNode,
7876}
7877impl FuncOptionList {
7878    #[inline]
7879    pub fn options(&self) -> AstChildren<FuncOption> {
7880        support::children(&self.syntax)
7881    }
7882}
7883
7884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7885pub struct FunctionSig {
7886    pub(crate) syntax: SyntaxNode,
7887}
7888impl FunctionSig {
7889    #[inline]
7890    pub fn param_list(&self) -> Option<ParamList> {
7891        support::child(&self.syntax)
7892    }
7893    #[inline]
7894    pub fn path(&self) -> Option<Path> {
7895        support::child(&self.syntax)
7896    }
7897}
7898
7899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7900pub struct FunctionSigList {
7901    pub(crate) syntax: SyntaxNode,
7902}
7903impl FunctionSigList {
7904    #[inline]
7905    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
7906        support::children(&self.syntax)
7907    }
7908}
7909
7910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7911pub struct GeneratedConstraint {
7912    pub(crate) syntax: SyntaxNode,
7913}
7914impl GeneratedConstraint {
7915    #[inline]
7916    pub fn expr(&self) -> Option<Expr> {
7917        support::child(&self.syntax)
7918    }
7919    #[inline]
7920    pub fn name_ref(&self) -> Option<NameRef> {
7921        support::child(&self.syntax)
7922    }
7923    #[inline]
7924    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
7925        support::child(&self.syntax)
7926    }
7927    #[inline]
7928    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7929        support::token(&self.syntax, SyntaxKind::L_PAREN)
7930    }
7931    #[inline]
7932    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7933        support::token(&self.syntax, SyntaxKind::R_PAREN)
7934    }
7935    #[inline]
7936    pub fn always_token(&self) -> Option<SyntaxToken> {
7937        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7938    }
7939    #[inline]
7940    pub fn as_token(&self) -> Option<SyntaxToken> {
7941        support::token(&self.syntax, SyntaxKind::AS_KW)
7942    }
7943    #[inline]
7944    pub fn by_token(&self) -> Option<SyntaxToken> {
7945        support::token(&self.syntax, SyntaxKind::BY_KW)
7946    }
7947    #[inline]
7948    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7949        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7950    }
7951    #[inline]
7952    pub fn default_token(&self) -> Option<SyntaxToken> {
7953        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7954    }
7955    #[inline]
7956    pub fn generated_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
7958    }
7959    #[inline]
7960    pub fn identity_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7962    }
7963    #[inline]
7964    pub fn stored_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::STORED_KW)
7966    }
7967}
7968
7969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7970pub struct Grant {
7971    pub(crate) syntax: SyntaxNode,
7972}
7973impl Grant {
7974    #[inline]
7975    pub fn name_refs(&self) -> AstChildren<NameRef> {
7976        support::children(&self.syntax)
7977    }
7978    #[inline]
7979    pub fn paths(&self) -> AstChildren<Path> {
7980        support::children(&self.syntax)
7981    }
7982    #[inline]
7983    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
7984        support::child(&self.syntax)
7985    }
7986    #[inline]
7987    pub fn role_ref(&self) -> Option<RoleRef> {
7988        support::child(&self.syntax)
7989    }
7990    #[inline]
7991    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7992        support::child(&self.syntax)
7993    }
7994    #[inline]
7995    pub fn all_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::ALL_KW)
7997    }
7998    #[inline]
7999    pub fn by_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::BY_KW)
8001    }
8002    #[inline]
8003    pub fn grant_token(&self) -> Option<SyntaxToken> {
8004        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8005    }
8006    #[inline]
8007    pub fn granted_token(&self) -> Option<SyntaxToken> {
8008        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
8009    }
8010    #[inline]
8011    pub fn in_token(&self) -> Option<SyntaxToken> {
8012        support::token(&self.syntax, SyntaxKind::IN_KW)
8013    }
8014    #[inline]
8015    pub fn on_token(&self) -> Option<SyntaxToken> {
8016        support::token(&self.syntax, SyntaxKind::ON_KW)
8017    }
8018    #[inline]
8019    pub fn option_token(&self) -> Option<SyntaxToken> {
8020        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8021    }
8022    #[inline]
8023    pub fn privileges_token(&self) -> Option<SyntaxToken> {
8024        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
8025    }
8026    #[inline]
8027    pub fn schema_token(&self) -> Option<SyntaxToken> {
8028        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8029    }
8030    #[inline]
8031    pub fn table_token(&self) -> Option<SyntaxToken> {
8032        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8033    }
8034    #[inline]
8035    pub fn tables_token(&self) -> Option<SyntaxToken> {
8036        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8037    }
8038    #[inline]
8039    pub fn to_token(&self) -> Option<SyntaxToken> {
8040        support::token(&self.syntax, SyntaxKind::TO_KW)
8041    }
8042    #[inline]
8043    pub fn with_token(&self) -> Option<SyntaxToken> {
8044        support::token(&self.syntax, SyntaxKind::WITH_KW)
8045    }
8046}
8047
8048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8049pub struct GrantDefaultPrivileges {
8050    pub(crate) syntax: SyntaxNode,
8051}
8052impl GrantDefaultPrivileges {
8053    #[inline]
8054    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8055        support::child(&self.syntax)
8056    }
8057    #[inline]
8058    pub fn privileges(&self) -> Option<Privileges> {
8059        support::child(&self.syntax)
8060    }
8061    #[inline]
8062    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8063        support::child(&self.syntax)
8064    }
8065    #[inline]
8066    pub fn grant_token(&self) -> Option<SyntaxToken> {
8067        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8068    }
8069    #[inline]
8070    pub fn on_token(&self) -> Option<SyntaxToken> {
8071        support::token(&self.syntax, SyntaxKind::ON_KW)
8072    }
8073    #[inline]
8074    pub fn option_token(&self) -> Option<SyntaxToken> {
8075        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8076    }
8077    #[inline]
8078    pub fn to_token(&self) -> Option<SyntaxToken> {
8079        support::token(&self.syntax, SyntaxKind::TO_KW)
8080    }
8081    #[inline]
8082    pub fn with_token(&self) -> Option<SyntaxToken> {
8083        support::token(&self.syntax, SyntaxKind::WITH_KW)
8084    }
8085}
8086
8087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8088pub struct GroupByClause {
8089    pub(crate) syntax: SyntaxNode,
8090}
8091impl GroupByClause {
8092    #[inline]
8093    pub fn group_by_list(&self) -> Option<GroupByList> {
8094        support::child(&self.syntax)
8095    }
8096    #[inline]
8097    pub fn all_token(&self) -> Option<SyntaxToken> {
8098        support::token(&self.syntax, SyntaxKind::ALL_KW)
8099    }
8100    #[inline]
8101    pub fn by_token(&self) -> Option<SyntaxToken> {
8102        support::token(&self.syntax, SyntaxKind::BY_KW)
8103    }
8104    #[inline]
8105    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8106        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8107    }
8108    #[inline]
8109    pub fn group_token(&self) -> Option<SyntaxToken> {
8110        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8111    }
8112}
8113
8114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8115pub struct GroupByList {
8116    pub(crate) syntax: SyntaxNode,
8117}
8118impl GroupByList {
8119    #[inline]
8120    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8121        support::children(&self.syntax)
8122    }
8123}
8124
8125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8126pub struct GroupingCube {
8127    pub(crate) syntax: SyntaxNode,
8128}
8129impl GroupingCube {
8130    #[inline]
8131    pub fn expr(&self) -> Option<Expr> {
8132        support::child(&self.syntax)
8133    }
8134    #[inline]
8135    pub fn cube_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8137    }
8138}
8139
8140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8141pub struct GroupingExpr {
8142    pub(crate) syntax: SyntaxNode,
8143}
8144impl GroupingExpr {
8145    #[inline]
8146    pub fn expr(&self) -> Option<Expr> {
8147        support::child(&self.syntax)
8148    }
8149}
8150
8151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8152pub struct GroupingRollup {
8153    pub(crate) syntax: SyntaxNode,
8154}
8155impl GroupingRollup {
8156    #[inline]
8157    pub fn expr(&self) -> Option<Expr> {
8158        support::child(&self.syntax)
8159    }
8160    #[inline]
8161    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8162        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8163    }
8164}
8165
8166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8167pub struct GroupingSets {
8168    pub(crate) syntax: SyntaxNode,
8169}
8170impl GroupingSets {
8171    #[inline]
8172    pub fn expr(&self) -> Option<Expr> {
8173        support::child(&self.syntax)
8174    }
8175    #[inline]
8176    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8177        support::token(&self.syntax, SyntaxKind::L_PAREN)
8178    }
8179    #[inline]
8180    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8181        support::token(&self.syntax, SyntaxKind::R_PAREN)
8182    }
8183    #[inline]
8184    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8185        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8186    }
8187    #[inline]
8188    pub fn sets_token(&self) -> Option<SyntaxToken> {
8189        support::token(&self.syntax, SyntaxKind::SETS_KW)
8190    }
8191}
8192
8193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8194pub struct Gteq {
8195    pub(crate) syntax: SyntaxNode,
8196}
8197impl Gteq {
8198    #[inline]
8199    pub fn eq_token(&self) -> Option<SyntaxToken> {
8200        support::token(&self.syntax, SyntaxKind::EQ)
8201    }
8202    #[inline]
8203    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8204        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8205    }
8206}
8207
8208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8209pub struct HandlerClause {
8210    pub(crate) syntax: SyntaxNode,
8211}
8212impl HandlerClause {
8213    #[inline]
8214    pub fn path(&self) -> Option<Path> {
8215        support::child(&self.syntax)
8216    }
8217    #[inline]
8218    pub fn handler_token(&self) -> Option<SyntaxToken> {
8219        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8220    }
8221}
8222
8223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8224pub struct HavingClause {
8225    pub(crate) syntax: SyntaxNode,
8226}
8227impl HavingClause {
8228    #[inline]
8229    pub fn expr(&self) -> Option<Expr> {
8230        support::child(&self.syntax)
8231    }
8232    #[inline]
8233    pub fn having_token(&self) -> Option<SyntaxToken> {
8234        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8235    }
8236}
8237
8238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8239pub struct IfExists {
8240    pub(crate) syntax: SyntaxNode,
8241}
8242impl IfExists {
8243    #[inline]
8244    pub fn exists_token(&self) -> Option<SyntaxToken> {
8245        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8246    }
8247    #[inline]
8248    pub fn if_token(&self) -> Option<SyntaxToken> {
8249        support::token(&self.syntax, SyntaxKind::IF_KW)
8250    }
8251}
8252
8253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8254pub struct IfNotExists {
8255    pub(crate) syntax: SyntaxNode,
8256}
8257impl IfNotExists {
8258    #[inline]
8259    pub fn exists_token(&self) -> Option<SyntaxToken> {
8260        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8261    }
8262    #[inline]
8263    pub fn if_token(&self) -> Option<SyntaxToken> {
8264        support::token(&self.syntax, SyntaxKind::IF_KW)
8265    }
8266    #[inline]
8267    pub fn not_token(&self) -> Option<SyntaxToken> {
8268        support::token(&self.syntax, SyntaxKind::NOT_KW)
8269    }
8270}
8271
8272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8273pub struct ImportForeignSchema {
8274    pub(crate) syntax: SyntaxNode,
8275}
8276impl ImportForeignSchema {
8277    #[inline]
8278    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8279        support::child(&self.syntax)
8280    }
8281    #[inline]
8282    pub fn except_tables(&self) -> Option<ExceptTables> {
8283        support::child(&self.syntax)
8284    }
8285    #[inline]
8286    pub fn into_schema(&self) -> Option<IntoSchema> {
8287        support::child(&self.syntax)
8288    }
8289    #[inline]
8290    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8291        support::child(&self.syntax)
8292    }
8293    #[inline]
8294    pub fn name_ref(&self) -> Option<NameRef> {
8295        support::child(&self.syntax)
8296    }
8297    #[inline]
8298    pub fn server_name(&self) -> Option<ServerName> {
8299        support::child(&self.syntax)
8300    }
8301    #[inline]
8302    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8303        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8304    }
8305    #[inline]
8306    pub fn from_token(&self) -> Option<SyntaxToken> {
8307        support::token(&self.syntax, SyntaxKind::FROM_KW)
8308    }
8309    #[inline]
8310    pub fn import_token(&self) -> Option<SyntaxToken> {
8311        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8312    }
8313    #[inline]
8314    pub fn schema_token(&self) -> Option<SyntaxToken> {
8315        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8316    }
8317}
8318
8319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8320pub struct IndexExpr {
8321    pub(crate) syntax: SyntaxNode,
8322}
8323impl IndexExpr {
8324    #[inline]
8325    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8326        support::token(&self.syntax, SyntaxKind::L_BRACK)
8327    }
8328    #[inline]
8329    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8330        support::token(&self.syntax, SyntaxKind::R_BRACK)
8331    }
8332}
8333
8334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8335pub struct Inherit {
8336    pub(crate) syntax: SyntaxNode,
8337}
8338impl Inherit {
8339    #[inline]
8340    pub fn path(&self) -> Option<Path> {
8341        support::child(&self.syntax)
8342    }
8343    #[inline]
8344    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8345        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8346    }
8347}
8348
8349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8350pub struct InheritTable {
8351    pub(crate) syntax: SyntaxNode,
8352}
8353impl InheritTable {
8354    #[inline]
8355    pub fn path(&self) -> Option<Path> {
8356        support::child(&self.syntax)
8357    }
8358    #[inline]
8359    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8360        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8361    }
8362}
8363
8364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8365pub struct Inherits {
8366    pub(crate) syntax: SyntaxNode,
8367}
8368impl Inherits {
8369    #[inline]
8370    pub fn paths(&self) -> AstChildren<Path> {
8371        support::children(&self.syntax)
8372    }
8373    #[inline]
8374    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8375        support::token(&self.syntax, SyntaxKind::L_PAREN)
8376    }
8377    #[inline]
8378    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8379        support::token(&self.syntax, SyntaxKind::R_PAREN)
8380    }
8381    #[inline]
8382    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8383        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8384    }
8385}
8386
8387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8388pub struct InitiallyDeferredConstraintOption {
8389    pub(crate) syntax: SyntaxNode,
8390}
8391impl InitiallyDeferredConstraintOption {
8392    #[inline]
8393    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8394        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8395    }
8396    #[inline]
8397    pub fn initially_token(&self) -> Option<SyntaxToken> {
8398        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8399    }
8400}
8401
8402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8403pub struct InitiallyImmediateConstraintOption {
8404    pub(crate) syntax: SyntaxNode,
8405}
8406impl InitiallyImmediateConstraintOption {
8407    #[inline]
8408    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8409        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8410    }
8411    #[inline]
8412    pub fn initially_token(&self) -> Option<SyntaxToken> {
8413        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8414    }
8415}
8416
8417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8418pub struct Insert {
8419    pub(crate) syntax: SyntaxNode,
8420}
8421impl Insert {
8422    #[inline]
8423    pub fn alias(&self) -> Option<Alias> {
8424        support::child(&self.syntax)
8425    }
8426    #[inline]
8427    pub fn column_list(&self) -> Option<ColumnList> {
8428        support::child(&self.syntax)
8429    }
8430    #[inline]
8431    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8432        support::child(&self.syntax)
8433    }
8434    #[inline]
8435    pub fn path(&self) -> Option<Path> {
8436        support::child(&self.syntax)
8437    }
8438    #[inline]
8439    pub fn returning_clause(&self) -> Option<ReturningClause> {
8440        support::child(&self.syntax)
8441    }
8442    #[inline]
8443    pub fn stmt(&self) -> Option<Stmt> {
8444        support::child(&self.syntax)
8445    }
8446    #[inline]
8447    pub fn values(&self) -> Option<Values> {
8448        support::child(&self.syntax)
8449    }
8450    #[inline]
8451    pub fn with_clause(&self) -> Option<WithClause> {
8452        support::child(&self.syntax)
8453    }
8454    #[inline]
8455    pub fn default_token(&self) -> Option<SyntaxToken> {
8456        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8457    }
8458    #[inline]
8459    pub fn insert_token(&self) -> Option<SyntaxToken> {
8460        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8461    }
8462    #[inline]
8463    pub fn into_token(&self) -> Option<SyntaxToken> {
8464        support::token(&self.syntax, SyntaxKind::INTO_KW)
8465    }
8466    #[inline]
8467    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8468        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8469    }
8470    #[inline]
8471    pub fn system_token(&self) -> Option<SyntaxToken> {
8472        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8473    }
8474    #[inline]
8475    pub fn user_token(&self) -> Option<SyntaxToken> {
8476        support::token(&self.syntax, SyntaxKind::USER_KW)
8477    }
8478    #[inline]
8479    pub fn value_token(&self) -> Option<SyntaxToken> {
8480        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8481    }
8482    #[inline]
8483    pub fn values_token(&self) -> Option<SyntaxToken> {
8484        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8485    }
8486}
8487
8488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8489pub struct IntervalType {
8490    pub(crate) syntax: SyntaxNode,
8491}
8492impl IntervalType {
8493    #[inline]
8494    pub fn literal(&self) -> Option<Literal> {
8495        support::child(&self.syntax)
8496    }
8497    #[inline]
8498    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8499        support::token(&self.syntax, SyntaxKind::L_PAREN)
8500    }
8501    #[inline]
8502    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8503        support::token(&self.syntax, SyntaxKind::R_PAREN)
8504    }
8505    #[inline]
8506    pub fn day_token(&self) -> Option<SyntaxToken> {
8507        support::token(&self.syntax, SyntaxKind::DAY_KW)
8508    }
8509    #[inline]
8510    pub fn hour_token(&self) -> Option<SyntaxToken> {
8511        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8512    }
8513    #[inline]
8514    pub fn interval_token(&self) -> Option<SyntaxToken> {
8515        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8516    }
8517    #[inline]
8518    pub fn minute_token(&self) -> Option<SyntaxToken> {
8519        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8520    }
8521    #[inline]
8522    pub fn month_token(&self) -> Option<SyntaxToken> {
8523        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8524    }
8525    #[inline]
8526    pub fn second_token(&self) -> Option<SyntaxToken> {
8527        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8528    }
8529    #[inline]
8530    pub fn to_token(&self) -> Option<SyntaxToken> {
8531        support::token(&self.syntax, SyntaxKind::TO_KW)
8532    }
8533    #[inline]
8534    pub fn year_token(&self) -> Option<SyntaxToken> {
8535        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8536    }
8537}
8538
8539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8540pub struct IntoClause {
8541    pub(crate) syntax: SyntaxNode,
8542}
8543impl IntoClause {
8544    #[inline]
8545    pub fn path(&self) -> Option<Path> {
8546        support::child(&self.syntax)
8547    }
8548    #[inline]
8549    pub fn into_token(&self) -> Option<SyntaxToken> {
8550        support::token(&self.syntax, SyntaxKind::INTO_KW)
8551    }
8552}
8553
8554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8555pub struct IntoSchema {
8556    pub(crate) syntax: SyntaxNode,
8557}
8558impl IntoSchema {
8559    #[inline]
8560    pub fn name_ref(&self) -> Option<NameRef> {
8561        support::child(&self.syntax)
8562    }
8563    #[inline]
8564    pub fn into_token(&self) -> Option<SyntaxToken> {
8565        support::token(&self.syntax, SyntaxKind::INTO_KW)
8566    }
8567}
8568
8569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8570pub struct IsDistinctFrom {
8571    pub(crate) syntax: SyntaxNode,
8572}
8573impl IsDistinctFrom {
8574    #[inline]
8575    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8576        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8577    }
8578    #[inline]
8579    pub fn from_token(&self) -> Option<SyntaxToken> {
8580        support::token(&self.syntax, SyntaxKind::FROM_KW)
8581    }
8582    #[inline]
8583    pub fn is_token(&self) -> Option<SyntaxToken> {
8584        support::token(&self.syntax, SyntaxKind::IS_KW)
8585    }
8586}
8587
8588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8589pub struct IsJson {
8590    pub(crate) syntax: SyntaxNode,
8591}
8592impl IsJson {
8593    #[inline]
8594    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8595        support::child(&self.syntax)
8596    }
8597    #[inline]
8598    pub fn is_token(&self) -> Option<SyntaxToken> {
8599        support::token(&self.syntax, SyntaxKind::IS_KW)
8600    }
8601    #[inline]
8602    pub fn json_token(&self) -> Option<SyntaxToken> {
8603        support::token(&self.syntax, SyntaxKind::JSON_KW)
8604    }
8605}
8606
8607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8608pub struct IsJsonArray {
8609    pub(crate) syntax: SyntaxNode,
8610}
8611impl IsJsonArray {
8612    #[inline]
8613    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8614        support::child(&self.syntax)
8615    }
8616    #[inline]
8617    pub fn array_token(&self) -> Option<SyntaxToken> {
8618        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8619    }
8620    #[inline]
8621    pub fn is_token(&self) -> Option<SyntaxToken> {
8622        support::token(&self.syntax, SyntaxKind::IS_KW)
8623    }
8624    #[inline]
8625    pub fn json_token(&self) -> Option<SyntaxToken> {
8626        support::token(&self.syntax, SyntaxKind::JSON_KW)
8627    }
8628}
8629
8630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8631pub struct IsJsonObject {
8632    pub(crate) syntax: SyntaxNode,
8633}
8634impl IsJsonObject {
8635    #[inline]
8636    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8637        support::child(&self.syntax)
8638    }
8639    #[inline]
8640    pub fn is_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::IS_KW)
8642    }
8643    #[inline]
8644    pub fn json_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::JSON_KW)
8646    }
8647    #[inline]
8648    pub fn object_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8650    }
8651}
8652
8653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8654pub struct IsJsonScalar {
8655    pub(crate) syntax: SyntaxNode,
8656}
8657impl IsJsonScalar {
8658    #[inline]
8659    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8660        support::child(&self.syntax)
8661    }
8662    #[inline]
8663    pub fn is_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::IS_KW)
8665    }
8666    #[inline]
8667    pub fn json_token(&self) -> Option<SyntaxToken> {
8668        support::token(&self.syntax, SyntaxKind::JSON_KW)
8669    }
8670    #[inline]
8671    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8672        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8673    }
8674}
8675
8676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8677pub struct IsJsonValue {
8678    pub(crate) syntax: SyntaxNode,
8679}
8680impl IsJsonValue {
8681    #[inline]
8682    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8683        support::child(&self.syntax)
8684    }
8685    #[inline]
8686    pub fn is_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::IS_KW)
8688    }
8689    #[inline]
8690    pub fn json_token(&self) -> Option<SyntaxToken> {
8691        support::token(&self.syntax, SyntaxKind::JSON_KW)
8692    }
8693    #[inline]
8694    pub fn value_token(&self) -> Option<SyntaxToken> {
8695        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8696    }
8697}
8698
8699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8700pub struct IsNormalized {
8701    pub(crate) syntax: SyntaxNode,
8702}
8703impl IsNormalized {
8704    #[inline]
8705    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8706        support::child(&self.syntax)
8707    }
8708    #[inline]
8709    pub fn is_token(&self) -> Option<SyntaxToken> {
8710        support::token(&self.syntax, SyntaxKind::IS_KW)
8711    }
8712    #[inline]
8713    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8714        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8715    }
8716}
8717
8718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8719pub struct IsNot {
8720    pub(crate) syntax: SyntaxNode,
8721}
8722impl IsNot {
8723    #[inline]
8724    pub fn is_token(&self) -> Option<SyntaxToken> {
8725        support::token(&self.syntax, SyntaxKind::IS_KW)
8726    }
8727    #[inline]
8728    pub fn not_token(&self) -> Option<SyntaxToken> {
8729        support::token(&self.syntax, SyntaxKind::NOT_KW)
8730    }
8731}
8732
8733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8734pub struct IsNotDistinctFrom {
8735    pub(crate) syntax: SyntaxNode,
8736}
8737impl IsNotDistinctFrom {
8738    #[inline]
8739    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8740        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8741    }
8742    #[inline]
8743    pub fn from_token(&self) -> Option<SyntaxToken> {
8744        support::token(&self.syntax, SyntaxKind::FROM_KW)
8745    }
8746    #[inline]
8747    pub fn is_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::IS_KW)
8749    }
8750    #[inline]
8751    pub fn not_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::NOT_KW)
8753    }
8754}
8755
8756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8757pub struct IsNotJson {
8758    pub(crate) syntax: SyntaxNode,
8759}
8760impl IsNotJson {
8761    #[inline]
8762    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8763        support::child(&self.syntax)
8764    }
8765    #[inline]
8766    pub fn is_token(&self) -> Option<SyntaxToken> {
8767        support::token(&self.syntax, SyntaxKind::IS_KW)
8768    }
8769    #[inline]
8770    pub fn json_token(&self) -> Option<SyntaxToken> {
8771        support::token(&self.syntax, SyntaxKind::JSON_KW)
8772    }
8773    #[inline]
8774    pub fn not_token(&self) -> Option<SyntaxToken> {
8775        support::token(&self.syntax, SyntaxKind::NOT_KW)
8776    }
8777}
8778
8779#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8780pub struct IsNotJsonArray {
8781    pub(crate) syntax: SyntaxNode,
8782}
8783impl IsNotJsonArray {
8784    #[inline]
8785    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8786        support::child(&self.syntax)
8787    }
8788    #[inline]
8789    pub fn array_token(&self) -> Option<SyntaxToken> {
8790        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8791    }
8792    #[inline]
8793    pub fn is_token(&self) -> Option<SyntaxToken> {
8794        support::token(&self.syntax, SyntaxKind::IS_KW)
8795    }
8796    #[inline]
8797    pub fn json_token(&self) -> Option<SyntaxToken> {
8798        support::token(&self.syntax, SyntaxKind::JSON_KW)
8799    }
8800    #[inline]
8801    pub fn not_token(&self) -> Option<SyntaxToken> {
8802        support::token(&self.syntax, SyntaxKind::NOT_KW)
8803    }
8804}
8805
8806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8807pub struct IsNotJsonObject {
8808    pub(crate) syntax: SyntaxNode,
8809}
8810impl IsNotJsonObject {
8811    #[inline]
8812    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8813        support::child(&self.syntax)
8814    }
8815    #[inline]
8816    pub fn is_token(&self) -> Option<SyntaxToken> {
8817        support::token(&self.syntax, SyntaxKind::IS_KW)
8818    }
8819    #[inline]
8820    pub fn json_token(&self) -> Option<SyntaxToken> {
8821        support::token(&self.syntax, SyntaxKind::JSON_KW)
8822    }
8823    #[inline]
8824    pub fn not_token(&self) -> Option<SyntaxToken> {
8825        support::token(&self.syntax, SyntaxKind::NOT_KW)
8826    }
8827    #[inline]
8828    pub fn object_token(&self) -> Option<SyntaxToken> {
8829        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8830    }
8831}
8832
8833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8834pub struct IsNotJsonScalar {
8835    pub(crate) syntax: SyntaxNode,
8836}
8837impl IsNotJsonScalar {
8838    #[inline]
8839    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8840        support::child(&self.syntax)
8841    }
8842    #[inline]
8843    pub fn is_token(&self) -> Option<SyntaxToken> {
8844        support::token(&self.syntax, SyntaxKind::IS_KW)
8845    }
8846    #[inline]
8847    pub fn json_token(&self) -> Option<SyntaxToken> {
8848        support::token(&self.syntax, SyntaxKind::JSON_KW)
8849    }
8850    #[inline]
8851    pub fn not_token(&self) -> Option<SyntaxToken> {
8852        support::token(&self.syntax, SyntaxKind::NOT_KW)
8853    }
8854    #[inline]
8855    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8856        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8857    }
8858}
8859
8860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8861pub struct IsNotJsonValue {
8862    pub(crate) syntax: SyntaxNode,
8863}
8864impl IsNotJsonValue {
8865    #[inline]
8866    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8867        support::child(&self.syntax)
8868    }
8869    #[inline]
8870    pub fn is_token(&self) -> Option<SyntaxToken> {
8871        support::token(&self.syntax, SyntaxKind::IS_KW)
8872    }
8873    #[inline]
8874    pub fn json_token(&self) -> Option<SyntaxToken> {
8875        support::token(&self.syntax, SyntaxKind::JSON_KW)
8876    }
8877    #[inline]
8878    pub fn not_token(&self) -> Option<SyntaxToken> {
8879        support::token(&self.syntax, SyntaxKind::NOT_KW)
8880    }
8881    #[inline]
8882    pub fn value_token(&self) -> Option<SyntaxToken> {
8883        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8884    }
8885}
8886
8887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8888pub struct IsNotNormalized {
8889    pub(crate) syntax: SyntaxNode,
8890}
8891impl IsNotNormalized {
8892    #[inline]
8893    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8894        support::child(&self.syntax)
8895    }
8896    #[inline]
8897    pub fn is_token(&self) -> Option<SyntaxToken> {
8898        support::token(&self.syntax, SyntaxKind::IS_KW)
8899    }
8900    #[inline]
8901    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8902        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8903    }
8904    #[inline]
8905    pub fn not_token(&self) -> Option<SyntaxToken> {
8906        support::token(&self.syntax, SyntaxKind::NOT_KW)
8907    }
8908}
8909
8910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8911pub struct Join {
8912    pub(crate) syntax: SyntaxNode,
8913}
8914impl Join {
8915    #[inline]
8916    pub fn from_item(&self) -> Option<FromItem> {
8917        support::child(&self.syntax)
8918    }
8919    #[inline]
8920    pub fn join_type(&self) -> Option<JoinType> {
8921        support::child(&self.syntax)
8922    }
8923    #[inline]
8924    pub fn on_clause(&self) -> Option<OnClause> {
8925        support::child(&self.syntax)
8926    }
8927    #[inline]
8928    pub fn using_clause(&self) -> Option<JoinUsingClause> {
8929        support::child(&self.syntax)
8930    }
8931    #[inline]
8932    pub fn natural_token(&self) -> Option<SyntaxToken> {
8933        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
8934    }
8935}
8936
8937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8938pub struct JoinCross {
8939    pub(crate) syntax: SyntaxNode,
8940}
8941impl JoinCross {
8942    #[inline]
8943    pub fn cross_token(&self) -> Option<SyntaxToken> {
8944        support::token(&self.syntax, SyntaxKind::CROSS_KW)
8945    }
8946    #[inline]
8947    pub fn join_token(&self) -> Option<SyntaxToken> {
8948        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8949    }
8950}
8951
8952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8953pub struct JoinExpr {
8954    pub(crate) syntax: SyntaxNode,
8955}
8956impl JoinExpr {
8957    #[inline]
8958    pub fn from_item(&self) -> Option<FromItem> {
8959        support::child(&self.syntax)
8960    }
8961    #[inline]
8962    pub fn join(&self) -> Option<Join> {
8963        support::child(&self.syntax)
8964    }
8965    #[inline]
8966    pub fn join_expr(&self) -> Option<JoinExpr> {
8967        support::child(&self.syntax)
8968    }
8969}
8970
8971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8972pub struct JoinFull {
8973    pub(crate) syntax: SyntaxNode,
8974}
8975impl JoinFull {
8976    #[inline]
8977    pub fn full_token(&self) -> Option<SyntaxToken> {
8978        support::token(&self.syntax, SyntaxKind::FULL_KW)
8979    }
8980    #[inline]
8981    pub fn join_token(&self) -> Option<SyntaxToken> {
8982        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8983    }
8984    #[inline]
8985    pub fn outer_token(&self) -> Option<SyntaxToken> {
8986        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8987    }
8988}
8989
8990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8991pub struct JoinInner {
8992    pub(crate) syntax: SyntaxNode,
8993}
8994impl JoinInner {
8995    #[inline]
8996    pub fn inner_token(&self) -> Option<SyntaxToken> {
8997        support::token(&self.syntax, SyntaxKind::INNER_KW)
8998    }
8999    #[inline]
9000    pub fn join_token(&self) -> Option<SyntaxToken> {
9001        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9002    }
9003}
9004
9005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9006pub struct JoinLeft {
9007    pub(crate) syntax: SyntaxNode,
9008}
9009impl JoinLeft {
9010    #[inline]
9011    pub fn join_token(&self) -> Option<SyntaxToken> {
9012        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9013    }
9014    #[inline]
9015    pub fn left_token(&self) -> Option<SyntaxToken> {
9016        support::token(&self.syntax, SyntaxKind::LEFT_KW)
9017    }
9018    #[inline]
9019    pub fn outer_token(&self) -> Option<SyntaxToken> {
9020        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9021    }
9022}
9023
9024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9025pub struct JoinRight {
9026    pub(crate) syntax: SyntaxNode,
9027}
9028impl JoinRight {
9029    #[inline]
9030    pub fn join_token(&self) -> Option<SyntaxToken> {
9031        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9032    }
9033    #[inline]
9034    pub fn outer_token(&self) -> Option<SyntaxToken> {
9035        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9036    }
9037    #[inline]
9038    pub fn right_token(&self) -> Option<SyntaxToken> {
9039        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9040    }
9041}
9042
9043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9044pub struct JoinUsingClause {
9045    pub(crate) syntax: SyntaxNode,
9046}
9047impl JoinUsingClause {
9048    #[inline]
9049    pub fn alias(&self) -> Option<Alias> {
9050        support::child(&self.syntax)
9051    }
9052    #[inline]
9053    pub fn column_list(&self) -> Option<ColumnList> {
9054        support::child(&self.syntax)
9055    }
9056    #[inline]
9057    pub fn using_token(&self) -> Option<SyntaxToken> {
9058        support::token(&self.syntax, SyntaxKind::USING_KW)
9059    }
9060}
9061
9062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9063pub struct JsonArrayAggFn {
9064    pub(crate) syntax: SyntaxNode,
9065}
9066impl JsonArrayAggFn {
9067    #[inline]
9068    pub fn expr(&self) -> Option<Expr> {
9069        support::child(&self.syntax)
9070    }
9071    #[inline]
9072    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9073        support::child(&self.syntax)
9074    }
9075    #[inline]
9076    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9077        support::child(&self.syntax)
9078    }
9079    #[inline]
9080    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9081        support::children(&self.syntax)
9082    }
9083    #[inline]
9084    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9085        support::token(&self.syntax, SyntaxKind::L_PAREN)
9086    }
9087    #[inline]
9088    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9089        support::token(&self.syntax, SyntaxKind::R_PAREN)
9090    }
9091    #[inline]
9092    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9093        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9094    }
9095}
9096
9097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9098pub struct JsonArrayFn {
9099    pub(crate) syntax: SyntaxNode,
9100}
9101impl JsonArrayFn {
9102    #[inline]
9103    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9104        support::children(&self.syntax)
9105    }
9106    #[inline]
9107    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9108        support::child(&self.syntax)
9109    }
9110    #[inline]
9111    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9112        support::child(&self.syntax)
9113    }
9114    #[inline]
9115    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9116        support::children(&self.syntax)
9117    }
9118    #[inline]
9119    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9120        support::token(&self.syntax, SyntaxKind::L_PAREN)
9121    }
9122    #[inline]
9123    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9124        support::token(&self.syntax, SyntaxKind::R_PAREN)
9125    }
9126    #[inline]
9127    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9128        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9129    }
9130}
9131
9132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9133pub struct JsonBehaviorClause {
9134    pub(crate) syntax: SyntaxNode,
9135}
9136impl JsonBehaviorClause {
9137    #[inline]
9138    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9139        support::child(&self.syntax)
9140    }
9141}
9142
9143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9144pub struct JsonBehaviorDefault {
9145    pub(crate) syntax: SyntaxNode,
9146}
9147impl JsonBehaviorDefault {
9148    #[inline]
9149    pub fn expr(&self) -> Option<Expr> {
9150        support::child(&self.syntax)
9151    }
9152    #[inline]
9153    pub fn default_token(&self) -> Option<SyntaxToken> {
9154        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9155    }
9156}
9157
9158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9159pub struct JsonBehaviorEmptyArray {
9160    pub(crate) syntax: SyntaxNode,
9161}
9162impl JsonBehaviorEmptyArray {
9163    #[inline]
9164    pub fn array_token(&self) -> Option<SyntaxToken> {
9165        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9166    }
9167    #[inline]
9168    pub fn empty_token(&self) -> Option<SyntaxToken> {
9169        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9170    }
9171}
9172
9173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9174pub struct JsonBehaviorEmptyObject {
9175    pub(crate) syntax: SyntaxNode,
9176}
9177impl JsonBehaviorEmptyObject {
9178    #[inline]
9179    pub fn empty_token(&self) -> Option<SyntaxToken> {
9180        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9181    }
9182    #[inline]
9183    pub fn object_token(&self) -> Option<SyntaxToken> {
9184        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9185    }
9186}
9187
9188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9189pub struct JsonBehaviorError {
9190    pub(crate) syntax: SyntaxNode,
9191}
9192impl JsonBehaviorError {
9193    #[inline]
9194    pub fn error_token(&self) -> Option<SyntaxToken> {
9195        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9196    }
9197}
9198
9199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9200pub struct JsonBehaviorFalse {
9201    pub(crate) syntax: SyntaxNode,
9202}
9203impl JsonBehaviorFalse {
9204    #[inline]
9205    pub fn false_token(&self) -> Option<SyntaxToken> {
9206        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9207    }
9208}
9209
9210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9211pub struct JsonBehaviorNull {
9212    pub(crate) syntax: SyntaxNode,
9213}
9214impl JsonBehaviorNull {
9215    #[inline]
9216    pub fn null_token(&self) -> Option<SyntaxToken> {
9217        support::token(&self.syntax, SyntaxKind::NULL_KW)
9218    }
9219}
9220
9221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9222pub struct JsonBehaviorTrue {
9223    pub(crate) syntax: SyntaxNode,
9224}
9225impl JsonBehaviorTrue {
9226    #[inline]
9227    pub fn true_token(&self) -> Option<SyntaxToken> {
9228        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9229    }
9230}
9231
9232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9233pub struct JsonBehaviorUnknown {
9234    pub(crate) syntax: SyntaxNode,
9235}
9236impl JsonBehaviorUnknown {
9237    #[inline]
9238    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9239        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9240    }
9241}
9242
9243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9244pub struct JsonEncodingClause {
9245    pub(crate) syntax: SyntaxNode,
9246}
9247impl JsonEncodingClause {
9248    #[inline]
9249    pub fn name_ref(&self) -> Option<NameRef> {
9250        support::child(&self.syntax)
9251    }
9252    #[inline]
9253    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9254        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9255    }
9256}
9257
9258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9259pub struct JsonExistsFn {
9260    pub(crate) syntax: SyntaxNode,
9261}
9262impl JsonExistsFn {
9263    #[inline]
9264    pub fn expr(&self) -> Option<Expr> {
9265        support::child(&self.syntax)
9266    }
9267    #[inline]
9268    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9269        support::child(&self.syntax)
9270    }
9271    #[inline]
9272    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9273        support::child(&self.syntax)
9274    }
9275    #[inline]
9276    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9277        support::child(&self.syntax)
9278    }
9279    #[inline]
9280    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9281        support::token(&self.syntax, SyntaxKind::L_PAREN)
9282    }
9283    #[inline]
9284    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9285        support::token(&self.syntax, SyntaxKind::R_PAREN)
9286    }
9287    #[inline]
9288    pub fn comma_token(&self) -> Option<SyntaxToken> {
9289        support::token(&self.syntax, SyntaxKind::COMMA)
9290    }
9291    #[inline]
9292    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9293        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9294    }
9295}
9296
9297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9298pub struct JsonExprFormat {
9299    pub(crate) syntax: SyntaxNode,
9300}
9301impl JsonExprFormat {
9302    #[inline]
9303    pub fn expr(&self) -> Option<Expr> {
9304        support::child(&self.syntax)
9305    }
9306    #[inline]
9307    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9308        support::child(&self.syntax)
9309    }
9310}
9311
9312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9313pub struct JsonFn {
9314    pub(crate) syntax: SyntaxNode,
9315}
9316impl JsonFn {
9317    #[inline]
9318    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9319        support::child(&self.syntax)
9320    }
9321    #[inline]
9322    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9323        support::child(&self.syntax)
9324    }
9325    #[inline]
9326    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9327        support::token(&self.syntax, SyntaxKind::L_PAREN)
9328    }
9329    #[inline]
9330    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9331        support::token(&self.syntax, SyntaxKind::R_PAREN)
9332    }
9333    #[inline]
9334    pub fn json_token(&self) -> Option<SyntaxToken> {
9335        support::token(&self.syntax, SyntaxKind::JSON_KW)
9336    }
9337}
9338
9339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9340pub struct JsonFormatClause {
9341    pub(crate) syntax: SyntaxNode,
9342}
9343impl JsonFormatClause {
9344    #[inline]
9345    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9346        support::child(&self.syntax)
9347    }
9348    #[inline]
9349    pub fn format_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9351    }
9352    #[inline]
9353    pub fn json_token(&self) -> Option<SyntaxToken> {
9354        support::token(&self.syntax, SyntaxKind::JSON_KW)
9355    }
9356}
9357
9358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9359pub struct JsonKeyValue {
9360    pub(crate) syntax: SyntaxNode,
9361}
9362impl JsonKeyValue {
9363    #[inline]
9364    pub fn expr(&self) -> Option<Expr> {
9365        support::child(&self.syntax)
9366    }
9367    #[inline]
9368    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9369        support::child(&self.syntax)
9370    }
9371    #[inline]
9372    pub fn colon_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::COLON)
9374    }
9375}
9376
9377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9378pub struct JsonKeysUniqueClause {
9379    pub(crate) syntax: SyntaxNode,
9380}
9381impl JsonKeysUniqueClause {
9382    #[inline]
9383    pub fn keys_token(&self) -> Option<SyntaxToken> {
9384        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9385    }
9386    #[inline]
9387    pub fn unique_token(&self) -> Option<SyntaxToken> {
9388        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9389    }
9390    #[inline]
9391    pub fn with_token(&self) -> Option<SyntaxToken> {
9392        support::token(&self.syntax, SyntaxKind::WITH_KW)
9393    }
9394    #[inline]
9395    pub fn without_token(&self) -> Option<SyntaxToken> {
9396        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9397    }
9398}
9399
9400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9401pub struct JsonNullClause {
9402    pub(crate) syntax: SyntaxNode,
9403}
9404impl JsonNullClause {
9405    #[inline]
9406    pub fn absent_token(&self) -> Option<SyntaxToken> {
9407        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9408    }
9409    #[inline]
9410    pub fn null_token(&self) -> Option<SyntaxToken> {
9411        support::token(&self.syntax, SyntaxKind::NULL_KW)
9412    }
9413    #[inline]
9414    pub fn on_token(&self) -> Option<SyntaxToken> {
9415        support::token(&self.syntax, SyntaxKind::ON_KW)
9416    }
9417}
9418
9419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9420pub struct JsonObjectAggFn {
9421    pub(crate) syntax: SyntaxNode,
9422}
9423impl JsonObjectAggFn {
9424    #[inline]
9425    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9426        support::child(&self.syntax)
9427    }
9428    #[inline]
9429    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9430        support::child(&self.syntax)
9431    }
9432    #[inline]
9433    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9434        support::child(&self.syntax)
9435    }
9436    #[inline]
9437    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9438        support::child(&self.syntax)
9439    }
9440    #[inline]
9441    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9442        support::token(&self.syntax, SyntaxKind::L_PAREN)
9443    }
9444    #[inline]
9445    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9446        support::token(&self.syntax, SyntaxKind::R_PAREN)
9447    }
9448    #[inline]
9449    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9450        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9451    }
9452}
9453
9454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9455pub struct JsonObjectFn {
9456    pub(crate) syntax: SyntaxNode,
9457}
9458impl JsonObjectFn {
9459    #[inline]
9460    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9461        support::children(&self.syntax)
9462    }
9463    #[inline]
9464    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9465        support::child(&self.syntax)
9466    }
9467    #[inline]
9468    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9469        support::child(&self.syntax)
9470    }
9471    #[inline]
9472    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9473        support::child(&self.syntax)
9474    }
9475    #[inline]
9476    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9477        support::token(&self.syntax, SyntaxKind::L_PAREN)
9478    }
9479    #[inline]
9480    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9481        support::token(&self.syntax, SyntaxKind::R_PAREN)
9482    }
9483    #[inline]
9484    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9485        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9486    }
9487}
9488
9489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9490pub struct JsonOnEmptyClause {
9491    pub(crate) syntax: SyntaxNode,
9492}
9493impl JsonOnEmptyClause {
9494    #[inline]
9495    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9496        support::child(&self.syntax)
9497    }
9498    #[inline]
9499    pub fn empty_token(&self) -> Option<SyntaxToken> {
9500        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9501    }
9502    #[inline]
9503    pub fn on_token(&self) -> Option<SyntaxToken> {
9504        support::token(&self.syntax, SyntaxKind::ON_KW)
9505    }
9506}
9507
9508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9509pub struct JsonOnErrorClause {
9510    pub(crate) syntax: SyntaxNode,
9511}
9512impl JsonOnErrorClause {
9513    #[inline]
9514    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9515        support::child(&self.syntax)
9516    }
9517    #[inline]
9518    pub fn error_token(&self) -> Option<SyntaxToken> {
9519        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9520    }
9521    #[inline]
9522    pub fn on_token(&self) -> Option<SyntaxToken> {
9523        support::token(&self.syntax, SyntaxKind::ON_KW)
9524    }
9525}
9526
9527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9528pub struct JsonPassingArg {
9529    pub(crate) syntax: SyntaxNode,
9530}
9531impl JsonPassingArg {
9532    #[inline]
9533    pub fn expr(&self) -> Option<Expr> {
9534        support::child(&self.syntax)
9535    }
9536}
9537
9538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9539pub struct JsonPassingClause {
9540    pub(crate) syntax: SyntaxNode,
9541}
9542impl JsonPassingClause {
9543    #[inline]
9544    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9545        support::children(&self.syntax)
9546    }
9547    #[inline]
9548    pub fn passing_token(&self) -> Option<SyntaxToken> {
9549        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9550    }
9551}
9552
9553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9554pub struct JsonPathClause {
9555    pub(crate) syntax: SyntaxNode,
9556}
9557impl JsonPathClause {
9558    #[inline]
9559    pub fn expr(&self) -> Option<Expr> {
9560        support::child(&self.syntax)
9561    }
9562    #[inline]
9563    pub fn path_token(&self) -> Option<SyntaxToken> {
9564        support::token(&self.syntax, SyntaxKind::PATH_KW)
9565    }
9566}
9567
9568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9569pub struct JsonQueryFn {
9570    pub(crate) syntax: SyntaxNode,
9571}
9572impl JsonQueryFn {
9573    #[inline]
9574    pub fn expr(&self) -> Option<Expr> {
9575        support::child(&self.syntax)
9576    }
9577    #[inline]
9578    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9579        support::child(&self.syntax)
9580    }
9581    #[inline]
9582    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9583        support::child(&self.syntax)
9584    }
9585    #[inline]
9586    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9587        support::child(&self.syntax)
9588    }
9589    #[inline]
9590    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9591        support::child(&self.syntax)
9592    }
9593    #[inline]
9594    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9595        support::child(&self.syntax)
9596    }
9597    #[inline]
9598    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9599        support::child(&self.syntax)
9600    }
9601    #[inline]
9602    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9603        support::token(&self.syntax, SyntaxKind::L_PAREN)
9604    }
9605    #[inline]
9606    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9607        support::token(&self.syntax, SyntaxKind::R_PAREN)
9608    }
9609    #[inline]
9610    pub fn comma_token(&self) -> Option<SyntaxToken> {
9611        support::token(&self.syntax, SyntaxKind::COMMA)
9612    }
9613    #[inline]
9614    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9615        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9616    }
9617}
9618
9619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9620pub struct JsonQuotesClause {
9621    pub(crate) syntax: SyntaxNode,
9622}
9623impl JsonQuotesClause {
9624    #[inline]
9625    pub fn keep_token(&self) -> Option<SyntaxToken> {
9626        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9627    }
9628    #[inline]
9629    pub fn omit_token(&self) -> Option<SyntaxToken> {
9630        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9631    }
9632    #[inline]
9633    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9634        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9635    }
9636}
9637
9638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9639pub struct JsonReturningClause {
9640    pub(crate) syntax: SyntaxNode,
9641}
9642impl JsonReturningClause {
9643    #[inline]
9644    pub fn ty(&self) -> Option<Type> {
9645        support::child(&self.syntax)
9646    }
9647    #[inline]
9648    pub fn returning_token(&self) -> Option<SyntaxToken> {
9649        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9650    }
9651}
9652
9653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9654pub struct JsonScalarFn {
9655    pub(crate) syntax: SyntaxNode,
9656}
9657impl JsonScalarFn {
9658    #[inline]
9659    pub fn expr(&self) -> Option<Expr> {
9660        support::child(&self.syntax)
9661    }
9662    #[inline]
9663    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9664        support::token(&self.syntax, SyntaxKind::L_PAREN)
9665    }
9666    #[inline]
9667    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9668        support::token(&self.syntax, SyntaxKind::R_PAREN)
9669    }
9670    #[inline]
9671    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9672        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9673    }
9674}
9675
9676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9677pub struct JsonSelectFormat {
9678    pub(crate) syntax: SyntaxNode,
9679}
9680impl JsonSelectFormat {
9681    #[inline]
9682    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9683        support::child(&self.syntax)
9684    }
9685    #[inline]
9686    pub fn select_variant(&self) -> Option<SelectVariant> {
9687        support::child(&self.syntax)
9688    }
9689}
9690
9691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9692pub struct JsonSerializeFn {
9693    pub(crate) syntax: SyntaxNode,
9694}
9695impl JsonSerializeFn {
9696    #[inline]
9697    pub fn expr(&self) -> Option<Expr> {
9698        support::child(&self.syntax)
9699    }
9700    #[inline]
9701    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9702        support::child(&self.syntax)
9703    }
9704    #[inline]
9705    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9706        support::child(&self.syntax)
9707    }
9708    #[inline]
9709    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9710        support::token(&self.syntax, SyntaxKind::L_PAREN)
9711    }
9712    #[inline]
9713    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9714        support::token(&self.syntax, SyntaxKind::R_PAREN)
9715    }
9716    #[inline]
9717    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9718        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9719    }
9720}
9721
9722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9723pub struct JsonTable {
9724    pub(crate) syntax: SyntaxNode,
9725}
9726impl JsonTable {
9727    #[inline]
9728    pub fn expr(&self) -> Option<Expr> {
9729        support::child(&self.syntax)
9730    }
9731    #[inline]
9732    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9733        support::child(&self.syntax)
9734    }
9735    #[inline]
9736    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9737        support::child(&self.syntax)
9738    }
9739    #[inline]
9740    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9741        support::child(&self.syntax)
9742    }
9743    #[inline]
9744    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9745        support::child(&self.syntax)
9746    }
9747    #[inline]
9748    pub fn name(&self) -> Option<Name> {
9749        support::child(&self.syntax)
9750    }
9751    #[inline]
9752    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9753        support::token(&self.syntax, SyntaxKind::L_PAREN)
9754    }
9755    #[inline]
9756    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9757        support::token(&self.syntax, SyntaxKind::R_PAREN)
9758    }
9759    #[inline]
9760    pub fn comma_token(&self) -> Option<SyntaxToken> {
9761        support::token(&self.syntax, SyntaxKind::COMMA)
9762    }
9763    #[inline]
9764    pub fn as_token(&self) -> Option<SyntaxToken> {
9765        support::token(&self.syntax, SyntaxKind::AS_KW)
9766    }
9767    #[inline]
9768    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9769        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9770    }
9771}
9772
9773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9774pub struct JsonTableColumn {
9775    pub(crate) syntax: SyntaxNode,
9776}
9777impl JsonTableColumn {
9778    #[inline]
9779    pub fn expr(&self) -> Option<Expr> {
9780        support::child(&self.syntax)
9781    }
9782    #[inline]
9783    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9784        support::child(&self.syntax)
9785    }
9786    #[inline]
9787    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9788        support::child(&self.syntax)
9789    }
9790    #[inline]
9791    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9792        support::child(&self.syntax)
9793    }
9794    #[inline]
9795    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
9796        support::child(&self.syntax)
9797    }
9798    #[inline]
9799    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9800        support::child(&self.syntax)
9801    }
9802    #[inline]
9803    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9804        support::child(&self.syntax)
9805    }
9806    #[inline]
9807    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9808        support::child(&self.syntax)
9809    }
9810    #[inline]
9811    pub fn name(&self) -> Option<Name> {
9812        support::child(&self.syntax)
9813    }
9814    #[inline]
9815    pub fn ty(&self) -> Option<Type> {
9816        support::child(&self.syntax)
9817    }
9818    #[inline]
9819    pub fn as_token(&self) -> Option<SyntaxToken> {
9820        support::token(&self.syntax, SyntaxKind::AS_KW)
9821    }
9822    #[inline]
9823    pub fn exists_token(&self) -> Option<SyntaxToken> {
9824        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9825    }
9826    #[inline]
9827    pub fn for_token(&self) -> Option<SyntaxToken> {
9828        support::token(&self.syntax, SyntaxKind::FOR_KW)
9829    }
9830    #[inline]
9831    pub fn nested_token(&self) -> Option<SyntaxToken> {
9832        support::token(&self.syntax, SyntaxKind::NESTED_KW)
9833    }
9834    #[inline]
9835    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9836        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9837    }
9838    #[inline]
9839    pub fn path_token(&self) -> Option<SyntaxToken> {
9840        support::token(&self.syntax, SyntaxKind::PATH_KW)
9841    }
9842}
9843
9844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9845pub struct JsonTableColumnList {
9846    pub(crate) syntax: SyntaxNode,
9847}
9848impl JsonTableColumnList {
9849    #[inline]
9850    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
9851        support::children(&self.syntax)
9852    }
9853    #[inline]
9854    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9855        support::token(&self.syntax, SyntaxKind::L_PAREN)
9856    }
9857    #[inline]
9858    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9859        support::token(&self.syntax, SyntaxKind::R_PAREN)
9860    }
9861    #[inline]
9862    pub fn columns_token(&self) -> Option<SyntaxToken> {
9863        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9864    }
9865}
9866
9867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9868pub struct JsonValueExpr {
9869    pub(crate) syntax: SyntaxNode,
9870}
9871impl JsonValueExpr {
9872    #[inline]
9873    pub fn expr(&self) -> Option<Expr> {
9874        support::child(&self.syntax)
9875    }
9876    #[inline]
9877    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9878        support::child(&self.syntax)
9879    }
9880}
9881
9882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9883pub struct JsonValueFn {
9884    pub(crate) syntax: SyntaxNode,
9885}
9886impl JsonValueFn {
9887    #[inline]
9888    pub fn expr(&self) -> Option<Expr> {
9889        support::child(&self.syntax)
9890    }
9891    #[inline]
9892    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9893        support::child(&self.syntax)
9894    }
9895    #[inline]
9896    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9897        support::child(&self.syntax)
9898    }
9899    #[inline]
9900    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9901        support::child(&self.syntax)
9902    }
9903    #[inline]
9904    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9905        support::child(&self.syntax)
9906    }
9907    #[inline]
9908    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::L_PAREN)
9910    }
9911    #[inline]
9912    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::R_PAREN)
9914    }
9915    #[inline]
9916    pub fn comma_token(&self) -> Option<SyntaxToken> {
9917        support::token(&self.syntax, SyntaxKind::COMMA)
9918    }
9919    #[inline]
9920    pub fn json_value_token(&self) -> Option<SyntaxToken> {
9921        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
9922    }
9923}
9924
9925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9926pub struct JsonWrapperBehaviorClause {
9927    pub(crate) syntax: SyntaxNode,
9928}
9929impl JsonWrapperBehaviorClause {
9930    #[inline]
9931    pub fn array_token(&self) -> Option<SyntaxToken> {
9932        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9933    }
9934    #[inline]
9935    pub fn conditional_token(&self) -> Option<SyntaxToken> {
9936        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
9937    }
9938    #[inline]
9939    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
9940        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
9941    }
9942    #[inline]
9943    pub fn with_token(&self) -> Option<SyntaxToken> {
9944        support::token(&self.syntax, SyntaxKind::WITH_KW)
9945    }
9946    #[inline]
9947    pub fn without_token(&self) -> Option<SyntaxToken> {
9948        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9949    }
9950    #[inline]
9951    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
9952        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
9953    }
9954}
9955
9956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9957pub struct LanguageFuncOption {
9958    pub(crate) syntax: SyntaxNode,
9959}
9960impl LanguageFuncOption {
9961    #[inline]
9962    pub fn name_ref(&self) -> Option<NameRef> {
9963        support::child(&self.syntax)
9964    }
9965    #[inline]
9966    pub fn language_token(&self) -> Option<SyntaxToken> {
9967        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9968    }
9969}
9970
9971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9972pub struct LeakproofFuncOption {
9973    pub(crate) syntax: SyntaxNode,
9974}
9975impl LeakproofFuncOption {
9976    #[inline]
9977    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
9978        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
9979    }
9980    #[inline]
9981    pub fn not_token(&self) -> Option<SyntaxToken> {
9982        support::token(&self.syntax, SyntaxKind::NOT_KW)
9983    }
9984}
9985
9986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9987pub struct LikeClause {
9988    pub(crate) syntax: SyntaxNode,
9989}
9990impl LikeClause {
9991    #[inline]
9992    pub fn like_options(&self) -> AstChildren<LikeOption> {
9993        support::children(&self.syntax)
9994    }
9995    #[inline]
9996    pub fn path(&self) -> Option<Path> {
9997        support::child(&self.syntax)
9998    }
9999    #[inline]
10000    pub fn like_token(&self) -> Option<SyntaxToken> {
10001        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10002    }
10003}
10004
10005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10006pub struct LikeOption {
10007    pub(crate) syntax: SyntaxNode,
10008}
10009impl LikeOption {
10010    #[inline]
10011    pub fn all_token(&self) -> Option<SyntaxToken> {
10012        support::token(&self.syntax, SyntaxKind::ALL_KW)
10013    }
10014    #[inline]
10015    pub fn comments_token(&self) -> Option<SyntaxToken> {
10016        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
10017    }
10018    #[inline]
10019    pub fn compression_token(&self) -> Option<SyntaxToken> {
10020        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
10021    }
10022    #[inline]
10023    pub fn constraints_token(&self) -> Option<SyntaxToken> {
10024        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
10025    }
10026    #[inline]
10027    pub fn defaults_token(&self) -> Option<SyntaxToken> {
10028        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
10029    }
10030    #[inline]
10031    pub fn excluding_token(&self) -> Option<SyntaxToken> {
10032        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
10033    }
10034    #[inline]
10035    pub fn generated_token(&self) -> Option<SyntaxToken> {
10036        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
10037    }
10038    #[inline]
10039    pub fn identity_token(&self) -> Option<SyntaxToken> {
10040        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10041    }
10042    #[inline]
10043    pub fn including_token(&self) -> Option<SyntaxToken> {
10044        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10045    }
10046    #[inline]
10047    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10048        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10049    }
10050    #[inline]
10051    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10052        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10053    }
10054    #[inline]
10055    pub fn storage_token(&self) -> Option<SyntaxToken> {
10056        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10057    }
10058}
10059
10060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10061pub struct LimitClause {
10062    pub(crate) syntax: SyntaxNode,
10063}
10064impl LimitClause {
10065    #[inline]
10066    pub fn expr(&self) -> Option<Expr> {
10067        support::child(&self.syntax)
10068    }
10069    #[inline]
10070    pub fn all_token(&self) -> Option<SyntaxToken> {
10071        support::token(&self.syntax, SyntaxKind::ALL_KW)
10072    }
10073    #[inline]
10074    pub fn limit_token(&self) -> Option<SyntaxToken> {
10075        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10076    }
10077}
10078
10079#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10080pub struct LimitToTables {
10081    pub(crate) syntax: SyntaxNode,
10082}
10083impl LimitToTables {
10084    #[inline]
10085    pub fn name_refs(&self) -> AstChildren<NameRef> {
10086        support::children(&self.syntax)
10087    }
10088    #[inline]
10089    pub fn limit_token(&self) -> Option<SyntaxToken> {
10090        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10091    }
10092    #[inline]
10093    pub fn to_token(&self) -> Option<SyntaxToken> {
10094        support::token(&self.syntax, SyntaxKind::TO_KW)
10095    }
10096}
10097
10098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10099pub struct Listen {
10100    pub(crate) syntax: SyntaxNode,
10101}
10102impl Listen {
10103    #[inline]
10104    pub fn name(&self) -> Option<Name> {
10105        support::child(&self.syntax)
10106    }
10107    #[inline]
10108    pub fn listen_token(&self) -> Option<SyntaxToken> {
10109        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10110    }
10111}
10112
10113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10114pub struct Literal {
10115    pub(crate) syntax: SyntaxNode,
10116}
10117impl Literal {}
10118
10119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10120pub struct Load {
10121    pub(crate) syntax: SyntaxNode,
10122}
10123impl Load {
10124    #[inline]
10125    pub fn literal(&self) -> Option<Literal> {
10126        support::child(&self.syntax)
10127    }
10128    #[inline]
10129    pub fn load_token(&self) -> Option<SyntaxToken> {
10130        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10131    }
10132}
10133
10134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10135pub struct Lock {
10136    pub(crate) syntax: SyntaxNode,
10137}
10138impl Lock {
10139    #[inline]
10140    pub fn table_list(&self) -> Option<TableList> {
10141        support::child(&self.syntax)
10142    }
10143    #[inline]
10144    pub fn lock_token(&self) -> Option<SyntaxToken> {
10145        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10146    }
10147    #[inline]
10148    pub fn table_token(&self) -> Option<SyntaxToken> {
10149        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10150    }
10151}
10152
10153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10154pub struct LockingClause {
10155    pub(crate) syntax: SyntaxNode,
10156}
10157impl LockingClause {
10158    #[inline]
10159    pub fn for_token(&self) -> Option<SyntaxToken> {
10160        support::token(&self.syntax, SyntaxKind::FOR_KW)
10161    }
10162}
10163
10164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10165pub struct Lteq {
10166    pub(crate) syntax: SyntaxNode,
10167}
10168impl Lteq {
10169    #[inline]
10170    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10171        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10172    }
10173    #[inline]
10174    pub fn eq_token(&self) -> Option<SyntaxToken> {
10175        support::token(&self.syntax, SyntaxKind::EQ)
10176    }
10177}
10178
10179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10180pub struct MatchFull {
10181    pub(crate) syntax: SyntaxNode,
10182}
10183impl MatchFull {
10184    #[inline]
10185    pub fn full_token(&self) -> Option<SyntaxToken> {
10186        support::token(&self.syntax, SyntaxKind::FULL_KW)
10187    }
10188    #[inline]
10189    pub fn match_token(&self) -> Option<SyntaxToken> {
10190        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10191    }
10192}
10193
10194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10195pub struct MatchPartial {
10196    pub(crate) syntax: SyntaxNode,
10197}
10198impl MatchPartial {
10199    #[inline]
10200    pub fn match_token(&self) -> Option<SyntaxToken> {
10201        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10202    }
10203    #[inline]
10204    pub fn partial_token(&self) -> Option<SyntaxToken> {
10205        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10206    }
10207}
10208
10209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10210pub struct MatchSimple {
10211    pub(crate) syntax: SyntaxNode,
10212}
10213impl MatchSimple {
10214    #[inline]
10215    pub fn match_token(&self) -> Option<SyntaxToken> {
10216        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10217    }
10218    #[inline]
10219    pub fn simple_token(&self) -> Option<SyntaxToken> {
10220        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10221    }
10222}
10223
10224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10225pub struct Materialized {
10226    pub(crate) syntax: SyntaxNode,
10227}
10228impl Materialized {
10229    #[inline]
10230    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10231        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10232    }
10233}
10234
10235#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10236pub struct Merge {
10237    pub(crate) syntax: SyntaxNode,
10238}
10239impl Merge {
10240    #[inline]
10241    pub fn alias(&self) -> Option<Alias> {
10242        support::child(&self.syntax)
10243    }
10244    #[inline]
10245    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10246        support::children(&self.syntax)
10247    }
10248    #[inline]
10249    pub fn relation_name(&self) -> Option<RelationName> {
10250        support::child(&self.syntax)
10251    }
10252    #[inline]
10253    pub fn returning_clause(&self) -> Option<ReturningClause> {
10254        support::child(&self.syntax)
10255    }
10256    #[inline]
10257    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10258        support::child(&self.syntax)
10259    }
10260    #[inline]
10261    pub fn with_clause(&self) -> Option<WithClause> {
10262        support::child(&self.syntax)
10263    }
10264    #[inline]
10265    pub fn into_token(&self) -> Option<SyntaxToken> {
10266        support::token(&self.syntax, SyntaxKind::INTO_KW)
10267    }
10268    #[inline]
10269    pub fn merge_token(&self) -> Option<SyntaxToken> {
10270        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10271    }
10272}
10273
10274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10275pub struct MergeDelete {
10276    pub(crate) syntax: SyntaxNode,
10277}
10278impl MergeDelete {
10279    #[inline]
10280    pub fn delete_token(&self) -> Option<SyntaxToken> {
10281        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10282    }
10283}
10284
10285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10286pub struct MergeDoNothing {
10287    pub(crate) syntax: SyntaxNode,
10288}
10289impl MergeDoNothing {
10290    #[inline]
10291    pub fn do_token(&self) -> Option<SyntaxToken> {
10292        support::token(&self.syntax, SyntaxKind::DO_KW)
10293    }
10294    #[inline]
10295    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10296        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10297    }
10298}
10299
10300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10301pub struct MergeInsert {
10302    pub(crate) syntax: SyntaxNode,
10303}
10304impl MergeInsert {
10305    #[inline]
10306    pub fn column_list(&self) -> Option<ColumnList> {
10307        support::child(&self.syntax)
10308    }
10309    #[inline]
10310    pub fn values(&self) -> Option<Values> {
10311        support::child(&self.syntax)
10312    }
10313    #[inline]
10314    pub fn default_token(&self) -> Option<SyntaxToken> {
10315        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10316    }
10317    #[inline]
10318    pub fn insert_token(&self) -> Option<SyntaxToken> {
10319        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10320    }
10321    #[inline]
10322    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10323        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10324    }
10325    #[inline]
10326    pub fn system_token(&self) -> Option<SyntaxToken> {
10327        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10328    }
10329    #[inline]
10330    pub fn user_token(&self) -> Option<SyntaxToken> {
10331        support::token(&self.syntax, SyntaxKind::USER_KW)
10332    }
10333    #[inline]
10334    pub fn values_token(&self) -> Option<SyntaxToken> {
10335        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10336    }
10337}
10338
10339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10340pub struct MergePartitions {
10341    pub(crate) syntax: SyntaxNode,
10342}
10343impl MergePartitions {
10344    #[inline]
10345    pub fn path(&self) -> Option<Path> {
10346        support::child(&self.syntax)
10347    }
10348    #[inline]
10349    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10350        support::token(&self.syntax, SyntaxKind::L_PAREN)
10351    }
10352    #[inline]
10353    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10354        support::token(&self.syntax, SyntaxKind::R_PAREN)
10355    }
10356    #[inline]
10357    pub fn into_token(&self) -> Option<SyntaxToken> {
10358        support::token(&self.syntax, SyntaxKind::INTO_KW)
10359    }
10360    #[inline]
10361    pub fn merge_token(&self) -> Option<SyntaxToken> {
10362        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10363    }
10364    #[inline]
10365    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10366        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10367    }
10368}
10369
10370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10371pub struct MergeUpdate {
10372    pub(crate) syntax: SyntaxNode,
10373}
10374impl MergeUpdate {
10375    #[inline]
10376    pub fn set_clause(&self) -> Option<SetClause> {
10377        support::child(&self.syntax)
10378    }
10379    #[inline]
10380    pub fn set_token(&self) -> Option<SyntaxToken> {
10381        support::token(&self.syntax, SyntaxKind::SET_KW)
10382    }
10383    #[inline]
10384    pub fn update_token(&self) -> Option<SyntaxToken> {
10385        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10386    }
10387}
10388
10389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10390pub struct MergeWhenMatched {
10391    pub(crate) syntax: SyntaxNode,
10392}
10393impl MergeWhenMatched {
10394    #[inline]
10395    pub fn expr(&self) -> Option<Expr> {
10396        support::child(&self.syntax)
10397    }
10398    #[inline]
10399    pub fn merge_action(&self) -> Option<MergeAction> {
10400        support::child(&self.syntax)
10401    }
10402    #[inline]
10403    pub fn and_token(&self) -> Option<SyntaxToken> {
10404        support::token(&self.syntax, SyntaxKind::AND_KW)
10405    }
10406    #[inline]
10407    pub fn matched_token(&self) -> Option<SyntaxToken> {
10408        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10409    }
10410    #[inline]
10411    pub fn then_token(&self) -> Option<SyntaxToken> {
10412        support::token(&self.syntax, SyntaxKind::THEN_KW)
10413    }
10414    #[inline]
10415    pub fn when_token(&self) -> Option<SyntaxToken> {
10416        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10417    }
10418}
10419
10420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10421pub struct MergeWhenNotMatchedSource {
10422    pub(crate) syntax: SyntaxNode,
10423}
10424impl MergeWhenNotMatchedSource {
10425    #[inline]
10426    pub fn expr(&self) -> Option<Expr> {
10427        support::child(&self.syntax)
10428    }
10429    #[inline]
10430    pub fn merge_action(&self) -> Option<MergeAction> {
10431        support::child(&self.syntax)
10432    }
10433    #[inline]
10434    pub fn and_token(&self) -> Option<SyntaxToken> {
10435        support::token(&self.syntax, SyntaxKind::AND_KW)
10436    }
10437    #[inline]
10438    pub fn by_token(&self) -> Option<SyntaxToken> {
10439        support::token(&self.syntax, SyntaxKind::BY_KW)
10440    }
10441    #[inline]
10442    pub fn matched_token(&self) -> Option<SyntaxToken> {
10443        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10444    }
10445    #[inline]
10446    pub fn not_token(&self) -> Option<SyntaxToken> {
10447        support::token(&self.syntax, SyntaxKind::NOT_KW)
10448    }
10449    #[inline]
10450    pub fn source_token(&self) -> Option<SyntaxToken> {
10451        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10452    }
10453    #[inline]
10454    pub fn then_token(&self) -> Option<SyntaxToken> {
10455        support::token(&self.syntax, SyntaxKind::THEN_KW)
10456    }
10457    #[inline]
10458    pub fn when_token(&self) -> Option<SyntaxToken> {
10459        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10460    }
10461}
10462
10463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10464pub struct MergeWhenNotMatchedTarget {
10465    pub(crate) syntax: SyntaxNode,
10466}
10467impl MergeWhenNotMatchedTarget {
10468    #[inline]
10469    pub fn expr(&self) -> Option<Expr> {
10470        support::child(&self.syntax)
10471    }
10472    #[inline]
10473    pub fn merge_action(&self) -> Option<MergeAction> {
10474        support::child(&self.syntax)
10475    }
10476    #[inline]
10477    pub fn and_token(&self) -> Option<SyntaxToken> {
10478        support::token(&self.syntax, SyntaxKind::AND_KW)
10479    }
10480    #[inline]
10481    pub fn by_token(&self) -> Option<SyntaxToken> {
10482        support::token(&self.syntax, SyntaxKind::BY_KW)
10483    }
10484    #[inline]
10485    pub fn matched_token(&self) -> Option<SyntaxToken> {
10486        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10487    }
10488    #[inline]
10489    pub fn not_token(&self) -> Option<SyntaxToken> {
10490        support::token(&self.syntax, SyntaxKind::NOT_KW)
10491    }
10492    #[inline]
10493    pub fn target_token(&self) -> Option<SyntaxToken> {
10494        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10495    }
10496    #[inline]
10497    pub fn then_token(&self) -> Option<SyntaxToken> {
10498        support::token(&self.syntax, SyntaxKind::THEN_KW)
10499    }
10500    #[inline]
10501    pub fn when_token(&self) -> Option<SyntaxToken> {
10502        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10503    }
10504}
10505
10506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10507pub struct Move {
10508    pub(crate) syntax: SyntaxNode,
10509}
10510impl Move {
10511    #[inline]
10512    pub fn name_ref(&self) -> Option<NameRef> {
10513        support::child(&self.syntax)
10514    }
10515    #[inline]
10516    pub fn from_token(&self) -> Option<SyntaxToken> {
10517        support::token(&self.syntax, SyntaxKind::FROM_KW)
10518    }
10519    #[inline]
10520    pub fn in_token(&self) -> Option<SyntaxToken> {
10521        support::token(&self.syntax, SyntaxKind::IN_KW)
10522    }
10523    #[inline]
10524    pub fn move_token(&self) -> Option<SyntaxToken> {
10525        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10526    }
10527}
10528
10529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10530pub struct Name {
10531    pub(crate) syntax: SyntaxNode,
10532}
10533impl Name {
10534    #[inline]
10535    pub fn ident_token(&self) -> Option<SyntaxToken> {
10536        support::token(&self.syntax, SyntaxKind::IDENT)
10537    }
10538}
10539
10540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10541pub struct NameRef {
10542    pub(crate) syntax: SyntaxNode,
10543}
10544impl NameRef {
10545    #[inline]
10546    pub fn ident_token(&self) -> Option<SyntaxToken> {
10547        support::token(&self.syntax, SyntaxKind::IDENT)
10548    }
10549}
10550
10551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10552pub struct NamedArg {
10553    pub(crate) syntax: SyntaxNode,
10554}
10555impl NamedArg {
10556    #[inline]
10557    pub fn expr(&self) -> Option<Expr> {
10558        support::child(&self.syntax)
10559    }
10560    #[inline]
10561    pub fn fat_arrow(&self) -> Option<FatArrow> {
10562        support::child(&self.syntax)
10563    }
10564    #[inline]
10565    pub fn name_ref(&self) -> Option<NameRef> {
10566        support::child(&self.syntax)
10567    }
10568}
10569
10570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10571pub struct Neq {
10572    pub(crate) syntax: SyntaxNode,
10573}
10574impl Neq {
10575    #[inline]
10576    pub fn bang_token(&self) -> Option<SyntaxToken> {
10577        support::token(&self.syntax, SyntaxKind::BANG)
10578    }
10579    #[inline]
10580    pub fn eq_token(&self) -> Option<SyntaxToken> {
10581        support::token(&self.syntax, SyntaxKind::EQ)
10582    }
10583}
10584
10585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10586pub struct Neqb {
10587    pub(crate) syntax: SyntaxNode,
10588}
10589impl Neqb {
10590    #[inline]
10591    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10592        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10593    }
10594    #[inline]
10595    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10596        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10597    }
10598}
10599
10600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10601pub struct NoAction {
10602    pub(crate) syntax: SyntaxNode,
10603}
10604impl NoAction {
10605    #[inline]
10606    pub fn action_token(&self) -> Option<SyntaxToken> {
10607        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10608    }
10609    #[inline]
10610    pub fn no_token(&self) -> Option<SyntaxToken> {
10611        support::token(&self.syntax, SyntaxKind::NO_KW)
10612    }
10613}
10614
10615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10616pub struct NoDependsOnExtension {
10617    pub(crate) syntax: SyntaxNode,
10618}
10619impl NoDependsOnExtension {
10620    #[inline]
10621    pub fn name_ref(&self) -> Option<NameRef> {
10622        support::child(&self.syntax)
10623    }
10624    #[inline]
10625    pub fn depends_token(&self) -> Option<SyntaxToken> {
10626        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10627    }
10628    #[inline]
10629    pub fn extension_token(&self) -> Option<SyntaxToken> {
10630        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10631    }
10632    #[inline]
10633    pub fn no_token(&self) -> Option<SyntaxToken> {
10634        support::token(&self.syntax, SyntaxKind::NO_KW)
10635    }
10636    #[inline]
10637    pub fn on_token(&self) -> Option<SyntaxToken> {
10638        support::token(&self.syntax, SyntaxKind::ON_KW)
10639    }
10640}
10641
10642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10643pub struct NoForceRls {
10644    pub(crate) syntax: SyntaxNode,
10645}
10646impl NoForceRls {
10647    #[inline]
10648    pub fn force_token(&self) -> Option<SyntaxToken> {
10649        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10650    }
10651    #[inline]
10652    pub fn level_token(&self) -> Option<SyntaxToken> {
10653        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10654    }
10655    #[inline]
10656    pub fn no_token(&self) -> Option<SyntaxToken> {
10657        support::token(&self.syntax, SyntaxKind::NO_KW)
10658    }
10659    #[inline]
10660    pub fn row_token(&self) -> Option<SyntaxToken> {
10661        support::token(&self.syntax, SyntaxKind::ROW_KW)
10662    }
10663    #[inline]
10664    pub fn security_token(&self) -> Option<SyntaxToken> {
10665        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10666    }
10667}
10668
10669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10670pub struct NoInherit {
10671    pub(crate) syntax: SyntaxNode,
10672}
10673impl NoInherit {
10674    #[inline]
10675    pub fn path(&self) -> Option<Path> {
10676        support::child(&self.syntax)
10677    }
10678    #[inline]
10679    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10680        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10681    }
10682    #[inline]
10683    pub fn no_token(&self) -> Option<SyntaxToken> {
10684        support::token(&self.syntax, SyntaxKind::NO_KW)
10685    }
10686}
10687
10688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10689pub struct NoInheritTable {
10690    pub(crate) syntax: SyntaxNode,
10691}
10692impl NoInheritTable {
10693    #[inline]
10694    pub fn path(&self) -> Option<Path> {
10695        support::child(&self.syntax)
10696    }
10697    #[inline]
10698    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10699        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10700    }
10701    #[inline]
10702    pub fn no_token(&self) -> Option<SyntaxToken> {
10703        support::token(&self.syntax, SyntaxKind::NO_KW)
10704    }
10705}
10706
10707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10708pub struct NonStandardParam {
10709    pub(crate) syntax: SyntaxNode,
10710}
10711impl NonStandardParam {
10712    #[inline]
10713    pub fn name_ref(&self) -> Option<NameRef> {
10714        support::child(&self.syntax)
10715    }
10716    #[inline]
10717    pub fn colon_token(&self) -> Option<SyntaxToken> {
10718        support::token(&self.syntax, SyntaxKind::COLON)
10719    }
10720}
10721
10722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10723pub struct NotDeferrable {
10724    pub(crate) syntax: SyntaxNode,
10725}
10726impl NotDeferrable {
10727    #[inline]
10728    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10729        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10730    }
10731    #[inline]
10732    pub fn not_token(&self) -> Option<SyntaxToken> {
10733        support::token(&self.syntax, SyntaxKind::NOT_KW)
10734    }
10735}
10736
10737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10738pub struct NotDeferrableConstraintOption {
10739    pub(crate) syntax: SyntaxNode,
10740}
10741impl NotDeferrableConstraintOption {
10742    #[inline]
10743    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10744        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10745    }
10746    #[inline]
10747    pub fn not_token(&self) -> Option<SyntaxToken> {
10748        support::token(&self.syntax, SyntaxKind::NOT_KW)
10749    }
10750}
10751
10752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10753pub struct NotEnforced {
10754    pub(crate) syntax: SyntaxNode,
10755}
10756impl NotEnforced {
10757    #[inline]
10758    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10759        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10760    }
10761    #[inline]
10762    pub fn not_token(&self) -> Option<SyntaxToken> {
10763        support::token(&self.syntax, SyntaxKind::NOT_KW)
10764    }
10765}
10766
10767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10768pub struct NotIlike {
10769    pub(crate) syntax: SyntaxNode,
10770}
10771impl NotIlike {
10772    #[inline]
10773    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10774        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10775    }
10776    #[inline]
10777    pub fn not_token(&self) -> Option<SyntaxToken> {
10778        support::token(&self.syntax, SyntaxKind::NOT_KW)
10779    }
10780}
10781
10782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10783pub struct NotIn {
10784    pub(crate) syntax: SyntaxNode,
10785}
10786impl NotIn {
10787    #[inline]
10788    pub fn in_token(&self) -> Option<SyntaxToken> {
10789        support::token(&self.syntax, SyntaxKind::IN_KW)
10790    }
10791    #[inline]
10792    pub fn not_token(&self) -> Option<SyntaxToken> {
10793        support::token(&self.syntax, SyntaxKind::NOT_KW)
10794    }
10795}
10796
10797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10798pub struct NotLike {
10799    pub(crate) syntax: SyntaxNode,
10800}
10801impl NotLike {
10802    #[inline]
10803    pub fn like_token(&self) -> Option<SyntaxToken> {
10804        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10805    }
10806    #[inline]
10807    pub fn not_token(&self) -> Option<SyntaxToken> {
10808        support::token(&self.syntax, SyntaxKind::NOT_KW)
10809    }
10810}
10811
10812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10813pub struct NotMaterialized {
10814    pub(crate) syntax: SyntaxNode,
10815}
10816impl NotMaterialized {
10817    #[inline]
10818    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10819        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10820    }
10821    #[inline]
10822    pub fn not_token(&self) -> Option<SyntaxToken> {
10823        support::token(&self.syntax, SyntaxKind::NOT_KW)
10824    }
10825}
10826
10827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10828pub struct NotNullConstraint {
10829    pub(crate) syntax: SyntaxNode,
10830}
10831impl NotNullConstraint {
10832    #[inline]
10833    pub fn name_ref(&self) -> Option<NameRef> {
10834        support::child(&self.syntax)
10835    }
10836    #[inline]
10837    pub fn no_inherit(&self) -> Option<NoInherit> {
10838        support::child(&self.syntax)
10839    }
10840    #[inline]
10841    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10842        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10843    }
10844    #[inline]
10845    pub fn not_token(&self) -> Option<SyntaxToken> {
10846        support::token(&self.syntax, SyntaxKind::NOT_KW)
10847    }
10848    #[inline]
10849    pub fn null_token(&self) -> Option<SyntaxToken> {
10850        support::token(&self.syntax, SyntaxKind::NULL_KW)
10851    }
10852}
10853
10854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10855pub struct NotOf {
10856    pub(crate) syntax: SyntaxNode,
10857}
10858impl NotOf {
10859    #[inline]
10860    pub fn not_token(&self) -> Option<SyntaxToken> {
10861        support::token(&self.syntax, SyntaxKind::NOT_KW)
10862    }
10863    #[inline]
10864    pub fn of_token(&self) -> Option<SyntaxToken> {
10865        support::token(&self.syntax, SyntaxKind::OF_KW)
10866    }
10867}
10868
10869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10870pub struct NotSimilarTo {
10871    pub(crate) syntax: SyntaxNode,
10872}
10873impl NotSimilarTo {
10874    #[inline]
10875    pub fn not_token(&self) -> Option<SyntaxToken> {
10876        support::token(&self.syntax, SyntaxKind::NOT_KW)
10877    }
10878    #[inline]
10879    pub fn similar_token(&self) -> Option<SyntaxToken> {
10880        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10881    }
10882    #[inline]
10883    pub fn to_token(&self) -> Option<SyntaxToken> {
10884        support::token(&self.syntax, SyntaxKind::TO_KW)
10885    }
10886}
10887
10888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10889pub struct NotValid {
10890    pub(crate) syntax: SyntaxNode,
10891}
10892impl NotValid {
10893    #[inline]
10894    pub fn not_token(&self) -> Option<SyntaxToken> {
10895        support::token(&self.syntax, SyntaxKind::NOT_KW)
10896    }
10897    #[inline]
10898    pub fn valid_token(&self) -> Option<SyntaxToken> {
10899        support::token(&self.syntax, SyntaxKind::VALID_KW)
10900    }
10901}
10902
10903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10904pub struct Notify {
10905    pub(crate) syntax: SyntaxNode,
10906}
10907impl Notify {
10908    #[inline]
10909    pub fn literal(&self) -> Option<Literal> {
10910        support::child(&self.syntax)
10911    }
10912    #[inline]
10913    pub fn name_ref(&self) -> Option<NameRef> {
10914        support::child(&self.syntax)
10915    }
10916    #[inline]
10917    pub fn comma_token(&self) -> Option<SyntaxToken> {
10918        support::token(&self.syntax, SyntaxKind::COMMA)
10919    }
10920    #[inline]
10921    pub fn notify_token(&self) -> Option<SyntaxToken> {
10922        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
10923    }
10924}
10925
10926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10927pub struct NullConstraint {
10928    pub(crate) syntax: SyntaxNode,
10929}
10930impl NullConstraint {
10931    #[inline]
10932    pub fn name_ref(&self) -> Option<NameRef> {
10933        support::child(&self.syntax)
10934    }
10935    #[inline]
10936    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10937        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10938    }
10939    #[inline]
10940    pub fn null_token(&self) -> Option<SyntaxToken> {
10941        support::token(&self.syntax, SyntaxKind::NULL_KW)
10942    }
10943}
10944
10945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10946pub struct NullsDistinct {
10947    pub(crate) syntax: SyntaxNode,
10948}
10949impl NullsDistinct {
10950    #[inline]
10951    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10952        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10953    }
10954    #[inline]
10955    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10956        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10957    }
10958}
10959
10960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10961pub struct NullsFirst {
10962    pub(crate) syntax: SyntaxNode,
10963}
10964impl NullsFirst {
10965    #[inline]
10966    pub fn first_token(&self) -> Option<SyntaxToken> {
10967        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10968    }
10969    #[inline]
10970    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10971        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10972    }
10973}
10974
10975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10976pub struct NullsLast {
10977    pub(crate) syntax: SyntaxNode,
10978}
10979impl NullsLast {
10980    #[inline]
10981    pub fn last_token(&self) -> Option<SyntaxToken> {
10982        support::token(&self.syntax, SyntaxKind::LAST_KW)
10983    }
10984    #[inline]
10985    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10986        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10987    }
10988}
10989
10990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10991pub struct NullsNotDistinct {
10992    pub(crate) syntax: SyntaxNode,
10993}
10994impl NullsNotDistinct {
10995    #[inline]
10996    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10997        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10998    }
10999    #[inline]
11000    pub fn not_token(&self) -> Option<SyntaxToken> {
11001        support::token(&self.syntax, SyntaxKind::NOT_KW)
11002    }
11003    #[inline]
11004    pub fn nulls_token(&self) -> Option<SyntaxToken> {
11005        support::token(&self.syntax, SyntaxKind::NULLS_KW)
11006    }
11007}
11008
11009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11010pub struct OfType {
11011    pub(crate) syntax: SyntaxNode,
11012}
11013impl OfType {
11014    #[inline]
11015    pub fn ty(&self) -> Option<Type> {
11016        support::child(&self.syntax)
11017    }
11018    #[inline]
11019    pub fn of_token(&self) -> Option<SyntaxToken> {
11020        support::token(&self.syntax, SyntaxKind::OF_KW)
11021    }
11022}
11023
11024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11025pub struct OffsetClause {
11026    pub(crate) syntax: SyntaxNode,
11027}
11028impl OffsetClause {
11029    #[inline]
11030    pub fn expr(&self) -> Option<Expr> {
11031        support::child(&self.syntax)
11032    }
11033    #[inline]
11034    pub fn offset_token(&self) -> Option<SyntaxToken> {
11035        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
11036    }
11037    #[inline]
11038    pub fn row_token(&self) -> Option<SyntaxToken> {
11039        support::token(&self.syntax, SyntaxKind::ROW_KW)
11040    }
11041    #[inline]
11042    pub fn rows_token(&self) -> Option<SyntaxToken> {
11043        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11044    }
11045}
11046
11047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11048pub struct OnClause {
11049    pub(crate) syntax: SyntaxNode,
11050}
11051impl OnClause {
11052    #[inline]
11053    pub fn expr(&self) -> Option<Expr> {
11054        support::child(&self.syntax)
11055    }
11056    #[inline]
11057    pub fn on_token(&self) -> Option<SyntaxToken> {
11058        support::token(&self.syntax, SyntaxKind::ON_KW)
11059    }
11060}
11061
11062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11063pub struct OnCommit {
11064    pub(crate) syntax: SyntaxNode,
11065}
11066impl OnCommit {
11067    #[inline]
11068    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11069        support::child(&self.syntax)
11070    }
11071    #[inline]
11072    pub fn commit_token(&self) -> Option<SyntaxToken> {
11073        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11074    }
11075    #[inline]
11076    pub fn on_token(&self) -> Option<SyntaxToken> {
11077        support::token(&self.syntax, SyntaxKind::ON_KW)
11078    }
11079}
11080
11081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11082pub struct OnConflictClause {
11083    pub(crate) syntax: SyntaxNode,
11084}
11085impl OnConflictClause {
11086    #[inline]
11087    pub fn conflict_action(&self) -> Option<ConflictAction> {
11088        support::child(&self.syntax)
11089    }
11090    #[inline]
11091    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11092        support::child(&self.syntax)
11093    }
11094    #[inline]
11095    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11096        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11097    }
11098    #[inline]
11099    pub fn on_token(&self) -> Option<SyntaxToken> {
11100        support::token(&self.syntax, SyntaxKind::ON_KW)
11101    }
11102}
11103
11104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11105pub struct OnDeleteAction {
11106    pub(crate) syntax: SyntaxNode,
11107}
11108impl OnDeleteAction {
11109    #[inline]
11110    pub fn ref_action(&self) -> Option<RefAction> {
11111        support::child(&self.syntax)
11112    }
11113    #[inline]
11114    pub fn delete_token(&self) -> Option<SyntaxToken> {
11115        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11116    }
11117    #[inline]
11118    pub fn on_token(&self) -> Option<SyntaxToken> {
11119        support::token(&self.syntax, SyntaxKind::ON_KW)
11120    }
11121}
11122
11123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11124pub struct OnTable {
11125    pub(crate) syntax: SyntaxNode,
11126}
11127impl OnTable {
11128    #[inline]
11129    pub fn path(&self) -> Option<Path> {
11130        support::child(&self.syntax)
11131    }
11132    #[inline]
11133    pub fn on_token(&self) -> Option<SyntaxToken> {
11134        support::token(&self.syntax, SyntaxKind::ON_KW)
11135    }
11136}
11137
11138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11139pub struct OnUpdateAction {
11140    pub(crate) syntax: SyntaxNode,
11141}
11142impl OnUpdateAction {
11143    #[inline]
11144    pub fn ref_action(&self) -> Option<RefAction> {
11145        support::child(&self.syntax)
11146    }
11147    #[inline]
11148    pub fn on_token(&self) -> Option<SyntaxToken> {
11149        support::token(&self.syntax, SyntaxKind::ON_KW)
11150    }
11151    #[inline]
11152    pub fn update_token(&self) -> Option<SyntaxToken> {
11153        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11154    }
11155}
11156
11157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11158pub struct Op {
11159    pub(crate) syntax: SyntaxNode,
11160}
11161impl Op {
11162    #[inline]
11163    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11164        support::child(&self.syntax)
11165    }
11166    #[inline]
11167    pub fn colon_colon(&self) -> Option<ColonColon> {
11168        support::child(&self.syntax)
11169    }
11170    #[inline]
11171    pub fn colon_eq(&self) -> Option<ColonEq> {
11172        support::child(&self.syntax)
11173    }
11174    #[inline]
11175    pub fn custom_op(&self) -> Option<CustomOp> {
11176        support::child(&self.syntax)
11177    }
11178    #[inline]
11179    pub fn fat_arrow(&self) -> Option<FatArrow> {
11180        support::child(&self.syntax)
11181    }
11182    #[inline]
11183    pub fn gteq(&self) -> Option<Gteq> {
11184        support::child(&self.syntax)
11185    }
11186    #[inline]
11187    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11188        support::child(&self.syntax)
11189    }
11190    #[inline]
11191    pub fn is_json(&self) -> Option<IsJson> {
11192        support::child(&self.syntax)
11193    }
11194    #[inline]
11195    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11196        support::child(&self.syntax)
11197    }
11198    #[inline]
11199    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11200        support::child(&self.syntax)
11201    }
11202    #[inline]
11203    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11204        support::child(&self.syntax)
11205    }
11206    #[inline]
11207    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11208        support::child(&self.syntax)
11209    }
11210    #[inline]
11211    pub fn is_not(&self) -> Option<IsNot> {
11212        support::child(&self.syntax)
11213    }
11214    #[inline]
11215    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11216        support::child(&self.syntax)
11217    }
11218    #[inline]
11219    pub fn is_not_json(&self) -> Option<IsNotJson> {
11220        support::child(&self.syntax)
11221    }
11222    #[inline]
11223    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11224        support::child(&self.syntax)
11225    }
11226    #[inline]
11227    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11228        support::child(&self.syntax)
11229    }
11230    #[inline]
11231    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11232        support::child(&self.syntax)
11233    }
11234    #[inline]
11235    pub fn lteq(&self) -> Option<Lteq> {
11236        support::child(&self.syntax)
11237    }
11238    #[inline]
11239    pub fn neq(&self) -> Option<Neq> {
11240        support::child(&self.syntax)
11241    }
11242    #[inline]
11243    pub fn neqb(&self) -> Option<Neqb> {
11244        support::child(&self.syntax)
11245    }
11246    #[inline]
11247    pub fn not_ilike(&self) -> Option<NotIlike> {
11248        support::child(&self.syntax)
11249    }
11250    #[inline]
11251    pub fn not_in(&self) -> Option<NotIn> {
11252        support::child(&self.syntax)
11253    }
11254    #[inline]
11255    pub fn not_like(&self) -> Option<NotLike> {
11256        support::child(&self.syntax)
11257    }
11258    #[inline]
11259    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11260        support::child(&self.syntax)
11261    }
11262    #[inline]
11263    pub fn operator_call(&self) -> Option<OperatorCall> {
11264        support::child(&self.syntax)
11265    }
11266    #[inline]
11267    pub fn similar_to(&self) -> Option<SimilarTo> {
11268        support::child(&self.syntax)
11269    }
11270    #[inline]
11271    pub fn percent_token(&self) -> Option<SyntaxToken> {
11272        support::token(&self.syntax, SyntaxKind::PERCENT)
11273    }
11274    #[inline]
11275    pub fn plus_token(&self) -> Option<SyntaxToken> {
11276        support::token(&self.syntax, SyntaxKind::PLUS)
11277    }
11278    #[inline]
11279    pub fn minus_token(&self) -> Option<SyntaxToken> {
11280        support::token(&self.syntax, SyntaxKind::MINUS)
11281    }
11282    #[inline]
11283    pub fn slash_token(&self) -> Option<SyntaxToken> {
11284        support::token(&self.syntax, SyntaxKind::SLASH)
11285    }
11286    #[inline]
11287    pub fn colon_token(&self) -> Option<SyntaxToken> {
11288        support::token(&self.syntax, SyntaxKind::COLON)
11289    }
11290    #[inline]
11291    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11292        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11293    }
11294    #[inline]
11295    pub fn eq_token(&self) -> Option<SyntaxToken> {
11296        support::token(&self.syntax, SyntaxKind::EQ)
11297    }
11298    #[inline]
11299    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11300        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11301    }
11302    #[inline]
11303    pub fn caret_token(&self) -> Option<SyntaxToken> {
11304        support::token(&self.syntax, SyntaxKind::CARET)
11305    }
11306    #[inline]
11307    pub fn and_token(&self) -> Option<SyntaxToken> {
11308        support::token(&self.syntax, SyntaxKind::AND_KW)
11309    }
11310    #[inline]
11311    pub fn collate_token(&self) -> Option<SyntaxToken> {
11312        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11313    }
11314    #[inline]
11315    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11316        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11317    }
11318    #[inline]
11319    pub fn in_token(&self) -> Option<SyntaxToken> {
11320        support::token(&self.syntax, SyntaxKind::IN_KW)
11321    }
11322    #[inline]
11323    pub fn is_token(&self) -> Option<SyntaxToken> {
11324        support::token(&self.syntax, SyntaxKind::IS_KW)
11325    }
11326    #[inline]
11327    pub fn like_token(&self) -> Option<SyntaxToken> {
11328        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11329    }
11330    #[inline]
11331    pub fn or_token(&self) -> Option<SyntaxToken> {
11332        support::token(&self.syntax, SyntaxKind::OR_KW)
11333    }
11334    #[inline]
11335    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11336        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11337    }
11338    #[inline]
11339    pub fn value_token(&self) -> Option<SyntaxToken> {
11340        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11341    }
11342}
11343
11344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11345pub struct OpClassOption {
11346    pub(crate) syntax: SyntaxNode,
11347}
11348impl OpClassOption {
11349    #[inline]
11350    pub fn function_sig(&self) -> Option<FunctionSig> {
11351        support::child(&self.syntax)
11352    }
11353    #[inline]
11354    pub fn literal(&self) -> Option<Literal> {
11355        support::child(&self.syntax)
11356    }
11357    #[inline]
11358    pub fn op(&self) -> Option<Op> {
11359        support::child(&self.syntax)
11360    }
11361    #[inline]
11362    pub fn param_list(&self) -> Option<ParamList> {
11363        support::child(&self.syntax)
11364    }
11365    #[inline]
11366    pub fn path(&self) -> Option<Path> {
11367        support::child(&self.syntax)
11368    }
11369    #[inline]
11370    pub fn ty(&self) -> Option<Type> {
11371        support::child(&self.syntax)
11372    }
11373    #[inline]
11374    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11375        support::token(&self.syntax, SyntaxKind::L_PAREN)
11376    }
11377    #[inline]
11378    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11379        support::token(&self.syntax, SyntaxKind::R_PAREN)
11380    }
11381    #[inline]
11382    pub fn comma_token(&self) -> Option<SyntaxToken> {
11383        support::token(&self.syntax, SyntaxKind::COMMA)
11384    }
11385    #[inline]
11386    pub fn by_token(&self) -> Option<SyntaxToken> {
11387        support::token(&self.syntax, SyntaxKind::BY_KW)
11388    }
11389    #[inline]
11390    pub fn for_token(&self) -> Option<SyntaxToken> {
11391        support::token(&self.syntax, SyntaxKind::FOR_KW)
11392    }
11393    #[inline]
11394    pub fn function_token(&self) -> Option<SyntaxToken> {
11395        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11396    }
11397    #[inline]
11398    pub fn operator_token(&self) -> Option<SyntaxToken> {
11399        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11400    }
11401    #[inline]
11402    pub fn order_token(&self) -> Option<SyntaxToken> {
11403        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11404    }
11405    #[inline]
11406    pub fn search_token(&self) -> Option<SyntaxToken> {
11407        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11408    }
11409    #[inline]
11410    pub fn storage_token(&self) -> Option<SyntaxToken> {
11411        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11412    }
11413}
11414
11415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11416pub struct OpSig {
11417    pub(crate) syntax: SyntaxNode,
11418}
11419impl OpSig {
11420    #[inline]
11421    pub fn op(&self) -> Option<Op> {
11422        support::child(&self.syntax)
11423    }
11424    #[inline]
11425    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11426        support::token(&self.syntax, SyntaxKind::L_PAREN)
11427    }
11428    #[inline]
11429    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11430        support::token(&self.syntax, SyntaxKind::R_PAREN)
11431    }
11432    #[inline]
11433    pub fn comma_token(&self) -> Option<SyntaxToken> {
11434        support::token(&self.syntax, SyntaxKind::COMMA)
11435    }
11436    #[inline]
11437    pub fn none_token(&self) -> Option<SyntaxToken> {
11438        support::token(&self.syntax, SyntaxKind::NONE_KW)
11439    }
11440}
11441
11442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11443pub struct OpSigList {
11444    pub(crate) syntax: SyntaxNode,
11445}
11446impl OpSigList {
11447    #[inline]
11448    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11449        support::children(&self.syntax)
11450    }
11451}
11452
11453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11454pub struct OperatorCall {
11455    pub(crate) syntax: SyntaxNode,
11456}
11457impl OperatorCall {
11458    #[inline]
11459    pub fn op(&self) -> Option<Op> {
11460        support::child(&self.syntax)
11461    }
11462    #[inline]
11463    pub fn path(&self) -> Option<Path> {
11464        support::child(&self.syntax)
11465    }
11466    #[inline]
11467    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11468        support::token(&self.syntax, SyntaxKind::L_PAREN)
11469    }
11470    #[inline]
11471    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11472        support::token(&self.syntax, SyntaxKind::R_PAREN)
11473    }
11474    #[inline]
11475    pub fn dot_token(&self) -> Option<SyntaxToken> {
11476        support::token(&self.syntax, SyntaxKind::DOT)
11477    }
11478    #[inline]
11479    pub fn operator_token(&self) -> Option<SyntaxToken> {
11480        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11481    }
11482}
11483
11484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11485pub struct OperatorClassOptionList {
11486    pub(crate) syntax: SyntaxNode,
11487}
11488impl OperatorClassOptionList {
11489    #[inline]
11490    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11491        support::children(&self.syntax)
11492    }
11493}
11494
11495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11496pub struct OptionItem {
11497    pub(crate) syntax: SyntaxNode,
11498}
11499impl OptionItem {
11500    #[inline]
11501    pub fn expr(&self) -> Option<Expr> {
11502        support::child(&self.syntax)
11503    }
11504    #[inline]
11505    pub fn default_token(&self) -> Option<SyntaxToken> {
11506        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11507    }
11508}
11509
11510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11511pub struct OptionItemList {
11512    pub(crate) syntax: SyntaxNode,
11513}
11514impl OptionItemList {
11515    #[inline]
11516    pub fn option_items(&self) -> AstChildren<OptionItem> {
11517        support::children(&self.syntax)
11518    }
11519    #[inline]
11520    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11521        support::token(&self.syntax, SyntaxKind::L_PAREN)
11522    }
11523    #[inline]
11524    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11525        support::token(&self.syntax, SyntaxKind::R_PAREN)
11526    }
11527}
11528
11529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11530pub struct OrReplace {
11531    pub(crate) syntax: SyntaxNode,
11532}
11533impl OrReplace {
11534    #[inline]
11535    pub fn or_token(&self) -> Option<SyntaxToken> {
11536        support::token(&self.syntax, SyntaxKind::OR_KW)
11537    }
11538    #[inline]
11539    pub fn replace_token(&self) -> Option<SyntaxToken> {
11540        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11541    }
11542}
11543
11544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11545pub struct OrderByClause {
11546    pub(crate) syntax: SyntaxNode,
11547}
11548impl OrderByClause {
11549    #[inline]
11550    pub fn sort_by_list(&self) -> Option<SortByList> {
11551        support::child(&self.syntax)
11552    }
11553    #[inline]
11554    pub fn by_token(&self) -> Option<SyntaxToken> {
11555        support::token(&self.syntax, SyntaxKind::BY_KW)
11556    }
11557    #[inline]
11558    pub fn order_token(&self) -> Option<SyntaxToken> {
11559        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11560    }
11561}
11562
11563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11564pub struct OverClause {
11565    pub(crate) syntax: SyntaxNode,
11566}
11567impl OverClause {
11568    #[inline]
11569    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11570        support::token(&self.syntax, SyntaxKind::L_PAREN)
11571    }
11572    #[inline]
11573    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11574        support::token(&self.syntax, SyntaxKind::R_PAREN)
11575    }
11576    #[inline]
11577    pub fn over_token(&self) -> Option<SyntaxToken> {
11578        support::token(&self.syntax, SyntaxKind::OVER_KW)
11579    }
11580}
11581
11582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11583pub struct OverlayFn {
11584    pub(crate) syntax: SyntaxNode,
11585}
11586impl OverlayFn {
11587    #[inline]
11588    pub fn expr(&self) -> Option<Expr> {
11589        support::child(&self.syntax)
11590    }
11591    #[inline]
11592    pub fn exprs(&self) -> AstChildren<Expr> {
11593        support::children(&self.syntax)
11594    }
11595    #[inline]
11596    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11597        support::token(&self.syntax, SyntaxKind::L_PAREN)
11598    }
11599    #[inline]
11600    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11601        support::token(&self.syntax, SyntaxKind::R_PAREN)
11602    }
11603    #[inline]
11604    pub fn for_token(&self) -> Option<SyntaxToken> {
11605        support::token(&self.syntax, SyntaxKind::FOR_KW)
11606    }
11607    #[inline]
11608    pub fn from_token(&self) -> Option<SyntaxToken> {
11609        support::token(&self.syntax, SyntaxKind::FROM_KW)
11610    }
11611    #[inline]
11612    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11613        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11614    }
11615    #[inline]
11616    pub fn placing_token(&self) -> Option<SyntaxToken> {
11617        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11618    }
11619}
11620
11621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11622pub struct OwnedByRoles {
11623    pub(crate) syntax: SyntaxNode,
11624}
11625impl OwnedByRoles {
11626    #[inline]
11627    pub fn role_ref_list(&self) -> Option<RoleRefList> {
11628        support::child(&self.syntax)
11629    }
11630    #[inline]
11631    pub fn by_token(&self) -> Option<SyntaxToken> {
11632        support::token(&self.syntax, SyntaxKind::BY_KW)
11633    }
11634    #[inline]
11635    pub fn owned_token(&self) -> Option<SyntaxToken> {
11636        support::token(&self.syntax, SyntaxKind::OWNED_KW)
11637    }
11638}
11639
11640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11641pub struct OwnerTo {
11642    pub(crate) syntax: SyntaxNode,
11643}
11644impl OwnerTo {
11645    #[inline]
11646    pub fn role_ref(&self) -> Option<RoleRef> {
11647        support::child(&self.syntax)
11648    }
11649    #[inline]
11650    pub fn owner_token(&self) -> Option<SyntaxToken> {
11651        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11652    }
11653    #[inline]
11654    pub fn to_token(&self) -> Option<SyntaxToken> {
11655        support::token(&self.syntax, SyntaxKind::TO_KW)
11656    }
11657}
11658
11659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11660pub struct ParallelFuncOption {
11661    pub(crate) syntax: SyntaxNode,
11662}
11663impl ParallelFuncOption {
11664    #[inline]
11665    pub fn ident_token(&self) -> Option<SyntaxToken> {
11666        support::token(&self.syntax, SyntaxKind::IDENT)
11667    }
11668    #[inline]
11669    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11670        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11671    }
11672}
11673
11674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11675pub struct Param {
11676    pub(crate) syntax: SyntaxNode,
11677}
11678impl Param {
11679    #[inline]
11680    pub fn mode(&self) -> Option<ParamMode> {
11681        support::child(&self.syntax)
11682    }
11683    #[inline]
11684    pub fn name(&self) -> Option<Name> {
11685        support::child(&self.syntax)
11686    }
11687    #[inline]
11688    pub fn param_default(&self) -> Option<ParamDefault> {
11689        support::child(&self.syntax)
11690    }
11691    #[inline]
11692    pub fn ty(&self) -> Option<Type> {
11693        support::child(&self.syntax)
11694    }
11695}
11696
11697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11698pub struct ParamDefault {
11699    pub(crate) syntax: SyntaxNode,
11700}
11701impl ParamDefault {
11702    #[inline]
11703    pub fn expr(&self) -> Option<Expr> {
11704        support::child(&self.syntax)
11705    }
11706    #[inline]
11707    pub fn eq_token(&self) -> Option<SyntaxToken> {
11708        support::token(&self.syntax, SyntaxKind::EQ)
11709    }
11710    #[inline]
11711    pub fn default_token(&self) -> Option<SyntaxToken> {
11712        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11713    }
11714}
11715
11716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11717pub struct ParamIn {
11718    pub(crate) syntax: SyntaxNode,
11719}
11720impl ParamIn {
11721    #[inline]
11722    pub fn in_token(&self) -> Option<SyntaxToken> {
11723        support::token(&self.syntax, SyntaxKind::IN_KW)
11724    }
11725}
11726
11727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11728pub struct ParamInOut {
11729    pub(crate) syntax: SyntaxNode,
11730}
11731impl ParamInOut {
11732    #[inline]
11733    pub fn in_token(&self) -> Option<SyntaxToken> {
11734        support::token(&self.syntax, SyntaxKind::IN_KW)
11735    }
11736    #[inline]
11737    pub fn inout_token(&self) -> Option<SyntaxToken> {
11738        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11739    }
11740    #[inline]
11741    pub fn out_token(&self) -> Option<SyntaxToken> {
11742        support::token(&self.syntax, SyntaxKind::OUT_KW)
11743    }
11744}
11745
11746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11747pub struct ParamList {
11748    pub(crate) syntax: SyntaxNode,
11749}
11750impl ParamList {
11751    #[inline]
11752    pub fn params(&self) -> AstChildren<Param> {
11753        support::children(&self.syntax)
11754    }
11755}
11756
11757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11758pub struct ParamOut {
11759    pub(crate) syntax: SyntaxNode,
11760}
11761impl ParamOut {
11762    #[inline]
11763    pub fn out_token(&self) -> Option<SyntaxToken> {
11764        support::token(&self.syntax, SyntaxKind::OUT_KW)
11765    }
11766}
11767
11768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11769pub struct ParamVariadic {
11770    pub(crate) syntax: SyntaxNode,
11771}
11772impl ParamVariadic {
11773    #[inline]
11774    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11775        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11776    }
11777}
11778
11779#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11780pub struct ParenExpr {
11781    pub(crate) syntax: SyntaxNode,
11782}
11783impl ParenExpr {
11784    #[inline]
11785    pub fn expr(&self) -> Option<Expr> {
11786        support::child(&self.syntax)
11787    }
11788    #[inline]
11789    pub fn from_item(&self) -> Option<FromItem> {
11790        support::child(&self.syntax)
11791    }
11792    #[inline]
11793    pub fn select(&self) -> Option<Select> {
11794        support::child(&self.syntax)
11795    }
11796    #[inline]
11797    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11798        support::token(&self.syntax, SyntaxKind::L_PAREN)
11799    }
11800    #[inline]
11801    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11802        support::token(&self.syntax, SyntaxKind::R_PAREN)
11803    }
11804}
11805
11806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11807pub struct ParenSelect {
11808    pub(crate) syntax: SyntaxNode,
11809}
11810impl ParenSelect {
11811    #[inline]
11812    pub fn select(&self) -> Option<SelectVariant> {
11813        support::child(&self.syntax)
11814    }
11815    #[inline]
11816    pub fn with_clause(&self) -> Option<WithClause> {
11817        support::child(&self.syntax)
11818    }
11819    #[inline]
11820    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11821        support::token(&self.syntax, SyntaxKind::L_PAREN)
11822    }
11823    #[inline]
11824    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11825        support::token(&self.syntax, SyntaxKind::R_PAREN)
11826    }
11827}
11828
11829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11830pub struct Partition {
11831    pub(crate) syntax: SyntaxNode,
11832}
11833impl Partition {
11834    #[inline]
11835    pub fn partition_type(&self) -> Option<PartitionType> {
11836        support::child(&self.syntax)
11837    }
11838    #[inline]
11839    pub fn path(&self) -> Option<Path> {
11840        support::child(&self.syntax)
11841    }
11842    #[inline]
11843    pub fn partition_token(&self) -> Option<SyntaxToken> {
11844        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11845    }
11846}
11847
11848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11849pub struct PartitionBy {
11850    pub(crate) syntax: SyntaxNode,
11851}
11852impl PartitionBy {
11853    #[inline]
11854    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11855        support::child(&self.syntax)
11856    }
11857    #[inline]
11858    pub fn by_token(&self) -> Option<SyntaxToken> {
11859        support::token(&self.syntax, SyntaxKind::BY_KW)
11860    }
11861    #[inline]
11862    pub fn ident_token(&self) -> Option<SyntaxToken> {
11863        support::token(&self.syntax, SyntaxKind::IDENT)
11864    }
11865    #[inline]
11866    pub fn partition_token(&self) -> Option<SyntaxToken> {
11867        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11868    }
11869    #[inline]
11870    pub fn range_token(&self) -> Option<SyntaxToken> {
11871        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11872    }
11873}
11874
11875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11876pub struct PartitionDefault {
11877    pub(crate) syntax: SyntaxNode,
11878}
11879impl PartitionDefault {
11880    #[inline]
11881    pub fn default_token(&self) -> Option<SyntaxToken> {
11882        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11883    }
11884}
11885
11886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11887pub struct PartitionForValuesFrom {
11888    pub(crate) syntax: SyntaxNode,
11889}
11890impl PartitionForValuesFrom {
11891    #[inline]
11892    pub fn exprs(&self) -> AstChildren<Expr> {
11893        support::children(&self.syntax)
11894    }
11895    #[inline]
11896    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11897        support::token(&self.syntax, SyntaxKind::L_PAREN)
11898    }
11899    #[inline]
11900    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11901        support::token(&self.syntax, SyntaxKind::R_PAREN)
11902    }
11903    #[inline]
11904    pub fn for_token(&self) -> Option<SyntaxToken> {
11905        support::token(&self.syntax, SyntaxKind::FOR_KW)
11906    }
11907    #[inline]
11908    pub fn from_token(&self) -> Option<SyntaxToken> {
11909        support::token(&self.syntax, SyntaxKind::FROM_KW)
11910    }
11911    #[inline]
11912    pub fn to_token(&self) -> Option<SyntaxToken> {
11913        support::token(&self.syntax, SyntaxKind::TO_KW)
11914    }
11915    #[inline]
11916    pub fn values_token(&self) -> Option<SyntaxToken> {
11917        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11918    }
11919}
11920
11921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11922pub struct PartitionForValuesIn {
11923    pub(crate) syntax: SyntaxNode,
11924}
11925impl PartitionForValuesIn {
11926    #[inline]
11927    pub fn exprs(&self) -> AstChildren<Expr> {
11928        support::children(&self.syntax)
11929    }
11930    #[inline]
11931    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11932        support::token(&self.syntax, SyntaxKind::L_PAREN)
11933    }
11934    #[inline]
11935    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11936        support::token(&self.syntax, SyntaxKind::R_PAREN)
11937    }
11938    #[inline]
11939    pub fn for_token(&self) -> Option<SyntaxToken> {
11940        support::token(&self.syntax, SyntaxKind::FOR_KW)
11941    }
11942    #[inline]
11943    pub fn in_token(&self) -> Option<SyntaxToken> {
11944        support::token(&self.syntax, SyntaxKind::IN_KW)
11945    }
11946    #[inline]
11947    pub fn values_token(&self) -> Option<SyntaxToken> {
11948        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11949    }
11950}
11951
11952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11953pub struct PartitionForValuesWith {
11954    pub(crate) syntax: SyntaxNode,
11955}
11956impl PartitionForValuesWith {
11957    #[inline]
11958    pub fn literal(&self) -> Option<Literal> {
11959        support::child(&self.syntax)
11960    }
11961    #[inline]
11962    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11963        support::token(&self.syntax, SyntaxKind::L_PAREN)
11964    }
11965    #[inline]
11966    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11967        support::token(&self.syntax, SyntaxKind::R_PAREN)
11968    }
11969    #[inline]
11970    pub fn comma_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::COMMA)
11972    }
11973    #[inline]
11974    pub fn for_token(&self) -> Option<SyntaxToken> {
11975        support::token(&self.syntax, SyntaxKind::FOR_KW)
11976    }
11977    #[inline]
11978    pub fn ident_token(&self) -> Option<SyntaxToken> {
11979        support::token(&self.syntax, SyntaxKind::IDENT)
11980    }
11981    #[inline]
11982    pub fn values_token(&self) -> Option<SyntaxToken> {
11983        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11984    }
11985    #[inline]
11986    pub fn with_token(&self) -> Option<SyntaxToken> {
11987        support::token(&self.syntax, SyntaxKind::WITH_KW)
11988    }
11989}
11990
11991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11992pub struct PartitionItem {
11993    pub(crate) syntax: SyntaxNode,
11994}
11995impl PartitionItem {
11996    #[inline]
11997    pub fn collate(&self) -> Option<Collate> {
11998        support::child(&self.syntax)
11999    }
12000    #[inline]
12001    pub fn expr(&self) -> Option<Expr> {
12002        support::child(&self.syntax)
12003    }
12004}
12005
12006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12007pub struct PartitionItemList {
12008    pub(crate) syntax: SyntaxNode,
12009}
12010impl PartitionItemList {
12011    #[inline]
12012    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
12013        support::children(&self.syntax)
12014    }
12015    #[inline]
12016    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12017        support::token(&self.syntax, SyntaxKind::L_PAREN)
12018    }
12019    #[inline]
12020    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12021        support::token(&self.syntax, SyntaxKind::R_PAREN)
12022    }
12023}
12024
12025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12026pub struct PartitionList {
12027    pub(crate) syntax: SyntaxNode,
12028}
12029impl PartitionList {
12030    #[inline]
12031    pub fn partitions(&self) -> AstChildren<Partition> {
12032        support::children(&self.syntax)
12033    }
12034    #[inline]
12035    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12036        support::token(&self.syntax, SyntaxKind::L_PAREN)
12037    }
12038    #[inline]
12039    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12040        support::token(&self.syntax, SyntaxKind::R_PAREN)
12041    }
12042}
12043
12044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12045pub struct PartitionOf {
12046    pub(crate) syntax: SyntaxNode,
12047}
12048impl PartitionOf {
12049    #[inline]
12050    pub fn path(&self) -> Option<Path> {
12051        support::child(&self.syntax)
12052    }
12053    #[inline]
12054    pub fn of_token(&self) -> Option<SyntaxToken> {
12055        support::token(&self.syntax, SyntaxKind::OF_KW)
12056    }
12057    #[inline]
12058    pub fn partition_token(&self) -> Option<SyntaxToken> {
12059        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12060    }
12061}
12062
12063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12064pub struct Path {
12065    pub(crate) syntax: SyntaxNode,
12066}
12067impl Path {
12068    #[inline]
12069    pub fn qualifier(&self) -> Option<Path> {
12070        support::child(&self.syntax)
12071    }
12072    #[inline]
12073    pub fn segment(&self) -> Option<PathSegment> {
12074        support::child(&self.syntax)
12075    }
12076    #[inline]
12077    pub fn dot_token(&self) -> Option<SyntaxToken> {
12078        support::token(&self.syntax, SyntaxKind::DOT)
12079    }
12080}
12081
12082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12083pub struct PathSegment {
12084    pub(crate) syntax: SyntaxNode,
12085}
12086impl PathSegment {
12087    #[inline]
12088    pub fn name(&self) -> Option<Name> {
12089        support::child(&self.syntax)
12090    }
12091    #[inline]
12092    pub fn name_ref(&self) -> Option<NameRef> {
12093        support::child(&self.syntax)
12094    }
12095}
12096
12097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12098pub struct PathType {
12099    pub(crate) syntax: SyntaxNode,
12100}
12101impl PathType {
12102    #[inline]
12103    pub fn arg_list(&self) -> Option<ArgList> {
12104        support::child(&self.syntax)
12105    }
12106    #[inline]
12107    pub fn path(&self) -> Option<Path> {
12108        support::child(&self.syntax)
12109    }
12110}
12111
12112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12113pub struct PercentType {
12114    pub(crate) syntax: SyntaxNode,
12115}
12116impl PercentType {
12117    #[inline]
12118    pub fn percent_token(&self) -> Option<SyntaxToken> {
12119        support::token(&self.syntax, SyntaxKind::PERCENT)
12120    }
12121    #[inline]
12122    pub fn type_token(&self) -> Option<SyntaxToken> {
12123        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12124    }
12125}
12126
12127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12128pub struct PercentTypeClause {
12129    pub(crate) syntax: SyntaxNode,
12130}
12131impl PercentTypeClause {
12132    #[inline]
12133    pub fn path(&self) -> Option<Path> {
12134        support::child(&self.syntax)
12135    }
12136    #[inline]
12137    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12138        support::child(&self.syntax)
12139    }
12140}
12141
12142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12143pub struct PositionFn {
12144    pub(crate) syntax: SyntaxNode,
12145}
12146impl PositionFn {
12147    #[inline]
12148    pub fn expr(&self) -> Option<Expr> {
12149        support::child(&self.syntax)
12150    }
12151    #[inline]
12152    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12153        support::token(&self.syntax, SyntaxKind::L_PAREN)
12154    }
12155    #[inline]
12156    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12157        support::token(&self.syntax, SyntaxKind::R_PAREN)
12158    }
12159    #[inline]
12160    pub fn in_token(&self) -> Option<SyntaxToken> {
12161        support::token(&self.syntax, SyntaxKind::IN_KW)
12162    }
12163    #[inline]
12164    pub fn position_token(&self) -> Option<SyntaxToken> {
12165        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12166    }
12167}
12168
12169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12170pub struct PostfixExpr {
12171    pub(crate) syntax: SyntaxNode,
12172}
12173impl PostfixExpr {
12174    #[inline]
12175    pub fn expr(&self) -> Option<Expr> {
12176        support::child(&self.syntax)
12177    }
12178}
12179
12180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12181pub struct PrefixExpr {
12182    pub(crate) syntax: SyntaxNode,
12183}
12184impl PrefixExpr {
12185    #[inline]
12186    pub fn expr(&self) -> Option<Expr> {
12187        support::child(&self.syntax)
12188    }
12189}
12190
12191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12192pub struct Prepare {
12193    pub(crate) syntax: SyntaxNode,
12194}
12195impl Prepare {
12196    #[inline]
12197    pub fn name(&self) -> Option<Name> {
12198        support::child(&self.syntax)
12199    }
12200    #[inline]
12201    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12202        support::child(&self.syntax)
12203    }
12204    #[inline]
12205    pub fn as_token(&self) -> Option<SyntaxToken> {
12206        support::token(&self.syntax, SyntaxKind::AS_KW)
12207    }
12208    #[inline]
12209    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12210        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12211    }
12212}
12213
12214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12215pub struct PrepareTransaction {
12216    pub(crate) syntax: SyntaxNode,
12217}
12218impl PrepareTransaction {
12219    #[inline]
12220    pub fn literal(&self) -> Option<Literal> {
12221        support::child(&self.syntax)
12222    }
12223    #[inline]
12224    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12225        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12226    }
12227    #[inline]
12228    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12229        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12230    }
12231}
12232
12233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12234pub struct PreserveRows {
12235    pub(crate) syntax: SyntaxNode,
12236}
12237impl PreserveRows {
12238    #[inline]
12239    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12241    }
12242    #[inline]
12243    pub fn rows_token(&self) -> Option<SyntaxToken> {
12244        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12245    }
12246}
12247
12248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12249pub struct PrimaryKeyConstraint {
12250    pub(crate) syntax: SyntaxNode,
12251}
12252impl PrimaryKeyConstraint {
12253    #[inline]
12254    pub fn column_list(&self) -> Option<ColumnList> {
12255        support::child(&self.syntax)
12256    }
12257    #[inline]
12258    pub fn constraint_name(&self) -> Option<ConstraintName> {
12259        support::child(&self.syntax)
12260    }
12261    #[inline]
12262    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12263        support::child(&self.syntax)
12264    }
12265    #[inline]
12266    pub fn using_index(&self) -> Option<UsingIndex> {
12267        support::child(&self.syntax)
12268    }
12269    #[inline]
12270    pub fn key_token(&self) -> Option<SyntaxToken> {
12271        support::token(&self.syntax, SyntaxKind::KEY_KW)
12272    }
12273    #[inline]
12274    pub fn primary_token(&self) -> Option<SyntaxToken> {
12275        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12276    }
12277}
12278
12279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12280pub struct PrivilegeTarget {
12281    pub(crate) syntax: SyntaxNode,
12282}
12283impl PrivilegeTarget {
12284    #[inline]
12285    pub fn functions_token(&self) -> Option<SyntaxToken> {
12286        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12287    }
12288    #[inline]
12289    pub fn large_token(&self) -> Option<SyntaxToken> {
12290        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12291    }
12292    #[inline]
12293    pub fn objects_token(&self) -> Option<SyntaxToken> {
12294        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12295    }
12296    #[inline]
12297    pub fn routines_token(&self) -> Option<SyntaxToken> {
12298        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12299    }
12300    #[inline]
12301    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12302        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12303    }
12304    #[inline]
12305    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12306        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12307    }
12308    #[inline]
12309    pub fn tables_token(&self) -> Option<SyntaxToken> {
12310        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12311    }
12312    #[inline]
12313    pub fn types_token(&self) -> Option<SyntaxToken> {
12314        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12315    }
12316}
12317
12318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12319pub struct Privileges {
12320    pub(crate) syntax: SyntaxNode,
12321}
12322impl Privileges {
12323    #[inline]
12324    pub fn column_list(&self) -> Option<ColumnList> {
12325        support::child(&self.syntax)
12326    }
12327    #[inline]
12328    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12329        support::child(&self.syntax)
12330    }
12331    #[inline]
12332    pub fn all_token(&self) -> Option<SyntaxToken> {
12333        support::token(&self.syntax, SyntaxKind::ALL_KW)
12334    }
12335    #[inline]
12336    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12337        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12338    }
12339}
12340
12341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12342pub struct PublicationObject {
12343    pub(crate) syntax: SyntaxNode,
12344}
12345impl PublicationObject {
12346    #[inline]
12347    pub fn column_list(&self) -> Option<ColumnList> {
12348        support::child(&self.syntax)
12349    }
12350    #[inline]
12351    pub fn name_ref(&self) -> Option<NameRef> {
12352        support::child(&self.syntax)
12353    }
12354    #[inline]
12355    pub fn path(&self) -> Option<Path> {
12356        support::child(&self.syntax)
12357    }
12358    #[inline]
12359    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12360        support::child(&self.syntax)
12361    }
12362    #[inline]
12363    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12364        support::token(&self.syntax, SyntaxKind::L_PAREN)
12365    }
12366    #[inline]
12367    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12368        support::token(&self.syntax, SyntaxKind::R_PAREN)
12369    }
12370    #[inline]
12371    pub fn star_token(&self) -> Option<SyntaxToken> {
12372        support::token(&self.syntax, SyntaxKind::STAR)
12373    }
12374    #[inline]
12375    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12376        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12377    }
12378    #[inline]
12379    pub fn in_token(&self) -> Option<SyntaxToken> {
12380        support::token(&self.syntax, SyntaxKind::IN_KW)
12381    }
12382    #[inline]
12383    pub fn only_token(&self) -> Option<SyntaxToken> {
12384        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12385    }
12386    #[inline]
12387    pub fn schema_token(&self) -> Option<SyntaxToken> {
12388        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12389    }
12390    #[inline]
12391    pub fn table_token(&self) -> Option<SyntaxToken> {
12392        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12393    }
12394    #[inline]
12395    pub fn tables_token(&self) -> Option<SyntaxToken> {
12396        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12397    }
12398}
12399
12400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12401pub struct ReadCommitted {
12402    pub(crate) syntax: SyntaxNode,
12403}
12404impl ReadCommitted {
12405    #[inline]
12406    pub fn committed_token(&self) -> Option<SyntaxToken> {
12407        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12408    }
12409    #[inline]
12410    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12411        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12412    }
12413    #[inline]
12414    pub fn level_token(&self) -> Option<SyntaxToken> {
12415        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12416    }
12417    #[inline]
12418    pub fn read_token(&self) -> Option<SyntaxToken> {
12419        support::token(&self.syntax, SyntaxKind::READ_KW)
12420    }
12421}
12422
12423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12424pub struct ReadOnly {
12425    pub(crate) syntax: SyntaxNode,
12426}
12427impl ReadOnly {
12428    #[inline]
12429    pub fn only_token(&self) -> Option<SyntaxToken> {
12430        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12431    }
12432    #[inline]
12433    pub fn read_token(&self) -> Option<SyntaxToken> {
12434        support::token(&self.syntax, SyntaxKind::READ_KW)
12435    }
12436}
12437
12438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12439pub struct ReadUncommitted {
12440    pub(crate) syntax: SyntaxNode,
12441}
12442impl ReadUncommitted {
12443    #[inline]
12444    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12445        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12446    }
12447    #[inline]
12448    pub fn level_token(&self) -> Option<SyntaxToken> {
12449        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12450    }
12451    #[inline]
12452    pub fn read_token(&self) -> Option<SyntaxToken> {
12453        support::token(&self.syntax, SyntaxKind::READ_KW)
12454    }
12455    #[inline]
12456    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12457        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12458    }
12459}
12460
12461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12462pub struct ReadWrite {
12463    pub(crate) syntax: SyntaxNode,
12464}
12465impl ReadWrite {
12466    #[inline]
12467    pub fn read_token(&self) -> Option<SyntaxToken> {
12468        support::token(&self.syntax, SyntaxKind::READ_KW)
12469    }
12470    #[inline]
12471    pub fn write_token(&self) -> Option<SyntaxToken> {
12472        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12473    }
12474}
12475
12476#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12477pub struct Reassign {
12478    pub(crate) syntax: SyntaxNode,
12479}
12480impl Reassign {
12481    #[inline]
12482    pub fn new_roles(&self) -> Option<RoleRefList> {
12483        support::child(&self.syntax)
12484    }
12485    #[inline]
12486    pub fn old_roles(&self) -> Option<RoleRefList> {
12487        support::child(&self.syntax)
12488    }
12489    #[inline]
12490    pub fn by_token(&self) -> Option<SyntaxToken> {
12491        support::token(&self.syntax, SyntaxKind::BY_KW)
12492    }
12493    #[inline]
12494    pub fn owned_token(&self) -> Option<SyntaxToken> {
12495        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12496    }
12497    #[inline]
12498    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12499        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12500    }
12501    #[inline]
12502    pub fn to_token(&self) -> Option<SyntaxToken> {
12503        support::token(&self.syntax, SyntaxKind::TO_KW)
12504    }
12505}
12506
12507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12508pub struct ReferencesConstraint {
12509    pub(crate) syntax: SyntaxNode,
12510}
12511impl ReferencesConstraint {
12512    #[inline]
12513    pub fn column(&self) -> Option<NameRef> {
12514        support::child(&self.syntax)
12515    }
12516    #[inline]
12517    pub fn constraint_name(&self) -> Option<ConstraintName> {
12518        support::child(&self.syntax)
12519    }
12520    #[inline]
12521    pub fn match_type(&self) -> Option<MatchType> {
12522        support::child(&self.syntax)
12523    }
12524    #[inline]
12525    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12526        support::child(&self.syntax)
12527    }
12528    #[inline]
12529    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12530        support::child(&self.syntax)
12531    }
12532    #[inline]
12533    pub fn table(&self) -> Option<Path> {
12534        support::child(&self.syntax)
12535    }
12536    #[inline]
12537    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12538        support::token(&self.syntax, SyntaxKind::L_PAREN)
12539    }
12540    #[inline]
12541    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12542        support::token(&self.syntax, SyntaxKind::R_PAREN)
12543    }
12544    #[inline]
12545    pub fn references_token(&self) -> Option<SyntaxToken> {
12546        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12547    }
12548}
12549
12550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12551pub struct Referencing {
12552    pub(crate) syntax: SyntaxNode,
12553}
12554impl Referencing {
12555    #[inline]
12556    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12557        support::children(&self.syntax)
12558    }
12559    #[inline]
12560    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12561        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12562    }
12563}
12564
12565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12566pub struct ReferencingTable {
12567    pub(crate) syntax: SyntaxNode,
12568}
12569impl ReferencingTable {
12570    #[inline]
12571    pub fn name_ref(&self) -> Option<NameRef> {
12572        support::child(&self.syntax)
12573    }
12574    #[inline]
12575    pub fn as_token(&self) -> Option<SyntaxToken> {
12576        support::token(&self.syntax, SyntaxKind::AS_KW)
12577    }
12578    #[inline]
12579    pub fn new_token(&self) -> Option<SyntaxToken> {
12580        support::token(&self.syntax, SyntaxKind::NEW_KW)
12581    }
12582    #[inline]
12583    pub fn old_token(&self) -> Option<SyntaxToken> {
12584        support::token(&self.syntax, SyntaxKind::OLD_KW)
12585    }
12586    #[inline]
12587    pub fn table_token(&self) -> Option<SyntaxToken> {
12588        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12589    }
12590}
12591
12592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12593pub struct Refresh {
12594    pub(crate) syntax: SyntaxNode,
12595}
12596impl Refresh {
12597    #[inline]
12598    pub fn path(&self) -> Option<Path> {
12599        support::child(&self.syntax)
12600    }
12601    #[inline]
12602    pub fn with_data(&self) -> Option<WithData> {
12603        support::child(&self.syntax)
12604    }
12605    #[inline]
12606    pub fn with_no_data(&self) -> Option<WithNoData> {
12607        support::child(&self.syntax)
12608    }
12609    #[inline]
12610    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12611        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12612    }
12613    #[inline]
12614    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12615        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12616    }
12617    #[inline]
12618    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12619        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12620    }
12621    #[inline]
12622    pub fn view_token(&self) -> Option<SyntaxToken> {
12623        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12624    }
12625}
12626
12627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12628pub struct RefreshCollationVersion {
12629    pub(crate) syntax: SyntaxNode,
12630}
12631impl RefreshCollationVersion {
12632    #[inline]
12633    pub fn collation_token(&self) -> Option<SyntaxToken> {
12634        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12635    }
12636    #[inline]
12637    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12638        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12639    }
12640    #[inline]
12641    pub fn version_token(&self) -> Option<SyntaxToken> {
12642        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12643    }
12644}
12645
12646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12647pub struct RefreshVersion {
12648    pub(crate) syntax: SyntaxNode,
12649}
12650impl RefreshVersion {
12651    #[inline]
12652    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12653        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12654    }
12655    #[inline]
12656    pub fn version_token(&self) -> Option<SyntaxToken> {
12657        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12658    }
12659}
12660
12661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12662pub struct Reindex {
12663    pub(crate) syntax: SyntaxNode,
12664}
12665impl Reindex {
12666    #[inline]
12667    pub fn path(&self) -> Option<Path> {
12668        support::child(&self.syntax)
12669    }
12670    #[inline]
12671    pub fn database_token(&self) -> Option<SyntaxToken> {
12672        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12673    }
12674    #[inline]
12675    pub fn index_token(&self) -> Option<SyntaxToken> {
12676        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12677    }
12678    #[inline]
12679    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12680        support::token(&self.syntax, SyntaxKind::REINDEX_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 system_token(&self) -> Option<SyntaxToken> {
12688        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12689    }
12690    #[inline]
12691    pub fn table_token(&self) -> Option<SyntaxToken> {
12692        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12693    }
12694}
12695
12696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12697pub struct RelationName {
12698    pub(crate) syntax: SyntaxNode,
12699}
12700impl RelationName {
12701    #[inline]
12702    pub fn path(&self) -> Option<Path> {
12703        support::child(&self.syntax)
12704    }
12705    #[inline]
12706    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12707        support::token(&self.syntax, SyntaxKind::L_PAREN)
12708    }
12709    #[inline]
12710    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12711        support::token(&self.syntax, SyntaxKind::R_PAREN)
12712    }
12713    #[inline]
12714    pub fn star_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::STAR)
12716    }
12717    #[inline]
12718    pub fn only_token(&self) -> Option<SyntaxToken> {
12719        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12720    }
12721}
12722
12723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12724pub struct ReleaseSavepoint {
12725    pub(crate) syntax: SyntaxNode,
12726}
12727impl ReleaseSavepoint {
12728    #[inline]
12729    pub fn name_ref(&self) -> Option<NameRef> {
12730        support::child(&self.syntax)
12731    }
12732    #[inline]
12733    pub fn release_token(&self) -> Option<SyntaxToken> {
12734        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12735    }
12736    #[inline]
12737    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12738        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12739    }
12740}
12741
12742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12743pub struct RenameColumn {
12744    pub(crate) syntax: SyntaxNode,
12745}
12746impl RenameColumn {
12747    #[inline]
12748    pub fn column_token(&self) -> Option<SyntaxToken> {
12749        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12750    }
12751    #[inline]
12752    pub fn rename_token(&self) -> Option<SyntaxToken> {
12753        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12754    }
12755    #[inline]
12756    pub fn to_token(&self) -> Option<SyntaxToken> {
12757        support::token(&self.syntax, SyntaxKind::TO_KW)
12758    }
12759}
12760
12761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12762pub struct RenameConstraint {
12763    pub(crate) syntax: SyntaxNode,
12764}
12765impl RenameConstraint {
12766    #[inline]
12767    pub fn name(&self) -> Option<Name> {
12768        support::child(&self.syntax)
12769    }
12770    #[inline]
12771    pub fn name_ref(&self) -> Option<NameRef> {
12772        support::child(&self.syntax)
12773    }
12774    #[inline]
12775    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12776        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12777    }
12778    #[inline]
12779    pub fn rename_token(&self) -> Option<SyntaxToken> {
12780        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12781    }
12782    #[inline]
12783    pub fn to_token(&self) -> Option<SyntaxToken> {
12784        support::token(&self.syntax, SyntaxKind::TO_KW)
12785    }
12786}
12787
12788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12789pub struct RenameTo {
12790    pub(crate) syntax: SyntaxNode,
12791}
12792impl RenameTo {
12793    #[inline]
12794    pub fn name(&self) -> Option<Name> {
12795        support::child(&self.syntax)
12796    }
12797    #[inline]
12798    pub fn rename_token(&self) -> Option<SyntaxToken> {
12799        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12800    }
12801    #[inline]
12802    pub fn to_token(&self) -> Option<SyntaxToken> {
12803        support::token(&self.syntax, SyntaxKind::TO_KW)
12804    }
12805}
12806
12807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12808pub struct RepeatableClause {
12809    pub(crate) syntax: SyntaxNode,
12810}
12811impl RepeatableClause {
12812    #[inline]
12813    pub fn expr(&self) -> Option<Expr> {
12814        support::child(&self.syntax)
12815    }
12816    #[inline]
12817    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12818        support::token(&self.syntax, SyntaxKind::L_PAREN)
12819    }
12820    #[inline]
12821    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12822        support::token(&self.syntax, SyntaxKind::R_PAREN)
12823    }
12824    #[inline]
12825    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12826        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12827    }
12828}
12829
12830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12831pub struct RepeatableRead {
12832    pub(crate) syntax: SyntaxNode,
12833}
12834impl RepeatableRead {
12835    #[inline]
12836    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12837        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12838    }
12839    #[inline]
12840    pub fn level_token(&self) -> Option<SyntaxToken> {
12841        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12842    }
12843    #[inline]
12844    pub fn read_token(&self) -> Option<SyntaxToken> {
12845        support::token(&self.syntax, SyntaxKind::READ_KW)
12846    }
12847    #[inline]
12848    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12849        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12850    }
12851}
12852
12853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12854pub struct ReplicaIdentity {
12855    pub(crate) syntax: SyntaxNode,
12856}
12857impl ReplicaIdentity {
12858    #[inline]
12859    pub fn identity_token(&self) -> Option<SyntaxToken> {
12860        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
12861    }
12862    #[inline]
12863    pub fn replica_token(&self) -> Option<SyntaxToken> {
12864        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
12865    }
12866}
12867
12868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12869pub struct Reset {
12870    pub(crate) syntax: SyntaxNode,
12871}
12872impl Reset {
12873    #[inline]
12874    pub fn name_ref(&self) -> Option<NameRef> {
12875        support::child(&self.syntax)
12876    }
12877    #[inline]
12878    pub fn all_token(&self) -> Option<SyntaxToken> {
12879        support::token(&self.syntax, SyntaxKind::ALL_KW)
12880    }
12881    #[inline]
12882    pub fn reset_token(&self) -> Option<SyntaxToken> {
12883        support::token(&self.syntax, SyntaxKind::RESET_KW)
12884    }
12885}
12886
12887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12888pub struct ResetConfigParam {
12889    pub(crate) syntax: SyntaxNode,
12890}
12891impl ResetConfigParam {
12892    #[inline]
12893    pub fn path(&self) -> Option<Path> {
12894        support::child(&self.syntax)
12895    }
12896    #[inline]
12897    pub fn all_token(&self) -> Option<SyntaxToken> {
12898        support::token(&self.syntax, SyntaxKind::ALL_KW)
12899    }
12900    #[inline]
12901    pub fn reset_token(&self) -> Option<SyntaxToken> {
12902        support::token(&self.syntax, SyntaxKind::RESET_KW)
12903    }
12904}
12905
12906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12907pub struct ResetFuncOption {
12908    pub(crate) syntax: SyntaxNode,
12909}
12910impl ResetFuncOption {
12911    #[inline]
12912    pub fn name_ref(&self) -> Option<NameRef> {
12913        support::child(&self.syntax)
12914    }
12915    #[inline]
12916    pub fn reset_token(&self) -> Option<SyntaxToken> {
12917        support::token(&self.syntax, SyntaxKind::RESET_KW)
12918    }
12919}
12920
12921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12922pub struct ResetOptions {
12923    pub(crate) syntax: SyntaxNode,
12924}
12925impl ResetOptions {
12926    #[inline]
12927    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12928        support::token(&self.syntax, SyntaxKind::L_PAREN)
12929    }
12930    #[inline]
12931    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12932        support::token(&self.syntax, SyntaxKind::R_PAREN)
12933    }
12934    #[inline]
12935    pub fn reset_token(&self) -> Option<SyntaxToken> {
12936        support::token(&self.syntax, SyntaxKind::RESET_KW)
12937    }
12938}
12939
12940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12941pub struct ResetSessionAuth {
12942    pub(crate) syntax: SyntaxNode,
12943}
12944impl ResetSessionAuth {
12945    #[inline]
12946    pub fn authorization_token(&self) -> Option<SyntaxToken> {
12947        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
12948    }
12949    #[inline]
12950    pub fn reset_token(&self) -> Option<SyntaxToken> {
12951        support::token(&self.syntax, SyntaxKind::RESET_KW)
12952    }
12953    #[inline]
12954    pub fn session_token(&self) -> Option<SyntaxToken> {
12955        support::token(&self.syntax, SyntaxKind::SESSION_KW)
12956    }
12957}
12958
12959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12960pub struct Restart {
12961    pub(crate) syntax: SyntaxNode,
12962}
12963impl Restart {
12964    #[inline]
12965    pub fn restart_token(&self) -> Option<SyntaxToken> {
12966        support::token(&self.syntax, SyntaxKind::RESTART_KW)
12967    }
12968    #[inline]
12969    pub fn with_token(&self) -> Option<SyntaxToken> {
12970        support::token(&self.syntax, SyntaxKind::WITH_KW)
12971    }
12972}
12973
12974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12975pub struct Restrict {
12976    pub(crate) syntax: SyntaxNode,
12977}
12978impl Restrict {
12979    #[inline]
12980    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12981        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12982    }
12983}
12984
12985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12986pub struct RetType {
12987    pub(crate) syntax: SyntaxNode,
12988}
12989impl RetType {
12990    #[inline]
12991    pub fn ty(&self) -> Option<Type> {
12992        support::child(&self.syntax)
12993    }
12994    #[inline]
12995    pub fn returns_token(&self) -> Option<SyntaxToken> {
12996        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
12997    }
12998}
12999
13000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13001pub struct ReturnFuncOption {
13002    pub(crate) syntax: SyntaxNode,
13003}
13004impl ReturnFuncOption {
13005    #[inline]
13006    pub fn expr(&self) -> Option<Expr> {
13007        support::child(&self.syntax)
13008    }
13009    #[inline]
13010    pub fn return_token(&self) -> Option<SyntaxToken> {
13011        support::token(&self.syntax, SyntaxKind::RETURN_KW)
13012    }
13013}
13014
13015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13016pub struct ReturningClause {
13017    pub(crate) syntax: SyntaxNode,
13018}
13019impl ReturningClause {
13020    #[inline]
13021    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
13022        support::child(&self.syntax)
13023    }
13024    #[inline]
13025    pub fn target_list(&self) -> Option<TargetList> {
13026        support::child(&self.syntax)
13027    }
13028    #[inline]
13029    pub fn returning_token(&self) -> Option<SyntaxToken> {
13030        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
13031    }
13032}
13033
13034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13035pub struct ReturningOption {
13036    pub(crate) syntax: SyntaxNode,
13037}
13038impl ReturningOption {
13039    #[inline]
13040    pub fn name(&self) -> Option<Name> {
13041        support::child(&self.syntax)
13042    }
13043    #[inline]
13044    pub fn as_token(&self) -> Option<SyntaxToken> {
13045        support::token(&self.syntax, SyntaxKind::AS_KW)
13046    }
13047    #[inline]
13048    pub fn new_token(&self) -> Option<SyntaxToken> {
13049        support::token(&self.syntax, SyntaxKind::NEW_KW)
13050    }
13051    #[inline]
13052    pub fn old_token(&self) -> Option<SyntaxToken> {
13053        support::token(&self.syntax, SyntaxKind::OLD_KW)
13054    }
13055}
13056
13057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13058pub struct ReturningOptionList {
13059    pub(crate) syntax: SyntaxNode,
13060}
13061impl ReturningOptionList {
13062    #[inline]
13063    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
13064        support::children(&self.syntax)
13065    }
13066    #[inline]
13067    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13068        support::token(&self.syntax, SyntaxKind::L_PAREN)
13069    }
13070    #[inline]
13071    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13072        support::token(&self.syntax, SyntaxKind::R_PAREN)
13073    }
13074    #[inline]
13075    pub fn with_token(&self) -> Option<SyntaxToken> {
13076        support::token(&self.syntax, SyntaxKind::WITH_KW)
13077    }
13078}
13079
13080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13081pub struct Revoke {
13082    pub(crate) syntax: SyntaxNode,
13083}
13084impl Revoke {
13085    #[inline]
13086    pub fn name_refs(&self) -> AstChildren<NameRef> {
13087        support::children(&self.syntax)
13088    }
13089    #[inline]
13090    pub fn paths(&self) -> AstChildren<Path> {
13091        support::children(&self.syntax)
13092    }
13093    #[inline]
13094    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13095        support::child(&self.syntax)
13096    }
13097    #[inline]
13098    pub fn role_ref(&self) -> Option<RoleRef> {
13099        support::child(&self.syntax)
13100    }
13101    #[inline]
13102    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13103        support::child(&self.syntax)
13104    }
13105    #[inline]
13106    pub fn all_token(&self) -> Option<SyntaxToken> {
13107        support::token(&self.syntax, SyntaxKind::ALL_KW)
13108    }
13109    #[inline]
13110    pub fn by_token(&self) -> Option<SyntaxToken> {
13111        support::token(&self.syntax, SyntaxKind::BY_KW)
13112    }
13113    #[inline]
13114    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13115        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13116    }
13117    #[inline]
13118    pub fn for_token(&self) -> Option<SyntaxToken> {
13119        support::token(&self.syntax, SyntaxKind::FOR_KW)
13120    }
13121    #[inline]
13122    pub fn from_token(&self) -> Option<SyntaxToken> {
13123        support::token(&self.syntax, SyntaxKind::FROM_KW)
13124    }
13125    #[inline]
13126    pub fn grant_token(&self) -> Option<SyntaxToken> {
13127        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13128    }
13129    #[inline]
13130    pub fn granted_token(&self) -> Option<SyntaxToken> {
13131        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
13132    }
13133    #[inline]
13134    pub fn in_token(&self) -> Option<SyntaxToken> {
13135        support::token(&self.syntax, SyntaxKind::IN_KW)
13136    }
13137    #[inline]
13138    pub fn on_token(&self) -> Option<SyntaxToken> {
13139        support::token(&self.syntax, SyntaxKind::ON_KW)
13140    }
13141    #[inline]
13142    pub fn option_token(&self) -> Option<SyntaxToken> {
13143        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13144    }
13145    #[inline]
13146    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13147        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13148    }
13149    #[inline]
13150    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13151        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13152    }
13153    #[inline]
13154    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13155        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13156    }
13157    #[inline]
13158    pub fn schema_token(&self) -> Option<SyntaxToken> {
13159        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13160    }
13161    #[inline]
13162    pub fn table_token(&self) -> Option<SyntaxToken> {
13163        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13164    }
13165    #[inline]
13166    pub fn tables_token(&self) -> Option<SyntaxToken> {
13167        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13168    }
13169}
13170
13171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13172pub struct RevokeCommand {
13173    pub(crate) syntax: SyntaxNode,
13174}
13175impl RevokeCommand {
13176    #[inline]
13177    pub fn role_ref(&self) -> Option<RoleRef> {
13178        support::child(&self.syntax)
13179    }
13180    #[inline]
13181    pub fn all_token(&self) -> Option<SyntaxToken> {
13182        support::token(&self.syntax, SyntaxKind::ALL_KW)
13183    }
13184    #[inline]
13185    pub fn alter_token(&self) -> Option<SyntaxToken> {
13186        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13187    }
13188    #[inline]
13189    pub fn create_token(&self) -> Option<SyntaxToken> {
13190        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13191    }
13192    #[inline]
13193    pub fn delete_token(&self) -> Option<SyntaxToken> {
13194        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13195    }
13196    #[inline]
13197    pub fn execute_token(&self) -> Option<SyntaxToken> {
13198        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13199    }
13200    #[inline]
13201    pub fn ident_token(&self) -> Option<SyntaxToken> {
13202        support::token(&self.syntax, SyntaxKind::IDENT)
13203    }
13204    #[inline]
13205    pub fn insert_token(&self) -> Option<SyntaxToken> {
13206        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13207    }
13208    #[inline]
13209    pub fn references_token(&self) -> Option<SyntaxToken> {
13210        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13211    }
13212    #[inline]
13213    pub fn select_token(&self) -> Option<SyntaxToken> {
13214        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13215    }
13216    #[inline]
13217    pub fn system_token(&self) -> Option<SyntaxToken> {
13218        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13219    }
13220    #[inline]
13221    pub fn temp_token(&self) -> Option<SyntaxToken> {
13222        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13223    }
13224    #[inline]
13225    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13226        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13227    }
13228    #[inline]
13229    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13230        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13231    }
13232    #[inline]
13233    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13234        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13235    }
13236    #[inline]
13237    pub fn update_token(&self) -> Option<SyntaxToken> {
13238        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13239    }
13240}
13241
13242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13243pub struct RevokeCommandList {
13244    pub(crate) syntax: SyntaxNode,
13245}
13246impl RevokeCommandList {
13247    #[inline]
13248    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13249        support::children(&self.syntax)
13250    }
13251}
13252
13253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13254pub struct RevokeDefaultPrivileges {
13255    pub(crate) syntax: SyntaxNode,
13256}
13257impl RevokeDefaultPrivileges {
13258    #[inline]
13259    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13260        support::child(&self.syntax)
13261    }
13262    #[inline]
13263    pub fn privileges(&self) -> Option<Privileges> {
13264        support::child(&self.syntax)
13265    }
13266    #[inline]
13267    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13268        support::child(&self.syntax)
13269    }
13270    #[inline]
13271    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13272        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13273    }
13274    #[inline]
13275    pub fn for_token(&self) -> Option<SyntaxToken> {
13276        support::token(&self.syntax, SyntaxKind::FOR_KW)
13277    }
13278    #[inline]
13279    pub fn from_token(&self) -> Option<SyntaxToken> {
13280        support::token(&self.syntax, SyntaxKind::FROM_KW)
13281    }
13282    #[inline]
13283    pub fn grant_token(&self) -> Option<SyntaxToken> {
13284        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13285    }
13286    #[inline]
13287    pub fn on_token(&self) -> Option<SyntaxToken> {
13288        support::token(&self.syntax, SyntaxKind::ON_KW)
13289    }
13290    #[inline]
13291    pub fn option_token(&self) -> Option<SyntaxToken> {
13292        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13293    }
13294    #[inline]
13295    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13296        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13297    }
13298    #[inline]
13299    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13300        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13301    }
13302}
13303
13304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13305pub struct Role {
13306    pub(crate) syntax: SyntaxNode,
13307}
13308impl Role {
13309    #[inline]
13310    pub fn name(&self) -> Option<Name> {
13311        support::child(&self.syntax)
13312    }
13313    #[inline]
13314    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13316    }
13317    #[inline]
13318    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13319        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13320    }
13321    #[inline]
13322    pub fn group_token(&self) -> Option<SyntaxToken> {
13323        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13324    }
13325    #[inline]
13326    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13327        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13328    }
13329}
13330
13331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13332pub struct RoleOption {
13333    pub(crate) syntax: SyntaxNode,
13334}
13335impl RoleOption {
13336    #[inline]
13337    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13338        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13339    }
13340}
13341
13342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13343pub struct RoleOptionList {
13344    pub(crate) syntax: SyntaxNode,
13345}
13346impl RoleOptionList {
13347    #[inline]
13348    pub fn role_options(&self) -> AstChildren<RoleOption> {
13349        support::children(&self.syntax)
13350    }
13351    #[inline]
13352    pub fn with_token(&self) -> Option<SyntaxToken> {
13353        support::token(&self.syntax, SyntaxKind::WITH_KW)
13354    }
13355}
13356
13357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13358pub struct RoleRef {
13359    pub(crate) syntax: SyntaxNode,
13360}
13361impl RoleRef {
13362    #[inline]
13363    pub fn name_ref(&self) -> Option<NameRef> {
13364        support::child(&self.syntax)
13365    }
13366    #[inline]
13367    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13368        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13369    }
13370    #[inline]
13371    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13372        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13373    }
13374    #[inline]
13375    pub fn group_token(&self) -> Option<SyntaxToken> {
13376        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13377    }
13378    #[inline]
13379    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13380        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13381    }
13382}
13383
13384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13385pub struct RoleRefList {
13386    pub(crate) syntax: SyntaxNode,
13387}
13388impl RoleRefList {
13389    #[inline]
13390    pub fn role_refs(&self) -> AstChildren<RoleRef> {
13391        support::children(&self.syntax)
13392    }
13393}
13394
13395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13396pub struct Rollback {
13397    pub(crate) syntax: SyntaxNode,
13398}
13399impl Rollback {
13400    #[inline]
13401    pub fn literal(&self) -> Option<Literal> {
13402        support::child(&self.syntax)
13403    }
13404    #[inline]
13405    pub fn name_ref(&self) -> Option<NameRef> {
13406        support::child(&self.syntax)
13407    }
13408    #[inline]
13409    pub fn abort_token(&self) -> Option<SyntaxToken> {
13410        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13411    }
13412    #[inline]
13413    pub fn and_token(&self) -> Option<SyntaxToken> {
13414        support::token(&self.syntax, SyntaxKind::AND_KW)
13415    }
13416    #[inline]
13417    pub fn chain_token(&self) -> Option<SyntaxToken> {
13418        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13419    }
13420    #[inline]
13421    pub fn no_token(&self) -> Option<SyntaxToken> {
13422        support::token(&self.syntax, SyntaxKind::NO_KW)
13423    }
13424    #[inline]
13425    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13426        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13427    }
13428    #[inline]
13429    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13430        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13431    }
13432    #[inline]
13433    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13434        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13435    }
13436    #[inline]
13437    pub fn to_token(&self) -> Option<SyntaxToken> {
13438        support::token(&self.syntax, SyntaxKind::TO_KW)
13439    }
13440    #[inline]
13441    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13442        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13443    }
13444    #[inline]
13445    pub fn work_token(&self) -> Option<SyntaxToken> {
13446        support::token(&self.syntax, SyntaxKind::WORK_KW)
13447    }
13448}
13449
13450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13451pub struct Row {
13452    pub(crate) syntax: SyntaxNode,
13453}
13454impl Row {
13455    #[inline]
13456    pub fn exprs(&self) -> AstChildren<Expr> {
13457        support::children(&self.syntax)
13458    }
13459}
13460
13461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13462pub struct RowList {
13463    pub(crate) syntax: SyntaxNode,
13464}
13465impl RowList {
13466    #[inline]
13467    pub fn rows(&self) -> AstChildren<Row> {
13468        support::children(&self.syntax)
13469    }
13470}
13471
13472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13473pub struct RowsFuncOption {
13474    pub(crate) syntax: SyntaxNode,
13475}
13476impl RowsFuncOption {
13477    #[inline]
13478    pub fn rows_token(&self) -> Option<SyntaxToken> {
13479        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13480    }
13481}
13482
13483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13484pub struct Savepoint {
13485    pub(crate) syntax: SyntaxNode,
13486}
13487impl Savepoint {
13488    #[inline]
13489    pub fn name(&self) -> Option<Name> {
13490        support::child(&self.syntax)
13491    }
13492    #[inline]
13493    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13494        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13495    }
13496}
13497
13498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13499pub struct SecurityFuncOption {
13500    pub(crate) syntax: SyntaxNode,
13501}
13502impl SecurityFuncOption {
13503    #[inline]
13504    pub fn definer_token(&self) -> Option<SyntaxToken> {
13505        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13506    }
13507    #[inline]
13508    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13509        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13510    }
13511    #[inline]
13512    pub fn security_token(&self) -> Option<SyntaxToken> {
13513        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13514    }
13515}
13516
13517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13518pub struct SecurityLabel {
13519    pub(crate) syntax: SyntaxNode,
13520}
13521impl SecurityLabel {
13522    #[inline]
13523    pub fn aggregate(&self) -> Option<Aggregate> {
13524        support::child(&self.syntax)
13525    }
13526    #[inline]
13527    pub fn for_provider(&self) -> Option<ForProvider> {
13528        support::child(&self.syntax)
13529    }
13530    #[inline]
13531    pub fn function_sig(&self) -> Option<FunctionSig> {
13532        support::child(&self.syntax)
13533    }
13534    #[inline]
13535    pub fn literal(&self) -> Option<Literal> {
13536        support::child(&self.syntax)
13537    }
13538    #[inline]
13539    pub fn path(&self) -> Option<Path> {
13540        support::child(&self.syntax)
13541    }
13542    #[inline]
13543    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13544        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13545    }
13546    #[inline]
13547    pub fn column_token(&self) -> Option<SyntaxToken> {
13548        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13549    }
13550    #[inline]
13551    pub fn database_token(&self) -> Option<SyntaxToken> {
13552        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13553    }
13554    #[inline]
13555    pub fn domain_token(&self) -> Option<SyntaxToken> {
13556        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13557    }
13558    #[inline]
13559    pub fn event_token(&self) -> Option<SyntaxToken> {
13560        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13561    }
13562    #[inline]
13563    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13564        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13565    }
13566    #[inline]
13567    pub fn function_token(&self) -> Option<SyntaxToken> {
13568        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13569    }
13570    #[inline]
13571    pub fn is_token(&self) -> Option<SyntaxToken> {
13572        support::token(&self.syntax, SyntaxKind::IS_KW)
13573    }
13574    #[inline]
13575    pub fn label_token(&self) -> Option<SyntaxToken> {
13576        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13577    }
13578    #[inline]
13579    pub fn language_token(&self) -> Option<SyntaxToken> {
13580        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13581    }
13582    #[inline]
13583    pub fn large_token(&self) -> Option<SyntaxToken> {
13584        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13585    }
13586    #[inline]
13587    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13588        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13589    }
13590    #[inline]
13591    pub fn null_token(&self) -> Option<SyntaxToken> {
13592        support::token(&self.syntax, SyntaxKind::NULL_KW)
13593    }
13594    #[inline]
13595    pub fn object_token(&self) -> Option<SyntaxToken> {
13596        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13597    }
13598    #[inline]
13599    pub fn on_token(&self) -> Option<SyntaxToken> {
13600        support::token(&self.syntax, SyntaxKind::ON_KW)
13601    }
13602    #[inline]
13603    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13604        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13605    }
13606    #[inline]
13607    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13608        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13609    }
13610    #[inline]
13611    pub fn publication_token(&self) -> Option<SyntaxToken> {
13612        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13613    }
13614    #[inline]
13615    pub fn role_token(&self) -> Option<SyntaxToken> {
13616        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13617    }
13618    #[inline]
13619    pub fn routine_token(&self) -> Option<SyntaxToken> {
13620        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13621    }
13622    #[inline]
13623    pub fn schema_token(&self) -> Option<SyntaxToken> {
13624        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13625    }
13626    #[inline]
13627    pub fn security_token(&self) -> Option<SyntaxToken> {
13628        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13629    }
13630    #[inline]
13631    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13632        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13633    }
13634    #[inline]
13635    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13636        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13637    }
13638    #[inline]
13639    pub fn table_token(&self) -> Option<SyntaxToken> {
13640        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13641    }
13642    #[inline]
13643    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13644        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13645    }
13646    #[inline]
13647    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13648        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13649    }
13650    #[inline]
13651    pub fn type_token(&self) -> Option<SyntaxToken> {
13652        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13653    }
13654    #[inline]
13655    pub fn view_token(&self) -> Option<SyntaxToken> {
13656        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13657    }
13658}
13659
13660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13661pub struct Select {
13662    pub(crate) syntax: SyntaxNode,
13663}
13664impl Select {
13665    #[inline]
13666    pub fn fetch_clause(&self) -> Option<FetchClause> {
13667        support::child(&self.syntax)
13668    }
13669    #[inline]
13670    pub fn filter_clause(&self) -> Option<FilterClause> {
13671        support::child(&self.syntax)
13672    }
13673    #[inline]
13674    pub fn from_clause(&self) -> Option<FromClause> {
13675        support::child(&self.syntax)
13676    }
13677    #[inline]
13678    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13679        support::child(&self.syntax)
13680    }
13681    #[inline]
13682    pub fn having_clause(&self) -> Option<HavingClause> {
13683        support::child(&self.syntax)
13684    }
13685    #[inline]
13686    pub fn limit_clause(&self) -> Option<LimitClause> {
13687        support::child(&self.syntax)
13688    }
13689    #[inline]
13690    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13691        support::children(&self.syntax)
13692    }
13693    #[inline]
13694    pub fn offset_clause(&self) -> Option<OffsetClause> {
13695        support::child(&self.syntax)
13696    }
13697    #[inline]
13698    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13699        support::child(&self.syntax)
13700    }
13701    #[inline]
13702    pub fn select_clause(&self) -> Option<SelectClause> {
13703        support::child(&self.syntax)
13704    }
13705    #[inline]
13706    pub fn where_clause(&self) -> Option<WhereClause> {
13707        support::child(&self.syntax)
13708    }
13709    #[inline]
13710    pub fn window_clause(&self) -> Option<WindowClause> {
13711        support::child(&self.syntax)
13712    }
13713    #[inline]
13714    pub fn with_clause(&self) -> Option<WithClause> {
13715        support::child(&self.syntax)
13716    }
13717}
13718
13719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13720pub struct SelectClause {
13721    pub(crate) syntax: SyntaxNode,
13722}
13723impl SelectClause {
13724    #[inline]
13725    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13726        support::child(&self.syntax)
13727    }
13728    #[inline]
13729    pub fn target_list(&self) -> Option<TargetList> {
13730        support::child(&self.syntax)
13731    }
13732    #[inline]
13733    pub fn all_token(&self) -> Option<SyntaxToken> {
13734        support::token(&self.syntax, SyntaxKind::ALL_KW)
13735    }
13736    #[inline]
13737    pub fn select_token(&self) -> Option<SyntaxToken> {
13738        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13739    }
13740}
13741
13742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13743pub struct SelectInto {
13744    pub(crate) syntax: SyntaxNode,
13745}
13746impl SelectInto {
13747    #[inline]
13748    pub fn filter_clause(&self) -> Option<FilterClause> {
13749        support::child(&self.syntax)
13750    }
13751    #[inline]
13752    pub fn from_clause(&self) -> Option<FromClause> {
13753        support::child(&self.syntax)
13754    }
13755    #[inline]
13756    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13757        support::child(&self.syntax)
13758    }
13759    #[inline]
13760    pub fn having_clause(&self) -> Option<HavingClause> {
13761        support::child(&self.syntax)
13762    }
13763    #[inline]
13764    pub fn into_clause(&self) -> Option<IntoClause> {
13765        support::child(&self.syntax)
13766    }
13767    #[inline]
13768    pub fn limit_clause(&self) -> Option<LimitClause> {
13769        support::child(&self.syntax)
13770    }
13771    #[inline]
13772    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13773        support::children(&self.syntax)
13774    }
13775    #[inline]
13776    pub fn offset_clause(&self) -> Option<OffsetClause> {
13777        support::child(&self.syntax)
13778    }
13779    #[inline]
13780    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13781        support::child(&self.syntax)
13782    }
13783    #[inline]
13784    pub fn select_clause(&self) -> Option<SelectClause> {
13785        support::child(&self.syntax)
13786    }
13787    #[inline]
13788    pub fn where_clause(&self) -> Option<WhereClause> {
13789        support::child(&self.syntax)
13790    }
13791    #[inline]
13792    pub fn window_clause(&self) -> Option<WindowClause> {
13793        support::child(&self.syntax)
13794    }
13795    #[inline]
13796    pub fn with_clause(&self) -> Option<WithClause> {
13797        support::child(&self.syntax)
13798    }
13799}
13800
13801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13802pub struct SequenceOption {
13803    pub(crate) syntax: SyntaxNode,
13804}
13805impl SequenceOption {
13806    #[inline]
13807    pub fn literal(&self) -> Option<Literal> {
13808        support::child(&self.syntax)
13809    }
13810    #[inline]
13811    pub fn name_ref(&self) -> Option<NameRef> {
13812        support::child(&self.syntax)
13813    }
13814    #[inline]
13815    pub fn path(&self) -> Option<Path> {
13816        support::child(&self.syntax)
13817    }
13818    #[inline]
13819    pub fn ty(&self) -> Option<Type> {
13820        support::child(&self.syntax)
13821    }
13822    #[inline]
13823    pub fn as_token(&self) -> Option<SyntaxToken> {
13824        support::token(&self.syntax, SyntaxKind::AS_KW)
13825    }
13826    #[inline]
13827    pub fn by_token(&self) -> Option<SyntaxToken> {
13828        support::token(&self.syntax, SyntaxKind::BY_KW)
13829    }
13830    #[inline]
13831    pub fn cycle_token(&self) -> Option<SyntaxToken> {
13832        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
13833    }
13834    #[inline]
13835    pub fn increment_token(&self) -> Option<SyntaxToken> {
13836        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
13837    }
13838    #[inline]
13839    pub fn logged_token(&self) -> Option<SyntaxToken> {
13840        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
13841    }
13842    #[inline]
13843    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
13844        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
13845    }
13846    #[inline]
13847    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
13848        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
13849    }
13850    #[inline]
13851    pub fn name_token(&self) -> Option<SyntaxToken> {
13852        support::token(&self.syntax, SyntaxKind::NAME_KW)
13853    }
13854    #[inline]
13855    pub fn no_token(&self) -> Option<SyntaxToken> {
13856        support::token(&self.syntax, SyntaxKind::NO_KW)
13857    }
13858    #[inline]
13859    pub fn none_token(&self) -> Option<SyntaxToken> {
13860        support::token(&self.syntax, SyntaxKind::NONE_KW)
13861    }
13862    #[inline]
13863    pub fn owned_token(&self) -> Option<SyntaxToken> {
13864        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13865    }
13866    #[inline]
13867    pub fn restart_token(&self) -> Option<SyntaxToken> {
13868        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13869    }
13870    #[inline]
13871    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13872        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13873    }
13874    #[inline]
13875    pub fn start_token(&self) -> Option<SyntaxToken> {
13876        support::token(&self.syntax, SyntaxKind::START_KW)
13877    }
13878    #[inline]
13879    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
13880        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
13881    }
13882    #[inline]
13883    pub fn with_token(&self) -> Option<SyntaxToken> {
13884        support::token(&self.syntax, SyntaxKind::WITH_KW)
13885    }
13886}
13887
13888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13889pub struct SequenceOptionList {
13890    pub(crate) syntax: SyntaxNode,
13891}
13892impl SequenceOptionList {
13893    #[inline]
13894    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
13895        support::children(&self.syntax)
13896    }
13897    #[inline]
13898    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13899        support::token(&self.syntax, SyntaxKind::L_PAREN)
13900    }
13901    #[inline]
13902    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13903        support::token(&self.syntax, SyntaxKind::R_PAREN)
13904    }
13905}
13906
13907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13908pub struct Serializable {
13909    pub(crate) syntax: SyntaxNode,
13910}
13911impl Serializable {
13912    #[inline]
13913    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13914        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13915    }
13916    #[inline]
13917    pub fn level_token(&self) -> Option<SyntaxToken> {
13918        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13919    }
13920    #[inline]
13921    pub fn serializable_token(&self) -> Option<SyntaxToken> {
13922        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
13923    }
13924}
13925
13926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13927pub struct ServerName {
13928    pub(crate) syntax: SyntaxNode,
13929}
13930impl ServerName {
13931    #[inline]
13932    pub fn name_ref(&self) -> Option<NameRef> {
13933        support::child(&self.syntax)
13934    }
13935    #[inline]
13936    pub fn server_token(&self) -> Option<SyntaxToken> {
13937        support::token(&self.syntax, SyntaxKind::SERVER_KW)
13938    }
13939}
13940
13941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13942pub struct Set {
13943    pub(crate) syntax: SyntaxNode,
13944}
13945impl Set {
13946    #[inline]
13947    pub fn config_value(&self) -> Option<ConfigValue> {
13948        support::child(&self.syntax)
13949    }
13950    #[inline]
13951    pub fn config_values(&self) -> AstChildren<ConfigValue> {
13952        support::children(&self.syntax)
13953    }
13954    #[inline]
13955    pub fn literal(&self) -> Option<Literal> {
13956        support::child(&self.syntax)
13957    }
13958    #[inline]
13959    pub fn path(&self) -> Option<Path> {
13960        support::child(&self.syntax)
13961    }
13962    #[inline]
13963    pub fn eq_token(&self) -> Option<SyntaxToken> {
13964        support::token(&self.syntax, SyntaxKind::EQ)
13965    }
13966    #[inline]
13967    pub fn catalog_token(&self) -> Option<SyntaxToken> {
13968        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
13969    }
13970    #[inline]
13971    pub fn content_token(&self) -> Option<SyntaxToken> {
13972        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
13973    }
13974    #[inline]
13975    pub fn current_token(&self) -> Option<SyntaxToken> {
13976        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
13977    }
13978    #[inline]
13979    pub fn default_token(&self) -> Option<SyntaxToken> {
13980        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13981    }
13982    #[inline]
13983    pub fn document_token(&self) -> Option<SyntaxToken> {
13984        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
13985    }
13986    #[inline]
13987    pub fn from_token(&self) -> Option<SyntaxToken> {
13988        support::token(&self.syntax, SyntaxKind::FROM_KW)
13989    }
13990    #[inline]
13991    pub fn local_token(&self) -> Option<SyntaxToken> {
13992        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
13993    }
13994    #[inline]
13995    pub fn option_token(&self) -> Option<SyntaxToken> {
13996        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13997    }
13998    #[inline]
13999    pub fn schema_token(&self) -> Option<SyntaxToken> {
14000        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14001    }
14002    #[inline]
14003    pub fn session_token(&self) -> Option<SyntaxToken> {
14004        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14005    }
14006    #[inline]
14007    pub fn set_token(&self) -> Option<SyntaxToken> {
14008        support::token(&self.syntax, SyntaxKind::SET_KW)
14009    }
14010    #[inline]
14011    pub fn time_token(&self) -> Option<SyntaxToken> {
14012        support::token(&self.syntax, SyntaxKind::TIME_KW)
14013    }
14014    #[inline]
14015    pub fn to_token(&self) -> Option<SyntaxToken> {
14016        support::token(&self.syntax, SyntaxKind::TO_KW)
14017    }
14018    #[inline]
14019    pub fn xml_token(&self) -> Option<SyntaxToken> {
14020        support::token(&self.syntax, SyntaxKind::XML_KW)
14021    }
14022    #[inline]
14023    pub fn zone_token(&self) -> Option<SyntaxToken> {
14024        support::token(&self.syntax, SyntaxKind::ZONE_KW)
14025    }
14026}
14027
14028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14029pub struct SetAccessMethod {
14030    pub(crate) syntax: SyntaxNode,
14031}
14032impl SetAccessMethod {
14033    #[inline]
14034    pub fn name_ref(&self) -> Option<NameRef> {
14035        support::child(&self.syntax)
14036    }
14037    #[inline]
14038    pub fn access_token(&self) -> Option<SyntaxToken> {
14039        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
14040    }
14041    #[inline]
14042    pub fn method_token(&self) -> Option<SyntaxToken> {
14043        support::token(&self.syntax, SyntaxKind::METHOD_KW)
14044    }
14045    #[inline]
14046    pub fn set_token(&self) -> Option<SyntaxToken> {
14047        support::token(&self.syntax, SyntaxKind::SET_KW)
14048    }
14049}
14050
14051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14052pub struct SetClause {
14053    pub(crate) syntax: SyntaxNode,
14054}
14055impl SetClause {
14056    #[inline]
14057    pub fn set_column_list(&self) -> Option<SetColumnList> {
14058        support::child(&self.syntax)
14059    }
14060    #[inline]
14061    pub fn set_token(&self) -> Option<SyntaxToken> {
14062        support::token(&self.syntax, SyntaxKind::SET_KW)
14063    }
14064}
14065
14066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14067pub struct SetColumnList {
14068    pub(crate) syntax: SyntaxNode,
14069}
14070impl SetColumnList {
14071    #[inline]
14072    pub fn set_columns(&self) -> AstChildren<SetColumn> {
14073        support::children(&self.syntax)
14074    }
14075}
14076
14077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14078pub struct SetCompression {
14079    pub(crate) syntax: SyntaxNode,
14080}
14081impl SetCompression {
14082    #[inline]
14083    pub fn compression_token(&self) -> Option<SyntaxToken> {
14084        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
14085    }
14086    #[inline]
14087    pub fn set_token(&self) -> Option<SyntaxToken> {
14088        support::token(&self.syntax, SyntaxKind::SET_KW)
14089    }
14090}
14091
14092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14093pub struct SetConfigParam {
14094    pub(crate) syntax: SyntaxNode,
14095}
14096impl SetConfigParam {
14097    #[inline]
14098    pub fn path(&self) -> Option<Path> {
14099        support::child(&self.syntax)
14100    }
14101    #[inline]
14102    pub fn set_token(&self) -> Option<SyntaxToken> {
14103        support::token(&self.syntax, SyntaxKind::SET_KW)
14104    }
14105}
14106
14107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14108pub struct SetConstraints {
14109    pub(crate) syntax: SyntaxNode,
14110}
14111impl SetConstraints {
14112    #[inline]
14113    pub fn paths(&self) -> AstChildren<Path> {
14114        support::children(&self.syntax)
14115    }
14116    #[inline]
14117    pub fn all_token(&self) -> Option<SyntaxToken> {
14118        support::token(&self.syntax, SyntaxKind::ALL_KW)
14119    }
14120    #[inline]
14121    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14122        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14123    }
14124    #[inline]
14125    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14126        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14127    }
14128    #[inline]
14129    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14130        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14131    }
14132    #[inline]
14133    pub fn set_token(&self) -> Option<SyntaxToken> {
14134        support::token(&self.syntax, SyntaxKind::SET_KW)
14135    }
14136}
14137
14138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14139pub struct SetDefault {
14140    pub(crate) syntax: SyntaxNode,
14141}
14142impl SetDefault {
14143    #[inline]
14144    pub fn expr(&self) -> Option<Expr> {
14145        support::child(&self.syntax)
14146    }
14147    #[inline]
14148    pub fn default_token(&self) -> Option<SyntaxToken> {
14149        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14150    }
14151    #[inline]
14152    pub fn set_token(&self) -> Option<SyntaxToken> {
14153        support::token(&self.syntax, SyntaxKind::SET_KW)
14154    }
14155}
14156
14157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14158pub struct SetDefaultColumns {
14159    pub(crate) syntax: SyntaxNode,
14160}
14161impl SetDefaultColumns {
14162    #[inline]
14163    pub fn column_list(&self) -> Option<ColumnList> {
14164        support::child(&self.syntax)
14165    }
14166    #[inline]
14167    pub fn default_token(&self) -> Option<SyntaxToken> {
14168        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14169    }
14170    #[inline]
14171    pub fn set_token(&self) -> Option<SyntaxToken> {
14172        support::token(&self.syntax, SyntaxKind::SET_KW)
14173    }
14174}
14175
14176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14177pub struct SetExpr {
14178    pub(crate) syntax: SyntaxNode,
14179}
14180impl SetExpr {
14181    #[inline]
14182    pub fn expr(&self) -> Option<Expr> {
14183        support::child(&self.syntax)
14184    }
14185    #[inline]
14186    pub fn default_token(&self) -> Option<SyntaxToken> {
14187        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14188    }
14189}
14190
14191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14192pub struct SetExprList {
14193    pub(crate) syntax: SyntaxNode,
14194}
14195impl SetExprList {
14196    #[inline]
14197    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14198        support::children(&self.syntax)
14199    }
14200    #[inline]
14201    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14202        support::token(&self.syntax, SyntaxKind::L_PAREN)
14203    }
14204    #[inline]
14205    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14206        support::token(&self.syntax, SyntaxKind::R_PAREN)
14207    }
14208    #[inline]
14209    pub fn row_token(&self) -> Option<SyntaxToken> {
14210        support::token(&self.syntax, SyntaxKind::ROW_KW)
14211    }
14212}
14213
14214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14215pub struct SetExpression {
14216    pub(crate) syntax: SyntaxNode,
14217}
14218impl SetExpression {
14219    #[inline]
14220    pub fn expr(&self) -> Option<Expr> {
14221        support::child(&self.syntax)
14222    }
14223    #[inline]
14224    pub fn expression_token(&self) -> Option<SyntaxToken> {
14225        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14226    }
14227    #[inline]
14228    pub fn set_token(&self) -> Option<SyntaxToken> {
14229        support::token(&self.syntax, SyntaxKind::SET_KW)
14230    }
14231}
14232
14233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14234pub struct SetFuncOption {
14235    pub(crate) syntax: SyntaxNode,
14236}
14237impl SetFuncOption {
14238    #[inline]
14239    pub fn set_token(&self) -> Option<SyntaxToken> {
14240        support::token(&self.syntax, SyntaxKind::SET_KW)
14241    }
14242}
14243
14244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14245pub struct SetGenerated {
14246    pub(crate) syntax: SyntaxNode,
14247}
14248impl SetGenerated {
14249    #[inline]
14250    pub fn set_token(&self) -> Option<SyntaxToken> {
14251        support::token(&self.syntax, SyntaxKind::SET_KW)
14252    }
14253}
14254
14255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14256pub struct SetGeneratedOptions {
14257    pub(crate) syntax: SyntaxNode,
14258}
14259impl SetGeneratedOptions {
14260    #[inline]
14261    pub fn generated_token(&self) -> Option<SyntaxToken> {
14262        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14263    }
14264    #[inline]
14265    pub fn set_token(&self) -> Option<SyntaxToken> {
14266        support::token(&self.syntax, SyntaxKind::SET_KW)
14267    }
14268}
14269
14270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14271pub struct SetLogged {
14272    pub(crate) syntax: SyntaxNode,
14273}
14274impl SetLogged {
14275    #[inline]
14276    pub fn logged_token(&self) -> Option<SyntaxToken> {
14277        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14278    }
14279    #[inline]
14280    pub fn set_token(&self) -> Option<SyntaxToken> {
14281        support::token(&self.syntax, SyntaxKind::SET_KW)
14282    }
14283}
14284
14285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14286pub struct SetMultipleColumns {
14287    pub(crate) syntax: SyntaxNode,
14288}
14289impl SetMultipleColumns {
14290    #[inline]
14291    pub fn column_list(&self) -> Option<ColumnList> {
14292        support::child(&self.syntax)
14293    }
14294    #[inline]
14295    pub fn paren_select(&self) -> Option<ParenSelect> {
14296        support::child(&self.syntax)
14297    }
14298    #[inline]
14299    pub fn set_expr_list(&self) -> Option<SetExprList> {
14300        support::child(&self.syntax)
14301    }
14302    #[inline]
14303    pub fn eq_token(&self) -> Option<SyntaxToken> {
14304        support::token(&self.syntax, SyntaxKind::EQ)
14305    }
14306}
14307
14308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14309pub struct SetNotNull {
14310    pub(crate) syntax: SyntaxNode,
14311}
14312impl SetNotNull {
14313    #[inline]
14314    pub fn not_token(&self) -> Option<SyntaxToken> {
14315        support::token(&self.syntax, SyntaxKind::NOT_KW)
14316    }
14317    #[inline]
14318    pub fn null_token(&self) -> Option<SyntaxToken> {
14319        support::token(&self.syntax, SyntaxKind::NULL_KW)
14320    }
14321    #[inline]
14322    pub fn set_token(&self) -> Option<SyntaxToken> {
14323        support::token(&self.syntax, SyntaxKind::SET_KW)
14324    }
14325}
14326
14327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14328pub struct SetNullColumns {
14329    pub(crate) syntax: SyntaxNode,
14330}
14331impl SetNullColumns {
14332    #[inline]
14333    pub fn column_list(&self) -> Option<ColumnList> {
14334        support::child(&self.syntax)
14335    }
14336    #[inline]
14337    pub fn null_token(&self) -> Option<SyntaxToken> {
14338        support::token(&self.syntax, SyntaxKind::NULL_KW)
14339    }
14340    #[inline]
14341    pub fn set_token(&self) -> Option<SyntaxToken> {
14342        support::token(&self.syntax, SyntaxKind::SET_KW)
14343    }
14344}
14345
14346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14347pub struct SetOptions {
14348    pub(crate) syntax: SyntaxNode,
14349}
14350impl SetOptions {
14351    #[inline]
14352    pub fn attribute_list(&self) -> Option<AttributeList> {
14353        support::child(&self.syntax)
14354    }
14355    #[inline]
14356    pub fn set_token(&self) -> Option<SyntaxToken> {
14357        support::token(&self.syntax, SyntaxKind::SET_KW)
14358    }
14359}
14360
14361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14362pub struct SetOptionsList {
14363    pub(crate) syntax: SyntaxNode,
14364}
14365impl SetOptionsList {
14366    #[inline]
14367    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14368        support::child(&self.syntax)
14369    }
14370    #[inline]
14371    pub fn options_token(&self) -> Option<SyntaxToken> {
14372        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14373    }
14374    #[inline]
14375    pub fn set_token(&self) -> Option<SyntaxToken> {
14376        support::token(&self.syntax, SyntaxKind::SET_KW)
14377    }
14378}
14379
14380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14381pub struct SetRole {
14382    pub(crate) syntax: SyntaxNode,
14383}
14384impl SetRole {
14385    #[inline]
14386    pub fn role_ref(&self) -> Option<RoleRef> {
14387        support::child(&self.syntax)
14388    }
14389    #[inline]
14390    pub fn local_token(&self) -> Option<SyntaxToken> {
14391        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14392    }
14393    #[inline]
14394    pub fn none_token(&self) -> Option<SyntaxToken> {
14395        support::token(&self.syntax, SyntaxKind::NONE_KW)
14396    }
14397    #[inline]
14398    pub fn reset_token(&self) -> Option<SyntaxToken> {
14399        support::token(&self.syntax, SyntaxKind::RESET_KW)
14400    }
14401    #[inline]
14402    pub fn role_token(&self) -> Option<SyntaxToken> {
14403        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14404    }
14405    #[inline]
14406    pub fn session_token(&self) -> Option<SyntaxToken> {
14407        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14408    }
14409    #[inline]
14410    pub fn set_token(&self) -> Option<SyntaxToken> {
14411        support::token(&self.syntax, SyntaxKind::SET_KW)
14412    }
14413}
14414
14415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14416pub struct SetSchema {
14417    pub(crate) syntax: SyntaxNode,
14418}
14419impl SetSchema {
14420    #[inline]
14421    pub fn name_ref(&self) -> Option<NameRef> {
14422        support::child(&self.syntax)
14423    }
14424    #[inline]
14425    pub fn schema_token(&self) -> Option<SyntaxToken> {
14426        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14427    }
14428    #[inline]
14429    pub fn set_token(&self) -> Option<SyntaxToken> {
14430        support::token(&self.syntax, SyntaxKind::SET_KW)
14431    }
14432}
14433
14434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14435pub struct SetSequenceOption {
14436    pub(crate) syntax: SyntaxNode,
14437}
14438impl SetSequenceOption {
14439    #[inline]
14440    pub fn set_token(&self) -> Option<SyntaxToken> {
14441        support::token(&self.syntax, SyntaxKind::SET_KW)
14442    }
14443}
14444
14445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14446pub struct SetSessionAuth {
14447    pub(crate) syntax: SyntaxNode,
14448}
14449impl SetSessionAuth {
14450    #[inline]
14451    pub fn literal(&self) -> Option<Literal> {
14452        support::child(&self.syntax)
14453    }
14454    #[inline]
14455    pub fn role_ref(&self) -> Option<RoleRef> {
14456        support::child(&self.syntax)
14457    }
14458    #[inline]
14459    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14460        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14461    }
14462    #[inline]
14463    pub fn default_token(&self) -> Option<SyntaxToken> {
14464        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14465    }
14466    #[inline]
14467    pub fn local_token(&self) -> Option<SyntaxToken> {
14468        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14469    }
14470    #[inline]
14471    pub fn session_token(&self) -> Option<SyntaxToken> {
14472        support::token(&self.syntax, SyntaxKind::SESSION_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 SetSingleColumn {
14482    pub(crate) syntax: SyntaxNode,
14483}
14484impl SetSingleColumn {
14485    #[inline]
14486    pub fn column(&self) -> Option<Column> {
14487        support::child(&self.syntax)
14488    }
14489    #[inline]
14490    pub fn set_expr(&self) -> Option<SetExpr> {
14491        support::child(&self.syntax)
14492    }
14493    #[inline]
14494    pub fn eq_token(&self) -> Option<SyntaxToken> {
14495        support::token(&self.syntax, SyntaxKind::EQ)
14496    }
14497}
14498
14499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14500pub struct SetStatistics {
14501    pub(crate) syntax: SyntaxNode,
14502}
14503impl SetStatistics {
14504    #[inline]
14505    pub fn set_token(&self) -> Option<SyntaxToken> {
14506        support::token(&self.syntax, SyntaxKind::SET_KW)
14507    }
14508    #[inline]
14509    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14510        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14511    }
14512}
14513
14514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14515pub struct SetStorage {
14516    pub(crate) syntax: SyntaxNode,
14517}
14518impl SetStorage {
14519    #[inline]
14520    pub fn set_token(&self) -> Option<SyntaxToken> {
14521        support::token(&self.syntax, SyntaxKind::SET_KW)
14522    }
14523    #[inline]
14524    pub fn storage_token(&self) -> Option<SyntaxToken> {
14525        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14526    }
14527}
14528
14529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14530pub struct SetTablespace {
14531    pub(crate) syntax: SyntaxNode,
14532}
14533impl SetTablespace {
14534    #[inline]
14535    pub fn path(&self) -> Option<Path> {
14536        support::child(&self.syntax)
14537    }
14538    #[inline]
14539    pub fn set_token(&self) -> Option<SyntaxToken> {
14540        support::token(&self.syntax, SyntaxKind::SET_KW)
14541    }
14542    #[inline]
14543    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14544        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14545    }
14546}
14547
14548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14549pub struct SetTransaction {
14550    pub(crate) syntax: SyntaxNode,
14551}
14552impl SetTransaction {
14553    #[inline]
14554    pub fn literal(&self) -> Option<Literal> {
14555        support::child(&self.syntax)
14556    }
14557    #[inline]
14558    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14559        support::child(&self.syntax)
14560    }
14561    #[inline]
14562    pub fn as_token(&self) -> Option<SyntaxToken> {
14563        support::token(&self.syntax, SyntaxKind::AS_KW)
14564    }
14565    #[inline]
14566    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14567        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14568    }
14569    #[inline]
14570    pub fn session_token(&self) -> Option<SyntaxToken> {
14571        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14572    }
14573    #[inline]
14574    pub fn set_token(&self) -> Option<SyntaxToken> {
14575        support::token(&self.syntax, SyntaxKind::SET_KW)
14576    }
14577    #[inline]
14578    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14579        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14580    }
14581    #[inline]
14582    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14583        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14584    }
14585}
14586
14587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14588pub struct SetType {
14589    pub(crate) syntax: SyntaxNode,
14590}
14591impl SetType {
14592    #[inline]
14593    pub fn collate(&self) -> Option<Collate> {
14594        support::child(&self.syntax)
14595    }
14596    #[inline]
14597    pub fn ty(&self) -> Option<Type> {
14598        support::child(&self.syntax)
14599    }
14600    #[inline]
14601    pub fn set_token(&self) -> Option<SyntaxToken> {
14602        support::token(&self.syntax, SyntaxKind::SET_KW)
14603    }
14604    #[inline]
14605    pub fn type_token(&self) -> Option<SyntaxToken> {
14606        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14607    }
14608}
14609
14610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14611pub struct SetUnlogged {
14612    pub(crate) syntax: SyntaxNode,
14613}
14614impl SetUnlogged {
14615    #[inline]
14616    pub fn set_token(&self) -> Option<SyntaxToken> {
14617        support::token(&self.syntax, SyntaxKind::SET_KW)
14618    }
14619    #[inline]
14620    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14621        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14622    }
14623}
14624
14625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14626pub struct SetWithoutCluster {
14627    pub(crate) syntax: SyntaxNode,
14628}
14629impl SetWithoutCluster {
14630    #[inline]
14631    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14632        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14633    }
14634    #[inline]
14635    pub fn set_token(&self) -> Option<SyntaxToken> {
14636        support::token(&self.syntax, SyntaxKind::SET_KW)
14637    }
14638    #[inline]
14639    pub fn without_token(&self) -> Option<SyntaxToken> {
14640        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14641    }
14642}
14643
14644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14645pub struct SetWithoutOids {
14646    pub(crate) syntax: SyntaxNode,
14647}
14648impl SetWithoutOids {
14649    #[inline]
14650    pub fn oids_token(&self) -> Option<SyntaxToken> {
14651        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14652    }
14653    #[inline]
14654    pub fn set_token(&self) -> Option<SyntaxToken> {
14655        support::token(&self.syntax, SyntaxKind::SET_KW)
14656    }
14657    #[inline]
14658    pub fn without_token(&self) -> Option<SyntaxToken> {
14659        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14660    }
14661}
14662
14663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14664pub struct Show {
14665    pub(crate) syntax: SyntaxNode,
14666}
14667impl Show {
14668    #[inline]
14669    pub fn show_token(&self) -> Option<SyntaxToken> {
14670        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14671    }
14672}
14673
14674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14675pub struct SimilarTo {
14676    pub(crate) syntax: SyntaxNode,
14677}
14678impl SimilarTo {
14679    #[inline]
14680    pub fn similar_token(&self) -> Option<SyntaxToken> {
14681        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14682    }
14683    #[inline]
14684    pub fn to_token(&self) -> Option<SyntaxToken> {
14685        support::token(&self.syntax, SyntaxKind::TO_KW)
14686    }
14687}
14688
14689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14690pub struct SliceExpr {
14691    pub(crate) syntax: SyntaxNode,
14692}
14693impl SliceExpr {
14694    #[inline]
14695    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14696        support::token(&self.syntax, SyntaxKind::L_BRACK)
14697    }
14698    #[inline]
14699    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14700        support::token(&self.syntax, SyntaxKind::R_BRACK)
14701    }
14702    #[inline]
14703    pub fn colon_token(&self) -> Option<SyntaxToken> {
14704        support::token(&self.syntax, SyntaxKind::COLON)
14705    }
14706}
14707
14708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14709pub struct SomeFn {
14710    pub(crate) syntax: SyntaxNode,
14711}
14712impl SomeFn {
14713    #[inline]
14714    pub fn expr(&self) -> Option<Expr> {
14715        support::child(&self.syntax)
14716    }
14717    #[inline]
14718    pub fn select_variant(&self) -> Option<SelectVariant> {
14719        support::child(&self.syntax)
14720    }
14721    #[inline]
14722    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14723        support::token(&self.syntax, SyntaxKind::L_PAREN)
14724    }
14725    #[inline]
14726    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14727        support::token(&self.syntax, SyntaxKind::R_PAREN)
14728    }
14729    #[inline]
14730    pub fn some_token(&self) -> Option<SyntaxToken> {
14731        support::token(&self.syntax, SyntaxKind::SOME_KW)
14732    }
14733}
14734
14735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14736pub struct SortAsc {
14737    pub(crate) syntax: SyntaxNode,
14738}
14739impl SortAsc {
14740    #[inline]
14741    pub fn asc_token(&self) -> Option<SyntaxToken> {
14742        support::token(&self.syntax, SyntaxKind::ASC_KW)
14743    }
14744}
14745
14746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14747pub struct SortBy {
14748    pub(crate) syntax: SyntaxNode,
14749}
14750impl SortBy {
14751    #[inline]
14752    pub fn expr(&self) -> Option<Expr> {
14753        support::child(&self.syntax)
14754    }
14755    #[inline]
14756    pub fn nulls_first(&self) -> Option<NullsFirst> {
14757        support::child(&self.syntax)
14758    }
14759    #[inline]
14760    pub fn nulls_last(&self) -> Option<NullsLast> {
14761        support::child(&self.syntax)
14762    }
14763    #[inline]
14764    pub fn sort_asc(&self) -> Option<SortAsc> {
14765        support::child(&self.syntax)
14766    }
14767    #[inline]
14768    pub fn sort_desc(&self) -> Option<SortDesc> {
14769        support::child(&self.syntax)
14770    }
14771    #[inline]
14772    pub fn sort_using(&self) -> Option<SortUsing> {
14773        support::child(&self.syntax)
14774    }
14775}
14776
14777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14778pub struct SortByList {
14779    pub(crate) syntax: SyntaxNode,
14780}
14781impl SortByList {
14782    #[inline]
14783    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14784        support::children(&self.syntax)
14785    }
14786}
14787
14788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14789pub struct SortDesc {
14790    pub(crate) syntax: SyntaxNode,
14791}
14792impl SortDesc {
14793    #[inline]
14794    pub fn desc_token(&self) -> Option<SyntaxToken> {
14795        support::token(&self.syntax, SyntaxKind::DESC_KW)
14796    }
14797}
14798
14799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14800pub struct SortUsing {
14801    pub(crate) syntax: SyntaxNode,
14802}
14803impl SortUsing {
14804    #[inline]
14805    pub fn op(&self) -> Option<Op> {
14806        support::child(&self.syntax)
14807    }
14808    #[inline]
14809    pub fn using_token(&self) -> Option<SyntaxToken> {
14810        support::token(&self.syntax, SyntaxKind::USING_KW)
14811    }
14812}
14813
14814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14815pub struct SourceFile {
14816    pub(crate) syntax: SyntaxNode,
14817}
14818impl SourceFile {
14819    #[inline]
14820    pub fn stmts(&self) -> AstChildren<Stmt> {
14821        support::children(&self.syntax)
14822    }
14823}
14824
14825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14826pub struct SplitPartition {
14827    pub(crate) syntax: SyntaxNode,
14828}
14829impl SplitPartition {
14830    #[inline]
14831    pub fn partition_list(&self) -> Option<PartitionList> {
14832        support::child(&self.syntax)
14833    }
14834    #[inline]
14835    pub fn into_token(&self) -> Option<SyntaxToken> {
14836        support::token(&self.syntax, SyntaxKind::INTO_KW)
14837    }
14838    #[inline]
14839    pub fn partition_token(&self) -> Option<SyntaxToken> {
14840        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
14841    }
14842    #[inline]
14843    pub fn split_token(&self) -> Option<SyntaxToken> {
14844        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
14845    }
14846}
14847
14848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14849pub struct Storage {
14850    pub(crate) syntax: SyntaxNode,
14851}
14852impl Storage {
14853    #[inline]
14854    pub fn default_token(&self) -> Option<SyntaxToken> {
14855        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14856    }
14857    #[inline]
14858    pub fn external_token(&self) -> Option<SyntaxToken> {
14859        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
14860    }
14861    #[inline]
14862    pub fn ident_token(&self) -> Option<SyntaxToken> {
14863        support::token(&self.syntax, SyntaxKind::IDENT)
14864    }
14865    #[inline]
14866    pub fn storage_token(&self) -> Option<SyntaxToken> {
14867        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14868    }
14869}
14870
14871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14872pub struct StrictFuncOption {
14873    pub(crate) syntax: SyntaxNode,
14874}
14875impl StrictFuncOption {
14876    #[inline]
14877    pub fn called_token(&self) -> Option<SyntaxToken> {
14878        support::token(&self.syntax, SyntaxKind::CALLED_KW)
14879    }
14880    #[inline]
14881    pub fn input_token(&self) -> Option<SyntaxToken> {
14882        support::token(&self.syntax, SyntaxKind::INPUT_KW)
14883    }
14884    #[inline]
14885    pub fn null_token(&self) -> Option<SyntaxToken> {
14886        support::token(&self.syntax, SyntaxKind::NULL_KW)
14887    }
14888    #[inline]
14889    pub fn on_token(&self) -> Option<SyntaxToken> {
14890        support::token(&self.syntax, SyntaxKind::ON_KW)
14891    }
14892    #[inline]
14893    pub fn returns_token(&self) -> Option<SyntaxToken> {
14894        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14895    }
14896    #[inline]
14897    pub fn strict_token(&self) -> Option<SyntaxToken> {
14898        support::token(&self.syntax, SyntaxKind::STRICT_KW)
14899    }
14900}
14901
14902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14903pub struct SubstringFn {
14904    pub(crate) syntax: SyntaxNode,
14905}
14906impl SubstringFn {
14907    #[inline]
14908    pub fn expr(&self) -> Option<Expr> {
14909        support::child(&self.syntax)
14910    }
14911    #[inline]
14912    pub fn exprs(&self) -> AstChildren<Expr> {
14913        support::children(&self.syntax)
14914    }
14915    #[inline]
14916    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14917        support::token(&self.syntax, SyntaxKind::L_PAREN)
14918    }
14919    #[inline]
14920    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14921        support::token(&self.syntax, SyntaxKind::R_PAREN)
14922    }
14923    #[inline]
14924    pub fn for_token(&self) -> Option<SyntaxToken> {
14925        support::token(&self.syntax, SyntaxKind::FOR_KW)
14926    }
14927    #[inline]
14928    pub fn from_token(&self) -> Option<SyntaxToken> {
14929        support::token(&self.syntax, SyntaxKind::FROM_KW)
14930    }
14931    #[inline]
14932    pub fn similar_token(&self) -> Option<SyntaxToken> {
14933        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14934    }
14935    #[inline]
14936    pub fn substring_token(&self) -> Option<SyntaxToken> {
14937        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
14938    }
14939}
14940
14941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14942pub struct SupportFuncOption {
14943    pub(crate) syntax: SyntaxNode,
14944}
14945impl SupportFuncOption {
14946    #[inline]
14947    pub fn support_token(&self) -> Option<SyntaxToken> {
14948        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
14949    }
14950}
14951
14952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14953pub struct Table {
14954    pub(crate) syntax: SyntaxNode,
14955}
14956impl Table {
14957    #[inline]
14958    pub fn relation_name(&self) -> Option<RelationName> {
14959        support::child(&self.syntax)
14960    }
14961    #[inline]
14962    pub fn with_clause(&self) -> Option<WithClause> {
14963        support::child(&self.syntax)
14964    }
14965    #[inline]
14966    pub fn table_token(&self) -> Option<SyntaxToken> {
14967        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14968    }
14969}
14970
14971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14972pub struct TableAndColumns {
14973    pub(crate) syntax: SyntaxNode,
14974}
14975impl TableAndColumns {
14976    #[inline]
14977    pub fn column_list(&self) -> Option<ColumnList> {
14978        support::child(&self.syntax)
14979    }
14980    #[inline]
14981    pub fn relation_name(&self) -> Option<RelationName> {
14982        support::child(&self.syntax)
14983    }
14984}
14985
14986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14987pub struct TableAndColumnsList {
14988    pub(crate) syntax: SyntaxNode,
14989}
14990impl TableAndColumnsList {
14991    #[inline]
14992    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
14993        support::children(&self.syntax)
14994    }
14995}
14996
14997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14998pub struct TableArgList {
14999    pub(crate) syntax: SyntaxNode,
15000}
15001impl TableArgList {
15002    #[inline]
15003    pub fn args(&self) -> AstChildren<TableArg> {
15004        support::children(&self.syntax)
15005    }
15006    #[inline]
15007    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15008        support::token(&self.syntax, SyntaxKind::L_PAREN)
15009    }
15010    #[inline]
15011    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15012        support::token(&self.syntax, SyntaxKind::R_PAREN)
15013    }
15014}
15015
15016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15017pub struct TableList {
15018    pub(crate) syntax: SyntaxNode,
15019}
15020impl TableList {
15021    #[inline]
15022    pub fn relation_names(&self) -> AstChildren<RelationName> {
15023        support::children(&self.syntax)
15024    }
15025}
15026
15027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15028pub struct TablesampleClause {
15029    pub(crate) syntax: SyntaxNode,
15030}
15031impl TablesampleClause {
15032    #[inline]
15033    pub fn call_expr(&self) -> Option<CallExpr> {
15034        support::child(&self.syntax)
15035    }
15036    #[inline]
15037    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
15038        support::child(&self.syntax)
15039    }
15040    #[inline]
15041    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
15042        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
15043    }
15044}
15045
15046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15047pub struct Tablespace {
15048    pub(crate) syntax: SyntaxNode,
15049}
15050impl Tablespace {
15051    #[inline]
15052    pub fn name_ref(&self) -> Option<NameRef> {
15053        support::child(&self.syntax)
15054    }
15055    #[inline]
15056    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15057        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15058    }
15059}
15060
15061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15062pub struct Target {
15063    pub(crate) syntax: SyntaxNode,
15064}
15065impl Target {
15066    #[inline]
15067    pub fn as_name(&self) -> Option<AsName> {
15068        support::child(&self.syntax)
15069    }
15070    #[inline]
15071    pub fn expr(&self) -> Option<Expr> {
15072        support::child(&self.syntax)
15073    }
15074    #[inline]
15075    pub fn star_token(&self) -> Option<SyntaxToken> {
15076        support::token(&self.syntax, SyntaxKind::STAR)
15077    }
15078}
15079
15080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15081pub struct TargetList {
15082    pub(crate) syntax: SyntaxNode,
15083}
15084impl TargetList {
15085    #[inline]
15086    pub fn targets(&self) -> AstChildren<Target> {
15087        support::children(&self.syntax)
15088    }
15089}
15090
15091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15092pub struct TimeType {
15093    pub(crate) syntax: SyntaxNode,
15094}
15095impl TimeType {
15096    #[inline]
15097    pub fn literal(&self) -> Option<Literal> {
15098        support::child(&self.syntax)
15099    }
15100    #[inline]
15101    pub fn timezone(&self) -> Option<Timezone> {
15102        support::child(&self.syntax)
15103    }
15104    #[inline]
15105    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15106        support::token(&self.syntax, SyntaxKind::L_PAREN)
15107    }
15108    #[inline]
15109    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15110        support::token(&self.syntax, SyntaxKind::R_PAREN)
15111    }
15112    #[inline]
15113    pub fn time_token(&self) -> Option<SyntaxToken> {
15114        support::token(&self.syntax, SyntaxKind::TIME_KW)
15115    }
15116    #[inline]
15117    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15118        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15119    }
15120}
15121
15122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15123pub struct Timing {
15124    pub(crate) syntax: SyntaxNode,
15125}
15126impl Timing {
15127    #[inline]
15128    pub fn after_token(&self) -> Option<SyntaxToken> {
15129        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15130    }
15131    #[inline]
15132    pub fn before_token(&self) -> Option<SyntaxToken> {
15133        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15134    }
15135    #[inline]
15136    pub fn instead_token(&self) -> Option<SyntaxToken> {
15137        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15138    }
15139    #[inline]
15140    pub fn of_token(&self) -> Option<SyntaxToken> {
15141        support::token(&self.syntax, SyntaxKind::OF_KW)
15142    }
15143}
15144
15145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15146pub struct TransactionModeList {
15147    pub(crate) syntax: SyntaxNode,
15148}
15149impl TransactionModeList {
15150    #[inline]
15151    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15152        support::children(&self.syntax)
15153    }
15154}
15155
15156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15157pub struct TransformFromFunc {
15158    pub(crate) syntax: SyntaxNode,
15159}
15160impl TransformFromFunc {
15161    #[inline]
15162    pub fn function_sig(&self) -> Option<FunctionSig> {
15163        support::child(&self.syntax)
15164    }
15165    #[inline]
15166    pub fn from_token(&self) -> Option<SyntaxToken> {
15167        support::token(&self.syntax, SyntaxKind::FROM_KW)
15168    }
15169    #[inline]
15170    pub fn function_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15172    }
15173    #[inline]
15174    pub fn sql_token(&self) -> Option<SyntaxToken> {
15175        support::token(&self.syntax, SyntaxKind::SQL_KW)
15176    }
15177    #[inline]
15178    pub fn with_token(&self) -> Option<SyntaxToken> {
15179        support::token(&self.syntax, SyntaxKind::WITH_KW)
15180    }
15181}
15182
15183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15184pub struct TransformFuncOption {
15185    pub(crate) syntax: SyntaxNode,
15186}
15187impl TransformFuncOption {
15188    #[inline]
15189    pub fn transform_token(&self) -> Option<SyntaxToken> {
15190        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15191    }
15192}
15193
15194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15195pub struct TransformToFunc {
15196    pub(crate) syntax: SyntaxNode,
15197}
15198impl TransformToFunc {
15199    #[inline]
15200    pub fn function_sig(&self) -> Option<FunctionSig> {
15201        support::child(&self.syntax)
15202    }
15203    #[inline]
15204    pub fn function_token(&self) -> Option<SyntaxToken> {
15205        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15206    }
15207    #[inline]
15208    pub fn sql_token(&self) -> Option<SyntaxToken> {
15209        support::token(&self.syntax, SyntaxKind::SQL_KW)
15210    }
15211    #[inline]
15212    pub fn to_token(&self) -> Option<SyntaxToken> {
15213        support::token(&self.syntax, SyntaxKind::TO_KW)
15214    }
15215    #[inline]
15216    pub fn with_token(&self) -> Option<SyntaxToken> {
15217        support::token(&self.syntax, SyntaxKind::WITH_KW)
15218    }
15219}
15220
15221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15222pub struct TriggerEvent {
15223    pub(crate) syntax: SyntaxNode,
15224}
15225impl TriggerEvent {
15226    #[inline]
15227    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15228        support::child(&self.syntax)
15229    }
15230    #[inline]
15231    pub fn delete_token(&self) -> Option<SyntaxToken> {
15232        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15233    }
15234    #[inline]
15235    pub fn insert_token(&self) -> Option<SyntaxToken> {
15236        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15237    }
15238    #[inline]
15239    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15240        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15241    }
15242}
15243
15244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15245pub struct TriggerEventList {
15246    pub(crate) syntax: SyntaxNode,
15247}
15248impl TriggerEventList {
15249    #[inline]
15250    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15251        support::children(&self.syntax)
15252    }
15253}
15254
15255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15256pub struct TriggerEventUpdate {
15257    pub(crate) syntax: SyntaxNode,
15258}
15259impl TriggerEventUpdate {
15260    #[inline]
15261    pub fn name_refs(&self) -> AstChildren<NameRef> {
15262        support::children(&self.syntax)
15263    }
15264    #[inline]
15265    pub fn of_token(&self) -> Option<SyntaxToken> {
15266        support::token(&self.syntax, SyntaxKind::OF_KW)
15267    }
15268    #[inline]
15269    pub fn update_token(&self) -> Option<SyntaxToken> {
15270        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15271    }
15272}
15273
15274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15275pub struct TrimFn {
15276    pub(crate) syntax: SyntaxNode,
15277}
15278impl TrimFn {
15279    #[inline]
15280    pub fn expr(&self) -> Option<Expr> {
15281        support::child(&self.syntax)
15282    }
15283    #[inline]
15284    pub fn exprs(&self) -> AstChildren<Expr> {
15285        support::children(&self.syntax)
15286    }
15287    #[inline]
15288    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15289        support::token(&self.syntax, SyntaxKind::L_PAREN)
15290    }
15291    #[inline]
15292    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15293        support::token(&self.syntax, SyntaxKind::R_PAREN)
15294    }
15295    #[inline]
15296    pub fn from_token(&self) -> Option<SyntaxToken> {
15297        support::token(&self.syntax, SyntaxKind::FROM_KW)
15298    }
15299    #[inline]
15300    pub fn trim_token(&self) -> Option<SyntaxToken> {
15301        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15302    }
15303}
15304
15305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15306pub struct Truncate {
15307    pub(crate) syntax: SyntaxNode,
15308}
15309impl Truncate {
15310    #[inline]
15311    pub fn table_list(&self) -> Option<TableList> {
15312        support::child(&self.syntax)
15313    }
15314    #[inline]
15315    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15316        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15317    }
15318    #[inline]
15319    pub fn continue_token(&self) -> Option<SyntaxToken> {
15320        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15321    }
15322    #[inline]
15323    pub fn identity_token(&self) -> Option<SyntaxToken> {
15324        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15325    }
15326    #[inline]
15327    pub fn restart_token(&self) -> Option<SyntaxToken> {
15328        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15329    }
15330    #[inline]
15331    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15332        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15333    }
15334    #[inline]
15335    pub fn table_token(&self) -> Option<SyntaxToken> {
15336        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15337    }
15338    #[inline]
15339    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15340        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15341    }
15342}
15343
15344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15345pub struct TupleExpr {
15346    pub(crate) syntax: SyntaxNode,
15347}
15348impl TupleExpr {
15349    #[inline]
15350    pub fn exprs(&self) -> AstChildren<Expr> {
15351        support::children(&self.syntax)
15352    }
15353    #[inline]
15354    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15355        support::token(&self.syntax, SyntaxKind::L_PAREN)
15356    }
15357    #[inline]
15358    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15359        support::token(&self.syntax, SyntaxKind::R_PAREN)
15360    }
15361}
15362
15363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15364pub struct UnicodeNormalForm {
15365    pub(crate) syntax: SyntaxNode,
15366}
15367impl UnicodeNormalForm {
15368    #[inline]
15369    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15370        support::token(&self.syntax, SyntaxKind::NFC_KW)
15371    }
15372    #[inline]
15373    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15374        support::token(&self.syntax, SyntaxKind::NFD_KW)
15375    }
15376    #[inline]
15377    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15378        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15379    }
15380    #[inline]
15381    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15382        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15383    }
15384}
15385
15386#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15387pub struct UniqueConstraint {
15388    pub(crate) syntax: SyntaxNode,
15389}
15390impl UniqueConstraint {
15391    #[inline]
15392    pub fn column_list(&self) -> Option<ColumnList> {
15393        support::child(&self.syntax)
15394    }
15395    #[inline]
15396    pub fn constraint_name(&self) -> Option<ConstraintName> {
15397        support::child(&self.syntax)
15398    }
15399    #[inline]
15400    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15401        support::child(&self.syntax)
15402    }
15403    #[inline]
15404    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15405        support::child(&self.syntax)
15406    }
15407    #[inline]
15408    pub fn using_index(&self) -> Option<UsingIndex> {
15409        support::child(&self.syntax)
15410    }
15411    #[inline]
15412    pub fn unique_token(&self) -> Option<SyntaxToken> {
15413        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15414    }
15415}
15416
15417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15418pub struct Unlisten {
15419    pub(crate) syntax: SyntaxNode,
15420}
15421impl Unlisten {
15422    #[inline]
15423    pub fn name_ref(&self) -> Option<NameRef> {
15424        support::child(&self.syntax)
15425    }
15426    #[inline]
15427    pub fn star_token(&self) -> Option<SyntaxToken> {
15428        support::token(&self.syntax, SyntaxKind::STAR)
15429    }
15430    #[inline]
15431    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15432        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15433    }
15434}
15435
15436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15437pub struct Update {
15438    pub(crate) syntax: SyntaxNode,
15439}
15440impl Update {
15441    #[inline]
15442    pub fn alias(&self) -> Option<Alias> {
15443        support::child(&self.syntax)
15444    }
15445    #[inline]
15446    pub fn from_clause(&self) -> Option<FromClause> {
15447        support::child(&self.syntax)
15448    }
15449    #[inline]
15450    pub fn relation_name(&self) -> Option<RelationName> {
15451        support::child(&self.syntax)
15452    }
15453    #[inline]
15454    pub fn returning_clause(&self) -> Option<ReturningClause> {
15455        support::child(&self.syntax)
15456    }
15457    #[inline]
15458    pub fn set_clause(&self) -> Option<SetClause> {
15459        support::child(&self.syntax)
15460    }
15461    #[inline]
15462    pub fn where_clause(&self) -> Option<WhereClause> {
15463        support::child(&self.syntax)
15464    }
15465    #[inline]
15466    pub fn with_clause(&self) -> Option<WithClause> {
15467        support::child(&self.syntax)
15468    }
15469    #[inline]
15470    pub fn update_token(&self) -> Option<SyntaxToken> {
15471        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15472    }
15473}
15474
15475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15476pub struct UsingClause {
15477    pub(crate) syntax: SyntaxNode,
15478}
15479impl UsingClause {
15480    #[inline]
15481    pub fn from_items(&self) -> AstChildren<FromItem> {
15482        support::children(&self.syntax)
15483    }
15484    #[inline]
15485    pub fn using_token(&self) -> Option<SyntaxToken> {
15486        support::token(&self.syntax, SyntaxKind::USING_KW)
15487    }
15488}
15489
15490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15491pub struct UsingIndex {
15492    pub(crate) syntax: SyntaxNode,
15493}
15494impl UsingIndex {
15495    #[inline]
15496    pub fn name_ref(&self) -> Option<NameRef> {
15497        support::child(&self.syntax)
15498    }
15499    #[inline]
15500    pub fn index_token(&self) -> Option<SyntaxToken> {
15501        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15502    }
15503    #[inline]
15504    pub fn using_token(&self) -> Option<SyntaxToken> {
15505        support::token(&self.syntax, SyntaxKind::USING_KW)
15506    }
15507}
15508
15509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15510pub struct UsingMethod {
15511    pub(crate) syntax: SyntaxNode,
15512}
15513impl UsingMethod {
15514    #[inline]
15515    pub fn name_ref(&self) -> Option<NameRef> {
15516        support::child(&self.syntax)
15517    }
15518    #[inline]
15519    pub fn using_token(&self) -> Option<SyntaxToken> {
15520        support::token(&self.syntax, SyntaxKind::USING_KW)
15521    }
15522}
15523
15524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15525pub struct UsingOnClause {
15526    pub(crate) syntax: SyntaxNode,
15527}
15528impl UsingOnClause {
15529    #[inline]
15530    pub fn from_item(&self) -> Option<FromItem> {
15531        support::child(&self.syntax)
15532    }
15533    #[inline]
15534    pub fn on_clause(&self) -> Option<OnClause> {
15535        support::child(&self.syntax)
15536    }
15537    #[inline]
15538    pub fn using_token(&self) -> Option<SyntaxToken> {
15539        support::token(&self.syntax, SyntaxKind::USING_KW)
15540    }
15541}
15542
15543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15544pub struct Vacuum {
15545    pub(crate) syntax: SyntaxNode,
15546}
15547impl Vacuum {
15548    #[inline]
15549    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15550        support::child(&self.syntax)
15551    }
15552    #[inline]
15553    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15554        support::child(&self.syntax)
15555    }
15556    #[inline]
15557    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15558        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15559    }
15560    #[inline]
15561    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15562        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15563    }
15564    #[inline]
15565    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15566        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15567    }
15568    #[inline]
15569    pub fn full_token(&self) -> Option<SyntaxToken> {
15570        support::token(&self.syntax, SyntaxKind::FULL_KW)
15571    }
15572    #[inline]
15573    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15574        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15575    }
15576    #[inline]
15577    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15578        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15579    }
15580}
15581
15582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15583pub struct VacuumOption {
15584    pub(crate) syntax: SyntaxNode,
15585}
15586impl VacuumOption {
15587    #[inline]
15588    pub fn literal(&self) -> Option<Literal> {
15589        support::child(&self.syntax)
15590    }
15591}
15592
15593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15594pub struct VacuumOptionList {
15595    pub(crate) syntax: SyntaxNode,
15596}
15597impl VacuumOptionList {
15598    #[inline]
15599    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15600        support::children(&self.syntax)
15601    }
15602    #[inline]
15603    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15604        support::token(&self.syntax, SyntaxKind::L_PAREN)
15605    }
15606    #[inline]
15607    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15608        support::token(&self.syntax, SyntaxKind::R_PAREN)
15609    }
15610}
15611
15612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15613pub struct ValidateConstraint {
15614    pub(crate) syntax: SyntaxNode,
15615}
15616impl ValidateConstraint {
15617    #[inline]
15618    pub fn name_ref(&self) -> Option<NameRef> {
15619        support::child(&self.syntax)
15620    }
15621    #[inline]
15622    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15623        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15624    }
15625    #[inline]
15626    pub fn validate_token(&self) -> Option<SyntaxToken> {
15627        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15628    }
15629}
15630
15631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15632pub struct Values {
15633    pub(crate) syntax: SyntaxNode,
15634}
15635impl Values {
15636    #[inline]
15637    pub fn row_list(&self) -> Option<RowList> {
15638        support::child(&self.syntax)
15639    }
15640    #[inline]
15641    pub fn with_clause(&self) -> Option<WithClause> {
15642        support::child(&self.syntax)
15643    }
15644    #[inline]
15645    pub fn values_token(&self) -> Option<SyntaxToken> {
15646        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15647    }
15648}
15649
15650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15651pub struct Variant {
15652    pub(crate) syntax: SyntaxNode,
15653}
15654impl Variant {
15655    #[inline]
15656    pub fn literal(&self) -> Option<Literal> {
15657        support::child(&self.syntax)
15658    }
15659}
15660
15661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15662pub struct VariantList {
15663    pub(crate) syntax: SyntaxNode,
15664}
15665impl VariantList {
15666    #[inline]
15667    pub fn variants(&self) -> AstChildren<Variant> {
15668        support::children(&self.syntax)
15669    }
15670    #[inline]
15671    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15672        support::token(&self.syntax, SyntaxKind::L_PAREN)
15673    }
15674    #[inline]
15675    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15676        support::token(&self.syntax, SyntaxKind::R_PAREN)
15677    }
15678}
15679
15680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15681pub struct VolatilityFuncOption {
15682    pub(crate) syntax: SyntaxNode,
15683}
15684impl VolatilityFuncOption {
15685    #[inline]
15686    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15687        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15688    }
15689    #[inline]
15690    pub fn stable_token(&self) -> Option<SyntaxToken> {
15691        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15692    }
15693    #[inline]
15694    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15695        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15696    }
15697}
15698
15699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15700pub struct WhenClause {
15701    pub(crate) syntax: SyntaxNode,
15702}
15703impl WhenClause {
15704    #[inline]
15705    pub fn then_token(&self) -> Option<SyntaxToken> {
15706        support::token(&self.syntax, SyntaxKind::THEN_KW)
15707    }
15708    #[inline]
15709    pub fn when_token(&self) -> Option<SyntaxToken> {
15710        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15711    }
15712}
15713
15714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15715pub struct WhenClauseList {
15716    pub(crate) syntax: SyntaxNode,
15717}
15718impl WhenClauseList {
15719    #[inline]
15720    pub fn when_clause(&self) -> Option<WhenClause> {
15721        support::child(&self.syntax)
15722    }
15723    #[inline]
15724    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15725        support::children(&self.syntax)
15726    }
15727}
15728
15729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15730pub struct WhenCondition {
15731    pub(crate) syntax: SyntaxNode,
15732}
15733impl WhenCondition {
15734    #[inline]
15735    pub fn expr(&self) -> Option<Expr> {
15736        support::child(&self.syntax)
15737    }
15738    #[inline]
15739    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15740        support::token(&self.syntax, SyntaxKind::L_PAREN)
15741    }
15742    #[inline]
15743    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15744        support::token(&self.syntax, SyntaxKind::R_PAREN)
15745    }
15746    #[inline]
15747    pub fn when_token(&self) -> Option<SyntaxToken> {
15748        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15749    }
15750}
15751
15752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15753pub struct WhereClause {
15754    pub(crate) syntax: SyntaxNode,
15755}
15756impl WhereClause {
15757    #[inline]
15758    pub fn expr(&self) -> Option<Expr> {
15759        support::child(&self.syntax)
15760    }
15761    #[inline]
15762    pub fn where_token(&self) -> Option<SyntaxToken> {
15763        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15764    }
15765}
15766
15767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15768pub struct WhereConditionClause {
15769    pub(crate) syntax: SyntaxNode,
15770}
15771impl WhereConditionClause {
15772    #[inline]
15773    pub fn expr(&self) -> Option<Expr> {
15774        support::child(&self.syntax)
15775    }
15776    #[inline]
15777    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15778        support::token(&self.syntax, SyntaxKind::L_PAREN)
15779    }
15780    #[inline]
15781    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15782        support::token(&self.syntax, SyntaxKind::R_PAREN)
15783    }
15784    #[inline]
15785    pub fn where_token(&self) -> Option<SyntaxToken> {
15786        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15787    }
15788}
15789
15790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15791pub struct WhereCurrentOf {
15792    pub(crate) syntax: SyntaxNode,
15793}
15794impl WhereCurrentOf {
15795    #[inline]
15796    pub fn name_ref(&self) -> Option<NameRef> {
15797        support::child(&self.syntax)
15798    }
15799    #[inline]
15800    pub fn current_token(&self) -> Option<SyntaxToken> {
15801        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15802    }
15803    #[inline]
15804    pub fn of_token(&self) -> Option<SyntaxToken> {
15805        support::token(&self.syntax, SyntaxKind::OF_KW)
15806    }
15807    #[inline]
15808    pub fn where_token(&self) -> Option<SyntaxToken> {
15809        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15810    }
15811}
15812
15813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15814pub struct WindowClause {
15815    pub(crate) syntax: SyntaxNode,
15816}
15817impl WindowClause {
15818    #[inline]
15819    pub fn window_defs(&self) -> AstChildren<WindowDef> {
15820        support::children(&self.syntax)
15821    }
15822    #[inline]
15823    pub fn window_token(&self) -> Option<SyntaxToken> {
15824        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15825    }
15826}
15827
15828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15829pub struct WindowDef {
15830    pub(crate) syntax: SyntaxNode,
15831}
15832impl WindowDef {
15833    #[inline]
15834    pub fn name(&self) -> Option<Name> {
15835        support::child(&self.syntax)
15836    }
15837    #[inline]
15838    pub fn window_spec(&self) -> Option<WindowSpec> {
15839        support::child(&self.syntax)
15840    }
15841    #[inline]
15842    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15843        support::token(&self.syntax, SyntaxKind::L_PAREN)
15844    }
15845    #[inline]
15846    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15847        support::token(&self.syntax, SyntaxKind::R_PAREN)
15848    }
15849    #[inline]
15850    pub fn as_token(&self) -> Option<SyntaxToken> {
15851        support::token(&self.syntax, SyntaxKind::AS_KW)
15852    }
15853}
15854
15855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15856pub struct WindowFuncOption {
15857    pub(crate) syntax: SyntaxNode,
15858}
15859impl WindowFuncOption {
15860    #[inline]
15861    pub fn window_token(&self) -> Option<SyntaxToken> {
15862        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15863    }
15864}
15865
15866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15867pub struct WindowSpec {
15868    pub(crate) syntax: SyntaxNode,
15869}
15870impl WindowSpec {
15871    #[inline]
15872    pub fn exprs(&self) -> AstChildren<Expr> {
15873        support::children(&self.syntax)
15874    }
15875    #[inline]
15876    pub fn frame_clause(&self) -> Option<FrameClause> {
15877        support::child(&self.syntax)
15878    }
15879    #[inline]
15880    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15881        support::child(&self.syntax)
15882    }
15883    #[inline]
15884    pub fn by_token(&self) -> Option<SyntaxToken> {
15885        support::token(&self.syntax, SyntaxKind::BY_KW)
15886    }
15887    #[inline]
15888    pub fn ident_token(&self) -> Option<SyntaxToken> {
15889        support::token(&self.syntax, SyntaxKind::IDENT)
15890    }
15891    #[inline]
15892    pub fn partition_token(&self) -> Option<SyntaxToken> {
15893        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15894    }
15895}
15896
15897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15898pub struct WithClause {
15899    pub(crate) syntax: SyntaxNode,
15900}
15901impl WithClause {
15902    #[inline]
15903    pub fn with_tables(&self) -> AstChildren<WithTable> {
15904        support::children(&self.syntax)
15905    }
15906    #[inline]
15907    pub fn recursive_token(&self) -> Option<SyntaxToken> {
15908        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
15909    }
15910    #[inline]
15911    pub fn with_token(&self) -> Option<SyntaxToken> {
15912        support::token(&self.syntax, SyntaxKind::WITH_KW)
15913    }
15914}
15915
15916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15917pub struct WithData {
15918    pub(crate) syntax: SyntaxNode,
15919}
15920impl WithData {
15921    #[inline]
15922    pub fn data_token(&self) -> Option<SyntaxToken> {
15923        support::token(&self.syntax, SyntaxKind::DATA_KW)
15924    }
15925    #[inline]
15926    pub fn with_token(&self) -> Option<SyntaxToken> {
15927        support::token(&self.syntax, SyntaxKind::WITH_KW)
15928    }
15929}
15930
15931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15932pub struct WithNoData {
15933    pub(crate) syntax: SyntaxNode,
15934}
15935impl WithNoData {
15936    #[inline]
15937    pub fn data_token(&self) -> Option<SyntaxToken> {
15938        support::token(&self.syntax, SyntaxKind::DATA_KW)
15939    }
15940    #[inline]
15941    pub fn no_token(&self) -> Option<SyntaxToken> {
15942        support::token(&self.syntax, SyntaxKind::NO_KW)
15943    }
15944    #[inline]
15945    pub fn with_token(&self) -> Option<SyntaxToken> {
15946        support::token(&self.syntax, SyntaxKind::WITH_KW)
15947    }
15948}
15949
15950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15951pub struct WithOptions {
15952    pub(crate) syntax: SyntaxNode,
15953}
15954impl WithOptions {
15955    #[inline]
15956    pub fn options_token(&self) -> Option<SyntaxToken> {
15957        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15958    }
15959    #[inline]
15960    pub fn with_token(&self) -> Option<SyntaxToken> {
15961        support::token(&self.syntax, SyntaxKind::WITH_KW)
15962    }
15963}
15964
15965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15966pub struct WithParams {
15967    pub(crate) syntax: SyntaxNode,
15968}
15969impl WithParams {
15970    #[inline]
15971    pub fn attribute_list(&self) -> Option<AttributeList> {
15972        support::child(&self.syntax)
15973    }
15974    #[inline]
15975    pub fn with_token(&self) -> Option<SyntaxToken> {
15976        support::token(&self.syntax, SyntaxKind::WITH_KW)
15977    }
15978}
15979
15980#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15981pub struct WithTable {
15982    pub(crate) syntax: SyntaxNode,
15983}
15984impl WithTable {
15985    #[inline]
15986    pub fn column_list(&self) -> Option<ColumnList> {
15987        support::child(&self.syntax)
15988    }
15989    #[inline]
15990    pub fn materialized(&self) -> Option<Materialized> {
15991        support::child(&self.syntax)
15992    }
15993    #[inline]
15994    pub fn name(&self) -> Option<Name> {
15995        support::child(&self.syntax)
15996    }
15997    #[inline]
15998    pub fn not_materialized(&self) -> Option<NotMaterialized> {
15999        support::child(&self.syntax)
16000    }
16001    #[inline]
16002    pub fn query(&self) -> Option<WithQuery> {
16003        support::child(&self.syntax)
16004    }
16005    #[inline]
16006    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16007        support::token(&self.syntax, SyntaxKind::L_PAREN)
16008    }
16009    #[inline]
16010    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16011        support::token(&self.syntax, SyntaxKind::R_PAREN)
16012    }
16013    #[inline]
16014    pub fn as_token(&self) -> Option<SyntaxToken> {
16015        support::token(&self.syntax, SyntaxKind::AS_KW)
16016    }
16017}
16018
16019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16020pub struct WithTimezone {
16021    pub(crate) syntax: SyntaxNode,
16022}
16023impl WithTimezone {
16024    #[inline]
16025    pub fn time_token(&self) -> Option<SyntaxToken> {
16026        support::token(&self.syntax, SyntaxKind::TIME_KW)
16027    }
16028    #[inline]
16029    pub fn with_token(&self) -> Option<SyntaxToken> {
16030        support::token(&self.syntax, SyntaxKind::WITH_KW)
16031    }
16032    #[inline]
16033    pub fn zone_token(&self) -> Option<SyntaxToken> {
16034        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16035    }
16036}
16037
16038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16039pub struct WithinClause {
16040    pub(crate) syntax: SyntaxNode,
16041}
16042impl WithinClause {
16043    #[inline]
16044    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16045        support::child(&self.syntax)
16046    }
16047    #[inline]
16048    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16049        support::token(&self.syntax, SyntaxKind::L_PAREN)
16050    }
16051    #[inline]
16052    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16053        support::token(&self.syntax, SyntaxKind::R_PAREN)
16054    }
16055    #[inline]
16056    pub fn group_token(&self) -> Option<SyntaxToken> {
16057        support::token(&self.syntax, SyntaxKind::GROUP_KW)
16058    }
16059    #[inline]
16060    pub fn within_token(&self) -> Option<SyntaxToken> {
16061        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
16062    }
16063}
16064
16065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16066pub struct WithoutOids {
16067    pub(crate) syntax: SyntaxNode,
16068}
16069impl WithoutOids {
16070    #[inline]
16071    pub fn oids_token(&self) -> Option<SyntaxToken> {
16072        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16073    }
16074    #[inline]
16075    pub fn without_token(&self) -> Option<SyntaxToken> {
16076        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16077    }
16078}
16079
16080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16081pub struct WithoutTimezone {
16082    pub(crate) syntax: SyntaxNode,
16083}
16084impl WithoutTimezone {
16085    #[inline]
16086    pub fn time_token(&self) -> Option<SyntaxToken> {
16087        support::token(&self.syntax, SyntaxKind::TIME_KW)
16088    }
16089    #[inline]
16090    pub fn without_token(&self) -> Option<SyntaxToken> {
16091        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16092    }
16093    #[inline]
16094    pub fn zone_token(&self) -> Option<SyntaxToken> {
16095        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16096    }
16097}
16098
16099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16100pub struct XmlAttributeList {
16101    pub(crate) syntax: SyntaxNode,
16102}
16103impl XmlAttributeList {
16104    #[inline]
16105    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16106        support::children(&self.syntax)
16107    }
16108}
16109
16110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16111pub struct XmlColumnOption {
16112    pub(crate) syntax: SyntaxNode,
16113}
16114impl XmlColumnOption {
16115    #[inline]
16116    pub fn expr(&self) -> Option<Expr> {
16117        support::child(&self.syntax)
16118    }
16119    #[inline]
16120    pub fn default_token(&self) -> Option<SyntaxToken> {
16121        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16122    }
16123    #[inline]
16124    pub fn ident_token(&self) -> Option<SyntaxToken> {
16125        support::token(&self.syntax, SyntaxKind::IDENT)
16126    }
16127    #[inline]
16128    pub fn not_token(&self) -> Option<SyntaxToken> {
16129        support::token(&self.syntax, SyntaxKind::NOT_KW)
16130    }
16131    #[inline]
16132    pub fn null_token(&self) -> Option<SyntaxToken> {
16133        support::token(&self.syntax, SyntaxKind::NULL_KW)
16134    }
16135    #[inline]
16136    pub fn path_token(&self) -> Option<SyntaxToken> {
16137        support::token(&self.syntax, SyntaxKind::PATH_KW)
16138    }
16139}
16140
16141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16142pub struct XmlColumnOptionList {
16143    pub(crate) syntax: SyntaxNode,
16144}
16145impl XmlColumnOptionList {
16146    #[inline]
16147    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16148        support::child(&self.syntax)
16149    }
16150    #[inline]
16151    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16152        support::children(&self.syntax)
16153    }
16154}
16155
16156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16157pub struct XmlElementFn {
16158    pub(crate) syntax: SyntaxNode,
16159}
16160impl XmlElementFn {
16161    #[inline]
16162    pub fn exprs(&self) -> AstChildren<Expr> {
16163        support::children(&self.syntax)
16164    }
16165    #[inline]
16166    pub fn name(&self) -> Option<Name> {
16167        support::child(&self.syntax)
16168    }
16169    #[inline]
16170    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16171        support::child(&self.syntax)
16172    }
16173    #[inline]
16174    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16175        support::token(&self.syntax, SyntaxKind::L_PAREN)
16176    }
16177    #[inline]
16178    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16179        support::token(&self.syntax, SyntaxKind::R_PAREN)
16180    }
16181    #[inline]
16182    pub fn comma_token(&self) -> Option<SyntaxToken> {
16183        support::token(&self.syntax, SyntaxKind::COMMA)
16184    }
16185    #[inline]
16186    pub fn name_token(&self) -> Option<SyntaxToken> {
16187        support::token(&self.syntax, SyntaxKind::NAME_KW)
16188    }
16189    #[inline]
16190    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16191        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16192    }
16193    #[inline]
16194    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16195        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16196    }
16197}
16198
16199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16200pub struct XmlExistsFn {
16201    pub(crate) syntax: SyntaxNode,
16202}
16203impl XmlExistsFn {
16204    #[inline]
16205    pub fn expr(&self) -> Option<Expr> {
16206        support::child(&self.syntax)
16207    }
16208    #[inline]
16209    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16210        support::child(&self.syntax)
16211    }
16212    #[inline]
16213    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16214        support::token(&self.syntax, SyntaxKind::L_PAREN)
16215    }
16216    #[inline]
16217    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16218        support::token(&self.syntax, SyntaxKind::R_PAREN)
16219    }
16220    #[inline]
16221    pub fn passing_token(&self) -> Option<SyntaxToken> {
16222        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16223    }
16224    #[inline]
16225    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16226        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16227    }
16228}
16229
16230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16231pub struct XmlForestFn {
16232    pub(crate) syntax: SyntaxNode,
16233}
16234impl XmlForestFn {
16235    #[inline]
16236    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16237        support::child(&self.syntax)
16238    }
16239    #[inline]
16240    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16241        support::token(&self.syntax, SyntaxKind::L_PAREN)
16242    }
16243    #[inline]
16244    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16245        support::token(&self.syntax, SyntaxKind::R_PAREN)
16246    }
16247    #[inline]
16248    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16249        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16250    }
16251}
16252
16253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16254pub struct XmlNamespace {
16255    pub(crate) syntax: SyntaxNode,
16256}
16257impl XmlNamespace {
16258    #[inline]
16259    pub fn expr(&self) -> Option<Expr> {
16260        support::child(&self.syntax)
16261    }
16262    #[inline]
16263    pub fn name(&self) -> Option<Name> {
16264        support::child(&self.syntax)
16265    }
16266    #[inline]
16267    pub fn as_token(&self) -> Option<SyntaxToken> {
16268        support::token(&self.syntax, SyntaxKind::AS_KW)
16269    }
16270    #[inline]
16271    pub fn default_token(&self) -> Option<SyntaxToken> {
16272        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16273    }
16274}
16275
16276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16277pub struct XmlNamespaceList {
16278    pub(crate) syntax: SyntaxNode,
16279}
16280impl XmlNamespaceList {
16281    #[inline]
16282    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16283        support::children(&self.syntax)
16284    }
16285    #[inline]
16286    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16287        support::token(&self.syntax, SyntaxKind::L_PAREN)
16288    }
16289    #[inline]
16290    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16291        support::token(&self.syntax, SyntaxKind::R_PAREN)
16292    }
16293}
16294
16295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16296pub struct XmlParseFn {
16297    pub(crate) syntax: SyntaxNode,
16298}
16299impl XmlParseFn {
16300    #[inline]
16301    pub fn expr(&self) -> Option<Expr> {
16302        support::child(&self.syntax)
16303    }
16304    #[inline]
16305    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16306        support::token(&self.syntax, SyntaxKind::L_PAREN)
16307    }
16308    #[inline]
16309    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16310        support::token(&self.syntax, SyntaxKind::R_PAREN)
16311    }
16312    #[inline]
16313    pub fn content_token(&self) -> Option<SyntaxToken> {
16314        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16315    }
16316    #[inline]
16317    pub fn document_token(&self) -> Option<SyntaxToken> {
16318        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16319    }
16320    #[inline]
16321    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16322        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16323    }
16324    #[inline]
16325    pub fn strip_token(&self) -> Option<SyntaxToken> {
16326        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16327    }
16328    #[inline]
16329    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16330        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16331    }
16332    #[inline]
16333    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16334        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16335    }
16336}
16337
16338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16339pub struct XmlPassingMech {
16340    pub(crate) syntax: SyntaxNode,
16341}
16342impl XmlPassingMech {
16343    #[inline]
16344    pub fn by_token(&self) -> Option<SyntaxToken> {
16345        support::token(&self.syntax, SyntaxKind::BY_KW)
16346    }
16347    #[inline]
16348    pub fn ref_token(&self) -> Option<SyntaxToken> {
16349        support::token(&self.syntax, SyntaxKind::REF_KW)
16350    }
16351    #[inline]
16352    pub fn value_token(&self) -> Option<SyntaxToken> {
16353        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16354    }
16355}
16356
16357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16358pub struct XmlPiFn {
16359    pub(crate) syntax: SyntaxNode,
16360}
16361impl XmlPiFn {
16362    #[inline]
16363    pub fn expr(&self) -> Option<Expr> {
16364        support::child(&self.syntax)
16365    }
16366    #[inline]
16367    pub fn name(&self) -> Option<Name> {
16368        support::child(&self.syntax)
16369    }
16370    #[inline]
16371    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16372        support::token(&self.syntax, SyntaxKind::L_PAREN)
16373    }
16374    #[inline]
16375    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16376        support::token(&self.syntax, SyntaxKind::R_PAREN)
16377    }
16378    #[inline]
16379    pub fn comma_token(&self) -> Option<SyntaxToken> {
16380        support::token(&self.syntax, SyntaxKind::COMMA)
16381    }
16382    #[inline]
16383    pub fn name_token(&self) -> Option<SyntaxToken> {
16384        support::token(&self.syntax, SyntaxKind::NAME_KW)
16385    }
16386    #[inline]
16387    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16388        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16389    }
16390}
16391
16392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16393pub struct XmlRootFn {
16394    pub(crate) syntax: SyntaxNode,
16395}
16396impl XmlRootFn {
16397    #[inline]
16398    pub fn expr(&self) -> Option<Expr> {
16399        support::child(&self.syntax)
16400    }
16401    #[inline]
16402    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16403        support::token(&self.syntax, SyntaxKind::L_PAREN)
16404    }
16405    #[inline]
16406    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16407        support::token(&self.syntax, SyntaxKind::R_PAREN)
16408    }
16409    #[inline]
16410    pub fn comma_token(&self) -> Option<SyntaxToken> {
16411        support::token(&self.syntax, SyntaxKind::COMMA)
16412    }
16413    #[inline]
16414    pub fn no_token(&self) -> Option<SyntaxToken> {
16415        support::token(&self.syntax, SyntaxKind::NO_KW)
16416    }
16417    #[inline]
16418    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16419        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16420    }
16421    #[inline]
16422    pub fn value_token(&self) -> Option<SyntaxToken> {
16423        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16424    }
16425    #[inline]
16426    pub fn version_token(&self) -> Option<SyntaxToken> {
16427        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16428    }
16429    #[inline]
16430    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16431        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16432    }
16433    #[inline]
16434    pub fn yes_token(&self) -> Option<SyntaxToken> {
16435        support::token(&self.syntax, SyntaxKind::YES_KW)
16436    }
16437}
16438
16439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16440pub struct XmlRowPassingClause {
16441    pub(crate) syntax: SyntaxNode,
16442}
16443impl XmlRowPassingClause {
16444    #[inline]
16445    pub fn expr(&self) -> Option<Expr> {
16446        support::child(&self.syntax)
16447    }
16448    #[inline]
16449    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16450        support::child(&self.syntax)
16451    }
16452    #[inline]
16453    pub fn passing_token(&self) -> Option<SyntaxToken> {
16454        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16455    }
16456}
16457
16458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16459pub struct XmlSerializeFn {
16460    pub(crate) syntax: SyntaxNode,
16461}
16462impl XmlSerializeFn {
16463    #[inline]
16464    pub fn expr(&self) -> Option<Expr> {
16465        support::child(&self.syntax)
16466    }
16467    #[inline]
16468    pub fn ty(&self) -> Option<Type> {
16469        support::child(&self.syntax)
16470    }
16471    #[inline]
16472    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16473        support::token(&self.syntax, SyntaxKind::L_PAREN)
16474    }
16475    #[inline]
16476    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16477        support::token(&self.syntax, SyntaxKind::R_PAREN)
16478    }
16479    #[inline]
16480    pub fn as_token(&self) -> Option<SyntaxToken> {
16481        support::token(&self.syntax, SyntaxKind::AS_KW)
16482    }
16483    #[inline]
16484    pub fn content_token(&self) -> Option<SyntaxToken> {
16485        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16486    }
16487    #[inline]
16488    pub fn document_token(&self) -> Option<SyntaxToken> {
16489        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16490    }
16491    #[inline]
16492    pub fn ident_token(&self) -> Option<SyntaxToken> {
16493        support::token(&self.syntax, SyntaxKind::IDENT)
16494    }
16495    #[inline]
16496    pub fn no_token(&self) -> Option<SyntaxToken> {
16497        support::token(&self.syntax, SyntaxKind::NO_KW)
16498    }
16499    #[inline]
16500    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16501        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16502    }
16503}
16504
16505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16506pub struct XmlTable {
16507    pub(crate) syntax: SyntaxNode,
16508}
16509impl XmlTable {
16510    #[inline]
16511    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16512        support::child(&self.syntax)
16513    }
16514    #[inline]
16515    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16516        support::child(&self.syntax)
16517    }
16518    #[inline]
16519    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16520        support::child(&self.syntax)
16521    }
16522    #[inline]
16523    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16524        support::token(&self.syntax, SyntaxKind::L_PAREN)
16525    }
16526    #[inline]
16527    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16528        support::token(&self.syntax, SyntaxKind::R_PAREN)
16529    }
16530    #[inline]
16531    pub fn comma_token(&self) -> Option<SyntaxToken> {
16532        support::token(&self.syntax, SyntaxKind::COMMA)
16533    }
16534    #[inline]
16535    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16536        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16537    }
16538    #[inline]
16539    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16540        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16541    }
16542}
16543
16544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16545pub struct XmlTableColumn {
16546    pub(crate) syntax: SyntaxNode,
16547}
16548impl XmlTableColumn {
16549    #[inline]
16550    pub fn name(&self) -> Option<Name> {
16551        support::child(&self.syntax)
16552    }
16553    #[inline]
16554    pub fn ty(&self) -> Option<Type> {
16555        support::child(&self.syntax)
16556    }
16557    #[inline]
16558    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16559        support::child(&self.syntax)
16560    }
16561    #[inline]
16562    pub fn for_token(&self) -> Option<SyntaxToken> {
16563        support::token(&self.syntax, SyntaxKind::FOR_KW)
16564    }
16565    #[inline]
16566    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16567        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16568    }
16569}
16570
16571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16572pub struct XmlTableColumnList {
16573    pub(crate) syntax: SyntaxNode,
16574}
16575impl XmlTableColumnList {
16576    #[inline]
16577    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16578        support::children(&self.syntax)
16579    }
16580}
16581
16582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16583pub enum AlterColumnOption {
16584    AddGenerated(AddGenerated),
16585    DropDefault(DropDefault),
16586    DropExpression(DropExpression),
16587    DropIdentity(DropIdentity),
16588    DropNotNull(DropNotNull),
16589    Inherit(Inherit),
16590    NoInherit(NoInherit),
16591    ResetOptions(ResetOptions),
16592    Restart(Restart),
16593    SetCompression(SetCompression),
16594    SetDefault(SetDefault),
16595    SetExpression(SetExpression),
16596    SetGenerated(SetGenerated),
16597    SetGeneratedOptions(SetGeneratedOptions),
16598    SetNotNull(SetNotNull),
16599    SetOptions(SetOptions),
16600    SetOptionsList(SetOptionsList),
16601    SetSequenceOption(SetSequenceOption),
16602    SetStatistics(SetStatistics),
16603    SetStorage(SetStorage),
16604    SetType(SetType),
16605}
16606
16607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16608pub enum AlterDomainAction {
16609    AddConstraint(AddConstraint),
16610    DropConstraint(DropConstraint),
16611    DropDefault(DropDefault),
16612    DropNotNull(DropNotNull),
16613    OwnerTo(OwnerTo),
16614    RenameConstraint(RenameConstraint),
16615    RenameTo(RenameTo),
16616    SetDefault(SetDefault),
16617    SetNotNull(SetNotNull),
16618    SetSchema(SetSchema),
16619    ValidateConstraint(ValidateConstraint),
16620}
16621
16622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16623pub enum AlterIndexAction {
16624    AlterSetStatistics(AlterSetStatistics),
16625    AttachPartition(AttachPartition),
16626    DependsOnExtension(DependsOnExtension),
16627    NoDependsOnExtension(NoDependsOnExtension),
16628    RenameTo(RenameTo),
16629    ResetOptions(ResetOptions),
16630    SetOptions(SetOptions),
16631    SetTablespace(SetTablespace),
16632}
16633
16634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16635pub enum AlterMaterializedViewAction {
16636    DependsOnExtension(DependsOnExtension),
16637    NoDependsOnExtension(NoDependsOnExtension),
16638    RenameColumn(RenameColumn),
16639    RenameTo(RenameTo),
16640    SetSchema(SetSchema),
16641    AlterTableAction(AlterTableAction),
16642}
16643
16644#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16645pub enum AlterTableAction {
16646    AddColumn(AddColumn),
16647    AddConstraint(AddConstraint),
16648    AlterColumn(AlterColumn),
16649    AlterConstraint(AlterConstraint),
16650    AttachPartition(AttachPartition),
16651    ClusterOn(ClusterOn),
16652    DetachPartition(DetachPartition),
16653    DisableRls(DisableRls),
16654    DisableRule(DisableRule),
16655    DisableTrigger(DisableTrigger),
16656    DropColumn(DropColumn),
16657    DropConstraint(DropConstraint),
16658    EnableAlwaysRule(EnableAlwaysRule),
16659    EnableAlwaysTrigger(EnableAlwaysTrigger),
16660    EnableReplicaRule(EnableReplicaRule),
16661    EnableReplicaTrigger(EnableReplicaTrigger),
16662    EnableRls(EnableRls),
16663    EnableRule(EnableRule),
16664    EnableTrigger(EnableTrigger),
16665    ForceRls(ForceRls),
16666    InheritTable(InheritTable),
16667    MergePartitions(MergePartitions),
16668    NoForceRls(NoForceRls),
16669    NoInheritTable(NoInheritTable),
16670    NotOf(NotOf),
16671    OfType(OfType),
16672    OptionItemList(OptionItemList),
16673    OwnerTo(OwnerTo),
16674    RenameColumn(RenameColumn),
16675    RenameConstraint(RenameConstraint),
16676    RenameTo(RenameTo),
16677    ReplicaIdentity(ReplicaIdentity),
16678    ResetOptions(ResetOptions),
16679    SetAccessMethod(SetAccessMethod),
16680    SetLogged(SetLogged),
16681    SetOptions(SetOptions),
16682    SetSchema(SetSchema),
16683    SetTablespace(SetTablespace),
16684    SetUnlogged(SetUnlogged),
16685    SetWithoutCluster(SetWithoutCluster),
16686    SetWithoutOids(SetWithoutOids),
16687    SplitPartition(SplitPartition),
16688    ValidateConstraint(ValidateConstraint),
16689}
16690
16691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16692pub enum ColumnConstraint {
16693    CheckConstraint(CheckConstraint),
16694    DefaultConstraint(DefaultConstraint),
16695    ExcludeConstraint(ExcludeConstraint),
16696    NotNullConstraint(NotNullConstraint),
16697    PrimaryKeyConstraint(PrimaryKeyConstraint),
16698    ReferencesConstraint(ReferencesConstraint),
16699    UniqueConstraint(UniqueConstraint),
16700}
16701
16702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16703pub enum ConfigValue {
16704    Literal(Literal),
16705    NameRef(NameRef),
16706}
16707
16708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16709pub enum ConflictAction {
16710    ConflictDoNothing(ConflictDoNothing),
16711    ConflictDoUpdateSet(ConflictDoUpdateSet),
16712}
16713
16714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16715pub enum ConflictTarget {
16716    ConflictOnConstraint(ConflictOnConstraint),
16717    ConflictOnIndex(ConflictOnIndex),
16718}
16719
16720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16721pub enum Constraint {
16722    CheckConstraint(CheckConstraint),
16723    DefaultConstraint(DefaultConstraint),
16724    ForeignKeyConstraint(ForeignKeyConstraint),
16725    GeneratedConstraint(GeneratedConstraint),
16726    NotNullConstraint(NotNullConstraint),
16727    NullConstraint(NullConstraint),
16728    PrimaryKeyConstraint(PrimaryKeyConstraint),
16729    ReferencesConstraint(ReferencesConstraint),
16730    UniqueConstraint(UniqueConstraint),
16731}
16732
16733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16734pub enum ExplainStmt {
16735    CompoundSelect(CompoundSelect),
16736    CreateMaterializedView(CreateMaterializedView),
16737    CreateTableAs(CreateTableAs),
16738    Declare(Declare),
16739    Delete(Delete),
16740    Execute(Execute),
16741    Insert(Insert),
16742    Merge(Merge),
16743    ParenSelect(ParenSelect),
16744    Select(Select),
16745    SelectInto(SelectInto),
16746    Table(Table),
16747    Update(Update),
16748    Values(Values),
16749}
16750
16751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16752pub enum Expr {
16753    ArrayExpr(ArrayExpr),
16754    BetweenExpr(BetweenExpr),
16755    BinExpr(BinExpr),
16756    CallExpr(CallExpr),
16757    CaseExpr(CaseExpr),
16758    CastExpr(CastExpr),
16759    FieldExpr(FieldExpr),
16760    IndexExpr(IndexExpr),
16761    Literal(Literal),
16762    NameRef(NameRef),
16763    ParenExpr(ParenExpr),
16764    PostfixExpr(PostfixExpr),
16765    PrefixExpr(PrefixExpr),
16766    SliceExpr(SliceExpr),
16767    TupleExpr(TupleExpr),
16768}
16769
16770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16771pub enum FuncOption {
16772    AsFuncOption(AsFuncOption),
16773    BeginFuncOptionList(BeginFuncOptionList),
16774    CostFuncOption(CostFuncOption),
16775    LanguageFuncOption(LanguageFuncOption),
16776    LeakproofFuncOption(LeakproofFuncOption),
16777    ParallelFuncOption(ParallelFuncOption),
16778    ResetFuncOption(ResetFuncOption),
16779    ReturnFuncOption(ReturnFuncOption),
16780    RowsFuncOption(RowsFuncOption),
16781    SecurityFuncOption(SecurityFuncOption),
16782    SetFuncOption(SetFuncOption),
16783    StrictFuncOption(StrictFuncOption),
16784    SupportFuncOption(SupportFuncOption),
16785    TransformFuncOption(TransformFuncOption),
16786    VolatilityFuncOption(VolatilityFuncOption),
16787    WindowFuncOption(WindowFuncOption),
16788}
16789
16790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16791pub enum GroupBy {
16792    GroupingCube(GroupingCube),
16793    GroupingExpr(GroupingExpr),
16794    GroupingRollup(GroupingRollup),
16795    GroupingSets(GroupingSets),
16796}
16797
16798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16799pub enum JoinType {
16800    JoinCross(JoinCross),
16801    JoinFull(JoinFull),
16802    JoinInner(JoinInner),
16803    JoinLeft(JoinLeft),
16804    JoinRight(JoinRight),
16805}
16806
16807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16808pub enum JsonBehavior {
16809    JsonBehaviorDefault(JsonBehaviorDefault),
16810    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
16811    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
16812    JsonBehaviorError(JsonBehaviorError),
16813    JsonBehaviorFalse(JsonBehaviorFalse),
16814    JsonBehaviorNull(JsonBehaviorNull),
16815    JsonBehaviorTrue(JsonBehaviorTrue),
16816    JsonBehaviorUnknown(JsonBehaviorUnknown),
16817}
16818
16819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16820pub enum MatchType {
16821    MatchFull(MatchFull),
16822    MatchPartial(MatchPartial),
16823    MatchSimple(MatchSimple),
16824}
16825
16826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16827pub enum MergeAction {
16828    MergeDelete(MergeDelete),
16829    MergeDoNothing(MergeDoNothing),
16830    MergeInsert(MergeInsert),
16831    MergeUpdate(MergeUpdate),
16832}
16833
16834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16835pub enum MergeWhenClause {
16836    MergeWhenMatched(MergeWhenMatched),
16837    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
16838    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
16839}
16840
16841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16842pub enum OnCommitAction {
16843    DeleteRows(DeleteRows),
16844    Drop(Drop),
16845    PreserveRows(PreserveRows),
16846}
16847
16848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16849pub enum ParamMode {
16850    ParamIn(ParamIn),
16851    ParamInOut(ParamInOut),
16852    ParamOut(ParamOut),
16853    ParamVariadic(ParamVariadic),
16854}
16855
16856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16857pub enum PartitionType {
16858    PartitionDefault(PartitionDefault),
16859    PartitionForValuesFrom(PartitionForValuesFrom),
16860    PartitionForValuesIn(PartitionForValuesIn),
16861    PartitionForValuesWith(PartitionForValuesWith),
16862}
16863
16864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16865pub enum PreparableStmt {
16866    CompoundSelect(CompoundSelect),
16867    Delete(Delete),
16868    Insert(Insert),
16869    Merge(Merge),
16870    Select(Select),
16871    SelectInto(SelectInto),
16872    Table(Table),
16873    Update(Update),
16874    Values(Values),
16875}
16876
16877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16878pub enum RefAction {
16879    Cascade(Cascade),
16880    NoAction(NoAction),
16881    Restrict(Restrict),
16882    SetDefaultColumns(SetDefaultColumns),
16883    SetNullColumns(SetNullColumns),
16884}
16885
16886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16887pub enum SchemaElement {
16888    CreateIndex(CreateIndex),
16889    CreateSequence(CreateSequence),
16890    CreateTable(CreateTable),
16891    CreateTrigger(CreateTrigger),
16892    CreateView(CreateView),
16893    Grant(Grant),
16894}
16895
16896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16897pub enum SelectVariant {
16898    CompoundSelect(CompoundSelect),
16899    ParenSelect(ParenSelect),
16900    Select(Select),
16901    SelectInto(SelectInto),
16902    Table(Table),
16903    Values(Values),
16904}
16905
16906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16907pub enum SetColumn {
16908    SetMultipleColumns(SetMultipleColumns),
16909    SetSingleColumn(SetSingleColumn),
16910}
16911
16912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16913pub enum Stmt {
16914    AlterAggregate(AlterAggregate),
16915    AlterCollation(AlterCollation),
16916    AlterConversion(AlterConversion),
16917    AlterDatabase(AlterDatabase),
16918    AlterDefaultPrivileges(AlterDefaultPrivileges),
16919    AlterDomain(AlterDomain),
16920    AlterEventTrigger(AlterEventTrigger),
16921    AlterExtension(AlterExtension),
16922    AlterForeignDataWrapper(AlterForeignDataWrapper),
16923    AlterForeignTable(AlterForeignTable),
16924    AlterFunction(AlterFunction),
16925    AlterGroup(AlterGroup),
16926    AlterIndex(AlterIndex),
16927    AlterLanguage(AlterLanguage),
16928    AlterLargeObject(AlterLargeObject),
16929    AlterMaterializedView(AlterMaterializedView),
16930    AlterOperator(AlterOperator),
16931    AlterOperatorClass(AlterOperatorClass),
16932    AlterOperatorFamily(AlterOperatorFamily),
16933    AlterPolicy(AlterPolicy),
16934    AlterProcedure(AlterProcedure),
16935    AlterPublication(AlterPublication),
16936    AlterRole(AlterRole),
16937    AlterRoutine(AlterRoutine),
16938    AlterRule(AlterRule),
16939    AlterSchema(AlterSchema),
16940    AlterSequence(AlterSequence),
16941    AlterServer(AlterServer),
16942    AlterStatistics(AlterStatistics),
16943    AlterSubscription(AlterSubscription),
16944    AlterSystem(AlterSystem),
16945    AlterTable(AlterTable),
16946    AlterTablespace(AlterTablespace),
16947    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
16948    AlterTextSearchDictionary(AlterTextSearchDictionary),
16949    AlterTextSearchParser(AlterTextSearchParser),
16950    AlterTextSearchTemplate(AlterTextSearchTemplate),
16951    AlterTrigger(AlterTrigger),
16952    AlterType(AlterType),
16953    AlterUser(AlterUser),
16954    AlterUserMapping(AlterUserMapping),
16955    AlterView(AlterView),
16956    Analyze(Analyze),
16957    Begin(Begin),
16958    Call(Call),
16959    Checkpoint(Checkpoint),
16960    Close(Close),
16961    Cluster(Cluster),
16962    CommentOn(CommentOn),
16963    Commit(Commit),
16964    Copy(Copy),
16965    CreateAccessMethod(CreateAccessMethod),
16966    CreateAggregate(CreateAggregate),
16967    CreateCast(CreateCast),
16968    CreateCollation(CreateCollation),
16969    CreateConversion(CreateConversion),
16970    CreateDatabase(CreateDatabase),
16971    CreateDomain(CreateDomain),
16972    CreateEventTrigger(CreateEventTrigger),
16973    CreateExtension(CreateExtension),
16974    CreateForeignDataWrapper(CreateForeignDataWrapper),
16975    CreateForeignTable(CreateForeignTable),
16976    CreateFunction(CreateFunction),
16977    CreateGroup(CreateGroup),
16978    CreateIndex(CreateIndex),
16979    CreateLanguage(CreateLanguage),
16980    CreateMaterializedView(CreateMaterializedView),
16981    CreateOperator(CreateOperator),
16982    CreateOperatorClass(CreateOperatorClass),
16983    CreateOperatorFamily(CreateOperatorFamily),
16984    CreatePolicy(CreatePolicy),
16985    CreateProcedure(CreateProcedure),
16986    CreatePublication(CreatePublication),
16987    CreateRole(CreateRole),
16988    CreateRule(CreateRule),
16989    CreateSchema(CreateSchema),
16990    CreateSequence(CreateSequence),
16991    CreateServer(CreateServer),
16992    CreateStatistics(CreateStatistics),
16993    CreateSubscription(CreateSubscription),
16994    CreateTable(CreateTable),
16995    CreateTableAs(CreateTableAs),
16996    CreateTablespace(CreateTablespace),
16997    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
16998    CreateTextSearchDictionary(CreateTextSearchDictionary),
16999    CreateTextSearchParser(CreateTextSearchParser),
17000    CreateTextSearchTemplate(CreateTextSearchTemplate),
17001    CreateTransform(CreateTransform),
17002    CreateTrigger(CreateTrigger),
17003    CreateType(CreateType),
17004    CreateUser(CreateUser),
17005    CreateUserMapping(CreateUserMapping),
17006    CreateView(CreateView),
17007    Deallocate(Deallocate),
17008    Declare(Declare),
17009    Delete(Delete),
17010    Discard(Discard),
17011    Do(Do),
17012    DropAccessMethod(DropAccessMethod),
17013    DropAggregate(DropAggregate),
17014    DropCast(DropCast),
17015    DropCollation(DropCollation),
17016    DropConversion(DropConversion),
17017    DropDatabase(DropDatabase),
17018    DropDomain(DropDomain),
17019    DropEventTrigger(DropEventTrigger),
17020    DropExtension(DropExtension),
17021    DropForeignDataWrapper(DropForeignDataWrapper),
17022    DropForeignTable(DropForeignTable),
17023    DropFunction(DropFunction),
17024    DropGroup(DropGroup),
17025    DropIndex(DropIndex),
17026    DropLanguage(DropLanguage),
17027    DropMaterializedView(DropMaterializedView),
17028    DropOperator(DropOperator),
17029    DropOperatorClass(DropOperatorClass),
17030    DropOperatorFamily(DropOperatorFamily),
17031    DropOwned(DropOwned),
17032    DropPolicy(DropPolicy),
17033    DropProcedure(DropProcedure),
17034    DropPublication(DropPublication),
17035    DropRole(DropRole),
17036    DropRoutine(DropRoutine),
17037    DropRule(DropRule),
17038    DropSchema(DropSchema),
17039    DropSequence(DropSequence),
17040    DropServer(DropServer),
17041    DropStatistics(DropStatistics),
17042    DropSubscription(DropSubscription),
17043    DropTable(DropTable),
17044    DropTablespace(DropTablespace),
17045    DropTextSearchConfig(DropTextSearchConfig),
17046    DropTextSearchDict(DropTextSearchDict),
17047    DropTextSearchParser(DropTextSearchParser),
17048    DropTextSearchTemplate(DropTextSearchTemplate),
17049    DropTransform(DropTransform),
17050    DropTrigger(DropTrigger),
17051    DropType(DropType),
17052    DropUser(DropUser),
17053    DropUserMapping(DropUserMapping),
17054    DropView(DropView),
17055    Execute(Execute),
17056    Explain(Explain),
17057    Fetch(Fetch),
17058    Grant(Grant),
17059    ImportForeignSchema(ImportForeignSchema),
17060    Insert(Insert),
17061    Listen(Listen),
17062    Load(Load),
17063    Lock(Lock),
17064    Merge(Merge),
17065    Move(Move),
17066    Notify(Notify),
17067    ParenSelect(ParenSelect),
17068    Prepare(Prepare),
17069    PrepareTransaction(PrepareTransaction),
17070    Reassign(Reassign),
17071    Refresh(Refresh),
17072    Reindex(Reindex),
17073    ReleaseSavepoint(ReleaseSavepoint),
17074    Reset(Reset),
17075    ResetSessionAuth(ResetSessionAuth),
17076    Revoke(Revoke),
17077    Rollback(Rollback),
17078    Savepoint(Savepoint),
17079    SecurityLabel(SecurityLabel),
17080    Select(Select),
17081    SelectInto(SelectInto),
17082    Set(Set),
17083    SetConstraints(SetConstraints),
17084    SetRole(SetRole),
17085    SetSessionAuth(SetSessionAuth),
17086    SetTransaction(SetTransaction),
17087    Show(Show),
17088    Table(Table),
17089    Truncate(Truncate),
17090    Unlisten(Unlisten),
17091    Update(Update),
17092    Vacuum(Vacuum),
17093    Values(Values),
17094}
17095
17096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17097pub enum TableArg {
17098    Column(Column),
17099    LikeClause(LikeClause),
17100    TableConstraint(TableConstraint),
17101}
17102
17103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17104pub enum TableConstraint {
17105    CheckConstraint(CheckConstraint),
17106    ExcludeConstraint(ExcludeConstraint),
17107    ForeignKeyConstraint(ForeignKeyConstraint),
17108    PrimaryKeyConstraint(PrimaryKeyConstraint),
17109    UniqueConstraint(UniqueConstraint),
17110}
17111
17112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17113pub enum Timezone {
17114    WithTimezone(WithTimezone),
17115    WithoutTimezone(WithoutTimezone),
17116}
17117
17118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17119pub enum TransactionMode {
17120    Deferrable(Deferrable),
17121    NotDeferrable(NotDeferrable),
17122    ReadCommitted(ReadCommitted),
17123    ReadOnly(ReadOnly),
17124    ReadUncommitted(ReadUncommitted),
17125    ReadWrite(ReadWrite),
17126    RepeatableRead(RepeatableRead),
17127    Serializable(Serializable),
17128}
17129
17130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17131pub enum Type {
17132    ArrayType(ArrayType),
17133    BitType(BitType),
17134    CharType(CharType),
17135    DoubleType(DoubleType),
17136    ExprType(ExprType),
17137    IntervalType(IntervalType),
17138    PathType(PathType),
17139    PercentType(PercentType),
17140    TimeType(TimeType),
17141}
17142
17143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17144pub enum WithQuery {
17145    CompoundSelect(CompoundSelect),
17146    Delete(Delete),
17147    Insert(Insert),
17148    Merge(Merge),
17149    ParenSelect(ParenSelect),
17150    Select(Select),
17151    Table(Table),
17152    Update(Update),
17153    Values(Values),
17154}
17155impl AstNode for AddColumn {
17156    #[inline]
17157    fn can_cast(kind: SyntaxKind) -> bool {
17158        kind == SyntaxKind::ADD_COLUMN
17159    }
17160    #[inline]
17161    fn cast(syntax: SyntaxNode) -> Option<Self> {
17162        if Self::can_cast(syntax.kind()) {
17163            Some(Self { syntax })
17164        } else {
17165            None
17166        }
17167    }
17168    #[inline]
17169    fn syntax(&self) -> &SyntaxNode {
17170        &self.syntax
17171    }
17172}
17173impl AstNode for AddConstraint {
17174    #[inline]
17175    fn can_cast(kind: SyntaxKind) -> bool {
17176        kind == SyntaxKind::ADD_CONSTRAINT
17177    }
17178    #[inline]
17179    fn cast(syntax: SyntaxNode) -> Option<Self> {
17180        if Self::can_cast(syntax.kind()) {
17181            Some(Self { syntax })
17182        } else {
17183            None
17184        }
17185    }
17186    #[inline]
17187    fn syntax(&self) -> &SyntaxNode {
17188        &self.syntax
17189    }
17190}
17191impl AstNode for AddGenerated {
17192    #[inline]
17193    fn can_cast(kind: SyntaxKind) -> bool {
17194        kind == SyntaxKind::ADD_GENERATED
17195    }
17196    #[inline]
17197    fn cast(syntax: SyntaxNode) -> Option<Self> {
17198        if Self::can_cast(syntax.kind()) {
17199            Some(Self { syntax })
17200        } else {
17201            None
17202        }
17203    }
17204    #[inline]
17205    fn syntax(&self) -> &SyntaxNode {
17206        &self.syntax
17207    }
17208}
17209impl AstNode for AddOpClassOptions {
17210    #[inline]
17211    fn can_cast(kind: SyntaxKind) -> bool {
17212        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17213    }
17214    #[inline]
17215    fn cast(syntax: SyntaxNode) -> Option<Self> {
17216        if Self::can_cast(syntax.kind()) {
17217            Some(Self { syntax })
17218        } else {
17219            None
17220        }
17221    }
17222    #[inline]
17223    fn syntax(&self) -> &SyntaxNode {
17224        &self.syntax
17225    }
17226}
17227impl AstNode for Aggregate {
17228    #[inline]
17229    fn can_cast(kind: SyntaxKind) -> bool {
17230        kind == SyntaxKind::AGGREGATE
17231    }
17232    #[inline]
17233    fn cast(syntax: SyntaxNode) -> Option<Self> {
17234        if Self::can_cast(syntax.kind()) {
17235            Some(Self { syntax })
17236        } else {
17237            None
17238        }
17239    }
17240    #[inline]
17241    fn syntax(&self) -> &SyntaxNode {
17242        &self.syntax
17243    }
17244}
17245impl AstNode for Alias {
17246    #[inline]
17247    fn can_cast(kind: SyntaxKind) -> bool {
17248        kind == SyntaxKind::ALIAS
17249    }
17250    #[inline]
17251    fn cast(syntax: SyntaxNode) -> Option<Self> {
17252        if Self::can_cast(syntax.kind()) {
17253            Some(Self { syntax })
17254        } else {
17255            None
17256        }
17257    }
17258    #[inline]
17259    fn syntax(&self) -> &SyntaxNode {
17260        &self.syntax
17261    }
17262}
17263impl AstNode for AllFn {
17264    #[inline]
17265    fn can_cast(kind: SyntaxKind) -> bool {
17266        kind == SyntaxKind::ALL_FN
17267    }
17268    #[inline]
17269    fn cast(syntax: SyntaxNode) -> Option<Self> {
17270        if Self::can_cast(syntax.kind()) {
17271            Some(Self { syntax })
17272        } else {
17273            None
17274        }
17275    }
17276    #[inline]
17277    fn syntax(&self) -> &SyntaxNode {
17278        &self.syntax
17279    }
17280}
17281impl AstNode for AlterAggregate {
17282    #[inline]
17283    fn can_cast(kind: SyntaxKind) -> bool {
17284        kind == SyntaxKind::ALTER_AGGREGATE
17285    }
17286    #[inline]
17287    fn cast(syntax: SyntaxNode) -> Option<Self> {
17288        if Self::can_cast(syntax.kind()) {
17289            Some(Self { syntax })
17290        } else {
17291            None
17292        }
17293    }
17294    #[inline]
17295    fn syntax(&self) -> &SyntaxNode {
17296        &self.syntax
17297    }
17298}
17299impl AstNode for AlterCollation {
17300    #[inline]
17301    fn can_cast(kind: SyntaxKind) -> bool {
17302        kind == SyntaxKind::ALTER_COLLATION
17303    }
17304    #[inline]
17305    fn cast(syntax: SyntaxNode) -> Option<Self> {
17306        if Self::can_cast(syntax.kind()) {
17307            Some(Self { syntax })
17308        } else {
17309            None
17310        }
17311    }
17312    #[inline]
17313    fn syntax(&self) -> &SyntaxNode {
17314        &self.syntax
17315    }
17316}
17317impl AstNode for AlterColumn {
17318    #[inline]
17319    fn can_cast(kind: SyntaxKind) -> bool {
17320        kind == SyntaxKind::ALTER_COLUMN
17321    }
17322    #[inline]
17323    fn cast(syntax: SyntaxNode) -> Option<Self> {
17324        if Self::can_cast(syntax.kind()) {
17325            Some(Self { syntax })
17326        } else {
17327            None
17328        }
17329    }
17330    #[inline]
17331    fn syntax(&self) -> &SyntaxNode {
17332        &self.syntax
17333    }
17334}
17335impl AstNode for AlterConstraint {
17336    #[inline]
17337    fn can_cast(kind: SyntaxKind) -> bool {
17338        kind == SyntaxKind::ALTER_CONSTRAINT
17339    }
17340    #[inline]
17341    fn cast(syntax: SyntaxNode) -> Option<Self> {
17342        if Self::can_cast(syntax.kind()) {
17343            Some(Self { syntax })
17344        } else {
17345            None
17346        }
17347    }
17348    #[inline]
17349    fn syntax(&self) -> &SyntaxNode {
17350        &self.syntax
17351    }
17352}
17353impl AstNode for AlterConversion {
17354    #[inline]
17355    fn can_cast(kind: SyntaxKind) -> bool {
17356        kind == SyntaxKind::ALTER_CONVERSION
17357    }
17358    #[inline]
17359    fn cast(syntax: SyntaxNode) -> Option<Self> {
17360        if Self::can_cast(syntax.kind()) {
17361            Some(Self { syntax })
17362        } else {
17363            None
17364        }
17365    }
17366    #[inline]
17367    fn syntax(&self) -> &SyntaxNode {
17368        &self.syntax
17369    }
17370}
17371impl AstNode for AlterDatabase {
17372    #[inline]
17373    fn can_cast(kind: SyntaxKind) -> bool {
17374        kind == SyntaxKind::ALTER_DATABASE
17375    }
17376    #[inline]
17377    fn cast(syntax: SyntaxNode) -> Option<Self> {
17378        if Self::can_cast(syntax.kind()) {
17379            Some(Self { syntax })
17380        } else {
17381            None
17382        }
17383    }
17384    #[inline]
17385    fn syntax(&self) -> &SyntaxNode {
17386        &self.syntax
17387    }
17388}
17389impl AstNode for AlterDefaultPrivileges {
17390    #[inline]
17391    fn can_cast(kind: SyntaxKind) -> bool {
17392        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17393    }
17394    #[inline]
17395    fn cast(syntax: SyntaxNode) -> Option<Self> {
17396        if Self::can_cast(syntax.kind()) {
17397            Some(Self { syntax })
17398        } else {
17399            None
17400        }
17401    }
17402    #[inline]
17403    fn syntax(&self) -> &SyntaxNode {
17404        &self.syntax
17405    }
17406}
17407impl AstNode for AlterDomain {
17408    #[inline]
17409    fn can_cast(kind: SyntaxKind) -> bool {
17410        kind == SyntaxKind::ALTER_DOMAIN
17411    }
17412    #[inline]
17413    fn cast(syntax: SyntaxNode) -> Option<Self> {
17414        if Self::can_cast(syntax.kind()) {
17415            Some(Self { syntax })
17416        } else {
17417            None
17418        }
17419    }
17420    #[inline]
17421    fn syntax(&self) -> &SyntaxNode {
17422        &self.syntax
17423    }
17424}
17425impl AstNode for AlterEventTrigger {
17426    #[inline]
17427    fn can_cast(kind: SyntaxKind) -> bool {
17428        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17429    }
17430    #[inline]
17431    fn cast(syntax: SyntaxNode) -> Option<Self> {
17432        if Self::can_cast(syntax.kind()) {
17433            Some(Self { syntax })
17434        } else {
17435            None
17436        }
17437    }
17438    #[inline]
17439    fn syntax(&self) -> &SyntaxNode {
17440        &self.syntax
17441    }
17442}
17443impl AstNode for AlterExtension {
17444    #[inline]
17445    fn can_cast(kind: SyntaxKind) -> bool {
17446        kind == SyntaxKind::ALTER_EXTENSION
17447    }
17448    #[inline]
17449    fn cast(syntax: SyntaxNode) -> Option<Self> {
17450        if Self::can_cast(syntax.kind()) {
17451            Some(Self { syntax })
17452        } else {
17453            None
17454        }
17455    }
17456    #[inline]
17457    fn syntax(&self) -> &SyntaxNode {
17458        &self.syntax
17459    }
17460}
17461impl AstNode for AlterForeignDataWrapper {
17462    #[inline]
17463    fn can_cast(kind: SyntaxKind) -> bool {
17464        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17465    }
17466    #[inline]
17467    fn cast(syntax: SyntaxNode) -> Option<Self> {
17468        if Self::can_cast(syntax.kind()) {
17469            Some(Self { syntax })
17470        } else {
17471            None
17472        }
17473    }
17474    #[inline]
17475    fn syntax(&self) -> &SyntaxNode {
17476        &self.syntax
17477    }
17478}
17479impl AstNode for AlterForeignTable {
17480    #[inline]
17481    fn can_cast(kind: SyntaxKind) -> bool {
17482        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17483    }
17484    #[inline]
17485    fn cast(syntax: SyntaxNode) -> Option<Self> {
17486        if Self::can_cast(syntax.kind()) {
17487            Some(Self { syntax })
17488        } else {
17489            None
17490        }
17491    }
17492    #[inline]
17493    fn syntax(&self) -> &SyntaxNode {
17494        &self.syntax
17495    }
17496}
17497impl AstNode for AlterFunction {
17498    #[inline]
17499    fn can_cast(kind: SyntaxKind) -> bool {
17500        kind == SyntaxKind::ALTER_FUNCTION
17501    }
17502    #[inline]
17503    fn cast(syntax: SyntaxNode) -> Option<Self> {
17504        if Self::can_cast(syntax.kind()) {
17505            Some(Self { syntax })
17506        } else {
17507            None
17508        }
17509    }
17510    #[inline]
17511    fn syntax(&self) -> &SyntaxNode {
17512        &self.syntax
17513    }
17514}
17515impl AstNode for AlterGroup {
17516    #[inline]
17517    fn can_cast(kind: SyntaxKind) -> bool {
17518        kind == SyntaxKind::ALTER_GROUP
17519    }
17520    #[inline]
17521    fn cast(syntax: SyntaxNode) -> Option<Self> {
17522        if Self::can_cast(syntax.kind()) {
17523            Some(Self { syntax })
17524        } else {
17525            None
17526        }
17527    }
17528    #[inline]
17529    fn syntax(&self) -> &SyntaxNode {
17530        &self.syntax
17531    }
17532}
17533impl AstNode for AlterIndex {
17534    #[inline]
17535    fn can_cast(kind: SyntaxKind) -> bool {
17536        kind == SyntaxKind::ALTER_INDEX
17537    }
17538    #[inline]
17539    fn cast(syntax: SyntaxNode) -> Option<Self> {
17540        if Self::can_cast(syntax.kind()) {
17541            Some(Self { syntax })
17542        } else {
17543            None
17544        }
17545    }
17546    #[inline]
17547    fn syntax(&self) -> &SyntaxNode {
17548        &self.syntax
17549    }
17550}
17551impl AstNode for AlterLanguage {
17552    #[inline]
17553    fn can_cast(kind: SyntaxKind) -> bool {
17554        kind == SyntaxKind::ALTER_LANGUAGE
17555    }
17556    #[inline]
17557    fn cast(syntax: SyntaxNode) -> Option<Self> {
17558        if Self::can_cast(syntax.kind()) {
17559            Some(Self { syntax })
17560        } else {
17561            None
17562        }
17563    }
17564    #[inline]
17565    fn syntax(&self) -> &SyntaxNode {
17566        &self.syntax
17567    }
17568}
17569impl AstNode for AlterLargeObject {
17570    #[inline]
17571    fn can_cast(kind: SyntaxKind) -> bool {
17572        kind == SyntaxKind::ALTER_LARGE_OBJECT
17573    }
17574    #[inline]
17575    fn cast(syntax: SyntaxNode) -> Option<Self> {
17576        if Self::can_cast(syntax.kind()) {
17577            Some(Self { syntax })
17578        } else {
17579            None
17580        }
17581    }
17582    #[inline]
17583    fn syntax(&self) -> &SyntaxNode {
17584        &self.syntax
17585    }
17586}
17587impl AstNode for AlterMaterializedView {
17588    #[inline]
17589    fn can_cast(kind: SyntaxKind) -> bool {
17590        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17591    }
17592    #[inline]
17593    fn cast(syntax: SyntaxNode) -> Option<Self> {
17594        if Self::can_cast(syntax.kind()) {
17595            Some(Self { syntax })
17596        } else {
17597            None
17598        }
17599    }
17600    #[inline]
17601    fn syntax(&self) -> &SyntaxNode {
17602        &self.syntax
17603    }
17604}
17605impl AstNode for AlterOperator {
17606    #[inline]
17607    fn can_cast(kind: SyntaxKind) -> bool {
17608        kind == SyntaxKind::ALTER_OPERATOR
17609    }
17610    #[inline]
17611    fn cast(syntax: SyntaxNode) -> Option<Self> {
17612        if Self::can_cast(syntax.kind()) {
17613            Some(Self { syntax })
17614        } else {
17615            None
17616        }
17617    }
17618    #[inline]
17619    fn syntax(&self) -> &SyntaxNode {
17620        &self.syntax
17621    }
17622}
17623impl AstNode for AlterOperatorClass {
17624    #[inline]
17625    fn can_cast(kind: SyntaxKind) -> bool {
17626        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17627    }
17628    #[inline]
17629    fn cast(syntax: SyntaxNode) -> Option<Self> {
17630        if Self::can_cast(syntax.kind()) {
17631            Some(Self { syntax })
17632        } else {
17633            None
17634        }
17635    }
17636    #[inline]
17637    fn syntax(&self) -> &SyntaxNode {
17638        &self.syntax
17639    }
17640}
17641impl AstNode for AlterOperatorFamily {
17642    #[inline]
17643    fn can_cast(kind: SyntaxKind) -> bool {
17644        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17645    }
17646    #[inline]
17647    fn cast(syntax: SyntaxNode) -> Option<Self> {
17648        if Self::can_cast(syntax.kind()) {
17649            Some(Self { syntax })
17650        } else {
17651            None
17652        }
17653    }
17654    #[inline]
17655    fn syntax(&self) -> &SyntaxNode {
17656        &self.syntax
17657    }
17658}
17659impl AstNode for AlterOption {
17660    #[inline]
17661    fn can_cast(kind: SyntaxKind) -> bool {
17662        kind == SyntaxKind::ALTER_OPTION
17663    }
17664    #[inline]
17665    fn cast(syntax: SyntaxNode) -> Option<Self> {
17666        if Self::can_cast(syntax.kind()) {
17667            Some(Self { syntax })
17668        } else {
17669            None
17670        }
17671    }
17672    #[inline]
17673    fn syntax(&self) -> &SyntaxNode {
17674        &self.syntax
17675    }
17676}
17677impl AstNode for AlterOptionList {
17678    #[inline]
17679    fn can_cast(kind: SyntaxKind) -> bool {
17680        kind == SyntaxKind::ALTER_OPTION_LIST
17681    }
17682    #[inline]
17683    fn cast(syntax: SyntaxNode) -> Option<Self> {
17684        if Self::can_cast(syntax.kind()) {
17685            Some(Self { syntax })
17686        } else {
17687            None
17688        }
17689    }
17690    #[inline]
17691    fn syntax(&self) -> &SyntaxNode {
17692        &self.syntax
17693    }
17694}
17695impl AstNode for AlterPolicy {
17696    #[inline]
17697    fn can_cast(kind: SyntaxKind) -> bool {
17698        kind == SyntaxKind::ALTER_POLICY
17699    }
17700    #[inline]
17701    fn cast(syntax: SyntaxNode) -> Option<Self> {
17702        if Self::can_cast(syntax.kind()) {
17703            Some(Self { syntax })
17704        } else {
17705            None
17706        }
17707    }
17708    #[inline]
17709    fn syntax(&self) -> &SyntaxNode {
17710        &self.syntax
17711    }
17712}
17713impl AstNode for AlterProcedure {
17714    #[inline]
17715    fn can_cast(kind: SyntaxKind) -> bool {
17716        kind == SyntaxKind::ALTER_PROCEDURE
17717    }
17718    #[inline]
17719    fn cast(syntax: SyntaxNode) -> Option<Self> {
17720        if Self::can_cast(syntax.kind()) {
17721            Some(Self { syntax })
17722        } else {
17723            None
17724        }
17725    }
17726    #[inline]
17727    fn syntax(&self) -> &SyntaxNode {
17728        &self.syntax
17729    }
17730}
17731impl AstNode for AlterPublication {
17732    #[inline]
17733    fn can_cast(kind: SyntaxKind) -> bool {
17734        kind == SyntaxKind::ALTER_PUBLICATION
17735    }
17736    #[inline]
17737    fn cast(syntax: SyntaxNode) -> Option<Self> {
17738        if Self::can_cast(syntax.kind()) {
17739            Some(Self { syntax })
17740        } else {
17741            None
17742        }
17743    }
17744    #[inline]
17745    fn syntax(&self) -> &SyntaxNode {
17746        &self.syntax
17747    }
17748}
17749impl AstNode for AlterRole {
17750    #[inline]
17751    fn can_cast(kind: SyntaxKind) -> bool {
17752        kind == SyntaxKind::ALTER_ROLE
17753    }
17754    #[inline]
17755    fn cast(syntax: SyntaxNode) -> Option<Self> {
17756        if Self::can_cast(syntax.kind()) {
17757            Some(Self { syntax })
17758        } else {
17759            None
17760        }
17761    }
17762    #[inline]
17763    fn syntax(&self) -> &SyntaxNode {
17764        &self.syntax
17765    }
17766}
17767impl AstNode for AlterRoutine {
17768    #[inline]
17769    fn can_cast(kind: SyntaxKind) -> bool {
17770        kind == SyntaxKind::ALTER_ROUTINE
17771    }
17772    #[inline]
17773    fn cast(syntax: SyntaxNode) -> Option<Self> {
17774        if Self::can_cast(syntax.kind()) {
17775            Some(Self { syntax })
17776        } else {
17777            None
17778        }
17779    }
17780    #[inline]
17781    fn syntax(&self) -> &SyntaxNode {
17782        &self.syntax
17783    }
17784}
17785impl AstNode for AlterRule {
17786    #[inline]
17787    fn can_cast(kind: SyntaxKind) -> bool {
17788        kind == SyntaxKind::ALTER_RULE
17789    }
17790    #[inline]
17791    fn cast(syntax: SyntaxNode) -> Option<Self> {
17792        if Self::can_cast(syntax.kind()) {
17793            Some(Self { syntax })
17794        } else {
17795            None
17796        }
17797    }
17798    #[inline]
17799    fn syntax(&self) -> &SyntaxNode {
17800        &self.syntax
17801    }
17802}
17803impl AstNode for AlterSchema {
17804    #[inline]
17805    fn can_cast(kind: SyntaxKind) -> bool {
17806        kind == SyntaxKind::ALTER_SCHEMA
17807    }
17808    #[inline]
17809    fn cast(syntax: SyntaxNode) -> Option<Self> {
17810        if Self::can_cast(syntax.kind()) {
17811            Some(Self { syntax })
17812        } else {
17813            None
17814        }
17815    }
17816    #[inline]
17817    fn syntax(&self) -> &SyntaxNode {
17818        &self.syntax
17819    }
17820}
17821impl AstNode for AlterSequence {
17822    #[inline]
17823    fn can_cast(kind: SyntaxKind) -> bool {
17824        kind == SyntaxKind::ALTER_SEQUENCE
17825    }
17826    #[inline]
17827    fn cast(syntax: SyntaxNode) -> Option<Self> {
17828        if Self::can_cast(syntax.kind()) {
17829            Some(Self { syntax })
17830        } else {
17831            None
17832        }
17833    }
17834    #[inline]
17835    fn syntax(&self) -> &SyntaxNode {
17836        &self.syntax
17837    }
17838}
17839impl AstNode for AlterServer {
17840    #[inline]
17841    fn can_cast(kind: SyntaxKind) -> bool {
17842        kind == SyntaxKind::ALTER_SERVER
17843    }
17844    #[inline]
17845    fn cast(syntax: SyntaxNode) -> Option<Self> {
17846        if Self::can_cast(syntax.kind()) {
17847            Some(Self { syntax })
17848        } else {
17849            None
17850        }
17851    }
17852    #[inline]
17853    fn syntax(&self) -> &SyntaxNode {
17854        &self.syntax
17855    }
17856}
17857impl AstNode for AlterSetStatistics {
17858    #[inline]
17859    fn can_cast(kind: SyntaxKind) -> bool {
17860        kind == SyntaxKind::ALTER_SET_STATISTICS
17861    }
17862    #[inline]
17863    fn cast(syntax: SyntaxNode) -> Option<Self> {
17864        if Self::can_cast(syntax.kind()) {
17865            Some(Self { syntax })
17866        } else {
17867            None
17868        }
17869    }
17870    #[inline]
17871    fn syntax(&self) -> &SyntaxNode {
17872        &self.syntax
17873    }
17874}
17875impl AstNode for AlterStatistics {
17876    #[inline]
17877    fn can_cast(kind: SyntaxKind) -> bool {
17878        kind == SyntaxKind::ALTER_STATISTICS
17879    }
17880    #[inline]
17881    fn cast(syntax: SyntaxNode) -> Option<Self> {
17882        if Self::can_cast(syntax.kind()) {
17883            Some(Self { syntax })
17884        } else {
17885            None
17886        }
17887    }
17888    #[inline]
17889    fn syntax(&self) -> &SyntaxNode {
17890        &self.syntax
17891    }
17892}
17893impl AstNode for AlterSubscription {
17894    #[inline]
17895    fn can_cast(kind: SyntaxKind) -> bool {
17896        kind == SyntaxKind::ALTER_SUBSCRIPTION
17897    }
17898    #[inline]
17899    fn cast(syntax: SyntaxNode) -> Option<Self> {
17900        if Self::can_cast(syntax.kind()) {
17901            Some(Self { syntax })
17902        } else {
17903            None
17904        }
17905    }
17906    #[inline]
17907    fn syntax(&self) -> &SyntaxNode {
17908        &self.syntax
17909    }
17910}
17911impl AstNode for AlterSystem {
17912    #[inline]
17913    fn can_cast(kind: SyntaxKind) -> bool {
17914        kind == SyntaxKind::ALTER_SYSTEM
17915    }
17916    #[inline]
17917    fn cast(syntax: SyntaxNode) -> Option<Self> {
17918        if Self::can_cast(syntax.kind()) {
17919            Some(Self { syntax })
17920        } else {
17921            None
17922        }
17923    }
17924    #[inline]
17925    fn syntax(&self) -> &SyntaxNode {
17926        &self.syntax
17927    }
17928}
17929impl AstNode for AlterTable {
17930    #[inline]
17931    fn can_cast(kind: SyntaxKind) -> bool {
17932        kind == SyntaxKind::ALTER_TABLE
17933    }
17934    #[inline]
17935    fn cast(syntax: SyntaxNode) -> Option<Self> {
17936        if Self::can_cast(syntax.kind()) {
17937            Some(Self { syntax })
17938        } else {
17939            None
17940        }
17941    }
17942    #[inline]
17943    fn syntax(&self) -> &SyntaxNode {
17944        &self.syntax
17945    }
17946}
17947impl AstNode for AlterTablespace {
17948    #[inline]
17949    fn can_cast(kind: SyntaxKind) -> bool {
17950        kind == SyntaxKind::ALTER_TABLESPACE
17951    }
17952    #[inline]
17953    fn cast(syntax: SyntaxNode) -> Option<Self> {
17954        if Self::can_cast(syntax.kind()) {
17955            Some(Self { syntax })
17956        } else {
17957            None
17958        }
17959    }
17960    #[inline]
17961    fn syntax(&self) -> &SyntaxNode {
17962        &self.syntax
17963    }
17964}
17965impl AstNode for AlterTextSearchConfiguration {
17966    #[inline]
17967    fn can_cast(kind: SyntaxKind) -> bool {
17968        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
17969    }
17970    #[inline]
17971    fn cast(syntax: SyntaxNode) -> Option<Self> {
17972        if Self::can_cast(syntax.kind()) {
17973            Some(Self { syntax })
17974        } else {
17975            None
17976        }
17977    }
17978    #[inline]
17979    fn syntax(&self) -> &SyntaxNode {
17980        &self.syntax
17981    }
17982}
17983impl AstNode for AlterTextSearchDictionary {
17984    #[inline]
17985    fn can_cast(kind: SyntaxKind) -> bool {
17986        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
17987    }
17988    #[inline]
17989    fn cast(syntax: SyntaxNode) -> Option<Self> {
17990        if Self::can_cast(syntax.kind()) {
17991            Some(Self { syntax })
17992        } else {
17993            None
17994        }
17995    }
17996    #[inline]
17997    fn syntax(&self) -> &SyntaxNode {
17998        &self.syntax
17999    }
18000}
18001impl AstNode for AlterTextSearchParser {
18002    #[inline]
18003    fn can_cast(kind: SyntaxKind) -> bool {
18004        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
18005    }
18006    #[inline]
18007    fn cast(syntax: SyntaxNode) -> Option<Self> {
18008        if Self::can_cast(syntax.kind()) {
18009            Some(Self { syntax })
18010        } else {
18011            None
18012        }
18013    }
18014    #[inline]
18015    fn syntax(&self) -> &SyntaxNode {
18016        &self.syntax
18017    }
18018}
18019impl AstNode for AlterTextSearchTemplate {
18020    #[inline]
18021    fn can_cast(kind: SyntaxKind) -> bool {
18022        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
18023    }
18024    #[inline]
18025    fn cast(syntax: SyntaxNode) -> Option<Self> {
18026        if Self::can_cast(syntax.kind()) {
18027            Some(Self { syntax })
18028        } else {
18029            None
18030        }
18031    }
18032    #[inline]
18033    fn syntax(&self) -> &SyntaxNode {
18034        &self.syntax
18035    }
18036}
18037impl AstNode for AlterTrigger {
18038    #[inline]
18039    fn can_cast(kind: SyntaxKind) -> bool {
18040        kind == SyntaxKind::ALTER_TRIGGER
18041    }
18042    #[inline]
18043    fn cast(syntax: SyntaxNode) -> Option<Self> {
18044        if Self::can_cast(syntax.kind()) {
18045            Some(Self { syntax })
18046        } else {
18047            None
18048        }
18049    }
18050    #[inline]
18051    fn syntax(&self) -> &SyntaxNode {
18052        &self.syntax
18053    }
18054}
18055impl AstNode for AlterType {
18056    #[inline]
18057    fn can_cast(kind: SyntaxKind) -> bool {
18058        kind == SyntaxKind::ALTER_TYPE
18059    }
18060    #[inline]
18061    fn cast(syntax: SyntaxNode) -> Option<Self> {
18062        if Self::can_cast(syntax.kind()) {
18063            Some(Self { syntax })
18064        } else {
18065            None
18066        }
18067    }
18068    #[inline]
18069    fn syntax(&self) -> &SyntaxNode {
18070        &self.syntax
18071    }
18072}
18073impl AstNode for AlterUser {
18074    #[inline]
18075    fn can_cast(kind: SyntaxKind) -> bool {
18076        kind == SyntaxKind::ALTER_USER
18077    }
18078    #[inline]
18079    fn cast(syntax: SyntaxNode) -> Option<Self> {
18080        if Self::can_cast(syntax.kind()) {
18081            Some(Self { syntax })
18082        } else {
18083            None
18084        }
18085    }
18086    #[inline]
18087    fn syntax(&self) -> &SyntaxNode {
18088        &self.syntax
18089    }
18090}
18091impl AstNode for AlterUserMapping {
18092    #[inline]
18093    fn can_cast(kind: SyntaxKind) -> bool {
18094        kind == SyntaxKind::ALTER_USER_MAPPING
18095    }
18096    #[inline]
18097    fn cast(syntax: SyntaxNode) -> Option<Self> {
18098        if Self::can_cast(syntax.kind()) {
18099            Some(Self { syntax })
18100        } else {
18101            None
18102        }
18103    }
18104    #[inline]
18105    fn syntax(&self) -> &SyntaxNode {
18106        &self.syntax
18107    }
18108}
18109impl AstNode for AlterView {
18110    #[inline]
18111    fn can_cast(kind: SyntaxKind) -> bool {
18112        kind == SyntaxKind::ALTER_VIEW
18113    }
18114    #[inline]
18115    fn cast(syntax: SyntaxNode) -> Option<Self> {
18116        if Self::can_cast(syntax.kind()) {
18117            Some(Self { syntax })
18118        } else {
18119            None
18120        }
18121    }
18122    #[inline]
18123    fn syntax(&self) -> &SyntaxNode {
18124        &self.syntax
18125    }
18126}
18127impl AstNode for Analyze {
18128    #[inline]
18129    fn can_cast(kind: SyntaxKind) -> bool {
18130        kind == SyntaxKind::ANALYZE
18131    }
18132    #[inline]
18133    fn cast(syntax: SyntaxNode) -> Option<Self> {
18134        if Self::can_cast(syntax.kind()) {
18135            Some(Self { syntax })
18136        } else {
18137            None
18138        }
18139    }
18140    #[inline]
18141    fn syntax(&self) -> &SyntaxNode {
18142        &self.syntax
18143    }
18144}
18145impl AstNode for AnyFn {
18146    #[inline]
18147    fn can_cast(kind: SyntaxKind) -> bool {
18148        kind == SyntaxKind::ANY_FN
18149    }
18150    #[inline]
18151    fn cast(syntax: SyntaxNode) -> Option<Self> {
18152        if Self::can_cast(syntax.kind()) {
18153            Some(Self { syntax })
18154        } else {
18155            None
18156        }
18157    }
18158    #[inline]
18159    fn syntax(&self) -> &SyntaxNode {
18160        &self.syntax
18161    }
18162}
18163impl AstNode for Arg {
18164    #[inline]
18165    fn can_cast(kind: SyntaxKind) -> bool {
18166        kind == SyntaxKind::ARG
18167    }
18168    #[inline]
18169    fn cast(syntax: SyntaxNode) -> Option<Self> {
18170        if Self::can_cast(syntax.kind()) {
18171            Some(Self { syntax })
18172        } else {
18173            None
18174        }
18175    }
18176    #[inline]
18177    fn syntax(&self) -> &SyntaxNode {
18178        &self.syntax
18179    }
18180}
18181impl AstNode for ArgList {
18182    #[inline]
18183    fn can_cast(kind: SyntaxKind) -> bool {
18184        kind == SyntaxKind::ARG_LIST
18185    }
18186    #[inline]
18187    fn cast(syntax: SyntaxNode) -> Option<Self> {
18188        if Self::can_cast(syntax.kind()) {
18189            Some(Self { syntax })
18190        } else {
18191            None
18192        }
18193    }
18194    #[inline]
18195    fn syntax(&self) -> &SyntaxNode {
18196        &self.syntax
18197    }
18198}
18199impl AstNode for ArrayExpr {
18200    #[inline]
18201    fn can_cast(kind: SyntaxKind) -> bool {
18202        kind == SyntaxKind::ARRAY_EXPR
18203    }
18204    #[inline]
18205    fn cast(syntax: SyntaxNode) -> Option<Self> {
18206        if Self::can_cast(syntax.kind()) {
18207            Some(Self { syntax })
18208        } else {
18209            None
18210        }
18211    }
18212    #[inline]
18213    fn syntax(&self) -> &SyntaxNode {
18214        &self.syntax
18215    }
18216}
18217impl AstNode for ArrayType {
18218    #[inline]
18219    fn can_cast(kind: SyntaxKind) -> bool {
18220        kind == SyntaxKind::ARRAY_TYPE
18221    }
18222    #[inline]
18223    fn cast(syntax: SyntaxNode) -> Option<Self> {
18224        if Self::can_cast(syntax.kind()) {
18225            Some(Self { syntax })
18226        } else {
18227            None
18228        }
18229    }
18230    #[inline]
18231    fn syntax(&self) -> &SyntaxNode {
18232        &self.syntax
18233    }
18234}
18235impl AstNode for AsFuncOption {
18236    #[inline]
18237    fn can_cast(kind: SyntaxKind) -> bool {
18238        kind == SyntaxKind::AS_FUNC_OPTION
18239    }
18240    #[inline]
18241    fn cast(syntax: SyntaxNode) -> Option<Self> {
18242        if Self::can_cast(syntax.kind()) {
18243            Some(Self { syntax })
18244        } else {
18245            None
18246        }
18247    }
18248    #[inline]
18249    fn syntax(&self) -> &SyntaxNode {
18250        &self.syntax
18251    }
18252}
18253impl AstNode for AsName {
18254    #[inline]
18255    fn can_cast(kind: SyntaxKind) -> bool {
18256        kind == SyntaxKind::AS_NAME
18257    }
18258    #[inline]
18259    fn cast(syntax: SyntaxNode) -> Option<Self> {
18260        if Self::can_cast(syntax.kind()) {
18261            Some(Self { syntax })
18262        } else {
18263            None
18264        }
18265    }
18266    #[inline]
18267    fn syntax(&self) -> &SyntaxNode {
18268        &self.syntax
18269    }
18270}
18271impl AstNode for AtTimeZone {
18272    #[inline]
18273    fn can_cast(kind: SyntaxKind) -> bool {
18274        kind == SyntaxKind::AT_TIME_ZONE
18275    }
18276    #[inline]
18277    fn cast(syntax: SyntaxNode) -> Option<Self> {
18278        if Self::can_cast(syntax.kind()) {
18279            Some(Self { syntax })
18280        } else {
18281            None
18282        }
18283    }
18284    #[inline]
18285    fn syntax(&self) -> &SyntaxNode {
18286        &self.syntax
18287    }
18288}
18289impl AstNode for AttachPartition {
18290    #[inline]
18291    fn can_cast(kind: SyntaxKind) -> bool {
18292        kind == SyntaxKind::ATTACH_PARTITION
18293    }
18294    #[inline]
18295    fn cast(syntax: SyntaxNode) -> Option<Self> {
18296        if Self::can_cast(syntax.kind()) {
18297            Some(Self { syntax })
18298        } else {
18299            None
18300        }
18301    }
18302    #[inline]
18303    fn syntax(&self) -> &SyntaxNode {
18304        &self.syntax
18305    }
18306}
18307impl AstNode for AttributeList {
18308    #[inline]
18309    fn can_cast(kind: SyntaxKind) -> bool {
18310        kind == SyntaxKind::ATTRIBUTE_LIST
18311    }
18312    #[inline]
18313    fn cast(syntax: SyntaxNode) -> Option<Self> {
18314        if Self::can_cast(syntax.kind()) {
18315            Some(Self { syntax })
18316        } else {
18317            None
18318        }
18319    }
18320    #[inline]
18321    fn syntax(&self) -> &SyntaxNode {
18322        &self.syntax
18323    }
18324}
18325impl AstNode for AttributeOption {
18326    #[inline]
18327    fn can_cast(kind: SyntaxKind) -> bool {
18328        kind == SyntaxKind::ATTRIBUTE_OPTION
18329    }
18330    #[inline]
18331    fn cast(syntax: SyntaxNode) -> Option<Self> {
18332        if Self::can_cast(syntax.kind()) {
18333            Some(Self { syntax })
18334        } else {
18335            None
18336        }
18337    }
18338    #[inline]
18339    fn syntax(&self) -> &SyntaxNode {
18340        &self.syntax
18341    }
18342}
18343impl AstNode for AttributeValue {
18344    #[inline]
18345    fn can_cast(kind: SyntaxKind) -> bool {
18346        kind == SyntaxKind::ATTRIBUTE_VALUE
18347    }
18348    #[inline]
18349    fn cast(syntax: SyntaxNode) -> Option<Self> {
18350        if Self::can_cast(syntax.kind()) {
18351            Some(Self { syntax })
18352        } else {
18353            None
18354        }
18355    }
18356    #[inline]
18357    fn syntax(&self) -> &SyntaxNode {
18358        &self.syntax
18359    }
18360}
18361impl AstNode for Begin {
18362    #[inline]
18363    fn can_cast(kind: SyntaxKind) -> bool {
18364        kind == SyntaxKind::BEGIN
18365    }
18366    #[inline]
18367    fn cast(syntax: SyntaxNode) -> Option<Self> {
18368        if Self::can_cast(syntax.kind()) {
18369            Some(Self { syntax })
18370        } else {
18371            None
18372        }
18373    }
18374    #[inline]
18375    fn syntax(&self) -> &SyntaxNode {
18376        &self.syntax
18377    }
18378}
18379impl AstNode for BeginFuncOption {
18380    #[inline]
18381    fn can_cast(kind: SyntaxKind) -> bool {
18382        kind == SyntaxKind::BEGIN_FUNC_OPTION
18383    }
18384    #[inline]
18385    fn cast(syntax: SyntaxNode) -> Option<Self> {
18386        if Self::can_cast(syntax.kind()) {
18387            Some(Self { syntax })
18388        } else {
18389            None
18390        }
18391    }
18392    #[inline]
18393    fn syntax(&self) -> &SyntaxNode {
18394        &self.syntax
18395    }
18396}
18397impl AstNode for BeginFuncOptionList {
18398    #[inline]
18399    fn can_cast(kind: SyntaxKind) -> bool {
18400        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18401    }
18402    #[inline]
18403    fn cast(syntax: SyntaxNode) -> Option<Self> {
18404        if Self::can_cast(syntax.kind()) {
18405            Some(Self { syntax })
18406        } else {
18407            None
18408        }
18409    }
18410    #[inline]
18411    fn syntax(&self) -> &SyntaxNode {
18412        &self.syntax
18413    }
18414}
18415impl AstNode for BetweenExpr {
18416    #[inline]
18417    fn can_cast(kind: SyntaxKind) -> bool {
18418        kind == SyntaxKind::BETWEEN_EXPR
18419    }
18420    #[inline]
18421    fn cast(syntax: SyntaxNode) -> Option<Self> {
18422        if Self::can_cast(syntax.kind()) {
18423            Some(Self { syntax })
18424        } else {
18425            None
18426        }
18427    }
18428    #[inline]
18429    fn syntax(&self) -> &SyntaxNode {
18430        &self.syntax
18431    }
18432}
18433impl AstNode for BinExpr {
18434    #[inline]
18435    fn can_cast(kind: SyntaxKind) -> bool {
18436        kind == SyntaxKind::BIN_EXPR
18437    }
18438    #[inline]
18439    fn cast(syntax: SyntaxNode) -> Option<Self> {
18440        if Self::can_cast(syntax.kind()) {
18441            Some(Self { syntax })
18442        } else {
18443            None
18444        }
18445    }
18446    #[inline]
18447    fn syntax(&self) -> &SyntaxNode {
18448        &self.syntax
18449    }
18450}
18451impl AstNode for BitType {
18452    #[inline]
18453    fn can_cast(kind: SyntaxKind) -> bool {
18454        kind == SyntaxKind::BIT_TYPE
18455    }
18456    #[inline]
18457    fn cast(syntax: SyntaxNode) -> Option<Self> {
18458        if Self::can_cast(syntax.kind()) {
18459            Some(Self { syntax })
18460        } else {
18461            None
18462        }
18463    }
18464    #[inline]
18465    fn syntax(&self) -> &SyntaxNode {
18466        &self.syntax
18467    }
18468}
18469impl AstNode for Call {
18470    #[inline]
18471    fn can_cast(kind: SyntaxKind) -> bool {
18472        kind == SyntaxKind::CALL
18473    }
18474    #[inline]
18475    fn cast(syntax: SyntaxNode) -> Option<Self> {
18476        if Self::can_cast(syntax.kind()) {
18477            Some(Self { syntax })
18478        } else {
18479            None
18480        }
18481    }
18482    #[inline]
18483    fn syntax(&self) -> &SyntaxNode {
18484        &self.syntax
18485    }
18486}
18487impl AstNode for CallExpr {
18488    #[inline]
18489    fn can_cast(kind: SyntaxKind) -> bool {
18490        kind == SyntaxKind::CALL_EXPR
18491    }
18492    #[inline]
18493    fn cast(syntax: SyntaxNode) -> Option<Self> {
18494        if Self::can_cast(syntax.kind()) {
18495            Some(Self { syntax })
18496        } else {
18497            None
18498        }
18499    }
18500    #[inline]
18501    fn syntax(&self) -> &SyntaxNode {
18502        &self.syntax
18503    }
18504}
18505impl AstNode for Cascade {
18506    #[inline]
18507    fn can_cast(kind: SyntaxKind) -> bool {
18508        kind == SyntaxKind::CASCADE
18509    }
18510    #[inline]
18511    fn cast(syntax: SyntaxNode) -> Option<Self> {
18512        if Self::can_cast(syntax.kind()) {
18513            Some(Self { syntax })
18514        } else {
18515            None
18516        }
18517    }
18518    #[inline]
18519    fn syntax(&self) -> &SyntaxNode {
18520        &self.syntax
18521    }
18522}
18523impl AstNode for CaseExpr {
18524    #[inline]
18525    fn can_cast(kind: SyntaxKind) -> bool {
18526        kind == SyntaxKind::CASE_EXPR
18527    }
18528    #[inline]
18529    fn cast(syntax: SyntaxNode) -> Option<Self> {
18530        if Self::can_cast(syntax.kind()) {
18531            Some(Self { syntax })
18532        } else {
18533            None
18534        }
18535    }
18536    #[inline]
18537    fn syntax(&self) -> &SyntaxNode {
18538        &self.syntax
18539    }
18540}
18541impl AstNode for CastExpr {
18542    #[inline]
18543    fn can_cast(kind: SyntaxKind) -> bool {
18544        kind == SyntaxKind::CAST_EXPR
18545    }
18546    #[inline]
18547    fn cast(syntax: SyntaxNode) -> Option<Self> {
18548        if Self::can_cast(syntax.kind()) {
18549            Some(Self { syntax })
18550        } else {
18551            None
18552        }
18553    }
18554    #[inline]
18555    fn syntax(&self) -> &SyntaxNode {
18556        &self.syntax
18557    }
18558}
18559impl AstNode for CastSig {
18560    #[inline]
18561    fn can_cast(kind: SyntaxKind) -> bool {
18562        kind == SyntaxKind::CAST_SIG
18563    }
18564    #[inline]
18565    fn cast(syntax: SyntaxNode) -> Option<Self> {
18566        if Self::can_cast(syntax.kind()) {
18567            Some(Self { syntax })
18568        } else {
18569            None
18570        }
18571    }
18572    #[inline]
18573    fn syntax(&self) -> &SyntaxNode {
18574        &self.syntax
18575    }
18576}
18577impl AstNode for CharType {
18578    #[inline]
18579    fn can_cast(kind: SyntaxKind) -> bool {
18580        kind == SyntaxKind::CHAR_TYPE
18581    }
18582    #[inline]
18583    fn cast(syntax: SyntaxNode) -> Option<Self> {
18584        if Self::can_cast(syntax.kind()) {
18585            Some(Self { syntax })
18586        } else {
18587            None
18588        }
18589    }
18590    #[inline]
18591    fn syntax(&self) -> &SyntaxNode {
18592        &self.syntax
18593    }
18594}
18595impl AstNode for CheckConstraint {
18596    #[inline]
18597    fn can_cast(kind: SyntaxKind) -> bool {
18598        kind == SyntaxKind::CHECK_CONSTRAINT
18599    }
18600    #[inline]
18601    fn cast(syntax: SyntaxNode) -> Option<Self> {
18602        if Self::can_cast(syntax.kind()) {
18603            Some(Self { syntax })
18604        } else {
18605            None
18606        }
18607    }
18608    #[inline]
18609    fn syntax(&self) -> &SyntaxNode {
18610        &self.syntax
18611    }
18612}
18613impl AstNode for Checkpoint {
18614    #[inline]
18615    fn can_cast(kind: SyntaxKind) -> bool {
18616        kind == SyntaxKind::CHECKPOINT
18617    }
18618    #[inline]
18619    fn cast(syntax: SyntaxNode) -> Option<Self> {
18620        if Self::can_cast(syntax.kind()) {
18621            Some(Self { syntax })
18622        } else {
18623            None
18624        }
18625    }
18626    #[inline]
18627    fn syntax(&self) -> &SyntaxNode {
18628        &self.syntax
18629    }
18630}
18631impl AstNode for Close {
18632    #[inline]
18633    fn can_cast(kind: SyntaxKind) -> bool {
18634        kind == SyntaxKind::CLOSE
18635    }
18636    #[inline]
18637    fn cast(syntax: SyntaxNode) -> Option<Self> {
18638        if Self::can_cast(syntax.kind()) {
18639            Some(Self { syntax })
18640        } else {
18641            None
18642        }
18643    }
18644    #[inline]
18645    fn syntax(&self) -> &SyntaxNode {
18646        &self.syntax
18647    }
18648}
18649impl AstNode for Cluster {
18650    #[inline]
18651    fn can_cast(kind: SyntaxKind) -> bool {
18652        kind == SyntaxKind::CLUSTER
18653    }
18654    #[inline]
18655    fn cast(syntax: SyntaxNode) -> Option<Self> {
18656        if Self::can_cast(syntax.kind()) {
18657            Some(Self { syntax })
18658        } else {
18659            None
18660        }
18661    }
18662    #[inline]
18663    fn syntax(&self) -> &SyntaxNode {
18664        &self.syntax
18665    }
18666}
18667impl AstNode for ClusterOn {
18668    #[inline]
18669    fn can_cast(kind: SyntaxKind) -> bool {
18670        kind == SyntaxKind::CLUSTER_ON
18671    }
18672    #[inline]
18673    fn cast(syntax: SyntaxNode) -> Option<Self> {
18674        if Self::can_cast(syntax.kind()) {
18675            Some(Self { syntax })
18676        } else {
18677            None
18678        }
18679    }
18680    #[inline]
18681    fn syntax(&self) -> &SyntaxNode {
18682        &self.syntax
18683    }
18684}
18685impl AstNode for Collate {
18686    #[inline]
18687    fn can_cast(kind: SyntaxKind) -> bool {
18688        kind == SyntaxKind::COLLATE
18689    }
18690    #[inline]
18691    fn cast(syntax: SyntaxNode) -> Option<Self> {
18692        if Self::can_cast(syntax.kind()) {
18693            Some(Self { syntax })
18694        } else {
18695            None
18696        }
18697    }
18698    #[inline]
18699    fn syntax(&self) -> &SyntaxNode {
18700        &self.syntax
18701    }
18702}
18703impl AstNode for ColonColon {
18704    #[inline]
18705    fn can_cast(kind: SyntaxKind) -> bool {
18706        kind == SyntaxKind::COLON_COLON
18707    }
18708    #[inline]
18709    fn cast(syntax: SyntaxNode) -> Option<Self> {
18710        if Self::can_cast(syntax.kind()) {
18711            Some(Self { syntax })
18712        } else {
18713            None
18714        }
18715    }
18716    #[inline]
18717    fn syntax(&self) -> &SyntaxNode {
18718        &self.syntax
18719    }
18720}
18721impl AstNode for ColonEq {
18722    #[inline]
18723    fn can_cast(kind: SyntaxKind) -> bool {
18724        kind == SyntaxKind::COLON_EQ
18725    }
18726    #[inline]
18727    fn cast(syntax: SyntaxNode) -> Option<Self> {
18728        if Self::can_cast(syntax.kind()) {
18729            Some(Self { syntax })
18730        } else {
18731            None
18732        }
18733    }
18734    #[inline]
18735    fn syntax(&self) -> &SyntaxNode {
18736        &self.syntax
18737    }
18738}
18739impl AstNode for Column {
18740    #[inline]
18741    fn can_cast(kind: SyntaxKind) -> bool {
18742        kind == SyntaxKind::COLUMN
18743    }
18744    #[inline]
18745    fn cast(syntax: SyntaxNode) -> Option<Self> {
18746        if Self::can_cast(syntax.kind()) {
18747            Some(Self { syntax })
18748        } else {
18749            None
18750        }
18751    }
18752    #[inline]
18753    fn syntax(&self) -> &SyntaxNode {
18754        &self.syntax
18755    }
18756}
18757impl AstNode for ColumnList {
18758    #[inline]
18759    fn can_cast(kind: SyntaxKind) -> bool {
18760        kind == SyntaxKind::COLUMN_LIST
18761    }
18762    #[inline]
18763    fn cast(syntax: SyntaxNode) -> Option<Self> {
18764        if Self::can_cast(syntax.kind()) {
18765            Some(Self { syntax })
18766        } else {
18767            None
18768        }
18769    }
18770    #[inline]
18771    fn syntax(&self) -> &SyntaxNode {
18772        &self.syntax
18773    }
18774}
18775impl AstNode for CommentOn {
18776    #[inline]
18777    fn can_cast(kind: SyntaxKind) -> bool {
18778        kind == SyntaxKind::COMMENT_ON
18779    }
18780    #[inline]
18781    fn cast(syntax: SyntaxNode) -> Option<Self> {
18782        if Self::can_cast(syntax.kind()) {
18783            Some(Self { syntax })
18784        } else {
18785            None
18786        }
18787    }
18788    #[inline]
18789    fn syntax(&self) -> &SyntaxNode {
18790        &self.syntax
18791    }
18792}
18793impl AstNode for Commit {
18794    #[inline]
18795    fn can_cast(kind: SyntaxKind) -> bool {
18796        kind == SyntaxKind::COMMIT
18797    }
18798    #[inline]
18799    fn cast(syntax: SyntaxNode) -> Option<Self> {
18800        if Self::can_cast(syntax.kind()) {
18801            Some(Self { syntax })
18802        } else {
18803            None
18804        }
18805    }
18806    #[inline]
18807    fn syntax(&self) -> &SyntaxNode {
18808        &self.syntax
18809    }
18810}
18811impl AstNode for CompoundSelect {
18812    #[inline]
18813    fn can_cast(kind: SyntaxKind) -> bool {
18814        kind == SyntaxKind::COMPOUND_SELECT
18815    }
18816    #[inline]
18817    fn cast(syntax: SyntaxNode) -> Option<Self> {
18818        if Self::can_cast(syntax.kind()) {
18819            Some(Self { syntax })
18820        } else {
18821            None
18822        }
18823    }
18824    #[inline]
18825    fn syntax(&self) -> &SyntaxNode {
18826        &self.syntax
18827    }
18828}
18829impl AstNode for CompressionMethod {
18830    #[inline]
18831    fn can_cast(kind: SyntaxKind) -> bool {
18832        kind == SyntaxKind::COMPRESSION_METHOD
18833    }
18834    #[inline]
18835    fn cast(syntax: SyntaxNode) -> Option<Self> {
18836        if Self::can_cast(syntax.kind()) {
18837            Some(Self { syntax })
18838        } else {
18839            None
18840        }
18841    }
18842    #[inline]
18843    fn syntax(&self) -> &SyntaxNode {
18844        &self.syntax
18845    }
18846}
18847impl AstNode for ConflictDoNothing {
18848    #[inline]
18849    fn can_cast(kind: SyntaxKind) -> bool {
18850        kind == SyntaxKind::CONFLICT_DO_NOTHING
18851    }
18852    #[inline]
18853    fn cast(syntax: SyntaxNode) -> Option<Self> {
18854        if Self::can_cast(syntax.kind()) {
18855            Some(Self { syntax })
18856        } else {
18857            None
18858        }
18859    }
18860    #[inline]
18861    fn syntax(&self) -> &SyntaxNode {
18862        &self.syntax
18863    }
18864}
18865impl AstNode for ConflictDoUpdateSet {
18866    #[inline]
18867    fn can_cast(kind: SyntaxKind) -> bool {
18868        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
18869    }
18870    #[inline]
18871    fn cast(syntax: SyntaxNode) -> Option<Self> {
18872        if Self::can_cast(syntax.kind()) {
18873            Some(Self { syntax })
18874        } else {
18875            None
18876        }
18877    }
18878    #[inline]
18879    fn syntax(&self) -> &SyntaxNode {
18880        &self.syntax
18881    }
18882}
18883impl AstNode for ConflictIndexItem {
18884    #[inline]
18885    fn can_cast(kind: SyntaxKind) -> bool {
18886        kind == SyntaxKind::CONFLICT_INDEX_ITEM
18887    }
18888    #[inline]
18889    fn cast(syntax: SyntaxNode) -> Option<Self> {
18890        if Self::can_cast(syntax.kind()) {
18891            Some(Self { syntax })
18892        } else {
18893            None
18894        }
18895    }
18896    #[inline]
18897    fn syntax(&self) -> &SyntaxNode {
18898        &self.syntax
18899    }
18900}
18901impl AstNode for ConflictIndexItemList {
18902    #[inline]
18903    fn can_cast(kind: SyntaxKind) -> bool {
18904        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
18905    }
18906    #[inline]
18907    fn cast(syntax: SyntaxNode) -> Option<Self> {
18908        if Self::can_cast(syntax.kind()) {
18909            Some(Self { syntax })
18910        } else {
18911            None
18912        }
18913    }
18914    #[inline]
18915    fn syntax(&self) -> &SyntaxNode {
18916        &self.syntax
18917    }
18918}
18919impl AstNode for ConflictOnConstraint {
18920    #[inline]
18921    fn can_cast(kind: SyntaxKind) -> bool {
18922        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
18923    }
18924    #[inline]
18925    fn cast(syntax: SyntaxNode) -> Option<Self> {
18926        if Self::can_cast(syntax.kind()) {
18927            Some(Self { syntax })
18928        } else {
18929            None
18930        }
18931    }
18932    #[inline]
18933    fn syntax(&self) -> &SyntaxNode {
18934        &self.syntax
18935    }
18936}
18937impl AstNode for ConflictOnIndex {
18938    #[inline]
18939    fn can_cast(kind: SyntaxKind) -> bool {
18940        kind == SyntaxKind::CONFLICT_ON_INDEX
18941    }
18942    #[inline]
18943    fn cast(syntax: SyntaxNode) -> Option<Self> {
18944        if Self::can_cast(syntax.kind()) {
18945            Some(Self { syntax })
18946        } else {
18947            None
18948        }
18949    }
18950    #[inline]
18951    fn syntax(&self) -> &SyntaxNode {
18952        &self.syntax
18953    }
18954}
18955impl AstNode for ConstraintExclusion {
18956    #[inline]
18957    fn can_cast(kind: SyntaxKind) -> bool {
18958        kind == SyntaxKind::CONSTRAINT_EXCLUSION
18959    }
18960    #[inline]
18961    fn cast(syntax: SyntaxNode) -> Option<Self> {
18962        if Self::can_cast(syntax.kind()) {
18963            Some(Self { syntax })
18964        } else {
18965            None
18966        }
18967    }
18968    #[inline]
18969    fn syntax(&self) -> &SyntaxNode {
18970        &self.syntax
18971    }
18972}
18973impl AstNode for ConstraintExclusionList {
18974    #[inline]
18975    fn can_cast(kind: SyntaxKind) -> bool {
18976        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
18977    }
18978    #[inline]
18979    fn cast(syntax: SyntaxNode) -> Option<Self> {
18980        if Self::can_cast(syntax.kind()) {
18981            Some(Self { syntax })
18982        } else {
18983            None
18984        }
18985    }
18986    #[inline]
18987    fn syntax(&self) -> &SyntaxNode {
18988        &self.syntax
18989    }
18990}
18991impl AstNode for ConstraintIncludeClause {
18992    #[inline]
18993    fn can_cast(kind: SyntaxKind) -> bool {
18994        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
18995    }
18996    #[inline]
18997    fn cast(syntax: SyntaxNode) -> Option<Self> {
18998        if Self::can_cast(syntax.kind()) {
18999            Some(Self { syntax })
19000        } else {
19001            None
19002        }
19003    }
19004    #[inline]
19005    fn syntax(&self) -> &SyntaxNode {
19006        &self.syntax
19007    }
19008}
19009impl AstNode for ConstraintIndexMethod {
19010    #[inline]
19011    fn can_cast(kind: SyntaxKind) -> bool {
19012        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
19013    }
19014    #[inline]
19015    fn cast(syntax: SyntaxNode) -> Option<Self> {
19016        if Self::can_cast(syntax.kind()) {
19017            Some(Self { syntax })
19018        } else {
19019            None
19020        }
19021    }
19022    #[inline]
19023    fn syntax(&self) -> &SyntaxNode {
19024        &self.syntax
19025    }
19026}
19027impl AstNode for ConstraintIndexTablespace {
19028    #[inline]
19029    fn can_cast(kind: SyntaxKind) -> bool {
19030        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
19031    }
19032    #[inline]
19033    fn cast(syntax: SyntaxNode) -> Option<Self> {
19034        if Self::can_cast(syntax.kind()) {
19035            Some(Self { syntax })
19036        } else {
19037            None
19038        }
19039    }
19040    #[inline]
19041    fn syntax(&self) -> &SyntaxNode {
19042        &self.syntax
19043    }
19044}
19045impl AstNode for ConstraintName {
19046    #[inline]
19047    fn can_cast(kind: SyntaxKind) -> bool {
19048        kind == SyntaxKind::CONSTRAINT_NAME
19049    }
19050    #[inline]
19051    fn cast(syntax: SyntaxNode) -> Option<Self> {
19052        if Self::can_cast(syntax.kind()) {
19053            Some(Self { syntax })
19054        } else {
19055            None
19056        }
19057    }
19058    #[inline]
19059    fn syntax(&self) -> &SyntaxNode {
19060        &self.syntax
19061    }
19062}
19063impl AstNode for Copy {
19064    #[inline]
19065    fn can_cast(kind: SyntaxKind) -> bool {
19066        kind == SyntaxKind::COPY
19067    }
19068    #[inline]
19069    fn cast(syntax: SyntaxNode) -> Option<Self> {
19070        if Self::can_cast(syntax.kind()) {
19071            Some(Self { syntax })
19072        } else {
19073            None
19074        }
19075    }
19076    #[inline]
19077    fn syntax(&self) -> &SyntaxNode {
19078        &self.syntax
19079    }
19080}
19081impl AstNode for CopyOption {
19082    #[inline]
19083    fn can_cast(kind: SyntaxKind) -> bool {
19084        kind == SyntaxKind::COPY_OPTION
19085    }
19086    #[inline]
19087    fn cast(syntax: SyntaxNode) -> Option<Self> {
19088        if Self::can_cast(syntax.kind()) {
19089            Some(Self { syntax })
19090        } else {
19091            None
19092        }
19093    }
19094    #[inline]
19095    fn syntax(&self) -> &SyntaxNode {
19096        &self.syntax
19097    }
19098}
19099impl AstNode for CopyOptionList {
19100    #[inline]
19101    fn can_cast(kind: SyntaxKind) -> bool {
19102        kind == SyntaxKind::COPY_OPTION_LIST
19103    }
19104    #[inline]
19105    fn cast(syntax: SyntaxNode) -> Option<Self> {
19106        if Self::can_cast(syntax.kind()) {
19107            Some(Self { syntax })
19108        } else {
19109            None
19110        }
19111    }
19112    #[inline]
19113    fn syntax(&self) -> &SyntaxNode {
19114        &self.syntax
19115    }
19116}
19117impl AstNode for CostFuncOption {
19118    #[inline]
19119    fn can_cast(kind: SyntaxKind) -> bool {
19120        kind == SyntaxKind::COST_FUNC_OPTION
19121    }
19122    #[inline]
19123    fn cast(syntax: SyntaxNode) -> Option<Self> {
19124        if Self::can_cast(syntax.kind()) {
19125            Some(Self { syntax })
19126        } else {
19127            None
19128        }
19129    }
19130    #[inline]
19131    fn syntax(&self) -> &SyntaxNode {
19132        &self.syntax
19133    }
19134}
19135impl AstNode for CreateAccessMethod {
19136    #[inline]
19137    fn can_cast(kind: SyntaxKind) -> bool {
19138        kind == SyntaxKind::CREATE_ACCESS_METHOD
19139    }
19140    #[inline]
19141    fn cast(syntax: SyntaxNode) -> Option<Self> {
19142        if Self::can_cast(syntax.kind()) {
19143            Some(Self { syntax })
19144        } else {
19145            None
19146        }
19147    }
19148    #[inline]
19149    fn syntax(&self) -> &SyntaxNode {
19150        &self.syntax
19151    }
19152}
19153impl AstNode for CreateAggregate {
19154    #[inline]
19155    fn can_cast(kind: SyntaxKind) -> bool {
19156        kind == SyntaxKind::CREATE_AGGREGATE
19157    }
19158    #[inline]
19159    fn cast(syntax: SyntaxNode) -> Option<Self> {
19160        if Self::can_cast(syntax.kind()) {
19161            Some(Self { syntax })
19162        } else {
19163            None
19164        }
19165    }
19166    #[inline]
19167    fn syntax(&self) -> &SyntaxNode {
19168        &self.syntax
19169    }
19170}
19171impl AstNode for CreateCast {
19172    #[inline]
19173    fn can_cast(kind: SyntaxKind) -> bool {
19174        kind == SyntaxKind::CREATE_CAST
19175    }
19176    #[inline]
19177    fn cast(syntax: SyntaxNode) -> Option<Self> {
19178        if Self::can_cast(syntax.kind()) {
19179            Some(Self { syntax })
19180        } else {
19181            None
19182        }
19183    }
19184    #[inline]
19185    fn syntax(&self) -> &SyntaxNode {
19186        &self.syntax
19187    }
19188}
19189impl AstNode for CreateCollation {
19190    #[inline]
19191    fn can_cast(kind: SyntaxKind) -> bool {
19192        kind == SyntaxKind::CREATE_COLLATION
19193    }
19194    #[inline]
19195    fn cast(syntax: SyntaxNode) -> Option<Self> {
19196        if Self::can_cast(syntax.kind()) {
19197            Some(Self { syntax })
19198        } else {
19199            None
19200        }
19201    }
19202    #[inline]
19203    fn syntax(&self) -> &SyntaxNode {
19204        &self.syntax
19205    }
19206}
19207impl AstNode for CreateConversion {
19208    #[inline]
19209    fn can_cast(kind: SyntaxKind) -> bool {
19210        kind == SyntaxKind::CREATE_CONVERSION
19211    }
19212    #[inline]
19213    fn cast(syntax: SyntaxNode) -> Option<Self> {
19214        if Self::can_cast(syntax.kind()) {
19215            Some(Self { syntax })
19216        } else {
19217            None
19218        }
19219    }
19220    #[inline]
19221    fn syntax(&self) -> &SyntaxNode {
19222        &self.syntax
19223    }
19224}
19225impl AstNode for CreateDatabase {
19226    #[inline]
19227    fn can_cast(kind: SyntaxKind) -> bool {
19228        kind == SyntaxKind::CREATE_DATABASE
19229    }
19230    #[inline]
19231    fn cast(syntax: SyntaxNode) -> Option<Self> {
19232        if Self::can_cast(syntax.kind()) {
19233            Some(Self { syntax })
19234        } else {
19235            None
19236        }
19237    }
19238    #[inline]
19239    fn syntax(&self) -> &SyntaxNode {
19240        &self.syntax
19241    }
19242}
19243impl AstNode for CreateDatabaseOption {
19244    #[inline]
19245    fn can_cast(kind: SyntaxKind) -> bool {
19246        kind == SyntaxKind::CREATE_DATABASE_OPTION
19247    }
19248    #[inline]
19249    fn cast(syntax: SyntaxNode) -> Option<Self> {
19250        if Self::can_cast(syntax.kind()) {
19251            Some(Self { syntax })
19252        } else {
19253            None
19254        }
19255    }
19256    #[inline]
19257    fn syntax(&self) -> &SyntaxNode {
19258        &self.syntax
19259    }
19260}
19261impl AstNode for CreateDatabaseOptionList {
19262    #[inline]
19263    fn can_cast(kind: SyntaxKind) -> bool {
19264        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19265    }
19266    #[inline]
19267    fn cast(syntax: SyntaxNode) -> Option<Self> {
19268        if Self::can_cast(syntax.kind()) {
19269            Some(Self { syntax })
19270        } else {
19271            None
19272        }
19273    }
19274    #[inline]
19275    fn syntax(&self) -> &SyntaxNode {
19276        &self.syntax
19277    }
19278}
19279impl AstNode for CreateDomain {
19280    #[inline]
19281    fn can_cast(kind: SyntaxKind) -> bool {
19282        kind == SyntaxKind::CREATE_DOMAIN
19283    }
19284    #[inline]
19285    fn cast(syntax: SyntaxNode) -> Option<Self> {
19286        if Self::can_cast(syntax.kind()) {
19287            Some(Self { syntax })
19288        } else {
19289            None
19290        }
19291    }
19292    #[inline]
19293    fn syntax(&self) -> &SyntaxNode {
19294        &self.syntax
19295    }
19296}
19297impl AstNode for CreateEventTrigger {
19298    #[inline]
19299    fn can_cast(kind: SyntaxKind) -> bool {
19300        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19301    }
19302    #[inline]
19303    fn cast(syntax: SyntaxNode) -> Option<Self> {
19304        if Self::can_cast(syntax.kind()) {
19305            Some(Self { syntax })
19306        } else {
19307            None
19308        }
19309    }
19310    #[inline]
19311    fn syntax(&self) -> &SyntaxNode {
19312        &self.syntax
19313    }
19314}
19315impl AstNode for CreateExtension {
19316    #[inline]
19317    fn can_cast(kind: SyntaxKind) -> bool {
19318        kind == SyntaxKind::CREATE_EXTENSION
19319    }
19320    #[inline]
19321    fn cast(syntax: SyntaxNode) -> Option<Self> {
19322        if Self::can_cast(syntax.kind()) {
19323            Some(Self { syntax })
19324        } else {
19325            None
19326        }
19327    }
19328    #[inline]
19329    fn syntax(&self) -> &SyntaxNode {
19330        &self.syntax
19331    }
19332}
19333impl AstNode for CreateForeignDataWrapper {
19334    #[inline]
19335    fn can_cast(kind: SyntaxKind) -> bool {
19336        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19337    }
19338    #[inline]
19339    fn cast(syntax: SyntaxNode) -> Option<Self> {
19340        if Self::can_cast(syntax.kind()) {
19341            Some(Self { syntax })
19342        } else {
19343            None
19344        }
19345    }
19346    #[inline]
19347    fn syntax(&self) -> &SyntaxNode {
19348        &self.syntax
19349    }
19350}
19351impl AstNode for CreateForeignTable {
19352    #[inline]
19353    fn can_cast(kind: SyntaxKind) -> bool {
19354        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19355    }
19356    #[inline]
19357    fn cast(syntax: SyntaxNode) -> Option<Self> {
19358        if Self::can_cast(syntax.kind()) {
19359            Some(Self { syntax })
19360        } else {
19361            None
19362        }
19363    }
19364    #[inline]
19365    fn syntax(&self) -> &SyntaxNode {
19366        &self.syntax
19367    }
19368}
19369impl AstNode for CreateFunction {
19370    #[inline]
19371    fn can_cast(kind: SyntaxKind) -> bool {
19372        kind == SyntaxKind::CREATE_FUNCTION
19373    }
19374    #[inline]
19375    fn cast(syntax: SyntaxNode) -> Option<Self> {
19376        if Self::can_cast(syntax.kind()) {
19377            Some(Self { syntax })
19378        } else {
19379            None
19380        }
19381    }
19382    #[inline]
19383    fn syntax(&self) -> &SyntaxNode {
19384        &self.syntax
19385    }
19386}
19387impl AstNode for CreateGroup {
19388    #[inline]
19389    fn can_cast(kind: SyntaxKind) -> bool {
19390        kind == SyntaxKind::CREATE_GROUP
19391    }
19392    #[inline]
19393    fn cast(syntax: SyntaxNode) -> Option<Self> {
19394        if Self::can_cast(syntax.kind()) {
19395            Some(Self { syntax })
19396        } else {
19397            None
19398        }
19399    }
19400    #[inline]
19401    fn syntax(&self) -> &SyntaxNode {
19402        &self.syntax
19403    }
19404}
19405impl AstNode for CreateIndex {
19406    #[inline]
19407    fn can_cast(kind: SyntaxKind) -> bool {
19408        kind == SyntaxKind::CREATE_INDEX
19409    }
19410    #[inline]
19411    fn cast(syntax: SyntaxNode) -> Option<Self> {
19412        if Self::can_cast(syntax.kind()) {
19413            Some(Self { syntax })
19414        } else {
19415            None
19416        }
19417    }
19418    #[inline]
19419    fn syntax(&self) -> &SyntaxNode {
19420        &self.syntax
19421    }
19422}
19423impl AstNode for CreateLanguage {
19424    #[inline]
19425    fn can_cast(kind: SyntaxKind) -> bool {
19426        kind == SyntaxKind::CREATE_LANGUAGE
19427    }
19428    #[inline]
19429    fn cast(syntax: SyntaxNode) -> Option<Self> {
19430        if Self::can_cast(syntax.kind()) {
19431            Some(Self { syntax })
19432        } else {
19433            None
19434        }
19435    }
19436    #[inline]
19437    fn syntax(&self) -> &SyntaxNode {
19438        &self.syntax
19439    }
19440}
19441impl AstNode for CreateMaterializedView {
19442    #[inline]
19443    fn can_cast(kind: SyntaxKind) -> bool {
19444        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19445    }
19446    #[inline]
19447    fn cast(syntax: SyntaxNode) -> Option<Self> {
19448        if Self::can_cast(syntax.kind()) {
19449            Some(Self { syntax })
19450        } else {
19451            None
19452        }
19453    }
19454    #[inline]
19455    fn syntax(&self) -> &SyntaxNode {
19456        &self.syntax
19457    }
19458}
19459impl AstNode for CreateOperator {
19460    #[inline]
19461    fn can_cast(kind: SyntaxKind) -> bool {
19462        kind == SyntaxKind::CREATE_OPERATOR
19463    }
19464    #[inline]
19465    fn cast(syntax: SyntaxNode) -> Option<Self> {
19466        if Self::can_cast(syntax.kind()) {
19467            Some(Self { syntax })
19468        } else {
19469            None
19470        }
19471    }
19472    #[inline]
19473    fn syntax(&self) -> &SyntaxNode {
19474        &self.syntax
19475    }
19476}
19477impl AstNode for CreateOperatorClass {
19478    #[inline]
19479    fn can_cast(kind: SyntaxKind) -> bool {
19480        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19481    }
19482    #[inline]
19483    fn cast(syntax: SyntaxNode) -> Option<Self> {
19484        if Self::can_cast(syntax.kind()) {
19485            Some(Self { syntax })
19486        } else {
19487            None
19488        }
19489    }
19490    #[inline]
19491    fn syntax(&self) -> &SyntaxNode {
19492        &self.syntax
19493    }
19494}
19495impl AstNode for CreateOperatorFamily {
19496    #[inline]
19497    fn can_cast(kind: SyntaxKind) -> bool {
19498        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19499    }
19500    #[inline]
19501    fn cast(syntax: SyntaxNode) -> Option<Self> {
19502        if Self::can_cast(syntax.kind()) {
19503            Some(Self { syntax })
19504        } else {
19505            None
19506        }
19507    }
19508    #[inline]
19509    fn syntax(&self) -> &SyntaxNode {
19510        &self.syntax
19511    }
19512}
19513impl AstNode for CreatePolicy {
19514    #[inline]
19515    fn can_cast(kind: SyntaxKind) -> bool {
19516        kind == SyntaxKind::CREATE_POLICY
19517    }
19518    #[inline]
19519    fn cast(syntax: SyntaxNode) -> Option<Self> {
19520        if Self::can_cast(syntax.kind()) {
19521            Some(Self { syntax })
19522        } else {
19523            None
19524        }
19525    }
19526    #[inline]
19527    fn syntax(&self) -> &SyntaxNode {
19528        &self.syntax
19529    }
19530}
19531impl AstNode for CreateProcedure {
19532    #[inline]
19533    fn can_cast(kind: SyntaxKind) -> bool {
19534        kind == SyntaxKind::CREATE_PROCEDURE
19535    }
19536    #[inline]
19537    fn cast(syntax: SyntaxNode) -> Option<Self> {
19538        if Self::can_cast(syntax.kind()) {
19539            Some(Self { syntax })
19540        } else {
19541            None
19542        }
19543    }
19544    #[inline]
19545    fn syntax(&self) -> &SyntaxNode {
19546        &self.syntax
19547    }
19548}
19549impl AstNode for CreatePublication {
19550    #[inline]
19551    fn can_cast(kind: SyntaxKind) -> bool {
19552        kind == SyntaxKind::CREATE_PUBLICATION
19553    }
19554    #[inline]
19555    fn cast(syntax: SyntaxNode) -> Option<Self> {
19556        if Self::can_cast(syntax.kind()) {
19557            Some(Self { syntax })
19558        } else {
19559            None
19560        }
19561    }
19562    #[inline]
19563    fn syntax(&self) -> &SyntaxNode {
19564        &self.syntax
19565    }
19566}
19567impl AstNode for CreateRole {
19568    #[inline]
19569    fn can_cast(kind: SyntaxKind) -> bool {
19570        kind == SyntaxKind::CREATE_ROLE
19571    }
19572    #[inline]
19573    fn cast(syntax: SyntaxNode) -> Option<Self> {
19574        if Self::can_cast(syntax.kind()) {
19575            Some(Self { syntax })
19576        } else {
19577            None
19578        }
19579    }
19580    #[inline]
19581    fn syntax(&self) -> &SyntaxNode {
19582        &self.syntax
19583    }
19584}
19585impl AstNode for CreateRule {
19586    #[inline]
19587    fn can_cast(kind: SyntaxKind) -> bool {
19588        kind == SyntaxKind::CREATE_RULE
19589    }
19590    #[inline]
19591    fn cast(syntax: SyntaxNode) -> Option<Self> {
19592        if Self::can_cast(syntax.kind()) {
19593            Some(Self { syntax })
19594        } else {
19595            None
19596        }
19597    }
19598    #[inline]
19599    fn syntax(&self) -> &SyntaxNode {
19600        &self.syntax
19601    }
19602}
19603impl AstNode for CreateSchema {
19604    #[inline]
19605    fn can_cast(kind: SyntaxKind) -> bool {
19606        kind == SyntaxKind::CREATE_SCHEMA
19607    }
19608    #[inline]
19609    fn cast(syntax: SyntaxNode) -> Option<Self> {
19610        if Self::can_cast(syntax.kind()) {
19611            Some(Self { syntax })
19612        } else {
19613            None
19614        }
19615    }
19616    #[inline]
19617    fn syntax(&self) -> &SyntaxNode {
19618        &self.syntax
19619    }
19620}
19621impl AstNode for CreateSequence {
19622    #[inline]
19623    fn can_cast(kind: SyntaxKind) -> bool {
19624        kind == SyntaxKind::CREATE_SEQUENCE
19625    }
19626    #[inline]
19627    fn cast(syntax: SyntaxNode) -> Option<Self> {
19628        if Self::can_cast(syntax.kind()) {
19629            Some(Self { syntax })
19630        } else {
19631            None
19632        }
19633    }
19634    #[inline]
19635    fn syntax(&self) -> &SyntaxNode {
19636        &self.syntax
19637    }
19638}
19639impl AstNode for CreateServer {
19640    #[inline]
19641    fn can_cast(kind: SyntaxKind) -> bool {
19642        kind == SyntaxKind::CREATE_SERVER
19643    }
19644    #[inline]
19645    fn cast(syntax: SyntaxNode) -> Option<Self> {
19646        if Self::can_cast(syntax.kind()) {
19647            Some(Self { syntax })
19648        } else {
19649            None
19650        }
19651    }
19652    #[inline]
19653    fn syntax(&self) -> &SyntaxNode {
19654        &self.syntax
19655    }
19656}
19657impl AstNode for CreateStatistics {
19658    #[inline]
19659    fn can_cast(kind: SyntaxKind) -> bool {
19660        kind == SyntaxKind::CREATE_STATISTICS
19661    }
19662    #[inline]
19663    fn cast(syntax: SyntaxNode) -> Option<Self> {
19664        if Self::can_cast(syntax.kind()) {
19665            Some(Self { syntax })
19666        } else {
19667            None
19668        }
19669    }
19670    #[inline]
19671    fn syntax(&self) -> &SyntaxNode {
19672        &self.syntax
19673    }
19674}
19675impl AstNode for CreateSubscription {
19676    #[inline]
19677    fn can_cast(kind: SyntaxKind) -> bool {
19678        kind == SyntaxKind::CREATE_SUBSCRIPTION
19679    }
19680    #[inline]
19681    fn cast(syntax: SyntaxNode) -> Option<Self> {
19682        if Self::can_cast(syntax.kind()) {
19683            Some(Self { syntax })
19684        } else {
19685            None
19686        }
19687    }
19688    #[inline]
19689    fn syntax(&self) -> &SyntaxNode {
19690        &self.syntax
19691    }
19692}
19693impl AstNode for CreateTable {
19694    #[inline]
19695    fn can_cast(kind: SyntaxKind) -> bool {
19696        kind == SyntaxKind::CREATE_TABLE
19697    }
19698    #[inline]
19699    fn cast(syntax: SyntaxNode) -> Option<Self> {
19700        if Self::can_cast(syntax.kind()) {
19701            Some(Self { syntax })
19702        } else {
19703            None
19704        }
19705    }
19706    #[inline]
19707    fn syntax(&self) -> &SyntaxNode {
19708        &self.syntax
19709    }
19710}
19711impl AstNode for CreateTableAs {
19712    #[inline]
19713    fn can_cast(kind: SyntaxKind) -> bool {
19714        kind == SyntaxKind::CREATE_TABLE_AS
19715    }
19716    #[inline]
19717    fn cast(syntax: SyntaxNode) -> Option<Self> {
19718        if Self::can_cast(syntax.kind()) {
19719            Some(Self { syntax })
19720        } else {
19721            None
19722        }
19723    }
19724    #[inline]
19725    fn syntax(&self) -> &SyntaxNode {
19726        &self.syntax
19727    }
19728}
19729impl AstNode for CreateTablespace {
19730    #[inline]
19731    fn can_cast(kind: SyntaxKind) -> bool {
19732        kind == SyntaxKind::CREATE_TABLESPACE
19733    }
19734    #[inline]
19735    fn cast(syntax: SyntaxNode) -> Option<Self> {
19736        if Self::can_cast(syntax.kind()) {
19737            Some(Self { syntax })
19738        } else {
19739            None
19740        }
19741    }
19742    #[inline]
19743    fn syntax(&self) -> &SyntaxNode {
19744        &self.syntax
19745    }
19746}
19747impl AstNode for CreateTextSearchConfiguration {
19748    #[inline]
19749    fn can_cast(kind: SyntaxKind) -> bool {
19750        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
19751    }
19752    #[inline]
19753    fn cast(syntax: SyntaxNode) -> Option<Self> {
19754        if Self::can_cast(syntax.kind()) {
19755            Some(Self { syntax })
19756        } else {
19757            None
19758        }
19759    }
19760    #[inline]
19761    fn syntax(&self) -> &SyntaxNode {
19762        &self.syntax
19763    }
19764}
19765impl AstNode for CreateTextSearchDictionary {
19766    #[inline]
19767    fn can_cast(kind: SyntaxKind) -> bool {
19768        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
19769    }
19770    #[inline]
19771    fn cast(syntax: SyntaxNode) -> Option<Self> {
19772        if Self::can_cast(syntax.kind()) {
19773            Some(Self { syntax })
19774        } else {
19775            None
19776        }
19777    }
19778    #[inline]
19779    fn syntax(&self) -> &SyntaxNode {
19780        &self.syntax
19781    }
19782}
19783impl AstNode for CreateTextSearchParser {
19784    #[inline]
19785    fn can_cast(kind: SyntaxKind) -> bool {
19786        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
19787    }
19788    #[inline]
19789    fn cast(syntax: SyntaxNode) -> Option<Self> {
19790        if Self::can_cast(syntax.kind()) {
19791            Some(Self { syntax })
19792        } else {
19793            None
19794        }
19795    }
19796    #[inline]
19797    fn syntax(&self) -> &SyntaxNode {
19798        &self.syntax
19799    }
19800}
19801impl AstNode for CreateTextSearchTemplate {
19802    #[inline]
19803    fn can_cast(kind: SyntaxKind) -> bool {
19804        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
19805    }
19806    #[inline]
19807    fn cast(syntax: SyntaxNode) -> Option<Self> {
19808        if Self::can_cast(syntax.kind()) {
19809            Some(Self { syntax })
19810        } else {
19811            None
19812        }
19813    }
19814    #[inline]
19815    fn syntax(&self) -> &SyntaxNode {
19816        &self.syntax
19817    }
19818}
19819impl AstNode for CreateTransform {
19820    #[inline]
19821    fn can_cast(kind: SyntaxKind) -> bool {
19822        kind == SyntaxKind::CREATE_TRANSFORM
19823    }
19824    #[inline]
19825    fn cast(syntax: SyntaxNode) -> Option<Self> {
19826        if Self::can_cast(syntax.kind()) {
19827            Some(Self { syntax })
19828        } else {
19829            None
19830        }
19831    }
19832    #[inline]
19833    fn syntax(&self) -> &SyntaxNode {
19834        &self.syntax
19835    }
19836}
19837impl AstNode for CreateTrigger {
19838    #[inline]
19839    fn can_cast(kind: SyntaxKind) -> bool {
19840        kind == SyntaxKind::CREATE_TRIGGER
19841    }
19842    #[inline]
19843    fn cast(syntax: SyntaxNode) -> Option<Self> {
19844        if Self::can_cast(syntax.kind()) {
19845            Some(Self { syntax })
19846        } else {
19847            None
19848        }
19849    }
19850    #[inline]
19851    fn syntax(&self) -> &SyntaxNode {
19852        &self.syntax
19853    }
19854}
19855impl AstNode for CreateType {
19856    #[inline]
19857    fn can_cast(kind: SyntaxKind) -> bool {
19858        kind == SyntaxKind::CREATE_TYPE
19859    }
19860    #[inline]
19861    fn cast(syntax: SyntaxNode) -> Option<Self> {
19862        if Self::can_cast(syntax.kind()) {
19863            Some(Self { syntax })
19864        } else {
19865            None
19866        }
19867    }
19868    #[inline]
19869    fn syntax(&self) -> &SyntaxNode {
19870        &self.syntax
19871    }
19872}
19873impl AstNode for CreateUser {
19874    #[inline]
19875    fn can_cast(kind: SyntaxKind) -> bool {
19876        kind == SyntaxKind::CREATE_USER
19877    }
19878    #[inline]
19879    fn cast(syntax: SyntaxNode) -> Option<Self> {
19880        if Self::can_cast(syntax.kind()) {
19881            Some(Self { syntax })
19882        } else {
19883            None
19884        }
19885    }
19886    #[inline]
19887    fn syntax(&self) -> &SyntaxNode {
19888        &self.syntax
19889    }
19890}
19891impl AstNode for CreateUserMapping {
19892    #[inline]
19893    fn can_cast(kind: SyntaxKind) -> bool {
19894        kind == SyntaxKind::CREATE_USER_MAPPING
19895    }
19896    #[inline]
19897    fn cast(syntax: SyntaxNode) -> Option<Self> {
19898        if Self::can_cast(syntax.kind()) {
19899            Some(Self { syntax })
19900        } else {
19901            None
19902        }
19903    }
19904    #[inline]
19905    fn syntax(&self) -> &SyntaxNode {
19906        &self.syntax
19907    }
19908}
19909impl AstNode for CreateView {
19910    #[inline]
19911    fn can_cast(kind: SyntaxKind) -> bool {
19912        kind == SyntaxKind::CREATE_VIEW
19913    }
19914    #[inline]
19915    fn cast(syntax: SyntaxNode) -> Option<Self> {
19916        if Self::can_cast(syntax.kind()) {
19917            Some(Self { syntax })
19918        } else {
19919            None
19920        }
19921    }
19922    #[inline]
19923    fn syntax(&self) -> &SyntaxNode {
19924        &self.syntax
19925    }
19926}
19927impl AstNode for CustomOp {
19928    #[inline]
19929    fn can_cast(kind: SyntaxKind) -> bool {
19930        kind == SyntaxKind::CUSTOM_OP
19931    }
19932    #[inline]
19933    fn cast(syntax: SyntaxNode) -> Option<Self> {
19934        if Self::can_cast(syntax.kind()) {
19935            Some(Self { syntax })
19936        } else {
19937            None
19938        }
19939    }
19940    #[inline]
19941    fn syntax(&self) -> &SyntaxNode {
19942        &self.syntax
19943    }
19944}
19945impl AstNode for Deallocate {
19946    #[inline]
19947    fn can_cast(kind: SyntaxKind) -> bool {
19948        kind == SyntaxKind::DEALLOCATE
19949    }
19950    #[inline]
19951    fn cast(syntax: SyntaxNode) -> Option<Self> {
19952        if Self::can_cast(syntax.kind()) {
19953            Some(Self { syntax })
19954        } else {
19955            None
19956        }
19957    }
19958    #[inline]
19959    fn syntax(&self) -> &SyntaxNode {
19960        &self.syntax
19961    }
19962}
19963impl AstNode for Declare {
19964    #[inline]
19965    fn can_cast(kind: SyntaxKind) -> bool {
19966        kind == SyntaxKind::DECLARE
19967    }
19968    #[inline]
19969    fn cast(syntax: SyntaxNode) -> Option<Self> {
19970        if Self::can_cast(syntax.kind()) {
19971            Some(Self { syntax })
19972        } else {
19973            None
19974        }
19975    }
19976    #[inline]
19977    fn syntax(&self) -> &SyntaxNode {
19978        &self.syntax
19979    }
19980}
19981impl AstNode for DefaultConstraint {
19982    #[inline]
19983    fn can_cast(kind: SyntaxKind) -> bool {
19984        kind == SyntaxKind::DEFAULT_CONSTRAINT
19985    }
19986    #[inline]
19987    fn cast(syntax: SyntaxNode) -> Option<Self> {
19988        if Self::can_cast(syntax.kind()) {
19989            Some(Self { syntax })
19990        } else {
19991            None
19992        }
19993    }
19994    #[inline]
19995    fn syntax(&self) -> &SyntaxNode {
19996        &self.syntax
19997    }
19998}
19999impl AstNode for Deferrable {
20000    #[inline]
20001    fn can_cast(kind: SyntaxKind) -> bool {
20002        kind == SyntaxKind::DEFERRABLE
20003    }
20004    #[inline]
20005    fn cast(syntax: SyntaxNode) -> Option<Self> {
20006        if Self::can_cast(syntax.kind()) {
20007            Some(Self { syntax })
20008        } else {
20009            None
20010        }
20011    }
20012    #[inline]
20013    fn syntax(&self) -> &SyntaxNode {
20014        &self.syntax
20015    }
20016}
20017impl AstNode for DeferrableConstraintOption {
20018    #[inline]
20019    fn can_cast(kind: SyntaxKind) -> bool {
20020        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
20021    }
20022    #[inline]
20023    fn cast(syntax: SyntaxNode) -> Option<Self> {
20024        if Self::can_cast(syntax.kind()) {
20025            Some(Self { syntax })
20026        } else {
20027            None
20028        }
20029    }
20030    #[inline]
20031    fn syntax(&self) -> &SyntaxNode {
20032        &self.syntax
20033    }
20034}
20035impl AstNode for Delete {
20036    #[inline]
20037    fn can_cast(kind: SyntaxKind) -> bool {
20038        kind == SyntaxKind::DELETE
20039    }
20040    #[inline]
20041    fn cast(syntax: SyntaxNode) -> Option<Self> {
20042        if Self::can_cast(syntax.kind()) {
20043            Some(Self { syntax })
20044        } else {
20045            None
20046        }
20047    }
20048    #[inline]
20049    fn syntax(&self) -> &SyntaxNode {
20050        &self.syntax
20051    }
20052}
20053impl AstNode for DeleteRows {
20054    #[inline]
20055    fn can_cast(kind: SyntaxKind) -> bool {
20056        kind == SyntaxKind::DELETE_ROWS
20057    }
20058    #[inline]
20059    fn cast(syntax: SyntaxNode) -> Option<Self> {
20060        if Self::can_cast(syntax.kind()) {
20061            Some(Self { syntax })
20062        } else {
20063            None
20064        }
20065    }
20066    #[inline]
20067    fn syntax(&self) -> &SyntaxNode {
20068        &self.syntax
20069    }
20070}
20071impl AstNode for DependsOnExtension {
20072    #[inline]
20073    fn can_cast(kind: SyntaxKind) -> bool {
20074        kind == SyntaxKind::DEPENDS_ON_EXTENSION
20075    }
20076    #[inline]
20077    fn cast(syntax: SyntaxNode) -> Option<Self> {
20078        if Self::can_cast(syntax.kind()) {
20079            Some(Self { syntax })
20080        } else {
20081            None
20082        }
20083    }
20084    #[inline]
20085    fn syntax(&self) -> &SyntaxNode {
20086        &self.syntax
20087    }
20088}
20089impl AstNode for DetachPartition {
20090    #[inline]
20091    fn can_cast(kind: SyntaxKind) -> bool {
20092        kind == SyntaxKind::DETACH_PARTITION
20093    }
20094    #[inline]
20095    fn cast(syntax: SyntaxNode) -> Option<Self> {
20096        if Self::can_cast(syntax.kind()) {
20097            Some(Self { syntax })
20098        } else {
20099            None
20100        }
20101    }
20102    #[inline]
20103    fn syntax(&self) -> &SyntaxNode {
20104        &self.syntax
20105    }
20106}
20107impl AstNode for DisableRls {
20108    #[inline]
20109    fn can_cast(kind: SyntaxKind) -> bool {
20110        kind == SyntaxKind::DISABLE_RLS
20111    }
20112    #[inline]
20113    fn cast(syntax: SyntaxNode) -> Option<Self> {
20114        if Self::can_cast(syntax.kind()) {
20115            Some(Self { syntax })
20116        } else {
20117            None
20118        }
20119    }
20120    #[inline]
20121    fn syntax(&self) -> &SyntaxNode {
20122        &self.syntax
20123    }
20124}
20125impl AstNode for DisableRule {
20126    #[inline]
20127    fn can_cast(kind: SyntaxKind) -> bool {
20128        kind == SyntaxKind::DISABLE_RULE
20129    }
20130    #[inline]
20131    fn cast(syntax: SyntaxNode) -> Option<Self> {
20132        if Self::can_cast(syntax.kind()) {
20133            Some(Self { syntax })
20134        } else {
20135            None
20136        }
20137    }
20138    #[inline]
20139    fn syntax(&self) -> &SyntaxNode {
20140        &self.syntax
20141    }
20142}
20143impl AstNode for DisableTrigger {
20144    #[inline]
20145    fn can_cast(kind: SyntaxKind) -> bool {
20146        kind == SyntaxKind::DISABLE_TRIGGER
20147    }
20148    #[inline]
20149    fn cast(syntax: SyntaxNode) -> Option<Self> {
20150        if Self::can_cast(syntax.kind()) {
20151            Some(Self { syntax })
20152        } else {
20153            None
20154        }
20155    }
20156    #[inline]
20157    fn syntax(&self) -> &SyntaxNode {
20158        &self.syntax
20159    }
20160}
20161impl AstNode for Discard {
20162    #[inline]
20163    fn can_cast(kind: SyntaxKind) -> bool {
20164        kind == SyntaxKind::DISCARD
20165    }
20166    #[inline]
20167    fn cast(syntax: SyntaxNode) -> Option<Self> {
20168        if Self::can_cast(syntax.kind()) {
20169            Some(Self { syntax })
20170        } else {
20171            None
20172        }
20173    }
20174    #[inline]
20175    fn syntax(&self) -> &SyntaxNode {
20176        &self.syntax
20177    }
20178}
20179impl AstNode for DistinctClause {
20180    #[inline]
20181    fn can_cast(kind: SyntaxKind) -> bool {
20182        kind == SyntaxKind::DISTINCT_CLAUSE
20183    }
20184    #[inline]
20185    fn cast(syntax: SyntaxNode) -> Option<Self> {
20186        if Self::can_cast(syntax.kind()) {
20187            Some(Self { syntax })
20188        } else {
20189            None
20190        }
20191    }
20192    #[inline]
20193    fn syntax(&self) -> &SyntaxNode {
20194        &self.syntax
20195    }
20196}
20197impl AstNode for Do {
20198    #[inline]
20199    fn can_cast(kind: SyntaxKind) -> bool {
20200        kind == SyntaxKind::DO
20201    }
20202    #[inline]
20203    fn cast(syntax: SyntaxNode) -> Option<Self> {
20204        if Self::can_cast(syntax.kind()) {
20205            Some(Self { syntax })
20206        } else {
20207            None
20208        }
20209    }
20210    #[inline]
20211    fn syntax(&self) -> &SyntaxNode {
20212        &self.syntax
20213    }
20214}
20215impl AstNode for DoubleType {
20216    #[inline]
20217    fn can_cast(kind: SyntaxKind) -> bool {
20218        kind == SyntaxKind::DOUBLE_TYPE
20219    }
20220    #[inline]
20221    fn cast(syntax: SyntaxNode) -> Option<Self> {
20222        if Self::can_cast(syntax.kind()) {
20223            Some(Self { syntax })
20224        } else {
20225            None
20226        }
20227    }
20228    #[inline]
20229    fn syntax(&self) -> &SyntaxNode {
20230        &self.syntax
20231    }
20232}
20233impl AstNode for Drop {
20234    #[inline]
20235    fn can_cast(kind: SyntaxKind) -> bool {
20236        kind == SyntaxKind::DROP
20237    }
20238    #[inline]
20239    fn cast(syntax: SyntaxNode) -> Option<Self> {
20240        if Self::can_cast(syntax.kind()) {
20241            Some(Self { syntax })
20242        } else {
20243            None
20244        }
20245    }
20246    #[inline]
20247    fn syntax(&self) -> &SyntaxNode {
20248        &self.syntax
20249    }
20250}
20251impl AstNode for DropAccessMethod {
20252    #[inline]
20253    fn can_cast(kind: SyntaxKind) -> bool {
20254        kind == SyntaxKind::DROP_ACCESS_METHOD
20255    }
20256    #[inline]
20257    fn cast(syntax: SyntaxNode) -> Option<Self> {
20258        if Self::can_cast(syntax.kind()) {
20259            Some(Self { syntax })
20260        } else {
20261            None
20262        }
20263    }
20264    #[inline]
20265    fn syntax(&self) -> &SyntaxNode {
20266        &self.syntax
20267    }
20268}
20269impl AstNode for DropAggregate {
20270    #[inline]
20271    fn can_cast(kind: SyntaxKind) -> bool {
20272        kind == SyntaxKind::DROP_AGGREGATE
20273    }
20274    #[inline]
20275    fn cast(syntax: SyntaxNode) -> Option<Self> {
20276        if Self::can_cast(syntax.kind()) {
20277            Some(Self { syntax })
20278        } else {
20279            None
20280        }
20281    }
20282    #[inline]
20283    fn syntax(&self) -> &SyntaxNode {
20284        &self.syntax
20285    }
20286}
20287impl AstNode for DropCast {
20288    #[inline]
20289    fn can_cast(kind: SyntaxKind) -> bool {
20290        kind == SyntaxKind::DROP_CAST
20291    }
20292    #[inline]
20293    fn cast(syntax: SyntaxNode) -> Option<Self> {
20294        if Self::can_cast(syntax.kind()) {
20295            Some(Self { syntax })
20296        } else {
20297            None
20298        }
20299    }
20300    #[inline]
20301    fn syntax(&self) -> &SyntaxNode {
20302        &self.syntax
20303    }
20304}
20305impl AstNode for DropCollation {
20306    #[inline]
20307    fn can_cast(kind: SyntaxKind) -> bool {
20308        kind == SyntaxKind::DROP_COLLATION
20309    }
20310    #[inline]
20311    fn cast(syntax: SyntaxNode) -> Option<Self> {
20312        if Self::can_cast(syntax.kind()) {
20313            Some(Self { syntax })
20314        } else {
20315            None
20316        }
20317    }
20318    #[inline]
20319    fn syntax(&self) -> &SyntaxNode {
20320        &self.syntax
20321    }
20322}
20323impl AstNode for DropColumn {
20324    #[inline]
20325    fn can_cast(kind: SyntaxKind) -> bool {
20326        kind == SyntaxKind::DROP_COLUMN
20327    }
20328    #[inline]
20329    fn cast(syntax: SyntaxNode) -> Option<Self> {
20330        if Self::can_cast(syntax.kind()) {
20331            Some(Self { syntax })
20332        } else {
20333            None
20334        }
20335    }
20336    #[inline]
20337    fn syntax(&self) -> &SyntaxNode {
20338        &self.syntax
20339    }
20340}
20341impl AstNode for DropConstraint {
20342    #[inline]
20343    fn can_cast(kind: SyntaxKind) -> bool {
20344        kind == SyntaxKind::DROP_CONSTRAINT
20345    }
20346    #[inline]
20347    fn cast(syntax: SyntaxNode) -> Option<Self> {
20348        if Self::can_cast(syntax.kind()) {
20349            Some(Self { syntax })
20350        } else {
20351            None
20352        }
20353    }
20354    #[inline]
20355    fn syntax(&self) -> &SyntaxNode {
20356        &self.syntax
20357    }
20358}
20359impl AstNode for DropConversion {
20360    #[inline]
20361    fn can_cast(kind: SyntaxKind) -> bool {
20362        kind == SyntaxKind::DROP_CONVERSION
20363    }
20364    #[inline]
20365    fn cast(syntax: SyntaxNode) -> Option<Self> {
20366        if Self::can_cast(syntax.kind()) {
20367            Some(Self { syntax })
20368        } else {
20369            None
20370        }
20371    }
20372    #[inline]
20373    fn syntax(&self) -> &SyntaxNode {
20374        &self.syntax
20375    }
20376}
20377impl AstNode for DropDatabase {
20378    #[inline]
20379    fn can_cast(kind: SyntaxKind) -> bool {
20380        kind == SyntaxKind::DROP_DATABASE
20381    }
20382    #[inline]
20383    fn cast(syntax: SyntaxNode) -> Option<Self> {
20384        if Self::can_cast(syntax.kind()) {
20385            Some(Self { syntax })
20386        } else {
20387            None
20388        }
20389    }
20390    #[inline]
20391    fn syntax(&self) -> &SyntaxNode {
20392        &self.syntax
20393    }
20394}
20395impl AstNode for DropDefault {
20396    #[inline]
20397    fn can_cast(kind: SyntaxKind) -> bool {
20398        kind == SyntaxKind::DROP_DEFAULT
20399    }
20400    #[inline]
20401    fn cast(syntax: SyntaxNode) -> Option<Self> {
20402        if Self::can_cast(syntax.kind()) {
20403            Some(Self { syntax })
20404        } else {
20405            None
20406        }
20407    }
20408    #[inline]
20409    fn syntax(&self) -> &SyntaxNode {
20410        &self.syntax
20411    }
20412}
20413impl AstNode for DropDomain {
20414    #[inline]
20415    fn can_cast(kind: SyntaxKind) -> bool {
20416        kind == SyntaxKind::DROP_DOMAIN
20417    }
20418    #[inline]
20419    fn cast(syntax: SyntaxNode) -> Option<Self> {
20420        if Self::can_cast(syntax.kind()) {
20421            Some(Self { syntax })
20422        } else {
20423            None
20424        }
20425    }
20426    #[inline]
20427    fn syntax(&self) -> &SyntaxNode {
20428        &self.syntax
20429    }
20430}
20431impl AstNode for DropEventTrigger {
20432    #[inline]
20433    fn can_cast(kind: SyntaxKind) -> bool {
20434        kind == SyntaxKind::DROP_EVENT_TRIGGER
20435    }
20436    #[inline]
20437    fn cast(syntax: SyntaxNode) -> Option<Self> {
20438        if Self::can_cast(syntax.kind()) {
20439            Some(Self { syntax })
20440        } else {
20441            None
20442        }
20443    }
20444    #[inline]
20445    fn syntax(&self) -> &SyntaxNode {
20446        &self.syntax
20447    }
20448}
20449impl AstNode for DropExpression {
20450    #[inline]
20451    fn can_cast(kind: SyntaxKind) -> bool {
20452        kind == SyntaxKind::DROP_EXPRESSION
20453    }
20454    #[inline]
20455    fn cast(syntax: SyntaxNode) -> Option<Self> {
20456        if Self::can_cast(syntax.kind()) {
20457            Some(Self { syntax })
20458        } else {
20459            None
20460        }
20461    }
20462    #[inline]
20463    fn syntax(&self) -> &SyntaxNode {
20464        &self.syntax
20465    }
20466}
20467impl AstNode for DropExtension {
20468    #[inline]
20469    fn can_cast(kind: SyntaxKind) -> bool {
20470        kind == SyntaxKind::DROP_EXTENSION
20471    }
20472    #[inline]
20473    fn cast(syntax: SyntaxNode) -> Option<Self> {
20474        if Self::can_cast(syntax.kind()) {
20475            Some(Self { syntax })
20476        } else {
20477            None
20478        }
20479    }
20480    #[inline]
20481    fn syntax(&self) -> &SyntaxNode {
20482        &self.syntax
20483    }
20484}
20485impl AstNode for DropForeignDataWrapper {
20486    #[inline]
20487    fn can_cast(kind: SyntaxKind) -> bool {
20488        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20489    }
20490    #[inline]
20491    fn cast(syntax: SyntaxNode) -> Option<Self> {
20492        if Self::can_cast(syntax.kind()) {
20493            Some(Self { syntax })
20494        } else {
20495            None
20496        }
20497    }
20498    #[inline]
20499    fn syntax(&self) -> &SyntaxNode {
20500        &self.syntax
20501    }
20502}
20503impl AstNode for DropForeignTable {
20504    #[inline]
20505    fn can_cast(kind: SyntaxKind) -> bool {
20506        kind == SyntaxKind::DROP_FOREIGN_TABLE
20507    }
20508    #[inline]
20509    fn cast(syntax: SyntaxNode) -> Option<Self> {
20510        if Self::can_cast(syntax.kind()) {
20511            Some(Self { syntax })
20512        } else {
20513            None
20514        }
20515    }
20516    #[inline]
20517    fn syntax(&self) -> &SyntaxNode {
20518        &self.syntax
20519    }
20520}
20521impl AstNode for DropFunction {
20522    #[inline]
20523    fn can_cast(kind: SyntaxKind) -> bool {
20524        kind == SyntaxKind::DROP_FUNCTION
20525    }
20526    #[inline]
20527    fn cast(syntax: SyntaxNode) -> Option<Self> {
20528        if Self::can_cast(syntax.kind()) {
20529            Some(Self { syntax })
20530        } else {
20531            None
20532        }
20533    }
20534    #[inline]
20535    fn syntax(&self) -> &SyntaxNode {
20536        &self.syntax
20537    }
20538}
20539impl AstNode for DropGroup {
20540    #[inline]
20541    fn can_cast(kind: SyntaxKind) -> bool {
20542        kind == SyntaxKind::DROP_GROUP
20543    }
20544    #[inline]
20545    fn cast(syntax: SyntaxNode) -> Option<Self> {
20546        if Self::can_cast(syntax.kind()) {
20547            Some(Self { syntax })
20548        } else {
20549            None
20550        }
20551    }
20552    #[inline]
20553    fn syntax(&self) -> &SyntaxNode {
20554        &self.syntax
20555    }
20556}
20557impl AstNode for DropIdentity {
20558    #[inline]
20559    fn can_cast(kind: SyntaxKind) -> bool {
20560        kind == SyntaxKind::DROP_IDENTITY
20561    }
20562    #[inline]
20563    fn cast(syntax: SyntaxNode) -> Option<Self> {
20564        if Self::can_cast(syntax.kind()) {
20565            Some(Self { syntax })
20566        } else {
20567            None
20568        }
20569    }
20570    #[inline]
20571    fn syntax(&self) -> &SyntaxNode {
20572        &self.syntax
20573    }
20574}
20575impl AstNode for DropIndex {
20576    #[inline]
20577    fn can_cast(kind: SyntaxKind) -> bool {
20578        kind == SyntaxKind::DROP_INDEX
20579    }
20580    #[inline]
20581    fn cast(syntax: SyntaxNode) -> Option<Self> {
20582        if Self::can_cast(syntax.kind()) {
20583            Some(Self { syntax })
20584        } else {
20585            None
20586        }
20587    }
20588    #[inline]
20589    fn syntax(&self) -> &SyntaxNode {
20590        &self.syntax
20591    }
20592}
20593impl AstNode for DropLanguage {
20594    #[inline]
20595    fn can_cast(kind: SyntaxKind) -> bool {
20596        kind == SyntaxKind::DROP_LANGUAGE
20597    }
20598    #[inline]
20599    fn cast(syntax: SyntaxNode) -> Option<Self> {
20600        if Self::can_cast(syntax.kind()) {
20601            Some(Self { syntax })
20602        } else {
20603            None
20604        }
20605    }
20606    #[inline]
20607    fn syntax(&self) -> &SyntaxNode {
20608        &self.syntax
20609    }
20610}
20611impl AstNode for DropMaterializedView {
20612    #[inline]
20613    fn can_cast(kind: SyntaxKind) -> bool {
20614        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20615    }
20616    #[inline]
20617    fn cast(syntax: SyntaxNode) -> Option<Self> {
20618        if Self::can_cast(syntax.kind()) {
20619            Some(Self { syntax })
20620        } else {
20621            None
20622        }
20623    }
20624    #[inline]
20625    fn syntax(&self) -> &SyntaxNode {
20626        &self.syntax
20627    }
20628}
20629impl AstNode for DropNotNull {
20630    #[inline]
20631    fn can_cast(kind: SyntaxKind) -> bool {
20632        kind == SyntaxKind::DROP_NOT_NULL
20633    }
20634    #[inline]
20635    fn cast(syntax: SyntaxNode) -> Option<Self> {
20636        if Self::can_cast(syntax.kind()) {
20637            Some(Self { syntax })
20638        } else {
20639            None
20640        }
20641    }
20642    #[inline]
20643    fn syntax(&self) -> &SyntaxNode {
20644        &self.syntax
20645    }
20646}
20647impl AstNode for DropOpClassOption {
20648    #[inline]
20649    fn can_cast(kind: SyntaxKind) -> bool {
20650        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20651    }
20652    #[inline]
20653    fn cast(syntax: SyntaxNode) -> Option<Self> {
20654        if Self::can_cast(syntax.kind()) {
20655            Some(Self { syntax })
20656        } else {
20657            None
20658        }
20659    }
20660    #[inline]
20661    fn syntax(&self) -> &SyntaxNode {
20662        &self.syntax
20663    }
20664}
20665impl AstNode for DropOpClassOptionList {
20666    #[inline]
20667    fn can_cast(kind: SyntaxKind) -> bool {
20668        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20669    }
20670    #[inline]
20671    fn cast(syntax: SyntaxNode) -> Option<Self> {
20672        if Self::can_cast(syntax.kind()) {
20673            Some(Self { syntax })
20674        } else {
20675            None
20676        }
20677    }
20678    #[inline]
20679    fn syntax(&self) -> &SyntaxNode {
20680        &self.syntax
20681    }
20682}
20683impl AstNode for DropOpClassOptions {
20684    #[inline]
20685    fn can_cast(kind: SyntaxKind) -> bool {
20686        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20687    }
20688    #[inline]
20689    fn cast(syntax: SyntaxNode) -> Option<Self> {
20690        if Self::can_cast(syntax.kind()) {
20691            Some(Self { syntax })
20692        } else {
20693            None
20694        }
20695    }
20696    #[inline]
20697    fn syntax(&self) -> &SyntaxNode {
20698        &self.syntax
20699    }
20700}
20701impl AstNode for DropOperator {
20702    #[inline]
20703    fn can_cast(kind: SyntaxKind) -> bool {
20704        kind == SyntaxKind::DROP_OPERATOR
20705    }
20706    #[inline]
20707    fn cast(syntax: SyntaxNode) -> Option<Self> {
20708        if Self::can_cast(syntax.kind()) {
20709            Some(Self { syntax })
20710        } else {
20711            None
20712        }
20713    }
20714    #[inline]
20715    fn syntax(&self) -> &SyntaxNode {
20716        &self.syntax
20717    }
20718}
20719impl AstNode for DropOperatorClass {
20720    #[inline]
20721    fn can_cast(kind: SyntaxKind) -> bool {
20722        kind == SyntaxKind::DROP_OPERATOR_CLASS
20723    }
20724    #[inline]
20725    fn cast(syntax: SyntaxNode) -> Option<Self> {
20726        if Self::can_cast(syntax.kind()) {
20727            Some(Self { syntax })
20728        } else {
20729            None
20730        }
20731    }
20732    #[inline]
20733    fn syntax(&self) -> &SyntaxNode {
20734        &self.syntax
20735    }
20736}
20737impl AstNode for DropOperatorFamily {
20738    #[inline]
20739    fn can_cast(kind: SyntaxKind) -> bool {
20740        kind == SyntaxKind::DROP_OPERATOR_FAMILY
20741    }
20742    #[inline]
20743    fn cast(syntax: SyntaxNode) -> Option<Self> {
20744        if Self::can_cast(syntax.kind()) {
20745            Some(Self { syntax })
20746        } else {
20747            None
20748        }
20749    }
20750    #[inline]
20751    fn syntax(&self) -> &SyntaxNode {
20752        &self.syntax
20753    }
20754}
20755impl AstNode for DropOwned {
20756    #[inline]
20757    fn can_cast(kind: SyntaxKind) -> bool {
20758        kind == SyntaxKind::DROP_OWNED
20759    }
20760    #[inline]
20761    fn cast(syntax: SyntaxNode) -> Option<Self> {
20762        if Self::can_cast(syntax.kind()) {
20763            Some(Self { syntax })
20764        } else {
20765            None
20766        }
20767    }
20768    #[inline]
20769    fn syntax(&self) -> &SyntaxNode {
20770        &self.syntax
20771    }
20772}
20773impl AstNode for DropPolicy {
20774    #[inline]
20775    fn can_cast(kind: SyntaxKind) -> bool {
20776        kind == SyntaxKind::DROP_POLICY
20777    }
20778    #[inline]
20779    fn cast(syntax: SyntaxNode) -> Option<Self> {
20780        if Self::can_cast(syntax.kind()) {
20781            Some(Self { syntax })
20782        } else {
20783            None
20784        }
20785    }
20786    #[inline]
20787    fn syntax(&self) -> &SyntaxNode {
20788        &self.syntax
20789    }
20790}
20791impl AstNode for DropProcedure {
20792    #[inline]
20793    fn can_cast(kind: SyntaxKind) -> bool {
20794        kind == SyntaxKind::DROP_PROCEDURE
20795    }
20796    #[inline]
20797    fn cast(syntax: SyntaxNode) -> Option<Self> {
20798        if Self::can_cast(syntax.kind()) {
20799            Some(Self { syntax })
20800        } else {
20801            None
20802        }
20803    }
20804    #[inline]
20805    fn syntax(&self) -> &SyntaxNode {
20806        &self.syntax
20807    }
20808}
20809impl AstNode for DropPublication {
20810    #[inline]
20811    fn can_cast(kind: SyntaxKind) -> bool {
20812        kind == SyntaxKind::DROP_PUBLICATION
20813    }
20814    #[inline]
20815    fn cast(syntax: SyntaxNode) -> Option<Self> {
20816        if Self::can_cast(syntax.kind()) {
20817            Some(Self { syntax })
20818        } else {
20819            None
20820        }
20821    }
20822    #[inline]
20823    fn syntax(&self) -> &SyntaxNode {
20824        &self.syntax
20825    }
20826}
20827impl AstNode for DropRole {
20828    #[inline]
20829    fn can_cast(kind: SyntaxKind) -> bool {
20830        kind == SyntaxKind::DROP_ROLE
20831    }
20832    #[inline]
20833    fn cast(syntax: SyntaxNode) -> Option<Self> {
20834        if Self::can_cast(syntax.kind()) {
20835            Some(Self { syntax })
20836        } else {
20837            None
20838        }
20839    }
20840    #[inline]
20841    fn syntax(&self) -> &SyntaxNode {
20842        &self.syntax
20843    }
20844}
20845impl AstNode for DropRoutine {
20846    #[inline]
20847    fn can_cast(kind: SyntaxKind) -> bool {
20848        kind == SyntaxKind::DROP_ROUTINE
20849    }
20850    #[inline]
20851    fn cast(syntax: SyntaxNode) -> Option<Self> {
20852        if Self::can_cast(syntax.kind()) {
20853            Some(Self { syntax })
20854        } else {
20855            None
20856        }
20857    }
20858    #[inline]
20859    fn syntax(&self) -> &SyntaxNode {
20860        &self.syntax
20861    }
20862}
20863impl AstNode for DropRule {
20864    #[inline]
20865    fn can_cast(kind: SyntaxKind) -> bool {
20866        kind == SyntaxKind::DROP_RULE
20867    }
20868    #[inline]
20869    fn cast(syntax: SyntaxNode) -> Option<Self> {
20870        if Self::can_cast(syntax.kind()) {
20871            Some(Self { syntax })
20872        } else {
20873            None
20874        }
20875    }
20876    #[inline]
20877    fn syntax(&self) -> &SyntaxNode {
20878        &self.syntax
20879    }
20880}
20881impl AstNode for DropSchema {
20882    #[inline]
20883    fn can_cast(kind: SyntaxKind) -> bool {
20884        kind == SyntaxKind::DROP_SCHEMA
20885    }
20886    #[inline]
20887    fn cast(syntax: SyntaxNode) -> Option<Self> {
20888        if Self::can_cast(syntax.kind()) {
20889            Some(Self { syntax })
20890        } else {
20891            None
20892        }
20893    }
20894    #[inline]
20895    fn syntax(&self) -> &SyntaxNode {
20896        &self.syntax
20897    }
20898}
20899impl AstNode for DropSequence {
20900    #[inline]
20901    fn can_cast(kind: SyntaxKind) -> bool {
20902        kind == SyntaxKind::DROP_SEQUENCE
20903    }
20904    #[inline]
20905    fn cast(syntax: SyntaxNode) -> Option<Self> {
20906        if Self::can_cast(syntax.kind()) {
20907            Some(Self { syntax })
20908        } else {
20909            None
20910        }
20911    }
20912    #[inline]
20913    fn syntax(&self) -> &SyntaxNode {
20914        &self.syntax
20915    }
20916}
20917impl AstNode for DropServer {
20918    #[inline]
20919    fn can_cast(kind: SyntaxKind) -> bool {
20920        kind == SyntaxKind::DROP_SERVER
20921    }
20922    #[inline]
20923    fn cast(syntax: SyntaxNode) -> Option<Self> {
20924        if Self::can_cast(syntax.kind()) {
20925            Some(Self { syntax })
20926        } else {
20927            None
20928        }
20929    }
20930    #[inline]
20931    fn syntax(&self) -> &SyntaxNode {
20932        &self.syntax
20933    }
20934}
20935impl AstNode for DropStatistics {
20936    #[inline]
20937    fn can_cast(kind: SyntaxKind) -> bool {
20938        kind == SyntaxKind::DROP_STATISTICS
20939    }
20940    #[inline]
20941    fn cast(syntax: SyntaxNode) -> Option<Self> {
20942        if Self::can_cast(syntax.kind()) {
20943            Some(Self { syntax })
20944        } else {
20945            None
20946        }
20947    }
20948    #[inline]
20949    fn syntax(&self) -> &SyntaxNode {
20950        &self.syntax
20951    }
20952}
20953impl AstNode for DropSubscription {
20954    #[inline]
20955    fn can_cast(kind: SyntaxKind) -> bool {
20956        kind == SyntaxKind::DROP_SUBSCRIPTION
20957    }
20958    #[inline]
20959    fn cast(syntax: SyntaxNode) -> Option<Self> {
20960        if Self::can_cast(syntax.kind()) {
20961            Some(Self { syntax })
20962        } else {
20963            None
20964        }
20965    }
20966    #[inline]
20967    fn syntax(&self) -> &SyntaxNode {
20968        &self.syntax
20969    }
20970}
20971impl AstNode for DropTable {
20972    #[inline]
20973    fn can_cast(kind: SyntaxKind) -> bool {
20974        kind == SyntaxKind::DROP_TABLE
20975    }
20976    #[inline]
20977    fn cast(syntax: SyntaxNode) -> Option<Self> {
20978        if Self::can_cast(syntax.kind()) {
20979            Some(Self { syntax })
20980        } else {
20981            None
20982        }
20983    }
20984    #[inline]
20985    fn syntax(&self) -> &SyntaxNode {
20986        &self.syntax
20987    }
20988}
20989impl AstNode for DropTablespace {
20990    #[inline]
20991    fn can_cast(kind: SyntaxKind) -> bool {
20992        kind == SyntaxKind::DROP_TABLESPACE
20993    }
20994    #[inline]
20995    fn cast(syntax: SyntaxNode) -> Option<Self> {
20996        if Self::can_cast(syntax.kind()) {
20997            Some(Self { syntax })
20998        } else {
20999            None
21000        }
21001    }
21002    #[inline]
21003    fn syntax(&self) -> &SyntaxNode {
21004        &self.syntax
21005    }
21006}
21007impl AstNode for DropTextSearchConfig {
21008    #[inline]
21009    fn can_cast(kind: SyntaxKind) -> bool {
21010        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
21011    }
21012    #[inline]
21013    fn cast(syntax: SyntaxNode) -> Option<Self> {
21014        if Self::can_cast(syntax.kind()) {
21015            Some(Self { syntax })
21016        } else {
21017            None
21018        }
21019    }
21020    #[inline]
21021    fn syntax(&self) -> &SyntaxNode {
21022        &self.syntax
21023    }
21024}
21025impl AstNode for DropTextSearchDict {
21026    #[inline]
21027    fn can_cast(kind: SyntaxKind) -> bool {
21028        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
21029    }
21030    #[inline]
21031    fn cast(syntax: SyntaxNode) -> Option<Self> {
21032        if Self::can_cast(syntax.kind()) {
21033            Some(Self { syntax })
21034        } else {
21035            None
21036        }
21037    }
21038    #[inline]
21039    fn syntax(&self) -> &SyntaxNode {
21040        &self.syntax
21041    }
21042}
21043impl AstNode for DropTextSearchParser {
21044    #[inline]
21045    fn can_cast(kind: SyntaxKind) -> bool {
21046        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
21047    }
21048    #[inline]
21049    fn cast(syntax: SyntaxNode) -> Option<Self> {
21050        if Self::can_cast(syntax.kind()) {
21051            Some(Self { syntax })
21052        } else {
21053            None
21054        }
21055    }
21056    #[inline]
21057    fn syntax(&self) -> &SyntaxNode {
21058        &self.syntax
21059    }
21060}
21061impl AstNode for DropTextSearchTemplate {
21062    #[inline]
21063    fn can_cast(kind: SyntaxKind) -> bool {
21064        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
21065    }
21066    #[inline]
21067    fn cast(syntax: SyntaxNode) -> Option<Self> {
21068        if Self::can_cast(syntax.kind()) {
21069            Some(Self { syntax })
21070        } else {
21071            None
21072        }
21073    }
21074    #[inline]
21075    fn syntax(&self) -> &SyntaxNode {
21076        &self.syntax
21077    }
21078}
21079impl AstNode for DropTransform {
21080    #[inline]
21081    fn can_cast(kind: SyntaxKind) -> bool {
21082        kind == SyntaxKind::DROP_TRANSFORM
21083    }
21084    #[inline]
21085    fn cast(syntax: SyntaxNode) -> Option<Self> {
21086        if Self::can_cast(syntax.kind()) {
21087            Some(Self { syntax })
21088        } else {
21089            None
21090        }
21091    }
21092    #[inline]
21093    fn syntax(&self) -> &SyntaxNode {
21094        &self.syntax
21095    }
21096}
21097impl AstNode for DropTrigger {
21098    #[inline]
21099    fn can_cast(kind: SyntaxKind) -> bool {
21100        kind == SyntaxKind::DROP_TRIGGER
21101    }
21102    #[inline]
21103    fn cast(syntax: SyntaxNode) -> Option<Self> {
21104        if Self::can_cast(syntax.kind()) {
21105            Some(Self { syntax })
21106        } else {
21107            None
21108        }
21109    }
21110    #[inline]
21111    fn syntax(&self) -> &SyntaxNode {
21112        &self.syntax
21113    }
21114}
21115impl AstNode for DropType {
21116    #[inline]
21117    fn can_cast(kind: SyntaxKind) -> bool {
21118        kind == SyntaxKind::DROP_TYPE
21119    }
21120    #[inline]
21121    fn cast(syntax: SyntaxNode) -> Option<Self> {
21122        if Self::can_cast(syntax.kind()) {
21123            Some(Self { syntax })
21124        } else {
21125            None
21126        }
21127    }
21128    #[inline]
21129    fn syntax(&self) -> &SyntaxNode {
21130        &self.syntax
21131    }
21132}
21133impl AstNode for DropUser {
21134    #[inline]
21135    fn can_cast(kind: SyntaxKind) -> bool {
21136        kind == SyntaxKind::DROP_USER
21137    }
21138    #[inline]
21139    fn cast(syntax: SyntaxNode) -> Option<Self> {
21140        if Self::can_cast(syntax.kind()) {
21141            Some(Self { syntax })
21142        } else {
21143            None
21144        }
21145    }
21146    #[inline]
21147    fn syntax(&self) -> &SyntaxNode {
21148        &self.syntax
21149    }
21150}
21151impl AstNode for DropUserMapping {
21152    #[inline]
21153    fn can_cast(kind: SyntaxKind) -> bool {
21154        kind == SyntaxKind::DROP_USER_MAPPING
21155    }
21156    #[inline]
21157    fn cast(syntax: SyntaxNode) -> Option<Self> {
21158        if Self::can_cast(syntax.kind()) {
21159            Some(Self { syntax })
21160        } else {
21161            None
21162        }
21163    }
21164    #[inline]
21165    fn syntax(&self) -> &SyntaxNode {
21166        &self.syntax
21167    }
21168}
21169impl AstNode for DropView {
21170    #[inline]
21171    fn can_cast(kind: SyntaxKind) -> bool {
21172        kind == SyntaxKind::DROP_VIEW
21173    }
21174    #[inline]
21175    fn cast(syntax: SyntaxNode) -> Option<Self> {
21176        if Self::can_cast(syntax.kind()) {
21177            Some(Self { syntax })
21178        } else {
21179            None
21180        }
21181    }
21182    #[inline]
21183    fn syntax(&self) -> &SyntaxNode {
21184        &self.syntax
21185    }
21186}
21187impl AstNode for ElseClause {
21188    #[inline]
21189    fn can_cast(kind: SyntaxKind) -> bool {
21190        kind == SyntaxKind::ELSE_CLAUSE
21191    }
21192    #[inline]
21193    fn cast(syntax: SyntaxNode) -> Option<Self> {
21194        if Self::can_cast(syntax.kind()) {
21195            Some(Self { syntax })
21196        } else {
21197            None
21198        }
21199    }
21200    #[inline]
21201    fn syntax(&self) -> &SyntaxNode {
21202        &self.syntax
21203    }
21204}
21205impl AstNode for EnableAlwaysRule {
21206    #[inline]
21207    fn can_cast(kind: SyntaxKind) -> bool {
21208        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21209    }
21210    #[inline]
21211    fn cast(syntax: SyntaxNode) -> Option<Self> {
21212        if Self::can_cast(syntax.kind()) {
21213            Some(Self { syntax })
21214        } else {
21215            None
21216        }
21217    }
21218    #[inline]
21219    fn syntax(&self) -> &SyntaxNode {
21220        &self.syntax
21221    }
21222}
21223impl AstNode for EnableAlwaysTrigger {
21224    #[inline]
21225    fn can_cast(kind: SyntaxKind) -> bool {
21226        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21227    }
21228    #[inline]
21229    fn cast(syntax: SyntaxNode) -> Option<Self> {
21230        if Self::can_cast(syntax.kind()) {
21231            Some(Self { syntax })
21232        } else {
21233            None
21234        }
21235    }
21236    #[inline]
21237    fn syntax(&self) -> &SyntaxNode {
21238        &self.syntax
21239    }
21240}
21241impl AstNode for EnableReplicaRule {
21242    #[inline]
21243    fn can_cast(kind: SyntaxKind) -> bool {
21244        kind == SyntaxKind::ENABLE_REPLICA_RULE
21245    }
21246    #[inline]
21247    fn cast(syntax: SyntaxNode) -> Option<Self> {
21248        if Self::can_cast(syntax.kind()) {
21249            Some(Self { syntax })
21250        } else {
21251            None
21252        }
21253    }
21254    #[inline]
21255    fn syntax(&self) -> &SyntaxNode {
21256        &self.syntax
21257    }
21258}
21259impl AstNode for EnableReplicaTrigger {
21260    #[inline]
21261    fn can_cast(kind: SyntaxKind) -> bool {
21262        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21263    }
21264    #[inline]
21265    fn cast(syntax: SyntaxNode) -> Option<Self> {
21266        if Self::can_cast(syntax.kind()) {
21267            Some(Self { syntax })
21268        } else {
21269            None
21270        }
21271    }
21272    #[inline]
21273    fn syntax(&self) -> &SyntaxNode {
21274        &self.syntax
21275    }
21276}
21277impl AstNode for EnableRls {
21278    #[inline]
21279    fn can_cast(kind: SyntaxKind) -> bool {
21280        kind == SyntaxKind::ENABLE_RLS
21281    }
21282    #[inline]
21283    fn cast(syntax: SyntaxNode) -> Option<Self> {
21284        if Self::can_cast(syntax.kind()) {
21285            Some(Self { syntax })
21286        } else {
21287            None
21288        }
21289    }
21290    #[inline]
21291    fn syntax(&self) -> &SyntaxNode {
21292        &self.syntax
21293    }
21294}
21295impl AstNode for EnableRule {
21296    #[inline]
21297    fn can_cast(kind: SyntaxKind) -> bool {
21298        kind == SyntaxKind::ENABLE_RULE
21299    }
21300    #[inline]
21301    fn cast(syntax: SyntaxNode) -> Option<Self> {
21302        if Self::can_cast(syntax.kind()) {
21303            Some(Self { syntax })
21304        } else {
21305            None
21306        }
21307    }
21308    #[inline]
21309    fn syntax(&self) -> &SyntaxNode {
21310        &self.syntax
21311    }
21312}
21313impl AstNode for EnableTrigger {
21314    #[inline]
21315    fn can_cast(kind: SyntaxKind) -> bool {
21316        kind == SyntaxKind::ENABLE_TRIGGER
21317    }
21318    #[inline]
21319    fn cast(syntax: SyntaxNode) -> Option<Self> {
21320        if Self::can_cast(syntax.kind()) {
21321            Some(Self { syntax })
21322        } else {
21323            None
21324        }
21325    }
21326    #[inline]
21327    fn syntax(&self) -> &SyntaxNode {
21328        &self.syntax
21329    }
21330}
21331impl AstNode for Enforced {
21332    #[inline]
21333    fn can_cast(kind: SyntaxKind) -> bool {
21334        kind == SyntaxKind::ENFORCED
21335    }
21336    #[inline]
21337    fn cast(syntax: SyntaxNode) -> Option<Self> {
21338        if Self::can_cast(syntax.kind()) {
21339            Some(Self { syntax })
21340        } else {
21341            None
21342        }
21343    }
21344    #[inline]
21345    fn syntax(&self) -> &SyntaxNode {
21346        &self.syntax
21347    }
21348}
21349impl AstNode for EventTriggerWhen {
21350    #[inline]
21351    fn can_cast(kind: SyntaxKind) -> bool {
21352        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21353    }
21354    #[inline]
21355    fn cast(syntax: SyntaxNode) -> Option<Self> {
21356        if Self::can_cast(syntax.kind()) {
21357            Some(Self { syntax })
21358        } else {
21359            None
21360        }
21361    }
21362    #[inline]
21363    fn syntax(&self) -> &SyntaxNode {
21364        &self.syntax
21365    }
21366}
21367impl AstNode for EventTriggerWhenClause {
21368    #[inline]
21369    fn can_cast(kind: SyntaxKind) -> bool {
21370        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21371    }
21372    #[inline]
21373    fn cast(syntax: SyntaxNode) -> Option<Self> {
21374        if Self::can_cast(syntax.kind()) {
21375            Some(Self { syntax })
21376        } else {
21377            None
21378        }
21379    }
21380    #[inline]
21381    fn syntax(&self) -> &SyntaxNode {
21382        &self.syntax
21383    }
21384}
21385impl AstNode for ExceptTables {
21386    #[inline]
21387    fn can_cast(kind: SyntaxKind) -> bool {
21388        kind == SyntaxKind::EXCEPT_TABLES
21389    }
21390    #[inline]
21391    fn cast(syntax: SyntaxNode) -> Option<Self> {
21392        if Self::can_cast(syntax.kind()) {
21393            Some(Self { syntax })
21394        } else {
21395            None
21396        }
21397    }
21398    #[inline]
21399    fn syntax(&self) -> &SyntaxNode {
21400        &self.syntax
21401    }
21402}
21403impl AstNode for ExcludeConstraint {
21404    #[inline]
21405    fn can_cast(kind: SyntaxKind) -> bool {
21406        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21407    }
21408    #[inline]
21409    fn cast(syntax: SyntaxNode) -> Option<Self> {
21410        if Self::can_cast(syntax.kind()) {
21411            Some(Self { syntax })
21412        } else {
21413            None
21414        }
21415    }
21416    #[inline]
21417    fn syntax(&self) -> &SyntaxNode {
21418        &self.syntax
21419    }
21420}
21421impl AstNode for Execute {
21422    #[inline]
21423    fn can_cast(kind: SyntaxKind) -> bool {
21424        kind == SyntaxKind::EXECUTE
21425    }
21426    #[inline]
21427    fn cast(syntax: SyntaxNode) -> Option<Self> {
21428        if Self::can_cast(syntax.kind()) {
21429            Some(Self { syntax })
21430        } else {
21431            None
21432        }
21433    }
21434    #[inline]
21435    fn syntax(&self) -> &SyntaxNode {
21436        &self.syntax
21437    }
21438}
21439impl AstNode for ExistsFn {
21440    #[inline]
21441    fn can_cast(kind: SyntaxKind) -> bool {
21442        kind == SyntaxKind::EXISTS_FN
21443    }
21444    #[inline]
21445    fn cast(syntax: SyntaxNode) -> Option<Self> {
21446        if Self::can_cast(syntax.kind()) {
21447            Some(Self { syntax })
21448        } else {
21449            None
21450        }
21451    }
21452    #[inline]
21453    fn syntax(&self) -> &SyntaxNode {
21454        &self.syntax
21455    }
21456}
21457impl AstNode for Explain {
21458    #[inline]
21459    fn can_cast(kind: SyntaxKind) -> bool {
21460        kind == SyntaxKind::EXPLAIN
21461    }
21462    #[inline]
21463    fn cast(syntax: SyntaxNode) -> Option<Self> {
21464        if Self::can_cast(syntax.kind()) {
21465            Some(Self { syntax })
21466        } else {
21467            None
21468        }
21469    }
21470    #[inline]
21471    fn syntax(&self) -> &SyntaxNode {
21472        &self.syntax
21473    }
21474}
21475impl AstNode for ExprAsName {
21476    #[inline]
21477    fn can_cast(kind: SyntaxKind) -> bool {
21478        kind == SyntaxKind::EXPR_AS_NAME
21479    }
21480    #[inline]
21481    fn cast(syntax: SyntaxNode) -> Option<Self> {
21482        if Self::can_cast(syntax.kind()) {
21483            Some(Self { syntax })
21484        } else {
21485            None
21486        }
21487    }
21488    #[inline]
21489    fn syntax(&self) -> &SyntaxNode {
21490        &self.syntax
21491    }
21492}
21493impl AstNode for ExprType {
21494    #[inline]
21495    fn can_cast(kind: SyntaxKind) -> bool {
21496        kind == SyntaxKind::EXPR_TYPE
21497    }
21498    #[inline]
21499    fn cast(syntax: SyntaxNode) -> Option<Self> {
21500        if Self::can_cast(syntax.kind()) {
21501            Some(Self { syntax })
21502        } else {
21503            None
21504        }
21505    }
21506    #[inline]
21507    fn syntax(&self) -> &SyntaxNode {
21508        &self.syntax
21509    }
21510}
21511impl AstNode for ExtractFn {
21512    #[inline]
21513    fn can_cast(kind: SyntaxKind) -> bool {
21514        kind == SyntaxKind::EXTRACT_FN
21515    }
21516    #[inline]
21517    fn cast(syntax: SyntaxNode) -> Option<Self> {
21518        if Self::can_cast(syntax.kind()) {
21519            Some(Self { syntax })
21520        } else {
21521            None
21522        }
21523    }
21524    #[inline]
21525    fn syntax(&self) -> &SyntaxNode {
21526        &self.syntax
21527    }
21528}
21529impl AstNode for FatArrow {
21530    #[inline]
21531    fn can_cast(kind: SyntaxKind) -> bool {
21532        kind == SyntaxKind::FAT_ARROW
21533    }
21534    #[inline]
21535    fn cast(syntax: SyntaxNode) -> Option<Self> {
21536        if Self::can_cast(syntax.kind()) {
21537            Some(Self { syntax })
21538        } else {
21539            None
21540        }
21541    }
21542    #[inline]
21543    fn syntax(&self) -> &SyntaxNode {
21544        &self.syntax
21545    }
21546}
21547impl AstNode for FdwOption {
21548    #[inline]
21549    fn can_cast(kind: SyntaxKind) -> bool {
21550        kind == SyntaxKind::FDW_OPTION
21551    }
21552    #[inline]
21553    fn cast(syntax: SyntaxNode) -> Option<Self> {
21554        if Self::can_cast(syntax.kind()) {
21555            Some(Self { syntax })
21556        } else {
21557            None
21558        }
21559    }
21560    #[inline]
21561    fn syntax(&self) -> &SyntaxNode {
21562        &self.syntax
21563    }
21564}
21565impl AstNode for FdwOptionList {
21566    #[inline]
21567    fn can_cast(kind: SyntaxKind) -> bool {
21568        kind == SyntaxKind::FDW_OPTION_LIST
21569    }
21570    #[inline]
21571    fn cast(syntax: SyntaxNode) -> Option<Self> {
21572        if Self::can_cast(syntax.kind()) {
21573            Some(Self { syntax })
21574        } else {
21575            None
21576        }
21577    }
21578    #[inline]
21579    fn syntax(&self) -> &SyntaxNode {
21580        &self.syntax
21581    }
21582}
21583impl AstNode for Fetch {
21584    #[inline]
21585    fn can_cast(kind: SyntaxKind) -> bool {
21586        kind == SyntaxKind::FETCH
21587    }
21588    #[inline]
21589    fn cast(syntax: SyntaxNode) -> Option<Self> {
21590        if Self::can_cast(syntax.kind()) {
21591            Some(Self { syntax })
21592        } else {
21593            None
21594        }
21595    }
21596    #[inline]
21597    fn syntax(&self) -> &SyntaxNode {
21598        &self.syntax
21599    }
21600}
21601impl AstNode for FetchClause {
21602    #[inline]
21603    fn can_cast(kind: SyntaxKind) -> bool {
21604        kind == SyntaxKind::FETCH_CLAUSE
21605    }
21606    #[inline]
21607    fn cast(syntax: SyntaxNode) -> Option<Self> {
21608        if Self::can_cast(syntax.kind()) {
21609            Some(Self { syntax })
21610        } else {
21611            None
21612        }
21613    }
21614    #[inline]
21615    fn syntax(&self) -> &SyntaxNode {
21616        &self.syntax
21617    }
21618}
21619impl AstNode for FieldExpr {
21620    #[inline]
21621    fn can_cast(kind: SyntaxKind) -> bool {
21622        kind == SyntaxKind::FIELD_EXPR
21623    }
21624    #[inline]
21625    fn cast(syntax: SyntaxNode) -> Option<Self> {
21626        if Self::can_cast(syntax.kind()) {
21627            Some(Self { syntax })
21628        } else {
21629            None
21630        }
21631    }
21632    #[inline]
21633    fn syntax(&self) -> &SyntaxNode {
21634        &self.syntax
21635    }
21636}
21637impl AstNode for FilterClause {
21638    #[inline]
21639    fn can_cast(kind: SyntaxKind) -> bool {
21640        kind == SyntaxKind::FILTER_CLAUSE
21641    }
21642    #[inline]
21643    fn cast(syntax: SyntaxNode) -> Option<Self> {
21644        if Self::can_cast(syntax.kind()) {
21645            Some(Self { syntax })
21646        } else {
21647            None
21648        }
21649    }
21650    #[inline]
21651    fn syntax(&self) -> &SyntaxNode {
21652        &self.syntax
21653    }
21654}
21655impl AstNode for ForProvider {
21656    #[inline]
21657    fn can_cast(kind: SyntaxKind) -> bool {
21658        kind == SyntaxKind::FOR_PROVIDER
21659    }
21660    #[inline]
21661    fn cast(syntax: SyntaxNode) -> Option<Self> {
21662        if Self::can_cast(syntax.kind()) {
21663            Some(Self { syntax })
21664        } else {
21665            None
21666        }
21667    }
21668    #[inline]
21669    fn syntax(&self) -> &SyntaxNode {
21670        &self.syntax
21671    }
21672}
21673impl AstNode for ForceRls {
21674    #[inline]
21675    fn can_cast(kind: SyntaxKind) -> bool {
21676        kind == SyntaxKind::FORCE_RLS
21677    }
21678    #[inline]
21679    fn cast(syntax: SyntaxNode) -> Option<Self> {
21680        if Self::can_cast(syntax.kind()) {
21681            Some(Self { syntax })
21682        } else {
21683            None
21684        }
21685    }
21686    #[inline]
21687    fn syntax(&self) -> &SyntaxNode {
21688        &self.syntax
21689    }
21690}
21691impl AstNode for ForeignKeyConstraint {
21692    #[inline]
21693    fn can_cast(kind: SyntaxKind) -> bool {
21694        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21695    }
21696    #[inline]
21697    fn cast(syntax: SyntaxNode) -> Option<Self> {
21698        if Self::can_cast(syntax.kind()) {
21699            Some(Self { syntax })
21700        } else {
21701            None
21702        }
21703    }
21704    #[inline]
21705    fn syntax(&self) -> &SyntaxNode {
21706        &self.syntax
21707    }
21708}
21709impl AstNode for FrameClause {
21710    #[inline]
21711    fn can_cast(kind: SyntaxKind) -> bool {
21712        kind == SyntaxKind::FRAME_CLAUSE
21713    }
21714    #[inline]
21715    fn cast(syntax: SyntaxNode) -> Option<Self> {
21716        if Self::can_cast(syntax.kind()) {
21717            Some(Self { syntax })
21718        } else {
21719            None
21720        }
21721    }
21722    #[inline]
21723    fn syntax(&self) -> &SyntaxNode {
21724        &self.syntax
21725    }
21726}
21727impl AstNode for FromClause {
21728    #[inline]
21729    fn can_cast(kind: SyntaxKind) -> bool {
21730        kind == SyntaxKind::FROM_CLAUSE
21731    }
21732    #[inline]
21733    fn cast(syntax: SyntaxNode) -> Option<Self> {
21734        if Self::can_cast(syntax.kind()) {
21735            Some(Self { syntax })
21736        } else {
21737            None
21738        }
21739    }
21740    #[inline]
21741    fn syntax(&self) -> &SyntaxNode {
21742        &self.syntax
21743    }
21744}
21745impl AstNode for FromItem {
21746    #[inline]
21747    fn can_cast(kind: SyntaxKind) -> bool {
21748        kind == SyntaxKind::FROM_ITEM
21749    }
21750    #[inline]
21751    fn cast(syntax: SyntaxNode) -> Option<Self> {
21752        if Self::can_cast(syntax.kind()) {
21753            Some(Self { syntax })
21754        } else {
21755            None
21756        }
21757    }
21758    #[inline]
21759    fn syntax(&self) -> &SyntaxNode {
21760        &self.syntax
21761    }
21762}
21763impl AstNode for FromTable {
21764    #[inline]
21765    fn can_cast(kind: SyntaxKind) -> bool {
21766        kind == SyntaxKind::FROM_TABLE
21767    }
21768    #[inline]
21769    fn cast(syntax: SyntaxNode) -> Option<Self> {
21770        if Self::can_cast(syntax.kind()) {
21771            Some(Self { syntax })
21772        } else {
21773            None
21774        }
21775    }
21776    #[inline]
21777    fn syntax(&self) -> &SyntaxNode {
21778        &self.syntax
21779    }
21780}
21781impl AstNode for FuncOptionList {
21782    #[inline]
21783    fn can_cast(kind: SyntaxKind) -> bool {
21784        kind == SyntaxKind::FUNC_OPTION_LIST
21785    }
21786    #[inline]
21787    fn cast(syntax: SyntaxNode) -> Option<Self> {
21788        if Self::can_cast(syntax.kind()) {
21789            Some(Self { syntax })
21790        } else {
21791            None
21792        }
21793    }
21794    #[inline]
21795    fn syntax(&self) -> &SyntaxNode {
21796        &self.syntax
21797    }
21798}
21799impl AstNode for FunctionSig {
21800    #[inline]
21801    fn can_cast(kind: SyntaxKind) -> bool {
21802        kind == SyntaxKind::FUNCTION_SIG
21803    }
21804    #[inline]
21805    fn cast(syntax: SyntaxNode) -> Option<Self> {
21806        if Self::can_cast(syntax.kind()) {
21807            Some(Self { syntax })
21808        } else {
21809            None
21810        }
21811    }
21812    #[inline]
21813    fn syntax(&self) -> &SyntaxNode {
21814        &self.syntax
21815    }
21816}
21817impl AstNode for FunctionSigList {
21818    #[inline]
21819    fn can_cast(kind: SyntaxKind) -> bool {
21820        kind == SyntaxKind::FUNCTION_SIG_LIST
21821    }
21822    #[inline]
21823    fn cast(syntax: SyntaxNode) -> Option<Self> {
21824        if Self::can_cast(syntax.kind()) {
21825            Some(Self { syntax })
21826        } else {
21827            None
21828        }
21829    }
21830    #[inline]
21831    fn syntax(&self) -> &SyntaxNode {
21832        &self.syntax
21833    }
21834}
21835impl AstNode for GeneratedConstraint {
21836    #[inline]
21837    fn can_cast(kind: SyntaxKind) -> bool {
21838        kind == SyntaxKind::GENERATED_CONSTRAINT
21839    }
21840    #[inline]
21841    fn cast(syntax: SyntaxNode) -> Option<Self> {
21842        if Self::can_cast(syntax.kind()) {
21843            Some(Self { syntax })
21844        } else {
21845            None
21846        }
21847    }
21848    #[inline]
21849    fn syntax(&self) -> &SyntaxNode {
21850        &self.syntax
21851    }
21852}
21853impl AstNode for Grant {
21854    #[inline]
21855    fn can_cast(kind: SyntaxKind) -> bool {
21856        kind == SyntaxKind::GRANT
21857    }
21858    #[inline]
21859    fn cast(syntax: SyntaxNode) -> Option<Self> {
21860        if Self::can_cast(syntax.kind()) {
21861            Some(Self { syntax })
21862        } else {
21863            None
21864        }
21865    }
21866    #[inline]
21867    fn syntax(&self) -> &SyntaxNode {
21868        &self.syntax
21869    }
21870}
21871impl AstNode for GrantDefaultPrivileges {
21872    #[inline]
21873    fn can_cast(kind: SyntaxKind) -> bool {
21874        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
21875    }
21876    #[inline]
21877    fn cast(syntax: SyntaxNode) -> Option<Self> {
21878        if Self::can_cast(syntax.kind()) {
21879            Some(Self { syntax })
21880        } else {
21881            None
21882        }
21883    }
21884    #[inline]
21885    fn syntax(&self) -> &SyntaxNode {
21886        &self.syntax
21887    }
21888}
21889impl AstNode for GroupByClause {
21890    #[inline]
21891    fn can_cast(kind: SyntaxKind) -> bool {
21892        kind == SyntaxKind::GROUP_BY_CLAUSE
21893    }
21894    #[inline]
21895    fn cast(syntax: SyntaxNode) -> Option<Self> {
21896        if Self::can_cast(syntax.kind()) {
21897            Some(Self { syntax })
21898        } else {
21899            None
21900        }
21901    }
21902    #[inline]
21903    fn syntax(&self) -> &SyntaxNode {
21904        &self.syntax
21905    }
21906}
21907impl AstNode for GroupByList {
21908    #[inline]
21909    fn can_cast(kind: SyntaxKind) -> bool {
21910        kind == SyntaxKind::GROUP_BY_LIST
21911    }
21912    #[inline]
21913    fn cast(syntax: SyntaxNode) -> Option<Self> {
21914        if Self::can_cast(syntax.kind()) {
21915            Some(Self { syntax })
21916        } else {
21917            None
21918        }
21919    }
21920    #[inline]
21921    fn syntax(&self) -> &SyntaxNode {
21922        &self.syntax
21923    }
21924}
21925impl AstNode for GroupingCube {
21926    #[inline]
21927    fn can_cast(kind: SyntaxKind) -> bool {
21928        kind == SyntaxKind::GROUPING_CUBE
21929    }
21930    #[inline]
21931    fn cast(syntax: SyntaxNode) -> Option<Self> {
21932        if Self::can_cast(syntax.kind()) {
21933            Some(Self { syntax })
21934        } else {
21935            None
21936        }
21937    }
21938    #[inline]
21939    fn syntax(&self) -> &SyntaxNode {
21940        &self.syntax
21941    }
21942}
21943impl AstNode for GroupingExpr {
21944    #[inline]
21945    fn can_cast(kind: SyntaxKind) -> bool {
21946        kind == SyntaxKind::GROUPING_EXPR
21947    }
21948    #[inline]
21949    fn cast(syntax: SyntaxNode) -> Option<Self> {
21950        if Self::can_cast(syntax.kind()) {
21951            Some(Self { syntax })
21952        } else {
21953            None
21954        }
21955    }
21956    #[inline]
21957    fn syntax(&self) -> &SyntaxNode {
21958        &self.syntax
21959    }
21960}
21961impl AstNode for GroupingRollup {
21962    #[inline]
21963    fn can_cast(kind: SyntaxKind) -> bool {
21964        kind == SyntaxKind::GROUPING_ROLLUP
21965    }
21966    #[inline]
21967    fn cast(syntax: SyntaxNode) -> Option<Self> {
21968        if Self::can_cast(syntax.kind()) {
21969            Some(Self { syntax })
21970        } else {
21971            None
21972        }
21973    }
21974    #[inline]
21975    fn syntax(&self) -> &SyntaxNode {
21976        &self.syntax
21977    }
21978}
21979impl AstNode for GroupingSets {
21980    #[inline]
21981    fn can_cast(kind: SyntaxKind) -> bool {
21982        kind == SyntaxKind::GROUPING_SETS
21983    }
21984    #[inline]
21985    fn cast(syntax: SyntaxNode) -> Option<Self> {
21986        if Self::can_cast(syntax.kind()) {
21987            Some(Self { syntax })
21988        } else {
21989            None
21990        }
21991    }
21992    #[inline]
21993    fn syntax(&self) -> &SyntaxNode {
21994        &self.syntax
21995    }
21996}
21997impl AstNode for Gteq {
21998    #[inline]
21999    fn can_cast(kind: SyntaxKind) -> bool {
22000        kind == SyntaxKind::GTEQ
22001    }
22002    #[inline]
22003    fn cast(syntax: SyntaxNode) -> Option<Self> {
22004        if Self::can_cast(syntax.kind()) {
22005            Some(Self { syntax })
22006        } else {
22007            None
22008        }
22009    }
22010    #[inline]
22011    fn syntax(&self) -> &SyntaxNode {
22012        &self.syntax
22013    }
22014}
22015impl AstNode for HandlerClause {
22016    #[inline]
22017    fn can_cast(kind: SyntaxKind) -> bool {
22018        kind == SyntaxKind::HANDLER_CLAUSE
22019    }
22020    #[inline]
22021    fn cast(syntax: SyntaxNode) -> Option<Self> {
22022        if Self::can_cast(syntax.kind()) {
22023            Some(Self { syntax })
22024        } else {
22025            None
22026        }
22027    }
22028    #[inline]
22029    fn syntax(&self) -> &SyntaxNode {
22030        &self.syntax
22031    }
22032}
22033impl AstNode for HavingClause {
22034    #[inline]
22035    fn can_cast(kind: SyntaxKind) -> bool {
22036        kind == SyntaxKind::HAVING_CLAUSE
22037    }
22038    #[inline]
22039    fn cast(syntax: SyntaxNode) -> Option<Self> {
22040        if Self::can_cast(syntax.kind()) {
22041            Some(Self { syntax })
22042        } else {
22043            None
22044        }
22045    }
22046    #[inline]
22047    fn syntax(&self) -> &SyntaxNode {
22048        &self.syntax
22049    }
22050}
22051impl AstNode for IfExists {
22052    #[inline]
22053    fn can_cast(kind: SyntaxKind) -> bool {
22054        kind == SyntaxKind::IF_EXISTS
22055    }
22056    #[inline]
22057    fn cast(syntax: SyntaxNode) -> Option<Self> {
22058        if Self::can_cast(syntax.kind()) {
22059            Some(Self { syntax })
22060        } else {
22061            None
22062        }
22063    }
22064    #[inline]
22065    fn syntax(&self) -> &SyntaxNode {
22066        &self.syntax
22067    }
22068}
22069impl AstNode for IfNotExists {
22070    #[inline]
22071    fn can_cast(kind: SyntaxKind) -> bool {
22072        kind == SyntaxKind::IF_NOT_EXISTS
22073    }
22074    #[inline]
22075    fn cast(syntax: SyntaxNode) -> Option<Self> {
22076        if Self::can_cast(syntax.kind()) {
22077            Some(Self { syntax })
22078        } else {
22079            None
22080        }
22081    }
22082    #[inline]
22083    fn syntax(&self) -> &SyntaxNode {
22084        &self.syntax
22085    }
22086}
22087impl AstNode for ImportForeignSchema {
22088    #[inline]
22089    fn can_cast(kind: SyntaxKind) -> bool {
22090        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
22091    }
22092    #[inline]
22093    fn cast(syntax: SyntaxNode) -> Option<Self> {
22094        if Self::can_cast(syntax.kind()) {
22095            Some(Self { syntax })
22096        } else {
22097            None
22098        }
22099    }
22100    #[inline]
22101    fn syntax(&self) -> &SyntaxNode {
22102        &self.syntax
22103    }
22104}
22105impl AstNode for IndexExpr {
22106    #[inline]
22107    fn can_cast(kind: SyntaxKind) -> bool {
22108        kind == SyntaxKind::INDEX_EXPR
22109    }
22110    #[inline]
22111    fn cast(syntax: SyntaxNode) -> Option<Self> {
22112        if Self::can_cast(syntax.kind()) {
22113            Some(Self { syntax })
22114        } else {
22115            None
22116        }
22117    }
22118    #[inline]
22119    fn syntax(&self) -> &SyntaxNode {
22120        &self.syntax
22121    }
22122}
22123impl AstNode for Inherit {
22124    #[inline]
22125    fn can_cast(kind: SyntaxKind) -> bool {
22126        kind == SyntaxKind::INHERIT
22127    }
22128    #[inline]
22129    fn cast(syntax: SyntaxNode) -> Option<Self> {
22130        if Self::can_cast(syntax.kind()) {
22131            Some(Self { syntax })
22132        } else {
22133            None
22134        }
22135    }
22136    #[inline]
22137    fn syntax(&self) -> &SyntaxNode {
22138        &self.syntax
22139    }
22140}
22141impl AstNode for InheritTable {
22142    #[inline]
22143    fn can_cast(kind: SyntaxKind) -> bool {
22144        kind == SyntaxKind::INHERIT_TABLE
22145    }
22146    #[inline]
22147    fn cast(syntax: SyntaxNode) -> Option<Self> {
22148        if Self::can_cast(syntax.kind()) {
22149            Some(Self { syntax })
22150        } else {
22151            None
22152        }
22153    }
22154    #[inline]
22155    fn syntax(&self) -> &SyntaxNode {
22156        &self.syntax
22157    }
22158}
22159impl AstNode for Inherits {
22160    #[inline]
22161    fn can_cast(kind: SyntaxKind) -> bool {
22162        kind == SyntaxKind::INHERITS
22163    }
22164    #[inline]
22165    fn cast(syntax: SyntaxNode) -> Option<Self> {
22166        if Self::can_cast(syntax.kind()) {
22167            Some(Self { syntax })
22168        } else {
22169            None
22170        }
22171    }
22172    #[inline]
22173    fn syntax(&self) -> &SyntaxNode {
22174        &self.syntax
22175    }
22176}
22177impl AstNode for InitiallyDeferredConstraintOption {
22178    #[inline]
22179    fn can_cast(kind: SyntaxKind) -> bool {
22180        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22181    }
22182    #[inline]
22183    fn cast(syntax: SyntaxNode) -> Option<Self> {
22184        if Self::can_cast(syntax.kind()) {
22185            Some(Self { syntax })
22186        } else {
22187            None
22188        }
22189    }
22190    #[inline]
22191    fn syntax(&self) -> &SyntaxNode {
22192        &self.syntax
22193    }
22194}
22195impl AstNode for InitiallyImmediateConstraintOption {
22196    #[inline]
22197    fn can_cast(kind: SyntaxKind) -> bool {
22198        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22199    }
22200    #[inline]
22201    fn cast(syntax: SyntaxNode) -> Option<Self> {
22202        if Self::can_cast(syntax.kind()) {
22203            Some(Self { syntax })
22204        } else {
22205            None
22206        }
22207    }
22208    #[inline]
22209    fn syntax(&self) -> &SyntaxNode {
22210        &self.syntax
22211    }
22212}
22213impl AstNode for Insert {
22214    #[inline]
22215    fn can_cast(kind: SyntaxKind) -> bool {
22216        kind == SyntaxKind::INSERT
22217    }
22218    #[inline]
22219    fn cast(syntax: SyntaxNode) -> Option<Self> {
22220        if Self::can_cast(syntax.kind()) {
22221            Some(Self { syntax })
22222        } else {
22223            None
22224        }
22225    }
22226    #[inline]
22227    fn syntax(&self) -> &SyntaxNode {
22228        &self.syntax
22229    }
22230}
22231impl AstNode for IntervalType {
22232    #[inline]
22233    fn can_cast(kind: SyntaxKind) -> bool {
22234        kind == SyntaxKind::INTERVAL_TYPE
22235    }
22236    #[inline]
22237    fn cast(syntax: SyntaxNode) -> Option<Self> {
22238        if Self::can_cast(syntax.kind()) {
22239            Some(Self { syntax })
22240        } else {
22241            None
22242        }
22243    }
22244    #[inline]
22245    fn syntax(&self) -> &SyntaxNode {
22246        &self.syntax
22247    }
22248}
22249impl AstNode for IntoClause {
22250    #[inline]
22251    fn can_cast(kind: SyntaxKind) -> bool {
22252        kind == SyntaxKind::INTO_CLAUSE
22253    }
22254    #[inline]
22255    fn cast(syntax: SyntaxNode) -> Option<Self> {
22256        if Self::can_cast(syntax.kind()) {
22257            Some(Self { syntax })
22258        } else {
22259            None
22260        }
22261    }
22262    #[inline]
22263    fn syntax(&self) -> &SyntaxNode {
22264        &self.syntax
22265    }
22266}
22267impl AstNode for IntoSchema {
22268    #[inline]
22269    fn can_cast(kind: SyntaxKind) -> bool {
22270        kind == SyntaxKind::INTO_SCHEMA
22271    }
22272    #[inline]
22273    fn cast(syntax: SyntaxNode) -> Option<Self> {
22274        if Self::can_cast(syntax.kind()) {
22275            Some(Self { syntax })
22276        } else {
22277            None
22278        }
22279    }
22280    #[inline]
22281    fn syntax(&self) -> &SyntaxNode {
22282        &self.syntax
22283    }
22284}
22285impl AstNode for IsDistinctFrom {
22286    #[inline]
22287    fn can_cast(kind: SyntaxKind) -> bool {
22288        kind == SyntaxKind::IS_DISTINCT_FROM
22289    }
22290    #[inline]
22291    fn cast(syntax: SyntaxNode) -> Option<Self> {
22292        if Self::can_cast(syntax.kind()) {
22293            Some(Self { syntax })
22294        } else {
22295            None
22296        }
22297    }
22298    #[inline]
22299    fn syntax(&self) -> &SyntaxNode {
22300        &self.syntax
22301    }
22302}
22303impl AstNode for IsJson {
22304    #[inline]
22305    fn can_cast(kind: SyntaxKind) -> bool {
22306        kind == SyntaxKind::IS_JSON
22307    }
22308    #[inline]
22309    fn cast(syntax: SyntaxNode) -> Option<Self> {
22310        if Self::can_cast(syntax.kind()) {
22311            Some(Self { syntax })
22312        } else {
22313            None
22314        }
22315    }
22316    #[inline]
22317    fn syntax(&self) -> &SyntaxNode {
22318        &self.syntax
22319    }
22320}
22321impl AstNode for IsJsonArray {
22322    #[inline]
22323    fn can_cast(kind: SyntaxKind) -> bool {
22324        kind == SyntaxKind::IS_JSON_ARRAY
22325    }
22326    #[inline]
22327    fn cast(syntax: SyntaxNode) -> Option<Self> {
22328        if Self::can_cast(syntax.kind()) {
22329            Some(Self { syntax })
22330        } else {
22331            None
22332        }
22333    }
22334    #[inline]
22335    fn syntax(&self) -> &SyntaxNode {
22336        &self.syntax
22337    }
22338}
22339impl AstNode for IsJsonObject {
22340    #[inline]
22341    fn can_cast(kind: SyntaxKind) -> bool {
22342        kind == SyntaxKind::IS_JSON_OBJECT
22343    }
22344    #[inline]
22345    fn cast(syntax: SyntaxNode) -> Option<Self> {
22346        if Self::can_cast(syntax.kind()) {
22347            Some(Self { syntax })
22348        } else {
22349            None
22350        }
22351    }
22352    #[inline]
22353    fn syntax(&self) -> &SyntaxNode {
22354        &self.syntax
22355    }
22356}
22357impl AstNode for IsJsonScalar {
22358    #[inline]
22359    fn can_cast(kind: SyntaxKind) -> bool {
22360        kind == SyntaxKind::IS_JSON_SCALAR
22361    }
22362    #[inline]
22363    fn cast(syntax: SyntaxNode) -> Option<Self> {
22364        if Self::can_cast(syntax.kind()) {
22365            Some(Self { syntax })
22366        } else {
22367            None
22368        }
22369    }
22370    #[inline]
22371    fn syntax(&self) -> &SyntaxNode {
22372        &self.syntax
22373    }
22374}
22375impl AstNode for IsJsonValue {
22376    #[inline]
22377    fn can_cast(kind: SyntaxKind) -> bool {
22378        kind == SyntaxKind::IS_JSON_VALUE
22379    }
22380    #[inline]
22381    fn cast(syntax: SyntaxNode) -> Option<Self> {
22382        if Self::can_cast(syntax.kind()) {
22383            Some(Self { syntax })
22384        } else {
22385            None
22386        }
22387    }
22388    #[inline]
22389    fn syntax(&self) -> &SyntaxNode {
22390        &self.syntax
22391    }
22392}
22393impl AstNode for IsNormalized {
22394    #[inline]
22395    fn can_cast(kind: SyntaxKind) -> bool {
22396        kind == SyntaxKind::IS_NORMALIZED
22397    }
22398    #[inline]
22399    fn cast(syntax: SyntaxNode) -> Option<Self> {
22400        if Self::can_cast(syntax.kind()) {
22401            Some(Self { syntax })
22402        } else {
22403            None
22404        }
22405    }
22406    #[inline]
22407    fn syntax(&self) -> &SyntaxNode {
22408        &self.syntax
22409    }
22410}
22411impl AstNode for IsNot {
22412    #[inline]
22413    fn can_cast(kind: SyntaxKind) -> bool {
22414        kind == SyntaxKind::IS_NOT
22415    }
22416    #[inline]
22417    fn cast(syntax: SyntaxNode) -> Option<Self> {
22418        if Self::can_cast(syntax.kind()) {
22419            Some(Self { syntax })
22420        } else {
22421            None
22422        }
22423    }
22424    #[inline]
22425    fn syntax(&self) -> &SyntaxNode {
22426        &self.syntax
22427    }
22428}
22429impl AstNode for IsNotDistinctFrom {
22430    #[inline]
22431    fn can_cast(kind: SyntaxKind) -> bool {
22432        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22433    }
22434    #[inline]
22435    fn cast(syntax: SyntaxNode) -> Option<Self> {
22436        if Self::can_cast(syntax.kind()) {
22437            Some(Self { syntax })
22438        } else {
22439            None
22440        }
22441    }
22442    #[inline]
22443    fn syntax(&self) -> &SyntaxNode {
22444        &self.syntax
22445    }
22446}
22447impl AstNode for IsNotJson {
22448    #[inline]
22449    fn can_cast(kind: SyntaxKind) -> bool {
22450        kind == SyntaxKind::IS_NOT_JSON
22451    }
22452    #[inline]
22453    fn cast(syntax: SyntaxNode) -> Option<Self> {
22454        if Self::can_cast(syntax.kind()) {
22455            Some(Self { syntax })
22456        } else {
22457            None
22458        }
22459    }
22460    #[inline]
22461    fn syntax(&self) -> &SyntaxNode {
22462        &self.syntax
22463    }
22464}
22465impl AstNode for IsNotJsonArray {
22466    #[inline]
22467    fn can_cast(kind: SyntaxKind) -> bool {
22468        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22469    }
22470    #[inline]
22471    fn cast(syntax: SyntaxNode) -> Option<Self> {
22472        if Self::can_cast(syntax.kind()) {
22473            Some(Self { syntax })
22474        } else {
22475            None
22476        }
22477    }
22478    #[inline]
22479    fn syntax(&self) -> &SyntaxNode {
22480        &self.syntax
22481    }
22482}
22483impl AstNode for IsNotJsonObject {
22484    #[inline]
22485    fn can_cast(kind: SyntaxKind) -> bool {
22486        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22487    }
22488    #[inline]
22489    fn cast(syntax: SyntaxNode) -> Option<Self> {
22490        if Self::can_cast(syntax.kind()) {
22491            Some(Self { syntax })
22492        } else {
22493            None
22494        }
22495    }
22496    #[inline]
22497    fn syntax(&self) -> &SyntaxNode {
22498        &self.syntax
22499    }
22500}
22501impl AstNode for IsNotJsonScalar {
22502    #[inline]
22503    fn can_cast(kind: SyntaxKind) -> bool {
22504        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22505    }
22506    #[inline]
22507    fn cast(syntax: SyntaxNode) -> Option<Self> {
22508        if Self::can_cast(syntax.kind()) {
22509            Some(Self { syntax })
22510        } else {
22511            None
22512        }
22513    }
22514    #[inline]
22515    fn syntax(&self) -> &SyntaxNode {
22516        &self.syntax
22517    }
22518}
22519impl AstNode for IsNotJsonValue {
22520    #[inline]
22521    fn can_cast(kind: SyntaxKind) -> bool {
22522        kind == SyntaxKind::IS_NOT_JSON_VALUE
22523    }
22524    #[inline]
22525    fn cast(syntax: SyntaxNode) -> Option<Self> {
22526        if Self::can_cast(syntax.kind()) {
22527            Some(Self { syntax })
22528        } else {
22529            None
22530        }
22531    }
22532    #[inline]
22533    fn syntax(&self) -> &SyntaxNode {
22534        &self.syntax
22535    }
22536}
22537impl AstNode for IsNotNormalized {
22538    #[inline]
22539    fn can_cast(kind: SyntaxKind) -> bool {
22540        kind == SyntaxKind::IS_NOT_NORMALIZED
22541    }
22542    #[inline]
22543    fn cast(syntax: SyntaxNode) -> Option<Self> {
22544        if Self::can_cast(syntax.kind()) {
22545            Some(Self { syntax })
22546        } else {
22547            None
22548        }
22549    }
22550    #[inline]
22551    fn syntax(&self) -> &SyntaxNode {
22552        &self.syntax
22553    }
22554}
22555impl AstNode for Join {
22556    #[inline]
22557    fn can_cast(kind: SyntaxKind) -> bool {
22558        kind == SyntaxKind::JOIN
22559    }
22560    #[inline]
22561    fn cast(syntax: SyntaxNode) -> Option<Self> {
22562        if Self::can_cast(syntax.kind()) {
22563            Some(Self { syntax })
22564        } else {
22565            None
22566        }
22567    }
22568    #[inline]
22569    fn syntax(&self) -> &SyntaxNode {
22570        &self.syntax
22571    }
22572}
22573impl AstNode for JoinCross {
22574    #[inline]
22575    fn can_cast(kind: SyntaxKind) -> bool {
22576        kind == SyntaxKind::JOIN_CROSS
22577    }
22578    #[inline]
22579    fn cast(syntax: SyntaxNode) -> Option<Self> {
22580        if Self::can_cast(syntax.kind()) {
22581            Some(Self { syntax })
22582        } else {
22583            None
22584        }
22585    }
22586    #[inline]
22587    fn syntax(&self) -> &SyntaxNode {
22588        &self.syntax
22589    }
22590}
22591impl AstNode for JoinExpr {
22592    #[inline]
22593    fn can_cast(kind: SyntaxKind) -> bool {
22594        kind == SyntaxKind::JOIN_EXPR
22595    }
22596    #[inline]
22597    fn cast(syntax: SyntaxNode) -> Option<Self> {
22598        if Self::can_cast(syntax.kind()) {
22599            Some(Self { syntax })
22600        } else {
22601            None
22602        }
22603    }
22604    #[inline]
22605    fn syntax(&self) -> &SyntaxNode {
22606        &self.syntax
22607    }
22608}
22609impl AstNode for JoinFull {
22610    #[inline]
22611    fn can_cast(kind: SyntaxKind) -> bool {
22612        kind == SyntaxKind::JOIN_FULL
22613    }
22614    #[inline]
22615    fn cast(syntax: SyntaxNode) -> Option<Self> {
22616        if Self::can_cast(syntax.kind()) {
22617            Some(Self { syntax })
22618        } else {
22619            None
22620        }
22621    }
22622    #[inline]
22623    fn syntax(&self) -> &SyntaxNode {
22624        &self.syntax
22625    }
22626}
22627impl AstNode for JoinInner {
22628    #[inline]
22629    fn can_cast(kind: SyntaxKind) -> bool {
22630        kind == SyntaxKind::JOIN_INNER
22631    }
22632    #[inline]
22633    fn cast(syntax: SyntaxNode) -> Option<Self> {
22634        if Self::can_cast(syntax.kind()) {
22635            Some(Self { syntax })
22636        } else {
22637            None
22638        }
22639    }
22640    #[inline]
22641    fn syntax(&self) -> &SyntaxNode {
22642        &self.syntax
22643    }
22644}
22645impl AstNode for JoinLeft {
22646    #[inline]
22647    fn can_cast(kind: SyntaxKind) -> bool {
22648        kind == SyntaxKind::JOIN_LEFT
22649    }
22650    #[inline]
22651    fn cast(syntax: SyntaxNode) -> Option<Self> {
22652        if Self::can_cast(syntax.kind()) {
22653            Some(Self { syntax })
22654        } else {
22655            None
22656        }
22657    }
22658    #[inline]
22659    fn syntax(&self) -> &SyntaxNode {
22660        &self.syntax
22661    }
22662}
22663impl AstNode for JoinRight {
22664    #[inline]
22665    fn can_cast(kind: SyntaxKind) -> bool {
22666        kind == SyntaxKind::JOIN_RIGHT
22667    }
22668    #[inline]
22669    fn cast(syntax: SyntaxNode) -> Option<Self> {
22670        if Self::can_cast(syntax.kind()) {
22671            Some(Self { syntax })
22672        } else {
22673            None
22674        }
22675    }
22676    #[inline]
22677    fn syntax(&self) -> &SyntaxNode {
22678        &self.syntax
22679    }
22680}
22681impl AstNode for JoinUsingClause {
22682    #[inline]
22683    fn can_cast(kind: SyntaxKind) -> bool {
22684        kind == SyntaxKind::JOIN_USING_CLAUSE
22685    }
22686    #[inline]
22687    fn cast(syntax: SyntaxNode) -> Option<Self> {
22688        if Self::can_cast(syntax.kind()) {
22689            Some(Self { syntax })
22690        } else {
22691            None
22692        }
22693    }
22694    #[inline]
22695    fn syntax(&self) -> &SyntaxNode {
22696        &self.syntax
22697    }
22698}
22699impl AstNode for JsonArrayAggFn {
22700    #[inline]
22701    fn can_cast(kind: SyntaxKind) -> bool {
22702        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22703    }
22704    #[inline]
22705    fn cast(syntax: SyntaxNode) -> Option<Self> {
22706        if Self::can_cast(syntax.kind()) {
22707            Some(Self { syntax })
22708        } else {
22709            None
22710        }
22711    }
22712    #[inline]
22713    fn syntax(&self) -> &SyntaxNode {
22714        &self.syntax
22715    }
22716}
22717impl AstNode for JsonArrayFn {
22718    #[inline]
22719    fn can_cast(kind: SyntaxKind) -> bool {
22720        kind == SyntaxKind::JSON_ARRAY_FN
22721    }
22722    #[inline]
22723    fn cast(syntax: SyntaxNode) -> Option<Self> {
22724        if Self::can_cast(syntax.kind()) {
22725            Some(Self { syntax })
22726        } else {
22727            None
22728        }
22729    }
22730    #[inline]
22731    fn syntax(&self) -> &SyntaxNode {
22732        &self.syntax
22733    }
22734}
22735impl AstNode for JsonBehaviorClause {
22736    #[inline]
22737    fn can_cast(kind: SyntaxKind) -> bool {
22738        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
22739    }
22740    #[inline]
22741    fn cast(syntax: SyntaxNode) -> Option<Self> {
22742        if Self::can_cast(syntax.kind()) {
22743            Some(Self { syntax })
22744        } else {
22745            None
22746        }
22747    }
22748    #[inline]
22749    fn syntax(&self) -> &SyntaxNode {
22750        &self.syntax
22751    }
22752}
22753impl AstNode for JsonBehaviorDefault {
22754    #[inline]
22755    fn can_cast(kind: SyntaxKind) -> bool {
22756        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
22757    }
22758    #[inline]
22759    fn cast(syntax: SyntaxNode) -> Option<Self> {
22760        if Self::can_cast(syntax.kind()) {
22761            Some(Self { syntax })
22762        } else {
22763            None
22764        }
22765    }
22766    #[inline]
22767    fn syntax(&self) -> &SyntaxNode {
22768        &self.syntax
22769    }
22770}
22771impl AstNode for JsonBehaviorEmptyArray {
22772    #[inline]
22773    fn can_cast(kind: SyntaxKind) -> bool {
22774        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22775    }
22776    #[inline]
22777    fn cast(syntax: SyntaxNode) -> Option<Self> {
22778        if Self::can_cast(syntax.kind()) {
22779            Some(Self { syntax })
22780        } else {
22781            None
22782        }
22783    }
22784    #[inline]
22785    fn syntax(&self) -> &SyntaxNode {
22786        &self.syntax
22787    }
22788}
22789impl AstNode for JsonBehaviorEmptyObject {
22790    #[inline]
22791    fn can_cast(kind: SyntaxKind) -> bool {
22792        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22793    }
22794    #[inline]
22795    fn cast(syntax: SyntaxNode) -> Option<Self> {
22796        if Self::can_cast(syntax.kind()) {
22797            Some(Self { syntax })
22798        } else {
22799            None
22800        }
22801    }
22802    #[inline]
22803    fn syntax(&self) -> &SyntaxNode {
22804        &self.syntax
22805    }
22806}
22807impl AstNode for JsonBehaviorError {
22808    #[inline]
22809    fn can_cast(kind: SyntaxKind) -> bool {
22810        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
22811    }
22812    #[inline]
22813    fn cast(syntax: SyntaxNode) -> Option<Self> {
22814        if Self::can_cast(syntax.kind()) {
22815            Some(Self { syntax })
22816        } else {
22817            None
22818        }
22819    }
22820    #[inline]
22821    fn syntax(&self) -> &SyntaxNode {
22822        &self.syntax
22823    }
22824}
22825impl AstNode for JsonBehaviorFalse {
22826    #[inline]
22827    fn can_cast(kind: SyntaxKind) -> bool {
22828        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
22829    }
22830    #[inline]
22831    fn cast(syntax: SyntaxNode) -> Option<Self> {
22832        if Self::can_cast(syntax.kind()) {
22833            Some(Self { syntax })
22834        } else {
22835            None
22836        }
22837    }
22838    #[inline]
22839    fn syntax(&self) -> &SyntaxNode {
22840        &self.syntax
22841    }
22842}
22843impl AstNode for JsonBehaviorNull {
22844    #[inline]
22845    fn can_cast(kind: SyntaxKind) -> bool {
22846        kind == SyntaxKind::JSON_BEHAVIOR_NULL
22847    }
22848    #[inline]
22849    fn cast(syntax: SyntaxNode) -> Option<Self> {
22850        if Self::can_cast(syntax.kind()) {
22851            Some(Self { syntax })
22852        } else {
22853            None
22854        }
22855    }
22856    #[inline]
22857    fn syntax(&self) -> &SyntaxNode {
22858        &self.syntax
22859    }
22860}
22861impl AstNode for JsonBehaviorTrue {
22862    #[inline]
22863    fn can_cast(kind: SyntaxKind) -> bool {
22864        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
22865    }
22866    #[inline]
22867    fn cast(syntax: SyntaxNode) -> Option<Self> {
22868        if Self::can_cast(syntax.kind()) {
22869            Some(Self { syntax })
22870        } else {
22871            None
22872        }
22873    }
22874    #[inline]
22875    fn syntax(&self) -> &SyntaxNode {
22876        &self.syntax
22877    }
22878}
22879impl AstNode for JsonBehaviorUnknown {
22880    #[inline]
22881    fn can_cast(kind: SyntaxKind) -> bool {
22882        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
22883    }
22884    #[inline]
22885    fn cast(syntax: SyntaxNode) -> Option<Self> {
22886        if Self::can_cast(syntax.kind()) {
22887            Some(Self { syntax })
22888        } else {
22889            None
22890        }
22891    }
22892    #[inline]
22893    fn syntax(&self) -> &SyntaxNode {
22894        &self.syntax
22895    }
22896}
22897impl AstNode for JsonEncodingClause {
22898    #[inline]
22899    fn can_cast(kind: SyntaxKind) -> bool {
22900        kind == SyntaxKind::JSON_ENCODING_CLAUSE
22901    }
22902    #[inline]
22903    fn cast(syntax: SyntaxNode) -> Option<Self> {
22904        if Self::can_cast(syntax.kind()) {
22905            Some(Self { syntax })
22906        } else {
22907            None
22908        }
22909    }
22910    #[inline]
22911    fn syntax(&self) -> &SyntaxNode {
22912        &self.syntax
22913    }
22914}
22915impl AstNode for JsonExistsFn {
22916    #[inline]
22917    fn can_cast(kind: SyntaxKind) -> bool {
22918        kind == SyntaxKind::JSON_EXISTS_FN
22919    }
22920    #[inline]
22921    fn cast(syntax: SyntaxNode) -> Option<Self> {
22922        if Self::can_cast(syntax.kind()) {
22923            Some(Self { syntax })
22924        } else {
22925            None
22926        }
22927    }
22928    #[inline]
22929    fn syntax(&self) -> &SyntaxNode {
22930        &self.syntax
22931    }
22932}
22933impl AstNode for JsonExprFormat {
22934    #[inline]
22935    fn can_cast(kind: SyntaxKind) -> bool {
22936        kind == SyntaxKind::JSON_EXPR_FORMAT
22937    }
22938    #[inline]
22939    fn cast(syntax: SyntaxNode) -> Option<Self> {
22940        if Self::can_cast(syntax.kind()) {
22941            Some(Self { syntax })
22942        } else {
22943            None
22944        }
22945    }
22946    #[inline]
22947    fn syntax(&self) -> &SyntaxNode {
22948        &self.syntax
22949    }
22950}
22951impl AstNode for JsonFn {
22952    #[inline]
22953    fn can_cast(kind: SyntaxKind) -> bool {
22954        kind == SyntaxKind::JSON_FN
22955    }
22956    #[inline]
22957    fn cast(syntax: SyntaxNode) -> Option<Self> {
22958        if Self::can_cast(syntax.kind()) {
22959            Some(Self { syntax })
22960        } else {
22961            None
22962        }
22963    }
22964    #[inline]
22965    fn syntax(&self) -> &SyntaxNode {
22966        &self.syntax
22967    }
22968}
22969impl AstNode for JsonFormatClause {
22970    #[inline]
22971    fn can_cast(kind: SyntaxKind) -> bool {
22972        kind == SyntaxKind::JSON_FORMAT_CLAUSE
22973    }
22974    #[inline]
22975    fn cast(syntax: SyntaxNode) -> Option<Self> {
22976        if Self::can_cast(syntax.kind()) {
22977            Some(Self { syntax })
22978        } else {
22979            None
22980        }
22981    }
22982    #[inline]
22983    fn syntax(&self) -> &SyntaxNode {
22984        &self.syntax
22985    }
22986}
22987impl AstNode for JsonKeyValue {
22988    #[inline]
22989    fn can_cast(kind: SyntaxKind) -> bool {
22990        kind == SyntaxKind::JSON_KEY_VALUE
22991    }
22992    #[inline]
22993    fn cast(syntax: SyntaxNode) -> Option<Self> {
22994        if Self::can_cast(syntax.kind()) {
22995            Some(Self { syntax })
22996        } else {
22997            None
22998        }
22999    }
23000    #[inline]
23001    fn syntax(&self) -> &SyntaxNode {
23002        &self.syntax
23003    }
23004}
23005impl AstNode for JsonKeysUniqueClause {
23006    #[inline]
23007    fn can_cast(kind: SyntaxKind) -> bool {
23008        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
23009    }
23010    #[inline]
23011    fn cast(syntax: SyntaxNode) -> Option<Self> {
23012        if Self::can_cast(syntax.kind()) {
23013            Some(Self { syntax })
23014        } else {
23015            None
23016        }
23017    }
23018    #[inline]
23019    fn syntax(&self) -> &SyntaxNode {
23020        &self.syntax
23021    }
23022}
23023impl AstNode for JsonNullClause {
23024    #[inline]
23025    fn can_cast(kind: SyntaxKind) -> bool {
23026        kind == SyntaxKind::JSON_NULL_CLAUSE
23027    }
23028    #[inline]
23029    fn cast(syntax: SyntaxNode) -> Option<Self> {
23030        if Self::can_cast(syntax.kind()) {
23031            Some(Self { syntax })
23032        } else {
23033            None
23034        }
23035    }
23036    #[inline]
23037    fn syntax(&self) -> &SyntaxNode {
23038        &self.syntax
23039    }
23040}
23041impl AstNode for JsonObjectAggFn {
23042    #[inline]
23043    fn can_cast(kind: SyntaxKind) -> bool {
23044        kind == SyntaxKind::JSON_OBJECT_AGG_FN
23045    }
23046    #[inline]
23047    fn cast(syntax: SyntaxNode) -> Option<Self> {
23048        if Self::can_cast(syntax.kind()) {
23049            Some(Self { syntax })
23050        } else {
23051            None
23052        }
23053    }
23054    #[inline]
23055    fn syntax(&self) -> &SyntaxNode {
23056        &self.syntax
23057    }
23058}
23059impl AstNode for JsonObjectFn {
23060    #[inline]
23061    fn can_cast(kind: SyntaxKind) -> bool {
23062        kind == SyntaxKind::JSON_OBJECT_FN
23063    }
23064    #[inline]
23065    fn cast(syntax: SyntaxNode) -> Option<Self> {
23066        if Self::can_cast(syntax.kind()) {
23067            Some(Self { syntax })
23068        } else {
23069            None
23070        }
23071    }
23072    #[inline]
23073    fn syntax(&self) -> &SyntaxNode {
23074        &self.syntax
23075    }
23076}
23077impl AstNode for JsonOnEmptyClause {
23078    #[inline]
23079    fn can_cast(kind: SyntaxKind) -> bool {
23080        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
23081    }
23082    #[inline]
23083    fn cast(syntax: SyntaxNode) -> Option<Self> {
23084        if Self::can_cast(syntax.kind()) {
23085            Some(Self { syntax })
23086        } else {
23087            None
23088        }
23089    }
23090    #[inline]
23091    fn syntax(&self) -> &SyntaxNode {
23092        &self.syntax
23093    }
23094}
23095impl AstNode for JsonOnErrorClause {
23096    #[inline]
23097    fn can_cast(kind: SyntaxKind) -> bool {
23098        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
23099    }
23100    #[inline]
23101    fn cast(syntax: SyntaxNode) -> Option<Self> {
23102        if Self::can_cast(syntax.kind()) {
23103            Some(Self { syntax })
23104        } else {
23105            None
23106        }
23107    }
23108    #[inline]
23109    fn syntax(&self) -> &SyntaxNode {
23110        &self.syntax
23111    }
23112}
23113impl AstNode for JsonPassingArg {
23114    #[inline]
23115    fn can_cast(kind: SyntaxKind) -> bool {
23116        kind == SyntaxKind::JSON_PASSING_ARG
23117    }
23118    #[inline]
23119    fn cast(syntax: SyntaxNode) -> Option<Self> {
23120        if Self::can_cast(syntax.kind()) {
23121            Some(Self { syntax })
23122        } else {
23123            None
23124        }
23125    }
23126    #[inline]
23127    fn syntax(&self) -> &SyntaxNode {
23128        &self.syntax
23129    }
23130}
23131impl AstNode for JsonPassingClause {
23132    #[inline]
23133    fn can_cast(kind: SyntaxKind) -> bool {
23134        kind == SyntaxKind::JSON_PASSING_CLAUSE
23135    }
23136    #[inline]
23137    fn cast(syntax: SyntaxNode) -> Option<Self> {
23138        if Self::can_cast(syntax.kind()) {
23139            Some(Self { syntax })
23140        } else {
23141            None
23142        }
23143    }
23144    #[inline]
23145    fn syntax(&self) -> &SyntaxNode {
23146        &self.syntax
23147    }
23148}
23149impl AstNode for JsonPathClause {
23150    #[inline]
23151    fn can_cast(kind: SyntaxKind) -> bool {
23152        kind == SyntaxKind::JSON_PATH_CLAUSE
23153    }
23154    #[inline]
23155    fn cast(syntax: SyntaxNode) -> Option<Self> {
23156        if Self::can_cast(syntax.kind()) {
23157            Some(Self { syntax })
23158        } else {
23159            None
23160        }
23161    }
23162    #[inline]
23163    fn syntax(&self) -> &SyntaxNode {
23164        &self.syntax
23165    }
23166}
23167impl AstNode for JsonQueryFn {
23168    #[inline]
23169    fn can_cast(kind: SyntaxKind) -> bool {
23170        kind == SyntaxKind::JSON_QUERY_FN
23171    }
23172    #[inline]
23173    fn cast(syntax: SyntaxNode) -> Option<Self> {
23174        if Self::can_cast(syntax.kind()) {
23175            Some(Self { syntax })
23176        } else {
23177            None
23178        }
23179    }
23180    #[inline]
23181    fn syntax(&self) -> &SyntaxNode {
23182        &self.syntax
23183    }
23184}
23185impl AstNode for JsonQuotesClause {
23186    #[inline]
23187    fn can_cast(kind: SyntaxKind) -> bool {
23188        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23189    }
23190    #[inline]
23191    fn cast(syntax: SyntaxNode) -> Option<Self> {
23192        if Self::can_cast(syntax.kind()) {
23193            Some(Self { syntax })
23194        } else {
23195            None
23196        }
23197    }
23198    #[inline]
23199    fn syntax(&self) -> &SyntaxNode {
23200        &self.syntax
23201    }
23202}
23203impl AstNode for JsonReturningClause {
23204    #[inline]
23205    fn can_cast(kind: SyntaxKind) -> bool {
23206        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23207    }
23208    #[inline]
23209    fn cast(syntax: SyntaxNode) -> Option<Self> {
23210        if Self::can_cast(syntax.kind()) {
23211            Some(Self { syntax })
23212        } else {
23213            None
23214        }
23215    }
23216    #[inline]
23217    fn syntax(&self) -> &SyntaxNode {
23218        &self.syntax
23219    }
23220}
23221impl AstNode for JsonScalarFn {
23222    #[inline]
23223    fn can_cast(kind: SyntaxKind) -> bool {
23224        kind == SyntaxKind::JSON_SCALAR_FN
23225    }
23226    #[inline]
23227    fn cast(syntax: SyntaxNode) -> Option<Self> {
23228        if Self::can_cast(syntax.kind()) {
23229            Some(Self { syntax })
23230        } else {
23231            None
23232        }
23233    }
23234    #[inline]
23235    fn syntax(&self) -> &SyntaxNode {
23236        &self.syntax
23237    }
23238}
23239impl AstNode for JsonSelectFormat {
23240    #[inline]
23241    fn can_cast(kind: SyntaxKind) -> bool {
23242        kind == SyntaxKind::JSON_SELECT_FORMAT
23243    }
23244    #[inline]
23245    fn cast(syntax: SyntaxNode) -> Option<Self> {
23246        if Self::can_cast(syntax.kind()) {
23247            Some(Self { syntax })
23248        } else {
23249            None
23250        }
23251    }
23252    #[inline]
23253    fn syntax(&self) -> &SyntaxNode {
23254        &self.syntax
23255    }
23256}
23257impl AstNode for JsonSerializeFn {
23258    #[inline]
23259    fn can_cast(kind: SyntaxKind) -> bool {
23260        kind == SyntaxKind::JSON_SERIALIZE_FN
23261    }
23262    #[inline]
23263    fn cast(syntax: SyntaxNode) -> Option<Self> {
23264        if Self::can_cast(syntax.kind()) {
23265            Some(Self { syntax })
23266        } else {
23267            None
23268        }
23269    }
23270    #[inline]
23271    fn syntax(&self) -> &SyntaxNode {
23272        &self.syntax
23273    }
23274}
23275impl AstNode for JsonTable {
23276    #[inline]
23277    fn can_cast(kind: SyntaxKind) -> bool {
23278        kind == SyntaxKind::JSON_TABLE
23279    }
23280    #[inline]
23281    fn cast(syntax: SyntaxNode) -> Option<Self> {
23282        if Self::can_cast(syntax.kind()) {
23283            Some(Self { syntax })
23284        } else {
23285            None
23286        }
23287    }
23288    #[inline]
23289    fn syntax(&self) -> &SyntaxNode {
23290        &self.syntax
23291    }
23292}
23293impl AstNode for JsonTableColumn {
23294    #[inline]
23295    fn can_cast(kind: SyntaxKind) -> bool {
23296        kind == SyntaxKind::JSON_TABLE_COLUMN
23297    }
23298    #[inline]
23299    fn cast(syntax: SyntaxNode) -> Option<Self> {
23300        if Self::can_cast(syntax.kind()) {
23301            Some(Self { syntax })
23302        } else {
23303            None
23304        }
23305    }
23306    #[inline]
23307    fn syntax(&self) -> &SyntaxNode {
23308        &self.syntax
23309    }
23310}
23311impl AstNode for JsonTableColumnList {
23312    #[inline]
23313    fn can_cast(kind: SyntaxKind) -> bool {
23314        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23315    }
23316    #[inline]
23317    fn cast(syntax: SyntaxNode) -> Option<Self> {
23318        if Self::can_cast(syntax.kind()) {
23319            Some(Self { syntax })
23320        } else {
23321            None
23322        }
23323    }
23324    #[inline]
23325    fn syntax(&self) -> &SyntaxNode {
23326        &self.syntax
23327    }
23328}
23329impl AstNode for JsonValueExpr {
23330    #[inline]
23331    fn can_cast(kind: SyntaxKind) -> bool {
23332        kind == SyntaxKind::JSON_VALUE_EXPR
23333    }
23334    #[inline]
23335    fn cast(syntax: SyntaxNode) -> Option<Self> {
23336        if Self::can_cast(syntax.kind()) {
23337            Some(Self { syntax })
23338        } else {
23339            None
23340        }
23341    }
23342    #[inline]
23343    fn syntax(&self) -> &SyntaxNode {
23344        &self.syntax
23345    }
23346}
23347impl AstNode for JsonValueFn {
23348    #[inline]
23349    fn can_cast(kind: SyntaxKind) -> bool {
23350        kind == SyntaxKind::JSON_VALUE_FN
23351    }
23352    #[inline]
23353    fn cast(syntax: SyntaxNode) -> Option<Self> {
23354        if Self::can_cast(syntax.kind()) {
23355            Some(Self { syntax })
23356        } else {
23357            None
23358        }
23359    }
23360    #[inline]
23361    fn syntax(&self) -> &SyntaxNode {
23362        &self.syntax
23363    }
23364}
23365impl AstNode for JsonWrapperBehaviorClause {
23366    #[inline]
23367    fn can_cast(kind: SyntaxKind) -> bool {
23368        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23369    }
23370    #[inline]
23371    fn cast(syntax: SyntaxNode) -> Option<Self> {
23372        if Self::can_cast(syntax.kind()) {
23373            Some(Self { syntax })
23374        } else {
23375            None
23376        }
23377    }
23378    #[inline]
23379    fn syntax(&self) -> &SyntaxNode {
23380        &self.syntax
23381    }
23382}
23383impl AstNode for LanguageFuncOption {
23384    #[inline]
23385    fn can_cast(kind: SyntaxKind) -> bool {
23386        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23387    }
23388    #[inline]
23389    fn cast(syntax: SyntaxNode) -> Option<Self> {
23390        if Self::can_cast(syntax.kind()) {
23391            Some(Self { syntax })
23392        } else {
23393            None
23394        }
23395    }
23396    #[inline]
23397    fn syntax(&self) -> &SyntaxNode {
23398        &self.syntax
23399    }
23400}
23401impl AstNode for LeakproofFuncOption {
23402    #[inline]
23403    fn can_cast(kind: SyntaxKind) -> bool {
23404        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23405    }
23406    #[inline]
23407    fn cast(syntax: SyntaxNode) -> Option<Self> {
23408        if Self::can_cast(syntax.kind()) {
23409            Some(Self { syntax })
23410        } else {
23411            None
23412        }
23413    }
23414    #[inline]
23415    fn syntax(&self) -> &SyntaxNode {
23416        &self.syntax
23417    }
23418}
23419impl AstNode for LikeClause {
23420    #[inline]
23421    fn can_cast(kind: SyntaxKind) -> bool {
23422        kind == SyntaxKind::LIKE_CLAUSE
23423    }
23424    #[inline]
23425    fn cast(syntax: SyntaxNode) -> Option<Self> {
23426        if Self::can_cast(syntax.kind()) {
23427            Some(Self { syntax })
23428        } else {
23429            None
23430        }
23431    }
23432    #[inline]
23433    fn syntax(&self) -> &SyntaxNode {
23434        &self.syntax
23435    }
23436}
23437impl AstNode for LikeOption {
23438    #[inline]
23439    fn can_cast(kind: SyntaxKind) -> bool {
23440        kind == SyntaxKind::LIKE_OPTION
23441    }
23442    #[inline]
23443    fn cast(syntax: SyntaxNode) -> Option<Self> {
23444        if Self::can_cast(syntax.kind()) {
23445            Some(Self { syntax })
23446        } else {
23447            None
23448        }
23449    }
23450    #[inline]
23451    fn syntax(&self) -> &SyntaxNode {
23452        &self.syntax
23453    }
23454}
23455impl AstNode for LimitClause {
23456    #[inline]
23457    fn can_cast(kind: SyntaxKind) -> bool {
23458        kind == SyntaxKind::LIMIT_CLAUSE
23459    }
23460    #[inline]
23461    fn cast(syntax: SyntaxNode) -> Option<Self> {
23462        if Self::can_cast(syntax.kind()) {
23463            Some(Self { syntax })
23464        } else {
23465            None
23466        }
23467    }
23468    #[inline]
23469    fn syntax(&self) -> &SyntaxNode {
23470        &self.syntax
23471    }
23472}
23473impl AstNode for LimitToTables {
23474    #[inline]
23475    fn can_cast(kind: SyntaxKind) -> bool {
23476        kind == SyntaxKind::LIMIT_TO_TABLES
23477    }
23478    #[inline]
23479    fn cast(syntax: SyntaxNode) -> Option<Self> {
23480        if Self::can_cast(syntax.kind()) {
23481            Some(Self { syntax })
23482        } else {
23483            None
23484        }
23485    }
23486    #[inline]
23487    fn syntax(&self) -> &SyntaxNode {
23488        &self.syntax
23489    }
23490}
23491impl AstNode for Listen {
23492    #[inline]
23493    fn can_cast(kind: SyntaxKind) -> bool {
23494        kind == SyntaxKind::LISTEN
23495    }
23496    #[inline]
23497    fn cast(syntax: SyntaxNode) -> Option<Self> {
23498        if Self::can_cast(syntax.kind()) {
23499            Some(Self { syntax })
23500        } else {
23501            None
23502        }
23503    }
23504    #[inline]
23505    fn syntax(&self) -> &SyntaxNode {
23506        &self.syntax
23507    }
23508}
23509impl AstNode for Literal {
23510    #[inline]
23511    fn can_cast(kind: SyntaxKind) -> bool {
23512        kind == SyntaxKind::LITERAL
23513    }
23514    #[inline]
23515    fn cast(syntax: SyntaxNode) -> Option<Self> {
23516        if Self::can_cast(syntax.kind()) {
23517            Some(Self { syntax })
23518        } else {
23519            None
23520        }
23521    }
23522    #[inline]
23523    fn syntax(&self) -> &SyntaxNode {
23524        &self.syntax
23525    }
23526}
23527impl AstNode for Load {
23528    #[inline]
23529    fn can_cast(kind: SyntaxKind) -> bool {
23530        kind == SyntaxKind::LOAD
23531    }
23532    #[inline]
23533    fn cast(syntax: SyntaxNode) -> Option<Self> {
23534        if Self::can_cast(syntax.kind()) {
23535            Some(Self { syntax })
23536        } else {
23537            None
23538        }
23539    }
23540    #[inline]
23541    fn syntax(&self) -> &SyntaxNode {
23542        &self.syntax
23543    }
23544}
23545impl AstNode for Lock {
23546    #[inline]
23547    fn can_cast(kind: SyntaxKind) -> bool {
23548        kind == SyntaxKind::LOCK
23549    }
23550    #[inline]
23551    fn cast(syntax: SyntaxNode) -> Option<Self> {
23552        if Self::can_cast(syntax.kind()) {
23553            Some(Self { syntax })
23554        } else {
23555            None
23556        }
23557    }
23558    #[inline]
23559    fn syntax(&self) -> &SyntaxNode {
23560        &self.syntax
23561    }
23562}
23563impl AstNode for LockingClause {
23564    #[inline]
23565    fn can_cast(kind: SyntaxKind) -> bool {
23566        kind == SyntaxKind::LOCKING_CLAUSE
23567    }
23568    #[inline]
23569    fn cast(syntax: SyntaxNode) -> Option<Self> {
23570        if Self::can_cast(syntax.kind()) {
23571            Some(Self { syntax })
23572        } else {
23573            None
23574        }
23575    }
23576    #[inline]
23577    fn syntax(&self) -> &SyntaxNode {
23578        &self.syntax
23579    }
23580}
23581impl AstNode for Lteq {
23582    #[inline]
23583    fn can_cast(kind: SyntaxKind) -> bool {
23584        kind == SyntaxKind::LTEQ
23585    }
23586    #[inline]
23587    fn cast(syntax: SyntaxNode) -> Option<Self> {
23588        if Self::can_cast(syntax.kind()) {
23589            Some(Self { syntax })
23590        } else {
23591            None
23592        }
23593    }
23594    #[inline]
23595    fn syntax(&self) -> &SyntaxNode {
23596        &self.syntax
23597    }
23598}
23599impl AstNode for MatchFull {
23600    #[inline]
23601    fn can_cast(kind: SyntaxKind) -> bool {
23602        kind == SyntaxKind::MATCH_FULL
23603    }
23604    #[inline]
23605    fn cast(syntax: SyntaxNode) -> Option<Self> {
23606        if Self::can_cast(syntax.kind()) {
23607            Some(Self { syntax })
23608        } else {
23609            None
23610        }
23611    }
23612    #[inline]
23613    fn syntax(&self) -> &SyntaxNode {
23614        &self.syntax
23615    }
23616}
23617impl AstNode for MatchPartial {
23618    #[inline]
23619    fn can_cast(kind: SyntaxKind) -> bool {
23620        kind == SyntaxKind::MATCH_PARTIAL
23621    }
23622    #[inline]
23623    fn cast(syntax: SyntaxNode) -> Option<Self> {
23624        if Self::can_cast(syntax.kind()) {
23625            Some(Self { syntax })
23626        } else {
23627            None
23628        }
23629    }
23630    #[inline]
23631    fn syntax(&self) -> &SyntaxNode {
23632        &self.syntax
23633    }
23634}
23635impl AstNode for MatchSimple {
23636    #[inline]
23637    fn can_cast(kind: SyntaxKind) -> bool {
23638        kind == SyntaxKind::MATCH_SIMPLE
23639    }
23640    #[inline]
23641    fn cast(syntax: SyntaxNode) -> Option<Self> {
23642        if Self::can_cast(syntax.kind()) {
23643            Some(Self { syntax })
23644        } else {
23645            None
23646        }
23647    }
23648    #[inline]
23649    fn syntax(&self) -> &SyntaxNode {
23650        &self.syntax
23651    }
23652}
23653impl AstNode for Materialized {
23654    #[inline]
23655    fn can_cast(kind: SyntaxKind) -> bool {
23656        kind == SyntaxKind::MATERIALIZED
23657    }
23658    #[inline]
23659    fn cast(syntax: SyntaxNode) -> Option<Self> {
23660        if Self::can_cast(syntax.kind()) {
23661            Some(Self { syntax })
23662        } else {
23663            None
23664        }
23665    }
23666    #[inline]
23667    fn syntax(&self) -> &SyntaxNode {
23668        &self.syntax
23669    }
23670}
23671impl AstNode for Merge {
23672    #[inline]
23673    fn can_cast(kind: SyntaxKind) -> bool {
23674        kind == SyntaxKind::MERGE
23675    }
23676    #[inline]
23677    fn cast(syntax: SyntaxNode) -> Option<Self> {
23678        if Self::can_cast(syntax.kind()) {
23679            Some(Self { syntax })
23680        } else {
23681            None
23682        }
23683    }
23684    #[inline]
23685    fn syntax(&self) -> &SyntaxNode {
23686        &self.syntax
23687    }
23688}
23689impl AstNode for MergeDelete {
23690    #[inline]
23691    fn can_cast(kind: SyntaxKind) -> bool {
23692        kind == SyntaxKind::MERGE_DELETE
23693    }
23694    #[inline]
23695    fn cast(syntax: SyntaxNode) -> Option<Self> {
23696        if Self::can_cast(syntax.kind()) {
23697            Some(Self { syntax })
23698        } else {
23699            None
23700        }
23701    }
23702    #[inline]
23703    fn syntax(&self) -> &SyntaxNode {
23704        &self.syntax
23705    }
23706}
23707impl AstNode for MergeDoNothing {
23708    #[inline]
23709    fn can_cast(kind: SyntaxKind) -> bool {
23710        kind == SyntaxKind::MERGE_DO_NOTHING
23711    }
23712    #[inline]
23713    fn cast(syntax: SyntaxNode) -> Option<Self> {
23714        if Self::can_cast(syntax.kind()) {
23715            Some(Self { syntax })
23716        } else {
23717            None
23718        }
23719    }
23720    #[inline]
23721    fn syntax(&self) -> &SyntaxNode {
23722        &self.syntax
23723    }
23724}
23725impl AstNode for MergeInsert {
23726    #[inline]
23727    fn can_cast(kind: SyntaxKind) -> bool {
23728        kind == SyntaxKind::MERGE_INSERT
23729    }
23730    #[inline]
23731    fn cast(syntax: SyntaxNode) -> Option<Self> {
23732        if Self::can_cast(syntax.kind()) {
23733            Some(Self { syntax })
23734        } else {
23735            None
23736        }
23737    }
23738    #[inline]
23739    fn syntax(&self) -> &SyntaxNode {
23740        &self.syntax
23741    }
23742}
23743impl AstNode for MergePartitions {
23744    #[inline]
23745    fn can_cast(kind: SyntaxKind) -> bool {
23746        kind == SyntaxKind::MERGE_PARTITIONS
23747    }
23748    #[inline]
23749    fn cast(syntax: SyntaxNode) -> Option<Self> {
23750        if Self::can_cast(syntax.kind()) {
23751            Some(Self { syntax })
23752        } else {
23753            None
23754        }
23755    }
23756    #[inline]
23757    fn syntax(&self) -> &SyntaxNode {
23758        &self.syntax
23759    }
23760}
23761impl AstNode for MergeUpdate {
23762    #[inline]
23763    fn can_cast(kind: SyntaxKind) -> bool {
23764        kind == SyntaxKind::MERGE_UPDATE
23765    }
23766    #[inline]
23767    fn cast(syntax: SyntaxNode) -> Option<Self> {
23768        if Self::can_cast(syntax.kind()) {
23769            Some(Self { syntax })
23770        } else {
23771            None
23772        }
23773    }
23774    #[inline]
23775    fn syntax(&self) -> &SyntaxNode {
23776        &self.syntax
23777    }
23778}
23779impl AstNode for MergeWhenMatched {
23780    #[inline]
23781    fn can_cast(kind: SyntaxKind) -> bool {
23782        kind == SyntaxKind::MERGE_WHEN_MATCHED
23783    }
23784    #[inline]
23785    fn cast(syntax: SyntaxNode) -> Option<Self> {
23786        if Self::can_cast(syntax.kind()) {
23787            Some(Self { syntax })
23788        } else {
23789            None
23790        }
23791    }
23792    #[inline]
23793    fn syntax(&self) -> &SyntaxNode {
23794        &self.syntax
23795    }
23796}
23797impl AstNode for MergeWhenNotMatchedSource {
23798    #[inline]
23799    fn can_cast(kind: SyntaxKind) -> bool {
23800        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23801    }
23802    #[inline]
23803    fn cast(syntax: SyntaxNode) -> Option<Self> {
23804        if Self::can_cast(syntax.kind()) {
23805            Some(Self { syntax })
23806        } else {
23807            None
23808        }
23809    }
23810    #[inline]
23811    fn syntax(&self) -> &SyntaxNode {
23812        &self.syntax
23813    }
23814}
23815impl AstNode for MergeWhenNotMatchedTarget {
23816    #[inline]
23817    fn can_cast(kind: SyntaxKind) -> bool {
23818        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23819    }
23820    #[inline]
23821    fn cast(syntax: SyntaxNode) -> Option<Self> {
23822        if Self::can_cast(syntax.kind()) {
23823            Some(Self { syntax })
23824        } else {
23825            None
23826        }
23827    }
23828    #[inline]
23829    fn syntax(&self) -> &SyntaxNode {
23830        &self.syntax
23831    }
23832}
23833impl AstNode for Move {
23834    #[inline]
23835    fn can_cast(kind: SyntaxKind) -> bool {
23836        kind == SyntaxKind::MOVE
23837    }
23838    #[inline]
23839    fn cast(syntax: SyntaxNode) -> Option<Self> {
23840        if Self::can_cast(syntax.kind()) {
23841            Some(Self { syntax })
23842        } else {
23843            None
23844        }
23845    }
23846    #[inline]
23847    fn syntax(&self) -> &SyntaxNode {
23848        &self.syntax
23849    }
23850}
23851impl AstNode for Name {
23852    #[inline]
23853    fn can_cast(kind: SyntaxKind) -> bool {
23854        kind == SyntaxKind::NAME
23855    }
23856    #[inline]
23857    fn cast(syntax: SyntaxNode) -> Option<Self> {
23858        if Self::can_cast(syntax.kind()) {
23859            Some(Self { syntax })
23860        } else {
23861            None
23862        }
23863    }
23864    #[inline]
23865    fn syntax(&self) -> &SyntaxNode {
23866        &self.syntax
23867    }
23868}
23869impl AstNode for NameRef {
23870    #[inline]
23871    fn can_cast(kind: SyntaxKind) -> bool {
23872        kind == SyntaxKind::NAME_REF
23873    }
23874    #[inline]
23875    fn cast(syntax: SyntaxNode) -> Option<Self> {
23876        if Self::can_cast(syntax.kind()) {
23877            Some(Self { syntax })
23878        } else {
23879            None
23880        }
23881    }
23882    #[inline]
23883    fn syntax(&self) -> &SyntaxNode {
23884        &self.syntax
23885    }
23886}
23887impl AstNode for NamedArg {
23888    #[inline]
23889    fn can_cast(kind: SyntaxKind) -> bool {
23890        kind == SyntaxKind::NAMED_ARG
23891    }
23892    #[inline]
23893    fn cast(syntax: SyntaxNode) -> Option<Self> {
23894        if Self::can_cast(syntax.kind()) {
23895            Some(Self { syntax })
23896        } else {
23897            None
23898        }
23899    }
23900    #[inline]
23901    fn syntax(&self) -> &SyntaxNode {
23902        &self.syntax
23903    }
23904}
23905impl AstNode for Neq {
23906    #[inline]
23907    fn can_cast(kind: SyntaxKind) -> bool {
23908        kind == SyntaxKind::NEQ
23909    }
23910    #[inline]
23911    fn cast(syntax: SyntaxNode) -> Option<Self> {
23912        if Self::can_cast(syntax.kind()) {
23913            Some(Self { syntax })
23914        } else {
23915            None
23916        }
23917    }
23918    #[inline]
23919    fn syntax(&self) -> &SyntaxNode {
23920        &self.syntax
23921    }
23922}
23923impl AstNode for Neqb {
23924    #[inline]
23925    fn can_cast(kind: SyntaxKind) -> bool {
23926        kind == SyntaxKind::NEQB
23927    }
23928    #[inline]
23929    fn cast(syntax: SyntaxNode) -> Option<Self> {
23930        if Self::can_cast(syntax.kind()) {
23931            Some(Self { syntax })
23932        } else {
23933            None
23934        }
23935    }
23936    #[inline]
23937    fn syntax(&self) -> &SyntaxNode {
23938        &self.syntax
23939    }
23940}
23941impl AstNode for NoAction {
23942    #[inline]
23943    fn can_cast(kind: SyntaxKind) -> bool {
23944        kind == SyntaxKind::NO_ACTION
23945    }
23946    #[inline]
23947    fn cast(syntax: SyntaxNode) -> Option<Self> {
23948        if Self::can_cast(syntax.kind()) {
23949            Some(Self { syntax })
23950        } else {
23951            None
23952        }
23953    }
23954    #[inline]
23955    fn syntax(&self) -> &SyntaxNode {
23956        &self.syntax
23957    }
23958}
23959impl AstNode for NoDependsOnExtension {
23960    #[inline]
23961    fn can_cast(kind: SyntaxKind) -> bool {
23962        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
23963    }
23964    #[inline]
23965    fn cast(syntax: SyntaxNode) -> Option<Self> {
23966        if Self::can_cast(syntax.kind()) {
23967            Some(Self { syntax })
23968        } else {
23969            None
23970        }
23971    }
23972    #[inline]
23973    fn syntax(&self) -> &SyntaxNode {
23974        &self.syntax
23975    }
23976}
23977impl AstNode for NoForceRls {
23978    #[inline]
23979    fn can_cast(kind: SyntaxKind) -> bool {
23980        kind == SyntaxKind::NO_FORCE_RLS
23981    }
23982    #[inline]
23983    fn cast(syntax: SyntaxNode) -> Option<Self> {
23984        if Self::can_cast(syntax.kind()) {
23985            Some(Self { syntax })
23986        } else {
23987            None
23988        }
23989    }
23990    #[inline]
23991    fn syntax(&self) -> &SyntaxNode {
23992        &self.syntax
23993    }
23994}
23995impl AstNode for NoInherit {
23996    #[inline]
23997    fn can_cast(kind: SyntaxKind) -> bool {
23998        kind == SyntaxKind::NO_INHERIT
23999    }
24000    #[inline]
24001    fn cast(syntax: SyntaxNode) -> Option<Self> {
24002        if Self::can_cast(syntax.kind()) {
24003            Some(Self { syntax })
24004        } else {
24005            None
24006        }
24007    }
24008    #[inline]
24009    fn syntax(&self) -> &SyntaxNode {
24010        &self.syntax
24011    }
24012}
24013impl AstNode for NoInheritTable {
24014    #[inline]
24015    fn can_cast(kind: SyntaxKind) -> bool {
24016        kind == SyntaxKind::NO_INHERIT_TABLE
24017    }
24018    #[inline]
24019    fn cast(syntax: SyntaxNode) -> Option<Self> {
24020        if Self::can_cast(syntax.kind()) {
24021            Some(Self { syntax })
24022        } else {
24023            None
24024        }
24025    }
24026    #[inline]
24027    fn syntax(&self) -> &SyntaxNode {
24028        &self.syntax
24029    }
24030}
24031impl AstNode for NonStandardParam {
24032    #[inline]
24033    fn can_cast(kind: SyntaxKind) -> bool {
24034        kind == SyntaxKind::NON_STANDARD_PARAM
24035    }
24036    #[inline]
24037    fn cast(syntax: SyntaxNode) -> Option<Self> {
24038        if Self::can_cast(syntax.kind()) {
24039            Some(Self { syntax })
24040        } else {
24041            None
24042        }
24043    }
24044    #[inline]
24045    fn syntax(&self) -> &SyntaxNode {
24046        &self.syntax
24047    }
24048}
24049impl AstNode for NotDeferrable {
24050    #[inline]
24051    fn can_cast(kind: SyntaxKind) -> bool {
24052        kind == SyntaxKind::NOT_DEFERRABLE
24053    }
24054    #[inline]
24055    fn cast(syntax: SyntaxNode) -> Option<Self> {
24056        if Self::can_cast(syntax.kind()) {
24057            Some(Self { syntax })
24058        } else {
24059            None
24060        }
24061    }
24062    #[inline]
24063    fn syntax(&self) -> &SyntaxNode {
24064        &self.syntax
24065    }
24066}
24067impl AstNode for NotDeferrableConstraintOption {
24068    #[inline]
24069    fn can_cast(kind: SyntaxKind) -> bool {
24070        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
24071    }
24072    #[inline]
24073    fn cast(syntax: SyntaxNode) -> Option<Self> {
24074        if Self::can_cast(syntax.kind()) {
24075            Some(Self { syntax })
24076        } else {
24077            None
24078        }
24079    }
24080    #[inline]
24081    fn syntax(&self) -> &SyntaxNode {
24082        &self.syntax
24083    }
24084}
24085impl AstNode for NotEnforced {
24086    #[inline]
24087    fn can_cast(kind: SyntaxKind) -> bool {
24088        kind == SyntaxKind::NOT_ENFORCED
24089    }
24090    #[inline]
24091    fn cast(syntax: SyntaxNode) -> Option<Self> {
24092        if Self::can_cast(syntax.kind()) {
24093            Some(Self { syntax })
24094        } else {
24095            None
24096        }
24097    }
24098    #[inline]
24099    fn syntax(&self) -> &SyntaxNode {
24100        &self.syntax
24101    }
24102}
24103impl AstNode for NotIlike {
24104    #[inline]
24105    fn can_cast(kind: SyntaxKind) -> bool {
24106        kind == SyntaxKind::NOT_ILIKE
24107    }
24108    #[inline]
24109    fn cast(syntax: SyntaxNode) -> Option<Self> {
24110        if Self::can_cast(syntax.kind()) {
24111            Some(Self { syntax })
24112        } else {
24113            None
24114        }
24115    }
24116    #[inline]
24117    fn syntax(&self) -> &SyntaxNode {
24118        &self.syntax
24119    }
24120}
24121impl AstNode for NotIn {
24122    #[inline]
24123    fn can_cast(kind: SyntaxKind) -> bool {
24124        kind == SyntaxKind::NOT_IN
24125    }
24126    #[inline]
24127    fn cast(syntax: SyntaxNode) -> Option<Self> {
24128        if Self::can_cast(syntax.kind()) {
24129            Some(Self { syntax })
24130        } else {
24131            None
24132        }
24133    }
24134    #[inline]
24135    fn syntax(&self) -> &SyntaxNode {
24136        &self.syntax
24137    }
24138}
24139impl AstNode for NotLike {
24140    #[inline]
24141    fn can_cast(kind: SyntaxKind) -> bool {
24142        kind == SyntaxKind::NOT_LIKE
24143    }
24144    #[inline]
24145    fn cast(syntax: SyntaxNode) -> Option<Self> {
24146        if Self::can_cast(syntax.kind()) {
24147            Some(Self { syntax })
24148        } else {
24149            None
24150        }
24151    }
24152    #[inline]
24153    fn syntax(&self) -> &SyntaxNode {
24154        &self.syntax
24155    }
24156}
24157impl AstNode for NotMaterialized {
24158    #[inline]
24159    fn can_cast(kind: SyntaxKind) -> bool {
24160        kind == SyntaxKind::NOT_MATERIALIZED
24161    }
24162    #[inline]
24163    fn cast(syntax: SyntaxNode) -> Option<Self> {
24164        if Self::can_cast(syntax.kind()) {
24165            Some(Self { syntax })
24166        } else {
24167            None
24168        }
24169    }
24170    #[inline]
24171    fn syntax(&self) -> &SyntaxNode {
24172        &self.syntax
24173    }
24174}
24175impl AstNode for NotNullConstraint {
24176    #[inline]
24177    fn can_cast(kind: SyntaxKind) -> bool {
24178        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24179    }
24180    #[inline]
24181    fn cast(syntax: SyntaxNode) -> Option<Self> {
24182        if Self::can_cast(syntax.kind()) {
24183            Some(Self { syntax })
24184        } else {
24185            None
24186        }
24187    }
24188    #[inline]
24189    fn syntax(&self) -> &SyntaxNode {
24190        &self.syntax
24191    }
24192}
24193impl AstNode for NotOf {
24194    #[inline]
24195    fn can_cast(kind: SyntaxKind) -> bool {
24196        kind == SyntaxKind::NOT_OF
24197    }
24198    #[inline]
24199    fn cast(syntax: SyntaxNode) -> Option<Self> {
24200        if Self::can_cast(syntax.kind()) {
24201            Some(Self { syntax })
24202        } else {
24203            None
24204        }
24205    }
24206    #[inline]
24207    fn syntax(&self) -> &SyntaxNode {
24208        &self.syntax
24209    }
24210}
24211impl AstNode for NotSimilarTo {
24212    #[inline]
24213    fn can_cast(kind: SyntaxKind) -> bool {
24214        kind == SyntaxKind::NOT_SIMILAR_TO
24215    }
24216    #[inline]
24217    fn cast(syntax: SyntaxNode) -> Option<Self> {
24218        if Self::can_cast(syntax.kind()) {
24219            Some(Self { syntax })
24220        } else {
24221            None
24222        }
24223    }
24224    #[inline]
24225    fn syntax(&self) -> &SyntaxNode {
24226        &self.syntax
24227    }
24228}
24229impl AstNode for NotValid {
24230    #[inline]
24231    fn can_cast(kind: SyntaxKind) -> bool {
24232        kind == SyntaxKind::NOT_VALID
24233    }
24234    #[inline]
24235    fn cast(syntax: SyntaxNode) -> Option<Self> {
24236        if Self::can_cast(syntax.kind()) {
24237            Some(Self { syntax })
24238        } else {
24239            None
24240        }
24241    }
24242    #[inline]
24243    fn syntax(&self) -> &SyntaxNode {
24244        &self.syntax
24245    }
24246}
24247impl AstNode for Notify {
24248    #[inline]
24249    fn can_cast(kind: SyntaxKind) -> bool {
24250        kind == SyntaxKind::NOTIFY
24251    }
24252    #[inline]
24253    fn cast(syntax: SyntaxNode) -> Option<Self> {
24254        if Self::can_cast(syntax.kind()) {
24255            Some(Self { syntax })
24256        } else {
24257            None
24258        }
24259    }
24260    #[inline]
24261    fn syntax(&self) -> &SyntaxNode {
24262        &self.syntax
24263    }
24264}
24265impl AstNode for NullConstraint {
24266    #[inline]
24267    fn can_cast(kind: SyntaxKind) -> bool {
24268        kind == SyntaxKind::NULL_CONSTRAINT
24269    }
24270    #[inline]
24271    fn cast(syntax: SyntaxNode) -> Option<Self> {
24272        if Self::can_cast(syntax.kind()) {
24273            Some(Self { syntax })
24274        } else {
24275            None
24276        }
24277    }
24278    #[inline]
24279    fn syntax(&self) -> &SyntaxNode {
24280        &self.syntax
24281    }
24282}
24283impl AstNode for NullsDistinct {
24284    #[inline]
24285    fn can_cast(kind: SyntaxKind) -> bool {
24286        kind == SyntaxKind::NULLS_DISTINCT
24287    }
24288    #[inline]
24289    fn cast(syntax: SyntaxNode) -> Option<Self> {
24290        if Self::can_cast(syntax.kind()) {
24291            Some(Self { syntax })
24292        } else {
24293            None
24294        }
24295    }
24296    #[inline]
24297    fn syntax(&self) -> &SyntaxNode {
24298        &self.syntax
24299    }
24300}
24301impl AstNode for NullsFirst {
24302    #[inline]
24303    fn can_cast(kind: SyntaxKind) -> bool {
24304        kind == SyntaxKind::NULLS_FIRST
24305    }
24306    #[inline]
24307    fn cast(syntax: SyntaxNode) -> Option<Self> {
24308        if Self::can_cast(syntax.kind()) {
24309            Some(Self { syntax })
24310        } else {
24311            None
24312        }
24313    }
24314    #[inline]
24315    fn syntax(&self) -> &SyntaxNode {
24316        &self.syntax
24317    }
24318}
24319impl AstNode for NullsLast {
24320    #[inline]
24321    fn can_cast(kind: SyntaxKind) -> bool {
24322        kind == SyntaxKind::NULLS_LAST
24323    }
24324    #[inline]
24325    fn cast(syntax: SyntaxNode) -> Option<Self> {
24326        if Self::can_cast(syntax.kind()) {
24327            Some(Self { syntax })
24328        } else {
24329            None
24330        }
24331    }
24332    #[inline]
24333    fn syntax(&self) -> &SyntaxNode {
24334        &self.syntax
24335    }
24336}
24337impl AstNode for NullsNotDistinct {
24338    #[inline]
24339    fn can_cast(kind: SyntaxKind) -> bool {
24340        kind == SyntaxKind::NULLS_NOT_DISTINCT
24341    }
24342    #[inline]
24343    fn cast(syntax: SyntaxNode) -> Option<Self> {
24344        if Self::can_cast(syntax.kind()) {
24345            Some(Self { syntax })
24346        } else {
24347            None
24348        }
24349    }
24350    #[inline]
24351    fn syntax(&self) -> &SyntaxNode {
24352        &self.syntax
24353    }
24354}
24355impl AstNode for OfType {
24356    #[inline]
24357    fn can_cast(kind: SyntaxKind) -> bool {
24358        kind == SyntaxKind::OF_TYPE
24359    }
24360    #[inline]
24361    fn cast(syntax: SyntaxNode) -> Option<Self> {
24362        if Self::can_cast(syntax.kind()) {
24363            Some(Self { syntax })
24364        } else {
24365            None
24366        }
24367    }
24368    #[inline]
24369    fn syntax(&self) -> &SyntaxNode {
24370        &self.syntax
24371    }
24372}
24373impl AstNode for OffsetClause {
24374    #[inline]
24375    fn can_cast(kind: SyntaxKind) -> bool {
24376        kind == SyntaxKind::OFFSET_CLAUSE
24377    }
24378    #[inline]
24379    fn cast(syntax: SyntaxNode) -> Option<Self> {
24380        if Self::can_cast(syntax.kind()) {
24381            Some(Self { syntax })
24382        } else {
24383            None
24384        }
24385    }
24386    #[inline]
24387    fn syntax(&self) -> &SyntaxNode {
24388        &self.syntax
24389    }
24390}
24391impl AstNode for OnClause {
24392    #[inline]
24393    fn can_cast(kind: SyntaxKind) -> bool {
24394        kind == SyntaxKind::ON_CLAUSE
24395    }
24396    #[inline]
24397    fn cast(syntax: SyntaxNode) -> Option<Self> {
24398        if Self::can_cast(syntax.kind()) {
24399            Some(Self { syntax })
24400        } else {
24401            None
24402        }
24403    }
24404    #[inline]
24405    fn syntax(&self) -> &SyntaxNode {
24406        &self.syntax
24407    }
24408}
24409impl AstNode for OnCommit {
24410    #[inline]
24411    fn can_cast(kind: SyntaxKind) -> bool {
24412        kind == SyntaxKind::ON_COMMIT
24413    }
24414    #[inline]
24415    fn cast(syntax: SyntaxNode) -> Option<Self> {
24416        if Self::can_cast(syntax.kind()) {
24417            Some(Self { syntax })
24418        } else {
24419            None
24420        }
24421    }
24422    #[inline]
24423    fn syntax(&self) -> &SyntaxNode {
24424        &self.syntax
24425    }
24426}
24427impl AstNode for OnConflictClause {
24428    #[inline]
24429    fn can_cast(kind: SyntaxKind) -> bool {
24430        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24431    }
24432    #[inline]
24433    fn cast(syntax: SyntaxNode) -> Option<Self> {
24434        if Self::can_cast(syntax.kind()) {
24435            Some(Self { syntax })
24436        } else {
24437            None
24438        }
24439    }
24440    #[inline]
24441    fn syntax(&self) -> &SyntaxNode {
24442        &self.syntax
24443    }
24444}
24445impl AstNode for OnDeleteAction {
24446    #[inline]
24447    fn can_cast(kind: SyntaxKind) -> bool {
24448        kind == SyntaxKind::ON_DELETE_ACTION
24449    }
24450    #[inline]
24451    fn cast(syntax: SyntaxNode) -> Option<Self> {
24452        if Self::can_cast(syntax.kind()) {
24453            Some(Self { syntax })
24454        } else {
24455            None
24456        }
24457    }
24458    #[inline]
24459    fn syntax(&self) -> &SyntaxNode {
24460        &self.syntax
24461    }
24462}
24463impl AstNode for OnTable {
24464    #[inline]
24465    fn can_cast(kind: SyntaxKind) -> bool {
24466        kind == SyntaxKind::ON_TABLE
24467    }
24468    #[inline]
24469    fn cast(syntax: SyntaxNode) -> Option<Self> {
24470        if Self::can_cast(syntax.kind()) {
24471            Some(Self { syntax })
24472        } else {
24473            None
24474        }
24475    }
24476    #[inline]
24477    fn syntax(&self) -> &SyntaxNode {
24478        &self.syntax
24479    }
24480}
24481impl AstNode for OnUpdateAction {
24482    #[inline]
24483    fn can_cast(kind: SyntaxKind) -> bool {
24484        kind == SyntaxKind::ON_UPDATE_ACTION
24485    }
24486    #[inline]
24487    fn cast(syntax: SyntaxNode) -> Option<Self> {
24488        if Self::can_cast(syntax.kind()) {
24489            Some(Self { syntax })
24490        } else {
24491            None
24492        }
24493    }
24494    #[inline]
24495    fn syntax(&self) -> &SyntaxNode {
24496        &self.syntax
24497    }
24498}
24499impl AstNode for Op {
24500    #[inline]
24501    fn can_cast(kind: SyntaxKind) -> bool {
24502        kind == SyntaxKind::OP
24503    }
24504    #[inline]
24505    fn cast(syntax: SyntaxNode) -> Option<Self> {
24506        if Self::can_cast(syntax.kind()) {
24507            Some(Self { syntax })
24508        } else {
24509            None
24510        }
24511    }
24512    #[inline]
24513    fn syntax(&self) -> &SyntaxNode {
24514        &self.syntax
24515    }
24516}
24517impl AstNode for OpClassOption {
24518    #[inline]
24519    fn can_cast(kind: SyntaxKind) -> bool {
24520        kind == SyntaxKind::OP_CLASS_OPTION
24521    }
24522    #[inline]
24523    fn cast(syntax: SyntaxNode) -> Option<Self> {
24524        if Self::can_cast(syntax.kind()) {
24525            Some(Self { syntax })
24526        } else {
24527            None
24528        }
24529    }
24530    #[inline]
24531    fn syntax(&self) -> &SyntaxNode {
24532        &self.syntax
24533    }
24534}
24535impl AstNode for OpSig {
24536    #[inline]
24537    fn can_cast(kind: SyntaxKind) -> bool {
24538        kind == SyntaxKind::OP_SIG
24539    }
24540    #[inline]
24541    fn cast(syntax: SyntaxNode) -> Option<Self> {
24542        if Self::can_cast(syntax.kind()) {
24543            Some(Self { syntax })
24544        } else {
24545            None
24546        }
24547    }
24548    #[inline]
24549    fn syntax(&self) -> &SyntaxNode {
24550        &self.syntax
24551    }
24552}
24553impl AstNode for OpSigList {
24554    #[inline]
24555    fn can_cast(kind: SyntaxKind) -> bool {
24556        kind == SyntaxKind::OP_SIG_LIST
24557    }
24558    #[inline]
24559    fn cast(syntax: SyntaxNode) -> Option<Self> {
24560        if Self::can_cast(syntax.kind()) {
24561            Some(Self { syntax })
24562        } else {
24563            None
24564        }
24565    }
24566    #[inline]
24567    fn syntax(&self) -> &SyntaxNode {
24568        &self.syntax
24569    }
24570}
24571impl AstNode for OperatorCall {
24572    #[inline]
24573    fn can_cast(kind: SyntaxKind) -> bool {
24574        kind == SyntaxKind::OPERATOR_CALL
24575    }
24576    #[inline]
24577    fn cast(syntax: SyntaxNode) -> Option<Self> {
24578        if Self::can_cast(syntax.kind()) {
24579            Some(Self { syntax })
24580        } else {
24581            None
24582        }
24583    }
24584    #[inline]
24585    fn syntax(&self) -> &SyntaxNode {
24586        &self.syntax
24587    }
24588}
24589impl AstNode for OperatorClassOptionList {
24590    #[inline]
24591    fn can_cast(kind: SyntaxKind) -> bool {
24592        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24593    }
24594    #[inline]
24595    fn cast(syntax: SyntaxNode) -> Option<Self> {
24596        if Self::can_cast(syntax.kind()) {
24597            Some(Self { syntax })
24598        } else {
24599            None
24600        }
24601    }
24602    #[inline]
24603    fn syntax(&self) -> &SyntaxNode {
24604        &self.syntax
24605    }
24606}
24607impl AstNode for OptionItem {
24608    #[inline]
24609    fn can_cast(kind: SyntaxKind) -> bool {
24610        kind == SyntaxKind::OPTION_ITEM
24611    }
24612    #[inline]
24613    fn cast(syntax: SyntaxNode) -> Option<Self> {
24614        if Self::can_cast(syntax.kind()) {
24615            Some(Self { syntax })
24616        } else {
24617            None
24618        }
24619    }
24620    #[inline]
24621    fn syntax(&self) -> &SyntaxNode {
24622        &self.syntax
24623    }
24624}
24625impl AstNode for OptionItemList {
24626    #[inline]
24627    fn can_cast(kind: SyntaxKind) -> bool {
24628        kind == SyntaxKind::OPTION_ITEM_LIST
24629    }
24630    #[inline]
24631    fn cast(syntax: SyntaxNode) -> Option<Self> {
24632        if Self::can_cast(syntax.kind()) {
24633            Some(Self { syntax })
24634        } else {
24635            None
24636        }
24637    }
24638    #[inline]
24639    fn syntax(&self) -> &SyntaxNode {
24640        &self.syntax
24641    }
24642}
24643impl AstNode for OrReplace {
24644    #[inline]
24645    fn can_cast(kind: SyntaxKind) -> bool {
24646        kind == SyntaxKind::OR_REPLACE
24647    }
24648    #[inline]
24649    fn cast(syntax: SyntaxNode) -> Option<Self> {
24650        if Self::can_cast(syntax.kind()) {
24651            Some(Self { syntax })
24652        } else {
24653            None
24654        }
24655    }
24656    #[inline]
24657    fn syntax(&self) -> &SyntaxNode {
24658        &self.syntax
24659    }
24660}
24661impl AstNode for OrderByClause {
24662    #[inline]
24663    fn can_cast(kind: SyntaxKind) -> bool {
24664        kind == SyntaxKind::ORDER_BY_CLAUSE
24665    }
24666    #[inline]
24667    fn cast(syntax: SyntaxNode) -> Option<Self> {
24668        if Self::can_cast(syntax.kind()) {
24669            Some(Self { syntax })
24670        } else {
24671            None
24672        }
24673    }
24674    #[inline]
24675    fn syntax(&self) -> &SyntaxNode {
24676        &self.syntax
24677    }
24678}
24679impl AstNode for OverClause {
24680    #[inline]
24681    fn can_cast(kind: SyntaxKind) -> bool {
24682        kind == SyntaxKind::OVER_CLAUSE
24683    }
24684    #[inline]
24685    fn cast(syntax: SyntaxNode) -> Option<Self> {
24686        if Self::can_cast(syntax.kind()) {
24687            Some(Self { syntax })
24688        } else {
24689            None
24690        }
24691    }
24692    #[inline]
24693    fn syntax(&self) -> &SyntaxNode {
24694        &self.syntax
24695    }
24696}
24697impl AstNode for OverlayFn {
24698    #[inline]
24699    fn can_cast(kind: SyntaxKind) -> bool {
24700        kind == SyntaxKind::OVERLAY_FN
24701    }
24702    #[inline]
24703    fn cast(syntax: SyntaxNode) -> Option<Self> {
24704        if Self::can_cast(syntax.kind()) {
24705            Some(Self { syntax })
24706        } else {
24707            None
24708        }
24709    }
24710    #[inline]
24711    fn syntax(&self) -> &SyntaxNode {
24712        &self.syntax
24713    }
24714}
24715impl AstNode for OwnedByRoles {
24716    #[inline]
24717    fn can_cast(kind: SyntaxKind) -> bool {
24718        kind == SyntaxKind::OWNED_BY_ROLES
24719    }
24720    #[inline]
24721    fn cast(syntax: SyntaxNode) -> Option<Self> {
24722        if Self::can_cast(syntax.kind()) {
24723            Some(Self { syntax })
24724        } else {
24725            None
24726        }
24727    }
24728    #[inline]
24729    fn syntax(&self) -> &SyntaxNode {
24730        &self.syntax
24731    }
24732}
24733impl AstNode for OwnerTo {
24734    #[inline]
24735    fn can_cast(kind: SyntaxKind) -> bool {
24736        kind == SyntaxKind::OWNER_TO
24737    }
24738    #[inline]
24739    fn cast(syntax: SyntaxNode) -> Option<Self> {
24740        if Self::can_cast(syntax.kind()) {
24741            Some(Self { syntax })
24742        } else {
24743            None
24744        }
24745    }
24746    #[inline]
24747    fn syntax(&self) -> &SyntaxNode {
24748        &self.syntax
24749    }
24750}
24751impl AstNode for ParallelFuncOption {
24752    #[inline]
24753    fn can_cast(kind: SyntaxKind) -> bool {
24754        kind == SyntaxKind::PARALLEL_FUNC_OPTION
24755    }
24756    #[inline]
24757    fn cast(syntax: SyntaxNode) -> Option<Self> {
24758        if Self::can_cast(syntax.kind()) {
24759            Some(Self { syntax })
24760        } else {
24761            None
24762        }
24763    }
24764    #[inline]
24765    fn syntax(&self) -> &SyntaxNode {
24766        &self.syntax
24767    }
24768}
24769impl AstNode for Param {
24770    #[inline]
24771    fn can_cast(kind: SyntaxKind) -> bool {
24772        kind == SyntaxKind::PARAM
24773    }
24774    #[inline]
24775    fn cast(syntax: SyntaxNode) -> Option<Self> {
24776        if Self::can_cast(syntax.kind()) {
24777            Some(Self { syntax })
24778        } else {
24779            None
24780        }
24781    }
24782    #[inline]
24783    fn syntax(&self) -> &SyntaxNode {
24784        &self.syntax
24785    }
24786}
24787impl AstNode for ParamDefault {
24788    #[inline]
24789    fn can_cast(kind: SyntaxKind) -> bool {
24790        kind == SyntaxKind::PARAM_DEFAULT
24791    }
24792    #[inline]
24793    fn cast(syntax: SyntaxNode) -> Option<Self> {
24794        if Self::can_cast(syntax.kind()) {
24795            Some(Self { syntax })
24796        } else {
24797            None
24798        }
24799    }
24800    #[inline]
24801    fn syntax(&self) -> &SyntaxNode {
24802        &self.syntax
24803    }
24804}
24805impl AstNode for ParamIn {
24806    #[inline]
24807    fn can_cast(kind: SyntaxKind) -> bool {
24808        kind == SyntaxKind::PARAM_IN
24809    }
24810    #[inline]
24811    fn cast(syntax: SyntaxNode) -> Option<Self> {
24812        if Self::can_cast(syntax.kind()) {
24813            Some(Self { syntax })
24814        } else {
24815            None
24816        }
24817    }
24818    #[inline]
24819    fn syntax(&self) -> &SyntaxNode {
24820        &self.syntax
24821    }
24822}
24823impl AstNode for ParamInOut {
24824    #[inline]
24825    fn can_cast(kind: SyntaxKind) -> bool {
24826        kind == SyntaxKind::PARAM_IN_OUT
24827    }
24828    #[inline]
24829    fn cast(syntax: SyntaxNode) -> Option<Self> {
24830        if Self::can_cast(syntax.kind()) {
24831            Some(Self { syntax })
24832        } else {
24833            None
24834        }
24835    }
24836    #[inline]
24837    fn syntax(&self) -> &SyntaxNode {
24838        &self.syntax
24839    }
24840}
24841impl AstNode for ParamList {
24842    #[inline]
24843    fn can_cast(kind: SyntaxKind) -> bool {
24844        kind == SyntaxKind::PARAM_LIST
24845    }
24846    #[inline]
24847    fn cast(syntax: SyntaxNode) -> Option<Self> {
24848        if Self::can_cast(syntax.kind()) {
24849            Some(Self { syntax })
24850        } else {
24851            None
24852        }
24853    }
24854    #[inline]
24855    fn syntax(&self) -> &SyntaxNode {
24856        &self.syntax
24857    }
24858}
24859impl AstNode for ParamOut {
24860    #[inline]
24861    fn can_cast(kind: SyntaxKind) -> bool {
24862        kind == SyntaxKind::PARAM_OUT
24863    }
24864    #[inline]
24865    fn cast(syntax: SyntaxNode) -> Option<Self> {
24866        if Self::can_cast(syntax.kind()) {
24867            Some(Self { syntax })
24868        } else {
24869            None
24870        }
24871    }
24872    #[inline]
24873    fn syntax(&self) -> &SyntaxNode {
24874        &self.syntax
24875    }
24876}
24877impl AstNode for ParamVariadic {
24878    #[inline]
24879    fn can_cast(kind: SyntaxKind) -> bool {
24880        kind == SyntaxKind::PARAM_VARIADIC
24881    }
24882    #[inline]
24883    fn cast(syntax: SyntaxNode) -> Option<Self> {
24884        if Self::can_cast(syntax.kind()) {
24885            Some(Self { syntax })
24886        } else {
24887            None
24888        }
24889    }
24890    #[inline]
24891    fn syntax(&self) -> &SyntaxNode {
24892        &self.syntax
24893    }
24894}
24895impl AstNode for ParenExpr {
24896    #[inline]
24897    fn can_cast(kind: SyntaxKind) -> bool {
24898        kind == SyntaxKind::PAREN_EXPR
24899    }
24900    #[inline]
24901    fn cast(syntax: SyntaxNode) -> Option<Self> {
24902        if Self::can_cast(syntax.kind()) {
24903            Some(Self { syntax })
24904        } else {
24905            None
24906        }
24907    }
24908    #[inline]
24909    fn syntax(&self) -> &SyntaxNode {
24910        &self.syntax
24911    }
24912}
24913impl AstNode for ParenSelect {
24914    #[inline]
24915    fn can_cast(kind: SyntaxKind) -> bool {
24916        kind == SyntaxKind::PAREN_SELECT
24917    }
24918    #[inline]
24919    fn cast(syntax: SyntaxNode) -> Option<Self> {
24920        if Self::can_cast(syntax.kind()) {
24921            Some(Self { syntax })
24922        } else {
24923            None
24924        }
24925    }
24926    #[inline]
24927    fn syntax(&self) -> &SyntaxNode {
24928        &self.syntax
24929    }
24930}
24931impl AstNode for Partition {
24932    #[inline]
24933    fn can_cast(kind: SyntaxKind) -> bool {
24934        kind == SyntaxKind::PARTITION
24935    }
24936    #[inline]
24937    fn cast(syntax: SyntaxNode) -> Option<Self> {
24938        if Self::can_cast(syntax.kind()) {
24939            Some(Self { syntax })
24940        } else {
24941            None
24942        }
24943    }
24944    #[inline]
24945    fn syntax(&self) -> &SyntaxNode {
24946        &self.syntax
24947    }
24948}
24949impl AstNode for PartitionBy {
24950    #[inline]
24951    fn can_cast(kind: SyntaxKind) -> bool {
24952        kind == SyntaxKind::PARTITION_BY
24953    }
24954    #[inline]
24955    fn cast(syntax: SyntaxNode) -> Option<Self> {
24956        if Self::can_cast(syntax.kind()) {
24957            Some(Self { syntax })
24958        } else {
24959            None
24960        }
24961    }
24962    #[inline]
24963    fn syntax(&self) -> &SyntaxNode {
24964        &self.syntax
24965    }
24966}
24967impl AstNode for PartitionDefault {
24968    #[inline]
24969    fn can_cast(kind: SyntaxKind) -> bool {
24970        kind == SyntaxKind::PARTITION_DEFAULT
24971    }
24972    #[inline]
24973    fn cast(syntax: SyntaxNode) -> Option<Self> {
24974        if Self::can_cast(syntax.kind()) {
24975            Some(Self { syntax })
24976        } else {
24977            None
24978        }
24979    }
24980    #[inline]
24981    fn syntax(&self) -> &SyntaxNode {
24982        &self.syntax
24983    }
24984}
24985impl AstNode for PartitionForValuesFrom {
24986    #[inline]
24987    fn can_cast(kind: SyntaxKind) -> bool {
24988        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
24989    }
24990    #[inline]
24991    fn cast(syntax: SyntaxNode) -> Option<Self> {
24992        if Self::can_cast(syntax.kind()) {
24993            Some(Self { syntax })
24994        } else {
24995            None
24996        }
24997    }
24998    #[inline]
24999    fn syntax(&self) -> &SyntaxNode {
25000        &self.syntax
25001    }
25002}
25003impl AstNode for PartitionForValuesIn {
25004    #[inline]
25005    fn can_cast(kind: SyntaxKind) -> bool {
25006        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
25007    }
25008    #[inline]
25009    fn cast(syntax: SyntaxNode) -> Option<Self> {
25010        if Self::can_cast(syntax.kind()) {
25011            Some(Self { syntax })
25012        } else {
25013            None
25014        }
25015    }
25016    #[inline]
25017    fn syntax(&self) -> &SyntaxNode {
25018        &self.syntax
25019    }
25020}
25021impl AstNode for PartitionForValuesWith {
25022    #[inline]
25023    fn can_cast(kind: SyntaxKind) -> bool {
25024        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
25025    }
25026    #[inline]
25027    fn cast(syntax: SyntaxNode) -> Option<Self> {
25028        if Self::can_cast(syntax.kind()) {
25029            Some(Self { syntax })
25030        } else {
25031            None
25032        }
25033    }
25034    #[inline]
25035    fn syntax(&self) -> &SyntaxNode {
25036        &self.syntax
25037    }
25038}
25039impl AstNode for PartitionItem {
25040    #[inline]
25041    fn can_cast(kind: SyntaxKind) -> bool {
25042        kind == SyntaxKind::PARTITION_ITEM
25043    }
25044    #[inline]
25045    fn cast(syntax: SyntaxNode) -> Option<Self> {
25046        if Self::can_cast(syntax.kind()) {
25047            Some(Self { syntax })
25048        } else {
25049            None
25050        }
25051    }
25052    #[inline]
25053    fn syntax(&self) -> &SyntaxNode {
25054        &self.syntax
25055    }
25056}
25057impl AstNode for PartitionItemList {
25058    #[inline]
25059    fn can_cast(kind: SyntaxKind) -> bool {
25060        kind == SyntaxKind::PARTITION_ITEM_LIST
25061    }
25062    #[inline]
25063    fn cast(syntax: SyntaxNode) -> Option<Self> {
25064        if Self::can_cast(syntax.kind()) {
25065            Some(Self { syntax })
25066        } else {
25067            None
25068        }
25069    }
25070    #[inline]
25071    fn syntax(&self) -> &SyntaxNode {
25072        &self.syntax
25073    }
25074}
25075impl AstNode for PartitionList {
25076    #[inline]
25077    fn can_cast(kind: SyntaxKind) -> bool {
25078        kind == SyntaxKind::PARTITION_LIST
25079    }
25080    #[inline]
25081    fn cast(syntax: SyntaxNode) -> Option<Self> {
25082        if Self::can_cast(syntax.kind()) {
25083            Some(Self { syntax })
25084        } else {
25085            None
25086        }
25087    }
25088    #[inline]
25089    fn syntax(&self) -> &SyntaxNode {
25090        &self.syntax
25091    }
25092}
25093impl AstNode for PartitionOf {
25094    #[inline]
25095    fn can_cast(kind: SyntaxKind) -> bool {
25096        kind == SyntaxKind::PARTITION_OF
25097    }
25098    #[inline]
25099    fn cast(syntax: SyntaxNode) -> Option<Self> {
25100        if Self::can_cast(syntax.kind()) {
25101            Some(Self { syntax })
25102        } else {
25103            None
25104        }
25105    }
25106    #[inline]
25107    fn syntax(&self) -> &SyntaxNode {
25108        &self.syntax
25109    }
25110}
25111impl AstNode for Path {
25112    #[inline]
25113    fn can_cast(kind: SyntaxKind) -> bool {
25114        kind == SyntaxKind::PATH
25115    }
25116    #[inline]
25117    fn cast(syntax: SyntaxNode) -> Option<Self> {
25118        if Self::can_cast(syntax.kind()) {
25119            Some(Self { syntax })
25120        } else {
25121            None
25122        }
25123    }
25124    #[inline]
25125    fn syntax(&self) -> &SyntaxNode {
25126        &self.syntax
25127    }
25128}
25129impl AstNode for PathSegment {
25130    #[inline]
25131    fn can_cast(kind: SyntaxKind) -> bool {
25132        kind == SyntaxKind::PATH_SEGMENT
25133    }
25134    #[inline]
25135    fn cast(syntax: SyntaxNode) -> Option<Self> {
25136        if Self::can_cast(syntax.kind()) {
25137            Some(Self { syntax })
25138        } else {
25139            None
25140        }
25141    }
25142    #[inline]
25143    fn syntax(&self) -> &SyntaxNode {
25144        &self.syntax
25145    }
25146}
25147impl AstNode for PathType {
25148    #[inline]
25149    fn can_cast(kind: SyntaxKind) -> bool {
25150        kind == SyntaxKind::PATH_TYPE
25151    }
25152    #[inline]
25153    fn cast(syntax: SyntaxNode) -> Option<Self> {
25154        if Self::can_cast(syntax.kind()) {
25155            Some(Self { syntax })
25156        } else {
25157            None
25158        }
25159    }
25160    #[inline]
25161    fn syntax(&self) -> &SyntaxNode {
25162        &self.syntax
25163    }
25164}
25165impl AstNode for PercentType {
25166    #[inline]
25167    fn can_cast(kind: SyntaxKind) -> bool {
25168        kind == SyntaxKind::PERCENT_TYPE
25169    }
25170    #[inline]
25171    fn cast(syntax: SyntaxNode) -> Option<Self> {
25172        if Self::can_cast(syntax.kind()) {
25173            Some(Self { syntax })
25174        } else {
25175            None
25176        }
25177    }
25178    #[inline]
25179    fn syntax(&self) -> &SyntaxNode {
25180        &self.syntax
25181    }
25182}
25183impl AstNode for PercentTypeClause {
25184    #[inline]
25185    fn can_cast(kind: SyntaxKind) -> bool {
25186        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25187    }
25188    #[inline]
25189    fn cast(syntax: SyntaxNode) -> Option<Self> {
25190        if Self::can_cast(syntax.kind()) {
25191            Some(Self { syntax })
25192        } else {
25193            None
25194        }
25195    }
25196    #[inline]
25197    fn syntax(&self) -> &SyntaxNode {
25198        &self.syntax
25199    }
25200}
25201impl AstNode for PositionFn {
25202    #[inline]
25203    fn can_cast(kind: SyntaxKind) -> bool {
25204        kind == SyntaxKind::POSITION_FN
25205    }
25206    #[inline]
25207    fn cast(syntax: SyntaxNode) -> Option<Self> {
25208        if Self::can_cast(syntax.kind()) {
25209            Some(Self { syntax })
25210        } else {
25211            None
25212        }
25213    }
25214    #[inline]
25215    fn syntax(&self) -> &SyntaxNode {
25216        &self.syntax
25217    }
25218}
25219impl AstNode for PostfixExpr {
25220    #[inline]
25221    fn can_cast(kind: SyntaxKind) -> bool {
25222        kind == SyntaxKind::POSTFIX_EXPR
25223    }
25224    #[inline]
25225    fn cast(syntax: SyntaxNode) -> Option<Self> {
25226        if Self::can_cast(syntax.kind()) {
25227            Some(Self { syntax })
25228        } else {
25229            None
25230        }
25231    }
25232    #[inline]
25233    fn syntax(&self) -> &SyntaxNode {
25234        &self.syntax
25235    }
25236}
25237impl AstNode for PrefixExpr {
25238    #[inline]
25239    fn can_cast(kind: SyntaxKind) -> bool {
25240        kind == SyntaxKind::PREFIX_EXPR
25241    }
25242    #[inline]
25243    fn cast(syntax: SyntaxNode) -> Option<Self> {
25244        if Self::can_cast(syntax.kind()) {
25245            Some(Self { syntax })
25246        } else {
25247            None
25248        }
25249    }
25250    #[inline]
25251    fn syntax(&self) -> &SyntaxNode {
25252        &self.syntax
25253    }
25254}
25255impl AstNode for Prepare {
25256    #[inline]
25257    fn can_cast(kind: SyntaxKind) -> bool {
25258        kind == SyntaxKind::PREPARE
25259    }
25260    #[inline]
25261    fn cast(syntax: SyntaxNode) -> Option<Self> {
25262        if Self::can_cast(syntax.kind()) {
25263            Some(Self { syntax })
25264        } else {
25265            None
25266        }
25267    }
25268    #[inline]
25269    fn syntax(&self) -> &SyntaxNode {
25270        &self.syntax
25271    }
25272}
25273impl AstNode for PrepareTransaction {
25274    #[inline]
25275    fn can_cast(kind: SyntaxKind) -> bool {
25276        kind == SyntaxKind::PREPARE_TRANSACTION
25277    }
25278    #[inline]
25279    fn cast(syntax: SyntaxNode) -> Option<Self> {
25280        if Self::can_cast(syntax.kind()) {
25281            Some(Self { syntax })
25282        } else {
25283            None
25284        }
25285    }
25286    #[inline]
25287    fn syntax(&self) -> &SyntaxNode {
25288        &self.syntax
25289    }
25290}
25291impl AstNode for PreserveRows {
25292    #[inline]
25293    fn can_cast(kind: SyntaxKind) -> bool {
25294        kind == SyntaxKind::PRESERVE_ROWS
25295    }
25296    #[inline]
25297    fn cast(syntax: SyntaxNode) -> Option<Self> {
25298        if Self::can_cast(syntax.kind()) {
25299            Some(Self { syntax })
25300        } else {
25301            None
25302        }
25303    }
25304    #[inline]
25305    fn syntax(&self) -> &SyntaxNode {
25306        &self.syntax
25307    }
25308}
25309impl AstNode for PrimaryKeyConstraint {
25310    #[inline]
25311    fn can_cast(kind: SyntaxKind) -> bool {
25312        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25313    }
25314    #[inline]
25315    fn cast(syntax: SyntaxNode) -> Option<Self> {
25316        if Self::can_cast(syntax.kind()) {
25317            Some(Self { syntax })
25318        } else {
25319            None
25320        }
25321    }
25322    #[inline]
25323    fn syntax(&self) -> &SyntaxNode {
25324        &self.syntax
25325    }
25326}
25327impl AstNode for PrivilegeTarget {
25328    #[inline]
25329    fn can_cast(kind: SyntaxKind) -> bool {
25330        kind == SyntaxKind::PRIVILEGE_TARGET
25331    }
25332    #[inline]
25333    fn cast(syntax: SyntaxNode) -> Option<Self> {
25334        if Self::can_cast(syntax.kind()) {
25335            Some(Self { syntax })
25336        } else {
25337            None
25338        }
25339    }
25340    #[inline]
25341    fn syntax(&self) -> &SyntaxNode {
25342        &self.syntax
25343    }
25344}
25345impl AstNode for Privileges {
25346    #[inline]
25347    fn can_cast(kind: SyntaxKind) -> bool {
25348        kind == SyntaxKind::PRIVILEGES
25349    }
25350    #[inline]
25351    fn cast(syntax: SyntaxNode) -> Option<Self> {
25352        if Self::can_cast(syntax.kind()) {
25353            Some(Self { syntax })
25354        } else {
25355            None
25356        }
25357    }
25358    #[inline]
25359    fn syntax(&self) -> &SyntaxNode {
25360        &self.syntax
25361    }
25362}
25363impl AstNode for PublicationObject {
25364    #[inline]
25365    fn can_cast(kind: SyntaxKind) -> bool {
25366        kind == SyntaxKind::PUBLICATION_OBJECT
25367    }
25368    #[inline]
25369    fn cast(syntax: SyntaxNode) -> Option<Self> {
25370        if Self::can_cast(syntax.kind()) {
25371            Some(Self { syntax })
25372        } else {
25373            None
25374        }
25375    }
25376    #[inline]
25377    fn syntax(&self) -> &SyntaxNode {
25378        &self.syntax
25379    }
25380}
25381impl AstNode for ReadCommitted {
25382    #[inline]
25383    fn can_cast(kind: SyntaxKind) -> bool {
25384        kind == SyntaxKind::READ_COMMITTED
25385    }
25386    #[inline]
25387    fn cast(syntax: SyntaxNode) -> Option<Self> {
25388        if Self::can_cast(syntax.kind()) {
25389            Some(Self { syntax })
25390        } else {
25391            None
25392        }
25393    }
25394    #[inline]
25395    fn syntax(&self) -> &SyntaxNode {
25396        &self.syntax
25397    }
25398}
25399impl AstNode for ReadOnly {
25400    #[inline]
25401    fn can_cast(kind: SyntaxKind) -> bool {
25402        kind == SyntaxKind::READ_ONLY
25403    }
25404    #[inline]
25405    fn cast(syntax: SyntaxNode) -> Option<Self> {
25406        if Self::can_cast(syntax.kind()) {
25407            Some(Self { syntax })
25408        } else {
25409            None
25410        }
25411    }
25412    #[inline]
25413    fn syntax(&self) -> &SyntaxNode {
25414        &self.syntax
25415    }
25416}
25417impl AstNode for ReadUncommitted {
25418    #[inline]
25419    fn can_cast(kind: SyntaxKind) -> bool {
25420        kind == SyntaxKind::READ_UNCOMMITTED
25421    }
25422    #[inline]
25423    fn cast(syntax: SyntaxNode) -> Option<Self> {
25424        if Self::can_cast(syntax.kind()) {
25425            Some(Self { syntax })
25426        } else {
25427            None
25428        }
25429    }
25430    #[inline]
25431    fn syntax(&self) -> &SyntaxNode {
25432        &self.syntax
25433    }
25434}
25435impl AstNode for ReadWrite {
25436    #[inline]
25437    fn can_cast(kind: SyntaxKind) -> bool {
25438        kind == SyntaxKind::READ_WRITE
25439    }
25440    #[inline]
25441    fn cast(syntax: SyntaxNode) -> Option<Self> {
25442        if Self::can_cast(syntax.kind()) {
25443            Some(Self { syntax })
25444        } else {
25445            None
25446        }
25447    }
25448    #[inline]
25449    fn syntax(&self) -> &SyntaxNode {
25450        &self.syntax
25451    }
25452}
25453impl AstNode for Reassign {
25454    #[inline]
25455    fn can_cast(kind: SyntaxKind) -> bool {
25456        kind == SyntaxKind::REASSIGN
25457    }
25458    #[inline]
25459    fn cast(syntax: SyntaxNode) -> Option<Self> {
25460        if Self::can_cast(syntax.kind()) {
25461            Some(Self { syntax })
25462        } else {
25463            None
25464        }
25465    }
25466    #[inline]
25467    fn syntax(&self) -> &SyntaxNode {
25468        &self.syntax
25469    }
25470}
25471impl AstNode for ReferencesConstraint {
25472    #[inline]
25473    fn can_cast(kind: SyntaxKind) -> bool {
25474        kind == SyntaxKind::REFERENCES_CONSTRAINT
25475    }
25476    #[inline]
25477    fn cast(syntax: SyntaxNode) -> Option<Self> {
25478        if Self::can_cast(syntax.kind()) {
25479            Some(Self { syntax })
25480        } else {
25481            None
25482        }
25483    }
25484    #[inline]
25485    fn syntax(&self) -> &SyntaxNode {
25486        &self.syntax
25487    }
25488}
25489impl AstNode for Referencing {
25490    #[inline]
25491    fn can_cast(kind: SyntaxKind) -> bool {
25492        kind == SyntaxKind::REFERENCING
25493    }
25494    #[inline]
25495    fn cast(syntax: SyntaxNode) -> Option<Self> {
25496        if Self::can_cast(syntax.kind()) {
25497            Some(Self { syntax })
25498        } else {
25499            None
25500        }
25501    }
25502    #[inline]
25503    fn syntax(&self) -> &SyntaxNode {
25504        &self.syntax
25505    }
25506}
25507impl AstNode for ReferencingTable {
25508    #[inline]
25509    fn can_cast(kind: SyntaxKind) -> bool {
25510        kind == SyntaxKind::REFERENCING_TABLE
25511    }
25512    #[inline]
25513    fn cast(syntax: SyntaxNode) -> Option<Self> {
25514        if Self::can_cast(syntax.kind()) {
25515            Some(Self { syntax })
25516        } else {
25517            None
25518        }
25519    }
25520    #[inline]
25521    fn syntax(&self) -> &SyntaxNode {
25522        &self.syntax
25523    }
25524}
25525impl AstNode for Refresh {
25526    #[inline]
25527    fn can_cast(kind: SyntaxKind) -> bool {
25528        kind == SyntaxKind::REFRESH
25529    }
25530    #[inline]
25531    fn cast(syntax: SyntaxNode) -> Option<Self> {
25532        if Self::can_cast(syntax.kind()) {
25533            Some(Self { syntax })
25534        } else {
25535            None
25536        }
25537    }
25538    #[inline]
25539    fn syntax(&self) -> &SyntaxNode {
25540        &self.syntax
25541    }
25542}
25543impl AstNode for RefreshCollationVersion {
25544    #[inline]
25545    fn can_cast(kind: SyntaxKind) -> bool {
25546        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25547    }
25548    #[inline]
25549    fn cast(syntax: SyntaxNode) -> Option<Self> {
25550        if Self::can_cast(syntax.kind()) {
25551            Some(Self { syntax })
25552        } else {
25553            None
25554        }
25555    }
25556    #[inline]
25557    fn syntax(&self) -> &SyntaxNode {
25558        &self.syntax
25559    }
25560}
25561impl AstNode for RefreshVersion {
25562    #[inline]
25563    fn can_cast(kind: SyntaxKind) -> bool {
25564        kind == SyntaxKind::REFRESH_VERSION
25565    }
25566    #[inline]
25567    fn cast(syntax: SyntaxNode) -> Option<Self> {
25568        if Self::can_cast(syntax.kind()) {
25569            Some(Self { syntax })
25570        } else {
25571            None
25572        }
25573    }
25574    #[inline]
25575    fn syntax(&self) -> &SyntaxNode {
25576        &self.syntax
25577    }
25578}
25579impl AstNode for Reindex {
25580    #[inline]
25581    fn can_cast(kind: SyntaxKind) -> bool {
25582        kind == SyntaxKind::REINDEX
25583    }
25584    #[inline]
25585    fn cast(syntax: SyntaxNode) -> Option<Self> {
25586        if Self::can_cast(syntax.kind()) {
25587            Some(Self { syntax })
25588        } else {
25589            None
25590        }
25591    }
25592    #[inline]
25593    fn syntax(&self) -> &SyntaxNode {
25594        &self.syntax
25595    }
25596}
25597impl AstNode for RelationName {
25598    #[inline]
25599    fn can_cast(kind: SyntaxKind) -> bool {
25600        kind == SyntaxKind::RELATION_NAME
25601    }
25602    #[inline]
25603    fn cast(syntax: SyntaxNode) -> Option<Self> {
25604        if Self::can_cast(syntax.kind()) {
25605            Some(Self { syntax })
25606        } else {
25607            None
25608        }
25609    }
25610    #[inline]
25611    fn syntax(&self) -> &SyntaxNode {
25612        &self.syntax
25613    }
25614}
25615impl AstNode for ReleaseSavepoint {
25616    #[inline]
25617    fn can_cast(kind: SyntaxKind) -> bool {
25618        kind == SyntaxKind::RELEASE_SAVEPOINT
25619    }
25620    #[inline]
25621    fn cast(syntax: SyntaxNode) -> Option<Self> {
25622        if Self::can_cast(syntax.kind()) {
25623            Some(Self { syntax })
25624        } else {
25625            None
25626        }
25627    }
25628    #[inline]
25629    fn syntax(&self) -> &SyntaxNode {
25630        &self.syntax
25631    }
25632}
25633impl AstNode for RenameColumn {
25634    #[inline]
25635    fn can_cast(kind: SyntaxKind) -> bool {
25636        kind == SyntaxKind::RENAME_COLUMN
25637    }
25638    #[inline]
25639    fn cast(syntax: SyntaxNode) -> Option<Self> {
25640        if Self::can_cast(syntax.kind()) {
25641            Some(Self { syntax })
25642        } else {
25643            None
25644        }
25645    }
25646    #[inline]
25647    fn syntax(&self) -> &SyntaxNode {
25648        &self.syntax
25649    }
25650}
25651impl AstNode for RenameConstraint {
25652    #[inline]
25653    fn can_cast(kind: SyntaxKind) -> bool {
25654        kind == SyntaxKind::RENAME_CONSTRAINT
25655    }
25656    #[inline]
25657    fn cast(syntax: SyntaxNode) -> Option<Self> {
25658        if Self::can_cast(syntax.kind()) {
25659            Some(Self { syntax })
25660        } else {
25661            None
25662        }
25663    }
25664    #[inline]
25665    fn syntax(&self) -> &SyntaxNode {
25666        &self.syntax
25667    }
25668}
25669impl AstNode for RenameTo {
25670    #[inline]
25671    fn can_cast(kind: SyntaxKind) -> bool {
25672        kind == SyntaxKind::RENAME_TO
25673    }
25674    #[inline]
25675    fn cast(syntax: SyntaxNode) -> Option<Self> {
25676        if Self::can_cast(syntax.kind()) {
25677            Some(Self { syntax })
25678        } else {
25679            None
25680        }
25681    }
25682    #[inline]
25683    fn syntax(&self) -> &SyntaxNode {
25684        &self.syntax
25685    }
25686}
25687impl AstNode for RepeatableClause {
25688    #[inline]
25689    fn can_cast(kind: SyntaxKind) -> bool {
25690        kind == SyntaxKind::REPEATABLE_CLAUSE
25691    }
25692    #[inline]
25693    fn cast(syntax: SyntaxNode) -> Option<Self> {
25694        if Self::can_cast(syntax.kind()) {
25695            Some(Self { syntax })
25696        } else {
25697            None
25698        }
25699    }
25700    #[inline]
25701    fn syntax(&self) -> &SyntaxNode {
25702        &self.syntax
25703    }
25704}
25705impl AstNode for RepeatableRead {
25706    #[inline]
25707    fn can_cast(kind: SyntaxKind) -> bool {
25708        kind == SyntaxKind::REPEATABLE_READ
25709    }
25710    #[inline]
25711    fn cast(syntax: SyntaxNode) -> Option<Self> {
25712        if Self::can_cast(syntax.kind()) {
25713            Some(Self { syntax })
25714        } else {
25715            None
25716        }
25717    }
25718    #[inline]
25719    fn syntax(&self) -> &SyntaxNode {
25720        &self.syntax
25721    }
25722}
25723impl AstNode for ReplicaIdentity {
25724    #[inline]
25725    fn can_cast(kind: SyntaxKind) -> bool {
25726        kind == SyntaxKind::REPLICA_IDENTITY
25727    }
25728    #[inline]
25729    fn cast(syntax: SyntaxNode) -> Option<Self> {
25730        if Self::can_cast(syntax.kind()) {
25731            Some(Self { syntax })
25732        } else {
25733            None
25734        }
25735    }
25736    #[inline]
25737    fn syntax(&self) -> &SyntaxNode {
25738        &self.syntax
25739    }
25740}
25741impl AstNode for Reset {
25742    #[inline]
25743    fn can_cast(kind: SyntaxKind) -> bool {
25744        kind == SyntaxKind::RESET
25745    }
25746    #[inline]
25747    fn cast(syntax: SyntaxNode) -> Option<Self> {
25748        if Self::can_cast(syntax.kind()) {
25749            Some(Self { syntax })
25750        } else {
25751            None
25752        }
25753    }
25754    #[inline]
25755    fn syntax(&self) -> &SyntaxNode {
25756        &self.syntax
25757    }
25758}
25759impl AstNode for ResetConfigParam {
25760    #[inline]
25761    fn can_cast(kind: SyntaxKind) -> bool {
25762        kind == SyntaxKind::RESET_CONFIG_PARAM
25763    }
25764    #[inline]
25765    fn cast(syntax: SyntaxNode) -> Option<Self> {
25766        if Self::can_cast(syntax.kind()) {
25767            Some(Self { syntax })
25768        } else {
25769            None
25770        }
25771    }
25772    #[inline]
25773    fn syntax(&self) -> &SyntaxNode {
25774        &self.syntax
25775    }
25776}
25777impl AstNode for ResetFuncOption {
25778    #[inline]
25779    fn can_cast(kind: SyntaxKind) -> bool {
25780        kind == SyntaxKind::RESET_FUNC_OPTION
25781    }
25782    #[inline]
25783    fn cast(syntax: SyntaxNode) -> Option<Self> {
25784        if Self::can_cast(syntax.kind()) {
25785            Some(Self { syntax })
25786        } else {
25787            None
25788        }
25789    }
25790    #[inline]
25791    fn syntax(&self) -> &SyntaxNode {
25792        &self.syntax
25793    }
25794}
25795impl AstNode for ResetOptions {
25796    #[inline]
25797    fn can_cast(kind: SyntaxKind) -> bool {
25798        kind == SyntaxKind::RESET_OPTIONS
25799    }
25800    #[inline]
25801    fn cast(syntax: SyntaxNode) -> Option<Self> {
25802        if Self::can_cast(syntax.kind()) {
25803            Some(Self { syntax })
25804        } else {
25805            None
25806        }
25807    }
25808    #[inline]
25809    fn syntax(&self) -> &SyntaxNode {
25810        &self.syntax
25811    }
25812}
25813impl AstNode for ResetSessionAuth {
25814    #[inline]
25815    fn can_cast(kind: SyntaxKind) -> bool {
25816        kind == SyntaxKind::RESET_SESSION_AUTH
25817    }
25818    #[inline]
25819    fn cast(syntax: SyntaxNode) -> Option<Self> {
25820        if Self::can_cast(syntax.kind()) {
25821            Some(Self { syntax })
25822        } else {
25823            None
25824        }
25825    }
25826    #[inline]
25827    fn syntax(&self) -> &SyntaxNode {
25828        &self.syntax
25829    }
25830}
25831impl AstNode for Restart {
25832    #[inline]
25833    fn can_cast(kind: SyntaxKind) -> bool {
25834        kind == SyntaxKind::RESTART
25835    }
25836    #[inline]
25837    fn cast(syntax: SyntaxNode) -> Option<Self> {
25838        if Self::can_cast(syntax.kind()) {
25839            Some(Self { syntax })
25840        } else {
25841            None
25842        }
25843    }
25844    #[inline]
25845    fn syntax(&self) -> &SyntaxNode {
25846        &self.syntax
25847    }
25848}
25849impl AstNode for Restrict {
25850    #[inline]
25851    fn can_cast(kind: SyntaxKind) -> bool {
25852        kind == SyntaxKind::RESTRICT
25853    }
25854    #[inline]
25855    fn cast(syntax: SyntaxNode) -> Option<Self> {
25856        if Self::can_cast(syntax.kind()) {
25857            Some(Self { syntax })
25858        } else {
25859            None
25860        }
25861    }
25862    #[inline]
25863    fn syntax(&self) -> &SyntaxNode {
25864        &self.syntax
25865    }
25866}
25867impl AstNode for RetType {
25868    #[inline]
25869    fn can_cast(kind: SyntaxKind) -> bool {
25870        kind == SyntaxKind::RET_TYPE
25871    }
25872    #[inline]
25873    fn cast(syntax: SyntaxNode) -> Option<Self> {
25874        if Self::can_cast(syntax.kind()) {
25875            Some(Self { syntax })
25876        } else {
25877            None
25878        }
25879    }
25880    #[inline]
25881    fn syntax(&self) -> &SyntaxNode {
25882        &self.syntax
25883    }
25884}
25885impl AstNode for ReturnFuncOption {
25886    #[inline]
25887    fn can_cast(kind: SyntaxKind) -> bool {
25888        kind == SyntaxKind::RETURN_FUNC_OPTION
25889    }
25890    #[inline]
25891    fn cast(syntax: SyntaxNode) -> Option<Self> {
25892        if Self::can_cast(syntax.kind()) {
25893            Some(Self { syntax })
25894        } else {
25895            None
25896        }
25897    }
25898    #[inline]
25899    fn syntax(&self) -> &SyntaxNode {
25900        &self.syntax
25901    }
25902}
25903impl AstNode for ReturningClause {
25904    #[inline]
25905    fn can_cast(kind: SyntaxKind) -> bool {
25906        kind == SyntaxKind::RETURNING_CLAUSE
25907    }
25908    #[inline]
25909    fn cast(syntax: SyntaxNode) -> Option<Self> {
25910        if Self::can_cast(syntax.kind()) {
25911            Some(Self { syntax })
25912        } else {
25913            None
25914        }
25915    }
25916    #[inline]
25917    fn syntax(&self) -> &SyntaxNode {
25918        &self.syntax
25919    }
25920}
25921impl AstNode for ReturningOption {
25922    #[inline]
25923    fn can_cast(kind: SyntaxKind) -> bool {
25924        kind == SyntaxKind::RETURNING_OPTION
25925    }
25926    #[inline]
25927    fn cast(syntax: SyntaxNode) -> Option<Self> {
25928        if Self::can_cast(syntax.kind()) {
25929            Some(Self { syntax })
25930        } else {
25931            None
25932        }
25933    }
25934    #[inline]
25935    fn syntax(&self) -> &SyntaxNode {
25936        &self.syntax
25937    }
25938}
25939impl AstNode for ReturningOptionList {
25940    #[inline]
25941    fn can_cast(kind: SyntaxKind) -> bool {
25942        kind == SyntaxKind::RETURNING_OPTION_LIST
25943    }
25944    #[inline]
25945    fn cast(syntax: SyntaxNode) -> Option<Self> {
25946        if Self::can_cast(syntax.kind()) {
25947            Some(Self { syntax })
25948        } else {
25949            None
25950        }
25951    }
25952    #[inline]
25953    fn syntax(&self) -> &SyntaxNode {
25954        &self.syntax
25955    }
25956}
25957impl AstNode for Revoke {
25958    #[inline]
25959    fn can_cast(kind: SyntaxKind) -> bool {
25960        kind == SyntaxKind::REVOKE
25961    }
25962    #[inline]
25963    fn cast(syntax: SyntaxNode) -> Option<Self> {
25964        if Self::can_cast(syntax.kind()) {
25965            Some(Self { syntax })
25966        } else {
25967            None
25968        }
25969    }
25970    #[inline]
25971    fn syntax(&self) -> &SyntaxNode {
25972        &self.syntax
25973    }
25974}
25975impl AstNode for RevokeCommand {
25976    #[inline]
25977    fn can_cast(kind: SyntaxKind) -> bool {
25978        kind == SyntaxKind::REVOKE_COMMAND
25979    }
25980    #[inline]
25981    fn cast(syntax: SyntaxNode) -> Option<Self> {
25982        if Self::can_cast(syntax.kind()) {
25983            Some(Self { syntax })
25984        } else {
25985            None
25986        }
25987    }
25988    #[inline]
25989    fn syntax(&self) -> &SyntaxNode {
25990        &self.syntax
25991    }
25992}
25993impl AstNode for RevokeCommandList {
25994    #[inline]
25995    fn can_cast(kind: SyntaxKind) -> bool {
25996        kind == SyntaxKind::REVOKE_COMMAND_LIST
25997    }
25998    #[inline]
25999    fn cast(syntax: SyntaxNode) -> Option<Self> {
26000        if Self::can_cast(syntax.kind()) {
26001            Some(Self { syntax })
26002        } else {
26003            None
26004        }
26005    }
26006    #[inline]
26007    fn syntax(&self) -> &SyntaxNode {
26008        &self.syntax
26009    }
26010}
26011impl AstNode for RevokeDefaultPrivileges {
26012    #[inline]
26013    fn can_cast(kind: SyntaxKind) -> bool {
26014        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
26015    }
26016    #[inline]
26017    fn cast(syntax: SyntaxNode) -> Option<Self> {
26018        if Self::can_cast(syntax.kind()) {
26019            Some(Self { syntax })
26020        } else {
26021            None
26022        }
26023    }
26024    #[inline]
26025    fn syntax(&self) -> &SyntaxNode {
26026        &self.syntax
26027    }
26028}
26029impl AstNode for Role {
26030    #[inline]
26031    fn can_cast(kind: SyntaxKind) -> bool {
26032        kind == SyntaxKind::ROLE
26033    }
26034    #[inline]
26035    fn cast(syntax: SyntaxNode) -> Option<Self> {
26036        if Self::can_cast(syntax.kind()) {
26037            Some(Self { syntax })
26038        } else {
26039            None
26040        }
26041    }
26042    #[inline]
26043    fn syntax(&self) -> &SyntaxNode {
26044        &self.syntax
26045    }
26046}
26047impl AstNode for RoleOption {
26048    #[inline]
26049    fn can_cast(kind: SyntaxKind) -> bool {
26050        kind == SyntaxKind::ROLE_OPTION
26051    }
26052    #[inline]
26053    fn cast(syntax: SyntaxNode) -> Option<Self> {
26054        if Self::can_cast(syntax.kind()) {
26055            Some(Self { syntax })
26056        } else {
26057            None
26058        }
26059    }
26060    #[inline]
26061    fn syntax(&self) -> &SyntaxNode {
26062        &self.syntax
26063    }
26064}
26065impl AstNode for RoleOptionList {
26066    #[inline]
26067    fn can_cast(kind: SyntaxKind) -> bool {
26068        kind == SyntaxKind::ROLE_OPTION_LIST
26069    }
26070    #[inline]
26071    fn cast(syntax: SyntaxNode) -> Option<Self> {
26072        if Self::can_cast(syntax.kind()) {
26073            Some(Self { syntax })
26074        } else {
26075            None
26076        }
26077    }
26078    #[inline]
26079    fn syntax(&self) -> &SyntaxNode {
26080        &self.syntax
26081    }
26082}
26083impl AstNode for RoleRef {
26084    #[inline]
26085    fn can_cast(kind: SyntaxKind) -> bool {
26086        kind == SyntaxKind::ROLE_REF
26087    }
26088    #[inline]
26089    fn cast(syntax: SyntaxNode) -> Option<Self> {
26090        if Self::can_cast(syntax.kind()) {
26091            Some(Self { syntax })
26092        } else {
26093            None
26094        }
26095    }
26096    #[inline]
26097    fn syntax(&self) -> &SyntaxNode {
26098        &self.syntax
26099    }
26100}
26101impl AstNode for RoleRefList {
26102    #[inline]
26103    fn can_cast(kind: SyntaxKind) -> bool {
26104        kind == SyntaxKind::ROLE_REF_LIST
26105    }
26106    #[inline]
26107    fn cast(syntax: SyntaxNode) -> Option<Self> {
26108        if Self::can_cast(syntax.kind()) {
26109            Some(Self { syntax })
26110        } else {
26111            None
26112        }
26113    }
26114    #[inline]
26115    fn syntax(&self) -> &SyntaxNode {
26116        &self.syntax
26117    }
26118}
26119impl AstNode for Rollback {
26120    #[inline]
26121    fn can_cast(kind: SyntaxKind) -> bool {
26122        kind == SyntaxKind::ROLLBACK
26123    }
26124    #[inline]
26125    fn cast(syntax: SyntaxNode) -> Option<Self> {
26126        if Self::can_cast(syntax.kind()) {
26127            Some(Self { syntax })
26128        } else {
26129            None
26130        }
26131    }
26132    #[inline]
26133    fn syntax(&self) -> &SyntaxNode {
26134        &self.syntax
26135    }
26136}
26137impl AstNode for Row {
26138    #[inline]
26139    fn can_cast(kind: SyntaxKind) -> bool {
26140        kind == SyntaxKind::ROW
26141    }
26142    #[inline]
26143    fn cast(syntax: SyntaxNode) -> Option<Self> {
26144        if Self::can_cast(syntax.kind()) {
26145            Some(Self { syntax })
26146        } else {
26147            None
26148        }
26149    }
26150    #[inline]
26151    fn syntax(&self) -> &SyntaxNode {
26152        &self.syntax
26153    }
26154}
26155impl AstNode for RowList {
26156    #[inline]
26157    fn can_cast(kind: SyntaxKind) -> bool {
26158        kind == SyntaxKind::ROW_LIST
26159    }
26160    #[inline]
26161    fn cast(syntax: SyntaxNode) -> Option<Self> {
26162        if Self::can_cast(syntax.kind()) {
26163            Some(Self { syntax })
26164        } else {
26165            None
26166        }
26167    }
26168    #[inline]
26169    fn syntax(&self) -> &SyntaxNode {
26170        &self.syntax
26171    }
26172}
26173impl AstNode for RowsFuncOption {
26174    #[inline]
26175    fn can_cast(kind: SyntaxKind) -> bool {
26176        kind == SyntaxKind::ROWS_FUNC_OPTION
26177    }
26178    #[inline]
26179    fn cast(syntax: SyntaxNode) -> Option<Self> {
26180        if Self::can_cast(syntax.kind()) {
26181            Some(Self { syntax })
26182        } else {
26183            None
26184        }
26185    }
26186    #[inline]
26187    fn syntax(&self) -> &SyntaxNode {
26188        &self.syntax
26189    }
26190}
26191impl AstNode for Savepoint {
26192    #[inline]
26193    fn can_cast(kind: SyntaxKind) -> bool {
26194        kind == SyntaxKind::SAVEPOINT
26195    }
26196    #[inline]
26197    fn cast(syntax: SyntaxNode) -> Option<Self> {
26198        if Self::can_cast(syntax.kind()) {
26199            Some(Self { syntax })
26200        } else {
26201            None
26202        }
26203    }
26204    #[inline]
26205    fn syntax(&self) -> &SyntaxNode {
26206        &self.syntax
26207    }
26208}
26209impl AstNode for SecurityFuncOption {
26210    #[inline]
26211    fn can_cast(kind: SyntaxKind) -> bool {
26212        kind == SyntaxKind::SECURITY_FUNC_OPTION
26213    }
26214    #[inline]
26215    fn cast(syntax: SyntaxNode) -> Option<Self> {
26216        if Self::can_cast(syntax.kind()) {
26217            Some(Self { syntax })
26218        } else {
26219            None
26220        }
26221    }
26222    #[inline]
26223    fn syntax(&self) -> &SyntaxNode {
26224        &self.syntax
26225    }
26226}
26227impl AstNode for SecurityLabel {
26228    #[inline]
26229    fn can_cast(kind: SyntaxKind) -> bool {
26230        kind == SyntaxKind::SECURITY_LABEL
26231    }
26232    #[inline]
26233    fn cast(syntax: SyntaxNode) -> Option<Self> {
26234        if Self::can_cast(syntax.kind()) {
26235            Some(Self { syntax })
26236        } else {
26237            None
26238        }
26239    }
26240    #[inline]
26241    fn syntax(&self) -> &SyntaxNode {
26242        &self.syntax
26243    }
26244}
26245impl AstNode for Select {
26246    #[inline]
26247    fn can_cast(kind: SyntaxKind) -> bool {
26248        kind == SyntaxKind::SELECT
26249    }
26250    #[inline]
26251    fn cast(syntax: SyntaxNode) -> Option<Self> {
26252        if Self::can_cast(syntax.kind()) {
26253            Some(Self { syntax })
26254        } else {
26255            None
26256        }
26257    }
26258    #[inline]
26259    fn syntax(&self) -> &SyntaxNode {
26260        &self.syntax
26261    }
26262}
26263impl AstNode for SelectClause {
26264    #[inline]
26265    fn can_cast(kind: SyntaxKind) -> bool {
26266        kind == SyntaxKind::SELECT_CLAUSE
26267    }
26268    #[inline]
26269    fn cast(syntax: SyntaxNode) -> Option<Self> {
26270        if Self::can_cast(syntax.kind()) {
26271            Some(Self { syntax })
26272        } else {
26273            None
26274        }
26275    }
26276    #[inline]
26277    fn syntax(&self) -> &SyntaxNode {
26278        &self.syntax
26279    }
26280}
26281impl AstNode for SelectInto {
26282    #[inline]
26283    fn can_cast(kind: SyntaxKind) -> bool {
26284        kind == SyntaxKind::SELECT_INTO
26285    }
26286    #[inline]
26287    fn cast(syntax: SyntaxNode) -> Option<Self> {
26288        if Self::can_cast(syntax.kind()) {
26289            Some(Self { syntax })
26290        } else {
26291            None
26292        }
26293    }
26294    #[inline]
26295    fn syntax(&self) -> &SyntaxNode {
26296        &self.syntax
26297    }
26298}
26299impl AstNode for SequenceOption {
26300    #[inline]
26301    fn can_cast(kind: SyntaxKind) -> bool {
26302        kind == SyntaxKind::SEQUENCE_OPTION
26303    }
26304    #[inline]
26305    fn cast(syntax: SyntaxNode) -> Option<Self> {
26306        if Self::can_cast(syntax.kind()) {
26307            Some(Self { syntax })
26308        } else {
26309            None
26310        }
26311    }
26312    #[inline]
26313    fn syntax(&self) -> &SyntaxNode {
26314        &self.syntax
26315    }
26316}
26317impl AstNode for SequenceOptionList {
26318    #[inline]
26319    fn can_cast(kind: SyntaxKind) -> bool {
26320        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26321    }
26322    #[inline]
26323    fn cast(syntax: SyntaxNode) -> Option<Self> {
26324        if Self::can_cast(syntax.kind()) {
26325            Some(Self { syntax })
26326        } else {
26327            None
26328        }
26329    }
26330    #[inline]
26331    fn syntax(&self) -> &SyntaxNode {
26332        &self.syntax
26333    }
26334}
26335impl AstNode for Serializable {
26336    #[inline]
26337    fn can_cast(kind: SyntaxKind) -> bool {
26338        kind == SyntaxKind::SERIALIZABLE
26339    }
26340    #[inline]
26341    fn cast(syntax: SyntaxNode) -> Option<Self> {
26342        if Self::can_cast(syntax.kind()) {
26343            Some(Self { syntax })
26344        } else {
26345            None
26346        }
26347    }
26348    #[inline]
26349    fn syntax(&self) -> &SyntaxNode {
26350        &self.syntax
26351    }
26352}
26353impl AstNode for ServerName {
26354    #[inline]
26355    fn can_cast(kind: SyntaxKind) -> bool {
26356        kind == SyntaxKind::SERVER_NAME
26357    }
26358    #[inline]
26359    fn cast(syntax: SyntaxNode) -> Option<Self> {
26360        if Self::can_cast(syntax.kind()) {
26361            Some(Self { syntax })
26362        } else {
26363            None
26364        }
26365    }
26366    #[inline]
26367    fn syntax(&self) -> &SyntaxNode {
26368        &self.syntax
26369    }
26370}
26371impl AstNode for Set {
26372    #[inline]
26373    fn can_cast(kind: SyntaxKind) -> bool {
26374        kind == SyntaxKind::SET
26375    }
26376    #[inline]
26377    fn cast(syntax: SyntaxNode) -> Option<Self> {
26378        if Self::can_cast(syntax.kind()) {
26379            Some(Self { syntax })
26380        } else {
26381            None
26382        }
26383    }
26384    #[inline]
26385    fn syntax(&self) -> &SyntaxNode {
26386        &self.syntax
26387    }
26388}
26389impl AstNode for SetAccessMethod {
26390    #[inline]
26391    fn can_cast(kind: SyntaxKind) -> bool {
26392        kind == SyntaxKind::SET_ACCESS_METHOD
26393    }
26394    #[inline]
26395    fn cast(syntax: SyntaxNode) -> Option<Self> {
26396        if Self::can_cast(syntax.kind()) {
26397            Some(Self { syntax })
26398        } else {
26399            None
26400        }
26401    }
26402    #[inline]
26403    fn syntax(&self) -> &SyntaxNode {
26404        &self.syntax
26405    }
26406}
26407impl AstNode for SetClause {
26408    #[inline]
26409    fn can_cast(kind: SyntaxKind) -> bool {
26410        kind == SyntaxKind::SET_CLAUSE
26411    }
26412    #[inline]
26413    fn cast(syntax: SyntaxNode) -> Option<Self> {
26414        if Self::can_cast(syntax.kind()) {
26415            Some(Self { syntax })
26416        } else {
26417            None
26418        }
26419    }
26420    #[inline]
26421    fn syntax(&self) -> &SyntaxNode {
26422        &self.syntax
26423    }
26424}
26425impl AstNode for SetColumnList {
26426    #[inline]
26427    fn can_cast(kind: SyntaxKind) -> bool {
26428        kind == SyntaxKind::SET_COLUMN_LIST
26429    }
26430    #[inline]
26431    fn cast(syntax: SyntaxNode) -> Option<Self> {
26432        if Self::can_cast(syntax.kind()) {
26433            Some(Self { syntax })
26434        } else {
26435            None
26436        }
26437    }
26438    #[inline]
26439    fn syntax(&self) -> &SyntaxNode {
26440        &self.syntax
26441    }
26442}
26443impl AstNode for SetCompression {
26444    #[inline]
26445    fn can_cast(kind: SyntaxKind) -> bool {
26446        kind == SyntaxKind::SET_COMPRESSION
26447    }
26448    #[inline]
26449    fn cast(syntax: SyntaxNode) -> Option<Self> {
26450        if Self::can_cast(syntax.kind()) {
26451            Some(Self { syntax })
26452        } else {
26453            None
26454        }
26455    }
26456    #[inline]
26457    fn syntax(&self) -> &SyntaxNode {
26458        &self.syntax
26459    }
26460}
26461impl AstNode for SetConfigParam {
26462    #[inline]
26463    fn can_cast(kind: SyntaxKind) -> bool {
26464        kind == SyntaxKind::SET_CONFIG_PARAM
26465    }
26466    #[inline]
26467    fn cast(syntax: SyntaxNode) -> Option<Self> {
26468        if Self::can_cast(syntax.kind()) {
26469            Some(Self { syntax })
26470        } else {
26471            None
26472        }
26473    }
26474    #[inline]
26475    fn syntax(&self) -> &SyntaxNode {
26476        &self.syntax
26477    }
26478}
26479impl AstNode for SetConstraints {
26480    #[inline]
26481    fn can_cast(kind: SyntaxKind) -> bool {
26482        kind == SyntaxKind::SET_CONSTRAINTS
26483    }
26484    #[inline]
26485    fn cast(syntax: SyntaxNode) -> Option<Self> {
26486        if Self::can_cast(syntax.kind()) {
26487            Some(Self { syntax })
26488        } else {
26489            None
26490        }
26491    }
26492    #[inline]
26493    fn syntax(&self) -> &SyntaxNode {
26494        &self.syntax
26495    }
26496}
26497impl AstNode for SetDefault {
26498    #[inline]
26499    fn can_cast(kind: SyntaxKind) -> bool {
26500        kind == SyntaxKind::SET_DEFAULT
26501    }
26502    #[inline]
26503    fn cast(syntax: SyntaxNode) -> Option<Self> {
26504        if Self::can_cast(syntax.kind()) {
26505            Some(Self { syntax })
26506        } else {
26507            None
26508        }
26509    }
26510    #[inline]
26511    fn syntax(&self) -> &SyntaxNode {
26512        &self.syntax
26513    }
26514}
26515impl AstNode for SetDefaultColumns {
26516    #[inline]
26517    fn can_cast(kind: SyntaxKind) -> bool {
26518        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26519    }
26520    #[inline]
26521    fn cast(syntax: SyntaxNode) -> Option<Self> {
26522        if Self::can_cast(syntax.kind()) {
26523            Some(Self { syntax })
26524        } else {
26525            None
26526        }
26527    }
26528    #[inline]
26529    fn syntax(&self) -> &SyntaxNode {
26530        &self.syntax
26531    }
26532}
26533impl AstNode for SetExpr {
26534    #[inline]
26535    fn can_cast(kind: SyntaxKind) -> bool {
26536        kind == SyntaxKind::SET_EXPR
26537    }
26538    #[inline]
26539    fn cast(syntax: SyntaxNode) -> Option<Self> {
26540        if Self::can_cast(syntax.kind()) {
26541            Some(Self { syntax })
26542        } else {
26543            None
26544        }
26545    }
26546    #[inline]
26547    fn syntax(&self) -> &SyntaxNode {
26548        &self.syntax
26549    }
26550}
26551impl AstNode for SetExprList {
26552    #[inline]
26553    fn can_cast(kind: SyntaxKind) -> bool {
26554        kind == SyntaxKind::SET_EXPR_LIST
26555    }
26556    #[inline]
26557    fn cast(syntax: SyntaxNode) -> Option<Self> {
26558        if Self::can_cast(syntax.kind()) {
26559            Some(Self { syntax })
26560        } else {
26561            None
26562        }
26563    }
26564    #[inline]
26565    fn syntax(&self) -> &SyntaxNode {
26566        &self.syntax
26567    }
26568}
26569impl AstNode for SetExpression {
26570    #[inline]
26571    fn can_cast(kind: SyntaxKind) -> bool {
26572        kind == SyntaxKind::SET_EXPRESSION
26573    }
26574    #[inline]
26575    fn cast(syntax: SyntaxNode) -> Option<Self> {
26576        if Self::can_cast(syntax.kind()) {
26577            Some(Self { syntax })
26578        } else {
26579            None
26580        }
26581    }
26582    #[inline]
26583    fn syntax(&self) -> &SyntaxNode {
26584        &self.syntax
26585    }
26586}
26587impl AstNode for SetFuncOption {
26588    #[inline]
26589    fn can_cast(kind: SyntaxKind) -> bool {
26590        kind == SyntaxKind::SET_FUNC_OPTION
26591    }
26592    #[inline]
26593    fn cast(syntax: SyntaxNode) -> Option<Self> {
26594        if Self::can_cast(syntax.kind()) {
26595            Some(Self { syntax })
26596        } else {
26597            None
26598        }
26599    }
26600    #[inline]
26601    fn syntax(&self) -> &SyntaxNode {
26602        &self.syntax
26603    }
26604}
26605impl AstNode for SetGenerated {
26606    #[inline]
26607    fn can_cast(kind: SyntaxKind) -> bool {
26608        kind == SyntaxKind::SET_GENERATED
26609    }
26610    #[inline]
26611    fn cast(syntax: SyntaxNode) -> Option<Self> {
26612        if Self::can_cast(syntax.kind()) {
26613            Some(Self { syntax })
26614        } else {
26615            None
26616        }
26617    }
26618    #[inline]
26619    fn syntax(&self) -> &SyntaxNode {
26620        &self.syntax
26621    }
26622}
26623impl AstNode for SetGeneratedOptions {
26624    #[inline]
26625    fn can_cast(kind: SyntaxKind) -> bool {
26626        kind == SyntaxKind::SET_GENERATED_OPTIONS
26627    }
26628    #[inline]
26629    fn cast(syntax: SyntaxNode) -> Option<Self> {
26630        if Self::can_cast(syntax.kind()) {
26631            Some(Self { syntax })
26632        } else {
26633            None
26634        }
26635    }
26636    #[inline]
26637    fn syntax(&self) -> &SyntaxNode {
26638        &self.syntax
26639    }
26640}
26641impl AstNode for SetLogged {
26642    #[inline]
26643    fn can_cast(kind: SyntaxKind) -> bool {
26644        kind == SyntaxKind::SET_LOGGED
26645    }
26646    #[inline]
26647    fn cast(syntax: SyntaxNode) -> Option<Self> {
26648        if Self::can_cast(syntax.kind()) {
26649            Some(Self { syntax })
26650        } else {
26651            None
26652        }
26653    }
26654    #[inline]
26655    fn syntax(&self) -> &SyntaxNode {
26656        &self.syntax
26657    }
26658}
26659impl AstNode for SetMultipleColumns {
26660    #[inline]
26661    fn can_cast(kind: SyntaxKind) -> bool {
26662        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26663    }
26664    #[inline]
26665    fn cast(syntax: SyntaxNode) -> Option<Self> {
26666        if Self::can_cast(syntax.kind()) {
26667            Some(Self { syntax })
26668        } else {
26669            None
26670        }
26671    }
26672    #[inline]
26673    fn syntax(&self) -> &SyntaxNode {
26674        &self.syntax
26675    }
26676}
26677impl AstNode for SetNotNull {
26678    #[inline]
26679    fn can_cast(kind: SyntaxKind) -> bool {
26680        kind == SyntaxKind::SET_NOT_NULL
26681    }
26682    #[inline]
26683    fn cast(syntax: SyntaxNode) -> Option<Self> {
26684        if Self::can_cast(syntax.kind()) {
26685            Some(Self { syntax })
26686        } else {
26687            None
26688        }
26689    }
26690    #[inline]
26691    fn syntax(&self) -> &SyntaxNode {
26692        &self.syntax
26693    }
26694}
26695impl AstNode for SetNullColumns {
26696    #[inline]
26697    fn can_cast(kind: SyntaxKind) -> bool {
26698        kind == SyntaxKind::SET_NULL_COLUMNS
26699    }
26700    #[inline]
26701    fn cast(syntax: SyntaxNode) -> Option<Self> {
26702        if Self::can_cast(syntax.kind()) {
26703            Some(Self { syntax })
26704        } else {
26705            None
26706        }
26707    }
26708    #[inline]
26709    fn syntax(&self) -> &SyntaxNode {
26710        &self.syntax
26711    }
26712}
26713impl AstNode for SetOptions {
26714    #[inline]
26715    fn can_cast(kind: SyntaxKind) -> bool {
26716        kind == SyntaxKind::SET_OPTIONS
26717    }
26718    #[inline]
26719    fn cast(syntax: SyntaxNode) -> Option<Self> {
26720        if Self::can_cast(syntax.kind()) {
26721            Some(Self { syntax })
26722        } else {
26723            None
26724        }
26725    }
26726    #[inline]
26727    fn syntax(&self) -> &SyntaxNode {
26728        &self.syntax
26729    }
26730}
26731impl AstNode for SetOptionsList {
26732    #[inline]
26733    fn can_cast(kind: SyntaxKind) -> bool {
26734        kind == SyntaxKind::SET_OPTIONS_LIST
26735    }
26736    #[inline]
26737    fn cast(syntax: SyntaxNode) -> Option<Self> {
26738        if Self::can_cast(syntax.kind()) {
26739            Some(Self { syntax })
26740        } else {
26741            None
26742        }
26743    }
26744    #[inline]
26745    fn syntax(&self) -> &SyntaxNode {
26746        &self.syntax
26747    }
26748}
26749impl AstNode for SetRole {
26750    #[inline]
26751    fn can_cast(kind: SyntaxKind) -> bool {
26752        kind == SyntaxKind::SET_ROLE
26753    }
26754    #[inline]
26755    fn cast(syntax: SyntaxNode) -> Option<Self> {
26756        if Self::can_cast(syntax.kind()) {
26757            Some(Self { syntax })
26758        } else {
26759            None
26760        }
26761    }
26762    #[inline]
26763    fn syntax(&self) -> &SyntaxNode {
26764        &self.syntax
26765    }
26766}
26767impl AstNode for SetSchema {
26768    #[inline]
26769    fn can_cast(kind: SyntaxKind) -> bool {
26770        kind == SyntaxKind::SET_SCHEMA
26771    }
26772    #[inline]
26773    fn cast(syntax: SyntaxNode) -> Option<Self> {
26774        if Self::can_cast(syntax.kind()) {
26775            Some(Self { syntax })
26776        } else {
26777            None
26778        }
26779    }
26780    #[inline]
26781    fn syntax(&self) -> &SyntaxNode {
26782        &self.syntax
26783    }
26784}
26785impl AstNode for SetSequenceOption {
26786    #[inline]
26787    fn can_cast(kind: SyntaxKind) -> bool {
26788        kind == SyntaxKind::SET_SEQUENCE_OPTION
26789    }
26790    #[inline]
26791    fn cast(syntax: SyntaxNode) -> Option<Self> {
26792        if Self::can_cast(syntax.kind()) {
26793            Some(Self { syntax })
26794        } else {
26795            None
26796        }
26797    }
26798    #[inline]
26799    fn syntax(&self) -> &SyntaxNode {
26800        &self.syntax
26801    }
26802}
26803impl AstNode for SetSessionAuth {
26804    #[inline]
26805    fn can_cast(kind: SyntaxKind) -> bool {
26806        kind == SyntaxKind::SET_SESSION_AUTH
26807    }
26808    #[inline]
26809    fn cast(syntax: SyntaxNode) -> Option<Self> {
26810        if Self::can_cast(syntax.kind()) {
26811            Some(Self { syntax })
26812        } else {
26813            None
26814        }
26815    }
26816    #[inline]
26817    fn syntax(&self) -> &SyntaxNode {
26818        &self.syntax
26819    }
26820}
26821impl AstNode for SetSingleColumn {
26822    #[inline]
26823    fn can_cast(kind: SyntaxKind) -> bool {
26824        kind == SyntaxKind::SET_SINGLE_COLUMN
26825    }
26826    #[inline]
26827    fn cast(syntax: SyntaxNode) -> Option<Self> {
26828        if Self::can_cast(syntax.kind()) {
26829            Some(Self { syntax })
26830        } else {
26831            None
26832        }
26833    }
26834    #[inline]
26835    fn syntax(&self) -> &SyntaxNode {
26836        &self.syntax
26837    }
26838}
26839impl AstNode for SetStatistics {
26840    #[inline]
26841    fn can_cast(kind: SyntaxKind) -> bool {
26842        kind == SyntaxKind::SET_STATISTICS
26843    }
26844    #[inline]
26845    fn cast(syntax: SyntaxNode) -> Option<Self> {
26846        if Self::can_cast(syntax.kind()) {
26847            Some(Self { syntax })
26848        } else {
26849            None
26850        }
26851    }
26852    #[inline]
26853    fn syntax(&self) -> &SyntaxNode {
26854        &self.syntax
26855    }
26856}
26857impl AstNode for SetStorage {
26858    #[inline]
26859    fn can_cast(kind: SyntaxKind) -> bool {
26860        kind == SyntaxKind::SET_STORAGE
26861    }
26862    #[inline]
26863    fn cast(syntax: SyntaxNode) -> Option<Self> {
26864        if Self::can_cast(syntax.kind()) {
26865            Some(Self { syntax })
26866        } else {
26867            None
26868        }
26869    }
26870    #[inline]
26871    fn syntax(&self) -> &SyntaxNode {
26872        &self.syntax
26873    }
26874}
26875impl AstNode for SetTablespace {
26876    #[inline]
26877    fn can_cast(kind: SyntaxKind) -> bool {
26878        kind == SyntaxKind::SET_TABLESPACE
26879    }
26880    #[inline]
26881    fn cast(syntax: SyntaxNode) -> Option<Self> {
26882        if Self::can_cast(syntax.kind()) {
26883            Some(Self { syntax })
26884        } else {
26885            None
26886        }
26887    }
26888    #[inline]
26889    fn syntax(&self) -> &SyntaxNode {
26890        &self.syntax
26891    }
26892}
26893impl AstNode for SetTransaction {
26894    #[inline]
26895    fn can_cast(kind: SyntaxKind) -> bool {
26896        kind == SyntaxKind::SET_TRANSACTION
26897    }
26898    #[inline]
26899    fn cast(syntax: SyntaxNode) -> Option<Self> {
26900        if Self::can_cast(syntax.kind()) {
26901            Some(Self { syntax })
26902        } else {
26903            None
26904        }
26905    }
26906    #[inline]
26907    fn syntax(&self) -> &SyntaxNode {
26908        &self.syntax
26909    }
26910}
26911impl AstNode for SetType {
26912    #[inline]
26913    fn can_cast(kind: SyntaxKind) -> bool {
26914        kind == SyntaxKind::SET_TYPE
26915    }
26916    #[inline]
26917    fn cast(syntax: SyntaxNode) -> Option<Self> {
26918        if Self::can_cast(syntax.kind()) {
26919            Some(Self { syntax })
26920        } else {
26921            None
26922        }
26923    }
26924    #[inline]
26925    fn syntax(&self) -> &SyntaxNode {
26926        &self.syntax
26927    }
26928}
26929impl AstNode for SetUnlogged {
26930    #[inline]
26931    fn can_cast(kind: SyntaxKind) -> bool {
26932        kind == SyntaxKind::SET_UNLOGGED
26933    }
26934    #[inline]
26935    fn cast(syntax: SyntaxNode) -> Option<Self> {
26936        if Self::can_cast(syntax.kind()) {
26937            Some(Self { syntax })
26938        } else {
26939            None
26940        }
26941    }
26942    #[inline]
26943    fn syntax(&self) -> &SyntaxNode {
26944        &self.syntax
26945    }
26946}
26947impl AstNode for SetWithoutCluster {
26948    #[inline]
26949    fn can_cast(kind: SyntaxKind) -> bool {
26950        kind == SyntaxKind::SET_WITHOUT_CLUSTER
26951    }
26952    #[inline]
26953    fn cast(syntax: SyntaxNode) -> Option<Self> {
26954        if Self::can_cast(syntax.kind()) {
26955            Some(Self { syntax })
26956        } else {
26957            None
26958        }
26959    }
26960    #[inline]
26961    fn syntax(&self) -> &SyntaxNode {
26962        &self.syntax
26963    }
26964}
26965impl AstNode for SetWithoutOids {
26966    #[inline]
26967    fn can_cast(kind: SyntaxKind) -> bool {
26968        kind == SyntaxKind::SET_WITHOUT_OIDS
26969    }
26970    #[inline]
26971    fn cast(syntax: SyntaxNode) -> Option<Self> {
26972        if Self::can_cast(syntax.kind()) {
26973            Some(Self { syntax })
26974        } else {
26975            None
26976        }
26977    }
26978    #[inline]
26979    fn syntax(&self) -> &SyntaxNode {
26980        &self.syntax
26981    }
26982}
26983impl AstNode for Show {
26984    #[inline]
26985    fn can_cast(kind: SyntaxKind) -> bool {
26986        kind == SyntaxKind::SHOW
26987    }
26988    #[inline]
26989    fn cast(syntax: SyntaxNode) -> Option<Self> {
26990        if Self::can_cast(syntax.kind()) {
26991            Some(Self { syntax })
26992        } else {
26993            None
26994        }
26995    }
26996    #[inline]
26997    fn syntax(&self) -> &SyntaxNode {
26998        &self.syntax
26999    }
27000}
27001impl AstNode for SimilarTo {
27002    #[inline]
27003    fn can_cast(kind: SyntaxKind) -> bool {
27004        kind == SyntaxKind::SIMILAR_TO
27005    }
27006    #[inline]
27007    fn cast(syntax: SyntaxNode) -> Option<Self> {
27008        if Self::can_cast(syntax.kind()) {
27009            Some(Self { syntax })
27010        } else {
27011            None
27012        }
27013    }
27014    #[inline]
27015    fn syntax(&self) -> &SyntaxNode {
27016        &self.syntax
27017    }
27018}
27019impl AstNode for SliceExpr {
27020    #[inline]
27021    fn can_cast(kind: SyntaxKind) -> bool {
27022        kind == SyntaxKind::SLICE_EXPR
27023    }
27024    #[inline]
27025    fn cast(syntax: SyntaxNode) -> Option<Self> {
27026        if Self::can_cast(syntax.kind()) {
27027            Some(Self { syntax })
27028        } else {
27029            None
27030        }
27031    }
27032    #[inline]
27033    fn syntax(&self) -> &SyntaxNode {
27034        &self.syntax
27035    }
27036}
27037impl AstNode for SomeFn {
27038    #[inline]
27039    fn can_cast(kind: SyntaxKind) -> bool {
27040        kind == SyntaxKind::SOME_FN
27041    }
27042    #[inline]
27043    fn cast(syntax: SyntaxNode) -> Option<Self> {
27044        if Self::can_cast(syntax.kind()) {
27045            Some(Self { syntax })
27046        } else {
27047            None
27048        }
27049    }
27050    #[inline]
27051    fn syntax(&self) -> &SyntaxNode {
27052        &self.syntax
27053    }
27054}
27055impl AstNode for SortAsc {
27056    #[inline]
27057    fn can_cast(kind: SyntaxKind) -> bool {
27058        kind == SyntaxKind::SORT_ASC
27059    }
27060    #[inline]
27061    fn cast(syntax: SyntaxNode) -> Option<Self> {
27062        if Self::can_cast(syntax.kind()) {
27063            Some(Self { syntax })
27064        } else {
27065            None
27066        }
27067    }
27068    #[inline]
27069    fn syntax(&self) -> &SyntaxNode {
27070        &self.syntax
27071    }
27072}
27073impl AstNode for SortBy {
27074    #[inline]
27075    fn can_cast(kind: SyntaxKind) -> bool {
27076        kind == SyntaxKind::SORT_BY
27077    }
27078    #[inline]
27079    fn cast(syntax: SyntaxNode) -> Option<Self> {
27080        if Self::can_cast(syntax.kind()) {
27081            Some(Self { syntax })
27082        } else {
27083            None
27084        }
27085    }
27086    #[inline]
27087    fn syntax(&self) -> &SyntaxNode {
27088        &self.syntax
27089    }
27090}
27091impl AstNode for SortByList {
27092    #[inline]
27093    fn can_cast(kind: SyntaxKind) -> bool {
27094        kind == SyntaxKind::SORT_BY_LIST
27095    }
27096    #[inline]
27097    fn cast(syntax: SyntaxNode) -> Option<Self> {
27098        if Self::can_cast(syntax.kind()) {
27099            Some(Self { syntax })
27100        } else {
27101            None
27102        }
27103    }
27104    #[inline]
27105    fn syntax(&self) -> &SyntaxNode {
27106        &self.syntax
27107    }
27108}
27109impl AstNode for SortDesc {
27110    #[inline]
27111    fn can_cast(kind: SyntaxKind) -> bool {
27112        kind == SyntaxKind::SORT_DESC
27113    }
27114    #[inline]
27115    fn cast(syntax: SyntaxNode) -> Option<Self> {
27116        if Self::can_cast(syntax.kind()) {
27117            Some(Self { syntax })
27118        } else {
27119            None
27120        }
27121    }
27122    #[inline]
27123    fn syntax(&self) -> &SyntaxNode {
27124        &self.syntax
27125    }
27126}
27127impl AstNode for SortUsing {
27128    #[inline]
27129    fn can_cast(kind: SyntaxKind) -> bool {
27130        kind == SyntaxKind::SORT_USING
27131    }
27132    #[inline]
27133    fn cast(syntax: SyntaxNode) -> Option<Self> {
27134        if Self::can_cast(syntax.kind()) {
27135            Some(Self { syntax })
27136        } else {
27137            None
27138        }
27139    }
27140    #[inline]
27141    fn syntax(&self) -> &SyntaxNode {
27142        &self.syntax
27143    }
27144}
27145impl AstNode for SourceFile {
27146    #[inline]
27147    fn can_cast(kind: SyntaxKind) -> bool {
27148        kind == SyntaxKind::SOURCE_FILE
27149    }
27150    #[inline]
27151    fn cast(syntax: SyntaxNode) -> Option<Self> {
27152        if Self::can_cast(syntax.kind()) {
27153            Some(Self { syntax })
27154        } else {
27155            None
27156        }
27157    }
27158    #[inline]
27159    fn syntax(&self) -> &SyntaxNode {
27160        &self.syntax
27161    }
27162}
27163impl AstNode for SplitPartition {
27164    #[inline]
27165    fn can_cast(kind: SyntaxKind) -> bool {
27166        kind == SyntaxKind::SPLIT_PARTITION
27167    }
27168    #[inline]
27169    fn cast(syntax: SyntaxNode) -> Option<Self> {
27170        if Self::can_cast(syntax.kind()) {
27171            Some(Self { syntax })
27172        } else {
27173            None
27174        }
27175    }
27176    #[inline]
27177    fn syntax(&self) -> &SyntaxNode {
27178        &self.syntax
27179    }
27180}
27181impl AstNode for Storage {
27182    #[inline]
27183    fn can_cast(kind: SyntaxKind) -> bool {
27184        kind == SyntaxKind::STORAGE
27185    }
27186    #[inline]
27187    fn cast(syntax: SyntaxNode) -> Option<Self> {
27188        if Self::can_cast(syntax.kind()) {
27189            Some(Self { syntax })
27190        } else {
27191            None
27192        }
27193    }
27194    #[inline]
27195    fn syntax(&self) -> &SyntaxNode {
27196        &self.syntax
27197    }
27198}
27199impl AstNode for StrictFuncOption {
27200    #[inline]
27201    fn can_cast(kind: SyntaxKind) -> bool {
27202        kind == SyntaxKind::STRICT_FUNC_OPTION
27203    }
27204    #[inline]
27205    fn cast(syntax: SyntaxNode) -> Option<Self> {
27206        if Self::can_cast(syntax.kind()) {
27207            Some(Self { syntax })
27208        } else {
27209            None
27210        }
27211    }
27212    #[inline]
27213    fn syntax(&self) -> &SyntaxNode {
27214        &self.syntax
27215    }
27216}
27217impl AstNode for SubstringFn {
27218    #[inline]
27219    fn can_cast(kind: SyntaxKind) -> bool {
27220        kind == SyntaxKind::SUBSTRING_FN
27221    }
27222    #[inline]
27223    fn cast(syntax: SyntaxNode) -> Option<Self> {
27224        if Self::can_cast(syntax.kind()) {
27225            Some(Self { syntax })
27226        } else {
27227            None
27228        }
27229    }
27230    #[inline]
27231    fn syntax(&self) -> &SyntaxNode {
27232        &self.syntax
27233    }
27234}
27235impl AstNode for SupportFuncOption {
27236    #[inline]
27237    fn can_cast(kind: SyntaxKind) -> bool {
27238        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27239    }
27240    #[inline]
27241    fn cast(syntax: SyntaxNode) -> Option<Self> {
27242        if Self::can_cast(syntax.kind()) {
27243            Some(Self { syntax })
27244        } else {
27245            None
27246        }
27247    }
27248    #[inline]
27249    fn syntax(&self) -> &SyntaxNode {
27250        &self.syntax
27251    }
27252}
27253impl AstNode for Table {
27254    #[inline]
27255    fn can_cast(kind: SyntaxKind) -> bool {
27256        kind == SyntaxKind::TABLE
27257    }
27258    #[inline]
27259    fn cast(syntax: SyntaxNode) -> Option<Self> {
27260        if Self::can_cast(syntax.kind()) {
27261            Some(Self { syntax })
27262        } else {
27263            None
27264        }
27265    }
27266    #[inline]
27267    fn syntax(&self) -> &SyntaxNode {
27268        &self.syntax
27269    }
27270}
27271impl AstNode for TableAndColumns {
27272    #[inline]
27273    fn can_cast(kind: SyntaxKind) -> bool {
27274        kind == SyntaxKind::TABLE_AND_COLUMNS
27275    }
27276    #[inline]
27277    fn cast(syntax: SyntaxNode) -> Option<Self> {
27278        if Self::can_cast(syntax.kind()) {
27279            Some(Self { syntax })
27280        } else {
27281            None
27282        }
27283    }
27284    #[inline]
27285    fn syntax(&self) -> &SyntaxNode {
27286        &self.syntax
27287    }
27288}
27289impl AstNode for TableAndColumnsList {
27290    #[inline]
27291    fn can_cast(kind: SyntaxKind) -> bool {
27292        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27293    }
27294    #[inline]
27295    fn cast(syntax: SyntaxNode) -> Option<Self> {
27296        if Self::can_cast(syntax.kind()) {
27297            Some(Self { syntax })
27298        } else {
27299            None
27300        }
27301    }
27302    #[inline]
27303    fn syntax(&self) -> &SyntaxNode {
27304        &self.syntax
27305    }
27306}
27307impl AstNode for TableArgList {
27308    #[inline]
27309    fn can_cast(kind: SyntaxKind) -> bool {
27310        kind == SyntaxKind::TABLE_ARG_LIST
27311    }
27312    #[inline]
27313    fn cast(syntax: SyntaxNode) -> Option<Self> {
27314        if Self::can_cast(syntax.kind()) {
27315            Some(Self { syntax })
27316        } else {
27317            None
27318        }
27319    }
27320    #[inline]
27321    fn syntax(&self) -> &SyntaxNode {
27322        &self.syntax
27323    }
27324}
27325impl AstNode for TableList {
27326    #[inline]
27327    fn can_cast(kind: SyntaxKind) -> bool {
27328        kind == SyntaxKind::TABLE_LIST
27329    }
27330    #[inline]
27331    fn cast(syntax: SyntaxNode) -> Option<Self> {
27332        if Self::can_cast(syntax.kind()) {
27333            Some(Self { syntax })
27334        } else {
27335            None
27336        }
27337    }
27338    #[inline]
27339    fn syntax(&self) -> &SyntaxNode {
27340        &self.syntax
27341    }
27342}
27343impl AstNode for TablesampleClause {
27344    #[inline]
27345    fn can_cast(kind: SyntaxKind) -> bool {
27346        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27347    }
27348    #[inline]
27349    fn cast(syntax: SyntaxNode) -> Option<Self> {
27350        if Self::can_cast(syntax.kind()) {
27351            Some(Self { syntax })
27352        } else {
27353            None
27354        }
27355    }
27356    #[inline]
27357    fn syntax(&self) -> &SyntaxNode {
27358        &self.syntax
27359    }
27360}
27361impl AstNode for Tablespace {
27362    #[inline]
27363    fn can_cast(kind: SyntaxKind) -> bool {
27364        kind == SyntaxKind::TABLESPACE
27365    }
27366    #[inline]
27367    fn cast(syntax: SyntaxNode) -> Option<Self> {
27368        if Self::can_cast(syntax.kind()) {
27369            Some(Self { syntax })
27370        } else {
27371            None
27372        }
27373    }
27374    #[inline]
27375    fn syntax(&self) -> &SyntaxNode {
27376        &self.syntax
27377    }
27378}
27379impl AstNode for Target {
27380    #[inline]
27381    fn can_cast(kind: SyntaxKind) -> bool {
27382        kind == SyntaxKind::TARGET
27383    }
27384    #[inline]
27385    fn cast(syntax: SyntaxNode) -> Option<Self> {
27386        if Self::can_cast(syntax.kind()) {
27387            Some(Self { syntax })
27388        } else {
27389            None
27390        }
27391    }
27392    #[inline]
27393    fn syntax(&self) -> &SyntaxNode {
27394        &self.syntax
27395    }
27396}
27397impl AstNode for TargetList {
27398    #[inline]
27399    fn can_cast(kind: SyntaxKind) -> bool {
27400        kind == SyntaxKind::TARGET_LIST
27401    }
27402    #[inline]
27403    fn cast(syntax: SyntaxNode) -> Option<Self> {
27404        if Self::can_cast(syntax.kind()) {
27405            Some(Self { syntax })
27406        } else {
27407            None
27408        }
27409    }
27410    #[inline]
27411    fn syntax(&self) -> &SyntaxNode {
27412        &self.syntax
27413    }
27414}
27415impl AstNode for TimeType {
27416    #[inline]
27417    fn can_cast(kind: SyntaxKind) -> bool {
27418        kind == SyntaxKind::TIME_TYPE
27419    }
27420    #[inline]
27421    fn cast(syntax: SyntaxNode) -> Option<Self> {
27422        if Self::can_cast(syntax.kind()) {
27423            Some(Self { syntax })
27424        } else {
27425            None
27426        }
27427    }
27428    #[inline]
27429    fn syntax(&self) -> &SyntaxNode {
27430        &self.syntax
27431    }
27432}
27433impl AstNode for Timing {
27434    #[inline]
27435    fn can_cast(kind: SyntaxKind) -> bool {
27436        kind == SyntaxKind::TIMING
27437    }
27438    #[inline]
27439    fn cast(syntax: SyntaxNode) -> Option<Self> {
27440        if Self::can_cast(syntax.kind()) {
27441            Some(Self { syntax })
27442        } else {
27443            None
27444        }
27445    }
27446    #[inline]
27447    fn syntax(&self) -> &SyntaxNode {
27448        &self.syntax
27449    }
27450}
27451impl AstNode for TransactionModeList {
27452    #[inline]
27453    fn can_cast(kind: SyntaxKind) -> bool {
27454        kind == SyntaxKind::TRANSACTION_MODE_LIST
27455    }
27456    #[inline]
27457    fn cast(syntax: SyntaxNode) -> Option<Self> {
27458        if Self::can_cast(syntax.kind()) {
27459            Some(Self { syntax })
27460        } else {
27461            None
27462        }
27463    }
27464    #[inline]
27465    fn syntax(&self) -> &SyntaxNode {
27466        &self.syntax
27467    }
27468}
27469impl AstNode for TransformFromFunc {
27470    #[inline]
27471    fn can_cast(kind: SyntaxKind) -> bool {
27472        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27473    }
27474    #[inline]
27475    fn cast(syntax: SyntaxNode) -> Option<Self> {
27476        if Self::can_cast(syntax.kind()) {
27477            Some(Self { syntax })
27478        } else {
27479            None
27480        }
27481    }
27482    #[inline]
27483    fn syntax(&self) -> &SyntaxNode {
27484        &self.syntax
27485    }
27486}
27487impl AstNode for TransformFuncOption {
27488    #[inline]
27489    fn can_cast(kind: SyntaxKind) -> bool {
27490        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27491    }
27492    #[inline]
27493    fn cast(syntax: SyntaxNode) -> Option<Self> {
27494        if Self::can_cast(syntax.kind()) {
27495            Some(Self { syntax })
27496        } else {
27497            None
27498        }
27499    }
27500    #[inline]
27501    fn syntax(&self) -> &SyntaxNode {
27502        &self.syntax
27503    }
27504}
27505impl AstNode for TransformToFunc {
27506    #[inline]
27507    fn can_cast(kind: SyntaxKind) -> bool {
27508        kind == SyntaxKind::TRANSFORM_TO_FUNC
27509    }
27510    #[inline]
27511    fn cast(syntax: SyntaxNode) -> Option<Self> {
27512        if Self::can_cast(syntax.kind()) {
27513            Some(Self { syntax })
27514        } else {
27515            None
27516        }
27517    }
27518    #[inline]
27519    fn syntax(&self) -> &SyntaxNode {
27520        &self.syntax
27521    }
27522}
27523impl AstNode for TriggerEvent {
27524    #[inline]
27525    fn can_cast(kind: SyntaxKind) -> bool {
27526        kind == SyntaxKind::TRIGGER_EVENT
27527    }
27528    #[inline]
27529    fn cast(syntax: SyntaxNode) -> Option<Self> {
27530        if Self::can_cast(syntax.kind()) {
27531            Some(Self { syntax })
27532        } else {
27533            None
27534        }
27535    }
27536    #[inline]
27537    fn syntax(&self) -> &SyntaxNode {
27538        &self.syntax
27539    }
27540}
27541impl AstNode for TriggerEventList {
27542    #[inline]
27543    fn can_cast(kind: SyntaxKind) -> bool {
27544        kind == SyntaxKind::TRIGGER_EVENT_LIST
27545    }
27546    #[inline]
27547    fn cast(syntax: SyntaxNode) -> Option<Self> {
27548        if Self::can_cast(syntax.kind()) {
27549            Some(Self { syntax })
27550        } else {
27551            None
27552        }
27553    }
27554    #[inline]
27555    fn syntax(&self) -> &SyntaxNode {
27556        &self.syntax
27557    }
27558}
27559impl AstNode for TriggerEventUpdate {
27560    #[inline]
27561    fn can_cast(kind: SyntaxKind) -> bool {
27562        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27563    }
27564    #[inline]
27565    fn cast(syntax: SyntaxNode) -> Option<Self> {
27566        if Self::can_cast(syntax.kind()) {
27567            Some(Self { syntax })
27568        } else {
27569            None
27570        }
27571    }
27572    #[inline]
27573    fn syntax(&self) -> &SyntaxNode {
27574        &self.syntax
27575    }
27576}
27577impl AstNode for TrimFn {
27578    #[inline]
27579    fn can_cast(kind: SyntaxKind) -> bool {
27580        kind == SyntaxKind::TRIM_FN
27581    }
27582    #[inline]
27583    fn cast(syntax: SyntaxNode) -> Option<Self> {
27584        if Self::can_cast(syntax.kind()) {
27585            Some(Self { syntax })
27586        } else {
27587            None
27588        }
27589    }
27590    #[inline]
27591    fn syntax(&self) -> &SyntaxNode {
27592        &self.syntax
27593    }
27594}
27595impl AstNode for Truncate {
27596    #[inline]
27597    fn can_cast(kind: SyntaxKind) -> bool {
27598        kind == SyntaxKind::TRUNCATE
27599    }
27600    #[inline]
27601    fn cast(syntax: SyntaxNode) -> Option<Self> {
27602        if Self::can_cast(syntax.kind()) {
27603            Some(Self { syntax })
27604        } else {
27605            None
27606        }
27607    }
27608    #[inline]
27609    fn syntax(&self) -> &SyntaxNode {
27610        &self.syntax
27611    }
27612}
27613impl AstNode for TupleExpr {
27614    #[inline]
27615    fn can_cast(kind: SyntaxKind) -> bool {
27616        kind == SyntaxKind::TUPLE_EXPR
27617    }
27618    #[inline]
27619    fn cast(syntax: SyntaxNode) -> Option<Self> {
27620        if Self::can_cast(syntax.kind()) {
27621            Some(Self { syntax })
27622        } else {
27623            None
27624        }
27625    }
27626    #[inline]
27627    fn syntax(&self) -> &SyntaxNode {
27628        &self.syntax
27629    }
27630}
27631impl AstNode for UnicodeNormalForm {
27632    #[inline]
27633    fn can_cast(kind: SyntaxKind) -> bool {
27634        kind == SyntaxKind::UNICODE_NORMAL_FORM
27635    }
27636    #[inline]
27637    fn cast(syntax: SyntaxNode) -> Option<Self> {
27638        if Self::can_cast(syntax.kind()) {
27639            Some(Self { syntax })
27640        } else {
27641            None
27642        }
27643    }
27644    #[inline]
27645    fn syntax(&self) -> &SyntaxNode {
27646        &self.syntax
27647    }
27648}
27649impl AstNode for UniqueConstraint {
27650    #[inline]
27651    fn can_cast(kind: SyntaxKind) -> bool {
27652        kind == SyntaxKind::UNIQUE_CONSTRAINT
27653    }
27654    #[inline]
27655    fn cast(syntax: SyntaxNode) -> Option<Self> {
27656        if Self::can_cast(syntax.kind()) {
27657            Some(Self { syntax })
27658        } else {
27659            None
27660        }
27661    }
27662    #[inline]
27663    fn syntax(&self) -> &SyntaxNode {
27664        &self.syntax
27665    }
27666}
27667impl AstNode for Unlisten {
27668    #[inline]
27669    fn can_cast(kind: SyntaxKind) -> bool {
27670        kind == SyntaxKind::UNLISTEN
27671    }
27672    #[inline]
27673    fn cast(syntax: SyntaxNode) -> Option<Self> {
27674        if Self::can_cast(syntax.kind()) {
27675            Some(Self { syntax })
27676        } else {
27677            None
27678        }
27679    }
27680    #[inline]
27681    fn syntax(&self) -> &SyntaxNode {
27682        &self.syntax
27683    }
27684}
27685impl AstNode for Update {
27686    #[inline]
27687    fn can_cast(kind: SyntaxKind) -> bool {
27688        kind == SyntaxKind::UPDATE
27689    }
27690    #[inline]
27691    fn cast(syntax: SyntaxNode) -> Option<Self> {
27692        if Self::can_cast(syntax.kind()) {
27693            Some(Self { syntax })
27694        } else {
27695            None
27696        }
27697    }
27698    #[inline]
27699    fn syntax(&self) -> &SyntaxNode {
27700        &self.syntax
27701    }
27702}
27703impl AstNode for UsingClause {
27704    #[inline]
27705    fn can_cast(kind: SyntaxKind) -> bool {
27706        kind == SyntaxKind::USING_CLAUSE
27707    }
27708    #[inline]
27709    fn cast(syntax: SyntaxNode) -> Option<Self> {
27710        if Self::can_cast(syntax.kind()) {
27711            Some(Self { syntax })
27712        } else {
27713            None
27714        }
27715    }
27716    #[inline]
27717    fn syntax(&self) -> &SyntaxNode {
27718        &self.syntax
27719    }
27720}
27721impl AstNode for UsingIndex {
27722    #[inline]
27723    fn can_cast(kind: SyntaxKind) -> bool {
27724        kind == SyntaxKind::USING_INDEX
27725    }
27726    #[inline]
27727    fn cast(syntax: SyntaxNode) -> Option<Self> {
27728        if Self::can_cast(syntax.kind()) {
27729            Some(Self { syntax })
27730        } else {
27731            None
27732        }
27733    }
27734    #[inline]
27735    fn syntax(&self) -> &SyntaxNode {
27736        &self.syntax
27737    }
27738}
27739impl AstNode for UsingMethod {
27740    #[inline]
27741    fn can_cast(kind: SyntaxKind) -> bool {
27742        kind == SyntaxKind::USING_METHOD
27743    }
27744    #[inline]
27745    fn cast(syntax: SyntaxNode) -> Option<Self> {
27746        if Self::can_cast(syntax.kind()) {
27747            Some(Self { syntax })
27748        } else {
27749            None
27750        }
27751    }
27752    #[inline]
27753    fn syntax(&self) -> &SyntaxNode {
27754        &self.syntax
27755    }
27756}
27757impl AstNode for UsingOnClause {
27758    #[inline]
27759    fn can_cast(kind: SyntaxKind) -> bool {
27760        kind == SyntaxKind::USING_ON_CLAUSE
27761    }
27762    #[inline]
27763    fn cast(syntax: SyntaxNode) -> Option<Self> {
27764        if Self::can_cast(syntax.kind()) {
27765            Some(Self { syntax })
27766        } else {
27767            None
27768        }
27769    }
27770    #[inline]
27771    fn syntax(&self) -> &SyntaxNode {
27772        &self.syntax
27773    }
27774}
27775impl AstNode for Vacuum {
27776    #[inline]
27777    fn can_cast(kind: SyntaxKind) -> bool {
27778        kind == SyntaxKind::VACUUM
27779    }
27780    #[inline]
27781    fn cast(syntax: SyntaxNode) -> Option<Self> {
27782        if Self::can_cast(syntax.kind()) {
27783            Some(Self { syntax })
27784        } else {
27785            None
27786        }
27787    }
27788    #[inline]
27789    fn syntax(&self) -> &SyntaxNode {
27790        &self.syntax
27791    }
27792}
27793impl AstNode for VacuumOption {
27794    #[inline]
27795    fn can_cast(kind: SyntaxKind) -> bool {
27796        kind == SyntaxKind::VACUUM_OPTION
27797    }
27798    #[inline]
27799    fn cast(syntax: SyntaxNode) -> Option<Self> {
27800        if Self::can_cast(syntax.kind()) {
27801            Some(Self { syntax })
27802        } else {
27803            None
27804        }
27805    }
27806    #[inline]
27807    fn syntax(&self) -> &SyntaxNode {
27808        &self.syntax
27809    }
27810}
27811impl AstNode for VacuumOptionList {
27812    #[inline]
27813    fn can_cast(kind: SyntaxKind) -> bool {
27814        kind == SyntaxKind::VACUUM_OPTION_LIST
27815    }
27816    #[inline]
27817    fn cast(syntax: SyntaxNode) -> Option<Self> {
27818        if Self::can_cast(syntax.kind()) {
27819            Some(Self { syntax })
27820        } else {
27821            None
27822        }
27823    }
27824    #[inline]
27825    fn syntax(&self) -> &SyntaxNode {
27826        &self.syntax
27827    }
27828}
27829impl AstNode for ValidateConstraint {
27830    #[inline]
27831    fn can_cast(kind: SyntaxKind) -> bool {
27832        kind == SyntaxKind::VALIDATE_CONSTRAINT
27833    }
27834    #[inline]
27835    fn cast(syntax: SyntaxNode) -> Option<Self> {
27836        if Self::can_cast(syntax.kind()) {
27837            Some(Self { syntax })
27838        } else {
27839            None
27840        }
27841    }
27842    #[inline]
27843    fn syntax(&self) -> &SyntaxNode {
27844        &self.syntax
27845    }
27846}
27847impl AstNode for Values {
27848    #[inline]
27849    fn can_cast(kind: SyntaxKind) -> bool {
27850        kind == SyntaxKind::VALUES
27851    }
27852    #[inline]
27853    fn cast(syntax: SyntaxNode) -> Option<Self> {
27854        if Self::can_cast(syntax.kind()) {
27855            Some(Self { syntax })
27856        } else {
27857            None
27858        }
27859    }
27860    #[inline]
27861    fn syntax(&self) -> &SyntaxNode {
27862        &self.syntax
27863    }
27864}
27865impl AstNode for Variant {
27866    #[inline]
27867    fn can_cast(kind: SyntaxKind) -> bool {
27868        kind == SyntaxKind::VARIANT
27869    }
27870    #[inline]
27871    fn cast(syntax: SyntaxNode) -> Option<Self> {
27872        if Self::can_cast(syntax.kind()) {
27873            Some(Self { syntax })
27874        } else {
27875            None
27876        }
27877    }
27878    #[inline]
27879    fn syntax(&self) -> &SyntaxNode {
27880        &self.syntax
27881    }
27882}
27883impl AstNode for VariantList {
27884    #[inline]
27885    fn can_cast(kind: SyntaxKind) -> bool {
27886        kind == SyntaxKind::VARIANT_LIST
27887    }
27888    #[inline]
27889    fn cast(syntax: SyntaxNode) -> Option<Self> {
27890        if Self::can_cast(syntax.kind()) {
27891            Some(Self { syntax })
27892        } else {
27893            None
27894        }
27895    }
27896    #[inline]
27897    fn syntax(&self) -> &SyntaxNode {
27898        &self.syntax
27899    }
27900}
27901impl AstNode for VolatilityFuncOption {
27902    #[inline]
27903    fn can_cast(kind: SyntaxKind) -> bool {
27904        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
27905    }
27906    #[inline]
27907    fn cast(syntax: SyntaxNode) -> Option<Self> {
27908        if Self::can_cast(syntax.kind()) {
27909            Some(Self { syntax })
27910        } else {
27911            None
27912        }
27913    }
27914    #[inline]
27915    fn syntax(&self) -> &SyntaxNode {
27916        &self.syntax
27917    }
27918}
27919impl AstNode for WhenClause {
27920    #[inline]
27921    fn can_cast(kind: SyntaxKind) -> bool {
27922        kind == SyntaxKind::WHEN_CLAUSE
27923    }
27924    #[inline]
27925    fn cast(syntax: SyntaxNode) -> Option<Self> {
27926        if Self::can_cast(syntax.kind()) {
27927            Some(Self { syntax })
27928        } else {
27929            None
27930        }
27931    }
27932    #[inline]
27933    fn syntax(&self) -> &SyntaxNode {
27934        &self.syntax
27935    }
27936}
27937impl AstNode for WhenClauseList {
27938    #[inline]
27939    fn can_cast(kind: SyntaxKind) -> bool {
27940        kind == SyntaxKind::WHEN_CLAUSE_LIST
27941    }
27942    #[inline]
27943    fn cast(syntax: SyntaxNode) -> Option<Self> {
27944        if Self::can_cast(syntax.kind()) {
27945            Some(Self { syntax })
27946        } else {
27947            None
27948        }
27949    }
27950    #[inline]
27951    fn syntax(&self) -> &SyntaxNode {
27952        &self.syntax
27953    }
27954}
27955impl AstNode for WhenCondition {
27956    #[inline]
27957    fn can_cast(kind: SyntaxKind) -> bool {
27958        kind == SyntaxKind::WHEN_CONDITION
27959    }
27960    #[inline]
27961    fn cast(syntax: SyntaxNode) -> Option<Self> {
27962        if Self::can_cast(syntax.kind()) {
27963            Some(Self { syntax })
27964        } else {
27965            None
27966        }
27967    }
27968    #[inline]
27969    fn syntax(&self) -> &SyntaxNode {
27970        &self.syntax
27971    }
27972}
27973impl AstNode for WhereClause {
27974    #[inline]
27975    fn can_cast(kind: SyntaxKind) -> bool {
27976        kind == SyntaxKind::WHERE_CLAUSE
27977    }
27978    #[inline]
27979    fn cast(syntax: SyntaxNode) -> Option<Self> {
27980        if Self::can_cast(syntax.kind()) {
27981            Some(Self { syntax })
27982        } else {
27983            None
27984        }
27985    }
27986    #[inline]
27987    fn syntax(&self) -> &SyntaxNode {
27988        &self.syntax
27989    }
27990}
27991impl AstNode for WhereConditionClause {
27992    #[inline]
27993    fn can_cast(kind: SyntaxKind) -> bool {
27994        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
27995    }
27996    #[inline]
27997    fn cast(syntax: SyntaxNode) -> Option<Self> {
27998        if Self::can_cast(syntax.kind()) {
27999            Some(Self { syntax })
28000        } else {
28001            None
28002        }
28003    }
28004    #[inline]
28005    fn syntax(&self) -> &SyntaxNode {
28006        &self.syntax
28007    }
28008}
28009impl AstNode for WhereCurrentOf {
28010    #[inline]
28011    fn can_cast(kind: SyntaxKind) -> bool {
28012        kind == SyntaxKind::WHERE_CURRENT_OF
28013    }
28014    #[inline]
28015    fn cast(syntax: SyntaxNode) -> Option<Self> {
28016        if Self::can_cast(syntax.kind()) {
28017            Some(Self { syntax })
28018        } else {
28019            None
28020        }
28021    }
28022    #[inline]
28023    fn syntax(&self) -> &SyntaxNode {
28024        &self.syntax
28025    }
28026}
28027impl AstNode for WindowClause {
28028    #[inline]
28029    fn can_cast(kind: SyntaxKind) -> bool {
28030        kind == SyntaxKind::WINDOW_CLAUSE
28031    }
28032    #[inline]
28033    fn cast(syntax: SyntaxNode) -> Option<Self> {
28034        if Self::can_cast(syntax.kind()) {
28035            Some(Self { syntax })
28036        } else {
28037            None
28038        }
28039    }
28040    #[inline]
28041    fn syntax(&self) -> &SyntaxNode {
28042        &self.syntax
28043    }
28044}
28045impl AstNode for WindowDef {
28046    #[inline]
28047    fn can_cast(kind: SyntaxKind) -> bool {
28048        kind == SyntaxKind::WINDOW_DEF
28049    }
28050    #[inline]
28051    fn cast(syntax: SyntaxNode) -> Option<Self> {
28052        if Self::can_cast(syntax.kind()) {
28053            Some(Self { syntax })
28054        } else {
28055            None
28056        }
28057    }
28058    #[inline]
28059    fn syntax(&self) -> &SyntaxNode {
28060        &self.syntax
28061    }
28062}
28063impl AstNode for WindowFuncOption {
28064    #[inline]
28065    fn can_cast(kind: SyntaxKind) -> bool {
28066        kind == SyntaxKind::WINDOW_FUNC_OPTION
28067    }
28068    #[inline]
28069    fn cast(syntax: SyntaxNode) -> Option<Self> {
28070        if Self::can_cast(syntax.kind()) {
28071            Some(Self { syntax })
28072        } else {
28073            None
28074        }
28075    }
28076    #[inline]
28077    fn syntax(&self) -> &SyntaxNode {
28078        &self.syntax
28079    }
28080}
28081impl AstNode for WindowSpec {
28082    #[inline]
28083    fn can_cast(kind: SyntaxKind) -> bool {
28084        kind == SyntaxKind::WINDOW_SPEC
28085    }
28086    #[inline]
28087    fn cast(syntax: SyntaxNode) -> Option<Self> {
28088        if Self::can_cast(syntax.kind()) {
28089            Some(Self { syntax })
28090        } else {
28091            None
28092        }
28093    }
28094    #[inline]
28095    fn syntax(&self) -> &SyntaxNode {
28096        &self.syntax
28097    }
28098}
28099impl AstNode for WithClause {
28100    #[inline]
28101    fn can_cast(kind: SyntaxKind) -> bool {
28102        kind == SyntaxKind::WITH_CLAUSE
28103    }
28104    #[inline]
28105    fn cast(syntax: SyntaxNode) -> Option<Self> {
28106        if Self::can_cast(syntax.kind()) {
28107            Some(Self { syntax })
28108        } else {
28109            None
28110        }
28111    }
28112    #[inline]
28113    fn syntax(&self) -> &SyntaxNode {
28114        &self.syntax
28115    }
28116}
28117impl AstNode for WithData {
28118    #[inline]
28119    fn can_cast(kind: SyntaxKind) -> bool {
28120        kind == SyntaxKind::WITH_DATA
28121    }
28122    #[inline]
28123    fn cast(syntax: SyntaxNode) -> Option<Self> {
28124        if Self::can_cast(syntax.kind()) {
28125            Some(Self { syntax })
28126        } else {
28127            None
28128        }
28129    }
28130    #[inline]
28131    fn syntax(&self) -> &SyntaxNode {
28132        &self.syntax
28133    }
28134}
28135impl AstNode for WithNoData {
28136    #[inline]
28137    fn can_cast(kind: SyntaxKind) -> bool {
28138        kind == SyntaxKind::WITH_NO_DATA
28139    }
28140    #[inline]
28141    fn cast(syntax: SyntaxNode) -> Option<Self> {
28142        if Self::can_cast(syntax.kind()) {
28143            Some(Self { syntax })
28144        } else {
28145            None
28146        }
28147    }
28148    #[inline]
28149    fn syntax(&self) -> &SyntaxNode {
28150        &self.syntax
28151    }
28152}
28153impl AstNode for WithOptions {
28154    #[inline]
28155    fn can_cast(kind: SyntaxKind) -> bool {
28156        kind == SyntaxKind::WITH_OPTIONS
28157    }
28158    #[inline]
28159    fn cast(syntax: SyntaxNode) -> Option<Self> {
28160        if Self::can_cast(syntax.kind()) {
28161            Some(Self { syntax })
28162        } else {
28163            None
28164        }
28165    }
28166    #[inline]
28167    fn syntax(&self) -> &SyntaxNode {
28168        &self.syntax
28169    }
28170}
28171impl AstNode for WithParams {
28172    #[inline]
28173    fn can_cast(kind: SyntaxKind) -> bool {
28174        kind == SyntaxKind::WITH_PARAMS
28175    }
28176    #[inline]
28177    fn cast(syntax: SyntaxNode) -> Option<Self> {
28178        if Self::can_cast(syntax.kind()) {
28179            Some(Self { syntax })
28180        } else {
28181            None
28182        }
28183    }
28184    #[inline]
28185    fn syntax(&self) -> &SyntaxNode {
28186        &self.syntax
28187    }
28188}
28189impl AstNode for WithTable {
28190    #[inline]
28191    fn can_cast(kind: SyntaxKind) -> bool {
28192        kind == SyntaxKind::WITH_TABLE
28193    }
28194    #[inline]
28195    fn cast(syntax: SyntaxNode) -> Option<Self> {
28196        if Self::can_cast(syntax.kind()) {
28197            Some(Self { syntax })
28198        } else {
28199            None
28200        }
28201    }
28202    #[inline]
28203    fn syntax(&self) -> &SyntaxNode {
28204        &self.syntax
28205    }
28206}
28207impl AstNode for WithTimezone {
28208    #[inline]
28209    fn can_cast(kind: SyntaxKind) -> bool {
28210        kind == SyntaxKind::WITH_TIMEZONE
28211    }
28212    #[inline]
28213    fn cast(syntax: SyntaxNode) -> Option<Self> {
28214        if Self::can_cast(syntax.kind()) {
28215            Some(Self { syntax })
28216        } else {
28217            None
28218        }
28219    }
28220    #[inline]
28221    fn syntax(&self) -> &SyntaxNode {
28222        &self.syntax
28223    }
28224}
28225impl AstNode for WithinClause {
28226    #[inline]
28227    fn can_cast(kind: SyntaxKind) -> bool {
28228        kind == SyntaxKind::WITHIN_CLAUSE
28229    }
28230    #[inline]
28231    fn cast(syntax: SyntaxNode) -> Option<Self> {
28232        if Self::can_cast(syntax.kind()) {
28233            Some(Self { syntax })
28234        } else {
28235            None
28236        }
28237    }
28238    #[inline]
28239    fn syntax(&self) -> &SyntaxNode {
28240        &self.syntax
28241    }
28242}
28243impl AstNode for WithoutOids {
28244    #[inline]
28245    fn can_cast(kind: SyntaxKind) -> bool {
28246        kind == SyntaxKind::WITHOUT_OIDS
28247    }
28248    #[inline]
28249    fn cast(syntax: SyntaxNode) -> Option<Self> {
28250        if Self::can_cast(syntax.kind()) {
28251            Some(Self { syntax })
28252        } else {
28253            None
28254        }
28255    }
28256    #[inline]
28257    fn syntax(&self) -> &SyntaxNode {
28258        &self.syntax
28259    }
28260}
28261impl AstNode for WithoutTimezone {
28262    #[inline]
28263    fn can_cast(kind: SyntaxKind) -> bool {
28264        kind == SyntaxKind::WITHOUT_TIMEZONE
28265    }
28266    #[inline]
28267    fn cast(syntax: SyntaxNode) -> Option<Self> {
28268        if Self::can_cast(syntax.kind()) {
28269            Some(Self { syntax })
28270        } else {
28271            None
28272        }
28273    }
28274    #[inline]
28275    fn syntax(&self) -> &SyntaxNode {
28276        &self.syntax
28277    }
28278}
28279impl AstNode for XmlAttributeList {
28280    #[inline]
28281    fn can_cast(kind: SyntaxKind) -> bool {
28282        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28283    }
28284    #[inline]
28285    fn cast(syntax: SyntaxNode) -> Option<Self> {
28286        if Self::can_cast(syntax.kind()) {
28287            Some(Self { syntax })
28288        } else {
28289            None
28290        }
28291    }
28292    #[inline]
28293    fn syntax(&self) -> &SyntaxNode {
28294        &self.syntax
28295    }
28296}
28297impl AstNode for XmlColumnOption {
28298    #[inline]
28299    fn can_cast(kind: SyntaxKind) -> bool {
28300        kind == SyntaxKind::XML_COLUMN_OPTION
28301    }
28302    #[inline]
28303    fn cast(syntax: SyntaxNode) -> Option<Self> {
28304        if Self::can_cast(syntax.kind()) {
28305            Some(Self { syntax })
28306        } else {
28307            None
28308        }
28309    }
28310    #[inline]
28311    fn syntax(&self) -> &SyntaxNode {
28312        &self.syntax
28313    }
28314}
28315impl AstNode for XmlColumnOptionList {
28316    #[inline]
28317    fn can_cast(kind: SyntaxKind) -> bool {
28318        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28319    }
28320    #[inline]
28321    fn cast(syntax: SyntaxNode) -> Option<Self> {
28322        if Self::can_cast(syntax.kind()) {
28323            Some(Self { syntax })
28324        } else {
28325            None
28326        }
28327    }
28328    #[inline]
28329    fn syntax(&self) -> &SyntaxNode {
28330        &self.syntax
28331    }
28332}
28333impl AstNode for XmlElementFn {
28334    #[inline]
28335    fn can_cast(kind: SyntaxKind) -> bool {
28336        kind == SyntaxKind::XML_ELEMENT_FN
28337    }
28338    #[inline]
28339    fn cast(syntax: SyntaxNode) -> Option<Self> {
28340        if Self::can_cast(syntax.kind()) {
28341            Some(Self { syntax })
28342        } else {
28343            None
28344        }
28345    }
28346    #[inline]
28347    fn syntax(&self) -> &SyntaxNode {
28348        &self.syntax
28349    }
28350}
28351impl AstNode for XmlExistsFn {
28352    #[inline]
28353    fn can_cast(kind: SyntaxKind) -> bool {
28354        kind == SyntaxKind::XML_EXISTS_FN
28355    }
28356    #[inline]
28357    fn cast(syntax: SyntaxNode) -> Option<Self> {
28358        if Self::can_cast(syntax.kind()) {
28359            Some(Self { syntax })
28360        } else {
28361            None
28362        }
28363    }
28364    #[inline]
28365    fn syntax(&self) -> &SyntaxNode {
28366        &self.syntax
28367    }
28368}
28369impl AstNode for XmlForestFn {
28370    #[inline]
28371    fn can_cast(kind: SyntaxKind) -> bool {
28372        kind == SyntaxKind::XML_FOREST_FN
28373    }
28374    #[inline]
28375    fn cast(syntax: SyntaxNode) -> Option<Self> {
28376        if Self::can_cast(syntax.kind()) {
28377            Some(Self { syntax })
28378        } else {
28379            None
28380        }
28381    }
28382    #[inline]
28383    fn syntax(&self) -> &SyntaxNode {
28384        &self.syntax
28385    }
28386}
28387impl AstNode for XmlNamespace {
28388    #[inline]
28389    fn can_cast(kind: SyntaxKind) -> bool {
28390        kind == SyntaxKind::XML_NAMESPACE
28391    }
28392    #[inline]
28393    fn cast(syntax: SyntaxNode) -> Option<Self> {
28394        if Self::can_cast(syntax.kind()) {
28395            Some(Self { syntax })
28396        } else {
28397            None
28398        }
28399    }
28400    #[inline]
28401    fn syntax(&self) -> &SyntaxNode {
28402        &self.syntax
28403    }
28404}
28405impl AstNode for XmlNamespaceList {
28406    #[inline]
28407    fn can_cast(kind: SyntaxKind) -> bool {
28408        kind == SyntaxKind::XML_NAMESPACE_LIST
28409    }
28410    #[inline]
28411    fn cast(syntax: SyntaxNode) -> Option<Self> {
28412        if Self::can_cast(syntax.kind()) {
28413            Some(Self { syntax })
28414        } else {
28415            None
28416        }
28417    }
28418    #[inline]
28419    fn syntax(&self) -> &SyntaxNode {
28420        &self.syntax
28421    }
28422}
28423impl AstNode for XmlParseFn {
28424    #[inline]
28425    fn can_cast(kind: SyntaxKind) -> bool {
28426        kind == SyntaxKind::XML_PARSE_FN
28427    }
28428    #[inline]
28429    fn cast(syntax: SyntaxNode) -> Option<Self> {
28430        if Self::can_cast(syntax.kind()) {
28431            Some(Self { syntax })
28432        } else {
28433            None
28434        }
28435    }
28436    #[inline]
28437    fn syntax(&self) -> &SyntaxNode {
28438        &self.syntax
28439    }
28440}
28441impl AstNode for XmlPassingMech {
28442    #[inline]
28443    fn can_cast(kind: SyntaxKind) -> bool {
28444        kind == SyntaxKind::XML_PASSING_MECH
28445    }
28446    #[inline]
28447    fn cast(syntax: SyntaxNode) -> Option<Self> {
28448        if Self::can_cast(syntax.kind()) {
28449            Some(Self { syntax })
28450        } else {
28451            None
28452        }
28453    }
28454    #[inline]
28455    fn syntax(&self) -> &SyntaxNode {
28456        &self.syntax
28457    }
28458}
28459impl AstNode for XmlPiFn {
28460    #[inline]
28461    fn can_cast(kind: SyntaxKind) -> bool {
28462        kind == SyntaxKind::XML_PI_FN
28463    }
28464    #[inline]
28465    fn cast(syntax: SyntaxNode) -> Option<Self> {
28466        if Self::can_cast(syntax.kind()) {
28467            Some(Self { syntax })
28468        } else {
28469            None
28470        }
28471    }
28472    #[inline]
28473    fn syntax(&self) -> &SyntaxNode {
28474        &self.syntax
28475    }
28476}
28477impl AstNode for XmlRootFn {
28478    #[inline]
28479    fn can_cast(kind: SyntaxKind) -> bool {
28480        kind == SyntaxKind::XML_ROOT_FN
28481    }
28482    #[inline]
28483    fn cast(syntax: SyntaxNode) -> Option<Self> {
28484        if Self::can_cast(syntax.kind()) {
28485            Some(Self { syntax })
28486        } else {
28487            None
28488        }
28489    }
28490    #[inline]
28491    fn syntax(&self) -> &SyntaxNode {
28492        &self.syntax
28493    }
28494}
28495impl AstNode for XmlRowPassingClause {
28496    #[inline]
28497    fn can_cast(kind: SyntaxKind) -> bool {
28498        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28499    }
28500    #[inline]
28501    fn cast(syntax: SyntaxNode) -> Option<Self> {
28502        if Self::can_cast(syntax.kind()) {
28503            Some(Self { syntax })
28504        } else {
28505            None
28506        }
28507    }
28508    #[inline]
28509    fn syntax(&self) -> &SyntaxNode {
28510        &self.syntax
28511    }
28512}
28513impl AstNode for XmlSerializeFn {
28514    #[inline]
28515    fn can_cast(kind: SyntaxKind) -> bool {
28516        kind == SyntaxKind::XML_SERIALIZE_FN
28517    }
28518    #[inline]
28519    fn cast(syntax: SyntaxNode) -> Option<Self> {
28520        if Self::can_cast(syntax.kind()) {
28521            Some(Self { syntax })
28522        } else {
28523            None
28524        }
28525    }
28526    #[inline]
28527    fn syntax(&self) -> &SyntaxNode {
28528        &self.syntax
28529    }
28530}
28531impl AstNode for XmlTable {
28532    #[inline]
28533    fn can_cast(kind: SyntaxKind) -> bool {
28534        kind == SyntaxKind::XML_TABLE
28535    }
28536    #[inline]
28537    fn cast(syntax: SyntaxNode) -> Option<Self> {
28538        if Self::can_cast(syntax.kind()) {
28539            Some(Self { syntax })
28540        } else {
28541            None
28542        }
28543    }
28544    #[inline]
28545    fn syntax(&self) -> &SyntaxNode {
28546        &self.syntax
28547    }
28548}
28549impl AstNode for XmlTableColumn {
28550    #[inline]
28551    fn can_cast(kind: SyntaxKind) -> bool {
28552        kind == SyntaxKind::XML_TABLE_COLUMN
28553    }
28554    #[inline]
28555    fn cast(syntax: SyntaxNode) -> Option<Self> {
28556        if Self::can_cast(syntax.kind()) {
28557            Some(Self { syntax })
28558        } else {
28559            None
28560        }
28561    }
28562    #[inline]
28563    fn syntax(&self) -> &SyntaxNode {
28564        &self.syntax
28565    }
28566}
28567impl AstNode for XmlTableColumnList {
28568    #[inline]
28569    fn can_cast(kind: SyntaxKind) -> bool {
28570        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28571    }
28572    #[inline]
28573    fn cast(syntax: SyntaxNode) -> Option<Self> {
28574        if Self::can_cast(syntax.kind()) {
28575            Some(Self { syntax })
28576        } else {
28577            None
28578        }
28579    }
28580    #[inline]
28581    fn syntax(&self) -> &SyntaxNode {
28582        &self.syntax
28583    }
28584}
28585impl AstNode for AlterColumnOption {
28586    #[inline]
28587    fn can_cast(kind: SyntaxKind) -> bool {
28588        matches!(
28589            kind,
28590            SyntaxKind::ADD_GENERATED
28591                | SyntaxKind::DROP_DEFAULT
28592                | SyntaxKind::DROP_EXPRESSION
28593                | SyntaxKind::DROP_IDENTITY
28594                | SyntaxKind::DROP_NOT_NULL
28595                | SyntaxKind::INHERIT
28596                | SyntaxKind::NO_INHERIT
28597                | SyntaxKind::RESET_OPTIONS
28598                | SyntaxKind::RESTART
28599                | SyntaxKind::SET_COMPRESSION
28600                | SyntaxKind::SET_DEFAULT
28601                | SyntaxKind::SET_EXPRESSION
28602                | SyntaxKind::SET_GENERATED
28603                | SyntaxKind::SET_GENERATED_OPTIONS
28604                | SyntaxKind::SET_NOT_NULL
28605                | SyntaxKind::SET_OPTIONS
28606                | SyntaxKind::SET_OPTIONS_LIST
28607                | SyntaxKind::SET_SEQUENCE_OPTION
28608                | SyntaxKind::SET_STATISTICS
28609                | SyntaxKind::SET_STORAGE
28610                | SyntaxKind::SET_TYPE
28611        )
28612    }
28613    #[inline]
28614    fn cast(syntax: SyntaxNode) -> Option<Self> {
28615        let res = match syntax.kind() {
28616            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28617            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28618            SyntaxKind::DROP_EXPRESSION => {
28619                AlterColumnOption::DropExpression(DropExpression { syntax })
28620            }
28621            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28622            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28623            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
28624            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
28625            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28626            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28627            SyntaxKind::SET_COMPRESSION => {
28628                AlterColumnOption::SetCompression(SetCompression { syntax })
28629            }
28630            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28631            SyntaxKind::SET_EXPRESSION => {
28632                AlterColumnOption::SetExpression(SetExpression { syntax })
28633            }
28634            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28635            SyntaxKind::SET_GENERATED_OPTIONS => {
28636                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28637            }
28638            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28639            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28640            SyntaxKind::SET_OPTIONS_LIST => {
28641                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28642            }
28643            SyntaxKind::SET_SEQUENCE_OPTION => {
28644                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28645            }
28646            SyntaxKind::SET_STATISTICS => {
28647                AlterColumnOption::SetStatistics(SetStatistics { syntax })
28648            }
28649            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
28650            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
28651            _ => {
28652                return None;
28653            }
28654        };
28655        Some(res)
28656    }
28657    #[inline]
28658    fn syntax(&self) -> &SyntaxNode {
28659        match self {
28660            AlterColumnOption::AddGenerated(it) => &it.syntax,
28661            AlterColumnOption::DropDefault(it) => &it.syntax,
28662            AlterColumnOption::DropExpression(it) => &it.syntax,
28663            AlterColumnOption::DropIdentity(it) => &it.syntax,
28664            AlterColumnOption::DropNotNull(it) => &it.syntax,
28665            AlterColumnOption::Inherit(it) => &it.syntax,
28666            AlterColumnOption::NoInherit(it) => &it.syntax,
28667            AlterColumnOption::ResetOptions(it) => &it.syntax,
28668            AlterColumnOption::Restart(it) => &it.syntax,
28669            AlterColumnOption::SetCompression(it) => &it.syntax,
28670            AlterColumnOption::SetDefault(it) => &it.syntax,
28671            AlterColumnOption::SetExpression(it) => &it.syntax,
28672            AlterColumnOption::SetGenerated(it) => &it.syntax,
28673            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
28674            AlterColumnOption::SetNotNull(it) => &it.syntax,
28675            AlterColumnOption::SetOptions(it) => &it.syntax,
28676            AlterColumnOption::SetOptionsList(it) => &it.syntax,
28677            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
28678            AlterColumnOption::SetStatistics(it) => &it.syntax,
28679            AlterColumnOption::SetStorage(it) => &it.syntax,
28680            AlterColumnOption::SetType(it) => &it.syntax,
28681        }
28682    }
28683}
28684impl From<AddGenerated> for AlterColumnOption {
28685    #[inline]
28686    fn from(node: AddGenerated) -> AlterColumnOption {
28687        AlterColumnOption::AddGenerated(node)
28688    }
28689}
28690impl From<DropDefault> for AlterColumnOption {
28691    #[inline]
28692    fn from(node: DropDefault) -> AlterColumnOption {
28693        AlterColumnOption::DropDefault(node)
28694    }
28695}
28696impl From<DropExpression> for AlterColumnOption {
28697    #[inline]
28698    fn from(node: DropExpression) -> AlterColumnOption {
28699        AlterColumnOption::DropExpression(node)
28700    }
28701}
28702impl From<DropIdentity> for AlterColumnOption {
28703    #[inline]
28704    fn from(node: DropIdentity) -> AlterColumnOption {
28705        AlterColumnOption::DropIdentity(node)
28706    }
28707}
28708impl From<DropNotNull> for AlterColumnOption {
28709    #[inline]
28710    fn from(node: DropNotNull) -> AlterColumnOption {
28711        AlterColumnOption::DropNotNull(node)
28712    }
28713}
28714impl From<Inherit> for AlterColumnOption {
28715    #[inline]
28716    fn from(node: Inherit) -> AlterColumnOption {
28717        AlterColumnOption::Inherit(node)
28718    }
28719}
28720impl From<NoInherit> for AlterColumnOption {
28721    #[inline]
28722    fn from(node: NoInherit) -> AlterColumnOption {
28723        AlterColumnOption::NoInherit(node)
28724    }
28725}
28726impl From<ResetOptions> for AlterColumnOption {
28727    #[inline]
28728    fn from(node: ResetOptions) -> AlterColumnOption {
28729        AlterColumnOption::ResetOptions(node)
28730    }
28731}
28732impl From<Restart> for AlterColumnOption {
28733    #[inline]
28734    fn from(node: Restart) -> AlterColumnOption {
28735        AlterColumnOption::Restart(node)
28736    }
28737}
28738impl From<SetCompression> for AlterColumnOption {
28739    #[inline]
28740    fn from(node: SetCompression) -> AlterColumnOption {
28741        AlterColumnOption::SetCompression(node)
28742    }
28743}
28744impl From<SetDefault> for AlterColumnOption {
28745    #[inline]
28746    fn from(node: SetDefault) -> AlterColumnOption {
28747        AlterColumnOption::SetDefault(node)
28748    }
28749}
28750impl From<SetExpression> for AlterColumnOption {
28751    #[inline]
28752    fn from(node: SetExpression) -> AlterColumnOption {
28753        AlterColumnOption::SetExpression(node)
28754    }
28755}
28756impl From<SetGenerated> for AlterColumnOption {
28757    #[inline]
28758    fn from(node: SetGenerated) -> AlterColumnOption {
28759        AlterColumnOption::SetGenerated(node)
28760    }
28761}
28762impl From<SetGeneratedOptions> for AlterColumnOption {
28763    #[inline]
28764    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
28765        AlterColumnOption::SetGeneratedOptions(node)
28766    }
28767}
28768impl From<SetNotNull> for AlterColumnOption {
28769    #[inline]
28770    fn from(node: SetNotNull) -> AlterColumnOption {
28771        AlterColumnOption::SetNotNull(node)
28772    }
28773}
28774impl From<SetOptions> for AlterColumnOption {
28775    #[inline]
28776    fn from(node: SetOptions) -> AlterColumnOption {
28777        AlterColumnOption::SetOptions(node)
28778    }
28779}
28780impl From<SetOptionsList> for AlterColumnOption {
28781    #[inline]
28782    fn from(node: SetOptionsList) -> AlterColumnOption {
28783        AlterColumnOption::SetOptionsList(node)
28784    }
28785}
28786impl From<SetSequenceOption> for AlterColumnOption {
28787    #[inline]
28788    fn from(node: SetSequenceOption) -> AlterColumnOption {
28789        AlterColumnOption::SetSequenceOption(node)
28790    }
28791}
28792impl From<SetStatistics> for AlterColumnOption {
28793    #[inline]
28794    fn from(node: SetStatistics) -> AlterColumnOption {
28795        AlterColumnOption::SetStatistics(node)
28796    }
28797}
28798impl From<SetStorage> for AlterColumnOption {
28799    #[inline]
28800    fn from(node: SetStorage) -> AlterColumnOption {
28801        AlterColumnOption::SetStorage(node)
28802    }
28803}
28804impl From<SetType> for AlterColumnOption {
28805    #[inline]
28806    fn from(node: SetType) -> AlterColumnOption {
28807        AlterColumnOption::SetType(node)
28808    }
28809}
28810impl AstNode for AlterDomainAction {
28811    #[inline]
28812    fn can_cast(kind: SyntaxKind) -> bool {
28813        matches!(
28814            kind,
28815            SyntaxKind::ADD_CONSTRAINT
28816                | SyntaxKind::DROP_CONSTRAINT
28817                | SyntaxKind::DROP_DEFAULT
28818                | SyntaxKind::DROP_NOT_NULL
28819                | SyntaxKind::OWNER_TO
28820                | SyntaxKind::RENAME_CONSTRAINT
28821                | SyntaxKind::RENAME_TO
28822                | SyntaxKind::SET_DEFAULT
28823                | SyntaxKind::SET_NOT_NULL
28824                | SyntaxKind::SET_SCHEMA
28825                | SyntaxKind::VALIDATE_CONSTRAINT
28826        )
28827    }
28828    #[inline]
28829    fn cast(syntax: SyntaxNode) -> Option<Self> {
28830        let res = match syntax.kind() {
28831            SyntaxKind::ADD_CONSTRAINT => {
28832                AlterDomainAction::AddConstraint(AddConstraint { syntax })
28833            }
28834            SyntaxKind::DROP_CONSTRAINT => {
28835                AlterDomainAction::DropConstraint(DropConstraint { syntax })
28836            }
28837            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
28838            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
28839            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
28840            SyntaxKind::RENAME_CONSTRAINT => {
28841                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
28842            }
28843            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
28844            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
28845            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
28846            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
28847            SyntaxKind::VALIDATE_CONSTRAINT => {
28848                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
28849            }
28850            _ => {
28851                return None;
28852            }
28853        };
28854        Some(res)
28855    }
28856    #[inline]
28857    fn syntax(&self) -> &SyntaxNode {
28858        match self {
28859            AlterDomainAction::AddConstraint(it) => &it.syntax,
28860            AlterDomainAction::DropConstraint(it) => &it.syntax,
28861            AlterDomainAction::DropDefault(it) => &it.syntax,
28862            AlterDomainAction::DropNotNull(it) => &it.syntax,
28863            AlterDomainAction::OwnerTo(it) => &it.syntax,
28864            AlterDomainAction::RenameConstraint(it) => &it.syntax,
28865            AlterDomainAction::RenameTo(it) => &it.syntax,
28866            AlterDomainAction::SetDefault(it) => &it.syntax,
28867            AlterDomainAction::SetNotNull(it) => &it.syntax,
28868            AlterDomainAction::SetSchema(it) => &it.syntax,
28869            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
28870        }
28871    }
28872}
28873impl From<AddConstraint> for AlterDomainAction {
28874    #[inline]
28875    fn from(node: AddConstraint) -> AlterDomainAction {
28876        AlterDomainAction::AddConstraint(node)
28877    }
28878}
28879impl From<DropConstraint> for AlterDomainAction {
28880    #[inline]
28881    fn from(node: DropConstraint) -> AlterDomainAction {
28882        AlterDomainAction::DropConstraint(node)
28883    }
28884}
28885impl From<DropDefault> for AlterDomainAction {
28886    #[inline]
28887    fn from(node: DropDefault) -> AlterDomainAction {
28888        AlterDomainAction::DropDefault(node)
28889    }
28890}
28891impl From<DropNotNull> for AlterDomainAction {
28892    #[inline]
28893    fn from(node: DropNotNull) -> AlterDomainAction {
28894        AlterDomainAction::DropNotNull(node)
28895    }
28896}
28897impl From<OwnerTo> for AlterDomainAction {
28898    #[inline]
28899    fn from(node: OwnerTo) -> AlterDomainAction {
28900        AlterDomainAction::OwnerTo(node)
28901    }
28902}
28903impl From<RenameConstraint> for AlterDomainAction {
28904    #[inline]
28905    fn from(node: RenameConstraint) -> AlterDomainAction {
28906        AlterDomainAction::RenameConstraint(node)
28907    }
28908}
28909impl From<RenameTo> for AlterDomainAction {
28910    #[inline]
28911    fn from(node: RenameTo) -> AlterDomainAction {
28912        AlterDomainAction::RenameTo(node)
28913    }
28914}
28915impl From<SetDefault> for AlterDomainAction {
28916    #[inline]
28917    fn from(node: SetDefault) -> AlterDomainAction {
28918        AlterDomainAction::SetDefault(node)
28919    }
28920}
28921impl From<SetNotNull> for AlterDomainAction {
28922    #[inline]
28923    fn from(node: SetNotNull) -> AlterDomainAction {
28924        AlterDomainAction::SetNotNull(node)
28925    }
28926}
28927impl From<SetSchema> for AlterDomainAction {
28928    #[inline]
28929    fn from(node: SetSchema) -> AlterDomainAction {
28930        AlterDomainAction::SetSchema(node)
28931    }
28932}
28933impl From<ValidateConstraint> for AlterDomainAction {
28934    #[inline]
28935    fn from(node: ValidateConstraint) -> AlterDomainAction {
28936        AlterDomainAction::ValidateConstraint(node)
28937    }
28938}
28939impl AstNode for AlterIndexAction {
28940    #[inline]
28941    fn can_cast(kind: SyntaxKind) -> bool {
28942        matches!(
28943            kind,
28944            SyntaxKind::ALTER_SET_STATISTICS
28945                | SyntaxKind::ATTACH_PARTITION
28946                | SyntaxKind::DEPENDS_ON_EXTENSION
28947                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
28948                | SyntaxKind::RENAME_TO
28949                | SyntaxKind::RESET_OPTIONS
28950                | SyntaxKind::SET_OPTIONS
28951                | SyntaxKind::SET_TABLESPACE
28952        )
28953    }
28954    #[inline]
28955    fn cast(syntax: SyntaxNode) -> Option<Self> {
28956        let res = match syntax.kind() {
28957            SyntaxKind::ALTER_SET_STATISTICS => {
28958                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
28959            }
28960            SyntaxKind::ATTACH_PARTITION => {
28961                AlterIndexAction::AttachPartition(AttachPartition { syntax })
28962            }
28963            SyntaxKind::DEPENDS_ON_EXTENSION => {
28964                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
28965            }
28966            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
28967                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
28968            }
28969            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
28970            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
28971            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
28972            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
28973            _ => {
28974                return None;
28975            }
28976        };
28977        Some(res)
28978    }
28979    #[inline]
28980    fn syntax(&self) -> &SyntaxNode {
28981        match self {
28982            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
28983            AlterIndexAction::AttachPartition(it) => &it.syntax,
28984            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
28985            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
28986            AlterIndexAction::RenameTo(it) => &it.syntax,
28987            AlterIndexAction::ResetOptions(it) => &it.syntax,
28988            AlterIndexAction::SetOptions(it) => &it.syntax,
28989            AlterIndexAction::SetTablespace(it) => &it.syntax,
28990        }
28991    }
28992}
28993impl From<AlterSetStatistics> for AlterIndexAction {
28994    #[inline]
28995    fn from(node: AlterSetStatistics) -> AlterIndexAction {
28996        AlterIndexAction::AlterSetStatistics(node)
28997    }
28998}
28999impl From<AttachPartition> for AlterIndexAction {
29000    #[inline]
29001    fn from(node: AttachPartition) -> AlterIndexAction {
29002        AlterIndexAction::AttachPartition(node)
29003    }
29004}
29005impl From<DependsOnExtension> for AlterIndexAction {
29006    #[inline]
29007    fn from(node: DependsOnExtension) -> AlterIndexAction {
29008        AlterIndexAction::DependsOnExtension(node)
29009    }
29010}
29011impl From<NoDependsOnExtension> for AlterIndexAction {
29012    #[inline]
29013    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
29014        AlterIndexAction::NoDependsOnExtension(node)
29015    }
29016}
29017impl From<RenameTo> for AlterIndexAction {
29018    #[inline]
29019    fn from(node: RenameTo) -> AlterIndexAction {
29020        AlterIndexAction::RenameTo(node)
29021    }
29022}
29023impl From<ResetOptions> for AlterIndexAction {
29024    #[inline]
29025    fn from(node: ResetOptions) -> AlterIndexAction {
29026        AlterIndexAction::ResetOptions(node)
29027    }
29028}
29029impl From<SetOptions> for AlterIndexAction {
29030    #[inline]
29031    fn from(node: SetOptions) -> AlterIndexAction {
29032        AlterIndexAction::SetOptions(node)
29033    }
29034}
29035impl From<SetTablespace> for AlterIndexAction {
29036    #[inline]
29037    fn from(node: SetTablespace) -> AlterIndexAction {
29038        AlterIndexAction::SetTablespace(node)
29039    }
29040}
29041impl AstNode for AlterMaterializedViewAction {
29042    #[inline]
29043    fn can_cast(kind: SyntaxKind) -> bool {
29044        matches!(
29045            kind,
29046            SyntaxKind::DEPENDS_ON_EXTENSION
29047                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29048                | SyntaxKind::RENAME_COLUMN
29049                | SyntaxKind::RENAME_TO
29050                | SyntaxKind::SET_SCHEMA
29051        )
29052    }
29053    #[inline]
29054    fn cast(syntax: SyntaxNode) -> Option<Self> {
29055        let res = match syntax.kind() {
29056            SyntaxKind::DEPENDS_ON_EXTENSION => {
29057                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
29058            }
29059            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29060                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29061            }
29062            SyntaxKind::RENAME_COLUMN => {
29063                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
29064            }
29065            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
29066            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
29067            _ => {
29068                if let Some(result) = AlterTableAction::cast(syntax) {
29069                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
29070                }
29071                return None;
29072            }
29073        };
29074        Some(res)
29075    }
29076    #[inline]
29077    fn syntax(&self) -> &SyntaxNode {
29078        match self {
29079            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
29080            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
29081            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
29082            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
29083            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
29084            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
29085        }
29086    }
29087}
29088impl From<DependsOnExtension> for AlterMaterializedViewAction {
29089    #[inline]
29090    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
29091        AlterMaterializedViewAction::DependsOnExtension(node)
29092    }
29093}
29094impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
29095    #[inline]
29096    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
29097        AlterMaterializedViewAction::NoDependsOnExtension(node)
29098    }
29099}
29100impl From<RenameColumn> for AlterMaterializedViewAction {
29101    #[inline]
29102    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
29103        AlterMaterializedViewAction::RenameColumn(node)
29104    }
29105}
29106impl From<RenameTo> for AlterMaterializedViewAction {
29107    #[inline]
29108    fn from(node: RenameTo) -> AlterMaterializedViewAction {
29109        AlterMaterializedViewAction::RenameTo(node)
29110    }
29111}
29112impl From<SetSchema> for AlterMaterializedViewAction {
29113    #[inline]
29114    fn from(node: SetSchema) -> AlterMaterializedViewAction {
29115        AlterMaterializedViewAction::SetSchema(node)
29116    }
29117}
29118impl AstNode for AlterTableAction {
29119    #[inline]
29120    fn can_cast(kind: SyntaxKind) -> bool {
29121        matches!(
29122            kind,
29123            SyntaxKind::ADD_COLUMN
29124                | SyntaxKind::ADD_CONSTRAINT
29125                | SyntaxKind::ALTER_COLUMN
29126                | SyntaxKind::ALTER_CONSTRAINT
29127                | SyntaxKind::ATTACH_PARTITION
29128                | SyntaxKind::CLUSTER_ON
29129                | SyntaxKind::DETACH_PARTITION
29130                | SyntaxKind::DISABLE_RLS
29131                | SyntaxKind::DISABLE_RULE
29132                | SyntaxKind::DISABLE_TRIGGER
29133                | SyntaxKind::DROP_COLUMN
29134                | SyntaxKind::DROP_CONSTRAINT
29135                | SyntaxKind::ENABLE_ALWAYS_RULE
29136                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
29137                | SyntaxKind::ENABLE_REPLICA_RULE
29138                | SyntaxKind::ENABLE_REPLICA_TRIGGER
29139                | SyntaxKind::ENABLE_RLS
29140                | SyntaxKind::ENABLE_RULE
29141                | SyntaxKind::ENABLE_TRIGGER
29142                | SyntaxKind::FORCE_RLS
29143                | SyntaxKind::INHERIT_TABLE
29144                | SyntaxKind::MERGE_PARTITIONS
29145                | SyntaxKind::NO_FORCE_RLS
29146                | SyntaxKind::NO_INHERIT_TABLE
29147                | SyntaxKind::NOT_OF
29148                | SyntaxKind::OF_TYPE
29149                | SyntaxKind::OPTION_ITEM_LIST
29150                | SyntaxKind::OWNER_TO
29151                | SyntaxKind::RENAME_COLUMN
29152                | SyntaxKind::RENAME_CONSTRAINT
29153                | SyntaxKind::RENAME_TO
29154                | SyntaxKind::REPLICA_IDENTITY
29155                | SyntaxKind::RESET_OPTIONS
29156                | SyntaxKind::SET_ACCESS_METHOD
29157                | SyntaxKind::SET_LOGGED
29158                | SyntaxKind::SET_OPTIONS
29159                | SyntaxKind::SET_SCHEMA
29160                | SyntaxKind::SET_TABLESPACE
29161                | SyntaxKind::SET_UNLOGGED
29162                | SyntaxKind::SET_WITHOUT_CLUSTER
29163                | SyntaxKind::SET_WITHOUT_OIDS
29164                | SyntaxKind::SPLIT_PARTITION
29165                | SyntaxKind::VALIDATE_CONSTRAINT
29166        )
29167    }
29168    #[inline]
29169    fn cast(syntax: SyntaxNode) -> Option<Self> {
29170        let res = match syntax.kind() {
29171            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
29172            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
29173            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
29174            SyntaxKind::ALTER_CONSTRAINT => {
29175                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
29176            }
29177            SyntaxKind::ATTACH_PARTITION => {
29178                AlterTableAction::AttachPartition(AttachPartition { syntax })
29179            }
29180            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
29181            SyntaxKind::DETACH_PARTITION => {
29182                AlterTableAction::DetachPartition(DetachPartition { syntax })
29183            }
29184            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
29185            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
29186            SyntaxKind::DISABLE_TRIGGER => {
29187                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
29188            }
29189            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
29190            SyntaxKind::DROP_CONSTRAINT => {
29191                AlterTableAction::DropConstraint(DropConstraint { syntax })
29192            }
29193            SyntaxKind::ENABLE_ALWAYS_RULE => {
29194                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
29195            }
29196            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
29197                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
29198            }
29199            SyntaxKind::ENABLE_REPLICA_RULE => {
29200                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
29201            }
29202            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
29203                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
29204            }
29205            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
29206            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
29207            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
29208            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
29209            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
29210            SyntaxKind::MERGE_PARTITIONS => {
29211                AlterTableAction::MergePartitions(MergePartitions { syntax })
29212            }
29213            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
29214            SyntaxKind::NO_INHERIT_TABLE => {
29215                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
29216            }
29217            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
29218            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
29219            SyntaxKind::OPTION_ITEM_LIST => {
29220                AlterTableAction::OptionItemList(OptionItemList { syntax })
29221            }
29222            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
29223            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
29224            SyntaxKind::RENAME_CONSTRAINT => {
29225                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
29226            }
29227            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
29228            SyntaxKind::REPLICA_IDENTITY => {
29229                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
29230            }
29231            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
29232            SyntaxKind::SET_ACCESS_METHOD => {
29233                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
29234            }
29235            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
29236            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
29237            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
29238            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
29239            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
29240            SyntaxKind::SET_WITHOUT_CLUSTER => {
29241                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
29242            }
29243            SyntaxKind::SET_WITHOUT_OIDS => {
29244                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
29245            }
29246            SyntaxKind::SPLIT_PARTITION => {
29247                AlterTableAction::SplitPartition(SplitPartition { syntax })
29248            }
29249            SyntaxKind::VALIDATE_CONSTRAINT => {
29250                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
29251            }
29252            _ => {
29253                return None;
29254            }
29255        };
29256        Some(res)
29257    }
29258    #[inline]
29259    fn syntax(&self) -> &SyntaxNode {
29260        match self {
29261            AlterTableAction::AddColumn(it) => &it.syntax,
29262            AlterTableAction::AddConstraint(it) => &it.syntax,
29263            AlterTableAction::AlterColumn(it) => &it.syntax,
29264            AlterTableAction::AlterConstraint(it) => &it.syntax,
29265            AlterTableAction::AttachPartition(it) => &it.syntax,
29266            AlterTableAction::ClusterOn(it) => &it.syntax,
29267            AlterTableAction::DetachPartition(it) => &it.syntax,
29268            AlterTableAction::DisableRls(it) => &it.syntax,
29269            AlterTableAction::DisableRule(it) => &it.syntax,
29270            AlterTableAction::DisableTrigger(it) => &it.syntax,
29271            AlterTableAction::DropColumn(it) => &it.syntax,
29272            AlterTableAction::DropConstraint(it) => &it.syntax,
29273            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
29274            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29275            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29276            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29277            AlterTableAction::EnableRls(it) => &it.syntax,
29278            AlterTableAction::EnableRule(it) => &it.syntax,
29279            AlterTableAction::EnableTrigger(it) => &it.syntax,
29280            AlterTableAction::ForceRls(it) => &it.syntax,
29281            AlterTableAction::InheritTable(it) => &it.syntax,
29282            AlterTableAction::MergePartitions(it) => &it.syntax,
29283            AlterTableAction::NoForceRls(it) => &it.syntax,
29284            AlterTableAction::NoInheritTable(it) => &it.syntax,
29285            AlterTableAction::NotOf(it) => &it.syntax,
29286            AlterTableAction::OfType(it) => &it.syntax,
29287            AlterTableAction::OptionItemList(it) => &it.syntax,
29288            AlterTableAction::OwnerTo(it) => &it.syntax,
29289            AlterTableAction::RenameColumn(it) => &it.syntax,
29290            AlterTableAction::RenameConstraint(it) => &it.syntax,
29291            AlterTableAction::RenameTo(it) => &it.syntax,
29292            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29293            AlterTableAction::ResetOptions(it) => &it.syntax,
29294            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29295            AlterTableAction::SetLogged(it) => &it.syntax,
29296            AlterTableAction::SetOptions(it) => &it.syntax,
29297            AlterTableAction::SetSchema(it) => &it.syntax,
29298            AlterTableAction::SetTablespace(it) => &it.syntax,
29299            AlterTableAction::SetUnlogged(it) => &it.syntax,
29300            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29301            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29302            AlterTableAction::SplitPartition(it) => &it.syntax,
29303            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29304        }
29305    }
29306}
29307impl From<AddColumn> for AlterTableAction {
29308    #[inline]
29309    fn from(node: AddColumn) -> AlterTableAction {
29310        AlterTableAction::AddColumn(node)
29311    }
29312}
29313impl From<AddConstraint> for AlterTableAction {
29314    #[inline]
29315    fn from(node: AddConstraint) -> AlterTableAction {
29316        AlterTableAction::AddConstraint(node)
29317    }
29318}
29319impl From<AlterColumn> for AlterTableAction {
29320    #[inline]
29321    fn from(node: AlterColumn) -> AlterTableAction {
29322        AlterTableAction::AlterColumn(node)
29323    }
29324}
29325impl From<AlterConstraint> for AlterTableAction {
29326    #[inline]
29327    fn from(node: AlterConstraint) -> AlterTableAction {
29328        AlterTableAction::AlterConstraint(node)
29329    }
29330}
29331impl From<AttachPartition> for AlterTableAction {
29332    #[inline]
29333    fn from(node: AttachPartition) -> AlterTableAction {
29334        AlterTableAction::AttachPartition(node)
29335    }
29336}
29337impl From<ClusterOn> for AlterTableAction {
29338    #[inline]
29339    fn from(node: ClusterOn) -> AlterTableAction {
29340        AlterTableAction::ClusterOn(node)
29341    }
29342}
29343impl From<DetachPartition> for AlterTableAction {
29344    #[inline]
29345    fn from(node: DetachPartition) -> AlterTableAction {
29346        AlterTableAction::DetachPartition(node)
29347    }
29348}
29349impl From<DisableRls> for AlterTableAction {
29350    #[inline]
29351    fn from(node: DisableRls) -> AlterTableAction {
29352        AlterTableAction::DisableRls(node)
29353    }
29354}
29355impl From<DisableRule> for AlterTableAction {
29356    #[inline]
29357    fn from(node: DisableRule) -> AlterTableAction {
29358        AlterTableAction::DisableRule(node)
29359    }
29360}
29361impl From<DisableTrigger> for AlterTableAction {
29362    #[inline]
29363    fn from(node: DisableTrigger) -> AlterTableAction {
29364        AlterTableAction::DisableTrigger(node)
29365    }
29366}
29367impl From<DropColumn> for AlterTableAction {
29368    #[inline]
29369    fn from(node: DropColumn) -> AlterTableAction {
29370        AlterTableAction::DropColumn(node)
29371    }
29372}
29373impl From<DropConstraint> for AlterTableAction {
29374    #[inline]
29375    fn from(node: DropConstraint) -> AlterTableAction {
29376        AlterTableAction::DropConstraint(node)
29377    }
29378}
29379impl From<EnableAlwaysRule> for AlterTableAction {
29380    #[inline]
29381    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29382        AlterTableAction::EnableAlwaysRule(node)
29383    }
29384}
29385impl From<EnableAlwaysTrigger> for AlterTableAction {
29386    #[inline]
29387    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29388        AlterTableAction::EnableAlwaysTrigger(node)
29389    }
29390}
29391impl From<EnableReplicaRule> for AlterTableAction {
29392    #[inline]
29393    fn from(node: EnableReplicaRule) -> AlterTableAction {
29394        AlterTableAction::EnableReplicaRule(node)
29395    }
29396}
29397impl From<EnableReplicaTrigger> for AlterTableAction {
29398    #[inline]
29399    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29400        AlterTableAction::EnableReplicaTrigger(node)
29401    }
29402}
29403impl From<EnableRls> for AlterTableAction {
29404    #[inline]
29405    fn from(node: EnableRls) -> AlterTableAction {
29406        AlterTableAction::EnableRls(node)
29407    }
29408}
29409impl From<EnableRule> for AlterTableAction {
29410    #[inline]
29411    fn from(node: EnableRule) -> AlterTableAction {
29412        AlterTableAction::EnableRule(node)
29413    }
29414}
29415impl From<EnableTrigger> for AlterTableAction {
29416    #[inline]
29417    fn from(node: EnableTrigger) -> AlterTableAction {
29418        AlterTableAction::EnableTrigger(node)
29419    }
29420}
29421impl From<ForceRls> for AlterTableAction {
29422    #[inline]
29423    fn from(node: ForceRls) -> AlterTableAction {
29424        AlterTableAction::ForceRls(node)
29425    }
29426}
29427impl From<InheritTable> for AlterTableAction {
29428    #[inline]
29429    fn from(node: InheritTable) -> AlterTableAction {
29430        AlterTableAction::InheritTable(node)
29431    }
29432}
29433impl From<MergePartitions> for AlterTableAction {
29434    #[inline]
29435    fn from(node: MergePartitions) -> AlterTableAction {
29436        AlterTableAction::MergePartitions(node)
29437    }
29438}
29439impl From<NoForceRls> for AlterTableAction {
29440    #[inline]
29441    fn from(node: NoForceRls) -> AlterTableAction {
29442        AlterTableAction::NoForceRls(node)
29443    }
29444}
29445impl From<NoInheritTable> for AlterTableAction {
29446    #[inline]
29447    fn from(node: NoInheritTable) -> AlterTableAction {
29448        AlterTableAction::NoInheritTable(node)
29449    }
29450}
29451impl From<NotOf> for AlterTableAction {
29452    #[inline]
29453    fn from(node: NotOf) -> AlterTableAction {
29454        AlterTableAction::NotOf(node)
29455    }
29456}
29457impl From<OfType> for AlterTableAction {
29458    #[inline]
29459    fn from(node: OfType) -> AlterTableAction {
29460        AlterTableAction::OfType(node)
29461    }
29462}
29463impl From<OptionItemList> for AlterTableAction {
29464    #[inline]
29465    fn from(node: OptionItemList) -> AlterTableAction {
29466        AlterTableAction::OptionItemList(node)
29467    }
29468}
29469impl From<OwnerTo> for AlterTableAction {
29470    #[inline]
29471    fn from(node: OwnerTo) -> AlterTableAction {
29472        AlterTableAction::OwnerTo(node)
29473    }
29474}
29475impl From<RenameColumn> for AlterTableAction {
29476    #[inline]
29477    fn from(node: RenameColumn) -> AlterTableAction {
29478        AlterTableAction::RenameColumn(node)
29479    }
29480}
29481impl From<RenameConstraint> for AlterTableAction {
29482    #[inline]
29483    fn from(node: RenameConstraint) -> AlterTableAction {
29484        AlterTableAction::RenameConstraint(node)
29485    }
29486}
29487impl From<RenameTo> for AlterTableAction {
29488    #[inline]
29489    fn from(node: RenameTo) -> AlterTableAction {
29490        AlterTableAction::RenameTo(node)
29491    }
29492}
29493impl From<ReplicaIdentity> for AlterTableAction {
29494    #[inline]
29495    fn from(node: ReplicaIdentity) -> AlterTableAction {
29496        AlterTableAction::ReplicaIdentity(node)
29497    }
29498}
29499impl From<ResetOptions> for AlterTableAction {
29500    #[inline]
29501    fn from(node: ResetOptions) -> AlterTableAction {
29502        AlterTableAction::ResetOptions(node)
29503    }
29504}
29505impl From<SetAccessMethod> for AlterTableAction {
29506    #[inline]
29507    fn from(node: SetAccessMethod) -> AlterTableAction {
29508        AlterTableAction::SetAccessMethod(node)
29509    }
29510}
29511impl From<SetLogged> for AlterTableAction {
29512    #[inline]
29513    fn from(node: SetLogged) -> AlterTableAction {
29514        AlterTableAction::SetLogged(node)
29515    }
29516}
29517impl From<SetOptions> for AlterTableAction {
29518    #[inline]
29519    fn from(node: SetOptions) -> AlterTableAction {
29520        AlterTableAction::SetOptions(node)
29521    }
29522}
29523impl From<SetSchema> for AlterTableAction {
29524    #[inline]
29525    fn from(node: SetSchema) -> AlterTableAction {
29526        AlterTableAction::SetSchema(node)
29527    }
29528}
29529impl From<SetTablespace> for AlterTableAction {
29530    #[inline]
29531    fn from(node: SetTablespace) -> AlterTableAction {
29532        AlterTableAction::SetTablespace(node)
29533    }
29534}
29535impl From<SetUnlogged> for AlterTableAction {
29536    #[inline]
29537    fn from(node: SetUnlogged) -> AlterTableAction {
29538        AlterTableAction::SetUnlogged(node)
29539    }
29540}
29541impl From<SetWithoutCluster> for AlterTableAction {
29542    #[inline]
29543    fn from(node: SetWithoutCluster) -> AlterTableAction {
29544        AlterTableAction::SetWithoutCluster(node)
29545    }
29546}
29547impl From<SetWithoutOids> for AlterTableAction {
29548    #[inline]
29549    fn from(node: SetWithoutOids) -> AlterTableAction {
29550        AlterTableAction::SetWithoutOids(node)
29551    }
29552}
29553impl From<SplitPartition> for AlterTableAction {
29554    #[inline]
29555    fn from(node: SplitPartition) -> AlterTableAction {
29556        AlterTableAction::SplitPartition(node)
29557    }
29558}
29559impl From<ValidateConstraint> for AlterTableAction {
29560    #[inline]
29561    fn from(node: ValidateConstraint) -> AlterTableAction {
29562        AlterTableAction::ValidateConstraint(node)
29563    }
29564}
29565impl AstNode for ColumnConstraint {
29566    #[inline]
29567    fn can_cast(kind: SyntaxKind) -> bool {
29568        matches!(
29569            kind,
29570            SyntaxKind::CHECK_CONSTRAINT
29571                | SyntaxKind::DEFAULT_CONSTRAINT
29572                | SyntaxKind::EXCLUDE_CONSTRAINT
29573                | SyntaxKind::NOT_NULL_CONSTRAINT
29574                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29575                | SyntaxKind::REFERENCES_CONSTRAINT
29576                | SyntaxKind::UNIQUE_CONSTRAINT
29577        )
29578    }
29579    #[inline]
29580    fn cast(syntax: SyntaxNode) -> Option<Self> {
29581        let res = match syntax.kind() {
29582            SyntaxKind::CHECK_CONSTRAINT => {
29583                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29584            }
29585            SyntaxKind::DEFAULT_CONSTRAINT => {
29586                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29587            }
29588            SyntaxKind::EXCLUDE_CONSTRAINT => {
29589                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29590            }
29591            SyntaxKind::NOT_NULL_CONSTRAINT => {
29592                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29593            }
29594            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29595                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29596            }
29597            SyntaxKind::REFERENCES_CONSTRAINT => {
29598                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29599            }
29600            SyntaxKind::UNIQUE_CONSTRAINT => {
29601                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29602            }
29603            _ => {
29604                return None;
29605            }
29606        };
29607        Some(res)
29608    }
29609    #[inline]
29610    fn syntax(&self) -> &SyntaxNode {
29611        match self {
29612            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29613            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29614            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29615            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29616            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29617            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29618            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29619        }
29620    }
29621}
29622impl From<CheckConstraint> for ColumnConstraint {
29623    #[inline]
29624    fn from(node: CheckConstraint) -> ColumnConstraint {
29625        ColumnConstraint::CheckConstraint(node)
29626    }
29627}
29628impl From<DefaultConstraint> for ColumnConstraint {
29629    #[inline]
29630    fn from(node: DefaultConstraint) -> ColumnConstraint {
29631        ColumnConstraint::DefaultConstraint(node)
29632    }
29633}
29634impl From<ExcludeConstraint> for ColumnConstraint {
29635    #[inline]
29636    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29637        ColumnConstraint::ExcludeConstraint(node)
29638    }
29639}
29640impl From<NotNullConstraint> for ColumnConstraint {
29641    #[inline]
29642    fn from(node: NotNullConstraint) -> ColumnConstraint {
29643        ColumnConstraint::NotNullConstraint(node)
29644    }
29645}
29646impl From<PrimaryKeyConstraint> for ColumnConstraint {
29647    #[inline]
29648    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
29649        ColumnConstraint::PrimaryKeyConstraint(node)
29650    }
29651}
29652impl From<ReferencesConstraint> for ColumnConstraint {
29653    #[inline]
29654    fn from(node: ReferencesConstraint) -> ColumnConstraint {
29655        ColumnConstraint::ReferencesConstraint(node)
29656    }
29657}
29658impl From<UniqueConstraint> for ColumnConstraint {
29659    #[inline]
29660    fn from(node: UniqueConstraint) -> ColumnConstraint {
29661        ColumnConstraint::UniqueConstraint(node)
29662    }
29663}
29664impl AstNode for ConfigValue {
29665    #[inline]
29666    fn can_cast(kind: SyntaxKind) -> bool {
29667        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
29668    }
29669    #[inline]
29670    fn cast(syntax: SyntaxNode) -> Option<Self> {
29671        let res = match syntax.kind() {
29672            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
29673            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
29674            _ => {
29675                return None;
29676            }
29677        };
29678        Some(res)
29679    }
29680    #[inline]
29681    fn syntax(&self) -> &SyntaxNode {
29682        match self {
29683            ConfigValue::Literal(it) => &it.syntax,
29684            ConfigValue::NameRef(it) => &it.syntax,
29685        }
29686    }
29687}
29688impl From<Literal> for ConfigValue {
29689    #[inline]
29690    fn from(node: Literal) -> ConfigValue {
29691        ConfigValue::Literal(node)
29692    }
29693}
29694impl From<NameRef> for ConfigValue {
29695    #[inline]
29696    fn from(node: NameRef) -> ConfigValue {
29697        ConfigValue::NameRef(node)
29698    }
29699}
29700impl AstNode for ConflictAction {
29701    #[inline]
29702    fn can_cast(kind: SyntaxKind) -> bool {
29703        matches!(
29704            kind,
29705            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
29706        )
29707    }
29708    #[inline]
29709    fn cast(syntax: SyntaxNode) -> Option<Self> {
29710        let res = match syntax.kind() {
29711            SyntaxKind::CONFLICT_DO_NOTHING => {
29712                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
29713            }
29714            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
29715                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
29716            }
29717            _ => {
29718                return None;
29719            }
29720        };
29721        Some(res)
29722    }
29723    #[inline]
29724    fn syntax(&self) -> &SyntaxNode {
29725        match self {
29726            ConflictAction::ConflictDoNothing(it) => &it.syntax,
29727            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
29728        }
29729    }
29730}
29731impl From<ConflictDoNothing> for ConflictAction {
29732    #[inline]
29733    fn from(node: ConflictDoNothing) -> ConflictAction {
29734        ConflictAction::ConflictDoNothing(node)
29735    }
29736}
29737impl From<ConflictDoUpdateSet> for ConflictAction {
29738    #[inline]
29739    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
29740        ConflictAction::ConflictDoUpdateSet(node)
29741    }
29742}
29743impl AstNode for ConflictTarget {
29744    #[inline]
29745    fn can_cast(kind: SyntaxKind) -> bool {
29746        matches!(
29747            kind,
29748            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
29749        )
29750    }
29751    #[inline]
29752    fn cast(syntax: SyntaxNode) -> Option<Self> {
29753        let res = match syntax.kind() {
29754            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
29755                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
29756            }
29757            SyntaxKind::CONFLICT_ON_INDEX => {
29758                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
29759            }
29760            _ => {
29761                return None;
29762            }
29763        };
29764        Some(res)
29765    }
29766    #[inline]
29767    fn syntax(&self) -> &SyntaxNode {
29768        match self {
29769            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
29770            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
29771        }
29772    }
29773}
29774impl From<ConflictOnConstraint> for ConflictTarget {
29775    #[inline]
29776    fn from(node: ConflictOnConstraint) -> ConflictTarget {
29777        ConflictTarget::ConflictOnConstraint(node)
29778    }
29779}
29780impl From<ConflictOnIndex> for ConflictTarget {
29781    #[inline]
29782    fn from(node: ConflictOnIndex) -> ConflictTarget {
29783        ConflictTarget::ConflictOnIndex(node)
29784    }
29785}
29786impl AstNode for Constraint {
29787    #[inline]
29788    fn can_cast(kind: SyntaxKind) -> bool {
29789        matches!(
29790            kind,
29791            SyntaxKind::CHECK_CONSTRAINT
29792                | SyntaxKind::DEFAULT_CONSTRAINT
29793                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
29794                | SyntaxKind::GENERATED_CONSTRAINT
29795                | SyntaxKind::NOT_NULL_CONSTRAINT
29796                | SyntaxKind::NULL_CONSTRAINT
29797                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29798                | SyntaxKind::REFERENCES_CONSTRAINT
29799                | SyntaxKind::UNIQUE_CONSTRAINT
29800        )
29801    }
29802    #[inline]
29803    fn cast(syntax: SyntaxNode) -> Option<Self> {
29804        let res = match syntax.kind() {
29805            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
29806            SyntaxKind::DEFAULT_CONSTRAINT => {
29807                Constraint::DefaultConstraint(DefaultConstraint { syntax })
29808            }
29809            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
29810                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
29811            }
29812            SyntaxKind::GENERATED_CONSTRAINT => {
29813                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
29814            }
29815            SyntaxKind::NOT_NULL_CONSTRAINT => {
29816                Constraint::NotNullConstraint(NotNullConstraint { syntax })
29817            }
29818            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
29819            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29820                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29821            }
29822            SyntaxKind::REFERENCES_CONSTRAINT => {
29823                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
29824            }
29825            SyntaxKind::UNIQUE_CONSTRAINT => {
29826                Constraint::UniqueConstraint(UniqueConstraint { syntax })
29827            }
29828            _ => {
29829                return None;
29830            }
29831        };
29832        Some(res)
29833    }
29834    #[inline]
29835    fn syntax(&self) -> &SyntaxNode {
29836        match self {
29837            Constraint::CheckConstraint(it) => &it.syntax,
29838            Constraint::DefaultConstraint(it) => &it.syntax,
29839            Constraint::ForeignKeyConstraint(it) => &it.syntax,
29840            Constraint::GeneratedConstraint(it) => &it.syntax,
29841            Constraint::NotNullConstraint(it) => &it.syntax,
29842            Constraint::NullConstraint(it) => &it.syntax,
29843            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
29844            Constraint::ReferencesConstraint(it) => &it.syntax,
29845            Constraint::UniqueConstraint(it) => &it.syntax,
29846        }
29847    }
29848}
29849impl From<CheckConstraint> for Constraint {
29850    #[inline]
29851    fn from(node: CheckConstraint) -> Constraint {
29852        Constraint::CheckConstraint(node)
29853    }
29854}
29855impl From<DefaultConstraint> for Constraint {
29856    #[inline]
29857    fn from(node: DefaultConstraint) -> Constraint {
29858        Constraint::DefaultConstraint(node)
29859    }
29860}
29861impl From<ForeignKeyConstraint> for Constraint {
29862    #[inline]
29863    fn from(node: ForeignKeyConstraint) -> Constraint {
29864        Constraint::ForeignKeyConstraint(node)
29865    }
29866}
29867impl From<GeneratedConstraint> for Constraint {
29868    #[inline]
29869    fn from(node: GeneratedConstraint) -> Constraint {
29870        Constraint::GeneratedConstraint(node)
29871    }
29872}
29873impl From<NotNullConstraint> for Constraint {
29874    #[inline]
29875    fn from(node: NotNullConstraint) -> Constraint {
29876        Constraint::NotNullConstraint(node)
29877    }
29878}
29879impl From<NullConstraint> for Constraint {
29880    #[inline]
29881    fn from(node: NullConstraint) -> Constraint {
29882        Constraint::NullConstraint(node)
29883    }
29884}
29885impl From<PrimaryKeyConstraint> for Constraint {
29886    #[inline]
29887    fn from(node: PrimaryKeyConstraint) -> Constraint {
29888        Constraint::PrimaryKeyConstraint(node)
29889    }
29890}
29891impl From<ReferencesConstraint> for Constraint {
29892    #[inline]
29893    fn from(node: ReferencesConstraint) -> Constraint {
29894        Constraint::ReferencesConstraint(node)
29895    }
29896}
29897impl From<UniqueConstraint> for Constraint {
29898    #[inline]
29899    fn from(node: UniqueConstraint) -> Constraint {
29900        Constraint::UniqueConstraint(node)
29901    }
29902}
29903impl AstNode for ExplainStmt {
29904    #[inline]
29905    fn can_cast(kind: SyntaxKind) -> bool {
29906        matches!(
29907            kind,
29908            SyntaxKind::COMPOUND_SELECT
29909                | SyntaxKind::CREATE_MATERIALIZED_VIEW
29910                | SyntaxKind::CREATE_TABLE_AS
29911                | SyntaxKind::DECLARE
29912                | SyntaxKind::DELETE
29913                | SyntaxKind::EXECUTE
29914                | SyntaxKind::INSERT
29915                | SyntaxKind::MERGE
29916                | SyntaxKind::PAREN_SELECT
29917                | SyntaxKind::SELECT
29918                | SyntaxKind::SELECT_INTO
29919                | SyntaxKind::TABLE
29920                | SyntaxKind::UPDATE
29921                | SyntaxKind::VALUES
29922        )
29923    }
29924    #[inline]
29925    fn cast(syntax: SyntaxNode) -> Option<Self> {
29926        let res = match syntax.kind() {
29927            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
29928            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
29929                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
29930            }
29931            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
29932            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
29933            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
29934            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
29935            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
29936            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
29937            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
29938            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
29939            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
29940            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
29941            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
29942            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
29943            _ => {
29944                return None;
29945            }
29946        };
29947        Some(res)
29948    }
29949    #[inline]
29950    fn syntax(&self) -> &SyntaxNode {
29951        match self {
29952            ExplainStmt::CompoundSelect(it) => &it.syntax,
29953            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
29954            ExplainStmt::CreateTableAs(it) => &it.syntax,
29955            ExplainStmt::Declare(it) => &it.syntax,
29956            ExplainStmt::Delete(it) => &it.syntax,
29957            ExplainStmt::Execute(it) => &it.syntax,
29958            ExplainStmt::Insert(it) => &it.syntax,
29959            ExplainStmt::Merge(it) => &it.syntax,
29960            ExplainStmt::ParenSelect(it) => &it.syntax,
29961            ExplainStmt::Select(it) => &it.syntax,
29962            ExplainStmt::SelectInto(it) => &it.syntax,
29963            ExplainStmt::Table(it) => &it.syntax,
29964            ExplainStmt::Update(it) => &it.syntax,
29965            ExplainStmt::Values(it) => &it.syntax,
29966        }
29967    }
29968}
29969impl From<CompoundSelect> for ExplainStmt {
29970    #[inline]
29971    fn from(node: CompoundSelect) -> ExplainStmt {
29972        ExplainStmt::CompoundSelect(node)
29973    }
29974}
29975impl From<CreateMaterializedView> for ExplainStmt {
29976    #[inline]
29977    fn from(node: CreateMaterializedView) -> ExplainStmt {
29978        ExplainStmt::CreateMaterializedView(node)
29979    }
29980}
29981impl From<CreateTableAs> for ExplainStmt {
29982    #[inline]
29983    fn from(node: CreateTableAs) -> ExplainStmt {
29984        ExplainStmt::CreateTableAs(node)
29985    }
29986}
29987impl From<Declare> for ExplainStmt {
29988    #[inline]
29989    fn from(node: Declare) -> ExplainStmt {
29990        ExplainStmt::Declare(node)
29991    }
29992}
29993impl From<Delete> for ExplainStmt {
29994    #[inline]
29995    fn from(node: Delete) -> ExplainStmt {
29996        ExplainStmt::Delete(node)
29997    }
29998}
29999impl From<Execute> for ExplainStmt {
30000    #[inline]
30001    fn from(node: Execute) -> ExplainStmt {
30002        ExplainStmt::Execute(node)
30003    }
30004}
30005impl From<Insert> for ExplainStmt {
30006    #[inline]
30007    fn from(node: Insert) -> ExplainStmt {
30008        ExplainStmt::Insert(node)
30009    }
30010}
30011impl From<Merge> for ExplainStmt {
30012    #[inline]
30013    fn from(node: Merge) -> ExplainStmt {
30014        ExplainStmt::Merge(node)
30015    }
30016}
30017impl From<ParenSelect> for ExplainStmt {
30018    #[inline]
30019    fn from(node: ParenSelect) -> ExplainStmt {
30020        ExplainStmt::ParenSelect(node)
30021    }
30022}
30023impl From<Select> for ExplainStmt {
30024    #[inline]
30025    fn from(node: Select) -> ExplainStmt {
30026        ExplainStmt::Select(node)
30027    }
30028}
30029impl From<SelectInto> for ExplainStmt {
30030    #[inline]
30031    fn from(node: SelectInto) -> ExplainStmt {
30032        ExplainStmt::SelectInto(node)
30033    }
30034}
30035impl From<Table> for ExplainStmt {
30036    #[inline]
30037    fn from(node: Table) -> ExplainStmt {
30038        ExplainStmt::Table(node)
30039    }
30040}
30041impl From<Update> for ExplainStmt {
30042    #[inline]
30043    fn from(node: Update) -> ExplainStmt {
30044        ExplainStmt::Update(node)
30045    }
30046}
30047impl From<Values> for ExplainStmt {
30048    #[inline]
30049    fn from(node: Values) -> ExplainStmt {
30050        ExplainStmt::Values(node)
30051    }
30052}
30053impl AstNode for Expr {
30054    #[inline]
30055    fn can_cast(kind: SyntaxKind) -> bool {
30056        matches!(
30057            kind,
30058            SyntaxKind::ARRAY_EXPR
30059                | SyntaxKind::BETWEEN_EXPR
30060                | SyntaxKind::BIN_EXPR
30061                | SyntaxKind::CALL_EXPR
30062                | SyntaxKind::CASE_EXPR
30063                | SyntaxKind::CAST_EXPR
30064                | SyntaxKind::FIELD_EXPR
30065                | SyntaxKind::INDEX_EXPR
30066                | SyntaxKind::LITERAL
30067                | SyntaxKind::NAME_REF
30068                | SyntaxKind::PAREN_EXPR
30069                | SyntaxKind::POSTFIX_EXPR
30070                | SyntaxKind::PREFIX_EXPR
30071                | SyntaxKind::SLICE_EXPR
30072                | SyntaxKind::TUPLE_EXPR
30073        )
30074    }
30075    #[inline]
30076    fn cast(syntax: SyntaxNode) -> Option<Self> {
30077        let res = match syntax.kind() {
30078            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
30079            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
30080            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
30081            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
30082            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
30083            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
30084            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
30085            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
30086            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
30087            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
30088            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
30089            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
30090            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
30091            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
30092            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
30093            _ => {
30094                return None;
30095            }
30096        };
30097        Some(res)
30098    }
30099    #[inline]
30100    fn syntax(&self) -> &SyntaxNode {
30101        match self {
30102            Expr::ArrayExpr(it) => &it.syntax,
30103            Expr::BetweenExpr(it) => &it.syntax,
30104            Expr::BinExpr(it) => &it.syntax,
30105            Expr::CallExpr(it) => &it.syntax,
30106            Expr::CaseExpr(it) => &it.syntax,
30107            Expr::CastExpr(it) => &it.syntax,
30108            Expr::FieldExpr(it) => &it.syntax,
30109            Expr::IndexExpr(it) => &it.syntax,
30110            Expr::Literal(it) => &it.syntax,
30111            Expr::NameRef(it) => &it.syntax,
30112            Expr::ParenExpr(it) => &it.syntax,
30113            Expr::PostfixExpr(it) => &it.syntax,
30114            Expr::PrefixExpr(it) => &it.syntax,
30115            Expr::SliceExpr(it) => &it.syntax,
30116            Expr::TupleExpr(it) => &it.syntax,
30117        }
30118    }
30119}
30120impl From<ArrayExpr> for Expr {
30121    #[inline]
30122    fn from(node: ArrayExpr) -> Expr {
30123        Expr::ArrayExpr(node)
30124    }
30125}
30126impl From<BetweenExpr> for Expr {
30127    #[inline]
30128    fn from(node: BetweenExpr) -> Expr {
30129        Expr::BetweenExpr(node)
30130    }
30131}
30132impl From<BinExpr> for Expr {
30133    #[inline]
30134    fn from(node: BinExpr) -> Expr {
30135        Expr::BinExpr(node)
30136    }
30137}
30138impl From<CallExpr> for Expr {
30139    #[inline]
30140    fn from(node: CallExpr) -> Expr {
30141        Expr::CallExpr(node)
30142    }
30143}
30144impl From<CaseExpr> for Expr {
30145    #[inline]
30146    fn from(node: CaseExpr) -> Expr {
30147        Expr::CaseExpr(node)
30148    }
30149}
30150impl From<CastExpr> for Expr {
30151    #[inline]
30152    fn from(node: CastExpr) -> Expr {
30153        Expr::CastExpr(node)
30154    }
30155}
30156impl From<FieldExpr> for Expr {
30157    #[inline]
30158    fn from(node: FieldExpr) -> Expr {
30159        Expr::FieldExpr(node)
30160    }
30161}
30162impl From<IndexExpr> for Expr {
30163    #[inline]
30164    fn from(node: IndexExpr) -> Expr {
30165        Expr::IndexExpr(node)
30166    }
30167}
30168impl From<Literal> for Expr {
30169    #[inline]
30170    fn from(node: Literal) -> Expr {
30171        Expr::Literal(node)
30172    }
30173}
30174impl From<NameRef> for Expr {
30175    #[inline]
30176    fn from(node: NameRef) -> Expr {
30177        Expr::NameRef(node)
30178    }
30179}
30180impl From<ParenExpr> for Expr {
30181    #[inline]
30182    fn from(node: ParenExpr) -> Expr {
30183        Expr::ParenExpr(node)
30184    }
30185}
30186impl From<PostfixExpr> for Expr {
30187    #[inline]
30188    fn from(node: PostfixExpr) -> Expr {
30189        Expr::PostfixExpr(node)
30190    }
30191}
30192impl From<PrefixExpr> for Expr {
30193    #[inline]
30194    fn from(node: PrefixExpr) -> Expr {
30195        Expr::PrefixExpr(node)
30196    }
30197}
30198impl From<SliceExpr> for Expr {
30199    #[inline]
30200    fn from(node: SliceExpr) -> Expr {
30201        Expr::SliceExpr(node)
30202    }
30203}
30204impl From<TupleExpr> for Expr {
30205    #[inline]
30206    fn from(node: TupleExpr) -> Expr {
30207        Expr::TupleExpr(node)
30208    }
30209}
30210impl AstNode for FuncOption {
30211    #[inline]
30212    fn can_cast(kind: SyntaxKind) -> bool {
30213        matches!(
30214            kind,
30215            SyntaxKind::AS_FUNC_OPTION
30216                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
30217                | SyntaxKind::COST_FUNC_OPTION
30218                | SyntaxKind::LANGUAGE_FUNC_OPTION
30219                | SyntaxKind::LEAKPROOF_FUNC_OPTION
30220                | SyntaxKind::PARALLEL_FUNC_OPTION
30221                | SyntaxKind::RESET_FUNC_OPTION
30222                | SyntaxKind::RETURN_FUNC_OPTION
30223                | SyntaxKind::ROWS_FUNC_OPTION
30224                | SyntaxKind::SECURITY_FUNC_OPTION
30225                | SyntaxKind::SET_FUNC_OPTION
30226                | SyntaxKind::STRICT_FUNC_OPTION
30227                | SyntaxKind::SUPPORT_FUNC_OPTION
30228                | SyntaxKind::TRANSFORM_FUNC_OPTION
30229                | SyntaxKind::VOLATILITY_FUNC_OPTION
30230                | SyntaxKind::WINDOW_FUNC_OPTION
30231        )
30232    }
30233    #[inline]
30234    fn cast(syntax: SyntaxNode) -> Option<Self> {
30235        let res = match syntax.kind() {
30236            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
30237            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
30238                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
30239            }
30240            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
30241            SyntaxKind::LANGUAGE_FUNC_OPTION => {
30242                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
30243            }
30244            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
30245                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
30246            }
30247            SyntaxKind::PARALLEL_FUNC_OPTION => {
30248                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
30249            }
30250            SyntaxKind::RESET_FUNC_OPTION => {
30251                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
30252            }
30253            SyntaxKind::RETURN_FUNC_OPTION => {
30254                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
30255            }
30256            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
30257            SyntaxKind::SECURITY_FUNC_OPTION => {
30258                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
30259            }
30260            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
30261            SyntaxKind::STRICT_FUNC_OPTION => {
30262                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
30263            }
30264            SyntaxKind::SUPPORT_FUNC_OPTION => {
30265                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
30266            }
30267            SyntaxKind::TRANSFORM_FUNC_OPTION => {
30268                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
30269            }
30270            SyntaxKind::VOLATILITY_FUNC_OPTION => {
30271                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
30272            }
30273            SyntaxKind::WINDOW_FUNC_OPTION => {
30274                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30275            }
30276            _ => {
30277                return None;
30278            }
30279        };
30280        Some(res)
30281    }
30282    #[inline]
30283    fn syntax(&self) -> &SyntaxNode {
30284        match self {
30285            FuncOption::AsFuncOption(it) => &it.syntax,
30286            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30287            FuncOption::CostFuncOption(it) => &it.syntax,
30288            FuncOption::LanguageFuncOption(it) => &it.syntax,
30289            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30290            FuncOption::ParallelFuncOption(it) => &it.syntax,
30291            FuncOption::ResetFuncOption(it) => &it.syntax,
30292            FuncOption::ReturnFuncOption(it) => &it.syntax,
30293            FuncOption::RowsFuncOption(it) => &it.syntax,
30294            FuncOption::SecurityFuncOption(it) => &it.syntax,
30295            FuncOption::SetFuncOption(it) => &it.syntax,
30296            FuncOption::StrictFuncOption(it) => &it.syntax,
30297            FuncOption::SupportFuncOption(it) => &it.syntax,
30298            FuncOption::TransformFuncOption(it) => &it.syntax,
30299            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30300            FuncOption::WindowFuncOption(it) => &it.syntax,
30301        }
30302    }
30303}
30304impl From<AsFuncOption> for FuncOption {
30305    #[inline]
30306    fn from(node: AsFuncOption) -> FuncOption {
30307        FuncOption::AsFuncOption(node)
30308    }
30309}
30310impl From<BeginFuncOptionList> for FuncOption {
30311    #[inline]
30312    fn from(node: BeginFuncOptionList) -> FuncOption {
30313        FuncOption::BeginFuncOptionList(node)
30314    }
30315}
30316impl From<CostFuncOption> for FuncOption {
30317    #[inline]
30318    fn from(node: CostFuncOption) -> FuncOption {
30319        FuncOption::CostFuncOption(node)
30320    }
30321}
30322impl From<LanguageFuncOption> for FuncOption {
30323    #[inline]
30324    fn from(node: LanguageFuncOption) -> FuncOption {
30325        FuncOption::LanguageFuncOption(node)
30326    }
30327}
30328impl From<LeakproofFuncOption> for FuncOption {
30329    #[inline]
30330    fn from(node: LeakproofFuncOption) -> FuncOption {
30331        FuncOption::LeakproofFuncOption(node)
30332    }
30333}
30334impl From<ParallelFuncOption> for FuncOption {
30335    #[inline]
30336    fn from(node: ParallelFuncOption) -> FuncOption {
30337        FuncOption::ParallelFuncOption(node)
30338    }
30339}
30340impl From<ResetFuncOption> for FuncOption {
30341    #[inline]
30342    fn from(node: ResetFuncOption) -> FuncOption {
30343        FuncOption::ResetFuncOption(node)
30344    }
30345}
30346impl From<ReturnFuncOption> for FuncOption {
30347    #[inline]
30348    fn from(node: ReturnFuncOption) -> FuncOption {
30349        FuncOption::ReturnFuncOption(node)
30350    }
30351}
30352impl From<RowsFuncOption> for FuncOption {
30353    #[inline]
30354    fn from(node: RowsFuncOption) -> FuncOption {
30355        FuncOption::RowsFuncOption(node)
30356    }
30357}
30358impl From<SecurityFuncOption> for FuncOption {
30359    #[inline]
30360    fn from(node: SecurityFuncOption) -> FuncOption {
30361        FuncOption::SecurityFuncOption(node)
30362    }
30363}
30364impl From<SetFuncOption> for FuncOption {
30365    #[inline]
30366    fn from(node: SetFuncOption) -> FuncOption {
30367        FuncOption::SetFuncOption(node)
30368    }
30369}
30370impl From<StrictFuncOption> for FuncOption {
30371    #[inline]
30372    fn from(node: StrictFuncOption) -> FuncOption {
30373        FuncOption::StrictFuncOption(node)
30374    }
30375}
30376impl From<SupportFuncOption> for FuncOption {
30377    #[inline]
30378    fn from(node: SupportFuncOption) -> FuncOption {
30379        FuncOption::SupportFuncOption(node)
30380    }
30381}
30382impl From<TransformFuncOption> for FuncOption {
30383    #[inline]
30384    fn from(node: TransformFuncOption) -> FuncOption {
30385        FuncOption::TransformFuncOption(node)
30386    }
30387}
30388impl From<VolatilityFuncOption> for FuncOption {
30389    #[inline]
30390    fn from(node: VolatilityFuncOption) -> FuncOption {
30391        FuncOption::VolatilityFuncOption(node)
30392    }
30393}
30394impl From<WindowFuncOption> for FuncOption {
30395    #[inline]
30396    fn from(node: WindowFuncOption) -> FuncOption {
30397        FuncOption::WindowFuncOption(node)
30398    }
30399}
30400impl AstNode for GroupBy {
30401    #[inline]
30402    fn can_cast(kind: SyntaxKind) -> bool {
30403        matches!(
30404            kind,
30405            SyntaxKind::GROUPING_CUBE
30406                | SyntaxKind::GROUPING_EXPR
30407                | SyntaxKind::GROUPING_ROLLUP
30408                | SyntaxKind::GROUPING_SETS
30409        )
30410    }
30411    #[inline]
30412    fn cast(syntax: SyntaxNode) -> Option<Self> {
30413        let res = match syntax.kind() {
30414            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30415            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30416            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30417            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30418            _ => {
30419                return None;
30420            }
30421        };
30422        Some(res)
30423    }
30424    #[inline]
30425    fn syntax(&self) -> &SyntaxNode {
30426        match self {
30427            GroupBy::GroupingCube(it) => &it.syntax,
30428            GroupBy::GroupingExpr(it) => &it.syntax,
30429            GroupBy::GroupingRollup(it) => &it.syntax,
30430            GroupBy::GroupingSets(it) => &it.syntax,
30431        }
30432    }
30433}
30434impl From<GroupingCube> for GroupBy {
30435    #[inline]
30436    fn from(node: GroupingCube) -> GroupBy {
30437        GroupBy::GroupingCube(node)
30438    }
30439}
30440impl From<GroupingExpr> for GroupBy {
30441    #[inline]
30442    fn from(node: GroupingExpr) -> GroupBy {
30443        GroupBy::GroupingExpr(node)
30444    }
30445}
30446impl From<GroupingRollup> for GroupBy {
30447    #[inline]
30448    fn from(node: GroupingRollup) -> GroupBy {
30449        GroupBy::GroupingRollup(node)
30450    }
30451}
30452impl From<GroupingSets> for GroupBy {
30453    #[inline]
30454    fn from(node: GroupingSets) -> GroupBy {
30455        GroupBy::GroupingSets(node)
30456    }
30457}
30458impl AstNode for JoinType {
30459    #[inline]
30460    fn can_cast(kind: SyntaxKind) -> bool {
30461        matches!(
30462            kind,
30463            SyntaxKind::JOIN_CROSS
30464                | SyntaxKind::JOIN_FULL
30465                | SyntaxKind::JOIN_INNER
30466                | SyntaxKind::JOIN_LEFT
30467                | SyntaxKind::JOIN_RIGHT
30468        )
30469    }
30470    #[inline]
30471    fn cast(syntax: SyntaxNode) -> Option<Self> {
30472        let res = match syntax.kind() {
30473            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30474            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30475            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30476            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30477            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30478            _ => {
30479                return None;
30480            }
30481        };
30482        Some(res)
30483    }
30484    #[inline]
30485    fn syntax(&self) -> &SyntaxNode {
30486        match self {
30487            JoinType::JoinCross(it) => &it.syntax,
30488            JoinType::JoinFull(it) => &it.syntax,
30489            JoinType::JoinInner(it) => &it.syntax,
30490            JoinType::JoinLeft(it) => &it.syntax,
30491            JoinType::JoinRight(it) => &it.syntax,
30492        }
30493    }
30494}
30495impl From<JoinCross> for JoinType {
30496    #[inline]
30497    fn from(node: JoinCross) -> JoinType {
30498        JoinType::JoinCross(node)
30499    }
30500}
30501impl From<JoinFull> for JoinType {
30502    #[inline]
30503    fn from(node: JoinFull) -> JoinType {
30504        JoinType::JoinFull(node)
30505    }
30506}
30507impl From<JoinInner> for JoinType {
30508    #[inline]
30509    fn from(node: JoinInner) -> JoinType {
30510        JoinType::JoinInner(node)
30511    }
30512}
30513impl From<JoinLeft> for JoinType {
30514    #[inline]
30515    fn from(node: JoinLeft) -> JoinType {
30516        JoinType::JoinLeft(node)
30517    }
30518}
30519impl From<JoinRight> for JoinType {
30520    #[inline]
30521    fn from(node: JoinRight) -> JoinType {
30522        JoinType::JoinRight(node)
30523    }
30524}
30525impl AstNode for JsonBehavior {
30526    #[inline]
30527    fn can_cast(kind: SyntaxKind) -> bool {
30528        matches!(
30529            kind,
30530            SyntaxKind::JSON_BEHAVIOR_DEFAULT
30531                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
30532                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
30533                | SyntaxKind::JSON_BEHAVIOR_ERROR
30534                | SyntaxKind::JSON_BEHAVIOR_FALSE
30535                | SyntaxKind::JSON_BEHAVIOR_NULL
30536                | SyntaxKind::JSON_BEHAVIOR_TRUE
30537                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
30538        )
30539    }
30540    #[inline]
30541    fn cast(syntax: SyntaxNode) -> Option<Self> {
30542        let res = match syntax.kind() {
30543            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
30544                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
30545            }
30546            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
30547                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
30548            }
30549            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
30550                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
30551            }
30552            SyntaxKind::JSON_BEHAVIOR_ERROR => {
30553                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
30554            }
30555            SyntaxKind::JSON_BEHAVIOR_FALSE => {
30556                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
30557            }
30558            SyntaxKind::JSON_BEHAVIOR_NULL => {
30559                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
30560            }
30561            SyntaxKind::JSON_BEHAVIOR_TRUE => {
30562                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
30563            }
30564            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
30565                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
30566            }
30567            _ => {
30568                return None;
30569            }
30570        };
30571        Some(res)
30572    }
30573    #[inline]
30574    fn syntax(&self) -> &SyntaxNode {
30575        match self {
30576            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
30577            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
30578            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
30579            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
30580            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
30581            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
30582            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
30583            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
30584        }
30585    }
30586}
30587impl From<JsonBehaviorDefault> for JsonBehavior {
30588    #[inline]
30589    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
30590        JsonBehavior::JsonBehaviorDefault(node)
30591    }
30592}
30593impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30594    #[inline]
30595    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30596        JsonBehavior::JsonBehaviorEmptyArray(node)
30597    }
30598}
30599impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30600    #[inline]
30601    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30602        JsonBehavior::JsonBehaviorEmptyObject(node)
30603    }
30604}
30605impl From<JsonBehaviorError> for JsonBehavior {
30606    #[inline]
30607    fn from(node: JsonBehaviorError) -> JsonBehavior {
30608        JsonBehavior::JsonBehaviorError(node)
30609    }
30610}
30611impl From<JsonBehaviorFalse> for JsonBehavior {
30612    #[inline]
30613    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30614        JsonBehavior::JsonBehaviorFalse(node)
30615    }
30616}
30617impl From<JsonBehaviorNull> for JsonBehavior {
30618    #[inline]
30619    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30620        JsonBehavior::JsonBehaviorNull(node)
30621    }
30622}
30623impl From<JsonBehaviorTrue> for JsonBehavior {
30624    #[inline]
30625    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30626        JsonBehavior::JsonBehaviorTrue(node)
30627    }
30628}
30629impl From<JsonBehaviorUnknown> for JsonBehavior {
30630    #[inline]
30631    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30632        JsonBehavior::JsonBehaviorUnknown(node)
30633    }
30634}
30635impl AstNode for MatchType {
30636    #[inline]
30637    fn can_cast(kind: SyntaxKind) -> bool {
30638        matches!(
30639            kind,
30640            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
30641        )
30642    }
30643    #[inline]
30644    fn cast(syntax: SyntaxNode) -> Option<Self> {
30645        let res = match syntax.kind() {
30646            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
30647            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
30648            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
30649            _ => {
30650                return None;
30651            }
30652        };
30653        Some(res)
30654    }
30655    #[inline]
30656    fn syntax(&self) -> &SyntaxNode {
30657        match self {
30658            MatchType::MatchFull(it) => &it.syntax,
30659            MatchType::MatchPartial(it) => &it.syntax,
30660            MatchType::MatchSimple(it) => &it.syntax,
30661        }
30662    }
30663}
30664impl From<MatchFull> for MatchType {
30665    #[inline]
30666    fn from(node: MatchFull) -> MatchType {
30667        MatchType::MatchFull(node)
30668    }
30669}
30670impl From<MatchPartial> for MatchType {
30671    #[inline]
30672    fn from(node: MatchPartial) -> MatchType {
30673        MatchType::MatchPartial(node)
30674    }
30675}
30676impl From<MatchSimple> for MatchType {
30677    #[inline]
30678    fn from(node: MatchSimple) -> MatchType {
30679        MatchType::MatchSimple(node)
30680    }
30681}
30682impl AstNode for MergeAction {
30683    #[inline]
30684    fn can_cast(kind: SyntaxKind) -> bool {
30685        matches!(
30686            kind,
30687            SyntaxKind::MERGE_DELETE
30688                | SyntaxKind::MERGE_DO_NOTHING
30689                | SyntaxKind::MERGE_INSERT
30690                | SyntaxKind::MERGE_UPDATE
30691        )
30692    }
30693    #[inline]
30694    fn cast(syntax: SyntaxNode) -> Option<Self> {
30695        let res = match syntax.kind() {
30696            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
30697            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
30698            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
30699            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
30700            _ => {
30701                return None;
30702            }
30703        };
30704        Some(res)
30705    }
30706    #[inline]
30707    fn syntax(&self) -> &SyntaxNode {
30708        match self {
30709            MergeAction::MergeDelete(it) => &it.syntax,
30710            MergeAction::MergeDoNothing(it) => &it.syntax,
30711            MergeAction::MergeInsert(it) => &it.syntax,
30712            MergeAction::MergeUpdate(it) => &it.syntax,
30713        }
30714    }
30715}
30716impl From<MergeDelete> for MergeAction {
30717    #[inline]
30718    fn from(node: MergeDelete) -> MergeAction {
30719        MergeAction::MergeDelete(node)
30720    }
30721}
30722impl From<MergeDoNothing> for MergeAction {
30723    #[inline]
30724    fn from(node: MergeDoNothing) -> MergeAction {
30725        MergeAction::MergeDoNothing(node)
30726    }
30727}
30728impl From<MergeInsert> for MergeAction {
30729    #[inline]
30730    fn from(node: MergeInsert) -> MergeAction {
30731        MergeAction::MergeInsert(node)
30732    }
30733}
30734impl From<MergeUpdate> for MergeAction {
30735    #[inline]
30736    fn from(node: MergeUpdate) -> MergeAction {
30737        MergeAction::MergeUpdate(node)
30738    }
30739}
30740impl AstNode for MergeWhenClause {
30741    #[inline]
30742    fn can_cast(kind: SyntaxKind) -> bool {
30743        matches!(
30744            kind,
30745            SyntaxKind::MERGE_WHEN_MATCHED
30746                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
30747                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
30748        )
30749    }
30750    #[inline]
30751    fn cast(syntax: SyntaxNode) -> Option<Self> {
30752        let res = match syntax.kind() {
30753            SyntaxKind::MERGE_WHEN_MATCHED => {
30754                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
30755            }
30756            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
30757                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
30758            }
30759            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
30760                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
30761            }
30762            _ => {
30763                return None;
30764            }
30765        };
30766        Some(res)
30767    }
30768    #[inline]
30769    fn syntax(&self) -> &SyntaxNode {
30770        match self {
30771            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
30772            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
30773            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
30774        }
30775    }
30776}
30777impl From<MergeWhenMatched> for MergeWhenClause {
30778    #[inline]
30779    fn from(node: MergeWhenMatched) -> MergeWhenClause {
30780        MergeWhenClause::MergeWhenMatched(node)
30781    }
30782}
30783impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
30784    #[inline]
30785    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
30786        MergeWhenClause::MergeWhenNotMatchedSource(node)
30787    }
30788}
30789impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
30790    #[inline]
30791    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
30792        MergeWhenClause::MergeWhenNotMatchedTarget(node)
30793    }
30794}
30795impl AstNode for OnCommitAction {
30796    #[inline]
30797    fn can_cast(kind: SyntaxKind) -> bool {
30798        matches!(
30799            kind,
30800            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
30801        )
30802    }
30803    #[inline]
30804    fn cast(syntax: SyntaxNode) -> Option<Self> {
30805        let res = match syntax.kind() {
30806            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
30807            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
30808            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
30809            _ => {
30810                return None;
30811            }
30812        };
30813        Some(res)
30814    }
30815    #[inline]
30816    fn syntax(&self) -> &SyntaxNode {
30817        match self {
30818            OnCommitAction::DeleteRows(it) => &it.syntax,
30819            OnCommitAction::Drop(it) => &it.syntax,
30820            OnCommitAction::PreserveRows(it) => &it.syntax,
30821        }
30822    }
30823}
30824impl From<DeleteRows> for OnCommitAction {
30825    #[inline]
30826    fn from(node: DeleteRows) -> OnCommitAction {
30827        OnCommitAction::DeleteRows(node)
30828    }
30829}
30830impl From<Drop> for OnCommitAction {
30831    #[inline]
30832    fn from(node: Drop) -> OnCommitAction {
30833        OnCommitAction::Drop(node)
30834    }
30835}
30836impl From<PreserveRows> for OnCommitAction {
30837    #[inline]
30838    fn from(node: PreserveRows) -> OnCommitAction {
30839        OnCommitAction::PreserveRows(node)
30840    }
30841}
30842impl AstNode for ParamMode {
30843    #[inline]
30844    fn can_cast(kind: SyntaxKind) -> bool {
30845        matches!(
30846            kind,
30847            SyntaxKind::PARAM_IN
30848                | SyntaxKind::PARAM_IN_OUT
30849                | SyntaxKind::PARAM_OUT
30850                | SyntaxKind::PARAM_VARIADIC
30851        )
30852    }
30853    #[inline]
30854    fn cast(syntax: SyntaxNode) -> Option<Self> {
30855        let res = match syntax.kind() {
30856            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
30857            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
30858            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
30859            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
30860            _ => {
30861                return None;
30862            }
30863        };
30864        Some(res)
30865    }
30866    #[inline]
30867    fn syntax(&self) -> &SyntaxNode {
30868        match self {
30869            ParamMode::ParamIn(it) => &it.syntax,
30870            ParamMode::ParamInOut(it) => &it.syntax,
30871            ParamMode::ParamOut(it) => &it.syntax,
30872            ParamMode::ParamVariadic(it) => &it.syntax,
30873        }
30874    }
30875}
30876impl From<ParamIn> for ParamMode {
30877    #[inline]
30878    fn from(node: ParamIn) -> ParamMode {
30879        ParamMode::ParamIn(node)
30880    }
30881}
30882impl From<ParamInOut> for ParamMode {
30883    #[inline]
30884    fn from(node: ParamInOut) -> ParamMode {
30885        ParamMode::ParamInOut(node)
30886    }
30887}
30888impl From<ParamOut> for ParamMode {
30889    #[inline]
30890    fn from(node: ParamOut) -> ParamMode {
30891        ParamMode::ParamOut(node)
30892    }
30893}
30894impl From<ParamVariadic> for ParamMode {
30895    #[inline]
30896    fn from(node: ParamVariadic) -> ParamMode {
30897        ParamMode::ParamVariadic(node)
30898    }
30899}
30900impl AstNode for PartitionType {
30901    #[inline]
30902    fn can_cast(kind: SyntaxKind) -> bool {
30903        matches!(
30904            kind,
30905            SyntaxKind::PARTITION_DEFAULT
30906                | SyntaxKind::PARTITION_FOR_VALUES_FROM
30907                | SyntaxKind::PARTITION_FOR_VALUES_IN
30908                | SyntaxKind::PARTITION_FOR_VALUES_WITH
30909        )
30910    }
30911    #[inline]
30912    fn cast(syntax: SyntaxNode) -> Option<Self> {
30913        let res = match syntax.kind() {
30914            SyntaxKind::PARTITION_DEFAULT => {
30915                PartitionType::PartitionDefault(PartitionDefault { syntax })
30916            }
30917            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
30918                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
30919            }
30920            SyntaxKind::PARTITION_FOR_VALUES_IN => {
30921                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
30922            }
30923            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
30924                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
30925            }
30926            _ => {
30927                return None;
30928            }
30929        };
30930        Some(res)
30931    }
30932    #[inline]
30933    fn syntax(&self) -> &SyntaxNode {
30934        match self {
30935            PartitionType::PartitionDefault(it) => &it.syntax,
30936            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
30937            PartitionType::PartitionForValuesIn(it) => &it.syntax,
30938            PartitionType::PartitionForValuesWith(it) => &it.syntax,
30939        }
30940    }
30941}
30942impl From<PartitionDefault> for PartitionType {
30943    #[inline]
30944    fn from(node: PartitionDefault) -> PartitionType {
30945        PartitionType::PartitionDefault(node)
30946    }
30947}
30948impl From<PartitionForValuesFrom> for PartitionType {
30949    #[inline]
30950    fn from(node: PartitionForValuesFrom) -> PartitionType {
30951        PartitionType::PartitionForValuesFrom(node)
30952    }
30953}
30954impl From<PartitionForValuesIn> for PartitionType {
30955    #[inline]
30956    fn from(node: PartitionForValuesIn) -> PartitionType {
30957        PartitionType::PartitionForValuesIn(node)
30958    }
30959}
30960impl From<PartitionForValuesWith> for PartitionType {
30961    #[inline]
30962    fn from(node: PartitionForValuesWith) -> PartitionType {
30963        PartitionType::PartitionForValuesWith(node)
30964    }
30965}
30966impl AstNode for PreparableStmt {
30967    #[inline]
30968    fn can_cast(kind: SyntaxKind) -> bool {
30969        matches!(
30970            kind,
30971            SyntaxKind::COMPOUND_SELECT
30972                | SyntaxKind::DELETE
30973                | SyntaxKind::INSERT
30974                | SyntaxKind::MERGE
30975                | SyntaxKind::SELECT
30976                | SyntaxKind::SELECT_INTO
30977                | SyntaxKind::TABLE
30978                | SyntaxKind::UPDATE
30979                | SyntaxKind::VALUES
30980        )
30981    }
30982    #[inline]
30983    fn cast(syntax: SyntaxNode) -> Option<Self> {
30984        let res = match syntax.kind() {
30985            SyntaxKind::COMPOUND_SELECT => {
30986                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
30987            }
30988            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
30989            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
30990            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
30991            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
30992            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
30993            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
30994            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
30995            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
30996            _ => {
30997                return None;
30998            }
30999        };
31000        Some(res)
31001    }
31002    #[inline]
31003    fn syntax(&self) -> &SyntaxNode {
31004        match self {
31005            PreparableStmt::CompoundSelect(it) => &it.syntax,
31006            PreparableStmt::Delete(it) => &it.syntax,
31007            PreparableStmt::Insert(it) => &it.syntax,
31008            PreparableStmt::Merge(it) => &it.syntax,
31009            PreparableStmt::Select(it) => &it.syntax,
31010            PreparableStmt::SelectInto(it) => &it.syntax,
31011            PreparableStmt::Table(it) => &it.syntax,
31012            PreparableStmt::Update(it) => &it.syntax,
31013            PreparableStmt::Values(it) => &it.syntax,
31014        }
31015    }
31016}
31017impl From<CompoundSelect> for PreparableStmt {
31018    #[inline]
31019    fn from(node: CompoundSelect) -> PreparableStmt {
31020        PreparableStmt::CompoundSelect(node)
31021    }
31022}
31023impl From<Delete> for PreparableStmt {
31024    #[inline]
31025    fn from(node: Delete) -> PreparableStmt {
31026        PreparableStmt::Delete(node)
31027    }
31028}
31029impl From<Insert> for PreparableStmt {
31030    #[inline]
31031    fn from(node: Insert) -> PreparableStmt {
31032        PreparableStmt::Insert(node)
31033    }
31034}
31035impl From<Merge> for PreparableStmt {
31036    #[inline]
31037    fn from(node: Merge) -> PreparableStmt {
31038        PreparableStmt::Merge(node)
31039    }
31040}
31041impl From<Select> for PreparableStmt {
31042    #[inline]
31043    fn from(node: Select) -> PreparableStmt {
31044        PreparableStmt::Select(node)
31045    }
31046}
31047impl From<SelectInto> for PreparableStmt {
31048    #[inline]
31049    fn from(node: SelectInto) -> PreparableStmt {
31050        PreparableStmt::SelectInto(node)
31051    }
31052}
31053impl From<Table> for PreparableStmt {
31054    #[inline]
31055    fn from(node: Table) -> PreparableStmt {
31056        PreparableStmt::Table(node)
31057    }
31058}
31059impl From<Update> for PreparableStmt {
31060    #[inline]
31061    fn from(node: Update) -> PreparableStmt {
31062        PreparableStmt::Update(node)
31063    }
31064}
31065impl From<Values> for PreparableStmt {
31066    #[inline]
31067    fn from(node: Values) -> PreparableStmt {
31068        PreparableStmt::Values(node)
31069    }
31070}
31071impl AstNode for RefAction {
31072    #[inline]
31073    fn can_cast(kind: SyntaxKind) -> bool {
31074        matches!(
31075            kind,
31076            SyntaxKind::CASCADE
31077                | SyntaxKind::NO_ACTION
31078                | SyntaxKind::RESTRICT
31079                | SyntaxKind::SET_DEFAULT_COLUMNS
31080                | SyntaxKind::SET_NULL_COLUMNS
31081        )
31082    }
31083    #[inline]
31084    fn cast(syntax: SyntaxNode) -> Option<Self> {
31085        let res = match syntax.kind() {
31086            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
31087            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
31088            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
31089            SyntaxKind::SET_DEFAULT_COLUMNS => {
31090                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
31091            }
31092            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
31093            _ => {
31094                return None;
31095            }
31096        };
31097        Some(res)
31098    }
31099    #[inline]
31100    fn syntax(&self) -> &SyntaxNode {
31101        match self {
31102            RefAction::Cascade(it) => &it.syntax,
31103            RefAction::NoAction(it) => &it.syntax,
31104            RefAction::Restrict(it) => &it.syntax,
31105            RefAction::SetDefaultColumns(it) => &it.syntax,
31106            RefAction::SetNullColumns(it) => &it.syntax,
31107        }
31108    }
31109}
31110impl From<Cascade> for RefAction {
31111    #[inline]
31112    fn from(node: Cascade) -> RefAction {
31113        RefAction::Cascade(node)
31114    }
31115}
31116impl From<NoAction> for RefAction {
31117    #[inline]
31118    fn from(node: NoAction) -> RefAction {
31119        RefAction::NoAction(node)
31120    }
31121}
31122impl From<Restrict> for RefAction {
31123    #[inline]
31124    fn from(node: Restrict) -> RefAction {
31125        RefAction::Restrict(node)
31126    }
31127}
31128impl From<SetDefaultColumns> for RefAction {
31129    #[inline]
31130    fn from(node: SetDefaultColumns) -> RefAction {
31131        RefAction::SetDefaultColumns(node)
31132    }
31133}
31134impl From<SetNullColumns> for RefAction {
31135    #[inline]
31136    fn from(node: SetNullColumns) -> RefAction {
31137        RefAction::SetNullColumns(node)
31138    }
31139}
31140impl AstNode for SchemaElement {
31141    #[inline]
31142    fn can_cast(kind: SyntaxKind) -> bool {
31143        matches!(
31144            kind,
31145            SyntaxKind::CREATE_INDEX
31146                | SyntaxKind::CREATE_SEQUENCE
31147                | SyntaxKind::CREATE_TABLE
31148                | SyntaxKind::CREATE_TRIGGER
31149                | SyntaxKind::CREATE_VIEW
31150                | SyntaxKind::GRANT
31151        )
31152    }
31153    #[inline]
31154    fn cast(syntax: SyntaxNode) -> Option<Self> {
31155        let res = match syntax.kind() {
31156            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
31157            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
31158            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
31159            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
31160            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
31161            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
31162            _ => {
31163                return None;
31164            }
31165        };
31166        Some(res)
31167    }
31168    #[inline]
31169    fn syntax(&self) -> &SyntaxNode {
31170        match self {
31171            SchemaElement::CreateIndex(it) => &it.syntax,
31172            SchemaElement::CreateSequence(it) => &it.syntax,
31173            SchemaElement::CreateTable(it) => &it.syntax,
31174            SchemaElement::CreateTrigger(it) => &it.syntax,
31175            SchemaElement::CreateView(it) => &it.syntax,
31176            SchemaElement::Grant(it) => &it.syntax,
31177        }
31178    }
31179}
31180impl From<CreateIndex> for SchemaElement {
31181    #[inline]
31182    fn from(node: CreateIndex) -> SchemaElement {
31183        SchemaElement::CreateIndex(node)
31184    }
31185}
31186impl From<CreateSequence> for SchemaElement {
31187    #[inline]
31188    fn from(node: CreateSequence) -> SchemaElement {
31189        SchemaElement::CreateSequence(node)
31190    }
31191}
31192impl From<CreateTable> for SchemaElement {
31193    #[inline]
31194    fn from(node: CreateTable) -> SchemaElement {
31195        SchemaElement::CreateTable(node)
31196    }
31197}
31198impl From<CreateTrigger> for SchemaElement {
31199    #[inline]
31200    fn from(node: CreateTrigger) -> SchemaElement {
31201        SchemaElement::CreateTrigger(node)
31202    }
31203}
31204impl From<CreateView> for SchemaElement {
31205    #[inline]
31206    fn from(node: CreateView) -> SchemaElement {
31207        SchemaElement::CreateView(node)
31208    }
31209}
31210impl From<Grant> for SchemaElement {
31211    #[inline]
31212    fn from(node: Grant) -> SchemaElement {
31213        SchemaElement::Grant(node)
31214    }
31215}
31216impl AstNode for SelectVariant {
31217    #[inline]
31218    fn can_cast(kind: SyntaxKind) -> bool {
31219        matches!(
31220            kind,
31221            SyntaxKind::COMPOUND_SELECT
31222                | SyntaxKind::PAREN_SELECT
31223                | SyntaxKind::SELECT
31224                | SyntaxKind::SELECT_INTO
31225                | SyntaxKind::TABLE
31226                | SyntaxKind::VALUES
31227        )
31228    }
31229    #[inline]
31230    fn cast(syntax: SyntaxNode) -> Option<Self> {
31231        let res = match syntax.kind() {
31232            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
31233            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
31234            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
31235            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
31236            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
31237            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
31238            _ => {
31239                return None;
31240            }
31241        };
31242        Some(res)
31243    }
31244    #[inline]
31245    fn syntax(&self) -> &SyntaxNode {
31246        match self {
31247            SelectVariant::CompoundSelect(it) => &it.syntax,
31248            SelectVariant::ParenSelect(it) => &it.syntax,
31249            SelectVariant::Select(it) => &it.syntax,
31250            SelectVariant::SelectInto(it) => &it.syntax,
31251            SelectVariant::Table(it) => &it.syntax,
31252            SelectVariant::Values(it) => &it.syntax,
31253        }
31254    }
31255}
31256impl From<CompoundSelect> for SelectVariant {
31257    #[inline]
31258    fn from(node: CompoundSelect) -> SelectVariant {
31259        SelectVariant::CompoundSelect(node)
31260    }
31261}
31262impl From<ParenSelect> for SelectVariant {
31263    #[inline]
31264    fn from(node: ParenSelect) -> SelectVariant {
31265        SelectVariant::ParenSelect(node)
31266    }
31267}
31268impl From<Select> for SelectVariant {
31269    #[inline]
31270    fn from(node: Select) -> SelectVariant {
31271        SelectVariant::Select(node)
31272    }
31273}
31274impl From<SelectInto> for SelectVariant {
31275    #[inline]
31276    fn from(node: SelectInto) -> SelectVariant {
31277        SelectVariant::SelectInto(node)
31278    }
31279}
31280impl From<Table> for SelectVariant {
31281    #[inline]
31282    fn from(node: Table) -> SelectVariant {
31283        SelectVariant::Table(node)
31284    }
31285}
31286impl From<Values> for SelectVariant {
31287    #[inline]
31288    fn from(node: Values) -> SelectVariant {
31289        SelectVariant::Values(node)
31290    }
31291}
31292impl AstNode for SetColumn {
31293    #[inline]
31294    fn can_cast(kind: SyntaxKind) -> bool {
31295        matches!(
31296            kind,
31297            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31298        )
31299    }
31300    #[inline]
31301    fn cast(syntax: SyntaxNode) -> Option<Self> {
31302        let res = match syntax.kind() {
31303            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31304                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31305            }
31306            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31307            _ => {
31308                return None;
31309            }
31310        };
31311        Some(res)
31312    }
31313    #[inline]
31314    fn syntax(&self) -> &SyntaxNode {
31315        match self {
31316            SetColumn::SetMultipleColumns(it) => &it.syntax,
31317            SetColumn::SetSingleColumn(it) => &it.syntax,
31318        }
31319    }
31320}
31321impl From<SetMultipleColumns> for SetColumn {
31322    #[inline]
31323    fn from(node: SetMultipleColumns) -> SetColumn {
31324        SetColumn::SetMultipleColumns(node)
31325    }
31326}
31327impl From<SetSingleColumn> for SetColumn {
31328    #[inline]
31329    fn from(node: SetSingleColumn) -> SetColumn {
31330        SetColumn::SetSingleColumn(node)
31331    }
31332}
31333impl AstNode for Stmt {
31334    #[inline]
31335    fn can_cast(kind: SyntaxKind) -> bool {
31336        matches!(
31337            kind,
31338            SyntaxKind::ALTER_AGGREGATE
31339                | SyntaxKind::ALTER_COLLATION
31340                | SyntaxKind::ALTER_CONVERSION
31341                | SyntaxKind::ALTER_DATABASE
31342                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31343                | SyntaxKind::ALTER_DOMAIN
31344                | SyntaxKind::ALTER_EVENT_TRIGGER
31345                | SyntaxKind::ALTER_EXTENSION
31346                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31347                | SyntaxKind::ALTER_FOREIGN_TABLE
31348                | SyntaxKind::ALTER_FUNCTION
31349                | SyntaxKind::ALTER_GROUP
31350                | SyntaxKind::ALTER_INDEX
31351                | SyntaxKind::ALTER_LANGUAGE
31352                | SyntaxKind::ALTER_LARGE_OBJECT
31353                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31354                | SyntaxKind::ALTER_OPERATOR
31355                | SyntaxKind::ALTER_OPERATOR_CLASS
31356                | SyntaxKind::ALTER_OPERATOR_FAMILY
31357                | SyntaxKind::ALTER_POLICY
31358                | SyntaxKind::ALTER_PROCEDURE
31359                | SyntaxKind::ALTER_PUBLICATION
31360                | SyntaxKind::ALTER_ROLE
31361                | SyntaxKind::ALTER_ROUTINE
31362                | SyntaxKind::ALTER_RULE
31363                | SyntaxKind::ALTER_SCHEMA
31364                | SyntaxKind::ALTER_SEQUENCE
31365                | SyntaxKind::ALTER_SERVER
31366                | SyntaxKind::ALTER_STATISTICS
31367                | SyntaxKind::ALTER_SUBSCRIPTION
31368                | SyntaxKind::ALTER_SYSTEM
31369                | SyntaxKind::ALTER_TABLE
31370                | SyntaxKind::ALTER_TABLESPACE
31371                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31372                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31373                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31374                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31375                | SyntaxKind::ALTER_TRIGGER
31376                | SyntaxKind::ALTER_TYPE
31377                | SyntaxKind::ALTER_USER
31378                | SyntaxKind::ALTER_USER_MAPPING
31379                | SyntaxKind::ALTER_VIEW
31380                | SyntaxKind::ANALYZE
31381                | SyntaxKind::BEGIN
31382                | SyntaxKind::CALL
31383                | SyntaxKind::CHECKPOINT
31384                | SyntaxKind::CLOSE
31385                | SyntaxKind::CLUSTER
31386                | SyntaxKind::COMMENT_ON
31387                | SyntaxKind::COMMIT
31388                | SyntaxKind::COPY
31389                | SyntaxKind::CREATE_ACCESS_METHOD
31390                | SyntaxKind::CREATE_AGGREGATE
31391                | SyntaxKind::CREATE_CAST
31392                | SyntaxKind::CREATE_COLLATION
31393                | SyntaxKind::CREATE_CONVERSION
31394                | SyntaxKind::CREATE_DATABASE
31395                | SyntaxKind::CREATE_DOMAIN
31396                | SyntaxKind::CREATE_EVENT_TRIGGER
31397                | SyntaxKind::CREATE_EXTENSION
31398                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31399                | SyntaxKind::CREATE_FOREIGN_TABLE
31400                | SyntaxKind::CREATE_FUNCTION
31401                | SyntaxKind::CREATE_GROUP
31402                | SyntaxKind::CREATE_INDEX
31403                | SyntaxKind::CREATE_LANGUAGE
31404                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31405                | SyntaxKind::CREATE_OPERATOR
31406                | SyntaxKind::CREATE_OPERATOR_CLASS
31407                | SyntaxKind::CREATE_OPERATOR_FAMILY
31408                | SyntaxKind::CREATE_POLICY
31409                | SyntaxKind::CREATE_PROCEDURE
31410                | SyntaxKind::CREATE_PUBLICATION
31411                | SyntaxKind::CREATE_ROLE
31412                | SyntaxKind::CREATE_RULE
31413                | SyntaxKind::CREATE_SCHEMA
31414                | SyntaxKind::CREATE_SEQUENCE
31415                | SyntaxKind::CREATE_SERVER
31416                | SyntaxKind::CREATE_STATISTICS
31417                | SyntaxKind::CREATE_SUBSCRIPTION
31418                | SyntaxKind::CREATE_TABLE
31419                | SyntaxKind::CREATE_TABLE_AS
31420                | SyntaxKind::CREATE_TABLESPACE
31421                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31422                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31423                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31424                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31425                | SyntaxKind::CREATE_TRANSFORM
31426                | SyntaxKind::CREATE_TRIGGER
31427                | SyntaxKind::CREATE_TYPE
31428                | SyntaxKind::CREATE_USER
31429                | SyntaxKind::CREATE_USER_MAPPING
31430                | SyntaxKind::CREATE_VIEW
31431                | SyntaxKind::DEALLOCATE
31432                | SyntaxKind::DECLARE
31433                | SyntaxKind::DELETE
31434                | SyntaxKind::DISCARD
31435                | SyntaxKind::DO
31436                | SyntaxKind::DROP_ACCESS_METHOD
31437                | SyntaxKind::DROP_AGGREGATE
31438                | SyntaxKind::DROP_CAST
31439                | SyntaxKind::DROP_COLLATION
31440                | SyntaxKind::DROP_CONVERSION
31441                | SyntaxKind::DROP_DATABASE
31442                | SyntaxKind::DROP_DOMAIN
31443                | SyntaxKind::DROP_EVENT_TRIGGER
31444                | SyntaxKind::DROP_EXTENSION
31445                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31446                | SyntaxKind::DROP_FOREIGN_TABLE
31447                | SyntaxKind::DROP_FUNCTION
31448                | SyntaxKind::DROP_GROUP
31449                | SyntaxKind::DROP_INDEX
31450                | SyntaxKind::DROP_LANGUAGE
31451                | SyntaxKind::DROP_MATERIALIZED_VIEW
31452                | SyntaxKind::DROP_OPERATOR
31453                | SyntaxKind::DROP_OPERATOR_CLASS
31454                | SyntaxKind::DROP_OPERATOR_FAMILY
31455                | SyntaxKind::DROP_OWNED
31456                | SyntaxKind::DROP_POLICY
31457                | SyntaxKind::DROP_PROCEDURE
31458                | SyntaxKind::DROP_PUBLICATION
31459                | SyntaxKind::DROP_ROLE
31460                | SyntaxKind::DROP_ROUTINE
31461                | SyntaxKind::DROP_RULE
31462                | SyntaxKind::DROP_SCHEMA
31463                | SyntaxKind::DROP_SEQUENCE
31464                | SyntaxKind::DROP_SERVER
31465                | SyntaxKind::DROP_STATISTICS
31466                | SyntaxKind::DROP_SUBSCRIPTION
31467                | SyntaxKind::DROP_TABLE
31468                | SyntaxKind::DROP_TABLESPACE
31469                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31470                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31471                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31472                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31473                | SyntaxKind::DROP_TRANSFORM
31474                | SyntaxKind::DROP_TRIGGER
31475                | SyntaxKind::DROP_TYPE
31476                | SyntaxKind::DROP_USER
31477                | SyntaxKind::DROP_USER_MAPPING
31478                | SyntaxKind::DROP_VIEW
31479                | SyntaxKind::EXECUTE
31480                | SyntaxKind::EXPLAIN
31481                | SyntaxKind::FETCH
31482                | SyntaxKind::GRANT
31483                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31484                | SyntaxKind::INSERT
31485                | SyntaxKind::LISTEN
31486                | SyntaxKind::LOAD
31487                | SyntaxKind::LOCK
31488                | SyntaxKind::MERGE
31489                | SyntaxKind::MOVE
31490                | SyntaxKind::NOTIFY
31491                | SyntaxKind::PAREN_SELECT
31492                | SyntaxKind::PREPARE
31493                | SyntaxKind::PREPARE_TRANSACTION
31494                | SyntaxKind::REASSIGN
31495                | SyntaxKind::REFRESH
31496                | SyntaxKind::REINDEX
31497                | SyntaxKind::RELEASE_SAVEPOINT
31498                | SyntaxKind::RESET
31499                | SyntaxKind::RESET_SESSION_AUTH
31500                | SyntaxKind::REVOKE
31501                | SyntaxKind::ROLLBACK
31502                | SyntaxKind::SAVEPOINT
31503                | SyntaxKind::SECURITY_LABEL
31504                | SyntaxKind::SELECT
31505                | SyntaxKind::SELECT_INTO
31506                | SyntaxKind::SET
31507                | SyntaxKind::SET_CONSTRAINTS
31508                | SyntaxKind::SET_ROLE
31509                | SyntaxKind::SET_SESSION_AUTH
31510                | SyntaxKind::SET_TRANSACTION
31511                | SyntaxKind::SHOW
31512                | SyntaxKind::TABLE
31513                | SyntaxKind::TRUNCATE
31514                | SyntaxKind::UNLISTEN
31515                | SyntaxKind::UPDATE
31516                | SyntaxKind::VACUUM
31517                | SyntaxKind::VALUES
31518        )
31519    }
31520    #[inline]
31521    fn cast(syntax: SyntaxNode) -> Option<Self> {
31522        let res = match syntax.kind() {
31523            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
31524            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
31525            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
31526            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
31527            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
31528                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
31529            }
31530            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
31531            SyntaxKind::ALTER_EVENT_TRIGGER => {
31532                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
31533            }
31534            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
31535            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
31536                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
31537            }
31538            SyntaxKind::ALTER_FOREIGN_TABLE => {
31539                Stmt::AlterForeignTable(AlterForeignTable { syntax })
31540            }
31541            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
31542            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
31543            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
31544            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
31545            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
31546            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
31547                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
31548            }
31549            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
31550            SyntaxKind::ALTER_OPERATOR_CLASS => {
31551                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
31552            }
31553            SyntaxKind::ALTER_OPERATOR_FAMILY => {
31554                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
31555            }
31556            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
31557            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
31558            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
31559            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
31560            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
31561            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
31562            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
31563            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
31564            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
31565            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
31566            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
31567            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
31568            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
31569            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
31570            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
31571                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
31572            }
31573            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
31574                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
31575            }
31576            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
31577                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
31578            }
31579            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
31580                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
31581            }
31582            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
31583            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
31584            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
31585            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
31586            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
31587            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
31588            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
31589            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
31590            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31591            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31592            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31593            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31594            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31595            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31596            SyntaxKind::CREATE_ACCESS_METHOD => {
31597                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31598            }
31599            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31600            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31601            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31602            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31603            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31604            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31605            SyntaxKind::CREATE_EVENT_TRIGGER => {
31606                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31607            }
31608            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31609            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31610                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31611            }
31612            SyntaxKind::CREATE_FOREIGN_TABLE => {
31613                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31614            }
31615            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31616            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31617            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31618            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31619            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31620                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31621            }
31622            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31623            SyntaxKind::CREATE_OPERATOR_CLASS => {
31624                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31625            }
31626            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31627                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31628            }
31629            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31630            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31631            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31632            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31633            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31634            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31635            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
31636            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
31637            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
31638            SyntaxKind::CREATE_SUBSCRIPTION => {
31639                Stmt::CreateSubscription(CreateSubscription { syntax })
31640            }
31641            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
31642            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
31643            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
31644            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
31645                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
31646            }
31647            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
31648                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
31649            }
31650            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
31651                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
31652            }
31653            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
31654                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
31655            }
31656            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
31657            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
31658            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
31659            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
31660            SyntaxKind::CREATE_USER_MAPPING => {
31661                Stmt::CreateUserMapping(CreateUserMapping { syntax })
31662            }
31663            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
31664            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
31665            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
31666            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
31667            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
31668            SyntaxKind::DO => Stmt::Do(Do { syntax }),
31669            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
31670            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
31671            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
31672            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
31673            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
31674            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
31675            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
31676            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
31677            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
31678            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
31679                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
31680            }
31681            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
31682            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
31683            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
31684            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
31685            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
31686            SyntaxKind::DROP_MATERIALIZED_VIEW => {
31687                Stmt::DropMaterializedView(DropMaterializedView { syntax })
31688            }
31689            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
31690            SyntaxKind::DROP_OPERATOR_CLASS => {
31691                Stmt::DropOperatorClass(DropOperatorClass { syntax })
31692            }
31693            SyntaxKind::DROP_OPERATOR_FAMILY => {
31694                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
31695            }
31696            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
31697            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
31698            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
31699            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
31700            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
31701            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
31702            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
31703            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
31704            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
31705            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
31706            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
31707            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
31708            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
31709            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
31710            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
31711                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
31712            }
31713            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
31714                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
31715            }
31716            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
31717                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
31718            }
31719            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
31720                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
31721            }
31722            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
31723            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
31724            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
31725            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
31726            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
31727            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
31728            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
31729            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
31730            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
31731            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
31732            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
31733                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
31734            }
31735            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
31736            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
31737            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
31738            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
31739            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
31740            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
31741            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
31742            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
31743            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
31744            SyntaxKind::PREPARE_TRANSACTION => {
31745                Stmt::PrepareTransaction(PrepareTransaction { syntax })
31746            }
31747            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
31748            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
31749            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
31750            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
31751            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
31752            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
31753            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
31754            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
31755            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
31756            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
31757            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
31758            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
31759            SyntaxKind::SET => Stmt::Set(Set { syntax }),
31760            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
31761            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
31762            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
31763            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
31764            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
31765            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
31766            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
31767            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
31768            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
31769            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
31770            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
31771            _ => {
31772                return None;
31773            }
31774        };
31775        Some(res)
31776    }
31777    #[inline]
31778    fn syntax(&self) -> &SyntaxNode {
31779        match self {
31780            Stmt::AlterAggregate(it) => &it.syntax,
31781            Stmt::AlterCollation(it) => &it.syntax,
31782            Stmt::AlterConversion(it) => &it.syntax,
31783            Stmt::AlterDatabase(it) => &it.syntax,
31784            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
31785            Stmt::AlterDomain(it) => &it.syntax,
31786            Stmt::AlterEventTrigger(it) => &it.syntax,
31787            Stmt::AlterExtension(it) => &it.syntax,
31788            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
31789            Stmt::AlterForeignTable(it) => &it.syntax,
31790            Stmt::AlterFunction(it) => &it.syntax,
31791            Stmt::AlterGroup(it) => &it.syntax,
31792            Stmt::AlterIndex(it) => &it.syntax,
31793            Stmt::AlterLanguage(it) => &it.syntax,
31794            Stmt::AlterLargeObject(it) => &it.syntax,
31795            Stmt::AlterMaterializedView(it) => &it.syntax,
31796            Stmt::AlterOperator(it) => &it.syntax,
31797            Stmt::AlterOperatorClass(it) => &it.syntax,
31798            Stmt::AlterOperatorFamily(it) => &it.syntax,
31799            Stmt::AlterPolicy(it) => &it.syntax,
31800            Stmt::AlterProcedure(it) => &it.syntax,
31801            Stmt::AlterPublication(it) => &it.syntax,
31802            Stmt::AlterRole(it) => &it.syntax,
31803            Stmt::AlterRoutine(it) => &it.syntax,
31804            Stmt::AlterRule(it) => &it.syntax,
31805            Stmt::AlterSchema(it) => &it.syntax,
31806            Stmt::AlterSequence(it) => &it.syntax,
31807            Stmt::AlterServer(it) => &it.syntax,
31808            Stmt::AlterStatistics(it) => &it.syntax,
31809            Stmt::AlterSubscription(it) => &it.syntax,
31810            Stmt::AlterSystem(it) => &it.syntax,
31811            Stmt::AlterTable(it) => &it.syntax,
31812            Stmt::AlterTablespace(it) => &it.syntax,
31813            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
31814            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
31815            Stmt::AlterTextSearchParser(it) => &it.syntax,
31816            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
31817            Stmt::AlterTrigger(it) => &it.syntax,
31818            Stmt::AlterType(it) => &it.syntax,
31819            Stmt::AlterUser(it) => &it.syntax,
31820            Stmt::AlterUserMapping(it) => &it.syntax,
31821            Stmt::AlterView(it) => &it.syntax,
31822            Stmt::Analyze(it) => &it.syntax,
31823            Stmt::Begin(it) => &it.syntax,
31824            Stmt::Call(it) => &it.syntax,
31825            Stmt::Checkpoint(it) => &it.syntax,
31826            Stmt::Close(it) => &it.syntax,
31827            Stmt::Cluster(it) => &it.syntax,
31828            Stmt::CommentOn(it) => &it.syntax,
31829            Stmt::Commit(it) => &it.syntax,
31830            Stmt::Copy(it) => &it.syntax,
31831            Stmt::CreateAccessMethod(it) => &it.syntax,
31832            Stmt::CreateAggregate(it) => &it.syntax,
31833            Stmt::CreateCast(it) => &it.syntax,
31834            Stmt::CreateCollation(it) => &it.syntax,
31835            Stmt::CreateConversion(it) => &it.syntax,
31836            Stmt::CreateDatabase(it) => &it.syntax,
31837            Stmt::CreateDomain(it) => &it.syntax,
31838            Stmt::CreateEventTrigger(it) => &it.syntax,
31839            Stmt::CreateExtension(it) => &it.syntax,
31840            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
31841            Stmt::CreateForeignTable(it) => &it.syntax,
31842            Stmt::CreateFunction(it) => &it.syntax,
31843            Stmt::CreateGroup(it) => &it.syntax,
31844            Stmt::CreateIndex(it) => &it.syntax,
31845            Stmt::CreateLanguage(it) => &it.syntax,
31846            Stmt::CreateMaterializedView(it) => &it.syntax,
31847            Stmt::CreateOperator(it) => &it.syntax,
31848            Stmt::CreateOperatorClass(it) => &it.syntax,
31849            Stmt::CreateOperatorFamily(it) => &it.syntax,
31850            Stmt::CreatePolicy(it) => &it.syntax,
31851            Stmt::CreateProcedure(it) => &it.syntax,
31852            Stmt::CreatePublication(it) => &it.syntax,
31853            Stmt::CreateRole(it) => &it.syntax,
31854            Stmt::CreateRule(it) => &it.syntax,
31855            Stmt::CreateSchema(it) => &it.syntax,
31856            Stmt::CreateSequence(it) => &it.syntax,
31857            Stmt::CreateServer(it) => &it.syntax,
31858            Stmt::CreateStatistics(it) => &it.syntax,
31859            Stmt::CreateSubscription(it) => &it.syntax,
31860            Stmt::CreateTable(it) => &it.syntax,
31861            Stmt::CreateTableAs(it) => &it.syntax,
31862            Stmt::CreateTablespace(it) => &it.syntax,
31863            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
31864            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
31865            Stmt::CreateTextSearchParser(it) => &it.syntax,
31866            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
31867            Stmt::CreateTransform(it) => &it.syntax,
31868            Stmt::CreateTrigger(it) => &it.syntax,
31869            Stmt::CreateType(it) => &it.syntax,
31870            Stmt::CreateUser(it) => &it.syntax,
31871            Stmt::CreateUserMapping(it) => &it.syntax,
31872            Stmt::CreateView(it) => &it.syntax,
31873            Stmt::Deallocate(it) => &it.syntax,
31874            Stmt::Declare(it) => &it.syntax,
31875            Stmt::Delete(it) => &it.syntax,
31876            Stmt::Discard(it) => &it.syntax,
31877            Stmt::Do(it) => &it.syntax,
31878            Stmt::DropAccessMethod(it) => &it.syntax,
31879            Stmt::DropAggregate(it) => &it.syntax,
31880            Stmt::DropCast(it) => &it.syntax,
31881            Stmt::DropCollation(it) => &it.syntax,
31882            Stmt::DropConversion(it) => &it.syntax,
31883            Stmt::DropDatabase(it) => &it.syntax,
31884            Stmt::DropDomain(it) => &it.syntax,
31885            Stmt::DropEventTrigger(it) => &it.syntax,
31886            Stmt::DropExtension(it) => &it.syntax,
31887            Stmt::DropForeignDataWrapper(it) => &it.syntax,
31888            Stmt::DropForeignTable(it) => &it.syntax,
31889            Stmt::DropFunction(it) => &it.syntax,
31890            Stmt::DropGroup(it) => &it.syntax,
31891            Stmt::DropIndex(it) => &it.syntax,
31892            Stmt::DropLanguage(it) => &it.syntax,
31893            Stmt::DropMaterializedView(it) => &it.syntax,
31894            Stmt::DropOperator(it) => &it.syntax,
31895            Stmt::DropOperatorClass(it) => &it.syntax,
31896            Stmt::DropOperatorFamily(it) => &it.syntax,
31897            Stmt::DropOwned(it) => &it.syntax,
31898            Stmt::DropPolicy(it) => &it.syntax,
31899            Stmt::DropProcedure(it) => &it.syntax,
31900            Stmt::DropPublication(it) => &it.syntax,
31901            Stmt::DropRole(it) => &it.syntax,
31902            Stmt::DropRoutine(it) => &it.syntax,
31903            Stmt::DropRule(it) => &it.syntax,
31904            Stmt::DropSchema(it) => &it.syntax,
31905            Stmt::DropSequence(it) => &it.syntax,
31906            Stmt::DropServer(it) => &it.syntax,
31907            Stmt::DropStatistics(it) => &it.syntax,
31908            Stmt::DropSubscription(it) => &it.syntax,
31909            Stmt::DropTable(it) => &it.syntax,
31910            Stmt::DropTablespace(it) => &it.syntax,
31911            Stmt::DropTextSearchConfig(it) => &it.syntax,
31912            Stmt::DropTextSearchDict(it) => &it.syntax,
31913            Stmt::DropTextSearchParser(it) => &it.syntax,
31914            Stmt::DropTextSearchTemplate(it) => &it.syntax,
31915            Stmt::DropTransform(it) => &it.syntax,
31916            Stmt::DropTrigger(it) => &it.syntax,
31917            Stmt::DropType(it) => &it.syntax,
31918            Stmt::DropUser(it) => &it.syntax,
31919            Stmt::DropUserMapping(it) => &it.syntax,
31920            Stmt::DropView(it) => &it.syntax,
31921            Stmt::Execute(it) => &it.syntax,
31922            Stmt::Explain(it) => &it.syntax,
31923            Stmt::Fetch(it) => &it.syntax,
31924            Stmt::Grant(it) => &it.syntax,
31925            Stmt::ImportForeignSchema(it) => &it.syntax,
31926            Stmt::Insert(it) => &it.syntax,
31927            Stmt::Listen(it) => &it.syntax,
31928            Stmt::Load(it) => &it.syntax,
31929            Stmt::Lock(it) => &it.syntax,
31930            Stmt::Merge(it) => &it.syntax,
31931            Stmt::Move(it) => &it.syntax,
31932            Stmt::Notify(it) => &it.syntax,
31933            Stmt::ParenSelect(it) => &it.syntax,
31934            Stmt::Prepare(it) => &it.syntax,
31935            Stmt::PrepareTransaction(it) => &it.syntax,
31936            Stmt::Reassign(it) => &it.syntax,
31937            Stmt::Refresh(it) => &it.syntax,
31938            Stmt::Reindex(it) => &it.syntax,
31939            Stmt::ReleaseSavepoint(it) => &it.syntax,
31940            Stmt::Reset(it) => &it.syntax,
31941            Stmt::ResetSessionAuth(it) => &it.syntax,
31942            Stmt::Revoke(it) => &it.syntax,
31943            Stmt::Rollback(it) => &it.syntax,
31944            Stmt::Savepoint(it) => &it.syntax,
31945            Stmt::SecurityLabel(it) => &it.syntax,
31946            Stmt::Select(it) => &it.syntax,
31947            Stmt::SelectInto(it) => &it.syntax,
31948            Stmt::Set(it) => &it.syntax,
31949            Stmt::SetConstraints(it) => &it.syntax,
31950            Stmt::SetRole(it) => &it.syntax,
31951            Stmt::SetSessionAuth(it) => &it.syntax,
31952            Stmt::SetTransaction(it) => &it.syntax,
31953            Stmt::Show(it) => &it.syntax,
31954            Stmt::Table(it) => &it.syntax,
31955            Stmt::Truncate(it) => &it.syntax,
31956            Stmt::Unlisten(it) => &it.syntax,
31957            Stmt::Update(it) => &it.syntax,
31958            Stmt::Vacuum(it) => &it.syntax,
31959            Stmt::Values(it) => &it.syntax,
31960        }
31961    }
31962}
31963impl From<AlterAggregate> for Stmt {
31964    #[inline]
31965    fn from(node: AlterAggregate) -> Stmt {
31966        Stmt::AlterAggregate(node)
31967    }
31968}
31969impl From<AlterCollation> for Stmt {
31970    #[inline]
31971    fn from(node: AlterCollation) -> Stmt {
31972        Stmt::AlterCollation(node)
31973    }
31974}
31975impl From<AlterConversion> for Stmt {
31976    #[inline]
31977    fn from(node: AlterConversion) -> Stmt {
31978        Stmt::AlterConversion(node)
31979    }
31980}
31981impl From<AlterDatabase> for Stmt {
31982    #[inline]
31983    fn from(node: AlterDatabase) -> Stmt {
31984        Stmt::AlterDatabase(node)
31985    }
31986}
31987impl From<AlterDefaultPrivileges> for Stmt {
31988    #[inline]
31989    fn from(node: AlterDefaultPrivileges) -> Stmt {
31990        Stmt::AlterDefaultPrivileges(node)
31991    }
31992}
31993impl From<AlterDomain> for Stmt {
31994    #[inline]
31995    fn from(node: AlterDomain) -> Stmt {
31996        Stmt::AlterDomain(node)
31997    }
31998}
31999impl From<AlterEventTrigger> for Stmt {
32000    #[inline]
32001    fn from(node: AlterEventTrigger) -> Stmt {
32002        Stmt::AlterEventTrigger(node)
32003    }
32004}
32005impl From<AlterExtension> for Stmt {
32006    #[inline]
32007    fn from(node: AlterExtension) -> Stmt {
32008        Stmt::AlterExtension(node)
32009    }
32010}
32011impl From<AlterForeignDataWrapper> for Stmt {
32012    #[inline]
32013    fn from(node: AlterForeignDataWrapper) -> Stmt {
32014        Stmt::AlterForeignDataWrapper(node)
32015    }
32016}
32017impl From<AlterForeignTable> for Stmt {
32018    #[inline]
32019    fn from(node: AlterForeignTable) -> Stmt {
32020        Stmt::AlterForeignTable(node)
32021    }
32022}
32023impl From<AlterFunction> for Stmt {
32024    #[inline]
32025    fn from(node: AlterFunction) -> Stmt {
32026        Stmt::AlterFunction(node)
32027    }
32028}
32029impl From<AlterGroup> for Stmt {
32030    #[inline]
32031    fn from(node: AlterGroup) -> Stmt {
32032        Stmt::AlterGroup(node)
32033    }
32034}
32035impl From<AlterIndex> for Stmt {
32036    #[inline]
32037    fn from(node: AlterIndex) -> Stmt {
32038        Stmt::AlterIndex(node)
32039    }
32040}
32041impl From<AlterLanguage> for Stmt {
32042    #[inline]
32043    fn from(node: AlterLanguage) -> Stmt {
32044        Stmt::AlterLanguage(node)
32045    }
32046}
32047impl From<AlterLargeObject> for Stmt {
32048    #[inline]
32049    fn from(node: AlterLargeObject) -> Stmt {
32050        Stmt::AlterLargeObject(node)
32051    }
32052}
32053impl From<AlterMaterializedView> for Stmt {
32054    #[inline]
32055    fn from(node: AlterMaterializedView) -> Stmt {
32056        Stmt::AlterMaterializedView(node)
32057    }
32058}
32059impl From<AlterOperator> for Stmt {
32060    #[inline]
32061    fn from(node: AlterOperator) -> Stmt {
32062        Stmt::AlterOperator(node)
32063    }
32064}
32065impl From<AlterOperatorClass> for Stmt {
32066    #[inline]
32067    fn from(node: AlterOperatorClass) -> Stmt {
32068        Stmt::AlterOperatorClass(node)
32069    }
32070}
32071impl From<AlterOperatorFamily> for Stmt {
32072    #[inline]
32073    fn from(node: AlterOperatorFamily) -> Stmt {
32074        Stmt::AlterOperatorFamily(node)
32075    }
32076}
32077impl From<AlterPolicy> for Stmt {
32078    #[inline]
32079    fn from(node: AlterPolicy) -> Stmt {
32080        Stmt::AlterPolicy(node)
32081    }
32082}
32083impl From<AlterProcedure> for Stmt {
32084    #[inline]
32085    fn from(node: AlterProcedure) -> Stmt {
32086        Stmt::AlterProcedure(node)
32087    }
32088}
32089impl From<AlterPublication> for Stmt {
32090    #[inline]
32091    fn from(node: AlterPublication) -> Stmt {
32092        Stmt::AlterPublication(node)
32093    }
32094}
32095impl From<AlterRole> for Stmt {
32096    #[inline]
32097    fn from(node: AlterRole) -> Stmt {
32098        Stmt::AlterRole(node)
32099    }
32100}
32101impl From<AlterRoutine> for Stmt {
32102    #[inline]
32103    fn from(node: AlterRoutine) -> Stmt {
32104        Stmt::AlterRoutine(node)
32105    }
32106}
32107impl From<AlterRule> for Stmt {
32108    #[inline]
32109    fn from(node: AlterRule) -> Stmt {
32110        Stmt::AlterRule(node)
32111    }
32112}
32113impl From<AlterSchema> for Stmt {
32114    #[inline]
32115    fn from(node: AlterSchema) -> Stmt {
32116        Stmt::AlterSchema(node)
32117    }
32118}
32119impl From<AlterSequence> for Stmt {
32120    #[inline]
32121    fn from(node: AlterSequence) -> Stmt {
32122        Stmt::AlterSequence(node)
32123    }
32124}
32125impl From<AlterServer> for Stmt {
32126    #[inline]
32127    fn from(node: AlterServer) -> Stmt {
32128        Stmt::AlterServer(node)
32129    }
32130}
32131impl From<AlterStatistics> for Stmt {
32132    #[inline]
32133    fn from(node: AlterStatistics) -> Stmt {
32134        Stmt::AlterStatistics(node)
32135    }
32136}
32137impl From<AlterSubscription> for Stmt {
32138    #[inline]
32139    fn from(node: AlterSubscription) -> Stmt {
32140        Stmt::AlterSubscription(node)
32141    }
32142}
32143impl From<AlterSystem> for Stmt {
32144    #[inline]
32145    fn from(node: AlterSystem) -> Stmt {
32146        Stmt::AlterSystem(node)
32147    }
32148}
32149impl From<AlterTable> for Stmt {
32150    #[inline]
32151    fn from(node: AlterTable) -> Stmt {
32152        Stmt::AlterTable(node)
32153    }
32154}
32155impl From<AlterTablespace> for Stmt {
32156    #[inline]
32157    fn from(node: AlterTablespace) -> Stmt {
32158        Stmt::AlterTablespace(node)
32159    }
32160}
32161impl From<AlterTextSearchConfiguration> for Stmt {
32162    #[inline]
32163    fn from(node: AlterTextSearchConfiguration) -> Stmt {
32164        Stmt::AlterTextSearchConfiguration(node)
32165    }
32166}
32167impl From<AlterTextSearchDictionary> for Stmt {
32168    #[inline]
32169    fn from(node: AlterTextSearchDictionary) -> Stmt {
32170        Stmt::AlterTextSearchDictionary(node)
32171    }
32172}
32173impl From<AlterTextSearchParser> for Stmt {
32174    #[inline]
32175    fn from(node: AlterTextSearchParser) -> Stmt {
32176        Stmt::AlterTextSearchParser(node)
32177    }
32178}
32179impl From<AlterTextSearchTemplate> for Stmt {
32180    #[inline]
32181    fn from(node: AlterTextSearchTemplate) -> Stmt {
32182        Stmt::AlterTextSearchTemplate(node)
32183    }
32184}
32185impl From<AlterTrigger> for Stmt {
32186    #[inline]
32187    fn from(node: AlterTrigger) -> Stmt {
32188        Stmt::AlterTrigger(node)
32189    }
32190}
32191impl From<AlterType> for Stmt {
32192    #[inline]
32193    fn from(node: AlterType) -> Stmt {
32194        Stmt::AlterType(node)
32195    }
32196}
32197impl From<AlterUser> for Stmt {
32198    #[inline]
32199    fn from(node: AlterUser) -> Stmt {
32200        Stmt::AlterUser(node)
32201    }
32202}
32203impl From<AlterUserMapping> for Stmt {
32204    #[inline]
32205    fn from(node: AlterUserMapping) -> Stmt {
32206        Stmt::AlterUserMapping(node)
32207    }
32208}
32209impl From<AlterView> for Stmt {
32210    #[inline]
32211    fn from(node: AlterView) -> Stmt {
32212        Stmt::AlterView(node)
32213    }
32214}
32215impl From<Analyze> for Stmt {
32216    #[inline]
32217    fn from(node: Analyze) -> Stmt {
32218        Stmt::Analyze(node)
32219    }
32220}
32221impl From<Begin> for Stmt {
32222    #[inline]
32223    fn from(node: Begin) -> Stmt {
32224        Stmt::Begin(node)
32225    }
32226}
32227impl From<Call> for Stmt {
32228    #[inline]
32229    fn from(node: Call) -> Stmt {
32230        Stmt::Call(node)
32231    }
32232}
32233impl From<Checkpoint> for Stmt {
32234    #[inline]
32235    fn from(node: Checkpoint) -> Stmt {
32236        Stmt::Checkpoint(node)
32237    }
32238}
32239impl From<Close> for Stmt {
32240    #[inline]
32241    fn from(node: Close) -> Stmt {
32242        Stmt::Close(node)
32243    }
32244}
32245impl From<Cluster> for Stmt {
32246    #[inline]
32247    fn from(node: Cluster) -> Stmt {
32248        Stmt::Cluster(node)
32249    }
32250}
32251impl From<CommentOn> for Stmt {
32252    #[inline]
32253    fn from(node: CommentOn) -> Stmt {
32254        Stmt::CommentOn(node)
32255    }
32256}
32257impl From<Commit> for Stmt {
32258    #[inline]
32259    fn from(node: Commit) -> Stmt {
32260        Stmt::Commit(node)
32261    }
32262}
32263impl From<Copy> for Stmt {
32264    #[inline]
32265    fn from(node: Copy) -> Stmt {
32266        Stmt::Copy(node)
32267    }
32268}
32269impl From<CreateAccessMethod> for Stmt {
32270    #[inline]
32271    fn from(node: CreateAccessMethod) -> Stmt {
32272        Stmt::CreateAccessMethod(node)
32273    }
32274}
32275impl From<CreateAggregate> for Stmt {
32276    #[inline]
32277    fn from(node: CreateAggregate) -> Stmt {
32278        Stmt::CreateAggregate(node)
32279    }
32280}
32281impl From<CreateCast> for Stmt {
32282    #[inline]
32283    fn from(node: CreateCast) -> Stmt {
32284        Stmt::CreateCast(node)
32285    }
32286}
32287impl From<CreateCollation> for Stmt {
32288    #[inline]
32289    fn from(node: CreateCollation) -> Stmt {
32290        Stmt::CreateCollation(node)
32291    }
32292}
32293impl From<CreateConversion> for Stmt {
32294    #[inline]
32295    fn from(node: CreateConversion) -> Stmt {
32296        Stmt::CreateConversion(node)
32297    }
32298}
32299impl From<CreateDatabase> for Stmt {
32300    #[inline]
32301    fn from(node: CreateDatabase) -> Stmt {
32302        Stmt::CreateDatabase(node)
32303    }
32304}
32305impl From<CreateDomain> for Stmt {
32306    #[inline]
32307    fn from(node: CreateDomain) -> Stmt {
32308        Stmt::CreateDomain(node)
32309    }
32310}
32311impl From<CreateEventTrigger> for Stmt {
32312    #[inline]
32313    fn from(node: CreateEventTrigger) -> Stmt {
32314        Stmt::CreateEventTrigger(node)
32315    }
32316}
32317impl From<CreateExtension> for Stmt {
32318    #[inline]
32319    fn from(node: CreateExtension) -> Stmt {
32320        Stmt::CreateExtension(node)
32321    }
32322}
32323impl From<CreateForeignDataWrapper> for Stmt {
32324    #[inline]
32325    fn from(node: CreateForeignDataWrapper) -> Stmt {
32326        Stmt::CreateForeignDataWrapper(node)
32327    }
32328}
32329impl From<CreateForeignTable> for Stmt {
32330    #[inline]
32331    fn from(node: CreateForeignTable) -> Stmt {
32332        Stmt::CreateForeignTable(node)
32333    }
32334}
32335impl From<CreateFunction> for Stmt {
32336    #[inline]
32337    fn from(node: CreateFunction) -> Stmt {
32338        Stmt::CreateFunction(node)
32339    }
32340}
32341impl From<CreateGroup> for Stmt {
32342    #[inline]
32343    fn from(node: CreateGroup) -> Stmt {
32344        Stmt::CreateGroup(node)
32345    }
32346}
32347impl From<CreateIndex> for Stmt {
32348    #[inline]
32349    fn from(node: CreateIndex) -> Stmt {
32350        Stmt::CreateIndex(node)
32351    }
32352}
32353impl From<CreateLanguage> for Stmt {
32354    #[inline]
32355    fn from(node: CreateLanguage) -> Stmt {
32356        Stmt::CreateLanguage(node)
32357    }
32358}
32359impl From<CreateMaterializedView> for Stmt {
32360    #[inline]
32361    fn from(node: CreateMaterializedView) -> Stmt {
32362        Stmt::CreateMaterializedView(node)
32363    }
32364}
32365impl From<CreateOperator> for Stmt {
32366    #[inline]
32367    fn from(node: CreateOperator) -> Stmt {
32368        Stmt::CreateOperator(node)
32369    }
32370}
32371impl From<CreateOperatorClass> for Stmt {
32372    #[inline]
32373    fn from(node: CreateOperatorClass) -> Stmt {
32374        Stmt::CreateOperatorClass(node)
32375    }
32376}
32377impl From<CreateOperatorFamily> for Stmt {
32378    #[inline]
32379    fn from(node: CreateOperatorFamily) -> Stmt {
32380        Stmt::CreateOperatorFamily(node)
32381    }
32382}
32383impl From<CreatePolicy> for Stmt {
32384    #[inline]
32385    fn from(node: CreatePolicy) -> Stmt {
32386        Stmt::CreatePolicy(node)
32387    }
32388}
32389impl From<CreateProcedure> for Stmt {
32390    #[inline]
32391    fn from(node: CreateProcedure) -> Stmt {
32392        Stmt::CreateProcedure(node)
32393    }
32394}
32395impl From<CreatePublication> for Stmt {
32396    #[inline]
32397    fn from(node: CreatePublication) -> Stmt {
32398        Stmt::CreatePublication(node)
32399    }
32400}
32401impl From<CreateRole> for Stmt {
32402    #[inline]
32403    fn from(node: CreateRole) -> Stmt {
32404        Stmt::CreateRole(node)
32405    }
32406}
32407impl From<CreateRule> for Stmt {
32408    #[inline]
32409    fn from(node: CreateRule) -> Stmt {
32410        Stmt::CreateRule(node)
32411    }
32412}
32413impl From<CreateSchema> for Stmt {
32414    #[inline]
32415    fn from(node: CreateSchema) -> Stmt {
32416        Stmt::CreateSchema(node)
32417    }
32418}
32419impl From<CreateSequence> for Stmt {
32420    #[inline]
32421    fn from(node: CreateSequence) -> Stmt {
32422        Stmt::CreateSequence(node)
32423    }
32424}
32425impl From<CreateServer> for Stmt {
32426    #[inline]
32427    fn from(node: CreateServer) -> Stmt {
32428        Stmt::CreateServer(node)
32429    }
32430}
32431impl From<CreateStatistics> for Stmt {
32432    #[inline]
32433    fn from(node: CreateStatistics) -> Stmt {
32434        Stmt::CreateStatistics(node)
32435    }
32436}
32437impl From<CreateSubscription> for Stmt {
32438    #[inline]
32439    fn from(node: CreateSubscription) -> Stmt {
32440        Stmt::CreateSubscription(node)
32441    }
32442}
32443impl From<CreateTable> for Stmt {
32444    #[inline]
32445    fn from(node: CreateTable) -> Stmt {
32446        Stmt::CreateTable(node)
32447    }
32448}
32449impl From<CreateTableAs> for Stmt {
32450    #[inline]
32451    fn from(node: CreateTableAs) -> Stmt {
32452        Stmt::CreateTableAs(node)
32453    }
32454}
32455impl From<CreateTablespace> for Stmt {
32456    #[inline]
32457    fn from(node: CreateTablespace) -> Stmt {
32458        Stmt::CreateTablespace(node)
32459    }
32460}
32461impl From<CreateTextSearchConfiguration> for Stmt {
32462    #[inline]
32463    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32464        Stmt::CreateTextSearchConfiguration(node)
32465    }
32466}
32467impl From<CreateTextSearchDictionary> for Stmt {
32468    #[inline]
32469    fn from(node: CreateTextSearchDictionary) -> Stmt {
32470        Stmt::CreateTextSearchDictionary(node)
32471    }
32472}
32473impl From<CreateTextSearchParser> for Stmt {
32474    #[inline]
32475    fn from(node: CreateTextSearchParser) -> Stmt {
32476        Stmt::CreateTextSearchParser(node)
32477    }
32478}
32479impl From<CreateTextSearchTemplate> for Stmt {
32480    #[inline]
32481    fn from(node: CreateTextSearchTemplate) -> Stmt {
32482        Stmt::CreateTextSearchTemplate(node)
32483    }
32484}
32485impl From<CreateTransform> for Stmt {
32486    #[inline]
32487    fn from(node: CreateTransform) -> Stmt {
32488        Stmt::CreateTransform(node)
32489    }
32490}
32491impl From<CreateTrigger> for Stmt {
32492    #[inline]
32493    fn from(node: CreateTrigger) -> Stmt {
32494        Stmt::CreateTrigger(node)
32495    }
32496}
32497impl From<CreateType> for Stmt {
32498    #[inline]
32499    fn from(node: CreateType) -> Stmt {
32500        Stmt::CreateType(node)
32501    }
32502}
32503impl From<CreateUser> for Stmt {
32504    #[inline]
32505    fn from(node: CreateUser) -> Stmt {
32506        Stmt::CreateUser(node)
32507    }
32508}
32509impl From<CreateUserMapping> for Stmt {
32510    #[inline]
32511    fn from(node: CreateUserMapping) -> Stmt {
32512        Stmt::CreateUserMapping(node)
32513    }
32514}
32515impl From<CreateView> for Stmt {
32516    #[inline]
32517    fn from(node: CreateView) -> Stmt {
32518        Stmt::CreateView(node)
32519    }
32520}
32521impl From<Deallocate> for Stmt {
32522    #[inline]
32523    fn from(node: Deallocate) -> Stmt {
32524        Stmt::Deallocate(node)
32525    }
32526}
32527impl From<Declare> for Stmt {
32528    #[inline]
32529    fn from(node: Declare) -> Stmt {
32530        Stmt::Declare(node)
32531    }
32532}
32533impl From<Delete> for Stmt {
32534    #[inline]
32535    fn from(node: Delete) -> Stmt {
32536        Stmt::Delete(node)
32537    }
32538}
32539impl From<Discard> for Stmt {
32540    #[inline]
32541    fn from(node: Discard) -> Stmt {
32542        Stmt::Discard(node)
32543    }
32544}
32545impl From<Do> for Stmt {
32546    #[inline]
32547    fn from(node: Do) -> Stmt {
32548        Stmt::Do(node)
32549    }
32550}
32551impl From<DropAccessMethod> for Stmt {
32552    #[inline]
32553    fn from(node: DropAccessMethod) -> Stmt {
32554        Stmt::DropAccessMethod(node)
32555    }
32556}
32557impl From<DropAggregate> for Stmt {
32558    #[inline]
32559    fn from(node: DropAggregate) -> Stmt {
32560        Stmt::DropAggregate(node)
32561    }
32562}
32563impl From<DropCast> for Stmt {
32564    #[inline]
32565    fn from(node: DropCast) -> Stmt {
32566        Stmt::DropCast(node)
32567    }
32568}
32569impl From<DropCollation> for Stmt {
32570    #[inline]
32571    fn from(node: DropCollation) -> Stmt {
32572        Stmt::DropCollation(node)
32573    }
32574}
32575impl From<DropConversion> for Stmt {
32576    #[inline]
32577    fn from(node: DropConversion) -> Stmt {
32578        Stmt::DropConversion(node)
32579    }
32580}
32581impl From<DropDatabase> for Stmt {
32582    #[inline]
32583    fn from(node: DropDatabase) -> Stmt {
32584        Stmt::DropDatabase(node)
32585    }
32586}
32587impl From<DropDomain> for Stmt {
32588    #[inline]
32589    fn from(node: DropDomain) -> Stmt {
32590        Stmt::DropDomain(node)
32591    }
32592}
32593impl From<DropEventTrigger> for Stmt {
32594    #[inline]
32595    fn from(node: DropEventTrigger) -> Stmt {
32596        Stmt::DropEventTrigger(node)
32597    }
32598}
32599impl From<DropExtension> for Stmt {
32600    #[inline]
32601    fn from(node: DropExtension) -> Stmt {
32602        Stmt::DropExtension(node)
32603    }
32604}
32605impl From<DropForeignDataWrapper> for Stmt {
32606    #[inline]
32607    fn from(node: DropForeignDataWrapper) -> Stmt {
32608        Stmt::DropForeignDataWrapper(node)
32609    }
32610}
32611impl From<DropForeignTable> for Stmt {
32612    #[inline]
32613    fn from(node: DropForeignTable) -> Stmt {
32614        Stmt::DropForeignTable(node)
32615    }
32616}
32617impl From<DropFunction> for Stmt {
32618    #[inline]
32619    fn from(node: DropFunction) -> Stmt {
32620        Stmt::DropFunction(node)
32621    }
32622}
32623impl From<DropGroup> for Stmt {
32624    #[inline]
32625    fn from(node: DropGroup) -> Stmt {
32626        Stmt::DropGroup(node)
32627    }
32628}
32629impl From<DropIndex> for Stmt {
32630    #[inline]
32631    fn from(node: DropIndex) -> Stmt {
32632        Stmt::DropIndex(node)
32633    }
32634}
32635impl From<DropLanguage> for Stmt {
32636    #[inline]
32637    fn from(node: DropLanguage) -> Stmt {
32638        Stmt::DropLanguage(node)
32639    }
32640}
32641impl From<DropMaterializedView> for Stmt {
32642    #[inline]
32643    fn from(node: DropMaterializedView) -> Stmt {
32644        Stmt::DropMaterializedView(node)
32645    }
32646}
32647impl From<DropOperator> for Stmt {
32648    #[inline]
32649    fn from(node: DropOperator) -> Stmt {
32650        Stmt::DropOperator(node)
32651    }
32652}
32653impl From<DropOperatorClass> for Stmt {
32654    #[inline]
32655    fn from(node: DropOperatorClass) -> Stmt {
32656        Stmt::DropOperatorClass(node)
32657    }
32658}
32659impl From<DropOperatorFamily> for Stmt {
32660    #[inline]
32661    fn from(node: DropOperatorFamily) -> Stmt {
32662        Stmt::DropOperatorFamily(node)
32663    }
32664}
32665impl From<DropOwned> for Stmt {
32666    #[inline]
32667    fn from(node: DropOwned) -> Stmt {
32668        Stmt::DropOwned(node)
32669    }
32670}
32671impl From<DropPolicy> for Stmt {
32672    #[inline]
32673    fn from(node: DropPolicy) -> Stmt {
32674        Stmt::DropPolicy(node)
32675    }
32676}
32677impl From<DropProcedure> for Stmt {
32678    #[inline]
32679    fn from(node: DropProcedure) -> Stmt {
32680        Stmt::DropProcedure(node)
32681    }
32682}
32683impl From<DropPublication> for Stmt {
32684    #[inline]
32685    fn from(node: DropPublication) -> Stmt {
32686        Stmt::DropPublication(node)
32687    }
32688}
32689impl From<DropRole> for Stmt {
32690    #[inline]
32691    fn from(node: DropRole) -> Stmt {
32692        Stmt::DropRole(node)
32693    }
32694}
32695impl From<DropRoutine> for Stmt {
32696    #[inline]
32697    fn from(node: DropRoutine) -> Stmt {
32698        Stmt::DropRoutine(node)
32699    }
32700}
32701impl From<DropRule> for Stmt {
32702    #[inline]
32703    fn from(node: DropRule) -> Stmt {
32704        Stmt::DropRule(node)
32705    }
32706}
32707impl From<DropSchema> for Stmt {
32708    #[inline]
32709    fn from(node: DropSchema) -> Stmt {
32710        Stmt::DropSchema(node)
32711    }
32712}
32713impl From<DropSequence> for Stmt {
32714    #[inline]
32715    fn from(node: DropSequence) -> Stmt {
32716        Stmt::DropSequence(node)
32717    }
32718}
32719impl From<DropServer> for Stmt {
32720    #[inline]
32721    fn from(node: DropServer) -> Stmt {
32722        Stmt::DropServer(node)
32723    }
32724}
32725impl From<DropStatistics> for Stmt {
32726    #[inline]
32727    fn from(node: DropStatistics) -> Stmt {
32728        Stmt::DropStatistics(node)
32729    }
32730}
32731impl From<DropSubscription> for Stmt {
32732    #[inline]
32733    fn from(node: DropSubscription) -> Stmt {
32734        Stmt::DropSubscription(node)
32735    }
32736}
32737impl From<DropTable> for Stmt {
32738    #[inline]
32739    fn from(node: DropTable) -> Stmt {
32740        Stmt::DropTable(node)
32741    }
32742}
32743impl From<DropTablespace> for Stmt {
32744    #[inline]
32745    fn from(node: DropTablespace) -> Stmt {
32746        Stmt::DropTablespace(node)
32747    }
32748}
32749impl From<DropTextSearchConfig> for Stmt {
32750    #[inline]
32751    fn from(node: DropTextSearchConfig) -> Stmt {
32752        Stmt::DropTextSearchConfig(node)
32753    }
32754}
32755impl From<DropTextSearchDict> for Stmt {
32756    #[inline]
32757    fn from(node: DropTextSearchDict) -> Stmt {
32758        Stmt::DropTextSearchDict(node)
32759    }
32760}
32761impl From<DropTextSearchParser> for Stmt {
32762    #[inline]
32763    fn from(node: DropTextSearchParser) -> Stmt {
32764        Stmt::DropTextSearchParser(node)
32765    }
32766}
32767impl From<DropTextSearchTemplate> for Stmt {
32768    #[inline]
32769    fn from(node: DropTextSearchTemplate) -> Stmt {
32770        Stmt::DropTextSearchTemplate(node)
32771    }
32772}
32773impl From<DropTransform> for Stmt {
32774    #[inline]
32775    fn from(node: DropTransform) -> Stmt {
32776        Stmt::DropTransform(node)
32777    }
32778}
32779impl From<DropTrigger> for Stmt {
32780    #[inline]
32781    fn from(node: DropTrigger) -> Stmt {
32782        Stmt::DropTrigger(node)
32783    }
32784}
32785impl From<DropType> for Stmt {
32786    #[inline]
32787    fn from(node: DropType) -> Stmt {
32788        Stmt::DropType(node)
32789    }
32790}
32791impl From<DropUser> for Stmt {
32792    #[inline]
32793    fn from(node: DropUser) -> Stmt {
32794        Stmt::DropUser(node)
32795    }
32796}
32797impl From<DropUserMapping> for Stmt {
32798    #[inline]
32799    fn from(node: DropUserMapping) -> Stmt {
32800        Stmt::DropUserMapping(node)
32801    }
32802}
32803impl From<DropView> for Stmt {
32804    #[inline]
32805    fn from(node: DropView) -> Stmt {
32806        Stmt::DropView(node)
32807    }
32808}
32809impl From<Execute> for Stmt {
32810    #[inline]
32811    fn from(node: Execute) -> Stmt {
32812        Stmt::Execute(node)
32813    }
32814}
32815impl From<Explain> for Stmt {
32816    #[inline]
32817    fn from(node: Explain) -> Stmt {
32818        Stmt::Explain(node)
32819    }
32820}
32821impl From<Fetch> for Stmt {
32822    #[inline]
32823    fn from(node: Fetch) -> Stmt {
32824        Stmt::Fetch(node)
32825    }
32826}
32827impl From<Grant> for Stmt {
32828    #[inline]
32829    fn from(node: Grant) -> Stmt {
32830        Stmt::Grant(node)
32831    }
32832}
32833impl From<ImportForeignSchema> for Stmt {
32834    #[inline]
32835    fn from(node: ImportForeignSchema) -> Stmt {
32836        Stmt::ImportForeignSchema(node)
32837    }
32838}
32839impl From<Insert> for Stmt {
32840    #[inline]
32841    fn from(node: Insert) -> Stmt {
32842        Stmt::Insert(node)
32843    }
32844}
32845impl From<Listen> for Stmt {
32846    #[inline]
32847    fn from(node: Listen) -> Stmt {
32848        Stmt::Listen(node)
32849    }
32850}
32851impl From<Load> for Stmt {
32852    #[inline]
32853    fn from(node: Load) -> Stmt {
32854        Stmt::Load(node)
32855    }
32856}
32857impl From<Lock> for Stmt {
32858    #[inline]
32859    fn from(node: Lock) -> Stmt {
32860        Stmt::Lock(node)
32861    }
32862}
32863impl From<Merge> for Stmt {
32864    #[inline]
32865    fn from(node: Merge) -> Stmt {
32866        Stmt::Merge(node)
32867    }
32868}
32869impl From<Move> for Stmt {
32870    #[inline]
32871    fn from(node: Move) -> Stmt {
32872        Stmt::Move(node)
32873    }
32874}
32875impl From<Notify> for Stmt {
32876    #[inline]
32877    fn from(node: Notify) -> Stmt {
32878        Stmt::Notify(node)
32879    }
32880}
32881impl From<ParenSelect> for Stmt {
32882    #[inline]
32883    fn from(node: ParenSelect) -> Stmt {
32884        Stmt::ParenSelect(node)
32885    }
32886}
32887impl From<Prepare> for Stmt {
32888    #[inline]
32889    fn from(node: Prepare) -> Stmt {
32890        Stmt::Prepare(node)
32891    }
32892}
32893impl From<PrepareTransaction> for Stmt {
32894    #[inline]
32895    fn from(node: PrepareTransaction) -> Stmt {
32896        Stmt::PrepareTransaction(node)
32897    }
32898}
32899impl From<Reassign> for Stmt {
32900    #[inline]
32901    fn from(node: Reassign) -> Stmt {
32902        Stmt::Reassign(node)
32903    }
32904}
32905impl From<Refresh> for Stmt {
32906    #[inline]
32907    fn from(node: Refresh) -> Stmt {
32908        Stmt::Refresh(node)
32909    }
32910}
32911impl From<Reindex> for Stmt {
32912    #[inline]
32913    fn from(node: Reindex) -> Stmt {
32914        Stmt::Reindex(node)
32915    }
32916}
32917impl From<ReleaseSavepoint> for Stmt {
32918    #[inline]
32919    fn from(node: ReleaseSavepoint) -> Stmt {
32920        Stmt::ReleaseSavepoint(node)
32921    }
32922}
32923impl From<Reset> for Stmt {
32924    #[inline]
32925    fn from(node: Reset) -> Stmt {
32926        Stmt::Reset(node)
32927    }
32928}
32929impl From<ResetSessionAuth> for Stmt {
32930    #[inline]
32931    fn from(node: ResetSessionAuth) -> Stmt {
32932        Stmt::ResetSessionAuth(node)
32933    }
32934}
32935impl From<Revoke> for Stmt {
32936    #[inline]
32937    fn from(node: Revoke) -> Stmt {
32938        Stmt::Revoke(node)
32939    }
32940}
32941impl From<Rollback> for Stmt {
32942    #[inline]
32943    fn from(node: Rollback) -> Stmt {
32944        Stmt::Rollback(node)
32945    }
32946}
32947impl From<Savepoint> for Stmt {
32948    #[inline]
32949    fn from(node: Savepoint) -> Stmt {
32950        Stmt::Savepoint(node)
32951    }
32952}
32953impl From<SecurityLabel> for Stmt {
32954    #[inline]
32955    fn from(node: SecurityLabel) -> Stmt {
32956        Stmt::SecurityLabel(node)
32957    }
32958}
32959impl From<Select> for Stmt {
32960    #[inline]
32961    fn from(node: Select) -> Stmt {
32962        Stmt::Select(node)
32963    }
32964}
32965impl From<SelectInto> for Stmt {
32966    #[inline]
32967    fn from(node: SelectInto) -> Stmt {
32968        Stmt::SelectInto(node)
32969    }
32970}
32971impl From<Set> for Stmt {
32972    #[inline]
32973    fn from(node: Set) -> Stmt {
32974        Stmt::Set(node)
32975    }
32976}
32977impl From<SetConstraints> for Stmt {
32978    #[inline]
32979    fn from(node: SetConstraints) -> Stmt {
32980        Stmt::SetConstraints(node)
32981    }
32982}
32983impl From<SetRole> for Stmt {
32984    #[inline]
32985    fn from(node: SetRole) -> Stmt {
32986        Stmt::SetRole(node)
32987    }
32988}
32989impl From<SetSessionAuth> for Stmt {
32990    #[inline]
32991    fn from(node: SetSessionAuth) -> Stmt {
32992        Stmt::SetSessionAuth(node)
32993    }
32994}
32995impl From<SetTransaction> for Stmt {
32996    #[inline]
32997    fn from(node: SetTransaction) -> Stmt {
32998        Stmt::SetTransaction(node)
32999    }
33000}
33001impl From<Show> for Stmt {
33002    #[inline]
33003    fn from(node: Show) -> Stmt {
33004        Stmt::Show(node)
33005    }
33006}
33007impl From<Table> for Stmt {
33008    #[inline]
33009    fn from(node: Table) -> Stmt {
33010        Stmt::Table(node)
33011    }
33012}
33013impl From<Truncate> for Stmt {
33014    #[inline]
33015    fn from(node: Truncate) -> Stmt {
33016        Stmt::Truncate(node)
33017    }
33018}
33019impl From<Unlisten> for Stmt {
33020    #[inline]
33021    fn from(node: Unlisten) -> Stmt {
33022        Stmt::Unlisten(node)
33023    }
33024}
33025impl From<Update> for Stmt {
33026    #[inline]
33027    fn from(node: Update) -> Stmt {
33028        Stmt::Update(node)
33029    }
33030}
33031impl From<Vacuum> for Stmt {
33032    #[inline]
33033    fn from(node: Vacuum) -> Stmt {
33034        Stmt::Vacuum(node)
33035    }
33036}
33037impl From<Values> for Stmt {
33038    #[inline]
33039    fn from(node: Values) -> Stmt {
33040        Stmt::Values(node)
33041    }
33042}
33043impl AstNode for TableArg {
33044    #[inline]
33045    fn can_cast(kind: SyntaxKind) -> bool {
33046        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
33047    }
33048    #[inline]
33049    fn cast(syntax: SyntaxNode) -> Option<Self> {
33050        let res = match syntax.kind() {
33051            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
33052            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
33053            _ => {
33054                if let Some(result) = TableConstraint::cast(syntax) {
33055                    return Some(TableArg::TableConstraint(result));
33056                }
33057                return None;
33058            }
33059        };
33060        Some(res)
33061    }
33062    #[inline]
33063    fn syntax(&self) -> &SyntaxNode {
33064        match self {
33065            TableArg::Column(it) => &it.syntax,
33066            TableArg::LikeClause(it) => &it.syntax,
33067            TableArg::TableConstraint(it) => it.syntax(),
33068        }
33069    }
33070}
33071impl From<Column> for TableArg {
33072    #[inline]
33073    fn from(node: Column) -> TableArg {
33074        TableArg::Column(node)
33075    }
33076}
33077impl From<LikeClause> for TableArg {
33078    #[inline]
33079    fn from(node: LikeClause) -> TableArg {
33080        TableArg::LikeClause(node)
33081    }
33082}
33083impl AstNode for TableConstraint {
33084    #[inline]
33085    fn can_cast(kind: SyntaxKind) -> bool {
33086        matches!(
33087            kind,
33088            SyntaxKind::CHECK_CONSTRAINT
33089                | SyntaxKind::EXCLUDE_CONSTRAINT
33090                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
33091                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33092                | SyntaxKind::UNIQUE_CONSTRAINT
33093        )
33094    }
33095    #[inline]
33096    fn cast(syntax: SyntaxNode) -> Option<Self> {
33097        let res = match syntax.kind() {
33098            SyntaxKind::CHECK_CONSTRAINT => {
33099                TableConstraint::CheckConstraint(CheckConstraint { syntax })
33100            }
33101            SyntaxKind::EXCLUDE_CONSTRAINT => {
33102                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
33103            }
33104            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
33105                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
33106            }
33107            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33108                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33109            }
33110            SyntaxKind::UNIQUE_CONSTRAINT => {
33111                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
33112            }
33113            _ => {
33114                return None;
33115            }
33116        };
33117        Some(res)
33118    }
33119    #[inline]
33120    fn syntax(&self) -> &SyntaxNode {
33121        match self {
33122            TableConstraint::CheckConstraint(it) => &it.syntax,
33123            TableConstraint::ExcludeConstraint(it) => &it.syntax,
33124            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
33125            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
33126            TableConstraint::UniqueConstraint(it) => &it.syntax,
33127        }
33128    }
33129}
33130impl From<CheckConstraint> for TableConstraint {
33131    #[inline]
33132    fn from(node: CheckConstraint) -> TableConstraint {
33133        TableConstraint::CheckConstraint(node)
33134    }
33135}
33136impl From<ExcludeConstraint> for TableConstraint {
33137    #[inline]
33138    fn from(node: ExcludeConstraint) -> TableConstraint {
33139        TableConstraint::ExcludeConstraint(node)
33140    }
33141}
33142impl From<ForeignKeyConstraint> for TableConstraint {
33143    #[inline]
33144    fn from(node: ForeignKeyConstraint) -> TableConstraint {
33145        TableConstraint::ForeignKeyConstraint(node)
33146    }
33147}
33148impl From<PrimaryKeyConstraint> for TableConstraint {
33149    #[inline]
33150    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
33151        TableConstraint::PrimaryKeyConstraint(node)
33152    }
33153}
33154impl From<UniqueConstraint> for TableConstraint {
33155    #[inline]
33156    fn from(node: UniqueConstraint) -> TableConstraint {
33157        TableConstraint::UniqueConstraint(node)
33158    }
33159}
33160impl AstNode for Timezone {
33161    #[inline]
33162    fn can_cast(kind: SyntaxKind) -> bool {
33163        matches!(
33164            kind,
33165            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
33166        )
33167    }
33168    #[inline]
33169    fn cast(syntax: SyntaxNode) -> Option<Self> {
33170        let res = match syntax.kind() {
33171            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
33172            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
33173            _ => {
33174                return None;
33175            }
33176        };
33177        Some(res)
33178    }
33179    #[inline]
33180    fn syntax(&self) -> &SyntaxNode {
33181        match self {
33182            Timezone::WithTimezone(it) => &it.syntax,
33183            Timezone::WithoutTimezone(it) => &it.syntax,
33184        }
33185    }
33186}
33187impl From<WithTimezone> for Timezone {
33188    #[inline]
33189    fn from(node: WithTimezone) -> Timezone {
33190        Timezone::WithTimezone(node)
33191    }
33192}
33193impl From<WithoutTimezone> for Timezone {
33194    #[inline]
33195    fn from(node: WithoutTimezone) -> Timezone {
33196        Timezone::WithoutTimezone(node)
33197    }
33198}
33199impl AstNode for TransactionMode {
33200    #[inline]
33201    fn can_cast(kind: SyntaxKind) -> bool {
33202        matches!(
33203            kind,
33204            SyntaxKind::DEFERRABLE
33205                | SyntaxKind::NOT_DEFERRABLE
33206                | SyntaxKind::READ_COMMITTED
33207                | SyntaxKind::READ_ONLY
33208                | SyntaxKind::READ_UNCOMMITTED
33209                | SyntaxKind::READ_WRITE
33210                | SyntaxKind::REPEATABLE_READ
33211                | SyntaxKind::SERIALIZABLE
33212        )
33213    }
33214    #[inline]
33215    fn cast(syntax: SyntaxNode) -> Option<Self> {
33216        let res = match syntax.kind() {
33217            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
33218            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
33219            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
33220            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
33221            SyntaxKind::READ_UNCOMMITTED => {
33222                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
33223            }
33224            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
33225            SyntaxKind::REPEATABLE_READ => {
33226                TransactionMode::RepeatableRead(RepeatableRead { syntax })
33227            }
33228            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
33229            _ => {
33230                return None;
33231            }
33232        };
33233        Some(res)
33234    }
33235    #[inline]
33236    fn syntax(&self) -> &SyntaxNode {
33237        match self {
33238            TransactionMode::Deferrable(it) => &it.syntax,
33239            TransactionMode::NotDeferrable(it) => &it.syntax,
33240            TransactionMode::ReadCommitted(it) => &it.syntax,
33241            TransactionMode::ReadOnly(it) => &it.syntax,
33242            TransactionMode::ReadUncommitted(it) => &it.syntax,
33243            TransactionMode::ReadWrite(it) => &it.syntax,
33244            TransactionMode::RepeatableRead(it) => &it.syntax,
33245            TransactionMode::Serializable(it) => &it.syntax,
33246        }
33247    }
33248}
33249impl From<Deferrable> for TransactionMode {
33250    #[inline]
33251    fn from(node: Deferrable) -> TransactionMode {
33252        TransactionMode::Deferrable(node)
33253    }
33254}
33255impl From<NotDeferrable> for TransactionMode {
33256    #[inline]
33257    fn from(node: NotDeferrable) -> TransactionMode {
33258        TransactionMode::NotDeferrable(node)
33259    }
33260}
33261impl From<ReadCommitted> for TransactionMode {
33262    #[inline]
33263    fn from(node: ReadCommitted) -> TransactionMode {
33264        TransactionMode::ReadCommitted(node)
33265    }
33266}
33267impl From<ReadOnly> for TransactionMode {
33268    #[inline]
33269    fn from(node: ReadOnly) -> TransactionMode {
33270        TransactionMode::ReadOnly(node)
33271    }
33272}
33273impl From<ReadUncommitted> for TransactionMode {
33274    #[inline]
33275    fn from(node: ReadUncommitted) -> TransactionMode {
33276        TransactionMode::ReadUncommitted(node)
33277    }
33278}
33279impl From<ReadWrite> for TransactionMode {
33280    #[inline]
33281    fn from(node: ReadWrite) -> TransactionMode {
33282        TransactionMode::ReadWrite(node)
33283    }
33284}
33285impl From<RepeatableRead> for TransactionMode {
33286    #[inline]
33287    fn from(node: RepeatableRead) -> TransactionMode {
33288        TransactionMode::RepeatableRead(node)
33289    }
33290}
33291impl From<Serializable> for TransactionMode {
33292    #[inline]
33293    fn from(node: Serializable) -> TransactionMode {
33294        TransactionMode::Serializable(node)
33295    }
33296}
33297impl AstNode for Type {
33298    #[inline]
33299    fn can_cast(kind: SyntaxKind) -> bool {
33300        matches!(
33301            kind,
33302            SyntaxKind::ARRAY_TYPE
33303                | SyntaxKind::BIT_TYPE
33304                | SyntaxKind::CHAR_TYPE
33305                | SyntaxKind::DOUBLE_TYPE
33306                | SyntaxKind::EXPR_TYPE
33307                | SyntaxKind::INTERVAL_TYPE
33308                | SyntaxKind::PATH_TYPE
33309                | SyntaxKind::PERCENT_TYPE
33310                | SyntaxKind::TIME_TYPE
33311        )
33312    }
33313    #[inline]
33314    fn cast(syntax: SyntaxNode) -> Option<Self> {
33315        let res = match syntax.kind() {
33316            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33317            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33318            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33319            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33320            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33321            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33322            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33323            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33324            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33325            _ => {
33326                return None;
33327            }
33328        };
33329        Some(res)
33330    }
33331    #[inline]
33332    fn syntax(&self) -> &SyntaxNode {
33333        match self {
33334            Type::ArrayType(it) => &it.syntax,
33335            Type::BitType(it) => &it.syntax,
33336            Type::CharType(it) => &it.syntax,
33337            Type::DoubleType(it) => &it.syntax,
33338            Type::ExprType(it) => &it.syntax,
33339            Type::IntervalType(it) => &it.syntax,
33340            Type::PathType(it) => &it.syntax,
33341            Type::PercentType(it) => &it.syntax,
33342            Type::TimeType(it) => &it.syntax,
33343        }
33344    }
33345}
33346impl From<ArrayType> for Type {
33347    #[inline]
33348    fn from(node: ArrayType) -> Type {
33349        Type::ArrayType(node)
33350    }
33351}
33352impl From<BitType> for Type {
33353    #[inline]
33354    fn from(node: BitType) -> Type {
33355        Type::BitType(node)
33356    }
33357}
33358impl From<CharType> for Type {
33359    #[inline]
33360    fn from(node: CharType) -> Type {
33361        Type::CharType(node)
33362    }
33363}
33364impl From<DoubleType> for Type {
33365    #[inline]
33366    fn from(node: DoubleType) -> Type {
33367        Type::DoubleType(node)
33368    }
33369}
33370impl From<ExprType> for Type {
33371    #[inline]
33372    fn from(node: ExprType) -> Type {
33373        Type::ExprType(node)
33374    }
33375}
33376impl From<IntervalType> for Type {
33377    #[inline]
33378    fn from(node: IntervalType) -> Type {
33379        Type::IntervalType(node)
33380    }
33381}
33382impl From<PathType> for Type {
33383    #[inline]
33384    fn from(node: PathType) -> Type {
33385        Type::PathType(node)
33386    }
33387}
33388impl From<PercentType> for Type {
33389    #[inline]
33390    fn from(node: PercentType) -> Type {
33391        Type::PercentType(node)
33392    }
33393}
33394impl From<TimeType> for Type {
33395    #[inline]
33396    fn from(node: TimeType) -> Type {
33397        Type::TimeType(node)
33398    }
33399}
33400impl AstNode for WithQuery {
33401    #[inline]
33402    fn can_cast(kind: SyntaxKind) -> bool {
33403        matches!(
33404            kind,
33405            SyntaxKind::COMPOUND_SELECT
33406                | SyntaxKind::DELETE
33407                | SyntaxKind::INSERT
33408                | SyntaxKind::MERGE
33409                | SyntaxKind::PAREN_SELECT
33410                | SyntaxKind::SELECT
33411                | SyntaxKind::TABLE
33412                | SyntaxKind::UPDATE
33413                | SyntaxKind::VALUES
33414        )
33415    }
33416    #[inline]
33417    fn cast(syntax: SyntaxNode) -> Option<Self> {
33418        let res = match syntax.kind() {
33419            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33420            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33421            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33422            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33423            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33424            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33425            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33426            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33427            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33428            _ => {
33429                return None;
33430            }
33431        };
33432        Some(res)
33433    }
33434    #[inline]
33435    fn syntax(&self) -> &SyntaxNode {
33436        match self {
33437            WithQuery::CompoundSelect(it) => &it.syntax,
33438            WithQuery::Delete(it) => &it.syntax,
33439            WithQuery::Insert(it) => &it.syntax,
33440            WithQuery::Merge(it) => &it.syntax,
33441            WithQuery::ParenSelect(it) => &it.syntax,
33442            WithQuery::Select(it) => &it.syntax,
33443            WithQuery::Table(it) => &it.syntax,
33444            WithQuery::Update(it) => &it.syntax,
33445            WithQuery::Values(it) => &it.syntax,
33446        }
33447    }
33448}
33449impl From<CompoundSelect> for WithQuery {
33450    #[inline]
33451    fn from(node: CompoundSelect) -> WithQuery {
33452        WithQuery::CompoundSelect(node)
33453    }
33454}
33455impl From<Delete> for WithQuery {
33456    #[inline]
33457    fn from(node: Delete) -> WithQuery {
33458        WithQuery::Delete(node)
33459    }
33460}
33461impl From<Insert> for WithQuery {
33462    #[inline]
33463    fn from(node: Insert) -> WithQuery {
33464        WithQuery::Insert(node)
33465    }
33466}
33467impl From<Merge> for WithQuery {
33468    #[inline]
33469    fn from(node: Merge) -> WithQuery {
33470        WithQuery::Merge(node)
33471    }
33472}
33473impl From<ParenSelect> for WithQuery {
33474    #[inline]
33475    fn from(node: ParenSelect) -> WithQuery {
33476        WithQuery::ParenSelect(node)
33477    }
33478}
33479impl From<Select> for WithQuery {
33480    #[inline]
33481    fn from(node: Select) -> WithQuery {
33482        WithQuery::Select(node)
33483    }
33484}
33485impl From<Table> for WithQuery {
33486    #[inline]
33487    fn from(node: Table) -> WithQuery {
33488        WithQuery::Table(node)
33489    }
33490}
33491impl From<Update> for WithQuery {
33492    #[inline]
33493    fn from(node: Update) -> WithQuery {
33494        WithQuery::Update(node)
33495    }
33496}
33497impl From<Values> for WithQuery {
33498    #[inline]
33499    fn from(node: Values) -> WithQuery {
33500        WithQuery::Values(node)
33501    }
33502}