squawk_syntax/ast/generated/
nodes.rs

1// Generated via:
2//   cargo xtask codegen
3
4use crate::SyntaxKind;
5use crate::ast::AstNode;
6use crate::ast::{AstChildren, support};
7use crate::syntax_node::SyntaxNode;
8use crate::syntax_node::SyntaxToken;
9
10#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11pub struct AddColumn {
12    pub(crate) syntax: SyntaxNode,
13}
14impl AddColumn {
15    #[inline]
16    pub fn collate(&self) -> Option<Collate> {
17        support::child(&self.syntax)
18    }
19    #[inline]
20    pub fn constraints(&self) -> AstChildren<Constraint> {
21        support::children(&self.syntax)
22    }
23    #[inline]
24    pub fn if_not_exists(&self) -> Option<IfNotExists> {
25        support::child(&self.syntax)
26    }
27    #[inline]
28    pub fn name(&self) -> Option<Name> {
29        support::child(&self.syntax)
30    }
31    #[inline]
32    pub fn ty(&self) -> Option<Type> {
33        support::child(&self.syntax)
34    }
35    #[inline]
36    pub fn add_token(&self) -> Option<SyntaxToken> {
37        support::token(&self.syntax, SyntaxKind::ADD_KW)
38    }
39    #[inline]
40    pub fn column_token(&self) -> Option<SyntaxToken> {
41        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
42    }
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Hash)]
46pub struct AddConstraint {
47    pub(crate) syntax: SyntaxNode,
48}
49impl AddConstraint {
50    #[inline]
51    pub fn constraint(&self) -> Option<Constraint> {
52        support::child(&self.syntax)
53    }
54    #[inline]
55    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
56        support::child(&self.syntax)
57    }
58    #[inline]
59    pub fn enforced(&self) -> Option<Enforced> {
60        support::child(&self.syntax)
61    }
62    #[inline]
63    pub fn initially_deferred_constraint_option(
64        &self,
65    ) -> Option<InitiallyDeferredConstraintOption> {
66        support::child(&self.syntax)
67    }
68    #[inline]
69    pub fn initially_immediate_constraint_option(
70        &self,
71    ) -> Option<InitiallyImmediateConstraintOption> {
72        support::child(&self.syntax)
73    }
74    #[inline]
75    pub fn no_inherit(&self) -> Option<NoInherit> {
76        support::child(&self.syntax)
77    }
78    #[inline]
79    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
80        support::child(&self.syntax)
81    }
82    #[inline]
83    pub fn not_enforced(&self) -> Option<NotEnforced> {
84        support::child(&self.syntax)
85    }
86    #[inline]
87    pub fn not_valid(&self) -> Option<NotValid> {
88        support::child(&self.syntax)
89    }
90    #[inline]
91    pub fn add_token(&self) -> Option<SyntaxToken> {
92        support::token(&self.syntax, SyntaxKind::ADD_KW)
93    }
94}
95
96#[derive(Debug, Clone, PartialEq, Eq, Hash)]
97pub struct AddGenerated {
98    pub(crate) syntax: SyntaxNode,
99}
100impl AddGenerated {
101    #[inline]
102    pub fn add_token(&self) -> Option<SyntaxToken> {
103        support::token(&self.syntax, SyntaxKind::ADD_KW)
104    }
105}
106
107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
108pub struct AddOpClassOptions {
109    pub(crate) syntax: SyntaxNode,
110}
111impl AddOpClassOptions {
112    #[inline]
113    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
114        support::child(&self.syntax)
115    }
116    #[inline]
117    pub fn add_token(&self) -> Option<SyntaxToken> {
118        support::token(&self.syntax, SyntaxKind::ADD_KW)
119    }
120}
121
122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
123pub struct Aggregate {
124    pub(crate) syntax: SyntaxNode,
125}
126impl Aggregate {
127    #[inline]
128    pub fn param_list(&self) -> Option<ParamList> {
129        support::child(&self.syntax)
130    }
131    #[inline]
132    pub fn path(&self) -> Option<Path> {
133        support::child(&self.syntax)
134    }
135}
136
137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
138pub struct Alias {
139    pub(crate) syntax: SyntaxNode,
140}
141impl Alias {
142    #[inline]
143    pub fn column_list(&self) -> Option<ColumnList> {
144        support::child(&self.syntax)
145    }
146    #[inline]
147    pub fn name(&self) -> Option<Name> {
148        support::child(&self.syntax)
149    }
150    #[inline]
151    pub fn as_token(&self) -> Option<SyntaxToken> {
152        support::token(&self.syntax, SyntaxKind::AS_KW)
153    }
154}
155
156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
157pub struct AllFn {
158    pub(crate) syntax: SyntaxNode,
159}
160impl AllFn {
161    #[inline]
162    pub fn expr(&self) -> Option<Expr> {
163        support::child(&self.syntax)
164    }
165    #[inline]
166    pub fn select_variant(&self) -> Option<SelectVariant> {
167        support::child(&self.syntax)
168    }
169    #[inline]
170    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
171        support::token(&self.syntax, SyntaxKind::L_PAREN)
172    }
173    #[inline]
174    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
175        support::token(&self.syntax, SyntaxKind::R_PAREN)
176    }
177    #[inline]
178    pub fn all_token(&self) -> Option<SyntaxToken> {
179        support::token(&self.syntax, SyntaxKind::ALL_KW)
180    }
181}
182
183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
184pub struct AlterAggregate {
185    pub(crate) syntax: SyntaxNode,
186}
187impl AlterAggregate {
188    #[inline]
189    pub fn aggregate(&self) -> Option<Aggregate> {
190        support::child(&self.syntax)
191    }
192    #[inline]
193    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
194        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
195    }
196    #[inline]
197    pub fn alter_token(&self) -> Option<SyntaxToken> {
198        support::token(&self.syntax, SyntaxKind::ALTER_KW)
199    }
200}
201
202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
203pub struct AlterCollation {
204    pub(crate) syntax: SyntaxNode,
205}
206impl AlterCollation {
207    #[inline]
208    pub fn owner_to(&self) -> Option<OwnerTo> {
209        support::child(&self.syntax)
210    }
211    #[inline]
212    pub fn path(&self) -> Option<Path> {
213        support::child(&self.syntax)
214    }
215    #[inline]
216    pub fn refresh_version(&self) -> Option<RefreshVersion> {
217        support::child(&self.syntax)
218    }
219    #[inline]
220    pub fn rename_to(&self) -> Option<RenameTo> {
221        support::child(&self.syntax)
222    }
223    #[inline]
224    pub fn set_schema(&self) -> Option<SetSchema> {
225        support::child(&self.syntax)
226    }
227    #[inline]
228    pub fn alter_token(&self) -> Option<SyntaxToken> {
229        support::token(&self.syntax, SyntaxKind::ALTER_KW)
230    }
231    #[inline]
232    pub fn collation_token(&self) -> Option<SyntaxToken> {
233        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
234    }
235}
236
237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
238pub struct AlterColumn {
239    pub(crate) syntax: SyntaxNode,
240}
241impl AlterColumn {
242    #[inline]
243    pub fn name_ref(&self) -> Option<NameRef> {
244        support::child(&self.syntax)
245    }
246    #[inline]
247    pub fn option(&self) -> Option<AlterColumnOption> {
248        support::child(&self.syntax)
249    }
250    #[inline]
251    pub fn alter_token(&self) -> Option<SyntaxToken> {
252        support::token(&self.syntax, SyntaxKind::ALTER_KW)
253    }
254    #[inline]
255    pub fn column_token(&self) -> Option<SyntaxToken> {
256        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
257    }
258}
259
260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
261pub struct AlterConstraint {
262    pub(crate) syntax: SyntaxNode,
263}
264impl AlterConstraint {
265    #[inline]
266    pub fn option(&self) -> Option<AlterColumnOption> {
267        support::child(&self.syntax)
268    }
269    #[inline]
270    pub fn alter_token(&self) -> Option<SyntaxToken> {
271        support::token(&self.syntax, SyntaxKind::ALTER_KW)
272    }
273    #[inline]
274    pub fn constraint_token(&self) -> Option<SyntaxToken> {
275        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
276    }
277}
278
279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
280pub struct AlterConversion {
281    pub(crate) syntax: SyntaxNode,
282}
283impl AlterConversion {
284    #[inline]
285    pub fn owner_to(&self) -> Option<OwnerTo> {
286        support::child(&self.syntax)
287    }
288    #[inline]
289    pub fn path(&self) -> Option<Path> {
290        support::child(&self.syntax)
291    }
292    #[inline]
293    pub fn rename_to(&self) -> Option<RenameTo> {
294        support::child(&self.syntax)
295    }
296    #[inline]
297    pub fn set_schema(&self) -> Option<SetSchema> {
298        support::child(&self.syntax)
299    }
300    #[inline]
301    pub fn alter_token(&self) -> Option<SyntaxToken> {
302        support::token(&self.syntax, SyntaxKind::ALTER_KW)
303    }
304    #[inline]
305    pub fn conversion_token(&self) -> Option<SyntaxToken> {
306        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
307    }
308}
309
310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
311pub struct AlterDatabase {
312    pub(crate) syntax: SyntaxNode,
313}
314impl AlterDatabase {
315    #[inline]
316    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
317        support::child(&self.syntax)
318    }
319    #[inline]
320    pub fn name_ref(&self) -> Option<NameRef> {
321        support::child(&self.syntax)
322    }
323    #[inline]
324    pub fn owner_to(&self) -> Option<OwnerTo> {
325        support::child(&self.syntax)
326    }
327    #[inline]
328    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
329        support::child(&self.syntax)
330    }
331    #[inline]
332    pub fn rename_to(&self) -> Option<RenameTo> {
333        support::child(&self.syntax)
334    }
335    #[inline]
336    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
337        support::child(&self.syntax)
338    }
339    #[inline]
340    pub fn set_config_param(&self) -> Option<SetConfigParam> {
341        support::child(&self.syntax)
342    }
343    #[inline]
344    pub fn set_tablespace(&self) -> Option<SetTablespace> {
345        support::child(&self.syntax)
346    }
347    #[inline]
348    pub fn alter_token(&self) -> Option<SyntaxToken> {
349        support::token(&self.syntax, SyntaxKind::ALTER_KW)
350    }
351    #[inline]
352    pub fn database_token(&self) -> Option<SyntaxToken> {
353        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
354    }
355}
356
357#[derive(Debug, Clone, PartialEq, Eq, Hash)]
358pub struct AlterDefaultPrivileges {
359    pub(crate) syntax: SyntaxNode,
360}
361impl AlterDefaultPrivileges {
362    #[inline]
363    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
364        support::child(&self.syntax)
365    }
366    #[inline]
367    pub fn name_refs(&self) -> AstChildren<NameRef> {
368        support::children(&self.syntax)
369    }
370    #[inline]
371    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
372        support::child(&self.syntax)
373    }
374    #[inline]
375    pub fn role_ref_list(&self) -> Option<RoleRefList> {
376        support::child(&self.syntax)
377    }
378    #[inline]
379    pub fn alter_token(&self) -> Option<SyntaxToken> {
380        support::token(&self.syntax, SyntaxKind::ALTER_KW)
381    }
382    #[inline]
383    pub fn default_token(&self) -> Option<SyntaxToken> {
384        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
385    }
386    #[inline]
387    pub fn for_token(&self) -> Option<SyntaxToken> {
388        support::token(&self.syntax, SyntaxKind::FOR_KW)
389    }
390    #[inline]
391    pub fn in_token(&self) -> Option<SyntaxToken> {
392        support::token(&self.syntax, SyntaxKind::IN_KW)
393    }
394    #[inline]
395    pub fn privileges_token(&self) -> Option<SyntaxToken> {
396        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
397    }
398    #[inline]
399    pub fn role_token(&self) -> Option<SyntaxToken> {
400        support::token(&self.syntax, SyntaxKind::ROLE_KW)
401    }
402    #[inline]
403    pub fn schema_token(&self) -> Option<SyntaxToken> {
404        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
405    }
406    #[inline]
407    pub fn user_token(&self) -> Option<SyntaxToken> {
408        support::token(&self.syntax, SyntaxKind::USER_KW)
409    }
410}
411
412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
413pub struct AlterDomain {
414    pub(crate) syntax: SyntaxNode,
415}
416impl AlterDomain {
417    #[inline]
418    pub fn action(&self) -> Option<AlterDomainAction> {
419        support::child(&self.syntax)
420    }
421    #[inline]
422    pub fn path(&self) -> Option<Path> {
423        support::child(&self.syntax)
424    }
425    #[inline]
426    pub fn alter_token(&self) -> Option<SyntaxToken> {
427        support::token(&self.syntax, SyntaxKind::ALTER_KW)
428    }
429    #[inline]
430    pub fn domain_token(&self) -> Option<SyntaxToken> {
431        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
432    }
433}
434
435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
436pub struct AlterEventTrigger {
437    pub(crate) syntax: SyntaxNode,
438}
439impl AlterEventTrigger {
440    #[inline]
441    pub fn name_ref(&self) -> Option<NameRef> {
442        support::child(&self.syntax)
443    }
444    #[inline]
445    pub fn owner_to(&self) -> Option<OwnerTo> {
446        support::child(&self.syntax)
447    }
448    #[inline]
449    pub fn rename_to(&self) -> Option<RenameTo> {
450        support::child(&self.syntax)
451    }
452    #[inline]
453    pub fn alter_token(&self) -> Option<SyntaxToken> {
454        support::token(&self.syntax, SyntaxKind::ALTER_KW)
455    }
456    #[inline]
457    pub fn always_token(&self) -> Option<SyntaxToken> {
458        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
459    }
460    #[inline]
461    pub fn disable_token(&self) -> Option<SyntaxToken> {
462        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
463    }
464    #[inline]
465    pub fn enable_token(&self) -> Option<SyntaxToken> {
466        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
467    }
468    #[inline]
469    pub fn event_token(&self) -> Option<SyntaxToken> {
470        support::token(&self.syntax, SyntaxKind::EVENT_KW)
471    }
472    #[inline]
473    pub fn replica_token(&self) -> Option<SyntaxToken> {
474        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
475    }
476    #[inline]
477    pub fn trigger_token(&self) -> Option<SyntaxToken> {
478        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
479    }
480}
481
482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
483pub struct AlterExtension {
484    pub(crate) syntax: SyntaxNode,
485}
486impl AlterExtension {
487    #[inline]
488    pub fn name_ref(&self) -> Option<NameRef> {
489        support::child(&self.syntax)
490    }
491    #[inline]
492    pub fn alter_token(&self) -> Option<SyntaxToken> {
493        support::token(&self.syntax, SyntaxKind::ALTER_KW)
494    }
495    #[inline]
496    pub fn extension_token(&self) -> Option<SyntaxToken> {
497        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
498    }
499}
500
501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
502pub struct AlterForeignDataWrapper {
503    pub(crate) syntax: SyntaxNode,
504}
505impl AlterForeignDataWrapper {
506    #[inline]
507    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
508        support::child(&self.syntax)
509    }
510    #[inline]
511    pub fn name_ref(&self) -> Option<NameRef> {
512        support::child(&self.syntax)
513    }
514    #[inline]
515    pub fn owner_to(&self) -> Option<OwnerTo> {
516        support::child(&self.syntax)
517    }
518    #[inline]
519    pub fn rename_to(&self) -> Option<RenameTo> {
520        support::child(&self.syntax)
521    }
522    #[inline]
523    pub fn alter_token(&self) -> Option<SyntaxToken> {
524        support::token(&self.syntax, SyntaxKind::ALTER_KW)
525    }
526    #[inline]
527    pub fn data_token(&self) -> Option<SyntaxToken> {
528        support::token(&self.syntax, SyntaxKind::DATA_KW)
529    }
530    #[inline]
531    pub fn foreign_token(&self) -> Option<SyntaxToken> {
532        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
533    }
534    #[inline]
535    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
536        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
537    }
538}
539
540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
541pub struct AlterForeignTable {
542    pub(crate) syntax: SyntaxNode,
543}
544impl AlterForeignTable {
545    #[inline]
546    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
547        support::children(&self.syntax)
548    }
549    #[inline]
550    pub fn if_exists(&self) -> Option<IfExists> {
551        support::child(&self.syntax)
552    }
553    #[inline]
554    pub fn relation_name(&self) -> Option<RelationName> {
555        support::child(&self.syntax)
556    }
557    #[inline]
558    pub fn rename_column(&self) -> Option<RenameColumn> {
559        support::child(&self.syntax)
560    }
561    #[inline]
562    pub fn rename_to(&self) -> Option<RenameTo> {
563        support::child(&self.syntax)
564    }
565    #[inline]
566    pub fn set_schema(&self) -> Option<SetSchema> {
567        support::child(&self.syntax)
568    }
569    #[inline]
570    pub fn alter_token(&self) -> Option<SyntaxToken> {
571        support::token(&self.syntax, SyntaxKind::ALTER_KW)
572    }
573    #[inline]
574    pub fn foreign_token(&self) -> Option<SyntaxToken> {
575        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
576    }
577    #[inline]
578    pub fn table_token(&self) -> Option<SyntaxToken> {
579        support::token(&self.syntax, SyntaxKind::TABLE_KW)
580    }
581}
582
583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
584pub struct AlterFunction {
585    pub(crate) syntax: SyntaxNode,
586}
587impl AlterFunction {
588    #[inline]
589    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
590        support::child(&self.syntax)
591    }
592    #[inline]
593    pub fn func_option_list(&self) -> Option<FuncOptionList> {
594        support::child(&self.syntax)
595    }
596    #[inline]
597    pub fn function_sig(&self) -> Option<FunctionSig> {
598        support::child(&self.syntax)
599    }
600    #[inline]
601    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
602        support::child(&self.syntax)
603    }
604    #[inline]
605    pub fn owner_to(&self) -> Option<OwnerTo> {
606        support::child(&self.syntax)
607    }
608    #[inline]
609    pub fn rename_to(&self) -> Option<RenameTo> {
610        support::child(&self.syntax)
611    }
612    #[inline]
613    pub fn set_schema(&self) -> Option<SetSchema> {
614        support::child(&self.syntax)
615    }
616    #[inline]
617    pub fn alter_token(&self) -> Option<SyntaxToken> {
618        support::token(&self.syntax, SyntaxKind::ALTER_KW)
619    }
620    #[inline]
621    pub fn function_token(&self) -> Option<SyntaxToken> {
622        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
623    }
624    #[inline]
625    pub fn restrict_token(&self) -> Option<SyntaxToken> {
626        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
627    }
628}
629
630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
631pub struct AlterGroup {
632    pub(crate) syntax: SyntaxNode,
633}
634impl AlterGroup {
635    #[inline]
636    pub fn name_refs(&self) -> AstChildren<NameRef> {
637        support::children(&self.syntax)
638    }
639    #[inline]
640    pub fn rename_to(&self) -> Option<RenameTo> {
641        support::child(&self.syntax)
642    }
643    #[inline]
644    pub fn role_ref(&self) -> Option<RoleRef> {
645        support::child(&self.syntax)
646    }
647    #[inline]
648    pub fn add_token(&self) -> Option<SyntaxToken> {
649        support::token(&self.syntax, SyntaxKind::ADD_KW)
650    }
651    #[inline]
652    pub fn alter_token(&self) -> Option<SyntaxToken> {
653        support::token(&self.syntax, SyntaxKind::ALTER_KW)
654    }
655    #[inline]
656    pub fn drop_token(&self) -> Option<SyntaxToken> {
657        support::token(&self.syntax, SyntaxKind::DROP_KW)
658    }
659    #[inline]
660    pub fn group_token(&self) -> Option<SyntaxToken> {
661        support::token(&self.syntax, SyntaxKind::GROUP_KW)
662    }
663    #[inline]
664    pub fn user_token(&self) -> Option<SyntaxToken> {
665        support::token(&self.syntax, SyntaxKind::USER_KW)
666    }
667}
668
669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
670pub struct AlterIndex {
671    pub(crate) syntax: SyntaxNode,
672}
673impl AlterIndex {
674    #[inline]
675    pub fn alter_index_action(&self) -> Option<AlterIndexAction> {
676        support::child(&self.syntax)
677    }
678    #[inline]
679    pub fn if_exists(&self) -> Option<IfExists> {
680        support::child(&self.syntax)
681    }
682    #[inline]
683    pub fn name_ref(&self) -> Option<NameRef> {
684        support::child(&self.syntax)
685    }
686    #[inline]
687    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
688        support::child(&self.syntax)
689    }
690    #[inline]
691    pub fn path(&self) -> Option<Path> {
692        support::child(&self.syntax)
693    }
694    #[inline]
695    pub fn all_token(&self) -> Option<SyntaxToken> {
696        support::token(&self.syntax, SyntaxKind::ALL_KW)
697    }
698    #[inline]
699    pub fn alter_token(&self) -> Option<SyntaxToken> {
700        support::token(&self.syntax, SyntaxKind::ALTER_KW)
701    }
702    #[inline]
703    pub fn in_token(&self) -> Option<SyntaxToken> {
704        support::token(&self.syntax, SyntaxKind::IN_KW)
705    }
706    #[inline]
707    pub fn index_token(&self) -> Option<SyntaxToken> {
708        support::token(&self.syntax, SyntaxKind::INDEX_KW)
709    }
710    #[inline]
711    pub fn nowait_token(&self) -> Option<SyntaxToken> {
712        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
713    }
714    #[inline]
715    pub fn set_token(&self) -> Option<SyntaxToken> {
716        support::token(&self.syntax, SyntaxKind::SET_KW)
717    }
718    #[inline]
719    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
720        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
721    }
722}
723
724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
725pub struct AlterLanguage {
726    pub(crate) syntax: SyntaxNode,
727}
728impl AlterLanguage {
729    #[inline]
730    pub fn name_ref(&self) -> Option<NameRef> {
731        support::child(&self.syntax)
732    }
733    #[inline]
734    pub fn owner_to(&self) -> Option<OwnerTo> {
735        support::child(&self.syntax)
736    }
737    #[inline]
738    pub fn rename_to(&self) -> Option<RenameTo> {
739        support::child(&self.syntax)
740    }
741    #[inline]
742    pub fn alter_token(&self) -> Option<SyntaxToken> {
743        support::token(&self.syntax, SyntaxKind::ALTER_KW)
744    }
745    #[inline]
746    pub fn language_token(&self) -> Option<SyntaxToken> {
747        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
748    }
749}
750
751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
752pub struct AlterLargeObject {
753    pub(crate) syntax: SyntaxNode,
754}
755impl AlterLargeObject {
756    #[inline]
757    pub fn alter_token(&self) -> Option<SyntaxToken> {
758        support::token(&self.syntax, SyntaxKind::ALTER_KW)
759    }
760    #[inline]
761    pub fn large_token(&self) -> Option<SyntaxToken> {
762        support::token(&self.syntax, SyntaxKind::LARGE_KW)
763    }
764    #[inline]
765    pub fn object_token(&self) -> Option<SyntaxToken> {
766        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
767    }
768}
769
770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
771pub struct AlterMaterializedView {
772    pub(crate) syntax: SyntaxNode,
773}
774impl AlterMaterializedView {
775    #[inline]
776    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
777        support::children(&self.syntax)
778    }
779    #[inline]
780    pub fn if_exists(&self) -> Option<IfExists> {
781        support::child(&self.syntax)
782    }
783    #[inline]
784    pub fn name(&self) -> Option<Name> {
785        support::child(&self.syntax)
786    }
787    #[inline]
788    pub fn name_ref(&self) -> Option<NameRef> {
789        support::child(&self.syntax)
790    }
791    #[inline]
792    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
793        support::child(&self.syntax)
794    }
795    #[inline]
796    pub fn path(&self) -> Option<Path> {
797        support::child(&self.syntax)
798    }
799    #[inline]
800    pub fn all_token(&self) -> Option<SyntaxToken> {
801        support::token(&self.syntax, SyntaxKind::ALL_KW)
802    }
803    #[inline]
804    pub fn alter_token(&self) -> Option<SyntaxToken> {
805        support::token(&self.syntax, SyntaxKind::ALTER_KW)
806    }
807    #[inline]
808    pub fn in_token(&self) -> Option<SyntaxToken> {
809        support::token(&self.syntax, SyntaxKind::IN_KW)
810    }
811    #[inline]
812    pub fn materialized_token(&self) -> Option<SyntaxToken> {
813        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
814    }
815    #[inline]
816    pub fn nowait_token(&self) -> Option<SyntaxToken> {
817        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
818    }
819    #[inline]
820    pub fn set_token(&self) -> Option<SyntaxToken> {
821        support::token(&self.syntax, SyntaxKind::SET_KW)
822    }
823    #[inline]
824    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
825        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
826    }
827    #[inline]
828    pub fn view_token(&self) -> Option<SyntaxToken> {
829        support::token(&self.syntax, SyntaxKind::VIEW_KW)
830    }
831}
832
833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
834pub struct AlterOperator {
835    pub(crate) syntax: SyntaxNode,
836}
837impl AlterOperator {
838    #[inline]
839    pub fn op_sig(&self) -> Option<OpSig> {
840        support::child(&self.syntax)
841    }
842    #[inline]
843    pub fn owner_to(&self) -> Option<OwnerTo> {
844        support::child(&self.syntax)
845    }
846    #[inline]
847    pub fn set_options(&self) -> Option<SetOptions> {
848        support::child(&self.syntax)
849    }
850    #[inline]
851    pub fn set_schema(&self) -> Option<SetSchema> {
852        support::child(&self.syntax)
853    }
854    #[inline]
855    pub fn alter_token(&self) -> Option<SyntaxToken> {
856        support::token(&self.syntax, SyntaxKind::ALTER_KW)
857    }
858    #[inline]
859    pub fn operator_token(&self) -> Option<SyntaxToken> {
860        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
861    }
862}
863
864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
865pub struct AlterOperatorClass {
866    pub(crate) syntax: SyntaxNode,
867}
868impl AlterOperatorClass {
869    #[inline]
870    pub fn name_ref(&self) -> Option<NameRef> {
871        support::child(&self.syntax)
872    }
873    #[inline]
874    pub fn owner_to(&self) -> Option<OwnerTo> {
875        support::child(&self.syntax)
876    }
877    #[inline]
878    pub fn path(&self) -> Option<Path> {
879        support::child(&self.syntax)
880    }
881    #[inline]
882    pub fn rename_to(&self) -> Option<RenameTo> {
883        support::child(&self.syntax)
884    }
885    #[inline]
886    pub fn set_schema(&self) -> Option<SetSchema> {
887        support::child(&self.syntax)
888    }
889    #[inline]
890    pub fn alter_token(&self) -> Option<SyntaxToken> {
891        support::token(&self.syntax, SyntaxKind::ALTER_KW)
892    }
893    #[inline]
894    pub fn class_token(&self) -> Option<SyntaxToken> {
895        support::token(&self.syntax, SyntaxKind::CLASS_KW)
896    }
897    #[inline]
898    pub fn operator_token(&self) -> Option<SyntaxToken> {
899        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
900    }
901    #[inline]
902    pub fn using_token(&self) -> Option<SyntaxToken> {
903        support::token(&self.syntax, SyntaxKind::USING_KW)
904    }
905}
906
907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
908pub struct AlterOperatorFamily {
909    pub(crate) syntax: SyntaxNode,
910}
911impl AlterOperatorFamily {
912    #[inline]
913    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
914        support::child(&self.syntax)
915    }
916    #[inline]
917    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
918        support::child(&self.syntax)
919    }
920    #[inline]
921    pub fn name_ref(&self) -> Option<NameRef> {
922        support::child(&self.syntax)
923    }
924    #[inline]
925    pub fn owner_to(&self) -> Option<OwnerTo> {
926        support::child(&self.syntax)
927    }
928    #[inline]
929    pub fn path(&self) -> Option<Path> {
930        support::child(&self.syntax)
931    }
932    #[inline]
933    pub fn rename_to(&self) -> Option<RenameTo> {
934        support::child(&self.syntax)
935    }
936    #[inline]
937    pub fn set_schema(&self) -> Option<SetSchema> {
938        support::child(&self.syntax)
939    }
940    #[inline]
941    pub fn alter_token(&self) -> Option<SyntaxToken> {
942        support::token(&self.syntax, SyntaxKind::ALTER_KW)
943    }
944    #[inline]
945    pub fn family_token(&self) -> Option<SyntaxToken> {
946        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
947    }
948    #[inline]
949    pub fn operator_token(&self) -> Option<SyntaxToken> {
950        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
951    }
952    #[inline]
953    pub fn using_token(&self) -> Option<SyntaxToken> {
954        support::token(&self.syntax, SyntaxKind::USING_KW)
955    }
956}
957
958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
959pub struct AlterOption {
960    pub(crate) syntax: SyntaxNode,
961}
962impl AlterOption {
963    #[inline]
964    pub fn literal(&self) -> Option<Literal> {
965        support::child(&self.syntax)
966    }
967    #[inline]
968    pub fn name_ref(&self) -> Option<NameRef> {
969        support::child(&self.syntax)
970    }
971    #[inline]
972    pub fn add_token(&self) -> Option<SyntaxToken> {
973        support::token(&self.syntax, SyntaxKind::ADD_KW)
974    }
975    #[inline]
976    pub fn drop_token(&self) -> Option<SyntaxToken> {
977        support::token(&self.syntax, SyntaxKind::DROP_KW)
978    }
979    #[inline]
980    pub fn set_token(&self) -> Option<SyntaxToken> {
981        support::token(&self.syntax, SyntaxKind::SET_KW)
982    }
983}
984
985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
986pub struct AlterOptionList {
987    pub(crate) syntax: SyntaxNode,
988}
989impl AlterOptionList {
990    #[inline]
991    pub fn alter_options(&self) -> AstChildren<AlterOption> {
992        support::children(&self.syntax)
993    }
994}
995
996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
997pub struct AlterPolicy {
998    pub(crate) syntax: SyntaxNode,
999}
1000impl AlterPolicy {
1001    #[inline]
1002    pub fn name_ref(&self) -> Option<NameRef> {
1003        support::child(&self.syntax)
1004    }
1005    #[inline]
1006    pub fn on_table(&self) -> Option<OnTable> {
1007        support::child(&self.syntax)
1008    }
1009    #[inline]
1010    pub fn rename_to(&self) -> Option<RenameTo> {
1011        support::child(&self.syntax)
1012    }
1013    #[inline]
1014    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1015        support::child(&self.syntax)
1016    }
1017    #[inline]
1018    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
1019        support::child(&self.syntax)
1020    }
1021    #[inline]
1022    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
1023        support::child(&self.syntax)
1024    }
1025    #[inline]
1026    pub fn alter_token(&self) -> Option<SyntaxToken> {
1027        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1028    }
1029    #[inline]
1030    pub fn policy_token(&self) -> Option<SyntaxToken> {
1031        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1032    }
1033    #[inline]
1034    pub fn to_token(&self) -> Option<SyntaxToken> {
1035        support::token(&self.syntax, SyntaxKind::TO_KW)
1036    }
1037}
1038
1039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1040pub struct AlterProcedure {
1041    pub(crate) syntax: SyntaxNode,
1042}
1043impl AlterProcedure {
1044    #[inline]
1045    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1046        support::child(&self.syntax)
1047    }
1048    #[inline]
1049    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1050        support::child(&self.syntax)
1051    }
1052    #[inline]
1053    pub fn function_sig(&self) -> Option<FunctionSig> {
1054        support::child(&self.syntax)
1055    }
1056    #[inline]
1057    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1058        support::child(&self.syntax)
1059    }
1060    #[inline]
1061    pub fn owner_to(&self) -> Option<OwnerTo> {
1062        support::child(&self.syntax)
1063    }
1064    #[inline]
1065    pub fn rename_to(&self) -> Option<RenameTo> {
1066        support::child(&self.syntax)
1067    }
1068    #[inline]
1069    pub fn set_schema(&self) -> Option<SetSchema> {
1070        support::child(&self.syntax)
1071    }
1072    #[inline]
1073    pub fn alter_token(&self) -> Option<SyntaxToken> {
1074        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1075    }
1076    #[inline]
1077    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1078        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1079    }
1080    #[inline]
1081    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1082        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1083    }
1084}
1085
1086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1087pub struct AlterPublication {
1088    pub(crate) syntax: SyntaxNode,
1089}
1090impl AlterPublication {
1091    #[inline]
1092    pub fn name_ref(&self) -> Option<NameRef> {
1093        support::child(&self.syntax)
1094    }
1095    #[inline]
1096    pub fn alter_token(&self) -> Option<SyntaxToken> {
1097        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1098    }
1099    #[inline]
1100    pub fn publication_token(&self) -> Option<SyntaxToken> {
1101        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1102    }
1103}
1104
1105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1106pub struct AlterRole {
1107    pub(crate) syntax: SyntaxNode,
1108}
1109impl AlterRole {
1110    #[inline]
1111    pub fn role_ref(&self) -> Option<RoleRef> {
1112        support::child(&self.syntax)
1113    }
1114    #[inline]
1115    pub fn alter_token(&self) -> Option<SyntaxToken> {
1116        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1117    }
1118    #[inline]
1119    pub fn role_token(&self) -> Option<SyntaxToken> {
1120        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1121    }
1122}
1123
1124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1125pub struct AlterRoutine {
1126    pub(crate) syntax: SyntaxNode,
1127}
1128impl AlterRoutine {
1129    #[inline]
1130    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1131        support::child(&self.syntax)
1132    }
1133    #[inline]
1134    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1135        support::child(&self.syntax)
1136    }
1137    #[inline]
1138    pub fn function_sig(&self) -> Option<FunctionSig> {
1139        support::child(&self.syntax)
1140    }
1141    #[inline]
1142    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1143        support::child(&self.syntax)
1144    }
1145    #[inline]
1146    pub fn owner_to(&self) -> Option<OwnerTo> {
1147        support::child(&self.syntax)
1148    }
1149    #[inline]
1150    pub fn rename_to(&self) -> Option<RenameTo> {
1151        support::child(&self.syntax)
1152    }
1153    #[inline]
1154    pub fn set_schema(&self) -> Option<SetSchema> {
1155        support::child(&self.syntax)
1156    }
1157    #[inline]
1158    pub fn alter_token(&self) -> Option<SyntaxToken> {
1159        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1160    }
1161    #[inline]
1162    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1163        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1164    }
1165    #[inline]
1166    pub fn routine_token(&self) -> Option<SyntaxToken> {
1167        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1168    }
1169}
1170
1171#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1172pub struct AlterRule {
1173    pub(crate) syntax: SyntaxNode,
1174}
1175impl AlterRule {
1176    #[inline]
1177    pub fn name_ref(&self) -> Option<NameRef> {
1178        support::child(&self.syntax)
1179    }
1180    #[inline]
1181    pub fn on_table(&self) -> Option<OnTable> {
1182        support::child(&self.syntax)
1183    }
1184    #[inline]
1185    pub fn rename_to(&self) -> Option<RenameTo> {
1186        support::child(&self.syntax)
1187    }
1188    #[inline]
1189    pub fn alter_token(&self) -> Option<SyntaxToken> {
1190        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1191    }
1192    #[inline]
1193    pub fn on_token(&self) -> Option<SyntaxToken> {
1194        support::token(&self.syntax, SyntaxKind::ON_KW)
1195    }
1196    #[inline]
1197    pub fn rule_token(&self) -> Option<SyntaxToken> {
1198        support::token(&self.syntax, SyntaxKind::RULE_KW)
1199    }
1200}
1201
1202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1203pub struct AlterSchema {
1204    pub(crate) syntax: SyntaxNode,
1205}
1206impl AlterSchema {
1207    #[inline]
1208    pub fn name_ref(&self) -> Option<NameRef> {
1209        support::child(&self.syntax)
1210    }
1211    #[inline]
1212    pub fn owner_to(&self) -> Option<OwnerTo> {
1213        support::child(&self.syntax)
1214    }
1215    #[inline]
1216    pub fn rename_to(&self) -> Option<RenameTo> {
1217        support::child(&self.syntax)
1218    }
1219    #[inline]
1220    pub fn alter_token(&self) -> Option<SyntaxToken> {
1221        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1222    }
1223    #[inline]
1224    pub fn schema_token(&self) -> Option<SyntaxToken> {
1225        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1226    }
1227}
1228
1229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1230pub struct AlterSequence {
1231    pub(crate) syntax: SyntaxNode,
1232}
1233impl AlterSequence {
1234    #[inline]
1235    pub fn if_exists(&self) -> Option<IfExists> {
1236        support::child(&self.syntax)
1237    }
1238    #[inline]
1239    pub fn path(&self) -> Option<Path> {
1240        support::child(&self.syntax)
1241    }
1242    #[inline]
1243    pub fn alter_token(&self) -> Option<SyntaxToken> {
1244        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1245    }
1246    #[inline]
1247    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1248        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1249    }
1250}
1251
1252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1253pub struct AlterServer {
1254    pub(crate) syntax: SyntaxNode,
1255}
1256impl AlterServer {
1257    #[inline]
1258    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1259        support::child(&self.syntax)
1260    }
1261    #[inline]
1262    pub fn name_ref(&self) -> Option<NameRef> {
1263        support::child(&self.syntax)
1264    }
1265    #[inline]
1266    pub fn alter_token(&self) -> Option<SyntaxToken> {
1267        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1268    }
1269    #[inline]
1270    pub fn server_token(&self) -> Option<SyntaxToken> {
1271        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1272    }
1273}
1274
1275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1276pub struct AlterSetStatistics {
1277    pub(crate) syntax: SyntaxNode,
1278}
1279impl AlterSetStatistics {
1280    #[inline]
1281    pub fn literal(&self) -> Option<Literal> {
1282        support::child(&self.syntax)
1283    }
1284    #[inline]
1285    pub fn name_ref(&self) -> Option<NameRef> {
1286        support::child(&self.syntax)
1287    }
1288    #[inline]
1289    pub fn column_token(&self) -> Option<SyntaxToken> {
1290        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1291    }
1292    #[inline]
1293    pub fn set_token(&self) -> Option<SyntaxToken> {
1294        support::token(&self.syntax, SyntaxKind::SET_KW)
1295    }
1296    #[inline]
1297    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1298        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1299    }
1300}
1301
1302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1303pub struct AlterStatistics {
1304    pub(crate) syntax: SyntaxNode,
1305}
1306impl AlterStatistics {
1307    #[inline]
1308    pub fn path(&self) -> Option<Path> {
1309        support::child(&self.syntax)
1310    }
1311    #[inline]
1312    pub fn alter_token(&self) -> Option<SyntaxToken> {
1313        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1314    }
1315    #[inline]
1316    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1317        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1318    }
1319}
1320
1321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1322pub struct AlterSubscription {
1323    pub(crate) syntax: SyntaxNode,
1324}
1325impl AlterSubscription {
1326    #[inline]
1327    pub fn name_ref(&self) -> Option<NameRef> {
1328        support::child(&self.syntax)
1329    }
1330    #[inline]
1331    pub fn alter_token(&self) -> Option<SyntaxToken> {
1332        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1333    }
1334    #[inline]
1335    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1336        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1337    }
1338}
1339
1340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1341pub struct AlterSystem {
1342    pub(crate) syntax: SyntaxNode,
1343}
1344impl AlterSystem {
1345    #[inline]
1346    pub fn alter_token(&self) -> Option<SyntaxToken> {
1347        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1348    }
1349    #[inline]
1350    pub fn set_token(&self) -> Option<SyntaxToken> {
1351        support::token(&self.syntax, SyntaxKind::SET_KW)
1352    }
1353    #[inline]
1354    pub fn system_token(&self) -> Option<SyntaxToken> {
1355        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1356    }
1357}
1358
1359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1360pub struct AlterTable {
1361    pub(crate) syntax: SyntaxNode,
1362}
1363impl AlterTable {
1364    #[inline]
1365    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1366        support::children(&self.syntax)
1367    }
1368    #[inline]
1369    pub fn relation_name(&self) -> Option<RelationName> {
1370        support::child(&self.syntax)
1371    }
1372    #[inline]
1373    pub fn alter_token(&self) -> Option<SyntaxToken> {
1374        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1375    }
1376    #[inline]
1377    pub fn table_token(&self) -> Option<SyntaxToken> {
1378        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1379    }
1380}
1381
1382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1383pub struct AlterTablespace {
1384    pub(crate) syntax: SyntaxNode,
1385}
1386impl AlterTablespace {
1387    #[inline]
1388    pub fn owner_to(&self) -> Option<OwnerTo> {
1389        support::child(&self.syntax)
1390    }
1391    #[inline]
1392    pub fn path(&self) -> Option<Path> {
1393        support::child(&self.syntax)
1394    }
1395    #[inline]
1396    pub fn rename_to(&self) -> Option<RenameTo> {
1397        support::child(&self.syntax)
1398    }
1399    #[inline]
1400    pub fn reset_options(&self) -> Option<ResetOptions> {
1401        support::child(&self.syntax)
1402    }
1403    #[inline]
1404    pub fn set_options(&self) -> Option<SetOptions> {
1405        support::child(&self.syntax)
1406    }
1407    #[inline]
1408    pub fn alter_token(&self) -> Option<SyntaxToken> {
1409        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1410    }
1411    #[inline]
1412    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1413        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1414    }
1415}
1416
1417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1418pub struct AlterTextSearchConfiguration {
1419    pub(crate) syntax: SyntaxNode,
1420}
1421impl AlterTextSearchConfiguration {
1422    #[inline]
1423    pub fn owner_to(&self) -> Option<OwnerTo> {
1424        support::child(&self.syntax)
1425    }
1426    #[inline]
1427    pub fn path(&self) -> Option<Path> {
1428        support::child(&self.syntax)
1429    }
1430    #[inline]
1431    pub fn rename_to(&self) -> Option<RenameTo> {
1432        support::child(&self.syntax)
1433    }
1434    #[inline]
1435    pub fn set_schema(&self) -> Option<SetSchema> {
1436        support::child(&self.syntax)
1437    }
1438    #[inline]
1439    pub fn alter_token(&self) -> Option<SyntaxToken> {
1440        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1441    }
1442    #[inline]
1443    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1444        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1445    }
1446    #[inline]
1447    pub fn search_token(&self) -> Option<SyntaxToken> {
1448        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1449    }
1450    #[inline]
1451    pub fn text_token(&self) -> Option<SyntaxToken> {
1452        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1453    }
1454}
1455
1456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1457pub struct AlterTextSearchDictionary {
1458    pub(crate) syntax: SyntaxNode,
1459}
1460impl AlterTextSearchDictionary {
1461    #[inline]
1462    pub fn attribute_list(&self) -> Option<AttributeList> {
1463        support::child(&self.syntax)
1464    }
1465    #[inline]
1466    pub fn owner_to(&self) -> Option<OwnerTo> {
1467        support::child(&self.syntax)
1468    }
1469    #[inline]
1470    pub fn path(&self) -> Option<Path> {
1471        support::child(&self.syntax)
1472    }
1473    #[inline]
1474    pub fn rename_to(&self) -> Option<RenameTo> {
1475        support::child(&self.syntax)
1476    }
1477    #[inline]
1478    pub fn set_schema(&self) -> Option<SetSchema> {
1479        support::child(&self.syntax)
1480    }
1481    #[inline]
1482    pub fn alter_token(&self) -> Option<SyntaxToken> {
1483        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1484    }
1485    #[inline]
1486    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1487        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1488    }
1489    #[inline]
1490    pub fn search_token(&self) -> Option<SyntaxToken> {
1491        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1492    }
1493    #[inline]
1494    pub fn text_token(&self) -> Option<SyntaxToken> {
1495        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1496    }
1497}
1498
1499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1500pub struct AlterTextSearchParser {
1501    pub(crate) syntax: SyntaxNode,
1502}
1503impl AlterTextSearchParser {
1504    #[inline]
1505    pub fn path(&self) -> Option<Path> {
1506        support::child(&self.syntax)
1507    }
1508    #[inline]
1509    pub fn rename_to(&self) -> Option<RenameTo> {
1510        support::child(&self.syntax)
1511    }
1512    #[inline]
1513    pub fn set_schema(&self) -> Option<SetSchema> {
1514        support::child(&self.syntax)
1515    }
1516    #[inline]
1517    pub fn alter_token(&self) -> Option<SyntaxToken> {
1518        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1519    }
1520    #[inline]
1521    pub fn parser_token(&self) -> Option<SyntaxToken> {
1522        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1523    }
1524    #[inline]
1525    pub fn search_token(&self) -> Option<SyntaxToken> {
1526        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1527    }
1528    #[inline]
1529    pub fn text_token(&self) -> Option<SyntaxToken> {
1530        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1531    }
1532}
1533
1534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1535pub struct AlterTextSearchTemplate {
1536    pub(crate) syntax: SyntaxNode,
1537}
1538impl AlterTextSearchTemplate {
1539    #[inline]
1540    pub fn path(&self) -> Option<Path> {
1541        support::child(&self.syntax)
1542    }
1543    #[inline]
1544    pub fn rename_to(&self) -> Option<RenameTo> {
1545        support::child(&self.syntax)
1546    }
1547    #[inline]
1548    pub fn set_schema(&self) -> Option<SetSchema> {
1549        support::child(&self.syntax)
1550    }
1551    #[inline]
1552    pub fn alter_token(&self) -> Option<SyntaxToken> {
1553        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1554    }
1555    #[inline]
1556    pub fn search_token(&self) -> Option<SyntaxToken> {
1557        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1558    }
1559    #[inline]
1560    pub fn template_token(&self) -> Option<SyntaxToken> {
1561        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1562    }
1563    #[inline]
1564    pub fn text_token(&self) -> Option<SyntaxToken> {
1565        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1566    }
1567}
1568
1569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1570pub struct AlterTrigger {
1571    pub(crate) syntax: SyntaxNode,
1572}
1573impl AlterTrigger {
1574    #[inline]
1575    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1576        support::child(&self.syntax)
1577    }
1578    #[inline]
1579    pub fn name_ref(&self) -> Option<NameRef> {
1580        support::child(&self.syntax)
1581    }
1582    #[inline]
1583    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1584        support::child(&self.syntax)
1585    }
1586    #[inline]
1587    pub fn on_table(&self) -> Option<OnTable> {
1588        support::child(&self.syntax)
1589    }
1590    #[inline]
1591    pub fn rename_to(&self) -> Option<RenameTo> {
1592        support::child(&self.syntax)
1593    }
1594    #[inline]
1595    pub fn alter_token(&self) -> Option<SyntaxToken> {
1596        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1597    }
1598    #[inline]
1599    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1600        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1601    }
1602}
1603
1604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1605pub struct AlterType {
1606    pub(crate) syntax: SyntaxNode,
1607}
1608impl AlterType {
1609    #[inline]
1610    pub fn path(&self) -> Option<Path> {
1611        support::child(&self.syntax)
1612    }
1613    #[inline]
1614    pub fn alter_token(&self) -> Option<SyntaxToken> {
1615        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1616    }
1617    #[inline]
1618    pub fn type_token(&self) -> Option<SyntaxToken> {
1619        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1620    }
1621}
1622
1623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1624pub struct AlterUser {
1625    pub(crate) syntax: SyntaxNode,
1626}
1627impl AlterUser {
1628    #[inline]
1629    pub fn role_ref(&self) -> Option<RoleRef> {
1630        support::child(&self.syntax)
1631    }
1632    #[inline]
1633    pub fn alter_token(&self) -> Option<SyntaxToken> {
1634        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1635    }
1636    #[inline]
1637    pub fn user_token(&self) -> Option<SyntaxToken> {
1638        support::token(&self.syntax, SyntaxKind::USER_KW)
1639    }
1640}
1641
1642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1643pub struct AlterUserMapping {
1644    pub(crate) syntax: SyntaxNode,
1645}
1646impl AlterUserMapping {
1647    #[inline]
1648    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1649        support::child(&self.syntax)
1650    }
1651    #[inline]
1652    pub fn role_ref(&self) -> Option<RoleRef> {
1653        support::child(&self.syntax)
1654    }
1655    #[inline]
1656    pub fn server_name(&self) -> Option<ServerName> {
1657        support::child(&self.syntax)
1658    }
1659    #[inline]
1660    pub fn alter_token(&self) -> Option<SyntaxToken> {
1661        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1662    }
1663    #[inline]
1664    pub fn for_token(&self) -> Option<SyntaxToken> {
1665        support::token(&self.syntax, SyntaxKind::FOR_KW)
1666    }
1667    #[inline]
1668    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1669        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1670    }
1671    #[inline]
1672    pub fn user_token(&self) -> Option<SyntaxToken> {
1673        support::token(&self.syntax, SyntaxKind::USER_KW)
1674    }
1675}
1676
1677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1678pub struct AlterView {
1679    pub(crate) syntax: SyntaxNode,
1680}
1681impl AlterView {
1682    #[inline]
1683    pub fn path(&self) -> Option<Path> {
1684        support::child(&self.syntax)
1685    }
1686    #[inline]
1687    pub fn alter_token(&self) -> Option<SyntaxToken> {
1688        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1689    }
1690    #[inline]
1691    pub fn view_token(&self) -> Option<SyntaxToken> {
1692        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1693    }
1694}
1695
1696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1697pub struct Analyze {
1698    pub(crate) syntax: SyntaxNode,
1699}
1700impl Analyze {
1701    #[inline]
1702    pub fn option_item_list(&self) -> Option<OptionItemList> {
1703        support::child(&self.syntax)
1704    }
1705    #[inline]
1706    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
1707        support::child(&self.syntax)
1708    }
1709    #[inline]
1710    pub fn analyse_token(&self) -> Option<SyntaxToken> {
1711        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
1712    }
1713    #[inline]
1714    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1715        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1716    }
1717    #[inline]
1718    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1719        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1720    }
1721}
1722
1723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1724pub struct AnyFn {
1725    pub(crate) syntax: SyntaxNode,
1726}
1727impl AnyFn {
1728    #[inline]
1729    pub fn expr(&self) -> Option<Expr> {
1730        support::child(&self.syntax)
1731    }
1732    #[inline]
1733    pub fn select_variant(&self) -> Option<SelectVariant> {
1734        support::child(&self.syntax)
1735    }
1736    #[inline]
1737    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1738        support::token(&self.syntax, SyntaxKind::L_PAREN)
1739    }
1740    #[inline]
1741    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1742        support::token(&self.syntax, SyntaxKind::R_PAREN)
1743    }
1744    #[inline]
1745    pub fn any_token(&self) -> Option<SyntaxToken> {
1746        support::token(&self.syntax, SyntaxKind::ANY_KW)
1747    }
1748}
1749
1750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1751pub struct Arg {
1752    pub(crate) syntax: SyntaxNode,
1753}
1754impl Arg {
1755    #[inline]
1756    pub fn expr(&self) -> Option<Expr> {
1757        support::child(&self.syntax)
1758    }
1759}
1760
1761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1762pub struct ArgList {
1763    pub(crate) syntax: SyntaxNode,
1764}
1765impl ArgList {
1766    #[inline]
1767    pub fn args(&self) -> AstChildren<Expr> {
1768        support::children(&self.syntax)
1769    }
1770    #[inline]
1771    pub fn expr(&self) -> Option<Expr> {
1772        support::child(&self.syntax)
1773    }
1774    #[inline]
1775    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1776        support::token(&self.syntax, SyntaxKind::L_PAREN)
1777    }
1778    #[inline]
1779    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1780        support::token(&self.syntax, SyntaxKind::R_PAREN)
1781    }
1782    #[inline]
1783    pub fn star_token(&self) -> Option<SyntaxToken> {
1784        support::token(&self.syntax, SyntaxKind::STAR)
1785    }
1786    #[inline]
1787    pub fn all_token(&self) -> Option<SyntaxToken> {
1788        support::token(&self.syntax, SyntaxKind::ALL_KW)
1789    }
1790    #[inline]
1791    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1792        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1793    }
1794    #[inline]
1795    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1796        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1797    }
1798}
1799
1800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1801pub struct ArrayExpr {
1802    pub(crate) syntax: SyntaxNode,
1803}
1804impl ArrayExpr {
1805    #[inline]
1806    pub fn exprs(&self) -> AstChildren<Expr> {
1807        support::children(&self.syntax)
1808    }
1809    #[inline]
1810    pub fn select(&self) -> Option<Select> {
1811        support::child(&self.syntax)
1812    }
1813    #[inline]
1814    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1815        support::token(&self.syntax, SyntaxKind::L_PAREN)
1816    }
1817    #[inline]
1818    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1819        support::token(&self.syntax, SyntaxKind::R_PAREN)
1820    }
1821    #[inline]
1822    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1823        support::token(&self.syntax, SyntaxKind::L_BRACK)
1824    }
1825    #[inline]
1826    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1827        support::token(&self.syntax, SyntaxKind::R_BRACK)
1828    }
1829    #[inline]
1830    pub fn array_token(&self) -> Option<SyntaxToken> {
1831        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1832    }
1833}
1834
1835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1836pub struct ArrayType {
1837    pub(crate) syntax: SyntaxNode,
1838}
1839impl ArrayType {
1840    #[inline]
1841    pub fn expr(&self) -> Option<Expr> {
1842        support::child(&self.syntax)
1843    }
1844    #[inline]
1845    pub fn name_ref(&self) -> Option<NameRef> {
1846        support::child(&self.syntax)
1847    }
1848    #[inline]
1849    pub fn ty(&self) -> Option<Type> {
1850        support::child(&self.syntax)
1851    }
1852    #[inline]
1853    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1854        support::token(&self.syntax, SyntaxKind::L_BRACK)
1855    }
1856    #[inline]
1857    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1858        support::token(&self.syntax, SyntaxKind::R_BRACK)
1859    }
1860    #[inline]
1861    pub fn array_token(&self) -> Option<SyntaxToken> {
1862        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1863    }
1864}
1865
1866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1867pub struct AsFuncOption {
1868    pub(crate) syntax: SyntaxNode,
1869}
1870impl AsFuncOption {
1871    #[inline]
1872    pub fn definition(&self) -> Option<Literal> {
1873        support::child(&self.syntax)
1874    }
1875    #[inline]
1876    pub fn link_symbol(&self) -> Option<Literal> {
1877        support::child(&self.syntax)
1878    }
1879    #[inline]
1880    pub fn obj_file(&self) -> Option<Literal> {
1881        support::child(&self.syntax)
1882    }
1883    #[inline]
1884    pub fn comma_token(&self) -> Option<SyntaxToken> {
1885        support::token(&self.syntax, SyntaxKind::COMMA)
1886    }
1887    #[inline]
1888    pub fn as_token(&self) -> Option<SyntaxToken> {
1889        support::token(&self.syntax, SyntaxKind::AS_KW)
1890    }
1891}
1892
1893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1894pub struct AsName {
1895    pub(crate) syntax: SyntaxNode,
1896}
1897impl AsName {
1898    #[inline]
1899    pub fn name(&self) -> Option<Name> {
1900        support::child(&self.syntax)
1901    }
1902    #[inline]
1903    pub fn as_token(&self) -> Option<SyntaxToken> {
1904        support::token(&self.syntax, SyntaxKind::AS_KW)
1905    }
1906}
1907
1908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1909pub struct AsPolicyType {
1910    pub(crate) syntax: SyntaxNode,
1911}
1912impl AsPolicyType {
1913    #[inline]
1914    pub fn as_token(&self) -> Option<SyntaxToken> {
1915        support::token(&self.syntax, SyntaxKind::AS_KW)
1916    }
1917    #[inline]
1918    pub fn ident_token(&self) -> Option<SyntaxToken> {
1919        support::token(&self.syntax, SyntaxKind::IDENT)
1920    }
1921}
1922
1923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1924pub struct AtTimeZone {
1925    pub(crate) syntax: SyntaxNode,
1926}
1927impl AtTimeZone {
1928    #[inline]
1929    pub fn at_token(&self) -> Option<SyntaxToken> {
1930        support::token(&self.syntax, SyntaxKind::AT_KW)
1931    }
1932    #[inline]
1933    pub fn time_token(&self) -> Option<SyntaxToken> {
1934        support::token(&self.syntax, SyntaxKind::TIME_KW)
1935    }
1936    #[inline]
1937    pub fn zone_token(&self) -> Option<SyntaxToken> {
1938        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1939    }
1940}
1941
1942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1943pub struct AttachPartition {
1944    pub(crate) syntax: SyntaxNode,
1945}
1946impl AttachPartition {
1947    #[inline]
1948    pub fn partition_type(&self) -> Option<PartitionType> {
1949        support::child(&self.syntax)
1950    }
1951    #[inline]
1952    pub fn path(&self) -> Option<Path> {
1953        support::child(&self.syntax)
1954    }
1955    #[inline]
1956    pub fn attach_token(&self) -> Option<SyntaxToken> {
1957        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1958    }
1959    #[inline]
1960    pub fn partition_token(&self) -> Option<SyntaxToken> {
1961        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1962    }
1963}
1964
1965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1966pub struct AttributeList {
1967    pub(crate) syntax: SyntaxNode,
1968}
1969impl AttributeList {
1970    #[inline]
1971    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1972        support::children(&self.syntax)
1973    }
1974    #[inline]
1975    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1976        support::token(&self.syntax, SyntaxKind::L_PAREN)
1977    }
1978    #[inline]
1979    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1980        support::token(&self.syntax, SyntaxKind::R_PAREN)
1981    }
1982}
1983
1984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1985pub struct AttributeOption {
1986    pub(crate) syntax: SyntaxNode,
1987}
1988impl AttributeOption {
1989    #[inline]
1990    pub fn attribute_value(&self) -> Option<AttributeValue> {
1991        support::child(&self.syntax)
1992    }
1993    #[inline]
1994    pub fn name(&self) -> Option<Name> {
1995        support::child(&self.syntax)
1996    }
1997    #[inline]
1998    pub fn dot_token(&self) -> Option<SyntaxToken> {
1999        support::token(&self.syntax, SyntaxKind::DOT)
2000    }
2001    #[inline]
2002    pub fn eq_token(&self) -> Option<SyntaxToken> {
2003        support::token(&self.syntax, SyntaxKind::EQ)
2004    }
2005}
2006
2007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2008pub struct AttributeValue {
2009    pub(crate) syntax: SyntaxNode,
2010}
2011impl AttributeValue {
2012    #[inline]
2013    pub fn literal(&self) -> Option<Literal> {
2014        support::child(&self.syntax)
2015    }
2016    #[inline]
2017    pub fn op(&self) -> Option<Op> {
2018        support::child(&self.syntax)
2019    }
2020    #[inline]
2021    pub fn ty(&self) -> Option<Type> {
2022        support::child(&self.syntax)
2023    }
2024    #[inline]
2025    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2026        support::token(&self.syntax, SyntaxKind::L_PAREN)
2027    }
2028    #[inline]
2029    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2030        support::token(&self.syntax, SyntaxKind::R_PAREN)
2031    }
2032    #[inline]
2033    pub fn none_token(&self) -> Option<SyntaxToken> {
2034        support::token(&self.syntax, SyntaxKind::NONE_KW)
2035    }
2036    #[inline]
2037    pub fn operator_token(&self) -> Option<SyntaxToken> {
2038        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2039    }
2040}
2041
2042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2043pub struct Begin {
2044    pub(crate) syntax: SyntaxNode,
2045}
2046impl Begin {
2047    #[inline]
2048    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2049        support::child(&self.syntax)
2050    }
2051    #[inline]
2052    pub fn begin_token(&self) -> Option<SyntaxToken> {
2053        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2054    }
2055    #[inline]
2056    pub fn start_token(&self) -> Option<SyntaxToken> {
2057        support::token(&self.syntax, SyntaxKind::START_KW)
2058    }
2059    #[inline]
2060    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2061        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2062    }
2063    #[inline]
2064    pub fn work_token(&self) -> Option<SyntaxToken> {
2065        support::token(&self.syntax, SyntaxKind::WORK_KW)
2066    }
2067}
2068
2069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2070pub struct BeginFuncOption {
2071    pub(crate) syntax: SyntaxNode,
2072}
2073impl BeginFuncOption {
2074    #[inline]
2075    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2076        support::child(&self.syntax)
2077    }
2078    #[inline]
2079    pub fn stmt(&self) -> Option<Stmt> {
2080        support::child(&self.syntax)
2081    }
2082    #[inline]
2083    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2084        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2085    }
2086}
2087
2088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2089pub struct BeginFuncOptionList {
2090    pub(crate) syntax: SyntaxNode,
2091}
2092impl BeginFuncOptionList {
2093    #[inline]
2094    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2095        support::children(&self.syntax)
2096    }
2097    #[inline]
2098    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2099        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2100    }
2101    #[inline]
2102    pub fn begin_token(&self) -> Option<SyntaxToken> {
2103        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2104    }
2105    #[inline]
2106    pub fn end_token(&self) -> Option<SyntaxToken> {
2107        support::token(&self.syntax, SyntaxKind::END_KW)
2108    }
2109}
2110
2111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2112pub struct BetweenExpr {
2113    pub(crate) syntax: SyntaxNode,
2114}
2115impl BetweenExpr {
2116    #[inline]
2117    pub fn and_token(&self) -> Option<SyntaxToken> {
2118        support::token(&self.syntax, SyntaxKind::AND_KW)
2119    }
2120    #[inline]
2121    pub fn between_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2123    }
2124}
2125
2126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2127pub struct BinExpr {
2128    pub(crate) syntax: SyntaxNode,
2129}
2130impl BinExpr {
2131    #[inline]
2132    pub fn op(&self) -> Option<Op> {
2133        support::child(&self.syntax)
2134    }
2135}
2136
2137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2138pub struct BitType {
2139    pub(crate) syntax: SyntaxNode,
2140}
2141impl BitType {
2142    #[inline]
2143    pub fn arg_list(&self) -> Option<ArgList> {
2144        support::child(&self.syntax)
2145    }
2146    #[inline]
2147    pub fn bit_token(&self) -> Option<SyntaxToken> {
2148        support::token(&self.syntax, SyntaxKind::BIT_KW)
2149    }
2150    #[inline]
2151    pub fn varying_token(&self) -> Option<SyntaxToken> {
2152        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2153    }
2154}
2155
2156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2157pub struct Call {
2158    pub(crate) syntax: SyntaxNode,
2159}
2160impl Call {
2161    #[inline]
2162    pub fn arg_list(&self) -> Option<ArgList> {
2163        support::child(&self.syntax)
2164    }
2165    #[inline]
2166    pub fn path(&self) -> Option<Path> {
2167        support::child(&self.syntax)
2168    }
2169    #[inline]
2170    pub fn call_token(&self) -> Option<SyntaxToken> {
2171        support::token(&self.syntax, SyntaxKind::CALL_KW)
2172    }
2173}
2174
2175#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2176pub struct CallExpr {
2177    pub(crate) syntax: SyntaxNode,
2178}
2179impl CallExpr {
2180    #[inline]
2181    pub fn all_fn(&self) -> Option<AllFn> {
2182        support::child(&self.syntax)
2183    }
2184    #[inline]
2185    pub fn any_fn(&self) -> Option<AnyFn> {
2186        support::child(&self.syntax)
2187    }
2188    #[inline]
2189    pub fn arg_list(&self) -> Option<ArgList> {
2190        support::child(&self.syntax)
2191    }
2192    #[inline]
2193    pub fn exists_fn(&self) -> Option<ExistsFn> {
2194        support::child(&self.syntax)
2195    }
2196    #[inline]
2197    pub fn expr(&self) -> Option<Expr> {
2198        support::child(&self.syntax)
2199    }
2200    #[inline]
2201    pub fn extract_fn(&self) -> Option<ExtractFn> {
2202        support::child(&self.syntax)
2203    }
2204    #[inline]
2205    pub fn filter_clause(&self) -> Option<FilterClause> {
2206        support::child(&self.syntax)
2207    }
2208    #[inline]
2209    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2210        support::child(&self.syntax)
2211    }
2212    #[inline]
2213    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2214        support::child(&self.syntax)
2215    }
2216    #[inline]
2217    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2218        support::child(&self.syntax)
2219    }
2220    #[inline]
2221    pub fn json_fn(&self) -> Option<JsonFn> {
2222        support::child(&self.syntax)
2223    }
2224    #[inline]
2225    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2226        support::child(&self.syntax)
2227    }
2228    #[inline]
2229    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2230        support::child(&self.syntax)
2231    }
2232    #[inline]
2233    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2234        support::child(&self.syntax)
2235    }
2236    #[inline]
2237    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2238        support::child(&self.syntax)
2239    }
2240    #[inline]
2241    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2242        support::child(&self.syntax)
2243    }
2244    #[inline]
2245    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2246        support::child(&self.syntax)
2247    }
2248    #[inline]
2249    pub fn over_clause(&self) -> Option<OverClause> {
2250        support::child(&self.syntax)
2251    }
2252    #[inline]
2253    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2254        support::child(&self.syntax)
2255    }
2256    #[inline]
2257    pub fn position_fn(&self) -> Option<PositionFn> {
2258        support::child(&self.syntax)
2259    }
2260    #[inline]
2261    pub fn some_fn(&self) -> Option<SomeFn> {
2262        support::child(&self.syntax)
2263    }
2264    #[inline]
2265    pub fn substring_fn(&self) -> Option<SubstringFn> {
2266        support::child(&self.syntax)
2267    }
2268    #[inline]
2269    pub fn trim_fn(&self) -> Option<TrimFn> {
2270        support::child(&self.syntax)
2271    }
2272    #[inline]
2273    pub fn within_clause(&self) -> Option<WithinClause> {
2274        support::child(&self.syntax)
2275    }
2276    #[inline]
2277    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2278        support::child(&self.syntax)
2279    }
2280    #[inline]
2281    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2282        support::child(&self.syntax)
2283    }
2284    #[inline]
2285    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2286        support::child(&self.syntax)
2287    }
2288    #[inline]
2289    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2290        support::child(&self.syntax)
2291    }
2292    #[inline]
2293    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2294        support::child(&self.syntax)
2295    }
2296    #[inline]
2297    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2298        support::child(&self.syntax)
2299    }
2300    #[inline]
2301    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2302        support::child(&self.syntax)
2303    }
2304}
2305
2306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2307pub struct Cascade {
2308    pub(crate) syntax: SyntaxNode,
2309}
2310impl Cascade {
2311    #[inline]
2312    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2313        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2314    }
2315}
2316
2317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2318pub struct CaseExpr {
2319    pub(crate) syntax: SyntaxNode,
2320}
2321impl CaseExpr {
2322    #[inline]
2323    pub fn else_clause(&self) -> Option<ElseClause> {
2324        support::child(&self.syntax)
2325    }
2326    #[inline]
2327    pub fn expr(&self) -> Option<Expr> {
2328        support::child(&self.syntax)
2329    }
2330    #[inline]
2331    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2332        support::child(&self.syntax)
2333    }
2334    #[inline]
2335    pub fn case_token(&self) -> Option<SyntaxToken> {
2336        support::token(&self.syntax, SyntaxKind::CASE_KW)
2337    }
2338}
2339
2340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2341pub struct CastExpr {
2342    pub(crate) syntax: SyntaxNode,
2343}
2344impl CastExpr {
2345    #[inline]
2346    pub fn colon_colon(&self) -> Option<ColonColon> {
2347        support::child(&self.syntax)
2348    }
2349    #[inline]
2350    pub fn expr(&self) -> Option<Expr> {
2351        support::child(&self.syntax)
2352    }
2353    #[inline]
2354    pub fn literal(&self) -> Option<Literal> {
2355        support::child(&self.syntax)
2356    }
2357    #[inline]
2358    pub fn ty(&self) -> Option<Type> {
2359        support::child(&self.syntax)
2360    }
2361    #[inline]
2362    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2363        support::token(&self.syntax, SyntaxKind::L_PAREN)
2364    }
2365    #[inline]
2366    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2367        support::token(&self.syntax, SyntaxKind::R_PAREN)
2368    }
2369    #[inline]
2370    pub fn as_token(&self) -> Option<SyntaxToken> {
2371        support::token(&self.syntax, SyntaxKind::AS_KW)
2372    }
2373    #[inline]
2374    pub fn cast_token(&self) -> Option<SyntaxToken> {
2375        support::token(&self.syntax, SyntaxKind::CAST_KW)
2376    }
2377    #[inline]
2378    pub fn treat_token(&self) -> Option<SyntaxToken> {
2379        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2380    }
2381}
2382
2383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2384pub struct CastSig {
2385    pub(crate) syntax: SyntaxNode,
2386}
2387impl CastSig {
2388    #[inline]
2389    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2390        support::token(&self.syntax, SyntaxKind::L_PAREN)
2391    }
2392    #[inline]
2393    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2394        support::token(&self.syntax, SyntaxKind::R_PAREN)
2395    }
2396    #[inline]
2397    pub fn as_token(&self) -> Option<SyntaxToken> {
2398        support::token(&self.syntax, SyntaxKind::AS_KW)
2399    }
2400}
2401
2402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2403pub struct CharType {
2404    pub(crate) syntax: SyntaxNode,
2405}
2406impl CharType {
2407    #[inline]
2408    pub fn arg_list(&self) -> Option<ArgList> {
2409        support::child(&self.syntax)
2410    }
2411    #[inline]
2412    pub fn char_token(&self) -> Option<SyntaxToken> {
2413        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2414    }
2415    #[inline]
2416    pub fn character_token(&self) -> Option<SyntaxToken> {
2417        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2418    }
2419    #[inline]
2420    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2421        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2422    }
2423    #[inline]
2424    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2426    }
2427    #[inline]
2428    pub fn varying_token(&self) -> Option<SyntaxToken> {
2429        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2430    }
2431}
2432
2433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2434pub struct CheckConstraint {
2435    pub(crate) syntax: SyntaxNode,
2436}
2437impl CheckConstraint {
2438    #[inline]
2439    pub fn constraint_name(&self) -> Option<ConstraintName> {
2440        support::child(&self.syntax)
2441    }
2442    #[inline]
2443    pub fn expr(&self) -> Option<Expr> {
2444        support::child(&self.syntax)
2445    }
2446    #[inline]
2447    pub fn no_inherit(&self) -> Option<NoInherit> {
2448        support::child(&self.syntax)
2449    }
2450    #[inline]
2451    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2452        support::token(&self.syntax, SyntaxKind::L_PAREN)
2453    }
2454    #[inline]
2455    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2456        support::token(&self.syntax, SyntaxKind::R_PAREN)
2457    }
2458    #[inline]
2459    pub fn check_token(&self) -> Option<SyntaxToken> {
2460        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2461    }
2462}
2463
2464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2465pub struct Checkpoint {
2466    pub(crate) syntax: SyntaxNode,
2467}
2468impl Checkpoint {
2469    #[inline]
2470    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2471        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2472    }
2473}
2474
2475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2476pub struct Close {
2477    pub(crate) syntax: SyntaxNode,
2478}
2479impl Close {
2480    #[inline]
2481    pub fn name_ref(&self) -> Option<NameRef> {
2482        support::child(&self.syntax)
2483    }
2484    #[inline]
2485    pub fn close_token(&self) -> Option<SyntaxToken> {
2486        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2487    }
2488}
2489
2490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2491pub struct Cluster {
2492    pub(crate) syntax: SyntaxNode,
2493}
2494impl Cluster {
2495    #[inline]
2496    pub fn option_item_list(&self) -> Option<OptionItemList> {
2497        support::child(&self.syntax)
2498    }
2499    #[inline]
2500    pub fn path(&self) -> Option<Path> {
2501        support::child(&self.syntax)
2502    }
2503    #[inline]
2504    pub fn using_method(&self) -> Option<UsingMethod> {
2505        support::child(&self.syntax)
2506    }
2507    #[inline]
2508    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2509        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2510    }
2511    #[inline]
2512    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2513        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2514    }
2515}
2516
2517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2518pub struct ClusterOn {
2519    pub(crate) syntax: SyntaxNode,
2520}
2521impl ClusterOn {
2522    #[inline]
2523    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2524        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2525    }
2526    #[inline]
2527    pub fn on_token(&self) -> Option<SyntaxToken> {
2528        support::token(&self.syntax, SyntaxKind::ON_KW)
2529    }
2530}
2531
2532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2533pub struct Collate {
2534    pub(crate) syntax: SyntaxNode,
2535}
2536impl Collate {
2537    #[inline]
2538    pub fn path(&self) -> Option<Path> {
2539        support::child(&self.syntax)
2540    }
2541    #[inline]
2542    pub fn collate_token(&self) -> Option<SyntaxToken> {
2543        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2544    }
2545}
2546
2547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2548pub struct ColonColon {
2549    pub(crate) syntax: SyntaxNode,
2550}
2551impl ColonColon {
2552    #[inline]
2553    pub fn colon_token(&self) -> Option<SyntaxToken> {
2554        support::token(&self.syntax, SyntaxKind::COLON)
2555    }
2556}
2557
2558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2559pub struct ColonEq {
2560    pub(crate) syntax: SyntaxNode,
2561}
2562impl ColonEq {
2563    #[inline]
2564    pub fn colon_token(&self) -> Option<SyntaxToken> {
2565        support::token(&self.syntax, SyntaxKind::COLON)
2566    }
2567    #[inline]
2568    pub fn eq_token(&self) -> Option<SyntaxToken> {
2569        support::token(&self.syntax, SyntaxKind::EQ)
2570    }
2571}
2572
2573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2574pub struct Column {
2575    pub(crate) syntax: SyntaxNode,
2576}
2577impl Column {
2578    #[inline]
2579    pub fn collate(&self) -> Option<Collate> {
2580        support::child(&self.syntax)
2581    }
2582    #[inline]
2583    pub fn compression_method(&self) -> Option<CompressionMethod> {
2584        support::child(&self.syntax)
2585    }
2586    #[inline]
2587    pub fn constraint(&self) -> Option<ColumnConstraint> {
2588        support::child(&self.syntax)
2589    }
2590    #[inline]
2591    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2592        support::child(&self.syntax)
2593    }
2594    #[inline]
2595    pub fn enforced(&self) -> Option<Enforced> {
2596        support::child(&self.syntax)
2597    }
2598    #[inline]
2599    pub fn index_expr(&self) -> Option<IndexExpr> {
2600        support::child(&self.syntax)
2601    }
2602    #[inline]
2603    pub fn initially_deferred_constraint_option(
2604        &self,
2605    ) -> Option<InitiallyDeferredConstraintOption> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn initially_immediate_constraint_option(
2610        &self,
2611    ) -> Option<InitiallyImmediateConstraintOption> {
2612        support::child(&self.syntax)
2613    }
2614    #[inline]
2615    pub fn name(&self) -> Option<Name> {
2616        support::child(&self.syntax)
2617    }
2618    #[inline]
2619    pub fn name_ref(&self) -> Option<NameRef> {
2620        support::child(&self.syntax)
2621    }
2622    #[inline]
2623    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
2624        support::child(&self.syntax)
2625    }
2626    #[inline]
2627    pub fn not_enforced(&self) -> Option<NotEnforced> {
2628        support::child(&self.syntax)
2629    }
2630    #[inline]
2631    pub fn storage(&self) -> Option<Storage> {
2632        support::child(&self.syntax)
2633    }
2634    #[inline]
2635    pub fn ty(&self) -> Option<Type> {
2636        support::child(&self.syntax)
2637    }
2638    #[inline]
2639    pub fn with_options(&self) -> Option<WithOptions> {
2640        support::child(&self.syntax)
2641    }
2642    #[inline]
2643    pub fn period_token(&self) -> Option<SyntaxToken> {
2644        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
2645    }
2646}
2647
2648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2649pub struct ColumnList {
2650    pub(crate) syntax: SyntaxNode,
2651}
2652impl ColumnList {
2653    #[inline]
2654    pub fn columns(&self) -> AstChildren<Column> {
2655        support::children(&self.syntax)
2656    }
2657    #[inline]
2658    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2659        support::token(&self.syntax, SyntaxKind::L_PAREN)
2660    }
2661    #[inline]
2662    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2663        support::token(&self.syntax, SyntaxKind::R_PAREN)
2664    }
2665}
2666
2667#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2668pub struct CommentOn {
2669    pub(crate) syntax: SyntaxNode,
2670}
2671impl CommentOn {
2672    #[inline]
2673    pub fn literal(&self) -> Option<Literal> {
2674        support::child(&self.syntax)
2675    }
2676    #[inline]
2677    pub fn name_ref(&self) -> Option<NameRef> {
2678        support::child(&self.syntax)
2679    }
2680    #[inline]
2681    pub fn path(&self) -> Option<Path> {
2682        support::child(&self.syntax)
2683    }
2684    #[inline]
2685    pub fn comment_token(&self) -> Option<SyntaxToken> {
2686        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
2687    }
2688    #[inline]
2689    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2690        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2691    }
2692    #[inline]
2693    pub fn domain_token(&self) -> Option<SyntaxToken> {
2694        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2695    }
2696    #[inline]
2697    pub fn is_token(&self) -> Option<SyntaxToken> {
2698        support::token(&self.syntax, SyntaxKind::IS_KW)
2699    }
2700    #[inline]
2701    pub fn null_token(&self) -> Option<SyntaxToken> {
2702        support::token(&self.syntax, SyntaxKind::NULL_KW)
2703    }
2704    #[inline]
2705    pub fn on_token(&self) -> Option<SyntaxToken> {
2706        support::token(&self.syntax, SyntaxKind::ON_KW)
2707    }
2708    #[inline]
2709    pub fn table_token(&self) -> Option<SyntaxToken> {
2710        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2711    }
2712}
2713
2714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2715pub struct Commit {
2716    pub(crate) syntax: SyntaxNode,
2717}
2718impl Commit {
2719    #[inline]
2720    pub fn literal(&self) -> Option<Literal> {
2721        support::child(&self.syntax)
2722    }
2723    #[inline]
2724    pub fn and_token(&self) -> Option<SyntaxToken> {
2725        support::token(&self.syntax, SyntaxKind::AND_KW)
2726    }
2727    #[inline]
2728    pub fn chain_token(&self) -> Option<SyntaxToken> {
2729        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
2730    }
2731    #[inline]
2732    pub fn commit_token(&self) -> Option<SyntaxToken> {
2733        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
2734    }
2735    #[inline]
2736    pub fn no_token(&self) -> Option<SyntaxToken> {
2737        support::token(&self.syntax, SyntaxKind::NO_KW)
2738    }
2739    #[inline]
2740    pub fn prepared_token(&self) -> Option<SyntaxToken> {
2741        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
2742    }
2743    #[inline]
2744    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2745        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2746    }
2747    #[inline]
2748    pub fn work_token(&self) -> Option<SyntaxToken> {
2749        support::token(&self.syntax, SyntaxKind::WORK_KW)
2750    }
2751}
2752
2753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2754pub struct CompoundSelect {
2755    pub(crate) syntax: SyntaxNode,
2756}
2757impl CompoundSelect {
2758    #[inline]
2759    pub fn all_token(&self) -> Option<SyntaxToken> {
2760        support::token(&self.syntax, SyntaxKind::ALL_KW)
2761    }
2762    #[inline]
2763    pub fn except_token(&self) -> Option<SyntaxToken> {
2764        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
2765    }
2766    #[inline]
2767    pub fn intersect_token(&self) -> Option<SyntaxToken> {
2768        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
2769    }
2770    #[inline]
2771    pub fn union_token(&self) -> Option<SyntaxToken> {
2772        support::token(&self.syntax, SyntaxKind::UNION_KW)
2773    }
2774}
2775
2776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2777pub struct CompressionMethod {
2778    pub(crate) syntax: SyntaxNode,
2779}
2780impl CompressionMethod {
2781    #[inline]
2782    pub fn compression_token(&self) -> Option<SyntaxToken> {
2783        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
2784    }
2785    #[inline]
2786    pub fn default_token(&self) -> Option<SyntaxToken> {
2787        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2788    }
2789    #[inline]
2790    pub fn ident_token(&self) -> Option<SyntaxToken> {
2791        support::token(&self.syntax, SyntaxKind::IDENT)
2792    }
2793}
2794
2795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2796pub struct ConflictDoNothing {
2797    pub(crate) syntax: SyntaxNode,
2798}
2799impl ConflictDoNothing {
2800    #[inline]
2801    pub fn do_token(&self) -> Option<SyntaxToken> {
2802        support::token(&self.syntax, SyntaxKind::DO_KW)
2803    }
2804    #[inline]
2805    pub fn nothing_token(&self) -> Option<SyntaxToken> {
2806        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
2807    }
2808}
2809
2810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2811pub struct ConflictDoUpdateSet {
2812    pub(crate) syntax: SyntaxNode,
2813}
2814impl ConflictDoUpdateSet {
2815    #[inline]
2816    pub fn set_clause(&self) -> Option<SetClause> {
2817        support::child(&self.syntax)
2818    }
2819    #[inline]
2820    pub fn where_clause(&self) -> Option<WhereClause> {
2821        support::child(&self.syntax)
2822    }
2823    #[inline]
2824    pub fn do_token(&self) -> Option<SyntaxToken> {
2825        support::token(&self.syntax, SyntaxKind::DO_KW)
2826    }
2827    #[inline]
2828    pub fn update_token(&self) -> Option<SyntaxToken> {
2829        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
2830    }
2831}
2832
2833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2834pub struct ConflictIndexItem {
2835    pub(crate) syntax: SyntaxNode,
2836}
2837impl ConflictIndexItem {
2838    #[inline]
2839    pub fn collate(&self) -> Option<Collate> {
2840        support::child(&self.syntax)
2841    }
2842    #[inline]
2843    pub fn expr(&self) -> Option<Expr> {
2844        support::child(&self.syntax)
2845    }
2846    #[inline]
2847    pub fn ident_token(&self) -> Option<SyntaxToken> {
2848        support::token(&self.syntax, SyntaxKind::IDENT)
2849    }
2850}
2851
2852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2853pub struct ConflictIndexItemList {
2854    pub(crate) syntax: SyntaxNode,
2855}
2856impl ConflictIndexItemList {
2857    #[inline]
2858    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
2859        support::children(&self.syntax)
2860    }
2861    #[inline]
2862    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2863        support::token(&self.syntax, SyntaxKind::L_PAREN)
2864    }
2865    #[inline]
2866    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2867        support::token(&self.syntax, SyntaxKind::R_PAREN)
2868    }
2869}
2870
2871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2872pub struct ConflictOnConstraint {
2873    pub(crate) syntax: SyntaxNode,
2874}
2875impl ConflictOnConstraint {
2876    #[inline]
2877    pub fn name_ref(&self) -> Option<NameRef> {
2878        support::child(&self.syntax)
2879    }
2880    #[inline]
2881    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2882        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
2883    }
2884    #[inline]
2885    pub fn on_token(&self) -> Option<SyntaxToken> {
2886        support::token(&self.syntax, SyntaxKind::ON_KW)
2887    }
2888}
2889
2890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2891pub struct ConflictOnIndex {
2892    pub(crate) syntax: SyntaxNode,
2893}
2894impl ConflictOnIndex {
2895    #[inline]
2896    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
2897        support::child(&self.syntax)
2898    }
2899    #[inline]
2900    pub fn where_clause(&self) -> Option<WhereClause> {
2901        support::child(&self.syntax)
2902    }
2903}
2904
2905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2906pub struct ConstraintExclusion {
2907    pub(crate) syntax: SyntaxNode,
2908}
2909impl ConstraintExclusion {
2910    #[inline]
2911    pub fn expr(&self) -> Option<Expr> {
2912        support::child(&self.syntax)
2913    }
2914    #[inline]
2915    pub fn op(&self) -> Option<Op> {
2916        support::child(&self.syntax)
2917    }
2918    #[inline]
2919    pub fn with_token(&self) -> Option<SyntaxToken> {
2920        support::token(&self.syntax, SyntaxKind::WITH_KW)
2921    }
2922}
2923
2924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2925pub struct ConstraintExclusionList {
2926    pub(crate) syntax: SyntaxNode,
2927}
2928impl ConstraintExclusionList {
2929    #[inline]
2930    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
2931        support::children(&self.syntax)
2932    }
2933    #[inline]
2934    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2935        support::token(&self.syntax, SyntaxKind::L_PAREN)
2936    }
2937    #[inline]
2938    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2939        support::token(&self.syntax, SyntaxKind::R_PAREN)
2940    }
2941}
2942
2943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2944pub struct ConstraintIncludeClause {
2945    pub(crate) syntax: SyntaxNode,
2946}
2947impl ConstraintIncludeClause {
2948    #[inline]
2949    pub fn include_token(&self) -> Option<SyntaxToken> {
2950        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2951    }
2952}
2953
2954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2955pub struct ConstraintIndexMethod {
2956    pub(crate) syntax: SyntaxNode,
2957}
2958impl ConstraintIndexMethod {
2959    #[inline]
2960    pub fn using_token(&self) -> Option<SyntaxToken> {
2961        support::token(&self.syntax, SyntaxKind::USING_KW)
2962    }
2963}
2964
2965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2966pub struct ConstraintIndexTablespace {
2967    pub(crate) syntax: SyntaxNode,
2968}
2969impl ConstraintIndexTablespace {
2970    #[inline]
2971    pub fn name_ref(&self) -> Option<NameRef> {
2972        support::child(&self.syntax)
2973    }
2974    #[inline]
2975    pub fn index_token(&self) -> Option<SyntaxToken> {
2976        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2977    }
2978    #[inline]
2979    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2980        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2981    }
2982    #[inline]
2983    pub fn using_token(&self) -> Option<SyntaxToken> {
2984        support::token(&self.syntax, SyntaxKind::USING_KW)
2985    }
2986}
2987
2988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2989pub struct ConstraintName {
2990    pub(crate) syntax: SyntaxNode,
2991}
2992impl ConstraintName {
2993    #[inline]
2994    pub fn name(&self) -> Option<Name> {
2995        support::child(&self.syntax)
2996    }
2997    #[inline]
2998    pub fn constraint_token(&self) -> Option<SyntaxToken> {
2999        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3000    }
3001}
3002
3003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3004pub struct Copy {
3005    pub(crate) syntax: SyntaxNode,
3006}
3007impl Copy {
3008    #[inline]
3009    pub fn column_list(&self) -> Option<ColumnList> {
3010        support::child(&self.syntax)
3011    }
3012    #[inline]
3013    pub fn literal(&self) -> Option<Literal> {
3014        support::child(&self.syntax)
3015    }
3016    #[inline]
3017    pub fn path(&self) -> Option<Path> {
3018        support::child(&self.syntax)
3019    }
3020    #[inline]
3021    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3022        support::child(&self.syntax)
3023    }
3024    #[inline]
3025    pub fn where_clause(&self) -> Option<WhereClause> {
3026        support::child(&self.syntax)
3027    }
3028    #[inline]
3029    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3030        support::token(&self.syntax, SyntaxKind::L_PAREN)
3031    }
3032    #[inline]
3033    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3034        support::token(&self.syntax, SyntaxKind::R_PAREN)
3035    }
3036    #[inline]
3037    pub fn binary_token(&self) -> Option<SyntaxToken> {
3038        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3039    }
3040    #[inline]
3041    pub fn copy_token(&self) -> Option<SyntaxToken> {
3042        support::token(&self.syntax, SyntaxKind::COPY_KW)
3043    }
3044    #[inline]
3045    pub fn from_token(&self) -> Option<SyntaxToken> {
3046        support::token(&self.syntax, SyntaxKind::FROM_KW)
3047    }
3048    #[inline]
3049    pub fn program_token(&self) -> Option<SyntaxToken> {
3050        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3051    }
3052    #[inline]
3053    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3054        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3055    }
3056    #[inline]
3057    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3058        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3059    }
3060    #[inline]
3061    pub fn to_token(&self) -> Option<SyntaxToken> {
3062        support::token(&self.syntax, SyntaxKind::TO_KW)
3063    }
3064    #[inline]
3065    pub fn with_token(&self) -> Option<SyntaxToken> {
3066        support::token(&self.syntax, SyntaxKind::WITH_KW)
3067    }
3068}
3069
3070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3071pub struct CopyOption {
3072    pub(crate) syntax: SyntaxNode,
3073}
3074impl CopyOption {
3075    #[inline]
3076    pub fn name(&self) -> Option<Name> {
3077        support::child(&self.syntax)
3078    }
3079}
3080
3081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3082pub struct CopyOptionList {
3083    pub(crate) syntax: SyntaxNode,
3084}
3085impl CopyOptionList {
3086    #[inline]
3087    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3088        support::children(&self.syntax)
3089    }
3090    #[inline]
3091    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3092        support::token(&self.syntax, SyntaxKind::L_PAREN)
3093    }
3094    #[inline]
3095    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3096        support::token(&self.syntax, SyntaxKind::R_PAREN)
3097    }
3098}
3099
3100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3101pub struct CostFuncOption {
3102    pub(crate) syntax: SyntaxNode,
3103}
3104impl CostFuncOption {
3105    #[inline]
3106    pub fn cost_token(&self) -> Option<SyntaxToken> {
3107        support::token(&self.syntax, SyntaxKind::COST_KW)
3108    }
3109}
3110
3111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3112pub struct CreateAccessMethod {
3113    pub(crate) syntax: SyntaxNode,
3114}
3115impl CreateAccessMethod {
3116    #[inline]
3117    pub fn handler_clause(&self) -> Option<HandlerClause> {
3118        support::child(&self.syntax)
3119    }
3120    #[inline]
3121    pub fn name(&self) -> Option<Path> {
3122        support::child(&self.syntax)
3123    }
3124    #[inline]
3125    pub fn access_token(&self) -> Option<SyntaxToken> {
3126        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3127    }
3128    #[inline]
3129    pub fn create_token(&self) -> Option<SyntaxToken> {
3130        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3131    }
3132    #[inline]
3133    pub fn index_token(&self) -> Option<SyntaxToken> {
3134        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3135    }
3136    #[inline]
3137    pub fn method_token(&self) -> Option<SyntaxToken> {
3138        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3139    }
3140    #[inline]
3141    pub fn table_token(&self) -> Option<SyntaxToken> {
3142        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3143    }
3144    #[inline]
3145    pub fn type_token(&self) -> Option<SyntaxToken> {
3146        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3147    }
3148}
3149
3150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3151pub struct CreateAggregate {
3152    pub(crate) syntax: SyntaxNode,
3153}
3154impl CreateAggregate {
3155    #[inline]
3156    pub fn or_replace(&self) -> Option<OrReplace> {
3157        support::child(&self.syntax)
3158    }
3159    #[inline]
3160    pub fn param_list(&self) -> Option<ParamList> {
3161        support::child(&self.syntax)
3162    }
3163    #[inline]
3164    pub fn path(&self) -> Option<Path> {
3165        support::child(&self.syntax)
3166    }
3167    #[inline]
3168    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3169        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3170    }
3171    #[inline]
3172    pub fn create_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3174    }
3175}
3176
3177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3178pub struct CreateCast {
3179    pub(crate) syntax: SyntaxNode,
3180}
3181impl CreateCast {
3182    #[inline]
3183    pub fn cast_sig(&self) -> Option<CastSig> {
3184        support::child(&self.syntax)
3185    }
3186    #[inline]
3187    pub fn function_sig(&self) -> Option<FunctionSig> {
3188        support::child(&self.syntax)
3189    }
3190    #[inline]
3191    pub fn as_token(&self) -> Option<SyntaxToken> {
3192        support::token(&self.syntax, SyntaxKind::AS_KW)
3193    }
3194    #[inline]
3195    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3196        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3197    }
3198    #[inline]
3199    pub fn cast_token(&self) -> Option<SyntaxToken> {
3200        support::token(&self.syntax, SyntaxKind::CAST_KW)
3201    }
3202    #[inline]
3203    pub fn create_token(&self) -> Option<SyntaxToken> {
3204        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3205    }
3206    #[inline]
3207    pub fn function_token(&self) -> Option<SyntaxToken> {
3208        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3209    }
3210    #[inline]
3211    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3212        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3213    }
3214    #[inline]
3215    pub fn inout_token(&self) -> Option<SyntaxToken> {
3216        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3217    }
3218    #[inline]
3219    pub fn with_token(&self) -> Option<SyntaxToken> {
3220        support::token(&self.syntax, SyntaxKind::WITH_KW)
3221    }
3222    #[inline]
3223    pub fn without_token(&self) -> Option<SyntaxToken> {
3224        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3225    }
3226}
3227
3228#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3229pub struct CreateCollation {
3230    pub(crate) syntax: SyntaxNode,
3231}
3232impl CreateCollation {
3233    #[inline]
3234    pub fn path(&self) -> Option<Path> {
3235        support::child(&self.syntax)
3236    }
3237    #[inline]
3238    pub fn collation_token(&self) -> Option<SyntaxToken> {
3239        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3240    }
3241    #[inline]
3242    pub fn create_token(&self) -> Option<SyntaxToken> {
3243        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3244    }
3245}
3246
3247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3248pub struct CreateConversion {
3249    pub(crate) syntax: SyntaxNode,
3250}
3251impl CreateConversion {
3252    #[inline]
3253    pub fn literal(&self) -> Option<Literal> {
3254        support::child(&self.syntax)
3255    }
3256    #[inline]
3257    pub fn path(&self) -> Option<Path> {
3258        support::child(&self.syntax)
3259    }
3260    #[inline]
3261    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3262        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3263    }
3264    #[inline]
3265    pub fn create_token(&self) -> Option<SyntaxToken> {
3266        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3267    }
3268    #[inline]
3269    pub fn default_token(&self) -> Option<SyntaxToken> {
3270        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3271    }
3272    #[inline]
3273    pub fn for_token(&self) -> Option<SyntaxToken> {
3274        support::token(&self.syntax, SyntaxKind::FOR_KW)
3275    }
3276    #[inline]
3277    pub fn from_token(&self) -> Option<SyntaxToken> {
3278        support::token(&self.syntax, SyntaxKind::FROM_KW)
3279    }
3280    #[inline]
3281    pub fn to_token(&self) -> Option<SyntaxToken> {
3282        support::token(&self.syntax, SyntaxKind::TO_KW)
3283    }
3284}
3285
3286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3287pub struct CreateDatabase {
3288    pub(crate) syntax: SyntaxNode,
3289}
3290impl CreateDatabase {
3291    #[inline]
3292    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3293        support::child(&self.syntax)
3294    }
3295    #[inline]
3296    pub fn name(&self) -> Option<Name> {
3297        support::child(&self.syntax)
3298    }
3299    #[inline]
3300    pub fn create_token(&self) -> Option<SyntaxToken> {
3301        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3302    }
3303    #[inline]
3304    pub fn database_token(&self) -> Option<SyntaxToken> {
3305        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3306    }
3307}
3308
3309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3310pub struct CreateDatabaseOption {
3311    pub(crate) syntax: SyntaxNode,
3312}
3313impl CreateDatabaseOption {
3314    #[inline]
3315    pub fn literal(&self) -> Option<Literal> {
3316        support::child(&self.syntax)
3317    }
3318    #[inline]
3319    pub fn eq_token(&self) -> Option<SyntaxToken> {
3320        support::token(&self.syntax, SyntaxKind::EQ)
3321    }
3322    #[inline]
3323    pub fn connection_token(&self) -> Option<SyntaxToken> {
3324        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3325    }
3326    #[inline]
3327    pub fn default_token(&self) -> Option<SyntaxToken> {
3328        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3329    }
3330    #[inline]
3331    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3332        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3333    }
3334    #[inline]
3335    pub fn ident_token(&self) -> Option<SyntaxToken> {
3336        support::token(&self.syntax, SyntaxKind::IDENT)
3337    }
3338    #[inline]
3339    pub fn limit_token(&self) -> Option<SyntaxToken> {
3340        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3341    }
3342    #[inline]
3343    pub fn owner_token(&self) -> Option<SyntaxToken> {
3344        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3345    }
3346    #[inline]
3347    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3348        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3349    }
3350    #[inline]
3351    pub fn template_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3353    }
3354}
3355
3356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3357pub struct CreateDatabaseOptionList {
3358    pub(crate) syntax: SyntaxNode,
3359}
3360impl CreateDatabaseOptionList {
3361    #[inline]
3362    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
3363        support::children(&self.syntax)
3364    }
3365    #[inline]
3366    pub fn with_token(&self) -> Option<SyntaxToken> {
3367        support::token(&self.syntax, SyntaxKind::WITH_KW)
3368    }
3369}
3370
3371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3372pub struct CreateDomain {
3373    pub(crate) syntax: SyntaxNode,
3374}
3375impl CreateDomain {
3376    #[inline]
3377    pub fn collate(&self) -> Option<Collate> {
3378        support::child(&self.syntax)
3379    }
3380    #[inline]
3381    pub fn constraints(&self) -> AstChildren<Constraint> {
3382        support::children(&self.syntax)
3383    }
3384    #[inline]
3385    pub fn path(&self) -> Option<Path> {
3386        support::child(&self.syntax)
3387    }
3388    #[inline]
3389    pub fn ty(&self) -> Option<Type> {
3390        support::child(&self.syntax)
3391    }
3392    #[inline]
3393    pub fn as_token(&self) -> Option<SyntaxToken> {
3394        support::token(&self.syntax, SyntaxKind::AS_KW)
3395    }
3396    #[inline]
3397    pub fn create_token(&self) -> Option<SyntaxToken> {
3398        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3399    }
3400    #[inline]
3401    pub fn domain_token(&self) -> Option<SyntaxToken> {
3402        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3403    }
3404}
3405
3406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3407pub struct CreateEventTrigger {
3408    pub(crate) syntax: SyntaxNode,
3409}
3410impl CreateEventTrigger {
3411    #[inline]
3412    pub fn call_expr(&self) -> Option<CallExpr> {
3413        support::child(&self.syntax)
3414    }
3415    #[inline]
3416    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
3417        support::child(&self.syntax)
3418    }
3419    #[inline]
3420    pub fn name(&self) -> Option<Name> {
3421        support::child(&self.syntax)
3422    }
3423    #[inline]
3424    pub fn name_ref(&self) -> Option<NameRef> {
3425        support::child(&self.syntax)
3426    }
3427    #[inline]
3428    pub fn create_token(&self) -> Option<SyntaxToken> {
3429        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3430    }
3431    #[inline]
3432    pub fn event_token(&self) -> Option<SyntaxToken> {
3433        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3434    }
3435    #[inline]
3436    pub fn execute_token(&self) -> Option<SyntaxToken> {
3437        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
3438    }
3439    #[inline]
3440    pub fn function_token(&self) -> Option<SyntaxToken> {
3441        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3442    }
3443    #[inline]
3444    pub fn on_token(&self) -> Option<SyntaxToken> {
3445        support::token(&self.syntax, SyntaxKind::ON_KW)
3446    }
3447    #[inline]
3448    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3449        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3450    }
3451    #[inline]
3452    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3453        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3454    }
3455}
3456
3457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3458pub struct CreateExtension {
3459    pub(crate) syntax: SyntaxNode,
3460}
3461impl CreateExtension {
3462    #[inline]
3463    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3464        support::child(&self.syntax)
3465    }
3466    #[inline]
3467    pub fn name(&self) -> Option<Name> {
3468        support::child(&self.syntax)
3469    }
3470    #[inline]
3471    pub fn create_token(&self) -> Option<SyntaxToken> {
3472        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3473    }
3474    #[inline]
3475    pub fn extension_token(&self) -> Option<SyntaxToken> {
3476        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3477    }
3478}
3479
3480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3481pub struct CreateForeignDataWrapper {
3482    pub(crate) syntax: SyntaxNode,
3483}
3484impl CreateForeignDataWrapper {
3485    #[inline]
3486    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3487        support::child(&self.syntax)
3488    }
3489    #[inline]
3490    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
3491        support::child(&self.syntax)
3492    }
3493    #[inline]
3494    pub fn name(&self) -> Option<Name> {
3495        support::child(&self.syntax)
3496    }
3497    #[inline]
3498    pub fn create_token(&self) -> Option<SyntaxToken> {
3499        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3500    }
3501    #[inline]
3502    pub fn data_token(&self) -> Option<SyntaxToken> {
3503        support::token(&self.syntax, SyntaxKind::DATA_KW)
3504    }
3505    #[inline]
3506    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3507        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3508    }
3509    #[inline]
3510    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3511        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3512    }
3513}
3514
3515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3516pub struct CreateForeignTable {
3517    pub(crate) syntax: SyntaxNode,
3518}
3519impl CreateForeignTable {
3520    #[inline]
3521    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
3522        support::child(&self.syntax)
3523    }
3524    #[inline]
3525    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3526        support::child(&self.syntax)
3527    }
3528    #[inline]
3529    pub fn inherits(&self) -> Option<Inherits> {
3530        support::child(&self.syntax)
3531    }
3532    #[inline]
3533    pub fn partition_of(&self) -> Option<PartitionOf> {
3534        support::child(&self.syntax)
3535    }
3536    #[inline]
3537    pub fn partition_type(&self) -> Option<PartitionType> {
3538        support::child(&self.syntax)
3539    }
3540    #[inline]
3541    pub fn path(&self) -> Option<Path> {
3542        support::child(&self.syntax)
3543    }
3544    #[inline]
3545    pub fn server_name(&self) -> Option<ServerName> {
3546        support::child(&self.syntax)
3547    }
3548    #[inline]
3549    pub fn table_arg_list(&self) -> Option<TableArgList> {
3550        support::child(&self.syntax)
3551    }
3552    #[inline]
3553    pub fn create_token(&self) -> Option<SyntaxToken> {
3554        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3555    }
3556    #[inline]
3557    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3558        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3559    }
3560    #[inline]
3561    pub fn table_token(&self) -> Option<SyntaxToken> {
3562        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3563    }
3564}
3565
3566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3567pub struct CreateFunction {
3568    pub(crate) syntax: SyntaxNode,
3569}
3570impl CreateFunction {
3571    #[inline]
3572    pub fn option_list(&self) -> Option<FuncOptionList> {
3573        support::child(&self.syntax)
3574    }
3575    #[inline]
3576    pub fn or_replace(&self) -> Option<OrReplace> {
3577        support::child(&self.syntax)
3578    }
3579    #[inline]
3580    pub fn param_list(&self) -> Option<ParamList> {
3581        support::child(&self.syntax)
3582    }
3583    #[inline]
3584    pub fn path(&self) -> Option<Path> {
3585        support::child(&self.syntax)
3586    }
3587    #[inline]
3588    pub fn ret_type(&self) -> Option<RetType> {
3589        support::child(&self.syntax)
3590    }
3591    #[inline]
3592    pub fn create_token(&self) -> Option<SyntaxToken> {
3593        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3594    }
3595    #[inline]
3596    pub fn function_token(&self) -> Option<SyntaxToken> {
3597        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3598    }
3599}
3600
3601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3602pub struct CreateGroup {
3603    pub(crate) syntax: SyntaxNode,
3604}
3605impl CreateGroup {
3606    #[inline]
3607    pub fn name(&self) -> Option<Name> {
3608        support::child(&self.syntax)
3609    }
3610    #[inline]
3611    pub fn role_option_list(&self) -> Option<RoleOptionList> {
3612        support::child(&self.syntax)
3613    }
3614    #[inline]
3615    pub fn create_token(&self) -> Option<SyntaxToken> {
3616        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3617    }
3618    #[inline]
3619    pub fn group_token(&self) -> Option<SyntaxToken> {
3620        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3621    }
3622}
3623
3624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3625pub struct CreateIndex {
3626    pub(crate) syntax: SyntaxNode,
3627}
3628impl CreateIndex {
3629    #[inline]
3630    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
3631        support::child(&self.syntax)
3632    }
3633    #[inline]
3634    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3635        support::child(&self.syntax)
3636    }
3637    #[inline]
3638    pub fn name(&self) -> Option<Name> {
3639        support::child(&self.syntax)
3640    }
3641    #[inline]
3642    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
3643        support::child(&self.syntax)
3644    }
3645    #[inline]
3646    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
3647        support::child(&self.syntax)
3648    }
3649    #[inline]
3650    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
3651        support::child(&self.syntax)
3652    }
3653    #[inline]
3654    pub fn relation_name(&self) -> Option<RelationName> {
3655        support::child(&self.syntax)
3656    }
3657    #[inline]
3658    pub fn tablespace(&self) -> Option<Tablespace> {
3659        support::child(&self.syntax)
3660    }
3661    #[inline]
3662    pub fn using_method(&self) -> Option<UsingMethod> {
3663        support::child(&self.syntax)
3664    }
3665    #[inline]
3666    pub fn where_clause(&self) -> Option<WhereClause> {
3667        support::child(&self.syntax)
3668    }
3669    #[inline]
3670    pub fn with_params(&self) -> Option<WithParams> {
3671        support::child(&self.syntax)
3672    }
3673    #[inline]
3674    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3675        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3676    }
3677    #[inline]
3678    pub fn create_token(&self) -> Option<SyntaxToken> {
3679        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3680    }
3681    #[inline]
3682    pub fn index_token(&self) -> Option<SyntaxToken> {
3683        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3684    }
3685    #[inline]
3686    pub fn on_token(&self) -> Option<SyntaxToken> {
3687        support::token(&self.syntax, SyntaxKind::ON_KW)
3688    }
3689    #[inline]
3690    pub fn unique_token(&self) -> Option<SyntaxToken> {
3691        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
3692    }
3693}
3694
3695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3696pub struct CreateLanguage {
3697    pub(crate) syntax: SyntaxNode,
3698}
3699impl CreateLanguage {
3700    #[inline]
3701    pub fn name(&self) -> Option<Name> {
3702        support::child(&self.syntax)
3703    }
3704    #[inline]
3705    pub fn or_replace(&self) -> Option<OrReplace> {
3706        support::child(&self.syntax)
3707    }
3708    #[inline]
3709    pub fn path(&self) -> Option<Path> {
3710        support::child(&self.syntax)
3711    }
3712    #[inline]
3713    pub fn create_token(&self) -> Option<SyntaxToken> {
3714        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3715    }
3716    #[inline]
3717    pub fn handler_token(&self) -> Option<SyntaxToken> {
3718        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
3719    }
3720    #[inline]
3721    pub fn inline_token(&self) -> Option<SyntaxToken> {
3722        support::token(&self.syntax, SyntaxKind::INLINE_KW)
3723    }
3724    #[inline]
3725    pub fn language_token(&self) -> Option<SyntaxToken> {
3726        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3727    }
3728    #[inline]
3729    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3730        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3731    }
3732    #[inline]
3733    pub fn trusted_token(&self) -> Option<SyntaxToken> {
3734        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
3735    }
3736    #[inline]
3737    pub fn validator_token(&self) -> Option<SyntaxToken> {
3738        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
3739    }
3740}
3741
3742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3743pub struct CreateMaterializedView {
3744    pub(crate) syntax: SyntaxNode,
3745}
3746impl CreateMaterializedView {
3747    #[inline]
3748    pub fn column_list(&self) -> Option<ColumnList> {
3749        support::child(&self.syntax)
3750    }
3751    #[inline]
3752    pub fn if_not_exists(&self) -> Option<IfNotExists> {
3753        support::child(&self.syntax)
3754    }
3755    #[inline]
3756    pub fn path(&self) -> Option<Path> {
3757        support::child(&self.syntax)
3758    }
3759    #[inline]
3760    pub fn query(&self) -> Option<SelectVariant> {
3761        support::child(&self.syntax)
3762    }
3763    #[inline]
3764    pub fn tablespace(&self) -> Option<Tablespace> {
3765        support::child(&self.syntax)
3766    }
3767    #[inline]
3768    pub fn using_method(&self) -> Option<UsingMethod> {
3769        support::child(&self.syntax)
3770    }
3771    #[inline]
3772    pub fn with_data(&self) -> Option<WithData> {
3773        support::child(&self.syntax)
3774    }
3775    #[inline]
3776    pub fn with_no_data(&self) -> Option<WithNoData> {
3777        support::child(&self.syntax)
3778    }
3779    #[inline]
3780    pub fn with_params(&self) -> Option<WithParams> {
3781        support::child(&self.syntax)
3782    }
3783    #[inline]
3784    pub fn as_token(&self) -> Option<SyntaxToken> {
3785        support::token(&self.syntax, SyntaxKind::AS_KW)
3786    }
3787    #[inline]
3788    pub fn create_token(&self) -> Option<SyntaxToken> {
3789        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3790    }
3791    #[inline]
3792    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3793        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3794    }
3795    #[inline]
3796    pub fn view_token(&self) -> Option<SyntaxToken> {
3797        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3798    }
3799}
3800
3801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3802pub struct CreateOperator {
3803    pub(crate) syntax: SyntaxNode,
3804}
3805impl CreateOperator {
3806    #[inline]
3807    pub fn attribute_list(&self) -> Option<AttributeList> {
3808        support::child(&self.syntax)
3809    }
3810    #[inline]
3811    pub fn op(&self) -> Option<Op> {
3812        support::child(&self.syntax)
3813    }
3814    #[inline]
3815    pub fn path(&self) -> Option<Path> {
3816        support::child(&self.syntax)
3817    }
3818    #[inline]
3819    pub fn create_token(&self) -> Option<SyntaxToken> {
3820        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3821    }
3822    #[inline]
3823    pub fn operator_token(&self) -> Option<SyntaxToken> {
3824        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3825    }
3826}
3827
3828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3829pub struct CreateOperatorClass {
3830    pub(crate) syntax: SyntaxNode,
3831}
3832impl CreateOperatorClass {
3833    #[inline]
3834    pub fn name_ref(&self) -> Option<NameRef> {
3835        support::child(&self.syntax)
3836    }
3837    #[inline]
3838    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
3839        support::child(&self.syntax)
3840    }
3841    #[inline]
3842    pub fn path(&self) -> Option<Path> {
3843        support::child(&self.syntax)
3844    }
3845    #[inline]
3846    pub fn ty(&self) -> Option<Type> {
3847        support::child(&self.syntax)
3848    }
3849    #[inline]
3850    pub fn as_token(&self) -> Option<SyntaxToken> {
3851        support::token(&self.syntax, SyntaxKind::AS_KW)
3852    }
3853    #[inline]
3854    pub fn class_token(&self) -> Option<SyntaxToken> {
3855        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3856    }
3857    #[inline]
3858    pub fn create_token(&self) -> Option<SyntaxToken> {
3859        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3860    }
3861    #[inline]
3862    pub fn default_token(&self) -> Option<SyntaxToken> {
3863        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3864    }
3865    #[inline]
3866    pub fn family_token(&self) -> Option<SyntaxToken> {
3867        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3868    }
3869    #[inline]
3870    pub fn for_token(&self) -> Option<SyntaxToken> {
3871        support::token(&self.syntax, SyntaxKind::FOR_KW)
3872    }
3873    #[inline]
3874    pub fn operator_token(&self) -> Option<SyntaxToken> {
3875        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3876    }
3877    #[inline]
3878    pub fn type_token(&self) -> Option<SyntaxToken> {
3879        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3880    }
3881    #[inline]
3882    pub fn using_token(&self) -> Option<SyntaxToken> {
3883        support::token(&self.syntax, SyntaxKind::USING_KW)
3884    }
3885}
3886
3887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3888pub struct CreateOperatorFamily {
3889    pub(crate) syntax: SyntaxNode,
3890}
3891impl CreateOperatorFamily {
3892    #[inline]
3893    pub fn name_ref(&self) -> Option<NameRef> {
3894        support::child(&self.syntax)
3895    }
3896    #[inline]
3897    pub fn path(&self) -> Option<Path> {
3898        support::child(&self.syntax)
3899    }
3900    #[inline]
3901    pub fn create_token(&self) -> Option<SyntaxToken> {
3902        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3903    }
3904    #[inline]
3905    pub fn family_token(&self) -> Option<SyntaxToken> {
3906        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3907    }
3908    #[inline]
3909    pub fn operator_token(&self) -> Option<SyntaxToken> {
3910        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3911    }
3912    #[inline]
3913    pub fn using_token(&self) -> Option<SyntaxToken> {
3914        support::token(&self.syntax, SyntaxKind::USING_KW)
3915    }
3916}
3917
3918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3919pub struct CreatePolicy {
3920    pub(crate) syntax: SyntaxNode,
3921}
3922impl CreatePolicy {
3923    #[inline]
3924    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
3925        support::child(&self.syntax)
3926    }
3927    #[inline]
3928    pub fn name(&self) -> Option<Name> {
3929        support::child(&self.syntax)
3930    }
3931    #[inline]
3932    pub fn on_table(&self) -> Option<OnTable> {
3933        support::child(&self.syntax)
3934    }
3935    #[inline]
3936    pub fn role_ref_list(&self) -> Option<RoleRefList> {
3937        support::child(&self.syntax)
3938    }
3939    #[inline]
3940    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
3941        support::child(&self.syntax)
3942    }
3943    #[inline]
3944    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
3945        support::child(&self.syntax)
3946    }
3947    #[inline]
3948    pub fn all_token(&self) -> Option<SyntaxToken> {
3949        support::token(&self.syntax, SyntaxKind::ALL_KW)
3950    }
3951    #[inline]
3952    pub fn create_token(&self) -> Option<SyntaxToken> {
3953        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3954    }
3955    #[inline]
3956    pub fn delete_token(&self) -> Option<SyntaxToken> {
3957        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3958    }
3959    #[inline]
3960    pub fn for_token(&self) -> Option<SyntaxToken> {
3961        support::token(&self.syntax, SyntaxKind::FOR_KW)
3962    }
3963    #[inline]
3964    pub fn insert_token(&self) -> Option<SyntaxToken> {
3965        support::token(&self.syntax, SyntaxKind::INSERT_KW)
3966    }
3967    #[inline]
3968    pub fn policy_token(&self) -> Option<SyntaxToken> {
3969        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3970    }
3971    #[inline]
3972    pub fn select_token(&self) -> Option<SyntaxToken> {
3973        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3974    }
3975    #[inline]
3976    pub fn to_token(&self) -> Option<SyntaxToken> {
3977        support::token(&self.syntax, SyntaxKind::TO_KW)
3978    }
3979    #[inline]
3980    pub fn update_token(&self) -> Option<SyntaxToken> {
3981        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3982    }
3983}
3984
3985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3986pub struct CreateProcedure {
3987    pub(crate) syntax: SyntaxNode,
3988}
3989impl CreateProcedure {
3990    #[inline]
3991    pub fn option_list(&self) -> Option<FuncOptionList> {
3992        support::child(&self.syntax)
3993    }
3994    #[inline]
3995    pub fn or_replace(&self) -> Option<OrReplace> {
3996        support::child(&self.syntax)
3997    }
3998    #[inline]
3999    pub fn param_list(&self) -> Option<ParamList> {
4000        support::child(&self.syntax)
4001    }
4002    #[inline]
4003    pub fn path(&self) -> Option<Path> {
4004        support::child(&self.syntax)
4005    }
4006    #[inline]
4007    pub fn create_token(&self) -> Option<SyntaxToken> {
4008        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4009    }
4010    #[inline]
4011    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4012        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4013    }
4014}
4015
4016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4017pub struct CreatePublication {
4018    pub(crate) syntax: SyntaxNode,
4019}
4020impl CreatePublication {
4021    #[inline]
4022    pub fn name(&self) -> Option<Name> {
4023        support::child(&self.syntax)
4024    }
4025    #[inline]
4026    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4027        support::children(&self.syntax)
4028    }
4029    #[inline]
4030    pub fn with_params(&self) -> Option<WithParams> {
4031        support::child(&self.syntax)
4032    }
4033    #[inline]
4034    pub fn all_token(&self) -> Option<SyntaxToken> {
4035        support::token(&self.syntax, SyntaxKind::ALL_KW)
4036    }
4037    #[inline]
4038    pub fn create_token(&self) -> Option<SyntaxToken> {
4039        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4040    }
4041    #[inline]
4042    pub fn for_token(&self) -> Option<SyntaxToken> {
4043        support::token(&self.syntax, SyntaxKind::FOR_KW)
4044    }
4045    #[inline]
4046    pub fn publication_token(&self) -> Option<SyntaxToken> {
4047        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4048    }
4049    #[inline]
4050    pub fn tables_token(&self) -> Option<SyntaxToken> {
4051        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4052    }
4053}
4054
4055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4056pub struct CreateRole {
4057    pub(crate) syntax: SyntaxNode,
4058}
4059impl CreateRole {
4060    #[inline]
4061    pub fn name(&self) -> Option<Name> {
4062        support::child(&self.syntax)
4063    }
4064    #[inline]
4065    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4066        support::child(&self.syntax)
4067    }
4068    #[inline]
4069    pub fn create_token(&self) -> Option<SyntaxToken> {
4070        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4071    }
4072    #[inline]
4073    pub fn role_token(&self) -> Option<SyntaxToken> {
4074        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4075    }
4076}
4077
4078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4079pub struct CreateRule {
4080    pub(crate) syntax: SyntaxNode,
4081}
4082impl CreateRule {
4083    #[inline]
4084    pub fn name(&self) -> Option<Name> {
4085        support::child(&self.syntax)
4086    }
4087    #[inline]
4088    pub fn or_replace(&self) -> Option<OrReplace> {
4089        support::child(&self.syntax)
4090    }
4091    #[inline]
4092    pub fn path(&self) -> Option<Path> {
4093        support::child(&self.syntax)
4094    }
4095    #[inline]
4096    pub fn stmt(&self) -> Option<Stmt> {
4097        support::child(&self.syntax)
4098    }
4099    #[inline]
4100    pub fn stmts(&self) -> AstChildren<Stmt> {
4101        support::children(&self.syntax)
4102    }
4103    #[inline]
4104    pub fn where_clause(&self) -> Option<WhereClause> {
4105        support::child(&self.syntax)
4106    }
4107    #[inline]
4108    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4109        support::token(&self.syntax, SyntaxKind::L_PAREN)
4110    }
4111    #[inline]
4112    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4113        support::token(&self.syntax, SyntaxKind::R_PAREN)
4114    }
4115    #[inline]
4116    pub fn also_token(&self) -> Option<SyntaxToken> {
4117        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4118    }
4119    #[inline]
4120    pub fn as_token(&self) -> Option<SyntaxToken> {
4121        support::token(&self.syntax, SyntaxKind::AS_KW)
4122    }
4123    #[inline]
4124    pub fn create_token(&self) -> Option<SyntaxToken> {
4125        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4126    }
4127    #[inline]
4128    pub fn delete_token(&self) -> Option<SyntaxToken> {
4129        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4130    }
4131    #[inline]
4132    pub fn do_token(&self) -> Option<SyntaxToken> {
4133        support::token(&self.syntax, SyntaxKind::DO_KW)
4134    }
4135    #[inline]
4136    pub fn ident_token(&self) -> Option<SyntaxToken> {
4137        support::token(&self.syntax, SyntaxKind::IDENT)
4138    }
4139    #[inline]
4140    pub fn insert_token(&self) -> Option<SyntaxToken> {
4141        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4142    }
4143    #[inline]
4144    pub fn instead_token(&self) -> Option<SyntaxToken> {
4145        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4146    }
4147    #[inline]
4148    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4150    }
4151    #[inline]
4152    pub fn on_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::ON_KW)
4154    }
4155    #[inline]
4156    pub fn rule_token(&self) -> Option<SyntaxToken> {
4157        support::token(&self.syntax, SyntaxKind::RULE_KW)
4158    }
4159    #[inline]
4160    pub fn select_token(&self) -> Option<SyntaxToken> {
4161        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4162    }
4163    #[inline]
4164    pub fn to_token(&self) -> Option<SyntaxToken> {
4165        support::token(&self.syntax, SyntaxKind::TO_KW)
4166    }
4167    #[inline]
4168    pub fn update_token(&self) -> Option<SyntaxToken> {
4169        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4170    }
4171}
4172
4173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4174pub struct CreateSchema {
4175    pub(crate) syntax: SyntaxNode,
4176}
4177impl CreateSchema {
4178    #[inline]
4179    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn name(&self) -> Option<Name> {
4184        support::child(&self.syntax)
4185    }
4186    #[inline]
4187    pub fn role(&self) -> Option<Role> {
4188        support::child(&self.syntax)
4189    }
4190    #[inline]
4191    pub fn role_ref(&self) -> Option<RoleRef> {
4192        support::child(&self.syntax)
4193    }
4194    #[inline]
4195    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4196        support::children(&self.syntax)
4197    }
4198    #[inline]
4199    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4200        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4201    }
4202    #[inline]
4203    pub fn create_token(&self) -> Option<SyntaxToken> {
4204        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4205    }
4206    #[inline]
4207    pub fn schema_token(&self) -> Option<SyntaxToken> {
4208        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4209    }
4210}
4211
4212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4213pub struct CreateSequence {
4214    pub(crate) syntax: SyntaxNode,
4215}
4216impl CreateSequence {
4217    #[inline]
4218    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4219        support::child(&self.syntax)
4220    }
4221    #[inline]
4222    pub fn path(&self) -> Option<Path> {
4223        support::child(&self.syntax)
4224    }
4225    #[inline]
4226    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4227        support::children(&self.syntax)
4228    }
4229    #[inline]
4230    pub fn create_token(&self) -> Option<SyntaxToken> {
4231        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4232    }
4233    #[inline]
4234    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4235        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4236    }
4237    #[inline]
4238    pub fn temp_token(&self) -> Option<SyntaxToken> {
4239        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4240    }
4241    #[inline]
4242    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4243        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4244    }
4245    #[inline]
4246    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4247        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4248    }
4249}
4250
4251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4252pub struct CreateServer {
4253    pub(crate) syntax: SyntaxNode,
4254}
4255impl CreateServer {
4256    #[inline]
4257    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4258        support::child(&self.syntax)
4259    }
4260    #[inline]
4261    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4262        support::child(&self.syntax)
4263    }
4264    #[inline]
4265    pub fn literal(&self) -> Option<Literal> {
4266        support::child(&self.syntax)
4267    }
4268    #[inline]
4269    pub fn name(&self) -> Option<Name> {
4270        support::child(&self.syntax)
4271    }
4272    #[inline]
4273    pub fn name_ref(&self) -> Option<NameRef> {
4274        support::child(&self.syntax)
4275    }
4276    #[inline]
4277    pub fn create_token(&self) -> Option<SyntaxToken> {
4278        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4279    }
4280    #[inline]
4281    pub fn data_token(&self) -> Option<SyntaxToken> {
4282        support::token(&self.syntax, SyntaxKind::DATA_KW)
4283    }
4284    #[inline]
4285    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4286        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4287    }
4288    #[inline]
4289    pub fn server_token(&self) -> Option<SyntaxToken> {
4290        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4291    }
4292    #[inline]
4293    pub fn type_token(&self) -> Option<SyntaxToken> {
4294        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4295    }
4296    #[inline]
4297    pub fn version_token(&self) -> Option<SyntaxToken> {
4298        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4299    }
4300    #[inline]
4301    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4302        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4303    }
4304}
4305
4306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4307pub struct CreateStatistics {
4308    pub(crate) syntax: SyntaxNode,
4309}
4310impl CreateStatistics {
4311    #[inline]
4312    pub fn from_table(&self) -> Option<FromTable> {
4313        support::child(&self.syntax)
4314    }
4315    #[inline]
4316    pub fn name_refs(&self) -> AstChildren<NameRef> {
4317        support::children(&self.syntax)
4318    }
4319    #[inline]
4320    pub fn path(&self) -> Option<Path> {
4321        support::child(&self.syntax)
4322    }
4323    #[inline]
4324    pub fn create_token(&self) -> Option<SyntaxToken> {
4325        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4326    }
4327    #[inline]
4328    pub fn on_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::ON_KW)
4330    }
4331    #[inline]
4332    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4333        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4334    }
4335}
4336
4337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4338pub struct CreateSubscription {
4339    pub(crate) syntax: SyntaxNode,
4340}
4341impl CreateSubscription {
4342    #[inline]
4343    pub fn literal(&self) -> Option<Literal> {
4344        support::child(&self.syntax)
4345    }
4346    #[inline]
4347    pub fn name(&self) -> Option<Name> {
4348        support::child(&self.syntax)
4349    }
4350    #[inline]
4351    pub fn name_refs(&self) -> AstChildren<NameRef> {
4352        support::children(&self.syntax)
4353    }
4354    #[inline]
4355    pub fn with_params(&self) -> Option<WithParams> {
4356        support::child(&self.syntax)
4357    }
4358    #[inline]
4359    pub fn connection_token(&self) -> Option<SyntaxToken> {
4360        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
4361    }
4362    #[inline]
4363    pub fn create_token(&self) -> Option<SyntaxToken> {
4364        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4365    }
4366    #[inline]
4367    pub fn publication_token(&self) -> Option<SyntaxToken> {
4368        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4369    }
4370    #[inline]
4371    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4372        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4373    }
4374}
4375
4376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4377pub struct CreateTable {
4378    pub(crate) syntax: SyntaxNode,
4379}
4380impl CreateTable {
4381    #[inline]
4382    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4383        support::child(&self.syntax)
4384    }
4385    #[inline]
4386    pub fn inherits(&self) -> Option<Inherits> {
4387        support::child(&self.syntax)
4388    }
4389    #[inline]
4390    pub fn of_type(&self) -> Option<OfType> {
4391        support::child(&self.syntax)
4392    }
4393    #[inline]
4394    pub fn on_commit(&self) -> Option<OnCommit> {
4395        support::child(&self.syntax)
4396    }
4397    #[inline]
4398    pub fn partition_by(&self) -> Option<PartitionBy> {
4399        support::child(&self.syntax)
4400    }
4401    #[inline]
4402    pub fn partition_of(&self) -> Option<PartitionOf> {
4403        support::child(&self.syntax)
4404    }
4405    #[inline]
4406    pub fn path(&self) -> Option<Path> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn table_arg_list(&self) -> Option<TableArgList> {
4411        support::child(&self.syntax)
4412    }
4413    #[inline]
4414    pub fn tablespace(&self) -> Option<Tablespace> {
4415        support::child(&self.syntax)
4416    }
4417    #[inline]
4418    pub fn using_method(&self) -> Option<UsingMethod> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn with_params(&self) -> Option<WithParams> {
4423        support::child(&self.syntax)
4424    }
4425    #[inline]
4426    pub fn without_oids(&self) -> Option<WithoutOids> {
4427        support::child(&self.syntax)
4428    }
4429    #[inline]
4430    pub fn create_token(&self) -> Option<SyntaxToken> {
4431        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4432    }
4433    #[inline]
4434    pub fn global_token(&self) -> Option<SyntaxToken> {
4435        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4436    }
4437    #[inline]
4438    pub fn local_token(&self) -> Option<SyntaxToken> {
4439        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4440    }
4441    #[inline]
4442    pub fn table_token(&self) -> Option<SyntaxToken> {
4443        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4444    }
4445    #[inline]
4446    pub fn temp_token(&self) -> Option<SyntaxToken> {
4447        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4448    }
4449    #[inline]
4450    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4451        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4452    }
4453    #[inline]
4454    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4455        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4456    }
4457}
4458
4459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4460pub struct CreateTableAs {
4461    pub(crate) syntax: SyntaxNode,
4462}
4463impl CreateTableAs {
4464    #[inline]
4465    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4466        support::child(&self.syntax)
4467    }
4468    #[inline]
4469    pub fn on_commit(&self) -> Option<OnCommit> {
4470        support::child(&self.syntax)
4471    }
4472    #[inline]
4473    pub fn path(&self) -> Option<Path> {
4474        support::child(&self.syntax)
4475    }
4476    #[inline]
4477    pub fn query(&self) -> Option<SelectVariant> {
4478        support::child(&self.syntax)
4479    }
4480    #[inline]
4481    pub fn tablespace(&self) -> Option<Tablespace> {
4482        support::child(&self.syntax)
4483    }
4484    #[inline]
4485    pub fn using_method(&self) -> Option<UsingMethod> {
4486        support::child(&self.syntax)
4487    }
4488    #[inline]
4489    pub fn with_data(&self) -> Option<WithData> {
4490        support::child(&self.syntax)
4491    }
4492    #[inline]
4493    pub fn with_no_data(&self) -> Option<WithNoData> {
4494        support::child(&self.syntax)
4495    }
4496    #[inline]
4497    pub fn with_params(&self) -> Option<WithParams> {
4498        support::child(&self.syntax)
4499    }
4500    #[inline]
4501    pub fn without_oids(&self) -> Option<WithoutOids> {
4502        support::child(&self.syntax)
4503    }
4504    #[inline]
4505    pub fn as_token(&self) -> Option<SyntaxToken> {
4506        support::token(&self.syntax, SyntaxKind::AS_KW)
4507    }
4508    #[inline]
4509    pub fn create_token(&self) -> Option<SyntaxToken> {
4510        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4511    }
4512    #[inline]
4513    pub fn global_token(&self) -> Option<SyntaxToken> {
4514        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
4515    }
4516    #[inline]
4517    pub fn local_token(&self) -> Option<SyntaxToken> {
4518        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
4519    }
4520    #[inline]
4521    pub fn table_token(&self) -> Option<SyntaxToken> {
4522        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4523    }
4524    #[inline]
4525    pub fn temp_token(&self) -> Option<SyntaxToken> {
4526        support::token(&self.syntax, SyntaxKind::TEMP_KW)
4527    }
4528    #[inline]
4529    pub fn temporary_token(&self) -> Option<SyntaxToken> {
4530        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
4531    }
4532    #[inline]
4533    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
4534        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
4535    }
4536}
4537
4538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4539pub struct CreateTablespace {
4540    pub(crate) syntax: SyntaxNode,
4541}
4542impl CreateTablespace {
4543    #[inline]
4544    pub fn literal(&self) -> Option<Literal> {
4545        support::child(&self.syntax)
4546    }
4547    #[inline]
4548    pub fn name(&self) -> Option<Name> {
4549        support::child(&self.syntax)
4550    }
4551    #[inline]
4552    pub fn role_ref(&self) -> Option<RoleRef> {
4553        support::child(&self.syntax)
4554    }
4555    #[inline]
4556    pub fn with_params(&self) -> Option<WithParams> {
4557        support::child(&self.syntax)
4558    }
4559    #[inline]
4560    pub fn create_token(&self) -> Option<SyntaxToken> {
4561        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4562    }
4563    #[inline]
4564    pub fn location_token(&self) -> Option<SyntaxToken> {
4565        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
4566    }
4567    #[inline]
4568    pub fn owner_token(&self) -> Option<SyntaxToken> {
4569        support::token(&self.syntax, SyntaxKind::OWNER_KW)
4570    }
4571    #[inline]
4572    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4573        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4574    }
4575}
4576
4577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4578pub struct CreateTextSearchConfiguration {
4579    pub(crate) syntax: SyntaxNode,
4580}
4581impl CreateTextSearchConfiguration {
4582    #[inline]
4583    pub fn attribute_list(&self) -> Option<AttributeList> {
4584        support::child(&self.syntax)
4585    }
4586    #[inline]
4587    pub fn path(&self) -> Option<Path> {
4588        support::child(&self.syntax)
4589    }
4590    #[inline]
4591    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4592        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4593    }
4594    #[inline]
4595    pub fn create_token(&self) -> Option<SyntaxToken> {
4596        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4597    }
4598    #[inline]
4599    pub fn search_token(&self) -> Option<SyntaxToken> {
4600        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4601    }
4602    #[inline]
4603    pub fn text_token(&self) -> Option<SyntaxToken> {
4604        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4605    }
4606}
4607
4608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4609pub struct CreateTextSearchDictionary {
4610    pub(crate) syntax: SyntaxNode,
4611}
4612impl CreateTextSearchDictionary {
4613    #[inline]
4614    pub fn attribute_list(&self) -> Option<AttributeList> {
4615        support::child(&self.syntax)
4616    }
4617    #[inline]
4618    pub fn path(&self) -> Option<Path> {
4619        support::child(&self.syntax)
4620    }
4621    #[inline]
4622    pub fn create_token(&self) -> Option<SyntaxToken> {
4623        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4624    }
4625    #[inline]
4626    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4627        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4628    }
4629    #[inline]
4630    pub fn search_token(&self) -> Option<SyntaxToken> {
4631        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4632    }
4633    #[inline]
4634    pub fn text_token(&self) -> Option<SyntaxToken> {
4635        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4636    }
4637}
4638
4639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4640pub struct CreateTextSearchParser {
4641    pub(crate) syntax: SyntaxNode,
4642}
4643impl CreateTextSearchParser {
4644    #[inline]
4645    pub fn attribute_list(&self) -> Option<AttributeList> {
4646        support::child(&self.syntax)
4647    }
4648    #[inline]
4649    pub fn path(&self) -> Option<Path> {
4650        support::child(&self.syntax)
4651    }
4652    #[inline]
4653    pub fn create_token(&self) -> Option<SyntaxToken> {
4654        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4655    }
4656    #[inline]
4657    pub fn parser_token(&self) -> Option<SyntaxToken> {
4658        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4659    }
4660    #[inline]
4661    pub fn search_token(&self) -> Option<SyntaxToken> {
4662        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4663    }
4664    #[inline]
4665    pub fn text_token(&self) -> Option<SyntaxToken> {
4666        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4667    }
4668}
4669
4670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4671pub struct CreateTextSearchTemplate {
4672    pub(crate) syntax: SyntaxNode,
4673}
4674impl CreateTextSearchTemplate {
4675    #[inline]
4676    pub fn attribute_list(&self) -> Option<AttributeList> {
4677        support::child(&self.syntax)
4678    }
4679    #[inline]
4680    pub fn path(&self) -> Option<Path> {
4681        support::child(&self.syntax)
4682    }
4683    #[inline]
4684    pub fn create_token(&self) -> Option<SyntaxToken> {
4685        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4686    }
4687    #[inline]
4688    pub fn search_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4690    }
4691    #[inline]
4692    pub fn template_token(&self) -> Option<SyntaxToken> {
4693        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4694    }
4695    #[inline]
4696    pub fn text_token(&self) -> Option<SyntaxToken> {
4697        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4698    }
4699}
4700
4701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4702pub struct CreateTransform {
4703    pub(crate) syntax: SyntaxNode,
4704}
4705impl CreateTransform {
4706    #[inline]
4707    pub fn from_func(&self) -> Option<TransformFromFunc> {
4708        support::child(&self.syntax)
4709    }
4710    #[inline]
4711    pub fn language(&self) -> Option<NameRef> {
4712        support::child(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn or_replace(&self) -> Option<OrReplace> {
4716        support::child(&self.syntax)
4717    }
4718    #[inline]
4719    pub fn to_func(&self) -> Option<TransformToFunc> {
4720        support::child(&self.syntax)
4721    }
4722    #[inline]
4723    pub fn ty(&self) -> Option<Type> {
4724        support::child(&self.syntax)
4725    }
4726    #[inline]
4727    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4728        support::token(&self.syntax, SyntaxKind::L_PAREN)
4729    }
4730    #[inline]
4731    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4732        support::token(&self.syntax, SyntaxKind::R_PAREN)
4733    }
4734    #[inline]
4735    pub fn comma_token(&self) -> Option<SyntaxToken> {
4736        support::token(&self.syntax, SyntaxKind::COMMA)
4737    }
4738    #[inline]
4739    pub fn create_token(&self) -> Option<SyntaxToken> {
4740        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4741    }
4742    #[inline]
4743    pub fn for_token(&self) -> Option<SyntaxToken> {
4744        support::token(&self.syntax, SyntaxKind::FOR_KW)
4745    }
4746    #[inline]
4747    pub fn language_token(&self) -> Option<SyntaxToken> {
4748        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4749    }
4750    #[inline]
4751    pub fn transform_token(&self) -> Option<SyntaxToken> {
4752        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4753    }
4754}
4755
4756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4757pub struct CreateTrigger {
4758    pub(crate) syntax: SyntaxNode,
4759}
4760impl CreateTrigger {
4761    #[inline]
4762    pub fn call_expr(&self) -> Option<CallExpr> {
4763        support::child(&self.syntax)
4764    }
4765    #[inline]
4766    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
4767        support::child(&self.syntax)
4768    }
4769    #[inline]
4770    pub fn from_table(&self) -> Option<FromTable> {
4771        support::child(&self.syntax)
4772    }
4773    #[inline]
4774    pub fn initially_deferred_constraint_option(
4775        &self,
4776    ) -> Option<InitiallyDeferredConstraintOption> {
4777        support::child(&self.syntax)
4778    }
4779    #[inline]
4780    pub fn initially_immediate_constraint_option(
4781        &self,
4782    ) -> Option<InitiallyImmediateConstraintOption> {
4783        support::child(&self.syntax)
4784    }
4785    #[inline]
4786    pub fn name(&self) -> Option<Name> {
4787        support::child(&self.syntax)
4788    }
4789    #[inline]
4790    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
4791        support::child(&self.syntax)
4792    }
4793    #[inline]
4794    pub fn on_table(&self) -> Option<OnTable> {
4795        support::child(&self.syntax)
4796    }
4797    #[inline]
4798    pub fn or_replace(&self) -> Option<OrReplace> {
4799        support::child(&self.syntax)
4800    }
4801    #[inline]
4802    pub fn referencing(&self) -> Option<Referencing> {
4803        support::child(&self.syntax)
4804    }
4805    #[inline]
4806    pub fn timing(&self) -> Option<Timing> {
4807        support::child(&self.syntax)
4808    }
4809    #[inline]
4810    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
4811        support::child(&self.syntax)
4812    }
4813    #[inline]
4814    pub fn when_condition(&self) -> Option<WhenCondition> {
4815        support::child(&self.syntax)
4816    }
4817    #[inline]
4818    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4819        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4820    }
4821    #[inline]
4822    pub fn create_token(&self) -> Option<SyntaxToken> {
4823        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4824    }
4825    #[inline]
4826    pub fn each_token(&self) -> Option<SyntaxToken> {
4827        support::token(&self.syntax, SyntaxKind::EACH_KW)
4828    }
4829    #[inline]
4830    pub fn execute_token(&self) -> Option<SyntaxToken> {
4831        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4832    }
4833    #[inline]
4834    pub fn for_token(&self) -> Option<SyntaxToken> {
4835        support::token(&self.syntax, SyntaxKind::FOR_KW)
4836    }
4837    #[inline]
4838    pub fn function_token(&self) -> Option<SyntaxToken> {
4839        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4840    }
4841    #[inline]
4842    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4843        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4844    }
4845    #[inline]
4846    pub fn row_token(&self) -> Option<SyntaxToken> {
4847        support::token(&self.syntax, SyntaxKind::ROW_KW)
4848    }
4849    #[inline]
4850    pub fn statement_token(&self) -> Option<SyntaxToken> {
4851        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
4852    }
4853    #[inline]
4854    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4855        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4856    }
4857}
4858
4859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4860pub struct CreateType {
4861    pub(crate) syntax: SyntaxNode,
4862}
4863impl CreateType {
4864    #[inline]
4865    pub fn attribute_list(&self) -> Option<AttributeList> {
4866        support::child(&self.syntax)
4867    }
4868    #[inline]
4869    pub fn column_list(&self) -> Option<ColumnList> {
4870        support::child(&self.syntax)
4871    }
4872    #[inline]
4873    pub fn path(&self) -> Option<Path> {
4874        support::child(&self.syntax)
4875    }
4876    #[inline]
4877    pub fn variant_list(&self) -> Option<VariantList> {
4878        support::child(&self.syntax)
4879    }
4880    #[inline]
4881    pub fn as_token(&self) -> Option<SyntaxToken> {
4882        support::token(&self.syntax, SyntaxKind::AS_KW)
4883    }
4884    #[inline]
4885    pub fn create_token(&self) -> Option<SyntaxToken> {
4886        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4887    }
4888    #[inline]
4889    pub fn enum_token(&self) -> Option<SyntaxToken> {
4890        support::token(&self.syntax, SyntaxKind::ENUM_KW)
4891    }
4892    #[inline]
4893    pub fn range_token(&self) -> Option<SyntaxToken> {
4894        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4895    }
4896    #[inline]
4897    pub fn type_token(&self) -> Option<SyntaxToken> {
4898        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4899    }
4900}
4901
4902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4903pub struct CreateUser {
4904    pub(crate) syntax: SyntaxNode,
4905}
4906impl CreateUser {
4907    #[inline]
4908    pub fn name(&self) -> Option<Name> {
4909        support::child(&self.syntax)
4910    }
4911    #[inline]
4912    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4913        support::child(&self.syntax)
4914    }
4915    #[inline]
4916    pub fn create_token(&self) -> Option<SyntaxToken> {
4917        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4918    }
4919    #[inline]
4920    pub fn user_token(&self) -> Option<SyntaxToken> {
4921        support::token(&self.syntax, SyntaxKind::USER_KW)
4922    }
4923}
4924
4925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4926pub struct CreateUserMapping {
4927    pub(crate) syntax: SyntaxNode,
4928}
4929impl CreateUserMapping {
4930    #[inline]
4931    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4932        support::child(&self.syntax)
4933    }
4934    #[inline]
4935    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4936        support::child(&self.syntax)
4937    }
4938    #[inline]
4939    pub fn role_ref(&self) -> Option<RoleRef> {
4940        support::child(&self.syntax)
4941    }
4942    #[inline]
4943    pub fn server_name(&self) -> Option<ServerName> {
4944        support::child(&self.syntax)
4945    }
4946    #[inline]
4947    pub fn create_token(&self) -> Option<SyntaxToken> {
4948        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4949    }
4950    #[inline]
4951    pub fn for_token(&self) -> Option<SyntaxToken> {
4952        support::token(&self.syntax, SyntaxKind::FOR_KW)
4953    }
4954    #[inline]
4955    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4956        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4957    }
4958    #[inline]
4959    pub fn user_token(&self) -> Option<SyntaxToken> {
4960        support::token(&self.syntax, SyntaxKind::USER_KW)
4961    }
4962}
4963
4964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4965pub struct CreateView {
4966    pub(crate) syntax: SyntaxNode,
4967}
4968impl CreateView {
4969    #[inline]
4970    pub fn column_list(&self) -> Option<ColumnList> {
4971        support::child(&self.syntax)
4972    }
4973    #[inline]
4974    pub fn or_replace(&self) -> Option<OrReplace> {
4975        support::child(&self.syntax)
4976    }
4977    #[inline]
4978    pub fn path(&self) -> Option<Path> {
4979        support::child(&self.syntax)
4980    }
4981    #[inline]
4982    pub fn query(&self) -> Option<SelectVariant> {
4983        support::child(&self.syntax)
4984    }
4985    #[inline]
4986    pub fn with_params(&self) -> Option<WithParams> {
4987        support::child(&self.syntax)
4988    }
4989    #[inline]
4990    pub fn as_token(&self) -> Option<SyntaxToken> {
4991        support::token(&self.syntax, SyntaxKind::AS_KW)
4992    }
4993    #[inline]
4994    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
4995        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
4996    }
4997    #[inline]
4998    pub fn check_token(&self) -> Option<SyntaxToken> {
4999        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5000    }
5001    #[inline]
5002    pub fn create_token(&self) -> Option<SyntaxToken> {
5003        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5004    }
5005    #[inline]
5006    pub fn local_token(&self) -> Option<SyntaxToken> {
5007        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5008    }
5009    #[inline]
5010    pub fn option_token(&self) -> Option<SyntaxToken> {
5011        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5012    }
5013    #[inline]
5014    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5015        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5016    }
5017    #[inline]
5018    pub fn temp_token(&self) -> Option<SyntaxToken> {
5019        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5020    }
5021    #[inline]
5022    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5023        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5024    }
5025    #[inline]
5026    pub fn view_token(&self) -> Option<SyntaxToken> {
5027        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5028    }
5029    #[inline]
5030    pub fn with_token(&self) -> Option<SyntaxToken> {
5031        support::token(&self.syntax, SyntaxKind::WITH_KW)
5032    }
5033}
5034
5035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5036pub struct CustomOp {
5037    pub(crate) syntax: SyntaxNode,
5038}
5039impl CustomOp {
5040    #[inline]
5041    pub fn bang_token(&self) -> Option<SyntaxToken> {
5042        support::token(&self.syntax, SyntaxKind::BANG)
5043    }
5044    #[inline]
5045    pub fn pound_token(&self) -> Option<SyntaxToken> {
5046        support::token(&self.syntax, SyntaxKind::POUND)
5047    }
5048    #[inline]
5049    pub fn percent_token(&self) -> Option<SyntaxToken> {
5050        support::token(&self.syntax, SyntaxKind::PERCENT)
5051    }
5052    #[inline]
5053    pub fn amp_token(&self) -> Option<SyntaxToken> {
5054        support::token(&self.syntax, SyntaxKind::AMP)
5055    }
5056    #[inline]
5057    pub fn star_token(&self) -> Option<SyntaxToken> {
5058        support::token(&self.syntax, SyntaxKind::STAR)
5059    }
5060    #[inline]
5061    pub fn plus_token(&self) -> Option<SyntaxToken> {
5062        support::token(&self.syntax, SyntaxKind::PLUS)
5063    }
5064    #[inline]
5065    pub fn minus_token(&self) -> Option<SyntaxToken> {
5066        support::token(&self.syntax, SyntaxKind::MINUS)
5067    }
5068    #[inline]
5069    pub fn slash_token(&self) -> Option<SyntaxToken> {
5070        support::token(&self.syntax, SyntaxKind::SLASH)
5071    }
5072    #[inline]
5073    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5074        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5075    }
5076    #[inline]
5077    pub fn eq_token(&self) -> Option<SyntaxToken> {
5078        support::token(&self.syntax, SyntaxKind::EQ)
5079    }
5080    #[inline]
5081    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5082        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5083    }
5084    #[inline]
5085    pub fn question_token(&self) -> Option<SyntaxToken> {
5086        support::token(&self.syntax, SyntaxKind::QUESTION)
5087    }
5088    #[inline]
5089    pub fn at_token(&self) -> Option<SyntaxToken> {
5090        support::token(&self.syntax, SyntaxKind::AT)
5091    }
5092    #[inline]
5093    pub fn caret_token(&self) -> Option<SyntaxToken> {
5094        support::token(&self.syntax, SyntaxKind::CARET)
5095    }
5096    #[inline]
5097    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5098        support::token(&self.syntax, SyntaxKind::BACKTICK)
5099    }
5100    #[inline]
5101    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5102        support::token(&self.syntax, SyntaxKind::PIPE)
5103    }
5104    #[inline]
5105    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5106        support::token(&self.syntax, SyntaxKind::TILDE)
5107    }
5108}
5109
5110#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5111pub struct Deallocate {
5112    pub(crate) syntax: SyntaxNode,
5113}
5114impl Deallocate {
5115    #[inline]
5116    pub fn name_ref(&self) -> Option<NameRef> {
5117        support::child(&self.syntax)
5118    }
5119    #[inline]
5120    pub fn all_token(&self) -> Option<SyntaxToken> {
5121        support::token(&self.syntax, SyntaxKind::ALL_KW)
5122    }
5123    #[inline]
5124    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5125        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5126    }
5127    #[inline]
5128    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5129        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5130    }
5131}
5132
5133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5134pub struct Declare {
5135    pub(crate) syntax: SyntaxNode,
5136}
5137impl Declare {
5138    #[inline]
5139    pub fn name(&self) -> Option<Name> {
5140        support::child(&self.syntax)
5141    }
5142    #[inline]
5143    pub fn query(&self) -> Option<SelectVariant> {
5144        support::child(&self.syntax)
5145    }
5146    #[inline]
5147    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5148        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5149    }
5150    #[inline]
5151    pub fn binary_token(&self) -> Option<SyntaxToken> {
5152        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5153    }
5154    #[inline]
5155    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5156        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5157    }
5158    #[inline]
5159    pub fn declare_token(&self) -> Option<SyntaxToken> {
5160        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5161    }
5162    #[inline]
5163    pub fn for_token(&self) -> Option<SyntaxToken> {
5164        support::token(&self.syntax, SyntaxKind::FOR_KW)
5165    }
5166    #[inline]
5167    pub fn hold_token(&self) -> Option<SyntaxToken> {
5168        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5169    }
5170    #[inline]
5171    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5172        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5173    }
5174    #[inline]
5175    pub fn no_token(&self) -> Option<SyntaxToken> {
5176        support::token(&self.syntax, SyntaxKind::NO_KW)
5177    }
5178    #[inline]
5179    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5180        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5181    }
5182    #[inline]
5183    pub fn with_token(&self) -> Option<SyntaxToken> {
5184        support::token(&self.syntax, SyntaxKind::WITH_KW)
5185    }
5186    #[inline]
5187    pub fn without_token(&self) -> Option<SyntaxToken> {
5188        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5189    }
5190}
5191
5192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5193pub struct DefaultConstraint {
5194    pub(crate) syntax: SyntaxNode,
5195}
5196impl DefaultConstraint {
5197    #[inline]
5198    pub fn expr(&self) -> Option<Expr> {
5199        support::child(&self.syntax)
5200    }
5201    #[inline]
5202    pub fn name_ref(&self) -> Option<NameRef> {
5203        support::child(&self.syntax)
5204    }
5205    #[inline]
5206    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5207        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5208    }
5209    #[inline]
5210    pub fn default_token(&self) -> Option<SyntaxToken> {
5211        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5212    }
5213}
5214
5215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5216pub struct Deferrable {
5217    pub(crate) syntax: SyntaxNode,
5218}
5219impl Deferrable {
5220    #[inline]
5221    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5222        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5223    }
5224}
5225
5226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5227pub struct DeferrableConstraintOption {
5228    pub(crate) syntax: SyntaxNode,
5229}
5230impl DeferrableConstraintOption {
5231    #[inline]
5232    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5233        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5234    }
5235}
5236
5237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5238pub struct Delete {
5239    pub(crate) syntax: SyntaxNode,
5240}
5241impl Delete {
5242    #[inline]
5243    pub fn alias(&self) -> Option<Alias> {
5244        support::child(&self.syntax)
5245    }
5246    #[inline]
5247    pub fn relation_name(&self) -> Option<RelationName> {
5248        support::child(&self.syntax)
5249    }
5250    #[inline]
5251    pub fn returning_clause(&self) -> Option<ReturningClause> {
5252        support::child(&self.syntax)
5253    }
5254    #[inline]
5255    pub fn using_clause(&self) -> Option<UsingClause> {
5256        support::child(&self.syntax)
5257    }
5258    #[inline]
5259    pub fn where_clause(&self) -> Option<WhereClause> {
5260        support::child(&self.syntax)
5261    }
5262    #[inline]
5263    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5264        support::child(&self.syntax)
5265    }
5266    #[inline]
5267    pub fn with_clause(&self) -> Option<WithClause> {
5268        support::child(&self.syntax)
5269    }
5270    #[inline]
5271    pub fn delete_token(&self) -> Option<SyntaxToken> {
5272        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5273    }
5274    #[inline]
5275    pub fn from_token(&self) -> Option<SyntaxToken> {
5276        support::token(&self.syntax, SyntaxKind::FROM_KW)
5277    }
5278}
5279
5280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5281pub struct DeleteRows {
5282    pub(crate) syntax: SyntaxNode,
5283}
5284impl DeleteRows {
5285    #[inline]
5286    pub fn delete_token(&self) -> Option<SyntaxToken> {
5287        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5288    }
5289    #[inline]
5290    pub fn rows_token(&self) -> Option<SyntaxToken> {
5291        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5292    }
5293}
5294
5295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5296pub struct DependsOnExtension {
5297    pub(crate) syntax: SyntaxNode,
5298}
5299impl DependsOnExtension {
5300    #[inline]
5301    pub fn name_ref(&self) -> Option<NameRef> {
5302        support::child(&self.syntax)
5303    }
5304    #[inline]
5305    pub fn depends_token(&self) -> Option<SyntaxToken> {
5306        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5307    }
5308    #[inline]
5309    pub fn extension_token(&self) -> Option<SyntaxToken> {
5310        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5311    }
5312    #[inline]
5313    pub fn on_token(&self) -> Option<SyntaxToken> {
5314        support::token(&self.syntax, SyntaxKind::ON_KW)
5315    }
5316}
5317
5318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5319pub struct DetachPartition {
5320    pub(crate) syntax: SyntaxNode,
5321}
5322impl DetachPartition {
5323    #[inline]
5324    pub fn detach_token(&self) -> Option<SyntaxToken> {
5325        support::token(&self.syntax, SyntaxKind::DETACH_KW)
5326    }
5327    #[inline]
5328    pub fn partition_token(&self) -> Option<SyntaxToken> {
5329        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
5330    }
5331}
5332
5333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5334pub struct DisableRls {
5335    pub(crate) syntax: SyntaxNode,
5336}
5337impl DisableRls {
5338    #[inline]
5339    pub fn disable_token(&self) -> Option<SyntaxToken> {
5340        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5341    }
5342    #[inline]
5343    pub fn level_token(&self) -> Option<SyntaxToken> {
5344        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5345    }
5346    #[inline]
5347    pub fn row_token(&self) -> Option<SyntaxToken> {
5348        support::token(&self.syntax, SyntaxKind::ROW_KW)
5349    }
5350    #[inline]
5351    pub fn security_token(&self) -> Option<SyntaxToken> {
5352        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5353    }
5354}
5355
5356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5357pub struct DisableRule {
5358    pub(crate) syntax: SyntaxNode,
5359}
5360impl DisableRule {
5361    #[inline]
5362    pub fn disable_token(&self) -> Option<SyntaxToken> {
5363        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5364    }
5365    #[inline]
5366    pub fn rule_token(&self) -> Option<SyntaxToken> {
5367        support::token(&self.syntax, SyntaxKind::RULE_KW)
5368    }
5369}
5370
5371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5372pub struct DisableTrigger {
5373    pub(crate) syntax: SyntaxNode,
5374}
5375impl DisableTrigger {
5376    #[inline]
5377    pub fn disable_token(&self) -> Option<SyntaxToken> {
5378        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
5379    }
5380    #[inline]
5381    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5382        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5383    }
5384}
5385
5386#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5387pub struct Discard {
5388    pub(crate) syntax: SyntaxNode,
5389}
5390impl Discard {
5391    #[inline]
5392    pub fn all_token(&self) -> Option<SyntaxToken> {
5393        support::token(&self.syntax, SyntaxKind::ALL_KW)
5394    }
5395    #[inline]
5396    pub fn discard_token(&self) -> Option<SyntaxToken> {
5397        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
5398    }
5399    #[inline]
5400    pub fn plans_token(&self) -> Option<SyntaxToken> {
5401        support::token(&self.syntax, SyntaxKind::PLANS_KW)
5402    }
5403    #[inline]
5404    pub fn sequences_token(&self) -> Option<SyntaxToken> {
5405        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
5406    }
5407    #[inline]
5408    pub fn temp_token(&self) -> Option<SyntaxToken> {
5409        support::token(&self.syntax, SyntaxKind::TEMP_KW)
5410    }
5411    #[inline]
5412    pub fn temporary_token(&self) -> Option<SyntaxToken> {
5413        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
5414    }
5415}
5416
5417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5418pub struct DistinctClause {
5419    pub(crate) syntax: SyntaxNode,
5420}
5421impl DistinctClause {
5422    #[inline]
5423    pub fn exprs(&self) -> AstChildren<Expr> {
5424        support::children(&self.syntax)
5425    }
5426    #[inline]
5427    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5428        support::token(&self.syntax, SyntaxKind::L_PAREN)
5429    }
5430    #[inline]
5431    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5432        support::token(&self.syntax, SyntaxKind::R_PAREN)
5433    }
5434    #[inline]
5435    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5436        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5437    }
5438    #[inline]
5439    pub fn on_token(&self) -> Option<SyntaxToken> {
5440        support::token(&self.syntax, SyntaxKind::ON_KW)
5441    }
5442}
5443
5444#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5445pub struct Do {
5446    pub(crate) syntax: SyntaxNode,
5447}
5448impl Do {
5449    #[inline]
5450    pub fn do_token(&self) -> Option<SyntaxToken> {
5451        support::token(&self.syntax, SyntaxKind::DO_KW)
5452    }
5453}
5454
5455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5456pub struct DoubleType {
5457    pub(crate) syntax: SyntaxNode,
5458}
5459impl DoubleType {
5460    #[inline]
5461    pub fn double_token(&self) -> Option<SyntaxToken> {
5462        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
5463    }
5464    #[inline]
5465    pub fn precision_token(&self) -> Option<SyntaxToken> {
5466        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
5467    }
5468}
5469
5470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5471pub struct Drop {
5472    pub(crate) syntax: SyntaxNode,
5473}
5474impl Drop {
5475    #[inline]
5476    pub fn drop_token(&self) -> Option<SyntaxToken> {
5477        support::token(&self.syntax, SyntaxKind::DROP_KW)
5478    }
5479}
5480
5481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5482pub struct DropAccessMethod {
5483    pub(crate) syntax: SyntaxNode,
5484}
5485impl DropAccessMethod {
5486    #[inline]
5487    pub fn if_exists(&self) -> Option<IfExists> {
5488        support::child(&self.syntax)
5489    }
5490    #[inline]
5491    pub fn name_ref(&self) -> Option<NameRef> {
5492        support::child(&self.syntax)
5493    }
5494    #[inline]
5495    pub fn access_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
5497    }
5498    #[inline]
5499    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5500        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5501    }
5502    #[inline]
5503    pub fn drop_token(&self) -> Option<SyntaxToken> {
5504        support::token(&self.syntax, SyntaxKind::DROP_KW)
5505    }
5506    #[inline]
5507    pub fn method_token(&self) -> Option<SyntaxToken> {
5508        support::token(&self.syntax, SyntaxKind::METHOD_KW)
5509    }
5510    #[inline]
5511    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5512        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5513    }
5514}
5515
5516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5517pub struct DropAggregate {
5518    pub(crate) syntax: SyntaxNode,
5519}
5520impl DropAggregate {
5521    #[inline]
5522    pub fn aggregates(&self) -> AstChildren<Aggregate> {
5523        support::children(&self.syntax)
5524    }
5525    #[inline]
5526    pub fn if_exists(&self) -> Option<IfExists> {
5527        support::child(&self.syntax)
5528    }
5529    #[inline]
5530    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
5531        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
5532    }
5533    #[inline]
5534    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5535        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5536    }
5537    #[inline]
5538    pub fn drop_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::DROP_KW)
5540    }
5541    #[inline]
5542    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5544    }
5545}
5546
5547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5548pub struct DropCast {
5549    pub(crate) syntax: SyntaxNode,
5550}
5551impl DropCast {
5552    #[inline]
5553    pub fn cast_sig(&self) -> Option<CastSig> {
5554        support::child(&self.syntax)
5555    }
5556    #[inline]
5557    pub fn if_exists(&self) -> Option<IfExists> {
5558        support::child(&self.syntax)
5559    }
5560    #[inline]
5561    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5562        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5563    }
5564    #[inline]
5565    pub fn cast_token(&self) -> Option<SyntaxToken> {
5566        support::token(&self.syntax, SyntaxKind::CAST_KW)
5567    }
5568    #[inline]
5569    pub fn drop_token(&self) -> Option<SyntaxToken> {
5570        support::token(&self.syntax, SyntaxKind::DROP_KW)
5571    }
5572    #[inline]
5573    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5574        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5575    }
5576}
5577
5578#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5579pub struct DropCollation {
5580    pub(crate) syntax: SyntaxNode,
5581}
5582impl DropCollation {
5583    #[inline]
5584    pub fn if_exists(&self) -> Option<IfExists> {
5585        support::child(&self.syntax)
5586    }
5587    #[inline]
5588    pub fn paths(&self) -> AstChildren<Path> {
5589        support::children(&self.syntax)
5590    }
5591    #[inline]
5592    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5593        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5594    }
5595    #[inline]
5596    pub fn collation_token(&self) -> Option<SyntaxToken> {
5597        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
5598    }
5599    #[inline]
5600    pub fn drop_token(&self) -> Option<SyntaxToken> {
5601        support::token(&self.syntax, SyntaxKind::DROP_KW)
5602    }
5603    #[inline]
5604    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5606    }
5607}
5608
5609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5610pub struct DropColumn {
5611    pub(crate) syntax: SyntaxNode,
5612}
5613impl DropColumn {
5614    #[inline]
5615    pub fn if_exists(&self) -> Option<IfExists> {
5616        support::child(&self.syntax)
5617    }
5618    #[inline]
5619    pub fn name_ref(&self) -> Option<NameRef> {
5620        support::child(&self.syntax)
5621    }
5622    #[inline]
5623    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5624        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5625    }
5626    #[inline]
5627    pub fn column_token(&self) -> Option<SyntaxToken> {
5628        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
5629    }
5630    #[inline]
5631    pub fn drop_token(&self) -> Option<SyntaxToken> {
5632        support::token(&self.syntax, SyntaxKind::DROP_KW)
5633    }
5634    #[inline]
5635    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5636        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5637    }
5638}
5639
5640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5641pub struct DropConstraint {
5642    pub(crate) syntax: SyntaxNode,
5643}
5644impl DropConstraint {
5645    #[inline]
5646    pub fn if_exists(&self) -> Option<IfExists> {
5647        support::child(&self.syntax)
5648    }
5649    #[inline]
5650    pub fn name_ref(&self) -> Option<NameRef> {
5651        support::child(&self.syntax)
5652    }
5653    #[inline]
5654    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5655        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5656    }
5657    #[inline]
5658    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5659        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5660    }
5661    #[inline]
5662    pub fn drop_token(&self) -> Option<SyntaxToken> {
5663        support::token(&self.syntax, SyntaxKind::DROP_KW)
5664    }
5665    #[inline]
5666    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5667        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5668    }
5669}
5670
5671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5672pub struct DropConversion {
5673    pub(crate) syntax: SyntaxNode,
5674}
5675impl DropConversion {
5676    #[inline]
5677    pub fn if_exists(&self) -> Option<IfExists> {
5678        support::child(&self.syntax)
5679    }
5680    #[inline]
5681    pub fn path(&self) -> Option<Path> {
5682        support::child(&self.syntax)
5683    }
5684    #[inline]
5685    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5686        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5687    }
5688    #[inline]
5689    pub fn conversion_token(&self) -> Option<SyntaxToken> {
5690        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
5691    }
5692    #[inline]
5693    pub fn drop_token(&self) -> Option<SyntaxToken> {
5694        support::token(&self.syntax, SyntaxKind::DROP_KW)
5695    }
5696    #[inline]
5697    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5698        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5699    }
5700}
5701
5702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5703pub struct DropDatabase {
5704    pub(crate) syntax: SyntaxNode,
5705}
5706impl DropDatabase {
5707    #[inline]
5708    pub fn if_exists(&self) -> Option<IfExists> {
5709        support::child(&self.syntax)
5710    }
5711    #[inline]
5712    pub fn name_ref(&self) -> Option<NameRef> {
5713        support::child(&self.syntax)
5714    }
5715    #[inline]
5716    pub fn database_token(&self) -> Option<SyntaxToken> {
5717        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
5718    }
5719    #[inline]
5720    pub fn drop_token(&self) -> Option<SyntaxToken> {
5721        support::token(&self.syntax, SyntaxKind::DROP_KW)
5722    }
5723}
5724
5725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5726pub struct DropDefault {
5727    pub(crate) syntax: SyntaxNode,
5728}
5729impl DropDefault {
5730    #[inline]
5731    pub fn default_token(&self) -> Option<SyntaxToken> {
5732        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5733    }
5734    #[inline]
5735    pub fn drop_token(&self) -> Option<SyntaxToken> {
5736        support::token(&self.syntax, SyntaxKind::DROP_KW)
5737    }
5738}
5739
5740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5741pub struct DropDomain {
5742    pub(crate) syntax: SyntaxNode,
5743}
5744impl DropDomain {
5745    #[inline]
5746    pub fn if_exists(&self) -> Option<IfExists> {
5747        support::child(&self.syntax)
5748    }
5749    #[inline]
5750    pub fn paths(&self) -> AstChildren<Path> {
5751        support::children(&self.syntax)
5752    }
5753    #[inline]
5754    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5755        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5756    }
5757    #[inline]
5758    pub fn domain_token(&self) -> Option<SyntaxToken> {
5759        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
5760    }
5761    #[inline]
5762    pub fn drop_token(&self) -> Option<SyntaxToken> {
5763        support::token(&self.syntax, SyntaxKind::DROP_KW)
5764    }
5765    #[inline]
5766    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5767        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5768    }
5769}
5770
5771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5772pub struct DropEventTrigger {
5773    pub(crate) syntax: SyntaxNode,
5774}
5775impl DropEventTrigger {
5776    #[inline]
5777    pub fn if_exists(&self) -> Option<IfExists> {
5778        support::child(&self.syntax)
5779    }
5780    #[inline]
5781    pub fn name_ref(&self) -> Option<NameRef> {
5782        support::child(&self.syntax)
5783    }
5784    #[inline]
5785    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5786        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5787    }
5788    #[inline]
5789    pub fn drop_token(&self) -> Option<SyntaxToken> {
5790        support::token(&self.syntax, SyntaxKind::DROP_KW)
5791    }
5792    #[inline]
5793    pub fn event_token(&self) -> Option<SyntaxToken> {
5794        support::token(&self.syntax, SyntaxKind::EVENT_KW)
5795    }
5796    #[inline]
5797    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5798        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5799    }
5800    #[inline]
5801    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5802        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5803    }
5804}
5805
5806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5807pub struct DropExpression {
5808    pub(crate) syntax: SyntaxNode,
5809}
5810impl DropExpression {
5811    #[inline]
5812    pub fn if_exists(&self) -> Option<IfExists> {
5813        support::child(&self.syntax)
5814    }
5815    #[inline]
5816    pub fn drop_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::DROP_KW)
5818    }
5819    #[inline]
5820    pub fn expression_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
5822    }
5823}
5824
5825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5826pub struct DropExtension {
5827    pub(crate) syntax: SyntaxNode,
5828}
5829impl DropExtension {
5830    #[inline]
5831    pub fn if_exists(&self) -> Option<IfExists> {
5832        support::child(&self.syntax)
5833    }
5834    #[inline]
5835    pub fn name_refs(&self) -> AstChildren<NameRef> {
5836        support::children(&self.syntax)
5837    }
5838    #[inline]
5839    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5840        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5841    }
5842    #[inline]
5843    pub fn drop_token(&self) -> Option<SyntaxToken> {
5844        support::token(&self.syntax, SyntaxKind::DROP_KW)
5845    }
5846    #[inline]
5847    pub fn extension_token(&self) -> Option<SyntaxToken> {
5848        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5849    }
5850    #[inline]
5851    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5852        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5853    }
5854}
5855
5856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5857pub struct DropForeignDataWrapper {
5858    pub(crate) syntax: SyntaxNode,
5859}
5860impl DropForeignDataWrapper {
5861    #[inline]
5862    pub fn if_exists(&self) -> Option<IfExists> {
5863        support::child(&self.syntax)
5864    }
5865    #[inline]
5866    pub fn name_refs(&self) -> AstChildren<NameRef> {
5867        support::children(&self.syntax)
5868    }
5869    #[inline]
5870    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5871        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5872    }
5873    #[inline]
5874    pub fn data_token(&self) -> Option<SyntaxToken> {
5875        support::token(&self.syntax, SyntaxKind::DATA_KW)
5876    }
5877    #[inline]
5878    pub fn drop_token(&self) -> Option<SyntaxToken> {
5879        support::token(&self.syntax, SyntaxKind::DROP_KW)
5880    }
5881    #[inline]
5882    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5883        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5884    }
5885    #[inline]
5886    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5887        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5888    }
5889    #[inline]
5890    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
5891        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
5892    }
5893}
5894
5895#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5896pub struct DropForeignTable {
5897    pub(crate) syntax: SyntaxNode,
5898}
5899impl DropForeignTable {
5900    #[inline]
5901    pub fn if_exists(&self) -> Option<IfExists> {
5902        support::child(&self.syntax)
5903    }
5904    #[inline]
5905    pub fn path(&self) -> Option<Path> {
5906        support::child(&self.syntax)
5907    }
5908    #[inline]
5909    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5910        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5911    }
5912    #[inline]
5913    pub fn drop_token(&self) -> Option<SyntaxToken> {
5914        support::token(&self.syntax, SyntaxKind::DROP_KW)
5915    }
5916    #[inline]
5917    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5918        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5919    }
5920    #[inline]
5921    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5922        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5923    }
5924    #[inline]
5925    pub fn table_token(&self) -> Option<SyntaxToken> {
5926        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5927    }
5928}
5929
5930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5931pub struct DropFunction {
5932    pub(crate) syntax: SyntaxNode,
5933}
5934impl DropFunction {
5935    #[inline]
5936    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
5937        support::child(&self.syntax)
5938    }
5939    #[inline]
5940    pub fn if_exists(&self) -> Option<IfExists> {
5941        support::child(&self.syntax)
5942    }
5943    #[inline]
5944    pub fn cascade_token(&self) -> Option<SyntaxToken> {
5945        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
5946    }
5947    #[inline]
5948    pub fn drop_token(&self) -> Option<SyntaxToken> {
5949        support::token(&self.syntax, SyntaxKind::DROP_KW)
5950    }
5951    #[inline]
5952    pub fn function_token(&self) -> Option<SyntaxToken> {
5953        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5954    }
5955    #[inline]
5956    pub fn restrict_token(&self) -> Option<SyntaxToken> {
5957        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
5958    }
5959}
5960
5961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5962pub struct DropGroup {
5963    pub(crate) syntax: SyntaxNode,
5964}
5965impl DropGroup {
5966    #[inline]
5967    pub fn if_exists(&self) -> Option<IfExists> {
5968        support::child(&self.syntax)
5969    }
5970    #[inline]
5971    pub fn name_refs(&self) -> AstChildren<NameRef> {
5972        support::children(&self.syntax)
5973    }
5974    #[inline]
5975    pub fn drop_token(&self) -> Option<SyntaxToken> {
5976        support::token(&self.syntax, SyntaxKind::DROP_KW)
5977    }
5978    #[inline]
5979    pub fn group_token(&self) -> Option<SyntaxToken> {
5980        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5981    }
5982}
5983
5984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5985pub struct DropIdentity {
5986    pub(crate) syntax: SyntaxNode,
5987}
5988impl DropIdentity {
5989    #[inline]
5990    pub fn if_exists(&self) -> Option<IfExists> {
5991        support::child(&self.syntax)
5992    }
5993    #[inline]
5994    pub fn drop_token(&self) -> Option<SyntaxToken> {
5995        support::token(&self.syntax, SyntaxKind::DROP_KW)
5996    }
5997    #[inline]
5998    pub fn identity_token(&self) -> Option<SyntaxToken> {
5999        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6000    }
6001}
6002
6003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6004pub struct DropIndex {
6005    pub(crate) syntax: SyntaxNode,
6006}
6007impl DropIndex {
6008    #[inline]
6009    pub fn if_exists(&self) -> Option<IfExists> {
6010        support::child(&self.syntax)
6011    }
6012    #[inline]
6013    pub fn paths(&self) -> AstChildren<Path> {
6014        support::children(&self.syntax)
6015    }
6016    #[inline]
6017    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6018        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6019    }
6020    #[inline]
6021    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6022        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6023    }
6024    #[inline]
6025    pub fn drop_token(&self) -> Option<SyntaxToken> {
6026        support::token(&self.syntax, SyntaxKind::DROP_KW)
6027    }
6028    #[inline]
6029    pub fn index_token(&self) -> Option<SyntaxToken> {
6030        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6031    }
6032    #[inline]
6033    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6034        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6035    }
6036}
6037
6038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6039pub struct DropLanguage {
6040    pub(crate) syntax: SyntaxNode,
6041}
6042impl DropLanguage {
6043    #[inline]
6044    pub fn if_exists(&self) -> Option<IfExists> {
6045        support::child(&self.syntax)
6046    }
6047    #[inline]
6048    pub fn name_ref(&self) -> Option<NameRef> {
6049        support::child(&self.syntax)
6050    }
6051    #[inline]
6052    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6053        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6054    }
6055    #[inline]
6056    pub fn drop_token(&self) -> Option<SyntaxToken> {
6057        support::token(&self.syntax, SyntaxKind::DROP_KW)
6058    }
6059    #[inline]
6060    pub fn language_token(&self) -> Option<SyntaxToken> {
6061        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6062    }
6063    #[inline]
6064    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6065        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6066    }
6067    #[inline]
6068    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6069        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6070    }
6071}
6072
6073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6074pub struct DropMaterializedView {
6075    pub(crate) syntax: SyntaxNode,
6076}
6077impl DropMaterializedView {
6078    #[inline]
6079    pub fn if_exists(&self) -> Option<IfExists> {
6080        support::child(&self.syntax)
6081    }
6082    #[inline]
6083    pub fn paths(&self) -> AstChildren<Path> {
6084        support::children(&self.syntax)
6085    }
6086    #[inline]
6087    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6088        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6089    }
6090    #[inline]
6091    pub fn drop_token(&self) -> Option<SyntaxToken> {
6092        support::token(&self.syntax, SyntaxKind::DROP_KW)
6093    }
6094    #[inline]
6095    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6096        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6097    }
6098    #[inline]
6099    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6100        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6101    }
6102    #[inline]
6103    pub fn view_token(&self) -> Option<SyntaxToken> {
6104        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6105    }
6106}
6107
6108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6109pub struct DropNotNull {
6110    pub(crate) syntax: SyntaxNode,
6111}
6112impl DropNotNull {
6113    #[inline]
6114    pub fn drop_token(&self) -> Option<SyntaxToken> {
6115        support::token(&self.syntax, SyntaxKind::DROP_KW)
6116    }
6117    #[inline]
6118    pub fn not_token(&self) -> Option<SyntaxToken> {
6119        support::token(&self.syntax, SyntaxKind::NOT_KW)
6120    }
6121    #[inline]
6122    pub fn null_token(&self) -> Option<SyntaxToken> {
6123        support::token(&self.syntax, SyntaxKind::NULL_KW)
6124    }
6125}
6126
6127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6128pub struct DropOpClassOption {
6129    pub(crate) syntax: SyntaxNode,
6130}
6131impl DropOpClassOption {
6132    #[inline]
6133    pub fn literal(&self) -> Option<Literal> {
6134        support::child(&self.syntax)
6135    }
6136    #[inline]
6137    pub fn param_list(&self) -> Option<ParamList> {
6138        support::child(&self.syntax)
6139    }
6140    #[inline]
6141    pub fn function_token(&self) -> Option<SyntaxToken> {
6142        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6143    }
6144    #[inline]
6145    pub fn operator_token(&self) -> Option<SyntaxToken> {
6146        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6147    }
6148}
6149
6150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6151pub struct DropOpClassOptionList {
6152    pub(crate) syntax: SyntaxNode,
6153}
6154impl DropOpClassOptionList {
6155    #[inline]
6156    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6157        support::children(&self.syntax)
6158    }
6159}
6160
6161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6162pub struct DropOpClassOptions {
6163    pub(crate) syntax: SyntaxNode,
6164}
6165impl DropOpClassOptions {
6166    #[inline]
6167    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6168        support::child(&self.syntax)
6169    }
6170    #[inline]
6171    pub fn drop_token(&self) -> Option<SyntaxToken> {
6172        support::token(&self.syntax, SyntaxKind::DROP_KW)
6173    }
6174}
6175
6176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6177pub struct DropOperator {
6178    pub(crate) syntax: SyntaxNode,
6179}
6180impl DropOperator {
6181    #[inline]
6182    pub fn if_exists(&self) -> Option<IfExists> {
6183        support::child(&self.syntax)
6184    }
6185    #[inline]
6186    pub fn op_sig_list(&self) -> Option<OpSigList> {
6187        support::child(&self.syntax)
6188    }
6189    #[inline]
6190    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6191        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6192    }
6193    #[inline]
6194    pub fn drop_token(&self) -> Option<SyntaxToken> {
6195        support::token(&self.syntax, SyntaxKind::DROP_KW)
6196    }
6197    #[inline]
6198    pub fn operator_token(&self) -> Option<SyntaxToken> {
6199        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6200    }
6201    #[inline]
6202    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6203        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6204    }
6205}
6206
6207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6208pub struct DropOperatorClass {
6209    pub(crate) syntax: SyntaxNode,
6210}
6211impl DropOperatorClass {
6212    #[inline]
6213    pub fn if_exists(&self) -> Option<IfExists> {
6214        support::child(&self.syntax)
6215    }
6216    #[inline]
6217    pub fn name_ref(&self) -> Option<NameRef> {
6218        support::child(&self.syntax)
6219    }
6220    #[inline]
6221    pub fn path(&self) -> Option<Path> {
6222        support::child(&self.syntax)
6223    }
6224    #[inline]
6225    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6226        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6227    }
6228    #[inline]
6229    pub fn class_token(&self) -> Option<SyntaxToken> {
6230        support::token(&self.syntax, SyntaxKind::CLASS_KW)
6231    }
6232    #[inline]
6233    pub fn drop_token(&self) -> Option<SyntaxToken> {
6234        support::token(&self.syntax, SyntaxKind::DROP_KW)
6235    }
6236    #[inline]
6237    pub fn operator_token(&self) -> Option<SyntaxToken> {
6238        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6239    }
6240    #[inline]
6241    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6242        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6243    }
6244    #[inline]
6245    pub fn using_token(&self) -> Option<SyntaxToken> {
6246        support::token(&self.syntax, SyntaxKind::USING_KW)
6247    }
6248}
6249
6250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6251pub struct DropOperatorFamily {
6252    pub(crate) syntax: SyntaxNode,
6253}
6254impl DropOperatorFamily {
6255    #[inline]
6256    pub fn if_exists(&self) -> Option<IfExists> {
6257        support::child(&self.syntax)
6258    }
6259    #[inline]
6260    pub fn name_ref(&self) -> Option<NameRef> {
6261        support::child(&self.syntax)
6262    }
6263    #[inline]
6264    pub fn path(&self) -> Option<Path> {
6265        support::child(&self.syntax)
6266    }
6267    #[inline]
6268    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6269        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6270    }
6271    #[inline]
6272    pub fn drop_token(&self) -> Option<SyntaxToken> {
6273        support::token(&self.syntax, SyntaxKind::DROP_KW)
6274    }
6275    #[inline]
6276    pub fn family_token(&self) -> Option<SyntaxToken> {
6277        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
6278    }
6279    #[inline]
6280    pub fn operator_token(&self) -> Option<SyntaxToken> {
6281        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6282    }
6283    #[inline]
6284    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6285        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6286    }
6287    #[inline]
6288    pub fn using_token(&self) -> Option<SyntaxToken> {
6289        support::token(&self.syntax, SyntaxKind::USING_KW)
6290    }
6291}
6292
6293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6294pub struct DropOwned {
6295    pub(crate) syntax: SyntaxNode,
6296}
6297impl DropOwned {
6298    #[inline]
6299    pub fn role_ref_list(&self) -> Option<RoleRefList> {
6300        support::child(&self.syntax)
6301    }
6302    #[inline]
6303    pub fn by_token(&self) -> Option<SyntaxToken> {
6304        support::token(&self.syntax, SyntaxKind::BY_KW)
6305    }
6306    #[inline]
6307    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6308        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6309    }
6310    #[inline]
6311    pub fn drop_token(&self) -> Option<SyntaxToken> {
6312        support::token(&self.syntax, SyntaxKind::DROP_KW)
6313    }
6314    #[inline]
6315    pub fn owned_token(&self) -> Option<SyntaxToken> {
6316        support::token(&self.syntax, SyntaxKind::OWNED_KW)
6317    }
6318    #[inline]
6319    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6320        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6321    }
6322}
6323
6324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6325pub struct DropPolicy {
6326    pub(crate) syntax: SyntaxNode,
6327}
6328impl DropPolicy {
6329    #[inline]
6330    pub fn if_exists(&self) -> Option<IfExists> {
6331        support::child(&self.syntax)
6332    }
6333    #[inline]
6334    pub fn name_ref(&self) -> Option<NameRef> {
6335        support::child(&self.syntax)
6336    }
6337    #[inline]
6338    pub fn on_table(&self) -> Option<OnTable> {
6339        support::child(&self.syntax)
6340    }
6341    #[inline]
6342    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6343        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6344    }
6345    #[inline]
6346    pub fn drop_token(&self) -> Option<SyntaxToken> {
6347        support::token(&self.syntax, SyntaxKind::DROP_KW)
6348    }
6349    #[inline]
6350    pub fn policy_token(&self) -> Option<SyntaxToken> {
6351        support::token(&self.syntax, SyntaxKind::POLICY_KW)
6352    }
6353    #[inline]
6354    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6355        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6356    }
6357}
6358
6359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6360pub struct DropProcedure {
6361    pub(crate) syntax: SyntaxNode,
6362}
6363impl DropProcedure {
6364    #[inline]
6365    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6366        support::child(&self.syntax)
6367    }
6368    #[inline]
6369    pub fn if_exists(&self) -> Option<IfExists> {
6370        support::child(&self.syntax)
6371    }
6372    #[inline]
6373    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6374        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6375    }
6376    #[inline]
6377    pub fn drop_token(&self) -> Option<SyntaxToken> {
6378        support::token(&self.syntax, SyntaxKind::DROP_KW)
6379    }
6380    #[inline]
6381    pub fn procedure_token(&self) -> Option<SyntaxToken> {
6382        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
6383    }
6384    #[inline]
6385    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6387    }
6388}
6389
6390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6391pub struct DropPublication {
6392    pub(crate) syntax: SyntaxNode,
6393}
6394impl DropPublication {
6395    #[inline]
6396    pub fn if_exists(&self) -> Option<IfExists> {
6397        support::child(&self.syntax)
6398    }
6399    #[inline]
6400    pub fn name_refs(&self) -> AstChildren<NameRef> {
6401        support::children(&self.syntax)
6402    }
6403    #[inline]
6404    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6405        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6406    }
6407    #[inline]
6408    pub fn drop_token(&self) -> Option<SyntaxToken> {
6409        support::token(&self.syntax, SyntaxKind::DROP_KW)
6410    }
6411    #[inline]
6412    pub fn publication_token(&self) -> Option<SyntaxToken> {
6413        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
6414    }
6415    #[inline]
6416    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6417        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6418    }
6419}
6420
6421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6422pub struct DropRole {
6423    pub(crate) syntax: SyntaxNode,
6424}
6425impl DropRole {
6426    #[inline]
6427    pub fn if_exists(&self) -> Option<IfExists> {
6428        support::child(&self.syntax)
6429    }
6430    #[inline]
6431    pub fn name_refs(&self) -> AstChildren<NameRef> {
6432        support::children(&self.syntax)
6433    }
6434    #[inline]
6435    pub fn drop_token(&self) -> Option<SyntaxToken> {
6436        support::token(&self.syntax, SyntaxKind::DROP_KW)
6437    }
6438    #[inline]
6439    pub fn role_token(&self) -> Option<SyntaxToken> {
6440        support::token(&self.syntax, SyntaxKind::ROLE_KW)
6441    }
6442}
6443
6444#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6445pub struct DropRoutine {
6446    pub(crate) syntax: SyntaxNode,
6447}
6448impl DropRoutine {
6449    #[inline]
6450    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6451        support::child(&self.syntax)
6452    }
6453    #[inline]
6454    pub fn if_exists(&self) -> Option<IfExists> {
6455        support::child(&self.syntax)
6456    }
6457    #[inline]
6458    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6459        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6460    }
6461    #[inline]
6462    pub fn drop_token(&self) -> Option<SyntaxToken> {
6463        support::token(&self.syntax, SyntaxKind::DROP_KW)
6464    }
6465    #[inline]
6466    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6467        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6468    }
6469    #[inline]
6470    pub fn routine_token(&self) -> Option<SyntaxToken> {
6471        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
6472    }
6473}
6474
6475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6476pub struct DropRule {
6477    pub(crate) syntax: SyntaxNode,
6478}
6479impl DropRule {
6480    #[inline]
6481    pub fn if_exists(&self) -> Option<IfExists> {
6482        support::child(&self.syntax)
6483    }
6484    #[inline]
6485    pub fn name_ref(&self) -> Option<NameRef> {
6486        support::child(&self.syntax)
6487    }
6488    #[inline]
6489    pub fn on_table(&self) -> Option<OnTable> {
6490        support::child(&self.syntax)
6491    }
6492    #[inline]
6493    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6494        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6495    }
6496    #[inline]
6497    pub fn drop_token(&self) -> Option<SyntaxToken> {
6498        support::token(&self.syntax, SyntaxKind::DROP_KW)
6499    }
6500    #[inline]
6501    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6502        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6503    }
6504    #[inline]
6505    pub fn rule_token(&self) -> Option<SyntaxToken> {
6506        support::token(&self.syntax, SyntaxKind::RULE_KW)
6507    }
6508}
6509
6510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6511pub struct DropSchema {
6512    pub(crate) syntax: SyntaxNode,
6513}
6514impl DropSchema {
6515    #[inline]
6516    pub fn if_exists(&self) -> Option<IfExists> {
6517        support::child(&self.syntax)
6518    }
6519    #[inline]
6520    pub fn name_refs(&self) -> AstChildren<NameRef> {
6521        support::children(&self.syntax)
6522    }
6523    #[inline]
6524    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6525        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6526    }
6527    #[inline]
6528    pub fn drop_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::DROP_KW)
6530    }
6531    #[inline]
6532    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6533        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6534    }
6535    #[inline]
6536    pub fn schema_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
6538    }
6539}
6540
6541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6542pub struct DropSequence {
6543    pub(crate) syntax: SyntaxNode,
6544}
6545impl DropSequence {
6546    #[inline]
6547    pub fn if_exists(&self) -> Option<IfExists> {
6548        support::child(&self.syntax)
6549    }
6550    #[inline]
6551    pub fn paths(&self) -> AstChildren<Path> {
6552        support::children(&self.syntax)
6553    }
6554    #[inline]
6555    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6556        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6557    }
6558    #[inline]
6559    pub fn drop_token(&self) -> Option<SyntaxToken> {
6560        support::token(&self.syntax, SyntaxKind::DROP_KW)
6561    }
6562    #[inline]
6563    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6564        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6565    }
6566    #[inline]
6567    pub fn sequence_token(&self) -> Option<SyntaxToken> {
6568        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
6569    }
6570}
6571
6572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6573pub struct DropServer {
6574    pub(crate) syntax: SyntaxNode,
6575}
6576impl DropServer {
6577    #[inline]
6578    pub fn if_exists(&self) -> Option<IfExists> {
6579        support::child(&self.syntax)
6580    }
6581    #[inline]
6582    pub fn name_ref(&self) -> Option<NameRef> {
6583        support::child(&self.syntax)
6584    }
6585    #[inline]
6586    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6587        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6588    }
6589    #[inline]
6590    pub fn drop_token(&self) -> Option<SyntaxToken> {
6591        support::token(&self.syntax, SyntaxKind::DROP_KW)
6592    }
6593    #[inline]
6594    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6595        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6596    }
6597    #[inline]
6598    pub fn server_token(&self) -> Option<SyntaxToken> {
6599        support::token(&self.syntax, SyntaxKind::SERVER_KW)
6600    }
6601}
6602
6603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6604pub struct DropStatistics {
6605    pub(crate) syntax: SyntaxNode,
6606}
6607impl DropStatistics {
6608    #[inline]
6609    pub fn if_exists(&self) -> Option<IfExists> {
6610        support::child(&self.syntax)
6611    }
6612    #[inline]
6613    pub fn paths(&self) -> AstChildren<Path> {
6614        support::children(&self.syntax)
6615    }
6616    #[inline]
6617    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6618        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6619    }
6620    #[inline]
6621    pub fn drop_token(&self) -> Option<SyntaxToken> {
6622        support::token(&self.syntax, SyntaxKind::DROP_KW)
6623    }
6624    #[inline]
6625    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6626        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6627    }
6628    #[inline]
6629    pub fn statistics_token(&self) -> Option<SyntaxToken> {
6630        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
6631    }
6632}
6633
6634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6635pub struct DropSubscription {
6636    pub(crate) syntax: SyntaxNode,
6637}
6638impl DropSubscription {
6639    #[inline]
6640    pub fn if_exists(&self) -> Option<IfExists> {
6641        support::child(&self.syntax)
6642    }
6643    #[inline]
6644    pub fn name_ref(&self) -> Option<NameRef> {
6645        support::child(&self.syntax)
6646    }
6647    #[inline]
6648    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6649        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6650    }
6651    #[inline]
6652    pub fn drop_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::DROP_KW)
6654    }
6655    #[inline]
6656    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6657        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6658    }
6659    #[inline]
6660    pub fn subscription_token(&self) -> Option<SyntaxToken> {
6661        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
6662    }
6663}
6664
6665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6666pub struct DropTable {
6667    pub(crate) syntax: SyntaxNode,
6668}
6669impl DropTable {
6670    #[inline]
6671    pub fn if_exists(&self) -> Option<IfExists> {
6672        support::child(&self.syntax)
6673    }
6674    #[inline]
6675    pub fn path(&self) -> Option<Path> {
6676        support::child(&self.syntax)
6677    }
6678    #[inline]
6679    pub fn comma_token(&self) -> Option<SyntaxToken> {
6680        support::token(&self.syntax, SyntaxKind::COMMA)
6681    }
6682    #[inline]
6683    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6684        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6685    }
6686    #[inline]
6687    pub fn drop_token(&self) -> Option<SyntaxToken> {
6688        support::token(&self.syntax, SyntaxKind::DROP_KW)
6689    }
6690    #[inline]
6691    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6692        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6693    }
6694    #[inline]
6695    pub fn table_token(&self) -> Option<SyntaxToken> {
6696        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6697    }
6698}
6699
6700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6701pub struct DropTablespace {
6702    pub(crate) syntax: SyntaxNode,
6703}
6704impl DropTablespace {
6705    #[inline]
6706    pub fn if_exists(&self) -> Option<IfExists> {
6707        support::child(&self.syntax)
6708    }
6709    #[inline]
6710    pub fn name_ref(&self) -> Option<NameRef> {
6711        support::child(&self.syntax)
6712    }
6713    #[inline]
6714    pub fn drop_token(&self) -> Option<SyntaxToken> {
6715        support::token(&self.syntax, SyntaxKind::DROP_KW)
6716    }
6717    #[inline]
6718    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
6719        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
6720    }
6721}
6722
6723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6724pub struct DropTextSearchConfig {
6725    pub(crate) syntax: SyntaxNode,
6726}
6727impl DropTextSearchConfig {
6728    #[inline]
6729    pub fn if_exists(&self) -> Option<IfExists> {
6730        support::child(&self.syntax)
6731    }
6732    #[inline]
6733    pub fn path(&self) -> Option<Path> {
6734        support::child(&self.syntax)
6735    }
6736    #[inline]
6737    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6738        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6739    }
6740    #[inline]
6741    pub fn configuration_token(&self) -> Option<SyntaxToken> {
6742        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
6743    }
6744    #[inline]
6745    pub fn drop_token(&self) -> Option<SyntaxToken> {
6746        support::token(&self.syntax, SyntaxKind::DROP_KW)
6747    }
6748    #[inline]
6749    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6750        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6751    }
6752    #[inline]
6753    pub fn search_token(&self) -> Option<SyntaxToken> {
6754        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6755    }
6756    #[inline]
6757    pub fn text_token(&self) -> Option<SyntaxToken> {
6758        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6759    }
6760}
6761
6762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6763pub struct DropTextSearchDict {
6764    pub(crate) syntax: SyntaxNode,
6765}
6766impl DropTextSearchDict {
6767    #[inline]
6768    pub fn if_exists(&self) -> Option<IfExists> {
6769        support::child(&self.syntax)
6770    }
6771    #[inline]
6772    pub fn path(&self) -> Option<Path> {
6773        support::child(&self.syntax)
6774    }
6775    #[inline]
6776    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6777        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6778    }
6779    #[inline]
6780    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
6781        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
6782    }
6783    #[inline]
6784    pub fn drop_token(&self) -> Option<SyntaxToken> {
6785        support::token(&self.syntax, SyntaxKind::DROP_KW)
6786    }
6787    #[inline]
6788    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6789        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6790    }
6791    #[inline]
6792    pub fn search_token(&self) -> Option<SyntaxToken> {
6793        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6794    }
6795    #[inline]
6796    pub fn text_token(&self) -> Option<SyntaxToken> {
6797        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6798    }
6799}
6800
6801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6802pub struct DropTextSearchParser {
6803    pub(crate) syntax: SyntaxNode,
6804}
6805impl DropTextSearchParser {
6806    #[inline]
6807    pub fn if_exists(&self) -> Option<IfExists> {
6808        support::child(&self.syntax)
6809    }
6810    #[inline]
6811    pub fn path(&self) -> Option<Path> {
6812        support::child(&self.syntax)
6813    }
6814    #[inline]
6815    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6816        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6817    }
6818    #[inline]
6819    pub fn drop_token(&self) -> Option<SyntaxToken> {
6820        support::token(&self.syntax, SyntaxKind::DROP_KW)
6821    }
6822    #[inline]
6823    pub fn parser_token(&self) -> Option<SyntaxToken> {
6824        support::token(&self.syntax, SyntaxKind::PARSER_KW)
6825    }
6826    #[inline]
6827    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6828        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6829    }
6830    #[inline]
6831    pub fn search_token(&self) -> Option<SyntaxToken> {
6832        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6833    }
6834    #[inline]
6835    pub fn text_token(&self) -> Option<SyntaxToken> {
6836        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6837    }
6838}
6839
6840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6841pub struct DropTextSearchTemplate {
6842    pub(crate) syntax: SyntaxNode,
6843}
6844impl DropTextSearchTemplate {
6845    #[inline]
6846    pub fn if_exists(&self) -> Option<IfExists> {
6847        support::child(&self.syntax)
6848    }
6849    #[inline]
6850    pub fn path(&self) -> Option<Path> {
6851        support::child(&self.syntax)
6852    }
6853    #[inline]
6854    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6855        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6856    }
6857    #[inline]
6858    pub fn drop_token(&self) -> Option<SyntaxToken> {
6859        support::token(&self.syntax, SyntaxKind::DROP_KW)
6860    }
6861    #[inline]
6862    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6863        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6864    }
6865    #[inline]
6866    pub fn search_token(&self) -> Option<SyntaxToken> {
6867        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
6868    }
6869    #[inline]
6870    pub fn template_token(&self) -> Option<SyntaxToken> {
6871        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
6872    }
6873    #[inline]
6874    pub fn text_token(&self) -> Option<SyntaxToken> {
6875        support::token(&self.syntax, SyntaxKind::TEXT_KW)
6876    }
6877}
6878
6879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6880pub struct DropTransform {
6881    pub(crate) syntax: SyntaxNode,
6882}
6883impl DropTransform {
6884    #[inline]
6885    pub fn if_exists(&self) -> Option<IfExists> {
6886        support::child(&self.syntax)
6887    }
6888    #[inline]
6889    pub fn language(&self) -> Option<NameRef> {
6890        support::child(&self.syntax)
6891    }
6892    #[inline]
6893    pub fn ty(&self) -> Option<Type> {
6894        support::child(&self.syntax)
6895    }
6896    #[inline]
6897    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6898        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6899    }
6900    #[inline]
6901    pub fn drop_token(&self) -> Option<SyntaxToken> {
6902        support::token(&self.syntax, SyntaxKind::DROP_KW)
6903    }
6904    #[inline]
6905    pub fn for_token(&self) -> Option<SyntaxToken> {
6906        support::token(&self.syntax, SyntaxKind::FOR_KW)
6907    }
6908    #[inline]
6909    pub fn language_token(&self) -> Option<SyntaxToken> {
6910        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6911    }
6912    #[inline]
6913    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6914        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6915    }
6916    #[inline]
6917    pub fn transform_token(&self) -> Option<SyntaxToken> {
6918        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
6919    }
6920}
6921
6922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6923pub struct DropTrigger {
6924    pub(crate) syntax: SyntaxNode,
6925}
6926impl DropTrigger {
6927    #[inline]
6928    pub fn if_exists(&self) -> Option<IfExists> {
6929        support::child(&self.syntax)
6930    }
6931    #[inline]
6932    pub fn on_table(&self) -> Option<OnTable> {
6933        support::child(&self.syntax)
6934    }
6935    #[inline]
6936    pub fn path(&self) -> Option<Path> {
6937        support::child(&self.syntax)
6938    }
6939    #[inline]
6940    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6941        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6942    }
6943    #[inline]
6944    pub fn drop_token(&self) -> Option<SyntaxToken> {
6945        support::token(&self.syntax, SyntaxKind::DROP_KW)
6946    }
6947    #[inline]
6948    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6949        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6950    }
6951    #[inline]
6952    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6953        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6954    }
6955}
6956
6957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6958pub struct DropType {
6959    pub(crate) syntax: SyntaxNode,
6960}
6961impl DropType {
6962    #[inline]
6963    pub fn if_exists(&self) -> Option<IfExists> {
6964        support::child(&self.syntax)
6965    }
6966    #[inline]
6967    pub fn paths(&self) -> AstChildren<Path> {
6968        support::children(&self.syntax)
6969    }
6970    #[inline]
6971    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6972        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6973    }
6974    #[inline]
6975    pub fn drop_token(&self) -> Option<SyntaxToken> {
6976        support::token(&self.syntax, SyntaxKind::DROP_KW)
6977    }
6978    #[inline]
6979    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6980        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6981    }
6982    #[inline]
6983    pub fn type_token(&self) -> Option<SyntaxToken> {
6984        support::token(&self.syntax, SyntaxKind::TYPE_KW)
6985    }
6986}
6987
6988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6989pub struct DropUser {
6990    pub(crate) syntax: SyntaxNode,
6991}
6992impl DropUser {
6993    #[inline]
6994    pub fn if_exists(&self) -> Option<IfExists> {
6995        support::child(&self.syntax)
6996    }
6997    #[inline]
6998    pub fn name_refs(&self) -> AstChildren<NameRef> {
6999        support::children(&self.syntax)
7000    }
7001    #[inline]
7002    pub fn drop_token(&self) -> Option<SyntaxToken> {
7003        support::token(&self.syntax, SyntaxKind::DROP_KW)
7004    }
7005    #[inline]
7006    pub fn user_token(&self) -> Option<SyntaxToken> {
7007        support::token(&self.syntax, SyntaxKind::USER_KW)
7008    }
7009}
7010
7011#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7012pub struct DropUserMapping {
7013    pub(crate) syntax: SyntaxNode,
7014}
7015impl DropUserMapping {
7016    #[inline]
7017    pub fn if_exists(&self) -> Option<IfExists> {
7018        support::child(&self.syntax)
7019    }
7020    #[inline]
7021    pub fn role_ref(&self) -> Option<RoleRef> {
7022        support::child(&self.syntax)
7023    }
7024    #[inline]
7025    pub fn server_name(&self) -> Option<ServerName> {
7026        support::child(&self.syntax)
7027    }
7028    #[inline]
7029    pub fn drop_token(&self) -> Option<SyntaxToken> {
7030        support::token(&self.syntax, SyntaxKind::DROP_KW)
7031    }
7032    #[inline]
7033    pub fn for_token(&self) -> Option<SyntaxToken> {
7034        support::token(&self.syntax, SyntaxKind::FOR_KW)
7035    }
7036    #[inline]
7037    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7038        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7039    }
7040    #[inline]
7041    pub fn user_token(&self) -> Option<SyntaxToken> {
7042        support::token(&self.syntax, SyntaxKind::USER_KW)
7043    }
7044}
7045
7046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7047pub struct DropView {
7048    pub(crate) syntax: SyntaxNode,
7049}
7050impl DropView {
7051    #[inline]
7052    pub fn if_exists(&self) -> Option<IfExists> {
7053        support::child(&self.syntax)
7054    }
7055    #[inline]
7056    pub fn path(&self) -> Option<Path> {
7057        support::child(&self.syntax)
7058    }
7059    #[inline]
7060    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7061        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7062    }
7063    #[inline]
7064    pub fn drop_token(&self) -> Option<SyntaxToken> {
7065        support::token(&self.syntax, SyntaxKind::DROP_KW)
7066    }
7067    #[inline]
7068    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7069        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7070    }
7071    #[inline]
7072    pub fn view_token(&self) -> Option<SyntaxToken> {
7073        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7074    }
7075}
7076
7077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7078pub struct ElseClause {
7079    pub(crate) syntax: SyntaxNode,
7080}
7081impl ElseClause {
7082    #[inline]
7083    pub fn expr(&self) -> Option<Expr> {
7084        support::child(&self.syntax)
7085    }
7086    #[inline]
7087    pub fn else_token(&self) -> Option<SyntaxToken> {
7088        support::token(&self.syntax, SyntaxKind::ELSE_KW)
7089    }
7090}
7091
7092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7093pub struct EnableAlwaysRule {
7094    pub(crate) syntax: SyntaxNode,
7095}
7096impl EnableAlwaysRule {
7097    #[inline]
7098    pub fn always_token(&self) -> Option<SyntaxToken> {
7099        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7100    }
7101    #[inline]
7102    pub fn enable_token(&self) -> Option<SyntaxToken> {
7103        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7104    }
7105    #[inline]
7106    pub fn rule_token(&self) -> Option<SyntaxToken> {
7107        support::token(&self.syntax, SyntaxKind::RULE_KW)
7108    }
7109}
7110
7111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7112pub struct EnableAlwaysTrigger {
7113    pub(crate) syntax: SyntaxNode,
7114}
7115impl EnableAlwaysTrigger {
7116    #[inline]
7117    pub fn always_token(&self) -> Option<SyntaxToken> {
7118        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7119    }
7120    #[inline]
7121    pub fn enable_token(&self) -> Option<SyntaxToken> {
7122        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7123    }
7124    #[inline]
7125    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7126        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7127    }
7128}
7129
7130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7131pub struct EnableReplicaRule {
7132    pub(crate) syntax: SyntaxNode,
7133}
7134impl EnableReplicaRule {
7135    #[inline]
7136    pub fn enable_token(&self) -> Option<SyntaxToken> {
7137        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7138    }
7139    #[inline]
7140    pub fn replica_token(&self) -> Option<SyntaxToken> {
7141        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7142    }
7143    #[inline]
7144    pub fn rule_token(&self) -> Option<SyntaxToken> {
7145        support::token(&self.syntax, SyntaxKind::RULE_KW)
7146    }
7147}
7148
7149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7150pub struct EnableReplicaTrigger {
7151    pub(crate) syntax: SyntaxNode,
7152}
7153impl EnableReplicaTrigger {
7154    #[inline]
7155    pub fn enable_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7157    }
7158    #[inline]
7159    pub fn replica_token(&self) -> Option<SyntaxToken> {
7160        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
7161    }
7162    #[inline]
7163    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7164        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7165    }
7166}
7167
7168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7169pub struct EnableRls {
7170    pub(crate) syntax: SyntaxNode,
7171}
7172impl EnableRls {
7173    #[inline]
7174    pub fn enable_token(&self) -> Option<SyntaxToken> {
7175        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7176    }
7177    #[inline]
7178    pub fn level_token(&self) -> Option<SyntaxToken> {
7179        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7180    }
7181    #[inline]
7182    pub fn row_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::ROW_KW)
7184    }
7185    #[inline]
7186    pub fn security_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7188    }
7189}
7190
7191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7192pub struct EnableRule {
7193    pub(crate) syntax: SyntaxNode,
7194}
7195impl EnableRule {
7196    #[inline]
7197    pub fn enable_token(&self) -> Option<SyntaxToken> {
7198        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7199    }
7200    #[inline]
7201    pub fn rule_token(&self) -> Option<SyntaxToken> {
7202        support::token(&self.syntax, SyntaxKind::RULE_KW)
7203    }
7204}
7205
7206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7207pub struct EnableTrigger {
7208    pub(crate) syntax: SyntaxNode,
7209}
7210impl EnableTrigger {
7211    #[inline]
7212    pub fn enable_token(&self) -> Option<SyntaxToken> {
7213        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
7214    }
7215    #[inline]
7216    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7217        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7218    }
7219}
7220
7221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7222pub struct Enforced {
7223    pub(crate) syntax: SyntaxNode,
7224}
7225impl Enforced {
7226    #[inline]
7227    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7228        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7229    }
7230}
7231
7232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7233pub struct EventTriggerWhen {
7234    pub(crate) syntax: SyntaxNode,
7235}
7236impl EventTriggerWhen {
7237    #[inline]
7238    pub fn literals(&self) -> AstChildren<Literal> {
7239        support::children(&self.syntax)
7240    }
7241    #[inline]
7242    pub fn name_ref(&self) -> Option<NameRef> {
7243        support::child(&self.syntax)
7244    }
7245    #[inline]
7246    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7247        support::token(&self.syntax, SyntaxKind::L_PAREN)
7248    }
7249    #[inline]
7250    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7251        support::token(&self.syntax, SyntaxKind::R_PAREN)
7252    }
7253    #[inline]
7254    pub fn in_token(&self) -> Option<SyntaxToken> {
7255        support::token(&self.syntax, SyntaxKind::IN_KW)
7256    }
7257}
7258
7259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7260pub struct EventTriggerWhenClause {
7261    pub(crate) syntax: SyntaxNode,
7262}
7263impl EventTriggerWhenClause {
7264    #[inline]
7265    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
7266        support::children(&self.syntax)
7267    }
7268    #[inline]
7269    pub fn when_token(&self) -> Option<SyntaxToken> {
7270        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7271    }
7272}
7273
7274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7275pub struct ExceptTables {
7276    pub(crate) syntax: SyntaxNode,
7277}
7278impl ExceptTables {
7279    #[inline]
7280    pub fn name_refs(&self) -> AstChildren<NameRef> {
7281        support::children(&self.syntax)
7282    }
7283    #[inline]
7284    pub fn except_token(&self) -> Option<SyntaxToken> {
7285        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
7286    }
7287}
7288
7289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7290pub struct ExcludeConstraint {
7291    pub(crate) syntax: SyntaxNode,
7292}
7293impl ExcludeConstraint {
7294    #[inline]
7295    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
7296        support::child(&self.syntax)
7297    }
7298    #[inline]
7299    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
7300        support::child(&self.syntax)
7301    }
7302    #[inline]
7303    pub fn constraint_name(&self) -> Option<ConstraintName> {
7304        support::child(&self.syntax)
7305    }
7306    #[inline]
7307    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
7308        support::child(&self.syntax)
7309    }
7310    #[inline]
7311    pub fn exclude_token(&self) -> Option<SyntaxToken> {
7312        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
7313    }
7314}
7315
7316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7317pub struct Execute {
7318    pub(crate) syntax: SyntaxNode,
7319}
7320impl Execute {
7321    #[inline]
7322    pub fn arg_list(&self) -> Option<ArgList> {
7323        support::child(&self.syntax)
7324    }
7325    #[inline]
7326    pub fn name_ref(&self) -> Option<NameRef> {
7327        support::child(&self.syntax)
7328    }
7329    #[inline]
7330    pub fn execute_token(&self) -> Option<SyntaxToken> {
7331        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
7332    }
7333}
7334
7335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7336pub struct ExistsFn {
7337    pub(crate) syntax: SyntaxNode,
7338}
7339impl ExistsFn {
7340    #[inline]
7341    pub fn select_variant(&self) -> Option<SelectVariant> {
7342        support::child(&self.syntax)
7343    }
7344    #[inline]
7345    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7346        support::token(&self.syntax, SyntaxKind::L_PAREN)
7347    }
7348    #[inline]
7349    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7350        support::token(&self.syntax, SyntaxKind::R_PAREN)
7351    }
7352    #[inline]
7353    pub fn exists_token(&self) -> Option<SyntaxToken> {
7354        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
7355    }
7356}
7357
7358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7359pub struct Explain {
7360    pub(crate) syntax: SyntaxNode,
7361}
7362impl Explain {
7363    #[inline]
7364    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
7365        support::child(&self.syntax)
7366    }
7367    #[inline]
7368    pub fn analyse_token(&self) -> Option<SyntaxToken> {
7369        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
7370    }
7371    #[inline]
7372    pub fn analyze_token(&self) -> Option<SyntaxToken> {
7373        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
7374    }
7375    #[inline]
7376    pub fn explain_token(&self) -> Option<SyntaxToken> {
7377        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
7378    }
7379    #[inline]
7380    pub fn verbose_token(&self) -> Option<SyntaxToken> {
7381        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
7382    }
7383}
7384
7385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7386pub struct ExprAsName {
7387    pub(crate) syntax: SyntaxNode,
7388}
7389impl ExprAsName {
7390    #[inline]
7391    pub fn as_name(&self) -> Option<AsName> {
7392        support::child(&self.syntax)
7393    }
7394    #[inline]
7395    pub fn expr(&self) -> Option<Expr> {
7396        support::child(&self.syntax)
7397    }
7398}
7399
7400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7401pub struct ExprType {
7402    pub(crate) syntax: SyntaxNode,
7403}
7404impl ExprType {
7405    #[inline]
7406    pub fn expr(&self) -> Option<Expr> {
7407        support::child(&self.syntax)
7408    }
7409}
7410
7411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7412pub struct ExtractFn {
7413    pub(crate) syntax: SyntaxNode,
7414}
7415impl ExtractFn {
7416    #[inline]
7417    pub fn expr(&self) -> Option<Expr> {
7418        support::child(&self.syntax)
7419    }
7420    #[inline]
7421    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7422        support::token(&self.syntax, SyntaxKind::L_PAREN)
7423    }
7424    #[inline]
7425    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7426        support::token(&self.syntax, SyntaxKind::R_PAREN)
7427    }
7428    #[inline]
7429    pub fn day_token(&self) -> Option<SyntaxToken> {
7430        support::token(&self.syntax, SyntaxKind::DAY_KW)
7431    }
7432    #[inline]
7433    pub fn extract_token(&self) -> Option<SyntaxToken> {
7434        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
7435    }
7436    #[inline]
7437    pub fn from_token(&self) -> Option<SyntaxToken> {
7438        support::token(&self.syntax, SyntaxKind::FROM_KW)
7439    }
7440    #[inline]
7441    pub fn hour_token(&self) -> Option<SyntaxToken> {
7442        support::token(&self.syntax, SyntaxKind::HOUR_KW)
7443    }
7444    #[inline]
7445    pub fn ident_token(&self) -> Option<SyntaxToken> {
7446        support::token(&self.syntax, SyntaxKind::IDENT)
7447    }
7448    #[inline]
7449    pub fn minute_token(&self) -> Option<SyntaxToken> {
7450        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
7451    }
7452    #[inline]
7453    pub fn month_token(&self) -> Option<SyntaxToken> {
7454        support::token(&self.syntax, SyntaxKind::MONTH_KW)
7455    }
7456    #[inline]
7457    pub fn second_token(&self) -> Option<SyntaxToken> {
7458        support::token(&self.syntax, SyntaxKind::SECOND_KW)
7459    }
7460    #[inline]
7461    pub fn string_token(&self) -> Option<SyntaxToken> {
7462        support::token(&self.syntax, SyntaxKind::STRING_KW)
7463    }
7464    #[inline]
7465    pub fn year_token(&self) -> Option<SyntaxToken> {
7466        support::token(&self.syntax, SyntaxKind::YEAR_KW)
7467    }
7468}
7469
7470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7471pub struct FatArrow {
7472    pub(crate) syntax: SyntaxNode,
7473}
7474impl FatArrow {
7475    #[inline]
7476    pub fn eq_token(&self) -> Option<SyntaxToken> {
7477        support::token(&self.syntax, SyntaxKind::EQ)
7478    }
7479    #[inline]
7480    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7481        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7482    }
7483}
7484
7485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7486pub struct FdwOption {
7487    pub(crate) syntax: SyntaxNode,
7488}
7489impl FdwOption {
7490    #[inline]
7491    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
7492        support::child(&self.syntax)
7493    }
7494    #[inline]
7495    pub fn path(&self) -> Option<Path> {
7496        support::child(&self.syntax)
7497    }
7498    #[inline]
7499    pub fn handler_token(&self) -> Option<SyntaxToken> {
7500        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
7501    }
7502    #[inline]
7503    pub fn no_token(&self) -> Option<SyntaxToken> {
7504        support::token(&self.syntax, SyntaxKind::NO_KW)
7505    }
7506    #[inline]
7507    pub fn options_token(&self) -> Option<SyntaxToken> {
7508        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
7509    }
7510    #[inline]
7511    pub fn validator_token(&self) -> Option<SyntaxToken> {
7512        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
7513    }
7514}
7515
7516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7517pub struct FdwOptionList {
7518    pub(crate) syntax: SyntaxNode,
7519}
7520impl FdwOptionList {
7521    #[inline]
7522    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
7523        support::children(&self.syntax)
7524    }
7525}
7526
7527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7528pub struct Fetch {
7529    pub(crate) syntax: SyntaxNode,
7530}
7531impl Fetch {
7532    #[inline]
7533    pub fn name_ref(&self) -> Option<NameRef> {
7534        support::child(&self.syntax)
7535    }
7536    #[inline]
7537    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7538        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7539    }
7540    #[inline]
7541    pub fn from_token(&self) -> Option<SyntaxToken> {
7542        support::token(&self.syntax, SyntaxKind::FROM_KW)
7543    }
7544    #[inline]
7545    pub fn in_token(&self) -> Option<SyntaxToken> {
7546        support::token(&self.syntax, SyntaxKind::IN_KW)
7547    }
7548}
7549
7550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7551pub struct FetchClause {
7552    pub(crate) syntax: SyntaxNode,
7553}
7554impl FetchClause {
7555    #[inline]
7556    pub fn expr(&self) -> Option<Expr> {
7557        support::child(&self.syntax)
7558    }
7559    #[inline]
7560    pub fn fetch_token(&self) -> Option<SyntaxToken> {
7561        support::token(&self.syntax, SyntaxKind::FETCH_KW)
7562    }
7563    #[inline]
7564    pub fn first_token(&self) -> Option<SyntaxToken> {
7565        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7566    }
7567    #[inline]
7568    pub fn next_token(&self) -> Option<SyntaxToken> {
7569        support::token(&self.syntax, SyntaxKind::NEXT_KW)
7570    }
7571    #[inline]
7572    pub fn only_token(&self) -> Option<SyntaxToken> {
7573        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7574    }
7575    #[inline]
7576    pub fn row_token(&self) -> Option<SyntaxToken> {
7577        support::token(&self.syntax, SyntaxKind::ROW_KW)
7578    }
7579    #[inline]
7580    pub fn rows_token(&self) -> Option<SyntaxToken> {
7581        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7582    }
7583    #[inline]
7584    pub fn ties_token(&self) -> Option<SyntaxToken> {
7585        support::token(&self.syntax, SyntaxKind::TIES_KW)
7586    }
7587    #[inline]
7588    pub fn with_token(&self) -> Option<SyntaxToken> {
7589        support::token(&self.syntax, SyntaxKind::WITH_KW)
7590    }
7591}
7592
7593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7594pub struct FieldExpr {
7595    pub(crate) syntax: SyntaxNode,
7596}
7597impl FieldExpr {
7598    #[inline]
7599    pub fn star_token(&self) -> Option<SyntaxToken> {
7600        support::token(&self.syntax, SyntaxKind::STAR)
7601    }
7602    #[inline]
7603    pub fn dot_token(&self) -> Option<SyntaxToken> {
7604        support::token(&self.syntax, SyntaxKind::DOT)
7605    }
7606}
7607
7608#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7609pub struct FilterClause {
7610    pub(crate) syntax: SyntaxNode,
7611}
7612impl FilterClause {
7613    #[inline]
7614    pub fn expr(&self) -> Option<Expr> {
7615        support::child(&self.syntax)
7616    }
7617    #[inline]
7618    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7619        support::token(&self.syntax, SyntaxKind::L_PAREN)
7620    }
7621    #[inline]
7622    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7623        support::token(&self.syntax, SyntaxKind::R_PAREN)
7624    }
7625    #[inline]
7626    pub fn filter_token(&self) -> Option<SyntaxToken> {
7627        support::token(&self.syntax, SyntaxKind::FILTER_KW)
7628    }
7629    #[inline]
7630    pub fn where_token(&self) -> Option<SyntaxToken> {
7631        support::token(&self.syntax, SyntaxKind::WHERE_KW)
7632    }
7633}
7634
7635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7636pub struct ForProvider {
7637    pub(crate) syntax: SyntaxNode,
7638}
7639impl ForProvider {
7640    #[inline]
7641    pub fn literal(&self) -> Option<Literal> {
7642        support::child(&self.syntax)
7643    }
7644    #[inline]
7645    pub fn name_ref(&self) -> Option<NameRef> {
7646        support::child(&self.syntax)
7647    }
7648    #[inline]
7649    pub fn for_token(&self) -> Option<SyntaxToken> {
7650        support::token(&self.syntax, SyntaxKind::FOR_KW)
7651    }
7652}
7653
7654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7655pub struct ForceRls {
7656    pub(crate) syntax: SyntaxNode,
7657}
7658impl ForceRls {
7659    #[inline]
7660    pub fn force_token(&self) -> Option<SyntaxToken> {
7661        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7662    }
7663    #[inline]
7664    pub fn level_token(&self) -> Option<SyntaxToken> {
7665        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7666    }
7667    #[inline]
7668    pub fn row_token(&self) -> Option<SyntaxToken> {
7669        support::token(&self.syntax, SyntaxKind::ROW_KW)
7670    }
7671    #[inline]
7672    pub fn security_token(&self) -> Option<SyntaxToken> {
7673        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7674    }
7675}
7676
7677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7678pub struct ForeignKeyConstraint {
7679    pub(crate) syntax: SyntaxNode,
7680}
7681impl ForeignKeyConstraint {
7682    #[inline]
7683    pub fn constraint_name(&self) -> Option<ConstraintName> {
7684        support::child(&self.syntax)
7685    }
7686    #[inline]
7687    pub fn match_type(&self) -> Option<MatchType> {
7688        support::child(&self.syntax)
7689    }
7690    #[inline]
7691    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7692        support::child(&self.syntax)
7693    }
7694    #[inline]
7695    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7696        support::child(&self.syntax)
7697    }
7698    #[inline]
7699    pub fn path(&self) -> Option<Path> {
7700        support::child(&self.syntax)
7701    }
7702    #[inline]
7703    pub fn foreign_token(&self) -> Option<SyntaxToken> {
7704        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
7705    }
7706    #[inline]
7707    pub fn key_token(&self) -> Option<SyntaxToken> {
7708        support::token(&self.syntax, SyntaxKind::KEY_KW)
7709    }
7710    #[inline]
7711    pub fn references_token(&self) -> Option<SyntaxToken> {
7712        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7713    }
7714}
7715
7716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7717pub struct FrameClause {
7718    pub(crate) syntax: SyntaxNode,
7719}
7720impl FrameClause {
7721    #[inline]
7722    pub fn groups_token(&self) -> Option<SyntaxToken> {
7723        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
7724    }
7725    #[inline]
7726    pub fn range_token(&self) -> Option<SyntaxToken> {
7727        support::token(&self.syntax, SyntaxKind::RANGE_KW)
7728    }
7729    #[inline]
7730    pub fn rows_token(&self) -> Option<SyntaxToken> {
7731        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7732    }
7733}
7734
7735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7736pub struct FromClause {
7737    pub(crate) syntax: SyntaxNode,
7738}
7739impl FromClause {
7740    #[inline]
7741    pub fn from_items(&self) -> AstChildren<FromItem> {
7742        support::children(&self.syntax)
7743    }
7744    #[inline]
7745    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
7746        support::children(&self.syntax)
7747    }
7748    #[inline]
7749    pub fn from_token(&self) -> Option<SyntaxToken> {
7750        support::token(&self.syntax, SyntaxKind::FROM_KW)
7751    }
7752}
7753
7754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7755pub struct FromItem {
7756    pub(crate) syntax: SyntaxNode,
7757}
7758impl FromItem {
7759    #[inline]
7760    pub fn alias(&self) -> Option<Alias> {
7761        support::child(&self.syntax)
7762    }
7763    #[inline]
7764    pub fn call_expr(&self) -> Option<CallExpr> {
7765        support::child(&self.syntax)
7766    }
7767    #[inline]
7768    pub fn cast_expr(&self) -> Option<CastExpr> {
7769        support::child(&self.syntax)
7770    }
7771    #[inline]
7772    pub fn field_expr(&self) -> Option<FieldExpr> {
7773        support::child(&self.syntax)
7774    }
7775    #[inline]
7776    pub fn json_table(&self) -> Option<JsonTable> {
7777        support::child(&self.syntax)
7778    }
7779    #[inline]
7780    pub fn name_ref(&self) -> Option<NameRef> {
7781        support::child(&self.syntax)
7782    }
7783    #[inline]
7784    pub fn paren_expr(&self) -> Option<ParenExpr> {
7785        support::child(&self.syntax)
7786    }
7787    #[inline]
7788    pub fn paren_select(&self) -> Option<ParenSelect> {
7789        support::child(&self.syntax)
7790    }
7791    #[inline]
7792    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
7793        support::child(&self.syntax)
7794    }
7795    #[inline]
7796    pub fn xml_table(&self) -> Option<XmlTable> {
7797        support::child(&self.syntax)
7798    }
7799    #[inline]
7800    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7801        support::token(&self.syntax, SyntaxKind::L_PAREN)
7802    }
7803    #[inline]
7804    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7805        support::token(&self.syntax, SyntaxKind::R_PAREN)
7806    }
7807    #[inline]
7808    pub fn star_token(&self) -> Option<SyntaxToken> {
7809        support::token(&self.syntax, SyntaxKind::STAR)
7810    }
7811    #[inline]
7812    pub fn from_token(&self) -> Option<SyntaxToken> {
7813        support::token(&self.syntax, SyntaxKind::FROM_KW)
7814    }
7815    #[inline]
7816    pub fn lateral_token(&self) -> Option<SyntaxToken> {
7817        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
7818    }
7819    #[inline]
7820    pub fn only_token(&self) -> Option<SyntaxToken> {
7821        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7822    }
7823    #[inline]
7824    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
7825        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
7826    }
7827    #[inline]
7828    pub fn rows_token(&self) -> Option<SyntaxToken> {
7829        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7830    }
7831    #[inline]
7832    pub fn with_token(&self) -> Option<SyntaxToken> {
7833        support::token(&self.syntax, SyntaxKind::WITH_KW)
7834    }
7835}
7836
7837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7838pub struct FromTable {
7839    pub(crate) syntax: SyntaxNode,
7840}
7841impl FromTable {
7842    #[inline]
7843    pub fn path(&self) -> Option<Path> {
7844        support::child(&self.syntax)
7845    }
7846    #[inline]
7847    pub fn from_token(&self) -> Option<SyntaxToken> {
7848        support::token(&self.syntax, SyntaxKind::FROM_KW)
7849    }
7850}
7851
7852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7853pub struct FuncOptionList {
7854    pub(crate) syntax: SyntaxNode,
7855}
7856impl FuncOptionList {
7857    #[inline]
7858    pub fn options(&self) -> AstChildren<FuncOption> {
7859        support::children(&self.syntax)
7860    }
7861}
7862
7863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7864pub struct FunctionSig {
7865    pub(crate) syntax: SyntaxNode,
7866}
7867impl FunctionSig {
7868    #[inline]
7869    pub fn param_list(&self) -> Option<ParamList> {
7870        support::child(&self.syntax)
7871    }
7872    #[inline]
7873    pub fn path(&self) -> Option<Path> {
7874        support::child(&self.syntax)
7875    }
7876}
7877
7878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7879pub struct FunctionSigList {
7880    pub(crate) syntax: SyntaxNode,
7881}
7882impl FunctionSigList {
7883    #[inline]
7884    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
7885        support::children(&self.syntax)
7886    }
7887}
7888
7889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7890pub struct GeneratedConstraint {
7891    pub(crate) syntax: SyntaxNode,
7892}
7893impl GeneratedConstraint {
7894    #[inline]
7895    pub fn expr(&self) -> Option<Expr> {
7896        support::child(&self.syntax)
7897    }
7898    #[inline]
7899    pub fn name_ref(&self) -> Option<NameRef> {
7900        support::child(&self.syntax)
7901    }
7902    #[inline]
7903    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
7904        support::child(&self.syntax)
7905    }
7906    #[inline]
7907    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7908        support::token(&self.syntax, SyntaxKind::L_PAREN)
7909    }
7910    #[inline]
7911    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7912        support::token(&self.syntax, SyntaxKind::R_PAREN)
7913    }
7914    #[inline]
7915    pub fn always_token(&self) -> Option<SyntaxToken> {
7916        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
7917    }
7918    #[inline]
7919    pub fn as_token(&self) -> Option<SyntaxToken> {
7920        support::token(&self.syntax, SyntaxKind::AS_KW)
7921    }
7922    #[inline]
7923    pub fn by_token(&self) -> Option<SyntaxToken> {
7924        support::token(&self.syntax, SyntaxKind::BY_KW)
7925    }
7926    #[inline]
7927    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7928        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7929    }
7930    #[inline]
7931    pub fn default_token(&self) -> Option<SyntaxToken> {
7932        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7933    }
7934    #[inline]
7935    pub fn generated_token(&self) -> Option<SyntaxToken> {
7936        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
7937    }
7938    #[inline]
7939    pub fn identity_token(&self) -> Option<SyntaxToken> {
7940        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
7941    }
7942    #[inline]
7943    pub fn stored_token(&self) -> Option<SyntaxToken> {
7944        support::token(&self.syntax, SyntaxKind::STORED_KW)
7945    }
7946}
7947
7948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7949pub struct Grant {
7950    pub(crate) syntax: SyntaxNode,
7951}
7952impl Grant {
7953    #[inline]
7954    pub fn name_refs(&self) -> AstChildren<NameRef> {
7955        support::children(&self.syntax)
7956    }
7957    #[inline]
7958    pub fn paths(&self) -> AstChildren<Path> {
7959        support::children(&self.syntax)
7960    }
7961    #[inline]
7962    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
7963        support::child(&self.syntax)
7964    }
7965    #[inline]
7966    pub fn role_ref(&self) -> Option<RoleRef> {
7967        support::child(&self.syntax)
7968    }
7969    #[inline]
7970    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7971        support::child(&self.syntax)
7972    }
7973    #[inline]
7974    pub fn all_token(&self) -> Option<SyntaxToken> {
7975        support::token(&self.syntax, SyntaxKind::ALL_KW)
7976    }
7977    #[inline]
7978    pub fn by_token(&self) -> Option<SyntaxToken> {
7979        support::token(&self.syntax, SyntaxKind::BY_KW)
7980    }
7981    #[inline]
7982    pub fn grant_token(&self) -> Option<SyntaxToken> {
7983        support::token(&self.syntax, SyntaxKind::GRANT_KW)
7984    }
7985    #[inline]
7986    pub fn granted_token(&self) -> Option<SyntaxToken> {
7987        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
7988    }
7989    #[inline]
7990    pub fn in_token(&self) -> Option<SyntaxToken> {
7991        support::token(&self.syntax, SyntaxKind::IN_KW)
7992    }
7993    #[inline]
7994    pub fn on_token(&self) -> Option<SyntaxToken> {
7995        support::token(&self.syntax, SyntaxKind::ON_KW)
7996    }
7997    #[inline]
7998    pub fn option_token(&self) -> Option<SyntaxToken> {
7999        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8000    }
8001    #[inline]
8002    pub fn privileges_token(&self) -> Option<SyntaxToken> {
8003        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
8004    }
8005    #[inline]
8006    pub fn schema_token(&self) -> Option<SyntaxToken> {
8007        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8008    }
8009    #[inline]
8010    pub fn table_token(&self) -> Option<SyntaxToken> {
8011        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8012    }
8013    #[inline]
8014    pub fn tables_token(&self) -> Option<SyntaxToken> {
8015        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8016    }
8017    #[inline]
8018    pub fn to_token(&self) -> Option<SyntaxToken> {
8019        support::token(&self.syntax, SyntaxKind::TO_KW)
8020    }
8021    #[inline]
8022    pub fn with_token(&self) -> Option<SyntaxToken> {
8023        support::token(&self.syntax, SyntaxKind::WITH_KW)
8024    }
8025}
8026
8027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8028pub struct GrantDefaultPrivileges {
8029    pub(crate) syntax: SyntaxNode,
8030}
8031impl GrantDefaultPrivileges {
8032    #[inline]
8033    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
8034        support::child(&self.syntax)
8035    }
8036    #[inline]
8037    pub fn privileges(&self) -> Option<Privileges> {
8038        support::child(&self.syntax)
8039    }
8040    #[inline]
8041    pub fn role_ref_list(&self) -> Option<RoleRefList> {
8042        support::child(&self.syntax)
8043    }
8044    #[inline]
8045    pub fn grant_token(&self) -> Option<SyntaxToken> {
8046        support::token(&self.syntax, SyntaxKind::GRANT_KW)
8047    }
8048    #[inline]
8049    pub fn on_token(&self) -> Option<SyntaxToken> {
8050        support::token(&self.syntax, SyntaxKind::ON_KW)
8051    }
8052    #[inline]
8053    pub fn option_token(&self) -> Option<SyntaxToken> {
8054        support::token(&self.syntax, SyntaxKind::OPTION_KW)
8055    }
8056    #[inline]
8057    pub fn to_token(&self) -> Option<SyntaxToken> {
8058        support::token(&self.syntax, SyntaxKind::TO_KW)
8059    }
8060    #[inline]
8061    pub fn with_token(&self) -> Option<SyntaxToken> {
8062        support::token(&self.syntax, SyntaxKind::WITH_KW)
8063    }
8064}
8065
8066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8067pub struct GroupByClause {
8068    pub(crate) syntax: SyntaxNode,
8069}
8070impl GroupByClause {
8071    #[inline]
8072    pub fn group_by_list(&self) -> Option<GroupByList> {
8073        support::child(&self.syntax)
8074    }
8075    #[inline]
8076    pub fn all_token(&self) -> Option<SyntaxToken> {
8077        support::token(&self.syntax, SyntaxKind::ALL_KW)
8078    }
8079    #[inline]
8080    pub fn by_token(&self) -> Option<SyntaxToken> {
8081        support::token(&self.syntax, SyntaxKind::BY_KW)
8082    }
8083    #[inline]
8084    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8085        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8086    }
8087    #[inline]
8088    pub fn group_token(&self) -> Option<SyntaxToken> {
8089        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8090    }
8091}
8092
8093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8094pub struct GroupByList {
8095    pub(crate) syntax: SyntaxNode,
8096}
8097impl GroupByList {
8098    #[inline]
8099    pub fn group_bys(&self) -> AstChildren<GroupBy> {
8100        support::children(&self.syntax)
8101    }
8102}
8103
8104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8105pub struct GroupingCube {
8106    pub(crate) syntax: SyntaxNode,
8107}
8108impl GroupingCube {
8109    #[inline]
8110    pub fn expr(&self) -> Option<Expr> {
8111        support::child(&self.syntax)
8112    }
8113    #[inline]
8114    pub fn cube_token(&self) -> Option<SyntaxToken> {
8115        support::token(&self.syntax, SyntaxKind::CUBE_KW)
8116    }
8117}
8118
8119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8120pub struct GroupingExpr {
8121    pub(crate) syntax: SyntaxNode,
8122}
8123impl GroupingExpr {
8124    #[inline]
8125    pub fn expr(&self) -> Option<Expr> {
8126        support::child(&self.syntax)
8127    }
8128}
8129
8130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8131pub struct GroupingRollup {
8132    pub(crate) syntax: SyntaxNode,
8133}
8134impl GroupingRollup {
8135    #[inline]
8136    pub fn expr(&self) -> Option<Expr> {
8137        support::child(&self.syntax)
8138    }
8139    #[inline]
8140    pub fn rollup_token(&self) -> Option<SyntaxToken> {
8141        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
8142    }
8143}
8144
8145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8146pub struct GroupingSets {
8147    pub(crate) syntax: SyntaxNode,
8148}
8149impl GroupingSets {
8150    #[inline]
8151    pub fn expr(&self) -> Option<Expr> {
8152        support::child(&self.syntax)
8153    }
8154    #[inline]
8155    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8156        support::token(&self.syntax, SyntaxKind::L_PAREN)
8157    }
8158    #[inline]
8159    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8160        support::token(&self.syntax, SyntaxKind::R_PAREN)
8161    }
8162    #[inline]
8163    pub fn grouping_token(&self) -> Option<SyntaxToken> {
8164        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
8165    }
8166    #[inline]
8167    pub fn sets_token(&self) -> Option<SyntaxToken> {
8168        support::token(&self.syntax, SyntaxKind::SETS_KW)
8169    }
8170}
8171
8172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8173pub struct Gteq {
8174    pub(crate) syntax: SyntaxNode,
8175}
8176impl Gteq {
8177    #[inline]
8178    pub fn eq_token(&self) -> Option<SyntaxToken> {
8179        support::token(&self.syntax, SyntaxKind::EQ)
8180    }
8181    #[inline]
8182    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8183        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8184    }
8185}
8186
8187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8188pub struct HandlerClause {
8189    pub(crate) syntax: SyntaxNode,
8190}
8191impl HandlerClause {
8192    #[inline]
8193    pub fn path(&self) -> Option<Path> {
8194        support::child(&self.syntax)
8195    }
8196    #[inline]
8197    pub fn handler_token(&self) -> Option<SyntaxToken> {
8198        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8199    }
8200}
8201
8202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8203pub struct HavingClause {
8204    pub(crate) syntax: SyntaxNode,
8205}
8206impl HavingClause {
8207    #[inline]
8208    pub fn expr(&self) -> Option<Expr> {
8209        support::child(&self.syntax)
8210    }
8211    #[inline]
8212    pub fn having_token(&self) -> Option<SyntaxToken> {
8213        support::token(&self.syntax, SyntaxKind::HAVING_KW)
8214    }
8215}
8216
8217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8218pub struct IfExists {
8219    pub(crate) syntax: SyntaxNode,
8220}
8221impl IfExists {
8222    #[inline]
8223    pub fn exists_token(&self) -> Option<SyntaxToken> {
8224        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8225    }
8226    #[inline]
8227    pub fn if_token(&self) -> Option<SyntaxToken> {
8228        support::token(&self.syntax, SyntaxKind::IF_KW)
8229    }
8230}
8231
8232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8233pub struct IfNotExists {
8234    pub(crate) syntax: SyntaxNode,
8235}
8236impl IfNotExists {
8237    #[inline]
8238    pub fn exists_token(&self) -> Option<SyntaxToken> {
8239        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8240    }
8241    #[inline]
8242    pub fn if_token(&self) -> Option<SyntaxToken> {
8243        support::token(&self.syntax, SyntaxKind::IF_KW)
8244    }
8245    #[inline]
8246    pub fn not_token(&self) -> Option<SyntaxToken> {
8247        support::token(&self.syntax, SyntaxKind::NOT_KW)
8248    }
8249}
8250
8251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8252pub struct ImportForeignSchema {
8253    pub(crate) syntax: SyntaxNode,
8254}
8255impl ImportForeignSchema {
8256    #[inline]
8257    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8258        support::child(&self.syntax)
8259    }
8260    #[inline]
8261    pub fn except_tables(&self) -> Option<ExceptTables> {
8262        support::child(&self.syntax)
8263    }
8264    #[inline]
8265    pub fn into_schema(&self) -> Option<IntoSchema> {
8266        support::child(&self.syntax)
8267    }
8268    #[inline]
8269    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
8270        support::child(&self.syntax)
8271    }
8272    #[inline]
8273    pub fn name_ref(&self) -> Option<NameRef> {
8274        support::child(&self.syntax)
8275    }
8276    #[inline]
8277    pub fn server_name(&self) -> Option<ServerName> {
8278        support::child(&self.syntax)
8279    }
8280    #[inline]
8281    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8283    }
8284    #[inline]
8285    pub fn from_token(&self) -> Option<SyntaxToken> {
8286        support::token(&self.syntax, SyntaxKind::FROM_KW)
8287    }
8288    #[inline]
8289    pub fn import_token(&self) -> Option<SyntaxToken> {
8290        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
8291    }
8292    #[inline]
8293    pub fn schema_token(&self) -> Option<SyntaxToken> {
8294        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8295    }
8296}
8297
8298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8299pub struct IndexExpr {
8300    pub(crate) syntax: SyntaxNode,
8301}
8302impl IndexExpr {
8303    #[inline]
8304    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8305        support::token(&self.syntax, SyntaxKind::L_BRACK)
8306    }
8307    #[inline]
8308    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::R_BRACK)
8310    }
8311}
8312
8313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8314pub struct Inherit {
8315    pub(crate) syntax: SyntaxNode,
8316}
8317impl Inherit {
8318    #[inline]
8319    pub fn path(&self) -> Option<Path> {
8320        support::child(&self.syntax)
8321    }
8322    #[inline]
8323    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8324        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8325    }
8326}
8327
8328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8329pub struct InheritTable {
8330    pub(crate) syntax: SyntaxNode,
8331}
8332impl InheritTable {
8333    #[inline]
8334    pub fn path(&self) -> Option<Path> {
8335        support::child(&self.syntax)
8336    }
8337    #[inline]
8338    pub fn inherit_token(&self) -> Option<SyntaxToken> {
8339        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
8340    }
8341}
8342
8343#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8344pub struct Inherits {
8345    pub(crate) syntax: SyntaxNode,
8346}
8347impl Inherits {
8348    #[inline]
8349    pub fn paths(&self) -> AstChildren<Path> {
8350        support::children(&self.syntax)
8351    }
8352    #[inline]
8353    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8354        support::token(&self.syntax, SyntaxKind::L_PAREN)
8355    }
8356    #[inline]
8357    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8358        support::token(&self.syntax, SyntaxKind::R_PAREN)
8359    }
8360    #[inline]
8361    pub fn inherits_token(&self) -> Option<SyntaxToken> {
8362        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
8363    }
8364}
8365
8366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8367pub struct InitiallyDeferredConstraintOption {
8368    pub(crate) syntax: SyntaxNode,
8369}
8370impl InitiallyDeferredConstraintOption {
8371    #[inline]
8372    pub fn deferred_token(&self) -> Option<SyntaxToken> {
8373        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
8374    }
8375    #[inline]
8376    pub fn initially_token(&self) -> Option<SyntaxToken> {
8377        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8378    }
8379}
8380
8381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8382pub struct InitiallyImmediateConstraintOption {
8383    pub(crate) syntax: SyntaxNode,
8384}
8385impl InitiallyImmediateConstraintOption {
8386    #[inline]
8387    pub fn immediate_token(&self) -> Option<SyntaxToken> {
8388        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
8389    }
8390    #[inline]
8391    pub fn initially_token(&self) -> Option<SyntaxToken> {
8392        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
8393    }
8394}
8395
8396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8397pub struct Insert {
8398    pub(crate) syntax: SyntaxNode,
8399}
8400impl Insert {
8401    #[inline]
8402    pub fn alias(&self) -> Option<Alias> {
8403        support::child(&self.syntax)
8404    }
8405    #[inline]
8406    pub fn column_list(&self) -> Option<ColumnList> {
8407        support::child(&self.syntax)
8408    }
8409    #[inline]
8410    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
8411        support::child(&self.syntax)
8412    }
8413    #[inline]
8414    pub fn path(&self) -> Option<Path> {
8415        support::child(&self.syntax)
8416    }
8417    #[inline]
8418    pub fn returning_clause(&self) -> Option<ReturningClause> {
8419        support::child(&self.syntax)
8420    }
8421    #[inline]
8422    pub fn stmt(&self) -> Option<Stmt> {
8423        support::child(&self.syntax)
8424    }
8425    #[inline]
8426    pub fn values(&self) -> Option<Values> {
8427        support::child(&self.syntax)
8428    }
8429    #[inline]
8430    pub fn with_clause(&self) -> Option<WithClause> {
8431        support::child(&self.syntax)
8432    }
8433    #[inline]
8434    pub fn default_token(&self) -> Option<SyntaxToken> {
8435        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8436    }
8437    #[inline]
8438    pub fn insert_token(&self) -> Option<SyntaxToken> {
8439        support::token(&self.syntax, SyntaxKind::INSERT_KW)
8440    }
8441    #[inline]
8442    pub fn into_token(&self) -> Option<SyntaxToken> {
8443        support::token(&self.syntax, SyntaxKind::INTO_KW)
8444    }
8445    #[inline]
8446    pub fn overriding_token(&self) -> Option<SyntaxToken> {
8447        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
8448    }
8449    #[inline]
8450    pub fn system_token(&self) -> Option<SyntaxToken> {
8451        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
8452    }
8453    #[inline]
8454    pub fn user_token(&self) -> Option<SyntaxToken> {
8455        support::token(&self.syntax, SyntaxKind::USER_KW)
8456    }
8457    #[inline]
8458    pub fn value_token(&self) -> Option<SyntaxToken> {
8459        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8460    }
8461    #[inline]
8462    pub fn values_token(&self) -> Option<SyntaxToken> {
8463        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8464    }
8465}
8466
8467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8468pub struct IntervalType {
8469    pub(crate) syntax: SyntaxNode,
8470}
8471impl IntervalType {
8472    #[inline]
8473    pub fn literal(&self) -> Option<Literal> {
8474        support::child(&self.syntax)
8475    }
8476    #[inline]
8477    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8478        support::token(&self.syntax, SyntaxKind::L_PAREN)
8479    }
8480    #[inline]
8481    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8482        support::token(&self.syntax, SyntaxKind::R_PAREN)
8483    }
8484    #[inline]
8485    pub fn day_token(&self) -> Option<SyntaxToken> {
8486        support::token(&self.syntax, SyntaxKind::DAY_KW)
8487    }
8488    #[inline]
8489    pub fn hour_token(&self) -> Option<SyntaxToken> {
8490        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8491    }
8492    #[inline]
8493    pub fn interval_token(&self) -> Option<SyntaxToken> {
8494        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
8495    }
8496    #[inline]
8497    pub fn minute_token(&self) -> Option<SyntaxToken> {
8498        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8499    }
8500    #[inline]
8501    pub fn month_token(&self) -> Option<SyntaxToken> {
8502        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8503    }
8504    #[inline]
8505    pub fn second_token(&self) -> Option<SyntaxToken> {
8506        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8507    }
8508    #[inline]
8509    pub fn to_token(&self) -> Option<SyntaxToken> {
8510        support::token(&self.syntax, SyntaxKind::TO_KW)
8511    }
8512    #[inline]
8513    pub fn year_token(&self) -> Option<SyntaxToken> {
8514        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8515    }
8516}
8517
8518#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8519pub struct IntoClause {
8520    pub(crate) syntax: SyntaxNode,
8521}
8522impl IntoClause {
8523    #[inline]
8524    pub fn path(&self) -> Option<Path> {
8525        support::child(&self.syntax)
8526    }
8527    #[inline]
8528    pub fn into_token(&self) -> Option<SyntaxToken> {
8529        support::token(&self.syntax, SyntaxKind::INTO_KW)
8530    }
8531}
8532
8533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8534pub struct IntoSchema {
8535    pub(crate) syntax: SyntaxNode,
8536}
8537impl IntoSchema {
8538    #[inline]
8539    pub fn name_ref(&self) -> Option<NameRef> {
8540        support::child(&self.syntax)
8541    }
8542    #[inline]
8543    pub fn into_token(&self) -> Option<SyntaxToken> {
8544        support::token(&self.syntax, SyntaxKind::INTO_KW)
8545    }
8546}
8547
8548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8549pub struct IsDistinctFrom {
8550    pub(crate) syntax: SyntaxNode,
8551}
8552impl IsDistinctFrom {
8553    #[inline]
8554    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8555        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8556    }
8557    #[inline]
8558    pub fn from_token(&self) -> Option<SyntaxToken> {
8559        support::token(&self.syntax, SyntaxKind::FROM_KW)
8560    }
8561    #[inline]
8562    pub fn is_token(&self) -> Option<SyntaxToken> {
8563        support::token(&self.syntax, SyntaxKind::IS_KW)
8564    }
8565}
8566
8567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8568pub struct IsJson {
8569    pub(crate) syntax: SyntaxNode,
8570}
8571impl IsJson {
8572    #[inline]
8573    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8574        support::child(&self.syntax)
8575    }
8576    #[inline]
8577    pub fn is_token(&self) -> Option<SyntaxToken> {
8578        support::token(&self.syntax, SyntaxKind::IS_KW)
8579    }
8580    #[inline]
8581    pub fn json_token(&self) -> Option<SyntaxToken> {
8582        support::token(&self.syntax, SyntaxKind::JSON_KW)
8583    }
8584}
8585
8586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8587pub struct IsJsonArray {
8588    pub(crate) syntax: SyntaxNode,
8589}
8590impl IsJsonArray {
8591    #[inline]
8592    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8593        support::child(&self.syntax)
8594    }
8595    #[inline]
8596    pub fn array_token(&self) -> Option<SyntaxToken> {
8597        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8598    }
8599    #[inline]
8600    pub fn is_token(&self) -> Option<SyntaxToken> {
8601        support::token(&self.syntax, SyntaxKind::IS_KW)
8602    }
8603    #[inline]
8604    pub fn json_token(&self) -> Option<SyntaxToken> {
8605        support::token(&self.syntax, SyntaxKind::JSON_KW)
8606    }
8607}
8608
8609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8610pub struct IsJsonObject {
8611    pub(crate) syntax: SyntaxNode,
8612}
8613impl IsJsonObject {
8614    #[inline]
8615    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8616        support::child(&self.syntax)
8617    }
8618    #[inline]
8619    pub fn is_token(&self) -> Option<SyntaxToken> {
8620        support::token(&self.syntax, SyntaxKind::IS_KW)
8621    }
8622    #[inline]
8623    pub fn json_token(&self) -> Option<SyntaxToken> {
8624        support::token(&self.syntax, SyntaxKind::JSON_KW)
8625    }
8626    #[inline]
8627    pub fn object_token(&self) -> Option<SyntaxToken> {
8628        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8629    }
8630}
8631
8632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8633pub struct IsJsonScalar {
8634    pub(crate) syntax: SyntaxNode,
8635}
8636impl IsJsonScalar {
8637    #[inline]
8638    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8639        support::child(&self.syntax)
8640    }
8641    #[inline]
8642    pub fn is_token(&self) -> Option<SyntaxToken> {
8643        support::token(&self.syntax, SyntaxKind::IS_KW)
8644    }
8645    #[inline]
8646    pub fn json_token(&self) -> Option<SyntaxToken> {
8647        support::token(&self.syntax, SyntaxKind::JSON_KW)
8648    }
8649    #[inline]
8650    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8651        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8652    }
8653}
8654
8655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8656pub struct IsJsonValue {
8657    pub(crate) syntax: SyntaxNode,
8658}
8659impl IsJsonValue {
8660    #[inline]
8661    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8662        support::child(&self.syntax)
8663    }
8664    #[inline]
8665    pub fn is_token(&self) -> Option<SyntaxToken> {
8666        support::token(&self.syntax, SyntaxKind::IS_KW)
8667    }
8668    #[inline]
8669    pub fn json_token(&self) -> Option<SyntaxToken> {
8670        support::token(&self.syntax, SyntaxKind::JSON_KW)
8671    }
8672    #[inline]
8673    pub fn value_token(&self) -> Option<SyntaxToken> {
8674        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8675    }
8676}
8677
8678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8679pub struct IsNormalized {
8680    pub(crate) syntax: SyntaxNode,
8681}
8682impl IsNormalized {
8683    #[inline]
8684    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8685        support::child(&self.syntax)
8686    }
8687    #[inline]
8688    pub fn is_token(&self) -> Option<SyntaxToken> {
8689        support::token(&self.syntax, SyntaxKind::IS_KW)
8690    }
8691    #[inline]
8692    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8693        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8694    }
8695}
8696
8697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8698pub struct IsNot {
8699    pub(crate) syntax: SyntaxNode,
8700}
8701impl IsNot {
8702    #[inline]
8703    pub fn is_token(&self) -> Option<SyntaxToken> {
8704        support::token(&self.syntax, SyntaxKind::IS_KW)
8705    }
8706    #[inline]
8707    pub fn not_token(&self) -> Option<SyntaxToken> {
8708        support::token(&self.syntax, SyntaxKind::NOT_KW)
8709    }
8710}
8711
8712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8713pub struct IsNotDistinctFrom {
8714    pub(crate) syntax: SyntaxNode,
8715}
8716impl IsNotDistinctFrom {
8717    #[inline]
8718    pub fn distinct_token(&self) -> Option<SyntaxToken> {
8719        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
8720    }
8721    #[inline]
8722    pub fn from_token(&self) -> Option<SyntaxToken> {
8723        support::token(&self.syntax, SyntaxKind::FROM_KW)
8724    }
8725    #[inline]
8726    pub fn is_token(&self) -> Option<SyntaxToken> {
8727        support::token(&self.syntax, SyntaxKind::IS_KW)
8728    }
8729    #[inline]
8730    pub fn not_token(&self) -> Option<SyntaxToken> {
8731        support::token(&self.syntax, SyntaxKind::NOT_KW)
8732    }
8733}
8734
8735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8736pub struct IsNotJson {
8737    pub(crate) syntax: SyntaxNode,
8738}
8739impl IsNotJson {
8740    #[inline]
8741    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8742        support::child(&self.syntax)
8743    }
8744    #[inline]
8745    pub fn is_token(&self) -> Option<SyntaxToken> {
8746        support::token(&self.syntax, SyntaxKind::IS_KW)
8747    }
8748    #[inline]
8749    pub fn json_token(&self) -> Option<SyntaxToken> {
8750        support::token(&self.syntax, SyntaxKind::JSON_KW)
8751    }
8752    #[inline]
8753    pub fn not_token(&self) -> Option<SyntaxToken> {
8754        support::token(&self.syntax, SyntaxKind::NOT_KW)
8755    }
8756}
8757
8758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8759pub struct IsNotJsonArray {
8760    pub(crate) syntax: SyntaxNode,
8761}
8762impl IsNotJsonArray {
8763    #[inline]
8764    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8765        support::child(&self.syntax)
8766    }
8767    #[inline]
8768    pub fn array_token(&self) -> Option<SyntaxToken> {
8769        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
8770    }
8771    #[inline]
8772    pub fn is_token(&self) -> Option<SyntaxToken> {
8773        support::token(&self.syntax, SyntaxKind::IS_KW)
8774    }
8775    #[inline]
8776    pub fn json_token(&self) -> Option<SyntaxToken> {
8777        support::token(&self.syntax, SyntaxKind::JSON_KW)
8778    }
8779    #[inline]
8780    pub fn not_token(&self) -> Option<SyntaxToken> {
8781        support::token(&self.syntax, SyntaxKind::NOT_KW)
8782    }
8783}
8784
8785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8786pub struct IsNotJsonObject {
8787    pub(crate) syntax: SyntaxNode,
8788}
8789impl IsNotJsonObject {
8790    #[inline]
8791    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8792        support::child(&self.syntax)
8793    }
8794    #[inline]
8795    pub fn is_token(&self) -> Option<SyntaxToken> {
8796        support::token(&self.syntax, SyntaxKind::IS_KW)
8797    }
8798    #[inline]
8799    pub fn json_token(&self) -> Option<SyntaxToken> {
8800        support::token(&self.syntax, SyntaxKind::JSON_KW)
8801    }
8802    #[inline]
8803    pub fn not_token(&self) -> Option<SyntaxToken> {
8804        support::token(&self.syntax, SyntaxKind::NOT_KW)
8805    }
8806    #[inline]
8807    pub fn object_token(&self) -> Option<SyntaxToken> {
8808        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
8809    }
8810}
8811
8812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8813pub struct IsNotJsonScalar {
8814    pub(crate) syntax: SyntaxNode,
8815}
8816impl IsNotJsonScalar {
8817    #[inline]
8818    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8819        support::child(&self.syntax)
8820    }
8821    #[inline]
8822    pub fn is_token(&self) -> Option<SyntaxToken> {
8823        support::token(&self.syntax, SyntaxKind::IS_KW)
8824    }
8825    #[inline]
8826    pub fn json_token(&self) -> Option<SyntaxToken> {
8827        support::token(&self.syntax, SyntaxKind::JSON_KW)
8828    }
8829    #[inline]
8830    pub fn not_token(&self) -> Option<SyntaxToken> {
8831        support::token(&self.syntax, SyntaxKind::NOT_KW)
8832    }
8833    #[inline]
8834    pub fn scalar_token(&self) -> Option<SyntaxToken> {
8835        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
8836    }
8837}
8838
8839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8840pub struct IsNotJsonValue {
8841    pub(crate) syntax: SyntaxNode,
8842}
8843impl IsNotJsonValue {
8844    #[inline]
8845    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
8846        support::child(&self.syntax)
8847    }
8848    #[inline]
8849    pub fn is_token(&self) -> Option<SyntaxToken> {
8850        support::token(&self.syntax, SyntaxKind::IS_KW)
8851    }
8852    #[inline]
8853    pub fn json_token(&self) -> Option<SyntaxToken> {
8854        support::token(&self.syntax, SyntaxKind::JSON_KW)
8855    }
8856    #[inline]
8857    pub fn not_token(&self) -> Option<SyntaxToken> {
8858        support::token(&self.syntax, SyntaxKind::NOT_KW)
8859    }
8860    #[inline]
8861    pub fn value_token(&self) -> Option<SyntaxToken> {
8862        support::token(&self.syntax, SyntaxKind::VALUE_KW)
8863    }
8864}
8865
8866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8867pub struct IsNotNormalized {
8868    pub(crate) syntax: SyntaxNode,
8869}
8870impl IsNotNormalized {
8871    #[inline]
8872    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
8873        support::child(&self.syntax)
8874    }
8875    #[inline]
8876    pub fn is_token(&self) -> Option<SyntaxToken> {
8877        support::token(&self.syntax, SyntaxKind::IS_KW)
8878    }
8879    #[inline]
8880    pub fn normalized_token(&self) -> Option<SyntaxToken> {
8881        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
8882    }
8883    #[inline]
8884    pub fn not_token(&self) -> Option<SyntaxToken> {
8885        support::token(&self.syntax, SyntaxKind::NOT_KW)
8886    }
8887}
8888
8889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8890pub struct Join {
8891    pub(crate) syntax: SyntaxNode,
8892}
8893impl Join {
8894    #[inline]
8895    pub fn from_item(&self) -> Option<FromItem> {
8896        support::child(&self.syntax)
8897    }
8898    #[inline]
8899    pub fn join_type(&self) -> Option<JoinType> {
8900        support::child(&self.syntax)
8901    }
8902    #[inline]
8903    pub fn on_clause(&self) -> Option<OnClause> {
8904        support::child(&self.syntax)
8905    }
8906    #[inline]
8907    pub fn using_clause(&self) -> Option<JoinUsingClause> {
8908        support::child(&self.syntax)
8909    }
8910    #[inline]
8911    pub fn natural_token(&self) -> Option<SyntaxToken> {
8912        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
8913    }
8914}
8915
8916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8917pub struct JoinCross {
8918    pub(crate) syntax: SyntaxNode,
8919}
8920impl JoinCross {
8921    #[inline]
8922    pub fn cross_token(&self) -> Option<SyntaxToken> {
8923        support::token(&self.syntax, SyntaxKind::CROSS_KW)
8924    }
8925    #[inline]
8926    pub fn join_token(&self) -> Option<SyntaxToken> {
8927        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8928    }
8929}
8930
8931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8932pub struct JoinExpr {
8933    pub(crate) syntax: SyntaxNode,
8934}
8935impl JoinExpr {
8936    #[inline]
8937    pub fn from_item(&self) -> Option<FromItem> {
8938        support::child(&self.syntax)
8939    }
8940    #[inline]
8941    pub fn join(&self) -> Option<Join> {
8942        support::child(&self.syntax)
8943    }
8944    #[inline]
8945    pub fn join_expr(&self) -> Option<JoinExpr> {
8946        support::child(&self.syntax)
8947    }
8948}
8949
8950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8951pub struct JoinFull {
8952    pub(crate) syntax: SyntaxNode,
8953}
8954impl JoinFull {
8955    #[inline]
8956    pub fn full_token(&self) -> Option<SyntaxToken> {
8957        support::token(&self.syntax, SyntaxKind::FULL_KW)
8958    }
8959    #[inline]
8960    pub fn join_token(&self) -> Option<SyntaxToken> {
8961        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8962    }
8963    #[inline]
8964    pub fn outer_token(&self) -> Option<SyntaxToken> {
8965        support::token(&self.syntax, SyntaxKind::OUTER_KW)
8966    }
8967}
8968
8969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8970pub struct JoinInner {
8971    pub(crate) syntax: SyntaxNode,
8972}
8973impl JoinInner {
8974    #[inline]
8975    pub fn inner_token(&self) -> Option<SyntaxToken> {
8976        support::token(&self.syntax, SyntaxKind::INNER_KW)
8977    }
8978    #[inline]
8979    pub fn join_token(&self) -> Option<SyntaxToken> {
8980        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8981    }
8982}
8983
8984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8985pub struct JoinLeft {
8986    pub(crate) syntax: SyntaxNode,
8987}
8988impl JoinLeft {
8989    #[inline]
8990    pub fn join_token(&self) -> Option<SyntaxToken> {
8991        support::token(&self.syntax, SyntaxKind::JOIN_KW)
8992    }
8993    #[inline]
8994    pub fn left_token(&self) -> Option<SyntaxToken> {
8995        support::token(&self.syntax, SyntaxKind::LEFT_KW)
8996    }
8997    #[inline]
8998    pub fn outer_token(&self) -> Option<SyntaxToken> {
8999        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9000    }
9001}
9002
9003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9004pub struct JoinRight {
9005    pub(crate) syntax: SyntaxNode,
9006}
9007impl JoinRight {
9008    #[inline]
9009    pub fn join_token(&self) -> Option<SyntaxToken> {
9010        support::token(&self.syntax, SyntaxKind::JOIN_KW)
9011    }
9012    #[inline]
9013    pub fn outer_token(&self) -> Option<SyntaxToken> {
9014        support::token(&self.syntax, SyntaxKind::OUTER_KW)
9015    }
9016    #[inline]
9017    pub fn right_token(&self) -> Option<SyntaxToken> {
9018        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
9019    }
9020}
9021
9022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9023pub struct JoinUsingClause {
9024    pub(crate) syntax: SyntaxNode,
9025}
9026impl JoinUsingClause {
9027    #[inline]
9028    pub fn alias(&self) -> Option<Alias> {
9029        support::child(&self.syntax)
9030    }
9031    #[inline]
9032    pub fn column_list(&self) -> Option<ColumnList> {
9033        support::child(&self.syntax)
9034    }
9035    #[inline]
9036    pub fn using_token(&self) -> Option<SyntaxToken> {
9037        support::token(&self.syntax, SyntaxKind::USING_KW)
9038    }
9039}
9040
9041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9042pub struct JsonArrayAggFn {
9043    pub(crate) syntax: SyntaxNode,
9044}
9045impl JsonArrayAggFn {
9046    #[inline]
9047    pub fn expr(&self) -> Option<Expr> {
9048        support::child(&self.syntax)
9049    }
9050    #[inline]
9051    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9052        support::child(&self.syntax)
9053    }
9054    #[inline]
9055    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9056        support::child(&self.syntax)
9057    }
9058    #[inline]
9059    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9060        support::children(&self.syntax)
9061    }
9062    #[inline]
9063    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9064        support::token(&self.syntax, SyntaxKind::L_PAREN)
9065    }
9066    #[inline]
9067    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9068        support::token(&self.syntax, SyntaxKind::R_PAREN)
9069    }
9070    #[inline]
9071    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
9072        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
9073    }
9074}
9075
9076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9077pub struct JsonArrayFn {
9078    pub(crate) syntax: SyntaxNode,
9079}
9080impl JsonArrayFn {
9081    #[inline]
9082    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
9083        support::children(&self.syntax)
9084    }
9085    #[inline]
9086    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9087        support::child(&self.syntax)
9088    }
9089    #[inline]
9090    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9091        support::child(&self.syntax)
9092    }
9093    #[inline]
9094    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
9095        support::children(&self.syntax)
9096    }
9097    #[inline]
9098    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9099        support::token(&self.syntax, SyntaxKind::L_PAREN)
9100    }
9101    #[inline]
9102    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9103        support::token(&self.syntax, SyntaxKind::R_PAREN)
9104    }
9105    #[inline]
9106    pub fn json_array_token(&self) -> Option<SyntaxToken> {
9107        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
9108    }
9109}
9110
9111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9112pub struct JsonBehaviorClause {
9113    pub(crate) syntax: SyntaxNode,
9114}
9115impl JsonBehaviorClause {
9116    #[inline]
9117    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9118        support::child(&self.syntax)
9119    }
9120}
9121
9122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9123pub struct JsonBehaviorDefault {
9124    pub(crate) syntax: SyntaxNode,
9125}
9126impl JsonBehaviorDefault {
9127    #[inline]
9128    pub fn expr(&self) -> Option<Expr> {
9129        support::child(&self.syntax)
9130    }
9131    #[inline]
9132    pub fn default_token(&self) -> Option<SyntaxToken> {
9133        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9134    }
9135}
9136
9137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9138pub struct JsonBehaviorEmptyArray {
9139    pub(crate) syntax: SyntaxNode,
9140}
9141impl JsonBehaviorEmptyArray {
9142    #[inline]
9143    pub fn array_token(&self) -> Option<SyntaxToken> {
9144        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9145    }
9146    #[inline]
9147    pub fn empty_token(&self) -> Option<SyntaxToken> {
9148        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9149    }
9150}
9151
9152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9153pub struct JsonBehaviorEmptyObject {
9154    pub(crate) syntax: SyntaxNode,
9155}
9156impl JsonBehaviorEmptyObject {
9157    #[inline]
9158    pub fn empty_token(&self) -> Option<SyntaxToken> {
9159        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9160    }
9161    #[inline]
9162    pub fn object_token(&self) -> Option<SyntaxToken> {
9163        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9164    }
9165}
9166
9167#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9168pub struct JsonBehaviorError {
9169    pub(crate) syntax: SyntaxNode,
9170}
9171impl JsonBehaviorError {
9172    #[inline]
9173    pub fn error_token(&self) -> Option<SyntaxToken> {
9174        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9175    }
9176}
9177
9178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9179pub struct JsonBehaviorFalse {
9180    pub(crate) syntax: SyntaxNode,
9181}
9182impl JsonBehaviorFalse {
9183    #[inline]
9184    pub fn false_token(&self) -> Option<SyntaxToken> {
9185        support::token(&self.syntax, SyntaxKind::FALSE_KW)
9186    }
9187}
9188
9189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9190pub struct JsonBehaviorNull {
9191    pub(crate) syntax: SyntaxNode,
9192}
9193impl JsonBehaviorNull {
9194    #[inline]
9195    pub fn null_token(&self) -> Option<SyntaxToken> {
9196        support::token(&self.syntax, SyntaxKind::NULL_KW)
9197    }
9198}
9199
9200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9201pub struct JsonBehaviorTrue {
9202    pub(crate) syntax: SyntaxNode,
9203}
9204impl JsonBehaviorTrue {
9205    #[inline]
9206    pub fn true_token(&self) -> Option<SyntaxToken> {
9207        support::token(&self.syntax, SyntaxKind::TRUE_KW)
9208    }
9209}
9210
9211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9212pub struct JsonBehaviorUnknown {
9213    pub(crate) syntax: SyntaxNode,
9214}
9215impl JsonBehaviorUnknown {
9216    #[inline]
9217    pub fn unknown_token(&self) -> Option<SyntaxToken> {
9218        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
9219    }
9220}
9221
9222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9223pub struct JsonEncodingClause {
9224    pub(crate) syntax: SyntaxNode,
9225}
9226impl JsonEncodingClause {
9227    #[inline]
9228    pub fn name_ref(&self) -> Option<NameRef> {
9229        support::child(&self.syntax)
9230    }
9231    #[inline]
9232    pub fn encoding_token(&self) -> Option<SyntaxToken> {
9233        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
9234    }
9235}
9236
9237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9238pub struct JsonExistsFn {
9239    pub(crate) syntax: SyntaxNode,
9240}
9241impl JsonExistsFn {
9242    #[inline]
9243    pub fn expr(&self) -> Option<Expr> {
9244        support::child(&self.syntax)
9245    }
9246    #[inline]
9247    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9248        support::child(&self.syntax)
9249    }
9250    #[inline]
9251    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9252        support::child(&self.syntax)
9253    }
9254    #[inline]
9255    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9256        support::child(&self.syntax)
9257    }
9258    #[inline]
9259    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9260        support::token(&self.syntax, SyntaxKind::L_PAREN)
9261    }
9262    #[inline]
9263    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9264        support::token(&self.syntax, SyntaxKind::R_PAREN)
9265    }
9266    #[inline]
9267    pub fn comma_token(&self) -> Option<SyntaxToken> {
9268        support::token(&self.syntax, SyntaxKind::COMMA)
9269    }
9270    #[inline]
9271    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
9272        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
9273    }
9274}
9275
9276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9277pub struct JsonExprFormat {
9278    pub(crate) syntax: SyntaxNode,
9279}
9280impl JsonExprFormat {
9281    #[inline]
9282    pub fn expr(&self) -> Option<Expr> {
9283        support::child(&self.syntax)
9284    }
9285    #[inline]
9286    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9287        support::child(&self.syntax)
9288    }
9289}
9290
9291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9292pub struct JsonFn {
9293    pub(crate) syntax: SyntaxNode,
9294}
9295impl JsonFn {
9296    #[inline]
9297    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
9298        support::child(&self.syntax)
9299    }
9300    #[inline]
9301    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9302        support::child(&self.syntax)
9303    }
9304    #[inline]
9305    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9306        support::token(&self.syntax, SyntaxKind::L_PAREN)
9307    }
9308    #[inline]
9309    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9310        support::token(&self.syntax, SyntaxKind::R_PAREN)
9311    }
9312    #[inline]
9313    pub fn json_token(&self) -> Option<SyntaxToken> {
9314        support::token(&self.syntax, SyntaxKind::JSON_KW)
9315    }
9316}
9317
9318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9319pub struct JsonFormatClause {
9320    pub(crate) syntax: SyntaxNode,
9321}
9322impl JsonFormatClause {
9323    #[inline]
9324    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
9325        support::child(&self.syntax)
9326    }
9327    #[inline]
9328    pub fn format_token(&self) -> Option<SyntaxToken> {
9329        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
9330    }
9331    #[inline]
9332    pub fn json_token(&self) -> Option<SyntaxToken> {
9333        support::token(&self.syntax, SyntaxKind::JSON_KW)
9334    }
9335}
9336
9337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9338pub struct JsonKeyValue {
9339    pub(crate) syntax: SyntaxNode,
9340}
9341impl JsonKeyValue {
9342    #[inline]
9343    pub fn expr(&self) -> Option<Expr> {
9344        support::child(&self.syntax)
9345    }
9346    #[inline]
9347    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
9348        support::child(&self.syntax)
9349    }
9350    #[inline]
9351    pub fn colon_token(&self) -> Option<SyntaxToken> {
9352        support::token(&self.syntax, SyntaxKind::COLON)
9353    }
9354}
9355
9356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9357pub struct JsonKeysUniqueClause {
9358    pub(crate) syntax: SyntaxNode,
9359}
9360impl JsonKeysUniqueClause {
9361    #[inline]
9362    pub fn keys_token(&self) -> Option<SyntaxToken> {
9363        support::token(&self.syntax, SyntaxKind::KEYS_KW)
9364    }
9365    #[inline]
9366    pub fn unique_token(&self) -> Option<SyntaxToken> {
9367        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9368    }
9369    #[inline]
9370    pub fn with_token(&self) -> Option<SyntaxToken> {
9371        support::token(&self.syntax, SyntaxKind::WITH_KW)
9372    }
9373    #[inline]
9374    pub fn without_token(&self) -> Option<SyntaxToken> {
9375        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9376    }
9377}
9378
9379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9380pub struct JsonNullClause {
9381    pub(crate) syntax: SyntaxNode,
9382}
9383impl JsonNullClause {
9384    #[inline]
9385    pub fn absent_token(&self) -> Option<SyntaxToken> {
9386        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
9387    }
9388    #[inline]
9389    pub fn null_token(&self) -> Option<SyntaxToken> {
9390        support::token(&self.syntax, SyntaxKind::NULL_KW)
9391    }
9392    #[inline]
9393    pub fn on_token(&self) -> Option<SyntaxToken> {
9394        support::token(&self.syntax, SyntaxKind::ON_KW)
9395    }
9396}
9397
9398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9399pub struct JsonObjectAggFn {
9400    pub(crate) syntax: SyntaxNode,
9401}
9402impl JsonObjectAggFn {
9403    #[inline]
9404    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
9405        support::child(&self.syntax)
9406    }
9407    #[inline]
9408    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9409        support::child(&self.syntax)
9410    }
9411    #[inline]
9412    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9413        support::child(&self.syntax)
9414    }
9415    #[inline]
9416    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9417        support::child(&self.syntax)
9418    }
9419    #[inline]
9420    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9421        support::token(&self.syntax, SyntaxKind::L_PAREN)
9422    }
9423    #[inline]
9424    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9425        support::token(&self.syntax, SyntaxKind::R_PAREN)
9426    }
9427    #[inline]
9428    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
9429        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
9430    }
9431}
9432
9433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9434pub struct JsonObjectFn {
9435    pub(crate) syntax: SyntaxNode,
9436}
9437impl JsonObjectFn {
9438    #[inline]
9439    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
9440        support::children(&self.syntax)
9441    }
9442    #[inline]
9443    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9444        support::child(&self.syntax)
9445    }
9446    #[inline]
9447    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
9448        support::child(&self.syntax)
9449    }
9450    #[inline]
9451    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9452        support::child(&self.syntax)
9453    }
9454    #[inline]
9455    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9456        support::token(&self.syntax, SyntaxKind::L_PAREN)
9457    }
9458    #[inline]
9459    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9460        support::token(&self.syntax, SyntaxKind::R_PAREN)
9461    }
9462    #[inline]
9463    pub fn json_object_token(&self) -> Option<SyntaxToken> {
9464        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
9465    }
9466}
9467
9468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9469pub struct JsonOnEmptyClause {
9470    pub(crate) syntax: SyntaxNode,
9471}
9472impl JsonOnEmptyClause {
9473    #[inline]
9474    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9475        support::child(&self.syntax)
9476    }
9477    #[inline]
9478    pub fn empty_token(&self) -> Option<SyntaxToken> {
9479        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
9480    }
9481    #[inline]
9482    pub fn on_token(&self) -> Option<SyntaxToken> {
9483        support::token(&self.syntax, SyntaxKind::ON_KW)
9484    }
9485}
9486
9487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9488pub struct JsonOnErrorClause {
9489    pub(crate) syntax: SyntaxNode,
9490}
9491impl JsonOnErrorClause {
9492    #[inline]
9493    pub fn json_behavior(&self) -> Option<JsonBehavior> {
9494        support::child(&self.syntax)
9495    }
9496    #[inline]
9497    pub fn error_token(&self) -> Option<SyntaxToken> {
9498        support::token(&self.syntax, SyntaxKind::ERROR_KW)
9499    }
9500    #[inline]
9501    pub fn on_token(&self) -> Option<SyntaxToken> {
9502        support::token(&self.syntax, SyntaxKind::ON_KW)
9503    }
9504}
9505
9506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9507pub struct JsonPassingArg {
9508    pub(crate) syntax: SyntaxNode,
9509}
9510impl JsonPassingArg {
9511    #[inline]
9512    pub fn expr(&self) -> Option<Expr> {
9513        support::child(&self.syntax)
9514    }
9515}
9516
9517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9518pub struct JsonPassingClause {
9519    pub(crate) syntax: SyntaxNode,
9520}
9521impl JsonPassingClause {
9522    #[inline]
9523    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
9524        support::children(&self.syntax)
9525    }
9526    #[inline]
9527    pub fn passing_token(&self) -> Option<SyntaxToken> {
9528        support::token(&self.syntax, SyntaxKind::PASSING_KW)
9529    }
9530}
9531
9532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9533pub struct JsonPathClause {
9534    pub(crate) syntax: SyntaxNode,
9535}
9536impl JsonPathClause {
9537    #[inline]
9538    pub fn expr(&self) -> Option<Expr> {
9539        support::child(&self.syntax)
9540    }
9541    #[inline]
9542    pub fn path_token(&self) -> Option<SyntaxToken> {
9543        support::token(&self.syntax, SyntaxKind::PATH_KW)
9544    }
9545}
9546
9547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9548pub struct JsonQueryFn {
9549    pub(crate) syntax: SyntaxNode,
9550}
9551impl JsonQueryFn {
9552    #[inline]
9553    pub fn expr(&self) -> Option<Expr> {
9554        support::child(&self.syntax)
9555    }
9556    #[inline]
9557    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9558        support::child(&self.syntax)
9559    }
9560    #[inline]
9561    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9562        support::child(&self.syntax)
9563    }
9564    #[inline]
9565    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9566        support::child(&self.syntax)
9567    }
9568    #[inline]
9569    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9570        support::child(&self.syntax)
9571    }
9572    #[inline]
9573    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9574        support::child(&self.syntax)
9575    }
9576    #[inline]
9577    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9578        support::child(&self.syntax)
9579    }
9580    #[inline]
9581    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9582        support::token(&self.syntax, SyntaxKind::L_PAREN)
9583    }
9584    #[inline]
9585    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9586        support::token(&self.syntax, SyntaxKind::R_PAREN)
9587    }
9588    #[inline]
9589    pub fn comma_token(&self) -> Option<SyntaxToken> {
9590        support::token(&self.syntax, SyntaxKind::COMMA)
9591    }
9592    #[inline]
9593    pub fn json_query_token(&self) -> Option<SyntaxToken> {
9594        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
9595    }
9596}
9597
9598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9599pub struct JsonQuotesClause {
9600    pub(crate) syntax: SyntaxNode,
9601}
9602impl JsonQuotesClause {
9603    #[inline]
9604    pub fn keep_token(&self) -> Option<SyntaxToken> {
9605        support::token(&self.syntax, SyntaxKind::KEEP_KW)
9606    }
9607    #[inline]
9608    pub fn omit_token(&self) -> Option<SyntaxToken> {
9609        support::token(&self.syntax, SyntaxKind::OMIT_KW)
9610    }
9611    #[inline]
9612    pub fn quotes_token(&self) -> Option<SyntaxToken> {
9613        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
9614    }
9615}
9616
9617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9618pub struct JsonReturningClause {
9619    pub(crate) syntax: SyntaxNode,
9620}
9621impl JsonReturningClause {
9622    #[inline]
9623    pub fn ty(&self) -> Option<Type> {
9624        support::child(&self.syntax)
9625    }
9626    #[inline]
9627    pub fn returning_token(&self) -> Option<SyntaxToken> {
9628        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9629    }
9630}
9631
9632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9633pub struct JsonScalarFn {
9634    pub(crate) syntax: SyntaxNode,
9635}
9636impl JsonScalarFn {
9637    #[inline]
9638    pub fn expr(&self) -> Option<Expr> {
9639        support::child(&self.syntax)
9640    }
9641    #[inline]
9642    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9643        support::token(&self.syntax, SyntaxKind::L_PAREN)
9644    }
9645    #[inline]
9646    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9647        support::token(&self.syntax, SyntaxKind::R_PAREN)
9648    }
9649    #[inline]
9650    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
9651        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
9652    }
9653}
9654
9655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9656pub struct JsonSelectFormat {
9657    pub(crate) syntax: SyntaxNode,
9658}
9659impl JsonSelectFormat {
9660    #[inline]
9661    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9662        support::child(&self.syntax)
9663    }
9664    #[inline]
9665    pub fn select_variant(&self) -> Option<SelectVariant> {
9666        support::child(&self.syntax)
9667    }
9668}
9669
9670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9671pub struct JsonSerializeFn {
9672    pub(crate) syntax: SyntaxNode,
9673}
9674impl JsonSerializeFn {
9675    #[inline]
9676    pub fn expr(&self) -> Option<Expr> {
9677        support::child(&self.syntax)
9678    }
9679    #[inline]
9680    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9681        support::child(&self.syntax)
9682    }
9683    #[inline]
9684    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9685        support::child(&self.syntax)
9686    }
9687    #[inline]
9688    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9689        support::token(&self.syntax, SyntaxKind::L_PAREN)
9690    }
9691    #[inline]
9692    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9693        support::token(&self.syntax, SyntaxKind::R_PAREN)
9694    }
9695    #[inline]
9696    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
9697        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
9698    }
9699}
9700
9701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9702pub struct JsonTable {
9703    pub(crate) syntax: SyntaxNode,
9704}
9705impl JsonTable {
9706    #[inline]
9707    pub fn expr(&self) -> Option<Expr> {
9708        support::child(&self.syntax)
9709    }
9710    #[inline]
9711    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9712        support::child(&self.syntax)
9713    }
9714    #[inline]
9715    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9716        support::child(&self.syntax)
9717    }
9718    #[inline]
9719    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9720        support::child(&self.syntax)
9721    }
9722    #[inline]
9723    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9724        support::child(&self.syntax)
9725    }
9726    #[inline]
9727    pub fn name(&self) -> Option<Name> {
9728        support::child(&self.syntax)
9729    }
9730    #[inline]
9731    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9732        support::token(&self.syntax, SyntaxKind::L_PAREN)
9733    }
9734    #[inline]
9735    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9736        support::token(&self.syntax, SyntaxKind::R_PAREN)
9737    }
9738    #[inline]
9739    pub fn comma_token(&self) -> Option<SyntaxToken> {
9740        support::token(&self.syntax, SyntaxKind::COMMA)
9741    }
9742    #[inline]
9743    pub fn as_token(&self) -> Option<SyntaxToken> {
9744        support::token(&self.syntax, SyntaxKind::AS_KW)
9745    }
9746    #[inline]
9747    pub fn json_table_token(&self) -> Option<SyntaxToken> {
9748        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
9749    }
9750}
9751
9752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9753pub struct JsonTableColumn {
9754    pub(crate) syntax: SyntaxNode,
9755}
9756impl JsonTableColumn {
9757    #[inline]
9758    pub fn expr(&self) -> Option<Expr> {
9759        support::child(&self.syntax)
9760    }
9761    #[inline]
9762    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9763        support::child(&self.syntax)
9764    }
9765    #[inline]
9766    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
9767        support::child(&self.syntax)
9768    }
9769    #[inline]
9770    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
9771        support::child(&self.syntax)
9772    }
9773    #[inline]
9774    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
9775        support::child(&self.syntax)
9776    }
9777    #[inline]
9778    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
9779        support::child(&self.syntax)
9780    }
9781    #[inline]
9782    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
9783        support::child(&self.syntax)
9784    }
9785    #[inline]
9786    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
9787        support::child(&self.syntax)
9788    }
9789    #[inline]
9790    pub fn name(&self) -> Option<Name> {
9791        support::child(&self.syntax)
9792    }
9793    #[inline]
9794    pub fn ty(&self) -> Option<Type> {
9795        support::child(&self.syntax)
9796    }
9797    #[inline]
9798    pub fn as_token(&self) -> Option<SyntaxToken> {
9799        support::token(&self.syntax, SyntaxKind::AS_KW)
9800    }
9801    #[inline]
9802    pub fn exists_token(&self) -> Option<SyntaxToken> {
9803        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9804    }
9805    #[inline]
9806    pub fn for_token(&self) -> Option<SyntaxToken> {
9807        support::token(&self.syntax, SyntaxKind::FOR_KW)
9808    }
9809    #[inline]
9810    pub fn nested_token(&self) -> Option<SyntaxToken> {
9811        support::token(&self.syntax, SyntaxKind::NESTED_KW)
9812    }
9813    #[inline]
9814    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9815        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9816    }
9817    #[inline]
9818    pub fn path_token(&self) -> Option<SyntaxToken> {
9819        support::token(&self.syntax, SyntaxKind::PATH_KW)
9820    }
9821}
9822
9823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9824pub struct JsonTableColumnList {
9825    pub(crate) syntax: SyntaxNode,
9826}
9827impl JsonTableColumnList {
9828    #[inline]
9829    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
9830        support::children(&self.syntax)
9831    }
9832    #[inline]
9833    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9834        support::token(&self.syntax, SyntaxKind::L_PAREN)
9835    }
9836    #[inline]
9837    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9838        support::token(&self.syntax, SyntaxKind::R_PAREN)
9839    }
9840    #[inline]
9841    pub fn columns_token(&self) -> Option<SyntaxToken> {
9842        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9843    }
9844}
9845
9846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9847pub struct JsonValueExpr {
9848    pub(crate) syntax: SyntaxNode,
9849}
9850impl JsonValueExpr {
9851    #[inline]
9852    pub fn expr(&self) -> Option<Expr> {
9853        support::child(&self.syntax)
9854    }
9855    #[inline]
9856    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9857        support::child(&self.syntax)
9858    }
9859}
9860
9861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9862pub struct JsonValueFn {
9863    pub(crate) syntax: SyntaxNode,
9864}
9865impl JsonValueFn {
9866    #[inline]
9867    pub fn expr(&self) -> Option<Expr> {
9868        support::child(&self.syntax)
9869    }
9870    #[inline]
9871    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
9872        support::child(&self.syntax)
9873    }
9874    #[inline]
9875    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
9876        support::child(&self.syntax)
9877    }
9878    #[inline]
9879    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
9880        support::child(&self.syntax)
9881    }
9882    #[inline]
9883    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
9884        support::child(&self.syntax)
9885    }
9886    #[inline]
9887    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9888        support::token(&self.syntax, SyntaxKind::L_PAREN)
9889    }
9890    #[inline]
9891    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9892        support::token(&self.syntax, SyntaxKind::R_PAREN)
9893    }
9894    #[inline]
9895    pub fn comma_token(&self) -> Option<SyntaxToken> {
9896        support::token(&self.syntax, SyntaxKind::COMMA)
9897    }
9898    #[inline]
9899    pub fn json_value_token(&self) -> Option<SyntaxToken> {
9900        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
9901    }
9902}
9903
9904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9905pub struct JsonWrapperBehaviorClause {
9906    pub(crate) syntax: SyntaxNode,
9907}
9908impl JsonWrapperBehaviorClause {
9909    #[inline]
9910    pub fn array_token(&self) -> Option<SyntaxToken> {
9911        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9912    }
9913    #[inline]
9914    pub fn conditional_token(&self) -> Option<SyntaxToken> {
9915        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
9916    }
9917    #[inline]
9918    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
9919        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
9920    }
9921    #[inline]
9922    pub fn with_token(&self) -> Option<SyntaxToken> {
9923        support::token(&self.syntax, SyntaxKind::WITH_KW)
9924    }
9925    #[inline]
9926    pub fn without_token(&self) -> Option<SyntaxToken> {
9927        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9928    }
9929    #[inline]
9930    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
9931        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
9932    }
9933}
9934
9935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9936pub struct LanguageFuncOption {
9937    pub(crate) syntax: SyntaxNode,
9938}
9939impl LanguageFuncOption {
9940    #[inline]
9941    pub fn name_ref(&self) -> Option<NameRef> {
9942        support::child(&self.syntax)
9943    }
9944    #[inline]
9945    pub fn language_token(&self) -> Option<SyntaxToken> {
9946        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
9947    }
9948}
9949
9950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9951pub struct LeakproofFuncOption {
9952    pub(crate) syntax: SyntaxNode,
9953}
9954impl LeakproofFuncOption {
9955    #[inline]
9956    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
9957        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
9958    }
9959    #[inline]
9960    pub fn not_token(&self) -> Option<SyntaxToken> {
9961        support::token(&self.syntax, SyntaxKind::NOT_KW)
9962    }
9963}
9964
9965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9966pub struct LikeClause {
9967    pub(crate) syntax: SyntaxNode,
9968}
9969impl LikeClause {
9970    #[inline]
9971    pub fn like_options(&self) -> AstChildren<LikeOption> {
9972        support::children(&self.syntax)
9973    }
9974    #[inline]
9975    pub fn path(&self) -> Option<Path> {
9976        support::child(&self.syntax)
9977    }
9978    #[inline]
9979    pub fn like_token(&self) -> Option<SyntaxToken> {
9980        support::token(&self.syntax, SyntaxKind::LIKE_KW)
9981    }
9982}
9983
9984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9985pub struct LikeOption {
9986    pub(crate) syntax: SyntaxNode,
9987}
9988impl LikeOption {
9989    #[inline]
9990    pub fn all_token(&self) -> Option<SyntaxToken> {
9991        support::token(&self.syntax, SyntaxKind::ALL_KW)
9992    }
9993    #[inline]
9994    pub fn comments_token(&self) -> Option<SyntaxToken> {
9995        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
9996    }
9997    #[inline]
9998    pub fn compression_token(&self) -> Option<SyntaxToken> {
9999        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
10000    }
10001    #[inline]
10002    pub fn constraints_token(&self) -> Option<SyntaxToken> {
10003        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
10004    }
10005    #[inline]
10006    pub fn defaults_token(&self) -> Option<SyntaxToken> {
10007        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
10008    }
10009    #[inline]
10010    pub fn excluding_token(&self) -> Option<SyntaxToken> {
10011        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
10012    }
10013    #[inline]
10014    pub fn generated_token(&self) -> Option<SyntaxToken> {
10015        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
10016    }
10017    #[inline]
10018    pub fn identity_token(&self) -> Option<SyntaxToken> {
10019        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10020    }
10021    #[inline]
10022    pub fn including_token(&self) -> Option<SyntaxToken> {
10023        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
10024    }
10025    #[inline]
10026    pub fn indexes_token(&self) -> Option<SyntaxToken> {
10027        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
10028    }
10029    #[inline]
10030    pub fn statistics_token(&self) -> Option<SyntaxToken> {
10031        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
10032    }
10033    #[inline]
10034    pub fn storage_token(&self) -> Option<SyntaxToken> {
10035        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10036    }
10037}
10038
10039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10040pub struct LimitClause {
10041    pub(crate) syntax: SyntaxNode,
10042}
10043impl LimitClause {
10044    #[inline]
10045    pub fn expr(&self) -> Option<Expr> {
10046        support::child(&self.syntax)
10047    }
10048    #[inline]
10049    pub fn all_token(&self) -> Option<SyntaxToken> {
10050        support::token(&self.syntax, SyntaxKind::ALL_KW)
10051    }
10052    #[inline]
10053    pub fn limit_token(&self) -> Option<SyntaxToken> {
10054        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10055    }
10056}
10057
10058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10059pub struct LimitToTables {
10060    pub(crate) syntax: SyntaxNode,
10061}
10062impl LimitToTables {
10063    #[inline]
10064    pub fn name_refs(&self) -> AstChildren<NameRef> {
10065        support::children(&self.syntax)
10066    }
10067    #[inline]
10068    pub fn limit_token(&self) -> Option<SyntaxToken> {
10069        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
10070    }
10071    #[inline]
10072    pub fn to_token(&self) -> Option<SyntaxToken> {
10073        support::token(&self.syntax, SyntaxKind::TO_KW)
10074    }
10075}
10076
10077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10078pub struct Listen {
10079    pub(crate) syntax: SyntaxNode,
10080}
10081impl Listen {
10082    #[inline]
10083    pub fn name(&self) -> Option<Name> {
10084        support::child(&self.syntax)
10085    }
10086    #[inline]
10087    pub fn listen_token(&self) -> Option<SyntaxToken> {
10088        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
10089    }
10090}
10091
10092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10093pub struct Literal {
10094    pub(crate) syntax: SyntaxNode,
10095}
10096impl Literal {}
10097
10098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10099pub struct Load {
10100    pub(crate) syntax: SyntaxNode,
10101}
10102impl Load {
10103    #[inline]
10104    pub fn literal(&self) -> Option<Literal> {
10105        support::child(&self.syntax)
10106    }
10107    #[inline]
10108    pub fn load_token(&self) -> Option<SyntaxToken> {
10109        support::token(&self.syntax, SyntaxKind::LOAD_KW)
10110    }
10111}
10112
10113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10114pub struct Lock {
10115    pub(crate) syntax: SyntaxNode,
10116}
10117impl Lock {
10118    #[inline]
10119    pub fn table_list(&self) -> Option<TableList> {
10120        support::child(&self.syntax)
10121    }
10122    #[inline]
10123    pub fn lock_token(&self) -> Option<SyntaxToken> {
10124        support::token(&self.syntax, SyntaxKind::LOCK_KW)
10125    }
10126    #[inline]
10127    pub fn table_token(&self) -> Option<SyntaxToken> {
10128        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10129    }
10130}
10131
10132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10133pub struct LockingClause {
10134    pub(crate) syntax: SyntaxNode,
10135}
10136impl LockingClause {
10137    #[inline]
10138    pub fn for_token(&self) -> Option<SyntaxToken> {
10139        support::token(&self.syntax, SyntaxKind::FOR_KW)
10140    }
10141}
10142
10143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10144pub struct Lteq {
10145    pub(crate) syntax: SyntaxNode,
10146}
10147impl Lteq {
10148    #[inline]
10149    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10150        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10151    }
10152    #[inline]
10153    pub fn eq_token(&self) -> Option<SyntaxToken> {
10154        support::token(&self.syntax, SyntaxKind::EQ)
10155    }
10156}
10157
10158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10159pub struct MatchFull {
10160    pub(crate) syntax: SyntaxNode,
10161}
10162impl MatchFull {
10163    #[inline]
10164    pub fn full_token(&self) -> Option<SyntaxToken> {
10165        support::token(&self.syntax, SyntaxKind::FULL_KW)
10166    }
10167    #[inline]
10168    pub fn match_token(&self) -> Option<SyntaxToken> {
10169        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10170    }
10171}
10172
10173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10174pub struct MatchPartial {
10175    pub(crate) syntax: SyntaxNode,
10176}
10177impl MatchPartial {
10178    #[inline]
10179    pub fn match_token(&self) -> Option<SyntaxToken> {
10180        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10181    }
10182    #[inline]
10183    pub fn partial_token(&self) -> Option<SyntaxToken> {
10184        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
10185    }
10186}
10187
10188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10189pub struct MatchSimple {
10190    pub(crate) syntax: SyntaxNode,
10191}
10192impl MatchSimple {
10193    #[inline]
10194    pub fn match_token(&self) -> Option<SyntaxToken> {
10195        support::token(&self.syntax, SyntaxKind::MATCH_KW)
10196    }
10197    #[inline]
10198    pub fn simple_token(&self) -> Option<SyntaxToken> {
10199        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
10200    }
10201}
10202
10203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10204pub struct Materialized {
10205    pub(crate) syntax: SyntaxNode,
10206}
10207impl Materialized {
10208    #[inline]
10209    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10210        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10211    }
10212}
10213
10214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10215pub struct Merge {
10216    pub(crate) syntax: SyntaxNode,
10217}
10218impl Merge {
10219    #[inline]
10220    pub fn alias(&self) -> Option<Alias> {
10221        support::child(&self.syntax)
10222    }
10223    #[inline]
10224    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
10225        support::children(&self.syntax)
10226    }
10227    #[inline]
10228    pub fn relation_name(&self) -> Option<RelationName> {
10229        support::child(&self.syntax)
10230    }
10231    #[inline]
10232    pub fn returning_clause(&self) -> Option<ReturningClause> {
10233        support::child(&self.syntax)
10234    }
10235    #[inline]
10236    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
10237        support::child(&self.syntax)
10238    }
10239    #[inline]
10240    pub fn with_clause(&self) -> Option<WithClause> {
10241        support::child(&self.syntax)
10242    }
10243    #[inline]
10244    pub fn into_token(&self) -> Option<SyntaxToken> {
10245        support::token(&self.syntax, SyntaxKind::INTO_KW)
10246    }
10247    #[inline]
10248    pub fn merge_token(&self) -> Option<SyntaxToken> {
10249        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10250    }
10251}
10252
10253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10254pub struct MergeDelete {
10255    pub(crate) syntax: SyntaxNode,
10256}
10257impl MergeDelete {
10258    #[inline]
10259    pub fn delete_token(&self) -> Option<SyntaxToken> {
10260        support::token(&self.syntax, SyntaxKind::DELETE_KW)
10261    }
10262}
10263
10264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10265pub struct MergeDoNothing {
10266    pub(crate) syntax: SyntaxNode,
10267}
10268impl MergeDoNothing {
10269    #[inline]
10270    pub fn do_token(&self) -> Option<SyntaxToken> {
10271        support::token(&self.syntax, SyntaxKind::DO_KW)
10272    }
10273    #[inline]
10274    pub fn nothing_token(&self) -> Option<SyntaxToken> {
10275        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
10276    }
10277}
10278
10279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10280pub struct MergeInsert {
10281    pub(crate) syntax: SyntaxNode,
10282}
10283impl MergeInsert {
10284    #[inline]
10285    pub fn column_list(&self) -> Option<ColumnList> {
10286        support::child(&self.syntax)
10287    }
10288    #[inline]
10289    pub fn values(&self) -> Option<Values> {
10290        support::child(&self.syntax)
10291    }
10292    #[inline]
10293    pub fn default_token(&self) -> Option<SyntaxToken> {
10294        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10295    }
10296    #[inline]
10297    pub fn insert_token(&self) -> Option<SyntaxToken> {
10298        support::token(&self.syntax, SyntaxKind::INSERT_KW)
10299    }
10300    #[inline]
10301    pub fn overriding_token(&self) -> Option<SyntaxToken> {
10302        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
10303    }
10304    #[inline]
10305    pub fn system_token(&self) -> Option<SyntaxToken> {
10306        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
10307    }
10308    #[inline]
10309    pub fn user_token(&self) -> Option<SyntaxToken> {
10310        support::token(&self.syntax, SyntaxKind::USER_KW)
10311    }
10312    #[inline]
10313    pub fn values_token(&self) -> Option<SyntaxToken> {
10314        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10315    }
10316}
10317
10318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10319pub struct MergePartitions {
10320    pub(crate) syntax: SyntaxNode,
10321}
10322impl MergePartitions {
10323    #[inline]
10324    pub fn path(&self) -> Option<Path> {
10325        support::child(&self.syntax)
10326    }
10327    #[inline]
10328    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10329        support::token(&self.syntax, SyntaxKind::L_PAREN)
10330    }
10331    #[inline]
10332    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10333        support::token(&self.syntax, SyntaxKind::R_PAREN)
10334    }
10335    #[inline]
10336    pub fn into_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::INTO_KW)
10338    }
10339    #[inline]
10340    pub fn merge_token(&self) -> Option<SyntaxToken> {
10341        support::token(&self.syntax, SyntaxKind::MERGE_KW)
10342    }
10343    #[inline]
10344    pub fn partitions_token(&self) -> Option<SyntaxToken> {
10345        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
10346    }
10347}
10348
10349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10350pub struct MergeUpdate {
10351    pub(crate) syntax: SyntaxNode,
10352}
10353impl MergeUpdate {
10354    #[inline]
10355    pub fn set_clause(&self) -> Option<SetClause> {
10356        support::child(&self.syntax)
10357    }
10358    #[inline]
10359    pub fn set_token(&self) -> Option<SyntaxToken> {
10360        support::token(&self.syntax, SyntaxKind::SET_KW)
10361    }
10362    #[inline]
10363    pub fn update_token(&self) -> Option<SyntaxToken> {
10364        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10365    }
10366}
10367
10368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10369pub struct MergeWhenMatched {
10370    pub(crate) syntax: SyntaxNode,
10371}
10372impl MergeWhenMatched {
10373    #[inline]
10374    pub fn expr(&self) -> Option<Expr> {
10375        support::child(&self.syntax)
10376    }
10377    #[inline]
10378    pub fn merge_action(&self) -> Option<MergeAction> {
10379        support::child(&self.syntax)
10380    }
10381    #[inline]
10382    pub fn and_token(&self) -> Option<SyntaxToken> {
10383        support::token(&self.syntax, SyntaxKind::AND_KW)
10384    }
10385    #[inline]
10386    pub fn matched_token(&self) -> Option<SyntaxToken> {
10387        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10388    }
10389    #[inline]
10390    pub fn then_token(&self) -> Option<SyntaxToken> {
10391        support::token(&self.syntax, SyntaxKind::THEN_KW)
10392    }
10393    #[inline]
10394    pub fn when_token(&self) -> Option<SyntaxToken> {
10395        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10396    }
10397}
10398
10399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10400pub struct MergeWhenNotMatchedSource {
10401    pub(crate) syntax: SyntaxNode,
10402}
10403impl MergeWhenNotMatchedSource {
10404    #[inline]
10405    pub fn expr(&self) -> Option<Expr> {
10406        support::child(&self.syntax)
10407    }
10408    #[inline]
10409    pub fn merge_action(&self) -> Option<MergeAction> {
10410        support::child(&self.syntax)
10411    }
10412    #[inline]
10413    pub fn and_token(&self) -> Option<SyntaxToken> {
10414        support::token(&self.syntax, SyntaxKind::AND_KW)
10415    }
10416    #[inline]
10417    pub fn by_token(&self) -> Option<SyntaxToken> {
10418        support::token(&self.syntax, SyntaxKind::BY_KW)
10419    }
10420    #[inline]
10421    pub fn matched_token(&self) -> Option<SyntaxToken> {
10422        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10423    }
10424    #[inline]
10425    pub fn not_token(&self) -> Option<SyntaxToken> {
10426        support::token(&self.syntax, SyntaxKind::NOT_KW)
10427    }
10428    #[inline]
10429    pub fn source_token(&self) -> Option<SyntaxToken> {
10430        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
10431    }
10432    #[inline]
10433    pub fn then_token(&self) -> Option<SyntaxToken> {
10434        support::token(&self.syntax, SyntaxKind::THEN_KW)
10435    }
10436    #[inline]
10437    pub fn when_token(&self) -> Option<SyntaxToken> {
10438        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10439    }
10440}
10441
10442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10443pub struct MergeWhenNotMatchedTarget {
10444    pub(crate) syntax: SyntaxNode,
10445}
10446impl MergeWhenNotMatchedTarget {
10447    #[inline]
10448    pub fn expr(&self) -> Option<Expr> {
10449        support::child(&self.syntax)
10450    }
10451    #[inline]
10452    pub fn merge_action(&self) -> Option<MergeAction> {
10453        support::child(&self.syntax)
10454    }
10455    #[inline]
10456    pub fn and_token(&self) -> Option<SyntaxToken> {
10457        support::token(&self.syntax, SyntaxKind::AND_KW)
10458    }
10459    #[inline]
10460    pub fn by_token(&self) -> Option<SyntaxToken> {
10461        support::token(&self.syntax, SyntaxKind::BY_KW)
10462    }
10463    #[inline]
10464    pub fn matched_token(&self) -> Option<SyntaxToken> {
10465        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
10466    }
10467    #[inline]
10468    pub fn not_token(&self) -> Option<SyntaxToken> {
10469        support::token(&self.syntax, SyntaxKind::NOT_KW)
10470    }
10471    #[inline]
10472    pub fn target_token(&self) -> Option<SyntaxToken> {
10473        support::token(&self.syntax, SyntaxKind::TARGET_KW)
10474    }
10475    #[inline]
10476    pub fn then_token(&self) -> Option<SyntaxToken> {
10477        support::token(&self.syntax, SyntaxKind::THEN_KW)
10478    }
10479    #[inline]
10480    pub fn when_token(&self) -> Option<SyntaxToken> {
10481        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10482    }
10483}
10484
10485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10486pub struct Move {
10487    pub(crate) syntax: SyntaxNode,
10488}
10489impl Move {
10490    #[inline]
10491    pub fn name_ref(&self) -> Option<NameRef> {
10492        support::child(&self.syntax)
10493    }
10494    #[inline]
10495    pub fn from_token(&self) -> Option<SyntaxToken> {
10496        support::token(&self.syntax, SyntaxKind::FROM_KW)
10497    }
10498    #[inline]
10499    pub fn in_token(&self) -> Option<SyntaxToken> {
10500        support::token(&self.syntax, SyntaxKind::IN_KW)
10501    }
10502    #[inline]
10503    pub fn move_token(&self) -> Option<SyntaxToken> {
10504        support::token(&self.syntax, SyntaxKind::MOVE_KW)
10505    }
10506}
10507
10508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10509pub struct Name {
10510    pub(crate) syntax: SyntaxNode,
10511}
10512impl Name {
10513    #[inline]
10514    pub fn ident_token(&self) -> Option<SyntaxToken> {
10515        support::token(&self.syntax, SyntaxKind::IDENT)
10516    }
10517}
10518
10519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10520pub struct NameRef {
10521    pub(crate) syntax: SyntaxNode,
10522}
10523impl NameRef {
10524    #[inline]
10525    pub fn ident_token(&self) -> Option<SyntaxToken> {
10526        support::token(&self.syntax, SyntaxKind::IDENT)
10527    }
10528}
10529
10530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10531pub struct NamedArg {
10532    pub(crate) syntax: SyntaxNode,
10533}
10534impl NamedArg {
10535    #[inline]
10536    pub fn expr(&self) -> Option<Expr> {
10537        support::child(&self.syntax)
10538    }
10539    #[inline]
10540    pub fn fat_arrow(&self) -> Option<FatArrow> {
10541        support::child(&self.syntax)
10542    }
10543    #[inline]
10544    pub fn name_ref(&self) -> Option<NameRef> {
10545        support::child(&self.syntax)
10546    }
10547}
10548
10549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10550pub struct Neq {
10551    pub(crate) syntax: SyntaxNode,
10552}
10553impl Neq {
10554    #[inline]
10555    pub fn bang_token(&self) -> Option<SyntaxToken> {
10556        support::token(&self.syntax, SyntaxKind::BANG)
10557    }
10558    #[inline]
10559    pub fn eq_token(&self) -> Option<SyntaxToken> {
10560        support::token(&self.syntax, SyntaxKind::EQ)
10561    }
10562}
10563
10564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10565pub struct Neqb {
10566    pub(crate) syntax: SyntaxNode,
10567}
10568impl Neqb {
10569    #[inline]
10570    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
10571        support::token(&self.syntax, SyntaxKind::L_ANGLE)
10572    }
10573    #[inline]
10574    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
10575        support::token(&self.syntax, SyntaxKind::R_ANGLE)
10576    }
10577}
10578
10579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10580pub struct NoAction {
10581    pub(crate) syntax: SyntaxNode,
10582}
10583impl NoAction {
10584    #[inline]
10585    pub fn action_token(&self) -> Option<SyntaxToken> {
10586        support::token(&self.syntax, SyntaxKind::ACTION_KW)
10587    }
10588    #[inline]
10589    pub fn no_token(&self) -> Option<SyntaxToken> {
10590        support::token(&self.syntax, SyntaxKind::NO_KW)
10591    }
10592}
10593
10594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10595pub struct NoDependsOnExtension {
10596    pub(crate) syntax: SyntaxNode,
10597}
10598impl NoDependsOnExtension {
10599    #[inline]
10600    pub fn name_ref(&self) -> Option<NameRef> {
10601        support::child(&self.syntax)
10602    }
10603    #[inline]
10604    pub fn depends_token(&self) -> Option<SyntaxToken> {
10605        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
10606    }
10607    #[inline]
10608    pub fn extension_token(&self) -> Option<SyntaxToken> {
10609        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
10610    }
10611    #[inline]
10612    pub fn no_token(&self) -> Option<SyntaxToken> {
10613        support::token(&self.syntax, SyntaxKind::NO_KW)
10614    }
10615    #[inline]
10616    pub fn on_token(&self) -> Option<SyntaxToken> {
10617        support::token(&self.syntax, SyntaxKind::ON_KW)
10618    }
10619}
10620
10621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10622pub struct NoForceRls {
10623    pub(crate) syntax: SyntaxNode,
10624}
10625impl NoForceRls {
10626    #[inline]
10627    pub fn force_token(&self) -> Option<SyntaxToken> {
10628        support::token(&self.syntax, SyntaxKind::FORCE_KW)
10629    }
10630    #[inline]
10631    pub fn level_token(&self) -> Option<SyntaxToken> {
10632        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
10633    }
10634    #[inline]
10635    pub fn no_token(&self) -> Option<SyntaxToken> {
10636        support::token(&self.syntax, SyntaxKind::NO_KW)
10637    }
10638    #[inline]
10639    pub fn row_token(&self) -> Option<SyntaxToken> {
10640        support::token(&self.syntax, SyntaxKind::ROW_KW)
10641    }
10642    #[inline]
10643    pub fn security_token(&self) -> Option<SyntaxToken> {
10644        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
10645    }
10646}
10647
10648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10649pub struct NoInherit {
10650    pub(crate) syntax: SyntaxNode,
10651}
10652impl NoInherit {
10653    #[inline]
10654    pub fn path(&self) -> Option<Path> {
10655        support::child(&self.syntax)
10656    }
10657    #[inline]
10658    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10659        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10660    }
10661    #[inline]
10662    pub fn no_token(&self) -> Option<SyntaxToken> {
10663        support::token(&self.syntax, SyntaxKind::NO_KW)
10664    }
10665}
10666
10667#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10668pub struct NoInheritTable {
10669    pub(crate) syntax: SyntaxNode,
10670}
10671impl NoInheritTable {
10672    #[inline]
10673    pub fn path(&self) -> Option<Path> {
10674        support::child(&self.syntax)
10675    }
10676    #[inline]
10677    pub fn inherit_token(&self) -> Option<SyntaxToken> {
10678        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
10679    }
10680    #[inline]
10681    pub fn no_token(&self) -> Option<SyntaxToken> {
10682        support::token(&self.syntax, SyntaxKind::NO_KW)
10683    }
10684}
10685
10686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10687pub struct NonStandardParam {
10688    pub(crate) syntax: SyntaxNode,
10689}
10690impl NonStandardParam {
10691    #[inline]
10692    pub fn name_ref(&self) -> Option<NameRef> {
10693        support::child(&self.syntax)
10694    }
10695    #[inline]
10696    pub fn colon_token(&self) -> Option<SyntaxToken> {
10697        support::token(&self.syntax, SyntaxKind::COLON)
10698    }
10699}
10700
10701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10702pub struct NotDeferrable {
10703    pub(crate) syntax: SyntaxNode,
10704}
10705impl NotDeferrable {
10706    #[inline]
10707    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10708        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10709    }
10710    #[inline]
10711    pub fn not_token(&self) -> Option<SyntaxToken> {
10712        support::token(&self.syntax, SyntaxKind::NOT_KW)
10713    }
10714}
10715
10716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10717pub struct NotDeferrableConstraintOption {
10718    pub(crate) syntax: SyntaxNode,
10719}
10720impl NotDeferrableConstraintOption {
10721    #[inline]
10722    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
10723        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
10724    }
10725    #[inline]
10726    pub fn not_token(&self) -> Option<SyntaxToken> {
10727        support::token(&self.syntax, SyntaxKind::NOT_KW)
10728    }
10729}
10730
10731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10732pub struct NotEnforced {
10733    pub(crate) syntax: SyntaxNode,
10734}
10735impl NotEnforced {
10736    #[inline]
10737    pub fn enforced_token(&self) -> Option<SyntaxToken> {
10738        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
10739    }
10740    #[inline]
10741    pub fn not_token(&self) -> Option<SyntaxToken> {
10742        support::token(&self.syntax, SyntaxKind::NOT_KW)
10743    }
10744}
10745
10746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10747pub struct NotIlike {
10748    pub(crate) syntax: SyntaxNode,
10749}
10750impl NotIlike {
10751    #[inline]
10752    pub fn ilike_token(&self) -> Option<SyntaxToken> {
10753        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
10754    }
10755    #[inline]
10756    pub fn not_token(&self) -> Option<SyntaxToken> {
10757        support::token(&self.syntax, SyntaxKind::NOT_KW)
10758    }
10759}
10760
10761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10762pub struct NotIn {
10763    pub(crate) syntax: SyntaxNode,
10764}
10765impl NotIn {
10766    #[inline]
10767    pub fn in_token(&self) -> Option<SyntaxToken> {
10768        support::token(&self.syntax, SyntaxKind::IN_KW)
10769    }
10770    #[inline]
10771    pub fn not_token(&self) -> Option<SyntaxToken> {
10772        support::token(&self.syntax, SyntaxKind::NOT_KW)
10773    }
10774}
10775
10776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10777pub struct NotLike {
10778    pub(crate) syntax: SyntaxNode,
10779}
10780impl NotLike {
10781    #[inline]
10782    pub fn like_token(&self) -> Option<SyntaxToken> {
10783        support::token(&self.syntax, SyntaxKind::LIKE_KW)
10784    }
10785    #[inline]
10786    pub fn not_token(&self) -> Option<SyntaxToken> {
10787        support::token(&self.syntax, SyntaxKind::NOT_KW)
10788    }
10789}
10790
10791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10792pub struct NotMaterialized {
10793    pub(crate) syntax: SyntaxNode,
10794}
10795impl NotMaterialized {
10796    #[inline]
10797    pub fn materialized_token(&self) -> Option<SyntaxToken> {
10798        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
10799    }
10800    #[inline]
10801    pub fn not_token(&self) -> Option<SyntaxToken> {
10802        support::token(&self.syntax, SyntaxKind::NOT_KW)
10803    }
10804}
10805
10806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10807pub struct NotNullConstraint {
10808    pub(crate) syntax: SyntaxNode,
10809}
10810impl NotNullConstraint {
10811    #[inline]
10812    pub fn name_ref(&self) -> Option<NameRef> {
10813        support::child(&self.syntax)
10814    }
10815    #[inline]
10816    pub fn no_inherit(&self) -> Option<NoInherit> {
10817        support::child(&self.syntax)
10818    }
10819    #[inline]
10820    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10821        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10822    }
10823    #[inline]
10824    pub fn not_token(&self) -> Option<SyntaxToken> {
10825        support::token(&self.syntax, SyntaxKind::NOT_KW)
10826    }
10827    #[inline]
10828    pub fn null_token(&self) -> Option<SyntaxToken> {
10829        support::token(&self.syntax, SyntaxKind::NULL_KW)
10830    }
10831}
10832
10833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10834pub struct NotOf {
10835    pub(crate) syntax: SyntaxNode,
10836}
10837impl NotOf {
10838    #[inline]
10839    pub fn not_token(&self) -> Option<SyntaxToken> {
10840        support::token(&self.syntax, SyntaxKind::NOT_KW)
10841    }
10842    #[inline]
10843    pub fn of_token(&self) -> Option<SyntaxToken> {
10844        support::token(&self.syntax, SyntaxKind::OF_KW)
10845    }
10846}
10847
10848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10849pub struct NotSimilarTo {
10850    pub(crate) syntax: SyntaxNode,
10851}
10852impl NotSimilarTo {
10853    #[inline]
10854    pub fn not_token(&self) -> Option<SyntaxToken> {
10855        support::token(&self.syntax, SyntaxKind::NOT_KW)
10856    }
10857    #[inline]
10858    pub fn similar_token(&self) -> Option<SyntaxToken> {
10859        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10860    }
10861    #[inline]
10862    pub fn to_token(&self) -> Option<SyntaxToken> {
10863        support::token(&self.syntax, SyntaxKind::TO_KW)
10864    }
10865}
10866
10867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10868pub struct NotValid {
10869    pub(crate) syntax: SyntaxNode,
10870}
10871impl NotValid {
10872    #[inline]
10873    pub fn not_token(&self) -> Option<SyntaxToken> {
10874        support::token(&self.syntax, SyntaxKind::NOT_KW)
10875    }
10876    #[inline]
10877    pub fn valid_token(&self) -> Option<SyntaxToken> {
10878        support::token(&self.syntax, SyntaxKind::VALID_KW)
10879    }
10880}
10881
10882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10883pub struct Notify {
10884    pub(crate) syntax: SyntaxNode,
10885}
10886impl Notify {
10887    #[inline]
10888    pub fn literal(&self) -> Option<Literal> {
10889        support::child(&self.syntax)
10890    }
10891    #[inline]
10892    pub fn name_ref(&self) -> Option<NameRef> {
10893        support::child(&self.syntax)
10894    }
10895    #[inline]
10896    pub fn comma_token(&self) -> Option<SyntaxToken> {
10897        support::token(&self.syntax, SyntaxKind::COMMA)
10898    }
10899    #[inline]
10900    pub fn notify_token(&self) -> Option<SyntaxToken> {
10901        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
10902    }
10903}
10904
10905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10906pub struct NullConstraint {
10907    pub(crate) syntax: SyntaxNode,
10908}
10909impl NullConstraint {
10910    #[inline]
10911    pub fn name_ref(&self) -> Option<NameRef> {
10912        support::child(&self.syntax)
10913    }
10914    #[inline]
10915    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10916        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10917    }
10918    #[inline]
10919    pub fn null_token(&self) -> Option<SyntaxToken> {
10920        support::token(&self.syntax, SyntaxKind::NULL_KW)
10921    }
10922}
10923
10924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10925pub struct NullsDistinct {
10926    pub(crate) syntax: SyntaxNode,
10927}
10928impl NullsDistinct {
10929    #[inline]
10930    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10931        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10932    }
10933    #[inline]
10934    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10935        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10936    }
10937}
10938
10939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10940pub struct NullsFirst {
10941    pub(crate) syntax: SyntaxNode,
10942}
10943impl NullsFirst {
10944    #[inline]
10945    pub fn first_token(&self) -> Option<SyntaxToken> {
10946        support::token(&self.syntax, SyntaxKind::FIRST_KW)
10947    }
10948    #[inline]
10949    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10950        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10951    }
10952}
10953
10954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10955pub struct NullsLast {
10956    pub(crate) syntax: SyntaxNode,
10957}
10958impl NullsLast {
10959    #[inline]
10960    pub fn last_token(&self) -> Option<SyntaxToken> {
10961        support::token(&self.syntax, SyntaxKind::LAST_KW)
10962    }
10963    #[inline]
10964    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10965        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10966    }
10967}
10968
10969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10970pub struct NullsNotDistinct {
10971    pub(crate) syntax: SyntaxNode,
10972}
10973impl NullsNotDistinct {
10974    #[inline]
10975    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10976        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10977    }
10978    #[inline]
10979    pub fn not_token(&self) -> Option<SyntaxToken> {
10980        support::token(&self.syntax, SyntaxKind::NOT_KW)
10981    }
10982    #[inline]
10983    pub fn nulls_token(&self) -> Option<SyntaxToken> {
10984        support::token(&self.syntax, SyntaxKind::NULLS_KW)
10985    }
10986}
10987
10988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10989pub struct OfType {
10990    pub(crate) syntax: SyntaxNode,
10991}
10992impl OfType {
10993    #[inline]
10994    pub fn ty(&self) -> Option<Type> {
10995        support::child(&self.syntax)
10996    }
10997    #[inline]
10998    pub fn of_token(&self) -> Option<SyntaxToken> {
10999        support::token(&self.syntax, SyntaxKind::OF_KW)
11000    }
11001}
11002
11003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11004pub struct OffsetClause {
11005    pub(crate) syntax: SyntaxNode,
11006}
11007impl OffsetClause {
11008    #[inline]
11009    pub fn expr(&self) -> Option<Expr> {
11010        support::child(&self.syntax)
11011    }
11012    #[inline]
11013    pub fn offset_token(&self) -> Option<SyntaxToken> {
11014        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
11015    }
11016    #[inline]
11017    pub fn row_token(&self) -> Option<SyntaxToken> {
11018        support::token(&self.syntax, SyntaxKind::ROW_KW)
11019    }
11020    #[inline]
11021    pub fn rows_token(&self) -> Option<SyntaxToken> {
11022        support::token(&self.syntax, SyntaxKind::ROWS_KW)
11023    }
11024}
11025
11026#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11027pub struct OnClause {
11028    pub(crate) syntax: SyntaxNode,
11029}
11030impl OnClause {
11031    #[inline]
11032    pub fn expr(&self) -> Option<Expr> {
11033        support::child(&self.syntax)
11034    }
11035    #[inline]
11036    pub fn on_token(&self) -> Option<SyntaxToken> {
11037        support::token(&self.syntax, SyntaxKind::ON_KW)
11038    }
11039}
11040
11041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11042pub struct OnCommit {
11043    pub(crate) syntax: SyntaxNode,
11044}
11045impl OnCommit {
11046    #[inline]
11047    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
11048        support::child(&self.syntax)
11049    }
11050    #[inline]
11051    pub fn commit_token(&self) -> Option<SyntaxToken> {
11052        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
11053    }
11054    #[inline]
11055    pub fn on_token(&self) -> Option<SyntaxToken> {
11056        support::token(&self.syntax, SyntaxKind::ON_KW)
11057    }
11058}
11059
11060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11061pub struct OnConflictClause {
11062    pub(crate) syntax: SyntaxNode,
11063}
11064impl OnConflictClause {
11065    #[inline]
11066    pub fn conflict_action(&self) -> Option<ConflictAction> {
11067        support::child(&self.syntax)
11068    }
11069    #[inline]
11070    pub fn conflict_target(&self) -> Option<ConflictTarget> {
11071        support::child(&self.syntax)
11072    }
11073    #[inline]
11074    pub fn conflict_token(&self) -> Option<SyntaxToken> {
11075        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
11076    }
11077    #[inline]
11078    pub fn on_token(&self) -> Option<SyntaxToken> {
11079        support::token(&self.syntax, SyntaxKind::ON_KW)
11080    }
11081}
11082
11083#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11084pub struct OnDeleteAction {
11085    pub(crate) syntax: SyntaxNode,
11086}
11087impl OnDeleteAction {
11088    #[inline]
11089    pub fn ref_action(&self) -> Option<RefAction> {
11090        support::child(&self.syntax)
11091    }
11092    #[inline]
11093    pub fn delete_token(&self) -> Option<SyntaxToken> {
11094        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11095    }
11096    #[inline]
11097    pub fn on_token(&self) -> Option<SyntaxToken> {
11098        support::token(&self.syntax, SyntaxKind::ON_KW)
11099    }
11100}
11101
11102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11103pub struct OnTable {
11104    pub(crate) syntax: SyntaxNode,
11105}
11106impl OnTable {
11107    #[inline]
11108    pub fn path(&self) -> Option<Path> {
11109        support::child(&self.syntax)
11110    }
11111    #[inline]
11112    pub fn on_token(&self) -> Option<SyntaxToken> {
11113        support::token(&self.syntax, SyntaxKind::ON_KW)
11114    }
11115}
11116
11117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11118pub struct OnUpdateAction {
11119    pub(crate) syntax: SyntaxNode,
11120}
11121impl OnUpdateAction {
11122    #[inline]
11123    pub fn ref_action(&self) -> Option<RefAction> {
11124        support::child(&self.syntax)
11125    }
11126    #[inline]
11127    pub fn on_token(&self) -> Option<SyntaxToken> {
11128        support::token(&self.syntax, SyntaxKind::ON_KW)
11129    }
11130    #[inline]
11131    pub fn update_token(&self) -> Option<SyntaxToken> {
11132        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11133    }
11134}
11135
11136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11137pub struct Op {
11138    pub(crate) syntax: SyntaxNode,
11139}
11140impl Op {
11141    #[inline]
11142    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
11143        support::child(&self.syntax)
11144    }
11145    #[inline]
11146    pub fn colon_colon(&self) -> Option<ColonColon> {
11147        support::child(&self.syntax)
11148    }
11149    #[inline]
11150    pub fn colon_eq(&self) -> Option<ColonEq> {
11151        support::child(&self.syntax)
11152    }
11153    #[inline]
11154    pub fn custom_op(&self) -> Option<CustomOp> {
11155        support::child(&self.syntax)
11156    }
11157    #[inline]
11158    pub fn fat_arrow(&self) -> Option<FatArrow> {
11159        support::child(&self.syntax)
11160    }
11161    #[inline]
11162    pub fn gteq(&self) -> Option<Gteq> {
11163        support::child(&self.syntax)
11164    }
11165    #[inline]
11166    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
11167        support::child(&self.syntax)
11168    }
11169    #[inline]
11170    pub fn is_json(&self) -> Option<IsJson> {
11171        support::child(&self.syntax)
11172    }
11173    #[inline]
11174    pub fn is_json_array(&self) -> Option<IsJsonArray> {
11175        support::child(&self.syntax)
11176    }
11177    #[inline]
11178    pub fn is_json_object(&self) -> Option<IsJsonObject> {
11179        support::child(&self.syntax)
11180    }
11181    #[inline]
11182    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
11183        support::child(&self.syntax)
11184    }
11185    #[inline]
11186    pub fn is_json_value(&self) -> Option<IsJsonValue> {
11187        support::child(&self.syntax)
11188    }
11189    #[inline]
11190    pub fn is_not(&self) -> Option<IsNot> {
11191        support::child(&self.syntax)
11192    }
11193    #[inline]
11194    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
11195        support::child(&self.syntax)
11196    }
11197    #[inline]
11198    pub fn is_not_json(&self) -> Option<IsNotJson> {
11199        support::child(&self.syntax)
11200    }
11201    #[inline]
11202    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
11203        support::child(&self.syntax)
11204    }
11205    #[inline]
11206    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
11207        support::child(&self.syntax)
11208    }
11209    #[inline]
11210    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
11211        support::child(&self.syntax)
11212    }
11213    #[inline]
11214    pub fn lteq(&self) -> Option<Lteq> {
11215        support::child(&self.syntax)
11216    }
11217    #[inline]
11218    pub fn neq(&self) -> Option<Neq> {
11219        support::child(&self.syntax)
11220    }
11221    #[inline]
11222    pub fn neqb(&self) -> Option<Neqb> {
11223        support::child(&self.syntax)
11224    }
11225    #[inline]
11226    pub fn not_ilike(&self) -> Option<NotIlike> {
11227        support::child(&self.syntax)
11228    }
11229    #[inline]
11230    pub fn not_in(&self) -> Option<NotIn> {
11231        support::child(&self.syntax)
11232    }
11233    #[inline]
11234    pub fn not_like(&self) -> Option<NotLike> {
11235        support::child(&self.syntax)
11236    }
11237    #[inline]
11238    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
11239        support::child(&self.syntax)
11240    }
11241    #[inline]
11242    pub fn operator_call(&self) -> Option<OperatorCall> {
11243        support::child(&self.syntax)
11244    }
11245    #[inline]
11246    pub fn similar_to(&self) -> Option<SimilarTo> {
11247        support::child(&self.syntax)
11248    }
11249    #[inline]
11250    pub fn percent_token(&self) -> Option<SyntaxToken> {
11251        support::token(&self.syntax, SyntaxKind::PERCENT)
11252    }
11253    #[inline]
11254    pub fn plus_token(&self) -> Option<SyntaxToken> {
11255        support::token(&self.syntax, SyntaxKind::PLUS)
11256    }
11257    #[inline]
11258    pub fn minus_token(&self) -> Option<SyntaxToken> {
11259        support::token(&self.syntax, SyntaxKind::MINUS)
11260    }
11261    #[inline]
11262    pub fn slash_token(&self) -> Option<SyntaxToken> {
11263        support::token(&self.syntax, SyntaxKind::SLASH)
11264    }
11265    #[inline]
11266    pub fn colon_token(&self) -> Option<SyntaxToken> {
11267        support::token(&self.syntax, SyntaxKind::COLON)
11268    }
11269    #[inline]
11270    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11271        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11272    }
11273    #[inline]
11274    pub fn eq_token(&self) -> Option<SyntaxToken> {
11275        support::token(&self.syntax, SyntaxKind::EQ)
11276    }
11277    #[inline]
11278    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11279        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11280    }
11281    #[inline]
11282    pub fn caret_token(&self) -> Option<SyntaxToken> {
11283        support::token(&self.syntax, SyntaxKind::CARET)
11284    }
11285    #[inline]
11286    pub fn and_token(&self) -> Option<SyntaxToken> {
11287        support::token(&self.syntax, SyntaxKind::AND_KW)
11288    }
11289    #[inline]
11290    pub fn collate_token(&self) -> Option<SyntaxToken> {
11291        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
11292    }
11293    #[inline]
11294    pub fn ilike_token(&self) -> Option<SyntaxToken> {
11295        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
11296    }
11297    #[inline]
11298    pub fn in_token(&self) -> Option<SyntaxToken> {
11299        support::token(&self.syntax, SyntaxKind::IN_KW)
11300    }
11301    #[inline]
11302    pub fn is_token(&self) -> Option<SyntaxToken> {
11303        support::token(&self.syntax, SyntaxKind::IS_KW)
11304    }
11305    #[inline]
11306    pub fn like_token(&self) -> Option<SyntaxToken> {
11307        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11308    }
11309    #[inline]
11310    pub fn or_token(&self) -> Option<SyntaxToken> {
11311        support::token(&self.syntax, SyntaxKind::OR_KW)
11312    }
11313    #[inline]
11314    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
11315        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
11316    }
11317    #[inline]
11318    pub fn value_token(&self) -> Option<SyntaxToken> {
11319        support::token(&self.syntax, SyntaxKind::VALUE_KW)
11320    }
11321}
11322
11323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11324pub struct OpClassOption {
11325    pub(crate) syntax: SyntaxNode,
11326}
11327impl OpClassOption {
11328    #[inline]
11329    pub fn function_sig(&self) -> Option<FunctionSig> {
11330        support::child(&self.syntax)
11331    }
11332    #[inline]
11333    pub fn literal(&self) -> Option<Literal> {
11334        support::child(&self.syntax)
11335    }
11336    #[inline]
11337    pub fn op(&self) -> Option<Op> {
11338        support::child(&self.syntax)
11339    }
11340    #[inline]
11341    pub fn param_list(&self) -> Option<ParamList> {
11342        support::child(&self.syntax)
11343    }
11344    #[inline]
11345    pub fn path(&self) -> Option<Path> {
11346        support::child(&self.syntax)
11347    }
11348    #[inline]
11349    pub fn ty(&self) -> Option<Type> {
11350        support::child(&self.syntax)
11351    }
11352    #[inline]
11353    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11354        support::token(&self.syntax, SyntaxKind::L_PAREN)
11355    }
11356    #[inline]
11357    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11358        support::token(&self.syntax, SyntaxKind::R_PAREN)
11359    }
11360    #[inline]
11361    pub fn comma_token(&self) -> Option<SyntaxToken> {
11362        support::token(&self.syntax, SyntaxKind::COMMA)
11363    }
11364    #[inline]
11365    pub fn by_token(&self) -> Option<SyntaxToken> {
11366        support::token(&self.syntax, SyntaxKind::BY_KW)
11367    }
11368    #[inline]
11369    pub fn for_token(&self) -> Option<SyntaxToken> {
11370        support::token(&self.syntax, SyntaxKind::FOR_KW)
11371    }
11372    #[inline]
11373    pub fn function_token(&self) -> Option<SyntaxToken> {
11374        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
11375    }
11376    #[inline]
11377    pub fn operator_token(&self) -> Option<SyntaxToken> {
11378        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11379    }
11380    #[inline]
11381    pub fn order_token(&self) -> Option<SyntaxToken> {
11382        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11383    }
11384    #[inline]
11385    pub fn search_token(&self) -> Option<SyntaxToken> {
11386        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
11387    }
11388    #[inline]
11389    pub fn storage_token(&self) -> Option<SyntaxToken> {
11390        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11391    }
11392}
11393
11394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11395pub struct OpSig {
11396    pub(crate) syntax: SyntaxNode,
11397}
11398impl OpSig {
11399    #[inline]
11400    pub fn op(&self) -> Option<Op> {
11401        support::child(&self.syntax)
11402    }
11403    #[inline]
11404    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11405        support::token(&self.syntax, SyntaxKind::L_PAREN)
11406    }
11407    #[inline]
11408    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11409        support::token(&self.syntax, SyntaxKind::R_PAREN)
11410    }
11411    #[inline]
11412    pub fn comma_token(&self) -> Option<SyntaxToken> {
11413        support::token(&self.syntax, SyntaxKind::COMMA)
11414    }
11415    #[inline]
11416    pub fn none_token(&self) -> Option<SyntaxToken> {
11417        support::token(&self.syntax, SyntaxKind::NONE_KW)
11418    }
11419}
11420
11421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11422pub struct OpSigList {
11423    pub(crate) syntax: SyntaxNode,
11424}
11425impl OpSigList {
11426    #[inline]
11427    pub fn op_sigs(&self) -> AstChildren<OpSig> {
11428        support::children(&self.syntax)
11429    }
11430}
11431
11432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11433pub struct OperatorCall {
11434    pub(crate) syntax: SyntaxNode,
11435}
11436impl OperatorCall {
11437    #[inline]
11438    pub fn op(&self) -> Option<Op> {
11439        support::child(&self.syntax)
11440    }
11441    #[inline]
11442    pub fn path(&self) -> Option<Path> {
11443        support::child(&self.syntax)
11444    }
11445    #[inline]
11446    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11447        support::token(&self.syntax, SyntaxKind::L_PAREN)
11448    }
11449    #[inline]
11450    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11451        support::token(&self.syntax, SyntaxKind::R_PAREN)
11452    }
11453    #[inline]
11454    pub fn dot_token(&self) -> Option<SyntaxToken> {
11455        support::token(&self.syntax, SyntaxKind::DOT)
11456    }
11457    #[inline]
11458    pub fn operator_token(&self) -> Option<SyntaxToken> {
11459        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
11460    }
11461}
11462
11463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11464pub struct OperatorClassOptionList {
11465    pub(crate) syntax: SyntaxNode,
11466}
11467impl OperatorClassOptionList {
11468    #[inline]
11469    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
11470        support::children(&self.syntax)
11471    }
11472}
11473
11474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11475pub struct OptionItem {
11476    pub(crate) syntax: SyntaxNode,
11477}
11478impl OptionItem {
11479    #[inline]
11480    pub fn expr(&self) -> Option<Expr> {
11481        support::child(&self.syntax)
11482    }
11483    #[inline]
11484    pub fn default_token(&self) -> Option<SyntaxToken> {
11485        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11486    }
11487}
11488
11489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11490pub struct OptionItemList {
11491    pub(crate) syntax: SyntaxNode,
11492}
11493impl OptionItemList {
11494    #[inline]
11495    pub fn option_items(&self) -> AstChildren<OptionItem> {
11496        support::children(&self.syntax)
11497    }
11498    #[inline]
11499    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11500        support::token(&self.syntax, SyntaxKind::L_PAREN)
11501    }
11502    #[inline]
11503    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11504        support::token(&self.syntax, SyntaxKind::R_PAREN)
11505    }
11506}
11507
11508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11509pub struct OrReplace {
11510    pub(crate) syntax: SyntaxNode,
11511}
11512impl OrReplace {
11513    #[inline]
11514    pub fn or_token(&self) -> Option<SyntaxToken> {
11515        support::token(&self.syntax, SyntaxKind::OR_KW)
11516    }
11517    #[inline]
11518    pub fn replace_token(&self) -> Option<SyntaxToken> {
11519        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
11520    }
11521}
11522
11523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11524pub struct OrderByClause {
11525    pub(crate) syntax: SyntaxNode,
11526}
11527impl OrderByClause {
11528    #[inline]
11529    pub fn sort_by_list(&self) -> Option<SortByList> {
11530        support::child(&self.syntax)
11531    }
11532    #[inline]
11533    pub fn by_token(&self) -> Option<SyntaxToken> {
11534        support::token(&self.syntax, SyntaxKind::BY_KW)
11535    }
11536    #[inline]
11537    pub fn order_token(&self) -> Option<SyntaxToken> {
11538        support::token(&self.syntax, SyntaxKind::ORDER_KW)
11539    }
11540}
11541
11542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11543pub struct OverClause {
11544    pub(crate) syntax: SyntaxNode,
11545}
11546impl OverClause {
11547    #[inline]
11548    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11549        support::token(&self.syntax, SyntaxKind::L_PAREN)
11550    }
11551    #[inline]
11552    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11553        support::token(&self.syntax, SyntaxKind::R_PAREN)
11554    }
11555    #[inline]
11556    pub fn over_token(&self) -> Option<SyntaxToken> {
11557        support::token(&self.syntax, SyntaxKind::OVER_KW)
11558    }
11559}
11560
11561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11562pub struct OverlayFn {
11563    pub(crate) syntax: SyntaxNode,
11564}
11565impl OverlayFn {
11566    #[inline]
11567    pub fn expr(&self) -> Option<Expr> {
11568        support::child(&self.syntax)
11569    }
11570    #[inline]
11571    pub fn exprs(&self) -> AstChildren<Expr> {
11572        support::children(&self.syntax)
11573    }
11574    #[inline]
11575    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11576        support::token(&self.syntax, SyntaxKind::L_PAREN)
11577    }
11578    #[inline]
11579    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::R_PAREN)
11581    }
11582    #[inline]
11583    pub fn for_token(&self) -> Option<SyntaxToken> {
11584        support::token(&self.syntax, SyntaxKind::FOR_KW)
11585    }
11586    #[inline]
11587    pub fn from_token(&self) -> Option<SyntaxToken> {
11588        support::token(&self.syntax, SyntaxKind::FROM_KW)
11589    }
11590    #[inline]
11591    pub fn overlay_token(&self) -> Option<SyntaxToken> {
11592        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
11593    }
11594    #[inline]
11595    pub fn placing_token(&self) -> Option<SyntaxToken> {
11596        support::token(&self.syntax, SyntaxKind::PLACING_KW)
11597    }
11598}
11599
11600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11601pub struct OwnedByRoles {
11602    pub(crate) syntax: SyntaxNode,
11603}
11604impl OwnedByRoles {
11605    #[inline]
11606    pub fn role_ref_list(&self) -> Option<RoleRefList> {
11607        support::child(&self.syntax)
11608    }
11609    #[inline]
11610    pub fn by_token(&self) -> Option<SyntaxToken> {
11611        support::token(&self.syntax, SyntaxKind::BY_KW)
11612    }
11613    #[inline]
11614    pub fn owned_token(&self) -> Option<SyntaxToken> {
11615        support::token(&self.syntax, SyntaxKind::OWNED_KW)
11616    }
11617}
11618
11619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11620pub struct OwnerTo {
11621    pub(crate) syntax: SyntaxNode,
11622}
11623impl OwnerTo {
11624    #[inline]
11625    pub fn role_ref(&self) -> Option<RoleRef> {
11626        support::child(&self.syntax)
11627    }
11628    #[inline]
11629    pub fn owner_token(&self) -> Option<SyntaxToken> {
11630        support::token(&self.syntax, SyntaxKind::OWNER_KW)
11631    }
11632    #[inline]
11633    pub fn to_token(&self) -> Option<SyntaxToken> {
11634        support::token(&self.syntax, SyntaxKind::TO_KW)
11635    }
11636}
11637
11638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11639pub struct ParallelFuncOption {
11640    pub(crate) syntax: SyntaxNode,
11641}
11642impl ParallelFuncOption {
11643    #[inline]
11644    pub fn ident_token(&self) -> Option<SyntaxToken> {
11645        support::token(&self.syntax, SyntaxKind::IDENT)
11646    }
11647    #[inline]
11648    pub fn parallel_token(&self) -> Option<SyntaxToken> {
11649        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
11650    }
11651}
11652
11653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11654pub struct Param {
11655    pub(crate) syntax: SyntaxNode,
11656}
11657impl Param {
11658    #[inline]
11659    pub fn mode(&self) -> Option<ParamMode> {
11660        support::child(&self.syntax)
11661    }
11662    #[inline]
11663    pub fn name(&self) -> Option<Name> {
11664        support::child(&self.syntax)
11665    }
11666    #[inline]
11667    pub fn param_default(&self) -> Option<ParamDefault> {
11668        support::child(&self.syntax)
11669    }
11670    #[inline]
11671    pub fn ty(&self) -> Option<Type> {
11672        support::child(&self.syntax)
11673    }
11674}
11675
11676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11677pub struct ParamDefault {
11678    pub(crate) syntax: SyntaxNode,
11679}
11680impl ParamDefault {
11681    #[inline]
11682    pub fn expr(&self) -> Option<Expr> {
11683        support::child(&self.syntax)
11684    }
11685    #[inline]
11686    pub fn eq_token(&self) -> Option<SyntaxToken> {
11687        support::token(&self.syntax, SyntaxKind::EQ)
11688    }
11689    #[inline]
11690    pub fn default_token(&self) -> Option<SyntaxToken> {
11691        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11692    }
11693}
11694
11695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11696pub struct ParamIn {
11697    pub(crate) syntax: SyntaxNode,
11698}
11699impl ParamIn {
11700    #[inline]
11701    pub fn in_token(&self) -> Option<SyntaxToken> {
11702        support::token(&self.syntax, SyntaxKind::IN_KW)
11703    }
11704}
11705
11706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11707pub struct ParamInOut {
11708    pub(crate) syntax: SyntaxNode,
11709}
11710impl ParamInOut {
11711    #[inline]
11712    pub fn in_token(&self) -> Option<SyntaxToken> {
11713        support::token(&self.syntax, SyntaxKind::IN_KW)
11714    }
11715    #[inline]
11716    pub fn inout_token(&self) -> Option<SyntaxToken> {
11717        support::token(&self.syntax, SyntaxKind::INOUT_KW)
11718    }
11719    #[inline]
11720    pub fn out_token(&self) -> Option<SyntaxToken> {
11721        support::token(&self.syntax, SyntaxKind::OUT_KW)
11722    }
11723}
11724
11725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11726pub struct ParamList {
11727    pub(crate) syntax: SyntaxNode,
11728}
11729impl ParamList {
11730    #[inline]
11731    pub fn params(&self) -> AstChildren<Param> {
11732        support::children(&self.syntax)
11733    }
11734}
11735
11736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11737pub struct ParamOut {
11738    pub(crate) syntax: SyntaxNode,
11739}
11740impl ParamOut {
11741    #[inline]
11742    pub fn out_token(&self) -> Option<SyntaxToken> {
11743        support::token(&self.syntax, SyntaxKind::OUT_KW)
11744    }
11745}
11746
11747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11748pub struct ParamVariadic {
11749    pub(crate) syntax: SyntaxNode,
11750}
11751impl ParamVariadic {
11752    #[inline]
11753    pub fn variadic_token(&self) -> Option<SyntaxToken> {
11754        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
11755    }
11756}
11757
11758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11759pub struct ParenExpr {
11760    pub(crate) syntax: SyntaxNode,
11761}
11762impl ParenExpr {
11763    #[inline]
11764    pub fn expr(&self) -> Option<Expr> {
11765        support::child(&self.syntax)
11766    }
11767    #[inline]
11768    pub fn from_item(&self) -> Option<FromItem> {
11769        support::child(&self.syntax)
11770    }
11771    #[inline]
11772    pub fn select(&self) -> Option<Select> {
11773        support::child(&self.syntax)
11774    }
11775    #[inline]
11776    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11777        support::token(&self.syntax, SyntaxKind::L_PAREN)
11778    }
11779    #[inline]
11780    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11781        support::token(&self.syntax, SyntaxKind::R_PAREN)
11782    }
11783}
11784
11785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11786pub struct ParenSelect {
11787    pub(crate) syntax: SyntaxNode,
11788}
11789impl ParenSelect {
11790    #[inline]
11791    pub fn select(&self) -> Option<SelectVariant> {
11792        support::child(&self.syntax)
11793    }
11794    #[inline]
11795    pub fn with_clause(&self) -> Option<WithClause> {
11796        support::child(&self.syntax)
11797    }
11798    #[inline]
11799    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11800        support::token(&self.syntax, SyntaxKind::L_PAREN)
11801    }
11802    #[inline]
11803    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11804        support::token(&self.syntax, SyntaxKind::R_PAREN)
11805    }
11806}
11807
11808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11809pub struct Partition {
11810    pub(crate) syntax: SyntaxNode,
11811}
11812impl Partition {
11813    #[inline]
11814    pub fn partition_type(&self) -> Option<PartitionType> {
11815        support::child(&self.syntax)
11816    }
11817    #[inline]
11818    pub fn path(&self) -> Option<Path> {
11819        support::child(&self.syntax)
11820    }
11821    #[inline]
11822    pub fn partition_token(&self) -> Option<SyntaxToken> {
11823        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11824    }
11825}
11826
11827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11828pub struct PartitionBy {
11829    pub(crate) syntax: SyntaxNode,
11830}
11831impl PartitionBy {
11832    #[inline]
11833    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
11834        support::child(&self.syntax)
11835    }
11836    #[inline]
11837    pub fn by_token(&self) -> Option<SyntaxToken> {
11838        support::token(&self.syntax, SyntaxKind::BY_KW)
11839    }
11840    #[inline]
11841    pub fn ident_token(&self) -> Option<SyntaxToken> {
11842        support::token(&self.syntax, SyntaxKind::IDENT)
11843    }
11844    #[inline]
11845    pub fn partition_token(&self) -> Option<SyntaxToken> {
11846        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
11847    }
11848    #[inline]
11849    pub fn range_token(&self) -> Option<SyntaxToken> {
11850        support::token(&self.syntax, SyntaxKind::RANGE_KW)
11851    }
11852}
11853
11854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11855pub struct PartitionDefault {
11856    pub(crate) syntax: SyntaxNode,
11857}
11858impl PartitionDefault {
11859    #[inline]
11860    pub fn default_token(&self) -> Option<SyntaxToken> {
11861        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11862    }
11863}
11864
11865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11866pub struct PartitionForValuesFrom {
11867    pub(crate) syntax: SyntaxNode,
11868}
11869impl PartitionForValuesFrom {
11870    #[inline]
11871    pub fn exprs(&self) -> AstChildren<Expr> {
11872        support::children(&self.syntax)
11873    }
11874    #[inline]
11875    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11876        support::token(&self.syntax, SyntaxKind::L_PAREN)
11877    }
11878    #[inline]
11879    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11880        support::token(&self.syntax, SyntaxKind::R_PAREN)
11881    }
11882    #[inline]
11883    pub fn for_token(&self) -> Option<SyntaxToken> {
11884        support::token(&self.syntax, SyntaxKind::FOR_KW)
11885    }
11886    #[inline]
11887    pub fn from_token(&self) -> Option<SyntaxToken> {
11888        support::token(&self.syntax, SyntaxKind::FROM_KW)
11889    }
11890    #[inline]
11891    pub fn to_token(&self) -> Option<SyntaxToken> {
11892        support::token(&self.syntax, SyntaxKind::TO_KW)
11893    }
11894    #[inline]
11895    pub fn values_token(&self) -> Option<SyntaxToken> {
11896        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11897    }
11898}
11899
11900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11901pub struct PartitionForValuesIn {
11902    pub(crate) syntax: SyntaxNode,
11903}
11904impl PartitionForValuesIn {
11905    #[inline]
11906    pub fn exprs(&self) -> AstChildren<Expr> {
11907        support::children(&self.syntax)
11908    }
11909    #[inline]
11910    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11911        support::token(&self.syntax, SyntaxKind::L_PAREN)
11912    }
11913    #[inline]
11914    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11915        support::token(&self.syntax, SyntaxKind::R_PAREN)
11916    }
11917    #[inline]
11918    pub fn for_token(&self) -> Option<SyntaxToken> {
11919        support::token(&self.syntax, SyntaxKind::FOR_KW)
11920    }
11921    #[inline]
11922    pub fn in_token(&self) -> Option<SyntaxToken> {
11923        support::token(&self.syntax, SyntaxKind::IN_KW)
11924    }
11925    #[inline]
11926    pub fn values_token(&self) -> Option<SyntaxToken> {
11927        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11928    }
11929}
11930
11931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11932pub struct PartitionForValuesWith {
11933    pub(crate) syntax: SyntaxNode,
11934}
11935impl PartitionForValuesWith {
11936    #[inline]
11937    pub fn literal(&self) -> Option<Literal> {
11938        support::child(&self.syntax)
11939    }
11940    #[inline]
11941    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11942        support::token(&self.syntax, SyntaxKind::L_PAREN)
11943    }
11944    #[inline]
11945    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11946        support::token(&self.syntax, SyntaxKind::R_PAREN)
11947    }
11948    #[inline]
11949    pub fn comma_token(&self) -> Option<SyntaxToken> {
11950        support::token(&self.syntax, SyntaxKind::COMMA)
11951    }
11952    #[inline]
11953    pub fn for_token(&self) -> Option<SyntaxToken> {
11954        support::token(&self.syntax, SyntaxKind::FOR_KW)
11955    }
11956    #[inline]
11957    pub fn ident_token(&self) -> Option<SyntaxToken> {
11958        support::token(&self.syntax, SyntaxKind::IDENT)
11959    }
11960    #[inline]
11961    pub fn values_token(&self) -> Option<SyntaxToken> {
11962        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11963    }
11964    #[inline]
11965    pub fn with_token(&self) -> Option<SyntaxToken> {
11966        support::token(&self.syntax, SyntaxKind::WITH_KW)
11967    }
11968}
11969
11970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11971pub struct PartitionItem {
11972    pub(crate) syntax: SyntaxNode,
11973}
11974impl PartitionItem {
11975    #[inline]
11976    pub fn collate(&self) -> Option<Collate> {
11977        support::child(&self.syntax)
11978    }
11979    #[inline]
11980    pub fn expr(&self) -> Option<Expr> {
11981        support::child(&self.syntax)
11982    }
11983}
11984
11985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11986pub struct PartitionItemList {
11987    pub(crate) syntax: SyntaxNode,
11988}
11989impl PartitionItemList {
11990    #[inline]
11991    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
11992        support::children(&self.syntax)
11993    }
11994    #[inline]
11995    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11996        support::token(&self.syntax, SyntaxKind::L_PAREN)
11997    }
11998    #[inline]
11999    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12000        support::token(&self.syntax, SyntaxKind::R_PAREN)
12001    }
12002}
12003
12004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12005pub struct PartitionList {
12006    pub(crate) syntax: SyntaxNode,
12007}
12008impl PartitionList {
12009    #[inline]
12010    pub fn partitions(&self) -> AstChildren<Partition> {
12011        support::children(&self.syntax)
12012    }
12013    #[inline]
12014    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12015        support::token(&self.syntax, SyntaxKind::L_PAREN)
12016    }
12017    #[inline]
12018    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12019        support::token(&self.syntax, SyntaxKind::R_PAREN)
12020    }
12021}
12022
12023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12024pub struct PartitionOf {
12025    pub(crate) syntax: SyntaxNode,
12026}
12027impl PartitionOf {
12028    #[inline]
12029    pub fn path(&self) -> Option<Path> {
12030        support::child(&self.syntax)
12031    }
12032    #[inline]
12033    pub fn of_token(&self) -> Option<SyntaxToken> {
12034        support::token(&self.syntax, SyntaxKind::OF_KW)
12035    }
12036    #[inline]
12037    pub fn partition_token(&self) -> Option<SyntaxToken> {
12038        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
12039    }
12040}
12041
12042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12043pub struct Path {
12044    pub(crate) syntax: SyntaxNode,
12045}
12046impl Path {
12047    #[inline]
12048    pub fn qualifier(&self) -> Option<Path> {
12049        support::child(&self.syntax)
12050    }
12051    #[inline]
12052    pub fn segment(&self) -> Option<PathSegment> {
12053        support::child(&self.syntax)
12054    }
12055    #[inline]
12056    pub fn dot_token(&self) -> Option<SyntaxToken> {
12057        support::token(&self.syntax, SyntaxKind::DOT)
12058    }
12059}
12060
12061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12062pub struct PathSegment {
12063    pub(crate) syntax: SyntaxNode,
12064}
12065impl PathSegment {
12066    #[inline]
12067    pub fn name(&self) -> Option<Name> {
12068        support::child(&self.syntax)
12069    }
12070    #[inline]
12071    pub fn name_ref(&self) -> Option<NameRef> {
12072        support::child(&self.syntax)
12073    }
12074}
12075
12076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12077pub struct PathType {
12078    pub(crate) syntax: SyntaxNode,
12079}
12080impl PathType {
12081    #[inline]
12082    pub fn arg_list(&self) -> Option<ArgList> {
12083        support::child(&self.syntax)
12084    }
12085    #[inline]
12086    pub fn path(&self) -> Option<Path> {
12087        support::child(&self.syntax)
12088    }
12089}
12090
12091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12092pub struct PercentType {
12093    pub(crate) syntax: SyntaxNode,
12094}
12095impl PercentType {
12096    #[inline]
12097    pub fn percent_token(&self) -> Option<SyntaxToken> {
12098        support::token(&self.syntax, SyntaxKind::PERCENT)
12099    }
12100    #[inline]
12101    pub fn type_token(&self) -> Option<SyntaxToken> {
12102        support::token(&self.syntax, SyntaxKind::TYPE_KW)
12103    }
12104}
12105
12106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12107pub struct PercentTypeClause {
12108    pub(crate) syntax: SyntaxNode,
12109}
12110impl PercentTypeClause {
12111    #[inline]
12112    pub fn path(&self) -> Option<Path> {
12113        support::child(&self.syntax)
12114    }
12115    #[inline]
12116    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
12117        support::child(&self.syntax)
12118    }
12119}
12120
12121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12122pub struct PositionFn {
12123    pub(crate) syntax: SyntaxNode,
12124}
12125impl PositionFn {
12126    #[inline]
12127    pub fn expr(&self) -> Option<Expr> {
12128        support::child(&self.syntax)
12129    }
12130    #[inline]
12131    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12132        support::token(&self.syntax, SyntaxKind::L_PAREN)
12133    }
12134    #[inline]
12135    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12136        support::token(&self.syntax, SyntaxKind::R_PAREN)
12137    }
12138    #[inline]
12139    pub fn in_token(&self) -> Option<SyntaxToken> {
12140        support::token(&self.syntax, SyntaxKind::IN_KW)
12141    }
12142    #[inline]
12143    pub fn position_token(&self) -> Option<SyntaxToken> {
12144        support::token(&self.syntax, SyntaxKind::POSITION_KW)
12145    }
12146}
12147
12148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12149pub struct PostfixExpr {
12150    pub(crate) syntax: SyntaxNode,
12151}
12152impl PostfixExpr {
12153    #[inline]
12154    pub fn expr(&self) -> Option<Expr> {
12155        support::child(&self.syntax)
12156    }
12157}
12158
12159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12160pub struct PrefixExpr {
12161    pub(crate) syntax: SyntaxNode,
12162}
12163impl PrefixExpr {
12164    #[inline]
12165    pub fn expr(&self) -> Option<Expr> {
12166        support::child(&self.syntax)
12167    }
12168}
12169
12170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12171pub struct Prepare {
12172    pub(crate) syntax: SyntaxNode,
12173}
12174impl Prepare {
12175    #[inline]
12176    pub fn name(&self) -> Option<Name> {
12177        support::child(&self.syntax)
12178    }
12179    #[inline]
12180    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
12181        support::child(&self.syntax)
12182    }
12183    #[inline]
12184    pub fn as_token(&self) -> Option<SyntaxToken> {
12185        support::token(&self.syntax, SyntaxKind::AS_KW)
12186    }
12187    #[inline]
12188    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12189        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12190    }
12191}
12192
12193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12194pub struct PrepareTransaction {
12195    pub(crate) syntax: SyntaxNode,
12196}
12197impl PrepareTransaction {
12198    #[inline]
12199    pub fn literal(&self) -> Option<Literal> {
12200        support::child(&self.syntax)
12201    }
12202    #[inline]
12203    pub fn prepare_token(&self) -> Option<SyntaxToken> {
12204        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
12205    }
12206    #[inline]
12207    pub fn transaction_token(&self) -> Option<SyntaxToken> {
12208        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
12209    }
12210}
12211
12212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12213pub struct PreserveRows {
12214    pub(crate) syntax: SyntaxNode,
12215}
12216impl PreserveRows {
12217    #[inline]
12218    pub fn preserve_token(&self) -> Option<SyntaxToken> {
12219        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
12220    }
12221    #[inline]
12222    pub fn rows_token(&self) -> Option<SyntaxToken> {
12223        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12224    }
12225}
12226
12227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12228pub struct PrimaryKeyConstraint {
12229    pub(crate) syntax: SyntaxNode,
12230}
12231impl PrimaryKeyConstraint {
12232    #[inline]
12233    pub fn column_list(&self) -> Option<ColumnList> {
12234        support::child(&self.syntax)
12235    }
12236    #[inline]
12237    pub fn constraint_name(&self) -> Option<ConstraintName> {
12238        support::child(&self.syntax)
12239    }
12240    #[inline]
12241    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
12242        support::child(&self.syntax)
12243    }
12244    #[inline]
12245    pub fn using_index(&self) -> Option<UsingIndex> {
12246        support::child(&self.syntax)
12247    }
12248    #[inline]
12249    pub fn key_token(&self) -> Option<SyntaxToken> {
12250        support::token(&self.syntax, SyntaxKind::KEY_KW)
12251    }
12252    #[inline]
12253    pub fn primary_token(&self) -> Option<SyntaxToken> {
12254        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
12255    }
12256}
12257
12258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12259pub struct PrivilegeTarget {
12260    pub(crate) syntax: SyntaxNode,
12261}
12262impl PrivilegeTarget {
12263    #[inline]
12264    pub fn functions_token(&self) -> Option<SyntaxToken> {
12265        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
12266    }
12267    #[inline]
12268    pub fn large_token(&self) -> Option<SyntaxToken> {
12269        support::token(&self.syntax, SyntaxKind::LARGE_KW)
12270    }
12271    #[inline]
12272    pub fn objects_token(&self) -> Option<SyntaxToken> {
12273        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
12274    }
12275    #[inline]
12276    pub fn routines_token(&self) -> Option<SyntaxToken> {
12277        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
12278    }
12279    #[inline]
12280    pub fn schemas_token(&self) -> Option<SyntaxToken> {
12281        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
12282    }
12283    #[inline]
12284    pub fn sequences_token(&self) -> Option<SyntaxToken> {
12285        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
12286    }
12287    #[inline]
12288    pub fn tables_token(&self) -> Option<SyntaxToken> {
12289        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12290    }
12291    #[inline]
12292    pub fn types_token(&self) -> Option<SyntaxToken> {
12293        support::token(&self.syntax, SyntaxKind::TYPES_KW)
12294    }
12295}
12296
12297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12298pub struct Privileges {
12299    pub(crate) syntax: SyntaxNode,
12300}
12301impl Privileges {
12302    #[inline]
12303    pub fn column_list(&self) -> Option<ColumnList> {
12304        support::child(&self.syntax)
12305    }
12306    #[inline]
12307    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
12308        support::child(&self.syntax)
12309    }
12310    #[inline]
12311    pub fn all_token(&self) -> Option<SyntaxToken> {
12312        support::token(&self.syntax, SyntaxKind::ALL_KW)
12313    }
12314    #[inline]
12315    pub fn privileges_token(&self) -> Option<SyntaxToken> {
12316        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
12317    }
12318}
12319
12320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12321pub struct PublicationObject {
12322    pub(crate) syntax: SyntaxNode,
12323}
12324impl PublicationObject {
12325    #[inline]
12326    pub fn column_list(&self) -> Option<ColumnList> {
12327        support::child(&self.syntax)
12328    }
12329    #[inline]
12330    pub fn name_ref(&self) -> Option<NameRef> {
12331        support::child(&self.syntax)
12332    }
12333    #[inline]
12334    pub fn path(&self) -> Option<Path> {
12335        support::child(&self.syntax)
12336    }
12337    #[inline]
12338    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
12339        support::child(&self.syntax)
12340    }
12341    #[inline]
12342    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12343        support::token(&self.syntax, SyntaxKind::L_PAREN)
12344    }
12345    #[inline]
12346    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12347        support::token(&self.syntax, SyntaxKind::R_PAREN)
12348    }
12349    #[inline]
12350    pub fn star_token(&self) -> Option<SyntaxToken> {
12351        support::token(&self.syntax, SyntaxKind::STAR)
12352    }
12353    #[inline]
12354    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
12355        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
12356    }
12357    #[inline]
12358    pub fn in_token(&self) -> Option<SyntaxToken> {
12359        support::token(&self.syntax, SyntaxKind::IN_KW)
12360    }
12361    #[inline]
12362    pub fn only_token(&self) -> Option<SyntaxToken> {
12363        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12364    }
12365    #[inline]
12366    pub fn schema_token(&self) -> Option<SyntaxToken> {
12367        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12368    }
12369    #[inline]
12370    pub fn table_token(&self) -> Option<SyntaxToken> {
12371        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12372    }
12373    #[inline]
12374    pub fn tables_token(&self) -> Option<SyntaxToken> {
12375        support::token(&self.syntax, SyntaxKind::TABLES_KW)
12376    }
12377}
12378
12379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12380pub struct ReadCommitted {
12381    pub(crate) syntax: SyntaxNode,
12382}
12383impl ReadCommitted {
12384    #[inline]
12385    pub fn committed_token(&self) -> Option<SyntaxToken> {
12386        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
12387    }
12388    #[inline]
12389    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12390        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12391    }
12392    #[inline]
12393    pub fn level_token(&self) -> Option<SyntaxToken> {
12394        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12395    }
12396    #[inline]
12397    pub fn read_token(&self) -> Option<SyntaxToken> {
12398        support::token(&self.syntax, SyntaxKind::READ_KW)
12399    }
12400}
12401
12402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12403pub struct ReadOnly {
12404    pub(crate) syntax: SyntaxNode,
12405}
12406impl ReadOnly {
12407    #[inline]
12408    pub fn only_token(&self) -> Option<SyntaxToken> {
12409        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12410    }
12411    #[inline]
12412    pub fn read_token(&self) -> Option<SyntaxToken> {
12413        support::token(&self.syntax, SyntaxKind::READ_KW)
12414    }
12415}
12416
12417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12418pub struct ReadUncommitted {
12419    pub(crate) syntax: SyntaxNode,
12420}
12421impl ReadUncommitted {
12422    #[inline]
12423    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12424        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12425    }
12426    #[inline]
12427    pub fn level_token(&self) -> Option<SyntaxToken> {
12428        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12429    }
12430    #[inline]
12431    pub fn read_token(&self) -> Option<SyntaxToken> {
12432        support::token(&self.syntax, SyntaxKind::READ_KW)
12433    }
12434    #[inline]
12435    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
12436        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
12437    }
12438}
12439
12440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12441pub struct ReadWrite {
12442    pub(crate) syntax: SyntaxNode,
12443}
12444impl ReadWrite {
12445    #[inline]
12446    pub fn read_token(&self) -> Option<SyntaxToken> {
12447        support::token(&self.syntax, SyntaxKind::READ_KW)
12448    }
12449    #[inline]
12450    pub fn write_token(&self) -> Option<SyntaxToken> {
12451        support::token(&self.syntax, SyntaxKind::WRITE_KW)
12452    }
12453}
12454
12455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12456pub struct Reassign {
12457    pub(crate) syntax: SyntaxNode,
12458}
12459impl Reassign {
12460    #[inline]
12461    pub fn new_roles(&self) -> Option<RoleRefList> {
12462        support::child(&self.syntax)
12463    }
12464    #[inline]
12465    pub fn old_roles(&self) -> Option<RoleRefList> {
12466        support::child(&self.syntax)
12467    }
12468    #[inline]
12469    pub fn by_token(&self) -> Option<SyntaxToken> {
12470        support::token(&self.syntax, SyntaxKind::BY_KW)
12471    }
12472    #[inline]
12473    pub fn owned_token(&self) -> Option<SyntaxToken> {
12474        support::token(&self.syntax, SyntaxKind::OWNED_KW)
12475    }
12476    #[inline]
12477    pub fn reassign_token(&self) -> Option<SyntaxToken> {
12478        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
12479    }
12480    #[inline]
12481    pub fn to_token(&self) -> Option<SyntaxToken> {
12482        support::token(&self.syntax, SyntaxKind::TO_KW)
12483    }
12484}
12485
12486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12487pub struct ReferencesConstraint {
12488    pub(crate) syntax: SyntaxNode,
12489}
12490impl ReferencesConstraint {
12491    #[inline]
12492    pub fn column(&self) -> Option<NameRef> {
12493        support::child(&self.syntax)
12494    }
12495    #[inline]
12496    pub fn constraint_name(&self) -> Option<ConstraintName> {
12497        support::child(&self.syntax)
12498    }
12499    #[inline]
12500    pub fn match_type(&self) -> Option<MatchType> {
12501        support::child(&self.syntax)
12502    }
12503    #[inline]
12504    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
12505        support::child(&self.syntax)
12506    }
12507    #[inline]
12508    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
12509        support::child(&self.syntax)
12510    }
12511    #[inline]
12512    pub fn table(&self) -> Option<Path> {
12513        support::child(&self.syntax)
12514    }
12515    #[inline]
12516    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12517        support::token(&self.syntax, SyntaxKind::L_PAREN)
12518    }
12519    #[inline]
12520    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12521        support::token(&self.syntax, SyntaxKind::R_PAREN)
12522    }
12523    #[inline]
12524    pub fn references_token(&self) -> Option<SyntaxToken> {
12525        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
12526    }
12527}
12528
12529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12530pub struct Referencing {
12531    pub(crate) syntax: SyntaxNode,
12532}
12533impl Referencing {
12534    #[inline]
12535    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
12536        support::children(&self.syntax)
12537    }
12538    #[inline]
12539    pub fn referencing_token(&self) -> Option<SyntaxToken> {
12540        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
12541    }
12542}
12543
12544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12545pub struct ReferencingTable {
12546    pub(crate) syntax: SyntaxNode,
12547}
12548impl ReferencingTable {
12549    #[inline]
12550    pub fn name_ref(&self) -> Option<NameRef> {
12551        support::child(&self.syntax)
12552    }
12553    #[inline]
12554    pub fn as_token(&self) -> Option<SyntaxToken> {
12555        support::token(&self.syntax, SyntaxKind::AS_KW)
12556    }
12557    #[inline]
12558    pub fn new_token(&self) -> Option<SyntaxToken> {
12559        support::token(&self.syntax, SyntaxKind::NEW_KW)
12560    }
12561    #[inline]
12562    pub fn old_token(&self) -> Option<SyntaxToken> {
12563        support::token(&self.syntax, SyntaxKind::OLD_KW)
12564    }
12565    #[inline]
12566    pub fn table_token(&self) -> Option<SyntaxToken> {
12567        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12568    }
12569}
12570
12571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12572pub struct Refresh {
12573    pub(crate) syntax: SyntaxNode,
12574}
12575impl Refresh {
12576    #[inline]
12577    pub fn path(&self) -> Option<Path> {
12578        support::child(&self.syntax)
12579    }
12580    #[inline]
12581    pub fn with_data(&self) -> Option<WithData> {
12582        support::child(&self.syntax)
12583    }
12584    #[inline]
12585    pub fn with_no_data(&self) -> Option<WithNoData> {
12586        support::child(&self.syntax)
12587    }
12588    #[inline]
12589    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
12590        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
12591    }
12592    #[inline]
12593    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12594        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12595    }
12596    #[inline]
12597    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12598        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12599    }
12600    #[inline]
12601    pub fn view_token(&self) -> Option<SyntaxToken> {
12602        support::token(&self.syntax, SyntaxKind::VIEW_KW)
12603    }
12604}
12605
12606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12607pub struct RefreshCollationVersion {
12608    pub(crate) syntax: SyntaxNode,
12609}
12610impl RefreshCollationVersion {
12611    #[inline]
12612    pub fn collation_token(&self) -> Option<SyntaxToken> {
12613        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
12614    }
12615    #[inline]
12616    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12617        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12618    }
12619    #[inline]
12620    pub fn version_token(&self) -> Option<SyntaxToken> {
12621        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12622    }
12623}
12624
12625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12626pub struct RefreshVersion {
12627    pub(crate) syntax: SyntaxNode,
12628}
12629impl RefreshVersion {
12630    #[inline]
12631    pub fn refresh_token(&self) -> Option<SyntaxToken> {
12632        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
12633    }
12634    #[inline]
12635    pub fn version_token(&self) -> Option<SyntaxToken> {
12636        support::token(&self.syntax, SyntaxKind::VERSION_KW)
12637    }
12638}
12639
12640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12641pub struct Reindex {
12642    pub(crate) syntax: SyntaxNode,
12643}
12644impl Reindex {
12645    #[inline]
12646    pub fn path(&self) -> Option<Path> {
12647        support::child(&self.syntax)
12648    }
12649    #[inline]
12650    pub fn database_token(&self) -> Option<SyntaxToken> {
12651        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
12652    }
12653    #[inline]
12654    pub fn index_token(&self) -> Option<SyntaxToken> {
12655        support::token(&self.syntax, SyntaxKind::INDEX_KW)
12656    }
12657    #[inline]
12658    pub fn reindex_token(&self) -> Option<SyntaxToken> {
12659        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
12660    }
12661    #[inline]
12662    pub fn schema_token(&self) -> Option<SyntaxToken> {
12663        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
12664    }
12665    #[inline]
12666    pub fn system_token(&self) -> Option<SyntaxToken> {
12667        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
12668    }
12669    #[inline]
12670    pub fn table_token(&self) -> Option<SyntaxToken> {
12671        support::token(&self.syntax, SyntaxKind::TABLE_KW)
12672    }
12673}
12674
12675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12676pub struct RelationName {
12677    pub(crate) syntax: SyntaxNode,
12678}
12679impl RelationName {
12680    #[inline]
12681    pub fn path(&self) -> Option<Path> {
12682        support::child(&self.syntax)
12683    }
12684    #[inline]
12685    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12686        support::token(&self.syntax, SyntaxKind::L_PAREN)
12687    }
12688    #[inline]
12689    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12690        support::token(&self.syntax, SyntaxKind::R_PAREN)
12691    }
12692    #[inline]
12693    pub fn star_token(&self) -> Option<SyntaxToken> {
12694        support::token(&self.syntax, SyntaxKind::STAR)
12695    }
12696    #[inline]
12697    pub fn only_token(&self) -> Option<SyntaxToken> {
12698        support::token(&self.syntax, SyntaxKind::ONLY_KW)
12699    }
12700}
12701
12702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12703pub struct ReleaseSavepoint {
12704    pub(crate) syntax: SyntaxNode,
12705}
12706impl ReleaseSavepoint {
12707    #[inline]
12708    pub fn name_ref(&self) -> Option<NameRef> {
12709        support::child(&self.syntax)
12710    }
12711    #[inline]
12712    pub fn release_token(&self) -> Option<SyntaxToken> {
12713        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
12714    }
12715    #[inline]
12716    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
12717        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
12718    }
12719}
12720
12721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12722pub struct RenameColumn {
12723    pub(crate) syntax: SyntaxNode,
12724}
12725impl RenameColumn {
12726    #[inline]
12727    pub fn column_token(&self) -> Option<SyntaxToken> {
12728        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
12729    }
12730    #[inline]
12731    pub fn rename_token(&self) -> Option<SyntaxToken> {
12732        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12733    }
12734    #[inline]
12735    pub fn to_token(&self) -> Option<SyntaxToken> {
12736        support::token(&self.syntax, SyntaxKind::TO_KW)
12737    }
12738}
12739
12740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12741pub struct RenameConstraint {
12742    pub(crate) syntax: SyntaxNode,
12743}
12744impl RenameConstraint {
12745    #[inline]
12746    pub fn name(&self) -> Option<Name> {
12747        support::child(&self.syntax)
12748    }
12749    #[inline]
12750    pub fn name_ref(&self) -> Option<NameRef> {
12751        support::child(&self.syntax)
12752    }
12753    #[inline]
12754    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12755        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12756    }
12757    #[inline]
12758    pub fn rename_token(&self) -> Option<SyntaxToken> {
12759        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12760    }
12761    #[inline]
12762    pub fn to_token(&self) -> Option<SyntaxToken> {
12763        support::token(&self.syntax, SyntaxKind::TO_KW)
12764    }
12765}
12766
12767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12768pub struct RenameTo {
12769    pub(crate) syntax: SyntaxNode,
12770}
12771impl RenameTo {
12772    #[inline]
12773    pub fn name(&self) -> Option<Name> {
12774        support::child(&self.syntax)
12775    }
12776    #[inline]
12777    pub fn rename_token(&self) -> Option<SyntaxToken> {
12778        support::token(&self.syntax, SyntaxKind::RENAME_KW)
12779    }
12780    #[inline]
12781    pub fn to_token(&self) -> Option<SyntaxToken> {
12782        support::token(&self.syntax, SyntaxKind::TO_KW)
12783    }
12784}
12785
12786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12787pub struct RepeatableClause {
12788    pub(crate) syntax: SyntaxNode,
12789}
12790impl RepeatableClause {
12791    #[inline]
12792    pub fn expr(&self) -> Option<Expr> {
12793        support::child(&self.syntax)
12794    }
12795    #[inline]
12796    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12797        support::token(&self.syntax, SyntaxKind::L_PAREN)
12798    }
12799    #[inline]
12800    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12801        support::token(&self.syntax, SyntaxKind::R_PAREN)
12802    }
12803    #[inline]
12804    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12805        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12806    }
12807}
12808
12809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12810pub struct RepeatableRead {
12811    pub(crate) syntax: SyntaxNode,
12812}
12813impl RepeatableRead {
12814    #[inline]
12815    pub fn isolation_token(&self) -> Option<SyntaxToken> {
12816        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
12817    }
12818    #[inline]
12819    pub fn level_token(&self) -> Option<SyntaxToken> {
12820        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12821    }
12822    #[inline]
12823    pub fn read_token(&self) -> Option<SyntaxToken> {
12824        support::token(&self.syntax, SyntaxKind::READ_KW)
12825    }
12826    #[inline]
12827    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
12828        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
12829    }
12830}
12831
12832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12833pub struct ReplicaIdentity {
12834    pub(crate) syntax: SyntaxNode,
12835}
12836impl ReplicaIdentity {
12837    #[inline]
12838    pub fn identity_token(&self) -> Option<SyntaxToken> {
12839        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
12840    }
12841    #[inline]
12842    pub fn replica_token(&self) -> Option<SyntaxToken> {
12843        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
12844    }
12845}
12846
12847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12848pub struct Reset {
12849    pub(crate) syntax: SyntaxNode,
12850}
12851impl Reset {
12852    #[inline]
12853    pub fn name_ref(&self) -> Option<NameRef> {
12854        support::child(&self.syntax)
12855    }
12856    #[inline]
12857    pub fn all_token(&self) -> Option<SyntaxToken> {
12858        support::token(&self.syntax, SyntaxKind::ALL_KW)
12859    }
12860    #[inline]
12861    pub fn reset_token(&self) -> Option<SyntaxToken> {
12862        support::token(&self.syntax, SyntaxKind::RESET_KW)
12863    }
12864}
12865
12866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12867pub struct ResetConfigParam {
12868    pub(crate) syntax: SyntaxNode,
12869}
12870impl ResetConfigParam {
12871    #[inline]
12872    pub fn path(&self) -> Option<Path> {
12873        support::child(&self.syntax)
12874    }
12875    #[inline]
12876    pub fn all_token(&self) -> Option<SyntaxToken> {
12877        support::token(&self.syntax, SyntaxKind::ALL_KW)
12878    }
12879    #[inline]
12880    pub fn reset_token(&self) -> Option<SyntaxToken> {
12881        support::token(&self.syntax, SyntaxKind::RESET_KW)
12882    }
12883}
12884
12885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12886pub struct ResetFuncOption {
12887    pub(crate) syntax: SyntaxNode,
12888}
12889impl ResetFuncOption {
12890    #[inline]
12891    pub fn name_ref(&self) -> Option<NameRef> {
12892        support::child(&self.syntax)
12893    }
12894    #[inline]
12895    pub fn reset_token(&self) -> Option<SyntaxToken> {
12896        support::token(&self.syntax, SyntaxKind::RESET_KW)
12897    }
12898}
12899
12900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12901pub struct ResetOptions {
12902    pub(crate) syntax: SyntaxNode,
12903}
12904impl ResetOptions {
12905    #[inline]
12906    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12907        support::token(&self.syntax, SyntaxKind::L_PAREN)
12908    }
12909    #[inline]
12910    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12911        support::token(&self.syntax, SyntaxKind::R_PAREN)
12912    }
12913    #[inline]
12914    pub fn reset_token(&self) -> Option<SyntaxToken> {
12915        support::token(&self.syntax, SyntaxKind::RESET_KW)
12916    }
12917}
12918
12919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12920pub struct ResetSessionAuth {
12921    pub(crate) syntax: SyntaxNode,
12922}
12923impl ResetSessionAuth {
12924    #[inline]
12925    pub fn authorization_token(&self) -> Option<SyntaxToken> {
12926        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
12927    }
12928    #[inline]
12929    pub fn reset_token(&self) -> Option<SyntaxToken> {
12930        support::token(&self.syntax, SyntaxKind::RESET_KW)
12931    }
12932    #[inline]
12933    pub fn session_token(&self) -> Option<SyntaxToken> {
12934        support::token(&self.syntax, SyntaxKind::SESSION_KW)
12935    }
12936}
12937
12938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12939pub struct Restart {
12940    pub(crate) syntax: SyntaxNode,
12941}
12942impl Restart {
12943    #[inline]
12944    pub fn restart_token(&self) -> Option<SyntaxToken> {
12945        support::token(&self.syntax, SyntaxKind::RESTART_KW)
12946    }
12947    #[inline]
12948    pub fn with_token(&self) -> Option<SyntaxToken> {
12949        support::token(&self.syntax, SyntaxKind::WITH_KW)
12950    }
12951}
12952
12953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12954pub struct Restrict {
12955    pub(crate) syntax: SyntaxNode,
12956}
12957impl Restrict {
12958    #[inline]
12959    pub fn restrict_token(&self) -> Option<SyntaxToken> {
12960        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
12961    }
12962}
12963
12964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12965pub struct RetType {
12966    pub(crate) syntax: SyntaxNode,
12967}
12968impl RetType {
12969    #[inline]
12970    pub fn ty(&self) -> Option<Type> {
12971        support::child(&self.syntax)
12972    }
12973    #[inline]
12974    pub fn returns_token(&self) -> Option<SyntaxToken> {
12975        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
12976    }
12977}
12978
12979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12980pub struct ReturnFuncOption {
12981    pub(crate) syntax: SyntaxNode,
12982}
12983impl ReturnFuncOption {
12984    #[inline]
12985    pub fn expr(&self) -> Option<Expr> {
12986        support::child(&self.syntax)
12987    }
12988    #[inline]
12989    pub fn return_token(&self) -> Option<SyntaxToken> {
12990        support::token(&self.syntax, SyntaxKind::RETURN_KW)
12991    }
12992}
12993
12994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12995pub struct ReturningClause {
12996    pub(crate) syntax: SyntaxNode,
12997}
12998impl ReturningClause {
12999    #[inline]
13000    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
13001        support::child(&self.syntax)
13002    }
13003    #[inline]
13004    pub fn target_list(&self) -> Option<TargetList> {
13005        support::child(&self.syntax)
13006    }
13007    #[inline]
13008    pub fn returning_token(&self) -> Option<SyntaxToken> {
13009        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
13010    }
13011}
13012
13013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13014pub struct ReturningOption {
13015    pub(crate) syntax: SyntaxNode,
13016}
13017impl ReturningOption {
13018    #[inline]
13019    pub fn name(&self) -> Option<Name> {
13020        support::child(&self.syntax)
13021    }
13022    #[inline]
13023    pub fn as_token(&self) -> Option<SyntaxToken> {
13024        support::token(&self.syntax, SyntaxKind::AS_KW)
13025    }
13026    #[inline]
13027    pub fn new_token(&self) -> Option<SyntaxToken> {
13028        support::token(&self.syntax, SyntaxKind::NEW_KW)
13029    }
13030    #[inline]
13031    pub fn old_token(&self) -> Option<SyntaxToken> {
13032        support::token(&self.syntax, SyntaxKind::OLD_KW)
13033    }
13034}
13035
13036#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13037pub struct ReturningOptionList {
13038    pub(crate) syntax: SyntaxNode,
13039}
13040impl ReturningOptionList {
13041    #[inline]
13042    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
13043        support::children(&self.syntax)
13044    }
13045    #[inline]
13046    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13047        support::token(&self.syntax, SyntaxKind::L_PAREN)
13048    }
13049    #[inline]
13050    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13051        support::token(&self.syntax, SyntaxKind::R_PAREN)
13052    }
13053    #[inline]
13054    pub fn with_token(&self) -> Option<SyntaxToken> {
13055        support::token(&self.syntax, SyntaxKind::WITH_KW)
13056    }
13057}
13058
13059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13060pub struct Revoke {
13061    pub(crate) syntax: SyntaxNode,
13062}
13063impl Revoke {
13064    #[inline]
13065    pub fn name_refs(&self) -> AstChildren<NameRef> {
13066        support::children(&self.syntax)
13067    }
13068    #[inline]
13069    pub fn paths(&self) -> AstChildren<Path> {
13070        support::children(&self.syntax)
13071    }
13072    #[inline]
13073    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13074        support::child(&self.syntax)
13075    }
13076    #[inline]
13077    pub fn role_ref(&self) -> Option<RoleRef> {
13078        support::child(&self.syntax)
13079    }
13080    #[inline]
13081    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13082        support::child(&self.syntax)
13083    }
13084    #[inline]
13085    pub fn all_token(&self) -> Option<SyntaxToken> {
13086        support::token(&self.syntax, SyntaxKind::ALL_KW)
13087    }
13088    #[inline]
13089    pub fn by_token(&self) -> Option<SyntaxToken> {
13090        support::token(&self.syntax, SyntaxKind::BY_KW)
13091    }
13092    #[inline]
13093    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13094        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13095    }
13096    #[inline]
13097    pub fn for_token(&self) -> Option<SyntaxToken> {
13098        support::token(&self.syntax, SyntaxKind::FOR_KW)
13099    }
13100    #[inline]
13101    pub fn from_token(&self) -> Option<SyntaxToken> {
13102        support::token(&self.syntax, SyntaxKind::FROM_KW)
13103    }
13104    #[inline]
13105    pub fn grant_token(&self) -> Option<SyntaxToken> {
13106        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13107    }
13108    #[inline]
13109    pub fn granted_token(&self) -> Option<SyntaxToken> {
13110        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
13111    }
13112    #[inline]
13113    pub fn in_token(&self) -> Option<SyntaxToken> {
13114        support::token(&self.syntax, SyntaxKind::IN_KW)
13115    }
13116    #[inline]
13117    pub fn on_token(&self) -> Option<SyntaxToken> {
13118        support::token(&self.syntax, SyntaxKind::ON_KW)
13119    }
13120    #[inline]
13121    pub fn option_token(&self) -> Option<SyntaxToken> {
13122        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13123    }
13124    #[inline]
13125    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13126        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13127    }
13128    #[inline]
13129    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13130        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13131    }
13132    #[inline]
13133    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13134        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13135    }
13136    #[inline]
13137    pub fn schema_token(&self) -> Option<SyntaxToken> {
13138        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13139    }
13140    #[inline]
13141    pub fn table_token(&self) -> Option<SyntaxToken> {
13142        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13143    }
13144    #[inline]
13145    pub fn tables_token(&self) -> Option<SyntaxToken> {
13146        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13147    }
13148}
13149
13150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13151pub struct RevokeCommand {
13152    pub(crate) syntax: SyntaxNode,
13153}
13154impl RevokeCommand {
13155    #[inline]
13156    pub fn role_ref(&self) -> Option<RoleRef> {
13157        support::child(&self.syntax)
13158    }
13159    #[inline]
13160    pub fn all_token(&self) -> Option<SyntaxToken> {
13161        support::token(&self.syntax, SyntaxKind::ALL_KW)
13162    }
13163    #[inline]
13164    pub fn alter_token(&self) -> Option<SyntaxToken> {
13165        support::token(&self.syntax, SyntaxKind::ALTER_KW)
13166    }
13167    #[inline]
13168    pub fn create_token(&self) -> Option<SyntaxToken> {
13169        support::token(&self.syntax, SyntaxKind::CREATE_KW)
13170    }
13171    #[inline]
13172    pub fn delete_token(&self) -> Option<SyntaxToken> {
13173        support::token(&self.syntax, SyntaxKind::DELETE_KW)
13174    }
13175    #[inline]
13176    pub fn execute_token(&self) -> Option<SyntaxToken> {
13177        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
13178    }
13179    #[inline]
13180    pub fn ident_token(&self) -> Option<SyntaxToken> {
13181        support::token(&self.syntax, SyntaxKind::IDENT)
13182    }
13183    #[inline]
13184    pub fn insert_token(&self) -> Option<SyntaxToken> {
13185        support::token(&self.syntax, SyntaxKind::INSERT_KW)
13186    }
13187    #[inline]
13188    pub fn references_token(&self) -> Option<SyntaxToken> {
13189        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
13190    }
13191    #[inline]
13192    pub fn select_token(&self) -> Option<SyntaxToken> {
13193        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13194    }
13195    #[inline]
13196    pub fn system_token(&self) -> Option<SyntaxToken> {
13197        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
13198    }
13199    #[inline]
13200    pub fn temp_token(&self) -> Option<SyntaxToken> {
13201        support::token(&self.syntax, SyntaxKind::TEMP_KW)
13202    }
13203    #[inline]
13204    pub fn temporary_token(&self) -> Option<SyntaxToken> {
13205        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
13206    }
13207    #[inline]
13208    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13209        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13210    }
13211    #[inline]
13212    pub fn truncate_token(&self) -> Option<SyntaxToken> {
13213        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
13214    }
13215    #[inline]
13216    pub fn update_token(&self) -> Option<SyntaxToken> {
13217        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
13218    }
13219}
13220
13221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13222pub struct RevokeCommandList {
13223    pub(crate) syntax: SyntaxNode,
13224}
13225impl RevokeCommandList {
13226    #[inline]
13227    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
13228        support::children(&self.syntax)
13229    }
13230}
13231
13232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13233pub struct RevokeDefaultPrivileges {
13234    pub(crate) syntax: SyntaxNode,
13235}
13236impl RevokeDefaultPrivileges {
13237    #[inline]
13238    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
13239        support::child(&self.syntax)
13240    }
13241    #[inline]
13242    pub fn privileges(&self) -> Option<Privileges> {
13243        support::child(&self.syntax)
13244    }
13245    #[inline]
13246    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13247        support::child(&self.syntax)
13248    }
13249    #[inline]
13250    pub fn cascade_token(&self) -> Option<SyntaxToken> {
13251        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
13252    }
13253    #[inline]
13254    pub fn for_token(&self) -> Option<SyntaxToken> {
13255        support::token(&self.syntax, SyntaxKind::FOR_KW)
13256    }
13257    #[inline]
13258    pub fn from_token(&self) -> Option<SyntaxToken> {
13259        support::token(&self.syntax, SyntaxKind::FROM_KW)
13260    }
13261    #[inline]
13262    pub fn grant_token(&self) -> Option<SyntaxToken> {
13263        support::token(&self.syntax, SyntaxKind::GRANT_KW)
13264    }
13265    #[inline]
13266    pub fn on_token(&self) -> Option<SyntaxToken> {
13267        support::token(&self.syntax, SyntaxKind::ON_KW)
13268    }
13269    #[inline]
13270    pub fn option_token(&self) -> Option<SyntaxToken> {
13271        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13272    }
13273    #[inline]
13274    pub fn restrict_token(&self) -> Option<SyntaxToken> {
13275        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
13276    }
13277    #[inline]
13278    pub fn revoke_token(&self) -> Option<SyntaxToken> {
13279        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
13280    }
13281}
13282
13283#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13284pub struct Role {
13285    pub(crate) syntax: SyntaxNode,
13286}
13287impl Role {
13288    #[inline]
13289    pub fn name(&self) -> Option<Name> {
13290        support::child(&self.syntax)
13291    }
13292    #[inline]
13293    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13294        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13295    }
13296    #[inline]
13297    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13298        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13299    }
13300    #[inline]
13301    pub fn group_token(&self) -> Option<SyntaxToken> {
13302        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13303    }
13304    #[inline]
13305    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13306        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13307    }
13308}
13309
13310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13311pub struct RoleOption {
13312    pub(crate) syntax: SyntaxNode,
13313}
13314impl RoleOption {
13315    #[inline]
13316    pub fn inherit_token(&self) -> Option<SyntaxToken> {
13317        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
13318    }
13319}
13320
13321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13322pub struct RoleOptionList {
13323    pub(crate) syntax: SyntaxNode,
13324}
13325impl RoleOptionList {
13326    #[inline]
13327    pub fn role_options(&self) -> AstChildren<RoleOption> {
13328        support::children(&self.syntax)
13329    }
13330    #[inline]
13331    pub fn with_token(&self) -> Option<SyntaxToken> {
13332        support::token(&self.syntax, SyntaxKind::WITH_KW)
13333    }
13334}
13335
13336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13337pub struct RoleRef {
13338    pub(crate) syntax: SyntaxNode,
13339}
13340impl RoleRef {
13341    #[inline]
13342    pub fn name_ref(&self) -> Option<NameRef> {
13343        support::child(&self.syntax)
13344    }
13345    #[inline]
13346    pub fn current_role_token(&self) -> Option<SyntaxToken> {
13347        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
13348    }
13349    #[inline]
13350    pub fn current_user_token(&self) -> Option<SyntaxToken> {
13351        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
13352    }
13353    #[inline]
13354    pub fn group_token(&self) -> Option<SyntaxToken> {
13355        support::token(&self.syntax, SyntaxKind::GROUP_KW)
13356    }
13357    #[inline]
13358    pub fn session_user_token(&self) -> Option<SyntaxToken> {
13359        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
13360    }
13361}
13362
13363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13364pub struct RoleRefList {
13365    pub(crate) syntax: SyntaxNode,
13366}
13367impl RoleRefList {
13368    #[inline]
13369    pub fn role_refs(&self) -> AstChildren<RoleRef> {
13370        support::children(&self.syntax)
13371    }
13372}
13373
13374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13375pub struct Rollback {
13376    pub(crate) syntax: SyntaxNode,
13377}
13378impl Rollback {
13379    #[inline]
13380    pub fn literal(&self) -> Option<Literal> {
13381        support::child(&self.syntax)
13382    }
13383    #[inline]
13384    pub fn name_ref(&self) -> Option<NameRef> {
13385        support::child(&self.syntax)
13386    }
13387    #[inline]
13388    pub fn abort_token(&self) -> Option<SyntaxToken> {
13389        support::token(&self.syntax, SyntaxKind::ABORT_KW)
13390    }
13391    #[inline]
13392    pub fn and_token(&self) -> Option<SyntaxToken> {
13393        support::token(&self.syntax, SyntaxKind::AND_KW)
13394    }
13395    #[inline]
13396    pub fn chain_token(&self) -> Option<SyntaxToken> {
13397        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
13398    }
13399    #[inline]
13400    pub fn no_token(&self) -> Option<SyntaxToken> {
13401        support::token(&self.syntax, SyntaxKind::NO_KW)
13402    }
13403    #[inline]
13404    pub fn prepared_token(&self) -> Option<SyntaxToken> {
13405        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
13406    }
13407    #[inline]
13408    pub fn rollback_token(&self) -> Option<SyntaxToken> {
13409        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
13410    }
13411    #[inline]
13412    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13413        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13414    }
13415    #[inline]
13416    pub fn to_token(&self) -> Option<SyntaxToken> {
13417        support::token(&self.syntax, SyntaxKind::TO_KW)
13418    }
13419    #[inline]
13420    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13421        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13422    }
13423    #[inline]
13424    pub fn work_token(&self) -> Option<SyntaxToken> {
13425        support::token(&self.syntax, SyntaxKind::WORK_KW)
13426    }
13427}
13428
13429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13430pub struct Row {
13431    pub(crate) syntax: SyntaxNode,
13432}
13433impl Row {
13434    #[inline]
13435    pub fn exprs(&self) -> AstChildren<Expr> {
13436        support::children(&self.syntax)
13437    }
13438}
13439
13440#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13441pub struct RowList {
13442    pub(crate) syntax: SyntaxNode,
13443}
13444impl RowList {
13445    #[inline]
13446    pub fn rows(&self) -> AstChildren<Row> {
13447        support::children(&self.syntax)
13448    }
13449}
13450
13451#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13452pub struct RowsFuncOption {
13453    pub(crate) syntax: SyntaxNode,
13454}
13455impl RowsFuncOption {
13456    #[inline]
13457    pub fn rows_token(&self) -> Option<SyntaxToken> {
13458        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13459    }
13460}
13461
13462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13463pub struct Savepoint {
13464    pub(crate) syntax: SyntaxNode,
13465}
13466impl Savepoint {
13467    #[inline]
13468    pub fn name(&self) -> Option<Name> {
13469        support::child(&self.syntax)
13470    }
13471    #[inline]
13472    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
13473        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
13474    }
13475}
13476
13477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13478pub struct SecurityFuncOption {
13479    pub(crate) syntax: SyntaxNode,
13480}
13481impl SecurityFuncOption {
13482    #[inline]
13483    pub fn definer_token(&self) -> Option<SyntaxToken> {
13484        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
13485    }
13486    #[inline]
13487    pub fn invoker_token(&self) -> Option<SyntaxToken> {
13488        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
13489    }
13490    #[inline]
13491    pub fn security_token(&self) -> Option<SyntaxToken> {
13492        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13493    }
13494}
13495
13496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13497pub struct SecurityLabel {
13498    pub(crate) syntax: SyntaxNode,
13499}
13500impl SecurityLabel {
13501    #[inline]
13502    pub fn aggregate(&self) -> Option<Aggregate> {
13503        support::child(&self.syntax)
13504    }
13505    #[inline]
13506    pub fn for_provider(&self) -> Option<ForProvider> {
13507        support::child(&self.syntax)
13508    }
13509    #[inline]
13510    pub fn function_sig(&self) -> Option<FunctionSig> {
13511        support::child(&self.syntax)
13512    }
13513    #[inline]
13514    pub fn literal(&self) -> Option<Literal> {
13515        support::child(&self.syntax)
13516    }
13517    #[inline]
13518    pub fn path(&self) -> Option<Path> {
13519        support::child(&self.syntax)
13520    }
13521    #[inline]
13522    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
13523        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
13524    }
13525    #[inline]
13526    pub fn column_token(&self) -> Option<SyntaxToken> {
13527        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
13528    }
13529    #[inline]
13530    pub fn database_token(&self) -> Option<SyntaxToken> {
13531        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
13532    }
13533    #[inline]
13534    pub fn domain_token(&self) -> Option<SyntaxToken> {
13535        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
13536    }
13537    #[inline]
13538    pub fn event_token(&self) -> Option<SyntaxToken> {
13539        support::token(&self.syntax, SyntaxKind::EVENT_KW)
13540    }
13541    #[inline]
13542    pub fn foreign_token(&self) -> Option<SyntaxToken> {
13543        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
13544    }
13545    #[inline]
13546    pub fn function_token(&self) -> Option<SyntaxToken> {
13547        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
13548    }
13549    #[inline]
13550    pub fn is_token(&self) -> Option<SyntaxToken> {
13551        support::token(&self.syntax, SyntaxKind::IS_KW)
13552    }
13553    #[inline]
13554    pub fn label_token(&self) -> Option<SyntaxToken> {
13555        support::token(&self.syntax, SyntaxKind::LABEL_KW)
13556    }
13557    #[inline]
13558    pub fn language_token(&self) -> Option<SyntaxToken> {
13559        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
13560    }
13561    #[inline]
13562    pub fn large_token(&self) -> Option<SyntaxToken> {
13563        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13564    }
13565    #[inline]
13566    pub fn materialized_token(&self) -> Option<SyntaxToken> {
13567        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
13568    }
13569    #[inline]
13570    pub fn null_token(&self) -> Option<SyntaxToken> {
13571        support::token(&self.syntax, SyntaxKind::NULL_KW)
13572    }
13573    #[inline]
13574    pub fn object_token(&self) -> Option<SyntaxToken> {
13575        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
13576    }
13577    #[inline]
13578    pub fn on_token(&self) -> Option<SyntaxToken> {
13579        support::token(&self.syntax, SyntaxKind::ON_KW)
13580    }
13581    #[inline]
13582    pub fn procedural_token(&self) -> Option<SyntaxToken> {
13583        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
13584    }
13585    #[inline]
13586    pub fn procedure_token(&self) -> Option<SyntaxToken> {
13587        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
13588    }
13589    #[inline]
13590    pub fn publication_token(&self) -> Option<SyntaxToken> {
13591        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
13592    }
13593    #[inline]
13594    pub fn role_token(&self) -> Option<SyntaxToken> {
13595        support::token(&self.syntax, SyntaxKind::ROLE_KW)
13596    }
13597    #[inline]
13598    pub fn routine_token(&self) -> Option<SyntaxToken> {
13599        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
13600    }
13601    #[inline]
13602    pub fn schema_token(&self) -> Option<SyntaxToken> {
13603        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13604    }
13605    #[inline]
13606    pub fn security_token(&self) -> Option<SyntaxToken> {
13607        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
13608    }
13609    #[inline]
13610    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13611        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13612    }
13613    #[inline]
13614    pub fn subscription_token(&self) -> Option<SyntaxToken> {
13615        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
13616    }
13617    #[inline]
13618    pub fn table_token(&self) -> Option<SyntaxToken> {
13619        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13620    }
13621    #[inline]
13622    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
13623        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
13624    }
13625    #[inline]
13626    pub fn trigger_token(&self) -> Option<SyntaxToken> {
13627        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
13628    }
13629    #[inline]
13630    pub fn type_token(&self) -> Option<SyntaxToken> {
13631        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13632    }
13633    #[inline]
13634    pub fn view_token(&self) -> Option<SyntaxToken> {
13635        support::token(&self.syntax, SyntaxKind::VIEW_KW)
13636    }
13637}
13638
13639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13640pub struct Select {
13641    pub(crate) syntax: SyntaxNode,
13642}
13643impl Select {
13644    #[inline]
13645    pub fn fetch_clause(&self) -> Option<FetchClause> {
13646        support::child(&self.syntax)
13647    }
13648    #[inline]
13649    pub fn filter_clause(&self) -> Option<FilterClause> {
13650        support::child(&self.syntax)
13651    }
13652    #[inline]
13653    pub fn from_clause(&self) -> Option<FromClause> {
13654        support::child(&self.syntax)
13655    }
13656    #[inline]
13657    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13658        support::child(&self.syntax)
13659    }
13660    #[inline]
13661    pub fn having_clause(&self) -> Option<HavingClause> {
13662        support::child(&self.syntax)
13663    }
13664    #[inline]
13665    pub fn limit_clause(&self) -> Option<LimitClause> {
13666        support::child(&self.syntax)
13667    }
13668    #[inline]
13669    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13670        support::children(&self.syntax)
13671    }
13672    #[inline]
13673    pub fn offset_clause(&self) -> Option<OffsetClause> {
13674        support::child(&self.syntax)
13675    }
13676    #[inline]
13677    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13678        support::child(&self.syntax)
13679    }
13680    #[inline]
13681    pub fn select_clause(&self) -> Option<SelectClause> {
13682        support::child(&self.syntax)
13683    }
13684    #[inline]
13685    pub fn where_clause(&self) -> Option<WhereClause> {
13686        support::child(&self.syntax)
13687    }
13688    #[inline]
13689    pub fn window_clause(&self) -> Option<WindowClause> {
13690        support::child(&self.syntax)
13691    }
13692    #[inline]
13693    pub fn with_clause(&self) -> Option<WithClause> {
13694        support::child(&self.syntax)
13695    }
13696}
13697
13698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13699pub struct SelectClause {
13700    pub(crate) syntax: SyntaxNode,
13701}
13702impl SelectClause {
13703    #[inline]
13704    pub fn distinct_clause(&self) -> Option<DistinctClause> {
13705        support::child(&self.syntax)
13706    }
13707    #[inline]
13708    pub fn target_list(&self) -> Option<TargetList> {
13709        support::child(&self.syntax)
13710    }
13711    #[inline]
13712    pub fn all_token(&self) -> Option<SyntaxToken> {
13713        support::token(&self.syntax, SyntaxKind::ALL_KW)
13714    }
13715    #[inline]
13716    pub fn select_token(&self) -> Option<SyntaxToken> {
13717        support::token(&self.syntax, SyntaxKind::SELECT_KW)
13718    }
13719}
13720
13721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13722pub struct SelectInto {
13723    pub(crate) syntax: SyntaxNode,
13724}
13725impl SelectInto {
13726    #[inline]
13727    pub fn filter_clause(&self) -> Option<FilterClause> {
13728        support::child(&self.syntax)
13729    }
13730    #[inline]
13731    pub fn from_clause(&self) -> Option<FromClause> {
13732        support::child(&self.syntax)
13733    }
13734    #[inline]
13735    pub fn group_by_clause(&self) -> Option<GroupByClause> {
13736        support::child(&self.syntax)
13737    }
13738    #[inline]
13739    pub fn having_clause(&self) -> Option<HavingClause> {
13740        support::child(&self.syntax)
13741    }
13742    #[inline]
13743    pub fn into_clause(&self) -> Option<IntoClause> {
13744        support::child(&self.syntax)
13745    }
13746    #[inline]
13747    pub fn limit_clause(&self) -> Option<LimitClause> {
13748        support::child(&self.syntax)
13749    }
13750    #[inline]
13751    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
13752        support::children(&self.syntax)
13753    }
13754    #[inline]
13755    pub fn offset_clause(&self) -> Option<OffsetClause> {
13756        support::child(&self.syntax)
13757    }
13758    #[inline]
13759    pub fn order_by_clause(&self) -> Option<OrderByClause> {
13760        support::child(&self.syntax)
13761    }
13762    #[inline]
13763    pub fn select_clause(&self) -> Option<SelectClause> {
13764        support::child(&self.syntax)
13765    }
13766    #[inline]
13767    pub fn where_clause(&self) -> Option<WhereClause> {
13768        support::child(&self.syntax)
13769    }
13770    #[inline]
13771    pub fn window_clause(&self) -> Option<WindowClause> {
13772        support::child(&self.syntax)
13773    }
13774    #[inline]
13775    pub fn with_clause(&self) -> Option<WithClause> {
13776        support::child(&self.syntax)
13777    }
13778}
13779
13780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13781pub struct SequenceOption {
13782    pub(crate) syntax: SyntaxNode,
13783}
13784impl SequenceOption {
13785    #[inline]
13786    pub fn literal(&self) -> Option<Literal> {
13787        support::child(&self.syntax)
13788    }
13789    #[inline]
13790    pub fn name_ref(&self) -> Option<NameRef> {
13791        support::child(&self.syntax)
13792    }
13793    #[inline]
13794    pub fn path(&self) -> Option<Path> {
13795        support::child(&self.syntax)
13796    }
13797    #[inline]
13798    pub fn ty(&self) -> Option<Type> {
13799        support::child(&self.syntax)
13800    }
13801    #[inline]
13802    pub fn as_token(&self) -> Option<SyntaxToken> {
13803        support::token(&self.syntax, SyntaxKind::AS_KW)
13804    }
13805    #[inline]
13806    pub fn by_token(&self) -> Option<SyntaxToken> {
13807        support::token(&self.syntax, SyntaxKind::BY_KW)
13808    }
13809    #[inline]
13810    pub fn cycle_token(&self) -> Option<SyntaxToken> {
13811        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
13812    }
13813    #[inline]
13814    pub fn increment_token(&self) -> Option<SyntaxToken> {
13815        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
13816    }
13817    #[inline]
13818    pub fn logged_token(&self) -> Option<SyntaxToken> {
13819        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
13820    }
13821    #[inline]
13822    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
13823        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
13824    }
13825    #[inline]
13826    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
13827        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
13828    }
13829    #[inline]
13830    pub fn name_token(&self) -> Option<SyntaxToken> {
13831        support::token(&self.syntax, SyntaxKind::NAME_KW)
13832    }
13833    #[inline]
13834    pub fn no_token(&self) -> Option<SyntaxToken> {
13835        support::token(&self.syntax, SyntaxKind::NO_KW)
13836    }
13837    #[inline]
13838    pub fn none_token(&self) -> Option<SyntaxToken> {
13839        support::token(&self.syntax, SyntaxKind::NONE_KW)
13840    }
13841    #[inline]
13842    pub fn owned_token(&self) -> Option<SyntaxToken> {
13843        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13844    }
13845    #[inline]
13846    pub fn restart_token(&self) -> Option<SyntaxToken> {
13847        support::token(&self.syntax, SyntaxKind::RESTART_KW)
13848    }
13849    #[inline]
13850    pub fn sequence_token(&self) -> Option<SyntaxToken> {
13851        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
13852    }
13853    #[inline]
13854    pub fn start_token(&self) -> Option<SyntaxToken> {
13855        support::token(&self.syntax, SyntaxKind::START_KW)
13856    }
13857    #[inline]
13858    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
13859        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
13860    }
13861    #[inline]
13862    pub fn with_token(&self) -> Option<SyntaxToken> {
13863        support::token(&self.syntax, SyntaxKind::WITH_KW)
13864    }
13865}
13866
13867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13868pub struct SequenceOptionList {
13869    pub(crate) syntax: SyntaxNode,
13870}
13871impl SequenceOptionList {
13872    #[inline]
13873    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
13874        support::children(&self.syntax)
13875    }
13876    #[inline]
13877    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13878        support::token(&self.syntax, SyntaxKind::L_PAREN)
13879    }
13880    #[inline]
13881    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13882        support::token(&self.syntax, SyntaxKind::R_PAREN)
13883    }
13884}
13885
13886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13887pub struct Serializable {
13888    pub(crate) syntax: SyntaxNode,
13889}
13890impl Serializable {
13891    #[inline]
13892    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13893        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13894    }
13895    #[inline]
13896    pub fn level_token(&self) -> Option<SyntaxToken> {
13897        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13898    }
13899    #[inline]
13900    pub fn serializable_token(&self) -> Option<SyntaxToken> {
13901        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
13902    }
13903}
13904
13905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13906pub struct ServerName {
13907    pub(crate) syntax: SyntaxNode,
13908}
13909impl ServerName {
13910    #[inline]
13911    pub fn name_ref(&self) -> Option<NameRef> {
13912        support::child(&self.syntax)
13913    }
13914    #[inline]
13915    pub fn server_token(&self) -> Option<SyntaxToken> {
13916        support::token(&self.syntax, SyntaxKind::SERVER_KW)
13917    }
13918}
13919
13920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13921pub struct Set {
13922    pub(crate) syntax: SyntaxNode,
13923}
13924impl Set {
13925    #[inline]
13926    pub fn config_value(&self) -> Option<ConfigValue> {
13927        support::child(&self.syntax)
13928    }
13929    #[inline]
13930    pub fn config_values(&self) -> AstChildren<ConfigValue> {
13931        support::children(&self.syntax)
13932    }
13933    #[inline]
13934    pub fn literal(&self) -> Option<Literal> {
13935        support::child(&self.syntax)
13936    }
13937    #[inline]
13938    pub fn path(&self) -> Option<Path> {
13939        support::child(&self.syntax)
13940    }
13941    #[inline]
13942    pub fn eq_token(&self) -> Option<SyntaxToken> {
13943        support::token(&self.syntax, SyntaxKind::EQ)
13944    }
13945    #[inline]
13946    pub fn catalog_token(&self) -> Option<SyntaxToken> {
13947        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
13948    }
13949    #[inline]
13950    pub fn content_token(&self) -> Option<SyntaxToken> {
13951        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
13952    }
13953    #[inline]
13954    pub fn current_token(&self) -> Option<SyntaxToken> {
13955        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
13956    }
13957    #[inline]
13958    pub fn default_token(&self) -> Option<SyntaxToken> {
13959        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13960    }
13961    #[inline]
13962    pub fn document_token(&self) -> Option<SyntaxToken> {
13963        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
13964    }
13965    #[inline]
13966    pub fn from_token(&self) -> Option<SyntaxToken> {
13967        support::token(&self.syntax, SyntaxKind::FROM_KW)
13968    }
13969    #[inline]
13970    pub fn local_token(&self) -> Option<SyntaxToken> {
13971        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
13972    }
13973    #[inline]
13974    pub fn option_token(&self) -> Option<SyntaxToken> {
13975        support::token(&self.syntax, SyntaxKind::OPTION_KW)
13976    }
13977    #[inline]
13978    pub fn schema_token(&self) -> Option<SyntaxToken> {
13979        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13980    }
13981    #[inline]
13982    pub fn session_token(&self) -> Option<SyntaxToken> {
13983        support::token(&self.syntax, SyntaxKind::SESSION_KW)
13984    }
13985    #[inline]
13986    pub fn set_token(&self) -> Option<SyntaxToken> {
13987        support::token(&self.syntax, SyntaxKind::SET_KW)
13988    }
13989    #[inline]
13990    pub fn time_token(&self) -> Option<SyntaxToken> {
13991        support::token(&self.syntax, SyntaxKind::TIME_KW)
13992    }
13993    #[inline]
13994    pub fn to_token(&self) -> Option<SyntaxToken> {
13995        support::token(&self.syntax, SyntaxKind::TO_KW)
13996    }
13997    #[inline]
13998    pub fn xml_token(&self) -> Option<SyntaxToken> {
13999        support::token(&self.syntax, SyntaxKind::XML_KW)
14000    }
14001    #[inline]
14002    pub fn zone_token(&self) -> Option<SyntaxToken> {
14003        support::token(&self.syntax, SyntaxKind::ZONE_KW)
14004    }
14005}
14006
14007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14008pub struct SetAccessMethod {
14009    pub(crate) syntax: SyntaxNode,
14010}
14011impl SetAccessMethod {
14012    #[inline]
14013    pub fn name_ref(&self) -> Option<NameRef> {
14014        support::child(&self.syntax)
14015    }
14016    #[inline]
14017    pub fn access_token(&self) -> Option<SyntaxToken> {
14018        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
14019    }
14020    #[inline]
14021    pub fn method_token(&self) -> Option<SyntaxToken> {
14022        support::token(&self.syntax, SyntaxKind::METHOD_KW)
14023    }
14024    #[inline]
14025    pub fn set_token(&self) -> Option<SyntaxToken> {
14026        support::token(&self.syntax, SyntaxKind::SET_KW)
14027    }
14028}
14029
14030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14031pub struct SetClause {
14032    pub(crate) syntax: SyntaxNode,
14033}
14034impl SetClause {
14035    #[inline]
14036    pub fn set_column_list(&self) -> Option<SetColumnList> {
14037        support::child(&self.syntax)
14038    }
14039    #[inline]
14040    pub fn set_token(&self) -> Option<SyntaxToken> {
14041        support::token(&self.syntax, SyntaxKind::SET_KW)
14042    }
14043}
14044
14045#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14046pub struct SetColumnList {
14047    pub(crate) syntax: SyntaxNode,
14048}
14049impl SetColumnList {
14050    #[inline]
14051    pub fn set_columns(&self) -> AstChildren<SetColumn> {
14052        support::children(&self.syntax)
14053    }
14054}
14055
14056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14057pub struct SetCompression {
14058    pub(crate) syntax: SyntaxNode,
14059}
14060impl SetCompression {
14061    #[inline]
14062    pub fn compression_token(&self) -> Option<SyntaxToken> {
14063        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
14064    }
14065    #[inline]
14066    pub fn set_token(&self) -> Option<SyntaxToken> {
14067        support::token(&self.syntax, SyntaxKind::SET_KW)
14068    }
14069}
14070
14071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14072pub struct SetConfigParam {
14073    pub(crate) syntax: SyntaxNode,
14074}
14075impl SetConfigParam {
14076    #[inline]
14077    pub fn path(&self) -> Option<Path> {
14078        support::child(&self.syntax)
14079    }
14080    #[inline]
14081    pub fn set_token(&self) -> Option<SyntaxToken> {
14082        support::token(&self.syntax, SyntaxKind::SET_KW)
14083    }
14084}
14085
14086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14087pub struct SetConstraints {
14088    pub(crate) syntax: SyntaxNode,
14089}
14090impl SetConstraints {
14091    #[inline]
14092    pub fn paths(&self) -> AstChildren<Path> {
14093        support::children(&self.syntax)
14094    }
14095    #[inline]
14096    pub fn all_token(&self) -> Option<SyntaxToken> {
14097        support::token(&self.syntax, SyntaxKind::ALL_KW)
14098    }
14099    #[inline]
14100    pub fn constraints_token(&self) -> Option<SyntaxToken> {
14101        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
14102    }
14103    #[inline]
14104    pub fn deferred_token(&self) -> Option<SyntaxToken> {
14105        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
14106    }
14107    #[inline]
14108    pub fn immediate_token(&self) -> Option<SyntaxToken> {
14109        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
14110    }
14111    #[inline]
14112    pub fn set_token(&self) -> Option<SyntaxToken> {
14113        support::token(&self.syntax, SyntaxKind::SET_KW)
14114    }
14115}
14116
14117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14118pub struct SetDefault {
14119    pub(crate) syntax: SyntaxNode,
14120}
14121impl SetDefault {
14122    #[inline]
14123    pub fn expr(&self) -> Option<Expr> {
14124        support::child(&self.syntax)
14125    }
14126    #[inline]
14127    pub fn default_token(&self) -> Option<SyntaxToken> {
14128        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14129    }
14130    #[inline]
14131    pub fn set_token(&self) -> Option<SyntaxToken> {
14132        support::token(&self.syntax, SyntaxKind::SET_KW)
14133    }
14134}
14135
14136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14137pub struct SetDefaultColumns {
14138    pub(crate) syntax: SyntaxNode,
14139}
14140impl SetDefaultColumns {
14141    #[inline]
14142    pub fn column_list(&self) -> Option<ColumnList> {
14143        support::child(&self.syntax)
14144    }
14145    #[inline]
14146    pub fn default_token(&self) -> Option<SyntaxToken> {
14147        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14148    }
14149    #[inline]
14150    pub fn set_token(&self) -> Option<SyntaxToken> {
14151        support::token(&self.syntax, SyntaxKind::SET_KW)
14152    }
14153}
14154
14155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14156pub struct SetExpr {
14157    pub(crate) syntax: SyntaxNode,
14158}
14159impl SetExpr {
14160    #[inline]
14161    pub fn expr(&self) -> Option<Expr> {
14162        support::child(&self.syntax)
14163    }
14164    #[inline]
14165    pub fn default_token(&self) -> Option<SyntaxToken> {
14166        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14167    }
14168}
14169
14170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14171pub struct SetExprList {
14172    pub(crate) syntax: SyntaxNode,
14173}
14174impl SetExprList {
14175    #[inline]
14176    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
14177        support::children(&self.syntax)
14178    }
14179    #[inline]
14180    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14181        support::token(&self.syntax, SyntaxKind::L_PAREN)
14182    }
14183    #[inline]
14184    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14185        support::token(&self.syntax, SyntaxKind::R_PAREN)
14186    }
14187    #[inline]
14188    pub fn row_token(&self) -> Option<SyntaxToken> {
14189        support::token(&self.syntax, SyntaxKind::ROW_KW)
14190    }
14191}
14192
14193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14194pub struct SetExpression {
14195    pub(crate) syntax: SyntaxNode,
14196}
14197impl SetExpression {
14198    #[inline]
14199    pub fn expr(&self) -> Option<Expr> {
14200        support::child(&self.syntax)
14201    }
14202    #[inline]
14203    pub fn expression_token(&self) -> Option<SyntaxToken> {
14204        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
14205    }
14206    #[inline]
14207    pub fn set_token(&self) -> Option<SyntaxToken> {
14208        support::token(&self.syntax, SyntaxKind::SET_KW)
14209    }
14210}
14211
14212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14213pub struct SetFuncOption {
14214    pub(crate) syntax: SyntaxNode,
14215}
14216impl SetFuncOption {
14217    #[inline]
14218    pub fn set_token(&self) -> Option<SyntaxToken> {
14219        support::token(&self.syntax, SyntaxKind::SET_KW)
14220    }
14221}
14222
14223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14224pub struct SetGenerated {
14225    pub(crate) syntax: SyntaxNode,
14226}
14227impl SetGenerated {
14228    #[inline]
14229    pub fn set_token(&self) -> Option<SyntaxToken> {
14230        support::token(&self.syntax, SyntaxKind::SET_KW)
14231    }
14232}
14233
14234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14235pub struct SetGeneratedOptions {
14236    pub(crate) syntax: SyntaxNode,
14237}
14238impl SetGeneratedOptions {
14239    #[inline]
14240    pub fn generated_token(&self) -> Option<SyntaxToken> {
14241        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
14242    }
14243    #[inline]
14244    pub fn set_token(&self) -> Option<SyntaxToken> {
14245        support::token(&self.syntax, SyntaxKind::SET_KW)
14246    }
14247}
14248
14249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14250pub struct SetLogged {
14251    pub(crate) syntax: SyntaxNode,
14252}
14253impl SetLogged {
14254    #[inline]
14255    pub fn logged_token(&self) -> Option<SyntaxToken> {
14256        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
14257    }
14258    #[inline]
14259    pub fn set_token(&self) -> Option<SyntaxToken> {
14260        support::token(&self.syntax, SyntaxKind::SET_KW)
14261    }
14262}
14263
14264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14265pub struct SetMultipleColumns {
14266    pub(crate) syntax: SyntaxNode,
14267}
14268impl SetMultipleColumns {
14269    #[inline]
14270    pub fn column_list(&self) -> Option<ColumnList> {
14271        support::child(&self.syntax)
14272    }
14273    #[inline]
14274    pub fn paren_select(&self) -> Option<ParenSelect> {
14275        support::child(&self.syntax)
14276    }
14277    #[inline]
14278    pub fn set_expr_list(&self) -> Option<SetExprList> {
14279        support::child(&self.syntax)
14280    }
14281    #[inline]
14282    pub fn eq_token(&self) -> Option<SyntaxToken> {
14283        support::token(&self.syntax, SyntaxKind::EQ)
14284    }
14285}
14286
14287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14288pub struct SetNotNull {
14289    pub(crate) syntax: SyntaxNode,
14290}
14291impl SetNotNull {
14292    #[inline]
14293    pub fn not_token(&self) -> Option<SyntaxToken> {
14294        support::token(&self.syntax, SyntaxKind::NOT_KW)
14295    }
14296    #[inline]
14297    pub fn null_token(&self) -> Option<SyntaxToken> {
14298        support::token(&self.syntax, SyntaxKind::NULL_KW)
14299    }
14300    #[inline]
14301    pub fn set_token(&self) -> Option<SyntaxToken> {
14302        support::token(&self.syntax, SyntaxKind::SET_KW)
14303    }
14304}
14305
14306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14307pub struct SetNullColumns {
14308    pub(crate) syntax: SyntaxNode,
14309}
14310impl SetNullColumns {
14311    #[inline]
14312    pub fn column_list(&self) -> Option<ColumnList> {
14313        support::child(&self.syntax)
14314    }
14315    #[inline]
14316    pub fn null_token(&self) -> Option<SyntaxToken> {
14317        support::token(&self.syntax, SyntaxKind::NULL_KW)
14318    }
14319    #[inline]
14320    pub fn set_token(&self) -> Option<SyntaxToken> {
14321        support::token(&self.syntax, SyntaxKind::SET_KW)
14322    }
14323}
14324
14325#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14326pub struct SetOptions {
14327    pub(crate) syntax: SyntaxNode,
14328}
14329impl SetOptions {
14330    #[inline]
14331    pub fn attribute_list(&self) -> Option<AttributeList> {
14332        support::child(&self.syntax)
14333    }
14334    #[inline]
14335    pub fn set_token(&self) -> Option<SyntaxToken> {
14336        support::token(&self.syntax, SyntaxKind::SET_KW)
14337    }
14338}
14339
14340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14341pub struct SetOptionsList {
14342    pub(crate) syntax: SyntaxNode,
14343}
14344impl SetOptionsList {
14345    #[inline]
14346    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
14347        support::child(&self.syntax)
14348    }
14349    #[inline]
14350    pub fn options_token(&self) -> Option<SyntaxToken> {
14351        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
14352    }
14353    #[inline]
14354    pub fn set_token(&self) -> Option<SyntaxToken> {
14355        support::token(&self.syntax, SyntaxKind::SET_KW)
14356    }
14357}
14358
14359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14360pub struct SetRole {
14361    pub(crate) syntax: SyntaxNode,
14362}
14363impl SetRole {
14364    #[inline]
14365    pub fn role_ref(&self) -> Option<RoleRef> {
14366        support::child(&self.syntax)
14367    }
14368    #[inline]
14369    pub fn local_token(&self) -> Option<SyntaxToken> {
14370        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14371    }
14372    #[inline]
14373    pub fn none_token(&self) -> Option<SyntaxToken> {
14374        support::token(&self.syntax, SyntaxKind::NONE_KW)
14375    }
14376    #[inline]
14377    pub fn reset_token(&self) -> Option<SyntaxToken> {
14378        support::token(&self.syntax, SyntaxKind::RESET_KW)
14379    }
14380    #[inline]
14381    pub fn role_token(&self) -> Option<SyntaxToken> {
14382        support::token(&self.syntax, SyntaxKind::ROLE_KW)
14383    }
14384    #[inline]
14385    pub fn session_token(&self) -> Option<SyntaxToken> {
14386        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14387    }
14388    #[inline]
14389    pub fn set_token(&self) -> Option<SyntaxToken> {
14390        support::token(&self.syntax, SyntaxKind::SET_KW)
14391    }
14392}
14393
14394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14395pub struct SetSchema {
14396    pub(crate) syntax: SyntaxNode,
14397}
14398impl SetSchema {
14399    #[inline]
14400    pub fn name_ref(&self) -> Option<NameRef> {
14401        support::child(&self.syntax)
14402    }
14403    #[inline]
14404    pub fn schema_token(&self) -> Option<SyntaxToken> {
14405        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14406    }
14407    #[inline]
14408    pub fn set_token(&self) -> Option<SyntaxToken> {
14409        support::token(&self.syntax, SyntaxKind::SET_KW)
14410    }
14411}
14412
14413#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14414pub struct SetSequenceOption {
14415    pub(crate) syntax: SyntaxNode,
14416}
14417impl SetSequenceOption {
14418    #[inline]
14419    pub fn set_token(&self) -> Option<SyntaxToken> {
14420        support::token(&self.syntax, SyntaxKind::SET_KW)
14421    }
14422}
14423
14424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14425pub struct SetSessionAuth {
14426    pub(crate) syntax: SyntaxNode,
14427}
14428impl SetSessionAuth {
14429    #[inline]
14430    pub fn literal(&self) -> Option<Literal> {
14431        support::child(&self.syntax)
14432    }
14433    #[inline]
14434    pub fn role_ref(&self) -> Option<RoleRef> {
14435        support::child(&self.syntax)
14436    }
14437    #[inline]
14438    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14439        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14440    }
14441    #[inline]
14442    pub fn default_token(&self) -> Option<SyntaxToken> {
14443        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14444    }
14445    #[inline]
14446    pub fn local_token(&self) -> Option<SyntaxToken> {
14447        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
14448    }
14449    #[inline]
14450    pub fn session_token(&self) -> Option<SyntaxToken> {
14451        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14452    }
14453    #[inline]
14454    pub fn set_token(&self) -> Option<SyntaxToken> {
14455        support::token(&self.syntax, SyntaxKind::SET_KW)
14456    }
14457}
14458
14459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14460pub struct SetSingleColumn {
14461    pub(crate) syntax: SyntaxNode,
14462}
14463impl SetSingleColumn {
14464    #[inline]
14465    pub fn column(&self) -> Option<Column> {
14466        support::child(&self.syntax)
14467    }
14468    #[inline]
14469    pub fn set_expr(&self) -> Option<SetExpr> {
14470        support::child(&self.syntax)
14471    }
14472    #[inline]
14473    pub fn eq_token(&self) -> Option<SyntaxToken> {
14474        support::token(&self.syntax, SyntaxKind::EQ)
14475    }
14476}
14477
14478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14479pub struct SetStatistics {
14480    pub(crate) syntax: SyntaxNode,
14481}
14482impl SetStatistics {
14483    #[inline]
14484    pub fn set_token(&self) -> Option<SyntaxToken> {
14485        support::token(&self.syntax, SyntaxKind::SET_KW)
14486    }
14487    #[inline]
14488    pub fn statistics_token(&self) -> Option<SyntaxToken> {
14489        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
14490    }
14491}
14492
14493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14494pub struct SetStorage {
14495    pub(crate) syntax: SyntaxNode,
14496}
14497impl SetStorage {
14498    #[inline]
14499    pub fn set_token(&self) -> Option<SyntaxToken> {
14500        support::token(&self.syntax, SyntaxKind::SET_KW)
14501    }
14502    #[inline]
14503    pub fn storage_token(&self) -> Option<SyntaxToken> {
14504        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14505    }
14506}
14507
14508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14509pub struct SetTablespace {
14510    pub(crate) syntax: SyntaxNode,
14511}
14512impl SetTablespace {
14513    #[inline]
14514    pub fn path(&self) -> Option<Path> {
14515        support::child(&self.syntax)
14516    }
14517    #[inline]
14518    pub fn set_token(&self) -> Option<SyntaxToken> {
14519        support::token(&self.syntax, SyntaxKind::SET_KW)
14520    }
14521    #[inline]
14522    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
14523        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
14524    }
14525}
14526
14527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14528pub struct SetTransaction {
14529    pub(crate) syntax: SyntaxNode,
14530}
14531impl SetTransaction {
14532    #[inline]
14533    pub fn literal(&self) -> Option<Literal> {
14534        support::child(&self.syntax)
14535    }
14536    #[inline]
14537    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
14538        support::child(&self.syntax)
14539    }
14540    #[inline]
14541    pub fn as_token(&self) -> Option<SyntaxToken> {
14542        support::token(&self.syntax, SyntaxKind::AS_KW)
14543    }
14544    #[inline]
14545    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
14546        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
14547    }
14548    #[inline]
14549    pub fn session_token(&self) -> Option<SyntaxToken> {
14550        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14551    }
14552    #[inline]
14553    pub fn set_token(&self) -> Option<SyntaxToken> {
14554        support::token(&self.syntax, SyntaxKind::SET_KW)
14555    }
14556    #[inline]
14557    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
14558        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
14559    }
14560    #[inline]
14561    pub fn transaction_token(&self) -> Option<SyntaxToken> {
14562        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
14563    }
14564}
14565
14566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14567pub struct SetType {
14568    pub(crate) syntax: SyntaxNode,
14569}
14570impl SetType {
14571    #[inline]
14572    pub fn collate(&self) -> Option<Collate> {
14573        support::child(&self.syntax)
14574    }
14575    #[inline]
14576    pub fn ty(&self) -> Option<Type> {
14577        support::child(&self.syntax)
14578    }
14579    #[inline]
14580    pub fn set_token(&self) -> Option<SyntaxToken> {
14581        support::token(&self.syntax, SyntaxKind::SET_KW)
14582    }
14583    #[inline]
14584    pub fn type_token(&self) -> Option<SyntaxToken> {
14585        support::token(&self.syntax, SyntaxKind::TYPE_KW)
14586    }
14587}
14588
14589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14590pub struct SetUnlogged {
14591    pub(crate) syntax: SyntaxNode,
14592}
14593impl SetUnlogged {
14594    #[inline]
14595    pub fn set_token(&self) -> Option<SyntaxToken> {
14596        support::token(&self.syntax, SyntaxKind::SET_KW)
14597    }
14598    #[inline]
14599    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
14600        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
14601    }
14602}
14603
14604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14605pub struct SetWithoutCluster {
14606    pub(crate) syntax: SyntaxNode,
14607}
14608impl SetWithoutCluster {
14609    #[inline]
14610    pub fn cluster_token(&self) -> Option<SyntaxToken> {
14611        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
14612    }
14613    #[inline]
14614    pub fn set_token(&self) -> Option<SyntaxToken> {
14615        support::token(&self.syntax, SyntaxKind::SET_KW)
14616    }
14617    #[inline]
14618    pub fn without_token(&self) -> Option<SyntaxToken> {
14619        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14620    }
14621}
14622
14623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14624pub struct SetWithoutOids {
14625    pub(crate) syntax: SyntaxNode,
14626}
14627impl SetWithoutOids {
14628    #[inline]
14629    pub fn oids_token(&self) -> Option<SyntaxToken> {
14630        support::token(&self.syntax, SyntaxKind::OIDS_KW)
14631    }
14632    #[inline]
14633    pub fn set_token(&self) -> Option<SyntaxToken> {
14634        support::token(&self.syntax, SyntaxKind::SET_KW)
14635    }
14636    #[inline]
14637    pub fn without_token(&self) -> Option<SyntaxToken> {
14638        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
14639    }
14640}
14641
14642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14643pub struct Show {
14644    pub(crate) syntax: SyntaxNode,
14645}
14646impl Show {
14647    #[inline]
14648    pub fn show_token(&self) -> Option<SyntaxToken> {
14649        support::token(&self.syntax, SyntaxKind::SHOW_KW)
14650    }
14651}
14652
14653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14654pub struct SimilarTo {
14655    pub(crate) syntax: SyntaxNode,
14656}
14657impl SimilarTo {
14658    #[inline]
14659    pub fn similar_token(&self) -> Option<SyntaxToken> {
14660        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14661    }
14662    #[inline]
14663    pub fn to_token(&self) -> Option<SyntaxToken> {
14664        support::token(&self.syntax, SyntaxKind::TO_KW)
14665    }
14666}
14667
14668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14669pub struct SliceExpr {
14670    pub(crate) syntax: SyntaxNode,
14671}
14672impl SliceExpr {
14673    #[inline]
14674    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
14675        support::token(&self.syntax, SyntaxKind::L_BRACK)
14676    }
14677    #[inline]
14678    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
14679        support::token(&self.syntax, SyntaxKind::R_BRACK)
14680    }
14681    #[inline]
14682    pub fn colon_token(&self) -> Option<SyntaxToken> {
14683        support::token(&self.syntax, SyntaxKind::COLON)
14684    }
14685}
14686
14687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14688pub struct SomeFn {
14689    pub(crate) syntax: SyntaxNode,
14690}
14691impl SomeFn {
14692    #[inline]
14693    pub fn expr(&self) -> Option<Expr> {
14694        support::child(&self.syntax)
14695    }
14696    #[inline]
14697    pub fn select_variant(&self) -> Option<SelectVariant> {
14698        support::child(&self.syntax)
14699    }
14700    #[inline]
14701    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14702        support::token(&self.syntax, SyntaxKind::L_PAREN)
14703    }
14704    #[inline]
14705    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14706        support::token(&self.syntax, SyntaxKind::R_PAREN)
14707    }
14708    #[inline]
14709    pub fn some_token(&self) -> Option<SyntaxToken> {
14710        support::token(&self.syntax, SyntaxKind::SOME_KW)
14711    }
14712}
14713
14714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14715pub struct SortAsc {
14716    pub(crate) syntax: SyntaxNode,
14717}
14718impl SortAsc {
14719    #[inline]
14720    pub fn asc_token(&self) -> Option<SyntaxToken> {
14721        support::token(&self.syntax, SyntaxKind::ASC_KW)
14722    }
14723}
14724
14725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14726pub struct SortBy {
14727    pub(crate) syntax: SyntaxNode,
14728}
14729impl SortBy {
14730    #[inline]
14731    pub fn expr(&self) -> Option<Expr> {
14732        support::child(&self.syntax)
14733    }
14734    #[inline]
14735    pub fn nulls_first(&self) -> Option<NullsFirst> {
14736        support::child(&self.syntax)
14737    }
14738    #[inline]
14739    pub fn nulls_last(&self) -> Option<NullsLast> {
14740        support::child(&self.syntax)
14741    }
14742    #[inline]
14743    pub fn sort_asc(&self) -> Option<SortAsc> {
14744        support::child(&self.syntax)
14745    }
14746    #[inline]
14747    pub fn sort_desc(&self) -> Option<SortDesc> {
14748        support::child(&self.syntax)
14749    }
14750    #[inline]
14751    pub fn sort_using(&self) -> Option<SortUsing> {
14752        support::child(&self.syntax)
14753    }
14754}
14755
14756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14757pub struct SortByList {
14758    pub(crate) syntax: SyntaxNode,
14759}
14760impl SortByList {
14761    #[inline]
14762    pub fn sort_bys(&self) -> AstChildren<SortBy> {
14763        support::children(&self.syntax)
14764    }
14765}
14766
14767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14768pub struct SortDesc {
14769    pub(crate) syntax: SyntaxNode,
14770}
14771impl SortDesc {
14772    #[inline]
14773    pub fn desc_token(&self) -> Option<SyntaxToken> {
14774        support::token(&self.syntax, SyntaxKind::DESC_KW)
14775    }
14776}
14777
14778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14779pub struct SortUsing {
14780    pub(crate) syntax: SyntaxNode,
14781}
14782impl SortUsing {
14783    #[inline]
14784    pub fn op(&self) -> Option<Op> {
14785        support::child(&self.syntax)
14786    }
14787    #[inline]
14788    pub fn using_token(&self) -> Option<SyntaxToken> {
14789        support::token(&self.syntax, SyntaxKind::USING_KW)
14790    }
14791}
14792
14793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14794pub struct SourceFile {
14795    pub(crate) syntax: SyntaxNode,
14796}
14797impl SourceFile {
14798    #[inline]
14799    pub fn stmts(&self) -> AstChildren<Stmt> {
14800        support::children(&self.syntax)
14801    }
14802}
14803
14804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14805pub struct SplitPartition {
14806    pub(crate) syntax: SyntaxNode,
14807}
14808impl SplitPartition {
14809    #[inline]
14810    pub fn partition_list(&self) -> Option<PartitionList> {
14811        support::child(&self.syntax)
14812    }
14813    #[inline]
14814    pub fn into_token(&self) -> Option<SyntaxToken> {
14815        support::token(&self.syntax, SyntaxKind::INTO_KW)
14816    }
14817    #[inline]
14818    pub fn partition_token(&self) -> Option<SyntaxToken> {
14819        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
14820    }
14821    #[inline]
14822    pub fn split_token(&self) -> Option<SyntaxToken> {
14823        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
14824    }
14825}
14826
14827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14828pub struct Storage {
14829    pub(crate) syntax: SyntaxNode,
14830}
14831impl Storage {
14832    #[inline]
14833    pub fn default_token(&self) -> Option<SyntaxToken> {
14834        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
14835    }
14836    #[inline]
14837    pub fn external_token(&self) -> Option<SyntaxToken> {
14838        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
14839    }
14840    #[inline]
14841    pub fn ident_token(&self) -> Option<SyntaxToken> {
14842        support::token(&self.syntax, SyntaxKind::IDENT)
14843    }
14844    #[inline]
14845    pub fn storage_token(&self) -> Option<SyntaxToken> {
14846        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
14847    }
14848}
14849
14850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14851pub struct StrictFuncOption {
14852    pub(crate) syntax: SyntaxNode,
14853}
14854impl StrictFuncOption {
14855    #[inline]
14856    pub fn called_token(&self) -> Option<SyntaxToken> {
14857        support::token(&self.syntax, SyntaxKind::CALLED_KW)
14858    }
14859    #[inline]
14860    pub fn input_token(&self) -> Option<SyntaxToken> {
14861        support::token(&self.syntax, SyntaxKind::INPUT_KW)
14862    }
14863    #[inline]
14864    pub fn null_token(&self) -> Option<SyntaxToken> {
14865        support::token(&self.syntax, SyntaxKind::NULL_KW)
14866    }
14867    #[inline]
14868    pub fn on_token(&self) -> Option<SyntaxToken> {
14869        support::token(&self.syntax, SyntaxKind::ON_KW)
14870    }
14871    #[inline]
14872    pub fn returns_token(&self) -> Option<SyntaxToken> {
14873        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14874    }
14875    #[inline]
14876    pub fn strict_token(&self) -> Option<SyntaxToken> {
14877        support::token(&self.syntax, SyntaxKind::STRICT_KW)
14878    }
14879}
14880
14881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14882pub struct SubstringFn {
14883    pub(crate) syntax: SyntaxNode,
14884}
14885impl SubstringFn {
14886    #[inline]
14887    pub fn expr(&self) -> Option<Expr> {
14888        support::child(&self.syntax)
14889    }
14890    #[inline]
14891    pub fn exprs(&self) -> AstChildren<Expr> {
14892        support::children(&self.syntax)
14893    }
14894    #[inline]
14895    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14896        support::token(&self.syntax, SyntaxKind::L_PAREN)
14897    }
14898    #[inline]
14899    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14900        support::token(&self.syntax, SyntaxKind::R_PAREN)
14901    }
14902    #[inline]
14903    pub fn for_token(&self) -> Option<SyntaxToken> {
14904        support::token(&self.syntax, SyntaxKind::FOR_KW)
14905    }
14906    #[inline]
14907    pub fn from_token(&self) -> Option<SyntaxToken> {
14908        support::token(&self.syntax, SyntaxKind::FROM_KW)
14909    }
14910    #[inline]
14911    pub fn similar_token(&self) -> Option<SyntaxToken> {
14912        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
14913    }
14914    #[inline]
14915    pub fn substring_token(&self) -> Option<SyntaxToken> {
14916        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
14917    }
14918}
14919
14920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14921pub struct SupportFuncOption {
14922    pub(crate) syntax: SyntaxNode,
14923}
14924impl SupportFuncOption {
14925    #[inline]
14926    pub fn support_token(&self) -> Option<SyntaxToken> {
14927        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
14928    }
14929}
14930
14931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14932pub struct Table {
14933    pub(crate) syntax: SyntaxNode,
14934}
14935impl Table {
14936    #[inline]
14937    pub fn relation_name(&self) -> Option<RelationName> {
14938        support::child(&self.syntax)
14939    }
14940    #[inline]
14941    pub fn with_clause(&self) -> Option<WithClause> {
14942        support::child(&self.syntax)
14943    }
14944    #[inline]
14945    pub fn table_token(&self) -> Option<SyntaxToken> {
14946        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14947    }
14948}
14949
14950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14951pub struct TableAndColumns {
14952    pub(crate) syntax: SyntaxNode,
14953}
14954impl TableAndColumns {
14955    #[inline]
14956    pub fn column_list(&self) -> Option<ColumnList> {
14957        support::child(&self.syntax)
14958    }
14959    #[inline]
14960    pub fn relation_name(&self) -> Option<RelationName> {
14961        support::child(&self.syntax)
14962    }
14963}
14964
14965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14966pub struct TableAndColumnsList {
14967    pub(crate) syntax: SyntaxNode,
14968}
14969impl TableAndColumnsList {
14970    #[inline]
14971    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
14972        support::children(&self.syntax)
14973    }
14974}
14975
14976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14977pub struct TableArgList {
14978    pub(crate) syntax: SyntaxNode,
14979}
14980impl TableArgList {
14981    #[inline]
14982    pub fn args(&self) -> AstChildren<TableArg> {
14983        support::children(&self.syntax)
14984    }
14985    #[inline]
14986    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14987        support::token(&self.syntax, SyntaxKind::L_PAREN)
14988    }
14989    #[inline]
14990    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14991        support::token(&self.syntax, SyntaxKind::R_PAREN)
14992    }
14993}
14994
14995#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14996pub struct TableList {
14997    pub(crate) syntax: SyntaxNode,
14998}
14999impl TableList {
15000    #[inline]
15001    pub fn relation_names(&self) -> AstChildren<RelationName> {
15002        support::children(&self.syntax)
15003    }
15004}
15005
15006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15007pub struct TablesampleClause {
15008    pub(crate) syntax: SyntaxNode,
15009}
15010impl TablesampleClause {
15011    #[inline]
15012    pub fn call_expr(&self) -> Option<CallExpr> {
15013        support::child(&self.syntax)
15014    }
15015    #[inline]
15016    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
15017        support::child(&self.syntax)
15018    }
15019    #[inline]
15020    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
15021        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
15022    }
15023}
15024
15025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15026pub struct Tablespace {
15027    pub(crate) syntax: SyntaxNode,
15028}
15029impl Tablespace {
15030    #[inline]
15031    pub fn name_ref(&self) -> Option<NameRef> {
15032        support::child(&self.syntax)
15033    }
15034    #[inline]
15035    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15036        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15037    }
15038}
15039
15040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15041pub struct Target {
15042    pub(crate) syntax: SyntaxNode,
15043}
15044impl Target {
15045    #[inline]
15046    pub fn as_name(&self) -> Option<AsName> {
15047        support::child(&self.syntax)
15048    }
15049    #[inline]
15050    pub fn expr(&self) -> Option<Expr> {
15051        support::child(&self.syntax)
15052    }
15053    #[inline]
15054    pub fn star_token(&self) -> Option<SyntaxToken> {
15055        support::token(&self.syntax, SyntaxKind::STAR)
15056    }
15057}
15058
15059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15060pub struct TargetList {
15061    pub(crate) syntax: SyntaxNode,
15062}
15063impl TargetList {
15064    #[inline]
15065    pub fn targets(&self) -> AstChildren<Target> {
15066        support::children(&self.syntax)
15067    }
15068}
15069
15070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15071pub struct TimeType {
15072    pub(crate) syntax: SyntaxNode,
15073}
15074impl TimeType {
15075    #[inline]
15076    pub fn literal(&self) -> Option<Literal> {
15077        support::child(&self.syntax)
15078    }
15079    #[inline]
15080    pub fn timezone(&self) -> Option<Timezone> {
15081        support::child(&self.syntax)
15082    }
15083    #[inline]
15084    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15085        support::token(&self.syntax, SyntaxKind::L_PAREN)
15086    }
15087    #[inline]
15088    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15089        support::token(&self.syntax, SyntaxKind::R_PAREN)
15090    }
15091    #[inline]
15092    pub fn time_token(&self) -> Option<SyntaxToken> {
15093        support::token(&self.syntax, SyntaxKind::TIME_KW)
15094    }
15095    #[inline]
15096    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
15097        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
15098    }
15099}
15100
15101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15102pub struct Timing {
15103    pub(crate) syntax: SyntaxNode,
15104}
15105impl Timing {
15106    #[inline]
15107    pub fn after_token(&self) -> Option<SyntaxToken> {
15108        support::token(&self.syntax, SyntaxKind::AFTER_KW)
15109    }
15110    #[inline]
15111    pub fn before_token(&self) -> Option<SyntaxToken> {
15112        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
15113    }
15114    #[inline]
15115    pub fn instead_token(&self) -> Option<SyntaxToken> {
15116        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
15117    }
15118    #[inline]
15119    pub fn of_token(&self) -> Option<SyntaxToken> {
15120        support::token(&self.syntax, SyntaxKind::OF_KW)
15121    }
15122}
15123
15124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15125pub struct TransactionModeList {
15126    pub(crate) syntax: SyntaxNode,
15127}
15128impl TransactionModeList {
15129    #[inline]
15130    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
15131        support::children(&self.syntax)
15132    }
15133}
15134
15135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15136pub struct TransformFromFunc {
15137    pub(crate) syntax: SyntaxNode,
15138}
15139impl TransformFromFunc {
15140    #[inline]
15141    pub fn function_sig(&self) -> Option<FunctionSig> {
15142        support::child(&self.syntax)
15143    }
15144    #[inline]
15145    pub fn from_token(&self) -> Option<SyntaxToken> {
15146        support::token(&self.syntax, SyntaxKind::FROM_KW)
15147    }
15148    #[inline]
15149    pub fn function_token(&self) -> Option<SyntaxToken> {
15150        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15151    }
15152    #[inline]
15153    pub fn sql_token(&self) -> Option<SyntaxToken> {
15154        support::token(&self.syntax, SyntaxKind::SQL_KW)
15155    }
15156    #[inline]
15157    pub fn with_token(&self) -> Option<SyntaxToken> {
15158        support::token(&self.syntax, SyntaxKind::WITH_KW)
15159    }
15160}
15161
15162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15163pub struct TransformFuncOption {
15164    pub(crate) syntax: SyntaxNode,
15165}
15166impl TransformFuncOption {
15167    #[inline]
15168    pub fn transform_token(&self) -> Option<SyntaxToken> {
15169        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
15170    }
15171}
15172
15173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15174pub struct TransformToFunc {
15175    pub(crate) syntax: SyntaxNode,
15176}
15177impl TransformToFunc {
15178    #[inline]
15179    pub fn function_sig(&self) -> Option<FunctionSig> {
15180        support::child(&self.syntax)
15181    }
15182    #[inline]
15183    pub fn function_token(&self) -> Option<SyntaxToken> {
15184        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15185    }
15186    #[inline]
15187    pub fn sql_token(&self) -> Option<SyntaxToken> {
15188        support::token(&self.syntax, SyntaxKind::SQL_KW)
15189    }
15190    #[inline]
15191    pub fn to_token(&self) -> Option<SyntaxToken> {
15192        support::token(&self.syntax, SyntaxKind::TO_KW)
15193    }
15194    #[inline]
15195    pub fn with_token(&self) -> Option<SyntaxToken> {
15196        support::token(&self.syntax, SyntaxKind::WITH_KW)
15197    }
15198}
15199
15200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15201pub struct TriggerEvent {
15202    pub(crate) syntax: SyntaxNode,
15203}
15204impl TriggerEvent {
15205    #[inline]
15206    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
15207        support::child(&self.syntax)
15208    }
15209    #[inline]
15210    pub fn delete_token(&self) -> Option<SyntaxToken> {
15211        support::token(&self.syntax, SyntaxKind::DELETE_KW)
15212    }
15213    #[inline]
15214    pub fn insert_token(&self) -> Option<SyntaxToken> {
15215        support::token(&self.syntax, SyntaxKind::INSERT_KW)
15216    }
15217    #[inline]
15218    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15219        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15220    }
15221}
15222
15223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15224pub struct TriggerEventList {
15225    pub(crate) syntax: SyntaxNode,
15226}
15227impl TriggerEventList {
15228    #[inline]
15229    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
15230        support::children(&self.syntax)
15231    }
15232}
15233
15234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15235pub struct TriggerEventUpdate {
15236    pub(crate) syntax: SyntaxNode,
15237}
15238impl TriggerEventUpdate {
15239    #[inline]
15240    pub fn name_refs(&self) -> AstChildren<NameRef> {
15241        support::children(&self.syntax)
15242    }
15243    #[inline]
15244    pub fn of_token(&self) -> Option<SyntaxToken> {
15245        support::token(&self.syntax, SyntaxKind::OF_KW)
15246    }
15247    #[inline]
15248    pub fn update_token(&self) -> Option<SyntaxToken> {
15249        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15250    }
15251}
15252
15253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15254pub struct TrimFn {
15255    pub(crate) syntax: SyntaxNode,
15256}
15257impl TrimFn {
15258    #[inline]
15259    pub fn expr(&self) -> Option<Expr> {
15260        support::child(&self.syntax)
15261    }
15262    #[inline]
15263    pub fn exprs(&self) -> AstChildren<Expr> {
15264        support::children(&self.syntax)
15265    }
15266    #[inline]
15267    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15268        support::token(&self.syntax, SyntaxKind::L_PAREN)
15269    }
15270    #[inline]
15271    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15272        support::token(&self.syntax, SyntaxKind::R_PAREN)
15273    }
15274    #[inline]
15275    pub fn from_token(&self) -> Option<SyntaxToken> {
15276        support::token(&self.syntax, SyntaxKind::FROM_KW)
15277    }
15278    #[inline]
15279    pub fn trim_token(&self) -> Option<SyntaxToken> {
15280        support::token(&self.syntax, SyntaxKind::TRIM_KW)
15281    }
15282}
15283
15284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15285pub struct Truncate {
15286    pub(crate) syntax: SyntaxNode,
15287}
15288impl Truncate {
15289    #[inline]
15290    pub fn table_list(&self) -> Option<TableList> {
15291        support::child(&self.syntax)
15292    }
15293    #[inline]
15294    pub fn cascade_token(&self) -> Option<SyntaxToken> {
15295        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
15296    }
15297    #[inline]
15298    pub fn continue_token(&self) -> Option<SyntaxToken> {
15299        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
15300    }
15301    #[inline]
15302    pub fn identity_token(&self) -> Option<SyntaxToken> {
15303        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
15304    }
15305    #[inline]
15306    pub fn restart_token(&self) -> Option<SyntaxToken> {
15307        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15308    }
15309    #[inline]
15310    pub fn restrict_token(&self) -> Option<SyntaxToken> {
15311        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
15312    }
15313    #[inline]
15314    pub fn table_token(&self) -> Option<SyntaxToken> {
15315        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15316    }
15317    #[inline]
15318    pub fn truncate_token(&self) -> Option<SyntaxToken> {
15319        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
15320    }
15321}
15322
15323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15324pub struct TupleExpr {
15325    pub(crate) syntax: SyntaxNode,
15326}
15327impl TupleExpr {
15328    #[inline]
15329    pub fn exprs(&self) -> AstChildren<Expr> {
15330        support::children(&self.syntax)
15331    }
15332    #[inline]
15333    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15334        support::token(&self.syntax, SyntaxKind::L_PAREN)
15335    }
15336    #[inline]
15337    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15338        support::token(&self.syntax, SyntaxKind::R_PAREN)
15339    }
15340}
15341
15342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15343pub struct UnicodeNormalForm {
15344    pub(crate) syntax: SyntaxNode,
15345}
15346impl UnicodeNormalForm {
15347    #[inline]
15348    pub fn nfc_token(&self) -> Option<SyntaxToken> {
15349        support::token(&self.syntax, SyntaxKind::NFC_KW)
15350    }
15351    #[inline]
15352    pub fn nfd_token(&self) -> Option<SyntaxToken> {
15353        support::token(&self.syntax, SyntaxKind::NFD_KW)
15354    }
15355    #[inline]
15356    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
15357        support::token(&self.syntax, SyntaxKind::NFKC_KW)
15358    }
15359    #[inline]
15360    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
15361        support::token(&self.syntax, SyntaxKind::NFKD_KW)
15362    }
15363}
15364
15365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15366pub struct UniqueConstraint {
15367    pub(crate) syntax: SyntaxNode,
15368}
15369impl UniqueConstraint {
15370    #[inline]
15371    pub fn column_list(&self) -> Option<ColumnList> {
15372        support::child(&self.syntax)
15373    }
15374    #[inline]
15375    pub fn constraint_name(&self) -> Option<ConstraintName> {
15376        support::child(&self.syntax)
15377    }
15378    #[inline]
15379    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
15380        support::child(&self.syntax)
15381    }
15382    #[inline]
15383    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
15384        support::child(&self.syntax)
15385    }
15386    #[inline]
15387    pub fn using_index(&self) -> Option<UsingIndex> {
15388        support::child(&self.syntax)
15389    }
15390    #[inline]
15391    pub fn unique_token(&self) -> Option<SyntaxToken> {
15392        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
15393    }
15394}
15395
15396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15397pub struct Unlisten {
15398    pub(crate) syntax: SyntaxNode,
15399}
15400impl Unlisten {
15401    #[inline]
15402    pub fn name_ref(&self) -> Option<NameRef> {
15403        support::child(&self.syntax)
15404    }
15405    #[inline]
15406    pub fn star_token(&self) -> Option<SyntaxToken> {
15407        support::token(&self.syntax, SyntaxKind::STAR)
15408    }
15409    #[inline]
15410    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
15411        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
15412    }
15413}
15414
15415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15416pub struct Update {
15417    pub(crate) syntax: SyntaxNode,
15418}
15419impl Update {
15420    #[inline]
15421    pub fn alias(&self) -> Option<Alias> {
15422        support::child(&self.syntax)
15423    }
15424    #[inline]
15425    pub fn from_clause(&self) -> Option<FromClause> {
15426        support::child(&self.syntax)
15427    }
15428    #[inline]
15429    pub fn relation_name(&self) -> Option<RelationName> {
15430        support::child(&self.syntax)
15431    }
15432    #[inline]
15433    pub fn returning_clause(&self) -> Option<ReturningClause> {
15434        support::child(&self.syntax)
15435    }
15436    #[inline]
15437    pub fn set_clause(&self) -> Option<SetClause> {
15438        support::child(&self.syntax)
15439    }
15440    #[inline]
15441    pub fn where_clause(&self) -> Option<WhereClause> {
15442        support::child(&self.syntax)
15443    }
15444    #[inline]
15445    pub fn with_clause(&self) -> Option<WithClause> {
15446        support::child(&self.syntax)
15447    }
15448    #[inline]
15449    pub fn update_token(&self) -> Option<SyntaxToken> {
15450        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
15451    }
15452}
15453
15454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15455pub struct UsingClause {
15456    pub(crate) syntax: SyntaxNode,
15457}
15458impl UsingClause {
15459    #[inline]
15460    pub fn from_items(&self) -> AstChildren<FromItem> {
15461        support::children(&self.syntax)
15462    }
15463    #[inline]
15464    pub fn using_token(&self) -> Option<SyntaxToken> {
15465        support::token(&self.syntax, SyntaxKind::USING_KW)
15466    }
15467}
15468
15469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15470pub struct UsingExprClause {
15471    pub(crate) syntax: SyntaxNode,
15472}
15473impl UsingExprClause {
15474    #[inline]
15475    pub fn expr(&self) -> Option<Expr> {
15476        support::child(&self.syntax)
15477    }
15478    #[inline]
15479    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15480        support::token(&self.syntax, SyntaxKind::L_PAREN)
15481    }
15482    #[inline]
15483    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15484        support::token(&self.syntax, SyntaxKind::R_PAREN)
15485    }
15486    #[inline]
15487    pub fn using_token(&self) -> Option<SyntaxToken> {
15488        support::token(&self.syntax, SyntaxKind::USING_KW)
15489    }
15490}
15491
15492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15493pub struct UsingIndex {
15494    pub(crate) syntax: SyntaxNode,
15495}
15496impl UsingIndex {
15497    #[inline]
15498    pub fn name_ref(&self) -> Option<NameRef> {
15499        support::child(&self.syntax)
15500    }
15501    #[inline]
15502    pub fn index_token(&self) -> Option<SyntaxToken> {
15503        support::token(&self.syntax, SyntaxKind::INDEX_KW)
15504    }
15505    #[inline]
15506    pub fn using_token(&self) -> Option<SyntaxToken> {
15507        support::token(&self.syntax, SyntaxKind::USING_KW)
15508    }
15509}
15510
15511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15512pub struct UsingMethod {
15513    pub(crate) syntax: SyntaxNode,
15514}
15515impl UsingMethod {
15516    #[inline]
15517    pub fn name_ref(&self) -> Option<NameRef> {
15518        support::child(&self.syntax)
15519    }
15520    #[inline]
15521    pub fn using_token(&self) -> Option<SyntaxToken> {
15522        support::token(&self.syntax, SyntaxKind::USING_KW)
15523    }
15524}
15525
15526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15527pub struct UsingOnClause {
15528    pub(crate) syntax: SyntaxNode,
15529}
15530impl UsingOnClause {
15531    #[inline]
15532    pub fn from_item(&self) -> Option<FromItem> {
15533        support::child(&self.syntax)
15534    }
15535    #[inline]
15536    pub fn on_clause(&self) -> Option<OnClause> {
15537        support::child(&self.syntax)
15538    }
15539    #[inline]
15540    pub fn using_token(&self) -> Option<SyntaxToken> {
15541        support::token(&self.syntax, SyntaxKind::USING_KW)
15542    }
15543}
15544
15545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15546pub struct Vacuum {
15547    pub(crate) syntax: SyntaxNode,
15548}
15549impl Vacuum {
15550    #[inline]
15551    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
15552        support::child(&self.syntax)
15553    }
15554    #[inline]
15555    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
15556        support::child(&self.syntax)
15557    }
15558    #[inline]
15559    pub fn analyse_token(&self) -> Option<SyntaxToken> {
15560        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
15561    }
15562    #[inline]
15563    pub fn analyze_token(&self) -> Option<SyntaxToken> {
15564        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
15565    }
15566    #[inline]
15567    pub fn freeze_token(&self) -> Option<SyntaxToken> {
15568        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
15569    }
15570    #[inline]
15571    pub fn full_token(&self) -> Option<SyntaxToken> {
15572        support::token(&self.syntax, SyntaxKind::FULL_KW)
15573    }
15574    #[inline]
15575    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
15576        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
15577    }
15578    #[inline]
15579    pub fn verbose_token(&self) -> Option<SyntaxToken> {
15580        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
15581    }
15582}
15583
15584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15585pub struct VacuumOption {
15586    pub(crate) syntax: SyntaxNode,
15587}
15588impl VacuumOption {
15589    #[inline]
15590    pub fn literal(&self) -> Option<Literal> {
15591        support::child(&self.syntax)
15592    }
15593}
15594
15595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15596pub struct VacuumOptionList {
15597    pub(crate) syntax: SyntaxNode,
15598}
15599impl VacuumOptionList {
15600    #[inline]
15601    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
15602        support::children(&self.syntax)
15603    }
15604    #[inline]
15605    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15606        support::token(&self.syntax, SyntaxKind::L_PAREN)
15607    }
15608    #[inline]
15609    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15610        support::token(&self.syntax, SyntaxKind::R_PAREN)
15611    }
15612}
15613
15614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15615pub struct ValidateConstraint {
15616    pub(crate) syntax: SyntaxNode,
15617}
15618impl ValidateConstraint {
15619    #[inline]
15620    pub fn name_ref(&self) -> Option<NameRef> {
15621        support::child(&self.syntax)
15622    }
15623    #[inline]
15624    pub fn constraint_token(&self) -> Option<SyntaxToken> {
15625        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
15626    }
15627    #[inline]
15628    pub fn validate_token(&self) -> Option<SyntaxToken> {
15629        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
15630    }
15631}
15632
15633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15634pub struct Values {
15635    pub(crate) syntax: SyntaxNode,
15636}
15637impl Values {
15638    #[inline]
15639    pub fn row_list(&self) -> Option<RowList> {
15640        support::child(&self.syntax)
15641    }
15642    #[inline]
15643    pub fn with_clause(&self) -> Option<WithClause> {
15644        support::child(&self.syntax)
15645    }
15646    #[inline]
15647    pub fn values_token(&self) -> Option<SyntaxToken> {
15648        support::token(&self.syntax, SyntaxKind::VALUES_KW)
15649    }
15650}
15651
15652#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15653pub struct Variant {
15654    pub(crate) syntax: SyntaxNode,
15655}
15656impl Variant {
15657    #[inline]
15658    pub fn literal(&self) -> Option<Literal> {
15659        support::child(&self.syntax)
15660    }
15661}
15662
15663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15664pub struct VariantList {
15665    pub(crate) syntax: SyntaxNode,
15666}
15667impl VariantList {
15668    #[inline]
15669    pub fn variants(&self) -> AstChildren<Variant> {
15670        support::children(&self.syntax)
15671    }
15672    #[inline]
15673    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15674        support::token(&self.syntax, SyntaxKind::L_PAREN)
15675    }
15676    #[inline]
15677    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15678        support::token(&self.syntax, SyntaxKind::R_PAREN)
15679    }
15680}
15681
15682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15683pub struct VolatilityFuncOption {
15684    pub(crate) syntax: SyntaxNode,
15685}
15686impl VolatilityFuncOption {
15687    #[inline]
15688    pub fn immutable_token(&self) -> Option<SyntaxToken> {
15689        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
15690    }
15691    #[inline]
15692    pub fn stable_token(&self) -> Option<SyntaxToken> {
15693        support::token(&self.syntax, SyntaxKind::STABLE_KW)
15694    }
15695    #[inline]
15696    pub fn volatile_token(&self) -> Option<SyntaxToken> {
15697        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
15698    }
15699}
15700
15701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15702pub struct WhenClause {
15703    pub(crate) syntax: SyntaxNode,
15704}
15705impl WhenClause {
15706    #[inline]
15707    pub fn then_token(&self) -> Option<SyntaxToken> {
15708        support::token(&self.syntax, SyntaxKind::THEN_KW)
15709    }
15710    #[inline]
15711    pub fn when_token(&self) -> Option<SyntaxToken> {
15712        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15713    }
15714}
15715
15716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15717pub struct WhenClauseList {
15718    pub(crate) syntax: SyntaxNode,
15719}
15720impl WhenClauseList {
15721    #[inline]
15722    pub fn when_clause(&self) -> Option<WhenClause> {
15723        support::child(&self.syntax)
15724    }
15725    #[inline]
15726    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
15727        support::children(&self.syntax)
15728    }
15729}
15730
15731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15732pub struct WhenCondition {
15733    pub(crate) syntax: SyntaxNode,
15734}
15735impl WhenCondition {
15736    #[inline]
15737    pub fn expr(&self) -> Option<Expr> {
15738        support::child(&self.syntax)
15739    }
15740    #[inline]
15741    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15742        support::token(&self.syntax, SyntaxKind::L_PAREN)
15743    }
15744    #[inline]
15745    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15746        support::token(&self.syntax, SyntaxKind::R_PAREN)
15747    }
15748    #[inline]
15749    pub fn when_token(&self) -> Option<SyntaxToken> {
15750        support::token(&self.syntax, SyntaxKind::WHEN_KW)
15751    }
15752}
15753
15754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15755pub struct WhereClause {
15756    pub(crate) syntax: SyntaxNode,
15757}
15758impl WhereClause {
15759    #[inline]
15760    pub fn expr(&self) -> Option<Expr> {
15761        support::child(&self.syntax)
15762    }
15763    #[inline]
15764    pub fn where_token(&self) -> Option<SyntaxToken> {
15765        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15766    }
15767}
15768
15769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15770pub struct WhereConditionClause {
15771    pub(crate) syntax: SyntaxNode,
15772}
15773impl WhereConditionClause {
15774    #[inline]
15775    pub fn expr(&self) -> Option<Expr> {
15776        support::child(&self.syntax)
15777    }
15778    #[inline]
15779    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15780        support::token(&self.syntax, SyntaxKind::L_PAREN)
15781    }
15782    #[inline]
15783    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15784        support::token(&self.syntax, SyntaxKind::R_PAREN)
15785    }
15786    #[inline]
15787    pub fn where_token(&self) -> Option<SyntaxToken> {
15788        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15789    }
15790}
15791
15792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15793pub struct WhereCurrentOf {
15794    pub(crate) syntax: SyntaxNode,
15795}
15796impl WhereCurrentOf {
15797    #[inline]
15798    pub fn name_ref(&self) -> Option<NameRef> {
15799        support::child(&self.syntax)
15800    }
15801    #[inline]
15802    pub fn current_token(&self) -> Option<SyntaxToken> {
15803        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15804    }
15805    #[inline]
15806    pub fn of_token(&self) -> Option<SyntaxToken> {
15807        support::token(&self.syntax, SyntaxKind::OF_KW)
15808    }
15809    #[inline]
15810    pub fn where_token(&self) -> Option<SyntaxToken> {
15811        support::token(&self.syntax, SyntaxKind::WHERE_KW)
15812    }
15813}
15814
15815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15816pub struct WindowClause {
15817    pub(crate) syntax: SyntaxNode,
15818}
15819impl WindowClause {
15820    #[inline]
15821    pub fn window_defs(&self) -> AstChildren<WindowDef> {
15822        support::children(&self.syntax)
15823    }
15824    #[inline]
15825    pub fn window_token(&self) -> Option<SyntaxToken> {
15826        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15827    }
15828}
15829
15830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15831pub struct WindowDef {
15832    pub(crate) syntax: SyntaxNode,
15833}
15834impl WindowDef {
15835    #[inline]
15836    pub fn name(&self) -> Option<Name> {
15837        support::child(&self.syntax)
15838    }
15839    #[inline]
15840    pub fn window_spec(&self) -> Option<WindowSpec> {
15841        support::child(&self.syntax)
15842    }
15843    #[inline]
15844    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15845        support::token(&self.syntax, SyntaxKind::L_PAREN)
15846    }
15847    #[inline]
15848    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15849        support::token(&self.syntax, SyntaxKind::R_PAREN)
15850    }
15851    #[inline]
15852    pub fn as_token(&self) -> Option<SyntaxToken> {
15853        support::token(&self.syntax, SyntaxKind::AS_KW)
15854    }
15855}
15856
15857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15858pub struct WindowFuncOption {
15859    pub(crate) syntax: SyntaxNode,
15860}
15861impl WindowFuncOption {
15862    #[inline]
15863    pub fn window_token(&self) -> Option<SyntaxToken> {
15864        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
15865    }
15866}
15867
15868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15869pub struct WindowSpec {
15870    pub(crate) syntax: SyntaxNode,
15871}
15872impl WindowSpec {
15873    #[inline]
15874    pub fn exprs(&self) -> AstChildren<Expr> {
15875        support::children(&self.syntax)
15876    }
15877    #[inline]
15878    pub fn frame_clause(&self) -> Option<FrameClause> {
15879        support::child(&self.syntax)
15880    }
15881    #[inline]
15882    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15883        support::child(&self.syntax)
15884    }
15885    #[inline]
15886    pub fn by_token(&self) -> Option<SyntaxToken> {
15887        support::token(&self.syntax, SyntaxKind::BY_KW)
15888    }
15889    #[inline]
15890    pub fn ident_token(&self) -> Option<SyntaxToken> {
15891        support::token(&self.syntax, SyntaxKind::IDENT)
15892    }
15893    #[inline]
15894    pub fn partition_token(&self) -> Option<SyntaxToken> {
15895        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
15896    }
15897}
15898
15899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15900pub struct WithCheckExprClause {
15901    pub(crate) syntax: SyntaxNode,
15902}
15903impl WithCheckExprClause {
15904    #[inline]
15905    pub fn expr(&self) -> Option<Expr> {
15906        support::child(&self.syntax)
15907    }
15908    #[inline]
15909    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15910        support::token(&self.syntax, SyntaxKind::L_PAREN)
15911    }
15912    #[inline]
15913    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15914        support::token(&self.syntax, SyntaxKind::R_PAREN)
15915    }
15916    #[inline]
15917    pub fn check_token(&self) -> Option<SyntaxToken> {
15918        support::token(&self.syntax, SyntaxKind::CHECK_KW)
15919    }
15920    #[inline]
15921    pub fn with_token(&self) -> Option<SyntaxToken> {
15922        support::token(&self.syntax, SyntaxKind::WITH_KW)
15923    }
15924}
15925
15926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15927pub struct WithClause {
15928    pub(crate) syntax: SyntaxNode,
15929}
15930impl WithClause {
15931    #[inline]
15932    pub fn with_tables(&self) -> AstChildren<WithTable> {
15933        support::children(&self.syntax)
15934    }
15935    #[inline]
15936    pub fn recursive_token(&self) -> Option<SyntaxToken> {
15937        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
15938    }
15939    #[inline]
15940    pub fn with_token(&self) -> Option<SyntaxToken> {
15941        support::token(&self.syntax, SyntaxKind::WITH_KW)
15942    }
15943}
15944
15945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15946pub struct WithData {
15947    pub(crate) syntax: SyntaxNode,
15948}
15949impl WithData {
15950    #[inline]
15951    pub fn data_token(&self) -> Option<SyntaxToken> {
15952        support::token(&self.syntax, SyntaxKind::DATA_KW)
15953    }
15954    #[inline]
15955    pub fn with_token(&self) -> Option<SyntaxToken> {
15956        support::token(&self.syntax, SyntaxKind::WITH_KW)
15957    }
15958}
15959
15960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15961pub struct WithNoData {
15962    pub(crate) syntax: SyntaxNode,
15963}
15964impl WithNoData {
15965    #[inline]
15966    pub fn data_token(&self) -> Option<SyntaxToken> {
15967        support::token(&self.syntax, SyntaxKind::DATA_KW)
15968    }
15969    #[inline]
15970    pub fn no_token(&self) -> Option<SyntaxToken> {
15971        support::token(&self.syntax, SyntaxKind::NO_KW)
15972    }
15973    #[inline]
15974    pub fn with_token(&self) -> Option<SyntaxToken> {
15975        support::token(&self.syntax, SyntaxKind::WITH_KW)
15976    }
15977}
15978
15979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15980pub struct WithOptions {
15981    pub(crate) syntax: SyntaxNode,
15982}
15983impl WithOptions {
15984    #[inline]
15985    pub fn options_token(&self) -> Option<SyntaxToken> {
15986        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15987    }
15988    #[inline]
15989    pub fn with_token(&self) -> Option<SyntaxToken> {
15990        support::token(&self.syntax, SyntaxKind::WITH_KW)
15991    }
15992}
15993
15994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15995pub struct WithParams {
15996    pub(crate) syntax: SyntaxNode,
15997}
15998impl WithParams {
15999    #[inline]
16000    pub fn attribute_list(&self) -> Option<AttributeList> {
16001        support::child(&self.syntax)
16002    }
16003    #[inline]
16004    pub fn with_token(&self) -> Option<SyntaxToken> {
16005        support::token(&self.syntax, SyntaxKind::WITH_KW)
16006    }
16007}
16008
16009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16010pub struct WithTable {
16011    pub(crate) syntax: SyntaxNode,
16012}
16013impl WithTable {
16014    #[inline]
16015    pub fn column_list(&self) -> Option<ColumnList> {
16016        support::child(&self.syntax)
16017    }
16018    #[inline]
16019    pub fn materialized(&self) -> Option<Materialized> {
16020        support::child(&self.syntax)
16021    }
16022    #[inline]
16023    pub fn name(&self) -> Option<Name> {
16024        support::child(&self.syntax)
16025    }
16026    #[inline]
16027    pub fn not_materialized(&self) -> Option<NotMaterialized> {
16028        support::child(&self.syntax)
16029    }
16030    #[inline]
16031    pub fn query(&self) -> Option<WithQuery> {
16032        support::child(&self.syntax)
16033    }
16034    #[inline]
16035    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16036        support::token(&self.syntax, SyntaxKind::L_PAREN)
16037    }
16038    #[inline]
16039    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16040        support::token(&self.syntax, SyntaxKind::R_PAREN)
16041    }
16042    #[inline]
16043    pub fn as_token(&self) -> Option<SyntaxToken> {
16044        support::token(&self.syntax, SyntaxKind::AS_KW)
16045    }
16046}
16047
16048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16049pub struct WithTimezone {
16050    pub(crate) syntax: SyntaxNode,
16051}
16052impl WithTimezone {
16053    #[inline]
16054    pub fn time_token(&self) -> Option<SyntaxToken> {
16055        support::token(&self.syntax, SyntaxKind::TIME_KW)
16056    }
16057    #[inline]
16058    pub fn with_token(&self) -> Option<SyntaxToken> {
16059        support::token(&self.syntax, SyntaxKind::WITH_KW)
16060    }
16061    #[inline]
16062    pub fn zone_token(&self) -> Option<SyntaxToken> {
16063        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16064    }
16065}
16066
16067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16068pub struct WithinClause {
16069    pub(crate) syntax: SyntaxNode,
16070}
16071impl WithinClause {
16072    #[inline]
16073    pub fn order_by_clause(&self) -> Option<OrderByClause> {
16074        support::child(&self.syntax)
16075    }
16076    #[inline]
16077    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16078        support::token(&self.syntax, SyntaxKind::L_PAREN)
16079    }
16080    #[inline]
16081    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16082        support::token(&self.syntax, SyntaxKind::R_PAREN)
16083    }
16084    #[inline]
16085    pub fn group_token(&self) -> Option<SyntaxToken> {
16086        support::token(&self.syntax, SyntaxKind::GROUP_KW)
16087    }
16088    #[inline]
16089    pub fn within_token(&self) -> Option<SyntaxToken> {
16090        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
16091    }
16092}
16093
16094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16095pub struct WithoutOids {
16096    pub(crate) syntax: SyntaxNode,
16097}
16098impl WithoutOids {
16099    #[inline]
16100    pub fn oids_token(&self) -> Option<SyntaxToken> {
16101        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16102    }
16103    #[inline]
16104    pub fn without_token(&self) -> Option<SyntaxToken> {
16105        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16106    }
16107}
16108
16109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16110pub struct WithoutTimezone {
16111    pub(crate) syntax: SyntaxNode,
16112}
16113impl WithoutTimezone {
16114    #[inline]
16115    pub fn time_token(&self) -> Option<SyntaxToken> {
16116        support::token(&self.syntax, SyntaxKind::TIME_KW)
16117    }
16118    #[inline]
16119    pub fn without_token(&self) -> Option<SyntaxToken> {
16120        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16121    }
16122    #[inline]
16123    pub fn zone_token(&self) -> Option<SyntaxToken> {
16124        support::token(&self.syntax, SyntaxKind::ZONE_KW)
16125    }
16126}
16127
16128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16129pub struct XmlAttributeList {
16130    pub(crate) syntax: SyntaxNode,
16131}
16132impl XmlAttributeList {
16133    #[inline]
16134    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
16135        support::children(&self.syntax)
16136    }
16137}
16138
16139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16140pub struct XmlColumnOption {
16141    pub(crate) syntax: SyntaxNode,
16142}
16143impl XmlColumnOption {
16144    #[inline]
16145    pub fn expr(&self) -> Option<Expr> {
16146        support::child(&self.syntax)
16147    }
16148    #[inline]
16149    pub fn default_token(&self) -> Option<SyntaxToken> {
16150        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16151    }
16152    #[inline]
16153    pub fn ident_token(&self) -> Option<SyntaxToken> {
16154        support::token(&self.syntax, SyntaxKind::IDENT)
16155    }
16156    #[inline]
16157    pub fn not_token(&self) -> Option<SyntaxToken> {
16158        support::token(&self.syntax, SyntaxKind::NOT_KW)
16159    }
16160    #[inline]
16161    pub fn null_token(&self) -> Option<SyntaxToken> {
16162        support::token(&self.syntax, SyntaxKind::NULL_KW)
16163    }
16164    #[inline]
16165    pub fn path_token(&self) -> Option<SyntaxToken> {
16166        support::token(&self.syntax, SyntaxKind::PATH_KW)
16167    }
16168}
16169
16170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16171pub struct XmlColumnOptionList {
16172    pub(crate) syntax: SyntaxNode,
16173}
16174impl XmlColumnOptionList {
16175    #[inline]
16176    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
16177        support::child(&self.syntax)
16178    }
16179    #[inline]
16180    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
16181        support::children(&self.syntax)
16182    }
16183}
16184
16185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16186pub struct XmlElementFn {
16187    pub(crate) syntax: SyntaxNode,
16188}
16189impl XmlElementFn {
16190    #[inline]
16191    pub fn exprs(&self) -> AstChildren<Expr> {
16192        support::children(&self.syntax)
16193    }
16194    #[inline]
16195    pub fn name(&self) -> Option<Name> {
16196        support::child(&self.syntax)
16197    }
16198    #[inline]
16199    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16200        support::child(&self.syntax)
16201    }
16202    #[inline]
16203    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16204        support::token(&self.syntax, SyntaxKind::L_PAREN)
16205    }
16206    #[inline]
16207    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16208        support::token(&self.syntax, SyntaxKind::R_PAREN)
16209    }
16210    #[inline]
16211    pub fn comma_token(&self) -> Option<SyntaxToken> {
16212        support::token(&self.syntax, SyntaxKind::COMMA)
16213    }
16214    #[inline]
16215    pub fn name_token(&self) -> Option<SyntaxToken> {
16216        support::token(&self.syntax, SyntaxKind::NAME_KW)
16217    }
16218    #[inline]
16219    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
16220        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
16221    }
16222    #[inline]
16223    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
16224        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
16225    }
16226}
16227
16228#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16229pub struct XmlExistsFn {
16230    pub(crate) syntax: SyntaxNode,
16231}
16232impl XmlExistsFn {
16233    #[inline]
16234    pub fn expr(&self) -> Option<Expr> {
16235        support::child(&self.syntax)
16236    }
16237    #[inline]
16238    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16239        support::child(&self.syntax)
16240    }
16241    #[inline]
16242    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16243        support::token(&self.syntax, SyntaxKind::L_PAREN)
16244    }
16245    #[inline]
16246    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16247        support::token(&self.syntax, SyntaxKind::R_PAREN)
16248    }
16249    #[inline]
16250    pub fn passing_token(&self) -> Option<SyntaxToken> {
16251        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16252    }
16253    #[inline]
16254    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
16255        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
16256    }
16257}
16258
16259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16260pub struct XmlForestFn {
16261    pub(crate) syntax: SyntaxNode,
16262}
16263impl XmlForestFn {
16264    #[inline]
16265    pub fn xml_attribute_list(&self) -> Option<XmlAttributeList> {
16266        support::child(&self.syntax)
16267    }
16268    #[inline]
16269    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16270        support::token(&self.syntax, SyntaxKind::L_PAREN)
16271    }
16272    #[inline]
16273    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16274        support::token(&self.syntax, SyntaxKind::R_PAREN)
16275    }
16276    #[inline]
16277    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
16278        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
16279    }
16280}
16281
16282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16283pub struct XmlNamespace {
16284    pub(crate) syntax: SyntaxNode,
16285}
16286impl XmlNamespace {
16287    #[inline]
16288    pub fn expr(&self) -> Option<Expr> {
16289        support::child(&self.syntax)
16290    }
16291    #[inline]
16292    pub fn name(&self) -> Option<Name> {
16293        support::child(&self.syntax)
16294    }
16295    #[inline]
16296    pub fn as_token(&self) -> Option<SyntaxToken> {
16297        support::token(&self.syntax, SyntaxKind::AS_KW)
16298    }
16299    #[inline]
16300    pub fn default_token(&self) -> Option<SyntaxToken> {
16301        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16302    }
16303}
16304
16305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16306pub struct XmlNamespaceList {
16307    pub(crate) syntax: SyntaxNode,
16308}
16309impl XmlNamespaceList {
16310    #[inline]
16311    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
16312        support::children(&self.syntax)
16313    }
16314    #[inline]
16315    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16316        support::token(&self.syntax, SyntaxKind::L_PAREN)
16317    }
16318    #[inline]
16319    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16320        support::token(&self.syntax, SyntaxKind::R_PAREN)
16321    }
16322}
16323
16324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16325pub struct XmlParseFn {
16326    pub(crate) syntax: SyntaxNode,
16327}
16328impl XmlParseFn {
16329    #[inline]
16330    pub fn expr(&self) -> Option<Expr> {
16331        support::child(&self.syntax)
16332    }
16333    #[inline]
16334    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16335        support::token(&self.syntax, SyntaxKind::L_PAREN)
16336    }
16337    #[inline]
16338    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16339        support::token(&self.syntax, SyntaxKind::R_PAREN)
16340    }
16341    #[inline]
16342    pub fn content_token(&self) -> Option<SyntaxToken> {
16343        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16344    }
16345    #[inline]
16346    pub fn document_token(&self) -> Option<SyntaxToken> {
16347        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16348    }
16349    #[inline]
16350    pub fn preserve_token(&self) -> Option<SyntaxToken> {
16351        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
16352    }
16353    #[inline]
16354    pub fn strip_token(&self) -> Option<SyntaxToken> {
16355        support::token(&self.syntax, SyntaxKind::STRIP_KW)
16356    }
16357    #[inline]
16358    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
16359        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
16360    }
16361    #[inline]
16362    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
16363        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
16364    }
16365}
16366
16367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16368pub struct XmlPassingMech {
16369    pub(crate) syntax: SyntaxNode,
16370}
16371impl XmlPassingMech {
16372    #[inline]
16373    pub fn by_token(&self) -> Option<SyntaxToken> {
16374        support::token(&self.syntax, SyntaxKind::BY_KW)
16375    }
16376    #[inline]
16377    pub fn ref_token(&self) -> Option<SyntaxToken> {
16378        support::token(&self.syntax, SyntaxKind::REF_KW)
16379    }
16380    #[inline]
16381    pub fn value_token(&self) -> Option<SyntaxToken> {
16382        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16383    }
16384}
16385
16386#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16387pub struct XmlPiFn {
16388    pub(crate) syntax: SyntaxNode,
16389}
16390impl XmlPiFn {
16391    #[inline]
16392    pub fn expr(&self) -> Option<Expr> {
16393        support::child(&self.syntax)
16394    }
16395    #[inline]
16396    pub fn name(&self) -> Option<Name> {
16397        support::child(&self.syntax)
16398    }
16399    #[inline]
16400    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16401        support::token(&self.syntax, SyntaxKind::L_PAREN)
16402    }
16403    #[inline]
16404    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16405        support::token(&self.syntax, SyntaxKind::R_PAREN)
16406    }
16407    #[inline]
16408    pub fn comma_token(&self) -> Option<SyntaxToken> {
16409        support::token(&self.syntax, SyntaxKind::COMMA)
16410    }
16411    #[inline]
16412    pub fn name_token(&self) -> Option<SyntaxToken> {
16413        support::token(&self.syntax, SyntaxKind::NAME_KW)
16414    }
16415    #[inline]
16416    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
16417        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
16418    }
16419}
16420
16421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16422pub struct XmlRootFn {
16423    pub(crate) syntax: SyntaxNode,
16424}
16425impl XmlRootFn {
16426    #[inline]
16427    pub fn expr(&self) -> Option<Expr> {
16428        support::child(&self.syntax)
16429    }
16430    #[inline]
16431    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16432        support::token(&self.syntax, SyntaxKind::L_PAREN)
16433    }
16434    #[inline]
16435    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16436        support::token(&self.syntax, SyntaxKind::R_PAREN)
16437    }
16438    #[inline]
16439    pub fn comma_token(&self) -> Option<SyntaxToken> {
16440        support::token(&self.syntax, SyntaxKind::COMMA)
16441    }
16442    #[inline]
16443    pub fn no_token(&self) -> Option<SyntaxToken> {
16444        support::token(&self.syntax, SyntaxKind::NO_KW)
16445    }
16446    #[inline]
16447    pub fn standalone_token(&self) -> Option<SyntaxToken> {
16448        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
16449    }
16450    #[inline]
16451    pub fn value_token(&self) -> Option<SyntaxToken> {
16452        support::token(&self.syntax, SyntaxKind::VALUE_KW)
16453    }
16454    #[inline]
16455    pub fn version_token(&self) -> Option<SyntaxToken> {
16456        support::token(&self.syntax, SyntaxKind::VERSION_KW)
16457    }
16458    #[inline]
16459    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
16460        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
16461    }
16462    #[inline]
16463    pub fn yes_token(&self) -> Option<SyntaxToken> {
16464        support::token(&self.syntax, SyntaxKind::YES_KW)
16465    }
16466}
16467
16468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16469pub struct XmlRowPassingClause {
16470    pub(crate) syntax: SyntaxNode,
16471}
16472impl XmlRowPassingClause {
16473    #[inline]
16474    pub fn expr(&self) -> Option<Expr> {
16475        support::child(&self.syntax)
16476    }
16477    #[inline]
16478    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
16479        support::child(&self.syntax)
16480    }
16481    #[inline]
16482    pub fn passing_token(&self) -> Option<SyntaxToken> {
16483        support::token(&self.syntax, SyntaxKind::PASSING_KW)
16484    }
16485}
16486
16487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16488pub struct XmlSerializeFn {
16489    pub(crate) syntax: SyntaxNode,
16490}
16491impl XmlSerializeFn {
16492    #[inline]
16493    pub fn expr(&self) -> Option<Expr> {
16494        support::child(&self.syntax)
16495    }
16496    #[inline]
16497    pub fn ty(&self) -> Option<Type> {
16498        support::child(&self.syntax)
16499    }
16500    #[inline]
16501    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16502        support::token(&self.syntax, SyntaxKind::L_PAREN)
16503    }
16504    #[inline]
16505    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16506        support::token(&self.syntax, SyntaxKind::R_PAREN)
16507    }
16508    #[inline]
16509    pub fn as_token(&self) -> Option<SyntaxToken> {
16510        support::token(&self.syntax, SyntaxKind::AS_KW)
16511    }
16512    #[inline]
16513    pub fn content_token(&self) -> Option<SyntaxToken> {
16514        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
16515    }
16516    #[inline]
16517    pub fn document_token(&self) -> Option<SyntaxToken> {
16518        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
16519    }
16520    #[inline]
16521    pub fn ident_token(&self) -> Option<SyntaxToken> {
16522        support::token(&self.syntax, SyntaxKind::IDENT)
16523    }
16524    #[inline]
16525    pub fn no_token(&self) -> Option<SyntaxToken> {
16526        support::token(&self.syntax, SyntaxKind::NO_KW)
16527    }
16528    #[inline]
16529    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
16530        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
16531    }
16532}
16533
16534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16535pub struct XmlTable {
16536    pub(crate) syntax: SyntaxNode,
16537}
16538impl XmlTable {
16539    #[inline]
16540    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
16541        support::child(&self.syntax)
16542    }
16543    #[inline]
16544    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
16545        support::child(&self.syntax)
16546    }
16547    #[inline]
16548    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
16549        support::child(&self.syntax)
16550    }
16551    #[inline]
16552    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16553        support::token(&self.syntax, SyntaxKind::L_PAREN)
16554    }
16555    #[inline]
16556    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16557        support::token(&self.syntax, SyntaxKind::R_PAREN)
16558    }
16559    #[inline]
16560    pub fn comma_token(&self) -> Option<SyntaxToken> {
16561        support::token(&self.syntax, SyntaxKind::COMMA)
16562    }
16563    #[inline]
16564    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
16565        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
16566    }
16567    #[inline]
16568    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
16569        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
16570    }
16571}
16572
16573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16574pub struct XmlTableColumn {
16575    pub(crate) syntax: SyntaxNode,
16576}
16577impl XmlTableColumn {
16578    #[inline]
16579    pub fn name(&self) -> Option<Name> {
16580        support::child(&self.syntax)
16581    }
16582    #[inline]
16583    pub fn ty(&self) -> Option<Type> {
16584        support::child(&self.syntax)
16585    }
16586    #[inline]
16587    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
16588        support::child(&self.syntax)
16589    }
16590    #[inline]
16591    pub fn for_token(&self) -> Option<SyntaxToken> {
16592        support::token(&self.syntax, SyntaxKind::FOR_KW)
16593    }
16594    #[inline]
16595    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
16596        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
16597    }
16598}
16599
16600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16601pub struct XmlTableColumnList {
16602    pub(crate) syntax: SyntaxNode,
16603}
16604impl XmlTableColumnList {
16605    #[inline]
16606    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
16607        support::children(&self.syntax)
16608    }
16609}
16610
16611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16612pub enum AlterColumnOption {
16613    AddGenerated(AddGenerated),
16614    DropDefault(DropDefault),
16615    DropExpression(DropExpression),
16616    DropIdentity(DropIdentity),
16617    DropNotNull(DropNotNull),
16618    Inherit(Inherit),
16619    NoInherit(NoInherit),
16620    ResetOptions(ResetOptions),
16621    Restart(Restart),
16622    SetCompression(SetCompression),
16623    SetDefault(SetDefault),
16624    SetExpression(SetExpression),
16625    SetGenerated(SetGenerated),
16626    SetGeneratedOptions(SetGeneratedOptions),
16627    SetNotNull(SetNotNull),
16628    SetOptions(SetOptions),
16629    SetOptionsList(SetOptionsList),
16630    SetSequenceOption(SetSequenceOption),
16631    SetStatistics(SetStatistics),
16632    SetStorage(SetStorage),
16633    SetType(SetType),
16634}
16635
16636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16637pub enum AlterDomainAction {
16638    AddConstraint(AddConstraint),
16639    DropConstraint(DropConstraint),
16640    DropDefault(DropDefault),
16641    DropNotNull(DropNotNull),
16642    OwnerTo(OwnerTo),
16643    RenameConstraint(RenameConstraint),
16644    RenameTo(RenameTo),
16645    SetDefault(SetDefault),
16646    SetNotNull(SetNotNull),
16647    SetSchema(SetSchema),
16648    ValidateConstraint(ValidateConstraint),
16649}
16650
16651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16652pub enum AlterIndexAction {
16653    AlterSetStatistics(AlterSetStatistics),
16654    AttachPartition(AttachPartition),
16655    DependsOnExtension(DependsOnExtension),
16656    NoDependsOnExtension(NoDependsOnExtension),
16657    RenameTo(RenameTo),
16658    ResetOptions(ResetOptions),
16659    SetOptions(SetOptions),
16660    SetTablespace(SetTablespace),
16661}
16662
16663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16664pub enum AlterMaterializedViewAction {
16665    DependsOnExtension(DependsOnExtension),
16666    NoDependsOnExtension(NoDependsOnExtension),
16667    RenameColumn(RenameColumn),
16668    RenameTo(RenameTo),
16669    SetSchema(SetSchema),
16670    AlterTableAction(AlterTableAction),
16671}
16672
16673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16674pub enum AlterTableAction {
16675    AddColumn(AddColumn),
16676    AddConstraint(AddConstraint),
16677    AlterColumn(AlterColumn),
16678    AlterConstraint(AlterConstraint),
16679    AttachPartition(AttachPartition),
16680    ClusterOn(ClusterOn),
16681    DetachPartition(DetachPartition),
16682    DisableRls(DisableRls),
16683    DisableRule(DisableRule),
16684    DisableTrigger(DisableTrigger),
16685    DropColumn(DropColumn),
16686    DropConstraint(DropConstraint),
16687    EnableAlwaysRule(EnableAlwaysRule),
16688    EnableAlwaysTrigger(EnableAlwaysTrigger),
16689    EnableReplicaRule(EnableReplicaRule),
16690    EnableReplicaTrigger(EnableReplicaTrigger),
16691    EnableRls(EnableRls),
16692    EnableRule(EnableRule),
16693    EnableTrigger(EnableTrigger),
16694    ForceRls(ForceRls),
16695    InheritTable(InheritTable),
16696    MergePartitions(MergePartitions),
16697    NoForceRls(NoForceRls),
16698    NoInheritTable(NoInheritTable),
16699    NotOf(NotOf),
16700    OfType(OfType),
16701    OptionItemList(OptionItemList),
16702    OwnerTo(OwnerTo),
16703    RenameColumn(RenameColumn),
16704    RenameConstraint(RenameConstraint),
16705    RenameTo(RenameTo),
16706    ReplicaIdentity(ReplicaIdentity),
16707    ResetOptions(ResetOptions),
16708    SetAccessMethod(SetAccessMethod),
16709    SetLogged(SetLogged),
16710    SetOptions(SetOptions),
16711    SetSchema(SetSchema),
16712    SetTablespace(SetTablespace),
16713    SetUnlogged(SetUnlogged),
16714    SetWithoutCluster(SetWithoutCluster),
16715    SetWithoutOids(SetWithoutOids),
16716    SplitPartition(SplitPartition),
16717    ValidateConstraint(ValidateConstraint),
16718}
16719
16720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16721pub enum ColumnConstraint {
16722    CheckConstraint(CheckConstraint),
16723    DefaultConstraint(DefaultConstraint),
16724    ExcludeConstraint(ExcludeConstraint),
16725    NotNullConstraint(NotNullConstraint),
16726    PrimaryKeyConstraint(PrimaryKeyConstraint),
16727    ReferencesConstraint(ReferencesConstraint),
16728    UniqueConstraint(UniqueConstraint),
16729}
16730
16731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16732pub enum ConfigValue {
16733    Literal(Literal),
16734    NameRef(NameRef),
16735}
16736
16737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16738pub enum ConflictAction {
16739    ConflictDoNothing(ConflictDoNothing),
16740    ConflictDoUpdateSet(ConflictDoUpdateSet),
16741}
16742
16743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16744pub enum ConflictTarget {
16745    ConflictOnConstraint(ConflictOnConstraint),
16746    ConflictOnIndex(ConflictOnIndex),
16747}
16748
16749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16750pub enum Constraint {
16751    CheckConstraint(CheckConstraint),
16752    DefaultConstraint(DefaultConstraint),
16753    ForeignKeyConstraint(ForeignKeyConstraint),
16754    GeneratedConstraint(GeneratedConstraint),
16755    NotNullConstraint(NotNullConstraint),
16756    NullConstraint(NullConstraint),
16757    PrimaryKeyConstraint(PrimaryKeyConstraint),
16758    ReferencesConstraint(ReferencesConstraint),
16759    UniqueConstraint(UniqueConstraint),
16760}
16761
16762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16763pub enum ExplainStmt {
16764    CompoundSelect(CompoundSelect),
16765    CreateMaterializedView(CreateMaterializedView),
16766    CreateTableAs(CreateTableAs),
16767    Declare(Declare),
16768    Delete(Delete),
16769    Execute(Execute),
16770    Insert(Insert),
16771    Merge(Merge),
16772    ParenSelect(ParenSelect),
16773    Select(Select),
16774    SelectInto(SelectInto),
16775    Table(Table),
16776    Update(Update),
16777    Values(Values),
16778}
16779
16780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16781pub enum Expr {
16782    ArrayExpr(ArrayExpr),
16783    BetweenExpr(BetweenExpr),
16784    BinExpr(BinExpr),
16785    CallExpr(CallExpr),
16786    CaseExpr(CaseExpr),
16787    CastExpr(CastExpr),
16788    FieldExpr(FieldExpr),
16789    IndexExpr(IndexExpr),
16790    Literal(Literal),
16791    NameRef(NameRef),
16792    ParenExpr(ParenExpr),
16793    PostfixExpr(PostfixExpr),
16794    PrefixExpr(PrefixExpr),
16795    SliceExpr(SliceExpr),
16796    TupleExpr(TupleExpr),
16797}
16798
16799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16800pub enum FuncOption {
16801    AsFuncOption(AsFuncOption),
16802    BeginFuncOptionList(BeginFuncOptionList),
16803    CostFuncOption(CostFuncOption),
16804    LanguageFuncOption(LanguageFuncOption),
16805    LeakproofFuncOption(LeakproofFuncOption),
16806    ParallelFuncOption(ParallelFuncOption),
16807    ResetFuncOption(ResetFuncOption),
16808    ReturnFuncOption(ReturnFuncOption),
16809    RowsFuncOption(RowsFuncOption),
16810    SecurityFuncOption(SecurityFuncOption),
16811    SetFuncOption(SetFuncOption),
16812    StrictFuncOption(StrictFuncOption),
16813    SupportFuncOption(SupportFuncOption),
16814    TransformFuncOption(TransformFuncOption),
16815    VolatilityFuncOption(VolatilityFuncOption),
16816    WindowFuncOption(WindowFuncOption),
16817}
16818
16819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16820pub enum GroupBy {
16821    GroupingCube(GroupingCube),
16822    GroupingExpr(GroupingExpr),
16823    GroupingRollup(GroupingRollup),
16824    GroupingSets(GroupingSets),
16825}
16826
16827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16828pub enum JoinType {
16829    JoinCross(JoinCross),
16830    JoinFull(JoinFull),
16831    JoinInner(JoinInner),
16832    JoinLeft(JoinLeft),
16833    JoinRight(JoinRight),
16834}
16835
16836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16837pub enum JsonBehavior {
16838    JsonBehaviorDefault(JsonBehaviorDefault),
16839    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
16840    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
16841    JsonBehaviorError(JsonBehaviorError),
16842    JsonBehaviorFalse(JsonBehaviorFalse),
16843    JsonBehaviorNull(JsonBehaviorNull),
16844    JsonBehaviorTrue(JsonBehaviorTrue),
16845    JsonBehaviorUnknown(JsonBehaviorUnknown),
16846}
16847
16848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16849pub enum MatchType {
16850    MatchFull(MatchFull),
16851    MatchPartial(MatchPartial),
16852    MatchSimple(MatchSimple),
16853}
16854
16855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16856pub enum MergeAction {
16857    MergeDelete(MergeDelete),
16858    MergeDoNothing(MergeDoNothing),
16859    MergeInsert(MergeInsert),
16860    MergeUpdate(MergeUpdate),
16861}
16862
16863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16864pub enum MergeWhenClause {
16865    MergeWhenMatched(MergeWhenMatched),
16866    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
16867    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
16868}
16869
16870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16871pub enum OnCommitAction {
16872    DeleteRows(DeleteRows),
16873    Drop(Drop),
16874    PreserveRows(PreserveRows),
16875}
16876
16877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16878pub enum ParamMode {
16879    ParamIn(ParamIn),
16880    ParamInOut(ParamInOut),
16881    ParamOut(ParamOut),
16882    ParamVariadic(ParamVariadic),
16883}
16884
16885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16886pub enum PartitionType {
16887    PartitionDefault(PartitionDefault),
16888    PartitionForValuesFrom(PartitionForValuesFrom),
16889    PartitionForValuesIn(PartitionForValuesIn),
16890    PartitionForValuesWith(PartitionForValuesWith),
16891}
16892
16893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16894pub enum PreparableStmt {
16895    CompoundSelect(CompoundSelect),
16896    Delete(Delete),
16897    Insert(Insert),
16898    Merge(Merge),
16899    Select(Select),
16900    SelectInto(SelectInto),
16901    Table(Table),
16902    Update(Update),
16903    Values(Values),
16904}
16905
16906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16907pub enum RefAction {
16908    Cascade(Cascade),
16909    NoAction(NoAction),
16910    Restrict(Restrict),
16911    SetDefaultColumns(SetDefaultColumns),
16912    SetNullColumns(SetNullColumns),
16913}
16914
16915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16916pub enum SchemaElement {
16917    CreateIndex(CreateIndex),
16918    CreateSequence(CreateSequence),
16919    CreateTable(CreateTable),
16920    CreateTrigger(CreateTrigger),
16921    CreateView(CreateView),
16922    Grant(Grant),
16923}
16924
16925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16926pub enum SelectVariant {
16927    CompoundSelect(CompoundSelect),
16928    ParenSelect(ParenSelect),
16929    Select(Select),
16930    SelectInto(SelectInto),
16931    Table(Table),
16932    Values(Values),
16933}
16934
16935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16936pub enum SetColumn {
16937    SetMultipleColumns(SetMultipleColumns),
16938    SetSingleColumn(SetSingleColumn),
16939}
16940
16941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16942pub enum Stmt {
16943    AlterAggregate(AlterAggregate),
16944    AlterCollation(AlterCollation),
16945    AlterConversion(AlterConversion),
16946    AlterDatabase(AlterDatabase),
16947    AlterDefaultPrivileges(AlterDefaultPrivileges),
16948    AlterDomain(AlterDomain),
16949    AlterEventTrigger(AlterEventTrigger),
16950    AlterExtension(AlterExtension),
16951    AlterForeignDataWrapper(AlterForeignDataWrapper),
16952    AlterForeignTable(AlterForeignTable),
16953    AlterFunction(AlterFunction),
16954    AlterGroup(AlterGroup),
16955    AlterIndex(AlterIndex),
16956    AlterLanguage(AlterLanguage),
16957    AlterLargeObject(AlterLargeObject),
16958    AlterMaterializedView(AlterMaterializedView),
16959    AlterOperator(AlterOperator),
16960    AlterOperatorClass(AlterOperatorClass),
16961    AlterOperatorFamily(AlterOperatorFamily),
16962    AlterPolicy(AlterPolicy),
16963    AlterProcedure(AlterProcedure),
16964    AlterPublication(AlterPublication),
16965    AlterRole(AlterRole),
16966    AlterRoutine(AlterRoutine),
16967    AlterRule(AlterRule),
16968    AlterSchema(AlterSchema),
16969    AlterSequence(AlterSequence),
16970    AlterServer(AlterServer),
16971    AlterStatistics(AlterStatistics),
16972    AlterSubscription(AlterSubscription),
16973    AlterSystem(AlterSystem),
16974    AlterTable(AlterTable),
16975    AlterTablespace(AlterTablespace),
16976    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
16977    AlterTextSearchDictionary(AlterTextSearchDictionary),
16978    AlterTextSearchParser(AlterTextSearchParser),
16979    AlterTextSearchTemplate(AlterTextSearchTemplate),
16980    AlterTrigger(AlterTrigger),
16981    AlterType(AlterType),
16982    AlterUser(AlterUser),
16983    AlterUserMapping(AlterUserMapping),
16984    AlterView(AlterView),
16985    Analyze(Analyze),
16986    Begin(Begin),
16987    Call(Call),
16988    Checkpoint(Checkpoint),
16989    Close(Close),
16990    Cluster(Cluster),
16991    CommentOn(CommentOn),
16992    Commit(Commit),
16993    Copy(Copy),
16994    CreateAccessMethod(CreateAccessMethod),
16995    CreateAggregate(CreateAggregate),
16996    CreateCast(CreateCast),
16997    CreateCollation(CreateCollation),
16998    CreateConversion(CreateConversion),
16999    CreateDatabase(CreateDatabase),
17000    CreateDomain(CreateDomain),
17001    CreateEventTrigger(CreateEventTrigger),
17002    CreateExtension(CreateExtension),
17003    CreateForeignDataWrapper(CreateForeignDataWrapper),
17004    CreateForeignTable(CreateForeignTable),
17005    CreateFunction(CreateFunction),
17006    CreateGroup(CreateGroup),
17007    CreateIndex(CreateIndex),
17008    CreateLanguage(CreateLanguage),
17009    CreateMaterializedView(CreateMaterializedView),
17010    CreateOperator(CreateOperator),
17011    CreateOperatorClass(CreateOperatorClass),
17012    CreateOperatorFamily(CreateOperatorFamily),
17013    CreatePolicy(CreatePolicy),
17014    CreateProcedure(CreateProcedure),
17015    CreatePublication(CreatePublication),
17016    CreateRole(CreateRole),
17017    CreateRule(CreateRule),
17018    CreateSchema(CreateSchema),
17019    CreateSequence(CreateSequence),
17020    CreateServer(CreateServer),
17021    CreateStatistics(CreateStatistics),
17022    CreateSubscription(CreateSubscription),
17023    CreateTable(CreateTable),
17024    CreateTableAs(CreateTableAs),
17025    CreateTablespace(CreateTablespace),
17026    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
17027    CreateTextSearchDictionary(CreateTextSearchDictionary),
17028    CreateTextSearchParser(CreateTextSearchParser),
17029    CreateTextSearchTemplate(CreateTextSearchTemplate),
17030    CreateTransform(CreateTransform),
17031    CreateTrigger(CreateTrigger),
17032    CreateType(CreateType),
17033    CreateUser(CreateUser),
17034    CreateUserMapping(CreateUserMapping),
17035    CreateView(CreateView),
17036    Deallocate(Deallocate),
17037    Declare(Declare),
17038    Delete(Delete),
17039    Discard(Discard),
17040    Do(Do),
17041    DropAccessMethod(DropAccessMethod),
17042    DropAggregate(DropAggregate),
17043    DropCast(DropCast),
17044    DropCollation(DropCollation),
17045    DropConversion(DropConversion),
17046    DropDatabase(DropDatabase),
17047    DropDomain(DropDomain),
17048    DropEventTrigger(DropEventTrigger),
17049    DropExtension(DropExtension),
17050    DropForeignDataWrapper(DropForeignDataWrapper),
17051    DropForeignTable(DropForeignTable),
17052    DropFunction(DropFunction),
17053    DropGroup(DropGroup),
17054    DropIndex(DropIndex),
17055    DropLanguage(DropLanguage),
17056    DropMaterializedView(DropMaterializedView),
17057    DropOperator(DropOperator),
17058    DropOperatorClass(DropOperatorClass),
17059    DropOperatorFamily(DropOperatorFamily),
17060    DropOwned(DropOwned),
17061    DropPolicy(DropPolicy),
17062    DropProcedure(DropProcedure),
17063    DropPublication(DropPublication),
17064    DropRole(DropRole),
17065    DropRoutine(DropRoutine),
17066    DropRule(DropRule),
17067    DropSchema(DropSchema),
17068    DropSequence(DropSequence),
17069    DropServer(DropServer),
17070    DropStatistics(DropStatistics),
17071    DropSubscription(DropSubscription),
17072    DropTable(DropTable),
17073    DropTablespace(DropTablespace),
17074    DropTextSearchConfig(DropTextSearchConfig),
17075    DropTextSearchDict(DropTextSearchDict),
17076    DropTextSearchParser(DropTextSearchParser),
17077    DropTextSearchTemplate(DropTextSearchTemplate),
17078    DropTransform(DropTransform),
17079    DropTrigger(DropTrigger),
17080    DropType(DropType),
17081    DropUser(DropUser),
17082    DropUserMapping(DropUserMapping),
17083    DropView(DropView),
17084    Execute(Execute),
17085    Explain(Explain),
17086    Fetch(Fetch),
17087    Grant(Grant),
17088    ImportForeignSchema(ImportForeignSchema),
17089    Insert(Insert),
17090    Listen(Listen),
17091    Load(Load),
17092    Lock(Lock),
17093    Merge(Merge),
17094    Move(Move),
17095    Notify(Notify),
17096    ParenSelect(ParenSelect),
17097    Prepare(Prepare),
17098    PrepareTransaction(PrepareTransaction),
17099    Reassign(Reassign),
17100    Refresh(Refresh),
17101    Reindex(Reindex),
17102    ReleaseSavepoint(ReleaseSavepoint),
17103    Reset(Reset),
17104    ResetSessionAuth(ResetSessionAuth),
17105    Revoke(Revoke),
17106    Rollback(Rollback),
17107    Savepoint(Savepoint),
17108    SecurityLabel(SecurityLabel),
17109    Select(Select),
17110    SelectInto(SelectInto),
17111    Set(Set),
17112    SetConstraints(SetConstraints),
17113    SetRole(SetRole),
17114    SetSessionAuth(SetSessionAuth),
17115    SetTransaction(SetTransaction),
17116    Show(Show),
17117    Table(Table),
17118    Truncate(Truncate),
17119    Unlisten(Unlisten),
17120    Update(Update),
17121    Vacuum(Vacuum),
17122    Values(Values),
17123}
17124
17125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17126pub enum TableArg {
17127    Column(Column),
17128    LikeClause(LikeClause),
17129    TableConstraint(TableConstraint),
17130}
17131
17132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17133pub enum TableConstraint {
17134    CheckConstraint(CheckConstraint),
17135    ExcludeConstraint(ExcludeConstraint),
17136    ForeignKeyConstraint(ForeignKeyConstraint),
17137    PrimaryKeyConstraint(PrimaryKeyConstraint),
17138    UniqueConstraint(UniqueConstraint),
17139}
17140
17141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17142pub enum Timezone {
17143    WithTimezone(WithTimezone),
17144    WithoutTimezone(WithoutTimezone),
17145}
17146
17147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17148pub enum TransactionMode {
17149    Deferrable(Deferrable),
17150    NotDeferrable(NotDeferrable),
17151    ReadCommitted(ReadCommitted),
17152    ReadOnly(ReadOnly),
17153    ReadUncommitted(ReadUncommitted),
17154    ReadWrite(ReadWrite),
17155    RepeatableRead(RepeatableRead),
17156    Serializable(Serializable),
17157}
17158
17159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17160pub enum Type {
17161    ArrayType(ArrayType),
17162    BitType(BitType),
17163    CharType(CharType),
17164    DoubleType(DoubleType),
17165    ExprType(ExprType),
17166    IntervalType(IntervalType),
17167    PathType(PathType),
17168    PercentType(PercentType),
17169    TimeType(TimeType),
17170}
17171
17172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17173pub enum WithQuery {
17174    CompoundSelect(CompoundSelect),
17175    Delete(Delete),
17176    Insert(Insert),
17177    Merge(Merge),
17178    ParenSelect(ParenSelect),
17179    Select(Select),
17180    Table(Table),
17181    Update(Update),
17182    Values(Values),
17183}
17184impl AstNode for AddColumn {
17185    #[inline]
17186    fn can_cast(kind: SyntaxKind) -> bool {
17187        kind == SyntaxKind::ADD_COLUMN
17188    }
17189    #[inline]
17190    fn cast(syntax: SyntaxNode) -> Option<Self> {
17191        if Self::can_cast(syntax.kind()) {
17192            Some(Self { syntax })
17193        } else {
17194            None
17195        }
17196    }
17197    #[inline]
17198    fn syntax(&self) -> &SyntaxNode {
17199        &self.syntax
17200    }
17201}
17202impl AstNode for AddConstraint {
17203    #[inline]
17204    fn can_cast(kind: SyntaxKind) -> bool {
17205        kind == SyntaxKind::ADD_CONSTRAINT
17206    }
17207    #[inline]
17208    fn cast(syntax: SyntaxNode) -> Option<Self> {
17209        if Self::can_cast(syntax.kind()) {
17210            Some(Self { syntax })
17211        } else {
17212            None
17213        }
17214    }
17215    #[inline]
17216    fn syntax(&self) -> &SyntaxNode {
17217        &self.syntax
17218    }
17219}
17220impl AstNode for AddGenerated {
17221    #[inline]
17222    fn can_cast(kind: SyntaxKind) -> bool {
17223        kind == SyntaxKind::ADD_GENERATED
17224    }
17225    #[inline]
17226    fn cast(syntax: SyntaxNode) -> Option<Self> {
17227        if Self::can_cast(syntax.kind()) {
17228            Some(Self { syntax })
17229        } else {
17230            None
17231        }
17232    }
17233    #[inline]
17234    fn syntax(&self) -> &SyntaxNode {
17235        &self.syntax
17236    }
17237}
17238impl AstNode for AddOpClassOptions {
17239    #[inline]
17240    fn can_cast(kind: SyntaxKind) -> bool {
17241        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
17242    }
17243    #[inline]
17244    fn cast(syntax: SyntaxNode) -> Option<Self> {
17245        if Self::can_cast(syntax.kind()) {
17246            Some(Self { syntax })
17247        } else {
17248            None
17249        }
17250    }
17251    #[inline]
17252    fn syntax(&self) -> &SyntaxNode {
17253        &self.syntax
17254    }
17255}
17256impl AstNode for Aggregate {
17257    #[inline]
17258    fn can_cast(kind: SyntaxKind) -> bool {
17259        kind == SyntaxKind::AGGREGATE
17260    }
17261    #[inline]
17262    fn cast(syntax: SyntaxNode) -> Option<Self> {
17263        if Self::can_cast(syntax.kind()) {
17264            Some(Self { syntax })
17265        } else {
17266            None
17267        }
17268    }
17269    #[inline]
17270    fn syntax(&self) -> &SyntaxNode {
17271        &self.syntax
17272    }
17273}
17274impl AstNode for Alias {
17275    #[inline]
17276    fn can_cast(kind: SyntaxKind) -> bool {
17277        kind == SyntaxKind::ALIAS
17278    }
17279    #[inline]
17280    fn cast(syntax: SyntaxNode) -> Option<Self> {
17281        if Self::can_cast(syntax.kind()) {
17282            Some(Self { syntax })
17283        } else {
17284            None
17285        }
17286    }
17287    #[inline]
17288    fn syntax(&self) -> &SyntaxNode {
17289        &self.syntax
17290    }
17291}
17292impl AstNode for AllFn {
17293    #[inline]
17294    fn can_cast(kind: SyntaxKind) -> bool {
17295        kind == SyntaxKind::ALL_FN
17296    }
17297    #[inline]
17298    fn cast(syntax: SyntaxNode) -> Option<Self> {
17299        if Self::can_cast(syntax.kind()) {
17300            Some(Self { syntax })
17301        } else {
17302            None
17303        }
17304    }
17305    #[inline]
17306    fn syntax(&self) -> &SyntaxNode {
17307        &self.syntax
17308    }
17309}
17310impl AstNode for AlterAggregate {
17311    #[inline]
17312    fn can_cast(kind: SyntaxKind) -> bool {
17313        kind == SyntaxKind::ALTER_AGGREGATE
17314    }
17315    #[inline]
17316    fn cast(syntax: SyntaxNode) -> Option<Self> {
17317        if Self::can_cast(syntax.kind()) {
17318            Some(Self { syntax })
17319        } else {
17320            None
17321        }
17322    }
17323    #[inline]
17324    fn syntax(&self) -> &SyntaxNode {
17325        &self.syntax
17326    }
17327}
17328impl AstNode for AlterCollation {
17329    #[inline]
17330    fn can_cast(kind: SyntaxKind) -> bool {
17331        kind == SyntaxKind::ALTER_COLLATION
17332    }
17333    #[inline]
17334    fn cast(syntax: SyntaxNode) -> Option<Self> {
17335        if Self::can_cast(syntax.kind()) {
17336            Some(Self { syntax })
17337        } else {
17338            None
17339        }
17340    }
17341    #[inline]
17342    fn syntax(&self) -> &SyntaxNode {
17343        &self.syntax
17344    }
17345}
17346impl AstNode for AlterColumn {
17347    #[inline]
17348    fn can_cast(kind: SyntaxKind) -> bool {
17349        kind == SyntaxKind::ALTER_COLUMN
17350    }
17351    #[inline]
17352    fn cast(syntax: SyntaxNode) -> Option<Self> {
17353        if Self::can_cast(syntax.kind()) {
17354            Some(Self { syntax })
17355        } else {
17356            None
17357        }
17358    }
17359    #[inline]
17360    fn syntax(&self) -> &SyntaxNode {
17361        &self.syntax
17362    }
17363}
17364impl AstNode for AlterConstraint {
17365    #[inline]
17366    fn can_cast(kind: SyntaxKind) -> bool {
17367        kind == SyntaxKind::ALTER_CONSTRAINT
17368    }
17369    #[inline]
17370    fn cast(syntax: SyntaxNode) -> Option<Self> {
17371        if Self::can_cast(syntax.kind()) {
17372            Some(Self { syntax })
17373        } else {
17374            None
17375        }
17376    }
17377    #[inline]
17378    fn syntax(&self) -> &SyntaxNode {
17379        &self.syntax
17380    }
17381}
17382impl AstNode for AlterConversion {
17383    #[inline]
17384    fn can_cast(kind: SyntaxKind) -> bool {
17385        kind == SyntaxKind::ALTER_CONVERSION
17386    }
17387    #[inline]
17388    fn cast(syntax: SyntaxNode) -> Option<Self> {
17389        if Self::can_cast(syntax.kind()) {
17390            Some(Self { syntax })
17391        } else {
17392            None
17393        }
17394    }
17395    #[inline]
17396    fn syntax(&self) -> &SyntaxNode {
17397        &self.syntax
17398    }
17399}
17400impl AstNode for AlterDatabase {
17401    #[inline]
17402    fn can_cast(kind: SyntaxKind) -> bool {
17403        kind == SyntaxKind::ALTER_DATABASE
17404    }
17405    #[inline]
17406    fn cast(syntax: SyntaxNode) -> Option<Self> {
17407        if Self::can_cast(syntax.kind()) {
17408            Some(Self { syntax })
17409        } else {
17410            None
17411        }
17412    }
17413    #[inline]
17414    fn syntax(&self) -> &SyntaxNode {
17415        &self.syntax
17416    }
17417}
17418impl AstNode for AlterDefaultPrivileges {
17419    #[inline]
17420    fn can_cast(kind: SyntaxKind) -> bool {
17421        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
17422    }
17423    #[inline]
17424    fn cast(syntax: SyntaxNode) -> Option<Self> {
17425        if Self::can_cast(syntax.kind()) {
17426            Some(Self { syntax })
17427        } else {
17428            None
17429        }
17430    }
17431    #[inline]
17432    fn syntax(&self) -> &SyntaxNode {
17433        &self.syntax
17434    }
17435}
17436impl AstNode for AlterDomain {
17437    #[inline]
17438    fn can_cast(kind: SyntaxKind) -> bool {
17439        kind == SyntaxKind::ALTER_DOMAIN
17440    }
17441    #[inline]
17442    fn cast(syntax: SyntaxNode) -> Option<Self> {
17443        if Self::can_cast(syntax.kind()) {
17444            Some(Self { syntax })
17445        } else {
17446            None
17447        }
17448    }
17449    #[inline]
17450    fn syntax(&self) -> &SyntaxNode {
17451        &self.syntax
17452    }
17453}
17454impl AstNode for AlterEventTrigger {
17455    #[inline]
17456    fn can_cast(kind: SyntaxKind) -> bool {
17457        kind == SyntaxKind::ALTER_EVENT_TRIGGER
17458    }
17459    #[inline]
17460    fn cast(syntax: SyntaxNode) -> Option<Self> {
17461        if Self::can_cast(syntax.kind()) {
17462            Some(Self { syntax })
17463        } else {
17464            None
17465        }
17466    }
17467    #[inline]
17468    fn syntax(&self) -> &SyntaxNode {
17469        &self.syntax
17470    }
17471}
17472impl AstNode for AlterExtension {
17473    #[inline]
17474    fn can_cast(kind: SyntaxKind) -> bool {
17475        kind == SyntaxKind::ALTER_EXTENSION
17476    }
17477    #[inline]
17478    fn cast(syntax: SyntaxNode) -> Option<Self> {
17479        if Self::can_cast(syntax.kind()) {
17480            Some(Self { syntax })
17481        } else {
17482            None
17483        }
17484    }
17485    #[inline]
17486    fn syntax(&self) -> &SyntaxNode {
17487        &self.syntax
17488    }
17489}
17490impl AstNode for AlterForeignDataWrapper {
17491    #[inline]
17492    fn can_cast(kind: SyntaxKind) -> bool {
17493        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
17494    }
17495    #[inline]
17496    fn cast(syntax: SyntaxNode) -> Option<Self> {
17497        if Self::can_cast(syntax.kind()) {
17498            Some(Self { syntax })
17499        } else {
17500            None
17501        }
17502    }
17503    #[inline]
17504    fn syntax(&self) -> &SyntaxNode {
17505        &self.syntax
17506    }
17507}
17508impl AstNode for AlterForeignTable {
17509    #[inline]
17510    fn can_cast(kind: SyntaxKind) -> bool {
17511        kind == SyntaxKind::ALTER_FOREIGN_TABLE
17512    }
17513    #[inline]
17514    fn cast(syntax: SyntaxNode) -> Option<Self> {
17515        if Self::can_cast(syntax.kind()) {
17516            Some(Self { syntax })
17517        } else {
17518            None
17519        }
17520    }
17521    #[inline]
17522    fn syntax(&self) -> &SyntaxNode {
17523        &self.syntax
17524    }
17525}
17526impl AstNode for AlterFunction {
17527    #[inline]
17528    fn can_cast(kind: SyntaxKind) -> bool {
17529        kind == SyntaxKind::ALTER_FUNCTION
17530    }
17531    #[inline]
17532    fn cast(syntax: SyntaxNode) -> Option<Self> {
17533        if Self::can_cast(syntax.kind()) {
17534            Some(Self { syntax })
17535        } else {
17536            None
17537        }
17538    }
17539    #[inline]
17540    fn syntax(&self) -> &SyntaxNode {
17541        &self.syntax
17542    }
17543}
17544impl AstNode for AlterGroup {
17545    #[inline]
17546    fn can_cast(kind: SyntaxKind) -> bool {
17547        kind == SyntaxKind::ALTER_GROUP
17548    }
17549    #[inline]
17550    fn cast(syntax: SyntaxNode) -> Option<Self> {
17551        if Self::can_cast(syntax.kind()) {
17552            Some(Self { syntax })
17553        } else {
17554            None
17555        }
17556    }
17557    #[inline]
17558    fn syntax(&self) -> &SyntaxNode {
17559        &self.syntax
17560    }
17561}
17562impl AstNode for AlterIndex {
17563    #[inline]
17564    fn can_cast(kind: SyntaxKind) -> bool {
17565        kind == SyntaxKind::ALTER_INDEX
17566    }
17567    #[inline]
17568    fn cast(syntax: SyntaxNode) -> Option<Self> {
17569        if Self::can_cast(syntax.kind()) {
17570            Some(Self { syntax })
17571        } else {
17572            None
17573        }
17574    }
17575    #[inline]
17576    fn syntax(&self) -> &SyntaxNode {
17577        &self.syntax
17578    }
17579}
17580impl AstNode for AlterLanguage {
17581    #[inline]
17582    fn can_cast(kind: SyntaxKind) -> bool {
17583        kind == SyntaxKind::ALTER_LANGUAGE
17584    }
17585    #[inline]
17586    fn cast(syntax: SyntaxNode) -> Option<Self> {
17587        if Self::can_cast(syntax.kind()) {
17588            Some(Self { syntax })
17589        } else {
17590            None
17591        }
17592    }
17593    #[inline]
17594    fn syntax(&self) -> &SyntaxNode {
17595        &self.syntax
17596    }
17597}
17598impl AstNode for AlterLargeObject {
17599    #[inline]
17600    fn can_cast(kind: SyntaxKind) -> bool {
17601        kind == SyntaxKind::ALTER_LARGE_OBJECT
17602    }
17603    #[inline]
17604    fn cast(syntax: SyntaxNode) -> Option<Self> {
17605        if Self::can_cast(syntax.kind()) {
17606            Some(Self { syntax })
17607        } else {
17608            None
17609        }
17610    }
17611    #[inline]
17612    fn syntax(&self) -> &SyntaxNode {
17613        &self.syntax
17614    }
17615}
17616impl AstNode for AlterMaterializedView {
17617    #[inline]
17618    fn can_cast(kind: SyntaxKind) -> bool {
17619        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
17620    }
17621    #[inline]
17622    fn cast(syntax: SyntaxNode) -> Option<Self> {
17623        if Self::can_cast(syntax.kind()) {
17624            Some(Self { syntax })
17625        } else {
17626            None
17627        }
17628    }
17629    #[inline]
17630    fn syntax(&self) -> &SyntaxNode {
17631        &self.syntax
17632    }
17633}
17634impl AstNode for AlterOperator {
17635    #[inline]
17636    fn can_cast(kind: SyntaxKind) -> bool {
17637        kind == SyntaxKind::ALTER_OPERATOR
17638    }
17639    #[inline]
17640    fn cast(syntax: SyntaxNode) -> Option<Self> {
17641        if Self::can_cast(syntax.kind()) {
17642            Some(Self { syntax })
17643        } else {
17644            None
17645        }
17646    }
17647    #[inline]
17648    fn syntax(&self) -> &SyntaxNode {
17649        &self.syntax
17650    }
17651}
17652impl AstNode for AlterOperatorClass {
17653    #[inline]
17654    fn can_cast(kind: SyntaxKind) -> bool {
17655        kind == SyntaxKind::ALTER_OPERATOR_CLASS
17656    }
17657    #[inline]
17658    fn cast(syntax: SyntaxNode) -> Option<Self> {
17659        if Self::can_cast(syntax.kind()) {
17660            Some(Self { syntax })
17661        } else {
17662            None
17663        }
17664    }
17665    #[inline]
17666    fn syntax(&self) -> &SyntaxNode {
17667        &self.syntax
17668    }
17669}
17670impl AstNode for AlterOperatorFamily {
17671    #[inline]
17672    fn can_cast(kind: SyntaxKind) -> bool {
17673        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
17674    }
17675    #[inline]
17676    fn cast(syntax: SyntaxNode) -> Option<Self> {
17677        if Self::can_cast(syntax.kind()) {
17678            Some(Self { syntax })
17679        } else {
17680            None
17681        }
17682    }
17683    #[inline]
17684    fn syntax(&self) -> &SyntaxNode {
17685        &self.syntax
17686    }
17687}
17688impl AstNode for AlterOption {
17689    #[inline]
17690    fn can_cast(kind: SyntaxKind) -> bool {
17691        kind == SyntaxKind::ALTER_OPTION
17692    }
17693    #[inline]
17694    fn cast(syntax: SyntaxNode) -> Option<Self> {
17695        if Self::can_cast(syntax.kind()) {
17696            Some(Self { syntax })
17697        } else {
17698            None
17699        }
17700    }
17701    #[inline]
17702    fn syntax(&self) -> &SyntaxNode {
17703        &self.syntax
17704    }
17705}
17706impl AstNode for AlterOptionList {
17707    #[inline]
17708    fn can_cast(kind: SyntaxKind) -> bool {
17709        kind == SyntaxKind::ALTER_OPTION_LIST
17710    }
17711    #[inline]
17712    fn cast(syntax: SyntaxNode) -> Option<Self> {
17713        if Self::can_cast(syntax.kind()) {
17714            Some(Self { syntax })
17715        } else {
17716            None
17717        }
17718    }
17719    #[inline]
17720    fn syntax(&self) -> &SyntaxNode {
17721        &self.syntax
17722    }
17723}
17724impl AstNode for AlterPolicy {
17725    #[inline]
17726    fn can_cast(kind: SyntaxKind) -> bool {
17727        kind == SyntaxKind::ALTER_POLICY
17728    }
17729    #[inline]
17730    fn cast(syntax: SyntaxNode) -> Option<Self> {
17731        if Self::can_cast(syntax.kind()) {
17732            Some(Self { syntax })
17733        } else {
17734            None
17735        }
17736    }
17737    #[inline]
17738    fn syntax(&self) -> &SyntaxNode {
17739        &self.syntax
17740    }
17741}
17742impl AstNode for AlterProcedure {
17743    #[inline]
17744    fn can_cast(kind: SyntaxKind) -> bool {
17745        kind == SyntaxKind::ALTER_PROCEDURE
17746    }
17747    #[inline]
17748    fn cast(syntax: SyntaxNode) -> Option<Self> {
17749        if Self::can_cast(syntax.kind()) {
17750            Some(Self { syntax })
17751        } else {
17752            None
17753        }
17754    }
17755    #[inline]
17756    fn syntax(&self) -> &SyntaxNode {
17757        &self.syntax
17758    }
17759}
17760impl AstNode for AlterPublication {
17761    #[inline]
17762    fn can_cast(kind: SyntaxKind) -> bool {
17763        kind == SyntaxKind::ALTER_PUBLICATION
17764    }
17765    #[inline]
17766    fn cast(syntax: SyntaxNode) -> Option<Self> {
17767        if Self::can_cast(syntax.kind()) {
17768            Some(Self { syntax })
17769        } else {
17770            None
17771        }
17772    }
17773    #[inline]
17774    fn syntax(&self) -> &SyntaxNode {
17775        &self.syntax
17776    }
17777}
17778impl AstNode for AlterRole {
17779    #[inline]
17780    fn can_cast(kind: SyntaxKind) -> bool {
17781        kind == SyntaxKind::ALTER_ROLE
17782    }
17783    #[inline]
17784    fn cast(syntax: SyntaxNode) -> Option<Self> {
17785        if Self::can_cast(syntax.kind()) {
17786            Some(Self { syntax })
17787        } else {
17788            None
17789        }
17790    }
17791    #[inline]
17792    fn syntax(&self) -> &SyntaxNode {
17793        &self.syntax
17794    }
17795}
17796impl AstNode for AlterRoutine {
17797    #[inline]
17798    fn can_cast(kind: SyntaxKind) -> bool {
17799        kind == SyntaxKind::ALTER_ROUTINE
17800    }
17801    #[inline]
17802    fn cast(syntax: SyntaxNode) -> Option<Self> {
17803        if Self::can_cast(syntax.kind()) {
17804            Some(Self { syntax })
17805        } else {
17806            None
17807        }
17808    }
17809    #[inline]
17810    fn syntax(&self) -> &SyntaxNode {
17811        &self.syntax
17812    }
17813}
17814impl AstNode for AlterRule {
17815    #[inline]
17816    fn can_cast(kind: SyntaxKind) -> bool {
17817        kind == SyntaxKind::ALTER_RULE
17818    }
17819    #[inline]
17820    fn cast(syntax: SyntaxNode) -> Option<Self> {
17821        if Self::can_cast(syntax.kind()) {
17822            Some(Self { syntax })
17823        } else {
17824            None
17825        }
17826    }
17827    #[inline]
17828    fn syntax(&self) -> &SyntaxNode {
17829        &self.syntax
17830    }
17831}
17832impl AstNode for AlterSchema {
17833    #[inline]
17834    fn can_cast(kind: SyntaxKind) -> bool {
17835        kind == SyntaxKind::ALTER_SCHEMA
17836    }
17837    #[inline]
17838    fn cast(syntax: SyntaxNode) -> Option<Self> {
17839        if Self::can_cast(syntax.kind()) {
17840            Some(Self { syntax })
17841        } else {
17842            None
17843        }
17844    }
17845    #[inline]
17846    fn syntax(&self) -> &SyntaxNode {
17847        &self.syntax
17848    }
17849}
17850impl AstNode for AlterSequence {
17851    #[inline]
17852    fn can_cast(kind: SyntaxKind) -> bool {
17853        kind == SyntaxKind::ALTER_SEQUENCE
17854    }
17855    #[inline]
17856    fn cast(syntax: SyntaxNode) -> Option<Self> {
17857        if Self::can_cast(syntax.kind()) {
17858            Some(Self { syntax })
17859        } else {
17860            None
17861        }
17862    }
17863    #[inline]
17864    fn syntax(&self) -> &SyntaxNode {
17865        &self.syntax
17866    }
17867}
17868impl AstNode for AlterServer {
17869    #[inline]
17870    fn can_cast(kind: SyntaxKind) -> bool {
17871        kind == SyntaxKind::ALTER_SERVER
17872    }
17873    #[inline]
17874    fn cast(syntax: SyntaxNode) -> Option<Self> {
17875        if Self::can_cast(syntax.kind()) {
17876            Some(Self { syntax })
17877        } else {
17878            None
17879        }
17880    }
17881    #[inline]
17882    fn syntax(&self) -> &SyntaxNode {
17883        &self.syntax
17884    }
17885}
17886impl AstNode for AlterSetStatistics {
17887    #[inline]
17888    fn can_cast(kind: SyntaxKind) -> bool {
17889        kind == SyntaxKind::ALTER_SET_STATISTICS
17890    }
17891    #[inline]
17892    fn cast(syntax: SyntaxNode) -> Option<Self> {
17893        if Self::can_cast(syntax.kind()) {
17894            Some(Self { syntax })
17895        } else {
17896            None
17897        }
17898    }
17899    #[inline]
17900    fn syntax(&self) -> &SyntaxNode {
17901        &self.syntax
17902    }
17903}
17904impl AstNode for AlterStatistics {
17905    #[inline]
17906    fn can_cast(kind: SyntaxKind) -> bool {
17907        kind == SyntaxKind::ALTER_STATISTICS
17908    }
17909    #[inline]
17910    fn cast(syntax: SyntaxNode) -> Option<Self> {
17911        if Self::can_cast(syntax.kind()) {
17912            Some(Self { syntax })
17913        } else {
17914            None
17915        }
17916    }
17917    #[inline]
17918    fn syntax(&self) -> &SyntaxNode {
17919        &self.syntax
17920    }
17921}
17922impl AstNode for AlterSubscription {
17923    #[inline]
17924    fn can_cast(kind: SyntaxKind) -> bool {
17925        kind == SyntaxKind::ALTER_SUBSCRIPTION
17926    }
17927    #[inline]
17928    fn cast(syntax: SyntaxNode) -> Option<Self> {
17929        if Self::can_cast(syntax.kind()) {
17930            Some(Self { syntax })
17931        } else {
17932            None
17933        }
17934    }
17935    #[inline]
17936    fn syntax(&self) -> &SyntaxNode {
17937        &self.syntax
17938    }
17939}
17940impl AstNode for AlterSystem {
17941    #[inline]
17942    fn can_cast(kind: SyntaxKind) -> bool {
17943        kind == SyntaxKind::ALTER_SYSTEM
17944    }
17945    #[inline]
17946    fn cast(syntax: SyntaxNode) -> Option<Self> {
17947        if Self::can_cast(syntax.kind()) {
17948            Some(Self { syntax })
17949        } else {
17950            None
17951        }
17952    }
17953    #[inline]
17954    fn syntax(&self) -> &SyntaxNode {
17955        &self.syntax
17956    }
17957}
17958impl AstNode for AlterTable {
17959    #[inline]
17960    fn can_cast(kind: SyntaxKind) -> bool {
17961        kind == SyntaxKind::ALTER_TABLE
17962    }
17963    #[inline]
17964    fn cast(syntax: SyntaxNode) -> Option<Self> {
17965        if Self::can_cast(syntax.kind()) {
17966            Some(Self { syntax })
17967        } else {
17968            None
17969        }
17970    }
17971    #[inline]
17972    fn syntax(&self) -> &SyntaxNode {
17973        &self.syntax
17974    }
17975}
17976impl AstNode for AlterTablespace {
17977    #[inline]
17978    fn can_cast(kind: SyntaxKind) -> bool {
17979        kind == SyntaxKind::ALTER_TABLESPACE
17980    }
17981    #[inline]
17982    fn cast(syntax: SyntaxNode) -> Option<Self> {
17983        if Self::can_cast(syntax.kind()) {
17984            Some(Self { syntax })
17985        } else {
17986            None
17987        }
17988    }
17989    #[inline]
17990    fn syntax(&self) -> &SyntaxNode {
17991        &self.syntax
17992    }
17993}
17994impl AstNode for AlterTextSearchConfiguration {
17995    #[inline]
17996    fn can_cast(kind: SyntaxKind) -> bool {
17997        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
17998    }
17999    #[inline]
18000    fn cast(syntax: SyntaxNode) -> Option<Self> {
18001        if Self::can_cast(syntax.kind()) {
18002            Some(Self { syntax })
18003        } else {
18004            None
18005        }
18006    }
18007    #[inline]
18008    fn syntax(&self) -> &SyntaxNode {
18009        &self.syntax
18010    }
18011}
18012impl AstNode for AlterTextSearchDictionary {
18013    #[inline]
18014    fn can_cast(kind: SyntaxKind) -> bool {
18015        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
18016    }
18017    #[inline]
18018    fn cast(syntax: SyntaxNode) -> Option<Self> {
18019        if Self::can_cast(syntax.kind()) {
18020            Some(Self { syntax })
18021        } else {
18022            None
18023        }
18024    }
18025    #[inline]
18026    fn syntax(&self) -> &SyntaxNode {
18027        &self.syntax
18028    }
18029}
18030impl AstNode for AlterTextSearchParser {
18031    #[inline]
18032    fn can_cast(kind: SyntaxKind) -> bool {
18033        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
18034    }
18035    #[inline]
18036    fn cast(syntax: SyntaxNode) -> Option<Self> {
18037        if Self::can_cast(syntax.kind()) {
18038            Some(Self { syntax })
18039        } else {
18040            None
18041        }
18042    }
18043    #[inline]
18044    fn syntax(&self) -> &SyntaxNode {
18045        &self.syntax
18046    }
18047}
18048impl AstNode for AlterTextSearchTemplate {
18049    #[inline]
18050    fn can_cast(kind: SyntaxKind) -> bool {
18051        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
18052    }
18053    #[inline]
18054    fn cast(syntax: SyntaxNode) -> Option<Self> {
18055        if Self::can_cast(syntax.kind()) {
18056            Some(Self { syntax })
18057        } else {
18058            None
18059        }
18060    }
18061    #[inline]
18062    fn syntax(&self) -> &SyntaxNode {
18063        &self.syntax
18064    }
18065}
18066impl AstNode for AlterTrigger {
18067    #[inline]
18068    fn can_cast(kind: SyntaxKind) -> bool {
18069        kind == SyntaxKind::ALTER_TRIGGER
18070    }
18071    #[inline]
18072    fn cast(syntax: SyntaxNode) -> Option<Self> {
18073        if Self::can_cast(syntax.kind()) {
18074            Some(Self { syntax })
18075        } else {
18076            None
18077        }
18078    }
18079    #[inline]
18080    fn syntax(&self) -> &SyntaxNode {
18081        &self.syntax
18082    }
18083}
18084impl AstNode for AlterType {
18085    #[inline]
18086    fn can_cast(kind: SyntaxKind) -> bool {
18087        kind == SyntaxKind::ALTER_TYPE
18088    }
18089    #[inline]
18090    fn cast(syntax: SyntaxNode) -> Option<Self> {
18091        if Self::can_cast(syntax.kind()) {
18092            Some(Self { syntax })
18093        } else {
18094            None
18095        }
18096    }
18097    #[inline]
18098    fn syntax(&self) -> &SyntaxNode {
18099        &self.syntax
18100    }
18101}
18102impl AstNode for AlterUser {
18103    #[inline]
18104    fn can_cast(kind: SyntaxKind) -> bool {
18105        kind == SyntaxKind::ALTER_USER
18106    }
18107    #[inline]
18108    fn cast(syntax: SyntaxNode) -> Option<Self> {
18109        if Self::can_cast(syntax.kind()) {
18110            Some(Self { syntax })
18111        } else {
18112            None
18113        }
18114    }
18115    #[inline]
18116    fn syntax(&self) -> &SyntaxNode {
18117        &self.syntax
18118    }
18119}
18120impl AstNode for AlterUserMapping {
18121    #[inline]
18122    fn can_cast(kind: SyntaxKind) -> bool {
18123        kind == SyntaxKind::ALTER_USER_MAPPING
18124    }
18125    #[inline]
18126    fn cast(syntax: SyntaxNode) -> Option<Self> {
18127        if Self::can_cast(syntax.kind()) {
18128            Some(Self { syntax })
18129        } else {
18130            None
18131        }
18132    }
18133    #[inline]
18134    fn syntax(&self) -> &SyntaxNode {
18135        &self.syntax
18136    }
18137}
18138impl AstNode for AlterView {
18139    #[inline]
18140    fn can_cast(kind: SyntaxKind) -> bool {
18141        kind == SyntaxKind::ALTER_VIEW
18142    }
18143    #[inline]
18144    fn cast(syntax: SyntaxNode) -> Option<Self> {
18145        if Self::can_cast(syntax.kind()) {
18146            Some(Self { syntax })
18147        } else {
18148            None
18149        }
18150    }
18151    #[inline]
18152    fn syntax(&self) -> &SyntaxNode {
18153        &self.syntax
18154    }
18155}
18156impl AstNode for Analyze {
18157    #[inline]
18158    fn can_cast(kind: SyntaxKind) -> bool {
18159        kind == SyntaxKind::ANALYZE
18160    }
18161    #[inline]
18162    fn cast(syntax: SyntaxNode) -> Option<Self> {
18163        if Self::can_cast(syntax.kind()) {
18164            Some(Self { syntax })
18165        } else {
18166            None
18167        }
18168    }
18169    #[inline]
18170    fn syntax(&self) -> &SyntaxNode {
18171        &self.syntax
18172    }
18173}
18174impl AstNode for AnyFn {
18175    #[inline]
18176    fn can_cast(kind: SyntaxKind) -> bool {
18177        kind == SyntaxKind::ANY_FN
18178    }
18179    #[inline]
18180    fn cast(syntax: SyntaxNode) -> Option<Self> {
18181        if Self::can_cast(syntax.kind()) {
18182            Some(Self { syntax })
18183        } else {
18184            None
18185        }
18186    }
18187    #[inline]
18188    fn syntax(&self) -> &SyntaxNode {
18189        &self.syntax
18190    }
18191}
18192impl AstNode for Arg {
18193    #[inline]
18194    fn can_cast(kind: SyntaxKind) -> bool {
18195        kind == SyntaxKind::ARG
18196    }
18197    #[inline]
18198    fn cast(syntax: SyntaxNode) -> Option<Self> {
18199        if Self::can_cast(syntax.kind()) {
18200            Some(Self { syntax })
18201        } else {
18202            None
18203        }
18204    }
18205    #[inline]
18206    fn syntax(&self) -> &SyntaxNode {
18207        &self.syntax
18208    }
18209}
18210impl AstNode for ArgList {
18211    #[inline]
18212    fn can_cast(kind: SyntaxKind) -> bool {
18213        kind == SyntaxKind::ARG_LIST
18214    }
18215    #[inline]
18216    fn cast(syntax: SyntaxNode) -> Option<Self> {
18217        if Self::can_cast(syntax.kind()) {
18218            Some(Self { syntax })
18219        } else {
18220            None
18221        }
18222    }
18223    #[inline]
18224    fn syntax(&self) -> &SyntaxNode {
18225        &self.syntax
18226    }
18227}
18228impl AstNode for ArrayExpr {
18229    #[inline]
18230    fn can_cast(kind: SyntaxKind) -> bool {
18231        kind == SyntaxKind::ARRAY_EXPR
18232    }
18233    #[inline]
18234    fn cast(syntax: SyntaxNode) -> Option<Self> {
18235        if Self::can_cast(syntax.kind()) {
18236            Some(Self { syntax })
18237        } else {
18238            None
18239        }
18240    }
18241    #[inline]
18242    fn syntax(&self) -> &SyntaxNode {
18243        &self.syntax
18244    }
18245}
18246impl AstNode for ArrayType {
18247    #[inline]
18248    fn can_cast(kind: SyntaxKind) -> bool {
18249        kind == SyntaxKind::ARRAY_TYPE
18250    }
18251    #[inline]
18252    fn cast(syntax: SyntaxNode) -> Option<Self> {
18253        if Self::can_cast(syntax.kind()) {
18254            Some(Self { syntax })
18255        } else {
18256            None
18257        }
18258    }
18259    #[inline]
18260    fn syntax(&self) -> &SyntaxNode {
18261        &self.syntax
18262    }
18263}
18264impl AstNode for AsFuncOption {
18265    #[inline]
18266    fn can_cast(kind: SyntaxKind) -> bool {
18267        kind == SyntaxKind::AS_FUNC_OPTION
18268    }
18269    #[inline]
18270    fn cast(syntax: SyntaxNode) -> Option<Self> {
18271        if Self::can_cast(syntax.kind()) {
18272            Some(Self { syntax })
18273        } else {
18274            None
18275        }
18276    }
18277    #[inline]
18278    fn syntax(&self) -> &SyntaxNode {
18279        &self.syntax
18280    }
18281}
18282impl AstNode for AsName {
18283    #[inline]
18284    fn can_cast(kind: SyntaxKind) -> bool {
18285        kind == SyntaxKind::AS_NAME
18286    }
18287    #[inline]
18288    fn cast(syntax: SyntaxNode) -> Option<Self> {
18289        if Self::can_cast(syntax.kind()) {
18290            Some(Self { syntax })
18291        } else {
18292            None
18293        }
18294    }
18295    #[inline]
18296    fn syntax(&self) -> &SyntaxNode {
18297        &self.syntax
18298    }
18299}
18300impl AstNode for AsPolicyType {
18301    #[inline]
18302    fn can_cast(kind: SyntaxKind) -> bool {
18303        kind == SyntaxKind::AS_POLICY_TYPE
18304    }
18305    #[inline]
18306    fn cast(syntax: SyntaxNode) -> Option<Self> {
18307        if Self::can_cast(syntax.kind()) {
18308            Some(Self { syntax })
18309        } else {
18310            None
18311        }
18312    }
18313    #[inline]
18314    fn syntax(&self) -> &SyntaxNode {
18315        &self.syntax
18316    }
18317}
18318impl AstNode for AtTimeZone {
18319    #[inline]
18320    fn can_cast(kind: SyntaxKind) -> bool {
18321        kind == SyntaxKind::AT_TIME_ZONE
18322    }
18323    #[inline]
18324    fn cast(syntax: SyntaxNode) -> Option<Self> {
18325        if Self::can_cast(syntax.kind()) {
18326            Some(Self { syntax })
18327        } else {
18328            None
18329        }
18330    }
18331    #[inline]
18332    fn syntax(&self) -> &SyntaxNode {
18333        &self.syntax
18334    }
18335}
18336impl AstNode for AttachPartition {
18337    #[inline]
18338    fn can_cast(kind: SyntaxKind) -> bool {
18339        kind == SyntaxKind::ATTACH_PARTITION
18340    }
18341    #[inline]
18342    fn cast(syntax: SyntaxNode) -> Option<Self> {
18343        if Self::can_cast(syntax.kind()) {
18344            Some(Self { syntax })
18345        } else {
18346            None
18347        }
18348    }
18349    #[inline]
18350    fn syntax(&self) -> &SyntaxNode {
18351        &self.syntax
18352    }
18353}
18354impl AstNode for AttributeList {
18355    #[inline]
18356    fn can_cast(kind: SyntaxKind) -> bool {
18357        kind == SyntaxKind::ATTRIBUTE_LIST
18358    }
18359    #[inline]
18360    fn cast(syntax: SyntaxNode) -> Option<Self> {
18361        if Self::can_cast(syntax.kind()) {
18362            Some(Self { syntax })
18363        } else {
18364            None
18365        }
18366    }
18367    #[inline]
18368    fn syntax(&self) -> &SyntaxNode {
18369        &self.syntax
18370    }
18371}
18372impl AstNode for AttributeOption {
18373    #[inline]
18374    fn can_cast(kind: SyntaxKind) -> bool {
18375        kind == SyntaxKind::ATTRIBUTE_OPTION
18376    }
18377    #[inline]
18378    fn cast(syntax: SyntaxNode) -> Option<Self> {
18379        if Self::can_cast(syntax.kind()) {
18380            Some(Self { syntax })
18381        } else {
18382            None
18383        }
18384    }
18385    #[inline]
18386    fn syntax(&self) -> &SyntaxNode {
18387        &self.syntax
18388    }
18389}
18390impl AstNode for AttributeValue {
18391    #[inline]
18392    fn can_cast(kind: SyntaxKind) -> bool {
18393        kind == SyntaxKind::ATTRIBUTE_VALUE
18394    }
18395    #[inline]
18396    fn cast(syntax: SyntaxNode) -> Option<Self> {
18397        if Self::can_cast(syntax.kind()) {
18398            Some(Self { syntax })
18399        } else {
18400            None
18401        }
18402    }
18403    #[inline]
18404    fn syntax(&self) -> &SyntaxNode {
18405        &self.syntax
18406    }
18407}
18408impl AstNode for Begin {
18409    #[inline]
18410    fn can_cast(kind: SyntaxKind) -> bool {
18411        kind == SyntaxKind::BEGIN
18412    }
18413    #[inline]
18414    fn cast(syntax: SyntaxNode) -> Option<Self> {
18415        if Self::can_cast(syntax.kind()) {
18416            Some(Self { syntax })
18417        } else {
18418            None
18419        }
18420    }
18421    #[inline]
18422    fn syntax(&self) -> &SyntaxNode {
18423        &self.syntax
18424    }
18425}
18426impl AstNode for BeginFuncOption {
18427    #[inline]
18428    fn can_cast(kind: SyntaxKind) -> bool {
18429        kind == SyntaxKind::BEGIN_FUNC_OPTION
18430    }
18431    #[inline]
18432    fn cast(syntax: SyntaxNode) -> Option<Self> {
18433        if Self::can_cast(syntax.kind()) {
18434            Some(Self { syntax })
18435        } else {
18436            None
18437        }
18438    }
18439    #[inline]
18440    fn syntax(&self) -> &SyntaxNode {
18441        &self.syntax
18442    }
18443}
18444impl AstNode for BeginFuncOptionList {
18445    #[inline]
18446    fn can_cast(kind: SyntaxKind) -> bool {
18447        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
18448    }
18449    #[inline]
18450    fn cast(syntax: SyntaxNode) -> Option<Self> {
18451        if Self::can_cast(syntax.kind()) {
18452            Some(Self { syntax })
18453        } else {
18454            None
18455        }
18456    }
18457    #[inline]
18458    fn syntax(&self) -> &SyntaxNode {
18459        &self.syntax
18460    }
18461}
18462impl AstNode for BetweenExpr {
18463    #[inline]
18464    fn can_cast(kind: SyntaxKind) -> bool {
18465        kind == SyntaxKind::BETWEEN_EXPR
18466    }
18467    #[inline]
18468    fn cast(syntax: SyntaxNode) -> Option<Self> {
18469        if Self::can_cast(syntax.kind()) {
18470            Some(Self { syntax })
18471        } else {
18472            None
18473        }
18474    }
18475    #[inline]
18476    fn syntax(&self) -> &SyntaxNode {
18477        &self.syntax
18478    }
18479}
18480impl AstNode for BinExpr {
18481    #[inline]
18482    fn can_cast(kind: SyntaxKind) -> bool {
18483        kind == SyntaxKind::BIN_EXPR
18484    }
18485    #[inline]
18486    fn cast(syntax: SyntaxNode) -> Option<Self> {
18487        if Self::can_cast(syntax.kind()) {
18488            Some(Self { syntax })
18489        } else {
18490            None
18491        }
18492    }
18493    #[inline]
18494    fn syntax(&self) -> &SyntaxNode {
18495        &self.syntax
18496    }
18497}
18498impl AstNode for BitType {
18499    #[inline]
18500    fn can_cast(kind: SyntaxKind) -> bool {
18501        kind == SyntaxKind::BIT_TYPE
18502    }
18503    #[inline]
18504    fn cast(syntax: SyntaxNode) -> Option<Self> {
18505        if Self::can_cast(syntax.kind()) {
18506            Some(Self { syntax })
18507        } else {
18508            None
18509        }
18510    }
18511    #[inline]
18512    fn syntax(&self) -> &SyntaxNode {
18513        &self.syntax
18514    }
18515}
18516impl AstNode for Call {
18517    #[inline]
18518    fn can_cast(kind: SyntaxKind) -> bool {
18519        kind == SyntaxKind::CALL
18520    }
18521    #[inline]
18522    fn cast(syntax: SyntaxNode) -> Option<Self> {
18523        if Self::can_cast(syntax.kind()) {
18524            Some(Self { syntax })
18525        } else {
18526            None
18527        }
18528    }
18529    #[inline]
18530    fn syntax(&self) -> &SyntaxNode {
18531        &self.syntax
18532    }
18533}
18534impl AstNode for CallExpr {
18535    #[inline]
18536    fn can_cast(kind: SyntaxKind) -> bool {
18537        kind == SyntaxKind::CALL_EXPR
18538    }
18539    #[inline]
18540    fn cast(syntax: SyntaxNode) -> Option<Self> {
18541        if Self::can_cast(syntax.kind()) {
18542            Some(Self { syntax })
18543        } else {
18544            None
18545        }
18546    }
18547    #[inline]
18548    fn syntax(&self) -> &SyntaxNode {
18549        &self.syntax
18550    }
18551}
18552impl AstNode for Cascade {
18553    #[inline]
18554    fn can_cast(kind: SyntaxKind) -> bool {
18555        kind == SyntaxKind::CASCADE
18556    }
18557    #[inline]
18558    fn cast(syntax: SyntaxNode) -> Option<Self> {
18559        if Self::can_cast(syntax.kind()) {
18560            Some(Self { syntax })
18561        } else {
18562            None
18563        }
18564    }
18565    #[inline]
18566    fn syntax(&self) -> &SyntaxNode {
18567        &self.syntax
18568    }
18569}
18570impl AstNode for CaseExpr {
18571    #[inline]
18572    fn can_cast(kind: SyntaxKind) -> bool {
18573        kind == SyntaxKind::CASE_EXPR
18574    }
18575    #[inline]
18576    fn cast(syntax: SyntaxNode) -> Option<Self> {
18577        if Self::can_cast(syntax.kind()) {
18578            Some(Self { syntax })
18579        } else {
18580            None
18581        }
18582    }
18583    #[inline]
18584    fn syntax(&self) -> &SyntaxNode {
18585        &self.syntax
18586    }
18587}
18588impl AstNode for CastExpr {
18589    #[inline]
18590    fn can_cast(kind: SyntaxKind) -> bool {
18591        kind == SyntaxKind::CAST_EXPR
18592    }
18593    #[inline]
18594    fn cast(syntax: SyntaxNode) -> Option<Self> {
18595        if Self::can_cast(syntax.kind()) {
18596            Some(Self { syntax })
18597        } else {
18598            None
18599        }
18600    }
18601    #[inline]
18602    fn syntax(&self) -> &SyntaxNode {
18603        &self.syntax
18604    }
18605}
18606impl AstNode for CastSig {
18607    #[inline]
18608    fn can_cast(kind: SyntaxKind) -> bool {
18609        kind == SyntaxKind::CAST_SIG
18610    }
18611    #[inline]
18612    fn cast(syntax: SyntaxNode) -> Option<Self> {
18613        if Self::can_cast(syntax.kind()) {
18614            Some(Self { syntax })
18615        } else {
18616            None
18617        }
18618    }
18619    #[inline]
18620    fn syntax(&self) -> &SyntaxNode {
18621        &self.syntax
18622    }
18623}
18624impl AstNode for CharType {
18625    #[inline]
18626    fn can_cast(kind: SyntaxKind) -> bool {
18627        kind == SyntaxKind::CHAR_TYPE
18628    }
18629    #[inline]
18630    fn cast(syntax: SyntaxNode) -> Option<Self> {
18631        if Self::can_cast(syntax.kind()) {
18632            Some(Self { syntax })
18633        } else {
18634            None
18635        }
18636    }
18637    #[inline]
18638    fn syntax(&self) -> &SyntaxNode {
18639        &self.syntax
18640    }
18641}
18642impl AstNode for CheckConstraint {
18643    #[inline]
18644    fn can_cast(kind: SyntaxKind) -> bool {
18645        kind == SyntaxKind::CHECK_CONSTRAINT
18646    }
18647    #[inline]
18648    fn cast(syntax: SyntaxNode) -> Option<Self> {
18649        if Self::can_cast(syntax.kind()) {
18650            Some(Self { syntax })
18651        } else {
18652            None
18653        }
18654    }
18655    #[inline]
18656    fn syntax(&self) -> &SyntaxNode {
18657        &self.syntax
18658    }
18659}
18660impl AstNode for Checkpoint {
18661    #[inline]
18662    fn can_cast(kind: SyntaxKind) -> bool {
18663        kind == SyntaxKind::CHECKPOINT
18664    }
18665    #[inline]
18666    fn cast(syntax: SyntaxNode) -> Option<Self> {
18667        if Self::can_cast(syntax.kind()) {
18668            Some(Self { syntax })
18669        } else {
18670            None
18671        }
18672    }
18673    #[inline]
18674    fn syntax(&self) -> &SyntaxNode {
18675        &self.syntax
18676    }
18677}
18678impl AstNode for Close {
18679    #[inline]
18680    fn can_cast(kind: SyntaxKind) -> bool {
18681        kind == SyntaxKind::CLOSE
18682    }
18683    #[inline]
18684    fn cast(syntax: SyntaxNode) -> Option<Self> {
18685        if Self::can_cast(syntax.kind()) {
18686            Some(Self { syntax })
18687        } else {
18688            None
18689        }
18690    }
18691    #[inline]
18692    fn syntax(&self) -> &SyntaxNode {
18693        &self.syntax
18694    }
18695}
18696impl AstNode for Cluster {
18697    #[inline]
18698    fn can_cast(kind: SyntaxKind) -> bool {
18699        kind == SyntaxKind::CLUSTER
18700    }
18701    #[inline]
18702    fn cast(syntax: SyntaxNode) -> Option<Self> {
18703        if Self::can_cast(syntax.kind()) {
18704            Some(Self { syntax })
18705        } else {
18706            None
18707        }
18708    }
18709    #[inline]
18710    fn syntax(&self) -> &SyntaxNode {
18711        &self.syntax
18712    }
18713}
18714impl AstNode for ClusterOn {
18715    #[inline]
18716    fn can_cast(kind: SyntaxKind) -> bool {
18717        kind == SyntaxKind::CLUSTER_ON
18718    }
18719    #[inline]
18720    fn cast(syntax: SyntaxNode) -> Option<Self> {
18721        if Self::can_cast(syntax.kind()) {
18722            Some(Self { syntax })
18723        } else {
18724            None
18725        }
18726    }
18727    #[inline]
18728    fn syntax(&self) -> &SyntaxNode {
18729        &self.syntax
18730    }
18731}
18732impl AstNode for Collate {
18733    #[inline]
18734    fn can_cast(kind: SyntaxKind) -> bool {
18735        kind == SyntaxKind::COLLATE
18736    }
18737    #[inline]
18738    fn cast(syntax: SyntaxNode) -> Option<Self> {
18739        if Self::can_cast(syntax.kind()) {
18740            Some(Self { syntax })
18741        } else {
18742            None
18743        }
18744    }
18745    #[inline]
18746    fn syntax(&self) -> &SyntaxNode {
18747        &self.syntax
18748    }
18749}
18750impl AstNode for ColonColon {
18751    #[inline]
18752    fn can_cast(kind: SyntaxKind) -> bool {
18753        kind == SyntaxKind::COLON_COLON
18754    }
18755    #[inline]
18756    fn cast(syntax: SyntaxNode) -> Option<Self> {
18757        if Self::can_cast(syntax.kind()) {
18758            Some(Self { syntax })
18759        } else {
18760            None
18761        }
18762    }
18763    #[inline]
18764    fn syntax(&self) -> &SyntaxNode {
18765        &self.syntax
18766    }
18767}
18768impl AstNode for ColonEq {
18769    #[inline]
18770    fn can_cast(kind: SyntaxKind) -> bool {
18771        kind == SyntaxKind::COLON_EQ
18772    }
18773    #[inline]
18774    fn cast(syntax: SyntaxNode) -> Option<Self> {
18775        if Self::can_cast(syntax.kind()) {
18776            Some(Self { syntax })
18777        } else {
18778            None
18779        }
18780    }
18781    #[inline]
18782    fn syntax(&self) -> &SyntaxNode {
18783        &self.syntax
18784    }
18785}
18786impl AstNode for Column {
18787    #[inline]
18788    fn can_cast(kind: SyntaxKind) -> bool {
18789        kind == SyntaxKind::COLUMN
18790    }
18791    #[inline]
18792    fn cast(syntax: SyntaxNode) -> Option<Self> {
18793        if Self::can_cast(syntax.kind()) {
18794            Some(Self { syntax })
18795        } else {
18796            None
18797        }
18798    }
18799    #[inline]
18800    fn syntax(&self) -> &SyntaxNode {
18801        &self.syntax
18802    }
18803}
18804impl AstNode for ColumnList {
18805    #[inline]
18806    fn can_cast(kind: SyntaxKind) -> bool {
18807        kind == SyntaxKind::COLUMN_LIST
18808    }
18809    #[inline]
18810    fn cast(syntax: SyntaxNode) -> Option<Self> {
18811        if Self::can_cast(syntax.kind()) {
18812            Some(Self { syntax })
18813        } else {
18814            None
18815        }
18816    }
18817    #[inline]
18818    fn syntax(&self) -> &SyntaxNode {
18819        &self.syntax
18820    }
18821}
18822impl AstNode for CommentOn {
18823    #[inline]
18824    fn can_cast(kind: SyntaxKind) -> bool {
18825        kind == SyntaxKind::COMMENT_ON
18826    }
18827    #[inline]
18828    fn cast(syntax: SyntaxNode) -> Option<Self> {
18829        if Self::can_cast(syntax.kind()) {
18830            Some(Self { syntax })
18831        } else {
18832            None
18833        }
18834    }
18835    #[inline]
18836    fn syntax(&self) -> &SyntaxNode {
18837        &self.syntax
18838    }
18839}
18840impl AstNode for Commit {
18841    #[inline]
18842    fn can_cast(kind: SyntaxKind) -> bool {
18843        kind == SyntaxKind::COMMIT
18844    }
18845    #[inline]
18846    fn cast(syntax: SyntaxNode) -> Option<Self> {
18847        if Self::can_cast(syntax.kind()) {
18848            Some(Self { syntax })
18849        } else {
18850            None
18851        }
18852    }
18853    #[inline]
18854    fn syntax(&self) -> &SyntaxNode {
18855        &self.syntax
18856    }
18857}
18858impl AstNode for CompoundSelect {
18859    #[inline]
18860    fn can_cast(kind: SyntaxKind) -> bool {
18861        kind == SyntaxKind::COMPOUND_SELECT
18862    }
18863    #[inline]
18864    fn cast(syntax: SyntaxNode) -> Option<Self> {
18865        if Self::can_cast(syntax.kind()) {
18866            Some(Self { syntax })
18867        } else {
18868            None
18869        }
18870    }
18871    #[inline]
18872    fn syntax(&self) -> &SyntaxNode {
18873        &self.syntax
18874    }
18875}
18876impl AstNode for CompressionMethod {
18877    #[inline]
18878    fn can_cast(kind: SyntaxKind) -> bool {
18879        kind == SyntaxKind::COMPRESSION_METHOD
18880    }
18881    #[inline]
18882    fn cast(syntax: SyntaxNode) -> Option<Self> {
18883        if Self::can_cast(syntax.kind()) {
18884            Some(Self { syntax })
18885        } else {
18886            None
18887        }
18888    }
18889    #[inline]
18890    fn syntax(&self) -> &SyntaxNode {
18891        &self.syntax
18892    }
18893}
18894impl AstNode for ConflictDoNothing {
18895    #[inline]
18896    fn can_cast(kind: SyntaxKind) -> bool {
18897        kind == SyntaxKind::CONFLICT_DO_NOTHING
18898    }
18899    #[inline]
18900    fn cast(syntax: SyntaxNode) -> Option<Self> {
18901        if Self::can_cast(syntax.kind()) {
18902            Some(Self { syntax })
18903        } else {
18904            None
18905        }
18906    }
18907    #[inline]
18908    fn syntax(&self) -> &SyntaxNode {
18909        &self.syntax
18910    }
18911}
18912impl AstNode for ConflictDoUpdateSet {
18913    #[inline]
18914    fn can_cast(kind: SyntaxKind) -> bool {
18915        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
18916    }
18917    #[inline]
18918    fn cast(syntax: SyntaxNode) -> Option<Self> {
18919        if Self::can_cast(syntax.kind()) {
18920            Some(Self { syntax })
18921        } else {
18922            None
18923        }
18924    }
18925    #[inline]
18926    fn syntax(&self) -> &SyntaxNode {
18927        &self.syntax
18928    }
18929}
18930impl AstNode for ConflictIndexItem {
18931    #[inline]
18932    fn can_cast(kind: SyntaxKind) -> bool {
18933        kind == SyntaxKind::CONFLICT_INDEX_ITEM
18934    }
18935    #[inline]
18936    fn cast(syntax: SyntaxNode) -> Option<Self> {
18937        if Self::can_cast(syntax.kind()) {
18938            Some(Self { syntax })
18939        } else {
18940            None
18941        }
18942    }
18943    #[inline]
18944    fn syntax(&self) -> &SyntaxNode {
18945        &self.syntax
18946    }
18947}
18948impl AstNode for ConflictIndexItemList {
18949    #[inline]
18950    fn can_cast(kind: SyntaxKind) -> bool {
18951        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
18952    }
18953    #[inline]
18954    fn cast(syntax: SyntaxNode) -> Option<Self> {
18955        if Self::can_cast(syntax.kind()) {
18956            Some(Self { syntax })
18957        } else {
18958            None
18959        }
18960    }
18961    #[inline]
18962    fn syntax(&self) -> &SyntaxNode {
18963        &self.syntax
18964    }
18965}
18966impl AstNode for ConflictOnConstraint {
18967    #[inline]
18968    fn can_cast(kind: SyntaxKind) -> bool {
18969        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
18970    }
18971    #[inline]
18972    fn cast(syntax: SyntaxNode) -> Option<Self> {
18973        if Self::can_cast(syntax.kind()) {
18974            Some(Self { syntax })
18975        } else {
18976            None
18977        }
18978    }
18979    #[inline]
18980    fn syntax(&self) -> &SyntaxNode {
18981        &self.syntax
18982    }
18983}
18984impl AstNode for ConflictOnIndex {
18985    #[inline]
18986    fn can_cast(kind: SyntaxKind) -> bool {
18987        kind == SyntaxKind::CONFLICT_ON_INDEX
18988    }
18989    #[inline]
18990    fn cast(syntax: SyntaxNode) -> Option<Self> {
18991        if Self::can_cast(syntax.kind()) {
18992            Some(Self { syntax })
18993        } else {
18994            None
18995        }
18996    }
18997    #[inline]
18998    fn syntax(&self) -> &SyntaxNode {
18999        &self.syntax
19000    }
19001}
19002impl AstNode for ConstraintExclusion {
19003    #[inline]
19004    fn can_cast(kind: SyntaxKind) -> bool {
19005        kind == SyntaxKind::CONSTRAINT_EXCLUSION
19006    }
19007    #[inline]
19008    fn cast(syntax: SyntaxNode) -> Option<Self> {
19009        if Self::can_cast(syntax.kind()) {
19010            Some(Self { syntax })
19011        } else {
19012            None
19013        }
19014    }
19015    #[inline]
19016    fn syntax(&self) -> &SyntaxNode {
19017        &self.syntax
19018    }
19019}
19020impl AstNode for ConstraintExclusionList {
19021    #[inline]
19022    fn can_cast(kind: SyntaxKind) -> bool {
19023        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
19024    }
19025    #[inline]
19026    fn cast(syntax: SyntaxNode) -> Option<Self> {
19027        if Self::can_cast(syntax.kind()) {
19028            Some(Self { syntax })
19029        } else {
19030            None
19031        }
19032    }
19033    #[inline]
19034    fn syntax(&self) -> &SyntaxNode {
19035        &self.syntax
19036    }
19037}
19038impl AstNode for ConstraintIncludeClause {
19039    #[inline]
19040    fn can_cast(kind: SyntaxKind) -> bool {
19041        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
19042    }
19043    #[inline]
19044    fn cast(syntax: SyntaxNode) -> Option<Self> {
19045        if Self::can_cast(syntax.kind()) {
19046            Some(Self { syntax })
19047        } else {
19048            None
19049        }
19050    }
19051    #[inline]
19052    fn syntax(&self) -> &SyntaxNode {
19053        &self.syntax
19054    }
19055}
19056impl AstNode for ConstraintIndexMethod {
19057    #[inline]
19058    fn can_cast(kind: SyntaxKind) -> bool {
19059        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
19060    }
19061    #[inline]
19062    fn cast(syntax: SyntaxNode) -> Option<Self> {
19063        if Self::can_cast(syntax.kind()) {
19064            Some(Self { syntax })
19065        } else {
19066            None
19067        }
19068    }
19069    #[inline]
19070    fn syntax(&self) -> &SyntaxNode {
19071        &self.syntax
19072    }
19073}
19074impl AstNode for ConstraintIndexTablespace {
19075    #[inline]
19076    fn can_cast(kind: SyntaxKind) -> bool {
19077        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
19078    }
19079    #[inline]
19080    fn cast(syntax: SyntaxNode) -> Option<Self> {
19081        if Self::can_cast(syntax.kind()) {
19082            Some(Self { syntax })
19083        } else {
19084            None
19085        }
19086    }
19087    #[inline]
19088    fn syntax(&self) -> &SyntaxNode {
19089        &self.syntax
19090    }
19091}
19092impl AstNode for ConstraintName {
19093    #[inline]
19094    fn can_cast(kind: SyntaxKind) -> bool {
19095        kind == SyntaxKind::CONSTRAINT_NAME
19096    }
19097    #[inline]
19098    fn cast(syntax: SyntaxNode) -> Option<Self> {
19099        if Self::can_cast(syntax.kind()) {
19100            Some(Self { syntax })
19101        } else {
19102            None
19103        }
19104    }
19105    #[inline]
19106    fn syntax(&self) -> &SyntaxNode {
19107        &self.syntax
19108    }
19109}
19110impl AstNode for Copy {
19111    #[inline]
19112    fn can_cast(kind: SyntaxKind) -> bool {
19113        kind == SyntaxKind::COPY
19114    }
19115    #[inline]
19116    fn cast(syntax: SyntaxNode) -> Option<Self> {
19117        if Self::can_cast(syntax.kind()) {
19118            Some(Self { syntax })
19119        } else {
19120            None
19121        }
19122    }
19123    #[inline]
19124    fn syntax(&self) -> &SyntaxNode {
19125        &self.syntax
19126    }
19127}
19128impl AstNode for CopyOption {
19129    #[inline]
19130    fn can_cast(kind: SyntaxKind) -> bool {
19131        kind == SyntaxKind::COPY_OPTION
19132    }
19133    #[inline]
19134    fn cast(syntax: SyntaxNode) -> Option<Self> {
19135        if Self::can_cast(syntax.kind()) {
19136            Some(Self { syntax })
19137        } else {
19138            None
19139        }
19140    }
19141    #[inline]
19142    fn syntax(&self) -> &SyntaxNode {
19143        &self.syntax
19144    }
19145}
19146impl AstNode for CopyOptionList {
19147    #[inline]
19148    fn can_cast(kind: SyntaxKind) -> bool {
19149        kind == SyntaxKind::COPY_OPTION_LIST
19150    }
19151    #[inline]
19152    fn cast(syntax: SyntaxNode) -> Option<Self> {
19153        if Self::can_cast(syntax.kind()) {
19154            Some(Self { syntax })
19155        } else {
19156            None
19157        }
19158    }
19159    #[inline]
19160    fn syntax(&self) -> &SyntaxNode {
19161        &self.syntax
19162    }
19163}
19164impl AstNode for CostFuncOption {
19165    #[inline]
19166    fn can_cast(kind: SyntaxKind) -> bool {
19167        kind == SyntaxKind::COST_FUNC_OPTION
19168    }
19169    #[inline]
19170    fn cast(syntax: SyntaxNode) -> Option<Self> {
19171        if Self::can_cast(syntax.kind()) {
19172            Some(Self { syntax })
19173        } else {
19174            None
19175        }
19176    }
19177    #[inline]
19178    fn syntax(&self) -> &SyntaxNode {
19179        &self.syntax
19180    }
19181}
19182impl AstNode for CreateAccessMethod {
19183    #[inline]
19184    fn can_cast(kind: SyntaxKind) -> bool {
19185        kind == SyntaxKind::CREATE_ACCESS_METHOD
19186    }
19187    #[inline]
19188    fn cast(syntax: SyntaxNode) -> Option<Self> {
19189        if Self::can_cast(syntax.kind()) {
19190            Some(Self { syntax })
19191        } else {
19192            None
19193        }
19194    }
19195    #[inline]
19196    fn syntax(&self) -> &SyntaxNode {
19197        &self.syntax
19198    }
19199}
19200impl AstNode for CreateAggregate {
19201    #[inline]
19202    fn can_cast(kind: SyntaxKind) -> bool {
19203        kind == SyntaxKind::CREATE_AGGREGATE
19204    }
19205    #[inline]
19206    fn cast(syntax: SyntaxNode) -> Option<Self> {
19207        if Self::can_cast(syntax.kind()) {
19208            Some(Self { syntax })
19209        } else {
19210            None
19211        }
19212    }
19213    #[inline]
19214    fn syntax(&self) -> &SyntaxNode {
19215        &self.syntax
19216    }
19217}
19218impl AstNode for CreateCast {
19219    #[inline]
19220    fn can_cast(kind: SyntaxKind) -> bool {
19221        kind == SyntaxKind::CREATE_CAST
19222    }
19223    #[inline]
19224    fn cast(syntax: SyntaxNode) -> Option<Self> {
19225        if Self::can_cast(syntax.kind()) {
19226            Some(Self { syntax })
19227        } else {
19228            None
19229        }
19230    }
19231    #[inline]
19232    fn syntax(&self) -> &SyntaxNode {
19233        &self.syntax
19234    }
19235}
19236impl AstNode for CreateCollation {
19237    #[inline]
19238    fn can_cast(kind: SyntaxKind) -> bool {
19239        kind == SyntaxKind::CREATE_COLLATION
19240    }
19241    #[inline]
19242    fn cast(syntax: SyntaxNode) -> Option<Self> {
19243        if Self::can_cast(syntax.kind()) {
19244            Some(Self { syntax })
19245        } else {
19246            None
19247        }
19248    }
19249    #[inline]
19250    fn syntax(&self) -> &SyntaxNode {
19251        &self.syntax
19252    }
19253}
19254impl AstNode for CreateConversion {
19255    #[inline]
19256    fn can_cast(kind: SyntaxKind) -> bool {
19257        kind == SyntaxKind::CREATE_CONVERSION
19258    }
19259    #[inline]
19260    fn cast(syntax: SyntaxNode) -> Option<Self> {
19261        if Self::can_cast(syntax.kind()) {
19262            Some(Self { syntax })
19263        } else {
19264            None
19265        }
19266    }
19267    #[inline]
19268    fn syntax(&self) -> &SyntaxNode {
19269        &self.syntax
19270    }
19271}
19272impl AstNode for CreateDatabase {
19273    #[inline]
19274    fn can_cast(kind: SyntaxKind) -> bool {
19275        kind == SyntaxKind::CREATE_DATABASE
19276    }
19277    #[inline]
19278    fn cast(syntax: SyntaxNode) -> Option<Self> {
19279        if Self::can_cast(syntax.kind()) {
19280            Some(Self { syntax })
19281        } else {
19282            None
19283        }
19284    }
19285    #[inline]
19286    fn syntax(&self) -> &SyntaxNode {
19287        &self.syntax
19288    }
19289}
19290impl AstNode for CreateDatabaseOption {
19291    #[inline]
19292    fn can_cast(kind: SyntaxKind) -> bool {
19293        kind == SyntaxKind::CREATE_DATABASE_OPTION
19294    }
19295    #[inline]
19296    fn cast(syntax: SyntaxNode) -> Option<Self> {
19297        if Self::can_cast(syntax.kind()) {
19298            Some(Self { syntax })
19299        } else {
19300            None
19301        }
19302    }
19303    #[inline]
19304    fn syntax(&self) -> &SyntaxNode {
19305        &self.syntax
19306    }
19307}
19308impl AstNode for CreateDatabaseOptionList {
19309    #[inline]
19310    fn can_cast(kind: SyntaxKind) -> bool {
19311        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
19312    }
19313    #[inline]
19314    fn cast(syntax: SyntaxNode) -> Option<Self> {
19315        if Self::can_cast(syntax.kind()) {
19316            Some(Self { syntax })
19317        } else {
19318            None
19319        }
19320    }
19321    #[inline]
19322    fn syntax(&self) -> &SyntaxNode {
19323        &self.syntax
19324    }
19325}
19326impl AstNode for CreateDomain {
19327    #[inline]
19328    fn can_cast(kind: SyntaxKind) -> bool {
19329        kind == SyntaxKind::CREATE_DOMAIN
19330    }
19331    #[inline]
19332    fn cast(syntax: SyntaxNode) -> Option<Self> {
19333        if Self::can_cast(syntax.kind()) {
19334            Some(Self { syntax })
19335        } else {
19336            None
19337        }
19338    }
19339    #[inline]
19340    fn syntax(&self) -> &SyntaxNode {
19341        &self.syntax
19342    }
19343}
19344impl AstNode for CreateEventTrigger {
19345    #[inline]
19346    fn can_cast(kind: SyntaxKind) -> bool {
19347        kind == SyntaxKind::CREATE_EVENT_TRIGGER
19348    }
19349    #[inline]
19350    fn cast(syntax: SyntaxNode) -> Option<Self> {
19351        if Self::can_cast(syntax.kind()) {
19352            Some(Self { syntax })
19353        } else {
19354            None
19355        }
19356    }
19357    #[inline]
19358    fn syntax(&self) -> &SyntaxNode {
19359        &self.syntax
19360    }
19361}
19362impl AstNode for CreateExtension {
19363    #[inline]
19364    fn can_cast(kind: SyntaxKind) -> bool {
19365        kind == SyntaxKind::CREATE_EXTENSION
19366    }
19367    #[inline]
19368    fn cast(syntax: SyntaxNode) -> Option<Self> {
19369        if Self::can_cast(syntax.kind()) {
19370            Some(Self { syntax })
19371        } else {
19372            None
19373        }
19374    }
19375    #[inline]
19376    fn syntax(&self) -> &SyntaxNode {
19377        &self.syntax
19378    }
19379}
19380impl AstNode for CreateForeignDataWrapper {
19381    #[inline]
19382    fn can_cast(kind: SyntaxKind) -> bool {
19383        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
19384    }
19385    #[inline]
19386    fn cast(syntax: SyntaxNode) -> Option<Self> {
19387        if Self::can_cast(syntax.kind()) {
19388            Some(Self { syntax })
19389        } else {
19390            None
19391        }
19392    }
19393    #[inline]
19394    fn syntax(&self) -> &SyntaxNode {
19395        &self.syntax
19396    }
19397}
19398impl AstNode for CreateForeignTable {
19399    #[inline]
19400    fn can_cast(kind: SyntaxKind) -> bool {
19401        kind == SyntaxKind::CREATE_FOREIGN_TABLE
19402    }
19403    #[inline]
19404    fn cast(syntax: SyntaxNode) -> Option<Self> {
19405        if Self::can_cast(syntax.kind()) {
19406            Some(Self { syntax })
19407        } else {
19408            None
19409        }
19410    }
19411    #[inline]
19412    fn syntax(&self) -> &SyntaxNode {
19413        &self.syntax
19414    }
19415}
19416impl AstNode for CreateFunction {
19417    #[inline]
19418    fn can_cast(kind: SyntaxKind) -> bool {
19419        kind == SyntaxKind::CREATE_FUNCTION
19420    }
19421    #[inline]
19422    fn cast(syntax: SyntaxNode) -> Option<Self> {
19423        if Self::can_cast(syntax.kind()) {
19424            Some(Self { syntax })
19425        } else {
19426            None
19427        }
19428    }
19429    #[inline]
19430    fn syntax(&self) -> &SyntaxNode {
19431        &self.syntax
19432    }
19433}
19434impl AstNode for CreateGroup {
19435    #[inline]
19436    fn can_cast(kind: SyntaxKind) -> bool {
19437        kind == SyntaxKind::CREATE_GROUP
19438    }
19439    #[inline]
19440    fn cast(syntax: SyntaxNode) -> Option<Self> {
19441        if Self::can_cast(syntax.kind()) {
19442            Some(Self { syntax })
19443        } else {
19444            None
19445        }
19446    }
19447    #[inline]
19448    fn syntax(&self) -> &SyntaxNode {
19449        &self.syntax
19450    }
19451}
19452impl AstNode for CreateIndex {
19453    #[inline]
19454    fn can_cast(kind: SyntaxKind) -> bool {
19455        kind == SyntaxKind::CREATE_INDEX
19456    }
19457    #[inline]
19458    fn cast(syntax: SyntaxNode) -> Option<Self> {
19459        if Self::can_cast(syntax.kind()) {
19460            Some(Self { syntax })
19461        } else {
19462            None
19463        }
19464    }
19465    #[inline]
19466    fn syntax(&self) -> &SyntaxNode {
19467        &self.syntax
19468    }
19469}
19470impl AstNode for CreateLanguage {
19471    #[inline]
19472    fn can_cast(kind: SyntaxKind) -> bool {
19473        kind == SyntaxKind::CREATE_LANGUAGE
19474    }
19475    #[inline]
19476    fn cast(syntax: SyntaxNode) -> Option<Self> {
19477        if Self::can_cast(syntax.kind()) {
19478            Some(Self { syntax })
19479        } else {
19480            None
19481        }
19482    }
19483    #[inline]
19484    fn syntax(&self) -> &SyntaxNode {
19485        &self.syntax
19486    }
19487}
19488impl AstNode for CreateMaterializedView {
19489    #[inline]
19490    fn can_cast(kind: SyntaxKind) -> bool {
19491        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
19492    }
19493    #[inline]
19494    fn cast(syntax: SyntaxNode) -> Option<Self> {
19495        if Self::can_cast(syntax.kind()) {
19496            Some(Self { syntax })
19497        } else {
19498            None
19499        }
19500    }
19501    #[inline]
19502    fn syntax(&self) -> &SyntaxNode {
19503        &self.syntax
19504    }
19505}
19506impl AstNode for CreateOperator {
19507    #[inline]
19508    fn can_cast(kind: SyntaxKind) -> bool {
19509        kind == SyntaxKind::CREATE_OPERATOR
19510    }
19511    #[inline]
19512    fn cast(syntax: SyntaxNode) -> Option<Self> {
19513        if Self::can_cast(syntax.kind()) {
19514            Some(Self { syntax })
19515        } else {
19516            None
19517        }
19518    }
19519    #[inline]
19520    fn syntax(&self) -> &SyntaxNode {
19521        &self.syntax
19522    }
19523}
19524impl AstNode for CreateOperatorClass {
19525    #[inline]
19526    fn can_cast(kind: SyntaxKind) -> bool {
19527        kind == SyntaxKind::CREATE_OPERATOR_CLASS
19528    }
19529    #[inline]
19530    fn cast(syntax: SyntaxNode) -> Option<Self> {
19531        if Self::can_cast(syntax.kind()) {
19532            Some(Self { syntax })
19533        } else {
19534            None
19535        }
19536    }
19537    #[inline]
19538    fn syntax(&self) -> &SyntaxNode {
19539        &self.syntax
19540    }
19541}
19542impl AstNode for CreateOperatorFamily {
19543    #[inline]
19544    fn can_cast(kind: SyntaxKind) -> bool {
19545        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
19546    }
19547    #[inline]
19548    fn cast(syntax: SyntaxNode) -> Option<Self> {
19549        if Self::can_cast(syntax.kind()) {
19550            Some(Self { syntax })
19551        } else {
19552            None
19553        }
19554    }
19555    #[inline]
19556    fn syntax(&self) -> &SyntaxNode {
19557        &self.syntax
19558    }
19559}
19560impl AstNode for CreatePolicy {
19561    #[inline]
19562    fn can_cast(kind: SyntaxKind) -> bool {
19563        kind == SyntaxKind::CREATE_POLICY
19564    }
19565    #[inline]
19566    fn cast(syntax: SyntaxNode) -> Option<Self> {
19567        if Self::can_cast(syntax.kind()) {
19568            Some(Self { syntax })
19569        } else {
19570            None
19571        }
19572    }
19573    #[inline]
19574    fn syntax(&self) -> &SyntaxNode {
19575        &self.syntax
19576    }
19577}
19578impl AstNode for CreateProcedure {
19579    #[inline]
19580    fn can_cast(kind: SyntaxKind) -> bool {
19581        kind == SyntaxKind::CREATE_PROCEDURE
19582    }
19583    #[inline]
19584    fn cast(syntax: SyntaxNode) -> Option<Self> {
19585        if Self::can_cast(syntax.kind()) {
19586            Some(Self { syntax })
19587        } else {
19588            None
19589        }
19590    }
19591    #[inline]
19592    fn syntax(&self) -> &SyntaxNode {
19593        &self.syntax
19594    }
19595}
19596impl AstNode for CreatePublication {
19597    #[inline]
19598    fn can_cast(kind: SyntaxKind) -> bool {
19599        kind == SyntaxKind::CREATE_PUBLICATION
19600    }
19601    #[inline]
19602    fn cast(syntax: SyntaxNode) -> Option<Self> {
19603        if Self::can_cast(syntax.kind()) {
19604            Some(Self { syntax })
19605        } else {
19606            None
19607        }
19608    }
19609    #[inline]
19610    fn syntax(&self) -> &SyntaxNode {
19611        &self.syntax
19612    }
19613}
19614impl AstNode for CreateRole {
19615    #[inline]
19616    fn can_cast(kind: SyntaxKind) -> bool {
19617        kind == SyntaxKind::CREATE_ROLE
19618    }
19619    #[inline]
19620    fn cast(syntax: SyntaxNode) -> Option<Self> {
19621        if Self::can_cast(syntax.kind()) {
19622            Some(Self { syntax })
19623        } else {
19624            None
19625        }
19626    }
19627    #[inline]
19628    fn syntax(&self) -> &SyntaxNode {
19629        &self.syntax
19630    }
19631}
19632impl AstNode for CreateRule {
19633    #[inline]
19634    fn can_cast(kind: SyntaxKind) -> bool {
19635        kind == SyntaxKind::CREATE_RULE
19636    }
19637    #[inline]
19638    fn cast(syntax: SyntaxNode) -> Option<Self> {
19639        if Self::can_cast(syntax.kind()) {
19640            Some(Self { syntax })
19641        } else {
19642            None
19643        }
19644    }
19645    #[inline]
19646    fn syntax(&self) -> &SyntaxNode {
19647        &self.syntax
19648    }
19649}
19650impl AstNode for CreateSchema {
19651    #[inline]
19652    fn can_cast(kind: SyntaxKind) -> bool {
19653        kind == SyntaxKind::CREATE_SCHEMA
19654    }
19655    #[inline]
19656    fn cast(syntax: SyntaxNode) -> Option<Self> {
19657        if Self::can_cast(syntax.kind()) {
19658            Some(Self { syntax })
19659        } else {
19660            None
19661        }
19662    }
19663    #[inline]
19664    fn syntax(&self) -> &SyntaxNode {
19665        &self.syntax
19666    }
19667}
19668impl AstNode for CreateSequence {
19669    #[inline]
19670    fn can_cast(kind: SyntaxKind) -> bool {
19671        kind == SyntaxKind::CREATE_SEQUENCE
19672    }
19673    #[inline]
19674    fn cast(syntax: SyntaxNode) -> Option<Self> {
19675        if Self::can_cast(syntax.kind()) {
19676            Some(Self { syntax })
19677        } else {
19678            None
19679        }
19680    }
19681    #[inline]
19682    fn syntax(&self) -> &SyntaxNode {
19683        &self.syntax
19684    }
19685}
19686impl AstNode for CreateServer {
19687    #[inline]
19688    fn can_cast(kind: SyntaxKind) -> bool {
19689        kind == SyntaxKind::CREATE_SERVER
19690    }
19691    #[inline]
19692    fn cast(syntax: SyntaxNode) -> Option<Self> {
19693        if Self::can_cast(syntax.kind()) {
19694            Some(Self { syntax })
19695        } else {
19696            None
19697        }
19698    }
19699    #[inline]
19700    fn syntax(&self) -> &SyntaxNode {
19701        &self.syntax
19702    }
19703}
19704impl AstNode for CreateStatistics {
19705    #[inline]
19706    fn can_cast(kind: SyntaxKind) -> bool {
19707        kind == SyntaxKind::CREATE_STATISTICS
19708    }
19709    #[inline]
19710    fn cast(syntax: SyntaxNode) -> Option<Self> {
19711        if Self::can_cast(syntax.kind()) {
19712            Some(Self { syntax })
19713        } else {
19714            None
19715        }
19716    }
19717    #[inline]
19718    fn syntax(&self) -> &SyntaxNode {
19719        &self.syntax
19720    }
19721}
19722impl AstNode for CreateSubscription {
19723    #[inline]
19724    fn can_cast(kind: SyntaxKind) -> bool {
19725        kind == SyntaxKind::CREATE_SUBSCRIPTION
19726    }
19727    #[inline]
19728    fn cast(syntax: SyntaxNode) -> Option<Self> {
19729        if Self::can_cast(syntax.kind()) {
19730            Some(Self { syntax })
19731        } else {
19732            None
19733        }
19734    }
19735    #[inline]
19736    fn syntax(&self) -> &SyntaxNode {
19737        &self.syntax
19738    }
19739}
19740impl AstNode for CreateTable {
19741    #[inline]
19742    fn can_cast(kind: SyntaxKind) -> bool {
19743        kind == SyntaxKind::CREATE_TABLE
19744    }
19745    #[inline]
19746    fn cast(syntax: SyntaxNode) -> Option<Self> {
19747        if Self::can_cast(syntax.kind()) {
19748            Some(Self { syntax })
19749        } else {
19750            None
19751        }
19752    }
19753    #[inline]
19754    fn syntax(&self) -> &SyntaxNode {
19755        &self.syntax
19756    }
19757}
19758impl AstNode for CreateTableAs {
19759    #[inline]
19760    fn can_cast(kind: SyntaxKind) -> bool {
19761        kind == SyntaxKind::CREATE_TABLE_AS
19762    }
19763    #[inline]
19764    fn cast(syntax: SyntaxNode) -> Option<Self> {
19765        if Self::can_cast(syntax.kind()) {
19766            Some(Self { syntax })
19767        } else {
19768            None
19769        }
19770    }
19771    #[inline]
19772    fn syntax(&self) -> &SyntaxNode {
19773        &self.syntax
19774    }
19775}
19776impl AstNode for CreateTablespace {
19777    #[inline]
19778    fn can_cast(kind: SyntaxKind) -> bool {
19779        kind == SyntaxKind::CREATE_TABLESPACE
19780    }
19781    #[inline]
19782    fn cast(syntax: SyntaxNode) -> Option<Self> {
19783        if Self::can_cast(syntax.kind()) {
19784            Some(Self { syntax })
19785        } else {
19786            None
19787        }
19788    }
19789    #[inline]
19790    fn syntax(&self) -> &SyntaxNode {
19791        &self.syntax
19792    }
19793}
19794impl AstNode for CreateTextSearchConfiguration {
19795    #[inline]
19796    fn can_cast(kind: SyntaxKind) -> bool {
19797        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
19798    }
19799    #[inline]
19800    fn cast(syntax: SyntaxNode) -> Option<Self> {
19801        if Self::can_cast(syntax.kind()) {
19802            Some(Self { syntax })
19803        } else {
19804            None
19805        }
19806    }
19807    #[inline]
19808    fn syntax(&self) -> &SyntaxNode {
19809        &self.syntax
19810    }
19811}
19812impl AstNode for CreateTextSearchDictionary {
19813    #[inline]
19814    fn can_cast(kind: SyntaxKind) -> bool {
19815        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
19816    }
19817    #[inline]
19818    fn cast(syntax: SyntaxNode) -> Option<Self> {
19819        if Self::can_cast(syntax.kind()) {
19820            Some(Self { syntax })
19821        } else {
19822            None
19823        }
19824    }
19825    #[inline]
19826    fn syntax(&self) -> &SyntaxNode {
19827        &self.syntax
19828    }
19829}
19830impl AstNode for CreateTextSearchParser {
19831    #[inline]
19832    fn can_cast(kind: SyntaxKind) -> bool {
19833        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
19834    }
19835    #[inline]
19836    fn cast(syntax: SyntaxNode) -> Option<Self> {
19837        if Self::can_cast(syntax.kind()) {
19838            Some(Self { syntax })
19839        } else {
19840            None
19841        }
19842    }
19843    #[inline]
19844    fn syntax(&self) -> &SyntaxNode {
19845        &self.syntax
19846    }
19847}
19848impl AstNode for CreateTextSearchTemplate {
19849    #[inline]
19850    fn can_cast(kind: SyntaxKind) -> bool {
19851        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
19852    }
19853    #[inline]
19854    fn cast(syntax: SyntaxNode) -> Option<Self> {
19855        if Self::can_cast(syntax.kind()) {
19856            Some(Self { syntax })
19857        } else {
19858            None
19859        }
19860    }
19861    #[inline]
19862    fn syntax(&self) -> &SyntaxNode {
19863        &self.syntax
19864    }
19865}
19866impl AstNode for CreateTransform {
19867    #[inline]
19868    fn can_cast(kind: SyntaxKind) -> bool {
19869        kind == SyntaxKind::CREATE_TRANSFORM
19870    }
19871    #[inline]
19872    fn cast(syntax: SyntaxNode) -> Option<Self> {
19873        if Self::can_cast(syntax.kind()) {
19874            Some(Self { syntax })
19875        } else {
19876            None
19877        }
19878    }
19879    #[inline]
19880    fn syntax(&self) -> &SyntaxNode {
19881        &self.syntax
19882    }
19883}
19884impl AstNode for CreateTrigger {
19885    #[inline]
19886    fn can_cast(kind: SyntaxKind) -> bool {
19887        kind == SyntaxKind::CREATE_TRIGGER
19888    }
19889    #[inline]
19890    fn cast(syntax: SyntaxNode) -> Option<Self> {
19891        if Self::can_cast(syntax.kind()) {
19892            Some(Self { syntax })
19893        } else {
19894            None
19895        }
19896    }
19897    #[inline]
19898    fn syntax(&self) -> &SyntaxNode {
19899        &self.syntax
19900    }
19901}
19902impl AstNode for CreateType {
19903    #[inline]
19904    fn can_cast(kind: SyntaxKind) -> bool {
19905        kind == SyntaxKind::CREATE_TYPE
19906    }
19907    #[inline]
19908    fn cast(syntax: SyntaxNode) -> Option<Self> {
19909        if Self::can_cast(syntax.kind()) {
19910            Some(Self { syntax })
19911        } else {
19912            None
19913        }
19914    }
19915    #[inline]
19916    fn syntax(&self) -> &SyntaxNode {
19917        &self.syntax
19918    }
19919}
19920impl AstNode for CreateUser {
19921    #[inline]
19922    fn can_cast(kind: SyntaxKind) -> bool {
19923        kind == SyntaxKind::CREATE_USER
19924    }
19925    #[inline]
19926    fn cast(syntax: SyntaxNode) -> Option<Self> {
19927        if Self::can_cast(syntax.kind()) {
19928            Some(Self { syntax })
19929        } else {
19930            None
19931        }
19932    }
19933    #[inline]
19934    fn syntax(&self) -> &SyntaxNode {
19935        &self.syntax
19936    }
19937}
19938impl AstNode for CreateUserMapping {
19939    #[inline]
19940    fn can_cast(kind: SyntaxKind) -> bool {
19941        kind == SyntaxKind::CREATE_USER_MAPPING
19942    }
19943    #[inline]
19944    fn cast(syntax: SyntaxNode) -> Option<Self> {
19945        if Self::can_cast(syntax.kind()) {
19946            Some(Self { syntax })
19947        } else {
19948            None
19949        }
19950    }
19951    #[inline]
19952    fn syntax(&self) -> &SyntaxNode {
19953        &self.syntax
19954    }
19955}
19956impl AstNode for CreateView {
19957    #[inline]
19958    fn can_cast(kind: SyntaxKind) -> bool {
19959        kind == SyntaxKind::CREATE_VIEW
19960    }
19961    #[inline]
19962    fn cast(syntax: SyntaxNode) -> Option<Self> {
19963        if Self::can_cast(syntax.kind()) {
19964            Some(Self { syntax })
19965        } else {
19966            None
19967        }
19968    }
19969    #[inline]
19970    fn syntax(&self) -> &SyntaxNode {
19971        &self.syntax
19972    }
19973}
19974impl AstNode for CustomOp {
19975    #[inline]
19976    fn can_cast(kind: SyntaxKind) -> bool {
19977        kind == SyntaxKind::CUSTOM_OP
19978    }
19979    #[inline]
19980    fn cast(syntax: SyntaxNode) -> Option<Self> {
19981        if Self::can_cast(syntax.kind()) {
19982            Some(Self { syntax })
19983        } else {
19984            None
19985        }
19986    }
19987    #[inline]
19988    fn syntax(&self) -> &SyntaxNode {
19989        &self.syntax
19990    }
19991}
19992impl AstNode for Deallocate {
19993    #[inline]
19994    fn can_cast(kind: SyntaxKind) -> bool {
19995        kind == SyntaxKind::DEALLOCATE
19996    }
19997    #[inline]
19998    fn cast(syntax: SyntaxNode) -> Option<Self> {
19999        if Self::can_cast(syntax.kind()) {
20000            Some(Self { syntax })
20001        } else {
20002            None
20003        }
20004    }
20005    #[inline]
20006    fn syntax(&self) -> &SyntaxNode {
20007        &self.syntax
20008    }
20009}
20010impl AstNode for Declare {
20011    #[inline]
20012    fn can_cast(kind: SyntaxKind) -> bool {
20013        kind == SyntaxKind::DECLARE
20014    }
20015    #[inline]
20016    fn cast(syntax: SyntaxNode) -> Option<Self> {
20017        if Self::can_cast(syntax.kind()) {
20018            Some(Self { syntax })
20019        } else {
20020            None
20021        }
20022    }
20023    #[inline]
20024    fn syntax(&self) -> &SyntaxNode {
20025        &self.syntax
20026    }
20027}
20028impl AstNode for DefaultConstraint {
20029    #[inline]
20030    fn can_cast(kind: SyntaxKind) -> bool {
20031        kind == SyntaxKind::DEFAULT_CONSTRAINT
20032    }
20033    #[inline]
20034    fn cast(syntax: SyntaxNode) -> Option<Self> {
20035        if Self::can_cast(syntax.kind()) {
20036            Some(Self { syntax })
20037        } else {
20038            None
20039        }
20040    }
20041    #[inline]
20042    fn syntax(&self) -> &SyntaxNode {
20043        &self.syntax
20044    }
20045}
20046impl AstNode for Deferrable {
20047    #[inline]
20048    fn can_cast(kind: SyntaxKind) -> bool {
20049        kind == SyntaxKind::DEFERRABLE
20050    }
20051    #[inline]
20052    fn cast(syntax: SyntaxNode) -> Option<Self> {
20053        if Self::can_cast(syntax.kind()) {
20054            Some(Self { syntax })
20055        } else {
20056            None
20057        }
20058    }
20059    #[inline]
20060    fn syntax(&self) -> &SyntaxNode {
20061        &self.syntax
20062    }
20063}
20064impl AstNode for DeferrableConstraintOption {
20065    #[inline]
20066    fn can_cast(kind: SyntaxKind) -> bool {
20067        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
20068    }
20069    #[inline]
20070    fn cast(syntax: SyntaxNode) -> Option<Self> {
20071        if Self::can_cast(syntax.kind()) {
20072            Some(Self { syntax })
20073        } else {
20074            None
20075        }
20076    }
20077    #[inline]
20078    fn syntax(&self) -> &SyntaxNode {
20079        &self.syntax
20080    }
20081}
20082impl AstNode for Delete {
20083    #[inline]
20084    fn can_cast(kind: SyntaxKind) -> bool {
20085        kind == SyntaxKind::DELETE
20086    }
20087    #[inline]
20088    fn cast(syntax: SyntaxNode) -> Option<Self> {
20089        if Self::can_cast(syntax.kind()) {
20090            Some(Self { syntax })
20091        } else {
20092            None
20093        }
20094    }
20095    #[inline]
20096    fn syntax(&self) -> &SyntaxNode {
20097        &self.syntax
20098    }
20099}
20100impl AstNode for DeleteRows {
20101    #[inline]
20102    fn can_cast(kind: SyntaxKind) -> bool {
20103        kind == SyntaxKind::DELETE_ROWS
20104    }
20105    #[inline]
20106    fn cast(syntax: SyntaxNode) -> Option<Self> {
20107        if Self::can_cast(syntax.kind()) {
20108            Some(Self { syntax })
20109        } else {
20110            None
20111        }
20112    }
20113    #[inline]
20114    fn syntax(&self) -> &SyntaxNode {
20115        &self.syntax
20116    }
20117}
20118impl AstNode for DependsOnExtension {
20119    #[inline]
20120    fn can_cast(kind: SyntaxKind) -> bool {
20121        kind == SyntaxKind::DEPENDS_ON_EXTENSION
20122    }
20123    #[inline]
20124    fn cast(syntax: SyntaxNode) -> Option<Self> {
20125        if Self::can_cast(syntax.kind()) {
20126            Some(Self { syntax })
20127        } else {
20128            None
20129        }
20130    }
20131    #[inline]
20132    fn syntax(&self) -> &SyntaxNode {
20133        &self.syntax
20134    }
20135}
20136impl AstNode for DetachPartition {
20137    #[inline]
20138    fn can_cast(kind: SyntaxKind) -> bool {
20139        kind == SyntaxKind::DETACH_PARTITION
20140    }
20141    #[inline]
20142    fn cast(syntax: SyntaxNode) -> Option<Self> {
20143        if Self::can_cast(syntax.kind()) {
20144            Some(Self { syntax })
20145        } else {
20146            None
20147        }
20148    }
20149    #[inline]
20150    fn syntax(&self) -> &SyntaxNode {
20151        &self.syntax
20152    }
20153}
20154impl AstNode for DisableRls {
20155    #[inline]
20156    fn can_cast(kind: SyntaxKind) -> bool {
20157        kind == SyntaxKind::DISABLE_RLS
20158    }
20159    #[inline]
20160    fn cast(syntax: SyntaxNode) -> Option<Self> {
20161        if Self::can_cast(syntax.kind()) {
20162            Some(Self { syntax })
20163        } else {
20164            None
20165        }
20166    }
20167    #[inline]
20168    fn syntax(&self) -> &SyntaxNode {
20169        &self.syntax
20170    }
20171}
20172impl AstNode for DisableRule {
20173    #[inline]
20174    fn can_cast(kind: SyntaxKind) -> bool {
20175        kind == SyntaxKind::DISABLE_RULE
20176    }
20177    #[inline]
20178    fn cast(syntax: SyntaxNode) -> Option<Self> {
20179        if Self::can_cast(syntax.kind()) {
20180            Some(Self { syntax })
20181        } else {
20182            None
20183        }
20184    }
20185    #[inline]
20186    fn syntax(&self) -> &SyntaxNode {
20187        &self.syntax
20188    }
20189}
20190impl AstNode for DisableTrigger {
20191    #[inline]
20192    fn can_cast(kind: SyntaxKind) -> bool {
20193        kind == SyntaxKind::DISABLE_TRIGGER
20194    }
20195    #[inline]
20196    fn cast(syntax: SyntaxNode) -> Option<Self> {
20197        if Self::can_cast(syntax.kind()) {
20198            Some(Self { syntax })
20199        } else {
20200            None
20201        }
20202    }
20203    #[inline]
20204    fn syntax(&self) -> &SyntaxNode {
20205        &self.syntax
20206    }
20207}
20208impl AstNode for Discard {
20209    #[inline]
20210    fn can_cast(kind: SyntaxKind) -> bool {
20211        kind == SyntaxKind::DISCARD
20212    }
20213    #[inline]
20214    fn cast(syntax: SyntaxNode) -> Option<Self> {
20215        if Self::can_cast(syntax.kind()) {
20216            Some(Self { syntax })
20217        } else {
20218            None
20219        }
20220    }
20221    #[inline]
20222    fn syntax(&self) -> &SyntaxNode {
20223        &self.syntax
20224    }
20225}
20226impl AstNode for DistinctClause {
20227    #[inline]
20228    fn can_cast(kind: SyntaxKind) -> bool {
20229        kind == SyntaxKind::DISTINCT_CLAUSE
20230    }
20231    #[inline]
20232    fn cast(syntax: SyntaxNode) -> Option<Self> {
20233        if Self::can_cast(syntax.kind()) {
20234            Some(Self { syntax })
20235        } else {
20236            None
20237        }
20238    }
20239    #[inline]
20240    fn syntax(&self) -> &SyntaxNode {
20241        &self.syntax
20242    }
20243}
20244impl AstNode for Do {
20245    #[inline]
20246    fn can_cast(kind: SyntaxKind) -> bool {
20247        kind == SyntaxKind::DO
20248    }
20249    #[inline]
20250    fn cast(syntax: SyntaxNode) -> Option<Self> {
20251        if Self::can_cast(syntax.kind()) {
20252            Some(Self { syntax })
20253        } else {
20254            None
20255        }
20256    }
20257    #[inline]
20258    fn syntax(&self) -> &SyntaxNode {
20259        &self.syntax
20260    }
20261}
20262impl AstNode for DoubleType {
20263    #[inline]
20264    fn can_cast(kind: SyntaxKind) -> bool {
20265        kind == SyntaxKind::DOUBLE_TYPE
20266    }
20267    #[inline]
20268    fn cast(syntax: SyntaxNode) -> Option<Self> {
20269        if Self::can_cast(syntax.kind()) {
20270            Some(Self { syntax })
20271        } else {
20272            None
20273        }
20274    }
20275    #[inline]
20276    fn syntax(&self) -> &SyntaxNode {
20277        &self.syntax
20278    }
20279}
20280impl AstNode for Drop {
20281    #[inline]
20282    fn can_cast(kind: SyntaxKind) -> bool {
20283        kind == SyntaxKind::DROP
20284    }
20285    #[inline]
20286    fn cast(syntax: SyntaxNode) -> Option<Self> {
20287        if Self::can_cast(syntax.kind()) {
20288            Some(Self { syntax })
20289        } else {
20290            None
20291        }
20292    }
20293    #[inline]
20294    fn syntax(&self) -> &SyntaxNode {
20295        &self.syntax
20296    }
20297}
20298impl AstNode for DropAccessMethod {
20299    #[inline]
20300    fn can_cast(kind: SyntaxKind) -> bool {
20301        kind == SyntaxKind::DROP_ACCESS_METHOD
20302    }
20303    #[inline]
20304    fn cast(syntax: SyntaxNode) -> Option<Self> {
20305        if Self::can_cast(syntax.kind()) {
20306            Some(Self { syntax })
20307        } else {
20308            None
20309        }
20310    }
20311    #[inline]
20312    fn syntax(&self) -> &SyntaxNode {
20313        &self.syntax
20314    }
20315}
20316impl AstNode for DropAggregate {
20317    #[inline]
20318    fn can_cast(kind: SyntaxKind) -> bool {
20319        kind == SyntaxKind::DROP_AGGREGATE
20320    }
20321    #[inline]
20322    fn cast(syntax: SyntaxNode) -> Option<Self> {
20323        if Self::can_cast(syntax.kind()) {
20324            Some(Self { syntax })
20325        } else {
20326            None
20327        }
20328    }
20329    #[inline]
20330    fn syntax(&self) -> &SyntaxNode {
20331        &self.syntax
20332    }
20333}
20334impl AstNode for DropCast {
20335    #[inline]
20336    fn can_cast(kind: SyntaxKind) -> bool {
20337        kind == SyntaxKind::DROP_CAST
20338    }
20339    #[inline]
20340    fn cast(syntax: SyntaxNode) -> Option<Self> {
20341        if Self::can_cast(syntax.kind()) {
20342            Some(Self { syntax })
20343        } else {
20344            None
20345        }
20346    }
20347    #[inline]
20348    fn syntax(&self) -> &SyntaxNode {
20349        &self.syntax
20350    }
20351}
20352impl AstNode for DropCollation {
20353    #[inline]
20354    fn can_cast(kind: SyntaxKind) -> bool {
20355        kind == SyntaxKind::DROP_COLLATION
20356    }
20357    #[inline]
20358    fn cast(syntax: SyntaxNode) -> Option<Self> {
20359        if Self::can_cast(syntax.kind()) {
20360            Some(Self { syntax })
20361        } else {
20362            None
20363        }
20364    }
20365    #[inline]
20366    fn syntax(&self) -> &SyntaxNode {
20367        &self.syntax
20368    }
20369}
20370impl AstNode for DropColumn {
20371    #[inline]
20372    fn can_cast(kind: SyntaxKind) -> bool {
20373        kind == SyntaxKind::DROP_COLUMN
20374    }
20375    #[inline]
20376    fn cast(syntax: SyntaxNode) -> Option<Self> {
20377        if Self::can_cast(syntax.kind()) {
20378            Some(Self { syntax })
20379        } else {
20380            None
20381        }
20382    }
20383    #[inline]
20384    fn syntax(&self) -> &SyntaxNode {
20385        &self.syntax
20386    }
20387}
20388impl AstNode for DropConstraint {
20389    #[inline]
20390    fn can_cast(kind: SyntaxKind) -> bool {
20391        kind == SyntaxKind::DROP_CONSTRAINT
20392    }
20393    #[inline]
20394    fn cast(syntax: SyntaxNode) -> Option<Self> {
20395        if Self::can_cast(syntax.kind()) {
20396            Some(Self { syntax })
20397        } else {
20398            None
20399        }
20400    }
20401    #[inline]
20402    fn syntax(&self) -> &SyntaxNode {
20403        &self.syntax
20404    }
20405}
20406impl AstNode for DropConversion {
20407    #[inline]
20408    fn can_cast(kind: SyntaxKind) -> bool {
20409        kind == SyntaxKind::DROP_CONVERSION
20410    }
20411    #[inline]
20412    fn cast(syntax: SyntaxNode) -> Option<Self> {
20413        if Self::can_cast(syntax.kind()) {
20414            Some(Self { syntax })
20415        } else {
20416            None
20417        }
20418    }
20419    #[inline]
20420    fn syntax(&self) -> &SyntaxNode {
20421        &self.syntax
20422    }
20423}
20424impl AstNode for DropDatabase {
20425    #[inline]
20426    fn can_cast(kind: SyntaxKind) -> bool {
20427        kind == SyntaxKind::DROP_DATABASE
20428    }
20429    #[inline]
20430    fn cast(syntax: SyntaxNode) -> Option<Self> {
20431        if Self::can_cast(syntax.kind()) {
20432            Some(Self { syntax })
20433        } else {
20434            None
20435        }
20436    }
20437    #[inline]
20438    fn syntax(&self) -> &SyntaxNode {
20439        &self.syntax
20440    }
20441}
20442impl AstNode for DropDefault {
20443    #[inline]
20444    fn can_cast(kind: SyntaxKind) -> bool {
20445        kind == SyntaxKind::DROP_DEFAULT
20446    }
20447    #[inline]
20448    fn cast(syntax: SyntaxNode) -> Option<Self> {
20449        if Self::can_cast(syntax.kind()) {
20450            Some(Self { syntax })
20451        } else {
20452            None
20453        }
20454    }
20455    #[inline]
20456    fn syntax(&self) -> &SyntaxNode {
20457        &self.syntax
20458    }
20459}
20460impl AstNode for DropDomain {
20461    #[inline]
20462    fn can_cast(kind: SyntaxKind) -> bool {
20463        kind == SyntaxKind::DROP_DOMAIN
20464    }
20465    #[inline]
20466    fn cast(syntax: SyntaxNode) -> Option<Self> {
20467        if Self::can_cast(syntax.kind()) {
20468            Some(Self { syntax })
20469        } else {
20470            None
20471        }
20472    }
20473    #[inline]
20474    fn syntax(&self) -> &SyntaxNode {
20475        &self.syntax
20476    }
20477}
20478impl AstNode for DropEventTrigger {
20479    #[inline]
20480    fn can_cast(kind: SyntaxKind) -> bool {
20481        kind == SyntaxKind::DROP_EVENT_TRIGGER
20482    }
20483    #[inline]
20484    fn cast(syntax: SyntaxNode) -> Option<Self> {
20485        if Self::can_cast(syntax.kind()) {
20486            Some(Self { syntax })
20487        } else {
20488            None
20489        }
20490    }
20491    #[inline]
20492    fn syntax(&self) -> &SyntaxNode {
20493        &self.syntax
20494    }
20495}
20496impl AstNode for DropExpression {
20497    #[inline]
20498    fn can_cast(kind: SyntaxKind) -> bool {
20499        kind == SyntaxKind::DROP_EXPRESSION
20500    }
20501    #[inline]
20502    fn cast(syntax: SyntaxNode) -> Option<Self> {
20503        if Self::can_cast(syntax.kind()) {
20504            Some(Self { syntax })
20505        } else {
20506            None
20507        }
20508    }
20509    #[inline]
20510    fn syntax(&self) -> &SyntaxNode {
20511        &self.syntax
20512    }
20513}
20514impl AstNode for DropExtension {
20515    #[inline]
20516    fn can_cast(kind: SyntaxKind) -> bool {
20517        kind == SyntaxKind::DROP_EXTENSION
20518    }
20519    #[inline]
20520    fn cast(syntax: SyntaxNode) -> Option<Self> {
20521        if Self::can_cast(syntax.kind()) {
20522            Some(Self { syntax })
20523        } else {
20524            None
20525        }
20526    }
20527    #[inline]
20528    fn syntax(&self) -> &SyntaxNode {
20529        &self.syntax
20530    }
20531}
20532impl AstNode for DropForeignDataWrapper {
20533    #[inline]
20534    fn can_cast(kind: SyntaxKind) -> bool {
20535        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
20536    }
20537    #[inline]
20538    fn cast(syntax: SyntaxNode) -> Option<Self> {
20539        if Self::can_cast(syntax.kind()) {
20540            Some(Self { syntax })
20541        } else {
20542            None
20543        }
20544    }
20545    #[inline]
20546    fn syntax(&self) -> &SyntaxNode {
20547        &self.syntax
20548    }
20549}
20550impl AstNode for DropForeignTable {
20551    #[inline]
20552    fn can_cast(kind: SyntaxKind) -> bool {
20553        kind == SyntaxKind::DROP_FOREIGN_TABLE
20554    }
20555    #[inline]
20556    fn cast(syntax: SyntaxNode) -> Option<Self> {
20557        if Self::can_cast(syntax.kind()) {
20558            Some(Self { syntax })
20559        } else {
20560            None
20561        }
20562    }
20563    #[inline]
20564    fn syntax(&self) -> &SyntaxNode {
20565        &self.syntax
20566    }
20567}
20568impl AstNode for DropFunction {
20569    #[inline]
20570    fn can_cast(kind: SyntaxKind) -> bool {
20571        kind == SyntaxKind::DROP_FUNCTION
20572    }
20573    #[inline]
20574    fn cast(syntax: SyntaxNode) -> Option<Self> {
20575        if Self::can_cast(syntax.kind()) {
20576            Some(Self { syntax })
20577        } else {
20578            None
20579        }
20580    }
20581    #[inline]
20582    fn syntax(&self) -> &SyntaxNode {
20583        &self.syntax
20584    }
20585}
20586impl AstNode for DropGroup {
20587    #[inline]
20588    fn can_cast(kind: SyntaxKind) -> bool {
20589        kind == SyntaxKind::DROP_GROUP
20590    }
20591    #[inline]
20592    fn cast(syntax: SyntaxNode) -> Option<Self> {
20593        if Self::can_cast(syntax.kind()) {
20594            Some(Self { syntax })
20595        } else {
20596            None
20597        }
20598    }
20599    #[inline]
20600    fn syntax(&self) -> &SyntaxNode {
20601        &self.syntax
20602    }
20603}
20604impl AstNode for DropIdentity {
20605    #[inline]
20606    fn can_cast(kind: SyntaxKind) -> bool {
20607        kind == SyntaxKind::DROP_IDENTITY
20608    }
20609    #[inline]
20610    fn cast(syntax: SyntaxNode) -> Option<Self> {
20611        if Self::can_cast(syntax.kind()) {
20612            Some(Self { syntax })
20613        } else {
20614            None
20615        }
20616    }
20617    #[inline]
20618    fn syntax(&self) -> &SyntaxNode {
20619        &self.syntax
20620    }
20621}
20622impl AstNode for DropIndex {
20623    #[inline]
20624    fn can_cast(kind: SyntaxKind) -> bool {
20625        kind == SyntaxKind::DROP_INDEX
20626    }
20627    #[inline]
20628    fn cast(syntax: SyntaxNode) -> Option<Self> {
20629        if Self::can_cast(syntax.kind()) {
20630            Some(Self { syntax })
20631        } else {
20632            None
20633        }
20634    }
20635    #[inline]
20636    fn syntax(&self) -> &SyntaxNode {
20637        &self.syntax
20638    }
20639}
20640impl AstNode for DropLanguage {
20641    #[inline]
20642    fn can_cast(kind: SyntaxKind) -> bool {
20643        kind == SyntaxKind::DROP_LANGUAGE
20644    }
20645    #[inline]
20646    fn cast(syntax: SyntaxNode) -> Option<Self> {
20647        if Self::can_cast(syntax.kind()) {
20648            Some(Self { syntax })
20649        } else {
20650            None
20651        }
20652    }
20653    #[inline]
20654    fn syntax(&self) -> &SyntaxNode {
20655        &self.syntax
20656    }
20657}
20658impl AstNode for DropMaterializedView {
20659    #[inline]
20660    fn can_cast(kind: SyntaxKind) -> bool {
20661        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
20662    }
20663    #[inline]
20664    fn cast(syntax: SyntaxNode) -> Option<Self> {
20665        if Self::can_cast(syntax.kind()) {
20666            Some(Self { syntax })
20667        } else {
20668            None
20669        }
20670    }
20671    #[inline]
20672    fn syntax(&self) -> &SyntaxNode {
20673        &self.syntax
20674    }
20675}
20676impl AstNode for DropNotNull {
20677    #[inline]
20678    fn can_cast(kind: SyntaxKind) -> bool {
20679        kind == SyntaxKind::DROP_NOT_NULL
20680    }
20681    #[inline]
20682    fn cast(syntax: SyntaxNode) -> Option<Self> {
20683        if Self::can_cast(syntax.kind()) {
20684            Some(Self { syntax })
20685        } else {
20686            None
20687        }
20688    }
20689    #[inline]
20690    fn syntax(&self) -> &SyntaxNode {
20691        &self.syntax
20692    }
20693}
20694impl AstNode for DropOpClassOption {
20695    #[inline]
20696    fn can_cast(kind: SyntaxKind) -> bool {
20697        kind == SyntaxKind::DROP_OP_CLASS_OPTION
20698    }
20699    #[inline]
20700    fn cast(syntax: SyntaxNode) -> Option<Self> {
20701        if Self::can_cast(syntax.kind()) {
20702            Some(Self { syntax })
20703        } else {
20704            None
20705        }
20706    }
20707    #[inline]
20708    fn syntax(&self) -> &SyntaxNode {
20709        &self.syntax
20710    }
20711}
20712impl AstNode for DropOpClassOptionList {
20713    #[inline]
20714    fn can_cast(kind: SyntaxKind) -> bool {
20715        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
20716    }
20717    #[inline]
20718    fn cast(syntax: SyntaxNode) -> Option<Self> {
20719        if Self::can_cast(syntax.kind()) {
20720            Some(Self { syntax })
20721        } else {
20722            None
20723        }
20724    }
20725    #[inline]
20726    fn syntax(&self) -> &SyntaxNode {
20727        &self.syntax
20728    }
20729}
20730impl AstNode for DropOpClassOptions {
20731    #[inline]
20732    fn can_cast(kind: SyntaxKind) -> bool {
20733        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
20734    }
20735    #[inline]
20736    fn cast(syntax: SyntaxNode) -> Option<Self> {
20737        if Self::can_cast(syntax.kind()) {
20738            Some(Self { syntax })
20739        } else {
20740            None
20741        }
20742    }
20743    #[inline]
20744    fn syntax(&self) -> &SyntaxNode {
20745        &self.syntax
20746    }
20747}
20748impl AstNode for DropOperator {
20749    #[inline]
20750    fn can_cast(kind: SyntaxKind) -> bool {
20751        kind == SyntaxKind::DROP_OPERATOR
20752    }
20753    #[inline]
20754    fn cast(syntax: SyntaxNode) -> Option<Self> {
20755        if Self::can_cast(syntax.kind()) {
20756            Some(Self { syntax })
20757        } else {
20758            None
20759        }
20760    }
20761    #[inline]
20762    fn syntax(&self) -> &SyntaxNode {
20763        &self.syntax
20764    }
20765}
20766impl AstNode for DropOperatorClass {
20767    #[inline]
20768    fn can_cast(kind: SyntaxKind) -> bool {
20769        kind == SyntaxKind::DROP_OPERATOR_CLASS
20770    }
20771    #[inline]
20772    fn cast(syntax: SyntaxNode) -> Option<Self> {
20773        if Self::can_cast(syntax.kind()) {
20774            Some(Self { syntax })
20775        } else {
20776            None
20777        }
20778    }
20779    #[inline]
20780    fn syntax(&self) -> &SyntaxNode {
20781        &self.syntax
20782    }
20783}
20784impl AstNode for DropOperatorFamily {
20785    #[inline]
20786    fn can_cast(kind: SyntaxKind) -> bool {
20787        kind == SyntaxKind::DROP_OPERATOR_FAMILY
20788    }
20789    #[inline]
20790    fn cast(syntax: SyntaxNode) -> Option<Self> {
20791        if Self::can_cast(syntax.kind()) {
20792            Some(Self { syntax })
20793        } else {
20794            None
20795        }
20796    }
20797    #[inline]
20798    fn syntax(&self) -> &SyntaxNode {
20799        &self.syntax
20800    }
20801}
20802impl AstNode for DropOwned {
20803    #[inline]
20804    fn can_cast(kind: SyntaxKind) -> bool {
20805        kind == SyntaxKind::DROP_OWNED
20806    }
20807    #[inline]
20808    fn cast(syntax: SyntaxNode) -> Option<Self> {
20809        if Self::can_cast(syntax.kind()) {
20810            Some(Self { syntax })
20811        } else {
20812            None
20813        }
20814    }
20815    #[inline]
20816    fn syntax(&self) -> &SyntaxNode {
20817        &self.syntax
20818    }
20819}
20820impl AstNode for DropPolicy {
20821    #[inline]
20822    fn can_cast(kind: SyntaxKind) -> bool {
20823        kind == SyntaxKind::DROP_POLICY
20824    }
20825    #[inline]
20826    fn cast(syntax: SyntaxNode) -> Option<Self> {
20827        if Self::can_cast(syntax.kind()) {
20828            Some(Self { syntax })
20829        } else {
20830            None
20831        }
20832    }
20833    #[inline]
20834    fn syntax(&self) -> &SyntaxNode {
20835        &self.syntax
20836    }
20837}
20838impl AstNode for DropProcedure {
20839    #[inline]
20840    fn can_cast(kind: SyntaxKind) -> bool {
20841        kind == SyntaxKind::DROP_PROCEDURE
20842    }
20843    #[inline]
20844    fn cast(syntax: SyntaxNode) -> Option<Self> {
20845        if Self::can_cast(syntax.kind()) {
20846            Some(Self { syntax })
20847        } else {
20848            None
20849        }
20850    }
20851    #[inline]
20852    fn syntax(&self) -> &SyntaxNode {
20853        &self.syntax
20854    }
20855}
20856impl AstNode for DropPublication {
20857    #[inline]
20858    fn can_cast(kind: SyntaxKind) -> bool {
20859        kind == SyntaxKind::DROP_PUBLICATION
20860    }
20861    #[inline]
20862    fn cast(syntax: SyntaxNode) -> Option<Self> {
20863        if Self::can_cast(syntax.kind()) {
20864            Some(Self { syntax })
20865        } else {
20866            None
20867        }
20868    }
20869    #[inline]
20870    fn syntax(&self) -> &SyntaxNode {
20871        &self.syntax
20872    }
20873}
20874impl AstNode for DropRole {
20875    #[inline]
20876    fn can_cast(kind: SyntaxKind) -> bool {
20877        kind == SyntaxKind::DROP_ROLE
20878    }
20879    #[inline]
20880    fn cast(syntax: SyntaxNode) -> Option<Self> {
20881        if Self::can_cast(syntax.kind()) {
20882            Some(Self { syntax })
20883        } else {
20884            None
20885        }
20886    }
20887    #[inline]
20888    fn syntax(&self) -> &SyntaxNode {
20889        &self.syntax
20890    }
20891}
20892impl AstNode for DropRoutine {
20893    #[inline]
20894    fn can_cast(kind: SyntaxKind) -> bool {
20895        kind == SyntaxKind::DROP_ROUTINE
20896    }
20897    #[inline]
20898    fn cast(syntax: SyntaxNode) -> Option<Self> {
20899        if Self::can_cast(syntax.kind()) {
20900            Some(Self { syntax })
20901        } else {
20902            None
20903        }
20904    }
20905    #[inline]
20906    fn syntax(&self) -> &SyntaxNode {
20907        &self.syntax
20908    }
20909}
20910impl AstNode for DropRule {
20911    #[inline]
20912    fn can_cast(kind: SyntaxKind) -> bool {
20913        kind == SyntaxKind::DROP_RULE
20914    }
20915    #[inline]
20916    fn cast(syntax: SyntaxNode) -> Option<Self> {
20917        if Self::can_cast(syntax.kind()) {
20918            Some(Self { syntax })
20919        } else {
20920            None
20921        }
20922    }
20923    #[inline]
20924    fn syntax(&self) -> &SyntaxNode {
20925        &self.syntax
20926    }
20927}
20928impl AstNode for DropSchema {
20929    #[inline]
20930    fn can_cast(kind: SyntaxKind) -> bool {
20931        kind == SyntaxKind::DROP_SCHEMA
20932    }
20933    #[inline]
20934    fn cast(syntax: SyntaxNode) -> Option<Self> {
20935        if Self::can_cast(syntax.kind()) {
20936            Some(Self { syntax })
20937        } else {
20938            None
20939        }
20940    }
20941    #[inline]
20942    fn syntax(&self) -> &SyntaxNode {
20943        &self.syntax
20944    }
20945}
20946impl AstNode for DropSequence {
20947    #[inline]
20948    fn can_cast(kind: SyntaxKind) -> bool {
20949        kind == SyntaxKind::DROP_SEQUENCE
20950    }
20951    #[inline]
20952    fn cast(syntax: SyntaxNode) -> Option<Self> {
20953        if Self::can_cast(syntax.kind()) {
20954            Some(Self { syntax })
20955        } else {
20956            None
20957        }
20958    }
20959    #[inline]
20960    fn syntax(&self) -> &SyntaxNode {
20961        &self.syntax
20962    }
20963}
20964impl AstNode for DropServer {
20965    #[inline]
20966    fn can_cast(kind: SyntaxKind) -> bool {
20967        kind == SyntaxKind::DROP_SERVER
20968    }
20969    #[inline]
20970    fn cast(syntax: SyntaxNode) -> Option<Self> {
20971        if Self::can_cast(syntax.kind()) {
20972            Some(Self { syntax })
20973        } else {
20974            None
20975        }
20976    }
20977    #[inline]
20978    fn syntax(&self) -> &SyntaxNode {
20979        &self.syntax
20980    }
20981}
20982impl AstNode for DropStatistics {
20983    #[inline]
20984    fn can_cast(kind: SyntaxKind) -> bool {
20985        kind == SyntaxKind::DROP_STATISTICS
20986    }
20987    #[inline]
20988    fn cast(syntax: SyntaxNode) -> Option<Self> {
20989        if Self::can_cast(syntax.kind()) {
20990            Some(Self { syntax })
20991        } else {
20992            None
20993        }
20994    }
20995    #[inline]
20996    fn syntax(&self) -> &SyntaxNode {
20997        &self.syntax
20998    }
20999}
21000impl AstNode for DropSubscription {
21001    #[inline]
21002    fn can_cast(kind: SyntaxKind) -> bool {
21003        kind == SyntaxKind::DROP_SUBSCRIPTION
21004    }
21005    #[inline]
21006    fn cast(syntax: SyntaxNode) -> Option<Self> {
21007        if Self::can_cast(syntax.kind()) {
21008            Some(Self { syntax })
21009        } else {
21010            None
21011        }
21012    }
21013    #[inline]
21014    fn syntax(&self) -> &SyntaxNode {
21015        &self.syntax
21016    }
21017}
21018impl AstNode for DropTable {
21019    #[inline]
21020    fn can_cast(kind: SyntaxKind) -> bool {
21021        kind == SyntaxKind::DROP_TABLE
21022    }
21023    #[inline]
21024    fn cast(syntax: SyntaxNode) -> Option<Self> {
21025        if Self::can_cast(syntax.kind()) {
21026            Some(Self { syntax })
21027        } else {
21028            None
21029        }
21030    }
21031    #[inline]
21032    fn syntax(&self) -> &SyntaxNode {
21033        &self.syntax
21034    }
21035}
21036impl AstNode for DropTablespace {
21037    #[inline]
21038    fn can_cast(kind: SyntaxKind) -> bool {
21039        kind == SyntaxKind::DROP_TABLESPACE
21040    }
21041    #[inline]
21042    fn cast(syntax: SyntaxNode) -> Option<Self> {
21043        if Self::can_cast(syntax.kind()) {
21044            Some(Self { syntax })
21045        } else {
21046            None
21047        }
21048    }
21049    #[inline]
21050    fn syntax(&self) -> &SyntaxNode {
21051        &self.syntax
21052    }
21053}
21054impl AstNode for DropTextSearchConfig {
21055    #[inline]
21056    fn can_cast(kind: SyntaxKind) -> bool {
21057        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
21058    }
21059    #[inline]
21060    fn cast(syntax: SyntaxNode) -> Option<Self> {
21061        if Self::can_cast(syntax.kind()) {
21062            Some(Self { syntax })
21063        } else {
21064            None
21065        }
21066    }
21067    #[inline]
21068    fn syntax(&self) -> &SyntaxNode {
21069        &self.syntax
21070    }
21071}
21072impl AstNode for DropTextSearchDict {
21073    #[inline]
21074    fn can_cast(kind: SyntaxKind) -> bool {
21075        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
21076    }
21077    #[inline]
21078    fn cast(syntax: SyntaxNode) -> Option<Self> {
21079        if Self::can_cast(syntax.kind()) {
21080            Some(Self { syntax })
21081        } else {
21082            None
21083        }
21084    }
21085    #[inline]
21086    fn syntax(&self) -> &SyntaxNode {
21087        &self.syntax
21088    }
21089}
21090impl AstNode for DropTextSearchParser {
21091    #[inline]
21092    fn can_cast(kind: SyntaxKind) -> bool {
21093        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
21094    }
21095    #[inline]
21096    fn cast(syntax: SyntaxNode) -> Option<Self> {
21097        if Self::can_cast(syntax.kind()) {
21098            Some(Self { syntax })
21099        } else {
21100            None
21101        }
21102    }
21103    #[inline]
21104    fn syntax(&self) -> &SyntaxNode {
21105        &self.syntax
21106    }
21107}
21108impl AstNode for DropTextSearchTemplate {
21109    #[inline]
21110    fn can_cast(kind: SyntaxKind) -> bool {
21111        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
21112    }
21113    #[inline]
21114    fn cast(syntax: SyntaxNode) -> Option<Self> {
21115        if Self::can_cast(syntax.kind()) {
21116            Some(Self { syntax })
21117        } else {
21118            None
21119        }
21120    }
21121    #[inline]
21122    fn syntax(&self) -> &SyntaxNode {
21123        &self.syntax
21124    }
21125}
21126impl AstNode for DropTransform {
21127    #[inline]
21128    fn can_cast(kind: SyntaxKind) -> bool {
21129        kind == SyntaxKind::DROP_TRANSFORM
21130    }
21131    #[inline]
21132    fn cast(syntax: SyntaxNode) -> Option<Self> {
21133        if Self::can_cast(syntax.kind()) {
21134            Some(Self { syntax })
21135        } else {
21136            None
21137        }
21138    }
21139    #[inline]
21140    fn syntax(&self) -> &SyntaxNode {
21141        &self.syntax
21142    }
21143}
21144impl AstNode for DropTrigger {
21145    #[inline]
21146    fn can_cast(kind: SyntaxKind) -> bool {
21147        kind == SyntaxKind::DROP_TRIGGER
21148    }
21149    #[inline]
21150    fn cast(syntax: SyntaxNode) -> Option<Self> {
21151        if Self::can_cast(syntax.kind()) {
21152            Some(Self { syntax })
21153        } else {
21154            None
21155        }
21156    }
21157    #[inline]
21158    fn syntax(&self) -> &SyntaxNode {
21159        &self.syntax
21160    }
21161}
21162impl AstNode for DropType {
21163    #[inline]
21164    fn can_cast(kind: SyntaxKind) -> bool {
21165        kind == SyntaxKind::DROP_TYPE
21166    }
21167    #[inline]
21168    fn cast(syntax: SyntaxNode) -> Option<Self> {
21169        if Self::can_cast(syntax.kind()) {
21170            Some(Self { syntax })
21171        } else {
21172            None
21173        }
21174    }
21175    #[inline]
21176    fn syntax(&self) -> &SyntaxNode {
21177        &self.syntax
21178    }
21179}
21180impl AstNode for DropUser {
21181    #[inline]
21182    fn can_cast(kind: SyntaxKind) -> bool {
21183        kind == SyntaxKind::DROP_USER
21184    }
21185    #[inline]
21186    fn cast(syntax: SyntaxNode) -> Option<Self> {
21187        if Self::can_cast(syntax.kind()) {
21188            Some(Self { syntax })
21189        } else {
21190            None
21191        }
21192    }
21193    #[inline]
21194    fn syntax(&self) -> &SyntaxNode {
21195        &self.syntax
21196    }
21197}
21198impl AstNode for DropUserMapping {
21199    #[inline]
21200    fn can_cast(kind: SyntaxKind) -> bool {
21201        kind == SyntaxKind::DROP_USER_MAPPING
21202    }
21203    #[inline]
21204    fn cast(syntax: SyntaxNode) -> Option<Self> {
21205        if Self::can_cast(syntax.kind()) {
21206            Some(Self { syntax })
21207        } else {
21208            None
21209        }
21210    }
21211    #[inline]
21212    fn syntax(&self) -> &SyntaxNode {
21213        &self.syntax
21214    }
21215}
21216impl AstNode for DropView {
21217    #[inline]
21218    fn can_cast(kind: SyntaxKind) -> bool {
21219        kind == SyntaxKind::DROP_VIEW
21220    }
21221    #[inline]
21222    fn cast(syntax: SyntaxNode) -> Option<Self> {
21223        if Self::can_cast(syntax.kind()) {
21224            Some(Self { syntax })
21225        } else {
21226            None
21227        }
21228    }
21229    #[inline]
21230    fn syntax(&self) -> &SyntaxNode {
21231        &self.syntax
21232    }
21233}
21234impl AstNode for ElseClause {
21235    #[inline]
21236    fn can_cast(kind: SyntaxKind) -> bool {
21237        kind == SyntaxKind::ELSE_CLAUSE
21238    }
21239    #[inline]
21240    fn cast(syntax: SyntaxNode) -> Option<Self> {
21241        if Self::can_cast(syntax.kind()) {
21242            Some(Self { syntax })
21243        } else {
21244            None
21245        }
21246    }
21247    #[inline]
21248    fn syntax(&self) -> &SyntaxNode {
21249        &self.syntax
21250    }
21251}
21252impl AstNode for EnableAlwaysRule {
21253    #[inline]
21254    fn can_cast(kind: SyntaxKind) -> bool {
21255        kind == SyntaxKind::ENABLE_ALWAYS_RULE
21256    }
21257    #[inline]
21258    fn cast(syntax: SyntaxNode) -> Option<Self> {
21259        if Self::can_cast(syntax.kind()) {
21260            Some(Self { syntax })
21261        } else {
21262            None
21263        }
21264    }
21265    #[inline]
21266    fn syntax(&self) -> &SyntaxNode {
21267        &self.syntax
21268    }
21269}
21270impl AstNode for EnableAlwaysTrigger {
21271    #[inline]
21272    fn can_cast(kind: SyntaxKind) -> bool {
21273        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
21274    }
21275    #[inline]
21276    fn cast(syntax: SyntaxNode) -> Option<Self> {
21277        if Self::can_cast(syntax.kind()) {
21278            Some(Self { syntax })
21279        } else {
21280            None
21281        }
21282    }
21283    #[inline]
21284    fn syntax(&self) -> &SyntaxNode {
21285        &self.syntax
21286    }
21287}
21288impl AstNode for EnableReplicaRule {
21289    #[inline]
21290    fn can_cast(kind: SyntaxKind) -> bool {
21291        kind == SyntaxKind::ENABLE_REPLICA_RULE
21292    }
21293    #[inline]
21294    fn cast(syntax: SyntaxNode) -> Option<Self> {
21295        if Self::can_cast(syntax.kind()) {
21296            Some(Self { syntax })
21297        } else {
21298            None
21299        }
21300    }
21301    #[inline]
21302    fn syntax(&self) -> &SyntaxNode {
21303        &self.syntax
21304    }
21305}
21306impl AstNode for EnableReplicaTrigger {
21307    #[inline]
21308    fn can_cast(kind: SyntaxKind) -> bool {
21309        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
21310    }
21311    #[inline]
21312    fn cast(syntax: SyntaxNode) -> Option<Self> {
21313        if Self::can_cast(syntax.kind()) {
21314            Some(Self { syntax })
21315        } else {
21316            None
21317        }
21318    }
21319    #[inline]
21320    fn syntax(&self) -> &SyntaxNode {
21321        &self.syntax
21322    }
21323}
21324impl AstNode for EnableRls {
21325    #[inline]
21326    fn can_cast(kind: SyntaxKind) -> bool {
21327        kind == SyntaxKind::ENABLE_RLS
21328    }
21329    #[inline]
21330    fn cast(syntax: SyntaxNode) -> Option<Self> {
21331        if Self::can_cast(syntax.kind()) {
21332            Some(Self { syntax })
21333        } else {
21334            None
21335        }
21336    }
21337    #[inline]
21338    fn syntax(&self) -> &SyntaxNode {
21339        &self.syntax
21340    }
21341}
21342impl AstNode for EnableRule {
21343    #[inline]
21344    fn can_cast(kind: SyntaxKind) -> bool {
21345        kind == SyntaxKind::ENABLE_RULE
21346    }
21347    #[inline]
21348    fn cast(syntax: SyntaxNode) -> Option<Self> {
21349        if Self::can_cast(syntax.kind()) {
21350            Some(Self { syntax })
21351        } else {
21352            None
21353        }
21354    }
21355    #[inline]
21356    fn syntax(&self) -> &SyntaxNode {
21357        &self.syntax
21358    }
21359}
21360impl AstNode for EnableTrigger {
21361    #[inline]
21362    fn can_cast(kind: SyntaxKind) -> bool {
21363        kind == SyntaxKind::ENABLE_TRIGGER
21364    }
21365    #[inline]
21366    fn cast(syntax: SyntaxNode) -> Option<Self> {
21367        if Self::can_cast(syntax.kind()) {
21368            Some(Self { syntax })
21369        } else {
21370            None
21371        }
21372    }
21373    #[inline]
21374    fn syntax(&self) -> &SyntaxNode {
21375        &self.syntax
21376    }
21377}
21378impl AstNode for Enforced {
21379    #[inline]
21380    fn can_cast(kind: SyntaxKind) -> bool {
21381        kind == SyntaxKind::ENFORCED
21382    }
21383    #[inline]
21384    fn cast(syntax: SyntaxNode) -> Option<Self> {
21385        if Self::can_cast(syntax.kind()) {
21386            Some(Self { syntax })
21387        } else {
21388            None
21389        }
21390    }
21391    #[inline]
21392    fn syntax(&self) -> &SyntaxNode {
21393        &self.syntax
21394    }
21395}
21396impl AstNode for EventTriggerWhen {
21397    #[inline]
21398    fn can_cast(kind: SyntaxKind) -> bool {
21399        kind == SyntaxKind::EVENT_TRIGGER_WHEN
21400    }
21401    #[inline]
21402    fn cast(syntax: SyntaxNode) -> Option<Self> {
21403        if Self::can_cast(syntax.kind()) {
21404            Some(Self { syntax })
21405        } else {
21406            None
21407        }
21408    }
21409    #[inline]
21410    fn syntax(&self) -> &SyntaxNode {
21411        &self.syntax
21412    }
21413}
21414impl AstNode for EventTriggerWhenClause {
21415    #[inline]
21416    fn can_cast(kind: SyntaxKind) -> bool {
21417        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
21418    }
21419    #[inline]
21420    fn cast(syntax: SyntaxNode) -> Option<Self> {
21421        if Self::can_cast(syntax.kind()) {
21422            Some(Self { syntax })
21423        } else {
21424            None
21425        }
21426    }
21427    #[inline]
21428    fn syntax(&self) -> &SyntaxNode {
21429        &self.syntax
21430    }
21431}
21432impl AstNode for ExceptTables {
21433    #[inline]
21434    fn can_cast(kind: SyntaxKind) -> bool {
21435        kind == SyntaxKind::EXCEPT_TABLES
21436    }
21437    #[inline]
21438    fn cast(syntax: SyntaxNode) -> Option<Self> {
21439        if Self::can_cast(syntax.kind()) {
21440            Some(Self { syntax })
21441        } else {
21442            None
21443        }
21444    }
21445    #[inline]
21446    fn syntax(&self) -> &SyntaxNode {
21447        &self.syntax
21448    }
21449}
21450impl AstNode for ExcludeConstraint {
21451    #[inline]
21452    fn can_cast(kind: SyntaxKind) -> bool {
21453        kind == SyntaxKind::EXCLUDE_CONSTRAINT
21454    }
21455    #[inline]
21456    fn cast(syntax: SyntaxNode) -> Option<Self> {
21457        if Self::can_cast(syntax.kind()) {
21458            Some(Self { syntax })
21459        } else {
21460            None
21461        }
21462    }
21463    #[inline]
21464    fn syntax(&self) -> &SyntaxNode {
21465        &self.syntax
21466    }
21467}
21468impl AstNode for Execute {
21469    #[inline]
21470    fn can_cast(kind: SyntaxKind) -> bool {
21471        kind == SyntaxKind::EXECUTE
21472    }
21473    #[inline]
21474    fn cast(syntax: SyntaxNode) -> Option<Self> {
21475        if Self::can_cast(syntax.kind()) {
21476            Some(Self { syntax })
21477        } else {
21478            None
21479        }
21480    }
21481    #[inline]
21482    fn syntax(&self) -> &SyntaxNode {
21483        &self.syntax
21484    }
21485}
21486impl AstNode for ExistsFn {
21487    #[inline]
21488    fn can_cast(kind: SyntaxKind) -> bool {
21489        kind == SyntaxKind::EXISTS_FN
21490    }
21491    #[inline]
21492    fn cast(syntax: SyntaxNode) -> Option<Self> {
21493        if Self::can_cast(syntax.kind()) {
21494            Some(Self { syntax })
21495        } else {
21496            None
21497        }
21498    }
21499    #[inline]
21500    fn syntax(&self) -> &SyntaxNode {
21501        &self.syntax
21502    }
21503}
21504impl AstNode for Explain {
21505    #[inline]
21506    fn can_cast(kind: SyntaxKind) -> bool {
21507        kind == SyntaxKind::EXPLAIN
21508    }
21509    #[inline]
21510    fn cast(syntax: SyntaxNode) -> Option<Self> {
21511        if Self::can_cast(syntax.kind()) {
21512            Some(Self { syntax })
21513        } else {
21514            None
21515        }
21516    }
21517    #[inline]
21518    fn syntax(&self) -> &SyntaxNode {
21519        &self.syntax
21520    }
21521}
21522impl AstNode for ExprAsName {
21523    #[inline]
21524    fn can_cast(kind: SyntaxKind) -> bool {
21525        kind == SyntaxKind::EXPR_AS_NAME
21526    }
21527    #[inline]
21528    fn cast(syntax: SyntaxNode) -> Option<Self> {
21529        if Self::can_cast(syntax.kind()) {
21530            Some(Self { syntax })
21531        } else {
21532            None
21533        }
21534    }
21535    #[inline]
21536    fn syntax(&self) -> &SyntaxNode {
21537        &self.syntax
21538    }
21539}
21540impl AstNode for ExprType {
21541    #[inline]
21542    fn can_cast(kind: SyntaxKind) -> bool {
21543        kind == SyntaxKind::EXPR_TYPE
21544    }
21545    #[inline]
21546    fn cast(syntax: SyntaxNode) -> Option<Self> {
21547        if Self::can_cast(syntax.kind()) {
21548            Some(Self { syntax })
21549        } else {
21550            None
21551        }
21552    }
21553    #[inline]
21554    fn syntax(&self) -> &SyntaxNode {
21555        &self.syntax
21556    }
21557}
21558impl AstNode for ExtractFn {
21559    #[inline]
21560    fn can_cast(kind: SyntaxKind) -> bool {
21561        kind == SyntaxKind::EXTRACT_FN
21562    }
21563    #[inline]
21564    fn cast(syntax: SyntaxNode) -> Option<Self> {
21565        if Self::can_cast(syntax.kind()) {
21566            Some(Self { syntax })
21567        } else {
21568            None
21569        }
21570    }
21571    #[inline]
21572    fn syntax(&self) -> &SyntaxNode {
21573        &self.syntax
21574    }
21575}
21576impl AstNode for FatArrow {
21577    #[inline]
21578    fn can_cast(kind: SyntaxKind) -> bool {
21579        kind == SyntaxKind::FAT_ARROW
21580    }
21581    #[inline]
21582    fn cast(syntax: SyntaxNode) -> Option<Self> {
21583        if Self::can_cast(syntax.kind()) {
21584            Some(Self { syntax })
21585        } else {
21586            None
21587        }
21588    }
21589    #[inline]
21590    fn syntax(&self) -> &SyntaxNode {
21591        &self.syntax
21592    }
21593}
21594impl AstNode for FdwOption {
21595    #[inline]
21596    fn can_cast(kind: SyntaxKind) -> bool {
21597        kind == SyntaxKind::FDW_OPTION
21598    }
21599    #[inline]
21600    fn cast(syntax: SyntaxNode) -> Option<Self> {
21601        if Self::can_cast(syntax.kind()) {
21602            Some(Self { syntax })
21603        } else {
21604            None
21605        }
21606    }
21607    #[inline]
21608    fn syntax(&self) -> &SyntaxNode {
21609        &self.syntax
21610    }
21611}
21612impl AstNode for FdwOptionList {
21613    #[inline]
21614    fn can_cast(kind: SyntaxKind) -> bool {
21615        kind == SyntaxKind::FDW_OPTION_LIST
21616    }
21617    #[inline]
21618    fn cast(syntax: SyntaxNode) -> Option<Self> {
21619        if Self::can_cast(syntax.kind()) {
21620            Some(Self { syntax })
21621        } else {
21622            None
21623        }
21624    }
21625    #[inline]
21626    fn syntax(&self) -> &SyntaxNode {
21627        &self.syntax
21628    }
21629}
21630impl AstNode for Fetch {
21631    #[inline]
21632    fn can_cast(kind: SyntaxKind) -> bool {
21633        kind == SyntaxKind::FETCH
21634    }
21635    #[inline]
21636    fn cast(syntax: SyntaxNode) -> Option<Self> {
21637        if Self::can_cast(syntax.kind()) {
21638            Some(Self { syntax })
21639        } else {
21640            None
21641        }
21642    }
21643    #[inline]
21644    fn syntax(&self) -> &SyntaxNode {
21645        &self.syntax
21646    }
21647}
21648impl AstNode for FetchClause {
21649    #[inline]
21650    fn can_cast(kind: SyntaxKind) -> bool {
21651        kind == SyntaxKind::FETCH_CLAUSE
21652    }
21653    #[inline]
21654    fn cast(syntax: SyntaxNode) -> Option<Self> {
21655        if Self::can_cast(syntax.kind()) {
21656            Some(Self { syntax })
21657        } else {
21658            None
21659        }
21660    }
21661    #[inline]
21662    fn syntax(&self) -> &SyntaxNode {
21663        &self.syntax
21664    }
21665}
21666impl AstNode for FieldExpr {
21667    #[inline]
21668    fn can_cast(kind: SyntaxKind) -> bool {
21669        kind == SyntaxKind::FIELD_EXPR
21670    }
21671    #[inline]
21672    fn cast(syntax: SyntaxNode) -> Option<Self> {
21673        if Self::can_cast(syntax.kind()) {
21674            Some(Self { syntax })
21675        } else {
21676            None
21677        }
21678    }
21679    #[inline]
21680    fn syntax(&self) -> &SyntaxNode {
21681        &self.syntax
21682    }
21683}
21684impl AstNode for FilterClause {
21685    #[inline]
21686    fn can_cast(kind: SyntaxKind) -> bool {
21687        kind == SyntaxKind::FILTER_CLAUSE
21688    }
21689    #[inline]
21690    fn cast(syntax: SyntaxNode) -> Option<Self> {
21691        if Self::can_cast(syntax.kind()) {
21692            Some(Self { syntax })
21693        } else {
21694            None
21695        }
21696    }
21697    #[inline]
21698    fn syntax(&self) -> &SyntaxNode {
21699        &self.syntax
21700    }
21701}
21702impl AstNode for ForProvider {
21703    #[inline]
21704    fn can_cast(kind: SyntaxKind) -> bool {
21705        kind == SyntaxKind::FOR_PROVIDER
21706    }
21707    #[inline]
21708    fn cast(syntax: SyntaxNode) -> Option<Self> {
21709        if Self::can_cast(syntax.kind()) {
21710            Some(Self { syntax })
21711        } else {
21712            None
21713        }
21714    }
21715    #[inline]
21716    fn syntax(&self) -> &SyntaxNode {
21717        &self.syntax
21718    }
21719}
21720impl AstNode for ForceRls {
21721    #[inline]
21722    fn can_cast(kind: SyntaxKind) -> bool {
21723        kind == SyntaxKind::FORCE_RLS
21724    }
21725    #[inline]
21726    fn cast(syntax: SyntaxNode) -> Option<Self> {
21727        if Self::can_cast(syntax.kind()) {
21728            Some(Self { syntax })
21729        } else {
21730            None
21731        }
21732    }
21733    #[inline]
21734    fn syntax(&self) -> &SyntaxNode {
21735        &self.syntax
21736    }
21737}
21738impl AstNode for ForeignKeyConstraint {
21739    #[inline]
21740    fn can_cast(kind: SyntaxKind) -> bool {
21741        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
21742    }
21743    #[inline]
21744    fn cast(syntax: SyntaxNode) -> Option<Self> {
21745        if Self::can_cast(syntax.kind()) {
21746            Some(Self { syntax })
21747        } else {
21748            None
21749        }
21750    }
21751    #[inline]
21752    fn syntax(&self) -> &SyntaxNode {
21753        &self.syntax
21754    }
21755}
21756impl AstNode for FrameClause {
21757    #[inline]
21758    fn can_cast(kind: SyntaxKind) -> bool {
21759        kind == SyntaxKind::FRAME_CLAUSE
21760    }
21761    #[inline]
21762    fn cast(syntax: SyntaxNode) -> Option<Self> {
21763        if Self::can_cast(syntax.kind()) {
21764            Some(Self { syntax })
21765        } else {
21766            None
21767        }
21768    }
21769    #[inline]
21770    fn syntax(&self) -> &SyntaxNode {
21771        &self.syntax
21772    }
21773}
21774impl AstNode for FromClause {
21775    #[inline]
21776    fn can_cast(kind: SyntaxKind) -> bool {
21777        kind == SyntaxKind::FROM_CLAUSE
21778    }
21779    #[inline]
21780    fn cast(syntax: SyntaxNode) -> Option<Self> {
21781        if Self::can_cast(syntax.kind()) {
21782            Some(Self { syntax })
21783        } else {
21784            None
21785        }
21786    }
21787    #[inline]
21788    fn syntax(&self) -> &SyntaxNode {
21789        &self.syntax
21790    }
21791}
21792impl AstNode for FromItem {
21793    #[inline]
21794    fn can_cast(kind: SyntaxKind) -> bool {
21795        kind == SyntaxKind::FROM_ITEM
21796    }
21797    #[inline]
21798    fn cast(syntax: SyntaxNode) -> Option<Self> {
21799        if Self::can_cast(syntax.kind()) {
21800            Some(Self { syntax })
21801        } else {
21802            None
21803        }
21804    }
21805    #[inline]
21806    fn syntax(&self) -> &SyntaxNode {
21807        &self.syntax
21808    }
21809}
21810impl AstNode for FromTable {
21811    #[inline]
21812    fn can_cast(kind: SyntaxKind) -> bool {
21813        kind == SyntaxKind::FROM_TABLE
21814    }
21815    #[inline]
21816    fn cast(syntax: SyntaxNode) -> Option<Self> {
21817        if Self::can_cast(syntax.kind()) {
21818            Some(Self { syntax })
21819        } else {
21820            None
21821        }
21822    }
21823    #[inline]
21824    fn syntax(&self) -> &SyntaxNode {
21825        &self.syntax
21826    }
21827}
21828impl AstNode for FuncOptionList {
21829    #[inline]
21830    fn can_cast(kind: SyntaxKind) -> bool {
21831        kind == SyntaxKind::FUNC_OPTION_LIST
21832    }
21833    #[inline]
21834    fn cast(syntax: SyntaxNode) -> Option<Self> {
21835        if Self::can_cast(syntax.kind()) {
21836            Some(Self { syntax })
21837        } else {
21838            None
21839        }
21840    }
21841    #[inline]
21842    fn syntax(&self) -> &SyntaxNode {
21843        &self.syntax
21844    }
21845}
21846impl AstNode for FunctionSig {
21847    #[inline]
21848    fn can_cast(kind: SyntaxKind) -> bool {
21849        kind == SyntaxKind::FUNCTION_SIG
21850    }
21851    #[inline]
21852    fn cast(syntax: SyntaxNode) -> Option<Self> {
21853        if Self::can_cast(syntax.kind()) {
21854            Some(Self { syntax })
21855        } else {
21856            None
21857        }
21858    }
21859    #[inline]
21860    fn syntax(&self) -> &SyntaxNode {
21861        &self.syntax
21862    }
21863}
21864impl AstNode for FunctionSigList {
21865    #[inline]
21866    fn can_cast(kind: SyntaxKind) -> bool {
21867        kind == SyntaxKind::FUNCTION_SIG_LIST
21868    }
21869    #[inline]
21870    fn cast(syntax: SyntaxNode) -> Option<Self> {
21871        if Self::can_cast(syntax.kind()) {
21872            Some(Self { syntax })
21873        } else {
21874            None
21875        }
21876    }
21877    #[inline]
21878    fn syntax(&self) -> &SyntaxNode {
21879        &self.syntax
21880    }
21881}
21882impl AstNode for GeneratedConstraint {
21883    #[inline]
21884    fn can_cast(kind: SyntaxKind) -> bool {
21885        kind == SyntaxKind::GENERATED_CONSTRAINT
21886    }
21887    #[inline]
21888    fn cast(syntax: SyntaxNode) -> Option<Self> {
21889        if Self::can_cast(syntax.kind()) {
21890            Some(Self { syntax })
21891        } else {
21892            None
21893        }
21894    }
21895    #[inline]
21896    fn syntax(&self) -> &SyntaxNode {
21897        &self.syntax
21898    }
21899}
21900impl AstNode for Grant {
21901    #[inline]
21902    fn can_cast(kind: SyntaxKind) -> bool {
21903        kind == SyntaxKind::GRANT
21904    }
21905    #[inline]
21906    fn cast(syntax: SyntaxNode) -> Option<Self> {
21907        if Self::can_cast(syntax.kind()) {
21908            Some(Self { syntax })
21909        } else {
21910            None
21911        }
21912    }
21913    #[inline]
21914    fn syntax(&self) -> &SyntaxNode {
21915        &self.syntax
21916    }
21917}
21918impl AstNode for GrantDefaultPrivileges {
21919    #[inline]
21920    fn can_cast(kind: SyntaxKind) -> bool {
21921        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
21922    }
21923    #[inline]
21924    fn cast(syntax: SyntaxNode) -> Option<Self> {
21925        if Self::can_cast(syntax.kind()) {
21926            Some(Self { syntax })
21927        } else {
21928            None
21929        }
21930    }
21931    #[inline]
21932    fn syntax(&self) -> &SyntaxNode {
21933        &self.syntax
21934    }
21935}
21936impl AstNode for GroupByClause {
21937    #[inline]
21938    fn can_cast(kind: SyntaxKind) -> bool {
21939        kind == SyntaxKind::GROUP_BY_CLAUSE
21940    }
21941    #[inline]
21942    fn cast(syntax: SyntaxNode) -> Option<Self> {
21943        if Self::can_cast(syntax.kind()) {
21944            Some(Self { syntax })
21945        } else {
21946            None
21947        }
21948    }
21949    #[inline]
21950    fn syntax(&self) -> &SyntaxNode {
21951        &self.syntax
21952    }
21953}
21954impl AstNode for GroupByList {
21955    #[inline]
21956    fn can_cast(kind: SyntaxKind) -> bool {
21957        kind == SyntaxKind::GROUP_BY_LIST
21958    }
21959    #[inline]
21960    fn cast(syntax: SyntaxNode) -> Option<Self> {
21961        if Self::can_cast(syntax.kind()) {
21962            Some(Self { syntax })
21963        } else {
21964            None
21965        }
21966    }
21967    #[inline]
21968    fn syntax(&self) -> &SyntaxNode {
21969        &self.syntax
21970    }
21971}
21972impl AstNode for GroupingCube {
21973    #[inline]
21974    fn can_cast(kind: SyntaxKind) -> bool {
21975        kind == SyntaxKind::GROUPING_CUBE
21976    }
21977    #[inline]
21978    fn cast(syntax: SyntaxNode) -> Option<Self> {
21979        if Self::can_cast(syntax.kind()) {
21980            Some(Self { syntax })
21981        } else {
21982            None
21983        }
21984    }
21985    #[inline]
21986    fn syntax(&self) -> &SyntaxNode {
21987        &self.syntax
21988    }
21989}
21990impl AstNode for GroupingExpr {
21991    #[inline]
21992    fn can_cast(kind: SyntaxKind) -> bool {
21993        kind == SyntaxKind::GROUPING_EXPR
21994    }
21995    #[inline]
21996    fn cast(syntax: SyntaxNode) -> Option<Self> {
21997        if Self::can_cast(syntax.kind()) {
21998            Some(Self { syntax })
21999        } else {
22000            None
22001        }
22002    }
22003    #[inline]
22004    fn syntax(&self) -> &SyntaxNode {
22005        &self.syntax
22006    }
22007}
22008impl AstNode for GroupingRollup {
22009    #[inline]
22010    fn can_cast(kind: SyntaxKind) -> bool {
22011        kind == SyntaxKind::GROUPING_ROLLUP
22012    }
22013    #[inline]
22014    fn cast(syntax: SyntaxNode) -> Option<Self> {
22015        if Self::can_cast(syntax.kind()) {
22016            Some(Self { syntax })
22017        } else {
22018            None
22019        }
22020    }
22021    #[inline]
22022    fn syntax(&self) -> &SyntaxNode {
22023        &self.syntax
22024    }
22025}
22026impl AstNode for GroupingSets {
22027    #[inline]
22028    fn can_cast(kind: SyntaxKind) -> bool {
22029        kind == SyntaxKind::GROUPING_SETS
22030    }
22031    #[inline]
22032    fn cast(syntax: SyntaxNode) -> Option<Self> {
22033        if Self::can_cast(syntax.kind()) {
22034            Some(Self { syntax })
22035        } else {
22036            None
22037        }
22038    }
22039    #[inline]
22040    fn syntax(&self) -> &SyntaxNode {
22041        &self.syntax
22042    }
22043}
22044impl AstNode for Gteq {
22045    #[inline]
22046    fn can_cast(kind: SyntaxKind) -> bool {
22047        kind == SyntaxKind::GTEQ
22048    }
22049    #[inline]
22050    fn cast(syntax: SyntaxNode) -> Option<Self> {
22051        if Self::can_cast(syntax.kind()) {
22052            Some(Self { syntax })
22053        } else {
22054            None
22055        }
22056    }
22057    #[inline]
22058    fn syntax(&self) -> &SyntaxNode {
22059        &self.syntax
22060    }
22061}
22062impl AstNode for HandlerClause {
22063    #[inline]
22064    fn can_cast(kind: SyntaxKind) -> bool {
22065        kind == SyntaxKind::HANDLER_CLAUSE
22066    }
22067    #[inline]
22068    fn cast(syntax: SyntaxNode) -> Option<Self> {
22069        if Self::can_cast(syntax.kind()) {
22070            Some(Self { syntax })
22071        } else {
22072            None
22073        }
22074    }
22075    #[inline]
22076    fn syntax(&self) -> &SyntaxNode {
22077        &self.syntax
22078    }
22079}
22080impl AstNode for HavingClause {
22081    #[inline]
22082    fn can_cast(kind: SyntaxKind) -> bool {
22083        kind == SyntaxKind::HAVING_CLAUSE
22084    }
22085    #[inline]
22086    fn cast(syntax: SyntaxNode) -> Option<Self> {
22087        if Self::can_cast(syntax.kind()) {
22088            Some(Self { syntax })
22089        } else {
22090            None
22091        }
22092    }
22093    #[inline]
22094    fn syntax(&self) -> &SyntaxNode {
22095        &self.syntax
22096    }
22097}
22098impl AstNode for IfExists {
22099    #[inline]
22100    fn can_cast(kind: SyntaxKind) -> bool {
22101        kind == SyntaxKind::IF_EXISTS
22102    }
22103    #[inline]
22104    fn cast(syntax: SyntaxNode) -> Option<Self> {
22105        if Self::can_cast(syntax.kind()) {
22106            Some(Self { syntax })
22107        } else {
22108            None
22109        }
22110    }
22111    #[inline]
22112    fn syntax(&self) -> &SyntaxNode {
22113        &self.syntax
22114    }
22115}
22116impl AstNode for IfNotExists {
22117    #[inline]
22118    fn can_cast(kind: SyntaxKind) -> bool {
22119        kind == SyntaxKind::IF_NOT_EXISTS
22120    }
22121    #[inline]
22122    fn cast(syntax: SyntaxNode) -> Option<Self> {
22123        if Self::can_cast(syntax.kind()) {
22124            Some(Self { syntax })
22125        } else {
22126            None
22127        }
22128    }
22129    #[inline]
22130    fn syntax(&self) -> &SyntaxNode {
22131        &self.syntax
22132    }
22133}
22134impl AstNode for ImportForeignSchema {
22135    #[inline]
22136    fn can_cast(kind: SyntaxKind) -> bool {
22137        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
22138    }
22139    #[inline]
22140    fn cast(syntax: SyntaxNode) -> Option<Self> {
22141        if Self::can_cast(syntax.kind()) {
22142            Some(Self { syntax })
22143        } else {
22144            None
22145        }
22146    }
22147    #[inline]
22148    fn syntax(&self) -> &SyntaxNode {
22149        &self.syntax
22150    }
22151}
22152impl AstNode for IndexExpr {
22153    #[inline]
22154    fn can_cast(kind: SyntaxKind) -> bool {
22155        kind == SyntaxKind::INDEX_EXPR
22156    }
22157    #[inline]
22158    fn cast(syntax: SyntaxNode) -> Option<Self> {
22159        if Self::can_cast(syntax.kind()) {
22160            Some(Self { syntax })
22161        } else {
22162            None
22163        }
22164    }
22165    #[inline]
22166    fn syntax(&self) -> &SyntaxNode {
22167        &self.syntax
22168    }
22169}
22170impl AstNode for Inherit {
22171    #[inline]
22172    fn can_cast(kind: SyntaxKind) -> bool {
22173        kind == SyntaxKind::INHERIT
22174    }
22175    #[inline]
22176    fn cast(syntax: SyntaxNode) -> Option<Self> {
22177        if Self::can_cast(syntax.kind()) {
22178            Some(Self { syntax })
22179        } else {
22180            None
22181        }
22182    }
22183    #[inline]
22184    fn syntax(&self) -> &SyntaxNode {
22185        &self.syntax
22186    }
22187}
22188impl AstNode for InheritTable {
22189    #[inline]
22190    fn can_cast(kind: SyntaxKind) -> bool {
22191        kind == SyntaxKind::INHERIT_TABLE
22192    }
22193    #[inline]
22194    fn cast(syntax: SyntaxNode) -> Option<Self> {
22195        if Self::can_cast(syntax.kind()) {
22196            Some(Self { syntax })
22197        } else {
22198            None
22199        }
22200    }
22201    #[inline]
22202    fn syntax(&self) -> &SyntaxNode {
22203        &self.syntax
22204    }
22205}
22206impl AstNode for Inherits {
22207    #[inline]
22208    fn can_cast(kind: SyntaxKind) -> bool {
22209        kind == SyntaxKind::INHERITS
22210    }
22211    #[inline]
22212    fn cast(syntax: SyntaxNode) -> Option<Self> {
22213        if Self::can_cast(syntax.kind()) {
22214            Some(Self { syntax })
22215        } else {
22216            None
22217        }
22218    }
22219    #[inline]
22220    fn syntax(&self) -> &SyntaxNode {
22221        &self.syntax
22222    }
22223}
22224impl AstNode for InitiallyDeferredConstraintOption {
22225    #[inline]
22226    fn can_cast(kind: SyntaxKind) -> bool {
22227        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
22228    }
22229    #[inline]
22230    fn cast(syntax: SyntaxNode) -> Option<Self> {
22231        if Self::can_cast(syntax.kind()) {
22232            Some(Self { syntax })
22233        } else {
22234            None
22235        }
22236    }
22237    #[inline]
22238    fn syntax(&self) -> &SyntaxNode {
22239        &self.syntax
22240    }
22241}
22242impl AstNode for InitiallyImmediateConstraintOption {
22243    #[inline]
22244    fn can_cast(kind: SyntaxKind) -> bool {
22245        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
22246    }
22247    #[inline]
22248    fn cast(syntax: SyntaxNode) -> Option<Self> {
22249        if Self::can_cast(syntax.kind()) {
22250            Some(Self { syntax })
22251        } else {
22252            None
22253        }
22254    }
22255    #[inline]
22256    fn syntax(&self) -> &SyntaxNode {
22257        &self.syntax
22258    }
22259}
22260impl AstNode for Insert {
22261    #[inline]
22262    fn can_cast(kind: SyntaxKind) -> bool {
22263        kind == SyntaxKind::INSERT
22264    }
22265    #[inline]
22266    fn cast(syntax: SyntaxNode) -> Option<Self> {
22267        if Self::can_cast(syntax.kind()) {
22268            Some(Self { syntax })
22269        } else {
22270            None
22271        }
22272    }
22273    #[inline]
22274    fn syntax(&self) -> &SyntaxNode {
22275        &self.syntax
22276    }
22277}
22278impl AstNode for IntervalType {
22279    #[inline]
22280    fn can_cast(kind: SyntaxKind) -> bool {
22281        kind == SyntaxKind::INTERVAL_TYPE
22282    }
22283    #[inline]
22284    fn cast(syntax: SyntaxNode) -> Option<Self> {
22285        if Self::can_cast(syntax.kind()) {
22286            Some(Self { syntax })
22287        } else {
22288            None
22289        }
22290    }
22291    #[inline]
22292    fn syntax(&self) -> &SyntaxNode {
22293        &self.syntax
22294    }
22295}
22296impl AstNode for IntoClause {
22297    #[inline]
22298    fn can_cast(kind: SyntaxKind) -> bool {
22299        kind == SyntaxKind::INTO_CLAUSE
22300    }
22301    #[inline]
22302    fn cast(syntax: SyntaxNode) -> Option<Self> {
22303        if Self::can_cast(syntax.kind()) {
22304            Some(Self { syntax })
22305        } else {
22306            None
22307        }
22308    }
22309    #[inline]
22310    fn syntax(&self) -> &SyntaxNode {
22311        &self.syntax
22312    }
22313}
22314impl AstNode for IntoSchema {
22315    #[inline]
22316    fn can_cast(kind: SyntaxKind) -> bool {
22317        kind == SyntaxKind::INTO_SCHEMA
22318    }
22319    #[inline]
22320    fn cast(syntax: SyntaxNode) -> Option<Self> {
22321        if Self::can_cast(syntax.kind()) {
22322            Some(Self { syntax })
22323        } else {
22324            None
22325        }
22326    }
22327    #[inline]
22328    fn syntax(&self) -> &SyntaxNode {
22329        &self.syntax
22330    }
22331}
22332impl AstNode for IsDistinctFrom {
22333    #[inline]
22334    fn can_cast(kind: SyntaxKind) -> bool {
22335        kind == SyntaxKind::IS_DISTINCT_FROM
22336    }
22337    #[inline]
22338    fn cast(syntax: SyntaxNode) -> Option<Self> {
22339        if Self::can_cast(syntax.kind()) {
22340            Some(Self { syntax })
22341        } else {
22342            None
22343        }
22344    }
22345    #[inline]
22346    fn syntax(&self) -> &SyntaxNode {
22347        &self.syntax
22348    }
22349}
22350impl AstNode for IsJson {
22351    #[inline]
22352    fn can_cast(kind: SyntaxKind) -> bool {
22353        kind == SyntaxKind::IS_JSON
22354    }
22355    #[inline]
22356    fn cast(syntax: SyntaxNode) -> Option<Self> {
22357        if Self::can_cast(syntax.kind()) {
22358            Some(Self { syntax })
22359        } else {
22360            None
22361        }
22362    }
22363    #[inline]
22364    fn syntax(&self) -> &SyntaxNode {
22365        &self.syntax
22366    }
22367}
22368impl AstNode for IsJsonArray {
22369    #[inline]
22370    fn can_cast(kind: SyntaxKind) -> bool {
22371        kind == SyntaxKind::IS_JSON_ARRAY
22372    }
22373    #[inline]
22374    fn cast(syntax: SyntaxNode) -> Option<Self> {
22375        if Self::can_cast(syntax.kind()) {
22376            Some(Self { syntax })
22377        } else {
22378            None
22379        }
22380    }
22381    #[inline]
22382    fn syntax(&self) -> &SyntaxNode {
22383        &self.syntax
22384    }
22385}
22386impl AstNode for IsJsonObject {
22387    #[inline]
22388    fn can_cast(kind: SyntaxKind) -> bool {
22389        kind == SyntaxKind::IS_JSON_OBJECT
22390    }
22391    #[inline]
22392    fn cast(syntax: SyntaxNode) -> Option<Self> {
22393        if Self::can_cast(syntax.kind()) {
22394            Some(Self { syntax })
22395        } else {
22396            None
22397        }
22398    }
22399    #[inline]
22400    fn syntax(&self) -> &SyntaxNode {
22401        &self.syntax
22402    }
22403}
22404impl AstNode for IsJsonScalar {
22405    #[inline]
22406    fn can_cast(kind: SyntaxKind) -> bool {
22407        kind == SyntaxKind::IS_JSON_SCALAR
22408    }
22409    #[inline]
22410    fn cast(syntax: SyntaxNode) -> Option<Self> {
22411        if Self::can_cast(syntax.kind()) {
22412            Some(Self { syntax })
22413        } else {
22414            None
22415        }
22416    }
22417    #[inline]
22418    fn syntax(&self) -> &SyntaxNode {
22419        &self.syntax
22420    }
22421}
22422impl AstNode for IsJsonValue {
22423    #[inline]
22424    fn can_cast(kind: SyntaxKind) -> bool {
22425        kind == SyntaxKind::IS_JSON_VALUE
22426    }
22427    #[inline]
22428    fn cast(syntax: SyntaxNode) -> Option<Self> {
22429        if Self::can_cast(syntax.kind()) {
22430            Some(Self { syntax })
22431        } else {
22432            None
22433        }
22434    }
22435    #[inline]
22436    fn syntax(&self) -> &SyntaxNode {
22437        &self.syntax
22438    }
22439}
22440impl AstNode for IsNormalized {
22441    #[inline]
22442    fn can_cast(kind: SyntaxKind) -> bool {
22443        kind == SyntaxKind::IS_NORMALIZED
22444    }
22445    #[inline]
22446    fn cast(syntax: SyntaxNode) -> Option<Self> {
22447        if Self::can_cast(syntax.kind()) {
22448            Some(Self { syntax })
22449        } else {
22450            None
22451        }
22452    }
22453    #[inline]
22454    fn syntax(&self) -> &SyntaxNode {
22455        &self.syntax
22456    }
22457}
22458impl AstNode for IsNot {
22459    #[inline]
22460    fn can_cast(kind: SyntaxKind) -> bool {
22461        kind == SyntaxKind::IS_NOT
22462    }
22463    #[inline]
22464    fn cast(syntax: SyntaxNode) -> Option<Self> {
22465        if Self::can_cast(syntax.kind()) {
22466            Some(Self { syntax })
22467        } else {
22468            None
22469        }
22470    }
22471    #[inline]
22472    fn syntax(&self) -> &SyntaxNode {
22473        &self.syntax
22474    }
22475}
22476impl AstNode for IsNotDistinctFrom {
22477    #[inline]
22478    fn can_cast(kind: SyntaxKind) -> bool {
22479        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
22480    }
22481    #[inline]
22482    fn cast(syntax: SyntaxNode) -> Option<Self> {
22483        if Self::can_cast(syntax.kind()) {
22484            Some(Self { syntax })
22485        } else {
22486            None
22487        }
22488    }
22489    #[inline]
22490    fn syntax(&self) -> &SyntaxNode {
22491        &self.syntax
22492    }
22493}
22494impl AstNode for IsNotJson {
22495    #[inline]
22496    fn can_cast(kind: SyntaxKind) -> bool {
22497        kind == SyntaxKind::IS_NOT_JSON
22498    }
22499    #[inline]
22500    fn cast(syntax: SyntaxNode) -> Option<Self> {
22501        if Self::can_cast(syntax.kind()) {
22502            Some(Self { syntax })
22503        } else {
22504            None
22505        }
22506    }
22507    #[inline]
22508    fn syntax(&self) -> &SyntaxNode {
22509        &self.syntax
22510    }
22511}
22512impl AstNode for IsNotJsonArray {
22513    #[inline]
22514    fn can_cast(kind: SyntaxKind) -> bool {
22515        kind == SyntaxKind::IS_NOT_JSON_ARRAY
22516    }
22517    #[inline]
22518    fn cast(syntax: SyntaxNode) -> Option<Self> {
22519        if Self::can_cast(syntax.kind()) {
22520            Some(Self { syntax })
22521        } else {
22522            None
22523        }
22524    }
22525    #[inline]
22526    fn syntax(&self) -> &SyntaxNode {
22527        &self.syntax
22528    }
22529}
22530impl AstNode for IsNotJsonObject {
22531    #[inline]
22532    fn can_cast(kind: SyntaxKind) -> bool {
22533        kind == SyntaxKind::IS_NOT_JSON_OBJECT
22534    }
22535    #[inline]
22536    fn cast(syntax: SyntaxNode) -> Option<Self> {
22537        if Self::can_cast(syntax.kind()) {
22538            Some(Self { syntax })
22539        } else {
22540            None
22541        }
22542    }
22543    #[inline]
22544    fn syntax(&self) -> &SyntaxNode {
22545        &self.syntax
22546    }
22547}
22548impl AstNode for IsNotJsonScalar {
22549    #[inline]
22550    fn can_cast(kind: SyntaxKind) -> bool {
22551        kind == SyntaxKind::IS_NOT_JSON_SCALAR
22552    }
22553    #[inline]
22554    fn cast(syntax: SyntaxNode) -> Option<Self> {
22555        if Self::can_cast(syntax.kind()) {
22556            Some(Self { syntax })
22557        } else {
22558            None
22559        }
22560    }
22561    #[inline]
22562    fn syntax(&self) -> &SyntaxNode {
22563        &self.syntax
22564    }
22565}
22566impl AstNode for IsNotJsonValue {
22567    #[inline]
22568    fn can_cast(kind: SyntaxKind) -> bool {
22569        kind == SyntaxKind::IS_NOT_JSON_VALUE
22570    }
22571    #[inline]
22572    fn cast(syntax: SyntaxNode) -> Option<Self> {
22573        if Self::can_cast(syntax.kind()) {
22574            Some(Self { syntax })
22575        } else {
22576            None
22577        }
22578    }
22579    #[inline]
22580    fn syntax(&self) -> &SyntaxNode {
22581        &self.syntax
22582    }
22583}
22584impl AstNode for IsNotNormalized {
22585    #[inline]
22586    fn can_cast(kind: SyntaxKind) -> bool {
22587        kind == SyntaxKind::IS_NOT_NORMALIZED
22588    }
22589    #[inline]
22590    fn cast(syntax: SyntaxNode) -> Option<Self> {
22591        if Self::can_cast(syntax.kind()) {
22592            Some(Self { syntax })
22593        } else {
22594            None
22595        }
22596    }
22597    #[inline]
22598    fn syntax(&self) -> &SyntaxNode {
22599        &self.syntax
22600    }
22601}
22602impl AstNode for Join {
22603    #[inline]
22604    fn can_cast(kind: SyntaxKind) -> bool {
22605        kind == SyntaxKind::JOIN
22606    }
22607    #[inline]
22608    fn cast(syntax: SyntaxNode) -> Option<Self> {
22609        if Self::can_cast(syntax.kind()) {
22610            Some(Self { syntax })
22611        } else {
22612            None
22613        }
22614    }
22615    #[inline]
22616    fn syntax(&self) -> &SyntaxNode {
22617        &self.syntax
22618    }
22619}
22620impl AstNode for JoinCross {
22621    #[inline]
22622    fn can_cast(kind: SyntaxKind) -> bool {
22623        kind == SyntaxKind::JOIN_CROSS
22624    }
22625    #[inline]
22626    fn cast(syntax: SyntaxNode) -> Option<Self> {
22627        if Self::can_cast(syntax.kind()) {
22628            Some(Self { syntax })
22629        } else {
22630            None
22631        }
22632    }
22633    #[inline]
22634    fn syntax(&self) -> &SyntaxNode {
22635        &self.syntax
22636    }
22637}
22638impl AstNode for JoinExpr {
22639    #[inline]
22640    fn can_cast(kind: SyntaxKind) -> bool {
22641        kind == SyntaxKind::JOIN_EXPR
22642    }
22643    #[inline]
22644    fn cast(syntax: SyntaxNode) -> Option<Self> {
22645        if Self::can_cast(syntax.kind()) {
22646            Some(Self { syntax })
22647        } else {
22648            None
22649        }
22650    }
22651    #[inline]
22652    fn syntax(&self) -> &SyntaxNode {
22653        &self.syntax
22654    }
22655}
22656impl AstNode for JoinFull {
22657    #[inline]
22658    fn can_cast(kind: SyntaxKind) -> bool {
22659        kind == SyntaxKind::JOIN_FULL
22660    }
22661    #[inline]
22662    fn cast(syntax: SyntaxNode) -> Option<Self> {
22663        if Self::can_cast(syntax.kind()) {
22664            Some(Self { syntax })
22665        } else {
22666            None
22667        }
22668    }
22669    #[inline]
22670    fn syntax(&self) -> &SyntaxNode {
22671        &self.syntax
22672    }
22673}
22674impl AstNode for JoinInner {
22675    #[inline]
22676    fn can_cast(kind: SyntaxKind) -> bool {
22677        kind == SyntaxKind::JOIN_INNER
22678    }
22679    #[inline]
22680    fn cast(syntax: SyntaxNode) -> Option<Self> {
22681        if Self::can_cast(syntax.kind()) {
22682            Some(Self { syntax })
22683        } else {
22684            None
22685        }
22686    }
22687    #[inline]
22688    fn syntax(&self) -> &SyntaxNode {
22689        &self.syntax
22690    }
22691}
22692impl AstNode for JoinLeft {
22693    #[inline]
22694    fn can_cast(kind: SyntaxKind) -> bool {
22695        kind == SyntaxKind::JOIN_LEFT
22696    }
22697    #[inline]
22698    fn cast(syntax: SyntaxNode) -> Option<Self> {
22699        if Self::can_cast(syntax.kind()) {
22700            Some(Self { syntax })
22701        } else {
22702            None
22703        }
22704    }
22705    #[inline]
22706    fn syntax(&self) -> &SyntaxNode {
22707        &self.syntax
22708    }
22709}
22710impl AstNode for JoinRight {
22711    #[inline]
22712    fn can_cast(kind: SyntaxKind) -> bool {
22713        kind == SyntaxKind::JOIN_RIGHT
22714    }
22715    #[inline]
22716    fn cast(syntax: SyntaxNode) -> Option<Self> {
22717        if Self::can_cast(syntax.kind()) {
22718            Some(Self { syntax })
22719        } else {
22720            None
22721        }
22722    }
22723    #[inline]
22724    fn syntax(&self) -> &SyntaxNode {
22725        &self.syntax
22726    }
22727}
22728impl AstNode for JoinUsingClause {
22729    #[inline]
22730    fn can_cast(kind: SyntaxKind) -> bool {
22731        kind == SyntaxKind::JOIN_USING_CLAUSE
22732    }
22733    #[inline]
22734    fn cast(syntax: SyntaxNode) -> Option<Self> {
22735        if Self::can_cast(syntax.kind()) {
22736            Some(Self { syntax })
22737        } else {
22738            None
22739        }
22740    }
22741    #[inline]
22742    fn syntax(&self) -> &SyntaxNode {
22743        &self.syntax
22744    }
22745}
22746impl AstNode for JsonArrayAggFn {
22747    #[inline]
22748    fn can_cast(kind: SyntaxKind) -> bool {
22749        kind == SyntaxKind::JSON_ARRAY_AGG_FN
22750    }
22751    #[inline]
22752    fn cast(syntax: SyntaxNode) -> Option<Self> {
22753        if Self::can_cast(syntax.kind()) {
22754            Some(Self { syntax })
22755        } else {
22756            None
22757        }
22758    }
22759    #[inline]
22760    fn syntax(&self) -> &SyntaxNode {
22761        &self.syntax
22762    }
22763}
22764impl AstNode for JsonArrayFn {
22765    #[inline]
22766    fn can_cast(kind: SyntaxKind) -> bool {
22767        kind == SyntaxKind::JSON_ARRAY_FN
22768    }
22769    #[inline]
22770    fn cast(syntax: SyntaxNode) -> Option<Self> {
22771        if Self::can_cast(syntax.kind()) {
22772            Some(Self { syntax })
22773        } else {
22774            None
22775        }
22776    }
22777    #[inline]
22778    fn syntax(&self) -> &SyntaxNode {
22779        &self.syntax
22780    }
22781}
22782impl AstNode for JsonBehaviorClause {
22783    #[inline]
22784    fn can_cast(kind: SyntaxKind) -> bool {
22785        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
22786    }
22787    #[inline]
22788    fn cast(syntax: SyntaxNode) -> Option<Self> {
22789        if Self::can_cast(syntax.kind()) {
22790            Some(Self { syntax })
22791        } else {
22792            None
22793        }
22794    }
22795    #[inline]
22796    fn syntax(&self) -> &SyntaxNode {
22797        &self.syntax
22798    }
22799}
22800impl AstNode for JsonBehaviorDefault {
22801    #[inline]
22802    fn can_cast(kind: SyntaxKind) -> bool {
22803        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
22804    }
22805    #[inline]
22806    fn cast(syntax: SyntaxNode) -> Option<Self> {
22807        if Self::can_cast(syntax.kind()) {
22808            Some(Self { syntax })
22809        } else {
22810            None
22811        }
22812    }
22813    #[inline]
22814    fn syntax(&self) -> &SyntaxNode {
22815        &self.syntax
22816    }
22817}
22818impl AstNode for JsonBehaviorEmptyArray {
22819    #[inline]
22820    fn can_cast(kind: SyntaxKind) -> bool {
22821        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22822    }
22823    #[inline]
22824    fn cast(syntax: SyntaxNode) -> Option<Self> {
22825        if Self::can_cast(syntax.kind()) {
22826            Some(Self { syntax })
22827        } else {
22828            None
22829        }
22830    }
22831    #[inline]
22832    fn syntax(&self) -> &SyntaxNode {
22833        &self.syntax
22834    }
22835}
22836impl AstNode for JsonBehaviorEmptyObject {
22837    #[inline]
22838    fn can_cast(kind: SyntaxKind) -> bool {
22839        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22840    }
22841    #[inline]
22842    fn cast(syntax: SyntaxNode) -> Option<Self> {
22843        if Self::can_cast(syntax.kind()) {
22844            Some(Self { syntax })
22845        } else {
22846            None
22847        }
22848    }
22849    #[inline]
22850    fn syntax(&self) -> &SyntaxNode {
22851        &self.syntax
22852    }
22853}
22854impl AstNode for JsonBehaviorError {
22855    #[inline]
22856    fn can_cast(kind: SyntaxKind) -> bool {
22857        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
22858    }
22859    #[inline]
22860    fn cast(syntax: SyntaxNode) -> Option<Self> {
22861        if Self::can_cast(syntax.kind()) {
22862            Some(Self { syntax })
22863        } else {
22864            None
22865        }
22866    }
22867    #[inline]
22868    fn syntax(&self) -> &SyntaxNode {
22869        &self.syntax
22870    }
22871}
22872impl AstNode for JsonBehaviorFalse {
22873    #[inline]
22874    fn can_cast(kind: SyntaxKind) -> bool {
22875        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
22876    }
22877    #[inline]
22878    fn cast(syntax: SyntaxNode) -> Option<Self> {
22879        if Self::can_cast(syntax.kind()) {
22880            Some(Self { syntax })
22881        } else {
22882            None
22883        }
22884    }
22885    #[inline]
22886    fn syntax(&self) -> &SyntaxNode {
22887        &self.syntax
22888    }
22889}
22890impl AstNode for JsonBehaviorNull {
22891    #[inline]
22892    fn can_cast(kind: SyntaxKind) -> bool {
22893        kind == SyntaxKind::JSON_BEHAVIOR_NULL
22894    }
22895    #[inline]
22896    fn cast(syntax: SyntaxNode) -> Option<Self> {
22897        if Self::can_cast(syntax.kind()) {
22898            Some(Self { syntax })
22899        } else {
22900            None
22901        }
22902    }
22903    #[inline]
22904    fn syntax(&self) -> &SyntaxNode {
22905        &self.syntax
22906    }
22907}
22908impl AstNode for JsonBehaviorTrue {
22909    #[inline]
22910    fn can_cast(kind: SyntaxKind) -> bool {
22911        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
22912    }
22913    #[inline]
22914    fn cast(syntax: SyntaxNode) -> Option<Self> {
22915        if Self::can_cast(syntax.kind()) {
22916            Some(Self { syntax })
22917        } else {
22918            None
22919        }
22920    }
22921    #[inline]
22922    fn syntax(&self) -> &SyntaxNode {
22923        &self.syntax
22924    }
22925}
22926impl AstNode for JsonBehaviorUnknown {
22927    #[inline]
22928    fn can_cast(kind: SyntaxKind) -> bool {
22929        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
22930    }
22931    #[inline]
22932    fn cast(syntax: SyntaxNode) -> Option<Self> {
22933        if Self::can_cast(syntax.kind()) {
22934            Some(Self { syntax })
22935        } else {
22936            None
22937        }
22938    }
22939    #[inline]
22940    fn syntax(&self) -> &SyntaxNode {
22941        &self.syntax
22942    }
22943}
22944impl AstNode for JsonEncodingClause {
22945    #[inline]
22946    fn can_cast(kind: SyntaxKind) -> bool {
22947        kind == SyntaxKind::JSON_ENCODING_CLAUSE
22948    }
22949    #[inline]
22950    fn cast(syntax: SyntaxNode) -> Option<Self> {
22951        if Self::can_cast(syntax.kind()) {
22952            Some(Self { syntax })
22953        } else {
22954            None
22955        }
22956    }
22957    #[inline]
22958    fn syntax(&self) -> &SyntaxNode {
22959        &self.syntax
22960    }
22961}
22962impl AstNode for JsonExistsFn {
22963    #[inline]
22964    fn can_cast(kind: SyntaxKind) -> bool {
22965        kind == SyntaxKind::JSON_EXISTS_FN
22966    }
22967    #[inline]
22968    fn cast(syntax: SyntaxNode) -> Option<Self> {
22969        if Self::can_cast(syntax.kind()) {
22970            Some(Self { syntax })
22971        } else {
22972            None
22973        }
22974    }
22975    #[inline]
22976    fn syntax(&self) -> &SyntaxNode {
22977        &self.syntax
22978    }
22979}
22980impl AstNode for JsonExprFormat {
22981    #[inline]
22982    fn can_cast(kind: SyntaxKind) -> bool {
22983        kind == SyntaxKind::JSON_EXPR_FORMAT
22984    }
22985    #[inline]
22986    fn cast(syntax: SyntaxNode) -> Option<Self> {
22987        if Self::can_cast(syntax.kind()) {
22988            Some(Self { syntax })
22989        } else {
22990            None
22991        }
22992    }
22993    #[inline]
22994    fn syntax(&self) -> &SyntaxNode {
22995        &self.syntax
22996    }
22997}
22998impl AstNode for JsonFn {
22999    #[inline]
23000    fn can_cast(kind: SyntaxKind) -> bool {
23001        kind == SyntaxKind::JSON_FN
23002    }
23003    #[inline]
23004    fn cast(syntax: SyntaxNode) -> Option<Self> {
23005        if Self::can_cast(syntax.kind()) {
23006            Some(Self { syntax })
23007        } else {
23008            None
23009        }
23010    }
23011    #[inline]
23012    fn syntax(&self) -> &SyntaxNode {
23013        &self.syntax
23014    }
23015}
23016impl AstNode for JsonFormatClause {
23017    #[inline]
23018    fn can_cast(kind: SyntaxKind) -> bool {
23019        kind == SyntaxKind::JSON_FORMAT_CLAUSE
23020    }
23021    #[inline]
23022    fn cast(syntax: SyntaxNode) -> Option<Self> {
23023        if Self::can_cast(syntax.kind()) {
23024            Some(Self { syntax })
23025        } else {
23026            None
23027        }
23028    }
23029    #[inline]
23030    fn syntax(&self) -> &SyntaxNode {
23031        &self.syntax
23032    }
23033}
23034impl AstNode for JsonKeyValue {
23035    #[inline]
23036    fn can_cast(kind: SyntaxKind) -> bool {
23037        kind == SyntaxKind::JSON_KEY_VALUE
23038    }
23039    #[inline]
23040    fn cast(syntax: SyntaxNode) -> Option<Self> {
23041        if Self::can_cast(syntax.kind()) {
23042            Some(Self { syntax })
23043        } else {
23044            None
23045        }
23046    }
23047    #[inline]
23048    fn syntax(&self) -> &SyntaxNode {
23049        &self.syntax
23050    }
23051}
23052impl AstNode for JsonKeysUniqueClause {
23053    #[inline]
23054    fn can_cast(kind: SyntaxKind) -> bool {
23055        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
23056    }
23057    #[inline]
23058    fn cast(syntax: SyntaxNode) -> Option<Self> {
23059        if Self::can_cast(syntax.kind()) {
23060            Some(Self { syntax })
23061        } else {
23062            None
23063        }
23064    }
23065    #[inline]
23066    fn syntax(&self) -> &SyntaxNode {
23067        &self.syntax
23068    }
23069}
23070impl AstNode for JsonNullClause {
23071    #[inline]
23072    fn can_cast(kind: SyntaxKind) -> bool {
23073        kind == SyntaxKind::JSON_NULL_CLAUSE
23074    }
23075    #[inline]
23076    fn cast(syntax: SyntaxNode) -> Option<Self> {
23077        if Self::can_cast(syntax.kind()) {
23078            Some(Self { syntax })
23079        } else {
23080            None
23081        }
23082    }
23083    #[inline]
23084    fn syntax(&self) -> &SyntaxNode {
23085        &self.syntax
23086    }
23087}
23088impl AstNode for JsonObjectAggFn {
23089    #[inline]
23090    fn can_cast(kind: SyntaxKind) -> bool {
23091        kind == SyntaxKind::JSON_OBJECT_AGG_FN
23092    }
23093    #[inline]
23094    fn cast(syntax: SyntaxNode) -> Option<Self> {
23095        if Self::can_cast(syntax.kind()) {
23096            Some(Self { syntax })
23097        } else {
23098            None
23099        }
23100    }
23101    #[inline]
23102    fn syntax(&self) -> &SyntaxNode {
23103        &self.syntax
23104    }
23105}
23106impl AstNode for JsonObjectFn {
23107    #[inline]
23108    fn can_cast(kind: SyntaxKind) -> bool {
23109        kind == SyntaxKind::JSON_OBJECT_FN
23110    }
23111    #[inline]
23112    fn cast(syntax: SyntaxNode) -> Option<Self> {
23113        if Self::can_cast(syntax.kind()) {
23114            Some(Self { syntax })
23115        } else {
23116            None
23117        }
23118    }
23119    #[inline]
23120    fn syntax(&self) -> &SyntaxNode {
23121        &self.syntax
23122    }
23123}
23124impl AstNode for JsonOnEmptyClause {
23125    #[inline]
23126    fn can_cast(kind: SyntaxKind) -> bool {
23127        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
23128    }
23129    #[inline]
23130    fn cast(syntax: SyntaxNode) -> Option<Self> {
23131        if Self::can_cast(syntax.kind()) {
23132            Some(Self { syntax })
23133        } else {
23134            None
23135        }
23136    }
23137    #[inline]
23138    fn syntax(&self) -> &SyntaxNode {
23139        &self.syntax
23140    }
23141}
23142impl AstNode for JsonOnErrorClause {
23143    #[inline]
23144    fn can_cast(kind: SyntaxKind) -> bool {
23145        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
23146    }
23147    #[inline]
23148    fn cast(syntax: SyntaxNode) -> Option<Self> {
23149        if Self::can_cast(syntax.kind()) {
23150            Some(Self { syntax })
23151        } else {
23152            None
23153        }
23154    }
23155    #[inline]
23156    fn syntax(&self) -> &SyntaxNode {
23157        &self.syntax
23158    }
23159}
23160impl AstNode for JsonPassingArg {
23161    #[inline]
23162    fn can_cast(kind: SyntaxKind) -> bool {
23163        kind == SyntaxKind::JSON_PASSING_ARG
23164    }
23165    #[inline]
23166    fn cast(syntax: SyntaxNode) -> Option<Self> {
23167        if Self::can_cast(syntax.kind()) {
23168            Some(Self { syntax })
23169        } else {
23170            None
23171        }
23172    }
23173    #[inline]
23174    fn syntax(&self) -> &SyntaxNode {
23175        &self.syntax
23176    }
23177}
23178impl AstNode for JsonPassingClause {
23179    #[inline]
23180    fn can_cast(kind: SyntaxKind) -> bool {
23181        kind == SyntaxKind::JSON_PASSING_CLAUSE
23182    }
23183    #[inline]
23184    fn cast(syntax: SyntaxNode) -> Option<Self> {
23185        if Self::can_cast(syntax.kind()) {
23186            Some(Self { syntax })
23187        } else {
23188            None
23189        }
23190    }
23191    #[inline]
23192    fn syntax(&self) -> &SyntaxNode {
23193        &self.syntax
23194    }
23195}
23196impl AstNode for JsonPathClause {
23197    #[inline]
23198    fn can_cast(kind: SyntaxKind) -> bool {
23199        kind == SyntaxKind::JSON_PATH_CLAUSE
23200    }
23201    #[inline]
23202    fn cast(syntax: SyntaxNode) -> Option<Self> {
23203        if Self::can_cast(syntax.kind()) {
23204            Some(Self { syntax })
23205        } else {
23206            None
23207        }
23208    }
23209    #[inline]
23210    fn syntax(&self) -> &SyntaxNode {
23211        &self.syntax
23212    }
23213}
23214impl AstNode for JsonQueryFn {
23215    #[inline]
23216    fn can_cast(kind: SyntaxKind) -> bool {
23217        kind == SyntaxKind::JSON_QUERY_FN
23218    }
23219    #[inline]
23220    fn cast(syntax: SyntaxNode) -> Option<Self> {
23221        if Self::can_cast(syntax.kind()) {
23222            Some(Self { syntax })
23223        } else {
23224            None
23225        }
23226    }
23227    #[inline]
23228    fn syntax(&self) -> &SyntaxNode {
23229        &self.syntax
23230    }
23231}
23232impl AstNode for JsonQuotesClause {
23233    #[inline]
23234    fn can_cast(kind: SyntaxKind) -> bool {
23235        kind == SyntaxKind::JSON_QUOTES_CLAUSE
23236    }
23237    #[inline]
23238    fn cast(syntax: SyntaxNode) -> Option<Self> {
23239        if Self::can_cast(syntax.kind()) {
23240            Some(Self { syntax })
23241        } else {
23242            None
23243        }
23244    }
23245    #[inline]
23246    fn syntax(&self) -> &SyntaxNode {
23247        &self.syntax
23248    }
23249}
23250impl AstNode for JsonReturningClause {
23251    #[inline]
23252    fn can_cast(kind: SyntaxKind) -> bool {
23253        kind == SyntaxKind::JSON_RETURNING_CLAUSE
23254    }
23255    #[inline]
23256    fn cast(syntax: SyntaxNode) -> Option<Self> {
23257        if Self::can_cast(syntax.kind()) {
23258            Some(Self { syntax })
23259        } else {
23260            None
23261        }
23262    }
23263    #[inline]
23264    fn syntax(&self) -> &SyntaxNode {
23265        &self.syntax
23266    }
23267}
23268impl AstNode for JsonScalarFn {
23269    #[inline]
23270    fn can_cast(kind: SyntaxKind) -> bool {
23271        kind == SyntaxKind::JSON_SCALAR_FN
23272    }
23273    #[inline]
23274    fn cast(syntax: SyntaxNode) -> Option<Self> {
23275        if Self::can_cast(syntax.kind()) {
23276            Some(Self { syntax })
23277        } else {
23278            None
23279        }
23280    }
23281    #[inline]
23282    fn syntax(&self) -> &SyntaxNode {
23283        &self.syntax
23284    }
23285}
23286impl AstNode for JsonSelectFormat {
23287    #[inline]
23288    fn can_cast(kind: SyntaxKind) -> bool {
23289        kind == SyntaxKind::JSON_SELECT_FORMAT
23290    }
23291    #[inline]
23292    fn cast(syntax: SyntaxNode) -> Option<Self> {
23293        if Self::can_cast(syntax.kind()) {
23294            Some(Self { syntax })
23295        } else {
23296            None
23297        }
23298    }
23299    #[inline]
23300    fn syntax(&self) -> &SyntaxNode {
23301        &self.syntax
23302    }
23303}
23304impl AstNode for JsonSerializeFn {
23305    #[inline]
23306    fn can_cast(kind: SyntaxKind) -> bool {
23307        kind == SyntaxKind::JSON_SERIALIZE_FN
23308    }
23309    #[inline]
23310    fn cast(syntax: SyntaxNode) -> Option<Self> {
23311        if Self::can_cast(syntax.kind()) {
23312            Some(Self { syntax })
23313        } else {
23314            None
23315        }
23316    }
23317    #[inline]
23318    fn syntax(&self) -> &SyntaxNode {
23319        &self.syntax
23320    }
23321}
23322impl AstNode for JsonTable {
23323    #[inline]
23324    fn can_cast(kind: SyntaxKind) -> bool {
23325        kind == SyntaxKind::JSON_TABLE
23326    }
23327    #[inline]
23328    fn cast(syntax: SyntaxNode) -> Option<Self> {
23329        if Self::can_cast(syntax.kind()) {
23330            Some(Self { syntax })
23331        } else {
23332            None
23333        }
23334    }
23335    #[inline]
23336    fn syntax(&self) -> &SyntaxNode {
23337        &self.syntax
23338    }
23339}
23340impl AstNode for JsonTableColumn {
23341    #[inline]
23342    fn can_cast(kind: SyntaxKind) -> bool {
23343        kind == SyntaxKind::JSON_TABLE_COLUMN
23344    }
23345    #[inline]
23346    fn cast(syntax: SyntaxNode) -> Option<Self> {
23347        if Self::can_cast(syntax.kind()) {
23348            Some(Self { syntax })
23349        } else {
23350            None
23351        }
23352    }
23353    #[inline]
23354    fn syntax(&self) -> &SyntaxNode {
23355        &self.syntax
23356    }
23357}
23358impl AstNode for JsonTableColumnList {
23359    #[inline]
23360    fn can_cast(kind: SyntaxKind) -> bool {
23361        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
23362    }
23363    #[inline]
23364    fn cast(syntax: SyntaxNode) -> Option<Self> {
23365        if Self::can_cast(syntax.kind()) {
23366            Some(Self { syntax })
23367        } else {
23368            None
23369        }
23370    }
23371    #[inline]
23372    fn syntax(&self) -> &SyntaxNode {
23373        &self.syntax
23374    }
23375}
23376impl AstNode for JsonValueExpr {
23377    #[inline]
23378    fn can_cast(kind: SyntaxKind) -> bool {
23379        kind == SyntaxKind::JSON_VALUE_EXPR
23380    }
23381    #[inline]
23382    fn cast(syntax: SyntaxNode) -> Option<Self> {
23383        if Self::can_cast(syntax.kind()) {
23384            Some(Self { syntax })
23385        } else {
23386            None
23387        }
23388    }
23389    #[inline]
23390    fn syntax(&self) -> &SyntaxNode {
23391        &self.syntax
23392    }
23393}
23394impl AstNode for JsonValueFn {
23395    #[inline]
23396    fn can_cast(kind: SyntaxKind) -> bool {
23397        kind == SyntaxKind::JSON_VALUE_FN
23398    }
23399    #[inline]
23400    fn cast(syntax: SyntaxNode) -> Option<Self> {
23401        if Self::can_cast(syntax.kind()) {
23402            Some(Self { syntax })
23403        } else {
23404            None
23405        }
23406    }
23407    #[inline]
23408    fn syntax(&self) -> &SyntaxNode {
23409        &self.syntax
23410    }
23411}
23412impl AstNode for JsonWrapperBehaviorClause {
23413    #[inline]
23414    fn can_cast(kind: SyntaxKind) -> bool {
23415        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
23416    }
23417    #[inline]
23418    fn cast(syntax: SyntaxNode) -> Option<Self> {
23419        if Self::can_cast(syntax.kind()) {
23420            Some(Self { syntax })
23421        } else {
23422            None
23423        }
23424    }
23425    #[inline]
23426    fn syntax(&self) -> &SyntaxNode {
23427        &self.syntax
23428    }
23429}
23430impl AstNode for LanguageFuncOption {
23431    #[inline]
23432    fn can_cast(kind: SyntaxKind) -> bool {
23433        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
23434    }
23435    #[inline]
23436    fn cast(syntax: SyntaxNode) -> Option<Self> {
23437        if Self::can_cast(syntax.kind()) {
23438            Some(Self { syntax })
23439        } else {
23440            None
23441        }
23442    }
23443    #[inline]
23444    fn syntax(&self) -> &SyntaxNode {
23445        &self.syntax
23446    }
23447}
23448impl AstNode for LeakproofFuncOption {
23449    #[inline]
23450    fn can_cast(kind: SyntaxKind) -> bool {
23451        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
23452    }
23453    #[inline]
23454    fn cast(syntax: SyntaxNode) -> Option<Self> {
23455        if Self::can_cast(syntax.kind()) {
23456            Some(Self { syntax })
23457        } else {
23458            None
23459        }
23460    }
23461    #[inline]
23462    fn syntax(&self) -> &SyntaxNode {
23463        &self.syntax
23464    }
23465}
23466impl AstNode for LikeClause {
23467    #[inline]
23468    fn can_cast(kind: SyntaxKind) -> bool {
23469        kind == SyntaxKind::LIKE_CLAUSE
23470    }
23471    #[inline]
23472    fn cast(syntax: SyntaxNode) -> Option<Self> {
23473        if Self::can_cast(syntax.kind()) {
23474            Some(Self { syntax })
23475        } else {
23476            None
23477        }
23478    }
23479    #[inline]
23480    fn syntax(&self) -> &SyntaxNode {
23481        &self.syntax
23482    }
23483}
23484impl AstNode for LikeOption {
23485    #[inline]
23486    fn can_cast(kind: SyntaxKind) -> bool {
23487        kind == SyntaxKind::LIKE_OPTION
23488    }
23489    #[inline]
23490    fn cast(syntax: SyntaxNode) -> Option<Self> {
23491        if Self::can_cast(syntax.kind()) {
23492            Some(Self { syntax })
23493        } else {
23494            None
23495        }
23496    }
23497    #[inline]
23498    fn syntax(&self) -> &SyntaxNode {
23499        &self.syntax
23500    }
23501}
23502impl AstNode for LimitClause {
23503    #[inline]
23504    fn can_cast(kind: SyntaxKind) -> bool {
23505        kind == SyntaxKind::LIMIT_CLAUSE
23506    }
23507    #[inline]
23508    fn cast(syntax: SyntaxNode) -> Option<Self> {
23509        if Self::can_cast(syntax.kind()) {
23510            Some(Self { syntax })
23511        } else {
23512            None
23513        }
23514    }
23515    #[inline]
23516    fn syntax(&self) -> &SyntaxNode {
23517        &self.syntax
23518    }
23519}
23520impl AstNode for LimitToTables {
23521    #[inline]
23522    fn can_cast(kind: SyntaxKind) -> bool {
23523        kind == SyntaxKind::LIMIT_TO_TABLES
23524    }
23525    #[inline]
23526    fn cast(syntax: SyntaxNode) -> Option<Self> {
23527        if Self::can_cast(syntax.kind()) {
23528            Some(Self { syntax })
23529        } else {
23530            None
23531        }
23532    }
23533    #[inline]
23534    fn syntax(&self) -> &SyntaxNode {
23535        &self.syntax
23536    }
23537}
23538impl AstNode for Listen {
23539    #[inline]
23540    fn can_cast(kind: SyntaxKind) -> bool {
23541        kind == SyntaxKind::LISTEN
23542    }
23543    #[inline]
23544    fn cast(syntax: SyntaxNode) -> Option<Self> {
23545        if Self::can_cast(syntax.kind()) {
23546            Some(Self { syntax })
23547        } else {
23548            None
23549        }
23550    }
23551    #[inline]
23552    fn syntax(&self) -> &SyntaxNode {
23553        &self.syntax
23554    }
23555}
23556impl AstNode for Literal {
23557    #[inline]
23558    fn can_cast(kind: SyntaxKind) -> bool {
23559        kind == SyntaxKind::LITERAL
23560    }
23561    #[inline]
23562    fn cast(syntax: SyntaxNode) -> Option<Self> {
23563        if Self::can_cast(syntax.kind()) {
23564            Some(Self { syntax })
23565        } else {
23566            None
23567        }
23568    }
23569    #[inline]
23570    fn syntax(&self) -> &SyntaxNode {
23571        &self.syntax
23572    }
23573}
23574impl AstNode for Load {
23575    #[inline]
23576    fn can_cast(kind: SyntaxKind) -> bool {
23577        kind == SyntaxKind::LOAD
23578    }
23579    #[inline]
23580    fn cast(syntax: SyntaxNode) -> Option<Self> {
23581        if Self::can_cast(syntax.kind()) {
23582            Some(Self { syntax })
23583        } else {
23584            None
23585        }
23586    }
23587    #[inline]
23588    fn syntax(&self) -> &SyntaxNode {
23589        &self.syntax
23590    }
23591}
23592impl AstNode for Lock {
23593    #[inline]
23594    fn can_cast(kind: SyntaxKind) -> bool {
23595        kind == SyntaxKind::LOCK
23596    }
23597    #[inline]
23598    fn cast(syntax: SyntaxNode) -> Option<Self> {
23599        if Self::can_cast(syntax.kind()) {
23600            Some(Self { syntax })
23601        } else {
23602            None
23603        }
23604    }
23605    #[inline]
23606    fn syntax(&self) -> &SyntaxNode {
23607        &self.syntax
23608    }
23609}
23610impl AstNode for LockingClause {
23611    #[inline]
23612    fn can_cast(kind: SyntaxKind) -> bool {
23613        kind == SyntaxKind::LOCKING_CLAUSE
23614    }
23615    #[inline]
23616    fn cast(syntax: SyntaxNode) -> Option<Self> {
23617        if Self::can_cast(syntax.kind()) {
23618            Some(Self { syntax })
23619        } else {
23620            None
23621        }
23622    }
23623    #[inline]
23624    fn syntax(&self) -> &SyntaxNode {
23625        &self.syntax
23626    }
23627}
23628impl AstNode for Lteq {
23629    #[inline]
23630    fn can_cast(kind: SyntaxKind) -> bool {
23631        kind == SyntaxKind::LTEQ
23632    }
23633    #[inline]
23634    fn cast(syntax: SyntaxNode) -> Option<Self> {
23635        if Self::can_cast(syntax.kind()) {
23636            Some(Self { syntax })
23637        } else {
23638            None
23639        }
23640    }
23641    #[inline]
23642    fn syntax(&self) -> &SyntaxNode {
23643        &self.syntax
23644    }
23645}
23646impl AstNode for MatchFull {
23647    #[inline]
23648    fn can_cast(kind: SyntaxKind) -> bool {
23649        kind == SyntaxKind::MATCH_FULL
23650    }
23651    #[inline]
23652    fn cast(syntax: SyntaxNode) -> Option<Self> {
23653        if Self::can_cast(syntax.kind()) {
23654            Some(Self { syntax })
23655        } else {
23656            None
23657        }
23658    }
23659    #[inline]
23660    fn syntax(&self) -> &SyntaxNode {
23661        &self.syntax
23662    }
23663}
23664impl AstNode for MatchPartial {
23665    #[inline]
23666    fn can_cast(kind: SyntaxKind) -> bool {
23667        kind == SyntaxKind::MATCH_PARTIAL
23668    }
23669    #[inline]
23670    fn cast(syntax: SyntaxNode) -> Option<Self> {
23671        if Self::can_cast(syntax.kind()) {
23672            Some(Self { syntax })
23673        } else {
23674            None
23675        }
23676    }
23677    #[inline]
23678    fn syntax(&self) -> &SyntaxNode {
23679        &self.syntax
23680    }
23681}
23682impl AstNode for MatchSimple {
23683    #[inline]
23684    fn can_cast(kind: SyntaxKind) -> bool {
23685        kind == SyntaxKind::MATCH_SIMPLE
23686    }
23687    #[inline]
23688    fn cast(syntax: SyntaxNode) -> Option<Self> {
23689        if Self::can_cast(syntax.kind()) {
23690            Some(Self { syntax })
23691        } else {
23692            None
23693        }
23694    }
23695    #[inline]
23696    fn syntax(&self) -> &SyntaxNode {
23697        &self.syntax
23698    }
23699}
23700impl AstNode for Materialized {
23701    #[inline]
23702    fn can_cast(kind: SyntaxKind) -> bool {
23703        kind == SyntaxKind::MATERIALIZED
23704    }
23705    #[inline]
23706    fn cast(syntax: SyntaxNode) -> Option<Self> {
23707        if Self::can_cast(syntax.kind()) {
23708            Some(Self { syntax })
23709        } else {
23710            None
23711        }
23712    }
23713    #[inline]
23714    fn syntax(&self) -> &SyntaxNode {
23715        &self.syntax
23716    }
23717}
23718impl AstNode for Merge {
23719    #[inline]
23720    fn can_cast(kind: SyntaxKind) -> bool {
23721        kind == SyntaxKind::MERGE
23722    }
23723    #[inline]
23724    fn cast(syntax: SyntaxNode) -> Option<Self> {
23725        if Self::can_cast(syntax.kind()) {
23726            Some(Self { syntax })
23727        } else {
23728            None
23729        }
23730    }
23731    #[inline]
23732    fn syntax(&self) -> &SyntaxNode {
23733        &self.syntax
23734    }
23735}
23736impl AstNode for MergeDelete {
23737    #[inline]
23738    fn can_cast(kind: SyntaxKind) -> bool {
23739        kind == SyntaxKind::MERGE_DELETE
23740    }
23741    #[inline]
23742    fn cast(syntax: SyntaxNode) -> Option<Self> {
23743        if Self::can_cast(syntax.kind()) {
23744            Some(Self { syntax })
23745        } else {
23746            None
23747        }
23748    }
23749    #[inline]
23750    fn syntax(&self) -> &SyntaxNode {
23751        &self.syntax
23752    }
23753}
23754impl AstNode for MergeDoNothing {
23755    #[inline]
23756    fn can_cast(kind: SyntaxKind) -> bool {
23757        kind == SyntaxKind::MERGE_DO_NOTHING
23758    }
23759    #[inline]
23760    fn cast(syntax: SyntaxNode) -> Option<Self> {
23761        if Self::can_cast(syntax.kind()) {
23762            Some(Self { syntax })
23763        } else {
23764            None
23765        }
23766    }
23767    #[inline]
23768    fn syntax(&self) -> &SyntaxNode {
23769        &self.syntax
23770    }
23771}
23772impl AstNode for MergeInsert {
23773    #[inline]
23774    fn can_cast(kind: SyntaxKind) -> bool {
23775        kind == SyntaxKind::MERGE_INSERT
23776    }
23777    #[inline]
23778    fn cast(syntax: SyntaxNode) -> Option<Self> {
23779        if Self::can_cast(syntax.kind()) {
23780            Some(Self { syntax })
23781        } else {
23782            None
23783        }
23784    }
23785    #[inline]
23786    fn syntax(&self) -> &SyntaxNode {
23787        &self.syntax
23788    }
23789}
23790impl AstNode for MergePartitions {
23791    #[inline]
23792    fn can_cast(kind: SyntaxKind) -> bool {
23793        kind == SyntaxKind::MERGE_PARTITIONS
23794    }
23795    #[inline]
23796    fn cast(syntax: SyntaxNode) -> Option<Self> {
23797        if Self::can_cast(syntax.kind()) {
23798            Some(Self { syntax })
23799        } else {
23800            None
23801        }
23802    }
23803    #[inline]
23804    fn syntax(&self) -> &SyntaxNode {
23805        &self.syntax
23806    }
23807}
23808impl AstNode for MergeUpdate {
23809    #[inline]
23810    fn can_cast(kind: SyntaxKind) -> bool {
23811        kind == SyntaxKind::MERGE_UPDATE
23812    }
23813    #[inline]
23814    fn cast(syntax: SyntaxNode) -> Option<Self> {
23815        if Self::can_cast(syntax.kind()) {
23816            Some(Self { syntax })
23817        } else {
23818            None
23819        }
23820    }
23821    #[inline]
23822    fn syntax(&self) -> &SyntaxNode {
23823        &self.syntax
23824    }
23825}
23826impl AstNode for MergeWhenMatched {
23827    #[inline]
23828    fn can_cast(kind: SyntaxKind) -> bool {
23829        kind == SyntaxKind::MERGE_WHEN_MATCHED
23830    }
23831    #[inline]
23832    fn cast(syntax: SyntaxNode) -> Option<Self> {
23833        if Self::can_cast(syntax.kind()) {
23834            Some(Self { syntax })
23835        } else {
23836            None
23837        }
23838    }
23839    #[inline]
23840    fn syntax(&self) -> &SyntaxNode {
23841        &self.syntax
23842    }
23843}
23844impl AstNode for MergeWhenNotMatchedSource {
23845    #[inline]
23846    fn can_cast(kind: SyntaxKind) -> bool {
23847        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23848    }
23849    #[inline]
23850    fn cast(syntax: SyntaxNode) -> Option<Self> {
23851        if Self::can_cast(syntax.kind()) {
23852            Some(Self { syntax })
23853        } else {
23854            None
23855        }
23856    }
23857    #[inline]
23858    fn syntax(&self) -> &SyntaxNode {
23859        &self.syntax
23860    }
23861}
23862impl AstNode for MergeWhenNotMatchedTarget {
23863    #[inline]
23864    fn can_cast(kind: SyntaxKind) -> bool {
23865        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23866    }
23867    #[inline]
23868    fn cast(syntax: SyntaxNode) -> Option<Self> {
23869        if Self::can_cast(syntax.kind()) {
23870            Some(Self { syntax })
23871        } else {
23872            None
23873        }
23874    }
23875    #[inline]
23876    fn syntax(&self) -> &SyntaxNode {
23877        &self.syntax
23878    }
23879}
23880impl AstNode for Move {
23881    #[inline]
23882    fn can_cast(kind: SyntaxKind) -> bool {
23883        kind == SyntaxKind::MOVE
23884    }
23885    #[inline]
23886    fn cast(syntax: SyntaxNode) -> Option<Self> {
23887        if Self::can_cast(syntax.kind()) {
23888            Some(Self { syntax })
23889        } else {
23890            None
23891        }
23892    }
23893    #[inline]
23894    fn syntax(&self) -> &SyntaxNode {
23895        &self.syntax
23896    }
23897}
23898impl AstNode for Name {
23899    #[inline]
23900    fn can_cast(kind: SyntaxKind) -> bool {
23901        kind == SyntaxKind::NAME
23902    }
23903    #[inline]
23904    fn cast(syntax: SyntaxNode) -> Option<Self> {
23905        if Self::can_cast(syntax.kind()) {
23906            Some(Self { syntax })
23907        } else {
23908            None
23909        }
23910    }
23911    #[inline]
23912    fn syntax(&self) -> &SyntaxNode {
23913        &self.syntax
23914    }
23915}
23916impl AstNode for NameRef {
23917    #[inline]
23918    fn can_cast(kind: SyntaxKind) -> bool {
23919        kind == SyntaxKind::NAME_REF
23920    }
23921    #[inline]
23922    fn cast(syntax: SyntaxNode) -> Option<Self> {
23923        if Self::can_cast(syntax.kind()) {
23924            Some(Self { syntax })
23925        } else {
23926            None
23927        }
23928    }
23929    #[inline]
23930    fn syntax(&self) -> &SyntaxNode {
23931        &self.syntax
23932    }
23933}
23934impl AstNode for NamedArg {
23935    #[inline]
23936    fn can_cast(kind: SyntaxKind) -> bool {
23937        kind == SyntaxKind::NAMED_ARG
23938    }
23939    #[inline]
23940    fn cast(syntax: SyntaxNode) -> Option<Self> {
23941        if Self::can_cast(syntax.kind()) {
23942            Some(Self { syntax })
23943        } else {
23944            None
23945        }
23946    }
23947    #[inline]
23948    fn syntax(&self) -> &SyntaxNode {
23949        &self.syntax
23950    }
23951}
23952impl AstNode for Neq {
23953    #[inline]
23954    fn can_cast(kind: SyntaxKind) -> bool {
23955        kind == SyntaxKind::NEQ
23956    }
23957    #[inline]
23958    fn cast(syntax: SyntaxNode) -> Option<Self> {
23959        if Self::can_cast(syntax.kind()) {
23960            Some(Self { syntax })
23961        } else {
23962            None
23963        }
23964    }
23965    #[inline]
23966    fn syntax(&self) -> &SyntaxNode {
23967        &self.syntax
23968    }
23969}
23970impl AstNode for Neqb {
23971    #[inline]
23972    fn can_cast(kind: SyntaxKind) -> bool {
23973        kind == SyntaxKind::NEQB
23974    }
23975    #[inline]
23976    fn cast(syntax: SyntaxNode) -> Option<Self> {
23977        if Self::can_cast(syntax.kind()) {
23978            Some(Self { syntax })
23979        } else {
23980            None
23981        }
23982    }
23983    #[inline]
23984    fn syntax(&self) -> &SyntaxNode {
23985        &self.syntax
23986    }
23987}
23988impl AstNode for NoAction {
23989    #[inline]
23990    fn can_cast(kind: SyntaxKind) -> bool {
23991        kind == SyntaxKind::NO_ACTION
23992    }
23993    #[inline]
23994    fn cast(syntax: SyntaxNode) -> Option<Self> {
23995        if Self::can_cast(syntax.kind()) {
23996            Some(Self { syntax })
23997        } else {
23998            None
23999        }
24000    }
24001    #[inline]
24002    fn syntax(&self) -> &SyntaxNode {
24003        &self.syntax
24004    }
24005}
24006impl AstNode for NoDependsOnExtension {
24007    #[inline]
24008    fn can_cast(kind: SyntaxKind) -> bool {
24009        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
24010    }
24011    #[inline]
24012    fn cast(syntax: SyntaxNode) -> Option<Self> {
24013        if Self::can_cast(syntax.kind()) {
24014            Some(Self { syntax })
24015        } else {
24016            None
24017        }
24018    }
24019    #[inline]
24020    fn syntax(&self) -> &SyntaxNode {
24021        &self.syntax
24022    }
24023}
24024impl AstNode for NoForceRls {
24025    #[inline]
24026    fn can_cast(kind: SyntaxKind) -> bool {
24027        kind == SyntaxKind::NO_FORCE_RLS
24028    }
24029    #[inline]
24030    fn cast(syntax: SyntaxNode) -> Option<Self> {
24031        if Self::can_cast(syntax.kind()) {
24032            Some(Self { syntax })
24033        } else {
24034            None
24035        }
24036    }
24037    #[inline]
24038    fn syntax(&self) -> &SyntaxNode {
24039        &self.syntax
24040    }
24041}
24042impl AstNode for NoInherit {
24043    #[inline]
24044    fn can_cast(kind: SyntaxKind) -> bool {
24045        kind == SyntaxKind::NO_INHERIT
24046    }
24047    #[inline]
24048    fn cast(syntax: SyntaxNode) -> Option<Self> {
24049        if Self::can_cast(syntax.kind()) {
24050            Some(Self { syntax })
24051        } else {
24052            None
24053        }
24054    }
24055    #[inline]
24056    fn syntax(&self) -> &SyntaxNode {
24057        &self.syntax
24058    }
24059}
24060impl AstNode for NoInheritTable {
24061    #[inline]
24062    fn can_cast(kind: SyntaxKind) -> bool {
24063        kind == SyntaxKind::NO_INHERIT_TABLE
24064    }
24065    #[inline]
24066    fn cast(syntax: SyntaxNode) -> Option<Self> {
24067        if Self::can_cast(syntax.kind()) {
24068            Some(Self { syntax })
24069        } else {
24070            None
24071        }
24072    }
24073    #[inline]
24074    fn syntax(&self) -> &SyntaxNode {
24075        &self.syntax
24076    }
24077}
24078impl AstNode for NonStandardParam {
24079    #[inline]
24080    fn can_cast(kind: SyntaxKind) -> bool {
24081        kind == SyntaxKind::NON_STANDARD_PARAM
24082    }
24083    #[inline]
24084    fn cast(syntax: SyntaxNode) -> Option<Self> {
24085        if Self::can_cast(syntax.kind()) {
24086            Some(Self { syntax })
24087        } else {
24088            None
24089        }
24090    }
24091    #[inline]
24092    fn syntax(&self) -> &SyntaxNode {
24093        &self.syntax
24094    }
24095}
24096impl AstNode for NotDeferrable {
24097    #[inline]
24098    fn can_cast(kind: SyntaxKind) -> bool {
24099        kind == SyntaxKind::NOT_DEFERRABLE
24100    }
24101    #[inline]
24102    fn cast(syntax: SyntaxNode) -> Option<Self> {
24103        if Self::can_cast(syntax.kind()) {
24104            Some(Self { syntax })
24105        } else {
24106            None
24107        }
24108    }
24109    #[inline]
24110    fn syntax(&self) -> &SyntaxNode {
24111        &self.syntax
24112    }
24113}
24114impl AstNode for NotDeferrableConstraintOption {
24115    #[inline]
24116    fn can_cast(kind: SyntaxKind) -> bool {
24117        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
24118    }
24119    #[inline]
24120    fn cast(syntax: SyntaxNode) -> Option<Self> {
24121        if Self::can_cast(syntax.kind()) {
24122            Some(Self { syntax })
24123        } else {
24124            None
24125        }
24126    }
24127    #[inline]
24128    fn syntax(&self) -> &SyntaxNode {
24129        &self.syntax
24130    }
24131}
24132impl AstNode for NotEnforced {
24133    #[inline]
24134    fn can_cast(kind: SyntaxKind) -> bool {
24135        kind == SyntaxKind::NOT_ENFORCED
24136    }
24137    #[inline]
24138    fn cast(syntax: SyntaxNode) -> Option<Self> {
24139        if Self::can_cast(syntax.kind()) {
24140            Some(Self { syntax })
24141        } else {
24142            None
24143        }
24144    }
24145    #[inline]
24146    fn syntax(&self) -> &SyntaxNode {
24147        &self.syntax
24148    }
24149}
24150impl AstNode for NotIlike {
24151    #[inline]
24152    fn can_cast(kind: SyntaxKind) -> bool {
24153        kind == SyntaxKind::NOT_ILIKE
24154    }
24155    #[inline]
24156    fn cast(syntax: SyntaxNode) -> Option<Self> {
24157        if Self::can_cast(syntax.kind()) {
24158            Some(Self { syntax })
24159        } else {
24160            None
24161        }
24162    }
24163    #[inline]
24164    fn syntax(&self) -> &SyntaxNode {
24165        &self.syntax
24166    }
24167}
24168impl AstNode for NotIn {
24169    #[inline]
24170    fn can_cast(kind: SyntaxKind) -> bool {
24171        kind == SyntaxKind::NOT_IN
24172    }
24173    #[inline]
24174    fn cast(syntax: SyntaxNode) -> Option<Self> {
24175        if Self::can_cast(syntax.kind()) {
24176            Some(Self { syntax })
24177        } else {
24178            None
24179        }
24180    }
24181    #[inline]
24182    fn syntax(&self) -> &SyntaxNode {
24183        &self.syntax
24184    }
24185}
24186impl AstNode for NotLike {
24187    #[inline]
24188    fn can_cast(kind: SyntaxKind) -> bool {
24189        kind == SyntaxKind::NOT_LIKE
24190    }
24191    #[inline]
24192    fn cast(syntax: SyntaxNode) -> Option<Self> {
24193        if Self::can_cast(syntax.kind()) {
24194            Some(Self { syntax })
24195        } else {
24196            None
24197        }
24198    }
24199    #[inline]
24200    fn syntax(&self) -> &SyntaxNode {
24201        &self.syntax
24202    }
24203}
24204impl AstNode for NotMaterialized {
24205    #[inline]
24206    fn can_cast(kind: SyntaxKind) -> bool {
24207        kind == SyntaxKind::NOT_MATERIALIZED
24208    }
24209    #[inline]
24210    fn cast(syntax: SyntaxNode) -> Option<Self> {
24211        if Self::can_cast(syntax.kind()) {
24212            Some(Self { syntax })
24213        } else {
24214            None
24215        }
24216    }
24217    #[inline]
24218    fn syntax(&self) -> &SyntaxNode {
24219        &self.syntax
24220    }
24221}
24222impl AstNode for NotNullConstraint {
24223    #[inline]
24224    fn can_cast(kind: SyntaxKind) -> bool {
24225        kind == SyntaxKind::NOT_NULL_CONSTRAINT
24226    }
24227    #[inline]
24228    fn cast(syntax: SyntaxNode) -> Option<Self> {
24229        if Self::can_cast(syntax.kind()) {
24230            Some(Self { syntax })
24231        } else {
24232            None
24233        }
24234    }
24235    #[inline]
24236    fn syntax(&self) -> &SyntaxNode {
24237        &self.syntax
24238    }
24239}
24240impl AstNode for NotOf {
24241    #[inline]
24242    fn can_cast(kind: SyntaxKind) -> bool {
24243        kind == SyntaxKind::NOT_OF
24244    }
24245    #[inline]
24246    fn cast(syntax: SyntaxNode) -> Option<Self> {
24247        if Self::can_cast(syntax.kind()) {
24248            Some(Self { syntax })
24249        } else {
24250            None
24251        }
24252    }
24253    #[inline]
24254    fn syntax(&self) -> &SyntaxNode {
24255        &self.syntax
24256    }
24257}
24258impl AstNode for NotSimilarTo {
24259    #[inline]
24260    fn can_cast(kind: SyntaxKind) -> bool {
24261        kind == SyntaxKind::NOT_SIMILAR_TO
24262    }
24263    #[inline]
24264    fn cast(syntax: SyntaxNode) -> Option<Self> {
24265        if Self::can_cast(syntax.kind()) {
24266            Some(Self { syntax })
24267        } else {
24268            None
24269        }
24270    }
24271    #[inline]
24272    fn syntax(&self) -> &SyntaxNode {
24273        &self.syntax
24274    }
24275}
24276impl AstNode for NotValid {
24277    #[inline]
24278    fn can_cast(kind: SyntaxKind) -> bool {
24279        kind == SyntaxKind::NOT_VALID
24280    }
24281    #[inline]
24282    fn cast(syntax: SyntaxNode) -> Option<Self> {
24283        if Self::can_cast(syntax.kind()) {
24284            Some(Self { syntax })
24285        } else {
24286            None
24287        }
24288    }
24289    #[inline]
24290    fn syntax(&self) -> &SyntaxNode {
24291        &self.syntax
24292    }
24293}
24294impl AstNode for Notify {
24295    #[inline]
24296    fn can_cast(kind: SyntaxKind) -> bool {
24297        kind == SyntaxKind::NOTIFY
24298    }
24299    #[inline]
24300    fn cast(syntax: SyntaxNode) -> Option<Self> {
24301        if Self::can_cast(syntax.kind()) {
24302            Some(Self { syntax })
24303        } else {
24304            None
24305        }
24306    }
24307    #[inline]
24308    fn syntax(&self) -> &SyntaxNode {
24309        &self.syntax
24310    }
24311}
24312impl AstNode for NullConstraint {
24313    #[inline]
24314    fn can_cast(kind: SyntaxKind) -> bool {
24315        kind == SyntaxKind::NULL_CONSTRAINT
24316    }
24317    #[inline]
24318    fn cast(syntax: SyntaxNode) -> Option<Self> {
24319        if Self::can_cast(syntax.kind()) {
24320            Some(Self { syntax })
24321        } else {
24322            None
24323        }
24324    }
24325    #[inline]
24326    fn syntax(&self) -> &SyntaxNode {
24327        &self.syntax
24328    }
24329}
24330impl AstNode for NullsDistinct {
24331    #[inline]
24332    fn can_cast(kind: SyntaxKind) -> bool {
24333        kind == SyntaxKind::NULLS_DISTINCT
24334    }
24335    #[inline]
24336    fn cast(syntax: SyntaxNode) -> Option<Self> {
24337        if Self::can_cast(syntax.kind()) {
24338            Some(Self { syntax })
24339        } else {
24340            None
24341        }
24342    }
24343    #[inline]
24344    fn syntax(&self) -> &SyntaxNode {
24345        &self.syntax
24346    }
24347}
24348impl AstNode for NullsFirst {
24349    #[inline]
24350    fn can_cast(kind: SyntaxKind) -> bool {
24351        kind == SyntaxKind::NULLS_FIRST
24352    }
24353    #[inline]
24354    fn cast(syntax: SyntaxNode) -> Option<Self> {
24355        if Self::can_cast(syntax.kind()) {
24356            Some(Self { syntax })
24357        } else {
24358            None
24359        }
24360    }
24361    #[inline]
24362    fn syntax(&self) -> &SyntaxNode {
24363        &self.syntax
24364    }
24365}
24366impl AstNode for NullsLast {
24367    #[inline]
24368    fn can_cast(kind: SyntaxKind) -> bool {
24369        kind == SyntaxKind::NULLS_LAST
24370    }
24371    #[inline]
24372    fn cast(syntax: SyntaxNode) -> Option<Self> {
24373        if Self::can_cast(syntax.kind()) {
24374            Some(Self { syntax })
24375        } else {
24376            None
24377        }
24378    }
24379    #[inline]
24380    fn syntax(&self) -> &SyntaxNode {
24381        &self.syntax
24382    }
24383}
24384impl AstNode for NullsNotDistinct {
24385    #[inline]
24386    fn can_cast(kind: SyntaxKind) -> bool {
24387        kind == SyntaxKind::NULLS_NOT_DISTINCT
24388    }
24389    #[inline]
24390    fn cast(syntax: SyntaxNode) -> Option<Self> {
24391        if Self::can_cast(syntax.kind()) {
24392            Some(Self { syntax })
24393        } else {
24394            None
24395        }
24396    }
24397    #[inline]
24398    fn syntax(&self) -> &SyntaxNode {
24399        &self.syntax
24400    }
24401}
24402impl AstNode for OfType {
24403    #[inline]
24404    fn can_cast(kind: SyntaxKind) -> bool {
24405        kind == SyntaxKind::OF_TYPE
24406    }
24407    #[inline]
24408    fn cast(syntax: SyntaxNode) -> Option<Self> {
24409        if Self::can_cast(syntax.kind()) {
24410            Some(Self { syntax })
24411        } else {
24412            None
24413        }
24414    }
24415    #[inline]
24416    fn syntax(&self) -> &SyntaxNode {
24417        &self.syntax
24418    }
24419}
24420impl AstNode for OffsetClause {
24421    #[inline]
24422    fn can_cast(kind: SyntaxKind) -> bool {
24423        kind == SyntaxKind::OFFSET_CLAUSE
24424    }
24425    #[inline]
24426    fn cast(syntax: SyntaxNode) -> Option<Self> {
24427        if Self::can_cast(syntax.kind()) {
24428            Some(Self { syntax })
24429        } else {
24430            None
24431        }
24432    }
24433    #[inline]
24434    fn syntax(&self) -> &SyntaxNode {
24435        &self.syntax
24436    }
24437}
24438impl AstNode for OnClause {
24439    #[inline]
24440    fn can_cast(kind: SyntaxKind) -> bool {
24441        kind == SyntaxKind::ON_CLAUSE
24442    }
24443    #[inline]
24444    fn cast(syntax: SyntaxNode) -> Option<Self> {
24445        if Self::can_cast(syntax.kind()) {
24446            Some(Self { syntax })
24447        } else {
24448            None
24449        }
24450    }
24451    #[inline]
24452    fn syntax(&self) -> &SyntaxNode {
24453        &self.syntax
24454    }
24455}
24456impl AstNode for OnCommit {
24457    #[inline]
24458    fn can_cast(kind: SyntaxKind) -> bool {
24459        kind == SyntaxKind::ON_COMMIT
24460    }
24461    #[inline]
24462    fn cast(syntax: SyntaxNode) -> Option<Self> {
24463        if Self::can_cast(syntax.kind()) {
24464            Some(Self { syntax })
24465        } else {
24466            None
24467        }
24468    }
24469    #[inline]
24470    fn syntax(&self) -> &SyntaxNode {
24471        &self.syntax
24472    }
24473}
24474impl AstNode for OnConflictClause {
24475    #[inline]
24476    fn can_cast(kind: SyntaxKind) -> bool {
24477        kind == SyntaxKind::ON_CONFLICT_CLAUSE
24478    }
24479    #[inline]
24480    fn cast(syntax: SyntaxNode) -> Option<Self> {
24481        if Self::can_cast(syntax.kind()) {
24482            Some(Self { syntax })
24483        } else {
24484            None
24485        }
24486    }
24487    #[inline]
24488    fn syntax(&self) -> &SyntaxNode {
24489        &self.syntax
24490    }
24491}
24492impl AstNode for OnDeleteAction {
24493    #[inline]
24494    fn can_cast(kind: SyntaxKind) -> bool {
24495        kind == SyntaxKind::ON_DELETE_ACTION
24496    }
24497    #[inline]
24498    fn cast(syntax: SyntaxNode) -> Option<Self> {
24499        if Self::can_cast(syntax.kind()) {
24500            Some(Self { syntax })
24501        } else {
24502            None
24503        }
24504    }
24505    #[inline]
24506    fn syntax(&self) -> &SyntaxNode {
24507        &self.syntax
24508    }
24509}
24510impl AstNode for OnTable {
24511    #[inline]
24512    fn can_cast(kind: SyntaxKind) -> bool {
24513        kind == SyntaxKind::ON_TABLE
24514    }
24515    #[inline]
24516    fn cast(syntax: SyntaxNode) -> Option<Self> {
24517        if Self::can_cast(syntax.kind()) {
24518            Some(Self { syntax })
24519        } else {
24520            None
24521        }
24522    }
24523    #[inline]
24524    fn syntax(&self) -> &SyntaxNode {
24525        &self.syntax
24526    }
24527}
24528impl AstNode for OnUpdateAction {
24529    #[inline]
24530    fn can_cast(kind: SyntaxKind) -> bool {
24531        kind == SyntaxKind::ON_UPDATE_ACTION
24532    }
24533    #[inline]
24534    fn cast(syntax: SyntaxNode) -> Option<Self> {
24535        if Self::can_cast(syntax.kind()) {
24536            Some(Self { syntax })
24537        } else {
24538            None
24539        }
24540    }
24541    #[inline]
24542    fn syntax(&self) -> &SyntaxNode {
24543        &self.syntax
24544    }
24545}
24546impl AstNode for Op {
24547    #[inline]
24548    fn can_cast(kind: SyntaxKind) -> bool {
24549        kind == SyntaxKind::OP
24550    }
24551    #[inline]
24552    fn cast(syntax: SyntaxNode) -> Option<Self> {
24553        if Self::can_cast(syntax.kind()) {
24554            Some(Self { syntax })
24555        } else {
24556            None
24557        }
24558    }
24559    #[inline]
24560    fn syntax(&self) -> &SyntaxNode {
24561        &self.syntax
24562    }
24563}
24564impl AstNode for OpClassOption {
24565    #[inline]
24566    fn can_cast(kind: SyntaxKind) -> bool {
24567        kind == SyntaxKind::OP_CLASS_OPTION
24568    }
24569    #[inline]
24570    fn cast(syntax: SyntaxNode) -> Option<Self> {
24571        if Self::can_cast(syntax.kind()) {
24572            Some(Self { syntax })
24573        } else {
24574            None
24575        }
24576    }
24577    #[inline]
24578    fn syntax(&self) -> &SyntaxNode {
24579        &self.syntax
24580    }
24581}
24582impl AstNode for OpSig {
24583    #[inline]
24584    fn can_cast(kind: SyntaxKind) -> bool {
24585        kind == SyntaxKind::OP_SIG
24586    }
24587    #[inline]
24588    fn cast(syntax: SyntaxNode) -> Option<Self> {
24589        if Self::can_cast(syntax.kind()) {
24590            Some(Self { syntax })
24591        } else {
24592            None
24593        }
24594    }
24595    #[inline]
24596    fn syntax(&self) -> &SyntaxNode {
24597        &self.syntax
24598    }
24599}
24600impl AstNode for OpSigList {
24601    #[inline]
24602    fn can_cast(kind: SyntaxKind) -> bool {
24603        kind == SyntaxKind::OP_SIG_LIST
24604    }
24605    #[inline]
24606    fn cast(syntax: SyntaxNode) -> Option<Self> {
24607        if Self::can_cast(syntax.kind()) {
24608            Some(Self { syntax })
24609        } else {
24610            None
24611        }
24612    }
24613    #[inline]
24614    fn syntax(&self) -> &SyntaxNode {
24615        &self.syntax
24616    }
24617}
24618impl AstNode for OperatorCall {
24619    #[inline]
24620    fn can_cast(kind: SyntaxKind) -> bool {
24621        kind == SyntaxKind::OPERATOR_CALL
24622    }
24623    #[inline]
24624    fn cast(syntax: SyntaxNode) -> Option<Self> {
24625        if Self::can_cast(syntax.kind()) {
24626            Some(Self { syntax })
24627        } else {
24628            None
24629        }
24630    }
24631    #[inline]
24632    fn syntax(&self) -> &SyntaxNode {
24633        &self.syntax
24634    }
24635}
24636impl AstNode for OperatorClassOptionList {
24637    #[inline]
24638    fn can_cast(kind: SyntaxKind) -> bool {
24639        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
24640    }
24641    #[inline]
24642    fn cast(syntax: SyntaxNode) -> Option<Self> {
24643        if Self::can_cast(syntax.kind()) {
24644            Some(Self { syntax })
24645        } else {
24646            None
24647        }
24648    }
24649    #[inline]
24650    fn syntax(&self) -> &SyntaxNode {
24651        &self.syntax
24652    }
24653}
24654impl AstNode for OptionItem {
24655    #[inline]
24656    fn can_cast(kind: SyntaxKind) -> bool {
24657        kind == SyntaxKind::OPTION_ITEM
24658    }
24659    #[inline]
24660    fn cast(syntax: SyntaxNode) -> Option<Self> {
24661        if Self::can_cast(syntax.kind()) {
24662            Some(Self { syntax })
24663        } else {
24664            None
24665        }
24666    }
24667    #[inline]
24668    fn syntax(&self) -> &SyntaxNode {
24669        &self.syntax
24670    }
24671}
24672impl AstNode for OptionItemList {
24673    #[inline]
24674    fn can_cast(kind: SyntaxKind) -> bool {
24675        kind == SyntaxKind::OPTION_ITEM_LIST
24676    }
24677    #[inline]
24678    fn cast(syntax: SyntaxNode) -> Option<Self> {
24679        if Self::can_cast(syntax.kind()) {
24680            Some(Self { syntax })
24681        } else {
24682            None
24683        }
24684    }
24685    #[inline]
24686    fn syntax(&self) -> &SyntaxNode {
24687        &self.syntax
24688    }
24689}
24690impl AstNode for OrReplace {
24691    #[inline]
24692    fn can_cast(kind: SyntaxKind) -> bool {
24693        kind == SyntaxKind::OR_REPLACE
24694    }
24695    #[inline]
24696    fn cast(syntax: SyntaxNode) -> Option<Self> {
24697        if Self::can_cast(syntax.kind()) {
24698            Some(Self { syntax })
24699        } else {
24700            None
24701        }
24702    }
24703    #[inline]
24704    fn syntax(&self) -> &SyntaxNode {
24705        &self.syntax
24706    }
24707}
24708impl AstNode for OrderByClause {
24709    #[inline]
24710    fn can_cast(kind: SyntaxKind) -> bool {
24711        kind == SyntaxKind::ORDER_BY_CLAUSE
24712    }
24713    #[inline]
24714    fn cast(syntax: SyntaxNode) -> Option<Self> {
24715        if Self::can_cast(syntax.kind()) {
24716            Some(Self { syntax })
24717        } else {
24718            None
24719        }
24720    }
24721    #[inline]
24722    fn syntax(&self) -> &SyntaxNode {
24723        &self.syntax
24724    }
24725}
24726impl AstNode for OverClause {
24727    #[inline]
24728    fn can_cast(kind: SyntaxKind) -> bool {
24729        kind == SyntaxKind::OVER_CLAUSE
24730    }
24731    #[inline]
24732    fn cast(syntax: SyntaxNode) -> Option<Self> {
24733        if Self::can_cast(syntax.kind()) {
24734            Some(Self { syntax })
24735        } else {
24736            None
24737        }
24738    }
24739    #[inline]
24740    fn syntax(&self) -> &SyntaxNode {
24741        &self.syntax
24742    }
24743}
24744impl AstNode for OverlayFn {
24745    #[inline]
24746    fn can_cast(kind: SyntaxKind) -> bool {
24747        kind == SyntaxKind::OVERLAY_FN
24748    }
24749    #[inline]
24750    fn cast(syntax: SyntaxNode) -> Option<Self> {
24751        if Self::can_cast(syntax.kind()) {
24752            Some(Self { syntax })
24753        } else {
24754            None
24755        }
24756    }
24757    #[inline]
24758    fn syntax(&self) -> &SyntaxNode {
24759        &self.syntax
24760    }
24761}
24762impl AstNode for OwnedByRoles {
24763    #[inline]
24764    fn can_cast(kind: SyntaxKind) -> bool {
24765        kind == SyntaxKind::OWNED_BY_ROLES
24766    }
24767    #[inline]
24768    fn cast(syntax: SyntaxNode) -> Option<Self> {
24769        if Self::can_cast(syntax.kind()) {
24770            Some(Self { syntax })
24771        } else {
24772            None
24773        }
24774    }
24775    #[inline]
24776    fn syntax(&self) -> &SyntaxNode {
24777        &self.syntax
24778    }
24779}
24780impl AstNode for OwnerTo {
24781    #[inline]
24782    fn can_cast(kind: SyntaxKind) -> bool {
24783        kind == SyntaxKind::OWNER_TO
24784    }
24785    #[inline]
24786    fn cast(syntax: SyntaxNode) -> Option<Self> {
24787        if Self::can_cast(syntax.kind()) {
24788            Some(Self { syntax })
24789        } else {
24790            None
24791        }
24792    }
24793    #[inline]
24794    fn syntax(&self) -> &SyntaxNode {
24795        &self.syntax
24796    }
24797}
24798impl AstNode for ParallelFuncOption {
24799    #[inline]
24800    fn can_cast(kind: SyntaxKind) -> bool {
24801        kind == SyntaxKind::PARALLEL_FUNC_OPTION
24802    }
24803    #[inline]
24804    fn cast(syntax: SyntaxNode) -> Option<Self> {
24805        if Self::can_cast(syntax.kind()) {
24806            Some(Self { syntax })
24807        } else {
24808            None
24809        }
24810    }
24811    #[inline]
24812    fn syntax(&self) -> &SyntaxNode {
24813        &self.syntax
24814    }
24815}
24816impl AstNode for Param {
24817    #[inline]
24818    fn can_cast(kind: SyntaxKind) -> bool {
24819        kind == SyntaxKind::PARAM
24820    }
24821    #[inline]
24822    fn cast(syntax: SyntaxNode) -> Option<Self> {
24823        if Self::can_cast(syntax.kind()) {
24824            Some(Self { syntax })
24825        } else {
24826            None
24827        }
24828    }
24829    #[inline]
24830    fn syntax(&self) -> &SyntaxNode {
24831        &self.syntax
24832    }
24833}
24834impl AstNode for ParamDefault {
24835    #[inline]
24836    fn can_cast(kind: SyntaxKind) -> bool {
24837        kind == SyntaxKind::PARAM_DEFAULT
24838    }
24839    #[inline]
24840    fn cast(syntax: SyntaxNode) -> Option<Self> {
24841        if Self::can_cast(syntax.kind()) {
24842            Some(Self { syntax })
24843        } else {
24844            None
24845        }
24846    }
24847    #[inline]
24848    fn syntax(&self) -> &SyntaxNode {
24849        &self.syntax
24850    }
24851}
24852impl AstNode for ParamIn {
24853    #[inline]
24854    fn can_cast(kind: SyntaxKind) -> bool {
24855        kind == SyntaxKind::PARAM_IN
24856    }
24857    #[inline]
24858    fn cast(syntax: SyntaxNode) -> Option<Self> {
24859        if Self::can_cast(syntax.kind()) {
24860            Some(Self { syntax })
24861        } else {
24862            None
24863        }
24864    }
24865    #[inline]
24866    fn syntax(&self) -> &SyntaxNode {
24867        &self.syntax
24868    }
24869}
24870impl AstNode for ParamInOut {
24871    #[inline]
24872    fn can_cast(kind: SyntaxKind) -> bool {
24873        kind == SyntaxKind::PARAM_IN_OUT
24874    }
24875    #[inline]
24876    fn cast(syntax: SyntaxNode) -> Option<Self> {
24877        if Self::can_cast(syntax.kind()) {
24878            Some(Self { syntax })
24879        } else {
24880            None
24881        }
24882    }
24883    #[inline]
24884    fn syntax(&self) -> &SyntaxNode {
24885        &self.syntax
24886    }
24887}
24888impl AstNode for ParamList {
24889    #[inline]
24890    fn can_cast(kind: SyntaxKind) -> bool {
24891        kind == SyntaxKind::PARAM_LIST
24892    }
24893    #[inline]
24894    fn cast(syntax: SyntaxNode) -> Option<Self> {
24895        if Self::can_cast(syntax.kind()) {
24896            Some(Self { syntax })
24897        } else {
24898            None
24899        }
24900    }
24901    #[inline]
24902    fn syntax(&self) -> &SyntaxNode {
24903        &self.syntax
24904    }
24905}
24906impl AstNode for ParamOut {
24907    #[inline]
24908    fn can_cast(kind: SyntaxKind) -> bool {
24909        kind == SyntaxKind::PARAM_OUT
24910    }
24911    #[inline]
24912    fn cast(syntax: SyntaxNode) -> Option<Self> {
24913        if Self::can_cast(syntax.kind()) {
24914            Some(Self { syntax })
24915        } else {
24916            None
24917        }
24918    }
24919    #[inline]
24920    fn syntax(&self) -> &SyntaxNode {
24921        &self.syntax
24922    }
24923}
24924impl AstNode for ParamVariadic {
24925    #[inline]
24926    fn can_cast(kind: SyntaxKind) -> bool {
24927        kind == SyntaxKind::PARAM_VARIADIC
24928    }
24929    #[inline]
24930    fn cast(syntax: SyntaxNode) -> Option<Self> {
24931        if Self::can_cast(syntax.kind()) {
24932            Some(Self { syntax })
24933        } else {
24934            None
24935        }
24936    }
24937    #[inline]
24938    fn syntax(&self) -> &SyntaxNode {
24939        &self.syntax
24940    }
24941}
24942impl AstNode for ParenExpr {
24943    #[inline]
24944    fn can_cast(kind: SyntaxKind) -> bool {
24945        kind == SyntaxKind::PAREN_EXPR
24946    }
24947    #[inline]
24948    fn cast(syntax: SyntaxNode) -> Option<Self> {
24949        if Self::can_cast(syntax.kind()) {
24950            Some(Self { syntax })
24951        } else {
24952            None
24953        }
24954    }
24955    #[inline]
24956    fn syntax(&self) -> &SyntaxNode {
24957        &self.syntax
24958    }
24959}
24960impl AstNode for ParenSelect {
24961    #[inline]
24962    fn can_cast(kind: SyntaxKind) -> bool {
24963        kind == SyntaxKind::PAREN_SELECT
24964    }
24965    #[inline]
24966    fn cast(syntax: SyntaxNode) -> Option<Self> {
24967        if Self::can_cast(syntax.kind()) {
24968            Some(Self { syntax })
24969        } else {
24970            None
24971        }
24972    }
24973    #[inline]
24974    fn syntax(&self) -> &SyntaxNode {
24975        &self.syntax
24976    }
24977}
24978impl AstNode for Partition {
24979    #[inline]
24980    fn can_cast(kind: SyntaxKind) -> bool {
24981        kind == SyntaxKind::PARTITION
24982    }
24983    #[inline]
24984    fn cast(syntax: SyntaxNode) -> Option<Self> {
24985        if Self::can_cast(syntax.kind()) {
24986            Some(Self { syntax })
24987        } else {
24988            None
24989        }
24990    }
24991    #[inline]
24992    fn syntax(&self) -> &SyntaxNode {
24993        &self.syntax
24994    }
24995}
24996impl AstNode for PartitionBy {
24997    #[inline]
24998    fn can_cast(kind: SyntaxKind) -> bool {
24999        kind == SyntaxKind::PARTITION_BY
25000    }
25001    #[inline]
25002    fn cast(syntax: SyntaxNode) -> Option<Self> {
25003        if Self::can_cast(syntax.kind()) {
25004            Some(Self { syntax })
25005        } else {
25006            None
25007        }
25008    }
25009    #[inline]
25010    fn syntax(&self) -> &SyntaxNode {
25011        &self.syntax
25012    }
25013}
25014impl AstNode for PartitionDefault {
25015    #[inline]
25016    fn can_cast(kind: SyntaxKind) -> bool {
25017        kind == SyntaxKind::PARTITION_DEFAULT
25018    }
25019    #[inline]
25020    fn cast(syntax: SyntaxNode) -> Option<Self> {
25021        if Self::can_cast(syntax.kind()) {
25022            Some(Self { syntax })
25023        } else {
25024            None
25025        }
25026    }
25027    #[inline]
25028    fn syntax(&self) -> &SyntaxNode {
25029        &self.syntax
25030    }
25031}
25032impl AstNode for PartitionForValuesFrom {
25033    #[inline]
25034    fn can_cast(kind: SyntaxKind) -> bool {
25035        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
25036    }
25037    #[inline]
25038    fn cast(syntax: SyntaxNode) -> Option<Self> {
25039        if Self::can_cast(syntax.kind()) {
25040            Some(Self { syntax })
25041        } else {
25042            None
25043        }
25044    }
25045    #[inline]
25046    fn syntax(&self) -> &SyntaxNode {
25047        &self.syntax
25048    }
25049}
25050impl AstNode for PartitionForValuesIn {
25051    #[inline]
25052    fn can_cast(kind: SyntaxKind) -> bool {
25053        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
25054    }
25055    #[inline]
25056    fn cast(syntax: SyntaxNode) -> Option<Self> {
25057        if Self::can_cast(syntax.kind()) {
25058            Some(Self { syntax })
25059        } else {
25060            None
25061        }
25062    }
25063    #[inline]
25064    fn syntax(&self) -> &SyntaxNode {
25065        &self.syntax
25066    }
25067}
25068impl AstNode for PartitionForValuesWith {
25069    #[inline]
25070    fn can_cast(kind: SyntaxKind) -> bool {
25071        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
25072    }
25073    #[inline]
25074    fn cast(syntax: SyntaxNode) -> Option<Self> {
25075        if Self::can_cast(syntax.kind()) {
25076            Some(Self { syntax })
25077        } else {
25078            None
25079        }
25080    }
25081    #[inline]
25082    fn syntax(&self) -> &SyntaxNode {
25083        &self.syntax
25084    }
25085}
25086impl AstNode for PartitionItem {
25087    #[inline]
25088    fn can_cast(kind: SyntaxKind) -> bool {
25089        kind == SyntaxKind::PARTITION_ITEM
25090    }
25091    #[inline]
25092    fn cast(syntax: SyntaxNode) -> Option<Self> {
25093        if Self::can_cast(syntax.kind()) {
25094            Some(Self { syntax })
25095        } else {
25096            None
25097        }
25098    }
25099    #[inline]
25100    fn syntax(&self) -> &SyntaxNode {
25101        &self.syntax
25102    }
25103}
25104impl AstNode for PartitionItemList {
25105    #[inline]
25106    fn can_cast(kind: SyntaxKind) -> bool {
25107        kind == SyntaxKind::PARTITION_ITEM_LIST
25108    }
25109    #[inline]
25110    fn cast(syntax: SyntaxNode) -> Option<Self> {
25111        if Self::can_cast(syntax.kind()) {
25112            Some(Self { syntax })
25113        } else {
25114            None
25115        }
25116    }
25117    #[inline]
25118    fn syntax(&self) -> &SyntaxNode {
25119        &self.syntax
25120    }
25121}
25122impl AstNode for PartitionList {
25123    #[inline]
25124    fn can_cast(kind: SyntaxKind) -> bool {
25125        kind == SyntaxKind::PARTITION_LIST
25126    }
25127    #[inline]
25128    fn cast(syntax: SyntaxNode) -> Option<Self> {
25129        if Self::can_cast(syntax.kind()) {
25130            Some(Self { syntax })
25131        } else {
25132            None
25133        }
25134    }
25135    #[inline]
25136    fn syntax(&self) -> &SyntaxNode {
25137        &self.syntax
25138    }
25139}
25140impl AstNode for PartitionOf {
25141    #[inline]
25142    fn can_cast(kind: SyntaxKind) -> bool {
25143        kind == SyntaxKind::PARTITION_OF
25144    }
25145    #[inline]
25146    fn cast(syntax: SyntaxNode) -> Option<Self> {
25147        if Self::can_cast(syntax.kind()) {
25148            Some(Self { syntax })
25149        } else {
25150            None
25151        }
25152    }
25153    #[inline]
25154    fn syntax(&self) -> &SyntaxNode {
25155        &self.syntax
25156    }
25157}
25158impl AstNode for Path {
25159    #[inline]
25160    fn can_cast(kind: SyntaxKind) -> bool {
25161        kind == SyntaxKind::PATH
25162    }
25163    #[inline]
25164    fn cast(syntax: SyntaxNode) -> Option<Self> {
25165        if Self::can_cast(syntax.kind()) {
25166            Some(Self { syntax })
25167        } else {
25168            None
25169        }
25170    }
25171    #[inline]
25172    fn syntax(&self) -> &SyntaxNode {
25173        &self.syntax
25174    }
25175}
25176impl AstNode for PathSegment {
25177    #[inline]
25178    fn can_cast(kind: SyntaxKind) -> bool {
25179        kind == SyntaxKind::PATH_SEGMENT
25180    }
25181    #[inline]
25182    fn cast(syntax: SyntaxNode) -> Option<Self> {
25183        if Self::can_cast(syntax.kind()) {
25184            Some(Self { syntax })
25185        } else {
25186            None
25187        }
25188    }
25189    #[inline]
25190    fn syntax(&self) -> &SyntaxNode {
25191        &self.syntax
25192    }
25193}
25194impl AstNode for PathType {
25195    #[inline]
25196    fn can_cast(kind: SyntaxKind) -> bool {
25197        kind == SyntaxKind::PATH_TYPE
25198    }
25199    #[inline]
25200    fn cast(syntax: SyntaxNode) -> Option<Self> {
25201        if Self::can_cast(syntax.kind()) {
25202            Some(Self { syntax })
25203        } else {
25204            None
25205        }
25206    }
25207    #[inline]
25208    fn syntax(&self) -> &SyntaxNode {
25209        &self.syntax
25210    }
25211}
25212impl AstNode for PercentType {
25213    #[inline]
25214    fn can_cast(kind: SyntaxKind) -> bool {
25215        kind == SyntaxKind::PERCENT_TYPE
25216    }
25217    #[inline]
25218    fn cast(syntax: SyntaxNode) -> Option<Self> {
25219        if Self::can_cast(syntax.kind()) {
25220            Some(Self { syntax })
25221        } else {
25222            None
25223        }
25224    }
25225    #[inline]
25226    fn syntax(&self) -> &SyntaxNode {
25227        &self.syntax
25228    }
25229}
25230impl AstNode for PercentTypeClause {
25231    #[inline]
25232    fn can_cast(kind: SyntaxKind) -> bool {
25233        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
25234    }
25235    #[inline]
25236    fn cast(syntax: SyntaxNode) -> Option<Self> {
25237        if Self::can_cast(syntax.kind()) {
25238            Some(Self { syntax })
25239        } else {
25240            None
25241        }
25242    }
25243    #[inline]
25244    fn syntax(&self) -> &SyntaxNode {
25245        &self.syntax
25246    }
25247}
25248impl AstNode for PositionFn {
25249    #[inline]
25250    fn can_cast(kind: SyntaxKind) -> bool {
25251        kind == SyntaxKind::POSITION_FN
25252    }
25253    #[inline]
25254    fn cast(syntax: SyntaxNode) -> Option<Self> {
25255        if Self::can_cast(syntax.kind()) {
25256            Some(Self { syntax })
25257        } else {
25258            None
25259        }
25260    }
25261    #[inline]
25262    fn syntax(&self) -> &SyntaxNode {
25263        &self.syntax
25264    }
25265}
25266impl AstNode for PostfixExpr {
25267    #[inline]
25268    fn can_cast(kind: SyntaxKind) -> bool {
25269        kind == SyntaxKind::POSTFIX_EXPR
25270    }
25271    #[inline]
25272    fn cast(syntax: SyntaxNode) -> Option<Self> {
25273        if Self::can_cast(syntax.kind()) {
25274            Some(Self { syntax })
25275        } else {
25276            None
25277        }
25278    }
25279    #[inline]
25280    fn syntax(&self) -> &SyntaxNode {
25281        &self.syntax
25282    }
25283}
25284impl AstNode for PrefixExpr {
25285    #[inline]
25286    fn can_cast(kind: SyntaxKind) -> bool {
25287        kind == SyntaxKind::PREFIX_EXPR
25288    }
25289    #[inline]
25290    fn cast(syntax: SyntaxNode) -> Option<Self> {
25291        if Self::can_cast(syntax.kind()) {
25292            Some(Self { syntax })
25293        } else {
25294            None
25295        }
25296    }
25297    #[inline]
25298    fn syntax(&self) -> &SyntaxNode {
25299        &self.syntax
25300    }
25301}
25302impl AstNode for Prepare {
25303    #[inline]
25304    fn can_cast(kind: SyntaxKind) -> bool {
25305        kind == SyntaxKind::PREPARE
25306    }
25307    #[inline]
25308    fn cast(syntax: SyntaxNode) -> Option<Self> {
25309        if Self::can_cast(syntax.kind()) {
25310            Some(Self { syntax })
25311        } else {
25312            None
25313        }
25314    }
25315    #[inline]
25316    fn syntax(&self) -> &SyntaxNode {
25317        &self.syntax
25318    }
25319}
25320impl AstNode for PrepareTransaction {
25321    #[inline]
25322    fn can_cast(kind: SyntaxKind) -> bool {
25323        kind == SyntaxKind::PREPARE_TRANSACTION
25324    }
25325    #[inline]
25326    fn cast(syntax: SyntaxNode) -> Option<Self> {
25327        if Self::can_cast(syntax.kind()) {
25328            Some(Self { syntax })
25329        } else {
25330            None
25331        }
25332    }
25333    #[inline]
25334    fn syntax(&self) -> &SyntaxNode {
25335        &self.syntax
25336    }
25337}
25338impl AstNode for PreserveRows {
25339    #[inline]
25340    fn can_cast(kind: SyntaxKind) -> bool {
25341        kind == SyntaxKind::PRESERVE_ROWS
25342    }
25343    #[inline]
25344    fn cast(syntax: SyntaxNode) -> Option<Self> {
25345        if Self::can_cast(syntax.kind()) {
25346            Some(Self { syntax })
25347        } else {
25348            None
25349        }
25350    }
25351    #[inline]
25352    fn syntax(&self) -> &SyntaxNode {
25353        &self.syntax
25354    }
25355}
25356impl AstNode for PrimaryKeyConstraint {
25357    #[inline]
25358    fn can_cast(kind: SyntaxKind) -> bool {
25359        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
25360    }
25361    #[inline]
25362    fn cast(syntax: SyntaxNode) -> Option<Self> {
25363        if Self::can_cast(syntax.kind()) {
25364            Some(Self { syntax })
25365        } else {
25366            None
25367        }
25368    }
25369    #[inline]
25370    fn syntax(&self) -> &SyntaxNode {
25371        &self.syntax
25372    }
25373}
25374impl AstNode for PrivilegeTarget {
25375    #[inline]
25376    fn can_cast(kind: SyntaxKind) -> bool {
25377        kind == SyntaxKind::PRIVILEGE_TARGET
25378    }
25379    #[inline]
25380    fn cast(syntax: SyntaxNode) -> Option<Self> {
25381        if Self::can_cast(syntax.kind()) {
25382            Some(Self { syntax })
25383        } else {
25384            None
25385        }
25386    }
25387    #[inline]
25388    fn syntax(&self) -> &SyntaxNode {
25389        &self.syntax
25390    }
25391}
25392impl AstNode for Privileges {
25393    #[inline]
25394    fn can_cast(kind: SyntaxKind) -> bool {
25395        kind == SyntaxKind::PRIVILEGES
25396    }
25397    #[inline]
25398    fn cast(syntax: SyntaxNode) -> Option<Self> {
25399        if Self::can_cast(syntax.kind()) {
25400            Some(Self { syntax })
25401        } else {
25402            None
25403        }
25404    }
25405    #[inline]
25406    fn syntax(&self) -> &SyntaxNode {
25407        &self.syntax
25408    }
25409}
25410impl AstNode for PublicationObject {
25411    #[inline]
25412    fn can_cast(kind: SyntaxKind) -> bool {
25413        kind == SyntaxKind::PUBLICATION_OBJECT
25414    }
25415    #[inline]
25416    fn cast(syntax: SyntaxNode) -> Option<Self> {
25417        if Self::can_cast(syntax.kind()) {
25418            Some(Self { syntax })
25419        } else {
25420            None
25421        }
25422    }
25423    #[inline]
25424    fn syntax(&self) -> &SyntaxNode {
25425        &self.syntax
25426    }
25427}
25428impl AstNode for ReadCommitted {
25429    #[inline]
25430    fn can_cast(kind: SyntaxKind) -> bool {
25431        kind == SyntaxKind::READ_COMMITTED
25432    }
25433    #[inline]
25434    fn cast(syntax: SyntaxNode) -> Option<Self> {
25435        if Self::can_cast(syntax.kind()) {
25436            Some(Self { syntax })
25437        } else {
25438            None
25439        }
25440    }
25441    #[inline]
25442    fn syntax(&self) -> &SyntaxNode {
25443        &self.syntax
25444    }
25445}
25446impl AstNode for ReadOnly {
25447    #[inline]
25448    fn can_cast(kind: SyntaxKind) -> bool {
25449        kind == SyntaxKind::READ_ONLY
25450    }
25451    #[inline]
25452    fn cast(syntax: SyntaxNode) -> Option<Self> {
25453        if Self::can_cast(syntax.kind()) {
25454            Some(Self { syntax })
25455        } else {
25456            None
25457        }
25458    }
25459    #[inline]
25460    fn syntax(&self) -> &SyntaxNode {
25461        &self.syntax
25462    }
25463}
25464impl AstNode for ReadUncommitted {
25465    #[inline]
25466    fn can_cast(kind: SyntaxKind) -> bool {
25467        kind == SyntaxKind::READ_UNCOMMITTED
25468    }
25469    #[inline]
25470    fn cast(syntax: SyntaxNode) -> Option<Self> {
25471        if Self::can_cast(syntax.kind()) {
25472            Some(Self { syntax })
25473        } else {
25474            None
25475        }
25476    }
25477    #[inline]
25478    fn syntax(&self) -> &SyntaxNode {
25479        &self.syntax
25480    }
25481}
25482impl AstNode for ReadWrite {
25483    #[inline]
25484    fn can_cast(kind: SyntaxKind) -> bool {
25485        kind == SyntaxKind::READ_WRITE
25486    }
25487    #[inline]
25488    fn cast(syntax: SyntaxNode) -> Option<Self> {
25489        if Self::can_cast(syntax.kind()) {
25490            Some(Self { syntax })
25491        } else {
25492            None
25493        }
25494    }
25495    #[inline]
25496    fn syntax(&self) -> &SyntaxNode {
25497        &self.syntax
25498    }
25499}
25500impl AstNode for Reassign {
25501    #[inline]
25502    fn can_cast(kind: SyntaxKind) -> bool {
25503        kind == SyntaxKind::REASSIGN
25504    }
25505    #[inline]
25506    fn cast(syntax: SyntaxNode) -> Option<Self> {
25507        if Self::can_cast(syntax.kind()) {
25508            Some(Self { syntax })
25509        } else {
25510            None
25511        }
25512    }
25513    #[inline]
25514    fn syntax(&self) -> &SyntaxNode {
25515        &self.syntax
25516    }
25517}
25518impl AstNode for ReferencesConstraint {
25519    #[inline]
25520    fn can_cast(kind: SyntaxKind) -> bool {
25521        kind == SyntaxKind::REFERENCES_CONSTRAINT
25522    }
25523    #[inline]
25524    fn cast(syntax: SyntaxNode) -> Option<Self> {
25525        if Self::can_cast(syntax.kind()) {
25526            Some(Self { syntax })
25527        } else {
25528            None
25529        }
25530    }
25531    #[inline]
25532    fn syntax(&self) -> &SyntaxNode {
25533        &self.syntax
25534    }
25535}
25536impl AstNode for Referencing {
25537    #[inline]
25538    fn can_cast(kind: SyntaxKind) -> bool {
25539        kind == SyntaxKind::REFERENCING
25540    }
25541    #[inline]
25542    fn cast(syntax: SyntaxNode) -> Option<Self> {
25543        if Self::can_cast(syntax.kind()) {
25544            Some(Self { syntax })
25545        } else {
25546            None
25547        }
25548    }
25549    #[inline]
25550    fn syntax(&self) -> &SyntaxNode {
25551        &self.syntax
25552    }
25553}
25554impl AstNode for ReferencingTable {
25555    #[inline]
25556    fn can_cast(kind: SyntaxKind) -> bool {
25557        kind == SyntaxKind::REFERENCING_TABLE
25558    }
25559    #[inline]
25560    fn cast(syntax: SyntaxNode) -> Option<Self> {
25561        if Self::can_cast(syntax.kind()) {
25562            Some(Self { syntax })
25563        } else {
25564            None
25565        }
25566    }
25567    #[inline]
25568    fn syntax(&self) -> &SyntaxNode {
25569        &self.syntax
25570    }
25571}
25572impl AstNode for Refresh {
25573    #[inline]
25574    fn can_cast(kind: SyntaxKind) -> bool {
25575        kind == SyntaxKind::REFRESH
25576    }
25577    #[inline]
25578    fn cast(syntax: SyntaxNode) -> Option<Self> {
25579        if Self::can_cast(syntax.kind()) {
25580            Some(Self { syntax })
25581        } else {
25582            None
25583        }
25584    }
25585    #[inline]
25586    fn syntax(&self) -> &SyntaxNode {
25587        &self.syntax
25588    }
25589}
25590impl AstNode for RefreshCollationVersion {
25591    #[inline]
25592    fn can_cast(kind: SyntaxKind) -> bool {
25593        kind == SyntaxKind::REFRESH_COLLATION_VERSION
25594    }
25595    #[inline]
25596    fn cast(syntax: SyntaxNode) -> Option<Self> {
25597        if Self::can_cast(syntax.kind()) {
25598            Some(Self { syntax })
25599        } else {
25600            None
25601        }
25602    }
25603    #[inline]
25604    fn syntax(&self) -> &SyntaxNode {
25605        &self.syntax
25606    }
25607}
25608impl AstNode for RefreshVersion {
25609    #[inline]
25610    fn can_cast(kind: SyntaxKind) -> bool {
25611        kind == SyntaxKind::REFRESH_VERSION
25612    }
25613    #[inline]
25614    fn cast(syntax: SyntaxNode) -> Option<Self> {
25615        if Self::can_cast(syntax.kind()) {
25616            Some(Self { syntax })
25617        } else {
25618            None
25619        }
25620    }
25621    #[inline]
25622    fn syntax(&self) -> &SyntaxNode {
25623        &self.syntax
25624    }
25625}
25626impl AstNode for Reindex {
25627    #[inline]
25628    fn can_cast(kind: SyntaxKind) -> bool {
25629        kind == SyntaxKind::REINDEX
25630    }
25631    #[inline]
25632    fn cast(syntax: SyntaxNode) -> Option<Self> {
25633        if Self::can_cast(syntax.kind()) {
25634            Some(Self { syntax })
25635        } else {
25636            None
25637        }
25638    }
25639    #[inline]
25640    fn syntax(&self) -> &SyntaxNode {
25641        &self.syntax
25642    }
25643}
25644impl AstNode for RelationName {
25645    #[inline]
25646    fn can_cast(kind: SyntaxKind) -> bool {
25647        kind == SyntaxKind::RELATION_NAME
25648    }
25649    #[inline]
25650    fn cast(syntax: SyntaxNode) -> Option<Self> {
25651        if Self::can_cast(syntax.kind()) {
25652            Some(Self { syntax })
25653        } else {
25654            None
25655        }
25656    }
25657    #[inline]
25658    fn syntax(&self) -> &SyntaxNode {
25659        &self.syntax
25660    }
25661}
25662impl AstNode for ReleaseSavepoint {
25663    #[inline]
25664    fn can_cast(kind: SyntaxKind) -> bool {
25665        kind == SyntaxKind::RELEASE_SAVEPOINT
25666    }
25667    #[inline]
25668    fn cast(syntax: SyntaxNode) -> Option<Self> {
25669        if Self::can_cast(syntax.kind()) {
25670            Some(Self { syntax })
25671        } else {
25672            None
25673        }
25674    }
25675    #[inline]
25676    fn syntax(&self) -> &SyntaxNode {
25677        &self.syntax
25678    }
25679}
25680impl AstNode for RenameColumn {
25681    #[inline]
25682    fn can_cast(kind: SyntaxKind) -> bool {
25683        kind == SyntaxKind::RENAME_COLUMN
25684    }
25685    #[inline]
25686    fn cast(syntax: SyntaxNode) -> Option<Self> {
25687        if Self::can_cast(syntax.kind()) {
25688            Some(Self { syntax })
25689        } else {
25690            None
25691        }
25692    }
25693    #[inline]
25694    fn syntax(&self) -> &SyntaxNode {
25695        &self.syntax
25696    }
25697}
25698impl AstNode for RenameConstraint {
25699    #[inline]
25700    fn can_cast(kind: SyntaxKind) -> bool {
25701        kind == SyntaxKind::RENAME_CONSTRAINT
25702    }
25703    #[inline]
25704    fn cast(syntax: SyntaxNode) -> Option<Self> {
25705        if Self::can_cast(syntax.kind()) {
25706            Some(Self { syntax })
25707        } else {
25708            None
25709        }
25710    }
25711    #[inline]
25712    fn syntax(&self) -> &SyntaxNode {
25713        &self.syntax
25714    }
25715}
25716impl AstNode for RenameTo {
25717    #[inline]
25718    fn can_cast(kind: SyntaxKind) -> bool {
25719        kind == SyntaxKind::RENAME_TO
25720    }
25721    #[inline]
25722    fn cast(syntax: SyntaxNode) -> Option<Self> {
25723        if Self::can_cast(syntax.kind()) {
25724            Some(Self { syntax })
25725        } else {
25726            None
25727        }
25728    }
25729    #[inline]
25730    fn syntax(&self) -> &SyntaxNode {
25731        &self.syntax
25732    }
25733}
25734impl AstNode for RepeatableClause {
25735    #[inline]
25736    fn can_cast(kind: SyntaxKind) -> bool {
25737        kind == SyntaxKind::REPEATABLE_CLAUSE
25738    }
25739    #[inline]
25740    fn cast(syntax: SyntaxNode) -> Option<Self> {
25741        if Self::can_cast(syntax.kind()) {
25742            Some(Self { syntax })
25743        } else {
25744            None
25745        }
25746    }
25747    #[inline]
25748    fn syntax(&self) -> &SyntaxNode {
25749        &self.syntax
25750    }
25751}
25752impl AstNode for RepeatableRead {
25753    #[inline]
25754    fn can_cast(kind: SyntaxKind) -> bool {
25755        kind == SyntaxKind::REPEATABLE_READ
25756    }
25757    #[inline]
25758    fn cast(syntax: SyntaxNode) -> Option<Self> {
25759        if Self::can_cast(syntax.kind()) {
25760            Some(Self { syntax })
25761        } else {
25762            None
25763        }
25764    }
25765    #[inline]
25766    fn syntax(&self) -> &SyntaxNode {
25767        &self.syntax
25768    }
25769}
25770impl AstNode for ReplicaIdentity {
25771    #[inline]
25772    fn can_cast(kind: SyntaxKind) -> bool {
25773        kind == SyntaxKind::REPLICA_IDENTITY
25774    }
25775    #[inline]
25776    fn cast(syntax: SyntaxNode) -> Option<Self> {
25777        if Self::can_cast(syntax.kind()) {
25778            Some(Self { syntax })
25779        } else {
25780            None
25781        }
25782    }
25783    #[inline]
25784    fn syntax(&self) -> &SyntaxNode {
25785        &self.syntax
25786    }
25787}
25788impl AstNode for Reset {
25789    #[inline]
25790    fn can_cast(kind: SyntaxKind) -> bool {
25791        kind == SyntaxKind::RESET
25792    }
25793    #[inline]
25794    fn cast(syntax: SyntaxNode) -> Option<Self> {
25795        if Self::can_cast(syntax.kind()) {
25796            Some(Self { syntax })
25797        } else {
25798            None
25799        }
25800    }
25801    #[inline]
25802    fn syntax(&self) -> &SyntaxNode {
25803        &self.syntax
25804    }
25805}
25806impl AstNode for ResetConfigParam {
25807    #[inline]
25808    fn can_cast(kind: SyntaxKind) -> bool {
25809        kind == SyntaxKind::RESET_CONFIG_PARAM
25810    }
25811    #[inline]
25812    fn cast(syntax: SyntaxNode) -> Option<Self> {
25813        if Self::can_cast(syntax.kind()) {
25814            Some(Self { syntax })
25815        } else {
25816            None
25817        }
25818    }
25819    #[inline]
25820    fn syntax(&self) -> &SyntaxNode {
25821        &self.syntax
25822    }
25823}
25824impl AstNode for ResetFuncOption {
25825    #[inline]
25826    fn can_cast(kind: SyntaxKind) -> bool {
25827        kind == SyntaxKind::RESET_FUNC_OPTION
25828    }
25829    #[inline]
25830    fn cast(syntax: SyntaxNode) -> Option<Self> {
25831        if Self::can_cast(syntax.kind()) {
25832            Some(Self { syntax })
25833        } else {
25834            None
25835        }
25836    }
25837    #[inline]
25838    fn syntax(&self) -> &SyntaxNode {
25839        &self.syntax
25840    }
25841}
25842impl AstNode for ResetOptions {
25843    #[inline]
25844    fn can_cast(kind: SyntaxKind) -> bool {
25845        kind == SyntaxKind::RESET_OPTIONS
25846    }
25847    #[inline]
25848    fn cast(syntax: SyntaxNode) -> Option<Self> {
25849        if Self::can_cast(syntax.kind()) {
25850            Some(Self { syntax })
25851        } else {
25852            None
25853        }
25854    }
25855    #[inline]
25856    fn syntax(&self) -> &SyntaxNode {
25857        &self.syntax
25858    }
25859}
25860impl AstNode for ResetSessionAuth {
25861    #[inline]
25862    fn can_cast(kind: SyntaxKind) -> bool {
25863        kind == SyntaxKind::RESET_SESSION_AUTH
25864    }
25865    #[inline]
25866    fn cast(syntax: SyntaxNode) -> Option<Self> {
25867        if Self::can_cast(syntax.kind()) {
25868            Some(Self { syntax })
25869        } else {
25870            None
25871        }
25872    }
25873    #[inline]
25874    fn syntax(&self) -> &SyntaxNode {
25875        &self.syntax
25876    }
25877}
25878impl AstNode for Restart {
25879    #[inline]
25880    fn can_cast(kind: SyntaxKind) -> bool {
25881        kind == SyntaxKind::RESTART
25882    }
25883    #[inline]
25884    fn cast(syntax: SyntaxNode) -> Option<Self> {
25885        if Self::can_cast(syntax.kind()) {
25886            Some(Self { syntax })
25887        } else {
25888            None
25889        }
25890    }
25891    #[inline]
25892    fn syntax(&self) -> &SyntaxNode {
25893        &self.syntax
25894    }
25895}
25896impl AstNode for Restrict {
25897    #[inline]
25898    fn can_cast(kind: SyntaxKind) -> bool {
25899        kind == SyntaxKind::RESTRICT
25900    }
25901    #[inline]
25902    fn cast(syntax: SyntaxNode) -> Option<Self> {
25903        if Self::can_cast(syntax.kind()) {
25904            Some(Self { syntax })
25905        } else {
25906            None
25907        }
25908    }
25909    #[inline]
25910    fn syntax(&self) -> &SyntaxNode {
25911        &self.syntax
25912    }
25913}
25914impl AstNode for RetType {
25915    #[inline]
25916    fn can_cast(kind: SyntaxKind) -> bool {
25917        kind == SyntaxKind::RET_TYPE
25918    }
25919    #[inline]
25920    fn cast(syntax: SyntaxNode) -> Option<Self> {
25921        if Self::can_cast(syntax.kind()) {
25922            Some(Self { syntax })
25923        } else {
25924            None
25925        }
25926    }
25927    #[inline]
25928    fn syntax(&self) -> &SyntaxNode {
25929        &self.syntax
25930    }
25931}
25932impl AstNode for ReturnFuncOption {
25933    #[inline]
25934    fn can_cast(kind: SyntaxKind) -> bool {
25935        kind == SyntaxKind::RETURN_FUNC_OPTION
25936    }
25937    #[inline]
25938    fn cast(syntax: SyntaxNode) -> Option<Self> {
25939        if Self::can_cast(syntax.kind()) {
25940            Some(Self { syntax })
25941        } else {
25942            None
25943        }
25944    }
25945    #[inline]
25946    fn syntax(&self) -> &SyntaxNode {
25947        &self.syntax
25948    }
25949}
25950impl AstNode for ReturningClause {
25951    #[inline]
25952    fn can_cast(kind: SyntaxKind) -> bool {
25953        kind == SyntaxKind::RETURNING_CLAUSE
25954    }
25955    #[inline]
25956    fn cast(syntax: SyntaxNode) -> Option<Self> {
25957        if Self::can_cast(syntax.kind()) {
25958            Some(Self { syntax })
25959        } else {
25960            None
25961        }
25962    }
25963    #[inline]
25964    fn syntax(&self) -> &SyntaxNode {
25965        &self.syntax
25966    }
25967}
25968impl AstNode for ReturningOption {
25969    #[inline]
25970    fn can_cast(kind: SyntaxKind) -> bool {
25971        kind == SyntaxKind::RETURNING_OPTION
25972    }
25973    #[inline]
25974    fn cast(syntax: SyntaxNode) -> Option<Self> {
25975        if Self::can_cast(syntax.kind()) {
25976            Some(Self { syntax })
25977        } else {
25978            None
25979        }
25980    }
25981    #[inline]
25982    fn syntax(&self) -> &SyntaxNode {
25983        &self.syntax
25984    }
25985}
25986impl AstNode for ReturningOptionList {
25987    #[inline]
25988    fn can_cast(kind: SyntaxKind) -> bool {
25989        kind == SyntaxKind::RETURNING_OPTION_LIST
25990    }
25991    #[inline]
25992    fn cast(syntax: SyntaxNode) -> Option<Self> {
25993        if Self::can_cast(syntax.kind()) {
25994            Some(Self { syntax })
25995        } else {
25996            None
25997        }
25998    }
25999    #[inline]
26000    fn syntax(&self) -> &SyntaxNode {
26001        &self.syntax
26002    }
26003}
26004impl AstNode for Revoke {
26005    #[inline]
26006    fn can_cast(kind: SyntaxKind) -> bool {
26007        kind == SyntaxKind::REVOKE
26008    }
26009    #[inline]
26010    fn cast(syntax: SyntaxNode) -> Option<Self> {
26011        if Self::can_cast(syntax.kind()) {
26012            Some(Self { syntax })
26013        } else {
26014            None
26015        }
26016    }
26017    #[inline]
26018    fn syntax(&self) -> &SyntaxNode {
26019        &self.syntax
26020    }
26021}
26022impl AstNode for RevokeCommand {
26023    #[inline]
26024    fn can_cast(kind: SyntaxKind) -> bool {
26025        kind == SyntaxKind::REVOKE_COMMAND
26026    }
26027    #[inline]
26028    fn cast(syntax: SyntaxNode) -> Option<Self> {
26029        if Self::can_cast(syntax.kind()) {
26030            Some(Self { syntax })
26031        } else {
26032            None
26033        }
26034    }
26035    #[inline]
26036    fn syntax(&self) -> &SyntaxNode {
26037        &self.syntax
26038    }
26039}
26040impl AstNode for RevokeCommandList {
26041    #[inline]
26042    fn can_cast(kind: SyntaxKind) -> bool {
26043        kind == SyntaxKind::REVOKE_COMMAND_LIST
26044    }
26045    #[inline]
26046    fn cast(syntax: SyntaxNode) -> Option<Self> {
26047        if Self::can_cast(syntax.kind()) {
26048            Some(Self { syntax })
26049        } else {
26050            None
26051        }
26052    }
26053    #[inline]
26054    fn syntax(&self) -> &SyntaxNode {
26055        &self.syntax
26056    }
26057}
26058impl AstNode for RevokeDefaultPrivileges {
26059    #[inline]
26060    fn can_cast(kind: SyntaxKind) -> bool {
26061        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
26062    }
26063    #[inline]
26064    fn cast(syntax: SyntaxNode) -> Option<Self> {
26065        if Self::can_cast(syntax.kind()) {
26066            Some(Self { syntax })
26067        } else {
26068            None
26069        }
26070    }
26071    #[inline]
26072    fn syntax(&self) -> &SyntaxNode {
26073        &self.syntax
26074    }
26075}
26076impl AstNode for Role {
26077    #[inline]
26078    fn can_cast(kind: SyntaxKind) -> bool {
26079        kind == SyntaxKind::ROLE
26080    }
26081    #[inline]
26082    fn cast(syntax: SyntaxNode) -> Option<Self> {
26083        if Self::can_cast(syntax.kind()) {
26084            Some(Self { syntax })
26085        } else {
26086            None
26087        }
26088    }
26089    #[inline]
26090    fn syntax(&self) -> &SyntaxNode {
26091        &self.syntax
26092    }
26093}
26094impl AstNode for RoleOption {
26095    #[inline]
26096    fn can_cast(kind: SyntaxKind) -> bool {
26097        kind == SyntaxKind::ROLE_OPTION
26098    }
26099    #[inline]
26100    fn cast(syntax: SyntaxNode) -> Option<Self> {
26101        if Self::can_cast(syntax.kind()) {
26102            Some(Self { syntax })
26103        } else {
26104            None
26105        }
26106    }
26107    #[inline]
26108    fn syntax(&self) -> &SyntaxNode {
26109        &self.syntax
26110    }
26111}
26112impl AstNode for RoleOptionList {
26113    #[inline]
26114    fn can_cast(kind: SyntaxKind) -> bool {
26115        kind == SyntaxKind::ROLE_OPTION_LIST
26116    }
26117    #[inline]
26118    fn cast(syntax: SyntaxNode) -> Option<Self> {
26119        if Self::can_cast(syntax.kind()) {
26120            Some(Self { syntax })
26121        } else {
26122            None
26123        }
26124    }
26125    #[inline]
26126    fn syntax(&self) -> &SyntaxNode {
26127        &self.syntax
26128    }
26129}
26130impl AstNode for RoleRef {
26131    #[inline]
26132    fn can_cast(kind: SyntaxKind) -> bool {
26133        kind == SyntaxKind::ROLE_REF
26134    }
26135    #[inline]
26136    fn cast(syntax: SyntaxNode) -> Option<Self> {
26137        if Self::can_cast(syntax.kind()) {
26138            Some(Self { syntax })
26139        } else {
26140            None
26141        }
26142    }
26143    #[inline]
26144    fn syntax(&self) -> &SyntaxNode {
26145        &self.syntax
26146    }
26147}
26148impl AstNode for RoleRefList {
26149    #[inline]
26150    fn can_cast(kind: SyntaxKind) -> bool {
26151        kind == SyntaxKind::ROLE_REF_LIST
26152    }
26153    #[inline]
26154    fn cast(syntax: SyntaxNode) -> Option<Self> {
26155        if Self::can_cast(syntax.kind()) {
26156            Some(Self { syntax })
26157        } else {
26158            None
26159        }
26160    }
26161    #[inline]
26162    fn syntax(&self) -> &SyntaxNode {
26163        &self.syntax
26164    }
26165}
26166impl AstNode for Rollback {
26167    #[inline]
26168    fn can_cast(kind: SyntaxKind) -> bool {
26169        kind == SyntaxKind::ROLLBACK
26170    }
26171    #[inline]
26172    fn cast(syntax: SyntaxNode) -> Option<Self> {
26173        if Self::can_cast(syntax.kind()) {
26174            Some(Self { syntax })
26175        } else {
26176            None
26177        }
26178    }
26179    #[inline]
26180    fn syntax(&self) -> &SyntaxNode {
26181        &self.syntax
26182    }
26183}
26184impl AstNode for Row {
26185    #[inline]
26186    fn can_cast(kind: SyntaxKind) -> bool {
26187        kind == SyntaxKind::ROW
26188    }
26189    #[inline]
26190    fn cast(syntax: SyntaxNode) -> Option<Self> {
26191        if Self::can_cast(syntax.kind()) {
26192            Some(Self { syntax })
26193        } else {
26194            None
26195        }
26196    }
26197    #[inline]
26198    fn syntax(&self) -> &SyntaxNode {
26199        &self.syntax
26200    }
26201}
26202impl AstNode for RowList {
26203    #[inline]
26204    fn can_cast(kind: SyntaxKind) -> bool {
26205        kind == SyntaxKind::ROW_LIST
26206    }
26207    #[inline]
26208    fn cast(syntax: SyntaxNode) -> Option<Self> {
26209        if Self::can_cast(syntax.kind()) {
26210            Some(Self { syntax })
26211        } else {
26212            None
26213        }
26214    }
26215    #[inline]
26216    fn syntax(&self) -> &SyntaxNode {
26217        &self.syntax
26218    }
26219}
26220impl AstNode for RowsFuncOption {
26221    #[inline]
26222    fn can_cast(kind: SyntaxKind) -> bool {
26223        kind == SyntaxKind::ROWS_FUNC_OPTION
26224    }
26225    #[inline]
26226    fn cast(syntax: SyntaxNode) -> Option<Self> {
26227        if Self::can_cast(syntax.kind()) {
26228            Some(Self { syntax })
26229        } else {
26230            None
26231        }
26232    }
26233    #[inline]
26234    fn syntax(&self) -> &SyntaxNode {
26235        &self.syntax
26236    }
26237}
26238impl AstNode for Savepoint {
26239    #[inline]
26240    fn can_cast(kind: SyntaxKind) -> bool {
26241        kind == SyntaxKind::SAVEPOINT
26242    }
26243    #[inline]
26244    fn cast(syntax: SyntaxNode) -> Option<Self> {
26245        if Self::can_cast(syntax.kind()) {
26246            Some(Self { syntax })
26247        } else {
26248            None
26249        }
26250    }
26251    #[inline]
26252    fn syntax(&self) -> &SyntaxNode {
26253        &self.syntax
26254    }
26255}
26256impl AstNode for SecurityFuncOption {
26257    #[inline]
26258    fn can_cast(kind: SyntaxKind) -> bool {
26259        kind == SyntaxKind::SECURITY_FUNC_OPTION
26260    }
26261    #[inline]
26262    fn cast(syntax: SyntaxNode) -> Option<Self> {
26263        if Self::can_cast(syntax.kind()) {
26264            Some(Self { syntax })
26265        } else {
26266            None
26267        }
26268    }
26269    #[inline]
26270    fn syntax(&self) -> &SyntaxNode {
26271        &self.syntax
26272    }
26273}
26274impl AstNode for SecurityLabel {
26275    #[inline]
26276    fn can_cast(kind: SyntaxKind) -> bool {
26277        kind == SyntaxKind::SECURITY_LABEL
26278    }
26279    #[inline]
26280    fn cast(syntax: SyntaxNode) -> Option<Self> {
26281        if Self::can_cast(syntax.kind()) {
26282            Some(Self { syntax })
26283        } else {
26284            None
26285        }
26286    }
26287    #[inline]
26288    fn syntax(&self) -> &SyntaxNode {
26289        &self.syntax
26290    }
26291}
26292impl AstNode for Select {
26293    #[inline]
26294    fn can_cast(kind: SyntaxKind) -> bool {
26295        kind == SyntaxKind::SELECT
26296    }
26297    #[inline]
26298    fn cast(syntax: SyntaxNode) -> Option<Self> {
26299        if Self::can_cast(syntax.kind()) {
26300            Some(Self { syntax })
26301        } else {
26302            None
26303        }
26304    }
26305    #[inline]
26306    fn syntax(&self) -> &SyntaxNode {
26307        &self.syntax
26308    }
26309}
26310impl AstNode for SelectClause {
26311    #[inline]
26312    fn can_cast(kind: SyntaxKind) -> bool {
26313        kind == SyntaxKind::SELECT_CLAUSE
26314    }
26315    #[inline]
26316    fn cast(syntax: SyntaxNode) -> Option<Self> {
26317        if Self::can_cast(syntax.kind()) {
26318            Some(Self { syntax })
26319        } else {
26320            None
26321        }
26322    }
26323    #[inline]
26324    fn syntax(&self) -> &SyntaxNode {
26325        &self.syntax
26326    }
26327}
26328impl AstNode for SelectInto {
26329    #[inline]
26330    fn can_cast(kind: SyntaxKind) -> bool {
26331        kind == SyntaxKind::SELECT_INTO
26332    }
26333    #[inline]
26334    fn cast(syntax: SyntaxNode) -> Option<Self> {
26335        if Self::can_cast(syntax.kind()) {
26336            Some(Self { syntax })
26337        } else {
26338            None
26339        }
26340    }
26341    #[inline]
26342    fn syntax(&self) -> &SyntaxNode {
26343        &self.syntax
26344    }
26345}
26346impl AstNode for SequenceOption {
26347    #[inline]
26348    fn can_cast(kind: SyntaxKind) -> bool {
26349        kind == SyntaxKind::SEQUENCE_OPTION
26350    }
26351    #[inline]
26352    fn cast(syntax: SyntaxNode) -> Option<Self> {
26353        if Self::can_cast(syntax.kind()) {
26354            Some(Self { syntax })
26355        } else {
26356            None
26357        }
26358    }
26359    #[inline]
26360    fn syntax(&self) -> &SyntaxNode {
26361        &self.syntax
26362    }
26363}
26364impl AstNode for SequenceOptionList {
26365    #[inline]
26366    fn can_cast(kind: SyntaxKind) -> bool {
26367        kind == SyntaxKind::SEQUENCE_OPTION_LIST
26368    }
26369    #[inline]
26370    fn cast(syntax: SyntaxNode) -> Option<Self> {
26371        if Self::can_cast(syntax.kind()) {
26372            Some(Self { syntax })
26373        } else {
26374            None
26375        }
26376    }
26377    #[inline]
26378    fn syntax(&self) -> &SyntaxNode {
26379        &self.syntax
26380    }
26381}
26382impl AstNode for Serializable {
26383    #[inline]
26384    fn can_cast(kind: SyntaxKind) -> bool {
26385        kind == SyntaxKind::SERIALIZABLE
26386    }
26387    #[inline]
26388    fn cast(syntax: SyntaxNode) -> Option<Self> {
26389        if Self::can_cast(syntax.kind()) {
26390            Some(Self { syntax })
26391        } else {
26392            None
26393        }
26394    }
26395    #[inline]
26396    fn syntax(&self) -> &SyntaxNode {
26397        &self.syntax
26398    }
26399}
26400impl AstNode for ServerName {
26401    #[inline]
26402    fn can_cast(kind: SyntaxKind) -> bool {
26403        kind == SyntaxKind::SERVER_NAME
26404    }
26405    #[inline]
26406    fn cast(syntax: SyntaxNode) -> Option<Self> {
26407        if Self::can_cast(syntax.kind()) {
26408            Some(Self { syntax })
26409        } else {
26410            None
26411        }
26412    }
26413    #[inline]
26414    fn syntax(&self) -> &SyntaxNode {
26415        &self.syntax
26416    }
26417}
26418impl AstNode for Set {
26419    #[inline]
26420    fn can_cast(kind: SyntaxKind) -> bool {
26421        kind == SyntaxKind::SET
26422    }
26423    #[inline]
26424    fn cast(syntax: SyntaxNode) -> Option<Self> {
26425        if Self::can_cast(syntax.kind()) {
26426            Some(Self { syntax })
26427        } else {
26428            None
26429        }
26430    }
26431    #[inline]
26432    fn syntax(&self) -> &SyntaxNode {
26433        &self.syntax
26434    }
26435}
26436impl AstNode for SetAccessMethod {
26437    #[inline]
26438    fn can_cast(kind: SyntaxKind) -> bool {
26439        kind == SyntaxKind::SET_ACCESS_METHOD
26440    }
26441    #[inline]
26442    fn cast(syntax: SyntaxNode) -> Option<Self> {
26443        if Self::can_cast(syntax.kind()) {
26444            Some(Self { syntax })
26445        } else {
26446            None
26447        }
26448    }
26449    #[inline]
26450    fn syntax(&self) -> &SyntaxNode {
26451        &self.syntax
26452    }
26453}
26454impl AstNode for SetClause {
26455    #[inline]
26456    fn can_cast(kind: SyntaxKind) -> bool {
26457        kind == SyntaxKind::SET_CLAUSE
26458    }
26459    #[inline]
26460    fn cast(syntax: SyntaxNode) -> Option<Self> {
26461        if Self::can_cast(syntax.kind()) {
26462            Some(Self { syntax })
26463        } else {
26464            None
26465        }
26466    }
26467    #[inline]
26468    fn syntax(&self) -> &SyntaxNode {
26469        &self.syntax
26470    }
26471}
26472impl AstNode for SetColumnList {
26473    #[inline]
26474    fn can_cast(kind: SyntaxKind) -> bool {
26475        kind == SyntaxKind::SET_COLUMN_LIST
26476    }
26477    #[inline]
26478    fn cast(syntax: SyntaxNode) -> Option<Self> {
26479        if Self::can_cast(syntax.kind()) {
26480            Some(Self { syntax })
26481        } else {
26482            None
26483        }
26484    }
26485    #[inline]
26486    fn syntax(&self) -> &SyntaxNode {
26487        &self.syntax
26488    }
26489}
26490impl AstNode for SetCompression {
26491    #[inline]
26492    fn can_cast(kind: SyntaxKind) -> bool {
26493        kind == SyntaxKind::SET_COMPRESSION
26494    }
26495    #[inline]
26496    fn cast(syntax: SyntaxNode) -> Option<Self> {
26497        if Self::can_cast(syntax.kind()) {
26498            Some(Self { syntax })
26499        } else {
26500            None
26501        }
26502    }
26503    #[inline]
26504    fn syntax(&self) -> &SyntaxNode {
26505        &self.syntax
26506    }
26507}
26508impl AstNode for SetConfigParam {
26509    #[inline]
26510    fn can_cast(kind: SyntaxKind) -> bool {
26511        kind == SyntaxKind::SET_CONFIG_PARAM
26512    }
26513    #[inline]
26514    fn cast(syntax: SyntaxNode) -> Option<Self> {
26515        if Self::can_cast(syntax.kind()) {
26516            Some(Self { syntax })
26517        } else {
26518            None
26519        }
26520    }
26521    #[inline]
26522    fn syntax(&self) -> &SyntaxNode {
26523        &self.syntax
26524    }
26525}
26526impl AstNode for SetConstraints {
26527    #[inline]
26528    fn can_cast(kind: SyntaxKind) -> bool {
26529        kind == SyntaxKind::SET_CONSTRAINTS
26530    }
26531    #[inline]
26532    fn cast(syntax: SyntaxNode) -> Option<Self> {
26533        if Self::can_cast(syntax.kind()) {
26534            Some(Self { syntax })
26535        } else {
26536            None
26537        }
26538    }
26539    #[inline]
26540    fn syntax(&self) -> &SyntaxNode {
26541        &self.syntax
26542    }
26543}
26544impl AstNode for SetDefault {
26545    #[inline]
26546    fn can_cast(kind: SyntaxKind) -> bool {
26547        kind == SyntaxKind::SET_DEFAULT
26548    }
26549    #[inline]
26550    fn cast(syntax: SyntaxNode) -> Option<Self> {
26551        if Self::can_cast(syntax.kind()) {
26552            Some(Self { syntax })
26553        } else {
26554            None
26555        }
26556    }
26557    #[inline]
26558    fn syntax(&self) -> &SyntaxNode {
26559        &self.syntax
26560    }
26561}
26562impl AstNode for SetDefaultColumns {
26563    #[inline]
26564    fn can_cast(kind: SyntaxKind) -> bool {
26565        kind == SyntaxKind::SET_DEFAULT_COLUMNS
26566    }
26567    #[inline]
26568    fn cast(syntax: SyntaxNode) -> Option<Self> {
26569        if Self::can_cast(syntax.kind()) {
26570            Some(Self { syntax })
26571        } else {
26572            None
26573        }
26574    }
26575    #[inline]
26576    fn syntax(&self) -> &SyntaxNode {
26577        &self.syntax
26578    }
26579}
26580impl AstNode for SetExpr {
26581    #[inline]
26582    fn can_cast(kind: SyntaxKind) -> bool {
26583        kind == SyntaxKind::SET_EXPR
26584    }
26585    #[inline]
26586    fn cast(syntax: SyntaxNode) -> Option<Self> {
26587        if Self::can_cast(syntax.kind()) {
26588            Some(Self { syntax })
26589        } else {
26590            None
26591        }
26592    }
26593    #[inline]
26594    fn syntax(&self) -> &SyntaxNode {
26595        &self.syntax
26596    }
26597}
26598impl AstNode for SetExprList {
26599    #[inline]
26600    fn can_cast(kind: SyntaxKind) -> bool {
26601        kind == SyntaxKind::SET_EXPR_LIST
26602    }
26603    #[inline]
26604    fn cast(syntax: SyntaxNode) -> Option<Self> {
26605        if Self::can_cast(syntax.kind()) {
26606            Some(Self { syntax })
26607        } else {
26608            None
26609        }
26610    }
26611    #[inline]
26612    fn syntax(&self) -> &SyntaxNode {
26613        &self.syntax
26614    }
26615}
26616impl AstNode for SetExpression {
26617    #[inline]
26618    fn can_cast(kind: SyntaxKind) -> bool {
26619        kind == SyntaxKind::SET_EXPRESSION
26620    }
26621    #[inline]
26622    fn cast(syntax: SyntaxNode) -> Option<Self> {
26623        if Self::can_cast(syntax.kind()) {
26624            Some(Self { syntax })
26625        } else {
26626            None
26627        }
26628    }
26629    #[inline]
26630    fn syntax(&self) -> &SyntaxNode {
26631        &self.syntax
26632    }
26633}
26634impl AstNode for SetFuncOption {
26635    #[inline]
26636    fn can_cast(kind: SyntaxKind) -> bool {
26637        kind == SyntaxKind::SET_FUNC_OPTION
26638    }
26639    #[inline]
26640    fn cast(syntax: SyntaxNode) -> Option<Self> {
26641        if Self::can_cast(syntax.kind()) {
26642            Some(Self { syntax })
26643        } else {
26644            None
26645        }
26646    }
26647    #[inline]
26648    fn syntax(&self) -> &SyntaxNode {
26649        &self.syntax
26650    }
26651}
26652impl AstNode for SetGenerated {
26653    #[inline]
26654    fn can_cast(kind: SyntaxKind) -> bool {
26655        kind == SyntaxKind::SET_GENERATED
26656    }
26657    #[inline]
26658    fn cast(syntax: SyntaxNode) -> Option<Self> {
26659        if Self::can_cast(syntax.kind()) {
26660            Some(Self { syntax })
26661        } else {
26662            None
26663        }
26664    }
26665    #[inline]
26666    fn syntax(&self) -> &SyntaxNode {
26667        &self.syntax
26668    }
26669}
26670impl AstNode for SetGeneratedOptions {
26671    #[inline]
26672    fn can_cast(kind: SyntaxKind) -> bool {
26673        kind == SyntaxKind::SET_GENERATED_OPTIONS
26674    }
26675    #[inline]
26676    fn cast(syntax: SyntaxNode) -> Option<Self> {
26677        if Self::can_cast(syntax.kind()) {
26678            Some(Self { syntax })
26679        } else {
26680            None
26681        }
26682    }
26683    #[inline]
26684    fn syntax(&self) -> &SyntaxNode {
26685        &self.syntax
26686    }
26687}
26688impl AstNode for SetLogged {
26689    #[inline]
26690    fn can_cast(kind: SyntaxKind) -> bool {
26691        kind == SyntaxKind::SET_LOGGED
26692    }
26693    #[inline]
26694    fn cast(syntax: SyntaxNode) -> Option<Self> {
26695        if Self::can_cast(syntax.kind()) {
26696            Some(Self { syntax })
26697        } else {
26698            None
26699        }
26700    }
26701    #[inline]
26702    fn syntax(&self) -> &SyntaxNode {
26703        &self.syntax
26704    }
26705}
26706impl AstNode for SetMultipleColumns {
26707    #[inline]
26708    fn can_cast(kind: SyntaxKind) -> bool {
26709        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
26710    }
26711    #[inline]
26712    fn cast(syntax: SyntaxNode) -> Option<Self> {
26713        if Self::can_cast(syntax.kind()) {
26714            Some(Self { syntax })
26715        } else {
26716            None
26717        }
26718    }
26719    #[inline]
26720    fn syntax(&self) -> &SyntaxNode {
26721        &self.syntax
26722    }
26723}
26724impl AstNode for SetNotNull {
26725    #[inline]
26726    fn can_cast(kind: SyntaxKind) -> bool {
26727        kind == SyntaxKind::SET_NOT_NULL
26728    }
26729    #[inline]
26730    fn cast(syntax: SyntaxNode) -> Option<Self> {
26731        if Self::can_cast(syntax.kind()) {
26732            Some(Self { syntax })
26733        } else {
26734            None
26735        }
26736    }
26737    #[inline]
26738    fn syntax(&self) -> &SyntaxNode {
26739        &self.syntax
26740    }
26741}
26742impl AstNode for SetNullColumns {
26743    #[inline]
26744    fn can_cast(kind: SyntaxKind) -> bool {
26745        kind == SyntaxKind::SET_NULL_COLUMNS
26746    }
26747    #[inline]
26748    fn cast(syntax: SyntaxNode) -> Option<Self> {
26749        if Self::can_cast(syntax.kind()) {
26750            Some(Self { syntax })
26751        } else {
26752            None
26753        }
26754    }
26755    #[inline]
26756    fn syntax(&self) -> &SyntaxNode {
26757        &self.syntax
26758    }
26759}
26760impl AstNode for SetOptions {
26761    #[inline]
26762    fn can_cast(kind: SyntaxKind) -> bool {
26763        kind == SyntaxKind::SET_OPTIONS
26764    }
26765    #[inline]
26766    fn cast(syntax: SyntaxNode) -> Option<Self> {
26767        if Self::can_cast(syntax.kind()) {
26768            Some(Self { syntax })
26769        } else {
26770            None
26771        }
26772    }
26773    #[inline]
26774    fn syntax(&self) -> &SyntaxNode {
26775        &self.syntax
26776    }
26777}
26778impl AstNode for SetOptionsList {
26779    #[inline]
26780    fn can_cast(kind: SyntaxKind) -> bool {
26781        kind == SyntaxKind::SET_OPTIONS_LIST
26782    }
26783    #[inline]
26784    fn cast(syntax: SyntaxNode) -> Option<Self> {
26785        if Self::can_cast(syntax.kind()) {
26786            Some(Self { syntax })
26787        } else {
26788            None
26789        }
26790    }
26791    #[inline]
26792    fn syntax(&self) -> &SyntaxNode {
26793        &self.syntax
26794    }
26795}
26796impl AstNode for SetRole {
26797    #[inline]
26798    fn can_cast(kind: SyntaxKind) -> bool {
26799        kind == SyntaxKind::SET_ROLE
26800    }
26801    #[inline]
26802    fn cast(syntax: SyntaxNode) -> Option<Self> {
26803        if Self::can_cast(syntax.kind()) {
26804            Some(Self { syntax })
26805        } else {
26806            None
26807        }
26808    }
26809    #[inline]
26810    fn syntax(&self) -> &SyntaxNode {
26811        &self.syntax
26812    }
26813}
26814impl AstNode for SetSchema {
26815    #[inline]
26816    fn can_cast(kind: SyntaxKind) -> bool {
26817        kind == SyntaxKind::SET_SCHEMA
26818    }
26819    #[inline]
26820    fn cast(syntax: SyntaxNode) -> Option<Self> {
26821        if Self::can_cast(syntax.kind()) {
26822            Some(Self { syntax })
26823        } else {
26824            None
26825        }
26826    }
26827    #[inline]
26828    fn syntax(&self) -> &SyntaxNode {
26829        &self.syntax
26830    }
26831}
26832impl AstNode for SetSequenceOption {
26833    #[inline]
26834    fn can_cast(kind: SyntaxKind) -> bool {
26835        kind == SyntaxKind::SET_SEQUENCE_OPTION
26836    }
26837    #[inline]
26838    fn cast(syntax: SyntaxNode) -> Option<Self> {
26839        if Self::can_cast(syntax.kind()) {
26840            Some(Self { syntax })
26841        } else {
26842            None
26843        }
26844    }
26845    #[inline]
26846    fn syntax(&self) -> &SyntaxNode {
26847        &self.syntax
26848    }
26849}
26850impl AstNode for SetSessionAuth {
26851    #[inline]
26852    fn can_cast(kind: SyntaxKind) -> bool {
26853        kind == SyntaxKind::SET_SESSION_AUTH
26854    }
26855    #[inline]
26856    fn cast(syntax: SyntaxNode) -> Option<Self> {
26857        if Self::can_cast(syntax.kind()) {
26858            Some(Self { syntax })
26859        } else {
26860            None
26861        }
26862    }
26863    #[inline]
26864    fn syntax(&self) -> &SyntaxNode {
26865        &self.syntax
26866    }
26867}
26868impl AstNode for SetSingleColumn {
26869    #[inline]
26870    fn can_cast(kind: SyntaxKind) -> bool {
26871        kind == SyntaxKind::SET_SINGLE_COLUMN
26872    }
26873    #[inline]
26874    fn cast(syntax: SyntaxNode) -> Option<Self> {
26875        if Self::can_cast(syntax.kind()) {
26876            Some(Self { syntax })
26877        } else {
26878            None
26879        }
26880    }
26881    #[inline]
26882    fn syntax(&self) -> &SyntaxNode {
26883        &self.syntax
26884    }
26885}
26886impl AstNode for SetStatistics {
26887    #[inline]
26888    fn can_cast(kind: SyntaxKind) -> bool {
26889        kind == SyntaxKind::SET_STATISTICS
26890    }
26891    #[inline]
26892    fn cast(syntax: SyntaxNode) -> Option<Self> {
26893        if Self::can_cast(syntax.kind()) {
26894            Some(Self { syntax })
26895        } else {
26896            None
26897        }
26898    }
26899    #[inline]
26900    fn syntax(&self) -> &SyntaxNode {
26901        &self.syntax
26902    }
26903}
26904impl AstNode for SetStorage {
26905    #[inline]
26906    fn can_cast(kind: SyntaxKind) -> bool {
26907        kind == SyntaxKind::SET_STORAGE
26908    }
26909    #[inline]
26910    fn cast(syntax: SyntaxNode) -> Option<Self> {
26911        if Self::can_cast(syntax.kind()) {
26912            Some(Self { syntax })
26913        } else {
26914            None
26915        }
26916    }
26917    #[inline]
26918    fn syntax(&self) -> &SyntaxNode {
26919        &self.syntax
26920    }
26921}
26922impl AstNode for SetTablespace {
26923    #[inline]
26924    fn can_cast(kind: SyntaxKind) -> bool {
26925        kind == SyntaxKind::SET_TABLESPACE
26926    }
26927    #[inline]
26928    fn cast(syntax: SyntaxNode) -> Option<Self> {
26929        if Self::can_cast(syntax.kind()) {
26930            Some(Self { syntax })
26931        } else {
26932            None
26933        }
26934    }
26935    #[inline]
26936    fn syntax(&self) -> &SyntaxNode {
26937        &self.syntax
26938    }
26939}
26940impl AstNode for SetTransaction {
26941    #[inline]
26942    fn can_cast(kind: SyntaxKind) -> bool {
26943        kind == SyntaxKind::SET_TRANSACTION
26944    }
26945    #[inline]
26946    fn cast(syntax: SyntaxNode) -> Option<Self> {
26947        if Self::can_cast(syntax.kind()) {
26948            Some(Self { syntax })
26949        } else {
26950            None
26951        }
26952    }
26953    #[inline]
26954    fn syntax(&self) -> &SyntaxNode {
26955        &self.syntax
26956    }
26957}
26958impl AstNode for SetType {
26959    #[inline]
26960    fn can_cast(kind: SyntaxKind) -> bool {
26961        kind == SyntaxKind::SET_TYPE
26962    }
26963    #[inline]
26964    fn cast(syntax: SyntaxNode) -> Option<Self> {
26965        if Self::can_cast(syntax.kind()) {
26966            Some(Self { syntax })
26967        } else {
26968            None
26969        }
26970    }
26971    #[inline]
26972    fn syntax(&self) -> &SyntaxNode {
26973        &self.syntax
26974    }
26975}
26976impl AstNode for SetUnlogged {
26977    #[inline]
26978    fn can_cast(kind: SyntaxKind) -> bool {
26979        kind == SyntaxKind::SET_UNLOGGED
26980    }
26981    #[inline]
26982    fn cast(syntax: SyntaxNode) -> Option<Self> {
26983        if Self::can_cast(syntax.kind()) {
26984            Some(Self { syntax })
26985        } else {
26986            None
26987        }
26988    }
26989    #[inline]
26990    fn syntax(&self) -> &SyntaxNode {
26991        &self.syntax
26992    }
26993}
26994impl AstNode for SetWithoutCluster {
26995    #[inline]
26996    fn can_cast(kind: SyntaxKind) -> bool {
26997        kind == SyntaxKind::SET_WITHOUT_CLUSTER
26998    }
26999    #[inline]
27000    fn cast(syntax: SyntaxNode) -> Option<Self> {
27001        if Self::can_cast(syntax.kind()) {
27002            Some(Self { syntax })
27003        } else {
27004            None
27005        }
27006    }
27007    #[inline]
27008    fn syntax(&self) -> &SyntaxNode {
27009        &self.syntax
27010    }
27011}
27012impl AstNode for SetWithoutOids {
27013    #[inline]
27014    fn can_cast(kind: SyntaxKind) -> bool {
27015        kind == SyntaxKind::SET_WITHOUT_OIDS
27016    }
27017    #[inline]
27018    fn cast(syntax: SyntaxNode) -> Option<Self> {
27019        if Self::can_cast(syntax.kind()) {
27020            Some(Self { syntax })
27021        } else {
27022            None
27023        }
27024    }
27025    #[inline]
27026    fn syntax(&self) -> &SyntaxNode {
27027        &self.syntax
27028    }
27029}
27030impl AstNode for Show {
27031    #[inline]
27032    fn can_cast(kind: SyntaxKind) -> bool {
27033        kind == SyntaxKind::SHOW
27034    }
27035    #[inline]
27036    fn cast(syntax: SyntaxNode) -> Option<Self> {
27037        if Self::can_cast(syntax.kind()) {
27038            Some(Self { syntax })
27039        } else {
27040            None
27041        }
27042    }
27043    #[inline]
27044    fn syntax(&self) -> &SyntaxNode {
27045        &self.syntax
27046    }
27047}
27048impl AstNode for SimilarTo {
27049    #[inline]
27050    fn can_cast(kind: SyntaxKind) -> bool {
27051        kind == SyntaxKind::SIMILAR_TO
27052    }
27053    #[inline]
27054    fn cast(syntax: SyntaxNode) -> Option<Self> {
27055        if Self::can_cast(syntax.kind()) {
27056            Some(Self { syntax })
27057        } else {
27058            None
27059        }
27060    }
27061    #[inline]
27062    fn syntax(&self) -> &SyntaxNode {
27063        &self.syntax
27064    }
27065}
27066impl AstNode for SliceExpr {
27067    #[inline]
27068    fn can_cast(kind: SyntaxKind) -> bool {
27069        kind == SyntaxKind::SLICE_EXPR
27070    }
27071    #[inline]
27072    fn cast(syntax: SyntaxNode) -> Option<Self> {
27073        if Self::can_cast(syntax.kind()) {
27074            Some(Self { syntax })
27075        } else {
27076            None
27077        }
27078    }
27079    #[inline]
27080    fn syntax(&self) -> &SyntaxNode {
27081        &self.syntax
27082    }
27083}
27084impl AstNode for SomeFn {
27085    #[inline]
27086    fn can_cast(kind: SyntaxKind) -> bool {
27087        kind == SyntaxKind::SOME_FN
27088    }
27089    #[inline]
27090    fn cast(syntax: SyntaxNode) -> Option<Self> {
27091        if Self::can_cast(syntax.kind()) {
27092            Some(Self { syntax })
27093        } else {
27094            None
27095        }
27096    }
27097    #[inline]
27098    fn syntax(&self) -> &SyntaxNode {
27099        &self.syntax
27100    }
27101}
27102impl AstNode for SortAsc {
27103    #[inline]
27104    fn can_cast(kind: SyntaxKind) -> bool {
27105        kind == SyntaxKind::SORT_ASC
27106    }
27107    #[inline]
27108    fn cast(syntax: SyntaxNode) -> Option<Self> {
27109        if Self::can_cast(syntax.kind()) {
27110            Some(Self { syntax })
27111        } else {
27112            None
27113        }
27114    }
27115    #[inline]
27116    fn syntax(&self) -> &SyntaxNode {
27117        &self.syntax
27118    }
27119}
27120impl AstNode for SortBy {
27121    #[inline]
27122    fn can_cast(kind: SyntaxKind) -> bool {
27123        kind == SyntaxKind::SORT_BY
27124    }
27125    #[inline]
27126    fn cast(syntax: SyntaxNode) -> Option<Self> {
27127        if Self::can_cast(syntax.kind()) {
27128            Some(Self { syntax })
27129        } else {
27130            None
27131        }
27132    }
27133    #[inline]
27134    fn syntax(&self) -> &SyntaxNode {
27135        &self.syntax
27136    }
27137}
27138impl AstNode for SortByList {
27139    #[inline]
27140    fn can_cast(kind: SyntaxKind) -> bool {
27141        kind == SyntaxKind::SORT_BY_LIST
27142    }
27143    #[inline]
27144    fn cast(syntax: SyntaxNode) -> Option<Self> {
27145        if Self::can_cast(syntax.kind()) {
27146            Some(Self { syntax })
27147        } else {
27148            None
27149        }
27150    }
27151    #[inline]
27152    fn syntax(&self) -> &SyntaxNode {
27153        &self.syntax
27154    }
27155}
27156impl AstNode for SortDesc {
27157    #[inline]
27158    fn can_cast(kind: SyntaxKind) -> bool {
27159        kind == SyntaxKind::SORT_DESC
27160    }
27161    #[inline]
27162    fn cast(syntax: SyntaxNode) -> Option<Self> {
27163        if Self::can_cast(syntax.kind()) {
27164            Some(Self { syntax })
27165        } else {
27166            None
27167        }
27168    }
27169    #[inline]
27170    fn syntax(&self) -> &SyntaxNode {
27171        &self.syntax
27172    }
27173}
27174impl AstNode for SortUsing {
27175    #[inline]
27176    fn can_cast(kind: SyntaxKind) -> bool {
27177        kind == SyntaxKind::SORT_USING
27178    }
27179    #[inline]
27180    fn cast(syntax: SyntaxNode) -> Option<Self> {
27181        if Self::can_cast(syntax.kind()) {
27182            Some(Self { syntax })
27183        } else {
27184            None
27185        }
27186    }
27187    #[inline]
27188    fn syntax(&self) -> &SyntaxNode {
27189        &self.syntax
27190    }
27191}
27192impl AstNode for SourceFile {
27193    #[inline]
27194    fn can_cast(kind: SyntaxKind) -> bool {
27195        kind == SyntaxKind::SOURCE_FILE
27196    }
27197    #[inline]
27198    fn cast(syntax: SyntaxNode) -> Option<Self> {
27199        if Self::can_cast(syntax.kind()) {
27200            Some(Self { syntax })
27201        } else {
27202            None
27203        }
27204    }
27205    #[inline]
27206    fn syntax(&self) -> &SyntaxNode {
27207        &self.syntax
27208    }
27209}
27210impl AstNode for SplitPartition {
27211    #[inline]
27212    fn can_cast(kind: SyntaxKind) -> bool {
27213        kind == SyntaxKind::SPLIT_PARTITION
27214    }
27215    #[inline]
27216    fn cast(syntax: SyntaxNode) -> Option<Self> {
27217        if Self::can_cast(syntax.kind()) {
27218            Some(Self { syntax })
27219        } else {
27220            None
27221        }
27222    }
27223    #[inline]
27224    fn syntax(&self) -> &SyntaxNode {
27225        &self.syntax
27226    }
27227}
27228impl AstNode for Storage {
27229    #[inline]
27230    fn can_cast(kind: SyntaxKind) -> bool {
27231        kind == SyntaxKind::STORAGE
27232    }
27233    #[inline]
27234    fn cast(syntax: SyntaxNode) -> Option<Self> {
27235        if Self::can_cast(syntax.kind()) {
27236            Some(Self { syntax })
27237        } else {
27238            None
27239        }
27240    }
27241    #[inline]
27242    fn syntax(&self) -> &SyntaxNode {
27243        &self.syntax
27244    }
27245}
27246impl AstNode for StrictFuncOption {
27247    #[inline]
27248    fn can_cast(kind: SyntaxKind) -> bool {
27249        kind == SyntaxKind::STRICT_FUNC_OPTION
27250    }
27251    #[inline]
27252    fn cast(syntax: SyntaxNode) -> Option<Self> {
27253        if Self::can_cast(syntax.kind()) {
27254            Some(Self { syntax })
27255        } else {
27256            None
27257        }
27258    }
27259    #[inline]
27260    fn syntax(&self) -> &SyntaxNode {
27261        &self.syntax
27262    }
27263}
27264impl AstNode for SubstringFn {
27265    #[inline]
27266    fn can_cast(kind: SyntaxKind) -> bool {
27267        kind == SyntaxKind::SUBSTRING_FN
27268    }
27269    #[inline]
27270    fn cast(syntax: SyntaxNode) -> Option<Self> {
27271        if Self::can_cast(syntax.kind()) {
27272            Some(Self { syntax })
27273        } else {
27274            None
27275        }
27276    }
27277    #[inline]
27278    fn syntax(&self) -> &SyntaxNode {
27279        &self.syntax
27280    }
27281}
27282impl AstNode for SupportFuncOption {
27283    #[inline]
27284    fn can_cast(kind: SyntaxKind) -> bool {
27285        kind == SyntaxKind::SUPPORT_FUNC_OPTION
27286    }
27287    #[inline]
27288    fn cast(syntax: SyntaxNode) -> Option<Self> {
27289        if Self::can_cast(syntax.kind()) {
27290            Some(Self { syntax })
27291        } else {
27292            None
27293        }
27294    }
27295    #[inline]
27296    fn syntax(&self) -> &SyntaxNode {
27297        &self.syntax
27298    }
27299}
27300impl AstNode for Table {
27301    #[inline]
27302    fn can_cast(kind: SyntaxKind) -> bool {
27303        kind == SyntaxKind::TABLE
27304    }
27305    #[inline]
27306    fn cast(syntax: SyntaxNode) -> Option<Self> {
27307        if Self::can_cast(syntax.kind()) {
27308            Some(Self { syntax })
27309        } else {
27310            None
27311        }
27312    }
27313    #[inline]
27314    fn syntax(&self) -> &SyntaxNode {
27315        &self.syntax
27316    }
27317}
27318impl AstNode for TableAndColumns {
27319    #[inline]
27320    fn can_cast(kind: SyntaxKind) -> bool {
27321        kind == SyntaxKind::TABLE_AND_COLUMNS
27322    }
27323    #[inline]
27324    fn cast(syntax: SyntaxNode) -> Option<Self> {
27325        if Self::can_cast(syntax.kind()) {
27326            Some(Self { syntax })
27327        } else {
27328            None
27329        }
27330    }
27331    #[inline]
27332    fn syntax(&self) -> &SyntaxNode {
27333        &self.syntax
27334    }
27335}
27336impl AstNode for TableAndColumnsList {
27337    #[inline]
27338    fn can_cast(kind: SyntaxKind) -> bool {
27339        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
27340    }
27341    #[inline]
27342    fn cast(syntax: SyntaxNode) -> Option<Self> {
27343        if Self::can_cast(syntax.kind()) {
27344            Some(Self { syntax })
27345        } else {
27346            None
27347        }
27348    }
27349    #[inline]
27350    fn syntax(&self) -> &SyntaxNode {
27351        &self.syntax
27352    }
27353}
27354impl AstNode for TableArgList {
27355    #[inline]
27356    fn can_cast(kind: SyntaxKind) -> bool {
27357        kind == SyntaxKind::TABLE_ARG_LIST
27358    }
27359    #[inline]
27360    fn cast(syntax: SyntaxNode) -> Option<Self> {
27361        if Self::can_cast(syntax.kind()) {
27362            Some(Self { syntax })
27363        } else {
27364            None
27365        }
27366    }
27367    #[inline]
27368    fn syntax(&self) -> &SyntaxNode {
27369        &self.syntax
27370    }
27371}
27372impl AstNode for TableList {
27373    #[inline]
27374    fn can_cast(kind: SyntaxKind) -> bool {
27375        kind == SyntaxKind::TABLE_LIST
27376    }
27377    #[inline]
27378    fn cast(syntax: SyntaxNode) -> Option<Self> {
27379        if Self::can_cast(syntax.kind()) {
27380            Some(Self { syntax })
27381        } else {
27382            None
27383        }
27384    }
27385    #[inline]
27386    fn syntax(&self) -> &SyntaxNode {
27387        &self.syntax
27388    }
27389}
27390impl AstNode for TablesampleClause {
27391    #[inline]
27392    fn can_cast(kind: SyntaxKind) -> bool {
27393        kind == SyntaxKind::TABLESAMPLE_CLAUSE
27394    }
27395    #[inline]
27396    fn cast(syntax: SyntaxNode) -> Option<Self> {
27397        if Self::can_cast(syntax.kind()) {
27398            Some(Self { syntax })
27399        } else {
27400            None
27401        }
27402    }
27403    #[inline]
27404    fn syntax(&self) -> &SyntaxNode {
27405        &self.syntax
27406    }
27407}
27408impl AstNode for Tablespace {
27409    #[inline]
27410    fn can_cast(kind: SyntaxKind) -> bool {
27411        kind == SyntaxKind::TABLESPACE
27412    }
27413    #[inline]
27414    fn cast(syntax: SyntaxNode) -> Option<Self> {
27415        if Self::can_cast(syntax.kind()) {
27416            Some(Self { syntax })
27417        } else {
27418            None
27419        }
27420    }
27421    #[inline]
27422    fn syntax(&self) -> &SyntaxNode {
27423        &self.syntax
27424    }
27425}
27426impl AstNode for Target {
27427    #[inline]
27428    fn can_cast(kind: SyntaxKind) -> bool {
27429        kind == SyntaxKind::TARGET
27430    }
27431    #[inline]
27432    fn cast(syntax: SyntaxNode) -> Option<Self> {
27433        if Self::can_cast(syntax.kind()) {
27434            Some(Self { syntax })
27435        } else {
27436            None
27437        }
27438    }
27439    #[inline]
27440    fn syntax(&self) -> &SyntaxNode {
27441        &self.syntax
27442    }
27443}
27444impl AstNode for TargetList {
27445    #[inline]
27446    fn can_cast(kind: SyntaxKind) -> bool {
27447        kind == SyntaxKind::TARGET_LIST
27448    }
27449    #[inline]
27450    fn cast(syntax: SyntaxNode) -> Option<Self> {
27451        if Self::can_cast(syntax.kind()) {
27452            Some(Self { syntax })
27453        } else {
27454            None
27455        }
27456    }
27457    #[inline]
27458    fn syntax(&self) -> &SyntaxNode {
27459        &self.syntax
27460    }
27461}
27462impl AstNode for TimeType {
27463    #[inline]
27464    fn can_cast(kind: SyntaxKind) -> bool {
27465        kind == SyntaxKind::TIME_TYPE
27466    }
27467    #[inline]
27468    fn cast(syntax: SyntaxNode) -> Option<Self> {
27469        if Self::can_cast(syntax.kind()) {
27470            Some(Self { syntax })
27471        } else {
27472            None
27473        }
27474    }
27475    #[inline]
27476    fn syntax(&self) -> &SyntaxNode {
27477        &self.syntax
27478    }
27479}
27480impl AstNode for Timing {
27481    #[inline]
27482    fn can_cast(kind: SyntaxKind) -> bool {
27483        kind == SyntaxKind::TIMING
27484    }
27485    #[inline]
27486    fn cast(syntax: SyntaxNode) -> Option<Self> {
27487        if Self::can_cast(syntax.kind()) {
27488            Some(Self { syntax })
27489        } else {
27490            None
27491        }
27492    }
27493    #[inline]
27494    fn syntax(&self) -> &SyntaxNode {
27495        &self.syntax
27496    }
27497}
27498impl AstNode for TransactionModeList {
27499    #[inline]
27500    fn can_cast(kind: SyntaxKind) -> bool {
27501        kind == SyntaxKind::TRANSACTION_MODE_LIST
27502    }
27503    #[inline]
27504    fn cast(syntax: SyntaxNode) -> Option<Self> {
27505        if Self::can_cast(syntax.kind()) {
27506            Some(Self { syntax })
27507        } else {
27508            None
27509        }
27510    }
27511    #[inline]
27512    fn syntax(&self) -> &SyntaxNode {
27513        &self.syntax
27514    }
27515}
27516impl AstNode for TransformFromFunc {
27517    #[inline]
27518    fn can_cast(kind: SyntaxKind) -> bool {
27519        kind == SyntaxKind::TRANSFORM_FROM_FUNC
27520    }
27521    #[inline]
27522    fn cast(syntax: SyntaxNode) -> Option<Self> {
27523        if Self::can_cast(syntax.kind()) {
27524            Some(Self { syntax })
27525        } else {
27526            None
27527        }
27528    }
27529    #[inline]
27530    fn syntax(&self) -> &SyntaxNode {
27531        &self.syntax
27532    }
27533}
27534impl AstNode for TransformFuncOption {
27535    #[inline]
27536    fn can_cast(kind: SyntaxKind) -> bool {
27537        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
27538    }
27539    #[inline]
27540    fn cast(syntax: SyntaxNode) -> Option<Self> {
27541        if Self::can_cast(syntax.kind()) {
27542            Some(Self { syntax })
27543        } else {
27544            None
27545        }
27546    }
27547    #[inline]
27548    fn syntax(&self) -> &SyntaxNode {
27549        &self.syntax
27550    }
27551}
27552impl AstNode for TransformToFunc {
27553    #[inline]
27554    fn can_cast(kind: SyntaxKind) -> bool {
27555        kind == SyntaxKind::TRANSFORM_TO_FUNC
27556    }
27557    #[inline]
27558    fn cast(syntax: SyntaxNode) -> Option<Self> {
27559        if Self::can_cast(syntax.kind()) {
27560            Some(Self { syntax })
27561        } else {
27562            None
27563        }
27564    }
27565    #[inline]
27566    fn syntax(&self) -> &SyntaxNode {
27567        &self.syntax
27568    }
27569}
27570impl AstNode for TriggerEvent {
27571    #[inline]
27572    fn can_cast(kind: SyntaxKind) -> bool {
27573        kind == SyntaxKind::TRIGGER_EVENT
27574    }
27575    #[inline]
27576    fn cast(syntax: SyntaxNode) -> Option<Self> {
27577        if Self::can_cast(syntax.kind()) {
27578            Some(Self { syntax })
27579        } else {
27580            None
27581        }
27582    }
27583    #[inline]
27584    fn syntax(&self) -> &SyntaxNode {
27585        &self.syntax
27586    }
27587}
27588impl AstNode for TriggerEventList {
27589    #[inline]
27590    fn can_cast(kind: SyntaxKind) -> bool {
27591        kind == SyntaxKind::TRIGGER_EVENT_LIST
27592    }
27593    #[inline]
27594    fn cast(syntax: SyntaxNode) -> Option<Self> {
27595        if Self::can_cast(syntax.kind()) {
27596            Some(Self { syntax })
27597        } else {
27598            None
27599        }
27600    }
27601    #[inline]
27602    fn syntax(&self) -> &SyntaxNode {
27603        &self.syntax
27604    }
27605}
27606impl AstNode for TriggerEventUpdate {
27607    #[inline]
27608    fn can_cast(kind: SyntaxKind) -> bool {
27609        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
27610    }
27611    #[inline]
27612    fn cast(syntax: SyntaxNode) -> Option<Self> {
27613        if Self::can_cast(syntax.kind()) {
27614            Some(Self { syntax })
27615        } else {
27616            None
27617        }
27618    }
27619    #[inline]
27620    fn syntax(&self) -> &SyntaxNode {
27621        &self.syntax
27622    }
27623}
27624impl AstNode for TrimFn {
27625    #[inline]
27626    fn can_cast(kind: SyntaxKind) -> bool {
27627        kind == SyntaxKind::TRIM_FN
27628    }
27629    #[inline]
27630    fn cast(syntax: SyntaxNode) -> Option<Self> {
27631        if Self::can_cast(syntax.kind()) {
27632            Some(Self { syntax })
27633        } else {
27634            None
27635        }
27636    }
27637    #[inline]
27638    fn syntax(&self) -> &SyntaxNode {
27639        &self.syntax
27640    }
27641}
27642impl AstNode for Truncate {
27643    #[inline]
27644    fn can_cast(kind: SyntaxKind) -> bool {
27645        kind == SyntaxKind::TRUNCATE
27646    }
27647    #[inline]
27648    fn cast(syntax: SyntaxNode) -> Option<Self> {
27649        if Self::can_cast(syntax.kind()) {
27650            Some(Self { syntax })
27651        } else {
27652            None
27653        }
27654    }
27655    #[inline]
27656    fn syntax(&self) -> &SyntaxNode {
27657        &self.syntax
27658    }
27659}
27660impl AstNode for TupleExpr {
27661    #[inline]
27662    fn can_cast(kind: SyntaxKind) -> bool {
27663        kind == SyntaxKind::TUPLE_EXPR
27664    }
27665    #[inline]
27666    fn cast(syntax: SyntaxNode) -> Option<Self> {
27667        if Self::can_cast(syntax.kind()) {
27668            Some(Self { syntax })
27669        } else {
27670            None
27671        }
27672    }
27673    #[inline]
27674    fn syntax(&self) -> &SyntaxNode {
27675        &self.syntax
27676    }
27677}
27678impl AstNode for UnicodeNormalForm {
27679    #[inline]
27680    fn can_cast(kind: SyntaxKind) -> bool {
27681        kind == SyntaxKind::UNICODE_NORMAL_FORM
27682    }
27683    #[inline]
27684    fn cast(syntax: SyntaxNode) -> Option<Self> {
27685        if Self::can_cast(syntax.kind()) {
27686            Some(Self { syntax })
27687        } else {
27688            None
27689        }
27690    }
27691    #[inline]
27692    fn syntax(&self) -> &SyntaxNode {
27693        &self.syntax
27694    }
27695}
27696impl AstNode for UniqueConstraint {
27697    #[inline]
27698    fn can_cast(kind: SyntaxKind) -> bool {
27699        kind == SyntaxKind::UNIQUE_CONSTRAINT
27700    }
27701    #[inline]
27702    fn cast(syntax: SyntaxNode) -> Option<Self> {
27703        if Self::can_cast(syntax.kind()) {
27704            Some(Self { syntax })
27705        } else {
27706            None
27707        }
27708    }
27709    #[inline]
27710    fn syntax(&self) -> &SyntaxNode {
27711        &self.syntax
27712    }
27713}
27714impl AstNode for Unlisten {
27715    #[inline]
27716    fn can_cast(kind: SyntaxKind) -> bool {
27717        kind == SyntaxKind::UNLISTEN
27718    }
27719    #[inline]
27720    fn cast(syntax: SyntaxNode) -> Option<Self> {
27721        if Self::can_cast(syntax.kind()) {
27722            Some(Self { syntax })
27723        } else {
27724            None
27725        }
27726    }
27727    #[inline]
27728    fn syntax(&self) -> &SyntaxNode {
27729        &self.syntax
27730    }
27731}
27732impl AstNode for Update {
27733    #[inline]
27734    fn can_cast(kind: SyntaxKind) -> bool {
27735        kind == SyntaxKind::UPDATE
27736    }
27737    #[inline]
27738    fn cast(syntax: SyntaxNode) -> Option<Self> {
27739        if Self::can_cast(syntax.kind()) {
27740            Some(Self { syntax })
27741        } else {
27742            None
27743        }
27744    }
27745    #[inline]
27746    fn syntax(&self) -> &SyntaxNode {
27747        &self.syntax
27748    }
27749}
27750impl AstNode for UsingClause {
27751    #[inline]
27752    fn can_cast(kind: SyntaxKind) -> bool {
27753        kind == SyntaxKind::USING_CLAUSE
27754    }
27755    #[inline]
27756    fn cast(syntax: SyntaxNode) -> Option<Self> {
27757        if Self::can_cast(syntax.kind()) {
27758            Some(Self { syntax })
27759        } else {
27760            None
27761        }
27762    }
27763    #[inline]
27764    fn syntax(&self) -> &SyntaxNode {
27765        &self.syntax
27766    }
27767}
27768impl AstNode for UsingExprClause {
27769    #[inline]
27770    fn can_cast(kind: SyntaxKind) -> bool {
27771        kind == SyntaxKind::USING_EXPR_CLAUSE
27772    }
27773    #[inline]
27774    fn cast(syntax: SyntaxNode) -> Option<Self> {
27775        if Self::can_cast(syntax.kind()) {
27776            Some(Self { syntax })
27777        } else {
27778            None
27779        }
27780    }
27781    #[inline]
27782    fn syntax(&self) -> &SyntaxNode {
27783        &self.syntax
27784    }
27785}
27786impl AstNode for UsingIndex {
27787    #[inline]
27788    fn can_cast(kind: SyntaxKind) -> bool {
27789        kind == SyntaxKind::USING_INDEX
27790    }
27791    #[inline]
27792    fn cast(syntax: SyntaxNode) -> Option<Self> {
27793        if Self::can_cast(syntax.kind()) {
27794            Some(Self { syntax })
27795        } else {
27796            None
27797        }
27798    }
27799    #[inline]
27800    fn syntax(&self) -> &SyntaxNode {
27801        &self.syntax
27802    }
27803}
27804impl AstNode for UsingMethod {
27805    #[inline]
27806    fn can_cast(kind: SyntaxKind) -> bool {
27807        kind == SyntaxKind::USING_METHOD
27808    }
27809    #[inline]
27810    fn cast(syntax: SyntaxNode) -> Option<Self> {
27811        if Self::can_cast(syntax.kind()) {
27812            Some(Self { syntax })
27813        } else {
27814            None
27815        }
27816    }
27817    #[inline]
27818    fn syntax(&self) -> &SyntaxNode {
27819        &self.syntax
27820    }
27821}
27822impl AstNode for UsingOnClause {
27823    #[inline]
27824    fn can_cast(kind: SyntaxKind) -> bool {
27825        kind == SyntaxKind::USING_ON_CLAUSE
27826    }
27827    #[inline]
27828    fn cast(syntax: SyntaxNode) -> Option<Self> {
27829        if Self::can_cast(syntax.kind()) {
27830            Some(Self { syntax })
27831        } else {
27832            None
27833        }
27834    }
27835    #[inline]
27836    fn syntax(&self) -> &SyntaxNode {
27837        &self.syntax
27838    }
27839}
27840impl AstNode for Vacuum {
27841    #[inline]
27842    fn can_cast(kind: SyntaxKind) -> bool {
27843        kind == SyntaxKind::VACUUM
27844    }
27845    #[inline]
27846    fn cast(syntax: SyntaxNode) -> Option<Self> {
27847        if Self::can_cast(syntax.kind()) {
27848            Some(Self { syntax })
27849        } else {
27850            None
27851        }
27852    }
27853    #[inline]
27854    fn syntax(&self) -> &SyntaxNode {
27855        &self.syntax
27856    }
27857}
27858impl AstNode for VacuumOption {
27859    #[inline]
27860    fn can_cast(kind: SyntaxKind) -> bool {
27861        kind == SyntaxKind::VACUUM_OPTION
27862    }
27863    #[inline]
27864    fn cast(syntax: SyntaxNode) -> Option<Self> {
27865        if Self::can_cast(syntax.kind()) {
27866            Some(Self { syntax })
27867        } else {
27868            None
27869        }
27870    }
27871    #[inline]
27872    fn syntax(&self) -> &SyntaxNode {
27873        &self.syntax
27874    }
27875}
27876impl AstNode for VacuumOptionList {
27877    #[inline]
27878    fn can_cast(kind: SyntaxKind) -> bool {
27879        kind == SyntaxKind::VACUUM_OPTION_LIST
27880    }
27881    #[inline]
27882    fn cast(syntax: SyntaxNode) -> Option<Self> {
27883        if Self::can_cast(syntax.kind()) {
27884            Some(Self { syntax })
27885        } else {
27886            None
27887        }
27888    }
27889    #[inline]
27890    fn syntax(&self) -> &SyntaxNode {
27891        &self.syntax
27892    }
27893}
27894impl AstNode for ValidateConstraint {
27895    #[inline]
27896    fn can_cast(kind: SyntaxKind) -> bool {
27897        kind == SyntaxKind::VALIDATE_CONSTRAINT
27898    }
27899    #[inline]
27900    fn cast(syntax: SyntaxNode) -> Option<Self> {
27901        if Self::can_cast(syntax.kind()) {
27902            Some(Self { syntax })
27903        } else {
27904            None
27905        }
27906    }
27907    #[inline]
27908    fn syntax(&self) -> &SyntaxNode {
27909        &self.syntax
27910    }
27911}
27912impl AstNode for Values {
27913    #[inline]
27914    fn can_cast(kind: SyntaxKind) -> bool {
27915        kind == SyntaxKind::VALUES
27916    }
27917    #[inline]
27918    fn cast(syntax: SyntaxNode) -> Option<Self> {
27919        if Self::can_cast(syntax.kind()) {
27920            Some(Self { syntax })
27921        } else {
27922            None
27923        }
27924    }
27925    #[inline]
27926    fn syntax(&self) -> &SyntaxNode {
27927        &self.syntax
27928    }
27929}
27930impl AstNode for Variant {
27931    #[inline]
27932    fn can_cast(kind: SyntaxKind) -> bool {
27933        kind == SyntaxKind::VARIANT
27934    }
27935    #[inline]
27936    fn cast(syntax: SyntaxNode) -> Option<Self> {
27937        if Self::can_cast(syntax.kind()) {
27938            Some(Self { syntax })
27939        } else {
27940            None
27941        }
27942    }
27943    #[inline]
27944    fn syntax(&self) -> &SyntaxNode {
27945        &self.syntax
27946    }
27947}
27948impl AstNode for VariantList {
27949    #[inline]
27950    fn can_cast(kind: SyntaxKind) -> bool {
27951        kind == SyntaxKind::VARIANT_LIST
27952    }
27953    #[inline]
27954    fn cast(syntax: SyntaxNode) -> Option<Self> {
27955        if Self::can_cast(syntax.kind()) {
27956            Some(Self { syntax })
27957        } else {
27958            None
27959        }
27960    }
27961    #[inline]
27962    fn syntax(&self) -> &SyntaxNode {
27963        &self.syntax
27964    }
27965}
27966impl AstNode for VolatilityFuncOption {
27967    #[inline]
27968    fn can_cast(kind: SyntaxKind) -> bool {
27969        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
27970    }
27971    #[inline]
27972    fn cast(syntax: SyntaxNode) -> Option<Self> {
27973        if Self::can_cast(syntax.kind()) {
27974            Some(Self { syntax })
27975        } else {
27976            None
27977        }
27978    }
27979    #[inline]
27980    fn syntax(&self) -> &SyntaxNode {
27981        &self.syntax
27982    }
27983}
27984impl AstNode for WhenClause {
27985    #[inline]
27986    fn can_cast(kind: SyntaxKind) -> bool {
27987        kind == SyntaxKind::WHEN_CLAUSE
27988    }
27989    #[inline]
27990    fn cast(syntax: SyntaxNode) -> Option<Self> {
27991        if Self::can_cast(syntax.kind()) {
27992            Some(Self { syntax })
27993        } else {
27994            None
27995        }
27996    }
27997    #[inline]
27998    fn syntax(&self) -> &SyntaxNode {
27999        &self.syntax
28000    }
28001}
28002impl AstNode for WhenClauseList {
28003    #[inline]
28004    fn can_cast(kind: SyntaxKind) -> bool {
28005        kind == SyntaxKind::WHEN_CLAUSE_LIST
28006    }
28007    #[inline]
28008    fn cast(syntax: SyntaxNode) -> Option<Self> {
28009        if Self::can_cast(syntax.kind()) {
28010            Some(Self { syntax })
28011        } else {
28012            None
28013        }
28014    }
28015    #[inline]
28016    fn syntax(&self) -> &SyntaxNode {
28017        &self.syntax
28018    }
28019}
28020impl AstNode for WhenCondition {
28021    #[inline]
28022    fn can_cast(kind: SyntaxKind) -> bool {
28023        kind == SyntaxKind::WHEN_CONDITION
28024    }
28025    #[inline]
28026    fn cast(syntax: SyntaxNode) -> Option<Self> {
28027        if Self::can_cast(syntax.kind()) {
28028            Some(Self { syntax })
28029        } else {
28030            None
28031        }
28032    }
28033    #[inline]
28034    fn syntax(&self) -> &SyntaxNode {
28035        &self.syntax
28036    }
28037}
28038impl AstNode for WhereClause {
28039    #[inline]
28040    fn can_cast(kind: SyntaxKind) -> bool {
28041        kind == SyntaxKind::WHERE_CLAUSE
28042    }
28043    #[inline]
28044    fn cast(syntax: SyntaxNode) -> Option<Self> {
28045        if Self::can_cast(syntax.kind()) {
28046            Some(Self { syntax })
28047        } else {
28048            None
28049        }
28050    }
28051    #[inline]
28052    fn syntax(&self) -> &SyntaxNode {
28053        &self.syntax
28054    }
28055}
28056impl AstNode for WhereConditionClause {
28057    #[inline]
28058    fn can_cast(kind: SyntaxKind) -> bool {
28059        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
28060    }
28061    #[inline]
28062    fn cast(syntax: SyntaxNode) -> Option<Self> {
28063        if Self::can_cast(syntax.kind()) {
28064            Some(Self { syntax })
28065        } else {
28066            None
28067        }
28068    }
28069    #[inline]
28070    fn syntax(&self) -> &SyntaxNode {
28071        &self.syntax
28072    }
28073}
28074impl AstNode for WhereCurrentOf {
28075    #[inline]
28076    fn can_cast(kind: SyntaxKind) -> bool {
28077        kind == SyntaxKind::WHERE_CURRENT_OF
28078    }
28079    #[inline]
28080    fn cast(syntax: SyntaxNode) -> Option<Self> {
28081        if Self::can_cast(syntax.kind()) {
28082            Some(Self { syntax })
28083        } else {
28084            None
28085        }
28086    }
28087    #[inline]
28088    fn syntax(&self) -> &SyntaxNode {
28089        &self.syntax
28090    }
28091}
28092impl AstNode for WindowClause {
28093    #[inline]
28094    fn can_cast(kind: SyntaxKind) -> bool {
28095        kind == SyntaxKind::WINDOW_CLAUSE
28096    }
28097    #[inline]
28098    fn cast(syntax: SyntaxNode) -> Option<Self> {
28099        if Self::can_cast(syntax.kind()) {
28100            Some(Self { syntax })
28101        } else {
28102            None
28103        }
28104    }
28105    #[inline]
28106    fn syntax(&self) -> &SyntaxNode {
28107        &self.syntax
28108    }
28109}
28110impl AstNode for WindowDef {
28111    #[inline]
28112    fn can_cast(kind: SyntaxKind) -> bool {
28113        kind == SyntaxKind::WINDOW_DEF
28114    }
28115    #[inline]
28116    fn cast(syntax: SyntaxNode) -> Option<Self> {
28117        if Self::can_cast(syntax.kind()) {
28118            Some(Self { syntax })
28119        } else {
28120            None
28121        }
28122    }
28123    #[inline]
28124    fn syntax(&self) -> &SyntaxNode {
28125        &self.syntax
28126    }
28127}
28128impl AstNode for WindowFuncOption {
28129    #[inline]
28130    fn can_cast(kind: SyntaxKind) -> bool {
28131        kind == SyntaxKind::WINDOW_FUNC_OPTION
28132    }
28133    #[inline]
28134    fn cast(syntax: SyntaxNode) -> Option<Self> {
28135        if Self::can_cast(syntax.kind()) {
28136            Some(Self { syntax })
28137        } else {
28138            None
28139        }
28140    }
28141    #[inline]
28142    fn syntax(&self) -> &SyntaxNode {
28143        &self.syntax
28144    }
28145}
28146impl AstNode for WindowSpec {
28147    #[inline]
28148    fn can_cast(kind: SyntaxKind) -> bool {
28149        kind == SyntaxKind::WINDOW_SPEC
28150    }
28151    #[inline]
28152    fn cast(syntax: SyntaxNode) -> Option<Self> {
28153        if Self::can_cast(syntax.kind()) {
28154            Some(Self { syntax })
28155        } else {
28156            None
28157        }
28158    }
28159    #[inline]
28160    fn syntax(&self) -> &SyntaxNode {
28161        &self.syntax
28162    }
28163}
28164impl AstNode for WithCheckExprClause {
28165    #[inline]
28166    fn can_cast(kind: SyntaxKind) -> bool {
28167        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
28168    }
28169    #[inline]
28170    fn cast(syntax: SyntaxNode) -> Option<Self> {
28171        if Self::can_cast(syntax.kind()) {
28172            Some(Self { syntax })
28173        } else {
28174            None
28175        }
28176    }
28177    #[inline]
28178    fn syntax(&self) -> &SyntaxNode {
28179        &self.syntax
28180    }
28181}
28182impl AstNode for WithClause {
28183    #[inline]
28184    fn can_cast(kind: SyntaxKind) -> bool {
28185        kind == SyntaxKind::WITH_CLAUSE
28186    }
28187    #[inline]
28188    fn cast(syntax: SyntaxNode) -> Option<Self> {
28189        if Self::can_cast(syntax.kind()) {
28190            Some(Self { syntax })
28191        } else {
28192            None
28193        }
28194    }
28195    #[inline]
28196    fn syntax(&self) -> &SyntaxNode {
28197        &self.syntax
28198    }
28199}
28200impl AstNode for WithData {
28201    #[inline]
28202    fn can_cast(kind: SyntaxKind) -> bool {
28203        kind == SyntaxKind::WITH_DATA
28204    }
28205    #[inline]
28206    fn cast(syntax: SyntaxNode) -> Option<Self> {
28207        if Self::can_cast(syntax.kind()) {
28208            Some(Self { syntax })
28209        } else {
28210            None
28211        }
28212    }
28213    #[inline]
28214    fn syntax(&self) -> &SyntaxNode {
28215        &self.syntax
28216    }
28217}
28218impl AstNode for WithNoData {
28219    #[inline]
28220    fn can_cast(kind: SyntaxKind) -> bool {
28221        kind == SyntaxKind::WITH_NO_DATA
28222    }
28223    #[inline]
28224    fn cast(syntax: SyntaxNode) -> Option<Self> {
28225        if Self::can_cast(syntax.kind()) {
28226            Some(Self { syntax })
28227        } else {
28228            None
28229        }
28230    }
28231    #[inline]
28232    fn syntax(&self) -> &SyntaxNode {
28233        &self.syntax
28234    }
28235}
28236impl AstNode for WithOptions {
28237    #[inline]
28238    fn can_cast(kind: SyntaxKind) -> bool {
28239        kind == SyntaxKind::WITH_OPTIONS
28240    }
28241    #[inline]
28242    fn cast(syntax: SyntaxNode) -> Option<Self> {
28243        if Self::can_cast(syntax.kind()) {
28244            Some(Self { syntax })
28245        } else {
28246            None
28247        }
28248    }
28249    #[inline]
28250    fn syntax(&self) -> &SyntaxNode {
28251        &self.syntax
28252    }
28253}
28254impl AstNode for WithParams {
28255    #[inline]
28256    fn can_cast(kind: SyntaxKind) -> bool {
28257        kind == SyntaxKind::WITH_PARAMS
28258    }
28259    #[inline]
28260    fn cast(syntax: SyntaxNode) -> Option<Self> {
28261        if Self::can_cast(syntax.kind()) {
28262            Some(Self { syntax })
28263        } else {
28264            None
28265        }
28266    }
28267    #[inline]
28268    fn syntax(&self) -> &SyntaxNode {
28269        &self.syntax
28270    }
28271}
28272impl AstNode for WithTable {
28273    #[inline]
28274    fn can_cast(kind: SyntaxKind) -> bool {
28275        kind == SyntaxKind::WITH_TABLE
28276    }
28277    #[inline]
28278    fn cast(syntax: SyntaxNode) -> Option<Self> {
28279        if Self::can_cast(syntax.kind()) {
28280            Some(Self { syntax })
28281        } else {
28282            None
28283        }
28284    }
28285    #[inline]
28286    fn syntax(&self) -> &SyntaxNode {
28287        &self.syntax
28288    }
28289}
28290impl AstNode for WithTimezone {
28291    #[inline]
28292    fn can_cast(kind: SyntaxKind) -> bool {
28293        kind == SyntaxKind::WITH_TIMEZONE
28294    }
28295    #[inline]
28296    fn cast(syntax: SyntaxNode) -> Option<Self> {
28297        if Self::can_cast(syntax.kind()) {
28298            Some(Self { syntax })
28299        } else {
28300            None
28301        }
28302    }
28303    #[inline]
28304    fn syntax(&self) -> &SyntaxNode {
28305        &self.syntax
28306    }
28307}
28308impl AstNode for WithinClause {
28309    #[inline]
28310    fn can_cast(kind: SyntaxKind) -> bool {
28311        kind == SyntaxKind::WITHIN_CLAUSE
28312    }
28313    #[inline]
28314    fn cast(syntax: SyntaxNode) -> Option<Self> {
28315        if Self::can_cast(syntax.kind()) {
28316            Some(Self { syntax })
28317        } else {
28318            None
28319        }
28320    }
28321    #[inline]
28322    fn syntax(&self) -> &SyntaxNode {
28323        &self.syntax
28324    }
28325}
28326impl AstNode for WithoutOids {
28327    #[inline]
28328    fn can_cast(kind: SyntaxKind) -> bool {
28329        kind == SyntaxKind::WITHOUT_OIDS
28330    }
28331    #[inline]
28332    fn cast(syntax: SyntaxNode) -> Option<Self> {
28333        if Self::can_cast(syntax.kind()) {
28334            Some(Self { syntax })
28335        } else {
28336            None
28337        }
28338    }
28339    #[inline]
28340    fn syntax(&self) -> &SyntaxNode {
28341        &self.syntax
28342    }
28343}
28344impl AstNode for WithoutTimezone {
28345    #[inline]
28346    fn can_cast(kind: SyntaxKind) -> bool {
28347        kind == SyntaxKind::WITHOUT_TIMEZONE
28348    }
28349    #[inline]
28350    fn cast(syntax: SyntaxNode) -> Option<Self> {
28351        if Self::can_cast(syntax.kind()) {
28352            Some(Self { syntax })
28353        } else {
28354            None
28355        }
28356    }
28357    #[inline]
28358    fn syntax(&self) -> &SyntaxNode {
28359        &self.syntax
28360    }
28361}
28362impl AstNode for XmlAttributeList {
28363    #[inline]
28364    fn can_cast(kind: SyntaxKind) -> bool {
28365        kind == SyntaxKind::XML_ATTRIBUTE_LIST
28366    }
28367    #[inline]
28368    fn cast(syntax: SyntaxNode) -> Option<Self> {
28369        if Self::can_cast(syntax.kind()) {
28370            Some(Self { syntax })
28371        } else {
28372            None
28373        }
28374    }
28375    #[inline]
28376    fn syntax(&self) -> &SyntaxNode {
28377        &self.syntax
28378    }
28379}
28380impl AstNode for XmlColumnOption {
28381    #[inline]
28382    fn can_cast(kind: SyntaxKind) -> bool {
28383        kind == SyntaxKind::XML_COLUMN_OPTION
28384    }
28385    #[inline]
28386    fn cast(syntax: SyntaxNode) -> Option<Self> {
28387        if Self::can_cast(syntax.kind()) {
28388            Some(Self { syntax })
28389        } else {
28390            None
28391        }
28392    }
28393    #[inline]
28394    fn syntax(&self) -> &SyntaxNode {
28395        &self.syntax
28396    }
28397}
28398impl AstNode for XmlColumnOptionList {
28399    #[inline]
28400    fn can_cast(kind: SyntaxKind) -> bool {
28401        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
28402    }
28403    #[inline]
28404    fn cast(syntax: SyntaxNode) -> Option<Self> {
28405        if Self::can_cast(syntax.kind()) {
28406            Some(Self { syntax })
28407        } else {
28408            None
28409        }
28410    }
28411    #[inline]
28412    fn syntax(&self) -> &SyntaxNode {
28413        &self.syntax
28414    }
28415}
28416impl AstNode for XmlElementFn {
28417    #[inline]
28418    fn can_cast(kind: SyntaxKind) -> bool {
28419        kind == SyntaxKind::XML_ELEMENT_FN
28420    }
28421    #[inline]
28422    fn cast(syntax: SyntaxNode) -> Option<Self> {
28423        if Self::can_cast(syntax.kind()) {
28424            Some(Self { syntax })
28425        } else {
28426            None
28427        }
28428    }
28429    #[inline]
28430    fn syntax(&self) -> &SyntaxNode {
28431        &self.syntax
28432    }
28433}
28434impl AstNode for XmlExistsFn {
28435    #[inline]
28436    fn can_cast(kind: SyntaxKind) -> bool {
28437        kind == SyntaxKind::XML_EXISTS_FN
28438    }
28439    #[inline]
28440    fn cast(syntax: SyntaxNode) -> Option<Self> {
28441        if Self::can_cast(syntax.kind()) {
28442            Some(Self { syntax })
28443        } else {
28444            None
28445        }
28446    }
28447    #[inline]
28448    fn syntax(&self) -> &SyntaxNode {
28449        &self.syntax
28450    }
28451}
28452impl AstNode for XmlForestFn {
28453    #[inline]
28454    fn can_cast(kind: SyntaxKind) -> bool {
28455        kind == SyntaxKind::XML_FOREST_FN
28456    }
28457    #[inline]
28458    fn cast(syntax: SyntaxNode) -> Option<Self> {
28459        if Self::can_cast(syntax.kind()) {
28460            Some(Self { syntax })
28461        } else {
28462            None
28463        }
28464    }
28465    #[inline]
28466    fn syntax(&self) -> &SyntaxNode {
28467        &self.syntax
28468    }
28469}
28470impl AstNode for XmlNamespace {
28471    #[inline]
28472    fn can_cast(kind: SyntaxKind) -> bool {
28473        kind == SyntaxKind::XML_NAMESPACE
28474    }
28475    #[inline]
28476    fn cast(syntax: SyntaxNode) -> Option<Self> {
28477        if Self::can_cast(syntax.kind()) {
28478            Some(Self { syntax })
28479        } else {
28480            None
28481        }
28482    }
28483    #[inline]
28484    fn syntax(&self) -> &SyntaxNode {
28485        &self.syntax
28486    }
28487}
28488impl AstNode for XmlNamespaceList {
28489    #[inline]
28490    fn can_cast(kind: SyntaxKind) -> bool {
28491        kind == SyntaxKind::XML_NAMESPACE_LIST
28492    }
28493    #[inline]
28494    fn cast(syntax: SyntaxNode) -> Option<Self> {
28495        if Self::can_cast(syntax.kind()) {
28496            Some(Self { syntax })
28497        } else {
28498            None
28499        }
28500    }
28501    #[inline]
28502    fn syntax(&self) -> &SyntaxNode {
28503        &self.syntax
28504    }
28505}
28506impl AstNode for XmlParseFn {
28507    #[inline]
28508    fn can_cast(kind: SyntaxKind) -> bool {
28509        kind == SyntaxKind::XML_PARSE_FN
28510    }
28511    #[inline]
28512    fn cast(syntax: SyntaxNode) -> Option<Self> {
28513        if Self::can_cast(syntax.kind()) {
28514            Some(Self { syntax })
28515        } else {
28516            None
28517        }
28518    }
28519    #[inline]
28520    fn syntax(&self) -> &SyntaxNode {
28521        &self.syntax
28522    }
28523}
28524impl AstNode for XmlPassingMech {
28525    #[inline]
28526    fn can_cast(kind: SyntaxKind) -> bool {
28527        kind == SyntaxKind::XML_PASSING_MECH
28528    }
28529    #[inline]
28530    fn cast(syntax: SyntaxNode) -> Option<Self> {
28531        if Self::can_cast(syntax.kind()) {
28532            Some(Self { syntax })
28533        } else {
28534            None
28535        }
28536    }
28537    #[inline]
28538    fn syntax(&self) -> &SyntaxNode {
28539        &self.syntax
28540    }
28541}
28542impl AstNode for XmlPiFn {
28543    #[inline]
28544    fn can_cast(kind: SyntaxKind) -> bool {
28545        kind == SyntaxKind::XML_PI_FN
28546    }
28547    #[inline]
28548    fn cast(syntax: SyntaxNode) -> Option<Self> {
28549        if Self::can_cast(syntax.kind()) {
28550            Some(Self { syntax })
28551        } else {
28552            None
28553        }
28554    }
28555    #[inline]
28556    fn syntax(&self) -> &SyntaxNode {
28557        &self.syntax
28558    }
28559}
28560impl AstNode for XmlRootFn {
28561    #[inline]
28562    fn can_cast(kind: SyntaxKind) -> bool {
28563        kind == SyntaxKind::XML_ROOT_FN
28564    }
28565    #[inline]
28566    fn cast(syntax: SyntaxNode) -> Option<Self> {
28567        if Self::can_cast(syntax.kind()) {
28568            Some(Self { syntax })
28569        } else {
28570            None
28571        }
28572    }
28573    #[inline]
28574    fn syntax(&self) -> &SyntaxNode {
28575        &self.syntax
28576    }
28577}
28578impl AstNode for XmlRowPassingClause {
28579    #[inline]
28580    fn can_cast(kind: SyntaxKind) -> bool {
28581        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
28582    }
28583    #[inline]
28584    fn cast(syntax: SyntaxNode) -> Option<Self> {
28585        if Self::can_cast(syntax.kind()) {
28586            Some(Self { syntax })
28587        } else {
28588            None
28589        }
28590    }
28591    #[inline]
28592    fn syntax(&self) -> &SyntaxNode {
28593        &self.syntax
28594    }
28595}
28596impl AstNode for XmlSerializeFn {
28597    #[inline]
28598    fn can_cast(kind: SyntaxKind) -> bool {
28599        kind == SyntaxKind::XML_SERIALIZE_FN
28600    }
28601    #[inline]
28602    fn cast(syntax: SyntaxNode) -> Option<Self> {
28603        if Self::can_cast(syntax.kind()) {
28604            Some(Self { syntax })
28605        } else {
28606            None
28607        }
28608    }
28609    #[inline]
28610    fn syntax(&self) -> &SyntaxNode {
28611        &self.syntax
28612    }
28613}
28614impl AstNode for XmlTable {
28615    #[inline]
28616    fn can_cast(kind: SyntaxKind) -> bool {
28617        kind == SyntaxKind::XML_TABLE
28618    }
28619    #[inline]
28620    fn cast(syntax: SyntaxNode) -> Option<Self> {
28621        if Self::can_cast(syntax.kind()) {
28622            Some(Self { syntax })
28623        } else {
28624            None
28625        }
28626    }
28627    #[inline]
28628    fn syntax(&self) -> &SyntaxNode {
28629        &self.syntax
28630    }
28631}
28632impl AstNode for XmlTableColumn {
28633    #[inline]
28634    fn can_cast(kind: SyntaxKind) -> bool {
28635        kind == SyntaxKind::XML_TABLE_COLUMN
28636    }
28637    #[inline]
28638    fn cast(syntax: SyntaxNode) -> Option<Self> {
28639        if Self::can_cast(syntax.kind()) {
28640            Some(Self { syntax })
28641        } else {
28642            None
28643        }
28644    }
28645    #[inline]
28646    fn syntax(&self) -> &SyntaxNode {
28647        &self.syntax
28648    }
28649}
28650impl AstNode for XmlTableColumnList {
28651    #[inline]
28652    fn can_cast(kind: SyntaxKind) -> bool {
28653        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
28654    }
28655    #[inline]
28656    fn cast(syntax: SyntaxNode) -> Option<Self> {
28657        if Self::can_cast(syntax.kind()) {
28658            Some(Self { syntax })
28659        } else {
28660            None
28661        }
28662    }
28663    #[inline]
28664    fn syntax(&self) -> &SyntaxNode {
28665        &self.syntax
28666    }
28667}
28668impl AstNode for AlterColumnOption {
28669    #[inline]
28670    fn can_cast(kind: SyntaxKind) -> bool {
28671        matches!(
28672            kind,
28673            SyntaxKind::ADD_GENERATED
28674                | SyntaxKind::DROP_DEFAULT
28675                | SyntaxKind::DROP_EXPRESSION
28676                | SyntaxKind::DROP_IDENTITY
28677                | SyntaxKind::DROP_NOT_NULL
28678                | SyntaxKind::INHERIT
28679                | SyntaxKind::NO_INHERIT
28680                | SyntaxKind::RESET_OPTIONS
28681                | SyntaxKind::RESTART
28682                | SyntaxKind::SET_COMPRESSION
28683                | SyntaxKind::SET_DEFAULT
28684                | SyntaxKind::SET_EXPRESSION
28685                | SyntaxKind::SET_GENERATED
28686                | SyntaxKind::SET_GENERATED_OPTIONS
28687                | SyntaxKind::SET_NOT_NULL
28688                | SyntaxKind::SET_OPTIONS
28689                | SyntaxKind::SET_OPTIONS_LIST
28690                | SyntaxKind::SET_SEQUENCE_OPTION
28691                | SyntaxKind::SET_STATISTICS
28692                | SyntaxKind::SET_STORAGE
28693                | SyntaxKind::SET_TYPE
28694        )
28695    }
28696    #[inline]
28697    fn cast(syntax: SyntaxNode) -> Option<Self> {
28698        let res = match syntax.kind() {
28699            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
28700            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
28701            SyntaxKind::DROP_EXPRESSION => {
28702                AlterColumnOption::DropExpression(DropExpression { syntax })
28703            }
28704            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
28705            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
28706            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
28707            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
28708            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
28709            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
28710            SyntaxKind::SET_COMPRESSION => {
28711                AlterColumnOption::SetCompression(SetCompression { syntax })
28712            }
28713            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
28714            SyntaxKind::SET_EXPRESSION => {
28715                AlterColumnOption::SetExpression(SetExpression { syntax })
28716            }
28717            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
28718            SyntaxKind::SET_GENERATED_OPTIONS => {
28719                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
28720            }
28721            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
28722            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
28723            SyntaxKind::SET_OPTIONS_LIST => {
28724                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
28725            }
28726            SyntaxKind::SET_SEQUENCE_OPTION => {
28727                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
28728            }
28729            SyntaxKind::SET_STATISTICS => {
28730                AlterColumnOption::SetStatistics(SetStatistics { syntax })
28731            }
28732            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
28733            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
28734            _ => {
28735                return None;
28736            }
28737        };
28738        Some(res)
28739    }
28740    #[inline]
28741    fn syntax(&self) -> &SyntaxNode {
28742        match self {
28743            AlterColumnOption::AddGenerated(it) => &it.syntax,
28744            AlterColumnOption::DropDefault(it) => &it.syntax,
28745            AlterColumnOption::DropExpression(it) => &it.syntax,
28746            AlterColumnOption::DropIdentity(it) => &it.syntax,
28747            AlterColumnOption::DropNotNull(it) => &it.syntax,
28748            AlterColumnOption::Inherit(it) => &it.syntax,
28749            AlterColumnOption::NoInherit(it) => &it.syntax,
28750            AlterColumnOption::ResetOptions(it) => &it.syntax,
28751            AlterColumnOption::Restart(it) => &it.syntax,
28752            AlterColumnOption::SetCompression(it) => &it.syntax,
28753            AlterColumnOption::SetDefault(it) => &it.syntax,
28754            AlterColumnOption::SetExpression(it) => &it.syntax,
28755            AlterColumnOption::SetGenerated(it) => &it.syntax,
28756            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
28757            AlterColumnOption::SetNotNull(it) => &it.syntax,
28758            AlterColumnOption::SetOptions(it) => &it.syntax,
28759            AlterColumnOption::SetOptionsList(it) => &it.syntax,
28760            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
28761            AlterColumnOption::SetStatistics(it) => &it.syntax,
28762            AlterColumnOption::SetStorage(it) => &it.syntax,
28763            AlterColumnOption::SetType(it) => &it.syntax,
28764        }
28765    }
28766}
28767impl From<AddGenerated> for AlterColumnOption {
28768    #[inline]
28769    fn from(node: AddGenerated) -> AlterColumnOption {
28770        AlterColumnOption::AddGenerated(node)
28771    }
28772}
28773impl From<DropDefault> for AlterColumnOption {
28774    #[inline]
28775    fn from(node: DropDefault) -> AlterColumnOption {
28776        AlterColumnOption::DropDefault(node)
28777    }
28778}
28779impl From<DropExpression> for AlterColumnOption {
28780    #[inline]
28781    fn from(node: DropExpression) -> AlterColumnOption {
28782        AlterColumnOption::DropExpression(node)
28783    }
28784}
28785impl From<DropIdentity> for AlterColumnOption {
28786    #[inline]
28787    fn from(node: DropIdentity) -> AlterColumnOption {
28788        AlterColumnOption::DropIdentity(node)
28789    }
28790}
28791impl From<DropNotNull> for AlterColumnOption {
28792    #[inline]
28793    fn from(node: DropNotNull) -> AlterColumnOption {
28794        AlterColumnOption::DropNotNull(node)
28795    }
28796}
28797impl From<Inherit> for AlterColumnOption {
28798    #[inline]
28799    fn from(node: Inherit) -> AlterColumnOption {
28800        AlterColumnOption::Inherit(node)
28801    }
28802}
28803impl From<NoInherit> for AlterColumnOption {
28804    #[inline]
28805    fn from(node: NoInherit) -> AlterColumnOption {
28806        AlterColumnOption::NoInherit(node)
28807    }
28808}
28809impl From<ResetOptions> for AlterColumnOption {
28810    #[inline]
28811    fn from(node: ResetOptions) -> AlterColumnOption {
28812        AlterColumnOption::ResetOptions(node)
28813    }
28814}
28815impl From<Restart> for AlterColumnOption {
28816    #[inline]
28817    fn from(node: Restart) -> AlterColumnOption {
28818        AlterColumnOption::Restart(node)
28819    }
28820}
28821impl From<SetCompression> for AlterColumnOption {
28822    #[inline]
28823    fn from(node: SetCompression) -> AlterColumnOption {
28824        AlterColumnOption::SetCompression(node)
28825    }
28826}
28827impl From<SetDefault> for AlterColumnOption {
28828    #[inline]
28829    fn from(node: SetDefault) -> AlterColumnOption {
28830        AlterColumnOption::SetDefault(node)
28831    }
28832}
28833impl From<SetExpression> for AlterColumnOption {
28834    #[inline]
28835    fn from(node: SetExpression) -> AlterColumnOption {
28836        AlterColumnOption::SetExpression(node)
28837    }
28838}
28839impl From<SetGenerated> for AlterColumnOption {
28840    #[inline]
28841    fn from(node: SetGenerated) -> AlterColumnOption {
28842        AlterColumnOption::SetGenerated(node)
28843    }
28844}
28845impl From<SetGeneratedOptions> for AlterColumnOption {
28846    #[inline]
28847    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
28848        AlterColumnOption::SetGeneratedOptions(node)
28849    }
28850}
28851impl From<SetNotNull> for AlterColumnOption {
28852    #[inline]
28853    fn from(node: SetNotNull) -> AlterColumnOption {
28854        AlterColumnOption::SetNotNull(node)
28855    }
28856}
28857impl From<SetOptions> for AlterColumnOption {
28858    #[inline]
28859    fn from(node: SetOptions) -> AlterColumnOption {
28860        AlterColumnOption::SetOptions(node)
28861    }
28862}
28863impl From<SetOptionsList> for AlterColumnOption {
28864    #[inline]
28865    fn from(node: SetOptionsList) -> AlterColumnOption {
28866        AlterColumnOption::SetOptionsList(node)
28867    }
28868}
28869impl From<SetSequenceOption> for AlterColumnOption {
28870    #[inline]
28871    fn from(node: SetSequenceOption) -> AlterColumnOption {
28872        AlterColumnOption::SetSequenceOption(node)
28873    }
28874}
28875impl From<SetStatistics> for AlterColumnOption {
28876    #[inline]
28877    fn from(node: SetStatistics) -> AlterColumnOption {
28878        AlterColumnOption::SetStatistics(node)
28879    }
28880}
28881impl From<SetStorage> for AlterColumnOption {
28882    #[inline]
28883    fn from(node: SetStorage) -> AlterColumnOption {
28884        AlterColumnOption::SetStorage(node)
28885    }
28886}
28887impl From<SetType> for AlterColumnOption {
28888    #[inline]
28889    fn from(node: SetType) -> AlterColumnOption {
28890        AlterColumnOption::SetType(node)
28891    }
28892}
28893impl AstNode for AlterDomainAction {
28894    #[inline]
28895    fn can_cast(kind: SyntaxKind) -> bool {
28896        matches!(
28897            kind,
28898            SyntaxKind::ADD_CONSTRAINT
28899                | SyntaxKind::DROP_CONSTRAINT
28900                | SyntaxKind::DROP_DEFAULT
28901                | SyntaxKind::DROP_NOT_NULL
28902                | SyntaxKind::OWNER_TO
28903                | SyntaxKind::RENAME_CONSTRAINT
28904                | SyntaxKind::RENAME_TO
28905                | SyntaxKind::SET_DEFAULT
28906                | SyntaxKind::SET_NOT_NULL
28907                | SyntaxKind::SET_SCHEMA
28908                | SyntaxKind::VALIDATE_CONSTRAINT
28909        )
28910    }
28911    #[inline]
28912    fn cast(syntax: SyntaxNode) -> Option<Self> {
28913        let res = match syntax.kind() {
28914            SyntaxKind::ADD_CONSTRAINT => {
28915                AlterDomainAction::AddConstraint(AddConstraint { syntax })
28916            }
28917            SyntaxKind::DROP_CONSTRAINT => {
28918                AlterDomainAction::DropConstraint(DropConstraint { syntax })
28919            }
28920            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
28921            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
28922            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
28923            SyntaxKind::RENAME_CONSTRAINT => {
28924                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
28925            }
28926            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
28927            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
28928            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
28929            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
28930            SyntaxKind::VALIDATE_CONSTRAINT => {
28931                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
28932            }
28933            _ => {
28934                return None;
28935            }
28936        };
28937        Some(res)
28938    }
28939    #[inline]
28940    fn syntax(&self) -> &SyntaxNode {
28941        match self {
28942            AlterDomainAction::AddConstraint(it) => &it.syntax,
28943            AlterDomainAction::DropConstraint(it) => &it.syntax,
28944            AlterDomainAction::DropDefault(it) => &it.syntax,
28945            AlterDomainAction::DropNotNull(it) => &it.syntax,
28946            AlterDomainAction::OwnerTo(it) => &it.syntax,
28947            AlterDomainAction::RenameConstraint(it) => &it.syntax,
28948            AlterDomainAction::RenameTo(it) => &it.syntax,
28949            AlterDomainAction::SetDefault(it) => &it.syntax,
28950            AlterDomainAction::SetNotNull(it) => &it.syntax,
28951            AlterDomainAction::SetSchema(it) => &it.syntax,
28952            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
28953        }
28954    }
28955}
28956impl From<AddConstraint> for AlterDomainAction {
28957    #[inline]
28958    fn from(node: AddConstraint) -> AlterDomainAction {
28959        AlterDomainAction::AddConstraint(node)
28960    }
28961}
28962impl From<DropConstraint> for AlterDomainAction {
28963    #[inline]
28964    fn from(node: DropConstraint) -> AlterDomainAction {
28965        AlterDomainAction::DropConstraint(node)
28966    }
28967}
28968impl From<DropDefault> for AlterDomainAction {
28969    #[inline]
28970    fn from(node: DropDefault) -> AlterDomainAction {
28971        AlterDomainAction::DropDefault(node)
28972    }
28973}
28974impl From<DropNotNull> for AlterDomainAction {
28975    #[inline]
28976    fn from(node: DropNotNull) -> AlterDomainAction {
28977        AlterDomainAction::DropNotNull(node)
28978    }
28979}
28980impl From<OwnerTo> for AlterDomainAction {
28981    #[inline]
28982    fn from(node: OwnerTo) -> AlterDomainAction {
28983        AlterDomainAction::OwnerTo(node)
28984    }
28985}
28986impl From<RenameConstraint> for AlterDomainAction {
28987    #[inline]
28988    fn from(node: RenameConstraint) -> AlterDomainAction {
28989        AlterDomainAction::RenameConstraint(node)
28990    }
28991}
28992impl From<RenameTo> for AlterDomainAction {
28993    #[inline]
28994    fn from(node: RenameTo) -> AlterDomainAction {
28995        AlterDomainAction::RenameTo(node)
28996    }
28997}
28998impl From<SetDefault> for AlterDomainAction {
28999    #[inline]
29000    fn from(node: SetDefault) -> AlterDomainAction {
29001        AlterDomainAction::SetDefault(node)
29002    }
29003}
29004impl From<SetNotNull> for AlterDomainAction {
29005    #[inline]
29006    fn from(node: SetNotNull) -> AlterDomainAction {
29007        AlterDomainAction::SetNotNull(node)
29008    }
29009}
29010impl From<SetSchema> for AlterDomainAction {
29011    #[inline]
29012    fn from(node: SetSchema) -> AlterDomainAction {
29013        AlterDomainAction::SetSchema(node)
29014    }
29015}
29016impl From<ValidateConstraint> for AlterDomainAction {
29017    #[inline]
29018    fn from(node: ValidateConstraint) -> AlterDomainAction {
29019        AlterDomainAction::ValidateConstraint(node)
29020    }
29021}
29022impl AstNode for AlterIndexAction {
29023    #[inline]
29024    fn can_cast(kind: SyntaxKind) -> bool {
29025        matches!(
29026            kind,
29027            SyntaxKind::ALTER_SET_STATISTICS
29028                | SyntaxKind::ATTACH_PARTITION
29029                | SyntaxKind::DEPENDS_ON_EXTENSION
29030                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29031                | SyntaxKind::RENAME_TO
29032                | SyntaxKind::RESET_OPTIONS
29033                | SyntaxKind::SET_OPTIONS
29034                | SyntaxKind::SET_TABLESPACE
29035        )
29036    }
29037    #[inline]
29038    fn cast(syntax: SyntaxNode) -> Option<Self> {
29039        let res = match syntax.kind() {
29040            SyntaxKind::ALTER_SET_STATISTICS => {
29041                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
29042            }
29043            SyntaxKind::ATTACH_PARTITION => {
29044                AlterIndexAction::AttachPartition(AttachPartition { syntax })
29045            }
29046            SyntaxKind::DEPENDS_ON_EXTENSION => {
29047                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
29048            }
29049            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29050                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29051            }
29052            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
29053            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
29054            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
29055            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
29056            _ => {
29057                return None;
29058            }
29059        };
29060        Some(res)
29061    }
29062    #[inline]
29063    fn syntax(&self) -> &SyntaxNode {
29064        match self {
29065            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
29066            AlterIndexAction::AttachPartition(it) => &it.syntax,
29067            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
29068            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
29069            AlterIndexAction::RenameTo(it) => &it.syntax,
29070            AlterIndexAction::ResetOptions(it) => &it.syntax,
29071            AlterIndexAction::SetOptions(it) => &it.syntax,
29072            AlterIndexAction::SetTablespace(it) => &it.syntax,
29073        }
29074    }
29075}
29076impl From<AlterSetStatistics> for AlterIndexAction {
29077    #[inline]
29078    fn from(node: AlterSetStatistics) -> AlterIndexAction {
29079        AlterIndexAction::AlterSetStatistics(node)
29080    }
29081}
29082impl From<AttachPartition> for AlterIndexAction {
29083    #[inline]
29084    fn from(node: AttachPartition) -> AlterIndexAction {
29085        AlterIndexAction::AttachPartition(node)
29086    }
29087}
29088impl From<DependsOnExtension> for AlterIndexAction {
29089    #[inline]
29090    fn from(node: DependsOnExtension) -> AlterIndexAction {
29091        AlterIndexAction::DependsOnExtension(node)
29092    }
29093}
29094impl From<NoDependsOnExtension> for AlterIndexAction {
29095    #[inline]
29096    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
29097        AlterIndexAction::NoDependsOnExtension(node)
29098    }
29099}
29100impl From<RenameTo> for AlterIndexAction {
29101    #[inline]
29102    fn from(node: RenameTo) -> AlterIndexAction {
29103        AlterIndexAction::RenameTo(node)
29104    }
29105}
29106impl From<ResetOptions> for AlterIndexAction {
29107    #[inline]
29108    fn from(node: ResetOptions) -> AlterIndexAction {
29109        AlterIndexAction::ResetOptions(node)
29110    }
29111}
29112impl From<SetOptions> for AlterIndexAction {
29113    #[inline]
29114    fn from(node: SetOptions) -> AlterIndexAction {
29115        AlterIndexAction::SetOptions(node)
29116    }
29117}
29118impl From<SetTablespace> for AlterIndexAction {
29119    #[inline]
29120    fn from(node: SetTablespace) -> AlterIndexAction {
29121        AlterIndexAction::SetTablespace(node)
29122    }
29123}
29124impl AstNode for AlterMaterializedViewAction {
29125    #[inline]
29126    fn can_cast(kind: SyntaxKind) -> bool {
29127        matches!(
29128            kind,
29129            SyntaxKind::DEPENDS_ON_EXTENSION
29130                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
29131                | SyntaxKind::RENAME_COLUMN
29132                | SyntaxKind::RENAME_TO
29133                | SyntaxKind::SET_SCHEMA
29134        )
29135    }
29136    #[inline]
29137    fn cast(syntax: SyntaxNode) -> Option<Self> {
29138        let res = match syntax.kind() {
29139            SyntaxKind::DEPENDS_ON_EXTENSION => {
29140                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
29141            }
29142            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
29143                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
29144            }
29145            SyntaxKind::RENAME_COLUMN => {
29146                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
29147            }
29148            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
29149            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
29150            _ => {
29151                if let Some(result) = AlterTableAction::cast(syntax) {
29152                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
29153                }
29154                return None;
29155            }
29156        };
29157        Some(res)
29158    }
29159    #[inline]
29160    fn syntax(&self) -> &SyntaxNode {
29161        match self {
29162            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
29163            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
29164            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
29165            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
29166            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
29167            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
29168        }
29169    }
29170}
29171impl From<DependsOnExtension> for AlterMaterializedViewAction {
29172    #[inline]
29173    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
29174        AlterMaterializedViewAction::DependsOnExtension(node)
29175    }
29176}
29177impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
29178    #[inline]
29179    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
29180        AlterMaterializedViewAction::NoDependsOnExtension(node)
29181    }
29182}
29183impl From<RenameColumn> for AlterMaterializedViewAction {
29184    #[inline]
29185    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
29186        AlterMaterializedViewAction::RenameColumn(node)
29187    }
29188}
29189impl From<RenameTo> for AlterMaterializedViewAction {
29190    #[inline]
29191    fn from(node: RenameTo) -> AlterMaterializedViewAction {
29192        AlterMaterializedViewAction::RenameTo(node)
29193    }
29194}
29195impl From<SetSchema> for AlterMaterializedViewAction {
29196    #[inline]
29197    fn from(node: SetSchema) -> AlterMaterializedViewAction {
29198        AlterMaterializedViewAction::SetSchema(node)
29199    }
29200}
29201impl AstNode for AlterTableAction {
29202    #[inline]
29203    fn can_cast(kind: SyntaxKind) -> bool {
29204        matches!(
29205            kind,
29206            SyntaxKind::ADD_COLUMN
29207                | SyntaxKind::ADD_CONSTRAINT
29208                | SyntaxKind::ALTER_COLUMN
29209                | SyntaxKind::ALTER_CONSTRAINT
29210                | SyntaxKind::ATTACH_PARTITION
29211                | SyntaxKind::CLUSTER_ON
29212                | SyntaxKind::DETACH_PARTITION
29213                | SyntaxKind::DISABLE_RLS
29214                | SyntaxKind::DISABLE_RULE
29215                | SyntaxKind::DISABLE_TRIGGER
29216                | SyntaxKind::DROP_COLUMN
29217                | SyntaxKind::DROP_CONSTRAINT
29218                | SyntaxKind::ENABLE_ALWAYS_RULE
29219                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
29220                | SyntaxKind::ENABLE_REPLICA_RULE
29221                | SyntaxKind::ENABLE_REPLICA_TRIGGER
29222                | SyntaxKind::ENABLE_RLS
29223                | SyntaxKind::ENABLE_RULE
29224                | SyntaxKind::ENABLE_TRIGGER
29225                | SyntaxKind::FORCE_RLS
29226                | SyntaxKind::INHERIT_TABLE
29227                | SyntaxKind::MERGE_PARTITIONS
29228                | SyntaxKind::NO_FORCE_RLS
29229                | SyntaxKind::NO_INHERIT_TABLE
29230                | SyntaxKind::NOT_OF
29231                | SyntaxKind::OF_TYPE
29232                | SyntaxKind::OPTION_ITEM_LIST
29233                | SyntaxKind::OWNER_TO
29234                | SyntaxKind::RENAME_COLUMN
29235                | SyntaxKind::RENAME_CONSTRAINT
29236                | SyntaxKind::RENAME_TO
29237                | SyntaxKind::REPLICA_IDENTITY
29238                | SyntaxKind::RESET_OPTIONS
29239                | SyntaxKind::SET_ACCESS_METHOD
29240                | SyntaxKind::SET_LOGGED
29241                | SyntaxKind::SET_OPTIONS
29242                | SyntaxKind::SET_SCHEMA
29243                | SyntaxKind::SET_TABLESPACE
29244                | SyntaxKind::SET_UNLOGGED
29245                | SyntaxKind::SET_WITHOUT_CLUSTER
29246                | SyntaxKind::SET_WITHOUT_OIDS
29247                | SyntaxKind::SPLIT_PARTITION
29248                | SyntaxKind::VALIDATE_CONSTRAINT
29249        )
29250    }
29251    #[inline]
29252    fn cast(syntax: SyntaxNode) -> Option<Self> {
29253        let res = match syntax.kind() {
29254            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
29255            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
29256            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
29257            SyntaxKind::ALTER_CONSTRAINT => {
29258                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
29259            }
29260            SyntaxKind::ATTACH_PARTITION => {
29261                AlterTableAction::AttachPartition(AttachPartition { syntax })
29262            }
29263            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
29264            SyntaxKind::DETACH_PARTITION => {
29265                AlterTableAction::DetachPartition(DetachPartition { syntax })
29266            }
29267            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
29268            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
29269            SyntaxKind::DISABLE_TRIGGER => {
29270                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
29271            }
29272            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
29273            SyntaxKind::DROP_CONSTRAINT => {
29274                AlterTableAction::DropConstraint(DropConstraint { syntax })
29275            }
29276            SyntaxKind::ENABLE_ALWAYS_RULE => {
29277                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
29278            }
29279            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
29280                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
29281            }
29282            SyntaxKind::ENABLE_REPLICA_RULE => {
29283                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
29284            }
29285            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
29286                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
29287            }
29288            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
29289            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
29290            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
29291            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
29292            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
29293            SyntaxKind::MERGE_PARTITIONS => {
29294                AlterTableAction::MergePartitions(MergePartitions { syntax })
29295            }
29296            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
29297            SyntaxKind::NO_INHERIT_TABLE => {
29298                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
29299            }
29300            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
29301            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
29302            SyntaxKind::OPTION_ITEM_LIST => {
29303                AlterTableAction::OptionItemList(OptionItemList { syntax })
29304            }
29305            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
29306            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
29307            SyntaxKind::RENAME_CONSTRAINT => {
29308                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
29309            }
29310            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
29311            SyntaxKind::REPLICA_IDENTITY => {
29312                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
29313            }
29314            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
29315            SyntaxKind::SET_ACCESS_METHOD => {
29316                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
29317            }
29318            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
29319            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
29320            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
29321            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
29322            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
29323            SyntaxKind::SET_WITHOUT_CLUSTER => {
29324                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
29325            }
29326            SyntaxKind::SET_WITHOUT_OIDS => {
29327                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
29328            }
29329            SyntaxKind::SPLIT_PARTITION => {
29330                AlterTableAction::SplitPartition(SplitPartition { syntax })
29331            }
29332            SyntaxKind::VALIDATE_CONSTRAINT => {
29333                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
29334            }
29335            _ => {
29336                return None;
29337            }
29338        };
29339        Some(res)
29340    }
29341    #[inline]
29342    fn syntax(&self) -> &SyntaxNode {
29343        match self {
29344            AlterTableAction::AddColumn(it) => &it.syntax,
29345            AlterTableAction::AddConstraint(it) => &it.syntax,
29346            AlterTableAction::AlterColumn(it) => &it.syntax,
29347            AlterTableAction::AlterConstraint(it) => &it.syntax,
29348            AlterTableAction::AttachPartition(it) => &it.syntax,
29349            AlterTableAction::ClusterOn(it) => &it.syntax,
29350            AlterTableAction::DetachPartition(it) => &it.syntax,
29351            AlterTableAction::DisableRls(it) => &it.syntax,
29352            AlterTableAction::DisableRule(it) => &it.syntax,
29353            AlterTableAction::DisableTrigger(it) => &it.syntax,
29354            AlterTableAction::DropColumn(it) => &it.syntax,
29355            AlterTableAction::DropConstraint(it) => &it.syntax,
29356            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
29357            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
29358            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
29359            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
29360            AlterTableAction::EnableRls(it) => &it.syntax,
29361            AlterTableAction::EnableRule(it) => &it.syntax,
29362            AlterTableAction::EnableTrigger(it) => &it.syntax,
29363            AlterTableAction::ForceRls(it) => &it.syntax,
29364            AlterTableAction::InheritTable(it) => &it.syntax,
29365            AlterTableAction::MergePartitions(it) => &it.syntax,
29366            AlterTableAction::NoForceRls(it) => &it.syntax,
29367            AlterTableAction::NoInheritTable(it) => &it.syntax,
29368            AlterTableAction::NotOf(it) => &it.syntax,
29369            AlterTableAction::OfType(it) => &it.syntax,
29370            AlterTableAction::OptionItemList(it) => &it.syntax,
29371            AlterTableAction::OwnerTo(it) => &it.syntax,
29372            AlterTableAction::RenameColumn(it) => &it.syntax,
29373            AlterTableAction::RenameConstraint(it) => &it.syntax,
29374            AlterTableAction::RenameTo(it) => &it.syntax,
29375            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
29376            AlterTableAction::ResetOptions(it) => &it.syntax,
29377            AlterTableAction::SetAccessMethod(it) => &it.syntax,
29378            AlterTableAction::SetLogged(it) => &it.syntax,
29379            AlterTableAction::SetOptions(it) => &it.syntax,
29380            AlterTableAction::SetSchema(it) => &it.syntax,
29381            AlterTableAction::SetTablespace(it) => &it.syntax,
29382            AlterTableAction::SetUnlogged(it) => &it.syntax,
29383            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
29384            AlterTableAction::SetWithoutOids(it) => &it.syntax,
29385            AlterTableAction::SplitPartition(it) => &it.syntax,
29386            AlterTableAction::ValidateConstraint(it) => &it.syntax,
29387        }
29388    }
29389}
29390impl From<AddColumn> for AlterTableAction {
29391    #[inline]
29392    fn from(node: AddColumn) -> AlterTableAction {
29393        AlterTableAction::AddColumn(node)
29394    }
29395}
29396impl From<AddConstraint> for AlterTableAction {
29397    #[inline]
29398    fn from(node: AddConstraint) -> AlterTableAction {
29399        AlterTableAction::AddConstraint(node)
29400    }
29401}
29402impl From<AlterColumn> for AlterTableAction {
29403    #[inline]
29404    fn from(node: AlterColumn) -> AlterTableAction {
29405        AlterTableAction::AlterColumn(node)
29406    }
29407}
29408impl From<AlterConstraint> for AlterTableAction {
29409    #[inline]
29410    fn from(node: AlterConstraint) -> AlterTableAction {
29411        AlterTableAction::AlterConstraint(node)
29412    }
29413}
29414impl From<AttachPartition> for AlterTableAction {
29415    #[inline]
29416    fn from(node: AttachPartition) -> AlterTableAction {
29417        AlterTableAction::AttachPartition(node)
29418    }
29419}
29420impl From<ClusterOn> for AlterTableAction {
29421    #[inline]
29422    fn from(node: ClusterOn) -> AlterTableAction {
29423        AlterTableAction::ClusterOn(node)
29424    }
29425}
29426impl From<DetachPartition> for AlterTableAction {
29427    #[inline]
29428    fn from(node: DetachPartition) -> AlterTableAction {
29429        AlterTableAction::DetachPartition(node)
29430    }
29431}
29432impl From<DisableRls> for AlterTableAction {
29433    #[inline]
29434    fn from(node: DisableRls) -> AlterTableAction {
29435        AlterTableAction::DisableRls(node)
29436    }
29437}
29438impl From<DisableRule> for AlterTableAction {
29439    #[inline]
29440    fn from(node: DisableRule) -> AlterTableAction {
29441        AlterTableAction::DisableRule(node)
29442    }
29443}
29444impl From<DisableTrigger> for AlterTableAction {
29445    #[inline]
29446    fn from(node: DisableTrigger) -> AlterTableAction {
29447        AlterTableAction::DisableTrigger(node)
29448    }
29449}
29450impl From<DropColumn> for AlterTableAction {
29451    #[inline]
29452    fn from(node: DropColumn) -> AlterTableAction {
29453        AlterTableAction::DropColumn(node)
29454    }
29455}
29456impl From<DropConstraint> for AlterTableAction {
29457    #[inline]
29458    fn from(node: DropConstraint) -> AlterTableAction {
29459        AlterTableAction::DropConstraint(node)
29460    }
29461}
29462impl From<EnableAlwaysRule> for AlterTableAction {
29463    #[inline]
29464    fn from(node: EnableAlwaysRule) -> AlterTableAction {
29465        AlterTableAction::EnableAlwaysRule(node)
29466    }
29467}
29468impl From<EnableAlwaysTrigger> for AlterTableAction {
29469    #[inline]
29470    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
29471        AlterTableAction::EnableAlwaysTrigger(node)
29472    }
29473}
29474impl From<EnableReplicaRule> for AlterTableAction {
29475    #[inline]
29476    fn from(node: EnableReplicaRule) -> AlterTableAction {
29477        AlterTableAction::EnableReplicaRule(node)
29478    }
29479}
29480impl From<EnableReplicaTrigger> for AlterTableAction {
29481    #[inline]
29482    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
29483        AlterTableAction::EnableReplicaTrigger(node)
29484    }
29485}
29486impl From<EnableRls> for AlterTableAction {
29487    #[inline]
29488    fn from(node: EnableRls) -> AlterTableAction {
29489        AlterTableAction::EnableRls(node)
29490    }
29491}
29492impl From<EnableRule> for AlterTableAction {
29493    #[inline]
29494    fn from(node: EnableRule) -> AlterTableAction {
29495        AlterTableAction::EnableRule(node)
29496    }
29497}
29498impl From<EnableTrigger> for AlterTableAction {
29499    #[inline]
29500    fn from(node: EnableTrigger) -> AlterTableAction {
29501        AlterTableAction::EnableTrigger(node)
29502    }
29503}
29504impl From<ForceRls> for AlterTableAction {
29505    #[inline]
29506    fn from(node: ForceRls) -> AlterTableAction {
29507        AlterTableAction::ForceRls(node)
29508    }
29509}
29510impl From<InheritTable> for AlterTableAction {
29511    #[inline]
29512    fn from(node: InheritTable) -> AlterTableAction {
29513        AlterTableAction::InheritTable(node)
29514    }
29515}
29516impl From<MergePartitions> for AlterTableAction {
29517    #[inline]
29518    fn from(node: MergePartitions) -> AlterTableAction {
29519        AlterTableAction::MergePartitions(node)
29520    }
29521}
29522impl From<NoForceRls> for AlterTableAction {
29523    #[inline]
29524    fn from(node: NoForceRls) -> AlterTableAction {
29525        AlterTableAction::NoForceRls(node)
29526    }
29527}
29528impl From<NoInheritTable> for AlterTableAction {
29529    #[inline]
29530    fn from(node: NoInheritTable) -> AlterTableAction {
29531        AlterTableAction::NoInheritTable(node)
29532    }
29533}
29534impl From<NotOf> for AlterTableAction {
29535    #[inline]
29536    fn from(node: NotOf) -> AlterTableAction {
29537        AlterTableAction::NotOf(node)
29538    }
29539}
29540impl From<OfType> for AlterTableAction {
29541    #[inline]
29542    fn from(node: OfType) -> AlterTableAction {
29543        AlterTableAction::OfType(node)
29544    }
29545}
29546impl From<OptionItemList> for AlterTableAction {
29547    #[inline]
29548    fn from(node: OptionItemList) -> AlterTableAction {
29549        AlterTableAction::OptionItemList(node)
29550    }
29551}
29552impl From<OwnerTo> for AlterTableAction {
29553    #[inline]
29554    fn from(node: OwnerTo) -> AlterTableAction {
29555        AlterTableAction::OwnerTo(node)
29556    }
29557}
29558impl From<RenameColumn> for AlterTableAction {
29559    #[inline]
29560    fn from(node: RenameColumn) -> AlterTableAction {
29561        AlterTableAction::RenameColumn(node)
29562    }
29563}
29564impl From<RenameConstraint> for AlterTableAction {
29565    #[inline]
29566    fn from(node: RenameConstraint) -> AlterTableAction {
29567        AlterTableAction::RenameConstraint(node)
29568    }
29569}
29570impl From<RenameTo> for AlterTableAction {
29571    #[inline]
29572    fn from(node: RenameTo) -> AlterTableAction {
29573        AlterTableAction::RenameTo(node)
29574    }
29575}
29576impl From<ReplicaIdentity> for AlterTableAction {
29577    #[inline]
29578    fn from(node: ReplicaIdentity) -> AlterTableAction {
29579        AlterTableAction::ReplicaIdentity(node)
29580    }
29581}
29582impl From<ResetOptions> for AlterTableAction {
29583    #[inline]
29584    fn from(node: ResetOptions) -> AlterTableAction {
29585        AlterTableAction::ResetOptions(node)
29586    }
29587}
29588impl From<SetAccessMethod> for AlterTableAction {
29589    #[inline]
29590    fn from(node: SetAccessMethod) -> AlterTableAction {
29591        AlterTableAction::SetAccessMethod(node)
29592    }
29593}
29594impl From<SetLogged> for AlterTableAction {
29595    #[inline]
29596    fn from(node: SetLogged) -> AlterTableAction {
29597        AlterTableAction::SetLogged(node)
29598    }
29599}
29600impl From<SetOptions> for AlterTableAction {
29601    #[inline]
29602    fn from(node: SetOptions) -> AlterTableAction {
29603        AlterTableAction::SetOptions(node)
29604    }
29605}
29606impl From<SetSchema> for AlterTableAction {
29607    #[inline]
29608    fn from(node: SetSchema) -> AlterTableAction {
29609        AlterTableAction::SetSchema(node)
29610    }
29611}
29612impl From<SetTablespace> for AlterTableAction {
29613    #[inline]
29614    fn from(node: SetTablespace) -> AlterTableAction {
29615        AlterTableAction::SetTablespace(node)
29616    }
29617}
29618impl From<SetUnlogged> for AlterTableAction {
29619    #[inline]
29620    fn from(node: SetUnlogged) -> AlterTableAction {
29621        AlterTableAction::SetUnlogged(node)
29622    }
29623}
29624impl From<SetWithoutCluster> for AlterTableAction {
29625    #[inline]
29626    fn from(node: SetWithoutCluster) -> AlterTableAction {
29627        AlterTableAction::SetWithoutCluster(node)
29628    }
29629}
29630impl From<SetWithoutOids> for AlterTableAction {
29631    #[inline]
29632    fn from(node: SetWithoutOids) -> AlterTableAction {
29633        AlterTableAction::SetWithoutOids(node)
29634    }
29635}
29636impl From<SplitPartition> for AlterTableAction {
29637    #[inline]
29638    fn from(node: SplitPartition) -> AlterTableAction {
29639        AlterTableAction::SplitPartition(node)
29640    }
29641}
29642impl From<ValidateConstraint> for AlterTableAction {
29643    #[inline]
29644    fn from(node: ValidateConstraint) -> AlterTableAction {
29645        AlterTableAction::ValidateConstraint(node)
29646    }
29647}
29648impl AstNode for ColumnConstraint {
29649    #[inline]
29650    fn can_cast(kind: SyntaxKind) -> bool {
29651        matches!(
29652            kind,
29653            SyntaxKind::CHECK_CONSTRAINT
29654                | SyntaxKind::DEFAULT_CONSTRAINT
29655                | SyntaxKind::EXCLUDE_CONSTRAINT
29656                | SyntaxKind::NOT_NULL_CONSTRAINT
29657                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29658                | SyntaxKind::REFERENCES_CONSTRAINT
29659                | SyntaxKind::UNIQUE_CONSTRAINT
29660        )
29661    }
29662    #[inline]
29663    fn cast(syntax: SyntaxNode) -> Option<Self> {
29664        let res = match syntax.kind() {
29665            SyntaxKind::CHECK_CONSTRAINT => {
29666                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
29667            }
29668            SyntaxKind::DEFAULT_CONSTRAINT => {
29669                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
29670            }
29671            SyntaxKind::EXCLUDE_CONSTRAINT => {
29672                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
29673            }
29674            SyntaxKind::NOT_NULL_CONSTRAINT => {
29675                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
29676            }
29677            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29678                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29679            }
29680            SyntaxKind::REFERENCES_CONSTRAINT => {
29681                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
29682            }
29683            SyntaxKind::UNIQUE_CONSTRAINT => {
29684                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
29685            }
29686            _ => {
29687                return None;
29688            }
29689        };
29690        Some(res)
29691    }
29692    #[inline]
29693    fn syntax(&self) -> &SyntaxNode {
29694        match self {
29695            ColumnConstraint::CheckConstraint(it) => &it.syntax,
29696            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
29697            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
29698            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
29699            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
29700            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
29701            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
29702        }
29703    }
29704}
29705impl From<CheckConstraint> for ColumnConstraint {
29706    #[inline]
29707    fn from(node: CheckConstraint) -> ColumnConstraint {
29708        ColumnConstraint::CheckConstraint(node)
29709    }
29710}
29711impl From<DefaultConstraint> for ColumnConstraint {
29712    #[inline]
29713    fn from(node: DefaultConstraint) -> ColumnConstraint {
29714        ColumnConstraint::DefaultConstraint(node)
29715    }
29716}
29717impl From<ExcludeConstraint> for ColumnConstraint {
29718    #[inline]
29719    fn from(node: ExcludeConstraint) -> ColumnConstraint {
29720        ColumnConstraint::ExcludeConstraint(node)
29721    }
29722}
29723impl From<NotNullConstraint> for ColumnConstraint {
29724    #[inline]
29725    fn from(node: NotNullConstraint) -> ColumnConstraint {
29726        ColumnConstraint::NotNullConstraint(node)
29727    }
29728}
29729impl From<PrimaryKeyConstraint> for ColumnConstraint {
29730    #[inline]
29731    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
29732        ColumnConstraint::PrimaryKeyConstraint(node)
29733    }
29734}
29735impl From<ReferencesConstraint> for ColumnConstraint {
29736    #[inline]
29737    fn from(node: ReferencesConstraint) -> ColumnConstraint {
29738        ColumnConstraint::ReferencesConstraint(node)
29739    }
29740}
29741impl From<UniqueConstraint> for ColumnConstraint {
29742    #[inline]
29743    fn from(node: UniqueConstraint) -> ColumnConstraint {
29744        ColumnConstraint::UniqueConstraint(node)
29745    }
29746}
29747impl AstNode for ConfigValue {
29748    #[inline]
29749    fn can_cast(kind: SyntaxKind) -> bool {
29750        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
29751    }
29752    #[inline]
29753    fn cast(syntax: SyntaxNode) -> Option<Self> {
29754        let res = match syntax.kind() {
29755            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
29756            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
29757            _ => {
29758                return None;
29759            }
29760        };
29761        Some(res)
29762    }
29763    #[inline]
29764    fn syntax(&self) -> &SyntaxNode {
29765        match self {
29766            ConfigValue::Literal(it) => &it.syntax,
29767            ConfigValue::NameRef(it) => &it.syntax,
29768        }
29769    }
29770}
29771impl From<Literal> for ConfigValue {
29772    #[inline]
29773    fn from(node: Literal) -> ConfigValue {
29774        ConfigValue::Literal(node)
29775    }
29776}
29777impl From<NameRef> for ConfigValue {
29778    #[inline]
29779    fn from(node: NameRef) -> ConfigValue {
29780        ConfigValue::NameRef(node)
29781    }
29782}
29783impl AstNode for ConflictAction {
29784    #[inline]
29785    fn can_cast(kind: SyntaxKind) -> bool {
29786        matches!(
29787            kind,
29788            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
29789        )
29790    }
29791    #[inline]
29792    fn cast(syntax: SyntaxNode) -> Option<Self> {
29793        let res = match syntax.kind() {
29794            SyntaxKind::CONFLICT_DO_NOTHING => {
29795                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
29796            }
29797            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
29798                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
29799            }
29800            _ => {
29801                return None;
29802            }
29803        };
29804        Some(res)
29805    }
29806    #[inline]
29807    fn syntax(&self) -> &SyntaxNode {
29808        match self {
29809            ConflictAction::ConflictDoNothing(it) => &it.syntax,
29810            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
29811        }
29812    }
29813}
29814impl From<ConflictDoNothing> for ConflictAction {
29815    #[inline]
29816    fn from(node: ConflictDoNothing) -> ConflictAction {
29817        ConflictAction::ConflictDoNothing(node)
29818    }
29819}
29820impl From<ConflictDoUpdateSet> for ConflictAction {
29821    #[inline]
29822    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
29823        ConflictAction::ConflictDoUpdateSet(node)
29824    }
29825}
29826impl AstNode for ConflictTarget {
29827    #[inline]
29828    fn can_cast(kind: SyntaxKind) -> bool {
29829        matches!(
29830            kind,
29831            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
29832        )
29833    }
29834    #[inline]
29835    fn cast(syntax: SyntaxNode) -> Option<Self> {
29836        let res = match syntax.kind() {
29837            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
29838                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
29839            }
29840            SyntaxKind::CONFLICT_ON_INDEX => {
29841                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
29842            }
29843            _ => {
29844                return None;
29845            }
29846        };
29847        Some(res)
29848    }
29849    #[inline]
29850    fn syntax(&self) -> &SyntaxNode {
29851        match self {
29852            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
29853            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
29854        }
29855    }
29856}
29857impl From<ConflictOnConstraint> for ConflictTarget {
29858    #[inline]
29859    fn from(node: ConflictOnConstraint) -> ConflictTarget {
29860        ConflictTarget::ConflictOnConstraint(node)
29861    }
29862}
29863impl From<ConflictOnIndex> for ConflictTarget {
29864    #[inline]
29865    fn from(node: ConflictOnIndex) -> ConflictTarget {
29866        ConflictTarget::ConflictOnIndex(node)
29867    }
29868}
29869impl AstNode for Constraint {
29870    #[inline]
29871    fn can_cast(kind: SyntaxKind) -> bool {
29872        matches!(
29873            kind,
29874            SyntaxKind::CHECK_CONSTRAINT
29875                | SyntaxKind::DEFAULT_CONSTRAINT
29876                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
29877                | SyntaxKind::GENERATED_CONSTRAINT
29878                | SyntaxKind::NOT_NULL_CONSTRAINT
29879                | SyntaxKind::NULL_CONSTRAINT
29880                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
29881                | SyntaxKind::REFERENCES_CONSTRAINT
29882                | SyntaxKind::UNIQUE_CONSTRAINT
29883        )
29884    }
29885    #[inline]
29886    fn cast(syntax: SyntaxNode) -> Option<Self> {
29887        let res = match syntax.kind() {
29888            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
29889            SyntaxKind::DEFAULT_CONSTRAINT => {
29890                Constraint::DefaultConstraint(DefaultConstraint { syntax })
29891            }
29892            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
29893                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
29894            }
29895            SyntaxKind::GENERATED_CONSTRAINT => {
29896                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
29897            }
29898            SyntaxKind::NOT_NULL_CONSTRAINT => {
29899                Constraint::NotNullConstraint(NotNullConstraint { syntax })
29900            }
29901            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
29902            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
29903                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
29904            }
29905            SyntaxKind::REFERENCES_CONSTRAINT => {
29906                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
29907            }
29908            SyntaxKind::UNIQUE_CONSTRAINT => {
29909                Constraint::UniqueConstraint(UniqueConstraint { syntax })
29910            }
29911            _ => {
29912                return None;
29913            }
29914        };
29915        Some(res)
29916    }
29917    #[inline]
29918    fn syntax(&self) -> &SyntaxNode {
29919        match self {
29920            Constraint::CheckConstraint(it) => &it.syntax,
29921            Constraint::DefaultConstraint(it) => &it.syntax,
29922            Constraint::ForeignKeyConstraint(it) => &it.syntax,
29923            Constraint::GeneratedConstraint(it) => &it.syntax,
29924            Constraint::NotNullConstraint(it) => &it.syntax,
29925            Constraint::NullConstraint(it) => &it.syntax,
29926            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
29927            Constraint::ReferencesConstraint(it) => &it.syntax,
29928            Constraint::UniqueConstraint(it) => &it.syntax,
29929        }
29930    }
29931}
29932impl From<CheckConstraint> for Constraint {
29933    #[inline]
29934    fn from(node: CheckConstraint) -> Constraint {
29935        Constraint::CheckConstraint(node)
29936    }
29937}
29938impl From<DefaultConstraint> for Constraint {
29939    #[inline]
29940    fn from(node: DefaultConstraint) -> Constraint {
29941        Constraint::DefaultConstraint(node)
29942    }
29943}
29944impl From<ForeignKeyConstraint> for Constraint {
29945    #[inline]
29946    fn from(node: ForeignKeyConstraint) -> Constraint {
29947        Constraint::ForeignKeyConstraint(node)
29948    }
29949}
29950impl From<GeneratedConstraint> for Constraint {
29951    #[inline]
29952    fn from(node: GeneratedConstraint) -> Constraint {
29953        Constraint::GeneratedConstraint(node)
29954    }
29955}
29956impl From<NotNullConstraint> for Constraint {
29957    #[inline]
29958    fn from(node: NotNullConstraint) -> Constraint {
29959        Constraint::NotNullConstraint(node)
29960    }
29961}
29962impl From<NullConstraint> for Constraint {
29963    #[inline]
29964    fn from(node: NullConstraint) -> Constraint {
29965        Constraint::NullConstraint(node)
29966    }
29967}
29968impl From<PrimaryKeyConstraint> for Constraint {
29969    #[inline]
29970    fn from(node: PrimaryKeyConstraint) -> Constraint {
29971        Constraint::PrimaryKeyConstraint(node)
29972    }
29973}
29974impl From<ReferencesConstraint> for Constraint {
29975    #[inline]
29976    fn from(node: ReferencesConstraint) -> Constraint {
29977        Constraint::ReferencesConstraint(node)
29978    }
29979}
29980impl From<UniqueConstraint> for Constraint {
29981    #[inline]
29982    fn from(node: UniqueConstraint) -> Constraint {
29983        Constraint::UniqueConstraint(node)
29984    }
29985}
29986impl AstNode for ExplainStmt {
29987    #[inline]
29988    fn can_cast(kind: SyntaxKind) -> bool {
29989        matches!(
29990            kind,
29991            SyntaxKind::COMPOUND_SELECT
29992                | SyntaxKind::CREATE_MATERIALIZED_VIEW
29993                | SyntaxKind::CREATE_TABLE_AS
29994                | SyntaxKind::DECLARE
29995                | SyntaxKind::DELETE
29996                | SyntaxKind::EXECUTE
29997                | SyntaxKind::INSERT
29998                | SyntaxKind::MERGE
29999                | SyntaxKind::PAREN_SELECT
30000                | SyntaxKind::SELECT
30001                | SyntaxKind::SELECT_INTO
30002                | SyntaxKind::TABLE
30003                | SyntaxKind::UPDATE
30004                | SyntaxKind::VALUES
30005        )
30006    }
30007    #[inline]
30008    fn cast(syntax: SyntaxNode) -> Option<Self> {
30009        let res = match syntax.kind() {
30010            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
30011            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
30012                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
30013            }
30014            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
30015            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
30016            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
30017            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
30018            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
30019            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
30020            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
30021            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
30022            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
30023            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
30024            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
30025            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
30026            _ => {
30027                return None;
30028            }
30029        };
30030        Some(res)
30031    }
30032    #[inline]
30033    fn syntax(&self) -> &SyntaxNode {
30034        match self {
30035            ExplainStmt::CompoundSelect(it) => &it.syntax,
30036            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
30037            ExplainStmt::CreateTableAs(it) => &it.syntax,
30038            ExplainStmt::Declare(it) => &it.syntax,
30039            ExplainStmt::Delete(it) => &it.syntax,
30040            ExplainStmt::Execute(it) => &it.syntax,
30041            ExplainStmt::Insert(it) => &it.syntax,
30042            ExplainStmt::Merge(it) => &it.syntax,
30043            ExplainStmt::ParenSelect(it) => &it.syntax,
30044            ExplainStmt::Select(it) => &it.syntax,
30045            ExplainStmt::SelectInto(it) => &it.syntax,
30046            ExplainStmt::Table(it) => &it.syntax,
30047            ExplainStmt::Update(it) => &it.syntax,
30048            ExplainStmt::Values(it) => &it.syntax,
30049        }
30050    }
30051}
30052impl From<CompoundSelect> for ExplainStmt {
30053    #[inline]
30054    fn from(node: CompoundSelect) -> ExplainStmt {
30055        ExplainStmt::CompoundSelect(node)
30056    }
30057}
30058impl From<CreateMaterializedView> for ExplainStmt {
30059    #[inline]
30060    fn from(node: CreateMaterializedView) -> ExplainStmt {
30061        ExplainStmt::CreateMaterializedView(node)
30062    }
30063}
30064impl From<CreateTableAs> for ExplainStmt {
30065    #[inline]
30066    fn from(node: CreateTableAs) -> ExplainStmt {
30067        ExplainStmt::CreateTableAs(node)
30068    }
30069}
30070impl From<Declare> for ExplainStmt {
30071    #[inline]
30072    fn from(node: Declare) -> ExplainStmt {
30073        ExplainStmt::Declare(node)
30074    }
30075}
30076impl From<Delete> for ExplainStmt {
30077    #[inline]
30078    fn from(node: Delete) -> ExplainStmt {
30079        ExplainStmt::Delete(node)
30080    }
30081}
30082impl From<Execute> for ExplainStmt {
30083    #[inline]
30084    fn from(node: Execute) -> ExplainStmt {
30085        ExplainStmt::Execute(node)
30086    }
30087}
30088impl From<Insert> for ExplainStmt {
30089    #[inline]
30090    fn from(node: Insert) -> ExplainStmt {
30091        ExplainStmt::Insert(node)
30092    }
30093}
30094impl From<Merge> for ExplainStmt {
30095    #[inline]
30096    fn from(node: Merge) -> ExplainStmt {
30097        ExplainStmt::Merge(node)
30098    }
30099}
30100impl From<ParenSelect> for ExplainStmt {
30101    #[inline]
30102    fn from(node: ParenSelect) -> ExplainStmt {
30103        ExplainStmt::ParenSelect(node)
30104    }
30105}
30106impl From<Select> for ExplainStmt {
30107    #[inline]
30108    fn from(node: Select) -> ExplainStmt {
30109        ExplainStmt::Select(node)
30110    }
30111}
30112impl From<SelectInto> for ExplainStmt {
30113    #[inline]
30114    fn from(node: SelectInto) -> ExplainStmt {
30115        ExplainStmt::SelectInto(node)
30116    }
30117}
30118impl From<Table> for ExplainStmt {
30119    #[inline]
30120    fn from(node: Table) -> ExplainStmt {
30121        ExplainStmt::Table(node)
30122    }
30123}
30124impl From<Update> for ExplainStmt {
30125    #[inline]
30126    fn from(node: Update) -> ExplainStmt {
30127        ExplainStmt::Update(node)
30128    }
30129}
30130impl From<Values> for ExplainStmt {
30131    #[inline]
30132    fn from(node: Values) -> ExplainStmt {
30133        ExplainStmt::Values(node)
30134    }
30135}
30136impl AstNode for Expr {
30137    #[inline]
30138    fn can_cast(kind: SyntaxKind) -> bool {
30139        matches!(
30140            kind,
30141            SyntaxKind::ARRAY_EXPR
30142                | SyntaxKind::BETWEEN_EXPR
30143                | SyntaxKind::BIN_EXPR
30144                | SyntaxKind::CALL_EXPR
30145                | SyntaxKind::CASE_EXPR
30146                | SyntaxKind::CAST_EXPR
30147                | SyntaxKind::FIELD_EXPR
30148                | SyntaxKind::INDEX_EXPR
30149                | SyntaxKind::LITERAL
30150                | SyntaxKind::NAME_REF
30151                | SyntaxKind::PAREN_EXPR
30152                | SyntaxKind::POSTFIX_EXPR
30153                | SyntaxKind::PREFIX_EXPR
30154                | SyntaxKind::SLICE_EXPR
30155                | SyntaxKind::TUPLE_EXPR
30156        )
30157    }
30158    #[inline]
30159    fn cast(syntax: SyntaxNode) -> Option<Self> {
30160        let res = match syntax.kind() {
30161            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
30162            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
30163            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
30164            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
30165            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
30166            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
30167            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
30168            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
30169            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
30170            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
30171            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
30172            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
30173            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
30174            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
30175            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
30176            _ => {
30177                return None;
30178            }
30179        };
30180        Some(res)
30181    }
30182    #[inline]
30183    fn syntax(&self) -> &SyntaxNode {
30184        match self {
30185            Expr::ArrayExpr(it) => &it.syntax,
30186            Expr::BetweenExpr(it) => &it.syntax,
30187            Expr::BinExpr(it) => &it.syntax,
30188            Expr::CallExpr(it) => &it.syntax,
30189            Expr::CaseExpr(it) => &it.syntax,
30190            Expr::CastExpr(it) => &it.syntax,
30191            Expr::FieldExpr(it) => &it.syntax,
30192            Expr::IndexExpr(it) => &it.syntax,
30193            Expr::Literal(it) => &it.syntax,
30194            Expr::NameRef(it) => &it.syntax,
30195            Expr::ParenExpr(it) => &it.syntax,
30196            Expr::PostfixExpr(it) => &it.syntax,
30197            Expr::PrefixExpr(it) => &it.syntax,
30198            Expr::SliceExpr(it) => &it.syntax,
30199            Expr::TupleExpr(it) => &it.syntax,
30200        }
30201    }
30202}
30203impl From<ArrayExpr> for Expr {
30204    #[inline]
30205    fn from(node: ArrayExpr) -> Expr {
30206        Expr::ArrayExpr(node)
30207    }
30208}
30209impl From<BetweenExpr> for Expr {
30210    #[inline]
30211    fn from(node: BetweenExpr) -> Expr {
30212        Expr::BetweenExpr(node)
30213    }
30214}
30215impl From<BinExpr> for Expr {
30216    #[inline]
30217    fn from(node: BinExpr) -> Expr {
30218        Expr::BinExpr(node)
30219    }
30220}
30221impl From<CallExpr> for Expr {
30222    #[inline]
30223    fn from(node: CallExpr) -> Expr {
30224        Expr::CallExpr(node)
30225    }
30226}
30227impl From<CaseExpr> for Expr {
30228    #[inline]
30229    fn from(node: CaseExpr) -> Expr {
30230        Expr::CaseExpr(node)
30231    }
30232}
30233impl From<CastExpr> for Expr {
30234    #[inline]
30235    fn from(node: CastExpr) -> Expr {
30236        Expr::CastExpr(node)
30237    }
30238}
30239impl From<FieldExpr> for Expr {
30240    #[inline]
30241    fn from(node: FieldExpr) -> Expr {
30242        Expr::FieldExpr(node)
30243    }
30244}
30245impl From<IndexExpr> for Expr {
30246    #[inline]
30247    fn from(node: IndexExpr) -> Expr {
30248        Expr::IndexExpr(node)
30249    }
30250}
30251impl From<Literal> for Expr {
30252    #[inline]
30253    fn from(node: Literal) -> Expr {
30254        Expr::Literal(node)
30255    }
30256}
30257impl From<NameRef> for Expr {
30258    #[inline]
30259    fn from(node: NameRef) -> Expr {
30260        Expr::NameRef(node)
30261    }
30262}
30263impl From<ParenExpr> for Expr {
30264    #[inline]
30265    fn from(node: ParenExpr) -> Expr {
30266        Expr::ParenExpr(node)
30267    }
30268}
30269impl From<PostfixExpr> for Expr {
30270    #[inline]
30271    fn from(node: PostfixExpr) -> Expr {
30272        Expr::PostfixExpr(node)
30273    }
30274}
30275impl From<PrefixExpr> for Expr {
30276    #[inline]
30277    fn from(node: PrefixExpr) -> Expr {
30278        Expr::PrefixExpr(node)
30279    }
30280}
30281impl From<SliceExpr> for Expr {
30282    #[inline]
30283    fn from(node: SliceExpr) -> Expr {
30284        Expr::SliceExpr(node)
30285    }
30286}
30287impl From<TupleExpr> for Expr {
30288    #[inline]
30289    fn from(node: TupleExpr) -> Expr {
30290        Expr::TupleExpr(node)
30291    }
30292}
30293impl AstNode for FuncOption {
30294    #[inline]
30295    fn can_cast(kind: SyntaxKind) -> bool {
30296        matches!(
30297            kind,
30298            SyntaxKind::AS_FUNC_OPTION
30299                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
30300                | SyntaxKind::COST_FUNC_OPTION
30301                | SyntaxKind::LANGUAGE_FUNC_OPTION
30302                | SyntaxKind::LEAKPROOF_FUNC_OPTION
30303                | SyntaxKind::PARALLEL_FUNC_OPTION
30304                | SyntaxKind::RESET_FUNC_OPTION
30305                | SyntaxKind::RETURN_FUNC_OPTION
30306                | SyntaxKind::ROWS_FUNC_OPTION
30307                | SyntaxKind::SECURITY_FUNC_OPTION
30308                | SyntaxKind::SET_FUNC_OPTION
30309                | SyntaxKind::STRICT_FUNC_OPTION
30310                | SyntaxKind::SUPPORT_FUNC_OPTION
30311                | SyntaxKind::TRANSFORM_FUNC_OPTION
30312                | SyntaxKind::VOLATILITY_FUNC_OPTION
30313                | SyntaxKind::WINDOW_FUNC_OPTION
30314        )
30315    }
30316    #[inline]
30317    fn cast(syntax: SyntaxNode) -> Option<Self> {
30318        let res = match syntax.kind() {
30319            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
30320            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
30321                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
30322            }
30323            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
30324            SyntaxKind::LANGUAGE_FUNC_OPTION => {
30325                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
30326            }
30327            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
30328                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
30329            }
30330            SyntaxKind::PARALLEL_FUNC_OPTION => {
30331                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
30332            }
30333            SyntaxKind::RESET_FUNC_OPTION => {
30334                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
30335            }
30336            SyntaxKind::RETURN_FUNC_OPTION => {
30337                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
30338            }
30339            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
30340            SyntaxKind::SECURITY_FUNC_OPTION => {
30341                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
30342            }
30343            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
30344            SyntaxKind::STRICT_FUNC_OPTION => {
30345                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
30346            }
30347            SyntaxKind::SUPPORT_FUNC_OPTION => {
30348                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
30349            }
30350            SyntaxKind::TRANSFORM_FUNC_OPTION => {
30351                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
30352            }
30353            SyntaxKind::VOLATILITY_FUNC_OPTION => {
30354                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
30355            }
30356            SyntaxKind::WINDOW_FUNC_OPTION => {
30357                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
30358            }
30359            _ => {
30360                return None;
30361            }
30362        };
30363        Some(res)
30364    }
30365    #[inline]
30366    fn syntax(&self) -> &SyntaxNode {
30367        match self {
30368            FuncOption::AsFuncOption(it) => &it.syntax,
30369            FuncOption::BeginFuncOptionList(it) => &it.syntax,
30370            FuncOption::CostFuncOption(it) => &it.syntax,
30371            FuncOption::LanguageFuncOption(it) => &it.syntax,
30372            FuncOption::LeakproofFuncOption(it) => &it.syntax,
30373            FuncOption::ParallelFuncOption(it) => &it.syntax,
30374            FuncOption::ResetFuncOption(it) => &it.syntax,
30375            FuncOption::ReturnFuncOption(it) => &it.syntax,
30376            FuncOption::RowsFuncOption(it) => &it.syntax,
30377            FuncOption::SecurityFuncOption(it) => &it.syntax,
30378            FuncOption::SetFuncOption(it) => &it.syntax,
30379            FuncOption::StrictFuncOption(it) => &it.syntax,
30380            FuncOption::SupportFuncOption(it) => &it.syntax,
30381            FuncOption::TransformFuncOption(it) => &it.syntax,
30382            FuncOption::VolatilityFuncOption(it) => &it.syntax,
30383            FuncOption::WindowFuncOption(it) => &it.syntax,
30384        }
30385    }
30386}
30387impl From<AsFuncOption> for FuncOption {
30388    #[inline]
30389    fn from(node: AsFuncOption) -> FuncOption {
30390        FuncOption::AsFuncOption(node)
30391    }
30392}
30393impl From<BeginFuncOptionList> for FuncOption {
30394    #[inline]
30395    fn from(node: BeginFuncOptionList) -> FuncOption {
30396        FuncOption::BeginFuncOptionList(node)
30397    }
30398}
30399impl From<CostFuncOption> for FuncOption {
30400    #[inline]
30401    fn from(node: CostFuncOption) -> FuncOption {
30402        FuncOption::CostFuncOption(node)
30403    }
30404}
30405impl From<LanguageFuncOption> for FuncOption {
30406    #[inline]
30407    fn from(node: LanguageFuncOption) -> FuncOption {
30408        FuncOption::LanguageFuncOption(node)
30409    }
30410}
30411impl From<LeakproofFuncOption> for FuncOption {
30412    #[inline]
30413    fn from(node: LeakproofFuncOption) -> FuncOption {
30414        FuncOption::LeakproofFuncOption(node)
30415    }
30416}
30417impl From<ParallelFuncOption> for FuncOption {
30418    #[inline]
30419    fn from(node: ParallelFuncOption) -> FuncOption {
30420        FuncOption::ParallelFuncOption(node)
30421    }
30422}
30423impl From<ResetFuncOption> for FuncOption {
30424    #[inline]
30425    fn from(node: ResetFuncOption) -> FuncOption {
30426        FuncOption::ResetFuncOption(node)
30427    }
30428}
30429impl From<ReturnFuncOption> for FuncOption {
30430    #[inline]
30431    fn from(node: ReturnFuncOption) -> FuncOption {
30432        FuncOption::ReturnFuncOption(node)
30433    }
30434}
30435impl From<RowsFuncOption> for FuncOption {
30436    #[inline]
30437    fn from(node: RowsFuncOption) -> FuncOption {
30438        FuncOption::RowsFuncOption(node)
30439    }
30440}
30441impl From<SecurityFuncOption> for FuncOption {
30442    #[inline]
30443    fn from(node: SecurityFuncOption) -> FuncOption {
30444        FuncOption::SecurityFuncOption(node)
30445    }
30446}
30447impl From<SetFuncOption> for FuncOption {
30448    #[inline]
30449    fn from(node: SetFuncOption) -> FuncOption {
30450        FuncOption::SetFuncOption(node)
30451    }
30452}
30453impl From<StrictFuncOption> for FuncOption {
30454    #[inline]
30455    fn from(node: StrictFuncOption) -> FuncOption {
30456        FuncOption::StrictFuncOption(node)
30457    }
30458}
30459impl From<SupportFuncOption> for FuncOption {
30460    #[inline]
30461    fn from(node: SupportFuncOption) -> FuncOption {
30462        FuncOption::SupportFuncOption(node)
30463    }
30464}
30465impl From<TransformFuncOption> for FuncOption {
30466    #[inline]
30467    fn from(node: TransformFuncOption) -> FuncOption {
30468        FuncOption::TransformFuncOption(node)
30469    }
30470}
30471impl From<VolatilityFuncOption> for FuncOption {
30472    #[inline]
30473    fn from(node: VolatilityFuncOption) -> FuncOption {
30474        FuncOption::VolatilityFuncOption(node)
30475    }
30476}
30477impl From<WindowFuncOption> for FuncOption {
30478    #[inline]
30479    fn from(node: WindowFuncOption) -> FuncOption {
30480        FuncOption::WindowFuncOption(node)
30481    }
30482}
30483impl AstNode for GroupBy {
30484    #[inline]
30485    fn can_cast(kind: SyntaxKind) -> bool {
30486        matches!(
30487            kind,
30488            SyntaxKind::GROUPING_CUBE
30489                | SyntaxKind::GROUPING_EXPR
30490                | SyntaxKind::GROUPING_ROLLUP
30491                | SyntaxKind::GROUPING_SETS
30492        )
30493    }
30494    #[inline]
30495    fn cast(syntax: SyntaxNode) -> Option<Self> {
30496        let res = match syntax.kind() {
30497            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
30498            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
30499            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
30500            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
30501            _ => {
30502                return None;
30503            }
30504        };
30505        Some(res)
30506    }
30507    #[inline]
30508    fn syntax(&self) -> &SyntaxNode {
30509        match self {
30510            GroupBy::GroupingCube(it) => &it.syntax,
30511            GroupBy::GroupingExpr(it) => &it.syntax,
30512            GroupBy::GroupingRollup(it) => &it.syntax,
30513            GroupBy::GroupingSets(it) => &it.syntax,
30514        }
30515    }
30516}
30517impl From<GroupingCube> for GroupBy {
30518    #[inline]
30519    fn from(node: GroupingCube) -> GroupBy {
30520        GroupBy::GroupingCube(node)
30521    }
30522}
30523impl From<GroupingExpr> for GroupBy {
30524    #[inline]
30525    fn from(node: GroupingExpr) -> GroupBy {
30526        GroupBy::GroupingExpr(node)
30527    }
30528}
30529impl From<GroupingRollup> for GroupBy {
30530    #[inline]
30531    fn from(node: GroupingRollup) -> GroupBy {
30532        GroupBy::GroupingRollup(node)
30533    }
30534}
30535impl From<GroupingSets> for GroupBy {
30536    #[inline]
30537    fn from(node: GroupingSets) -> GroupBy {
30538        GroupBy::GroupingSets(node)
30539    }
30540}
30541impl AstNode for JoinType {
30542    #[inline]
30543    fn can_cast(kind: SyntaxKind) -> bool {
30544        matches!(
30545            kind,
30546            SyntaxKind::JOIN_CROSS
30547                | SyntaxKind::JOIN_FULL
30548                | SyntaxKind::JOIN_INNER
30549                | SyntaxKind::JOIN_LEFT
30550                | SyntaxKind::JOIN_RIGHT
30551        )
30552    }
30553    #[inline]
30554    fn cast(syntax: SyntaxNode) -> Option<Self> {
30555        let res = match syntax.kind() {
30556            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
30557            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
30558            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
30559            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
30560            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
30561            _ => {
30562                return None;
30563            }
30564        };
30565        Some(res)
30566    }
30567    #[inline]
30568    fn syntax(&self) -> &SyntaxNode {
30569        match self {
30570            JoinType::JoinCross(it) => &it.syntax,
30571            JoinType::JoinFull(it) => &it.syntax,
30572            JoinType::JoinInner(it) => &it.syntax,
30573            JoinType::JoinLeft(it) => &it.syntax,
30574            JoinType::JoinRight(it) => &it.syntax,
30575        }
30576    }
30577}
30578impl From<JoinCross> for JoinType {
30579    #[inline]
30580    fn from(node: JoinCross) -> JoinType {
30581        JoinType::JoinCross(node)
30582    }
30583}
30584impl From<JoinFull> for JoinType {
30585    #[inline]
30586    fn from(node: JoinFull) -> JoinType {
30587        JoinType::JoinFull(node)
30588    }
30589}
30590impl From<JoinInner> for JoinType {
30591    #[inline]
30592    fn from(node: JoinInner) -> JoinType {
30593        JoinType::JoinInner(node)
30594    }
30595}
30596impl From<JoinLeft> for JoinType {
30597    #[inline]
30598    fn from(node: JoinLeft) -> JoinType {
30599        JoinType::JoinLeft(node)
30600    }
30601}
30602impl From<JoinRight> for JoinType {
30603    #[inline]
30604    fn from(node: JoinRight) -> JoinType {
30605        JoinType::JoinRight(node)
30606    }
30607}
30608impl AstNode for JsonBehavior {
30609    #[inline]
30610    fn can_cast(kind: SyntaxKind) -> bool {
30611        matches!(
30612            kind,
30613            SyntaxKind::JSON_BEHAVIOR_DEFAULT
30614                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
30615                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
30616                | SyntaxKind::JSON_BEHAVIOR_ERROR
30617                | SyntaxKind::JSON_BEHAVIOR_FALSE
30618                | SyntaxKind::JSON_BEHAVIOR_NULL
30619                | SyntaxKind::JSON_BEHAVIOR_TRUE
30620                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
30621        )
30622    }
30623    #[inline]
30624    fn cast(syntax: SyntaxNode) -> Option<Self> {
30625        let res = match syntax.kind() {
30626            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
30627                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
30628            }
30629            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
30630                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
30631            }
30632            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
30633                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
30634            }
30635            SyntaxKind::JSON_BEHAVIOR_ERROR => {
30636                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
30637            }
30638            SyntaxKind::JSON_BEHAVIOR_FALSE => {
30639                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
30640            }
30641            SyntaxKind::JSON_BEHAVIOR_NULL => {
30642                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
30643            }
30644            SyntaxKind::JSON_BEHAVIOR_TRUE => {
30645                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
30646            }
30647            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
30648                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
30649            }
30650            _ => {
30651                return None;
30652            }
30653        };
30654        Some(res)
30655    }
30656    #[inline]
30657    fn syntax(&self) -> &SyntaxNode {
30658        match self {
30659            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
30660            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
30661            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
30662            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
30663            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
30664            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
30665            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
30666            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
30667        }
30668    }
30669}
30670impl From<JsonBehaviorDefault> for JsonBehavior {
30671    #[inline]
30672    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
30673        JsonBehavior::JsonBehaviorDefault(node)
30674    }
30675}
30676impl From<JsonBehaviorEmptyArray> for JsonBehavior {
30677    #[inline]
30678    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
30679        JsonBehavior::JsonBehaviorEmptyArray(node)
30680    }
30681}
30682impl From<JsonBehaviorEmptyObject> for JsonBehavior {
30683    #[inline]
30684    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
30685        JsonBehavior::JsonBehaviorEmptyObject(node)
30686    }
30687}
30688impl From<JsonBehaviorError> for JsonBehavior {
30689    #[inline]
30690    fn from(node: JsonBehaviorError) -> JsonBehavior {
30691        JsonBehavior::JsonBehaviorError(node)
30692    }
30693}
30694impl From<JsonBehaviorFalse> for JsonBehavior {
30695    #[inline]
30696    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
30697        JsonBehavior::JsonBehaviorFalse(node)
30698    }
30699}
30700impl From<JsonBehaviorNull> for JsonBehavior {
30701    #[inline]
30702    fn from(node: JsonBehaviorNull) -> JsonBehavior {
30703        JsonBehavior::JsonBehaviorNull(node)
30704    }
30705}
30706impl From<JsonBehaviorTrue> for JsonBehavior {
30707    #[inline]
30708    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
30709        JsonBehavior::JsonBehaviorTrue(node)
30710    }
30711}
30712impl From<JsonBehaviorUnknown> for JsonBehavior {
30713    #[inline]
30714    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
30715        JsonBehavior::JsonBehaviorUnknown(node)
30716    }
30717}
30718impl AstNode for MatchType {
30719    #[inline]
30720    fn can_cast(kind: SyntaxKind) -> bool {
30721        matches!(
30722            kind,
30723            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
30724        )
30725    }
30726    #[inline]
30727    fn cast(syntax: SyntaxNode) -> Option<Self> {
30728        let res = match syntax.kind() {
30729            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
30730            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
30731            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
30732            _ => {
30733                return None;
30734            }
30735        };
30736        Some(res)
30737    }
30738    #[inline]
30739    fn syntax(&self) -> &SyntaxNode {
30740        match self {
30741            MatchType::MatchFull(it) => &it.syntax,
30742            MatchType::MatchPartial(it) => &it.syntax,
30743            MatchType::MatchSimple(it) => &it.syntax,
30744        }
30745    }
30746}
30747impl From<MatchFull> for MatchType {
30748    #[inline]
30749    fn from(node: MatchFull) -> MatchType {
30750        MatchType::MatchFull(node)
30751    }
30752}
30753impl From<MatchPartial> for MatchType {
30754    #[inline]
30755    fn from(node: MatchPartial) -> MatchType {
30756        MatchType::MatchPartial(node)
30757    }
30758}
30759impl From<MatchSimple> for MatchType {
30760    #[inline]
30761    fn from(node: MatchSimple) -> MatchType {
30762        MatchType::MatchSimple(node)
30763    }
30764}
30765impl AstNode for MergeAction {
30766    #[inline]
30767    fn can_cast(kind: SyntaxKind) -> bool {
30768        matches!(
30769            kind,
30770            SyntaxKind::MERGE_DELETE
30771                | SyntaxKind::MERGE_DO_NOTHING
30772                | SyntaxKind::MERGE_INSERT
30773                | SyntaxKind::MERGE_UPDATE
30774        )
30775    }
30776    #[inline]
30777    fn cast(syntax: SyntaxNode) -> Option<Self> {
30778        let res = match syntax.kind() {
30779            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
30780            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
30781            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
30782            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
30783            _ => {
30784                return None;
30785            }
30786        };
30787        Some(res)
30788    }
30789    #[inline]
30790    fn syntax(&self) -> &SyntaxNode {
30791        match self {
30792            MergeAction::MergeDelete(it) => &it.syntax,
30793            MergeAction::MergeDoNothing(it) => &it.syntax,
30794            MergeAction::MergeInsert(it) => &it.syntax,
30795            MergeAction::MergeUpdate(it) => &it.syntax,
30796        }
30797    }
30798}
30799impl From<MergeDelete> for MergeAction {
30800    #[inline]
30801    fn from(node: MergeDelete) -> MergeAction {
30802        MergeAction::MergeDelete(node)
30803    }
30804}
30805impl From<MergeDoNothing> for MergeAction {
30806    #[inline]
30807    fn from(node: MergeDoNothing) -> MergeAction {
30808        MergeAction::MergeDoNothing(node)
30809    }
30810}
30811impl From<MergeInsert> for MergeAction {
30812    #[inline]
30813    fn from(node: MergeInsert) -> MergeAction {
30814        MergeAction::MergeInsert(node)
30815    }
30816}
30817impl From<MergeUpdate> for MergeAction {
30818    #[inline]
30819    fn from(node: MergeUpdate) -> MergeAction {
30820        MergeAction::MergeUpdate(node)
30821    }
30822}
30823impl AstNode for MergeWhenClause {
30824    #[inline]
30825    fn can_cast(kind: SyntaxKind) -> bool {
30826        matches!(
30827            kind,
30828            SyntaxKind::MERGE_WHEN_MATCHED
30829                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
30830                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
30831        )
30832    }
30833    #[inline]
30834    fn cast(syntax: SyntaxNode) -> Option<Self> {
30835        let res = match syntax.kind() {
30836            SyntaxKind::MERGE_WHEN_MATCHED => {
30837                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
30838            }
30839            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
30840                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
30841            }
30842            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
30843                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
30844            }
30845            _ => {
30846                return None;
30847            }
30848        };
30849        Some(res)
30850    }
30851    #[inline]
30852    fn syntax(&self) -> &SyntaxNode {
30853        match self {
30854            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
30855            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
30856            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
30857        }
30858    }
30859}
30860impl From<MergeWhenMatched> for MergeWhenClause {
30861    #[inline]
30862    fn from(node: MergeWhenMatched) -> MergeWhenClause {
30863        MergeWhenClause::MergeWhenMatched(node)
30864    }
30865}
30866impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
30867    #[inline]
30868    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
30869        MergeWhenClause::MergeWhenNotMatchedSource(node)
30870    }
30871}
30872impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
30873    #[inline]
30874    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
30875        MergeWhenClause::MergeWhenNotMatchedTarget(node)
30876    }
30877}
30878impl AstNode for OnCommitAction {
30879    #[inline]
30880    fn can_cast(kind: SyntaxKind) -> bool {
30881        matches!(
30882            kind,
30883            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
30884        )
30885    }
30886    #[inline]
30887    fn cast(syntax: SyntaxNode) -> Option<Self> {
30888        let res = match syntax.kind() {
30889            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
30890            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
30891            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
30892            _ => {
30893                return None;
30894            }
30895        };
30896        Some(res)
30897    }
30898    #[inline]
30899    fn syntax(&self) -> &SyntaxNode {
30900        match self {
30901            OnCommitAction::DeleteRows(it) => &it.syntax,
30902            OnCommitAction::Drop(it) => &it.syntax,
30903            OnCommitAction::PreserveRows(it) => &it.syntax,
30904        }
30905    }
30906}
30907impl From<DeleteRows> for OnCommitAction {
30908    #[inline]
30909    fn from(node: DeleteRows) -> OnCommitAction {
30910        OnCommitAction::DeleteRows(node)
30911    }
30912}
30913impl From<Drop> for OnCommitAction {
30914    #[inline]
30915    fn from(node: Drop) -> OnCommitAction {
30916        OnCommitAction::Drop(node)
30917    }
30918}
30919impl From<PreserveRows> for OnCommitAction {
30920    #[inline]
30921    fn from(node: PreserveRows) -> OnCommitAction {
30922        OnCommitAction::PreserveRows(node)
30923    }
30924}
30925impl AstNode for ParamMode {
30926    #[inline]
30927    fn can_cast(kind: SyntaxKind) -> bool {
30928        matches!(
30929            kind,
30930            SyntaxKind::PARAM_IN
30931                | SyntaxKind::PARAM_IN_OUT
30932                | SyntaxKind::PARAM_OUT
30933                | SyntaxKind::PARAM_VARIADIC
30934        )
30935    }
30936    #[inline]
30937    fn cast(syntax: SyntaxNode) -> Option<Self> {
30938        let res = match syntax.kind() {
30939            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
30940            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
30941            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
30942            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
30943            _ => {
30944                return None;
30945            }
30946        };
30947        Some(res)
30948    }
30949    #[inline]
30950    fn syntax(&self) -> &SyntaxNode {
30951        match self {
30952            ParamMode::ParamIn(it) => &it.syntax,
30953            ParamMode::ParamInOut(it) => &it.syntax,
30954            ParamMode::ParamOut(it) => &it.syntax,
30955            ParamMode::ParamVariadic(it) => &it.syntax,
30956        }
30957    }
30958}
30959impl From<ParamIn> for ParamMode {
30960    #[inline]
30961    fn from(node: ParamIn) -> ParamMode {
30962        ParamMode::ParamIn(node)
30963    }
30964}
30965impl From<ParamInOut> for ParamMode {
30966    #[inline]
30967    fn from(node: ParamInOut) -> ParamMode {
30968        ParamMode::ParamInOut(node)
30969    }
30970}
30971impl From<ParamOut> for ParamMode {
30972    #[inline]
30973    fn from(node: ParamOut) -> ParamMode {
30974        ParamMode::ParamOut(node)
30975    }
30976}
30977impl From<ParamVariadic> for ParamMode {
30978    #[inline]
30979    fn from(node: ParamVariadic) -> ParamMode {
30980        ParamMode::ParamVariadic(node)
30981    }
30982}
30983impl AstNode for PartitionType {
30984    #[inline]
30985    fn can_cast(kind: SyntaxKind) -> bool {
30986        matches!(
30987            kind,
30988            SyntaxKind::PARTITION_DEFAULT
30989                | SyntaxKind::PARTITION_FOR_VALUES_FROM
30990                | SyntaxKind::PARTITION_FOR_VALUES_IN
30991                | SyntaxKind::PARTITION_FOR_VALUES_WITH
30992        )
30993    }
30994    #[inline]
30995    fn cast(syntax: SyntaxNode) -> Option<Self> {
30996        let res = match syntax.kind() {
30997            SyntaxKind::PARTITION_DEFAULT => {
30998                PartitionType::PartitionDefault(PartitionDefault { syntax })
30999            }
31000            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
31001                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
31002            }
31003            SyntaxKind::PARTITION_FOR_VALUES_IN => {
31004                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
31005            }
31006            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
31007                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
31008            }
31009            _ => {
31010                return None;
31011            }
31012        };
31013        Some(res)
31014    }
31015    #[inline]
31016    fn syntax(&self) -> &SyntaxNode {
31017        match self {
31018            PartitionType::PartitionDefault(it) => &it.syntax,
31019            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
31020            PartitionType::PartitionForValuesIn(it) => &it.syntax,
31021            PartitionType::PartitionForValuesWith(it) => &it.syntax,
31022        }
31023    }
31024}
31025impl From<PartitionDefault> for PartitionType {
31026    #[inline]
31027    fn from(node: PartitionDefault) -> PartitionType {
31028        PartitionType::PartitionDefault(node)
31029    }
31030}
31031impl From<PartitionForValuesFrom> for PartitionType {
31032    #[inline]
31033    fn from(node: PartitionForValuesFrom) -> PartitionType {
31034        PartitionType::PartitionForValuesFrom(node)
31035    }
31036}
31037impl From<PartitionForValuesIn> for PartitionType {
31038    #[inline]
31039    fn from(node: PartitionForValuesIn) -> PartitionType {
31040        PartitionType::PartitionForValuesIn(node)
31041    }
31042}
31043impl From<PartitionForValuesWith> for PartitionType {
31044    #[inline]
31045    fn from(node: PartitionForValuesWith) -> PartitionType {
31046        PartitionType::PartitionForValuesWith(node)
31047    }
31048}
31049impl AstNode for PreparableStmt {
31050    #[inline]
31051    fn can_cast(kind: SyntaxKind) -> bool {
31052        matches!(
31053            kind,
31054            SyntaxKind::COMPOUND_SELECT
31055                | SyntaxKind::DELETE
31056                | SyntaxKind::INSERT
31057                | SyntaxKind::MERGE
31058                | SyntaxKind::SELECT
31059                | SyntaxKind::SELECT_INTO
31060                | SyntaxKind::TABLE
31061                | SyntaxKind::UPDATE
31062                | SyntaxKind::VALUES
31063        )
31064    }
31065    #[inline]
31066    fn cast(syntax: SyntaxNode) -> Option<Self> {
31067        let res = match syntax.kind() {
31068            SyntaxKind::COMPOUND_SELECT => {
31069                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
31070            }
31071            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
31072            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
31073            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
31074            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
31075            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
31076            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
31077            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
31078            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
31079            _ => {
31080                return None;
31081            }
31082        };
31083        Some(res)
31084    }
31085    #[inline]
31086    fn syntax(&self) -> &SyntaxNode {
31087        match self {
31088            PreparableStmt::CompoundSelect(it) => &it.syntax,
31089            PreparableStmt::Delete(it) => &it.syntax,
31090            PreparableStmt::Insert(it) => &it.syntax,
31091            PreparableStmt::Merge(it) => &it.syntax,
31092            PreparableStmt::Select(it) => &it.syntax,
31093            PreparableStmt::SelectInto(it) => &it.syntax,
31094            PreparableStmt::Table(it) => &it.syntax,
31095            PreparableStmt::Update(it) => &it.syntax,
31096            PreparableStmt::Values(it) => &it.syntax,
31097        }
31098    }
31099}
31100impl From<CompoundSelect> for PreparableStmt {
31101    #[inline]
31102    fn from(node: CompoundSelect) -> PreparableStmt {
31103        PreparableStmt::CompoundSelect(node)
31104    }
31105}
31106impl From<Delete> for PreparableStmt {
31107    #[inline]
31108    fn from(node: Delete) -> PreparableStmt {
31109        PreparableStmt::Delete(node)
31110    }
31111}
31112impl From<Insert> for PreparableStmt {
31113    #[inline]
31114    fn from(node: Insert) -> PreparableStmt {
31115        PreparableStmt::Insert(node)
31116    }
31117}
31118impl From<Merge> for PreparableStmt {
31119    #[inline]
31120    fn from(node: Merge) -> PreparableStmt {
31121        PreparableStmt::Merge(node)
31122    }
31123}
31124impl From<Select> for PreparableStmt {
31125    #[inline]
31126    fn from(node: Select) -> PreparableStmt {
31127        PreparableStmt::Select(node)
31128    }
31129}
31130impl From<SelectInto> for PreparableStmt {
31131    #[inline]
31132    fn from(node: SelectInto) -> PreparableStmt {
31133        PreparableStmt::SelectInto(node)
31134    }
31135}
31136impl From<Table> for PreparableStmt {
31137    #[inline]
31138    fn from(node: Table) -> PreparableStmt {
31139        PreparableStmt::Table(node)
31140    }
31141}
31142impl From<Update> for PreparableStmt {
31143    #[inline]
31144    fn from(node: Update) -> PreparableStmt {
31145        PreparableStmt::Update(node)
31146    }
31147}
31148impl From<Values> for PreparableStmt {
31149    #[inline]
31150    fn from(node: Values) -> PreparableStmt {
31151        PreparableStmt::Values(node)
31152    }
31153}
31154impl AstNode for RefAction {
31155    #[inline]
31156    fn can_cast(kind: SyntaxKind) -> bool {
31157        matches!(
31158            kind,
31159            SyntaxKind::CASCADE
31160                | SyntaxKind::NO_ACTION
31161                | SyntaxKind::RESTRICT
31162                | SyntaxKind::SET_DEFAULT_COLUMNS
31163                | SyntaxKind::SET_NULL_COLUMNS
31164        )
31165    }
31166    #[inline]
31167    fn cast(syntax: SyntaxNode) -> Option<Self> {
31168        let res = match syntax.kind() {
31169            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
31170            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
31171            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
31172            SyntaxKind::SET_DEFAULT_COLUMNS => {
31173                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
31174            }
31175            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
31176            _ => {
31177                return None;
31178            }
31179        };
31180        Some(res)
31181    }
31182    #[inline]
31183    fn syntax(&self) -> &SyntaxNode {
31184        match self {
31185            RefAction::Cascade(it) => &it.syntax,
31186            RefAction::NoAction(it) => &it.syntax,
31187            RefAction::Restrict(it) => &it.syntax,
31188            RefAction::SetDefaultColumns(it) => &it.syntax,
31189            RefAction::SetNullColumns(it) => &it.syntax,
31190        }
31191    }
31192}
31193impl From<Cascade> for RefAction {
31194    #[inline]
31195    fn from(node: Cascade) -> RefAction {
31196        RefAction::Cascade(node)
31197    }
31198}
31199impl From<NoAction> for RefAction {
31200    #[inline]
31201    fn from(node: NoAction) -> RefAction {
31202        RefAction::NoAction(node)
31203    }
31204}
31205impl From<Restrict> for RefAction {
31206    #[inline]
31207    fn from(node: Restrict) -> RefAction {
31208        RefAction::Restrict(node)
31209    }
31210}
31211impl From<SetDefaultColumns> for RefAction {
31212    #[inline]
31213    fn from(node: SetDefaultColumns) -> RefAction {
31214        RefAction::SetDefaultColumns(node)
31215    }
31216}
31217impl From<SetNullColumns> for RefAction {
31218    #[inline]
31219    fn from(node: SetNullColumns) -> RefAction {
31220        RefAction::SetNullColumns(node)
31221    }
31222}
31223impl AstNode for SchemaElement {
31224    #[inline]
31225    fn can_cast(kind: SyntaxKind) -> bool {
31226        matches!(
31227            kind,
31228            SyntaxKind::CREATE_INDEX
31229                | SyntaxKind::CREATE_SEQUENCE
31230                | SyntaxKind::CREATE_TABLE
31231                | SyntaxKind::CREATE_TRIGGER
31232                | SyntaxKind::CREATE_VIEW
31233                | SyntaxKind::GRANT
31234        )
31235    }
31236    #[inline]
31237    fn cast(syntax: SyntaxNode) -> Option<Self> {
31238        let res = match syntax.kind() {
31239            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
31240            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
31241            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
31242            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
31243            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
31244            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
31245            _ => {
31246                return None;
31247            }
31248        };
31249        Some(res)
31250    }
31251    #[inline]
31252    fn syntax(&self) -> &SyntaxNode {
31253        match self {
31254            SchemaElement::CreateIndex(it) => &it.syntax,
31255            SchemaElement::CreateSequence(it) => &it.syntax,
31256            SchemaElement::CreateTable(it) => &it.syntax,
31257            SchemaElement::CreateTrigger(it) => &it.syntax,
31258            SchemaElement::CreateView(it) => &it.syntax,
31259            SchemaElement::Grant(it) => &it.syntax,
31260        }
31261    }
31262}
31263impl From<CreateIndex> for SchemaElement {
31264    #[inline]
31265    fn from(node: CreateIndex) -> SchemaElement {
31266        SchemaElement::CreateIndex(node)
31267    }
31268}
31269impl From<CreateSequence> for SchemaElement {
31270    #[inline]
31271    fn from(node: CreateSequence) -> SchemaElement {
31272        SchemaElement::CreateSequence(node)
31273    }
31274}
31275impl From<CreateTable> for SchemaElement {
31276    #[inline]
31277    fn from(node: CreateTable) -> SchemaElement {
31278        SchemaElement::CreateTable(node)
31279    }
31280}
31281impl From<CreateTrigger> for SchemaElement {
31282    #[inline]
31283    fn from(node: CreateTrigger) -> SchemaElement {
31284        SchemaElement::CreateTrigger(node)
31285    }
31286}
31287impl From<CreateView> for SchemaElement {
31288    #[inline]
31289    fn from(node: CreateView) -> SchemaElement {
31290        SchemaElement::CreateView(node)
31291    }
31292}
31293impl From<Grant> for SchemaElement {
31294    #[inline]
31295    fn from(node: Grant) -> SchemaElement {
31296        SchemaElement::Grant(node)
31297    }
31298}
31299impl AstNode for SelectVariant {
31300    #[inline]
31301    fn can_cast(kind: SyntaxKind) -> bool {
31302        matches!(
31303            kind,
31304            SyntaxKind::COMPOUND_SELECT
31305                | SyntaxKind::PAREN_SELECT
31306                | SyntaxKind::SELECT
31307                | SyntaxKind::SELECT_INTO
31308                | SyntaxKind::TABLE
31309                | SyntaxKind::VALUES
31310        )
31311    }
31312    #[inline]
31313    fn cast(syntax: SyntaxNode) -> Option<Self> {
31314        let res = match syntax.kind() {
31315            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
31316            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
31317            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
31318            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
31319            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
31320            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
31321            _ => {
31322                return None;
31323            }
31324        };
31325        Some(res)
31326    }
31327    #[inline]
31328    fn syntax(&self) -> &SyntaxNode {
31329        match self {
31330            SelectVariant::CompoundSelect(it) => &it.syntax,
31331            SelectVariant::ParenSelect(it) => &it.syntax,
31332            SelectVariant::Select(it) => &it.syntax,
31333            SelectVariant::SelectInto(it) => &it.syntax,
31334            SelectVariant::Table(it) => &it.syntax,
31335            SelectVariant::Values(it) => &it.syntax,
31336        }
31337    }
31338}
31339impl From<CompoundSelect> for SelectVariant {
31340    #[inline]
31341    fn from(node: CompoundSelect) -> SelectVariant {
31342        SelectVariant::CompoundSelect(node)
31343    }
31344}
31345impl From<ParenSelect> for SelectVariant {
31346    #[inline]
31347    fn from(node: ParenSelect) -> SelectVariant {
31348        SelectVariant::ParenSelect(node)
31349    }
31350}
31351impl From<Select> for SelectVariant {
31352    #[inline]
31353    fn from(node: Select) -> SelectVariant {
31354        SelectVariant::Select(node)
31355    }
31356}
31357impl From<SelectInto> for SelectVariant {
31358    #[inline]
31359    fn from(node: SelectInto) -> SelectVariant {
31360        SelectVariant::SelectInto(node)
31361    }
31362}
31363impl From<Table> for SelectVariant {
31364    #[inline]
31365    fn from(node: Table) -> SelectVariant {
31366        SelectVariant::Table(node)
31367    }
31368}
31369impl From<Values> for SelectVariant {
31370    #[inline]
31371    fn from(node: Values) -> SelectVariant {
31372        SelectVariant::Values(node)
31373    }
31374}
31375impl AstNode for SetColumn {
31376    #[inline]
31377    fn can_cast(kind: SyntaxKind) -> bool {
31378        matches!(
31379            kind,
31380            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
31381        )
31382    }
31383    #[inline]
31384    fn cast(syntax: SyntaxNode) -> Option<Self> {
31385        let res = match syntax.kind() {
31386            SyntaxKind::SET_MULTIPLE_COLUMNS => {
31387                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
31388            }
31389            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
31390            _ => {
31391                return None;
31392            }
31393        };
31394        Some(res)
31395    }
31396    #[inline]
31397    fn syntax(&self) -> &SyntaxNode {
31398        match self {
31399            SetColumn::SetMultipleColumns(it) => &it.syntax,
31400            SetColumn::SetSingleColumn(it) => &it.syntax,
31401        }
31402    }
31403}
31404impl From<SetMultipleColumns> for SetColumn {
31405    #[inline]
31406    fn from(node: SetMultipleColumns) -> SetColumn {
31407        SetColumn::SetMultipleColumns(node)
31408    }
31409}
31410impl From<SetSingleColumn> for SetColumn {
31411    #[inline]
31412    fn from(node: SetSingleColumn) -> SetColumn {
31413        SetColumn::SetSingleColumn(node)
31414    }
31415}
31416impl AstNode for Stmt {
31417    #[inline]
31418    fn can_cast(kind: SyntaxKind) -> bool {
31419        matches!(
31420            kind,
31421            SyntaxKind::ALTER_AGGREGATE
31422                | SyntaxKind::ALTER_COLLATION
31423                | SyntaxKind::ALTER_CONVERSION
31424                | SyntaxKind::ALTER_DATABASE
31425                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
31426                | SyntaxKind::ALTER_DOMAIN
31427                | SyntaxKind::ALTER_EVENT_TRIGGER
31428                | SyntaxKind::ALTER_EXTENSION
31429                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
31430                | SyntaxKind::ALTER_FOREIGN_TABLE
31431                | SyntaxKind::ALTER_FUNCTION
31432                | SyntaxKind::ALTER_GROUP
31433                | SyntaxKind::ALTER_INDEX
31434                | SyntaxKind::ALTER_LANGUAGE
31435                | SyntaxKind::ALTER_LARGE_OBJECT
31436                | SyntaxKind::ALTER_MATERIALIZED_VIEW
31437                | SyntaxKind::ALTER_OPERATOR
31438                | SyntaxKind::ALTER_OPERATOR_CLASS
31439                | SyntaxKind::ALTER_OPERATOR_FAMILY
31440                | SyntaxKind::ALTER_POLICY
31441                | SyntaxKind::ALTER_PROCEDURE
31442                | SyntaxKind::ALTER_PUBLICATION
31443                | SyntaxKind::ALTER_ROLE
31444                | SyntaxKind::ALTER_ROUTINE
31445                | SyntaxKind::ALTER_RULE
31446                | SyntaxKind::ALTER_SCHEMA
31447                | SyntaxKind::ALTER_SEQUENCE
31448                | SyntaxKind::ALTER_SERVER
31449                | SyntaxKind::ALTER_STATISTICS
31450                | SyntaxKind::ALTER_SUBSCRIPTION
31451                | SyntaxKind::ALTER_SYSTEM
31452                | SyntaxKind::ALTER_TABLE
31453                | SyntaxKind::ALTER_TABLESPACE
31454                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
31455                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
31456                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
31457                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
31458                | SyntaxKind::ALTER_TRIGGER
31459                | SyntaxKind::ALTER_TYPE
31460                | SyntaxKind::ALTER_USER
31461                | SyntaxKind::ALTER_USER_MAPPING
31462                | SyntaxKind::ALTER_VIEW
31463                | SyntaxKind::ANALYZE
31464                | SyntaxKind::BEGIN
31465                | SyntaxKind::CALL
31466                | SyntaxKind::CHECKPOINT
31467                | SyntaxKind::CLOSE
31468                | SyntaxKind::CLUSTER
31469                | SyntaxKind::COMMENT_ON
31470                | SyntaxKind::COMMIT
31471                | SyntaxKind::COPY
31472                | SyntaxKind::CREATE_ACCESS_METHOD
31473                | SyntaxKind::CREATE_AGGREGATE
31474                | SyntaxKind::CREATE_CAST
31475                | SyntaxKind::CREATE_COLLATION
31476                | SyntaxKind::CREATE_CONVERSION
31477                | SyntaxKind::CREATE_DATABASE
31478                | SyntaxKind::CREATE_DOMAIN
31479                | SyntaxKind::CREATE_EVENT_TRIGGER
31480                | SyntaxKind::CREATE_EXTENSION
31481                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
31482                | SyntaxKind::CREATE_FOREIGN_TABLE
31483                | SyntaxKind::CREATE_FUNCTION
31484                | SyntaxKind::CREATE_GROUP
31485                | SyntaxKind::CREATE_INDEX
31486                | SyntaxKind::CREATE_LANGUAGE
31487                | SyntaxKind::CREATE_MATERIALIZED_VIEW
31488                | SyntaxKind::CREATE_OPERATOR
31489                | SyntaxKind::CREATE_OPERATOR_CLASS
31490                | SyntaxKind::CREATE_OPERATOR_FAMILY
31491                | SyntaxKind::CREATE_POLICY
31492                | SyntaxKind::CREATE_PROCEDURE
31493                | SyntaxKind::CREATE_PUBLICATION
31494                | SyntaxKind::CREATE_ROLE
31495                | SyntaxKind::CREATE_RULE
31496                | SyntaxKind::CREATE_SCHEMA
31497                | SyntaxKind::CREATE_SEQUENCE
31498                | SyntaxKind::CREATE_SERVER
31499                | SyntaxKind::CREATE_STATISTICS
31500                | SyntaxKind::CREATE_SUBSCRIPTION
31501                | SyntaxKind::CREATE_TABLE
31502                | SyntaxKind::CREATE_TABLE_AS
31503                | SyntaxKind::CREATE_TABLESPACE
31504                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
31505                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
31506                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
31507                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
31508                | SyntaxKind::CREATE_TRANSFORM
31509                | SyntaxKind::CREATE_TRIGGER
31510                | SyntaxKind::CREATE_TYPE
31511                | SyntaxKind::CREATE_USER
31512                | SyntaxKind::CREATE_USER_MAPPING
31513                | SyntaxKind::CREATE_VIEW
31514                | SyntaxKind::DEALLOCATE
31515                | SyntaxKind::DECLARE
31516                | SyntaxKind::DELETE
31517                | SyntaxKind::DISCARD
31518                | SyntaxKind::DO
31519                | SyntaxKind::DROP_ACCESS_METHOD
31520                | SyntaxKind::DROP_AGGREGATE
31521                | SyntaxKind::DROP_CAST
31522                | SyntaxKind::DROP_COLLATION
31523                | SyntaxKind::DROP_CONVERSION
31524                | SyntaxKind::DROP_DATABASE
31525                | SyntaxKind::DROP_DOMAIN
31526                | SyntaxKind::DROP_EVENT_TRIGGER
31527                | SyntaxKind::DROP_EXTENSION
31528                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
31529                | SyntaxKind::DROP_FOREIGN_TABLE
31530                | SyntaxKind::DROP_FUNCTION
31531                | SyntaxKind::DROP_GROUP
31532                | SyntaxKind::DROP_INDEX
31533                | SyntaxKind::DROP_LANGUAGE
31534                | SyntaxKind::DROP_MATERIALIZED_VIEW
31535                | SyntaxKind::DROP_OPERATOR
31536                | SyntaxKind::DROP_OPERATOR_CLASS
31537                | SyntaxKind::DROP_OPERATOR_FAMILY
31538                | SyntaxKind::DROP_OWNED
31539                | SyntaxKind::DROP_POLICY
31540                | SyntaxKind::DROP_PROCEDURE
31541                | SyntaxKind::DROP_PUBLICATION
31542                | SyntaxKind::DROP_ROLE
31543                | SyntaxKind::DROP_ROUTINE
31544                | SyntaxKind::DROP_RULE
31545                | SyntaxKind::DROP_SCHEMA
31546                | SyntaxKind::DROP_SEQUENCE
31547                | SyntaxKind::DROP_SERVER
31548                | SyntaxKind::DROP_STATISTICS
31549                | SyntaxKind::DROP_SUBSCRIPTION
31550                | SyntaxKind::DROP_TABLE
31551                | SyntaxKind::DROP_TABLESPACE
31552                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
31553                | SyntaxKind::DROP_TEXT_SEARCH_DICT
31554                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
31555                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
31556                | SyntaxKind::DROP_TRANSFORM
31557                | SyntaxKind::DROP_TRIGGER
31558                | SyntaxKind::DROP_TYPE
31559                | SyntaxKind::DROP_USER
31560                | SyntaxKind::DROP_USER_MAPPING
31561                | SyntaxKind::DROP_VIEW
31562                | SyntaxKind::EXECUTE
31563                | SyntaxKind::EXPLAIN
31564                | SyntaxKind::FETCH
31565                | SyntaxKind::GRANT
31566                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
31567                | SyntaxKind::INSERT
31568                | SyntaxKind::LISTEN
31569                | SyntaxKind::LOAD
31570                | SyntaxKind::LOCK
31571                | SyntaxKind::MERGE
31572                | SyntaxKind::MOVE
31573                | SyntaxKind::NOTIFY
31574                | SyntaxKind::PAREN_SELECT
31575                | SyntaxKind::PREPARE
31576                | SyntaxKind::PREPARE_TRANSACTION
31577                | SyntaxKind::REASSIGN
31578                | SyntaxKind::REFRESH
31579                | SyntaxKind::REINDEX
31580                | SyntaxKind::RELEASE_SAVEPOINT
31581                | SyntaxKind::RESET
31582                | SyntaxKind::RESET_SESSION_AUTH
31583                | SyntaxKind::REVOKE
31584                | SyntaxKind::ROLLBACK
31585                | SyntaxKind::SAVEPOINT
31586                | SyntaxKind::SECURITY_LABEL
31587                | SyntaxKind::SELECT
31588                | SyntaxKind::SELECT_INTO
31589                | SyntaxKind::SET
31590                | SyntaxKind::SET_CONSTRAINTS
31591                | SyntaxKind::SET_ROLE
31592                | SyntaxKind::SET_SESSION_AUTH
31593                | SyntaxKind::SET_TRANSACTION
31594                | SyntaxKind::SHOW
31595                | SyntaxKind::TABLE
31596                | SyntaxKind::TRUNCATE
31597                | SyntaxKind::UNLISTEN
31598                | SyntaxKind::UPDATE
31599                | SyntaxKind::VACUUM
31600                | SyntaxKind::VALUES
31601        )
31602    }
31603    #[inline]
31604    fn cast(syntax: SyntaxNode) -> Option<Self> {
31605        let res = match syntax.kind() {
31606            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
31607            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
31608            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
31609            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
31610            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
31611                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
31612            }
31613            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
31614            SyntaxKind::ALTER_EVENT_TRIGGER => {
31615                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
31616            }
31617            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
31618            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
31619                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
31620            }
31621            SyntaxKind::ALTER_FOREIGN_TABLE => {
31622                Stmt::AlterForeignTable(AlterForeignTable { syntax })
31623            }
31624            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
31625            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
31626            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
31627            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
31628            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
31629            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
31630                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
31631            }
31632            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
31633            SyntaxKind::ALTER_OPERATOR_CLASS => {
31634                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
31635            }
31636            SyntaxKind::ALTER_OPERATOR_FAMILY => {
31637                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
31638            }
31639            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
31640            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
31641            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
31642            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
31643            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
31644            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
31645            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
31646            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
31647            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
31648            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
31649            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
31650            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
31651            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
31652            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
31653            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
31654                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
31655            }
31656            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
31657                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
31658            }
31659            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
31660                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
31661            }
31662            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
31663                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
31664            }
31665            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
31666            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
31667            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
31668            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
31669            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
31670            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
31671            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
31672            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
31673            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
31674            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
31675            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
31676            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
31677            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
31678            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
31679            SyntaxKind::CREATE_ACCESS_METHOD => {
31680                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
31681            }
31682            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
31683            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
31684            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
31685            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
31686            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
31687            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
31688            SyntaxKind::CREATE_EVENT_TRIGGER => {
31689                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
31690            }
31691            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
31692            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
31693                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
31694            }
31695            SyntaxKind::CREATE_FOREIGN_TABLE => {
31696                Stmt::CreateForeignTable(CreateForeignTable { syntax })
31697            }
31698            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
31699            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
31700            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
31701            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
31702            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
31703                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
31704            }
31705            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
31706            SyntaxKind::CREATE_OPERATOR_CLASS => {
31707                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
31708            }
31709            SyntaxKind::CREATE_OPERATOR_FAMILY => {
31710                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
31711            }
31712            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
31713            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
31714            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
31715            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
31716            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
31717            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
31718            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
31719            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
31720            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
31721            SyntaxKind::CREATE_SUBSCRIPTION => {
31722                Stmt::CreateSubscription(CreateSubscription { syntax })
31723            }
31724            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
31725            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
31726            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
31727            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
31728                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
31729            }
31730            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
31731                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
31732            }
31733            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
31734                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
31735            }
31736            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
31737                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
31738            }
31739            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
31740            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
31741            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
31742            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
31743            SyntaxKind::CREATE_USER_MAPPING => {
31744                Stmt::CreateUserMapping(CreateUserMapping { syntax })
31745            }
31746            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
31747            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
31748            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
31749            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
31750            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
31751            SyntaxKind::DO => Stmt::Do(Do { syntax }),
31752            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
31753            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
31754            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
31755            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
31756            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
31757            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
31758            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
31759            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
31760            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
31761            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
31762                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
31763            }
31764            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
31765            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
31766            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
31767            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
31768            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
31769            SyntaxKind::DROP_MATERIALIZED_VIEW => {
31770                Stmt::DropMaterializedView(DropMaterializedView { syntax })
31771            }
31772            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
31773            SyntaxKind::DROP_OPERATOR_CLASS => {
31774                Stmt::DropOperatorClass(DropOperatorClass { syntax })
31775            }
31776            SyntaxKind::DROP_OPERATOR_FAMILY => {
31777                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
31778            }
31779            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
31780            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
31781            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
31782            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
31783            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
31784            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
31785            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
31786            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
31787            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
31788            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
31789            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
31790            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
31791            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
31792            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
31793            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
31794                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
31795            }
31796            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
31797                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
31798            }
31799            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
31800                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
31801            }
31802            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
31803                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
31804            }
31805            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
31806            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
31807            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
31808            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
31809            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
31810            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
31811            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
31812            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
31813            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
31814            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
31815            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
31816                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
31817            }
31818            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
31819            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
31820            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
31821            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
31822            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
31823            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
31824            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
31825            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
31826            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
31827            SyntaxKind::PREPARE_TRANSACTION => {
31828                Stmt::PrepareTransaction(PrepareTransaction { syntax })
31829            }
31830            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
31831            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
31832            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
31833            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
31834            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
31835            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
31836            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
31837            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
31838            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
31839            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
31840            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
31841            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
31842            SyntaxKind::SET => Stmt::Set(Set { syntax }),
31843            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
31844            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
31845            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
31846            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
31847            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
31848            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
31849            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
31850            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
31851            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
31852            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
31853            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
31854            _ => {
31855                return None;
31856            }
31857        };
31858        Some(res)
31859    }
31860    #[inline]
31861    fn syntax(&self) -> &SyntaxNode {
31862        match self {
31863            Stmt::AlterAggregate(it) => &it.syntax,
31864            Stmt::AlterCollation(it) => &it.syntax,
31865            Stmt::AlterConversion(it) => &it.syntax,
31866            Stmt::AlterDatabase(it) => &it.syntax,
31867            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
31868            Stmt::AlterDomain(it) => &it.syntax,
31869            Stmt::AlterEventTrigger(it) => &it.syntax,
31870            Stmt::AlterExtension(it) => &it.syntax,
31871            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
31872            Stmt::AlterForeignTable(it) => &it.syntax,
31873            Stmt::AlterFunction(it) => &it.syntax,
31874            Stmt::AlterGroup(it) => &it.syntax,
31875            Stmt::AlterIndex(it) => &it.syntax,
31876            Stmt::AlterLanguage(it) => &it.syntax,
31877            Stmt::AlterLargeObject(it) => &it.syntax,
31878            Stmt::AlterMaterializedView(it) => &it.syntax,
31879            Stmt::AlterOperator(it) => &it.syntax,
31880            Stmt::AlterOperatorClass(it) => &it.syntax,
31881            Stmt::AlterOperatorFamily(it) => &it.syntax,
31882            Stmt::AlterPolicy(it) => &it.syntax,
31883            Stmt::AlterProcedure(it) => &it.syntax,
31884            Stmt::AlterPublication(it) => &it.syntax,
31885            Stmt::AlterRole(it) => &it.syntax,
31886            Stmt::AlterRoutine(it) => &it.syntax,
31887            Stmt::AlterRule(it) => &it.syntax,
31888            Stmt::AlterSchema(it) => &it.syntax,
31889            Stmt::AlterSequence(it) => &it.syntax,
31890            Stmt::AlterServer(it) => &it.syntax,
31891            Stmt::AlterStatistics(it) => &it.syntax,
31892            Stmt::AlterSubscription(it) => &it.syntax,
31893            Stmt::AlterSystem(it) => &it.syntax,
31894            Stmt::AlterTable(it) => &it.syntax,
31895            Stmt::AlterTablespace(it) => &it.syntax,
31896            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
31897            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
31898            Stmt::AlterTextSearchParser(it) => &it.syntax,
31899            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
31900            Stmt::AlterTrigger(it) => &it.syntax,
31901            Stmt::AlterType(it) => &it.syntax,
31902            Stmt::AlterUser(it) => &it.syntax,
31903            Stmt::AlterUserMapping(it) => &it.syntax,
31904            Stmt::AlterView(it) => &it.syntax,
31905            Stmt::Analyze(it) => &it.syntax,
31906            Stmt::Begin(it) => &it.syntax,
31907            Stmt::Call(it) => &it.syntax,
31908            Stmt::Checkpoint(it) => &it.syntax,
31909            Stmt::Close(it) => &it.syntax,
31910            Stmt::Cluster(it) => &it.syntax,
31911            Stmt::CommentOn(it) => &it.syntax,
31912            Stmt::Commit(it) => &it.syntax,
31913            Stmt::Copy(it) => &it.syntax,
31914            Stmt::CreateAccessMethod(it) => &it.syntax,
31915            Stmt::CreateAggregate(it) => &it.syntax,
31916            Stmt::CreateCast(it) => &it.syntax,
31917            Stmt::CreateCollation(it) => &it.syntax,
31918            Stmt::CreateConversion(it) => &it.syntax,
31919            Stmt::CreateDatabase(it) => &it.syntax,
31920            Stmt::CreateDomain(it) => &it.syntax,
31921            Stmt::CreateEventTrigger(it) => &it.syntax,
31922            Stmt::CreateExtension(it) => &it.syntax,
31923            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
31924            Stmt::CreateForeignTable(it) => &it.syntax,
31925            Stmt::CreateFunction(it) => &it.syntax,
31926            Stmt::CreateGroup(it) => &it.syntax,
31927            Stmt::CreateIndex(it) => &it.syntax,
31928            Stmt::CreateLanguage(it) => &it.syntax,
31929            Stmt::CreateMaterializedView(it) => &it.syntax,
31930            Stmt::CreateOperator(it) => &it.syntax,
31931            Stmt::CreateOperatorClass(it) => &it.syntax,
31932            Stmt::CreateOperatorFamily(it) => &it.syntax,
31933            Stmt::CreatePolicy(it) => &it.syntax,
31934            Stmt::CreateProcedure(it) => &it.syntax,
31935            Stmt::CreatePublication(it) => &it.syntax,
31936            Stmt::CreateRole(it) => &it.syntax,
31937            Stmt::CreateRule(it) => &it.syntax,
31938            Stmt::CreateSchema(it) => &it.syntax,
31939            Stmt::CreateSequence(it) => &it.syntax,
31940            Stmt::CreateServer(it) => &it.syntax,
31941            Stmt::CreateStatistics(it) => &it.syntax,
31942            Stmt::CreateSubscription(it) => &it.syntax,
31943            Stmt::CreateTable(it) => &it.syntax,
31944            Stmt::CreateTableAs(it) => &it.syntax,
31945            Stmt::CreateTablespace(it) => &it.syntax,
31946            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
31947            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
31948            Stmt::CreateTextSearchParser(it) => &it.syntax,
31949            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
31950            Stmt::CreateTransform(it) => &it.syntax,
31951            Stmt::CreateTrigger(it) => &it.syntax,
31952            Stmt::CreateType(it) => &it.syntax,
31953            Stmt::CreateUser(it) => &it.syntax,
31954            Stmt::CreateUserMapping(it) => &it.syntax,
31955            Stmt::CreateView(it) => &it.syntax,
31956            Stmt::Deallocate(it) => &it.syntax,
31957            Stmt::Declare(it) => &it.syntax,
31958            Stmt::Delete(it) => &it.syntax,
31959            Stmt::Discard(it) => &it.syntax,
31960            Stmt::Do(it) => &it.syntax,
31961            Stmt::DropAccessMethod(it) => &it.syntax,
31962            Stmt::DropAggregate(it) => &it.syntax,
31963            Stmt::DropCast(it) => &it.syntax,
31964            Stmt::DropCollation(it) => &it.syntax,
31965            Stmt::DropConversion(it) => &it.syntax,
31966            Stmt::DropDatabase(it) => &it.syntax,
31967            Stmt::DropDomain(it) => &it.syntax,
31968            Stmt::DropEventTrigger(it) => &it.syntax,
31969            Stmt::DropExtension(it) => &it.syntax,
31970            Stmt::DropForeignDataWrapper(it) => &it.syntax,
31971            Stmt::DropForeignTable(it) => &it.syntax,
31972            Stmt::DropFunction(it) => &it.syntax,
31973            Stmt::DropGroup(it) => &it.syntax,
31974            Stmt::DropIndex(it) => &it.syntax,
31975            Stmt::DropLanguage(it) => &it.syntax,
31976            Stmt::DropMaterializedView(it) => &it.syntax,
31977            Stmt::DropOperator(it) => &it.syntax,
31978            Stmt::DropOperatorClass(it) => &it.syntax,
31979            Stmt::DropOperatorFamily(it) => &it.syntax,
31980            Stmt::DropOwned(it) => &it.syntax,
31981            Stmt::DropPolicy(it) => &it.syntax,
31982            Stmt::DropProcedure(it) => &it.syntax,
31983            Stmt::DropPublication(it) => &it.syntax,
31984            Stmt::DropRole(it) => &it.syntax,
31985            Stmt::DropRoutine(it) => &it.syntax,
31986            Stmt::DropRule(it) => &it.syntax,
31987            Stmt::DropSchema(it) => &it.syntax,
31988            Stmt::DropSequence(it) => &it.syntax,
31989            Stmt::DropServer(it) => &it.syntax,
31990            Stmt::DropStatistics(it) => &it.syntax,
31991            Stmt::DropSubscription(it) => &it.syntax,
31992            Stmt::DropTable(it) => &it.syntax,
31993            Stmt::DropTablespace(it) => &it.syntax,
31994            Stmt::DropTextSearchConfig(it) => &it.syntax,
31995            Stmt::DropTextSearchDict(it) => &it.syntax,
31996            Stmt::DropTextSearchParser(it) => &it.syntax,
31997            Stmt::DropTextSearchTemplate(it) => &it.syntax,
31998            Stmt::DropTransform(it) => &it.syntax,
31999            Stmt::DropTrigger(it) => &it.syntax,
32000            Stmt::DropType(it) => &it.syntax,
32001            Stmt::DropUser(it) => &it.syntax,
32002            Stmt::DropUserMapping(it) => &it.syntax,
32003            Stmt::DropView(it) => &it.syntax,
32004            Stmt::Execute(it) => &it.syntax,
32005            Stmt::Explain(it) => &it.syntax,
32006            Stmt::Fetch(it) => &it.syntax,
32007            Stmt::Grant(it) => &it.syntax,
32008            Stmt::ImportForeignSchema(it) => &it.syntax,
32009            Stmt::Insert(it) => &it.syntax,
32010            Stmt::Listen(it) => &it.syntax,
32011            Stmt::Load(it) => &it.syntax,
32012            Stmt::Lock(it) => &it.syntax,
32013            Stmt::Merge(it) => &it.syntax,
32014            Stmt::Move(it) => &it.syntax,
32015            Stmt::Notify(it) => &it.syntax,
32016            Stmt::ParenSelect(it) => &it.syntax,
32017            Stmt::Prepare(it) => &it.syntax,
32018            Stmt::PrepareTransaction(it) => &it.syntax,
32019            Stmt::Reassign(it) => &it.syntax,
32020            Stmt::Refresh(it) => &it.syntax,
32021            Stmt::Reindex(it) => &it.syntax,
32022            Stmt::ReleaseSavepoint(it) => &it.syntax,
32023            Stmt::Reset(it) => &it.syntax,
32024            Stmt::ResetSessionAuth(it) => &it.syntax,
32025            Stmt::Revoke(it) => &it.syntax,
32026            Stmt::Rollback(it) => &it.syntax,
32027            Stmt::Savepoint(it) => &it.syntax,
32028            Stmt::SecurityLabel(it) => &it.syntax,
32029            Stmt::Select(it) => &it.syntax,
32030            Stmt::SelectInto(it) => &it.syntax,
32031            Stmt::Set(it) => &it.syntax,
32032            Stmt::SetConstraints(it) => &it.syntax,
32033            Stmt::SetRole(it) => &it.syntax,
32034            Stmt::SetSessionAuth(it) => &it.syntax,
32035            Stmt::SetTransaction(it) => &it.syntax,
32036            Stmt::Show(it) => &it.syntax,
32037            Stmt::Table(it) => &it.syntax,
32038            Stmt::Truncate(it) => &it.syntax,
32039            Stmt::Unlisten(it) => &it.syntax,
32040            Stmt::Update(it) => &it.syntax,
32041            Stmt::Vacuum(it) => &it.syntax,
32042            Stmt::Values(it) => &it.syntax,
32043        }
32044    }
32045}
32046impl From<AlterAggregate> for Stmt {
32047    #[inline]
32048    fn from(node: AlterAggregate) -> Stmt {
32049        Stmt::AlterAggregate(node)
32050    }
32051}
32052impl From<AlterCollation> for Stmt {
32053    #[inline]
32054    fn from(node: AlterCollation) -> Stmt {
32055        Stmt::AlterCollation(node)
32056    }
32057}
32058impl From<AlterConversion> for Stmt {
32059    #[inline]
32060    fn from(node: AlterConversion) -> Stmt {
32061        Stmt::AlterConversion(node)
32062    }
32063}
32064impl From<AlterDatabase> for Stmt {
32065    #[inline]
32066    fn from(node: AlterDatabase) -> Stmt {
32067        Stmt::AlterDatabase(node)
32068    }
32069}
32070impl From<AlterDefaultPrivileges> for Stmt {
32071    #[inline]
32072    fn from(node: AlterDefaultPrivileges) -> Stmt {
32073        Stmt::AlterDefaultPrivileges(node)
32074    }
32075}
32076impl From<AlterDomain> for Stmt {
32077    #[inline]
32078    fn from(node: AlterDomain) -> Stmt {
32079        Stmt::AlterDomain(node)
32080    }
32081}
32082impl From<AlterEventTrigger> for Stmt {
32083    #[inline]
32084    fn from(node: AlterEventTrigger) -> Stmt {
32085        Stmt::AlterEventTrigger(node)
32086    }
32087}
32088impl From<AlterExtension> for Stmt {
32089    #[inline]
32090    fn from(node: AlterExtension) -> Stmt {
32091        Stmt::AlterExtension(node)
32092    }
32093}
32094impl From<AlterForeignDataWrapper> for Stmt {
32095    #[inline]
32096    fn from(node: AlterForeignDataWrapper) -> Stmt {
32097        Stmt::AlterForeignDataWrapper(node)
32098    }
32099}
32100impl From<AlterForeignTable> for Stmt {
32101    #[inline]
32102    fn from(node: AlterForeignTable) -> Stmt {
32103        Stmt::AlterForeignTable(node)
32104    }
32105}
32106impl From<AlterFunction> for Stmt {
32107    #[inline]
32108    fn from(node: AlterFunction) -> Stmt {
32109        Stmt::AlterFunction(node)
32110    }
32111}
32112impl From<AlterGroup> for Stmt {
32113    #[inline]
32114    fn from(node: AlterGroup) -> Stmt {
32115        Stmt::AlterGroup(node)
32116    }
32117}
32118impl From<AlterIndex> for Stmt {
32119    #[inline]
32120    fn from(node: AlterIndex) -> Stmt {
32121        Stmt::AlterIndex(node)
32122    }
32123}
32124impl From<AlterLanguage> for Stmt {
32125    #[inline]
32126    fn from(node: AlterLanguage) -> Stmt {
32127        Stmt::AlterLanguage(node)
32128    }
32129}
32130impl From<AlterLargeObject> for Stmt {
32131    #[inline]
32132    fn from(node: AlterLargeObject) -> Stmt {
32133        Stmt::AlterLargeObject(node)
32134    }
32135}
32136impl From<AlterMaterializedView> for Stmt {
32137    #[inline]
32138    fn from(node: AlterMaterializedView) -> Stmt {
32139        Stmt::AlterMaterializedView(node)
32140    }
32141}
32142impl From<AlterOperator> for Stmt {
32143    #[inline]
32144    fn from(node: AlterOperator) -> Stmt {
32145        Stmt::AlterOperator(node)
32146    }
32147}
32148impl From<AlterOperatorClass> for Stmt {
32149    #[inline]
32150    fn from(node: AlterOperatorClass) -> Stmt {
32151        Stmt::AlterOperatorClass(node)
32152    }
32153}
32154impl From<AlterOperatorFamily> for Stmt {
32155    #[inline]
32156    fn from(node: AlterOperatorFamily) -> Stmt {
32157        Stmt::AlterOperatorFamily(node)
32158    }
32159}
32160impl From<AlterPolicy> for Stmt {
32161    #[inline]
32162    fn from(node: AlterPolicy) -> Stmt {
32163        Stmt::AlterPolicy(node)
32164    }
32165}
32166impl From<AlterProcedure> for Stmt {
32167    #[inline]
32168    fn from(node: AlterProcedure) -> Stmt {
32169        Stmt::AlterProcedure(node)
32170    }
32171}
32172impl From<AlterPublication> for Stmt {
32173    #[inline]
32174    fn from(node: AlterPublication) -> Stmt {
32175        Stmt::AlterPublication(node)
32176    }
32177}
32178impl From<AlterRole> for Stmt {
32179    #[inline]
32180    fn from(node: AlterRole) -> Stmt {
32181        Stmt::AlterRole(node)
32182    }
32183}
32184impl From<AlterRoutine> for Stmt {
32185    #[inline]
32186    fn from(node: AlterRoutine) -> Stmt {
32187        Stmt::AlterRoutine(node)
32188    }
32189}
32190impl From<AlterRule> for Stmt {
32191    #[inline]
32192    fn from(node: AlterRule) -> Stmt {
32193        Stmt::AlterRule(node)
32194    }
32195}
32196impl From<AlterSchema> for Stmt {
32197    #[inline]
32198    fn from(node: AlterSchema) -> Stmt {
32199        Stmt::AlterSchema(node)
32200    }
32201}
32202impl From<AlterSequence> for Stmt {
32203    #[inline]
32204    fn from(node: AlterSequence) -> Stmt {
32205        Stmt::AlterSequence(node)
32206    }
32207}
32208impl From<AlterServer> for Stmt {
32209    #[inline]
32210    fn from(node: AlterServer) -> Stmt {
32211        Stmt::AlterServer(node)
32212    }
32213}
32214impl From<AlterStatistics> for Stmt {
32215    #[inline]
32216    fn from(node: AlterStatistics) -> Stmt {
32217        Stmt::AlterStatistics(node)
32218    }
32219}
32220impl From<AlterSubscription> for Stmt {
32221    #[inline]
32222    fn from(node: AlterSubscription) -> Stmt {
32223        Stmt::AlterSubscription(node)
32224    }
32225}
32226impl From<AlterSystem> for Stmt {
32227    #[inline]
32228    fn from(node: AlterSystem) -> Stmt {
32229        Stmt::AlterSystem(node)
32230    }
32231}
32232impl From<AlterTable> for Stmt {
32233    #[inline]
32234    fn from(node: AlterTable) -> Stmt {
32235        Stmt::AlterTable(node)
32236    }
32237}
32238impl From<AlterTablespace> for Stmt {
32239    #[inline]
32240    fn from(node: AlterTablespace) -> Stmt {
32241        Stmt::AlterTablespace(node)
32242    }
32243}
32244impl From<AlterTextSearchConfiguration> for Stmt {
32245    #[inline]
32246    fn from(node: AlterTextSearchConfiguration) -> Stmt {
32247        Stmt::AlterTextSearchConfiguration(node)
32248    }
32249}
32250impl From<AlterTextSearchDictionary> for Stmt {
32251    #[inline]
32252    fn from(node: AlterTextSearchDictionary) -> Stmt {
32253        Stmt::AlterTextSearchDictionary(node)
32254    }
32255}
32256impl From<AlterTextSearchParser> for Stmt {
32257    #[inline]
32258    fn from(node: AlterTextSearchParser) -> Stmt {
32259        Stmt::AlterTextSearchParser(node)
32260    }
32261}
32262impl From<AlterTextSearchTemplate> for Stmt {
32263    #[inline]
32264    fn from(node: AlterTextSearchTemplate) -> Stmt {
32265        Stmt::AlterTextSearchTemplate(node)
32266    }
32267}
32268impl From<AlterTrigger> for Stmt {
32269    #[inline]
32270    fn from(node: AlterTrigger) -> Stmt {
32271        Stmt::AlterTrigger(node)
32272    }
32273}
32274impl From<AlterType> for Stmt {
32275    #[inline]
32276    fn from(node: AlterType) -> Stmt {
32277        Stmt::AlterType(node)
32278    }
32279}
32280impl From<AlterUser> for Stmt {
32281    #[inline]
32282    fn from(node: AlterUser) -> Stmt {
32283        Stmt::AlterUser(node)
32284    }
32285}
32286impl From<AlterUserMapping> for Stmt {
32287    #[inline]
32288    fn from(node: AlterUserMapping) -> Stmt {
32289        Stmt::AlterUserMapping(node)
32290    }
32291}
32292impl From<AlterView> for Stmt {
32293    #[inline]
32294    fn from(node: AlterView) -> Stmt {
32295        Stmt::AlterView(node)
32296    }
32297}
32298impl From<Analyze> for Stmt {
32299    #[inline]
32300    fn from(node: Analyze) -> Stmt {
32301        Stmt::Analyze(node)
32302    }
32303}
32304impl From<Begin> for Stmt {
32305    #[inline]
32306    fn from(node: Begin) -> Stmt {
32307        Stmt::Begin(node)
32308    }
32309}
32310impl From<Call> for Stmt {
32311    #[inline]
32312    fn from(node: Call) -> Stmt {
32313        Stmt::Call(node)
32314    }
32315}
32316impl From<Checkpoint> for Stmt {
32317    #[inline]
32318    fn from(node: Checkpoint) -> Stmt {
32319        Stmt::Checkpoint(node)
32320    }
32321}
32322impl From<Close> for Stmt {
32323    #[inline]
32324    fn from(node: Close) -> Stmt {
32325        Stmt::Close(node)
32326    }
32327}
32328impl From<Cluster> for Stmt {
32329    #[inline]
32330    fn from(node: Cluster) -> Stmt {
32331        Stmt::Cluster(node)
32332    }
32333}
32334impl From<CommentOn> for Stmt {
32335    #[inline]
32336    fn from(node: CommentOn) -> Stmt {
32337        Stmt::CommentOn(node)
32338    }
32339}
32340impl From<Commit> for Stmt {
32341    #[inline]
32342    fn from(node: Commit) -> Stmt {
32343        Stmt::Commit(node)
32344    }
32345}
32346impl From<Copy> for Stmt {
32347    #[inline]
32348    fn from(node: Copy) -> Stmt {
32349        Stmt::Copy(node)
32350    }
32351}
32352impl From<CreateAccessMethod> for Stmt {
32353    #[inline]
32354    fn from(node: CreateAccessMethod) -> Stmt {
32355        Stmt::CreateAccessMethod(node)
32356    }
32357}
32358impl From<CreateAggregate> for Stmt {
32359    #[inline]
32360    fn from(node: CreateAggregate) -> Stmt {
32361        Stmt::CreateAggregate(node)
32362    }
32363}
32364impl From<CreateCast> for Stmt {
32365    #[inline]
32366    fn from(node: CreateCast) -> Stmt {
32367        Stmt::CreateCast(node)
32368    }
32369}
32370impl From<CreateCollation> for Stmt {
32371    #[inline]
32372    fn from(node: CreateCollation) -> Stmt {
32373        Stmt::CreateCollation(node)
32374    }
32375}
32376impl From<CreateConversion> for Stmt {
32377    #[inline]
32378    fn from(node: CreateConversion) -> Stmt {
32379        Stmt::CreateConversion(node)
32380    }
32381}
32382impl From<CreateDatabase> for Stmt {
32383    #[inline]
32384    fn from(node: CreateDatabase) -> Stmt {
32385        Stmt::CreateDatabase(node)
32386    }
32387}
32388impl From<CreateDomain> for Stmt {
32389    #[inline]
32390    fn from(node: CreateDomain) -> Stmt {
32391        Stmt::CreateDomain(node)
32392    }
32393}
32394impl From<CreateEventTrigger> for Stmt {
32395    #[inline]
32396    fn from(node: CreateEventTrigger) -> Stmt {
32397        Stmt::CreateEventTrigger(node)
32398    }
32399}
32400impl From<CreateExtension> for Stmt {
32401    #[inline]
32402    fn from(node: CreateExtension) -> Stmt {
32403        Stmt::CreateExtension(node)
32404    }
32405}
32406impl From<CreateForeignDataWrapper> for Stmt {
32407    #[inline]
32408    fn from(node: CreateForeignDataWrapper) -> Stmt {
32409        Stmt::CreateForeignDataWrapper(node)
32410    }
32411}
32412impl From<CreateForeignTable> for Stmt {
32413    #[inline]
32414    fn from(node: CreateForeignTable) -> Stmt {
32415        Stmt::CreateForeignTable(node)
32416    }
32417}
32418impl From<CreateFunction> for Stmt {
32419    #[inline]
32420    fn from(node: CreateFunction) -> Stmt {
32421        Stmt::CreateFunction(node)
32422    }
32423}
32424impl From<CreateGroup> for Stmt {
32425    #[inline]
32426    fn from(node: CreateGroup) -> Stmt {
32427        Stmt::CreateGroup(node)
32428    }
32429}
32430impl From<CreateIndex> for Stmt {
32431    #[inline]
32432    fn from(node: CreateIndex) -> Stmt {
32433        Stmt::CreateIndex(node)
32434    }
32435}
32436impl From<CreateLanguage> for Stmt {
32437    #[inline]
32438    fn from(node: CreateLanguage) -> Stmt {
32439        Stmt::CreateLanguage(node)
32440    }
32441}
32442impl From<CreateMaterializedView> for Stmt {
32443    #[inline]
32444    fn from(node: CreateMaterializedView) -> Stmt {
32445        Stmt::CreateMaterializedView(node)
32446    }
32447}
32448impl From<CreateOperator> for Stmt {
32449    #[inline]
32450    fn from(node: CreateOperator) -> Stmt {
32451        Stmt::CreateOperator(node)
32452    }
32453}
32454impl From<CreateOperatorClass> for Stmt {
32455    #[inline]
32456    fn from(node: CreateOperatorClass) -> Stmt {
32457        Stmt::CreateOperatorClass(node)
32458    }
32459}
32460impl From<CreateOperatorFamily> for Stmt {
32461    #[inline]
32462    fn from(node: CreateOperatorFamily) -> Stmt {
32463        Stmt::CreateOperatorFamily(node)
32464    }
32465}
32466impl From<CreatePolicy> for Stmt {
32467    #[inline]
32468    fn from(node: CreatePolicy) -> Stmt {
32469        Stmt::CreatePolicy(node)
32470    }
32471}
32472impl From<CreateProcedure> for Stmt {
32473    #[inline]
32474    fn from(node: CreateProcedure) -> Stmt {
32475        Stmt::CreateProcedure(node)
32476    }
32477}
32478impl From<CreatePublication> for Stmt {
32479    #[inline]
32480    fn from(node: CreatePublication) -> Stmt {
32481        Stmt::CreatePublication(node)
32482    }
32483}
32484impl From<CreateRole> for Stmt {
32485    #[inline]
32486    fn from(node: CreateRole) -> Stmt {
32487        Stmt::CreateRole(node)
32488    }
32489}
32490impl From<CreateRule> for Stmt {
32491    #[inline]
32492    fn from(node: CreateRule) -> Stmt {
32493        Stmt::CreateRule(node)
32494    }
32495}
32496impl From<CreateSchema> for Stmt {
32497    #[inline]
32498    fn from(node: CreateSchema) -> Stmt {
32499        Stmt::CreateSchema(node)
32500    }
32501}
32502impl From<CreateSequence> for Stmt {
32503    #[inline]
32504    fn from(node: CreateSequence) -> Stmt {
32505        Stmt::CreateSequence(node)
32506    }
32507}
32508impl From<CreateServer> for Stmt {
32509    #[inline]
32510    fn from(node: CreateServer) -> Stmt {
32511        Stmt::CreateServer(node)
32512    }
32513}
32514impl From<CreateStatistics> for Stmt {
32515    #[inline]
32516    fn from(node: CreateStatistics) -> Stmt {
32517        Stmt::CreateStatistics(node)
32518    }
32519}
32520impl From<CreateSubscription> for Stmt {
32521    #[inline]
32522    fn from(node: CreateSubscription) -> Stmt {
32523        Stmt::CreateSubscription(node)
32524    }
32525}
32526impl From<CreateTable> for Stmt {
32527    #[inline]
32528    fn from(node: CreateTable) -> Stmt {
32529        Stmt::CreateTable(node)
32530    }
32531}
32532impl From<CreateTableAs> for Stmt {
32533    #[inline]
32534    fn from(node: CreateTableAs) -> Stmt {
32535        Stmt::CreateTableAs(node)
32536    }
32537}
32538impl From<CreateTablespace> for Stmt {
32539    #[inline]
32540    fn from(node: CreateTablespace) -> Stmt {
32541        Stmt::CreateTablespace(node)
32542    }
32543}
32544impl From<CreateTextSearchConfiguration> for Stmt {
32545    #[inline]
32546    fn from(node: CreateTextSearchConfiguration) -> Stmt {
32547        Stmt::CreateTextSearchConfiguration(node)
32548    }
32549}
32550impl From<CreateTextSearchDictionary> for Stmt {
32551    #[inline]
32552    fn from(node: CreateTextSearchDictionary) -> Stmt {
32553        Stmt::CreateTextSearchDictionary(node)
32554    }
32555}
32556impl From<CreateTextSearchParser> for Stmt {
32557    #[inline]
32558    fn from(node: CreateTextSearchParser) -> Stmt {
32559        Stmt::CreateTextSearchParser(node)
32560    }
32561}
32562impl From<CreateTextSearchTemplate> for Stmt {
32563    #[inline]
32564    fn from(node: CreateTextSearchTemplate) -> Stmt {
32565        Stmt::CreateTextSearchTemplate(node)
32566    }
32567}
32568impl From<CreateTransform> for Stmt {
32569    #[inline]
32570    fn from(node: CreateTransform) -> Stmt {
32571        Stmt::CreateTransform(node)
32572    }
32573}
32574impl From<CreateTrigger> for Stmt {
32575    #[inline]
32576    fn from(node: CreateTrigger) -> Stmt {
32577        Stmt::CreateTrigger(node)
32578    }
32579}
32580impl From<CreateType> for Stmt {
32581    #[inline]
32582    fn from(node: CreateType) -> Stmt {
32583        Stmt::CreateType(node)
32584    }
32585}
32586impl From<CreateUser> for Stmt {
32587    #[inline]
32588    fn from(node: CreateUser) -> Stmt {
32589        Stmt::CreateUser(node)
32590    }
32591}
32592impl From<CreateUserMapping> for Stmt {
32593    #[inline]
32594    fn from(node: CreateUserMapping) -> Stmt {
32595        Stmt::CreateUserMapping(node)
32596    }
32597}
32598impl From<CreateView> for Stmt {
32599    #[inline]
32600    fn from(node: CreateView) -> Stmt {
32601        Stmt::CreateView(node)
32602    }
32603}
32604impl From<Deallocate> for Stmt {
32605    #[inline]
32606    fn from(node: Deallocate) -> Stmt {
32607        Stmt::Deallocate(node)
32608    }
32609}
32610impl From<Declare> for Stmt {
32611    #[inline]
32612    fn from(node: Declare) -> Stmt {
32613        Stmt::Declare(node)
32614    }
32615}
32616impl From<Delete> for Stmt {
32617    #[inline]
32618    fn from(node: Delete) -> Stmt {
32619        Stmt::Delete(node)
32620    }
32621}
32622impl From<Discard> for Stmt {
32623    #[inline]
32624    fn from(node: Discard) -> Stmt {
32625        Stmt::Discard(node)
32626    }
32627}
32628impl From<Do> for Stmt {
32629    #[inline]
32630    fn from(node: Do) -> Stmt {
32631        Stmt::Do(node)
32632    }
32633}
32634impl From<DropAccessMethod> for Stmt {
32635    #[inline]
32636    fn from(node: DropAccessMethod) -> Stmt {
32637        Stmt::DropAccessMethod(node)
32638    }
32639}
32640impl From<DropAggregate> for Stmt {
32641    #[inline]
32642    fn from(node: DropAggregate) -> Stmt {
32643        Stmt::DropAggregate(node)
32644    }
32645}
32646impl From<DropCast> for Stmt {
32647    #[inline]
32648    fn from(node: DropCast) -> Stmt {
32649        Stmt::DropCast(node)
32650    }
32651}
32652impl From<DropCollation> for Stmt {
32653    #[inline]
32654    fn from(node: DropCollation) -> Stmt {
32655        Stmt::DropCollation(node)
32656    }
32657}
32658impl From<DropConversion> for Stmt {
32659    #[inline]
32660    fn from(node: DropConversion) -> Stmt {
32661        Stmt::DropConversion(node)
32662    }
32663}
32664impl From<DropDatabase> for Stmt {
32665    #[inline]
32666    fn from(node: DropDatabase) -> Stmt {
32667        Stmt::DropDatabase(node)
32668    }
32669}
32670impl From<DropDomain> for Stmt {
32671    #[inline]
32672    fn from(node: DropDomain) -> Stmt {
32673        Stmt::DropDomain(node)
32674    }
32675}
32676impl From<DropEventTrigger> for Stmt {
32677    #[inline]
32678    fn from(node: DropEventTrigger) -> Stmt {
32679        Stmt::DropEventTrigger(node)
32680    }
32681}
32682impl From<DropExtension> for Stmt {
32683    #[inline]
32684    fn from(node: DropExtension) -> Stmt {
32685        Stmt::DropExtension(node)
32686    }
32687}
32688impl From<DropForeignDataWrapper> for Stmt {
32689    #[inline]
32690    fn from(node: DropForeignDataWrapper) -> Stmt {
32691        Stmt::DropForeignDataWrapper(node)
32692    }
32693}
32694impl From<DropForeignTable> for Stmt {
32695    #[inline]
32696    fn from(node: DropForeignTable) -> Stmt {
32697        Stmt::DropForeignTable(node)
32698    }
32699}
32700impl From<DropFunction> for Stmt {
32701    #[inline]
32702    fn from(node: DropFunction) -> Stmt {
32703        Stmt::DropFunction(node)
32704    }
32705}
32706impl From<DropGroup> for Stmt {
32707    #[inline]
32708    fn from(node: DropGroup) -> Stmt {
32709        Stmt::DropGroup(node)
32710    }
32711}
32712impl From<DropIndex> for Stmt {
32713    #[inline]
32714    fn from(node: DropIndex) -> Stmt {
32715        Stmt::DropIndex(node)
32716    }
32717}
32718impl From<DropLanguage> for Stmt {
32719    #[inline]
32720    fn from(node: DropLanguage) -> Stmt {
32721        Stmt::DropLanguage(node)
32722    }
32723}
32724impl From<DropMaterializedView> for Stmt {
32725    #[inline]
32726    fn from(node: DropMaterializedView) -> Stmt {
32727        Stmt::DropMaterializedView(node)
32728    }
32729}
32730impl From<DropOperator> for Stmt {
32731    #[inline]
32732    fn from(node: DropOperator) -> Stmt {
32733        Stmt::DropOperator(node)
32734    }
32735}
32736impl From<DropOperatorClass> for Stmt {
32737    #[inline]
32738    fn from(node: DropOperatorClass) -> Stmt {
32739        Stmt::DropOperatorClass(node)
32740    }
32741}
32742impl From<DropOperatorFamily> for Stmt {
32743    #[inline]
32744    fn from(node: DropOperatorFamily) -> Stmt {
32745        Stmt::DropOperatorFamily(node)
32746    }
32747}
32748impl From<DropOwned> for Stmt {
32749    #[inline]
32750    fn from(node: DropOwned) -> Stmt {
32751        Stmt::DropOwned(node)
32752    }
32753}
32754impl From<DropPolicy> for Stmt {
32755    #[inline]
32756    fn from(node: DropPolicy) -> Stmt {
32757        Stmt::DropPolicy(node)
32758    }
32759}
32760impl From<DropProcedure> for Stmt {
32761    #[inline]
32762    fn from(node: DropProcedure) -> Stmt {
32763        Stmt::DropProcedure(node)
32764    }
32765}
32766impl From<DropPublication> for Stmt {
32767    #[inline]
32768    fn from(node: DropPublication) -> Stmt {
32769        Stmt::DropPublication(node)
32770    }
32771}
32772impl From<DropRole> for Stmt {
32773    #[inline]
32774    fn from(node: DropRole) -> Stmt {
32775        Stmt::DropRole(node)
32776    }
32777}
32778impl From<DropRoutine> for Stmt {
32779    #[inline]
32780    fn from(node: DropRoutine) -> Stmt {
32781        Stmt::DropRoutine(node)
32782    }
32783}
32784impl From<DropRule> for Stmt {
32785    #[inline]
32786    fn from(node: DropRule) -> Stmt {
32787        Stmt::DropRule(node)
32788    }
32789}
32790impl From<DropSchema> for Stmt {
32791    #[inline]
32792    fn from(node: DropSchema) -> Stmt {
32793        Stmt::DropSchema(node)
32794    }
32795}
32796impl From<DropSequence> for Stmt {
32797    #[inline]
32798    fn from(node: DropSequence) -> Stmt {
32799        Stmt::DropSequence(node)
32800    }
32801}
32802impl From<DropServer> for Stmt {
32803    #[inline]
32804    fn from(node: DropServer) -> Stmt {
32805        Stmt::DropServer(node)
32806    }
32807}
32808impl From<DropStatistics> for Stmt {
32809    #[inline]
32810    fn from(node: DropStatistics) -> Stmt {
32811        Stmt::DropStatistics(node)
32812    }
32813}
32814impl From<DropSubscription> for Stmt {
32815    #[inline]
32816    fn from(node: DropSubscription) -> Stmt {
32817        Stmt::DropSubscription(node)
32818    }
32819}
32820impl From<DropTable> for Stmt {
32821    #[inline]
32822    fn from(node: DropTable) -> Stmt {
32823        Stmt::DropTable(node)
32824    }
32825}
32826impl From<DropTablespace> for Stmt {
32827    #[inline]
32828    fn from(node: DropTablespace) -> Stmt {
32829        Stmt::DropTablespace(node)
32830    }
32831}
32832impl From<DropTextSearchConfig> for Stmt {
32833    #[inline]
32834    fn from(node: DropTextSearchConfig) -> Stmt {
32835        Stmt::DropTextSearchConfig(node)
32836    }
32837}
32838impl From<DropTextSearchDict> for Stmt {
32839    #[inline]
32840    fn from(node: DropTextSearchDict) -> Stmt {
32841        Stmt::DropTextSearchDict(node)
32842    }
32843}
32844impl From<DropTextSearchParser> for Stmt {
32845    #[inline]
32846    fn from(node: DropTextSearchParser) -> Stmt {
32847        Stmt::DropTextSearchParser(node)
32848    }
32849}
32850impl From<DropTextSearchTemplate> for Stmt {
32851    #[inline]
32852    fn from(node: DropTextSearchTemplate) -> Stmt {
32853        Stmt::DropTextSearchTemplate(node)
32854    }
32855}
32856impl From<DropTransform> for Stmt {
32857    #[inline]
32858    fn from(node: DropTransform) -> Stmt {
32859        Stmt::DropTransform(node)
32860    }
32861}
32862impl From<DropTrigger> for Stmt {
32863    #[inline]
32864    fn from(node: DropTrigger) -> Stmt {
32865        Stmt::DropTrigger(node)
32866    }
32867}
32868impl From<DropType> for Stmt {
32869    #[inline]
32870    fn from(node: DropType) -> Stmt {
32871        Stmt::DropType(node)
32872    }
32873}
32874impl From<DropUser> for Stmt {
32875    #[inline]
32876    fn from(node: DropUser) -> Stmt {
32877        Stmt::DropUser(node)
32878    }
32879}
32880impl From<DropUserMapping> for Stmt {
32881    #[inline]
32882    fn from(node: DropUserMapping) -> Stmt {
32883        Stmt::DropUserMapping(node)
32884    }
32885}
32886impl From<DropView> for Stmt {
32887    #[inline]
32888    fn from(node: DropView) -> Stmt {
32889        Stmt::DropView(node)
32890    }
32891}
32892impl From<Execute> for Stmt {
32893    #[inline]
32894    fn from(node: Execute) -> Stmt {
32895        Stmt::Execute(node)
32896    }
32897}
32898impl From<Explain> for Stmt {
32899    #[inline]
32900    fn from(node: Explain) -> Stmt {
32901        Stmt::Explain(node)
32902    }
32903}
32904impl From<Fetch> for Stmt {
32905    #[inline]
32906    fn from(node: Fetch) -> Stmt {
32907        Stmt::Fetch(node)
32908    }
32909}
32910impl From<Grant> for Stmt {
32911    #[inline]
32912    fn from(node: Grant) -> Stmt {
32913        Stmt::Grant(node)
32914    }
32915}
32916impl From<ImportForeignSchema> for Stmt {
32917    #[inline]
32918    fn from(node: ImportForeignSchema) -> Stmt {
32919        Stmt::ImportForeignSchema(node)
32920    }
32921}
32922impl From<Insert> for Stmt {
32923    #[inline]
32924    fn from(node: Insert) -> Stmt {
32925        Stmt::Insert(node)
32926    }
32927}
32928impl From<Listen> for Stmt {
32929    #[inline]
32930    fn from(node: Listen) -> Stmt {
32931        Stmt::Listen(node)
32932    }
32933}
32934impl From<Load> for Stmt {
32935    #[inline]
32936    fn from(node: Load) -> Stmt {
32937        Stmt::Load(node)
32938    }
32939}
32940impl From<Lock> for Stmt {
32941    #[inline]
32942    fn from(node: Lock) -> Stmt {
32943        Stmt::Lock(node)
32944    }
32945}
32946impl From<Merge> for Stmt {
32947    #[inline]
32948    fn from(node: Merge) -> Stmt {
32949        Stmt::Merge(node)
32950    }
32951}
32952impl From<Move> for Stmt {
32953    #[inline]
32954    fn from(node: Move) -> Stmt {
32955        Stmt::Move(node)
32956    }
32957}
32958impl From<Notify> for Stmt {
32959    #[inline]
32960    fn from(node: Notify) -> Stmt {
32961        Stmt::Notify(node)
32962    }
32963}
32964impl From<ParenSelect> for Stmt {
32965    #[inline]
32966    fn from(node: ParenSelect) -> Stmt {
32967        Stmt::ParenSelect(node)
32968    }
32969}
32970impl From<Prepare> for Stmt {
32971    #[inline]
32972    fn from(node: Prepare) -> Stmt {
32973        Stmt::Prepare(node)
32974    }
32975}
32976impl From<PrepareTransaction> for Stmt {
32977    #[inline]
32978    fn from(node: PrepareTransaction) -> Stmt {
32979        Stmt::PrepareTransaction(node)
32980    }
32981}
32982impl From<Reassign> for Stmt {
32983    #[inline]
32984    fn from(node: Reassign) -> Stmt {
32985        Stmt::Reassign(node)
32986    }
32987}
32988impl From<Refresh> for Stmt {
32989    #[inline]
32990    fn from(node: Refresh) -> Stmt {
32991        Stmt::Refresh(node)
32992    }
32993}
32994impl From<Reindex> for Stmt {
32995    #[inline]
32996    fn from(node: Reindex) -> Stmt {
32997        Stmt::Reindex(node)
32998    }
32999}
33000impl From<ReleaseSavepoint> for Stmt {
33001    #[inline]
33002    fn from(node: ReleaseSavepoint) -> Stmt {
33003        Stmt::ReleaseSavepoint(node)
33004    }
33005}
33006impl From<Reset> for Stmt {
33007    #[inline]
33008    fn from(node: Reset) -> Stmt {
33009        Stmt::Reset(node)
33010    }
33011}
33012impl From<ResetSessionAuth> for Stmt {
33013    #[inline]
33014    fn from(node: ResetSessionAuth) -> Stmt {
33015        Stmt::ResetSessionAuth(node)
33016    }
33017}
33018impl From<Revoke> for Stmt {
33019    #[inline]
33020    fn from(node: Revoke) -> Stmt {
33021        Stmt::Revoke(node)
33022    }
33023}
33024impl From<Rollback> for Stmt {
33025    #[inline]
33026    fn from(node: Rollback) -> Stmt {
33027        Stmt::Rollback(node)
33028    }
33029}
33030impl From<Savepoint> for Stmt {
33031    #[inline]
33032    fn from(node: Savepoint) -> Stmt {
33033        Stmt::Savepoint(node)
33034    }
33035}
33036impl From<SecurityLabel> for Stmt {
33037    #[inline]
33038    fn from(node: SecurityLabel) -> Stmt {
33039        Stmt::SecurityLabel(node)
33040    }
33041}
33042impl From<Select> for Stmt {
33043    #[inline]
33044    fn from(node: Select) -> Stmt {
33045        Stmt::Select(node)
33046    }
33047}
33048impl From<SelectInto> for Stmt {
33049    #[inline]
33050    fn from(node: SelectInto) -> Stmt {
33051        Stmt::SelectInto(node)
33052    }
33053}
33054impl From<Set> for Stmt {
33055    #[inline]
33056    fn from(node: Set) -> Stmt {
33057        Stmt::Set(node)
33058    }
33059}
33060impl From<SetConstraints> for Stmt {
33061    #[inline]
33062    fn from(node: SetConstraints) -> Stmt {
33063        Stmt::SetConstraints(node)
33064    }
33065}
33066impl From<SetRole> for Stmt {
33067    #[inline]
33068    fn from(node: SetRole) -> Stmt {
33069        Stmt::SetRole(node)
33070    }
33071}
33072impl From<SetSessionAuth> for Stmt {
33073    #[inline]
33074    fn from(node: SetSessionAuth) -> Stmt {
33075        Stmt::SetSessionAuth(node)
33076    }
33077}
33078impl From<SetTransaction> for Stmt {
33079    #[inline]
33080    fn from(node: SetTransaction) -> Stmt {
33081        Stmt::SetTransaction(node)
33082    }
33083}
33084impl From<Show> for Stmt {
33085    #[inline]
33086    fn from(node: Show) -> Stmt {
33087        Stmt::Show(node)
33088    }
33089}
33090impl From<Table> for Stmt {
33091    #[inline]
33092    fn from(node: Table) -> Stmt {
33093        Stmt::Table(node)
33094    }
33095}
33096impl From<Truncate> for Stmt {
33097    #[inline]
33098    fn from(node: Truncate) -> Stmt {
33099        Stmt::Truncate(node)
33100    }
33101}
33102impl From<Unlisten> for Stmt {
33103    #[inline]
33104    fn from(node: Unlisten) -> Stmt {
33105        Stmt::Unlisten(node)
33106    }
33107}
33108impl From<Update> for Stmt {
33109    #[inline]
33110    fn from(node: Update) -> Stmt {
33111        Stmt::Update(node)
33112    }
33113}
33114impl From<Vacuum> for Stmt {
33115    #[inline]
33116    fn from(node: Vacuum) -> Stmt {
33117        Stmt::Vacuum(node)
33118    }
33119}
33120impl From<Values> for Stmt {
33121    #[inline]
33122    fn from(node: Values) -> Stmt {
33123        Stmt::Values(node)
33124    }
33125}
33126impl AstNode for TableArg {
33127    #[inline]
33128    fn can_cast(kind: SyntaxKind) -> bool {
33129        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
33130    }
33131    #[inline]
33132    fn cast(syntax: SyntaxNode) -> Option<Self> {
33133        let res = match syntax.kind() {
33134            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
33135            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
33136            _ => {
33137                if let Some(result) = TableConstraint::cast(syntax) {
33138                    return Some(TableArg::TableConstraint(result));
33139                }
33140                return None;
33141            }
33142        };
33143        Some(res)
33144    }
33145    #[inline]
33146    fn syntax(&self) -> &SyntaxNode {
33147        match self {
33148            TableArg::Column(it) => &it.syntax,
33149            TableArg::LikeClause(it) => &it.syntax,
33150            TableArg::TableConstraint(it) => it.syntax(),
33151        }
33152    }
33153}
33154impl From<Column> for TableArg {
33155    #[inline]
33156    fn from(node: Column) -> TableArg {
33157        TableArg::Column(node)
33158    }
33159}
33160impl From<LikeClause> for TableArg {
33161    #[inline]
33162    fn from(node: LikeClause) -> TableArg {
33163        TableArg::LikeClause(node)
33164    }
33165}
33166impl AstNode for TableConstraint {
33167    #[inline]
33168    fn can_cast(kind: SyntaxKind) -> bool {
33169        matches!(
33170            kind,
33171            SyntaxKind::CHECK_CONSTRAINT
33172                | SyntaxKind::EXCLUDE_CONSTRAINT
33173                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
33174                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
33175                | SyntaxKind::UNIQUE_CONSTRAINT
33176        )
33177    }
33178    #[inline]
33179    fn cast(syntax: SyntaxNode) -> Option<Self> {
33180        let res = match syntax.kind() {
33181            SyntaxKind::CHECK_CONSTRAINT => {
33182                TableConstraint::CheckConstraint(CheckConstraint { syntax })
33183            }
33184            SyntaxKind::EXCLUDE_CONSTRAINT => {
33185                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
33186            }
33187            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
33188                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
33189            }
33190            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
33191                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
33192            }
33193            SyntaxKind::UNIQUE_CONSTRAINT => {
33194                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
33195            }
33196            _ => {
33197                return None;
33198            }
33199        };
33200        Some(res)
33201    }
33202    #[inline]
33203    fn syntax(&self) -> &SyntaxNode {
33204        match self {
33205            TableConstraint::CheckConstraint(it) => &it.syntax,
33206            TableConstraint::ExcludeConstraint(it) => &it.syntax,
33207            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
33208            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
33209            TableConstraint::UniqueConstraint(it) => &it.syntax,
33210        }
33211    }
33212}
33213impl From<CheckConstraint> for TableConstraint {
33214    #[inline]
33215    fn from(node: CheckConstraint) -> TableConstraint {
33216        TableConstraint::CheckConstraint(node)
33217    }
33218}
33219impl From<ExcludeConstraint> for TableConstraint {
33220    #[inline]
33221    fn from(node: ExcludeConstraint) -> TableConstraint {
33222        TableConstraint::ExcludeConstraint(node)
33223    }
33224}
33225impl From<ForeignKeyConstraint> for TableConstraint {
33226    #[inline]
33227    fn from(node: ForeignKeyConstraint) -> TableConstraint {
33228        TableConstraint::ForeignKeyConstraint(node)
33229    }
33230}
33231impl From<PrimaryKeyConstraint> for TableConstraint {
33232    #[inline]
33233    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
33234        TableConstraint::PrimaryKeyConstraint(node)
33235    }
33236}
33237impl From<UniqueConstraint> for TableConstraint {
33238    #[inline]
33239    fn from(node: UniqueConstraint) -> TableConstraint {
33240        TableConstraint::UniqueConstraint(node)
33241    }
33242}
33243impl AstNode for Timezone {
33244    #[inline]
33245    fn can_cast(kind: SyntaxKind) -> bool {
33246        matches!(
33247            kind,
33248            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
33249        )
33250    }
33251    #[inline]
33252    fn cast(syntax: SyntaxNode) -> Option<Self> {
33253        let res = match syntax.kind() {
33254            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
33255            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
33256            _ => {
33257                return None;
33258            }
33259        };
33260        Some(res)
33261    }
33262    #[inline]
33263    fn syntax(&self) -> &SyntaxNode {
33264        match self {
33265            Timezone::WithTimezone(it) => &it.syntax,
33266            Timezone::WithoutTimezone(it) => &it.syntax,
33267        }
33268    }
33269}
33270impl From<WithTimezone> for Timezone {
33271    #[inline]
33272    fn from(node: WithTimezone) -> Timezone {
33273        Timezone::WithTimezone(node)
33274    }
33275}
33276impl From<WithoutTimezone> for Timezone {
33277    #[inline]
33278    fn from(node: WithoutTimezone) -> Timezone {
33279        Timezone::WithoutTimezone(node)
33280    }
33281}
33282impl AstNode for TransactionMode {
33283    #[inline]
33284    fn can_cast(kind: SyntaxKind) -> bool {
33285        matches!(
33286            kind,
33287            SyntaxKind::DEFERRABLE
33288                | SyntaxKind::NOT_DEFERRABLE
33289                | SyntaxKind::READ_COMMITTED
33290                | SyntaxKind::READ_ONLY
33291                | SyntaxKind::READ_UNCOMMITTED
33292                | SyntaxKind::READ_WRITE
33293                | SyntaxKind::REPEATABLE_READ
33294                | SyntaxKind::SERIALIZABLE
33295        )
33296    }
33297    #[inline]
33298    fn cast(syntax: SyntaxNode) -> Option<Self> {
33299        let res = match syntax.kind() {
33300            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
33301            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
33302            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
33303            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
33304            SyntaxKind::READ_UNCOMMITTED => {
33305                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
33306            }
33307            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
33308            SyntaxKind::REPEATABLE_READ => {
33309                TransactionMode::RepeatableRead(RepeatableRead { syntax })
33310            }
33311            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
33312            _ => {
33313                return None;
33314            }
33315        };
33316        Some(res)
33317    }
33318    #[inline]
33319    fn syntax(&self) -> &SyntaxNode {
33320        match self {
33321            TransactionMode::Deferrable(it) => &it.syntax,
33322            TransactionMode::NotDeferrable(it) => &it.syntax,
33323            TransactionMode::ReadCommitted(it) => &it.syntax,
33324            TransactionMode::ReadOnly(it) => &it.syntax,
33325            TransactionMode::ReadUncommitted(it) => &it.syntax,
33326            TransactionMode::ReadWrite(it) => &it.syntax,
33327            TransactionMode::RepeatableRead(it) => &it.syntax,
33328            TransactionMode::Serializable(it) => &it.syntax,
33329        }
33330    }
33331}
33332impl From<Deferrable> for TransactionMode {
33333    #[inline]
33334    fn from(node: Deferrable) -> TransactionMode {
33335        TransactionMode::Deferrable(node)
33336    }
33337}
33338impl From<NotDeferrable> for TransactionMode {
33339    #[inline]
33340    fn from(node: NotDeferrable) -> TransactionMode {
33341        TransactionMode::NotDeferrable(node)
33342    }
33343}
33344impl From<ReadCommitted> for TransactionMode {
33345    #[inline]
33346    fn from(node: ReadCommitted) -> TransactionMode {
33347        TransactionMode::ReadCommitted(node)
33348    }
33349}
33350impl From<ReadOnly> for TransactionMode {
33351    #[inline]
33352    fn from(node: ReadOnly) -> TransactionMode {
33353        TransactionMode::ReadOnly(node)
33354    }
33355}
33356impl From<ReadUncommitted> for TransactionMode {
33357    #[inline]
33358    fn from(node: ReadUncommitted) -> TransactionMode {
33359        TransactionMode::ReadUncommitted(node)
33360    }
33361}
33362impl From<ReadWrite> for TransactionMode {
33363    #[inline]
33364    fn from(node: ReadWrite) -> TransactionMode {
33365        TransactionMode::ReadWrite(node)
33366    }
33367}
33368impl From<RepeatableRead> for TransactionMode {
33369    #[inline]
33370    fn from(node: RepeatableRead) -> TransactionMode {
33371        TransactionMode::RepeatableRead(node)
33372    }
33373}
33374impl From<Serializable> for TransactionMode {
33375    #[inline]
33376    fn from(node: Serializable) -> TransactionMode {
33377        TransactionMode::Serializable(node)
33378    }
33379}
33380impl AstNode for Type {
33381    #[inline]
33382    fn can_cast(kind: SyntaxKind) -> bool {
33383        matches!(
33384            kind,
33385            SyntaxKind::ARRAY_TYPE
33386                | SyntaxKind::BIT_TYPE
33387                | SyntaxKind::CHAR_TYPE
33388                | SyntaxKind::DOUBLE_TYPE
33389                | SyntaxKind::EXPR_TYPE
33390                | SyntaxKind::INTERVAL_TYPE
33391                | SyntaxKind::PATH_TYPE
33392                | SyntaxKind::PERCENT_TYPE
33393                | SyntaxKind::TIME_TYPE
33394        )
33395    }
33396    #[inline]
33397    fn cast(syntax: SyntaxNode) -> Option<Self> {
33398        let res = match syntax.kind() {
33399            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
33400            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
33401            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
33402            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
33403            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
33404            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
33405            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
33406            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
33407            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
33408            _ => {
33409                return None;
33410            }
33411        };
33412        Some(res)
33413    }
33414    #[inline]
33415    fn syntax(&self) -> &SyntaxNode {
33416        match self {
33417            Type::ArrayType(it) => &it.syntax,
33418            Type::BitType(it) => &it.syntax,
33419            Type::CharType(it) => &it.syntax,
33420            Type::DoubleType(it) => &it.syntax,
33421            Type::ExprType(it) => &it.syntax,
33422            Type::IntervalType(it) => &it.syntax,
33423            Type::PathType(it) => &it.syntax,
33424            Type::PercentType(it) => &it.syntax,
33425            Type::TimeType(it) => &it.syntax,
33426        }
33427    }
33428}
33429impl From<ArrayType> for Type {
33430    #[inline]
33431    fn from(node: ArrayType) -> Type {
33432        Type::ArrayType(node)
33433    }
33434}
33435impl From<BitType> for Type {
33436    #[inline]
33437    fn from(node: BitType) -> Type {
33438        Type::BitType(node)
33439    }
33440}
33441impl From<CharType> for Type {
33442    #[inline]
33443    fn from(node: CharType) -> Type {
33444        Type::CharType(node)
33445    }
33446}
33447impl From<DoubleType> for Type {
33448    #[inline]
33449    fn from(node: DoubleType) -> Type {
33450        Type::DoubleType(node)
33451    }
33452}
33453impl From<ExprType> for Type {
33454    #[inline]
33455    fn from(node: ExprType) -> Type {
33456        Type::ExprType(node)
33457    }
33458}
33459impl From<IntervalType> for Type {
33460    #[inline]
33461    fn from(node: IntervalType) -> Type {
33462        Type::IntervalType(node)
33463    }
33464}
33465impl From<PathType> for Type {
33466    #[inline]
33467    fn from(node: PathType) -> Type {
33468        Type::PathType(node)
33469    }
33470}
33471impl From<PercentType> for Type {
33472    #[inline]
33473    fn from(node: PercentType) -> Type {
33474        Type::PercentType(node)
33475    }
33476}
33477impl From<TimeType> for Type {
33478    #[inline]
33479    fn from(node: TimeType) -> Type {
33480        Type::TimeType(node)
33481    }
33482}
33483impl AstNode for WithQuery {
33484    #[inline]
33485    fn can_cast(kind: SyntaxKind) -> bool {
33486        matches!(
33487            kind,
33488            SyntaxKind::COMPOUND_SELECT
33489                | SyntaxKind::DELETE
33490                | SyntaxKind::INSERT
33491                | SyntaxKind::MERGE
33492                | SyntaxKind::PAREN_SELECT
33493                | SyntaxKind::SELECT
33494                | SyntaxKind::TABLE
33495                | SyntaxKind::UPDATE
33496                | SyntaxKind::VALUES
33497        )
33498    }
33499    #[inline]
33500    fn cast(syntax: SyntaxNode) -> Option<Self> {
33501        let res = match syntax.kind() {
33502            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
33503            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
33504            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
33505            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
33506            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
33507            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
33508            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
33509            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
33510            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
33511            _ => {
33512                return None;
33513            }
33514        };
33515        Some(res)
33516    }
33517    #[inline]
33518    fn syntax(&self) -> &SyntaxNode {
33519        match self {
33520            WithQuery::CompoundSelect(it) => &it.syntax,
33521            WithQuery::Delete(it) => &it.syntax,
33522            WithQuery::Insert(it) => &it.syntax,
33523            WithQuery::Merge(it) => &it.syntax,
33524            WithQuery::ParenSelect(it) => &it.syntax,
33525            WithQuery::Select(it) => &it.syntax,
33526            WithQuery::Table(it) => &it.syntax,
33527            WithQuery::Update(it) => &it.syntax,
33528            WithQuery::Values(it) => &it.syntax,
33529        }
33530    }
33531}
33532impl From<CompoundSelect> for WithQuery {
33533    #[inline]
33534    fn from(node: CompoundSelect) -> WithQuery {
33535        WithQuery::CompoundSelect(node)
33536    }
33537}
33538impl From<Delete> for WithQuery {
33539    #[inline]
33540    fn from(node: Delete) -> WithQuery {
33541        WithQuery::Delete(node)
33542    }
33543}
33544impl From<Insert> for WithQuery {
33545    #[inline]
33546    fn from(node: Insert) -> WithQuery {
33547        WithQuery::Insert(node)
33548    }
33549}
33550impl From<Merge> for WithQuery {
33551    #[inline]
33552    fn from(node: Merge) -> WithQuery {
33553        WithQuery::Merge(node)
33554    }
33555}
33556impl From<ParenSelect> for WithQuery {
33557    #[inline]
33558    fn from(node: ParenSelect) -> WithQuery {
33559        WithQuery::ParenSelect(node)
33560    }
33561}
33562impl From<Select> for WithQuery {
33563    #[inline]
33564    fn from(node: Select) -> WithQuery {
33565        WithQuery::Select(node)
33566    }
33567}
33568impl From<Table> for WithQuery {
33569    #[inline]
33570    fn from(node: Table) -> WithQuery {
33571        WithQuery::Table(node)
33572    }
33573}
33574impl From<Update> for WithQuery {
33575    #[inline]
33576    fn from(node: Update) -> WithQuery {
33577        WithQuery::Update(node)
33578    }
33579}
33580impl From<Values> for WithQuery {
33581    #[inline]
33582    fn from(node: Values) -> WithQuery {
33583        WithQuery::Values(node)
33584    }
33585}