squawk_syntax/ast/generated/
nodes.rs

1use crate::SyntaxKind;
2use crate::ast::AstNode;
3use crate::ast::{AstChildren, support};
4use crate::syntax_node::SyntaxNode;
5use crate::syntax_node::SyntaxToken;
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8pub struct AddColumn {
9    pub(crate) syntax: SyntaxNode,
10}
11impl AddColumn {
12    #[inline]
13    pub fn collate(&self) -> Option<Collate> {
14        support::child(&self.syntax)
15    }
16    #[inline]
17    pub fn constraints(&self) -> AstChildren<Constraint> {
18        support::children(&self.syntax)
19    }
20    #[inline]
21    pub fn if_not_exists(&self) -> Option<IfNotExists> {
22        support::child(&self.syntax)
23    }
24    #[inline]
25    pub fn name_ref(&self) -> Option<NameRef> {
26        support::child(&self.syntax)
27    }
28    #[inline]
29    pub fn ty(&self) -> Option<Type> {
30        support::child(&self.syntax)
31    }
32    #[inline]
33    pub fn add_token(&self) -> Option<SyntaxToken> {
34        support::token(&self.syntax, SyntaxKind::ADD_KW)
35    }
36    #[inline]
37    pub fn column_token(&self) -> Option<SyntaxToken> {
38        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
39    }
40}
41
42#[derive(Debug, Clone, PartialEq, Eq, Hash)]
43pub struct AddConstraint {
44    pub(crate) syntax: SyntaxNode,
45}
46impl AddConstraint {
47    #[inline]
48    pub fn constraint(&self) -> Option<Constraint> {
49        support::child(&self.syntax)
50    }
51    #[inline]
52    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
53        support::child(&self.syntax)
54    }
55    #[inline]
56    pub fn enforced(&self) -> Option<Enforced> {
57        support::child(&self.syntax)
58    }
59    #[inline]
60    pub fn initially_deferred_constraint_option(
61        &self,
62    ) -> Option<InitiallyDeferredConstraintOption> {
63        support::child(&self.syntax)
64    }
65    #[inline]
66    pub fn initially_immediate_constraint_option(
67        &self,
68    ) -> Option<InitiallyImmediateConstraintOption> {
69        support::child(&self.syntax)
70    }
71    #[inline]
72    pub fn no_inherit(&self) -> Option<NoInherit> {
73        support::child(&self.syntax)
74    }
75    #[inline]
76    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
77        support::child(&self.syntax)
78    }
79    #[inline]
80    pub fn not_enforced(&self) -> Option<NotEnforced> {
81        support::child(&self.syntax)
82    }
83    #[inline]
84    pub fn not_valid(&self) -> Option<NotValid> {
85        support::child(&self.syntax)
86    }
87    #[inline]
88    pub fn add_token(&self) -> Option<SyntaxToken> {
89        support::token(&self.syntax, SyntaxKind::ADD_KW)
90    }
91}
92
93#[derive(Debug, Clone, PartialEq, Eq, Hash)]
94pub struct AddGenerated {
95    pub(crate) syntax: SyntaxNode,
96}
97impl AddGenerated {
98    #[inline]
99    pub fn add_token(&self) -> Option<SyntaxToken> {
100        support::token(&self.syntax, SyntaxKind::ADD_KW)
101    }
102}
103
104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
105pub struct Aggregate {
106    pub(crate) syntax: SyntaxNode,
107}
108impl Aggregate {
109    #[inline]
110    pub fn param_list(&self) -> Option<ParamList> {
111        support::child(&self.syntax)
112    }
113    #[inline]
114    pub fn path(&self) -> Option<Path> {
115        support::child(&self.syntax)
116    }
117}
118
119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
120pub struct Alias {
121    pub(crate) syntax: SyntaxNode,
122}
123impl Alias {
124    #[inline]
125    pub fn column_list(&self) -> Option<ColumnList> {
126        support::child(&self.syntax)
127    }
128    #[inline]
129    pub fn as_token(&self) -> Option<SyntaxToken> {
130        support::token(&self.syntax, SyntaxKind::AS_KW)
131    }
132}
133
134#[derive(Debug, Clone, PartialEq, Eq, Hash)]
135pub struct AlterAggregate {
136    pub(crate) syntax: SyntaxNode,
137}
138impl AlterAggregate {
139    #[inline]
140    pub fn aggregate(&self) -> Option<Aggregate> {
141        support::child(&self.syntax)
142    }
143    #[inline]
144    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
145        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
146    }
147    #[inline]
148    pub fn alter_token(&self) -> Option<SyntaxToken> {
149        support::token(&self.syntax, SyntaxKind::ALTER_KW)
150    }
151}
152
153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
154pub struct AlterCollation {
155    pub(crate) syntax: SyntaxNode,
156}
157impl AlterCollation {
158    #[inline]
159    pub fn name_ref(&self) -> Option<NameRef> {
160        support::child(&self.syntax)
161    }
162    #[inline]
163    pub fn alter_token(&self) -> Option<SyntaxToken> {
164        support::token(&self.syntax, SyntaxKind::ALTER_KW)
165    }
166    #[inline]
167    pub fn collation_token(&self) -> Option<SyntaxToken> {
168        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
169    }
170}
171
172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
173pub struct AlterColumn {
174    pub(crate) syntax: SyntaxNode,
175}
176impl AlterColumn {
177    #[inline]
178    pub fn option(&self) -> Option<AlterColumnOption> {
179        support::child(&self.syntax)
180    }
181    #[inline]
182    pub fn alter_token(&self) -> Option<SyntaxToken> {
183        support::token(&self.syntax, SyntaxKind::ALTER_KW)
184    }
185    #[inline]
186    pub fn column_token(&self) -> Option<SyntaxToken> {
187        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
188    }
189}
190
191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
192pub struct AlterConstraint {
193    pub(crate) syntax: SyntaxNode,
194}
195impl AlterConstraint {
196    #[inline]
197    pub fn option(&self) -> Option<AlterColumnOption> {
198        support::child(&self.syntax)
199    }
200    #[inline]
201    pub fn alter_token(&self) -> Option<SyntaxToken> {
202        support::token(&self.syntax, SyntaxKind::ALTER_KW)
203    }
204    #[inline]
205    pub fn constraint_token(&self) -> Option<SyntaxToken> {
206        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
207    }
208}
209
210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
211pub struct AlterConversion {
212    pub(crate) syntax: SyntaxNode,
213}
214impl AlterConversion {
215    #[inline]
216    pub fn name_ref(&self) -> Option<NameRef> {
217        support::child(&self.syntax)
218    }
219    #[inline]
220    pub fn alter_token(&self) -> Option<SyntaxToken> {
221        support::token(&self.syntax, SyntaxKind::ALTER_KW)
222    }
223    #[inline]
224    pub fn conversion_token(&self) -> Option<SyntaxToken> {
225        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
226    }
227}
228
229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
230pub struct AlterDatabase {
231    pub(crate) syntax: SyntaxNode,
232}
233impl AlterDatabase {
234    #[inline]
235    pub fn name_ref(&self) -> Option<NameRef> {
236        support::child(&self.syntax)
237    }
238    #[inline]
239    pub fn alter_token(&self) -> Option<SyntaxToken> {
240        support::token(&self.syntax, SyntaxKind::ALTER_KW)
241    }
242    #[inline]
243    pub fn database_token(&self) -> Option<SyntaxToken> {
244        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
245    }
246}
247
248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
249pub struct AlterDefaultPrivileges {
250    pub(crate) syntax: SyntaxNode,
251}
252impl AlterDefaultPrivileges {
253    #[inline]
254    pub fn alter_token(&self) -> Option<SyntaxToken> {
255        support::token(&self.syntax, SyntaxKind::ALTER_KW)
256    }
257    #[inline]
258    pub fn default_token(&self) -> Option<SyntaxToken> {
259        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
260    }
261    #[inline]
262    pub fn privileges_token(&self) -> Option<SyntaxToken> {
263        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
264    }
265}
266
267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
268pub struct AlterDomain {
269    pub(crate) syntax: SyntaxNode,
270}
271impl AlterDomain {
272    #[inline]
273    pub fn action(&self) -> Option<AlterDomainAction> {
274        support::child(&self.syntax)
275    }
276    #[inline]
277    pub fn path(&self) -> Option<Path> {
278        support::child(&self.syntax)
279    }
280    #[inline]
281    pub fn alter_token(&self) -> Option<SyntaxToken> {
282        support::token(&self.syntax, SyntaxKind::ALTER_KW)
283    }
284    #[inline]
285    pub fn domain_token(&self) -> Option<SyntaxToken> {
286        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
287    }
288}
289
290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
291pub struct AlterEventTrigger {
292    pub(crate) syntax: SyntaxNode,
293}
294impl AlterEventTrigger {
295    #[inline]
296    pub fn alter_token(&self) -> Option<SyntaxToken> {
297        support::token(&self.syntax, SyntaxKind::ALTER_KW)
298    }
299    #[inline]
300    pub fn event_token(&self) -> Option<SyntaxToken> {
301        support::token(&self.syntax, SyntaxKind::EVENT_KW)
302    }
303    #[inline]
304    pub fn trigger_token(&self) -> Option<SyntaxToken> {
305        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
306    }
307}
308
309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
310pub struct AlterExtension {
311    pub(crate) syntax: SyntaxNode,
312}
313impl AlterExtension {
314    #[inline]
315    pub fn name_ref(&self) -> Option<NameRef> {
316        support::child(&self.syntax)
317    }
318    #[inline]
319    pub fn alter_token(&self) -> Option<SyntaxToken> {
320        support::token(&self.syntax, SyntaxKind::ALTER_KW)
321    }
322    #[inline]
323    pub fn extension_token(&self) -> Option<SyntaxToken> {
324        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
325    }
326}
327
328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
329pub struct AlterForeignDataWrapper {
330    pub(crate) syntax: SyntaxNode,
331}
332impl AlterForeignDataWrapper {
333    #[inline]
334    pub fn alter_token(&self) -> Option<SyntaxToken> {
335        support::token(&self.syntax, SyntaxKind::ALTER_KW)
336    }
337    #[inline]
338    pub fn data_token(&self) -> Option<SyntaxToken> {
339        support::token(&self.syntax, SyntaxKind::DATA_KW)
340    }
341    #[inline]
342    pub fn foreign_token(&self) -> Option<SyntaxToken> {
343        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
344    }
345    #[inline]
346    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
347        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
348    }
349}
350
351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
352pub struct AlterForeignTable {
353    pub(crate) syntax: SyntaxNode,
354}
355impl AlterForeignTable {
356    #[inline]
357    pub fn alter_token(&self) -> Option<SyntaxToken> {
358        support::token(&self.syntax, SyntaxKind::ALTER_KW)
359    }
360    #[inline]
361    pub fn foreign_token(&self) -> Option<SyntaxToken> {
362        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
363    }
364    #[inline]
365    pub fn table_token(&self) -> Option<SyntaxToken> {
366        support::token(&self.syntax, SyntaxKind::TABLE_KW)
367    }
368}
369
370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
371pub struct AlterFunction {
372    pub(crate) syntax: SyntaxNode,
373}
374impl AlterFunction {
375    #[inline]
376    pub fn alter_token(&self) -> Option<SyntaxToken> {
377        support::token(&self.syntax, SyntaxKind::ALTER_KW)
378    }
379    #[inline]
380    pub fn function_token(&self) -> Option<SyntaxToken> {
381        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
382    }
383}
384
385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
386pub struct AlterGroup {
387    pub(crate) syntax: SyntaxNode,
388}
389impl AlterGroup {
390    #[inline]
391    pub fn name_ref(&self) -> Option<NameRef> {
392        support::child(&self.syntax)
393    }
394    #[inline]
395    pub fn alter_token(&self) -> Option<SyntaxToken> {
396        support::token(&self.syntax, SyntaxKind::ALTER_KW)
397    }
398    #[inline]
399    pub fn group_token(&self) -> Option<SyntaxToken> {
400        support::token(&self.syntax, SyntaxKind::GROUP_KW)
401    }
402}
403
404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
405pub struct AlterIndex {
406    pub(crate) syntax: SyntaxNode,
407}
408impl AlterIndex {
409    #[inline]
410    pub fn name_ref(&self) -> Option<NameRef> {
411        support::child(&self.syntax)
412    }
413    #[inline]
414    pub fn alter_token(&self) -> Option<SyntaxToken> {
415        support::token(&self.syntax, SyntaxKind::ALTER_KW)
416    }
417    #[inline]
418    pub fn index_token(&self) -> Option<SyntaxToken> {
419        support::token(&self.syntax, SyntaxKind::INDEX_KW)
420    }
421}
422
423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
424pub struct AlterLanguage {
425    pub(crate) syntax: SyntaxNode,
426}
427impl AlterLanguage {
428    #[inline]
429    pub fn name_ref(&self) -> Option<NameRef> {
430        support::child(&self.syntax)
431    }
432    #[inline]
433    pub fn alter_token(&self) -> Option<SyntaxToken> {
434        support::token(&self.syntax, SyntaxKind::ALTER_KW)
435    }
436    #[inline]
437    pub fn language_token(&self) -> Option<SyntaxToken> {
438        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
439    }
440}
441
442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
443pub struct AlterLargeObject {
444    pub(crate) syntax: SyntaxNode,
445}
446impl AlterLargeObject {
447    #[inline]
448    pub fn alter_token(&self) -> Option<SyntaxToken> {
449        support::token(&self.syntax, SyntaxKind::ALTER_KW)
450    }
451    #[inline]
452    pub fn large_token(&self) -> Option<SyntaxToken> {
453        support::token(&self.syntax, SyntaxKind::LARGE_KW)
454    }
455    #[inline]
456    pub fn object_token(&self) -> Option<SyntaxToken> {
457        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
458    }
459}
460
461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
462pub struct AlterMaterializedView {
463    pub(crate) syntax: SyntaxNode,
464}
465impl AlterMaterializedView {
466    #[inline]
467    pub fn name_ref(&self) -> Option<NameRef> {
468        support::child(&self.syntax)
469    }
470    #[inline]
471    pub fn alter_token(&self) -> Option<SyntaxToken> {
472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
473    }
474    #[inline]
475    pub fn materialized_token(&self) -> Option<SyntaxToken> {
476        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
477    }
478    #[inline]
479    pub fn view_token(&self) -> Option<SyntaxToken> {
480        support::token(&self.syntax, SyntaxKind::VIEW_KW)
481    }
482}
483
484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
485pub struct AlterOperator {
486    pub(crate) syntax: SyntaxNode,
487}
488impl AlterOperator {
489    #[inline]
490    pub fn alter_token(&self) -> Option<SyntaxToken> {
491        support::token(&self.syntax, SyntaxKind::ALTER_KW)
492    }
493    #[inline]
494    pub fn operator_token(&self) -> Option<SyntaxToken> {
495        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
496    }
497}
498
499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
500pub struct AlterOperatorClass {
501    pub(crate) syntax: SyntaxNode,
502}
503impl AlterOperatorClass {
504    #[inline]
505    pub fn name_ref(&self) -> Option<NameRef> {
506        support::child(&self.syntax)
507    }
508    #[inline]
509    pub fn alter_token(&self) -> Option<SyntaxToken> {
510        support::token(&self.syntax, SyntaxKind::ALTER_KW)
511    }
512    #[inline]
513    pub fn class_token(&self) -> Option<SyntaxToken> {
514        support::token(&self.syntax, SyntaxKind::CLASS_KW)
515    }
516    #[inline]
517    pub fn operator_token(&self) -> Option<SyntaxToken> {
518        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
519    }
520    #[inline]
521    pub fn using_token(&self) -> Option<SyntaxToken> {
522        support::token(&self.syntax, SyntaxKind::USING_KW)
523    }
524}
525
526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
527pub struct AlterOperatorFamily {
528    pub(crate) syntax: SyntaxNode,
529}
530impl AlterOperatorFamily {
531    #[inline]
532    pub fn name_ref(&self) -> Option<NameRef> {
533        support::child(&self.syntax)
534    }
535    #[inline]
536    pub fn alter_token(&self) -> Option<SyntaxToken> {
537        support::token(&self.syntax, SyntaxKind::ALTER_KW)
538    }
539    #[inline]
540    pub fn family_token(&self) -> Option<SyntaxToken> {
541        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
542    }
543    #[inline]
544    pub fn operator_token(&self) -> Option<SyntaxToken> {
545        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
546    }
547    #[inline]
548    pub fn using_token(&self) -> Option<SyntaxToken> {
549        support::token(&self.syntax, SyntaxKind::USING_KW)
550    }
551}
552
553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
554pub struct AlterPolicy {
555    pub(crate) syntax: SyntaxNode,
556}
557impl AlterPolicy {
558    #[inline]
559    pub fn name_ref(&self) -> Option<NameRef> {
560        support::child(&self.syntax)
561    }
562    #[inline]
563    pub fn alter_token(&self) -> Option<SyntaxToken> {
564        support::token(&self.syntax, SyntaxKind::ALTER_KW)
565    }
566    #[inline]
567    pub fn on_token(&self) -> Option<SyntaxToken> {
568        support::token(&self.syntax, SyntaxKind::ON_KW)
569    }
570    #[inline]
571    pub fn policy_token(&self) -> Option<SyntaxToken> {
572        support::token(&self.syntax, SyntaxKind::POLICY_KW)
573    }
574}
575
576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
577pub struct AlterProcedure {
578    pub(crate) syntax: SyntaxNode,
579}
580impl AlterProcedure {
581    #[inline]
582    pub fn alter_token(&self) -> Option<SyntaxToken> {
583        support::token(&self.syntax, SyntaxKind::ALTER_KW)
584    }
585    #[inline]
586    pub fn procedure_token(&self) -> Option<SyntaxToken> {
587        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
588    }
589}
590
591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
592pub struct AlterPublication {
593    pub(crate) syntax: SyntaxNode,
594}
595impl AlterPublication {
596    #[inline]
597    pub fn name_ref(&self) -> Option<NameRef> {
598        support::child(&self.syntax)
599    }
600    #[inline]
601    pub fn alter_token(&self) -> Option<SyntaxToken> {
602        support::token(&self.syntax, SyntaxKind::ALTER_KW)
603    }
604    #[inline]
605    pub fn publication_token(&self) -> Option<SyntaxToken> {
606        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
607    }
608}
609
610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
611pub struct AlterRole {
612    pub(crate) syntax: SyntaxNode,
613}
614impl AlterRole {
615    #[inline]
616    pub fn alter_token(&self) -> Option<SyntaxToken> {
617        support::token(&self.syntax, SyntaxKind::ALTER_KW)
618    }
619    #[inline]
620    pub fn role_token(&self) -> Option<SyntaxToken> {
621        support::token(&self.syntax, SyntaxKind::ROLE_KW)
622    }
623}
624
625#[derive(Debug, Clone, PartialEq, Eq, Hash)]
626pub struct AlterRoutine {
627    pub(crate) syntax: SyntaxNode,
628}
629impl AlterRoutine {
630    #[inline]
631    pub fn alter_token(&self) -> Option<SyntaxToken> {
632        support::token(&self.syntax, SyntaxKind::ALTER_KW)
633    }
634    #[inline]
635    pub fn routine_token(&self) -> Option<SyntaxToken> {
636        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
637    }
638}
639
640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
641pub struct AlterRule {
642    pub(crate) syntax: SyntaxNode,
643}
644impl AlterRule {
645    #[inline]
646    pub fn name_ref(&self) -> Option<NameRef> {
647        support::child(&self.syntax)
648    }
649    #[inline]
650    pub fn alter_token(&self) -> Option<SyntaxToken> {
651        support::token(&self.syntax, SyntaxKind::ALTER_KW)
652    }
653    #[inline]
654    pub fn on_token(&self) -> Option<SyntaxToken> {
655        support::token(&self.syntax, SyntaxKind::ON_KW)
656    }
657    #[inline]
658    pub fn rule_token(&self) -> Option<SyntaxToken> {
659        support::token(&self.syntax, SyntaxKind::RULE_KW)
660    }
661}
662
663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
664pub struct AlterSchema {
665    pub(crate) syntax: SyntaxNode,
666}
667impl AlterSchema {
668    #[inline]
669    pub fn name_ref(&self) -> Option<NameRef> {
670        support::child(&self.syntax)
671    }
672    #[inline]
673    pub fn alter_token(&self) -> Option<SyntaxToken> {
674        support::token(&self.syntax, SyntaxKind::ALTER_KW)
675    }
676    #[inline]
677    pub fn rename_token(&self) -> Option<SyntaxToken> {
678        support::token(&self.syntax, SyntaxKind::RENAME_KW)
679    }
680    #[inline]
681    pub fn schema_token(&self) -> Option<SyntaxToken> {
682        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
683    }
684    #[inline]
685    pub fn to_token(&self) -> Option<SyntaxToken> {
686        support::token(&self.syntax, SyntaxKind::TO_KW)
687    }
688}
689
690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
691pub struct AlterSequence {
692    pub(crate) syntax: SyntaxNode,
693}
694impl AlterSequence {
695    #[inline]
696    pub fn name_ref(&self) -> Option<NameRef> {
697        support::child(&self.syntax)
698    }
699    #[inline]
700    pub fn alter_token(&self) -> Option<SyntaxToken> {
701        support::token(&self.syntax, SyntaxKind::ALTER_KW)
702    }
703    #[inline]
704    pub fn sequence_token(&self) -> Option<SyntaxToken> {
705        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
706    }
707}
708
709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
710pub struct AlterServer {
711    pub(crate) syntax: SyntaxNode,
712}
713impl AlterServer {
714    #[inline]
715    pub fn name_ref(&self) -> Option<NameRef> {
716        support::child(&self.syntax)
717    }
718    #[inline]
719    pub fn alter_token(&self) -> Option<SyntaxToken> {
720        support::token(&self.syntax, SyntaxKind::ALTER_KW)
721    }
722    #[inline]
723    pub fn server_token(&self) -> Option<SyntaxToken> {
724        support::token(&self.syntax, SyntaxKind::SERVER_KW)
725    }
726}
727
728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
729pub struct AlterStatistics {
730    pub(crate) syntax: SyntaxNode,
731}
732impl AlterStatistics {
733    #[inline]
734    pub fn name_ref(&self) -> Option<NameRef> {
735        support::child(&self.syntax)
736    }
737    #[inline]
738    pub fn alter_token(&self) -> Option<SyntaxToken> {
739        support::token(&self.syntax, SyntaxKind::ALTER_KW)
740    }
741    #[inline]
742    pub fn statistics_token(&self) -> Option<SyntaxToken> {
743        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
744    }
745}
746
747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
748pub struct AlterSubscription {
749    pub(crate) syntax: SyntaxNode,
750}
751impl AlterSubscription {
752    #[inline]
753    pub fn name_ref(&self) -> Option<NameRef> {
754        support::child(&self.syntax)
755    }
756    #[inline]
757    pub fn alter_token(&self) -> Option<SyntaxToken> {
758        support::token(&self.syntax, SyntaxKind::ALTER_KW)
759    }
760    #[inline]
761    pub fn subscription_token(&self) -> Option<SyntaxToken> {
762        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
763    }
764}
765
766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
767pub struct AlterSystem {
768    pub(crate) syntax: SyntaxNode,
769}
770impl AlterSystem {
771    #[inline]
772    pub fn alter_token(&self) -> Option<SyntaxToken> {
773        support::token(&self.syntax, SyntaxKind::ALTER_KW)
774    }
775    #[inline]
776    pub fn set_token(&self) -> Option<SyntaxToken> {
777        support::token(&self.syntax, SyntaxKind::SET_KW)
778    }
779    #[inline]
780    pub fn system_token(&self) -> Option<SyntaxToken> {
781        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
782    }
783}
784
785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
786pub struct AlterTable {
787    pub(crate) syntax: SyntaxNode,
788}
789impl AlterTable {
790    #[inline]
791    pub fn actions(&self) -> AstChildren<AlterTableAction> {
792        support::children(&self.syntax)
793    }
794    #[inline]
795    pub fn relation_name(&self) -> Option<RelationName> {
796        support::child(&self.syntax)
797    }
798    #[inline]
799    pub fn alter_token(&self) -> Option<SyntaxToken> {
800        support::token(&self.syntax, SyntaxKind::ALTER_KW)
801    }
802    #[inline]
803    pub fn table_token(&self) -> Option<SyntaxToken> {
804        support::token(&self.syntax, SyntaxKind::TABLE_KW)
805    }
806}
807
808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
809pub struct AlterTablespace {
810    pub(crate) syntax: SyntaxNode,
811}
812impl AlterTablespace {
813    #[inline]
814    pub fn name_ref(&self) -> Option<NameRef> {
815        support::child(&self.syntax)
816    }
817    #[inline]
818    pub fn alter_token(&self) -> Option<SyntaxToken> {
819        support::token(&self.syntax, SyntaxKind::ALTER_KW)
820    }
821    #[inline]
822    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
823        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
824    }
825}
826
827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
828pub struct AlterTextSearchConfiguration {
829    pub(crate) syntax: SyntaxNode,
830}
831impl AlterTextSearchConfiguration {
832    #[inline]
833    pub fn name_ref(&self) -> Option<NameRef> {
834        support::child(&self.syntax)
835    }
836    #[inline]
837    pub fn alter_token(&self) -> Option<SyntaxToken> {
838        support::token(&self.syntax, SyntaxKind::ALTER_KW)
839    }
840    #[inline]
841    pub fn configuration_token(&self) -> Option<SyntaxToken> {
842        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
843    }
844    #[inline]
845    pub fn search_token(&self) -> Option<SyntaxToken> {
846        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
847    }
848    #[inline]
849    pub fn text_token(&self) -> Option<SyntaxToken> {
850        support::token(&self.syntax, SyntaxKind::TEXT_KW)
851    }
852}
853
854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
855pub struct AlterTextSearchDictionary {
856    pub(crate) syntax: SyntaxNode,
857}
858impl AlterTextSearchDictionary {
859    #[inline]
860    pub fn name_ref(&self) -> Option<NameRef> {
861        support::child(&self.syntax)
862    }
863    #[inline]
864    pub fn alter_token(&self) -> Option<SyntaxToken> {
865        support::token(&self.syntax, SyntaxKind::ALTER_KW)
866    }
867    #[inline]
868    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
869        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
870    }
871    #[inline]
872    pub fn search_token(&self) -> Option<SyntaxToken> {
873        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
874    }
875    #[inline]
876    pub fn text_token(&self) -> Option<SyntaxToken> {
877        support::token(&self.syntax, SyntaxKind::TEXT_KW)
878    }
879}
880
881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
882pub struct AlterTextSearchParser {
883    pub(crate) syntax: SyntaxNode,
884}
885impl AlterTextSearchParser {
886    #[inline]
887    pub fn name_ref(&self) -> Option<NameRef> {
888        support::child(&self.syntax)
889    }
890    #[inline]
891    pub fn alter_token(&self) -> Option<SyntaxToken> {
892        support::token(&self.syntax, SyntaxKind::ALTER_KW)
893    }
894    #[inline]
895    pub fn parser_token(&self) -> Option<SyntaxToken> {
896        support::token(&self.syntax, SyntaxKind::PARSER_KW)
897    }
898    #[inline]
899    pub fn search_token(&self) -> Option<SyntaxToken> {
900        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
901    }
902    #[inline]
903    pub fn text_token(&self) -> Option<SyntaxToken> {
904        support::token(&self.syntax, SyntaxKind::TEXT_KW)
905    }
906}
907
908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
909pub struct AlterTextSearchTemplate {
910    pub(crate) syntax: SyntaxNode,
911}
912impl AlterTextSearchTemplate {
913    #[inline]
914    pub fn name_ref(&self) -> Option<NameRef> {
915        support::child(&self.syntax)
916    }
917    #[inline]
918    pub fn alter_token(&self) -> Option<SyntaxToken> {
919        support::token(&self.syntax, SyntaxKind::ALTER_KW)
920    }
921    #[inline]
922    pub fn search_token(&self) -> Option<SyntaxToken> {
923        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
924    }
925    #[inline]
926    pub fn template_token(&self) -> Option<SyntaxToken> {
927        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
928    }
929    #[inline]
930    pub fn text_token(&self) -> Option<SyntaxToken> {
931        support::token(&self.syntax, SyntaxKind::TEXT_KW)
932    }
933}
934
935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
936pub struct AlterTrigger {
937    pub(crate) syntax: SyntaxNode,
938}
939impl AlterTrigger {
940    #[inline]
941    pub fn name_ref(&self) -> Option<NameRef> {
942        support::child(&self.syntax)
943    }
944    #[inline]
945    pub fn alter_token(&self) -> Option<SyntaxToken> {
946        support::token(&self.syntax, SyntaxKind::ALTER_KW)
947    }
948    #[inline]
949    pub fn on_token(&self) -> Option<SyntaxToken> {
950        support::token(&self.syntax, SyntaxKind::ON_KW)
951    }
952    #[inline]
953    pub fn trigger_token(&self) -> Option<SyntaxToken> {
954        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
955    }
956}
957
958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
959pub struct AlterType {
960    pub(crate) syntax: SyntaxNode,
961}
962impl AlterType {
963    #[inline]
964    pub fn ty(&self) -> Option<Type> {
965        support::child(&self.syntax)
966    }
967    #[inline]
968    pub fn alter_token(&self) -> Option<SyntaxToken> {
969        support::token(&self.syntax, SyntaxKind::ALTER_KW)
970    }
971    #[inline]
972    pub fn type_token(&self) -> Option<SyntaxToken> {
973        support::token(&self.syntax, SyntaxKind::TYPE_KW)
974    }
975}
976
977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
978pub struct AlterUser {
979    pub(crate) syntax: SyntaxNode,
980}
981impl AlterUser {
982    #[inline]
983    pub fn name_ref(&self) -> Option<NameRef> {
984        support::child(&self.syntax)
985    }
986    #[inline]
987    pub fn alter_token(&self) -> Option<SyntaxToken> {
988        support::token(&self.syntax, SyntaxKind::ALTER_KW)
989    }
990    #[inline]
991    pub fn user_token(&self) -> Option<SyntaxToken> {
992        support::token(&self.syntax, SyntaxKind::USER_KW)
993    }
994}
995
996#[derive(Debug, Clone, PartialEq, Eq, Hash)]
997pub struct AlterUserMapping {
998    pub(crate) syntax: SyntaxNode,
999}
1000impl AlterUserMapping {
1001    #[inline]
1002    pub fn name_ref(&self) -> Option<NameRef> {
1003        support::child(&self.syntax)
1004    }
1005    #[inline]
1006    pub fn alter_token(&self) -> Option<SyntaxToken> {
1007        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1008    }
1009    #[inline]
1010    pub fn for_token(&self) -> Option<SyntaxToken> {
1011        support::token(&self.syntax, SyntaxKind::FOR_KW)
1012    }
1013    #[inline]
1014    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1015        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1016    }
1017    #[inline]
1018    pub fn server_token(&self) -> Option<SyntaxToken> {
1019        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1020    }
1021    #[inline]
1022    pub fn user_token(&self) -> Option<SyntaxToken> {
1023        support::token(&self.syntax, SyntaxKind::USER_KW)
1024    }
1025}
1026
1027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1028pub struct AlterView {
1029    pub(crate) syntax: SyntaxNode,
1030}
1031impl AlterView {
1032    #[inline]
1033    pub fn name_ref(&self) -> Option<NameRef> {
1034        support::child(&self.syntax)
1035    }
1036    #[inline]
1037    pub fn alter_token(&self) -> Option<SyntaxToken> {
1038        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1039    }
1040    #[inline]
1041    pub fn view_token(&self) -> Option<SyntaxToken> {
1042        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1043    }
1044}
1045
1046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1047pub struct Analyze {
1048    pub(crate) syntax: SyntaxNode,
1049}
1050impl Analyze {
1051    #[inline]
1052    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1053        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1054    }
1055    #[inline]
1056    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1057        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1058    }
1059}
1060
1061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1062pub struct Arg {
1063    pub(crate) syntax: SyntaxNode,
1064}
1065impl Arg {
1066    #[inline]
1067    pub fn expr(&self) -> Option<Expr> {
1068        support::child(&self.syntax)
1069    }
1070}
1071
1072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1073pub struct ArgList {
1074    pub(crate) syntax: SyntaxNode,
1075}
1076impl ArgList {
1077    #[inline]
1078    pub fn args(&self) -> AstChildren<Expr> {
1079        support::children(&self.syntax)
1080    }
1081    #[inline]
1082    pub fn expr(&self) -> Option<Expr> {
1083        support::child(&self.syntax)
1084    }
1085    #[inline]
1086    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1087        support::token(&self.syntax, SyntaxKind::L_PAREN)
1088    }
1089    #[inline]
1090    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1091        support::token(&self.syntax, SyntaxKind::R_PAREN)
1092    }
1093    #[inline]
1094    pub fn star_token(&self) -> Option<SyntaxToken> {
1095        support::token(&self.syntax, SyntaxKind::STAR)
1096    }
1097    #[inline]
1098    pub fn all_token(&self) -> Option<SyntaxToken> {
1099        support::token(&self.syntax, SyntaxKind::ALL_KW)
1100    }
1101    #[inline]
1102    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1103        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1104    }
1105    #[inline]
1106    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1107        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1108    }
1109}
1110
1111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1112pub struct ArrayExpr {
1113    pub(crate) syntax: SyntaxNode,
1114}
1115impl ArrayExpr {
1116    #[inline]
1117    pub fn exprs(&self) -> AstChildren<Expr> {
1118        support::children(&self.syntax)
1119    }
1120    #[inline]
1121    pub fn select(&self) -> Option<Select> {
1122        support::child(&self.syntax)
1123    }
1124    #[inline]
1125    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1126        support::token(&self.syntax, SyntaxKind::L_PAREN)
1127    }
1128    #[inline]
1129    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1130        support::token(&self.syntax, SyntaxKind::R_PAREN)
1131    }
1132    #[inline]
1133    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1134        support::token(&self.syntax, SyntaxKind::L_BRACK)
1135    }
1136    #[inline]
1137    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1138        support::token(&self.syntax, SyntaxKind::R_BRACK)
1139    }
1140    #[inline]
1141    pub fn array_token(&self) -> Option<SyntaxToken> {
1142        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1143    }
1144}
1145
1146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1147pub struct ArrayType {
1148    pub(crate) syntax: SyntaxNode,
1149}
1150impl ArrayType {
1151    #[inline]
1152    pub fn expr(&self) -> Option<Expr> {
1153        support::child(&self.syntax)
1154    }
1155    #[inline]
1156    pub fn name_ref(&self) -> Option<NameRef> {
1157        support::child(&self.syntax)
1158    }
1159    #[inline]
1160    pub fn ty(&self) -> Option<Type> {
1161        support::child(&self.syntax)
1162    }
1163    #[inline]
1164    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1165        support::token(&self.syntax, SyntaxKind::L_BRACK)
1166    }
1167    #[inline]
1168    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1169        support::token(&self.syntax, SyntaxKind::R_BRACK)
1170    }
1171    #[inline]
1172    pub fn array_token(&self) -> Option<SyntaxToken> {
1173        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1174    }
1175}
1176
1177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1178pub struct AsFuncOption {
1179    pub(crate) syntax: SyntaxNode,
1180}
1181impl AsFuncOption {
1182    #[inline]
1183    pub fn definition(&self) -> Option<Literal> {
1184        support::child(&self.syntax)
1185    }
1186    #[inline]
1187    pub fn link_symbol(&self) -> Option<Literal> {
1188        support::child(&self.syntax)
1189    }
1190    #[inline]
1191    pub fn obj_file(&self) -> Option<Literal> {
1192        support::child(&self.syntax)
1193    }
1194    #[inline]
1195    pub fn comma_token(&self) -> Option<SyntaxToken> {
1196        support::token(&self.syntax, SyntaxKind::COMMA)
1197    }
1198    #[inline]
1199    pub fn as_token(&self) -> Option<SyntaxToken> {
1200        support::token(&self.syntax, SyntaxKind::AS_KW)
1201    }
1202}
1203
1204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1205pub struct AsName {
1206    pub(crate) syntax: SyntaxNode,
1207}
1208impl AsName {
1209    #[inline]
1210    pub fn name(&self) -> Option<Name> {
1211        support::child(&self.syntax)
1212    }
1213    #[inline]
1214    pub fn as_token(&self) -> Option<SyntaxToken> {
1215        support::token(&self.syntax, SyntaxKind::AS_KW)
1216    }
1217}
1218
1219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1220pub struct AtTimeZone {
1221    pub(crate) syntax: SyntaxNode,
1222}
1223impl AtTimeZone {
1224    #[inline]
1225    pub fn at_token(&self) -> Option<SyntaxToken> {
1226        support::token(&self.syntax, SyntaxKind::AT_KW)
1227    }
1228    #[inline]
1229    pub fn time_token(&self) -> Option<SyntaxToken> {
1230        support::token(&self.syntax, SyntaxKind::TIME_KW)
1231    }
1232    #[inline]
1233    pub fn zone_token(&self) -> Option<SyntaxToken> {
1234        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1235    }
1236}
1237
1238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1239pub struct AttachPartition {
1240    pub(crate) syntax: SyntaxNode,
1241}
1242impl AttachPartition {
1243    #[inline]
1244    pub fn partition_type(&self) -> Option<PartitionType> {
1245        support::child(&self.syntax)
1246    }
1247    #[inline]
1248    pub fn path(&self) -> Option<Path> {
1249        support::child(&self.syntax)
1250    }
1251    #[inline]
1252    pub fn attach_token(&self) -> Option<SyntaxToken> {
1253        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1254    }
1255    #[inline]
1256    pub fn partition_token(&self) -> Option<SyntaxToken> {
1257        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1258    }
1259}
1260
1261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1262pub struct AttributeList {
1263    pub(crate) syntax: SyntaxNode,
1264}
1265impl AttributeList {
1266    #[inline]
1267    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1268        support::children(&self.syntax)
1269    }
1270    #[inline]
1271    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1272        support::token(&self.syntax, SyntaxKind::L_PAREN)
1273    }
1274    #[inline]
1275    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1276        support::token(&self.syntax, SyntaxKind::R_PAREN)
1277    }
1278}
1279
1280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1281pub struct AttributeOption {
1282    pub(crate) syntax: SyntaxNode,
1283}
1284impl AttributeOption {
1285    #[inline]
1286    pub fn eq_token(&self) -> Option<SyntaxToken> {
1287        support::token(&self.syntax, SyntaxKind::EQ)
1288    }
1289}
1290
1291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1292pub struct Begin {
1293    pub(crate) syntax: SyntaxNode,
1294}
1295impl Begin {
1296    #[inline]
1297    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
1298        support::child(&self.syntax)
1299    }
1300    #[inline]
1301    pub fn begin_token(&self) -> Option<SyntaxToken> {
1302        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
1303    }
1304    #[inline]
1305    pub fn start_token(&self) -> Option<SyntaxToken> {
1306        support::token(&self.syntax, SyntaxKind::START_KW)
1307    }
1308    #[inline]
1309    pub fn transaction_token(&self) -> Option<SyntaxToken> {
1310        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
1311    }
1312    #[inline]
1313    pub fn work_token(&self) -> Option<SyntaxToken> {
1314        support::token(&self.syntax, SyntaxKind::WORK_KW)
1315    }
1316}
1317
1318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1319pub struct BeginFuncOption {
1320    pub(crate) syntax: SyntaxNode,
1321}
1322impl BeginFuncOption {
1323    #[inline]
1324    pub fn atomic_token(&self) -> Option<SyntaxToken> {
1325        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
1326    }
1327    #[inline]
1328    pub fn begin_token(&self) -> Option<SyntaxToken> {
1329        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
1330    }
1331    #[inline]
1332    pub fn end_token(&self) -> Option<SyntaxToken> {
1333        support::token(&self.syntax, SyntaxKind::END_KW)
1334    }
1335}
1336
1337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1338pub struct BetweenExpr {
1339    pub(crate) syntax: SyntaxNode,
1340}
1341impl BetweenExpr {
1342    #[inline]
1343    pub fn end(&self) -> Option<Expr> {
1344        support::child(&self.syntax)
1345    }
1346    #[inline]
1347    pub fn start(&self) -> Option<Expr> {
1348        support::child(&self.syntax)
1349    }
1350    #[inline]
1351    pub fn target(&self) -> Option<Expr> {
1352        support::child(&self.syntax)
1353    }
1354    #[inline]
1355    pub fn and_token(&self) -> Option<SyntaxToken> {
1356        support::token(&self.syntax, SyntaxKind::AND_KW)
1357    }
1358    #[inline]
1359    pub fn between_token(&self) -> Option<SyntaxToken> {
1360        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
1361    }
1362}
1363
1364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1365pub struct BinExpr {
1366    pub(crate) syntax: SyntaxNode,
1367}
1368impl BinExpr {
1369    #[inline]
1370    pub fn op(&self) -> Option<Op> {
1371        support::child(&self.syntax)
1372    }
1373}
1374
1375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1376pub struct BitType {
1377    pub(crate) syntax: SyntaxNode,
1378}
1379impl BitType {
1380    #[inline]
1381    pub fn arg_list(&self) -> Option<ArgList> {
1382        support::child(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn bit_token(&self) -> Option<SyntaxToken> {
1386        support::token(&self.syntax, SyntaxKind::BIT_KW)
1387    }
1388    #[inline]
1389    pub fn varying_token(&self) -> Option<SyntaxToken> {
1390        support::token(&self.syntax, SyntaxKind::VARYING_KW)
1391    }
1392}
1393
1394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1395pub struct Call {
1396    pub(crate) syntax: SyntaxNode,
1397}
1398impl Call {
1399    #[inline]
1400    pub fn call_token(&self) -> Option<SyntaxToken> {
1401        support::token(&self.syntax, SyntaxKind::CALL_KW)
1402    }
1403}
1404
1405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1406pub struct CallExpr {
1407    pub(crate) syntax: SyntaxNode,
1408}
1409impl CallExpr {
1410    #[inline]
1411    pub fn arg_list(&self) -> Option<ArgList> {
1412        support::child(&self.syntax)
1413    }
1414    #[inline]
1415    pub fn expr(&self) -> Option<Expr> {
1416        support::child(&self.syntax)
1417    }
1418}
1419
1420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1421pub struct Cascade {
1422    pub(crate) syntax: SyntaxNode,
1423}
1424impl Cascade {
1425    #[inline]
1426    pub fn cascade_token(&self) -> Option<SyntaxToken> {
1427        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
1428    }
1429}
1430
1431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1432pub struct CaseExpr {
1433    pub(crate) syntax: SyntaxNode,
1434}
1435impl CaseExpr {
1436    #[inline]
1437    pub fn else_clause(&self) -> Option<ElseClause> {
1438        support::child(&self.syntax)
1439    }
1440    #[inline]
1441    pub fn expr(&self) -> Option<Expr> {
1442        support::child(&self.syntax)
1443    }
1444    #[inline]
1445    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
1446        support::child(&self.syntax)
1447    }
1448    #[inline]
1449    pub fn case_token(&self) -> Option<SyntaxToken> {
1450        support::token(&self.syntax, SyntaxKind::CASE_KW)
1451    }
1452}
1453
1454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1455pub struct CastExpr {
1456    pub(crate) syntax: SyntaxNode,
1457}
1458impl CastExpr {
1459    #[inline]
1460    pub fn colon_colon(&self) -> Option<ColonColon> {
1461        support::child(&self.syntax)
1462    }
1463    #[inline]
1464    pub fn expr(&self) -> Option<Expr> {
1465        support::child(&self.syntax)
1466    }
1467    #[inline]
1468    pub fn ty(&self) -> Option<Type> {
1469        support::child(&self.syntax)
1470    }
1471    #[inline]
1472    pub fn as_token(&self) -> Option<SyntaxToken> {
1473        support::token(&self.syntax, SyntaxKind::AS_KW)
1474    }
1475}
1476
1477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1478pub struct CharType {
1479    pub(crate) syntax: SyntaxNode,
1480}
1481impl CharType {
1482    #[inline]
1483    pub fn arg_list(&self) -> Option<ArgList> {
1484        support::child(&self.syntax)
1485    }
1486    #[inline]
1487    pub fn char_token(&self) -> Option<SyntaxToken> {
1488        support::token(&self.syntax, SyntaxKind::CHAR_KW)
1489    }
1490    #[inline]
1491    pub fn character_token(&self) -> Option<SyntaxToken> {
1492        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
1493    }
1494    #[inline]
1495    pub fn nchar_token(&self) -> Option<SyntaxToken> {
1496        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
1497    }
1498    #[inline]
1499    pub fn varchar_token(&self) -> Option<SyntaxToken> {
1500        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
1501    }
1502    #[inline]
1503    pub fn varying_token(&self) -> Option<SyntaxToken> {
1504        support::token(&self.syntax, SyntaxKind::VARYING_KW)
1505    }
1506}
1507
1508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1509pub struct CheckConstraint {
1510    pub(crate) syntax: SyntaxNode,
1511}
1512impl CheckConstraint {
1513    #[inline]
1514    pub fn expr(&self) -> Option<Expr> {
1515        support::child(&self.syntax)
1516    }
1517    #[inline]
1518    pub fn name_ref(&self) -> Option<NameRef> {
1519        support::child(&self.syntax)
1520    }
1521    #[inline]
1522    pub fn no_inherit(&self) -> Option<NoInherit> {
1523        support::child(&self.syntax)
1524    }
1525    #[inline]
1526    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1527        support::token(&self.syntax, SyntaxKind::L_PAREN)
1528    }
1529    #[inline]
1530    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1531        support::token(&self.syntax, SyntaxKind::R_PAREN)
1532    }
1533    #[inline]
1534    pub fn check_token(&self) -> Option<SyntaxToken> {
1535        support::token(&self.syntax, SyntaxKind::CHECK_KW)
1536    }
1537    #[inline]
1538    pub fn constraint_token(&self) -> Option<SyntaxToken> {
1539        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
1540    }
1541}
1542
1543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1544pub struct Checkpoint {
1545    pub(crate) syntax: SyntaxNode,
1546}
1547impl Checkpoint {
1548    #[inline]
1549    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
1550        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
1551    }
1552}
1553
1554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1555pub struct Close {
1556    pub(crate) syntax: SyntaxNode,
1557}
1558impl Close {
1559    #[inline]
1560    pub fn close_token(&self) -> Option<SyntaxToken> {
1561        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
1562    }
1563}
1564
1565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1566pub struct Cluster {
1567    pub(crate) syntax: SyntaxNode,
1568}
1569impl Cluster {
1570    #[inline]
1571    pub fn cluster_token(&self) -> Option<SyntaxToken> {
1572        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
1573    }
1574    #[inline]
1575    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1576        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1577    }
1578}
1579
1580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1581pub struct ClusterOn {
1582    pub(crate) syntax: SyntaxNode,
1583}
1584impl ClusterOn {
1585    #[inline]
1586    pub fn cluster_token(&self) -> Option<SyntaxToken> {
1587        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
1588    }
1589    #[inline]
1590    pub fn on_token(&self) -> Option<SyntaxToken> {
1591        support::token(&self.syntax, SyntaxKind::ON_KW)
1592    }
1593}
1594
1595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1596pub struct Collate {
1597    pub(crate) syntax: SyntaxNode,
1598}
1599impl Collate {
1600    #[inline]
1601    pub fn path(&self) -> Option<Path> {
1602        support::child(&self.syntax)
1603    }
1604    #[inline]
1605    pub fn collate_token(&self) -> Option<SyntaxToken> {
1606        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
1607    }
1608}
1609
1610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1611pub struct ColonColon {
1612    pub(crate) syntax: SyntaxNode,
1613}
1614impl ColonColon {
1615    #[inline]
1616    pub fn colon_token(&self) -> Option<SyntaxToken> {
1617        support::token(&self.syntax, SyntaxKind::COLON)
1618    }
1619}
1620
1621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1622pub struct ColonEq {
1623    pub(crate) syntax: SyntaxNode,
1624}
1625impl ColonEq {
1626    #[inline]
1627    pub fn colon_token(&self) -> Option<SyntaxToken> {
1628        support::token(&self.syntax, SyntaxKind::COLON)
1629    }
1630    #[inline]
1631    pub fn eq_token(&self) -> Option<SyntaxToken> {
1632        support::token(&self.syntax, SyntaxKind::EQ)
1633    }
1634}
1635
1636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1637pub struct Column {
1638    pub(crate) syntax: SyntaxNode,
1639}
1640impl Column {
1641    #[inline]
1642    pub fn collate(&self) -> Option<Collate> {
1643        support::child(&self.syntax)
1644    }
1645    #[inline]
1646    pub fn compression_method(&self) -> Option<CompressionMethod> {
1647        support::child(&self.syntax)
1648    }
1649    #[inline]
1650    pub fn constraint(&self) -> Option<ColumnConstraint> {
1651        support::child(&self.syntax)
1652    }
1653    #[inline]
1654    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
1655        support::child(&self.syntax)
1656    }
1657    #[inline]
1658    pub fn enforced(&self) -> Option<Enforced> {
1659        support::child(&self.syntax)
1660    }
1661    #[inline]
1662    pub fn index_expr(&self) -> Option<IndexExpr> {
1663        support::child(&self.syntax)
1664    }
1665    #[inline]
1666    pub fn initially_deferred_constraint_option(
1667        &self,
1668    ) -> Option<InitiallyDeferredConstraintOption> {
1669        support::child(&self.syntax)
1670    }
1671    #[inline]
1672    pub fn initially_immediate_constraint_option(
1673        &self,
1674    ) -> Option<InitiallyImmediateConstraintOption> {
1675        support::child(&self.syntax)
1676    }
1677    #[inline]
1678    pub fn name(&self) -> Option<Name> {
1679        support::child(&self.syntax)
1680    }
1681    #[inline]
1682    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
1683        support::child(&self.syntax)
1684    }
1685    #[inline]
1686    pub fn not_enforced(&self) -> Option<NotEnforced> {
1687        support::child(&self.syntax)
1688    }
1689    #[inline]
1690    pub fn storage(&self) -> Option<Storage> {
1691        support::child(&self.syntax)
1692    }
1693    #[inline]
1694    pub fn ty(&self) -> Option<Type> {
1695        support::child(&self.syntax)
1696    }
1697    #[inline]
1698    pub fn with_options(&self) -> Option<WithOptions> {
1699        support::child(&self.syntax)
1700    }
1701    #[inline]
1702    pub fn period_token(&self) -> Option<SyntaxToken> {
1703        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
1704    }
1705}
1706
1707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1708pub struct ColumnList {
1709    pub(crate) syntax: SyntaxNode,
1710}
1711impl ColumnList {
1712    #[inline]
1713    pub fn columns(&self) -> AstChildren<Column> {
1714        support::children(&self.syntax)
1715    }
1716    #[inline]
1717    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1718        support::token(&self.syntax, SyntaxKind::L_PAREN)
1719    }
1720    #[inline]
1721    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1722        support::token(&self.syntax, SyntaxKind::R_PAREN)
1723    }
1724}
1725
1726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1727pub struct CommentOn {
1728    pub(crate) syntax: SyntaxNode,
1729}
1730impl CommentOn {
1731    #[inline]
1732    pub fn comment_token(&self) -> Option<SyntaxToken> {
1733        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
1734    }
1735    #[inline]
1736    pub fn on_token(&self) -> Option<SyntaxToken> {
1737        support::token(&self.syntax, SyntaxKind::ON_KW)
1738    }
1739}
1740
1741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1742pub struct Commit {
1743    pub(crate) syntax: SyntaxNode,
1744}
1745impl Commit {
1746    #[inline]
1747    pub fn literal(&self) -> Option<Literal> {
1748        support::child(&self.syntax)
1749    }
1750    #[inline]
1751    pub fn and_token(&self) -> Option<SyntaxToken> {
1752        support::token(&self.syntax, SyntaxKind::AND_KW)
1753    }
1754    #[inline]
1755    pub fn chain_token(&self) -> Option<SyntaxToken> {
1756        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
1757    }
1758    #[inline]
1759    pub fn commit_token(&self) -> Option<SyntaxToken> {
1760        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
1761    }
1762    #[inline]
1763    pub fn no_token(&self) -> Option<SyntaxToken> {
1764        support::token(&self.syntax, SyntaxKind::NO_KW)
1765    }
1766    #[inline]
1767    pub fn prepared_token(&self) -> Option<SyntaxToken> {
1768        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
1769    }
1770    #[inline]
1771    pub fn transaction_token(&self) -> Option<SyntaxToken> {
1772        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
1773    }
1774    #[inline]
1775    pub fn work_token(&self) -> Option<SyntaxToken> {
1776        support::token(&self.syntax, SyntaxKind::WORK_KW)
1777    }
1778}
1779
1780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1781pub struct CompoundSelect {
1782    pub(crate) syntax: SyntaxNode,
1783}
1784impl CompoundSelect {
1785    #[inline]
1786    pub fn select(&self) -> Option<Select> {
1787        support::child(&self.syntax)
1788    }
1789}
1790
1791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1792pub struct CompressionMethod {
1793    pub(crate) syntax: SyntaxNode,
1794}
1795impl CompressionMethod {
1796    #[inline]
1797    pub fn compression_token(&self) -> Option<SyntaxToken> {
1798        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
1799    }
1800    #[inline]
1801    pub fn default_token(&self) -> Option<SyntaxToken> {
1802        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
1803    }
1804    #[inline]
1805    pub fn ident_token(&self) -> Option<SyntaxToken> {
1806        support::token(&self.syntax, SyntaxKind::IDENT)
1807    }
1808}
1809
1810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1811pub struct ConstraintExclusion {
1812    pub(crate) syntax: SyntaxNode,
1813}
1814impl ConstraintExclusion {
1815    #[inline]
1816    pub fn with_token(&self) -> Option<SyntaxToken> {
1817        support::token(&self.syntax, SyntaxKind::WITH_KW)
1818    }
1819}
1820
1821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1822pub struct ConstraintExclusionList {
1823    pub(crate) syntax: SyntaxNode,
1824}
1825impl ConstraintExclusionList {
1826    #[inline]
1827    pub fn exclude_token(&self) -> Option<SyntaxToken> {
1828        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
1829    }
1830}
1831
1832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1833pub struct ConstraintIncludeClause {
1834    pub(crate) syntax: SyntaxNode,
1835}
1836impl ConstraintIncludeClause {
1837    #[inline]
1838    pub fn include_token(&self) -> Option<SyntaxToken> {
1839        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
1840    }
1841}
1842
1843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1844pub struct ConstraintIndexMethod {
1845    pub(crate) syntax: SyntaxNode,
1846}
1847impl ConstraintIndexMethod {
1848    #[inline]
1849    pub fn using_token(&self) -> Option<SyntaxToken> {
1850        support::token(&self.syntax, SyntaxKind::USING_KW)
1851    }
1852}
1853
1854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1855pub struct ConstraintIndexTablespace {
1856    pub(crate) syntax: SyntaxNode,
1857}
1858impl ConstraintIndexTablespace {
1859    #[inline]
1860    pub fn name_ref(&self) -> Option<NameRef> {
1861        support::child(&self.syntax)
1862    }
1863    #[inline]
1864    pub fn index_token(&self) -> Option<SyntaxToken> {
1865        support::token(&self.syntax, SyntaxKind::INDEX_KW)
1866    }
1867    #[inline]
1868    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1869        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1870    }
1871    #[inline]
1872    pub fn using_token(&self) -> Option<SyntaxToken> {
1873        support::token(&self.syntax, SyntaxKind::USING_KW)
1874    }
1875}
1876
1877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1878pub struct ConstraintWhereClause {
1879    pub(crate) syntax: SyntaxNode,
1880}
1881impl ConstraintWhereClause {
1882    #[inline]
1883    pub fn where_token(&self) -> Option<SyntaxToken> {
1884        support::token(&self.syntax, SyntaxKind::WHERE_KW)
1885    }
1886}
1887
1888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1889pub struct Copy {
1890    pub(crate) syntax: SyntaxNode,
1891}
1892impl Copy {
1893    #[inline]
1894    pub fn copy_token(&self) -> Option<SyntaxToken> {
1895        support::token(&self.syntax, SyntaxKind::COPY_KW)
1896    }
1897}
1898
1899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1900pub struct CostFuncOption {
1901    pub(crate) syntax: SyntaxNode,
1902}
1903impl CostFuncOption {
1904    #[inline]
1905    pub fn cost_token(&self) -> Option<SyntaxToken> {
1906        support::token(&self.syntax, SyntaxKind::COST_KW)
1907    }
1908}
1909
1910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1911pub struct CreateAccessMethod {
1912    pub(crate) syntax: SyntaxNode,
1913}
1914impl CreateAccessMethod {
1915    #[inline]
1916    pub fn name_ref(&self) -> Option<NameRef> {
1917        support::child(&self.syntax)
1918    }
1919    #[inline]
1920    pub fn access_token(&self) -> Option<SyntaxToken> {
1921        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
1922    }
1923    #[inline]
1924    pub fn create_token(&self) -> Option<SyntaxToken> {
1925        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1926    }
1927    #[inline]
1928    pub fn method_token(&self) -> Option<SyntaxToken> {
1929        support::token(&self.syntax, SyntaxKind::METHOD_KW)
1930    }
1931    #[inline]
1932    pub fn type_token(&self) -> Option<SyntaxToken> {
1933        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1934    }
1935}
1936
1937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1938pub struct CreateAggregate {
1939    pub(crate) syntax: SyntaxNode,
1940}
1941impl CreateAggregate {
1942    #[inline]
1943    pub fn or_replace(&self) -> Option<OrReplace> {
1944        support::child(&self.syntax)
1945    }
1946    #[inline]
1947    pub fn param_list(&self) -> Option<ParamList> {
1948        support::child(&self.syntax)
1949    }
1950    #[inline]
1951    pub fn path(&self) -> Option<Path> {
1952        support::child(&self.syntax)
1953    }
1954    #[inline]
1955    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
1956        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
1957    }
1958    #[inline]
1959    pub fn create_token(&self) -> Option<SyntaxToken> {
1960        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1961    }
1962}
1963
1964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1965pub struct CreateCast {
1966    pub(crate) syntax: SyntaxNode,
1967}
1968impl CreateCast {
1969    #[inline]
1970    pub fn ty(&self) -> Option<Type> {
1971        support::child(&self.syntax)
1972    }
1973    #[inline]
1974    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1975        support::token(&self.syntax, SyntaxKind::L_PAREN)
1976    }
1977    #[inline]
1978    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1979        support::token(&self.syntax, SyntaxKind::R_PAREN)
1980    }
1981    #[inline]
1982    pub fn as_token(&self) -> Option<SyntaxToken> {
1983        support::token(&self.syntax, SyntaxKind::AS_KW)
1984    }
1985    #[inline]
1986    pub fn cast_token(&self) -> Option<SyntaxToken> {
1987        support::token(&self.syntax, SyntaxKind::CAST_KW)
1988    }
1989    #[inline]
1990    pub fn create_token(&self) -> Option<SyntaxToken> {
1991        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1992    }
1993}
1994
1995#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1996pub struct CreateCollation {
1997    pub(crate) syntax: SyntaxNode,
1998}
1999impl CreateCollation {
2000    #[inline]
2001    pub fn name_ref(&self) -> Option<NameRef> {
2002        support::child(&self.syntax)
2003    }
2004    #[inline]
2005    pub fn collation_token(&self) -> Option<SyntaxToken> {
2006        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2007    }
2008    #[inline]
2009    pub fn create_token(&self) -> Option<SyntaxToken> {
2010        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2011    }
2012}
2013
2014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2015pub struct CreateConversion {
2016    pub(crate) syntax: SyntaxNode,
2017}
2018impl CreateConversion {
2019    #[inline]
2020    pub fn name_ref(&self) -> Option<NameRef> {
2021        support::child(&self.syntax)
2022    }
2023    #[inline]
2024    pub fn conversion_token(&self) -> Option<SyntaxToken> {
2025        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
2026    }
2027    #[inline]
2028    pub fn create_token(&self) -> Option<SyntaxToken> {
2029        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2030    }
2031    #[inline]
2032    pub fn for_token(&self) -> Option<SyntaxToken> {
2033        support::token(&self.syntax, SyntaxKind::FOR_KW)
2034    }
2035}
2036
2037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2038pub struct CreateDatabase {
2039    pub(crate) syntax: SyntaxNode,
2040}
2041impl CreateDatabase {
2042    #[inline]
2043    pub fn name_ref(&self) -> Option<NameRef> {
2044        support::child(&self.syntax)
2045    }
2046    #[inline]
2047    pub fn create_token(&self) -> Option<SyntaxToken> {
2048        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2049    }
2050    #[inline]
2051    pub fn database_token(&self) -> Option<SyntaxToken> {
2052        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
2053    }
2054}
2055
2056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2057pub struct CreateDomain {
2058    pub(crate) syntax: SyntaxNode,
2059}
2060impl CreateDomain {
2061    #[inline]
2062    pub fn collate(&self) -> Option<Collate> {
2063        support::child(&self.syntax)
2064    }
2065    #[inline]
2066    pub fn constraints(&self) -> AstChildren<Constraint> {
2067        support::children(&self.syntax)
2068    }
2069    #[inline]
2070    pub fn name_ref(&self) -> Option<NameRef> {
2071        support::child(&self.syntax)
2072    }
2073    #[inline]
2074    pub fn ty(&self) -> Option<Type> {
2075        support::child(&self.syntax)
2076    }
2077    #[inline]
2078    pub fn as_token(&self) -> Option<SyntaxToken> {
2079        support::token(&self.syntax, SyntaxKind::AS_KW)
2080    }
2081    #[inline]
2082    pub fn create_token(&self) -> Option<SyntaxToken> {
2083        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2084    }
2085    #[inline]
2086    pub fn domain_token(&self) -> Option<SyntaxToken> {
2087        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2088    }
2089}
2090
2091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2092pub struct CreateEventTrigger {
2093    pub(crate) syntax: SyntaxNode,
2094}
2095impl CreateEventTrigger {
2096    #[inline]
2097    pub fn name_ref(&self) -> Option<NameRef> {
2098        support::child(&self.syntax)
2099    }
2100    #[inline]
2101    pub fn create_token(&self) -> Option<SyntaxToken> {
2102        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2103    }
2104    #[inline]
2105    pub fn event_token(&self) -> Option<SyntaxToken> {
2106        support::token(&self.syntax, SyntaxKind::EVENT_KW)
2107    }
2108    #[inline]
2109    pub fn on_token(&self) -> Option<SyntaxToken> {
2110        support::token(&self.syntax, SyntaxKind::ON_KW)
2111    }
2112    #[inline]
2113    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2114        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2115    }
2116}
2117
2118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2119pub struct CreateExtension {
2120    pub(crate) syntax: SyntaxNode,
2121}
2122impl CreateExtension {
2123    #[inline]
2124    pub fn create_token(&self) -> Option<SyntaxToken> {
2125        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2126    }
2127    #[inline]
2128    pub fn extension_token(&self) -> Option<SyntaxToken> {
2129        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
2130    }
2131}
2132
2133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2134pub struct CreateForeignDataWrapper {
2135    pub(crate) syntax: SyntaxNode,
2136}
2137impl CreateForeignDataWrapper {
2138    #[inline]
2139    pub fn name_ref(&self) -> Option<NameRef> {
2140        support::child(&self.syntax)
2141    }
2142    #[inline]
2143    pub fn create_token(&self) -> Option<SyntaxToken> {
2144        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2145    }
2146    #[inline]
2147    pub fn data_token(&self) -> Option<SyntaxToken> {
2148        support::token(&self.syntax, SyntaxKind::DATA_KW)
2149    }
2150    #[inline]
2151    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2152        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2153    }
2154    #[inline]
2155    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
2156        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
2157    }
2158}
2159
2160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2161pub struct CreateForeignTable {
2162    pub(crate) syntax: SyntaxNode,
2163}
2164impl CreateForeignTable {
2165    #[inline]
2166    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2167        support::child(&self.syntax)
2168    }
2169    #[inline]
2170    pub fn create_token(&self) -> Option<SyntaxToken> {
2171        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2172    }
2173    #[inline]
2174    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2175        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2176    }
2177    #[inline]
2178    pub fn table_token(&self) -> Option<SyntaxToken> {
2179        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2180    }
2181}
2182
2183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2184pub struct CreateFunction {
2185    pub(crate) syntax: SyntaxNode,
2186}
2187impl CreateFunction {
2188    #[inline]
2189    pub fn option_list(&self) -> Option<FuncOptionList> {
2190        support::child(&self.syntax)
2191    }
2192    #[inline]
2193    pub fn or_replace(&self) -> Option<OrReplace> {
2194        support::child(&self.syntax)
2195    }
2196    #[inline]
2197    pub fn param_list(&self) -> Option<ParamList> {
2198        support::child(&self.syntax)
2199    }
2200    #[inline]
2201    pub fn path(&self) -> Option<Path> {
2202        support::child(&self.syntax)
2203    }
2204    #[inline]
2205    pub fn ret_type(&self) -> Option<RetType> {
2206        support::child(&self.syntax)
2207    }
2208    #[inline]
2209    pub fn create_token(&self) -> Option<SyntaxToken> {
2210        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2211    }
2212    #[inline]
2213    pub fn function_token(&self) -> Option<SyntaxToken> {
2214        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
2215    }
2216}
2217
2218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2219pub struct CreateGroup {
2220    pub(crate) syntax: SyntaxNode,
2221}
2222impl CreateGroup {
2223    #[inline]
2224    pub fn name_ref(&self) -> Option<NameRef> {
2225        support::child(&self.syntax)
2226    }
2227    #[inline]
2228    pub fn create_token(&self) -> Option<SyntaxToken> {
2229        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2230    }
2231    #[inline]
2232    pub fn group_token(&self) -> Option<SyntaxToken> {
2233        support::token(&self.syntax, SyntaxKind::GROUP_KW)
2234    }
2235}
2236
2237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2238pub struct CreateIndex {
2239    pub(crate) syntax: SyntaxNode,
2240}
2241impl CreateIndex {
2242    #[inline]
2243    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2244        support::child(&self.syntax)
2245    }
2246    #[inline]
2247    pub fn name(&self) -> Option<Name> {
2248        support::child(&self.syntax)
2249    }
2250    #[inline]
2251    pub fn relation_name(&self) -> Option<RelationName> {
2252        support::child(&self.syntax)
2253    }
2254    #[inline]
2255    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
2256        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
2257    }
2258    #[inline]
2259    pub fn create_token(&self) -> Option<SyntaxToken> {
2260        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2261    }
2262    #[inline]
2263    pub fn index_token(&self) -> Option<SyntaxToken> {
2264        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2265    }
2266    #[inline]
2267    pub fn on_token(&self) -> Option<SyntaxToken> {
2268        support::token(&self.syntax, SyntaxKind::ON_KW)
2269    }
2270    #[inline]
2271    pub fn unique_token(&self) -> Option<SyntaxToken> {
2272        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
2273    }
2274}
2275
2276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2277pub struct CreateLanguage {
2278    pub(crate) syntax: SyntaxNode,
2279}
2280impl CreateLanguage {
2281    #[inline]
2282    pub fn name_ref(&self) -> Option<NameRef> {
2283        support::child(&self.syntax)
2284    }
2285    #[inline]
2286    pub fn create_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2288    }
2289    #[inline]
2290    pub fn language_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2292    }
2293}
2294
2295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2296pub struct CreateMaterializedView {
2297    pub(crate) syntax: SyntaxNode,
2298}
2299impl CreateMaterializedView {
2300    #[inline]
2301    pub fn create_token(&self) -> Option<SyntaxToken> {
2302        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2303    }
2304}
2305
2306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2307pub struct CreateOperator {
2308    pub(crate) syntax: SyntaxNode,
2309}
2310impl CreateOperator {
2311    #[inline]
2312    pub fn create_token(&self) -> Option<SyntaxToken> {
2313        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2314    }
2315    #[inline]
2316    pub fn operator_token(&self) -> Option<SyntaxToken> {
2317        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2318    }
2319}
2320
2321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2322pub struct CreateOperatorClass {
2323    pub(crate) syntax: SyntaxNode,
2324}
2325impl CreateOperatorClass {
2326    #[inline]
2327    pub fn name_ref(&self) -> Option<NameRef> {
2328        support::child(&self.syntax)
2329    }
2330    #[inline]
2331    pub fn ty(&self) -> Option<Type> {
2332        support::child(&self.syntax)
2333    }
2334    #[inline]
2335    pub fn class_token(&self) -> Option<SyntaxToken> {
2336        support::token(&self.syntax, SyntaxKind::CLASS_KW)
2337    }
2338    #[inline]
2339    pub fn create_token(&self) -> Option<SyntaxToken> {
2340        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2341    }
2342    #[inline]
2343    pub fn default_token(&self) -> Option<SyntaxToken> {
2344        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2345    }
2346    #[inline]
2347    pub fn for_token(&self) -> Option<SyntaxToken> {
2348        support::token(&self.syntax, SyntaxKind::FOR_KW)
2349    }
2350    #[inline]
2351    pub fn operator_token(&self) -> Option<SyntaxToken> {
2352        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2353    }
2354    #[inline]
2355    pub fn type_token(&self) -> Option<SyntaxToken> {
2356        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2357    }
2358    #[inline]
2359    pub fn using_token(&self) -> Option<SyntaxToken> {
2360        support::token(&self.syntax, SyntaxKind::USING_KW)
2361    }
2362}
2363
2364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2365pub struct CreateOperatorFamily {
2366    pub(crate) syntax: SyntaxNode,
2367}
2368impl CreateOperatorFamily {
2369    #[inline]
2370    pub fn name_ref(&self) -> Option<NameRef> {
2371        support::child(&self.syntax)
2372    }
2373    #[inline]
2374    pub fn create_token(&self) -> Option<SyntaxToken> {
2375        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2376    }
2377    #[inline]
2378    pub fn family_token(&self) -> Option<SyntaxToken> {
2379        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
2380    }
2381    #[inline]
2382    pub fn operator_token(&self) -> Option<SyntaxToken> {
2383        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2384    }
2385    #[inline]
2386    pub fn using_token(&self) -> Option<SyntaxToken> {
2387        support::token(&self.syntax, SyntaxKind::USING_KW)
2388    }
2389}
2390
2391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2392pub struct CreatePolicy {
2393    pub(crate) syntax: SyntaxNode,
2394}
2395impl CreatePolicy {
2396    #[inline]
2397    pub fn name_ref(&self) -> Option<NameRef> {
2398        support::child(&self.syntax)
2399    }
2400    #[inline]
2401    pub fn create_token(&self) -> Option<SyntaxToken> {
2402        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2403    }
2404    #[inline]
2405    pub fn on_token(&self) -> Option<SyntaxToken> {
2406        support::token(&self.syntax, SyntaxKind::ON_KW)
2407    }
2408    #[inline]
2409    pub fn policy_token(&self) -> Option<SyntaxToken> {
2410        support::token(&self.syntax, SyntaxKind::POLICY_KW)
2411    }
2412}
2413
2414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2415pub struct CreateProcedure {
2416    pub(crate) syntax: SyntaxNode,
2417}
2418impl CreateProcedure {
2419    #[inline]
2420    pub fn create_token(&self) -> Option<SyntaxToken> {
2421        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2422    }
2423    #[inline]
2424    pub fn procedure_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
2426    }
2427}
2428
2429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2430pub struct CreatePublication {
2431    pub(crate) syntax: SyntaxNode,
2432}
2433impl CreatePublication {
2434    #[inline]
2435    pub fn name_ref(&self) -> Option<NameRef> {
2436        support::child(&self.syntax)
2437    }
2438    #[inline]
2439    pub fn create_token(&self) -> Option<SyntaxToken> {
2440        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2441    }
2442    #[inline]
2443    pub fn publication_token(&self) -> Option<SyntaxToken> {
2444        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
2445    }
2446}
2447
2448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2449pub struct CreateRole {
2450    pub(crate) syntax: SyntaxNode,
2451}
2452impl CreateRole {
2453    #[inline]
2454    pub fn name_ref(&self) -> Option<NameRef> {
2455        support::child(&self.syntax)
2456    }
2457    #[inline]
2458    pub fn create_token(&self) -> Option<SyntaxToken> {
2459        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2460    }
2461    #[inline]
2462    pub fn role_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::ROLE_KW)
2464    }
2465}
2466
2467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2468pub struct CreateRule {
2469    pub(crate) syntax: SyntaxNode,
2470}
2471impl CreateRule {
2472    #[inline]
2473    pub fn name_ref(&self) -> Option<NameRef> {
2474        support::child(&self.syntax)
2475    }
2476    #[inline]
2477    pub fn as_token(&self) -> Option<SyntaxToken> {
2478        support::token(&self.syntax, SyntaxKind::AS_KW)
2479    }
2480    #[inline]
2481    pub fn create_token(&self) -> Option<SyntaxToken> {
2482        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2483    }
2484    #[inline]
2485    pub fn on_token(&self) -> Option<SyntaxToken> {
2486        support::token(&self.syntax, SyntaxKind::ON_KW)
2487    }
2488    #[inline]
2489    pub fn rule_token(&self) -> Option<SyntaxToken> {
2490        support::token(&self.syntax, SyntaxKind::RULE_KW)
2491    }
2492}
2493
2494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2495pub struct CreateSchema {
2496    pub(crate) syntax: SyntaxNode,
2497}
2498impl CreateSchema {
2499    #[inline]
2500    pub fn create_token(&self) -> Option<SyntaxToken> {
2501        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2502    }
2503    #[inline]
2504    pub fn schema_token(&self) -> Option<SyntaxToken> {
2505        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
2506    }
2507}
2508
2509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2510pub struct CreateSequence {
2511    pub(crate) syntax: SyntaxNode,
2512}
2513impl CreateSequence {
2514    #[inline]
2515    pub fn name_ref(&self) -> Option<NameRef> {
2516        support::child(&self.syntax)
2517    }
2518    #[inline]
2519    pub fn create_token(&self) -> Option<SyntaxToken> {
2520        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2521    }
2522    #[inline]
2523    pub fn sequence_token(&self) -> Option<SyntaxToken> {
2524        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
2525    }
2526}
2527
2528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2529pub struct CreateServer {
2530    pub(crate) syntax: SyntaxNode,
2531}
2532impl CreateServer {
2533    #[inline]
2534    pub fn name_ref(&self) -> Option<NameRef> {
2535        support::child(&self.syntax)
2536    }
2537    #[inline]
2538    pub fn create_token(&self) -> Option<SyntaxToken> {
2539        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2540    }
2541    #[inline]
2542    pub fn server_token(&self) -> Option<SyntaxToken> {
2543        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2544    }
2545}
2546
2547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2548pub struct CreateStatistics {
2549    pub(crate) syntax: SyntaxNode,
2550}
2551impl CreateStatistics {
2552    #[inline]
2553    pub fn name_ref(&self) -> Option<NameRef> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn create_token(&self) -> Option<SyntaxToken> {
2558        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2559    }
2560    #[inline]
2561    pub fn statistics_token(&self) -> Option<SyntaxToken> {
2562        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2563    }
2564}
2565
2566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2567pub struct CreateSubscription {
2568    pub(crate) syntax: SyntaxNode,
2569}
2570impl CreateSubscription {
2571    #[inline]
2572    pub fn name_ref(&self) -> Option<NameRef> {
2573        support::child(&self.syntax)
2574    }
2575    #[inline]
2576    pub fn create_token(&self) -> Option<SyntaxToken> {
2577        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2578    }
2579    #[inline]
2580    pub fn subscription_token(&self) -> Option<SyntaxToken> {
2581        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
2582    }
2583}
2584
2585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2586pub struct CreateTable {
2587    pub(crate) syntax: SyntaxNode,
2588}
2589impl CreateTable {
2590    #[inline]
2591    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2592        support::child(&self.syntax)
2593    }
2594    #[inline]
2595    pub fn inherits(&self) -> Option<Inherits> {
2596        support::child(&self.syntax)
2597    }
2598    #[inline]
2599    pub fn of_type(&self) -> Option<OfType> {
2600        support::child(&self.syntax)
2601    }
2602    #[inline]
2603    pub fn on_commit(&self) -> Option<OnCommit> {
2604        support::child(&self.syntax)
2605    }
2606    #[inline]
2607    pub fn partition_by(&self) -> Option<PartitionBy> {
2608        support::child(&self.syntax)
2609    }
2610    #[inline]
2611    pub fn partition_of(&self) -> Option<PartitionOf> {
2612        support::child(&self.syntax)
2613    }
2614    #[inline]
2615    pub fn path(&self) -> Option<Path> {
2616        support::child(&self.syntax)
2617    }
2618    #[inline]
2619    pub fn table_arg_list(&self) -> Option<TableArgList> {
2620        support::child(&self.syntax)
2621    }
2622    #[inline]
2623    pub fn tablespace(&self) -> Option<Tablespace> {
2624        support::child(&self.syntax)
2625    }
2626    #[inline]
2627    pub fn using_method(&self) -> Option<UsingMethod> {
2628        support::child(&self.syntax)
2629    }
2630    #[inline]
2631    pub fn with_params(&self) -> Option<WithParams> {
2632        support::child(&self.syntax)
2633    }
2634    #[inline]
2635    pub fn without_oids(&self) -> Option<WithoutOids> {
2636        support::child(&self.syntax)
2637    }
2638    #[inline]
2639    pub fn create_token(&self) -> Option<SyntaxToken> {
2640        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2641    }
2642    #[inline]
2643    pub fn table_token(&self) -> Option<SyntaxToken> {
2644        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2645    }
2646}
2647
2648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2649pub struct CreateTableAs {
2650    pub(crate) syntax: SyntaxNode,
2651}
2652impl CreateTableAs {
2653    #[inline]
2654    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2655        support::child(&self.syntax)
2656    }
2657    #[inline]
2658    pub fn on_commit(&self) -> Option<OnCommit> {
2659        support::child(&self.syntax)
2660    }
2661    #[inline]
2662    pub fn path(&self) -> Option<Path> {
2663        support::child(&self.syntax)
2664    }
2665    #[inline]
2666    pub fn stmt(&self) -> Option<Stmt> {
2667        support::child(&self.syntax)
2668    }
2669    #[inline]
2670    pub fn tablespace(&self) -> Option<Tablespace> {
2671        support::child(&self.syntax)
2672    }
2673    #[inline]
2674    pub fn using_method(&self) -> Option<UsingMethod> {
2675        support::child(&self.syntax)
2676    }
2677    #[inline]
2678    pub fn with_data(&self) -> Option<WithData> {
2679        support::child(&self.syntax)
2680    }
2681    #[inline]
2682    pub fn with_no_data(&self) -> Option<WithNoData> {
2683        support::child(&self.syntax)
2684    }
2685    #[inline]
2686    pub fn with_params(&self) -> Option<WithParams> {
2687        support::child(&self.syntax)
2688    }
2689    #[inline]
2690    pub fn as_token(&self) -> Option<SyntaxToken> {
2691        support::token(&self.syntax, SyntaxKind::AS_KW)
2692    }
2693    #[inline]
2694    pub fn create_token(&self) -> Option<SyntaxToken> {
2695        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2696    }
2697    #[inline]
2698    pub fn table_token(&self) -> Option<SyntaxToken> {
2699        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2700    }
2701}
2702
2703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2704pub struct CreateTablespace {
2705    pub(crate) syntax: SyntaxNode,
2706}
2707impl CreateTablespace {
2708    #[inline]
2709    pub fn name_ref(&self) -> Option<NameRef> {
2710        support::child(&self.syntax)
2711    }
2712    #[inline]
2713    pub fn create_token(&self) -> Option<SyntaxToken> {
2714        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2715    }
2716    #[inline]
2717    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2718        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2719    }
2720}
2721
2722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2723pub struct CreateTextSearchConfiguration {
2724    pub(crate) syntax: SyntaxNode,
2725}
2726impl CreateTextSearchConfiguration {
2727    #[inline]
2728    pub fn attribute_list(&self) -> Option<AttributeList> {
2729        support::child(&self.syntax)
2730    }
2731    #[inline]
2732    pub fn name_ref(&self) -> Option<NameRef> {
2733        support::child(&self.syntax)
2734    }
2735    #[inline]
2736    pub fn configuration_token(&self) -> Option<SyntaxToken> {
2737        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
2738    }
2739    #[inline]
2740    pub fn create_token(&self) -> Option<SyntaxToken> {
2741        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2742    }
2743    #[inline]
2744    pub fn search_token(&self) -> Option<SyntaxToken> {
2745        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2746    }
2747    #[inline]
2748    pub fn text_token(&self) -> Option<SyntaxToken> {
2749        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2750    }
2751}
2752
2753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2754pub struct CreateTextSearchDictionary {
2755    pub(crate) syntax: SyntaxNode,
2756}
2757impl CreateTextSearchDictionary {
2758    #[inline]
2759    pub fn name_ref(&self) -> Option<NameRef> {
2760        support::child(&self.syntax)
2761    }
2762    #[inline]
2763    pub fn create_token(&self) -> Option<SyntaxToken> {
2764        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2765    }
2766    #[inline]
2767    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
2768        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
2769    }
2770    #[inline]
2771    pub fn search_token(&self) -> Option<SyntaxToken> {
2772        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2773    }
2774    #[inline]
2775    pub fn text_token(&self) -> Option<SyntaxToken> {
2776        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2777    }
2778}
2779
2780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2781pub struct CreateTextSearchParser {
2782    pub(crate) syntax: SyntaxNode,
2783}
2784impl CreateTextSearchParser {
2785    #[inline]
2786    pub fn name_ref(&self) -> Option<NameRef> {
2787        support::child(&self.syntax)
2788    }
2789    #[inline]
2790    pub fn create_token(&self) -> Option<SyntaxToken> {
2791        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2792    }
2793    #[inline]
2794    pub fn parser_token(&self) -> Option<SyntaxToken> {
2795        support::token(&self.syntax, SyntaxKind::PARSER_KW)
2796    }
2797    #[inline]
2798    pub fn search_token(&self) -> Option<SyntaxToken> {
2799        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2800    }
2801    #[inline]
2802    pub fn text_token(&self) -> Option<SyntaxToken> {
2803        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2804    }
2805}
2806
2807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2808pub struct CreateTextSearchTemplate {
2809    pub(crate) syntax: SyntaxNode,
2810}
2811impl CreateTextSearchTemplate {
2812    #[inline]
2813    pub fn name_ref(&self) -> Option<NameRef> {
2814        support::child(&self.syntax)
2815    }
2816    #[inline]
2817    pub fn create_token(&self) -> Option<SyntaxToken> {
2818        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2819    }
2820    #[inline]
2821    pub fn search_token(&self) -> Option<SyntaxToken> {
2822        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2823    }
2824    #[inline]
2825    pub fn template_token(&self) -> Option<SyntaxToken> {
2826        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
2827    }
2828    #[inline]
2829    pub fn text_token(&self) -> Option<SyntaxToken> {
2830        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2831    }
2832}
2833
2834#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2835pub struct CreateTransform {
2836    pub(crate) syntax: SyntaxNode,
2837}
2838impl CreateTransform {
2839    #[inline]
2840    pub fn name_ref(&self) -> Option<NameRef> {
2841        support::child(&self.syntax)
2842    }
2843    #[inline]
2844    pub fn ty(&self) -> Option<Type> {
2845        support::child(&self.syntax)
2846    }
2847    #[inline]
2848    pub fn create_token(&self) -> Option<SyntaxToken> {
2849        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2850    }
2851    #[inline]
2852    pub fn for_token(&self) -> Option<SyntaxToken> {
2853        support::token(&self.syntax, SyntaxKind::FOR_KW)
2854    }
2855    #[inline]
2856    pub fn language_token(&self) -> Option<SyntaxToken> {
2857        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2858    }
2859    #[inline]
2860    pub fn transform_token(&self) -> Option<SyntaxToken> {
2861        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
2862    }
2863}
2864
2865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2866pub struct CreateTrigger {
2867    pub(crate) syntax: SyntaxNode,
2868}
2869impl CreateTrigger {
2870    #[inline]
2871    pub fn create_token(&self) -> Option<SyntaxToken> {
2872        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2873    }
2874}
2875
2876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2877pub struct CreateType {
2878    pub(crate) syntax: SyntaxNode,
2879}
2880impl CreateType {
2881    #[inline]
2882    pub fn ty(&self) -> Option<Type> {
2883        support::child(&self.syntax)
2884    }
2885    #[inline]
2886    pub fn variant_list(&self) -> Option<VariantList> {
2887        support::child(&self.syntax)
2888    }
2889    #[inline]
2890    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2891        support::token(&self.syntax, SyntaxKind::L_PAREN)
2892    }
2893    #[inline]
2894    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2895        support::token(&self.syntax, SyntaxKind::R_PAREN)
2896    }
2897    #[inline]
2898    pub fn as_token(&self) -> Option<SyntaxToken> {
2899        support::token(&self.syntax, SyntaxKind::AS_KW)
2900    }
2901    #[inline]
2902    pub fn create_token(&self) -> Option<SyntaxToken> {
2903        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2904    }
2905    #[inline]
2906    pub fn enum_token(&self) -> Option<SyntaxToken> {
2907        support::token(&self.syntax, SyntaxKind::ENUM_KW)
2908    }
2909    #[inline]
2910    pub fn range_token(&self) -> Option<SyntaxToken> {
2911        support::token(&self.syntax, SyntaxKind::RANGE_KW)
2912    }
2913    #[inline]
2914    pub fn type_token(&self) -> Option<SyntaxToken> {
2915        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2916    }
2917}
2918
2919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2920pub struct CreateUser {
2921    pub(crate) syntax: SyntaxNode,
2922}
2923impl CreateUser {
2924    #[inline]
2925    pub fn name_ref(&self) -> Option<NameRef> {
2926        support::child(&self.syntax)
2927    }
2928    #[inline]
2929    pub fn create_token(&self) -> Option<SyntaxToken> {
2930        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2931    }
2932    #[inline]
2933    pub fn user_token(&self) -> Option<SyntaxToken> {
2934        support::token(&self.syntax, SyntaxKind::USER_KW)
2935    }
2936}
2937
2938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2939pub struct CreateUserMapping {
2940    pub(crate) syntax: SyntaxNode,
2941}
2942impl CreateUserMapping {
2943    #[inline]
2944    pub fn name_ref(&self) -> Option<NameRef> {
2945        support::child(&self.syntax)
2946    }
2947    #[inline]
2948    pub fn create_token(&self) -> Option<SyntaxToken> {
2949        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2950    }
2951    #[inline]
2952    pub fn for_token(&self) -> Option<SyntaxToken> {
2953        support::token(&self.syntax, SyntaxKind::FOR_KW)
2954    }
2955    #[inline]
2956    pub fn mapping_token(&self) -> Option<SyntaxToken> {
2957        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
2958    }
2959    #[inline]
2960    pub fn server_token(&self) -> Option<SyntaxToken> {
2961        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2962    }
2963    #[inline]
2964    pub fn user_token(&self) -> Option<SyntaxToken> {
2965        support::token(&self.syntax, SyntaxKind::USER_KW)
2966    }
2967}
2968
2969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2970pub struct CreateView {
2971    pub(crate) syntax: SyntaxNode,
2972}
2973impl CreateView {
2974    #[inline]
2975    pub fn name_ref(&self) -> Option<NameRef> {
2976        support::child(&self.syntax)
2977    }
2978    #[inline]
2979    pub fn create_token(&self) -> Option<SyntaxToken> {
2980        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2981    }
2982    #[inline]
2983    pub fn view_token(&self) -> Option<SyntaxToken> {
2984        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2985    }
2986}
2987
2988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2989pub struct CustomOp {
2990    pub(crate) syntax: SyntaxNode,
2991}
2992impl CustomOp {
2993    #[inline]
2994    pub fn bang_token(&self) -> Option<SyntaxToken> {
2995        support::token(&self.syntax, SyntaxKind::BANG)
2996    }
2997    #[inline]
2998    pub fn pound_token(&self) -> Option<SyntaxToken> {
2999        support::token(&self.syntax, SyntaxKind::POUND)
3000    }
3001    #[inline]
3002    pub fn percent_token(&self) -> Option<SyntaxToken> {
3003        support::token(&self.syntax, SyntaxKind::PERCENT)
3004    }
3005    #[inline]
3006    pub fn amp_token(&self) -> Option<SyntaxToken> {
3007        support::token(&self.syntax, SyntaxKind::AMP)
3008    }
3009    #[inline]
3010    pub fn star_token(&self) -> Option<SyntaxToken> {
3011        support::token(&self.syntax, SyntaxKind::STAR)
3012    }
3013    #[inline]
3014    pub fn plus_token(&self) -> Option<SyntaxToken> {
3015        support::token(&self.syntax, SyntaxKind::PLUS)
3016    }
3017    #[inline]
3018    pub fn minus_token(&self) -> Option<SyntaxToken> {
3019        support::token(&self.syntax, SyntaxKind::MINUS)
3020    }
3021    #[inline]
3022    pub fn slash_token(&self) -> Option<SyntaxToken> {
3023        support::token(&self.syntax, SyntaxKind::SLASH)
3024    }
3025    #[inline]
3026    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
3027        support::token(&self.syntax, SyntaxKind::L_ANGLE)
3028    }
3029    #[inline]
3030    pub fn eq_token(&self) -> Option<SyntaxToken> {
3031        support::token(&self.syntax, SyntaxKind::EQ)
3032    }
3033    #[inline]
3034    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
3035        support::token(&self.syntax, SyntaxKind::R_ANGLE)
3036    }
3037    #[inline]
3038    pub fn question_token(&self) -> Option<SyntaxToken> {
3039        support::token(&self.syntax, SyntaxKind::QUESTION)
3040    }
3041    #[inline]
3042    pub fn at_token(&self) -> Option<SyntaxToken> {
3043        support::token(&self.syntax, SyntaxKind::AT)
3044    }
3045    #[inline]
3046    pub fn caret_token(&self) -> Option<SyntaxToken> {
3047        support::token(&self.syntax, SyntaxKind::CARET)
3048    }
3049    #[inline]
3050    pub fn backtick_token(&self) -> Option<SyntaxToken> {
3051        support::token(&self.syntax, SyntaxKind::BACKTICK)
3052    }
3053    #[inline]
3054    pub fn pipe_token(&self) -> Option<SyntaxToken> {
3055        support::token(&self.syntax, SyntaxKind::PIPE)
3056    }
3057    #[inline]
3058    pub fn tilde_token(&self) -> Option<SyntaxToken> {
3059        support::token(&self.syntax, SyntaxKind::TILDE)
3060    }
3061}
3062
3063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3064pub struct Deallocate {
3065    pub(crate) syntax: SyntaxNode,
3066}
3067impl Deallocate {
3068    #[inline]
3069    pub fn name_ref(&self) -> Option<NameRef> {
3070        support::child(&self.syntax)
3071    }
3072    #[inline]
3073    pub fn all_token(&self) -> Option<SyntaxToken> {
3074        support::token(&self.syntax, SyntaxKind::ALL_KW)
3075    }
3076    #[inline]
3077    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
3078        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
3079    }
3080    #[inline]
3081    pub fn prepare_token(&self) -> Option<SyntaxToken> {
3082        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
3083    }
3084}
3085
3086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3087pub struct Declare {
3088    pub(crate) syntax: SyntaxNode,
3089}
3090impl Declare {
3091    #[inline]
3092    pub fn declare_token(&self) -> Option<SyntaxToken> {
3093        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
3094    }
3095}
3096
3097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3098pub struct DefaultConstraint {
3099    pub(crate) syntax: SyntaxNode,
3100}
3101impl DefaultConstraint {
3102    #[inline]
3103    pub fn expr(&self) -> Option<Expr> {
3104        support::child(&self.syntax)
3105    }
3106    #[inline]
3107    pub fn name_ref(&self) -> Option<NameRef> {
3108        support::child(&self.syntax)
3109    }
3110    #[inline]
3111    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3112        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3113    }
3114    #[inline]
3115    pub fn default_token(&self) -> Option<SyntaxToken> {
3116        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3117    }
3118}
3119
3120#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3121pub struct Deferrable {
3122    pub(crate) syntax: SyntaxNode,
3123}
3124impl Deferrable {
3125    #[inline]
3126    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
3127        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
3128    }
3129}
3130
3131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3132pub struct DeferrableConstraintOption {
3133    pub(crate) syntax: SyntaxNode,
3134}
3135impl DeferrableConstraintOption {
3136    #[inline]
3137    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
3138        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
3139    }
3140}
3141
3142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3143pub struct Delete {
3144    pub(crate) syntax: SyntaxNode,
3145}
3146impl Delete {
3147    #[inline]
3148    pub fn alias(&self) -> Option<Alias> {
3149        support::child(&self.syntax)
3150    }
3151    #[inline]
3152    pub fn expr(&self) -> Option<Expr> {
3153        support::child(&self.syntax)
3154    }
3155    #[inline]
3156    pub fn name_ref(&self) -> Option<NameRef> {
3157        support::child(&self.syntax)
3158    }
3159    #[inline]
3160    pub fn relation_name(&self) -> Option<RelationName> {
3161        support::child(&self.syntax)
3162    }
3163    #[inline]
3164    pub fn returning_clause(&self) -> Option<ReturningClause> {
3165        support::child(&self.syntax)
3166    }
3167    #[inline]
3168    pub fn using_clause(&self) -> Option<UsingClause> {
3169        support::child(&self.syntax)
3170    }
3171    #[inline]
3172    pub fn current_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
3174    }
3175    #[inline]
3176    pub fn delete_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3178    }
3179    #[inline]
3180    pub fn from_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::FROM_KW)
3182    }
3183    #[inline]
3184    pub fn of_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::OF_KW)
3186    }
3187    #[inline]
3188    pub fn where_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::WHERE_KW)
3190    }
3191}
3192
3193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3194pub struct DeleteRows {
3195    pub(crate) syntax: SyntaxNode,
3196}
3197impl DeleteRows {
3198    #[inline]
3199    pub fn delete_token(&self) -> Option<SyntaxToken> {
3200        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3201    }
3202    #[inline]
3203    pub fn rows_token(&self) -> Option<SyntaxToken> {
3204        support::token(&self.syntax, SyntaxKind::ROWS_KW)
3205    }
3206}
3207
3208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3209pub struct DetachPartition {
3210    pub(crate) syntax: SyntaxNode,
3211}
3212impl DetachPartition {
3213    #[inline]
3214    pub fn detach_token(&self) -> Option<SyntaxToken> {
3215        support::token(&self.syntax, SyntaxKind::DETACH_KW)
3216    }
3217    #[inline]
3218    pub fn partition_token(&self) -> Option<SyntaxToken> {
3219        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
3220    }
3221}
3222
3223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3224pub struct DisableRls {
3225    pub(crate) syntax: SyntaxNode,
3226}
3227impl DisableRls {
3228    #[inline]
3229    pub fn disable_token(&self) -> Option<SyntaxToken> {
3230        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3231    }
3232    #[inline]
3233    pub fn level_token(&self) -> Option<SyntaxToken> {
3234        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
3235    }
3236    #[inline]
3237    pub fn row_token(&self) -> Option<SyntaxToken> {
3238        support::token(&self.syntax, SyntaxKind::ROW_KW)
3239    }
3240    #[inline]
3241    pub fn security_token(&self) -> Option<SyntaxToken> {
3242        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
3243    }
3244}
3245
3246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3247pub struct DisableRule {
3248    pub(crate) syntax: SyntaxNode,
3249}
3250impl DisableRule {
3251    #[inline]
3252    pub fn disable_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3254    }
3255    #[inline]
3256    pub fn rule_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::RULE_KW)
3258    }
3259}
3260
3261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3262pub struct DisableTrigger {
3263    pub(crate) syntax: SyntaxNode,
3264}
3265impl DisableTrigger {
3266    #[inline]
3267    pub fn disable_token(&self) -> Option<SyntaxToken> {
3268        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3269    }
3270    #[inline]
3271    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3272        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3273    }
3274}
3275
3276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3277pub struct Discard {
3278    pub(crate) syntax: SyntaxNode,
3279}
3280impl Discard {
3281    #[inline]
3282    pub fn all_token(&self) -> Option<SyntaxToken> {
3283        support::token(&self.syntax, SyntaxKind::ALL_KW)
3284    }
3285    #[inline]
3286    pub fn discard_token(&self) -> Option<SyntaxToken> {
3287        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
3288    }
3289    #[inline]
3290    pub fn plans_token(&self) -> Option<SyntaxToken> {
3291        support::token(&self.syntax, SyntaxKind::PLANS_KW)
3292    }
3293    #[inline]
3294    pub fn sequences_token(&self) -> Option<SyntaxToken> {
3295        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
3296    }
3297    #[inline]
3298    pub fn temp_token(&self) -> Option<SyntaxToken> {
3299        support::token(&self.syntax, SyntaxKind::TEMP_KW)
3300    }
3301    #[inline]
3302    pub fn temporary_token(&self) -> Option<SyntaxToken> {
3303        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
3304    }
3305}
3306
3307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3308pub struct DistinctClause {
3309    pub(crate) syntax: SyntaxNode,
3310}
3311impl DistinctClause {
3312    #[inline]
3313    pub fn exprs(&self) -> AstChildren<Expr> {
3314        support::children(&self.syntax)
3315    }
3316    #[inline]
3317    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3318        support::token(&self.syntax, SyntaxKind::L_PAREN)
3319    }
3320    #[inline]
3321    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3322        support::token(&self.syntax, SyntaxKind::R_PAREN)
3323    }
3324    #[inline]
3325    pub fn distinct_token(&self) -> Option<SyntaxToken> {
3326        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
3327    }
3328    #[inline]
3329    pub fn on_token(&self) -> Option<SyntaxToken> {
3330        support::token(&self.syntax, SyntaxKind::ON_KW)
3331    }
3332}
3333
3334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3335pub struct Do {
3336    pub(crate) syntax: SyntaxNode,
3337}
3338impl Do {
3339    #[inline]
3340    pub fn do_token(&self) -> Option<SyntaxToken> {
3341        support::token(&self.syntax, SyntaxKind::DO_KW)
3342    }
3343}
3344
3345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3346pub struct DoubleType {
3347    pub(crate) syntax: SyntaxNode,
3348}
3349impl DoubleType {
3350    #[inline]
3351    pub fn double_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
3353    }
3354    #[inline]
3355    pub fn precision_token(&self) -> Option<SyntaxToken> {
3356        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
3357    }
3358}
3359
3360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3361pub struct Drop {
3362    pub(crate) syntax: SyntaxNode,
3363}
3364impl Drop {
3365    #[inline]
3366    pub fn drop_token(&self) -> Option<SyntaxToken> {
3367        support::token(&self.syntax, SyntaxKind::DROP_KW)
3368    }
3369}
3370
3371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3372pub struct DropAccessMethod {
3373    pub(crate) syntax: SyntaxNode,
3374}
3375impl DropAccessMethod {
3376    #[inline]
3377    pub fn if_exists(&self) -> Option<IfExists> {
3378        support::child(&self.syntax)
3379    }
3380    #[inline]
3381    pub fn name_ref(&self) -> Option<NameRef> {
3382        support::child(&self.syntax)
3383    }
3384    #[inline]
3385    pub fn access_token(&self) -> Option<SyntaxToken> {
3386        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3387    }
3388    #[inline]
3389    pub fn drop_token(&self) -> Option<SyntaxToken> {
3390        support::token(&self.syntax, SyntaxKind::DROP_KW)
3391    }
3392    #[inline]
3393    pub fn method_token(&self) -> Option<SyntaxToken> {
3394        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3395    }
3396}
3397
3398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3399pub struct DropAggregate {
3400    pub(crate) syntax: SyntaxNode,
3401}
3402impl DropAggregate {
3403    #[inline]
3404    pub fn aggregates(&self) -> AstChildren<Aggregate> {
3405        support::children(&self.syntax)
3406    }
3407    #[inline]
3408    pub fn if_exists(&self) -> Option<IfExists> {
3409        support::child(&self.syntax)
3410    }
3411    #[inline]
3412    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3413        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3414    }
3415    #[inline]
3416    pub fn drop_token(&self) -> Option<SyntaxToken> {
3417        support::token(&self.syntax, SyntaxKind::DROP_KW)
3418    }
3419}
3420
3421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3422pub struct DropCast {
3423    pub(crate) syntax: SyntaxNode,
3424}
3425impl DropCast {
3426    #[inline]
3427    pub fn if_exists(&self) -> Option<IfExists> {
3428        support::child(&self.syntax)
3429    }
3430    #[inline]
3431    pub fn ty(&self) -> Option<Type> {
3432        support::child(&self.syntax)
3433    }
3434    #[inline]
3435    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3436        support::token(&self.syntax, SyntaxKind::L_PAREN)
3437    }
3438    #[inline]
3439    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3440        support::token(&self.syntax, SyntaxKind::R_PAREN)
3441    }
3442    #[inline]
3443    pub fn as_token(&self) -> Option<SyntaxToken> {
3444        support::token(&self.syntax, SyntaxKind::AS_KW)
3445    }
3446    #[inline]
3447    pub fn cast_token(&self) -> Option<SyntaxToken> {
3448        support::token(&self.syntax, SyntaxKind::CAST_KW)
3449    }
3450    #[inline]
3451    pub fn drop_token(&self) -> Option<SyntaxToken> {
3452        support::token(&self.syntax, SyntaxKind::DROP_KW)
3453    }
3454}
3455
3456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3457pub struct DropCollation {
3458    pub(crate) syntax: SyntaxNode,
3459}
3460impl DropCollation {
3461    #[inline]
3462    pub fn if_exists(&self) -> Option<IfExists> {
3463        support::child(&self.syntax)
3464    }
3465    #[inline]
3466    pub fn name_ref(&self) -> Option<NameRef> {
3467        support::child(&self.syntax)
3468    }
3469    #[inline]
3470    pub fn collation_token(&self) -> Option<SyntaxToken> {
3471        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3472    }
3473    #[inline]
3474    pub fn drop_token(&self) -> Option<SyntaxToken> {
3475        support::token(&self.syntax, SyntaxKind::DROP_KW)
3476    }
3477}
3478
3479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3480pub struct DropColumn {
3481    pub(crate) syntax: SyntaxNode,
3482}
3483impl DropColumn {
3484    #[inline]
3485    pub fn if_exists(&self) -> Option<IfExists> {
3486        support::child(&self.syntax)
3487    }
3488    #[inline]
3489    pub fn column_token(&self) -> Option<SyntaxToken> {
3490        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3491    }
3492    #[inline]
3493    pub fn drop_token(&self) -> Option<SyntaxToken> {
3494        support::token(&self.syntax, SyntaxKind::DROP_KW)
3495    }
3496}
3497
3498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3499pub struct DropConstraint {
3500    pub(crate) syntax: SyntaxNode,
3501}
3502impl DropConstraint {
3503    #[inline]
3504    pub fn if_exists(&self) -> Option<IfExists> {
3505        support::child(&self.syntax)
3506    }
3507    #[inline]
3508    pub fn name_ref(&self) -> Option<NameRef> {
3509        support::child(&self.syntax)
3510    }
3511    #[inline]
3512    pub fn cascade_token(&self) -> Option<SyntaxToken> {
3513        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
3514    }
3515    #[inline]
3516    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3517        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3518    }
3519    #[inline]
3520    pub fn drop_token(&self) -> Option<SyntaxToken> {
3521        support::token(&self.syntax, SyntaxKind::DROP_KW)
3522    }
3523    #[inline]
3524    pub fn restrict_token(&self) -> Option<SyntaxToken> {
3525        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
3526    }
3527}
3528
3529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3530pub struct DropConversion {
3531    pub(crate) syntax: SyntaxNode,
3532}
3533impl DropConversion {
3534    #[inline]
3535    pub fn if_exists(&self) -> Option<IfExists> {
3536        support::child(&self.syntax)
3537    }
3538    #[inline]
3539    pub fn name_ref(&self) -> Option<NameRef> {
3540        support::child(&self.syntax)
3541    }
3542    #[inline]
3543    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3544        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3545    }
3546    #[inline]
3547    pub fn drop_token(&self) -> Option<SyntaxToken> {
3548        support::token(&self.syntax, SyntaxKind::DROP_KW)
3549    }
3550}
3551
3552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3553pub struct DropDatabase {
3554    pub(crate) syntax: SyntaxNode,
3555}
3556impl DropDatabase {
3557    #[inline]
3558    pub fn if_exists(&self) -> Option<IfExists> {
3559        support::child(&self.syntax)
3560    }
3561    #[inline]
3562    pub fn name_ref(&self) -> Option<NameRef> {
3563        support::child(&self.syntax)
3564    }
3565    #[inline]
3566    pub fn database_token(&self) -> Option<SyntaxToken> {
3567        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3568    }
3569    #[inline]
3570    pub fn drop_token(&self) -> Option<SyntaxToken> {
3571        support::token(&self.syntax, SyntaxKind::DROP_KW)
3572    }
3573}
3574
3575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3576pub struct DropDefault {
3577    pub(crate) syntax: SyntaxNode,
3578}
3579impl DropDefault {
3580    #[inline]
3581    pub fn default_token(&self) -> Option<SyntaxToken> {
3582        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3583    }
3584    #[inline]
3585    pub fn drop_token(&self) -> Option<SyntaxToken> {
3586        support::token(&self.syntax, SyntaxKind::DROP_KW)
3587    }
3588}
3589
3590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3591pub struct DropDomain {
3592    pub(crate) syntax: SyntaxNode,
3593}
3594impl DropDomain {
3595    #[inline]
3596    pub fn if_exists(&self) -> Option<IfExists> {
3597        support::child(&self.syntax)
3598    }
3599    #[inline]
3600    pub fn types(&self) -> AstChildren<Type> {
3601        support::children(&self.syntax)
3602    }
3603    #[inline]
3604    pub fn domain_token(&self) -> Option<SyntaxToken> {
3605        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3606    }
3607    #[inline]
3608    pub fn drop_token(&self) -> Option<SyntaxToken> {
3609        support::token(&self.syntax, SyntaxKind::DROP_KW)
3610    }
3611}
3612
3613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3614pub struct DropEventTrigger {
3615    pub(crate) syntax: SyntaxNode,
3616}
3617impl DropEventTrigger {
3618    #[inline]
3619    pub fn if_exists(&self) -> Option<IfExists> {
3620        support::child(&self.syntax)
3621    }
3622    #[inline]
3623    pub fn name_ref(&self) -> Option<NameRef> {
3624        support::child(&self.syntax)
3625    }
3626    #[inline]
3627    pub fn drop_token(&self) -> Option<SyntaxToken> {
3628        support::token(&self.syntax, SyntaxKind::DROP_KW)
3629    }
3630    #[inline]
3631    pub fn event_token(&self) -> Option<SyntaxToken> {
3632        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3633    }
3634    #[inline]
3635    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3636        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3637    }
3638}
3639
3640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3641pub struct DropExpression {
3642    pub(crate) syntax: SyntaxNode,
3643}
3644impl DropExpression {
3645    #[inline]
3646    pub fn if_exists(&self) -> Option<IfExists> {
3647        support::child(&self.syntax)
3648    }
3649    #[inline]
3650    pub fn drop_token(&self) -> Option<SyntaxToken> {
3651        support::token(&self.syntax, SyntaxKind::DROP_KW)
3652    }
3653    #[inline]
3654    pub fn expression_token(&self) -> Option<SyntaxToken> {
3655        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
3656    }
3657}
3658
3659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3660pub struct DropExtension {
3661    pub(crate) syntax: SyntaxNode,
3662}
3663impl DropExtension {
3664    #[inline]
3665    pub fn if_exists(&self) -> Option<IfExists> {
3666        support::child(&self.syntax)
3667    }
3668    #[inline]
3669    pub fn name_refs(&self) -> AstChildren<NameRef> {
3670        support::children(&self.syntax)
3671    }
3672    #[inline]
3673    pub fn drop_token(&self) -> Option<SyntaxToken> {
3674        support::token(&self.syntax, SyntaxKind::DROP_KW)
3675    }
3676    #[inline]
3677    pub fn extension_token(&self) -> Option<SyntaxToken> {
3678        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3679    }
3680}
3681
3682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3683pub struct DropForeignDataWrapper {
3684    pub(crate) syntax: SyntaxNode,
3685}
3686impl DropForeignDataWrapper {
3687    #[inline]
3688    pub fn if_exists(&self) -> Option<IfExists> {
3689        support::child(&self.syntax)
3690    }
3691    #[inline]
3692    pub fn name_ref(&self) -> Option<NameRef> {
3693        support::child(&self.syntax)
3694    }
3695    #[inline]
3696    pub fn data_token(&self) -> Option<SyntaxToken> {
3697        support::token(&self.syntax, SyntaxKind::DATA_KW)
3698    }
3699    #[inline]
3700    pub fn drop_token(&self) -> Option<SyntaxToken> {
3701        support::token(&self.syntax, SyntaxKind::DROP_KW)
3702    }
3703    #[inline]
3704    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3705        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3706    }
3707    #[inline]
3708    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3709        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3710    }
3711}
3712
3713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3714pub struct DropForeignTable {
3715    pub(crate) syntax: SyntaxNode,
3716}
3717impl DropForeignTable {
3718    #[inline]
3719    pub fn if_exists(&self) -> Option<IfExists> {
3720        support::child(&self.syntax)
3721    }
3722    #[inline]
3723    pub fn drop_token(&self) -> Option<SyntaxToken> {
3724        support::token(&self.syntax, SyntaxKind::DROP_KW)
3725    }
3726    #[inline]
3727    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3728        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3729    }
3730    #[inline]
3731    pub fn table_token(&self) -> Option<SyntaxToken> {
3732        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3733    }
3734}
3735
3736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3737pub struct DropFunction {
3738    pub(crate) syntax: SyntaxNode,
3739}
3740impl DropFunction {
3741    #[inline]
3742    pub fn if_exists(&self) -> Option<IfExists> {
3743        support::child(&self.syntax)
3744    }
3745    #[inline]
3746    pub fn drop_token(&self) -> Option<SyntaxToken> {
3747        support::token(&self.syntax, SyntaxKind::DROP_KW)
3748    }
3749    #[inline]
3750    pub fn function_token(&self) -> Option<SyntaxToken> {
3751        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3752    }
3753}
3754
3755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3756pub struct DropGroup {
3757    pub(crate) syntax: SyntaxNode,
3758}
3759impl DropGroup {
3760    #[inline]
3761    pub fn if_exists(&self) -> Option<IfExists> {
3762        support::child(&self.syntax)
3763    }
3764    #[inline]
3765    pub fn name_ref(&self) -> Option<NameRef> {
3766        support::child(&self.syntax)
3767    }
3768    #[inline]
3769    pub fn drop_token(&self) -> Option<SyntaxToken> {
3770        support::token(&self.syntax, SyntaxKind::DROP_KW)
3771    }
3772    #[inline]
3773    pub fn group_token(&self) -> Option<SyntaxToken> {
3774        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3775    }
3776}
3777
3778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3779pub struct DropIdentity {
3780    pub(crate) syntax: SyntaxNode,
3781}
3782impl DropIdentity {
3783    #[inline]
3784    pub fn if_exists(&self) -> Option<IfExists> {
3785        support::child(&self.syntax)
3786    }
3787    #[inline]
3788    pub fn drop_token(&self) -> Option<SyntaxToken> {
3789        support::token(&self.syntax, SyntaxKind::DROP_KW)
3790    }
3791    #[inline]
3792    pub fn identity_token(&self) -> Option<SyntaxToken> {
3793        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
3794    }
3795}
3796
3797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3798pub struct DropIndex {
3799    pub(crate) syntax: SyntaxNode,
3800}
3801impl DropIndex {
3802    #[inline]
3803    pub fn if_exists(&self) -> Option<IfExists> {
3804        support::child(&self.syntax)
3805    }
3806    #[inline]
3807    pub fn paths(&self) -> AstChildren<Path> {
3808        support::children(&self.syntax)
3809    }
3810    #[inline]
3811    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3812        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3813    }
3814    #[inline]
3815    pub fn drop_token(&self) -> Option<SyntaxToken> {
3816        support::token(&self.syntax, SyntaxKind::DROP_KW)
3817    }
3818    #[inline]
3819    pub fn index_token(&self) -> Option<SyntaxToken> {
3820        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3821    }
3822}
3823
3824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3825pub struct DropLanguage {
3826    pub(crate) syntax: SyntaxNode,
3827}
3828impl DropLanguage {
3829    #[inline]
3830    pub fn if_exists(&self) -> Option<IfExists> {
3831        support::child(&self.syntax)
3832    }
3833    #[inline]
3834    pub fn name_ref(&self) -> Option<NameRef> {
3835        support::child(&self.syntax)
3836    }
3837    #[inline]
3838    pub fn drop_token(&self) -> Option<SyntaxToken> {
3839        support::token(&self.syntax, SyntaxKind::DROP_KW)
3840    }
3841    #[inline]
3842    pub fn language_token(&self) -> Option<SyntaxToken> {
3843        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3844    }
3845}
3846
3847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3848pub struct DropMaterializedView {
3849    pub(crate) syntax: SyntaxNode,
3850}
3851impl DropMaterializedView {
3852    #[inline]
3853    pub fn if_exists(&self) -> Option<IfExists> {
3854        support::child(&self.syntax)
3855    }
3856    #[inline]
3857    pub fn drop_token(&self) -> Option<SyntaxToken> {
3858        support::token(&self.syntax, SyntaxKind::DROP_KW)
3859    }
3860    #[inline]
3861    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3862        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3863    }
3864    #[inline]
3865    pub fn view_token(&self) -> Option<SyntaxToken> {
3866        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3867    }
3868}
3869
3870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3871pub struct DropNotNull {
3872    pub(crate) syntax: SyntaxNode,
3873}
3874impl DropNotNull {
3875    #[inline]
3876    pub fn drop_token(&self) -> Option<SyntaxToken> {
3877        support::token(&self.syntax, SyntaxKind::DROP_KW)
3878    }
3879    #[inline]
3880    pub fn not_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::NOT_KW)
3882    }
3883    #[inline]
3884    pub fn null_token(&self) -> Option<SyntaxToken> {
3885        support::token(&self.syntax, SyntaxKind::NULL_KW)
3886    }
3887}
3888
3889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3890pub struct DropOperator {
3891    pub(crate) syntax: SyntaxNode,
3892}
3893impl DropOperator {
3894    #[inline]
3895    pub fn if_exists(&self) -> Option<IfExists> {
3896        support::child(&self.syntax)
3897    }
3898    #[inline]
3899    pub fn drop_token(&self) -> Option<SyntaxToken> {
3900        support::token(&self.syntax, SyntaxKind::DROP_KW)
3901    }
3902    #[inline]
3903    pub fn operator_token(&self) -> Option<SyntaxToken> {
3904        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3905    }
3906}
3907
3908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3909pub struct DropOperatorClass {
3910    pub(crate) syntax: SyntaxNode,
3911}
3912impl DropOperatorClass {
3913    #[inline]
3914    pub fn if_exists(&self) -> Option<IfExists> {
3915        support::child(&self.syntax)
3916    }
3917    #[inline]
3918    pub fn name_ref(&self) -> Option<NameRef> {
3919        support::child(&self.syntax)
3920    }
3921    #[inline]
3922    pub fn class_token(&self) -> Option<SyntaxToken> {
3923        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3924    }
3925    #[inline]
3926    pub fn drop_token(&self) -> Option<SyntaxToken> {
3927        support::token(&self.syntax, SyntaxKind::DROP_KW)
3928    }
3929    #[inline]
3930    pub fn operator_token(&self) -> Option<SyntaxToken> {
3931        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3932    }
3933    #[inline]
3934    pub fn using_token(&self) -> Option<SyntaxToken> {
3935        support::token(&self.syntax, SyntaxKind::USING_KW)
3936    }
3937}
3938
3939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3940pub struct DropOperatorFamily {
3941    pub(crate) syntax: SyntaxNode,
3942}
3943impl DropOperatorFamily {
3944    #[inline]
3945    pub fn if_exists(&self) -> Option<IfExists> {
3946        support::child(&self.syntax)
3947    }
3948    #[inline]
3949    pub fn drop_token(&self) -> Option<SyntaxToken> {
3950        support::token(&self.syntax, SyntaxKind::DROP_KW)
3951    }
3952    #[inline]
3953    pub fn family_token(&self) -> Option<SyntaxToken> {
3954        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3955    }
3956    #[inline]
3957    pub fn operator_token(&self) -> Option<SyntaxToken> {
3958        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3959    }
3960}
3961
3962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3963pub struct DropOwned {
3964    pub(crate) syntax: SyntaxNode,
3965}
3966impl DropOwned {
3967    #[inline]
3968    pub fn by_token(&self) -> Option<SyntaxToken> {
3969        support::token(&self.syntax, SyntaxKind::BY_KW)
3970    }
3971    #[inline]
3972    pub fn drop_token(&self) -> Option<SyntaxToken> {
3973        support::token(&self.syntax, SyntaxKind::DROP_KW)
3974    }
3975    #[inline]
3976    pub fn owned_token(&self) -> Option<SyntaxToken> {
3977        support::token(&self.syntax, SyntaxKind::OWNED_KW)
3978    }
3979}
3980
3981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3982pub struct DropPolicy {
3983    pub(crate) syntax: SyntaxNode,
3984}
3985impl DropPolicy {
3986    #[inline]
3987    pub fn if_exists(&self) -> Option<IfExists> {
3988        support::child(&self.syntax)
3989    }
3990    #[inline]
3991    pub fn name_ref(&self) -> Option<NameRef> {
3992        support::child(&self.syntax)
3993    }
3994    #[inline]
3995    pub fn drop_token(&self) -> Option<SyntaxToken> {
3996        support::token(&self.syntax, SyntaxKind::DROP_KW)
3997    }
3998    #[inline]
3999    pub fn on_token(&self) -> Option<SyntaxToken> {
4000        support::token(&self.syntax, SyntaxKind::ON_KW)
4001    }
4002    #[inline]
4003    pub fn policy_token(&self) -> Option<SyntaxToken> {
4004        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4005    }
4006}
4007
4008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4009pub struct DropProcedure {
4010    pub(crate) syntax: SyntaxNode,
4011}
4012impl DropProcedure {
4013    #[inline]
4014    pub fn if_exists(&self) -> Option<IfExists> {
4015        support::child(&self.syntax)
4016    }
4017    #[inline]
4018    pub fn drop_token(&self) -> Option<SyntaxToken> {
4019        support::token(&self.syntax, SyntaxKind::DROP_KW)
4020    }
4021    #[inline]
4022    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4023        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4024    }
4025}
4026
4027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4028pub struct DropPublication {
4029    pub(crate) syntax: SyntaxNode,
4030}
4031impl DropPublication {
4032    #[inline]
4033    pub fn if_exists(&self) -> Option<IfExists> {
4034        support::child(&self.syntax)
4035    }
4036    #[inline]
4037    pub fn name_refs(&self) -> AstChildren<NameRef> {
4038        support::children(&self.syntax)
4039    }
4040    #[inline]
4041    pub fn drop_token(&self) -> Option<SyntaxToken> {
4042        support::token(&self.syntax, SyntaxKind::DROP_KW)
4043    }
4044    #[inline]
4045    pub fn publication_token(&self) -> Option<SyntaxToken> {
4046        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4047    }
4048}
4049
4050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4051pub struct DropRole {
4052    pub(crate) syntax: SyntaxNode,
4053}
4054impl DropRole {
4055    #[inline]
4056    pub fn if_exists(&self) -> Option<IfExists> {
4057        support::child(&self.syntax)
4058    }
4059    #[inline]
4060    pub fn name_refs(&self) -> AstChildren<NameRef> {
4061        support::children(&self.syntax)
4062    }
4063    #[inline]
4064    pub fn drop_token(&self) -> Option<SyntaxToken> {
4065        support::token(&self.syntax, SyntaxKind::DROP_KW)
4066    }
4067    #[inline]
4068    pub fn role_token(&self) -> Option<SyntaxToken> {
4069        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4070    }
4071}
4072
4073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4074pub struct DropRoutine {
4075    pub(crate) syntax: SyntaxNode,
4076}
4077impl DropRoutine {
4078    #[inline]
4079    pub fn if_exists(&self) -> Option<IfExists> {
4080        support::child(&self.syntax)
4081    }
4082    #[inline]
4083    pub fn drop_token(&self) -> Option<SyntaxToken> {
4084        support::token(&self.syntax, SyntaxKind::DROP_KW)
4085    }
4086    #[inline]
4087    pub fn routine_token(&self) -> Option<SyntaxToken> {
4088        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
4089    }
4090}
4091
4092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4093pub struct DropRule {
4094    pub(crate) syntax: SyntaxNode,
4095}
4096impl DropRule {
4097    #[inline]
4098    pub fn if_exists(&self) -> Option<IfExists> {
4099        support::child(&self.syntax)
4100    }
4101    #[inline]
4102    pub fn name_ref(&self) -> Option<NameRef> {
4103        support::child(&self.syntax)
4104    }
4105    #[inline]
4106    pub fn drop_token(&self) -> Option<SyntaxToken> {
4107        support::token(&self.syntax, SyntaxKind::DROP_KW)
4108    }
4109    #[inline]
4110    pub fn on_token(&self) -> Option<SyntaxToken> {
4111        support::token(&self.syntax, SyntaxKind::ON_KW)
4112    }
4113    #[inline]
4114    pub fn rule_token(&self) -> Option<SyntaxToken> {
4115        support::token(&self.syntax, SyntaxKind::RULE_KW)
4116    }
4117}
4118
4119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4120pub struct DropSchema {
4121    pub(crate) syntax: SyntaxNode,
4122}
4123impl DropSchema {
4124    #[inline]
4125    pub fn if_exists(&self) -> Option<IfExists> {
4126        support::child(&self.syntax)
4127    }
4128    #[inline]
4129    pub fn drop_token(&self) -> Option<SyntaxToken> {
4130        support::token(&self.syntax, SyntaxKind::DROP_KW)
4131    }
4132    #[inline]
4133    pub fn schema_token(&self) -> Option<SyntaxToken> {
4134        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4135    }
4136}
4137
4138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4139pub struct DropSequence {
4140    pub(crate) syntax: SyntaxNode,
4141}
4142impl DropSequence {
4143    #[inline]
4144    pub fn if_exists(&self) -> Option<IfExists> {
4145        support::child(&self.syntax)
4146    }
4147    #[inline]
4148    pub fn name_refs(&self) -> AstChildren<NameRef> {
4149        support::children(&self.syntax)
4150    }
4151    #[inline]
4152    pub fn drop_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::DROP_KW)
4154    }
4155    #[inline]
4156    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4157        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4158    }
4159}
4160
4161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4162pub struct DropServer {
4163    pub(crate) syntax: SyntaxNode,
4164}
4165impl DropServer {
4166    #[inline]
4167    pub fn if_exists(&self) -> Option<IfExists> {
4168        support::child(&self.syntax)
4169    }
4170    #[inline]
4171    pub fn name_ref(&self) -> Option<NameRef> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn drop_token(&self) -> Option<SyntaxToken> {
4176        support::token(&self.syntax, SyntaxKind::DROP_KW)
4177    }
4178    #[inline]
4179    pub fn server_token(&self) -> Option<SyntaxToken> {
4180        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4181    }
4182}
4183
4184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4185pub struct DropStatistics {
4186    pub(crate) syntax: SyntaxNode,
4187}
4188impl DropStatistics {
4189    #[inline]
4190    pub fn if_exists(&self) -> Option<IfExists> {
4191        support::child(&self.syntax)
4192    }
4193    #[inline]
4194    pub fn name_ref(&self) -> Option<NameRef> {
4195        support::child(&self.syntax)
4196    }
4197    #[inline]
4198    pub fn drop_token(&self) -> Option<SyntaxToken> {
4199        support::token(&self.syntax, SyntaxKind::DROP_KW)
4200    }
4201    #[inline]
4202    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4203        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4204    }
4205}
4206
4207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4208pub struct DropSubscription {
4209    pub(crate) syntax: SyntaxNode,
4210}
4211impl DropSubscription {
4212    #[inline]
4213    pub fn if_exists(&self) -> Option<IfExists> {
4214        support::child(&self.syntax)
4215    }
4216    #[inline]
4217    pub fn name_ref(&self) -> Option<NameRef> {
4218        support::child(&self.syntax)
4219    }
4220    #[inline]
4221    pub fn drop_token(&self) -> Option<SyntaxToken> {
4222        support::token(&self.syntax, SyntaxKind::DROP_KW)
4223    }
4224    #[inline]
4225    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4226        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4227    }
4228}
4229
4230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4231pub struct DropTable {
4232    pub(crate) syntax: SyntaxNode,
4233}
4234impl DropTable {
4235    #[inline]
4236    pub fn if_exists(&self) -> Option<IfExists> {
4237        support::child(&self.syntax)
4238    }
4239    #[inline]
4240    pub fn path(&self) -> Option<Path> {
4241        support::child(&self.syntax)
4242    }
4243    #[inline]
4244    pub fn comma_token(&self) -> Option<SyntaxToken> {
4245        support::token(&self.syntax, SyntaxKind::COMMA)
4246    }
4247    #[inline]
4248    pub fn cascade_token(&self) -> Option<SyntaxToken> {
4249        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
4250    }
4251    #[inline]
4252    pub fn drop_token(&self) -> Option<SyntaxToken> {
4253        support::token(&self.syntax, SyntaxKind::DROP_KW)
4254    }
4255    #[inline]
4256    pub fn restrict_token(&self) -> Option<SyntaxToken> {
4257        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
4258    }
4259    #[inline]
4260    pub fn table_token(&self) -> Option<SyntaxToken> {
4261        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4262    }
4263}
4264
4265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4266pub struct DropTablespace {
4267    pub(crate) syntax: SyntaxNode,
4268}
4269impl DropTablespace {
4270    #[inline]
4271    pub fn if_exists(&self) -> Option<IfExists> {
4272        support::child(&self.syntax)
4273    }
4274    #[inline]
4275    pub fn name_ref(&self) -> Option<NameRef> {
4276        support::child(&self.syntax)
4277    }
4278    #[inline]
4279    pub fn drop_token(&self) -> Option<SyntaxToken> {
4280        support::token(&self.syntax, SyntaxKind::DROP_KW)
4281    }
4282    #[inline]
4283    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4284        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4285    }
4286}
4287
4288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4289pub struct DropTextSearchConfig {
4290    pub(crate) syntax: SyntaxNode,
4291}
4292impl DropTextSearchConfig {
4293    #[inline]
4294    pub fn if_exists(&self) -> Option<IfExists> {
4295        support::child(&self.syntax)
4296    }
4297    #[inline]
4298    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4299        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4300    }
4301    #[inline]
4302    pub fn drop_token(&self) -> Option<SyntaxToken> {
4303        support::token(&self.syntax, SyntaxKind::DROP_KW)
4304    }
4305    #[inline]
4306    pub fn search_token(&self) -> Option<SyntaxToken> {
4307        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4308    }
4309    #[inline]
4310    pub fn text_token(&self) -> Option<SyntaxToken> {
4311        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4312    }
4313}
4314
4315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4316pub struct DropTextSearchDict {
4317    pub(crate) syntax: SyntaxNode,
4318}
4319impl DropTextSearchDict {
4320    #[inline]
4321    pub fn if_exists(&self) -> Option<IfExists> {
4322        support::child(&self.syntax)
4323    }
4324    #[inline]
4325    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4326        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4327    }
4328    #[inline]
4329    pub fn drop_token(&self) -> Option<SyntaxToken> {
4330        support::token(&self.syntax, SyntaxKind::DROP_KW)
4331    }
4332    #[inline]
4333    pub fn search_token(&self) -> Option<SyntaxToken> {
4334        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4335    }
4336    #[inline]
4337    pub fn text_token(&self) -> Option<SyntaxToken> {
4338        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4339    }
4340}
4341
4342#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4343pub struct DropTextSearchParser {
4344    pub(crate) syntax: SyntaxNode,
4345}
4346impl DropTextSearchParser {
4347    #[inline]
4348    pub fn if_exists(&self) -> Option<IfExists> {
4349        support::child(&self.syntax)
4350    }
4351    #[inline]
4352    pub fn name_ref(&self) -> Option<NameRef> {
4353        support::child(&self.syntax)
4354    }
4355    #[inline]
4356    pub fn drop_token(&self) -> Option<SyntaxToken> {
4357        support::token(&self.syntax, SyntaxKind::DROP_KW)
4358    }
4359    #[inline]
4360    pub fn parser_token(&self) -> Option<SyntaxToken> {
4361        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4362    }
4363    #[inline]
4364    pub fn search_token(&self) -> Option<SyntaxToken> {
4365        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4366    }
4367    #[inline]
4368    pub fn text_token(&self) -> Option<SyntaxToken> {
4369        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4370    }
4371}
4372
4373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4374pub struct DropTextSearchTemplate {
4375    pub(crate) syntax: SyntaxNode,
4376}
4377impl DropTextSearchTemplate {
4378    #[inline]
4379    pub fn if_exists(&self) -> Option<IfExists> {
4380        support::child(&self.syntax)
4381    }
4382    #[inline]
4383    pub fn drop_token(&self) -> Option<SyntaxToken> {
4384        support::token(&self.syntax, SyntaxKind::DROP_KW)
4385    }
4386    #[inline]
4387    pub fn search_token(&self) -> Option<SyntaxToken> {
4388        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4389    }
4390    #[inline]
4391    pub fn template_token(&self) -> Option<SyntaxToken> {
4392        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4393    }
4394    #[inline]
4395    pub fn text_token(&self) -> Option<SyntaxToken> {
4396        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4397    }
4398}
4399
4400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4401pub struct DropTransform {
4402    pub(crate) syntax: SyntaxNode,
4403}
4404impl DropTransform {
4405    #[inline]
4406    pub fn if_exists(&self) -> Option<IfExists> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn drop_token(&self) -> Option<SyntaxToken> {
4411        support::token(&self.syntax, SyntaxKind::DROP_KW)
4412    }
4413    #[inline]
4414    pub fn transform_token(&self) -> Option<SyntaxToken> {
4415        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4416    }
4417}
4418
4419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4420pub struct DropTrigger {
4421    pub(crate) syntax: SyntaxNode,
4422}
4423impl DropTrigger {
4424    #[inline]
4425    pub fn if_exists(&self) -> Option<IfExists> {
4426        support::child(&self.syntax)
4427    }
4428    #[inline]
4429    pub fn name_ref(&self) -> Option<NameRef> {
4430        support::child(&self.syntax)
4431    }
4432    #[inline]
4433    pub fn drop_token(&self) -> Option<SyntaxToken> {
4434        support::token(&self.syntax, SyntaxKind::DROP_KW)
4435    }
4436    #[inline]
4437    pub fn on_token(&self) -> Option<SyntaxToken> {
4438        support::token(&self.syntax, SyntaxKind::ON_KW)
4439    }
4440    #[inline]
4441    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4442        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4443    }
4444}
4445
4446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4447pub struct DropType {
4448    pub(crate) syntax: SyntaxNode,
4449}
4450impl DropType {
4451    #[inline]
4452    pub fn if_exists(&self) -> Option<IfExists> {
4453        support::child(&self.syntax)
4454    }
4455    #[inline]
4456    pub fn paths(&self) -> AstChildren<Path> {
4457        support::children(&self.syntax)
4458    }
4459    #[inline]
4460    pub fn cascade_token(&self) -> Option<SyntaxToken> {
4461        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
4462    }
4463    #[inline]
4464    pub fn drop_token(&self) -> Option<SyntaxToken> {
4465        support::token(&self.syntax, SyntaxKind::DROP_KW)
4466    }
4467    #[inline]
4468    pub fn restrict_token(&self) -> Option<SyntaxToken> {
4469        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
4470    }
4471    #[inline]
4472    pub fn type_token(&self) -> Option<SyntaxToken> {
4473        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4474    }
4475}
4476
4477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4478pub struct DropUser {
4479    pub(crate) syntax: SyntaxNode,
4480}
4481impl DropUser {
4482    #[inline]
4483    pub fn if_exists(&self) -> Option<IfExists> {
4484        support::child(&self.syntax)
4485    }
4486    #[inline]
4487    pub fn name_refs(&self) -> AstChildren<NameRef> {
4488        support::children(&self.syntax)
4489    }
4490    #[inline]
4491    pub fn drop_token(&self) -> Option<SyntaxToken> {
4492        support::token(&self.syntax, SyntaxKind::DROP_KW)
4493    }
4494    #[inline]
4495    pub fn user_token(&self) -> Option<SyntaxToken> {
4496        support::token(&self.syntax, SyntaxKind::USER_KW)
4497    }
4498}
4499
4500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4501pub struct DropUserMapping {
4502    pub(crate) syntax: SyntaxNode,
4503}
4504impl DropUserMapping {
4505    #[inline]
4506    pub fn if_exists(&self) -> Option<IfExists> {
4507        support::child(&self.syntax)
4508    }
4509    #[inline]
4510    pub fn name_ref(&self) -> Option<NameRef> {
4511        support::child(&self.syntax)
4512    }
4513    #[inline]
4514    pub fn drop_token(&self) -> Option<SyntaxToken> {
4515        support::token(&self.syntax, SyntaxKind::DROP_KW)
4516    }
4517    #[inline]
4518    pub fn for_token(&self) -> Option<SyntaxToken> {
4519        support::token(&self.syntax, SyntaxKind::FOR_KW)
4520    }
4521    #[inline]
4522    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4523        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4524    }
4525    #[inline]
4526    pub fn server_token(&self) -> Option<SyntaxToken> {
4527        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4528    }
4529    #[inline]
4530    pub fn user_token(&self) -> Option<SyntaxToken> {
4531        support::token(&self.syntax, SyntaxKind::USER_KW)
4532    }
4533}
4534
4535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4536pub struct DropView {
4537    pub(crate) syntax: SyntaxNode,
4538}
4539impl DropView {
4540    #[inline]
4541    pub fn if_exists(&self) -> Option<IfExists> {
4542        support::child(&self.syntax)
4543    }
4544    #[inline]
4545    pub fn drop_token(&self) -> Option<SyntaxToken> {
4546        support::token(&self.syntax, SyntaxKind::DROP_KW)
4547    }
4548    #[inline]
4549    pub fn view_token(&self) -> Option<SyntaxToken> {
4550        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4551    }
4552}
4553
4554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4555pub struct ElseClause {
4556    pub(crate) syntax: SyntaxNode,
4557}
4558impl ElseClause {
4559    #[inline]
4560    pub fn expr(&self) -> Option<Expr> {
4561        support::child(&self.syntax)
4562    }
4563    #[inline]
4564    pub fn else_token(&self) -> Option<SyntaxToken> {
4565        support::token(&self.syntax, SyntaxKind::ELSE_KW)
4566    }
4567}
4568
4569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4570pub struct EnableAlwaysRule {
4571    pub(crate) syntax: SyntaxNode,
4572}
4573impl EnableAlwaysRule {
4574    #[inline]
4575    pub fn always_token(&self) -> Option<SyntaxToken> {
4576        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
4577    }
4578    #[inline]
4579    pub fn enable_token(&self) -> Option<SyntaxToken> {
4580        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4581    }
4582    #[inline]
4583    pub fn rule_token(&self) -> Option<SyntaxToken> {
4584        support::token(&self.syntax, SyntaxKind::RULE_KW)
4585    }
4586}
4587
4588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4589pub struct EnableAlwaysTrigger {
4590    pub(crate) syntax: SyntaxNode,
4591}
4592impl EnableAlwaysTrigger {
4593    #[inline]
4594    pub fn always_token(&self) -> Option<SyntaxToken> {
4595        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
4596    }
4597    #[inline]
4598    pub fn enable_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4600    }
4601    #[inline]
4602    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4604    }
4605}
4606
4607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4608pub struct EnableReplicaRule {
4609    pub(crate) syntax: SyntaxNode,
4610}
4611impl EnableReplicaRule {
4612    #[inline]
4613    pub fn enable_token(&self) -> Option<SyntaxToken> {
4614        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4615    }
4616    #[inline]
4617    pub fn replica_token(&self) -> Option<SyntaxToken> {
4618        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
4619    }
4620    #[inline]
4621    pub fn rule_token(&self) -> Option<SyntaxToken> {
4622        support::token(&self.syntax, SyntaxKind::RULE_KW)
4623    }
4624}
4625
4626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4627pub struct EnableReplicaTrigger {
4628    pub(crate) syntax: SyntaxNode,
4629}
4630impl EnableReplicaTrigger {
4631    #[inline]
4632    pub fn enable_token(&self) -> Option<SyntaxToken> {
4633        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4634    }
4635    #[inline]
4636    pub fn replica_token(&self) -> Option<SyntaxToken> {
4637        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
4638    }
4639    #[inline]
4640    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4641        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4642    }
4643}
4644
4645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4646pub struct EnableRls {
4647    pub(crate) syntax: SyntaxNode,
4648}
4649impl EnableRls {
4650    #[inline]
4651    pub fn enable_token(&self) -> Option<SyntaxToken> {
4652        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4653    }
4654    #[inline]
4655    pub fn level_token(&self) -> Option<SyntaxToken> {
4656        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
4657    }
4658    #[inline]
4659    pub fn row_token(&self) -> Option<SyntaxToken> {
4660        support::token(&self.syntax, SyntaxKind::ROW_KW)
4661    }
4662    #[inline]
4663    pub fn security_token(&self) -> Option<SyntaxToken> {
4664        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
4665    }
4666}
4667
4668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4669pub struct EnableRule {
4670    pub(crate) syntax: SyntaxNode,
4671}
4672impl EnableRule {
4673    #[inline]
4674    pub fn enable_token(&self) -> Option<SyntaxToken> {
4675        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4676    }
4677    #[inline]
4678    pub fn rule_token(&self) -> Option<SyntaxToken> {
4679        support::token(&self.syntax, SyntaxKind::RULE_KW)
4680    }
4681}
4682
4683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4684pub struct EnableTrigger {
4685    pub(crate) syntax: SyntaxNode,
4686}
4687impl EnableTrigger {
4688    #[inline]
4689    pub fn enable_token(&self) -> Option<SyntaxToken> {
4690        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4691    }
4692    #[inline]
4693    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4694        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4695    }
4696}
4697
4698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4699pub struct Enforced {
4700    pub(crate) syntax: SyntaxNode,
4701}
4702impl Enforced {
4703    #[inline]
4704    pub fn enforced_token(&self) -> Option<SyntaxToken> {
4705        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
4706    }
4707}
4708
4709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4710pub struct ExcludeConstraint {
4711    pub(crate) syntax: SyntaxNode,
4712}
4713impl ExcludeConstraint {
4714    #[inline]
4715    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
4716        support::child(&self.syntax)
4717    }
4718    #[inline]
4719    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
4720        support::child(&self.syntax)
4721    }
4722    #[inline]
4723    pub fn exclude_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
4725    }
4726}
4727
4728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4729pub struct Execute {
4730    pub(crate) syntax: SyntaxNode,
4731}
4732impl Execute {
4733    #[inline]
4734    pub fn execute_token(&self) -> Option<SyntaxToken> {
4735        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4736    }
4737}
4738
4739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4740pub struct Explain {
4741    pub(crate) syntax: SyntaxNode,
4742}
4743impl Explain {
4744    #[inline]
4745    pub fn explain_token(&self) -> Option<SyntaxToken> {
4746        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
4747    }
4748}
4749
4750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4751pub struct FatArrow {
4752    pub(crate) syntax: SyntaxNode,
4753}
4754impl FatArrow {
4755    #[inline]
4756    pub fn eq_token(&self) -> Option<SyntaxToken> {
4757        support::token(&self.syntax, SyntaxKind::EQ)
4758    }
4759    #[inline]
4760    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
4761        support::token(&self.syntax, SyntaxKind::R_ANGLE)
4762    }
4763}
4764
4765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4766pub struct Fetch {
4767    pub(crate) syntax: SyntaxNode,
4768}
4769impl Fetch {
4770    #[inline]
4771    pub fn fetch_token(&self) -> Option<SyntaxToken> {
4772        support::token(&self.syntax, SyntaxKind::FETCH_KW)
4773    }
4774}
4775
4776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4777pub struct FetchClause {
4778    pub(crate) syntax: SyntaxNode,
4779}
4780impl FetchClause {
4781    #[inline]
4782    pub fn expr(&self) -> Option<Expr> {
4783        support::child(&self.syntax)
4784    }
4785    #[inline]
4786    pub fn fetch_token(&self) -> Option<SyntaxToken> {
4787        support::token(&self.syntax, SyntaxKind::FETCH_KW)
4788    }
4789    #[inline]
4790    pub fn first_token(&self) -> Option<SyntaxToken> {
4791        support::token(&self.syntax, SyntaxKind::FIRST_KW)
4792    }
4793    #[inline]
4794    pub fn next_token(&self) -> Option<SyntaxToken> {
4795        support::token(&self.syntax, SyntaxKind::NEXT_KW)
4796    }
4797    #[inline]
4798    pub fn only_token(&self) -> Option<SyntaxToken> {
4799        support::token(&self.syntax, SyntaxKind::ONLY_KW)
4800    }
4801    #[inline]
4802    pub fn row_token(&self) -> Option<SyntaxToken> {
4803        support::token(&self.syntax, SyntaxKind::ROW_KW)
4804    }
4805    #[inline]
4806    pub fn rows_token(&self) -> Option<SyntaxToken> {
4807        support::token(&self.syntax, SyntaxKind::ROWS_KW)
4808    }
4809    #[inline]
4810    pub fn ties_token(&self) -> Option<SyntaxToken> {
4811        support::token(&self.syntax, SyntaxKind::TIES_KW)
4812    }
4813    #[inline]
4814    pub fn with_token(&self) -> Option<SyntaxToken> {
4815        support::token(&self.syntax, SyntaxKind::WITH_KW)
4816    }
4817}
4818
4819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4820pub struct FieldExpr {
4821    pub(crate) syntax: SyntaxNode,
4822}
4823impl FieldExpr {
4824    #[inline]
4825    pub fn expr(&self) -> Option<Expr> {
4826        support::child(&self.syntax)
4827    }
4828    #[inline]
4829    pub fn name_ref(&self) -> Option<NameRef> {
4830        support::child(&self.syntax)
4831    }
4832    #[inline]
4833    pub fn star_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::STAR)
4835    }
4836    #[inline]
4837    pub fn dot_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::DOT)
4839    }
4840}
4841
4842#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4843pub struct FilterClause {
4844    pub(crate) syntax: SyntaxNode,
4845}
4846impl FilterClause {
4847    #[inline]
4848    pub fn expr(&self) -> Option<Expr> {
4849        support::child(&self.syntax)
4850    }
4851    #[inline]
4852    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4853        support::token(&self.syntax, SyntaxKind::L_PAREN)
4854    }
4855    #[inline]
4856    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4857        support::token(&self.syntax, SyntaxKind::R_PAREN)
4858    }
4859    #[inline]
4860    pub fn filter_token(&self) -> Option<SyntaxToken> {
4861        support::token(&self.syntax, SyntaxKind::FILTER_KW)
4862    }
4863    #[inline]
4864    pub fn where_token(&self) -> Option<SyntaxToken> {
4865        support::token(&self.syntax, SyntaxKind::WHERE_KW)
4866    }
4867}
4868
4869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4870pub struct ForceRls {
4871    pub(crate) syntax: SyntaxNode,
4872}
4873impl ForceRls {
4874    #[inline]
4875    pub fn force_token(&self) -> Option<SyntaxToken> {
4876        support::token(&self.syntax, SyntaxKind::FORCE_KW)
4877    }
4878    #[inline]
4879    pub fn level_token(&self) -> Option<SyntaxToken> {
4880        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
4881    }
4882    #[inline]
4883    pub fn row_token(&self) -> Option<SyntaxToken> {
4884        support::token(&self.syntax, SyntaxKind::ROW_KW)
4885    }
4886    #[inline]
4887    pub fn security_token(&self) -> Option<SyntaxToken> {
4888        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
4889    }
4890}
4891
4892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4893pub struct ForeignKeyConstraint {
4894    pub(crate) syntax: SyntaxNode,
4895}
4896impl ForeignKeyConstraint {
4897    #[inline]
4898    pub fn from_columns(&self) -> Option<ColumnList> {
4899        support::child(&self.syntax)
4900    }
4901    #[inline]
4902    pub fn match_type(&self) -> Option<MatchType> {
4903        support::child(&self.syntax)
4904    }
4905    #[inline]
4906    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
4907        support::child(&self.syntax)
4908    }
4909    #[inline]
4910    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
4911        support::child(&self.syntax)
4912    }
4913    #[inline]
4914    pub fn path(&self) -> Option<Path> {
4915        support::child(&self.syntax)
4916    }
4917    #[inline]
4918    pub fn to_columns(&self) -> Option<ColumnList> {
4919        support::child(&self.syntax)
4920    }
4921    #[inline]
4922    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4923        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4924    }
4925    #[inline]
4926    pub fn key_token(&self) -> Option<SyntaxToken> {
4927        support::token(&self.syntax, SyntaxKind::KEY_KW)
4928    }
4929    #[inline]
4930    pub fn references_token(&self) -> Option<SyntaxToken> {
4931        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
4932    }
4933}
4934
4935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4936pub struct FrameClause {
4937    pub(crate) syntax: SyntaxNode,
4938}
4939impl FrameClause {
4940    #[inline]
4941    pub fn groups_token(&self) -> Option<SyntaxToken> {
4942        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
4943    }
4944    #[inline]
4945    pub fn range_token(&self) -> Option<SyntaxToken> {
4946        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4947    }
4948    #[inline]
4949    pub fn rows_token(&self) -> Option<SyntaxToken> {
4950        support::token(&self.syntax, SyntaxKind::ROWS_KW)
4951    }
4952}
4953
4954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4955pub struct FromClause {
4956    pub(crate) syntax: SyntaxNode,
4957}
4958impl FromClause {
4959    #[inline]
4960    pub fn from_items(&self) -> AstChildren<FromItem> {
4961        support::children(&self.syntax)
4962    }
4963    #[inline]
4964    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
4965        support::children(&self.syntax)
4966    }
4967    #[inline]
4968    pub fn from_token(&self) -> Option<SyntaxToken> {
4969        support::token(&self.syntax, SyntaxKind::FROM_KW)
4970    }
4971}
4972
4973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4974pub struct FromItem {
4975    pub(crate) syntax: SyntaxNode,
4976}
4977impl FromItem {
4978    #[inline]
4979    pub fn alias(&self) -> Option<Alias> {
4980        support::child(&self.syntax)
4981    }
4982    #[inline]
4983    pub fn call_expr(&self) -> Option<CallExpr> {
4984        support::child(&self.syntax)
4985    }
4986    #[inline]
4987    pub fn name_ref(&self) -> Option<NameRef> {
4988        support::child(&self.syntax)
4989    }
4990    #[inline]
4991    pub fn paren_select(&self) -> Option<ParenSelect> {
4992        support::child(&self.syntax)
4993    }
4994    #[inline]
4995    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4996        support::token(&self.syntax, SyntaxKind::L_PAREN)
4997    }
4998    #[inline]
4999    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5000        support::token(&self.syntax, SyntaxKind::R_PAREN)
5001    }
5002    #[inline]
5003    pub fn from_token(&self) -> Option<SyntaxToken> {
5004        support::token(&self.syntax, SyntaxKind::FROM_KW)
5005    }
5006    #[inline]
5007    pub fn lateral_token(&self) -> Option<SyntaxToken> {
5008        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
5009    }
5010    #[inline]
5011    pub fn only_token(&self) -> Option<SyntaxToken> {
5012        support::token(&self.syntax, SyntaxKind::ONLY_KW)
5013    }
5014    #[inline]
5015    pub fn rows_token(&self) -> Option<SyntaxToken> {
5016        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5017    }
5018}
5019
5020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5021pub struct FuncOptionList {
5022    pub(crate) syntax: SyntaxNode,
5023}
5024impl FuncOptionList {
5025    #[inline]
5026    pub fn options(&self) -> AstChildren<FuncOption> {
5027        support::children(&self.syntax)
5028    }
5029}
5030
5031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5032pub struct GeneratedConstraint {
5033    pub(crate) syntax: SyntaxNode,
5034}
5035impl GeneratedConstraint {
5036    #[inline]
5037    pub fn expr(&self) -> Option<Expr> {
5038        support::child(&self.syntax)
5039    }
5040    #[inline]
5041    pub fn name_ref(&self) -> Option<NameRef> {
5042        support::child(&self.syntax)
5043    }
5044    #[inline]
5045    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
5046        support::child(&self.syntax)
5047    }
5048    #[inline]
5049    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5050        support::token(&self.syntax, SyntaxKind::L_PAREN)
5051    }
5052    #[inline]
5053    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5054        support::token(&self.syntax, SyntaxKind::R_PAREN)
5055    }
5056    #[inline]
5057    pub fn always_token(&self) -> Option<SyntaxToken> {
5058        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
5059    }
5060    #[inline]
5061    pub fn as_token(&self) -> Option<SyntaxToken> {
5062        support::token(&self.syntax, SyntaxKind::AS_KW)
5063    }
5064    #[inline]
5065    pub fn by_token(&self) -> Option<SyntaxToken> {
5066        support::token(&self.syntax, SyntaxKind::BY_KW)
5067    }
5068    #[inline]
5069    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5070        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5071    }
5072    #[inline]
5073    pub fn default_token(&self) -> Option<SyntaxToken> {
5074        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5075    }
5076    #[inline]
5077    pub fn generated_token(&self) -> Option<SyntaxToken> {
5078        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
5079    }
5080    #[inline]
5081    pub fn identity_token(&self) -> Option<SyntaxToken> {
5082        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
5083    }
5084    #[inline]
5085    pub fn stored_token(&self) -> Option<SyntaxToken> {
5086        support::token(&self.syntax, SyntaxKind::STORED_KW)
5087    }
5088}
5089
5090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5091pub struct Grant {
5092    pub(crate) syntax: SyntaxNode,
5093}
5094impl Grant {
5095    #[inline]
5096    pub fn grant_token(&self) -> Option<SyntaxToken> {
5097        support::token(&self.syntax, SyntaxKind::GRANT_KW)
5098    }
5099}
5100
5101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5102pub struct GroupByClause {
5103    pub(crate) syntax: SyntaxNode,
5104}
5105impl GroupByClause {
5106    #[inline]
5107    pub fn group_by_list(&self) -> Option<GroupByList> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn all_token(&self) -> Option<SyntaxToken> {
5112        support::token(&self.syntax, SyntaxKind::ALL_KW)
5113    }
5114    #[inline]
5115    pub fn by_token(&self) -> Option<SyntaxToken> {
5116        support::token(&self.syntax, SyntaxKind::BY_KW)
5117    }
5118    #[inline]
5119    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5120        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5121    }
5122    #[inline]
5123    pub fn group_token(&self) -> Option<SyntaxToken> {
5124        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5125    }
5126}
5127
5128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5129pub struct GroupByList {
5130    pub(crate) syntax: SyntaxNode,
5131}
5132impl GroupByList {
5133    #[inline]
5134    pub fn group_bys(&self) -> AstChildren<GroupBy> {
5135        support::children(&self.syntax)
5136    }
5137}
5138
5139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5140pub struct GroupingCube {
5141    pub(crate) syntax: SyntaxNode,
5142}
5143impl GroupingCube {
5144    #[inline]
5145    pub fn expr(&self) -> Option<Expr> {
5146        support::child(&self.syntax)
5147    }
5148    #[inline]
5149    pub fn cube_token(&self) -> Option<SyntaxToken> {
5150        support::token(&self.syntax, SyntaxKind::CUBE_KW)
5151    }
5152}
5153
5154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5155pub struct GroupingExpr {
5156    pub(crate) syntax: SyntaxNode,
5157}
5158impl GroupingExpr {
5159    #[inline]
5160    pub fn expr(&self) -> Option<Expr> {
5161        support::child(&self.syntax)
5162    }
5163}
5164
5165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5166pub struct GroupingRollup {
5167    pub(crate) syntax: SyntaxNode,
5168}
5169impl GroupingRollup {
5170    #[inline]
5171    pub fn expr(&self) -> Option<Expr> {
5172        support::child(&self.syntax)
5173    }
5174    #[inline]
5175    pub fn rollup_token(&self) -> Option<SyntaxToken> {
5176        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
5177    }
5178}
5179
5180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5181pub struct GroupingSets {
5182    pub(crate) syntax: SyntaxNode,
5183}
5184impl GroupingSets {
5185    #[inline]
5186    pub fn expr(&self) -> Option<Expr> {
5187        support::child(&self.syntax)
5188    }
5189    #[inline]
5190    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5191        support::token(&self.syntax, SyntaxKind::L_PAREN)
5192    }
5193    #[inline]
5194    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5195        support::token(&self.syntax, SyntaxKind::R_PAREN)
5196    }
5197    #[inline]
5198    pub fn grouping_token(&self) -> Option<SyntaxToken> {
5199        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
5200    }
5201    #[inline]
5202    pub fn sets_token(&self) -> Option<SyntaxToken> {
5203        support::token(&self.syntax, SyntaxKind::SETS_KW)
5204    }
5205}
5206
5207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5208pub struct Gteq {
5209    pub(crate) syntax: SyntaxNode,
5210}
5211impl Gteq {
5212    #[inline]
5213    pub fn eq_token(&self) -> Option<SyntaxToken> {
5214        support::token(&self.syntax, SyntaxKind::EQ)
5215    }
5216    #[inline]
5217    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5218        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5219    }
5220}
5221
5222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5223pub struct HavingClause {
5224    pub(crate) syntax: SyntaxNode,
5225}
5226impl HavingClause {
5227    #[inline]
5228    pub fn expr(&self) -> Option<Expr> {
5229        support::child(&self.syntax)
5230    }
5231    #[inline]
5232    pub fn having_token(&self) -> Option<SyntaxToken> {
5233        support::token(&self.syntax, SyntaxKind::HAVING_KW)
5234    }
5235}
5236
5237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5238pub struct IfExists {
5239    pub(crate) syntax: SyntaxNode,
5240}
5241impl IfExists {
5242    #[inline]
5243    pub fn exists_token(&self) -> Option<SyntaxToken> {
5244        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5245    }
5246    #[inline]
5247    pub fn if_token(&self) -> Option<SyntaxToken> {
5248        support::token(&self.syntax, SyntaxKind::IF_KW)
5249    }
5250}
5251
5252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5253pub struct IfNotExists {
5254    pub(crate) syntax: SyntaxNode,
5255}
5256impl IfNotExists {
5257    #[inline]
5258    pub fn exists_token(&self) -> Option<SyntaxToken> {
5259        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5260    }
5261    #[inline]
5262    pub fn if_token(&self) -> Option<SyntaxToken> {
5263        support::token(&self.syntax, SyntaxKind::IF_KW)
5264    }
5265    #[inline]
5266    pub fn not_token(&self) -> Option<SyntaxToken> {
5267        support::token(&self.syntax, SyntaxKind::NOT_KW)
5268    }
5269}
5270
5271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5272pub struct ImportForeignSchema {
5273    pub(crate) syntax: SyntaxNode,
5274}
5275impl ImportForeignSchema {
5276    #[inline]
5277    pub fn name_ref(&self) -> Option<NameRef> {
5278        support::child(&self.syntax)
5279    }
5280    #[inline]
5281    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5282        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5283    }
5284    #[inline]
5285    pub fn import_token(&self) -> Option<SyntaxToken> {
5286        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
5287    }
5288    #[inline]
5289    pub fn schema_token(&self) -> Option<SyntaxToken> {
5290        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
5291    }
5292}
5293
5294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5295pub struct IndexExpr {
5296    pub(crate) syntax: SyntaxNode,
5297}
5298impl IndexExpr {
5299    #[inline]
5300    pub fn base(&self) -> Option<Expr> {
5301        support::child(&self.syntax)
5302    }
5303    #[inline]
5304    pub fn index(&self) -> Option<Expr> {
5305        support::child(&self.syntax)
5306    }
5307    #[inline]
5308    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
5309        support::token(&self.syntax, SyntaxKind::L_BRACK)
5310    }
5311    #[inline]
5312    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
5313        support::token(&self.syntax, SyntaxKind::R_BRACK)
5314    }
5315}
5316
5317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5318pub struct Inherit {
5319    pub(crate) syntax: SyntaxNode,
5320}
5321impl Inherit {
5322    #[inline]
5323    pub fn inherit_token(&self) -> Option<SyntaxToken> {
5324        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
5325    }
5326}
5327
5328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5329pub struct Inherits {
5330    pub(crate) syntax: SyntaxNode,
5331}
5332impl Inherits {
5333    #[inline]
5334    pub fn paths(&self) -> AstChildren<Path> {
5335        support::children(&self.syntax)
5336    }
5337    #[inline]
5338    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5339        support::token(&self.syntax, SyntaxKind::L_PAREN)
5340    }
5341    #[inline]
5342    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5343        support::token(&self.syntax, SyntaxKind::R_PAREN)
5344    }
5345    #[inline]
5346    pub fn inherits_token(&self) -> Option<SyntaxToken> {
5347        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
5348    }
5349}
5350
5351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5352pub struct InitiallyDeferredConstraintOption {
5353    pub(crate) syntax: SyntaxNode,
5354}
5355impl InitiallyDeferredConstraintOption {
5356    #[inline]
5357    pub fn deferred_token(&self) -> Option<SyntaxToken> {
5358        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
5359    }
5360    #[inline]
5361    pub fn initially_token(&self) -> Option<SyntaxToken> {
5362        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5363    }
5364}
5365
5366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5367pub struct InitiallyImmediateConstraintOption {
5368    pub(crate) syntax: SyntaxNode,
5369}
5370impl InitiallyImmediateConstraintOption {
5371    #[inline]
5372    pub fn immediate_token(&self) -> Option<SyntaxToken> {
5373        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
5374    }
5375    #[inline]
5376    pub fn initially_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5378    }
5379}
5380
5381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5382pub struct Insert {
5383    pub(crate) syntax: SyntaxNode,
5384}
5385impl Insert {
5386    #[inline]
5387    pub fn alias(&self) -> Option<Alias> {
5388        support::child(&self.syntax)
5389    }
5390    #[inline]
5391    pub fn column_list(&self) -> Option<ColumnList> {
5392        support::child(&self.syntax)
5393    }
5394    #[inline]
5395    pub fn relation_name(&self) -> Option<RelationName> {
5396        support::child(&self.syntax)
5397    }
5398    #[inline]
5399    pub fn stmt(&self) -> Option<Stmt> {
5400        support::child(&self.syntax)
5401    }
5402    #[inline]
5403    pub fn values(&self) -> Option<Values> {
5404        support::child(&self.syntax)
5405    }
5406    #[inline]
5407    pub fn conflict_token(&self) -> Option<SyntaxToken> {
5408        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
5409    }
5410    #[inline]
5411    pub fn default_token(&self) -> Option<SyntaxToken> {
5412        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5413    }
5414    #[inline]
5415    pub fn insert_token(&self) -> Option<SyntaxToken> {
5416        support::token(&self.syntax, SyntaxKind::INSERT_KW)
5417    }
5418    #[inline]
5419    pub fn into_token(&self) -> Option<SyntaxToken> {
5420        support::token(&self.syntax, SyntaxKind::INTO_KW)
5421    }
5422    #[inline]
5423    pub fn on_token(&self) -> Option<SyntaxToken> {
5424        support::token(&self.syntax, SyntaxKind::ON_KW)
5425    }
5426    #[inline]
5427    pub fn overriding_token(&self) -> Option<SyntaxToken> {
5428        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
5429    }
5430    #[inline]
5431    pub fn system_token(&self) -> Option<SyntaxToken> {
5432        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
5433    }
5434    #[inline]
5435    pub fn user_token(&self) -> Option<SyntaxToken> {
5436        support::token(&self.syntax, SyntaxKind::USER_KW)
5437    }
5438    #[inline]
5439    pub fn value_token(&self) -> Option<SyntaxToken> {
5440        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5441    }
5442    #[inline]
5443    pub fn values_token(&self) -> Option<SyntaxToken> {
5444        support::token(&self.syntax, SyntaxKind::VALUES_KW)
5445    }
5446}
5447
5448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5449pub struct IntervalType {
5450    pub(crate) syntax: SyntaxNode,
5451}
5452impl IntervalType {
5453    #[inline]
5454    pub fn literal(&self) -> Option<Literal> {
5455        support::child(&self.syntax)
5456    }
5457    #[inline]
5458    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5459        support::token(&self.syntax, SyntaxKind::L_PAREN)
5460    }
5461    #[inline]
5462    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5463        support::token(&self.syntax, SyntaxKind::R_PAREN)
5464    }
5465    #[inline]
5466    pub fn day_token(&self) -> Option<SyntaxToken> {
5467        support::token(&self.syntax, SyntaxKind::DAY_KW)
5468    }
5469    #[inline]
5470    pub fn hour_token(&self) -> Option<SyntaxToken> {
5471        support::token(&self.syntax, SyntaxKind::HOUR_KW)
5472    }
5473    #[inline]
5474    pub fn interval_token(&self) -> Option<SyntaxToken> {
5475        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
5476    }
5477    #[inline]
5478    pub fn minute_token(&self) -> Option<SyntaxToken> {
5479        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
5480    }
5481    #[inline]
5482    pub fn month_token(&self) -> Option<SyntaxToken> {
5483        support::token(&self.syntax, SyntaxKind::MONTH_KW)
5484    }
5485    #[inline]
5486    pub fn second_token(&self) -> Option<SyntaxToken> {
5487        support::token(&self.syntax, SyntaxKind::SECOND_KW)
5488    }
5489    #[inline]
5490    pub fn to_token(&self) -> Option<SyntaxToken> {
5491        support::token(&self.syntax, SyntaxKind::TO_KW)
5492    }
5493    #[inline]
5494    pub fn year_token(&self) -> Option<SyntaxToken> {
5495        support::token(&self.syntax, SyntaxKind::YEAR_KW)
5496    }
5497}
5498
5499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5500pub struct IntoClause {
5501    pub(crate) syntax: SyntaxNode,
5502}
5503impl IntoClause {
5504    #[inline]
5505    pub fn into_token(&self) -> Option<SyntaxToken> {
5506        support::token(&self.syntax, SyntaxKind::INTO_KW)
5507    }
5508}
5509
5510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5511pub struct IsDistinctFrom {
5512    pub(crate) syntax: SyntaxNode,
5513}
5514impl IsDistinctFrom {
5515    #[inline]
5516    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5517        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5518    }
5519    #[inline]
5520    pub fn from_token(&self) -> Option<SyntaxToken> {
5521        support::token(&self.syntax, SyntaxKind::FROM_KW)
5522    }
5523    #[inline]
5524    pub fn is_token(&self) -> Option<SyntaxToken> {
5525        support::token(&self.syntax, SyntaxKind::IS_KW)
5526    }
5527}
5528
5529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5530pub struct IsJson {
5531    pub(crate) syntax: SyntaxNode,
5532}
5533impl IsJson {
5534    #[inline]
5535    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5536        support::child(&self.syntax)
5537    }
5538    #[inline]
5539    pub fn is_token(&self) -> Option<SyntaxToken> {
5540        support::token(&self.syntax, SyntaxKind::IS_KW)
5541    }
5542    #[inline]
5543    pub fn json_token(&self) -> Option<SyntaxToken> {
5544        support::token(&self.syntax, SyntaxKind::JSON_KW)
5545    }
5546}
5547
5548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5549pub struct IsJsonArray {
5550    pub(crate) syntax: SyntaxNode,
5551}
5552impl IsJsonArray {
5553    #[inline]
5554    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5555        support::child(&self.syntax)
5556    }
5557    #[inline]
5558    pub fn array_token(&self) -> Option<SyntaxToken> {
5559        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5560    }
5561    #[inline]
5562    pub fn is_token(&self) -> Option<SyntaxToken> {
5563        support::token(&self.syntax, SyntaxKind::IS_KW)
5564    }
5565    #[inline]
5566    pub fn json_token(&self) -> Option<SyntaxToken> {
5567        support::token(&self.syntax, SyntaxKind::JSON_KW)
5568    }
5569}
5570
5571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5572pub struct IsJsonObject {
5573    pub(crate) syntax: SyntaxNode,
5574}
5575impl IsJsonObject {
5576    #[inline]
5577    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5578        support::child(&self.syntax)
5579    }
5580    #[inline]
5581    pub fn is_token(&self) -> Option<SyntaxToken> {
5582        support::token(&self.syntax, SyntaxKind::IS_KW)
5583    }
5584    #[inline]
5585    pub fn json_token(&self) -> Option<SyntaxToken> {
5586        support::token(&self.syntax, SyntaxKind::JSON_KW)
5587    }
5588    #[inline]
5589    pub fn object_token(&self) -> Option<SyntaxToken> {
5590        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5591    }
5592}
5593
5594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5595pub struct IsJsonScalar {
5596    pub(crate) syntax: SyntaxNode,
5597}
5598impl IsJsonScalar {
5599    #[inline]
5600    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5601        support::child(&self.syntax)
5602    }
5603    #[inline]
5604    pub fn is_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::IS_KW)
5606    }
5607    #[inline]
5608    pub fn json_token(&self) -> Option<SyntaxToken> {
5609        support::token(&self.syntax, SyntaxKind::JSON_KW)
5610    }
5611    #[inline]
5612    pub fn scalar_token(&self) -> Option<SyntaxToken> {
5613        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
5614    }
5615}
5616
5617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5618pub struct IsJsonValue {
5619    pub(crate) syntax: SyntaxNode,
5620}
5621impl IsJsonValue {
5622    #[inline]
5623    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5624        support::child(&self.syntax)
5625    }
5626    #[inline]
5627    pub fn is_token(&self) -> Option<SyntaxToken> {
5628        support::token(&self.syntax, SyntaxKind::IS_KW)
5629    }
5630    #[inline]
5631    pub fn json_token(&self) -> Option<SyntaxToken> {
5632        support::token(&self.syntax, SyntaxKind::JSON_KW)
5633    }
5634    #[inline]
5635    pub fn value_token(&self) -> Option<SyntaxToken> {
5636        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5637    }
5638}
5639
5640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5641pub struct IsNormalized {
5642    pub(crate) syntax: SyntaxNode,
5643}
5644impl IsNormalized {
5645    #[inline]
5646    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
5647        support::child(&self.syntax)
5648    }
5649    #[inline]
5650    pub fn is_token(&self) -> Option<SyntaxToken> {
5651        support::token(&self.syntax, SyntaxKind::IS_KW)
5652    }
5653    #[inline]
5654    pub fn normalized_token(&self) -> Option<SyntaxToken> {
5655        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
5656    }
5657}
5658
5659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5660pub struct IsNot {
5661    pub(crate) syntax: SyntaxNode,
5662}
5663impl IsNot {
5664    #[inline]
5665    pub fn is_token(&self) -> Option<SyntaxToken> {
5666        support::token(&self.syntax, SyntaxKind::IS_KW)
5667    }
5668    #[inline]
5669    pub fn not_token(&self) -> Option<SyntaxToken> {
5670        support::token(&self.syntax, SyntaxKind::NOT_KW)
5671    }
5672}
5673
5674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5675pub struct IsNotDistinctFrom {
5676    pub(crate) syntax: SyntaxNode,
5677}
5678impl IsNotDistinctFrom {
5679    #[inline]
5680    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5681        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5682    }
5683    #[inline]
5684    pub fn from_token(&self) -> Option<SyntaxToken> {
5685        support::token(&self.syntax, SyntaxKind::FROM_KW)
5686    }
5687    #[inline]
5688    pub fn is_token(&self) -> Option<SyntaxToken> {
5689        support::token(&self.syntax, SyntaxKind::IS_KW)
5690    }
5691    #[inline]
5692    pub fn not_token(&self) -> Option<SyntaxToken> {
5693        support::token(&self.syntax, SyntaxKind::NOT_KW)
5694    }
5695}
5696
5697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5698pub struct IsNotJson {
5699    pub(crate) syntax: SyntaxNode,
5700}
5701impl IsNotJson {
5702    #[inline]
5703    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5704        support::child(&self.syntax)
5705    }
5706    #[inline]
5707    pub fn is_token(&self) -> Option<SyntaxToken> {
5708        support::token(&self.syntax, SyntaxKind::IS_KW)
5709    }
5710    #[inline]
5711    pub fn json_token(&self) -> Option<SyntaxToken> {
5712        support::token(&self.syntax, SyntaxKind::JSON_KW)
5713    }
5714    #[inline]
5715    pub fn not_token(&self) -> Option<SyntaxToken> {
5716        support::token(&self.syntax, SyntaxKind::NOT_KW)
5717    }
5718}
5719
5720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5721pub struct IsNotJsonArray {
5722    pub(crate) syntax: SyntaxNode,
5723}
5724impl IsNotJsonArray {
5725    #[inline]
5726    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5727        support::child(&self.syntax)
5728    }
5729    #[inline]
5730    pub fn array_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5732    }
5733    #[inline]
5734    pub fn is_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::IS_KW)
5736    }
5737    #[inline]
5738    pub fn json_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::JSON_KW)
5740    }
5741    #[inline]
5742    pub fn not_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::NOT_KW)
5744    }
5745}
5746
5747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5748pub struct IsNotJsonObject {
5749    pub(crate) syntax: SyntaxNode,
5750}
5751impl IsNotJsonObject {
5752    #[inline]
5753    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5754        support::child(&self.syntax)
5755    }
5756    #[inline]
5757    pub fn is_token(&self) -> Option<SyntaxToken> {
5758        support::token(&self.syntax, SyntaxKind::IS_KW)
5759    }
5760    #[inline]
5761    pub fn json_token(&self) -> Option<SyntaxToken> {
5762        support::token(&self.syntax, SyntaxKind::JSON_KW)
5763    }
5764    #[inline]
5765    pub fn not_token(&self) -> Option<SyntaxToken> {
5766        support::token(&self.syntax, SyntaxKind::NOT_KW)
5767    }
5768    #[inline]
5769    pub fn object_token(&self) -> Option<SyntaxToken> {
5770        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5771    }
5772}
5773
5774#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5775pub struct IsNotJsonScalar {
5776    pub(crate) syntax: SyntaxNode,
5777}
5778impl IsNotJsonScalar {
5779    #[inline]
5780    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5781        support::child(&self.syntax)
5782    }
5783    #[inline]
5784    pub fn is_token(&self) -> Option<SyntaxToken> {
5785        support::token(&self.syntax, SyntaxKind::IS_KW)
5786    }
5787    #[inline]
5788    pub fn json_token(&self) -> Option<SyntaxToken> {
5789        support::token(&self.syntax, SyntaxKind::JSON_KW)
5790    }
5791    #[inline]
5792    pub fn not_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::NOT_KW)
5794    }
5795    #[inline]
5796    pub fn scalar_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
5798    }
5799}
5800
5801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5802pub struct IsNotJsonValue {
5803    pub(crate) syntax: SyntaxNode,
5804}
5805impl IsNotJsonValue {
5806    #[inline]
5807    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5808        support::child(&self.syntax)
5809    }
5810    #[inline]
5811    pub fn is_token(&self) -> Option<SyntaxToken> {
5812        support::token(&self.syntax, SyntaxKind::IS_KW)
5813    }
5814    #[inline]
5815    pub fn json_token(&self) -> Option<SyntaxToken> {
5816        support::token(&self.syntax, SyntaxKind::JSON_KW)
5817    }
5818    #[inline]
5819    pub fn not_token(&self) -> Option<SyntaxToken> {
5820        support::token(&self.syntax, SyntaxKind::NOT_KW)
5821    }
5822    #[inline]
5823    pub fn value_token(&self) -> Option<SyntaxToken> {
5824        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5825    }
5826}
5827
5828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5829pub struct IsNotNormalized {
5830    pub(crate) syntax: SyntaxNode,
5831}
5832impl IsNotNormalized {
5833    #[inline]
5834    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
5835        support::child(&self.syntax)
5836    }
5837    #[inline]
5838    pub fn is_token(&self) -> Option<SyntaxToken> {
5839        support::token(&self.syntax, SyntaxKind::IS_KW)
5840    }
5841    #[inline]
5842    pub fn normalized_token(&self) -> Option<SyntaxToken> {
5843        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
5844    }
5845    #[inline]
5846    pub fn not_token(&self) -> Option<SyntaxToken> {
5847        support::token(&self.syntax, SyntaxKind::NOT_KW)
5848    }
5849}
5850
5851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5852pub struct Join {
5853    pub(crate) syntax: SyntaxNode,
5854}
5855impl Join {
5856    #[inline]
5857    pub fn from_item(&self) -> Option<FromItem> {
5858        support::child(&self.syntax)
5859    }
5860    #[inline]
5861    pub fn join_type(&self) -> Option<JoinType> {
5862        support::child(&self.syntax)
5863    }
5864    #[inline]
5865    pub fn on_clause(&self) -> Option<OnClause> {
5866        support::child(&self.syntax)
5867    }
5868    #[inline]
5869    pub fn using_clause(&self) -> Option<JoinUsingClause> {
5870        support::child(&self.syntax)
5871    }
5872    #[inline]
5873    pub fn natural_token(&self) -> Option<SyntaxToken> {
5874        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
5875    }
5876}
5877
5878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5879pub struct JoinCross {
5880    pub(crate) syntax: SyntaxNode,
5881}
5882impl JoinCross {
5883    #[inline]
5884    pub fn cross_token(&self) -> Option<SyntaxToken> {
5885        support::token(&self.syntax, SyntaxKind::CROSS_KW)
5886    }
5887    #[inline]
5888    pub fn join_token(&self) -> Option<SyntaxToken> {
5889        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5890    }
5891}
5892
5893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5894pub struct JoinExpr {
5895    pub(crate) syntax: SyntaxNode,
5896}
5897impl JoinExpr {
5898    #[inline]
5899    pub fn from_item(&self) -> Option<FromItem> {
5900        support::child(&self.syntax)
5901    }
5902    #[inline]
5903    pub fn join(&self) -> Option<Join> {
5904        support::child(&self.syntax)
5905    }
5906    #[inline]
5907    pub fn join_expr(&self) -> Option<JoinExpr> {
5908        support::child(&self.syntax)
5909    }
5910}
5911
5912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5913pub struct JoinFull {
5914    pub(crate) syntax: SyntaxNode,
5915}
5916impl JoinFull {
5917    #[inline]
5918    pub fn full_token(&self) -> Option<SyntaxToken> {
5919        support::token(&self.syntax, SyntaxKind::FULL_KW)
5920    }
5921    #[inline]
5922    pub fn join_token(&self) -> Option<SyntaxToken> {
5923        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5924    }
5925    #[inline]
5926    pub fn outer_token(&self) -> Option<SyntaxToken> {
5927        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5928    }
5929}
5930
5931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5932pub struct JoinInner {
5933    pub(crate) syntax: SyntaxNode,
5934}
5935impl JoinInner {
5936    #[inline]
5937    pub fn inner_token(&self) -> Option<SyntaxToken> {
5938        support::token(&self.syntax, SyntaxKind::INNER_KW)
5939    }
5940    #[inline]
5941    pub fn join_token(&self) -> Option<SyntaxToken> {
5942        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5943    }
5944}
5945
5946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5947pub struct JoinLeft {
5948    pub(crate) syntax: SyntaxNode,
5949}
5950impl JoinLeft {
5951    #[inline]
5952    pub fn join_token(&self) -> Option<SyntaxToken> {
5953        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5954    }
5955    #[inline]
5956    pub fn left_token(&self) -> Option<SyntaxToken> {
5957        support::token(&self.syntax, SyntaxKind::LEFT_KW)
5958    }
5959    #[inline]
5960    pub fn outer_token(&self) -> Option<SyntaxToken> {
5961        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5962    }
5963}
5964
5965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5966pub struct JoinRight {
5967    pub(crate) syntax: SyntaxNode,
5968}
5969impl JoinRight {
5970    #[inline]
5971    pub fn join_token(&self) -> Option<SyntaxToken> {
5972        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5973    }
5974    #[inline]
5975    pub fn outer_token(&self) -> Option<SyntaxToken> {
5976        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5977    }
5978    #[inline]
5979    pub fn right_token(&self) -> Option<SyntaxToken> {
5980        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
5981    }
5982}
5983
5984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5985pub struct JoinUsingClause {
5986    pub(crate) syntax: SyntaxNode,
5987}
5988impl JoinUsingClause {
5989    #[inline]
5990    pub fn alias(&self) -> Option<Alias> {
5991        support::child(&self.syntax)
5992    }
5993    #[inline]
5994    pub fn column_list(&self) -> Option<ColumnList> {
5995        support::child(&self.syntax)
5996    }
5997    #[inline]
5998    pub fn using_token(&self) -> Option<SyntaxToken> {
5999        support::token(&self.syntax, SyntaxKind::USING_KW)
6000    }
6001}
6002
6003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6004pub struct JsonBehaviorDefault {
6005    pub(crate) syntax: SyntaxNode,
6006}
6007impl JsonBehaviorDefault {
6008    #[inline]
6009    pub fn expr(&self) -> Option<Expr> {
6010        support::child(&self.syntax)
6011    }
6012    #[inline]
6013    pub fn default_token(&self) -> Option<SyntaxToken> {
6014        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6015    }
6016}
6017
6018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6019pub struct JsonBehaviorEmptyArray {
6020    pub(crate) syntax: SyntaxNode,
6021}
6022impl JsonBehaviorEmptyArray {
6023    #[inline]
6024    pub fn array_token(&self) -> Option<SyntaxToken> {
6025        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
6026    }
6027    #[inline]
6028    pub fn empty_token(&self) -> Option<SyntaxToken> {
6029        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6030    }
6031}
6032
6033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6034pub struct JsonBehaviorEmptyObject {
6035    pub(crate) syntax: SyntaxNode,
6036}
6037impl JsonBehaviorEmptyObject {
6038    #[inline]
6039    pub fn empty_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6041    }
6042    #[inline]
6043    pub fn object_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
6045    }
6046}
6047
6048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6049pub struct JsonBehaviorError {
6050    pub(crate) syntax: SyntaxNode,
6051}
6052impl JsonBehaviorError {
6053    #[inline]
6054    pub fn error_token(&self) -> Option<SyntaxToken> {
6055        support::token(&self.syntax, SyntaxKind::ERROR_KW)
6056    }
6057}
6058
6059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6060pub struct JsonBehaviorFalse {
6061    pub(crate) syntax: SyntaxNode,
6062}
6063impl JsonBehaviorFalse {
6064    #[inline]
6065    pub fn false_token(&self) -> Option<SyntaxToken> {
6066        support::token(&self.syntax, SyntaxKind::FALSE_KW)
6067    }
6068}
6069
6070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6071pub struct JsonBehaviorNull {
6072    pub(crate) syntax: SyntaxNode,
6073}
6074impl JsonBehaviorNull {
6075    #[inline]
6076    pub fn null_token(&self) -> Option<SyntaxToken> {
6077        support::token(&self.syntax, SyntaxKind::NULL_KW)
6078    }
6079}
6080
6081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6082pub struct JsonBehaviorTrue {
6083    pub(crate) syntax: SyntaxNode,
6084}
6085impl JsonBehaviorTrue {
6086    #[inline]
6087    pub fn true_token(&self) -> Option<SyntaxToken> {
6088        support::token(&self.syntax, SyntaxKind::TRUE_KW)
6089    }
6090}
6091
6092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6093pub struct JsonBehaviorUnknown {
6094    pub(crate) syntax: SyntaxNode,
6095}
6096impl JsonBehaviorUnknown {
6097    #[inline]
6098    pub fn unknown_token(&self) -> Option<SyntaxToken> {
6099        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
6100    }
6101}
6102
6103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6104pub struct JsonFormatClause {
6105    pub(crate) syntax: SyntaxNode,
6106}
6107impl JsonFormatClause {
6108    #[inline]
6109    pub fn name(&self) -> Option<Name> {
6110        support::child(&self.syntax)
6111    }
6112    #[inline]
6113    pub fn encoding_token(&self) -> Option<SyntaxToken> {
6114        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
6115    }
6116    #[inline]
6117    pub fn format_token(&self) -> Option<SyntaxToken> {
6118        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
6119    }
6120    #[inline]
6121    pub fn json_token(&self) -> Option<SyntaxToken> {
6122        support::token(&self.syntax, SyntaxKind::JSON_KW)
6123    }
6124}
6125
6126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6127pub struct JsonKeyValue {
6128    pub(crate) syntax: SyntaxNode,
6129}
6130impl JsonKeyValue {
6131    #[inline]
6132    pub fn expr(&self) -> Option<Expr> {
6133        support::child(&self.syntax)
6134    }
6135    #[inline]
6136    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
6137        support::child(&self.syntax)
6138    }
6139    #[inline]
6140    pub fn colon_token(&self) -> Option<SyntaxToken> {
6141        support::token(&self.syntax, SyntaxKind::COLON)
6142    }
6143}
6144
6145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6146pub struct JsonKeysUniqueClause {
6147    pub(crate) syntax: SyntaxNode,
6148}
6149impl JsonKeysUniqueClause {
6150    #[inline]
6151    pub fn keys_token(&self) -> Option<SyntaxToken> {
6152        support::token(&self.syntax, SyntaxKind::KEYS_KW)
6153    }
6154    #[inline]
6155    pub fn unique_token(&self) -> Option<SyntaxToken> {
6156        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
6157    }
6158    #[inline]
6159    pub fn with_token(&self) -> Option<SyntaxToken> {
6160        support::token(&self.syntax, SyntaxKind::WITH_KW)
6161    }
6162    #[inline]
6163    pub fn without_token(&self) -> Option<SyntaxToken> {
6164        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6165    }
6166}
6167
6168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6169pub struct JsonNullClause {
6170    pub(crate) syntax: SyntaxNode,
6171}
6172impl JsonNullClause {
6173    #[inline]
6174    pub fn absent_token(&self) -> Option<SyntaxToken> {
6175        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
6176    }
6177    #[inline]
6178    pub fn null_token(&self) -> Option<SyntaxToken> {
6179        support::token(&self.syntax, SyntaxKind::NULL_KW)
6180    }
6181    #[inline]
6182    pub fn on_token(&self) -> Option<SyntaxToken> {
6183        support::token(&self.syntax, SyntaxKind::ON_KW)
6184    }
6185}
6186
6187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6188pub struct JsonOnEmptyClause {
6189    pub(crate) syntax: SyntaxNode,
6190}
6191impl JsonOnEmptyClause {
6192    #[inline]
6193    pub fn json_behavior(&self) -> Option<JsonBehavior> {
6194        support::child(&self.syntax)
6195    }
6196    #[inline]
6197    pub fn empty_token(&self) -> Option<SyntaxToken> {
6198        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6199    }
6200    #[inline]
6201    pub fn on_token(&self) -> Option<SyntaxToken> {
6202        support::token(&self.syntax, SyntaxKind::ON_KW)
6203    }
6204}
6205
6206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6207pub struct JsonOnErrorClause {
6208    pub(crate) syntax: SyntaxNode,
6209}
6210impl JsonOnErrorClause {
6211    #[inline]
6212    pub fn json_behavior(&self) -> Option<JsonBehavior> {
6213        support::child(&self.syntax)
6214    }
6215    #[inline]
6216    pub fn error_token(&self) -> Option<SyntaxToken> {
6217        support::token(&self.syntax, SyntaxKind::ERROR_KW)
6218    }
6219    #[inline]
6220    pub fn on_token(&self) -> Option<SyntaxToken> {
6221        support::token(&self.syntax, SyntaxKind::ON_KW)
6222    }
6223}
6224
6225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6226pub struct JsonPassingArg {
6227    pub(crate) syntax: SyntaxNode,
6228}
6229impl JsonPassingArg {
6230    #[inline]
6231    pub fn expr(&self) -> Option<Expr> {
6232        support::child(&self.syntax)
6233    }
6234    #[inline]
6235    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6236        support::child(&self.syntax)
6237    }
6238    #[inline]
6239    pub fn name(&self) -> Option<Name> {
6240        support::child(&self.syntax)
6241    }
6242    #[inline]
6243    pub fn as_token(&self) -> Option<SyntaxToken> {
6244        support::token(&self.syntax, SyntaxKind::AS_KW)
6245    }
6246}
6247
6248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6249pub struct JsonPassingClause {
6250    pub(crate) syntax: SyntaxNode,
6251}
6252impl JsonPassingClause {
6253    #[inline]
6254    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
6255        support::children(&self.syntax)
6256    }
6257    #[inline]
6258    pub fn passing_token(&self) -> Option<SyntaxToken> {
6259        support::token(&self.syntax, SyntaxKind::PASSING_KW)
6260    }
6261}
6262
6263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6264pub struct JsonQuotesClause {
6265    pub(crate) syntax: SyntaxNode,
6266}
6267impl JsonQuotesClause {
6268    #[inline]
6269    pub fn keep_token(&self) -> Option<SyntaxToken> {
6270        support::token(&self.syntax, SyntaxKind::KEEP_KW)
6271    }
6272    #[inline]
6273    pub fn omit_token(&self) -> Option<SyntaxToken> {
6274        support::token(&self.syntax, SyntaxKind::OMIT_KW)
6275    }
6276    #[inline]
6277    pub fn quotes_token(&self) -> Option<SyntaxToken> {
6278        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
6279    }
6280}
6281
6282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6283pub struct JsonReturningClause {
6284    pub(crate) syntax: SyntaxNode,
6285}
6286impl JsonReturningClause {
6287    #[inline]
6288    pub fn ty(&self) -> Option<Type> {
6289        support::child(&self.syntax)
6290    }
6291    #[inline]
6292    pub fn returning_token(&self) -> Option<SyntaxToken> {
6293        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
6294    }
6295}
6296
6297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6298pub struct JsonTableColumn {
6299    pub(crate) syntax: SyntaxNode,
6300}
6301impl JsonTableColumn {
6302    #[inline]
6303    pub fn expr(&self) -> Option<Expr> {
6304        support::child(&self.syntax)
6305    }
6306    #[inline]
6307    pub fn name(&self) -> Option<Name> {
6308        support::child(&self.syntax)
6309    }
6310    #[inline]
6311    pub fn ty(&self) -> Option<Type> {
6312        support::child(&self.syntax)
6313    }
6314    #[inline]
6315    pub fn for_token(&self) -> Option<SyntaxToken> {
6316        support::token(&self.syntax, SyntaxKind::FOR_KW)
6317    }
6318    #[inline]
6319    pub fn nested_token(&self) -> Option<SyntaxToken> {
6320        support::token(&self.syntax, SyntaxKind::NESTED_KW)
6321    }
6322    #[inline]
6323    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
6324        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
6325    }
6326    #[inline]
6327    pub fn path_token(&self) -> Option<SyntaxToken> {
6328        support::token(&self.syntax, SyntaxKind::PATH_KW)
6329    }
6330}
6331
6332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6333pub struct JsonTableColumnList {
6334    pub(crate) syntax: SyntaxNode,
6335}
6336impl JsonTableColumnList {
6337    #[inline]
6338    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
6339        support::children(&self.syntax)
6340    }
6341    #[inline]
6342    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6343        support::token(&self.syntax, SyntaxKind::L_PAREN)
6344    }
6345    #[inline]
6346    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6347        support::token(&self.syntax, SyntaxKind::R_PAREN)
6348    }
6349    #[inline]
6350    pub fn columns_token(&self) -> Option<SyntaxToken> {
6351        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
6352    }
6353}
6354
6355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6356pub struct JsonValueExpr {
6357    pub(crate) syntax: SyntaxNode,
6358}
6359impl JsonValueExpr {
6360    #[inline]
6361    pub fn expr(&self) -> Option<Expr> {
6362        support::child(&self.syntax)
6363    }
6364    #[inline]
6365    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6366        support::child(&self.syntax)
6367    }
6368}
6369
6370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6371pub struct JsonWrapperBehaviorClause {
6372    pub(crate) syntax: SyntaxNode,
6373}
6374impl JsonWrapperBehaviorClause {
6375    #[inline]
6376    pub fn conditional_token(&self) -> Option<SyntaxToken> {
6377        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
6378    }
6379    #[inline]
6380    pub fn with_token(&self) -> Option<SyntaxToken> {
6381        support::token(&self.syntax, SyntaxKind::WITH_KW)
6382    }
6383    #[inline]
6384    pub fn without_token(&self) -> Option<SyntaxToken> {
6385        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6386    }
6387    #[inline]
6388    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6389        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6390    }
6391}
6392
6393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6394pub struct LanguageFuncOption {
6395    pub(crate) syntax: SyntaxNode,
6396}
6397impl LanguageFuncOption {
6398    #[inline]
6399    pub fn name_ref(&self) -> Option<NameRef> {
6400        support::child(&self.syntax)
6401    }
6402    #[inline]
6403    pub fn language_token(&self) -> Option<SyntaxToken> {
6404        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6405    }
6406}
6407
6408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6409pub struct LeakproofFuncOption {
6410    pub(crate) syntax: SyntaxNode,
6411}
6412impl LeakproofFuncOption {
6413    #[inline]
6414    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
6415        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
6416    }
6417    #[inline]
6418    pub fn not_token(&self) -> Option<SyntaxToken> {
6419        support::token(&self.syntax, SyntaxKind::NOT_KW)
6420    }
6421}
6422
6423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6424pub struct LikeClause {
6425    pub(crate) syntax: SyntaxNode,
6426}
6427impl LikeClause {
6428    #[inline]
6429    pub fn like_options(&self) -> AstChildren<LikeOption> {
6430        support::children(&self.syntax)
6431    }
6432    #[inline]
6433    pub fn like_token(&self) -> Option<SyntaxToken> {
6434        support::token(&self.syntax, SyntaxKind::LIKE_KW)
6435    }
6436}
6437
6438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6439pub struct LikeOption {
6440    pub(crate) syntax: SyntaxNode,
6441}
6442impl LikeOption {
6443    #[inline]
6444    pub fn comments_token(&self) -> Option<SyntaxToken> {
6445        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
6446    }
6447    #[inline]
6448    pub fn compression_token(&self) -> Option<SyntaxToken> {
6449        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
6450    }
6451    #[inline]
6452    pub fn constraints_token(&self) -> Option<SyntaxToken> {
6453        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
6454    }
6455    #[inline]
6456    pub fn defaults_token(&self) -> Option<SyntaxToken> {
6457        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
6458    }
6459    #[inline]
6460    pub fn excluding_token(&self) -> Option<SyntaxToken> {
6461        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
6462    }
6463    #[inline]
6464    pub fn generated_token(&self) -> Option<SyntaxToken> {
6465        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
6466    }
6467    #[inline]
6468    pub fn identity_token(&self) -> Option<SyntaxToken> {
6469        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6470    }
6471    #[inline]
6472    pub fn including_token(&self) -> Option<SyntaxToken> {
6473        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
6474    }
6475    #[inline]
6476    pub fn indexes_token(&self) -> Option<SyntaxToken> {
6477        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
6478    }
6479}
6480
6481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6482pub struct LimitClause {
6483    pub(crate) syntax: SyntaxNode,
6484}
6485impl LimitClause {
6486    #[inline]
6487    pub fn expr(&self) -> Option<Expr> {
6488        support::child(&self.syntax)
6489    }
6490    #[inline]
6491    pub fn all_token(&self) -> Option<SyntaxToken> {
6492        support::token(&self.syntax, SyntaxKind::ALL_KW)
6493    }
6494    #[inline]
6495    pub fn limit_token(&self) -> Option<SyntaxToken> {
6496        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
6497    }
6498}
6499
6500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6501pub struct Listen {
6502    pub(crate) syntax: SyntaxNode,
6503}
6504impl Listen {
6505    #[inline]
6506    pub fn name_ref(&self) -> Option<NameRef> {
6507        support::child(&self.syntax)
6508    }
6509    #[inline]
6510    pub fn listen_token(&self) -> Option<SyntaxToken> {
6511        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
6512    }
6513}
6514
6515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6516pub struct Literal {
6517    pub(crate) syntax: SyntaxNode,
6518}
6519impl Literal {}
6520
6521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6522pub struct Load {
6523    pub(crate) syntax: SyntaxNode,
6524}
6525impl Load {
6526    #[inline]
6527    pub fn load_token(&self) -> Option<SyntaxToken> {
6528        support::token(&self.syntax, SyntaxKind::LOAD_KW)
6529    }
6530}
6531
6532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6533pub struct Lock {
6534    pub(crate) syntax: SyntaxNode,
6535}
6536impl Lock {
6537    #[inline]
6538    pub fn lock_token(&self) -> Option<SyntaxToken> {
6539        support::token(&self.syntax, SyntaxKind::LOCK_KW)
6540    }
6541    #[inline]
6542    pub fn table_token(&self) -> Option<SyntaxToken> {
6543        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6544    }
6545}
6546
6547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6548pub struct LockingClause {
6549    pub(crate) syntax: SyntaxNode,
6550}
6551impl LockingClause {
6552    #[inline]
6553    pub fn for_token(&self) -> Option<SyntaxToken> {
6554        support::token(&self.syntax, SyntaxKind::FOR_KW)
6555    }
6556}
6557
6558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6559pub struct Lteq {
6560    pub(crate) syntax: SyntaxNode,
6561}
6562impl Lteq {
6563    #[inline]
6564    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6565        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6566    }
6567    #[inline]
6568    pub fn eq_token(&self) -> Option<SyntaxToken> {
6569        support::token(&self.syntax, SyntaxKind::EQ)
6570    }
6571}
6572
6573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6574pub struct MatchFull {
6575    pub(crate) syntax: SyntaxNode,
6576}
6577impl MatchFull {
6578    #[inline]
6579    pub fn full_token(&self) -> Option<SyntaxToken> {
6580        support::token(&self.syntax, SyntaxKind::FULL_KW)
6581    }
6582    #[inline]
6583    pub fn match_token(&self) -> Option<SyntaxToken> {
6584        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6585    }
6586}
6587
6588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6589pub struct MatchPartial {
6590    pub(crate) syntax: SyntaxNode,
6591}
6592impl MatchPartial {
6593    #[inline]
6594    pub fn match_token(&self) -> Option<SyntaxToken> {
6595        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6596    }
6597    #[inline]
6598    pub fn partial_token(&self) -> Option<SyntaxToken> {
6599        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
6600    }
6601}
6602
6603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6604pub struct MatchSimple {
6605    pub(crate) syntax: SyntaxNode,
6606}
6607impl MatchSimple {
6608    #[inline]
6609    pub fn match_token(&self) -> Option<SyntaxToken> {
6610        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6611    }
6612    #[inline]
6613    pub fn simple_token(&self) -> Option<SyntaxToken> {
6614        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
6615    }
6616}
6617
6618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6619pub struct Materialized {
6620    pub(crate) syntax: SyntaxNode,
6621}
6622impl Materialized {
6623    #[inline]
6624    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6625        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6626    }
6627}
6628
6629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6630pub struct Merge {
6631    pub(crate) syntax: SyntaxNode,
6632}
6633impl Merge {
6634    #[inline]
6635    pub fn alias(&self) -> Option<Alias> {
6636        support::child(&self.syntax)
6637    }
6638    #[inline]
6639    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
6640        support::children(&self.syntax)
6641    }
6642    #[inline]
6643    pub fn relation_name(&self) -> Option<RelationName> {
6644        support::child(&self.syntax)
6645    }
6646    #[inline]
6647    pub fn using_clause(&self) -> Option<UsingClause> {
6648        support::child(&self.syntax)
6649    }
6650    #[inline]
6651    pub fn into_token(&self) -> Option<SyntaxToken> {
6652        support::token(&self.syntax, SyntaxKind::INTO_KW)
6653    }
6654    #[inline]
6655    pub fn merge_token(&self) -> Option<SyntaxToken> {
6656        support::token(&self.syntax, SyntaxKind::MERGE_KW)
6657    }
6658}
6659
6660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6661pub struct MergeDelete {
6662    pub(crate) syntax: SyntaxNode,
6663}
6664impl MergeDelete {
6665    #[inline]
6666    pub fn delete_token(&self) -> Option<SyntaxToken> {
6667        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6668    }
6669}
6670
6671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6672pub struct MergeDoNothing {
6673    pub(crate) syntax: SyntaxNode,
6674}
6675impl MergeDoNothing {
6676    #[inline]
6677    pub fn do_token(&self) -> Option<SyntaxToken> {
6678        support::token(&self.syntax, SyntaxKind::DO_KW)
6679    }
6680    #[inline]
6681    pub fn nothing_token(&self) -> Option<SyntaxToken> {
6682        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
6683    }
6684}
6685
6686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6687pub struct MergeInsert {
6688    pub(crate) syntax: SyntaxNode,
6689}
6690impl MergeInsert {
6691    #[inline]
6692    pub fn insert_token(&self) -> Option<SyntaxToken> {
6693        support::token(&self.syntax, SyntaxKind::INSERT_KW)
6694    }
6695}
6696
6697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6698pub struct MergeUpdate {
6699    pub(crate) syntax: SyntaxNode,
6700}
6701impl MergeUpdate {
6702    #[inline]
6703    pub fn set_token(&self) -> Option<SyntaxToken> {
6704        support::token(&self.syntax, SyntaxKind::SET_KW)
6705    }
6706    #[inline]
6707    pub fn update_token(&self) -> Option<SyntaxToken> {
6708        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
6709    }
6710}
6711
6712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6713pub struct MergeWhenMatched {
6714    pub(crate) syntax: SyntaxNode,
6715}
6716impl MergeWhenMatched {
6717    #[inline]
6718    pub fn condition(&self) -> Option<Expr> {
6719        support::child(&self.syntax)
6720    }
6721    #[inline]
6722    pub fn merge_action(&self) -> Option<MergeAction> {
6723        support::child(&self.syntax)
6724    }
6725    #[inline]
6726    pub fn and_token(&self) -> Option<SyntaxToken> {
6727        support::token(&self.syntax, SyntaxKind::AND_KW)
6728    }
6729    #[inline]
6730    pub fn matched_token(&self) -> Option<SyntaxToken> {
6731        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
6732    }
6733    #[inline]
6734    pub fn then_token(&self) -> Option<SyntaxToken> {
6735        support::token(&self.syntax, SyntaxKind::THEN_KW)
6736    }
6737    #[inline]
6738    pub fn when_token(&self) -> Option<SyntaxToken> {
6739        support::token(&self.syntax, SyntaxKind::WHEN_KW)
6740    }
6741}
6742
6743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6744pub struct MergeWhenNotMatchedSource {
6745    pub(crate) syntax: SyntaxNode,
6746}
6747impl MergeWhenNotMatchedSource {
6748    #[inline]
6749    pub fn condition(&self) -> Option<Expr> {
6750        support::child(&self.syntax)
6751    }
6752    #[inline]
6753    pub fn merge_action(&self) -> Option<MergeAction> {
6754        support::child(&self.syntax)
6755    }
6756    #[inline]
6757    pub fn and_token(&self) -> Option<SyntaxToken> {
6758        support::token(&self.syntax, SyntaxKind::AND_KW)
6759    }
6760    #[inline]
6761    pub fn by_token(&self) -> Option<SyntaxToken> {
6762        support::token(&self.syntax, SyntaxKind::BY_KW)
6763    }
6764    #[inline]
6765    pub fn matched_token(&self) -> Option<SyntaxToken> {
6766        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
6767    }
6768    #[inline]
6769    pub fn not_token(&self) -> Option<SyntaxToken> {
6770        support::token(&self.syntax, SyntaxKind::NOT_KW)
6771    }
6772    #[inline]
6773    pub fn source_token(&self) -> Option<SyntaxToken> {
6774        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
6775    }
6776    #[inline]
6777    pub fn then_token(&self) -> Option<SyntaxToken> {
6778        support::token(&self.syntax, SyntaxKind::THEN_KW)
6779    }
6780    #[inline]
6781    pub fn when_token(&self) -> Option<SyntaxToken> {
6782        support::token(&self.syntax, SyntaxKind::WHEN_KW)
6783    }
6784}
6785
6786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6787pub struct MergeWhenNotMatchedTarget {
6788    pub(crate) syntax: SyntaxNode,
6789}
6790impl MergeWhenNotMatchedTarget {
6791    #[inline]
6792    pub fn condition(&self) -> Option<Expr> {
6793        support::child(&self.syntax)
6794    }
6795    #[inline]
6796    pub fn merge_action(&self) -> Option<MergeAction> {
6797        support::child(&self.syntax)
6798    }
6799    #[inline]
6800    pub fn and_token(&self) -> Option<SyntaxToken> {
6801        support::token(&self.syntax, SyntaxKind::AND_KW)
6802    }
6803    #[inline]
6804    pub fn by_token(&self) -> Option<SyntaxToken> {
6805        support::token(&self.syntax, SyntaxKind::BY_KW)
6806    }
6807    #[inline]
6808    pub fn matched_token(&self) -> Option<SyntaxToken> {
6809        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
6810    }
6811    #[inline]
6812    pub fn not_token(&self) -> Option<SyntaxToken> {
6813        support::token(&self.syntax, SyntaxKind::NOT_KW)
6814    }
6815    #[inline]
6816    pub fn target_token(&self) -> Option<SyntaxToken> {
6817        support::token(&self.syntax, SyntaxKind::TARGET_KW)
6818    }
6819    #[inline]
6820    pub fn then_token(&self) -> Option<SyntaxToken> {
6821        support::token(&self.syntax, SyntaxKind::THEN_KW)
6822    }
6823    #[inline]
6824    pub fn when_token(&self) -> Option<SyntaxToken> {
6825        support::token(&self.syntax, SyntaxKind::WHEN_KW)
6826    }
6827}
6828
6829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6830pub struct Move {
6831    pub(crate) syntax: SyntaxNode,
6832}
6833impl Move {
6834    #[inline]
6835    pub fn move_token(&self) -> Option<SyntaxToken> {
6836        support::token(&self.syntax, SyntaxKind::MOVE_KW)
6837    }
6838}
6839
6840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6841pub struct Name {
6842    pub(crate) syntax: SyntaxNode,
6843}
6844impl Name {
6845    #[inline]
6846    pub fn ident_token(&self) -> Option<SyntaxToken> {
6847        support::token(&self.syntax, SyntaxKind::IDENT)
6848    }
6849}
6850
6851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6852pub struct NameRef {
6853    pub(crate) syntax: SyntaxNode,
6854}
6855impl NameRef {
6856    #[inline]
6857    pub fn ident_token(&self) -> Option<SyntaxToken> {
6858        support::token(&self.syntax, SyntaxKind::IDENT)
6859    }
6860}
6861
6862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6863pub struct NamedArg {
6864    pub(crate) syntax: SyntaxNode,
6865}
6866impl NamedArg {
6867    #[inline]
6868    pub fn expr(&self) -> Option<Expr> {
6869        support::child(&self.syntax)
6870    }
6871    #[inline]
6872    pub fn fat_arrow(&self) -> Option<FatArrow> {
6873        support::child(&self.syntax)
6874    }
6875    #[inline]
6876    pub fn name_ref(&self) -> Option<NameRef> {
6877        support::child(&self.syntax)
6878    }
6879}
6880
6881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6882pub struct Neq {
6883    pub(crate) syntax: SyntaxNode,
6884}
6885impl Neq {
6886    #[inline]
6887    pub fn bang_token(&self) -> Option<SyntaxToken> {
6888        support::token(&self.syntax, SyntaxKind::BANG)
6889    }
6890    #[inline]
6891    pub fn eq_token(&self) -> Option<SyntaxToken> {
6892        support::token(&self.syntax, SyntaxKind::EQ)
6893    }
6894}
6895
6896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6897pub struct Neqb {
6898    pub(crate) syntax: SyntaxNode,
6899}
6900impl Neqb {
6901    #[inline]
6902    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6903        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6904    }
6905    #[inline]
6906    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
6907        support::token(&self.syntax, SyntaxKind::R_ANGLE)
6908    }
6909}
6910
6911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6912pub struct NoAction {
6913    pub(crate) syntax: SyntaxNode,
6914}
6915impl NoAction {
6916    #[inline]
6917    pub fn action_token(&self) -> Option<SyntaxToken> {
6918        support::token(&self.syntax, SyntaxKind::ACTION_KW)
6919    }
6920    #[inline]
6921    pub fn no_token(&self) -> Option<SyntaxToken> {
6922        support::token(&self.syntax, SyntaxKind::NO_KW)
6923    }
6924}
6925
6926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6927pub struct NoForceRls {
6928    pub(crate) syntax: SyntaxNode,
6929}
6930impl NoForceRls {
6931    #[inline]
6932    pub fn force_token(&self) -> Option<SyntaxToken> {
6933        support::token(&self.syntax, SyntaxKind::FORCE_KW)
6934    }
6935    #[inline]
6936    pub fn level_token(&self) -> Option<SyntaxToken> {
6937        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6938    }
6939    #[inline]
6940    pub fn no_token(&self) -> Option<SyntaxToken> {
6941        support::token(&self.syntax, SyntaxKind::NO_KW)
6942    }
6943    #[inline]
6944    pub fn row_token(&self) -> Option<SyntaxToken> {
6945        support::token(&self.syntax, SyntaxKind::ROW_KW)
6946    }
6947    #[inline]
6948    pub fn security_token(&self) -> Option<SyntaxToken> {
6949        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6950    }
6951}
6952
6953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6954pub struct NoInherit {
6955    pub(crate) syntax: SyntaxNode,
6956}
6957impl NoInherit {
6958    #[inline]
6959    pub fn inherit_token(&self) -> Option<SyntaxToken> {
6960        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
6961    }
6962    #[inline]
6963    pub fn no_token(&self) -> Option<SyntaxToken> {
6964        support::token(&self.syntax, SyntaxKind::NO_KW)
6965    }
6966}
6967
6968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6969pub struct NonStandardParam {
6970    pub(crate) syntax: SyntaxNode,
6971}
6972impl NonStandardParam {
6973    #[inline]
6974    pub fn name_ref(&self) -> Option<NameRef> {
6975        support::child(&self.syntax)
6976    }
6977    #[inline]
6978    pub fn colon_token(&self) -> Option<SyntaxToken> {
6979        support::token(&self.syntax, SyntaxKind::COLON)
6980    }
6981}
6982
6983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6984pub struct NotDeferrable {
6985    pub(crate) syntax: SyntaxNode,
6986}
6987impl NotDeferrable {
6988    #[inline]
6989    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6990        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6991    }
6992    #[inline]
6993    pub fn not_token(&self) -> Option<SyntaxToken> {
6994        support::token(&self.syntax, SyntaxKind::NOT_KW)
6995    }
6996}
6997
6998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6999pub struct NotDeferrableConstraintOption {
7000    pub(crate) syntax: SyntaxNode,
7001}
7002impl NotDeferrableConstraintOption {
7003    #[inline]
7004    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
7005        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
7006    }
7007    #[inline]
7008    pub fn not_token(&self) -> Option<SyntaxToken> {
7009        support::token(&self.syntax, SyntaxKind::NOT_KW)
7010    }
7011}
7012
7013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7014pub struct NotEnforced {
7015    pub(crate) syntax: SyntaxNode,
7016}
7017impl NotEnforced {
7018    #[inline]
7019    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7020        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7021    }
7022    #[inline]
7023    pub fn not_token(&self) -> Option<SyntaxToken> {
7024        support::token(&self.syntax, SyntaxKind::NOT_KW)
7025    }
7026}
7027
7028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7029pub struct NotIlike {
7030    pub(crate) syntax: SyntaxNode,
7031}
7032impl NotIlike {
7033    #[inline]
7034    pub fn ilike_token(&self) -> Option<SyntaxToken> {
7035        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
7036    }
7037    #[inline]
7038    pub fn not_token(&self) -> Option<SyntaxToken> {
7039        support::token(&self.syntax, SyntaxKind::NOT_KW)
7040    }
7041}
7042
7043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7044pub struct NotIn {
7045    pub(crate) syntax: SyntaxNode,
7046}
7047impl NotIn {
7048    #[inline]
7049    pub fn in_token(&self) -> Option<SyntaxToken> {
7050        support::token(&self.syntax, SyntaxKind::IN_KW)
7051    }
7052    #[inline]
7053    pub fn not_token(&self) -> Option<SyntaxToken> {
7054        support::token(&self.syntax, SyntaxKind::NOT_KW)
7055    }
7056}
7057
7058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7059pub struct NotLike {
7060    pub(crate) syntax: SyntaxNode,
7061}
7062impl NotLike {
7063    #[inline]
7064    pub fn like_token(&self) -> Option<SyntaxToken> {
7065        support::token(&self.syntax, SyntaxKind::LIKE_KW)
7066    }
7067    #[inline]
7068    pub fn not_token(&self) -> Option<SyntaxToken> {
7069        support::token(&self.syntax, SyntaxKind::NOT_KW)
7070    }
7071}
7072
7073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7074pub struct NotMaterialized {
7075    pub(crate) syntax: SyntaxNode,
7076}
7077impl NotMaterialized {
7078    #[inline]
7079    pub fn materialized_token(&self) -> Option<SyntaxToken> {
7080        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
7081    }
7082    #[inline]
7083    pub fn not_token(&self) -> Option<SyntaxToken> {
7084        support::token(&self.syntax, SyntaxKind::NOT_KW)
7085    }
7086}
7087
7088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7089pub struct NotNullConstraint {
7090    pub(crate) syntax: SyntaxNode,
7091}
7092impl NotNullConstraint {
7093    #[inline]
7094    pub fn name_ref(&self) -> Option<NameRef> {
7095        support::child(&self.syntax)
7096    }
7097    #[inline]
7098    pub fn no_inherit(&self) -> Option<NoInherit> {
7099        support::child(&self.syntax)
7100    }
7101    #[inline]
7102    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7103        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7104    }
7105    #[inline]
7106    pub fn not_token(&self) -> Option<SyntaxToken> {
7107        support::token(&self.syntax, SyntaxKind::NOT_KW)
7108    }
7109    #[inline]
7110    pub fn null_token(&self) -> Option<SyntaxToken> {
7111        support::token(&self.syntax, SyntaxKind::NULL_KW)
7112    }
7113}
7114
7115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7116pub struct NotOf {
7117    pub(crate) syntax: SyntaxNode,
7118}
7119impl NotOf {
7120    #[inline]
7121    pub fn not_token(&self) -> Option<SyntaxToken> {
7122        support::token(&self.syntax, SyntaxKind::NOT_KW)
7123    }
7124    #[inline]
7125    pub fn of_token(&self) -> Option<SyntaxToken> {
7126        support::token(&self.syntax, SyntaxKind::OF_KW)
7127    }
7128}
7129
7130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7131pub struct NotSimilarTo {
7132    pub(crate) syntax: SyntaxNode,
7133}
7134impl NotSimilarTo {
7135    #[inline]
7136    pub fn not_token(&self) -> Option<SyntaxToken> {
7137        support::token(&self.syntax, SyntaxKind::NOT_KW)
7138    }
7139    #[inline]
7140    pub fn similar_token(&self) -> Option<SyntaxToken> {
7141        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
7142    }
7143    #[inline]
7144    pub fn to_token(&self) -> Option<SyntaxToken> {
7145        support::token(&self.syntax, SyntaxKind::TO_KW)
7146    }
7147}
7148
7149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7150pub struct NotValid {
7151    pub(crate) syntax: SyntaxNode,
7152}
7153impl NotValid {
7154    #[inline]
7155    pub fn not_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::NOT_KW)
7157    }
7158    #[inline]
7159    pub fn valid_token(&self) -> Option<SyntaxToken> {
7160        support::token(&self.syntax, SyntaxKind::VALID_KW)
7161    }
7162}
7163
7164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7165pub struct Notify {
7166    pub(crate) syntax: SyntaxNode,
7167}
7168impl Notify {
7169    #[inline]
7170    pub fn notify_token(&self) -> Option<SyntaxToken> {
7171        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
7172    }
7173}
7174
7175#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7176pub struct NullConstraint {
7177    pub(crate) syntax: SyntaxNode,
7178}
7179impl NullConstraint {
7180    #[inline]
7181    pub fn name_ref(&self) -> Option<NameRef> {
7182        support::child(&self.syntax)
7183    }
7184    #[inline]
7185    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7186        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7187    }
7188    #[inline]
7189    pub fn null_token(&self) -> Option<SyntaxToken> {
7190        support::token(&self.syntax, SyntaxKind::NULL_KW)
7191    }
7192}
7193
7194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7195pub struct NullsDistinct {
7196    pub(crate) syntax: SyntaxNode,
7197}
7198impl NullsDistinct {
7199    #[inline]
7200    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7201        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7202    }
7203    #[inline]
7204    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7205        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7206    }
7207}
7208
7209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7210pub struct NullsFirst {
7211    pub(crate) syntax: SyntaxNode,
7212}
7213impl NullsFirst {
7214    #[inline]
7215    pub fn first_token(&self) -> Option<SyntaxToken> {
7216        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7217    }
7218    #[inline]
7219    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7220        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7221    }
7222}
7223
7224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7225pub struct NullsLast {
7226    pub(crate) syntax: SyntaxNode,
7227}
7228impl NullsLast {
7229    #[inline]
7230    pub fn last_token(&self) -> Option<SyntaxToken> {
7231        support::token(&self.syntax, SyntaxKind::LAST_KW)
7232    }
7233    #[inline]
7234    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7235        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7236    }
7237}
7238
7239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7240pub struct NullsNotDistinct {
7241    pub(crate) syntax: SyntaxNode,
7242}
7243impl NullsNotDistinct {
7244    #[inline]
7245    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7246        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7247    }
7248    #[inline]
7249    pub fn not_token(&self) -> Option<SyntaxToken> {
7250        support::token(&self.syntax, SyntaxKind::NOT_KW)
7251    }
7252    #[inline]
7253    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7254        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7255    }
7256}
7257
7258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7259pub struct OfType {
7260    pub(crate) syntax: SyntaxNode,
7261}
7262impl OfType {
7263    #[inline]
7264    pub fn ty(&self) -> Option<Type> {
7265        support::child(&self.syntax)
7266    }
7267    #[inline]
7268    pub fn of_token(&self) -> Option<SyntaxToken> {
7269        support::token(&self.syntax, SyntaxKind::OF_KW)
7270    }
7271}
7272
7273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7274pub struct OffsetClause {
7275    pub(crate) syntax: SyntaxNode,
7276}
7277impl OffsetClause {
7278    #[inline]
7279    pub fn expr(&self) -> Option<Expr> {
7280        support::child(&self.syntax)
7281    }
7282    #[inline]
7283    pub fn offset_token(&self) -> Option<SyntaxToken> {
7284        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
7285    }
7286    #[inline]
7287    pub fn row_token(&self) -> Option<SyntaxToken> {
7288        support::token(&self.syntax, SyntaxKind::ROW_KW)
7289    }
7290    #[inline]
7291    pub fn rows_token(&self) -> Option<SyntaxToken> {
7292        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7293    }
7294}
7295
7296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7297pub struct OnClause {
7298    pub(crate) syntax: SyntaxNode,
7299}
7300impl OnClause {
7301    #[inline]
7302    pub fn expr(&self) -> Option<Expr> {
7303        support::child(&self.syntax)
7304    }
7305    #[inline]
7306    pub fn on_token(&self) -> Option<SyntaxToken> {
7307        support::token(&self.syntax, SyntaxKind::ON_KW)
7308    }
7309}
7310
7311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7312pub struct OnCommit {
7313    pub(crate) syntax: SyntaxNode,
7314}
7315impl OnCommit {
7316    #[inline]
7317    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
7318        support::child(&self.syntax)
7319    }
7320    #[inline]
7321    pub fn commit_token(&self) -> Option<SyntaxToken> {
7322        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
7323    }
7324    #[inline]
7325    pub fn on_token(&self) -> Option<SyntaxToken> {
7326        support::token(&self.syntax, SyntaxKind::ON_KW)
7327    }
7328}
7329
7330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7331pub struct OnDeleteAction {
7332    pub(crate) syntax: SyntaxNode,
7333}
7334impl OnDeleteAction {
7335    #[inline]
7336    pub fn ref_action(&self) -> Option<RefAction> {
7337        support::child(&self.syntax)
7338    }
7339    #[inline]
7340    pub fn delete_token(&self) -> Option<SyntaxToken> {
7341        support::token(&self.syntax, SyntaxKind::DELETE_KW)
7342    }
7343    #[inline]
7344    pub fn on_token(&self) -> Option<SyntaxToken> {
7345        support::token(&self.syntax, SyntaxKind::ON_KW)
7346    }
7347}
7348
7349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7350pub struct OnUpdateAction {
7351    pub(crate) syntax: SyntaxNode,
7352}
7353impl OnUpdateAction {
7354    #[inline]
7355    pub fn ref_action(&self) -> Option<RefAction> {
7356        support::child(&self.syntax)
7357    }
7358    #[inline]
7359    pub fn on_token(&self) -> Option<SyntaxToken> {
7360        support::token(&self.syntax, SyntaxKind::ON_KW)
7361    }
7362    #[inline]
7363    pub fn update_token(&self) -> Option<SyntaxToken> {
7364        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
7365    }
7366}
7367
7368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7369pub struct Op {
7370    pub(crate) syntax: SyntaxNode,
7371}
7372impl Op {
7373    #[inline]
7374    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
7375        support::child(&self.syntax)
7376    }
7377    #[inline]
7378    pub fn colon_colon(&self) -> Option<ColonColon> {
7379        support::child(&self.syntax)
7380    }
7381    #[inline]
7382    pub fn colon_eq(&self) -> Option<ColonEq> {
7383        support::child(&self.syntax)
7384    }
7385    #[inline]
7386    pub fn custom_op(&self) -> Option<CustomOp> {
7387        support::child(&self.syntax)
7388    }
7389    #[inline]
7390    pub fn fat_arrow(&self) -> Option<FatArrow> {
7391        support::child(&self.syntax)
7392    }
7393    #[inline]
7394    pub fn gteq(&self) -> Option<Gteq> {
7395        support::child(&self.syntax)
7396    }
7397    #[inline]
7398    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
7399        support::child(&self.syntax)
7400    }
7401    #[inline]
7402    pub fn is_json(&self) -> Option<IsJson> {
7403        support::child(&self.syntax)
7404    }
7405    #[inline]
7406    pub fn is_json_array(&self) -> Option<IsJsonArray> {
7407        support::child(&self.syntax)
7408    }
7409    #[inline]
7410    pub fn is_json_object(&self) -> Option<IsJsonObject> {
7411        support::child(&self.syntax)
7412    }
7413    #[inline]
7414    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
7415        support::child(&self.syntax)
7416    }
7417    #[inline]
7418    pub fn is_json_value(&self) -> Option<IsJsonValue> {
7419        support::child(&self.syntax)
7420    }
7421    #[inline]
7422    pub fn is_not(&self) -> Option<IsNot> {
7423        support::child(&self.syntax)
7424    }
7425    #[inline]
7426    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
7427        support::child(&self.syntax)
7428    }
7429    #[inline]
7430    pub fn is_not_json(&self) -> Option<IsNotJson> {
7431        support::child(&self.syntax)
7432    }
7433    #[inline]
7434    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
7435        support::child(&self.syntax)
7436    }
7437    #[inline]
7438    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
7439        support::child(&self.syntax)
7440    }
7441    #[inline]
7442    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
7443        support::child(&self.syntax)
7444    }
7445    #[inline]
7446    pub fn lteq(&self) -> Option<Lteq> {
7447        support::child(&self.syntax)
7448    }
7449    #[inline]
7450    pub fn neq(&self) -> Option<Neq> {
7451        support::child(&self.syntax)
7452    }
7453    #[inline]
7454    pub fn neqb(&self) -> Option<Neqb> {
7455        support::child(&self.syntax)
7456    }
7457    #[inline]
7458    pub fn not_ilike(&self) -> Option<NotIlike> {
7459        support::child(&self.syntax)
7460    }
7461    #[inline]
7462    pub fn not_in(&self) -> Option<NotIn> {
7463        support::child(&self.syntax)
7464    }
7465    #[inline]
7466    pub fn not_like(&self) -> Option<NotLike> {
7467        support::child(&self.syntax)
7468    }
7469    #[inline]
7470    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
7471        support::child(&self.syntax)
7472    }
7473    #[inline]
7474    pub fn operator_call(&self) -> Option<OperatorCall> {
7475        support::child(&self.syntax)
7476    }
7477    #[inline]
7478    pub fn similar_to(&self) -> Option<SimilarTo> {
7479        support::child(&self.syntax)
7480    }
7481    #[inline]
7482    pub fn percent_token(&self) -> Option<SyntaxToken> {
7483        support::token(&self.syntax, SyntaxKind::PERCENT)
7484    }
7485    #[inline]
7486    pub fn plus_token(&self) -> Option<SyntaxToken> {
7487        support::token(&self.syntax, SyntaxKind::PLUS)
7488    }
7489    #[inline]
7490    pub fn minus_token(&self) -> Option<SyntaxToken> {
7491        support::token(&self.syntax, SyntaxKind::MINUS)
7492    }
7493    #[inline]
7494    pub fn slash_token(&self) -> Option<SyntaxToken> {
7495        support::token(&self.syntax, SyntaxKind::SLASH)
7496    }
7497    #[inline]
7498    pub fn colon_token(&self) -> Option<SyntaxToken> {
7499        support::token(&self.syntax, SyntaxKind::COLON)
7500    }
7501    #[inline]
7502    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
7503        support::token(&self.syntax, SyntaxKind::L_ANGLE)
7504    }
7505    #[inline]
7506    pub fn eq_token(&self) -> Option<SyntaxToken> {
7507        support::token(&self.syntax, SyntaxKind::EQ)
7508    }
7509    #[inline]
7510    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7511        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7512    }
7513    #[inline]
7514    pub fn caret_token(&self) -> Option<SyntaxToken> {
7515        support::token(&self.syntax, SyntaxKind::CARET)
7516    }
7517    #[inline]
7518    pub fn and_token(&self) -> Option<SyntaxToken> {
7519        support::token(&self.syntax, SyntaxKind::AND_KW)
7520    }
7521    #[inline]
7522    pub fn collate_token(&self) -> Option<SyntaxToken> {
7523        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
7524    }
7525    #[inline]
7526    pub fn ilike_token(&self) -> Option<SyntaxToken> {
7527        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
7528    }
7529    #[inline]
7530    pub fn in_token(&self) -> Option<SyntaxToken> {
7531        support::token(&self.syntax, SyntaxKind::IN_KW)
7532    }
7533    #[inline]
7534    pub fn is_token(&self) -> Option<SyntaxToken> {
7535        support::token(&self.syntax, SyntaxKind::IS_KW)
7536    }
7537    #[inline]
7538    pub fn like_token(&self) -> Option<SyntaxToken> {
7539        support::token(&self.syntax, SyntaxKind::LIKE_KW)
7540    }
7541    #[inline]
7542    pub fn or_token(&self) -> Option<SyntaxToken> {
7543        support::token(&self.syntax, SyntaxKind::OR_KW)
7544    }
7545    #[inline]
7546    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
7547        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
7548    }
7549    #[inline]
7550    pub fn value_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::VALUE_KW)
7552    }
7553}
7554
7555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7556pub struct OperatorCall {
7557    pub(crate) syntax: SyntaxNode,
7558}
7559impl OperatorCall {
7560    #[inline]
7561    pub fn op(&self) -> Option<Op> {
7562        support::child(&self.syntax)
7563    }
7564    #[inline]
7565    pub fn path(&self) -> Option<Path> {
7566        support::child(&self.syntax)
7567    }
7568    #[inline]
7569    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7570        support::token(&self.syntax, SyntaxKind::L_PAREN)
7571    }
7572    #[inline]
7573    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7574        support::token(&self.syntax, SyntaxKind::R_PAREN)
7575    }
7576    #[inline]
7577    pub fn dot_token(&self) -> Option<SyntaxToken> {
7578        support::token(&self.syntax, SyntaxKind::DOT)
7579    }
7580    #[inline]
7581    pub fn operator_token(&self) -> Option<SyntaxToken> {
7582        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7583    }
7584}
7585
7586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7587pub struct OptionsList {
7588    pub(crate) syntax: SyntaxNode,
7589}
7590impl OptionsList {
7591    #[inline]
7592    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7593        support::token(&self.syntax, SyntaxKind::L_PAREN)
7594    }
7595    #[inline]
7596    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7597        support::token(&self.syntax, SyntaxKind::R_PAREN)
7598    }
7599    #[inline]
7600    pub fn option_token(&self) -> Option<SyntaxToken> {
7601        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7602    }
7603}
7604
7605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7606pub struct OrReplace {
7607    pub(crate) syntax: SyntaxNode,
7608}
7609impl OrReplace {
7610    #[inline]
7611    pub fn or_token(&self) -> Option<SyntaxToken> {
7612        support::token(&self.syntax, SyntaxKind::OR_KW)
7613    }
7614    #[inline]
7615    pub fn replace_token(&self) -> Option<SyntaxToken> {
7616        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
7617    }
7618}
7619
7620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7621pub struct OrderByClause {
7622    pub(crate) syntax: SyntaxNode,
7623}
7624impl OrderByClause {
7625    #[inline]
7626    pub fn sort_by_list(&self) -> Option<SortByList> {
7627        support::child(&self.syntax)
7628    }
7629    #[inline]
7630    pub fn by_token(&self) -> Option<SyntaxToken> {
7631        support::token(&self.syntax, SyntaxKind::BY_KW)
7632    }
7633    #[inline]
7634    pub fn order_token(&self) -> Option<SyntaxToken> {
7635        support::token(&self.syntax, SyntaxKind::ORDER_KW)
7636    }
7637}
7638
7639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7640pub struct OverClause {
7641    pub(crate) syntax: SyntaxNode,
7642}
7643impl OverClause {
7644    #[inline]
7645    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7646        support::token(&self.syntax, SyntaxKind::L_PAREN)
7647    }
7648    #[inline]
7649    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7650        support::token(&self.syntax, SyntaxKind::R_PAREN)
7651    }
7652    #[inline]
7653    pub fn over_token(&self) -> Option<SyntaxToken> {
7654        support::token(&self.syntax, SyntaxKind::OVER_KW)
7655    }
7656}
7657
7658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7659pub struct OwnerTo {
7660    pub(crate) syntax: SyntaxNode,
7661}
7662impl OwnerTo {
7663    #[inline]
7664    pub fn role(&self) -> Option<Role> {
7665        support::child(&self.syntax)
7666    }
7667    #[inline]
7668    pub fn owner_token(&self) -> Option<SyntaxToken> {
7669        support::token(&self.syntax, SyntaxKind::OWNER_KW)
7670    }
7671    #[inline]
7672    pub fn to_token(&self) -> Option<SyntaxToken> {
7673        support::token(&self.syntax, SyntaxKind::TO_KW)
7674    }
7675}
7676
7677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7678pub struct ParallelFuncOption {
7679    pub(crate) syntax: SyntaxNode,
7680}
7681impl ParallelFuncOption {
7682    #[inline]
7683    pub fn ident_token(&self) -> Option<SyntaxToken> {
7684        support::token(&self.syntax, SyntaxKind::IDENT)
7685    }
7686    #[inline]
7687    pub fn parallel_token(&self) -> Option<SyntaxToken> {
7688        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
7689    }
7690}
7691
7692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7693pub struct Param {
7694    pub(crate) syntax: SyntaxNode,
7695}
7696impl Param {
7697    #[inline]
7698    pub fn mode(&self) -> Option<ParamMode> {
7699        support::child(&self.syntax)
7700    }
7701    #[inline]
7702    pub fn name(&self) -> Option<Name> {
7703        support::child(&self.syntax)
7704    }
7705    #[inline]
7706    pub fn param_default(&self) -> Option<ParamDefault> {
7707        support::child(&self.syntax)
7708    }
7709    #[inline]
7710    pub fn ty(&self) -> Option<Type> {
7711        support::child(&self.syntax)
7712    }
7713}
7714
7715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7716pub struct ParamDefault {
7717    pub(crate) syntax: SyntaxNode,
7718}
7719impl ParamDefault {
7720    #[inline]
7721    pub fn expr(&self) -> Option<Expr> {
7722        support::child(&self.syntax)
7723    }
7724    #[inline]
7725    pub fn eq_token(&self) -> Option<SyntaxToken> {
7726        support::token(&self.syntax, SyntaxKind::EQ)
7727    }
7728    #[inline]
7729    pub fn default_token(&self) -> Option<SyntaxToken> {
7730        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7731    }
7732}
7733
7734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7735pub struct ParamIn {
7736    pub(crate) syntax: SyntaxNode,
7737}
7738impl ParamIn {
7739    #[inline]
7740    pub fn in_token(&self) -> Option<SyntaxToken> {
7741        support::token(&self.syntax, SyntaxKind::IN_KW)
7742    }
7743}
7744
7745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7746pub struct ParamInOut {
7747    pub(crate) syntax: SyntaxNode,
7748}
7749impl ParamInOut {
7750    #[inline]
7751    pub fn in_token(&self) -> Option<SyntaxToken> {
7752        support::token(&self.syntax, SyntaxKind::IN_KW)
7753    }
7754    #[inline]
7755    pub fn inout_token(&self) -> Option<SyntaxToken> {
7756        support::token(&self.syntax, SyntaxKind::INOUT_KW)
7757    }
7758    #[inline]
7759    pub fn out_token(&self) -> Option<SyntaxToken> {
7760        support::token(&self.syntax, SyntaxKind::OUT_KW)
7761    }
7762}
7763
7764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7765pub struct ParamList {
7766    pub(crate) syntax: SyntaxNode,
7767}
7768impl ParamList {
7769    #[inline]
7770    pub fn params(&self) -> AstChildren<Param> {
7771        support::children(&self.syntax)
7772    }
7773}
7774
7775#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7776pub struct ParamOut {
7777    pub(crate) syntax: SyntaxNode,
7778}
7779impl ParamOut {
7780    #[inline]
7781    pub fn out_token(&self) -> Option<SyntaxToken> {
7782        support::token(&self.syntax, SyntaxKind::OUT_KW)
7783    }
7784}
7785
7786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7787pub struct ParamVariadic {
7788    pub(crate) syntax: SyntaxNode,
7789}
7790impl ParamVariadic {
7791    #[inline]
7792    pub fn variadic_token(&self) -> Option<SyntaxToken> {
7793        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
7794    }
7795}
7796
7797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7798pub struct ParenExpr {
7799    pub(crate) syntax: SyntaxNode,
7800}
7801impl ParenExpr {
7802    #[inline]
7803    pub fn expr(&self) -> Option<Expr> {
7804        support::child(&self.syntax)
7805    }
7806    #[inline]
7807    pub fn select(&self) -> Option<Select> {
7808        support::child(&self.syntax)
7809    }
7810    #[inline]
7811    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::L_PAREN)
7813    }
7814    #[inline]
7815    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7816        support::token(&self.syntax, SyntaxKind::R_PAREN)
7817    }
7818}
7819
7820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7821pub struct ParenSelect {
7822    pub(crate) syntax: SyntaxNode,
7823}
7824impl ParenSelect {
7825    #[inline]
7826    pub fn select(&self) -> Option<Select> {
7827        support::child(&self.syntax)
7828    }
7829    #[inline]
7830    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7831        support::token(&self.syntax, SyntaxKind::L_PAREN)
7832    }
7833    #[inline]
7834    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7835        support::token(&self.syntax, SyntaxKind::R_PAREN)
7836    }
7837}
7838
7839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7840pub struct PartitionBy {
7841    pub(crate) syntax: SyntaxNode,
7842}
7843impl PartitionBy {
7844    #[inline]
7845    pub fn by_token(&self) -> Option<SyntaxToken> {
7846        support::token(&self.syntax, SyntaxKind::BY_KW)
7847    }
7848    #[inline]
7849    pub fn partition_token(&self) -> Option<SyntaxToken> {
7850        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
7851    }
7852}
7853
7854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7855pub struct PartitionDefault {
7856    pub(crate) syntax: SyntaxNode,
7857}
7858impl PartitionDefault {
7859    #[inline]
7860    pub fn default_token(&self) -> Option<SyntaxToken> {
7861        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7862    }
7863}
7864
7865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7866pub struct PartitionForValuesFrom {
7867    pub(crate) syntax: SyntaxNode,
7868}
7869impl PartitionForValuesFrom {
7870    #[inline]
7871    pub fn exprs(&self) -> AstChildren<Expr> {
7872        support::children(&self.syntax)
7873    }
7874    #[inline]
7875    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7876        support::token(&self.syntax, SyntaxKind::L_PAREN)
7877    }
7878    #[inline]
7879    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7880        support::token(&self.syntax, SyntaxKind::R_PAREN)
7881    }
7882    #[inline]
7883    pub fn for_token(&self) -> Option<SyntaxToken> {
7884        support::token(&self.syntax, SyntaxKind::FOR_KW)
7885    }
7886    #[inline]
7887    pub fn from_token(&self) -> Option<SyntaxToken> {
7888        support::token(&self.syntax, SyntaxKind::FROM_KW)
7889    }
7890    #[inline]
7891    pub fn to_token(&self) -> Option<SyntaxToken> {
7892        support::token(&self.syntax, SyntaxKind::TO_KW)
7893    }
7894    #[inline]
7895    pub fn values_token(&self) -> Option<SyntaxToken> {
7896        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7897    }
7898}
7899
7900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7901pub struct PartitionForValuesIn {
7902    pub(crate) syntax: SyntaxNode,
7903}
7904impl PartitionForValuesIn {
7905    #[inline]
7906    pub fn exprs(&self) -> AstChildren<Expr> {
7907        support::children(&self.syntax)
7908    }
7909    #[inline]
7910    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7911        support::token(&self.syntax, SyntaxKind::L_PAREN)
7912    }
7913    #[inline]
7914    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7915        support::token(&self.syntax, SyntaxKind::R_PAREN)
7916    }
7917    #[inline]
7918    pub fn for_token(&self) -> Option<SyntaxToken> {
7919        support::token(&self.syntax, SyntaxKind::FOR_KW)
7920    }
7921    #[inline]
7922    pub fn in_token(&self) -> Option<SyntaxToken> {
7923        support::token(&self.syntax, SyntaxKind::IN_KW)
7924    }
7925    #[inline]
7926    pub fn values_token(&self) -> Option<SyntaxToken> {
7927        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7928    }
7929}
7930
7931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7932pub struct PartitionForValuesWith {
7933    pub(crate) syntax: SyntaxNode,
7934}
7935impl PartitionForValuesWith {
7936    #[inline]
7937    pub fn literal(&self) -> Option<Literal> {
7938        support::child(&self.syntax)
7939    }
7940    #[inline]
7941    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7942        support::token(&self.syntax, SyntaxKind::L_PAREN)
7943    }
7944    #[inline]
7945    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7946        support::token(&self.syntax, SyntaxKind::R_PAREN)
7947    }
7948    #[inline]
7949    pub fn comma_token(&self) -> Option<SyntaxToken> {
7950        support::token(&self.syntax, SyntaxKind::COMMA)
7951    }
7952    #[inline]
7953    pub fn for_token(&self) -> Option<SyntaxToken> {
7954        support::token(&self.syntax, SyntaxKind::FOR_KW)
7955    }
7956    #[inline]
7957    pub fn ident_token(&self) -> Option<SyntaxToken> {
7958        support::token(&self.syntax, SyntaxKind::IDENT)
7959    }
7960    #[inline]
7961    pub fn values_token(&self) -> Option<SyntaxToken> {
7962        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7963    }
7964    #[inline]
7965    pub fn with_token(&self) -> Option<SyntaxToken> {
7966        support::token(&self.syntax, SyntaxKind::WITH_KW)
7967    }
7968}
7969
7970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7971pub struct PartitionItem {
7972    pub(crate) syntax: SyntaxNode,
7973}
7974impl PartitionItem {
7975    #[inline]
7976    pub fn collate(&self) -> Option<Collate> {
7977        support::child(&self.syntax)
7978    }
7979    #[inline]
7980    pub fn expr(&self) -> Option<Expr> {
7981        support::child(&self.syntax)
7982    }
7983}
7984
7985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7986pub struct PartitionItemList {
7987    pub(crate) syntax: SyntaxNode,
7988}
7989impl PartitionItemList {
7990    #[inline]
7991    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
7992        support::children(&self.syntax)
7993    }
7994    #[inline]
7995    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::L_PAREN)
7997    }
7998    #[inline]
7999    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::R_PAREN)
8001    }
8002}
8003
8004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8005pub struct PartitionOf {
8006    pub(crate) syntax: SyntaxNode,
8007}
8008impl PartitionOf {
8009    #[inline]
8010    pub fn ty(&self) -> Option<Type> {
8011        support::child(&self.syntax)
8012    }
8013    #[inline]
8014    pub fn of_token(&self) -> Option<SyntaxToken> {
8015        support::token(&self.syntax, SyntaxKind::OF_KW)
8016    }
8017    #[inline]
8018    pub fn partition_token(&self) -> Option<SyntaxToken> {
8019        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
8020    }
8021}
8022
8023#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8024pub struct Path {
8025    pub(crate) syntax: SyntaxNode,
8026}
8027impl Path {
8028    #[inline]
8029    pub fn qualifier(&self) -> Option<Path> {
8030        support::child(&self.syntax)
8031    }
8032    #[inline]
8033    pub fn segment(&self) -> Option<PathSegment> {
8034        support::child(&self.syntax)
8035    }
8036    #[inline]
8037    pub fn dot_token(&self) -> Option<SyntaxToken> {
8038        support::token(&self.syntax, SyntaxKind::DOT)
8039    }
8040}
8041
8042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8043pub struct PathSegment {
8044    pub(crate) syntax: SyntaxNode,
8045}
8046impl PathSegment {
8047    #[inline]
8048    pub fn name(&self) -> Option<Name> {
8049        support::child(&self.syntax)
8050    }
8051    #[inline]
8052    pub fn name_ref(&self) -> Option<NameRef> {
8053        support::child(&self.syntax)
8054    }
8055}
8056
8057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8058pub struct PathType {
8059    pub(crate) syntax: SyntaxNode,
8060}
8061impl PathType {
8062    #[inline]
8063    pub fn arg_list(&self) -> Option<ArgList> {
8064        support::child(&self.syntax)
8065    }
8066    #[inline]
8067    pub fn path(&self) -> Option<Path> {
8068        support::child(&self.syntax)
8069    }
8070}
8071
8072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8073pub struct PercentType {
8074    pub(crate) syntax: SyntaxNode,
8075}
8076impl PercentType {
8077    #[inline]
8078    pub fn percent_token(&self) -> Option<SyntaxToken> {
8079        support::token(&self.syntax, SyntaxKind::PERCENT)
8080    }
8081    #[inline]
8082    pub fn type_token(&self) -> Option<SyntaxToken> {
8083        support::token(&self.syntax, SyntaxKind::TYPE_KW)
8084    }
8085}
8086
8087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8088pub struct PercentTypeClause {
8089    pub(crate) syntax: SyntaxNode,
8090}
8091impl PercentTypeClause {
8092    #[inline]
8093    pub fn path(&self) -> Option<Path> {
8094        support::child(&self.syntax)
8095    }
8096    #[inline]
8097    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
8098        support::child(&self.syntax)
8099    }
8100}
8101
8102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8103pub struct PostfixExpr {
8104    pub(crate) syntax: SyntaxNode,
8105}
8106impl PostfixExpr {
8107    #[inline]
8108    pub fn expr(&self) -> Option<Expr> {
8109        support::child(&self.syntax)
8110    }
8111}
8112
8113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8114pub struct PrefixExpr {
8115    pub(crate) syntax: SyntaxNode,
8116}
8117impl PrefixExpr {
8118    #[inline]
8119    pub fn expr(&self) -> Option<Expr> {
8120        support::child(&self.syntax)
8121    }
8122}
8123
8124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8125pub struct Prepare {
8126    pub(crate) syntax: SyntaxNode,
8127}
8128impl Prepare {
8129    #[inline]
8130    pub fn name_ref(&self) -> Option<NameRef> {
8131        support::child(&self.syntax)
8132    }
8133    #[inline]
8134    pub fn prepare_token(&self) -> Option<SyntaxToken> {
8135        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
8136    }
8137}
8138
8139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8140pub struct PrepareTransaction {
8141    pub(crate) syntax: SyntaxNode,
8142}
8143impl PrepareTransaction {
8144    #[inline]
8145    pub fn literal(&self) -> Option<Literal> {
8146        support::child(&self.syntax)
8147    }
8148    #[inline]
8149    pub fn prepare_token(&self) -> Option<SyntaxToken> {
8150        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
8151    }
8152    #[inline]
8153    pub fn transaction_token(&self) -> Option<SyntaxToken> {
8154        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
8155    }
8156}
8157
8158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8159pub struct PreserveRows {
8160    pub(crate) syntax: SyntaxNode,
8161}
8162impl PreserveRows {
8163    #[inline]
8164    pub fn preserve_token(&self) -> Option<SyntaxToken> {
8165        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
8166    }
8167    #[inline]
8168    pub fn rows_token(&self) -> Option<SyntaxToken> {
8169        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8170    }
8171}
8172
8173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8174pub struct PrimaryKeyConstraint {
8175    pub(crate) syntax: SyntaxNode,
8176}
8177impl PrimaryKeyConstraint {
8178    #[inline]
8179    pub fn column_list(&self) -> Option<ColumnList> {
8180        support::child(&self.syntax)
8181    }
8182    #[inline]
8183    pub fn name_ref(&self) -> Option<NameRef> {
8184        support::child(&self.syntax)
8185    }
8186    #[inline]
8187    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
8188        support::child(&self.syntax)
8189    }
8190    #[inline]
8191    pub fn using_index(&self) -> Option<UsingIndex> {
8192        support::child(&self.syntax)
8193    }
8194    #[inline]
8195    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8196        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8197    }
8198    #[inline]
8199    pub fn key_token(&self) -> Option<SyntaxToken> {
8200        support::token(&self.syntax, SyntaxKind::KEY_KW)
8201    }
8202    #[inline]
8203    pub fn primary_token(&self) -> Option<SyntaxToken> {
8204        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
8205    }
8206}
8207
8208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8209pub struct ReadCommitted {
8210    pub(crate) syntax: SyntaxNode,
8211}
8212impl ReadCommitted {
8213    #[inline]
8214    pub fn committed_token(&self) -> Option<SyntaxToken> {
8215        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
8216    }
8217    #[inline]
8218    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8219        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8220    }
8221    #[inline]
8222    pub fn level_token(&self) -> Option<SyntaxToken> {
8223        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8224    }
8225    #[inline]
8226    pub fn read_token(&self) -> Option<SyntaxToken> {
8227        support::token(&self.syntax, SyntaxKind::READ_KW)
8228    }
8229}
8230
8231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8232pub struct ReadOnly {
8233    pub(crate) syntax: SyntaxNode,
8234}
8235impl ReadOnly {
8236    #[inline]
8237    pub fn only_token(&self) -> Option<SyntaxToken> {
8238        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8239    }
8240    #[inline]
8241    pub fn read_token(&self) -> Option<SyntaxToken> {
8242        support::token(&self.syntax, SyntaxKind::READ_KW)
8243    }
8244}
8245
8246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8247pub struct ReadUncommitted {
8248    pub(crate) syntax: SyntaxNode,
8249}
8250impl ReadUncommitted {
8251    #[inline]
8252    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8253        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8254    }
8255    #[inline]
8256    pub fn level_token(&self) -> Option<SyntaxToken> {
8257        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8258    }
8259    #[inline]
8260    pub fn read_token(&self) -> Option<SyntaxToken> {
8261        support::token(&self.syntax, SyntaxKind::READ_KW)
8262    }
8263    #[inline]
8264    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
8265        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
8266    }
8267}
8268
8269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8270pub struct ReadWrite {
8271    pub(crate) syntax: SyntaxNode,
8272}
8273impl ReadWrite {
8274    #[inline]
8275    pub fn read_token(&self) -> Option<SyntaxToken> {
8276        support::token(&self.syntax, SyntaxKind::READ_KW)
8277    }
8278    #[inline]
8279    pub fn write_token(&self) -> Option<SyntaxToken> {
8280        support::token(&self.syntax, SyntaxKind::WRITE_KW)
8281    }
8282}
8283
8284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8285pub struct Reassign {
8286    pub(crate) syntax: SyntaxNode,
8287}
8288impl Reassign {
8289    #[inline]
8290    pub fn reassign_token(&self) -> Option<SyntaxToken> {
8291        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
8292    }
8293}
8294
8295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8296pub struct ReferencesConstraint {
8297    pub(crate) syntax: SyntaxNode,
8298}
8299impl ReferencesConstraint {
8300    #[inline]
8301    pub fn match_type(&self) -> Option<MatchType> {
8302        support::child(&self.syntax)
8303    }
8304    #[inline]
8305    pub fn name_ref(&self) -> Option<NameRef> {
8306        support::child(&self.syntax)
8307    }
8308    #[inline]
8309    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8310        support::child(&self.syntax)
8311    }
8312    #[inline]
8313    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8314        support::child(&self.syntax)
8315    }
8316    #[inline]
8317    pub fn path(&self) -> Option<Path> {
8318        support::child(&self.syntax)
8319    }
8320    #[inline]
8321    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8322        support::token(&self.syntax, SyntaxKind::L_PAREN)
8323    }
8324    #[inline]
8325    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8326        support::token(&self.syntax, SyntaxKind::R_PAREN)
8327    }
8328    #[inline]
8329    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8330        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8331    }
8332    #[inline]
8333    pub fn references_token(&self) -> Option<SyntaxToken> {
8334        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8335    }
8336}
8337
8338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8339pub struct Refresh {
8340    pub(crate) syntax: SyntaxNode,
8341}
8342impl Refresh {
8343    #[inline]
8344    pub fn name_ref(&self) -> Option<NameRef> {
8345        support::child(&self.syntax)
8346    }
8347    #[inline]
8348    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
8349        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
8350    }
8351    #[inline]
8352    pub fn data_token(&self) -> Option<SyntaxToken> {
8353        support::token(&self.syntax, SyntaxKind::DATA_KW)
8354    }
8355    #[inline]
8356    pub fn materialized_token(&self) -> Option<SyntaxToken> {
8357        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
8358    }
8359    #[inline]
8360    pub fn refresh_token(&self) -> Option<SyntaxToken> {
8361        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
8362    }
8363    #[inline]
8364    pub fn view_token(&self) -> Option<SyntaxToken> {
8365        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8366    }
8367    #[inline]
8368    pub fn with_token(&self) -> Option<SyntaxToken> {
8369        support::token(&self.syntax, SyntaxKind::WITH_KW)
8370    }
8371}
8372
8373#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8374pub struct Reindex {
8375    pub(crate) syntax: SyntaxNode,
8376}
8377impl Reindex {
8378    #[inline]
8379    pub fn reindex_token(&self) -> Option<SyntaxToken> {
8380        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
8381    }
8382}
8383
8384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8385pub struct RelationName {
8386    pub(crate) syntax: SyntaxNode,
8387}
8388impl RelationName {
8389    #[inline]
8390    pub fn path(&self) -> Option<Path> {
8391        support::child(&self.syntax)
8392    }
8393    #[inline]
8394    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8395        support::token(&self.syntax, SyntaxKind::L_PAREN)
8396    }
8397    #[inline]
8398    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8399        support::token(&self.syntax, SyntaxKind::R_PAREN)
8400    }
8401    #[inline]
8402    pub fn star_token(&self) -> Option<SyntaxToken> {
8403        support::token(&self.syntax, SyntaxKind::STAR)
8404    }
8405    #[inline]
8406    pub fn only_token(&self) -> Option<SyntaxToken> {
8407        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8408    }
8409}
8410
8411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8412pub struct ReleaseSavepoint {
8413    pub(crate) syntax: SyntaxNode,
8414}
8415impl ReleaseSavepoint {
8416    #[inline]
8417    pub fn name_ref(&self) -> Option<NameRef> {
8418        support::child(&self.syntax)
8419    }
8420    #[inline]
8421    pub fn release_token(&self) -> Option<SyntaxToken> {
8422        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
8423    }
8424    #[inline]
8425    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
8426        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
8427    }
8428}
8429
8430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8431pub struct RenameColumn {
8432    pub(crate) syntax: SyntaxNode,
8433}
8434impl RenameColumn {
8435    #[inline]
8436    pub fn column_token(&self) -> Option<SyntaxToken> {
8437        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
8438    }
8439    #[inline]
8440    pub fn rename_token(&self) -> Option<SyntaxToken> {
8441        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8442    }
8443}
8444
8445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8446pub struct RenameConstraint {
8447    pub(crate) syntax: SyntaxNode,
8448}
8449impl RenameConstraint {
8450    #[inline]
8451    pub fn name(&self) -> Option<Name> {
8452        support::child(&self.syntax)
8453    }
8454    #[inline]
8455    pub fn name_ref(&self) -> Option<NameRef> {
8456        support::child(&self.syntax)
8457    }
8458    #[inline]
8459    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8460        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8461    }
8462    #[inline]
8463    pub fn rename_token(&self) -> Option<SyntaxToken> {
8464        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8465    }
8466    #[inline]
8467    pub fn to_token(&self) -> Option<SyntaxToken> {
8468        support::token(&self.syntax, SyntaxKind::TO_KW)
8469    }
8470}
8471
8472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8473pub struct RenameTable {
8474    pub(crate) syntax: SyntaxNode,
8475}
8476impl RenameTable {
8477    #[inline]
8478    pub fn name_ref(&self) -> Option<NameRef> {
8479        support::child(&self.syntax)
8480    }
8481    #[inline]
8482    pub fn rename_token(&self) -> Option<SyntaxToken> {
8483        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8484    }
8485    #[inline]
8486    pub fn to_token(&self) -> Option<SyntaxToken> {
8487        support::token(&self.syntax, SyntaxKind::TO_KW)
8488    }
8489}
8490
8491#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8492pub struct RenameTo {
8493    pub(crate) syntax: SyntaxNode,
8494}
8495impl RenameTo {
8496    #[inline]
8497    pub fn name(&self) -> Option<Name> {
8498        support::child(&self.syntax)
8499    }
8500    #[inline]
8501    pub fn rename_token(&self) -> Option<SyntaxToken> {
8502        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8503    }
8504    #[inline]
8505    pub fn to_token(&self) -> Option<SyntaxToken> {
8506        support::token(&self.syntax, SyntaxKind::TO_KW)
8507    }
8508}
8509
8510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8511pub struct RepeatableRead {
8512    pub(crate) syntax: SyntaxNode,
8513}
8514impl RepeatableRead {
8515    #[inline]
8516    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8517        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8518    }
8519    #[inline]
8520    pub fn level_token(&self) -> Option<SyntaxToken> {
8521        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8522    }
8523    #[inline]
8524    pub fn read_token(&self) -> Option<SyntaxToken> {
8525        support::token(&self.syntax, SyntaxKind::READ_KW)
8526    }
8527    #[inline]
8528    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
8529        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
8530    }
8531}
8532
8533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8534pub struct ReplicaIdentity {
8535    pub(crate) syntax: SyntaxNode,
8536}
8537impl ReplicaIdentity {
8538    #[inline]
8539    pub fn identity_token(&self) -> Option<SyntaxToken> {
8540        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8541    }
8542    #[inline]
8543    pub fn replica_token(&self) -> Option<SyntaxToken> {
8544        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8545    }
8546}
8547
8548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8549pub struct Reset {
8550    pub(crate) syntax: SyntaxNode,
8551}
8552impl Reset {
8553    #[inline]
8554    pub fn name_ref(&self) -> Option<NameRef> {
8555        support::child(&self.syntax)
8556    }
8557    #[inline]
8558    pub fn all_token(&self) -> Option<SyntaxToken> {
8559        support::token(&self.syntax, SyntaxKind::ALL_KW)
8560    }
8561    #[inline]
8562    pub fn reset_token(&self) -> Option<SyntaxToken> {
8563        support::token(&self.syntax, SyntaxKind::RESET_KW)
8564    }
8565}
8566
8567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8568pub struct ResetFuncOption {
8569    pub(crate) syntax: SyntaxNode,
8570}
8571impl ResetFuncOption {
8572    #[inline]
8573    pub fn name_ref(&self) -> Option<NameRef> {
8574        support::child(&self.syntax)
8575    }
8576    #[inline]
8577    pub fn reset_token(&self) -> Option<SyntaxToken> {
8578        support::token(&self.syntax, SyntaxKind::RESET_KW)
8579    }
8580}
8581
8582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8583pub struct ResetOptions {
8584    pub(crate) syntax: SyntaxNode,
8585}
8586impl ResetOptions {
8587    #[inline]
8588    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8589        support::token(&self.syntax, SyntaxKind::L_PAREN)
8590    }
8591    #[inline]
8592    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8593        support::token(&self.syntax, SyntaxKind::R_PAREN)
8594    }
8595    #[inline]
8596    pub fn reset_token(&self) -> Option<SyntaxToken> {
8597        support::token(&self.syntax, SyntaxKind::RESET_KW)
8598    }
8599}
8600
8601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8602pub struct ResetStorageParams {
8603    pub(crate) syntax: SyntaxNode,
8604}
8605impl ResetStorageParams {
8606    #[inline]
8607    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8608        support::token(&self.syntax, SyntaxKind::L_PAREN)
8609    }
8610    #[inline]
8611    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8612        support::token(&self.syntax, SyntaxKind::R_PAREN)
8613    }
8614    #[inline]
8615    pub fn reset_token(&self) -> Option<SyntaxToken> {
8616        support::token(&self.syntax, SyntaxKind::RESET_KW)
8617    }
8618}
8619
8620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8621pub struct Restart {
8622    pub(crate) syntax: SyntaxNode,
8623}
8624impl Restart {
8625    #[inline]
8626    pub fn restart_token(&self) -> Option<SyntaxToken> {
8627        support::token(&self.syntax, SyntaxKind::RESTART_KW)
8628    }
8629    #[inline]
8630    pub fn with_token(&self) -> Option<SyntaxToken> {
8631        support::token(&self.syntax, SyntaxKind::WITH_KW)
8632    }
8633}
8634
8635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8636pub struct Restrict {
8637    pub(crate) syntax: SyntaxNode,
8638}
8639impl Restrict {
8640    #[inline]
8641    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8642        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8643    }
8644}
8645
8646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8647pub struct RetType {
8648    pub(crate) syntax: SyntaxNode,
8649}
8650impl RetType {
8651    #[inline]
8652    pub fn ty(&self) -> Option<Type> {
8653        support::child(&self.syntax)
8654    }
8655    #[inline]
8656    pub fn returns_token(&self) -> Option<SyntaxToken> {
8657        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
8658    }
8659}
8660
8661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8662pub struct ReturnFuncOption {
8663    pub(crate) syntax: SyntaxNode,
8664}
8665impl ReturnFuncOption {
8666    #[inline]
8667    pub fn expr(&self) -> Option<Expr> {
8668        support::child(&self.syntax)
8669    }
8670    #[inline]
8671    pub fn return_token(&self) -> Option<SyntaxToken> {
8672        support::token(&self.syntax, SyntaxKind::RETURN_KW)
8673    }
8674}
8675
8676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8677pub struct ReturningClause {
8678    pub(crate) syntax: SyntaxNode,
8679}
8680impl ReturningClause {
8681    #[inline]
8682    pub fn target_list(&self) -> Option<TargetList> {
8683        support::child(&self.syntax)
8684    }
8685    #[inline]
8686    pub fn returning_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
8688    }
8689}
8690
8691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8692pub struct Revoke {
8693    pub(crate) syntax: SyntaxNode,
8694}
8695impl Revoke {
8696    #[inline]
8697    pub fn revoke_token(&self) -> Option<SyntaxToken> {
8698        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
8699    }
8700}
8701
8702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8703pub struct Role {
8704    pub(crate) syntax: SyntaxNode,
8705}
8706impl Role {
8707    #[inline]
8708    pub fn current_role_token(&self) -> Option<SyntaxToken> {
8709        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
8710    }
8711    #[inline]
8712    pub fn current_user_token(&self) -> Option<SyntaxToken> {
8713        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
8714    }
8715    #[inline]
8716    pub fn group_token(&self) -> Option<SyntaxToken> {
8717        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8718    }
8719    #[inline]
8720    pub fn ident_token(&self) -> Option<SyntaxToken> {
8721        support::token(&self.syntax, SyntaxKind::IDENT)
8722    }
8723    #[inline]
8724    pub fn session_user_token(&self) -> Option<SyntaxToken> {
8725        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
8726    }
8727}
8728
8729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8730pub struct Rollback {
8731    pub(crate) syntax: SyntaxNode,
8732}
8733impl Rollback {
8734    #[inline]
8735    pub fn abort_token(&self) -> Option<SyntaxToken> {
8736        support::token(&self.syntax, SyntaxKind::ABORT_KW)
8737    }
8738    #[inline]
8739    pub fn rollback_token(&self) -> Option<SyntaxToken> {
8740        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
8741    }
8742}
8743
8744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8745pub struct Row {
8746    pub(crate) syntax: SyntaxNode,
8747}
8748impl Row {
8749    #[inline]
8750    pub fn exprs(&self) -> AstChildren<Expr> {
8751        support::children(&self.syntax)
8752    }
8753}
8754
8755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8756pub struct RowList {
8757    pub(crate) syntax: SyntaxNode,
8758}
8759impl RowList {
8760    #[inline]
8761    pub fn rows(&self) -> AstChildren<Row> {
8762        support::children(&self.syntax)
8763    }
8764}
8765
8766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8767pub struct RowsFuncOption {
8768    pub(crate) syntax: SyntaxNode,
8769}
8770impl RowsFuncOption {
8771    #[inline]
8772    pub fn rows_token(&self) -> Option<SyntaxToken> {
8773        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8774    }
8775}
8776
8777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8778pub struct Savepoint {
8779    pub(crate) syntax: SyntaxNode,
8780}
8781impl Savepoint {
8782    #[inline]
8783    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
8784        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
8785    }
8786}
8787
8788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8789pub struct SecurityFuncOption {
8790    pub(crate) syntax: SyntaxNode,
8791}
8792impl SecurityFuncOption {
8793    #[inline]
8794    pub fn definer_token(&self) -> Option<SyntaxToken> {
8795        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
8796    }
8797    #[inline]
8798    pub fn invoker_token(&self) -> Option<SyntaxToken> {
8799        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
8800    }
8801    #[inline]
8802    pub fn security_token(&self) -> Option<SyntaxToken> {
8803        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8804    }
8805}
8806
8807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8808pub struct SecurityLabel {
8809    pub(crate) syntax: SyntaxNode,
8810}
8811impl SecurityLabel {
8812    #[inline]
8813    pub fn label_token(&self) -> Option<SyntaxToken> {
8814        support::token(&self.syntax, SyntaxKind::LABEL_KW)
8815    }
8816    #[inline]
8817    pub fn security_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8819    }
8820}
8821
8822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8823pub struct Select {
8824    pub(crate) syntax: SyntaxNode,
8825}
8826impl Select {
8827    #[inline]
8828    pub fn fetch_clause(&self) -> Option<FetchClause> {
8829        support::child(&self.syntax)
8830    }
8831    #[inline]
8832    pub fn filter_clause(&self) -> Option<FilterClause> {
8833        support::child(&self.syntax)
8834    }
8835    #[inline]
8836    pub fn from_clause(&self) -> Option<FromClause> {
8837        support::child(&self.syntax)
8838    }
8839    #[inline]
8840    pub fn group_by_clause(&self) -> Option<GroupByClause> {
8841        support::child(&self.syntax)
8842    }
8843    #[inline]
8844    pub fn having_clause(&self) -> Option<HavingClause> {
8845        support::child(&self.syntax)
8846    }
8847    #[inline]
8848    pub fn limit_clause(&self) -> Option<LimitClause> {
8849        support::child(&self.syntax)
8850    }
8851    #[inline]
8852    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
8853        support::children(&self.syntax)
8854    }
8855    #[inline]
8856    pub fn offset_clause(&self) -> Option<OffsetClause> {
8857        support::child(&self.syntax)
8858    }
8859    #[inline]
8860    pub fn order_by_clause(&self) -> Option<OrderByClause> {
8861        support::child(&self.syntax)
8862    }
8863    #[inline]
8864    pub fn select_clause(&self) -> Option<SelectClause> {
8865        support::child(&self.syntax)
8866    }
8867    #[inline]
8868    pub fn where_clause(&self) -> Option<WhereClause> {
8869        support::child(&self.syntax)
8870    }
8871    #[inline]
8872    pub fn window_clause(&self) -> Option<WindowClause> {
8873        support::child(&self.syntax)
8874    }
8875    #[inline]
8876    pub fn with_clause(&self) -> Option<WithClause> {
8877        support::child(&self.syntax)
8878    }
8879}
8880
8881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8882pub struct SelectClause {
8883    pub(crate) syntax: SyntaxNode,
8884}
8885impl SelectClause {
8886    #[inline]
8887    pub fn distinct_clause(&self) -> Option<DistinctClause> {
8888        support::child(&self.syntax)
8889    }
8890    #[inline]
8891    pub fn target_list(&self) -> Option<TargetList> {
8892        support::child(&self.syntax)
8893    }
8894    #[inline]
8895    pub fn all_token(&self) -> Option<SyntaxToken> {
8896        support::token(&self.syntax, SyntaxKind::ALL_KW)
8897    }
8898    #[inline]
8899    pub fn select_token(&self) -> Option<SyntaxToken> {
8900        support::token(&self.syntax, SyntaxKind::SELECT_KW)
8901    }
8902}
8903
8904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8905pub struct SelectInto {
8906    pub(crate) syntax: SyntaxNode,
8907}
8908impl SelectInto {
8909    #[inline]
8910    pub fn filter_clause(&self) -> Option<FilterClause> {
8911        support::child(&self.syntax)
8912    }
8913    #[inline]
8914    pub fn from_clause(&self) -> Option<FromClause> {
8915        support::child(&self.syntax)
8916    }
8917    #[inline]
8918    pub fn group_by_clause(&self) -> Option<GroupByClause> {
8919        support::child(&self.syntax)
8920    }
8921    #[inline]
8922    pub fn having_clause(&self) -> Option<HavingClause> {
8923        support::child(&self.syntax)
8924    }
8925    #[inline]
8926    pub fn into_clause(&self) -> Option<IntoClause> {
8927        support::child(&self.syntax)
8928    }
8929    #[inline]
8930    pub fn limit_clause(&self) -> Option<LimitClause> {
8931        support::child(&self.syntax)
8932    }
8933    #[inline]
8934    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
8935        support::children(&self.syntax)
8936    }
8937    #[inline]
8938    pub fn offset_clause(&self) -> Option<OffsetClause> {
8939        support::child(&self.syntax)
8940    }
8941    #[inline]
8942    pub fn order_by_clause(&self) -> Option<OrderByClause> {
8943        support::child(&self.syntax)
8944    }
8945    #[inline]
8946    pub fn select_clause(&self) -> Option<SelectClause> {
8947        support::child(&self.syntax)
8948    }
8949    #[inline]
8950    pub fn where_clause(&self) -> Option<WhereClause> {
8951        support::child(&self.syntax)
8952    }
8953    #[inline]
8954    pub fn window_clause(&self) -> Option<WindowClause> {
8955        support::child(&self.syntax)
8956    }
8957}
8958
8959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8960pub struct SequenceOptionList {
8961    pub(crate) syntax: SyntaxNode,
8962}
8963impl SequenceOptionList {
8964    #[inline]
8965    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8966        support::token(&self.syntax, SyntaxKind::L_PAREN)
8967    }
8968    #[inline]
8969    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8970        support::token(&self.syntax, SyntaxKind::R_PAREN)
8971    }
8972}
8973
8974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8975pub struct Serializable {
8976    pub(crate) syntax: SyntaxNode,
8977}
8978impl Serializable {
8979    #[inline]
8980    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8981        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8982    }
8983    #[inline]
8984    pub fn level_token(&self) -> Option<SyntaxToken> {
8985        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8986    }
8987    #[inline]
8988    pub fn serializable_token(&self) -> Option<SyntaxToken> {
8989        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
8990    }
8991}
8992
8993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8994pub struct Set {
8995    pub(crate) syntax: SyntaxNode,
8996}
8997impl Set {
8998    #[inline]
8999    pub fn expr(&self) -> Option<Expr> {
9000        support::child(&self.syntax)
9001    }
9002    #[inline]
9003    pub fn path(&self) -> Option<Path> {
9004        support::child(&self.syntax)
9005    }
9006    #[inline]
9007    pub fn eq_token(&self) -> Option<SyntaxToken> {
9008        support::token(&self.syntax, SyntaxKind::EQ)
9009    }
9010    #[inline]
9011    pub fn default_token(&self) -> Option<SyntaxToken> {
9012        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9013    }
9014    #[inline]
9015    pub fn local_token(&self) -> Option<SyntaxToken> {
9016        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
9017    }
9018    #[inline]
9019    pub fn session_token(&self) -> Option<SyntaxToken> {
9020        support::token(&self.syntax, SyntaxKind::SESSION_KW)
9021    }
9022    #[inline]
9023    pub fn set_token(&self) -> Option<SyntaxToken> {
9024        support::token(&self.syntax, SyntaxKind::SET_KW)
9025    }
9026    #[inline]
9027    pub fn time_token(&self) -> Option<SyntaxToken> {
9028        support::token(&self.syntax, SyntaxKind::TIME_KW)
9029    }
9030    #[inline]
9031    pub fn to_token(&self) -> Option<SyntaxToken> {
9032        support::token(&self.syntax, SyntaxKind::TO_KW)
9033    }
9034    #[inline]
9035    pub fn zone_token(&self) -> Option<SyntaxToken> {
9036        support::token(&self.syntax, SyntaxKind::ZONE_KW)
9037    }
9038}
9039
9040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9041pub struct SetAccessMethod {
9042    pub(crate) syntax: SyntaxNode,
9043}
9044impl SetAccessMethod {
9045    #[inline]
9046    pub fn name_ref(&self) -> Option<NameRef> {
9047        support::child(&self.syntax)
9048    }
9049    #[inline]
9050    pub fn access_token(&self) -> Option<SyntaxToken> {
9051        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
9052    }
9053    #[inline]
9054    pub fn method_token(&self) -> Option<SyntaxToken> {
9055        support::token(&self.syntax, SyntaxKind::METHOD_KW)
9056    }
9057    #[inline]
9058    pub fn set_token(&self) -> Option<SyntaxToken> {
9059        support::token(&self.syntax, SyntaxKind::SET_KW)
9060    }
9061}
9062
9063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9064pub struct SetCompression {
9065    pub(crate) syntax: SyntaxNode,
9066}
9067impl SetCompression {
9068    #[inline]
9069    pub fn compression_token(&self) -> Option<SyntaxToken> {
9070        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
9071    }
9072    #[inline]
9073    pub fn set_token(&self) -> Option<SyntaxToken> {
9074        support::token(&self.syntax, SyntaxKind::SET_KW)
9075    }
9076}
9077
9078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9079pub struct SetConstraints {
9080    pub(crate) syntax: SyntaxNode,
9081}
9082impl SetConstraints {
9083    #[inline]
9084    pub fn constraints_token(&self) -> Option<SyntaxToken> {
9085        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
9086    }
9087    #[inline]
9088    pub fn set_token(&self) -> Option<SyntaxToken> {
9089        support::token(&self.syntax, SyntaxKind::SET_KW)
9090    }
9091}
9092
9093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9094pub struct SetDefault {
9095    pub(crate) syntax: SyntaxNode,
9096}
9097impl SetDefault {
9098    #[inline]
9099    pub fn expr(&self) -> Option<Expr> {
9100        support::child(&self.syntax)
9101    }
9102    #[inline]
9103    pub fn default_token(&self) -> Option<SyntaxToken> {
9104        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9105    }
9106    #[inline]
9107    pub fn set_token(&self) -> Option<SyntaxToken> {
9108        support::token(&self.syntax, SyntaxKind::SET_KW)
9109    }
9110}
9111
9112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9113pub struct SetDefaultColumns {
9114    pub(crate) syntax: SyntaxNode,
9115}
9116impl SetDefaultColumns {
9117    #[inline]
9118    pub fn column_list(&self) -> Option<ColumnList> {
9119        support::child(&self.syntax)
9120    }
9121    #[inline]
9122    pub fn default_token(&self) -> Option<SyntaxToken> {
9123        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9124    }
9125    #[inline]
9126    pub fn set_token(&self) -> Option<SyntaxToken> {
9127        support::token(&self.syntax, SyntaxKind::SET_KW)
9128    }
9129}
9130
9131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9132pub struct SetExpression {
9133    pub(crate) syntax: SyntaxNode,
9134}
9135impl SetExpression {
9136    #[inline]
9137    pub fn expr(&self) -> Option<Expr> {
9138        support::child(&self.syntax)
9139    }
9140    #[inline]
9141    pub fn expression_token(&self) -> Option<SyntaxToken> {
9142        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
9143    }
9144    #[inline]
9145    pub fn set_token(&self) -> Option<SyntaxToken> {
9146        support::token(&self.syntax, SyntaxKind::SET_KW)
9147    }
9148}
9149
9150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9151pub struct SetFuncOption {
9152    pub(crate) syntax: SyntaxNode,
9153}
9154impl SetFuncOption {
9155    #[inline]
9156    pub fn set_token(&self) -> Option<SyntaxToken> {
9157        support::token(&self.syntax, SyntaxKind::SET_KW)
9158    }
9159}
9160
9161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9162pub struct SetGenerated {
9163    pub(crate) syntax: SyntaxNode,
9164}
9165impl SetGenerated {
9166    #[inline]
9167    pub fn set_token(&self) -> Option<SyntaxToken> {
9168        support::token(&self.syntax, SyntaxKind::SET_KW)
9169    }
9170}
9171
9172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9173pub struct SetGeneratedOptions {
9174    pub(crate) syntax: SyntaxNode,
9175}
9176impl SetGeneratedOptions {
9177    #[inline]
9178    pub fn set_token(&self) -> Option<SyntaxToken> {
9179        support::token(&self.syntax, SyntaxKind::SET_KW)
9180    }
9181}
9182
9183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9184pub struct SetLogged {
9185    pub(crate) syntax: SyntaxNode,
9186}
9187impl SetLogged {
9188    #[inline]
9189    pub fn logged_token(&self) -> Option<SyntaxToken> {
9190        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
9191    }
9192    #[inline]
9193    pub fn set_token(&self) -> Option<SyntaxToken> {
9194        support::token(&self.syntax, SyntaxKind::SET_KW)
9195    }
9196}
9197
9198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9199pub struct SetNotNull {
9200    pub(crate) syntax: SyntaxNode,
9201}
9202impl SetNotNull {
9203    #[inline]
9204    pub fn not_token(&self) -> Option<SyntaxToken> {
9205        support::token(&self.syntax, SyntaxKind::NOT_KW)
9206    }
9207    #[inline]
9208    pub fn null_token(&self) -> Option<SyntaxToken> {
9209        support::token(&self.syntax, SyntaxKind::NULL_KW)
9210    }
9211    #[inline]
9212    pub fn set_token(&self) -> Option<SyntaxToken> {
9213        support::token(&self.syntax, SyntaxKind::SET_KW)
9214    }
9215}
9216
9217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9218pub struct SetNullColumns {
9219    pub(crate) syntax: SyntaxNode,
9220}
9221impl SetNullColumns {
9222    #[inline]
9223    pub fn column_list(&self) -> Option<ColumnList> {
9224        support::child(&self.syntax)
9225    }
9226    #[inline]
9227    pub fn null_token(&self) -> Option<SyntaxToken> {
9228        support::token(&self.syntax, SyntaxKind::NULL_KW)
9229    }
9230    #[inline]
9231    pub fn set_token(&self) -> Option<SyntaxToken> {
9232        support::token(&self.syntax, SyntaxKind::SET_KW)
9233    }
9234}
9235
9236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9237pub struct SetOptions {
9238    pub(crate) syntax: SyntaxNode,
9239}
9240impl SetOptions {
9241    #[inline]
9242    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9243        support::token(&self.syntax, SyntaxKind::L_PAREN)
9244    }
9245    #[inline]
9246    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9247        support::token(&self.syntax, SyntaxKind::R_PAREN)
9248    }
9249    #[inline]
9250    pub fn set_token(&self) -> Option<SyntaxToken> {
9251        support::token(&self.syntax, SyntaxKind::SET_KW)
9252    }
9253}
9254
9255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9256pub struct SetOptionsList {
9257    pub(crate) syntax: SyntaxNode,
9258}
9259impl SetOptionsList {
9260    #[inline]
9261    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9262        support::token(&self.syntax, SyntaxKind::L_PAREN)
9263    }
9264    #[inline]
9265    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9266        support::token(&self.syntax, SyntaxKind::R_PAREN)
9267    }
9268    #[inline]
9269    pub fn set_token(&self) -> Option<SyntaxToken> {
9270        support::token(&self.syntax, SyntaxKind::SET_KW)
9271    }
9272}
9273
9274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9275pub struct SetRole {
9276    pub(crate) syntax: SyntaxNode,
9277}
9278impl SetRole {
9279    #[inline]
9280    pub fn role_token(&self) -> Option<SyntaxToken> {
9281        support::token(&self.syntax, SyntaxKind::ROLE_KW)
9282    }
9283    #[inline]
9284    pub fn set_token(&self) -> Option<SyntaxToken> {
9285        support::token(&self.syntax, SyntaxKind::SET_KW)
9286    }
9287}
9288
9289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9290pub struct SetSchema {
9291    pub(crate) syntax: SyntaxNode,
9292}
9293impl SetSchema {
9294    #[inline]
9295    pub fn name_ref(&self) -> Option<NameRef> {
9296        support::child(&self.syntax)
9297    }
9298    #[inline]
9299    pub fn schema_token(&self) -> Option<SyntaxToken> {
9300        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9301    }
9302    #[inline]
9303    pub fn set_token(&self) -> Option<SyntaxToken> {
9304        support::token(&self.syntax, SyntaxKind::SET_KW)
9305    }
9306}
9307
9308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9309pub struct SetSequenceOption {
9310    pub(crate) syntax: SyntaxNode,
9311}
9312impl SetSequenceOption {
9313    #[inline]
9314    pub fn set_token(&self) -> Option<SyntaxToken> {
9315        support::token(&self.syntax, SyntaxKind::SET_KW)
9316    }
9317}
9318
9319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9320pub struct SetSessionAuth {
9321    pub(crate) syntax: SyntaxNode,
9322}
9323impl SetSessionAuth {
9324    #[inline]
9325    pub fn authorization_token(&self) -> Option<SyntaxToken> {
9326        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
9327    }
9328    #[inline]
9329    pub fn session_token(&self) -> Option<SyntaxToken> {
9330        support::token(&self.syntax, SyntaxKind::SESSION_KW)
9331    }
9332    #[inline]
9333    pub fn set_token(&self) -> Option<SyntaxToken> {
9334        support::token(&self.syntax, SyntaxKind::SET_KW)
9335    }
9336}
9337
9338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9339pub struct SetStatistics {
9340    pub(crate) syntax: SyntaxNode,
9341}
9342impl SetStatistics {
9343    #[inline]
9344    pub fn set_token(&self) -> Option<SyntaxToken> {
9345        support::token(&self.syntax, SyntaxKind::SET_KW)
9346    }
9347    #[inline]
9348    pub fn statistics_token(&self) -> Option<SyntaxToken> {
9349        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
9350    }
9351}
9352
9353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9354pub struct SetStorage {
9355    pub(crate) syntax: SyntaxNode,
9356}
9357impl SetStorage {
9358    #[inline]
9359    pub fn set_token(&self) -> Option<SyntaxToken> {
9360        support::token(&self.syntax, SyntaxKind::SET_KW)
9361    }
9362    #[inline]
9363    pub fn storage_token(&self) -> Option<SyntaxToken> {
9364        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
9365    }
9366}
9367
9368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9369pub struct SetStorageParams {
9370    pub(crate) syntax: SyntaxNode,
9371}
9372impl SetStorageParams {
9373    #[inline]
9374    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9375        support::token(&self.syntax, SyntaxKind::L_PAREN)
9376    }
9377    #[inline]
9378    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9379        support::token(&self.syntax, SyntaxKind::R_PAREN)
9380    }
9381    #[inline]
9382    pub fn set_token(&self) -> Option<SyntaxToken> {
9383        support::token(&self.syntax, SyntaxKind::SET_KW)
9384    }
9385}
9386
9387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9388pub struct SetTablespace {
9389    pub(crate) syntax: SyntaxNode,
9390}
9391impl SetTablespace {
9392    #[inline]
9393    pub fn name_ref(&self) -> Option<NameRef> {
9394        support::child(&self.syntax)
9395    }
9396    #[inline]
9397    pub fn set_token(&self) -> Option<SyntaxToken> {
9398        support::token(&self.syntax, SyntaxKind::SET_KW)
9399    }
9400    #[inline]
9401    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
9402        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
9403    }
9404}
9405
9406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9407pub struct SetTransaction {
9408    pub(crate) syntax: SyntaxNode,
9409}
9410impl SetTransaction {
9411    #[inline]
9412    pub fn set_token(&self) -> Option<SyntaxToken> {
9413        support::token(&self.syntax, SyntaxKind::SET_KW)
9414    }
9415    #[inline]
9416    pub fn transaction_token(&self) -> Option<SyntaxToken> {
9417        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
9418    }
9419}
9420
9421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9422pub struct SetType {
9423    pub(crate) syntax: SyntaxNode,
9424}
9425impl SetType {
9426    #[inline]
9427    pub fn collate(&self) -> Option<Collate> {
9428        support::child(&self.syntax)
9429    }
9430    #[inline]
9431    pub fn ty(&self) -> Option<Type> {
9432        support::child(&self.syntax)
9433    }
9434    #[inline]
9435    pub fn set_token(&self) -> Option<SyntaxToken> {
9436        support::token(&self.syntax, SyntaxKind::SET_KW)
9437    }
9438    #[inline]
9439    pub fn type_token(&self) -> Option<SyntaxToken> {
9440        support::token(&self.syntax, SyntaxKind::TYPE_KW)
9441    }
9442}
9443
9444#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9445pub struct SetUnlogged {
9446    pub(crate) syntax: SyntaxNode,
9447}
9448impl SetUnlogged {
9449    #[inline]
9450    pub fn set_token(&self) -> Option<SyntaxToken> {
9451        support::token(&self.syntax, SyntaxKind::SET_KW)
9452    }
9453    #[inline]
9454    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
9455        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
9456    }
9457}
9458
9459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9460pub struct SetWithoutCluster {
9461    pub(crate) syntax: SyntaxNode,
9462}
9463impl SetWithoutCluster {
9464    #[inline]
9465    pub fn cluster_token(&self) -> Option<SyntaxToken> {
9466        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
9467    }
9468    #[inline]
9469    pub fn set_token(&self) -> Option<SyntaxToken> {
9470        support::token(&self.syntax, SyntaxKind::SET_KW)
9471    }
9472    #[inline]
9473    pub fn without_token(&self) -> Option<SyntaxToken> {
9474        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9475    }
9476}
9477
9478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9479pub struct SetWithoutOids {
9480    pub(crate) syntax: SyntaxNode,
9481}
9482impl SetWithoutOids {
9483    #[inline]
9484    pub fn oids_token(&self) -> Option<SyntaxToken> {
9485        support::token(&self.syntax, SyntaxKind::OIDS_KW)
9486    }
9487    #[inline]
9488    pub fn set_token(&self) -> Option<SyntaxToken> {
9489        support::token(&self.syntax, SyntaxKind::SET_KW)
9490    }
9491    #[inline]
9492    pub fn without_token(&self) -> Option<SyntaxToken> {
9493        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9494    }
9495}
9496
9497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9498pub struct Show {
9499    pub(crate) syntax: SyntaxNode,
9500}
9501impl Show {
9502    #[inline]
9503    pub fn show_token(&self) -> Option<SyntaxToken> {
9504        support::token(&self.syntax, SyntaxKind::SHOW_KW)
9505    }
9506}
9507
9508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9509pub struct SimilarTo {
9510    pub(crate) syntax: SyntaxNode,
9511}
9512impl SimilarTo {
9513    #[inline]
9514    pub fn similar_token(&self) -> Option<SyntaxToken> {
9515        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
9516    }
9517    #[inline]
9518    pub fn to_token(&self) -> Option<SyntaxToken> {
9519        support::token(&self.syntax, SyntaxKind::TO_KW)
9520    }
9521}
9522
9523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9524pub struct SortAsc {
9525    pub(crate) syntax: SyntaxNode,
9526}
9527impl SortAsc {
9528    #[inline]
9529    pub fn asc_token(&self) -> Option<SyntaxToken> {
9530        support::token(&self.syntax, SyntaxKind::ASC_KW)
9531    }
9532}
9533
9534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9535pub struct SortBy {
9536    pub(crate) syntax: SyntaxNode,
9537}
9538impl SortBy {
9539    #[inline]
9540    pub fn expr(&self) -> Option<Expr> {
9541        support::child(&self.syntax)
9542    }
9543    #[inline]
9544    pub fn nulls_first(&self) -> Option<NullsFirst> {
9545        support::child(&self.syntax)
9546    }
9547    #[inline]
9548    pub fn nulls_last(&self) -> Option<NullsLast> {
9549        support::child(&self.syntax)
9550    }
9551    #[inline]
9552    pub fn sort_asc(&self) -> Option<SortAsc> {
9553        support::child(&self.syntax)
9554    }
9555    #[inline]
9556    pub fn sort_desc(&self) -> Option<SortDesc> {
9557        support::child(&self.syntax)
9558    }
9559    #[inline]
9560    pub fn sort_using(&self) -> Option<SortUsing> {
9561        support::child(&self.syntax)
9562    }
9563}
9564
9565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9566pub struct SortByList {
9567    pub(crate) syntax: SyntaxNode,
9568}
9569impl SortByList {
9570    #[inline]
9571    pub fn sort_bys(&self) -> AstChildren<SortBy> {
9572        support::children(&self.syntax)
9573    }
9574}
9575
9576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9577pub struct SortDesc {
9578    pub(crate) syntax: SyntaxNode,
9579}
9580impl SortDesc {
9581    #[inline]
9582    pub fn desc_token(&self) -> Option<SyntaxToken> {
9583        support::token(&self.syntax, SyntaxKind::DESC_KW)
9584    }
9585}
9586
9587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9588pub struct SortUsing {
9589    pub(crate) syntax: SyntaxNode,
9590}
9591impl SortUsing {
9592    #[inline]
9593    pub fn op(&self) -> Option<Op> {
9594        support::child(&self.syntax)
9595    }
9596    #[inline]
9597    pub fn using_token(&self) -> Option<SyntaxToken> {
9598        support::token(&self.syntax, SyntaxKind::USING_KW)
9599    }
9600}
9601
9602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9603pub struct SourceFile {
9604    pub(crate) syntax: SyntaxNode,
9605}
9606impl SourceFile {
9607    #[inline]
9608    pub fn stmts(&self) -> AstChildren<Stmt> {
9609        support::children(&self.syntax)
9610    }
9611}
9612
9613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9614pub struct Storage {
9615    pub(crate) syntax: SyntaxNode,
9616}
9617impl Storage {
9618    #[inline]
9619    pub fn default_token(&self) -> Option<SyntaxToken> {
9620        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9621    }
9622    #[inline]
9623    pub fn external_token(&self) -> Option<SyntaxToken> {
9624        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
9625    }
9626    #[inline]
9627    pub fn ident_token(&self) -> Option<SyntaxToken> {
9628        support::token(&self.syntax, SyntaxKind::IDENT)
9629    }
9630    #[inline]
9631    pub fn storage_token(&self) -> Option<SyntaxToken> {
9632        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
9633    }
9634}
9635
9636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9637pub struct StrictFuncOption {
9638    pub(crate) syntax: SyntaxNode,
9639}
9640impl StrictFuncOption {
9641    #[inline]
9642    pub fn called_token(&self) -> Option<SyntaxToken> {
9643        support::token(&self.syntax, SyntaxKind::CALLED_KW)
9644    }
9645    #[inline]
9646    pub fn input_token(&self) -> Option<SyntaxToken> {
9647        support::token(&self.syntax, SyntaxKind::INPUT_KW)
9648    }
9649    #[inline]
9650    pub fn null_token(&self) -> Option<SyntaxToken> {
9651        support::token(&self.syntax, SyntaxKind::NULL_KW)
9652    }
9653    #[inline]
9654    pub fn on_token(&self) -> Option<SyntaxToken> {
9655        support::token(&self.syntax, SyntaxKind::ON_KW)
9656    }
9657    #[inline]
9658    pub fn returns_token(&self) -> Option<SyntaxToken> {
9659        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
9660    }
9661    #[inline]
9662    pub fn strict_token(&self) -> Option<SyntaxToken> {
9663        support::token(&self.syntax, SyntaxKind::STRICT_KW)
9664    }
9665}
9666
9667#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9668pub struct SupportFuncOption {
9669    pub(crate) syntax: SyntaxNode,
9670}
9671impl SupportFuncOption {
9672    #[inline]
9673    pub fn support_token(&self) -> Option<SyntaxToken> {
9674        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
9675    }
9676}
9677
9678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9679pub struct Table {
9680    pub(crate) syntax: SyntaxNode,
9681}
9682impl Table {
9683    #[inline]
9684    pub fn relation_name(&self) -> Option<RelationName> {
9685        support::child(&self.syntax)
9686    }
9687    #[inline]
9688    pub fn table_token(&self) -> Option<SyntaxToken> {
9689        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9690    }
9691}
9692
9693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9694pub struct TableArgList {
9695    pub(crate) syntax: SyntaxNode,
9696}
9697impl TableArgList {
9698    #[inline]
9699    pub fn args(&self) -> AstChildren<TableArg> {
9700        support::children(&self.syntax)
9701    }
9702    #[inline]
9703    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9704        support::token(&self.syntax, SyntaxKind::L_PAREN)
9705    }
9706    #[inline]
9707    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9708        support::token(&self.syntax, SyntaxKind::R_PAREN)
9709    }
9710}
9711
9712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9713pub struct TableList {
9714    pub(crate) syntax: SyntaxNode,
9715}
9716impl TableList {
9717    #[inline]
9718    pub fn relation_names(&self) -> AstChildren<RelationName> {
9719        support::children(&self.syntax)
9720    }
9721}
9722
9723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9724pub struct Tablespace {
9725    pub(crate) syntax: SyntaxNode,
9726}
9727impl Tablespace {
9728    #[inline]
9729    pub fn name_ref(&self) -> Option<NameRef> {
9730        support::child(&self.syntax)
9731    }
9732    #[inline]
9733    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
9734        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
9735    }
9736}
9737
9738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9739pub struct Target {
9740    pub(crate) syntax: SyntaxNode,
9741}
9742impl Target {
9743    #[inline]
9744    pub fn as_name(&self) -> Option<AsName> {
9745        support::child(&self.syntax)
9746    }
9747    #[inline]
9748    pub fn expr(&self) -> Option<Expr> {
9749        support::child(&self.syntax)
9750    }
9751    #[inline]
9752    pub fn star_token(&self) -> Option<SyntaxToken> {
9753        support::token(&self.syntax, SyntaxKind::STAR)
9754    }
9755}
9756
9757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9758pub struct TargetList {
9759    pub(crate) syntax: SyntaxNode,
9760}
9761impl TargetList {
9762    #[inline]
9763    pub fn targets(&self) -> AstChildren<Target> {
9764        support::children(&self.syntax)
9765    }
9766}
9767
9768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9769pub struct TimeType {
9770    pub(crate) syntax: SyntaxNode,
9771}
9772impl TimeType {
9773    #[inline]
9774    pub fn literal(&self) -> Option<Literal> {
9775        support::child(&self.syntax)
9776    }
9777    #[inline]
9778    pub fn timezone(&self) -> Option<Timezone> {
9779        support::child(&self.syntax)
9780    }
9781    #[inline]
9782    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9783        support::token(&self.syntax, SyntaxKind::L_PAREN)
9784    }
9785    #[inline]
9786    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9787        support::token(&self.syntax, SyntaxKind::R_PAREN)
9788    }
9789    #[inline]
9790    pub fn time_token(&self) -> Option<SyntaxToken> {
9791        support::token(&self.syntax, SyntaxKind::TIME_KW)
9792    }
9793    #[inline]
9794    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
9795        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
9796    }
9797}
9798
9799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9800pub struct TransactionModeList {
9801    pub(crate) syntax: SyntaxNode,
9802}
9803impl TransactionModeList {
9804    #[inline]
9805    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
9806        support::children(&self.syntax)
9807    }
9808}
9809
9810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9811pub struct TransformFuncOption {
9812    pub(crate) syntax: SyntaxNode,
9813}
9814impl TransformFuncOption {
9815    #[inline]
9816    pub fn transform_token(&self) -> Option<SyntaxToken> {
9817        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
9818    }
9819}
9820
9821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9822pub struct Truncate {
9823    pub(crate) syntax: SyntaxNode,
9824}
9825impl Truncate {
9826    #[inline]
9827    pub fn table_list(&self) -> Option<TableList> {
9828        support::child(&self.syntax)
9829    }
9830    #[inline]
9831    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9832        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9833    }
9834    #[inline]
9835    pub fn continue_token(&self) -> Option<SyntaxToken> {
9836        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
9837    }
9838    #[inline]
9839    pub fn identity_token(&self) -> Option<SyntaxToken> {
9840        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9841    }
9842    #[inline]
9843    pub fn restart_token(&self) -> Option<SyntaxToken> {
9844        support::token(&self.syntax, SyntaxKind::RESTART_KW)
9845    }
9846    #[inline]
9847    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9848        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9849    }
9850    #[inline]
9851    pub fn table_token(&self) -> Option<SyntaxToken> {
9852        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9853    }
9854    #[inline]
9855    pub fn truncate_token(&self) -> Option<SyntaxToken> {
9856        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
9857    }
9858}
9859
9860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9861pub struct TupleExpr {
9862    pub(crate) syntax: SyntaxNode,
9863}
9864impl TupleExpr {
9865    #[inline]
9866    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9867        support::token(&self.syntax, SyntaxKind::L_PAREN)
9868    }
9869    #[inline]
9870    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9871        support::token(&self.syntax, SyntaxKind::R_PAREN)
9872    }
9873}
9874
9875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9876pub struct UnicodeNormalForm {
9877    pub(crate) syntax: SyntaxNode,
9878}
9879impl UnicodeNormalForm {
9880    #[inline]
9881    pub fn nfc_token(&self) -> Option<SyntaxToken> {
9882        support::token(&self.syntax, SyntaxKind::NFC_KW)
9883    }
9884    #[inline]
9885    pub fn nfd_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::NFD_KW)
9887    }
9888    #[inline]
9889    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
9890        support::token(&self.syntax, SyntaxKind::NFKC_KW)
9891    }
9892    #[inline]
9893    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
9894        support::token(&self.syntax, SyntaxKind::NFKD_KW)
9895    }
9896}
9897
9898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9899pub struct UniqueConstraint {
9900    pub(crate) syntax: SyntaxNode,
9901}
9902impl UniqueConstraint {
9903    #[inline]
9904    pub fn column_list(&self) -> Option<ColumnList> {
9905        support::child(&self.syntax)
9906    }
9907    #[inline]
9908    pub fn name_ref(&self) -> Option<NameRef> {
9909        support::child(&self.syntax)
9910    }
9911    #[inline]
9912    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
9913        support::child(&self.syntax)
9914    }
9915    #[inline]
9916    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
9917        support::child(&self.syntax)
9918    }
9919    #[inline]
9920    pub fn using_index(&self) -> Option<UsingIndex> {
9921        support::child(&self.syntax)
9922    }
9923    #[inline]
9924    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9925        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9926    }
9927    #[inline]
9928    pub fn unique_token(&self) -> Option<SyntaxToken> {
9929        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9930    }
9931}
9932
9933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9934pub struct Unlisten {
9935    pub(crate) syntax: SyntaxNode,
9936}
9937impl Unlisten {
9938    #[inline]
9939    pub fn name_ref(&self) -> Option<NameRef> {
9940        support::child(&self.syntax)
9941    }
9942    #[inline]
9943    pub fn star_token(&self) -> Option<SyntaxToken> {
9944        support::token(&self.syntax, SyntaxKind::STAR)
9945    }
9946    #[inline]
9947    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
9948        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
9949    }
9950}
9951
9952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9953pub struct Update {
9954    pub(crate) syntax: SyntaxNode,
9955}
9956impl Update {
9957    #[inline]
9958    pub fn returning_clause(&self) -> Option<ReturningClause> {
9959        support::child(&self.syntax)
9960    }
9961    #[inline]
9962    pub fn update_token(&self) -> Option<SyntaxToken> {
9963        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
9964    }
9965}
9966
9967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9968pub struct UsingClause {
9969    pub(crate) syntax: SyntaxNode,
9970}
9971impl UsingClause {
9972    #[inline]
9973    pub fn using_token(&self) -> Option<SyntaxToken> {
9974        support::token(&self.syntax, SyntaxKind::USING_KW)
9975    }
9976}
9977
9978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9979pub struct UsingIndex {
9980    pub(crate) syntax: SyntaxNode,
9981}
9982impl UsingIndex {
9983    #[inline]
9984    pub fn name_ref(&self) -> Option<NameRef> {
9985        support::child(&self.syntax)
9986    }
9987    #[inline]
9988    pub fn index_token(&self) -> Option<SyntaxToken> {
9989        support::token(&self.syntax, SyntaxKind::INDEX_KW)
9990    }
9991    #[inline]
9992    pub fn using_token(&self) -> Option<SyntaxToken> {
9993        support::token(&self.syntax, SyntaxKind::USING_KW)
9994    }
9995}
9996
9997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9998pub struct UsingMethod {
9999    pub(crate) syntax: SyntaxNode,
10000}
10001impl UsingMethod {
10002    #[inline]
10003    pub fn name_ref(&self) -> Option<NameRef> {
10004        support::child(&self.syntax)
10005    }
10006    #[inline]
10007    pub fn using_token(&self) -> Option<SyntaxToken> {
10008        support::token(&self.syntax, SyntaxKind::USING_KW)
10009    }
10010}
10011
10012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10013pub struct Vacuum {
10014    pub(crate) syntax: SyntaxNode,
10015}
10016impl Vacuum {
10017    #[inline]
10018    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
10019        support::child(&self.syntax)
10020    }
10021    #[inline]
10022    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
10023        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
10024    }
10025}
10026
10027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10028pub struct VacuumOption {
10029    pub(crate) syntax: SyntaxNode,
10030}
10031impl VacuumOption {
10032    #[inline]
10033    pub fn full_token(&self) -> Option<SyntaxToken> {
10034        support::token(&self.syntax, SyntaxKind::FULL_KW)
10035    }
10036}
10037
10038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10039pub struct VacuumOptionList {
10040    pub(crate) syntax: SyntaxNode,
10041}
10042impl VacuumOptionList {
10043    #[inline]
10044    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
10045        support::children(&self.syntax)
10046    }
10047    #[inline]
10048    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10049        support::token(&self.syntax, SyntaxKind::L_PAREN)
10050    }
10051    #[inline]
10052    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10053        support::token(&self.syntax, SyntaxKind::R_PAREN)
10054    }
10055}
10056
10057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10058pub struct ValidateConstraint {
10059    pub(crate) syntax: SyntaxNode,
10060}
10061impl ValidateConstraint {
10062    #[inline]
10063    pub fn name_ref(&self) -> Option<NameRef> {
10064        support::child(&self.syntax)
10065    }
10066    #[inline]
10067    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10068        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10069    }
10070    #[inline]
10071    pub fn validate_token(&self) -> Option<SyntaxToken> {
10072        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
10073    }
10074}
10075
10076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10077pub struct Values {
10078    pub(crate) syntax: SyntaxNode,
10079}
10080impl Values {
10081    #[inline]
10082    pub fn row_list(&self) -> Option<RowList> {
10083        support::child(&self.syntax)
10084    }
10085    #[inline]
10086    pub fn values_token(&self) -> Option<SyntaxToken> {
10087        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10088    }
10089}
10090
10091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10092pub struct Variant {
10093    pub(crate) syntax: SyntaxNode,
10094}
10095impl Variant {
10096    #[inline]
10097    pub fn literal(&self) -> Option<Literal> {
10098        support::child(&self.syntax)
10099    }
10100}
10101
10102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10103pub struct VariantList {
10104    pub(crate) syntax: SyntaxNode,
10105}
10106impl VariantList {
10107    #[inline]
10108    pub fn variants(&self) -> AstChildren<Variant> {
10109        support::children(&self.syntax)
10110    }
10111    #[inline]
10112    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10113        support::token(&self.syntax, SyntaxKind::L_PAREN)
10114    }
10115    #[inline]
10116    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10117        support::token(&self.syntax, SyntaxKind::R_PAREN)
10118    }
10119}
10120
10121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10122pub struct VolatilityFuncOption {
10123    pub(crate) syntax: SyntaxNode,
10124}
10125impl VolatilityFuncOption {
10126    #[inline]
10127    pub fn immutable_token(&self) -> Option<SyntaxToken> {
10128        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
10129    }
10130    #[inline]
10131    pub fn stable_token(&self) -> Option<SyntaxToken> {
10132        support::token(&self.syntax, SyntaxKind::STABLE_KW)
10133    }
10134    #[inline]
10135    pub fn volatile_token(&self) -> Option<SyntaxToken> {
10136        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
10137    }
10138}
10139
10140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10141pub struct WhenClause {
10142    pub(crate) syntax: SyntaxNode,
10143}
10144impl WhenClause {
10145    #[inline]
10146    pub fn expr(&self) -> Option<Expr> {
10147        support::child(&self.syntax)
10148    }
10149    #[inline]
10150    pub fn then_token(&self) -> Option<SyntaxToken> {
10151        support::token(&self.syntax, SyntaxKind::THEN_KW)
10152    }
10153    #[inline]
10154    pub fn when_token(&self) -> Option<SyntaxToken> {
10155        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10156    }
10157}
10158
10159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10160pub struct WhenClauseList {
10161    pub(crate) syntax: SyntaxNode,
10162}
10163impl WhenClauseList {
10164    #[inline]
10165    pub fn when_clause(&self) -> Option<WhenClause> {
10166        support::child(&self.syntax)
10167    }
10168    #[inline]
10169    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
10170        support::children(&self.syntax)
10171    }
10172}
10173
10174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10175pub struct WhereClause {
10176    pub(crate) syntax: SyntaxNode,
10177}
10178impl WhereClause {
10179    #[inline]
10180    pub fn expr(&self) -> Option<Expr> {
10181        support::child(&self.syntax)
10182    }
10183    #[inline]
10184    pub fn where_token(&self) -> Option<SyntaxToken> {
10185        support::token(&self.syntax, SyntaxKind::WHERE_KW)
10186    }
10187}
10188
10189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10190pub struct WindowClause {
10191    pub(crate) syntax: SyntaxNode,
10192}
10193impl WindowClause {
10194    #[inline]
10195    pub fn window_defs(&self) -> AstChildren<WindowDef> {
10196        support::children(&self.syntax)
10197    }
10198    #[inline]
10199    pub fn window_token(&self) -> Option<SyntaxToken> {
10200        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
10201    }
10202}
10203
10204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10205pub struct WindowDef {
10206    pub(crate) syntax: SyntaxNode,
10207}
10208impl WindowDef {
10209    #[inline]
10210    pub fn name(&self) -> Option<Name> {
10211        support::child(&self.syntax)
10212    }
10213    #[inline]
10214    pub fn window_spec(&self) -> Option<WindowSpec> {
10215        support::child(&self.syntax)
10216    }
10217    #[inline]
10218    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10219        support::token(&self.syntax, SyntaxKind::L_PAREN)
10220    }
10221    #[inline]
10222    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10223        support::token(&self.syntax, SyntaxKind::R_PAREN)
10224    }
10225    #[inline]
10226    pub fn as_token(&self) -> Option<SyntaxToken> {
10227        support::token(&self.syntax, SyntaxKind::AS_KW)
10228    }
10229}
10230
10231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10232pub struct WindowFuncOption {
10233    pub(crate) syntax: SyntaxNode,
10234}
10235impl WindowFuncOption {
10236    #[inline]
10237    pub fn window_token(&self) -> Option<SyntaxToken> {
10238        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
10239    }
10240}
10241
10242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10243pub struct WindowSpec {
10244    pub(crate) syntax: SyntaxNode,
10245}
10246impl WindowSpec {
10247    #[inline]
10248    pub fn exprs(&self) -> AstChildren<Expr> {
10249        support::children(&self.syntax)
10250    }
10251    #[inline]
10252    pub fn frame_clause(&self) -> Option<FrameClause> {
10253        support::child(&self.syntax)
10254    }
10255    #[inline]
10256    pub fn order_by_clause(&self) -> Option<OrderByClause> {
10257        support::child(&self.syntax)
10258    }
10259    #[inline]
10260    pub fn by_token(&self) -> Option<SyntaxToken> {
10261        support::token(&self.syntax, SyntaxKind::BY_KW)
10262    }
10263    #[inline]
10264    pub fn ident_token(&self) -> Option<SyntaxToken> {
10265        support::token(&self.syntax, SyntaxKind::IDENT)
10266    }
10267    #[inline]
10268    pub fn partition_token(&self) -> Option<SyntaxToken> {
10269        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
10270    }
10271}
10272
10273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10274pub struct WithClause {
10275    pub(crate) syntax: SyntaxNode,
10276}
10277impl WithClause {
10278    #[inline]
10279    pub fn with_tables(&self) -> AstChildren<WithTable> {
10280        support::children(&self.syntax)
10281    }
10282    #[inline]
10283    pub fn recursive_token(&self) -> Option<SyntaxToken> {
10284        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
10285    }
10286    #[inline]
10287    pub fn with_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::WITH_KW)
10289    }
10290}
10291
10292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10293pub struct WithData {
10294    pub(crate) syntax: SyntaxNode,
10295}
10296impl WithData {
10297    #[inline]
10298    pub fn data_token(&self) -> Option<SyntaxToken> {
10299        support::token(&self.syntax, SyntaxKind::DATA_KW)
10300    }
10301    #[inline]
10302    pub fn with_token(&self) -> Option<SyntaxToken> {
10303        support::token(&self.syntax, SyntaxKind::WITH_KW)
10304    }
10305}
10306
10307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10308pub struct WithNoData {
10309    pub(crate) syntax: SyntaxNode,
10310}
10311impl WithNoData {
10312    #[inline]
10313    pub fn data_token(&self) -> Option<SyntaxToken> {
10314        support::token(&self.syntax, SyntaxKind::DATA_KW)
10315    }
10316    #[inline]
10317    pub fn no_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::NO_KW)
10319    }
10320    #[inline]
10321    pub fn with_token(&self) -> Option<SyntaxToken> {
10322        support::token(&self.syntax, SyntaxKind::WITH_KW)
10323    }
10324}
10325
10326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10327pub struct WithOptions {
10328    pub(crate) syntax: SyntaxNode,
10329}
10330impl WithOptions {
10331    #[inline]
10332    pub fn options_token(&self) -> Option<SyntaxToken> {
10333        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
10334    }
10335    #[inline]
10336    pub fn with_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::WITH_KW)
10338    }
10339}
10340
10341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10342pub struct WithParams {
10343    pub(crate) syntax: SyntaxNode,
10344}
10345impl WithParams {
10346    #[inline]
10347    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10348        support::token(&self.syntax, SyntaxKind::L_PAREN)
10349    }
10350    #[inline]
10351    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10352        support::token(&self.syntax, SyntaxKind::R_PAREN)
10353    }
10354    #[inline]
10355    pub fn with_token(&self) -> Option<SyntaxToken> {
10356        support::token(&self.syntax, SyntaxKind::WITH_KW)
10357    }
10358}
10359
10360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10361pub struct WithTable {
10362    pub(crate) syntax: SyntaxNode,
10363}
10364impl WithTable {
10365    #[inline]
10366    pub fn column_list(&self) -> Option<ColumnList> {
10367        support::child(&self.syntax)
10368    }
10369    #[inline]
10370    pub fn materialized(&self) -> Option<Materialized> {
10371        support::child(&self.syntax)
10372    }
10373    #[inline]
10374    pub fn name(&self) -> Option<Name> {
10375        support::child(&self.syntax)
10376    }
10377    #[inline]
10378    pub fn not_materialized(&self) -> Option<NotMaterialized> {
10379        support::child(&self.syntax)
10380    }
10381    #[inline]
10382    pub fn query(&self) -> Option<WithQuery> {
10383        support::child(&self.syntax)
10384    }
10385    #[inline]
10386    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10387        support::token(&self.syntax, SyntaxKind::L_PAREN)
10388    }
10389    #[inline]
10390    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10391        support::token(&self.syntax, SyntaxKind::R_PAREN)
10392    }
10393    #[inline]
10394    pub fn as_token(&self) -> Option<SyntaxToken> {
10395        support::token(&self.syntax, SyntaxKind::AS_KW)
10396    }
10397}
10398
10399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10400pub struct WithTimezone {
10401    pub(crate) syntax: SyntaxNode,
10402}
10403impl WithTimezone {
10404    #[inline]
10405    pub fn time_token(&self) -> Option<SyntaxToken> {
10406        support::token(&self.syntax, SyntaxKind::TIME_KW)
10407    }
10408    #[inline]
10409    pub fn with_token(&self) -> Option<SyntaxToken> {
10410        support::token(&self.syntax, SyntaxKind::WITH_KW)
10411    }
10412    #[inline]
10413    pub fn zone_token(&self) -> Option<SyntaxToken> {
10414        support::token(&self.syntax, SyntaxKind::ZONE_KW)
10415    }
10416}
10417
10418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10419pub struct WithinClause {
10420    pub(crate) syntax: SyntaxNode,
10421}
10422impl WithinClause {
10423    #[inline]
10424    pub fn order_by_clause(&self) -> Option<OrderByClause> {
10425        support::child(&self.syntax)
10426    }
10427    #[inline]
10428    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10429        support::token(&self.syntax, SyntaxKind::L_PAREN)
10430    }
10431    #[inline]
10432    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10433        support::token(&self.syntax, SyntaxKind::R_PAREN)
10434    }
10435    #[inline]
10436    pub fn group_token(&self) -> Option<SyntaxToken> {
10437        support::token(&self.syntax, SyntaxKind::GROUP_KW)
10438    }
10439    #[inline]
10440    pub fn within_token(&self) -> Option<SyntaxToken> {
10441        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
10442    }
10443}
10444
10445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10446pub struct WithoutOids {
10447    pub(crate) syntax: SyntaxNode,
10448}
10449impl WithoutOids {
10450    #[inline]
10451    pub fn oids_token(&self) -> Option<SyntaxToken> {
10452        support::token(&self.syntax, SyntaxKind::OIDS_KW)
10453    }
10454    #[inline]
10455    pub fn without_token(&self) -> Option<SyntaxToken> {
10456        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10457    }
10458}
10459
10460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10461pub struct WithoutTimezone {
10462    pub(crate) syntax: SyntaxNode,
10463}
10464impl WithoutTimezone {
10465    #[inline]
10466    pub fn time_token(&self) -> Option<SyntaxToken> {
10467        support::token(&self.syntax, SyntaxKind::TIME_KW)
10468    }
10469    #[inline]
10470    pub fn without_token(&self) -> Option<SyntaxToken> {
10471        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10472    }
10473    #[inline]
10474    pub fn zone_token(&self) -> Option<SyntaxToken> {
10475        support::token(&self.syntax, SyntaxKind::ZONE_KW)
10476    }
10477}
10478
10479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10480pub struct XmlColumnOption {
10481    pub(crate) syntax: SyntaxNode,
10482}
10483impl XmlColumnOption {
10484    #[inline]
10485    pub fn expr(&self) -> Option<Expr> {
10486        support::child(&self.syntax)
10487    }
10488    #[inline]
10489    pub fn default_token(&self) -> Option<SyntaxToken> {
10490        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10491    }
10492    #[inline]
10493    pub fn ident_token(&self) -> Option<SyntaxToken> {
10494        support::token(&self.syntax, SyntaxKind::IDENT)
10495    }
10496    #[inline]
10497    pub fn not_token(&self) -> Option<SyntaxToken> {
10498        support::token(&self.syntax, SyntaxKind::NOT_KW)
10499    }
10500    #[inline]
10501    pub fn null_token(&self) -> Option<SyntaxToken> {
10502        support::token(&self.syntax, SyntaxKind::NULL_KW)
10503    }
10504    #[inline]
10505    pub fn path_token(&self) -> Option<SyntaxToken> {
10506        support::token(&self.syntax, SyntaxKind::PATH_KW)
10507    }
10508}
10509
10510#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10511pub struct XmlColumnOptionList {
10512    pub(crate) syntax: SyntaxNode,
10513}
10514impl XmlColumnOptionList {
10515    #[inline]
10516    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
10517        support::child(&self.syntax)
10518    }
10519    #[inline]
10520    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
10521        support::children(&self.syntax)
10522    }
10523}
10524
10525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10526pub struct XmlTableColumn {
10527    pub(crate) syntax: SyntaxNode,
10528}
10529impl XmlTableColumn {
10530    #[inline]
10531    pub fn name(&self) -> Option<Name> {
10532        support::child(&self.syntax)
10533    }
10534    #[inline]
10535    pub fn ty(&self) -> Option<Type> {
10536        support::child(&self.syntax)
10537    }
10538    #[inline]
10539    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
10540        support::child(&self.syntax)
10541    }
10542    #[inline]
10543    pub fn for_token(&self) -> Option<SyntaxToken> {
10544        support::token(&self.syntax, SyntaxKind::FOR_KW)
10545    }
10546    #[inline]
10547    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
10548        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
10549    }
10550}
10551
10552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10553pub struct XmlTableColumnList {
10554    pub(crate) syntax: SyntaxNode,
10555}
10556impl XmlTableColumnList {
10557    #[inline]
10558    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
10559        support::children(&self.syntax)
10560    }
10561}
10562
10563#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10564pub enum AlterColumnOption {
10565    AddGenerated(AddGenerated),
10566    DropDefault(DropDefault),
10567    DropExpression(DropExpression),
10568    DropIdentity(DropIdentity),
10569    DropNotNull(DropNotNull),
10570    ResetOptions(ResetOptions),
10571    Restart(Restart),
10572    SetCompression(SetCompression),
10573    SetDefault(SetDefault),
10574    SetExpression(SetExpression),
10575    SetGenerated(SetGenerated),
10576    SetGeneratedOptions(SetGeneratedOptions),
10577    SetNotNull(SetNotNull),
10578    SetOptions(SetOptions),
10579    SetSequenceOption(SetSequenceOption),
10580    SetStatistics(SetStatistics),
10581    SetStorage(SetStorage),
10582    SetType(SetType),
10583}
10584
10585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10586pub enum AlterDomainAction {
10587    AddConstraint(AddConstraint),
10588    DropConstraint(DropConstraint),
10589    DropDefault(DropDefault),
10590    DropNotNull(DropNotNull),
10591    OwnerTo(OwnerTo),
10592    RenameConstraint(RenameConstraint),
10593    RenameTo(RenameTo),
10594    SetDefault(SetDefault),
10595    SetNotNull(SetNotNull),
10596    SetSchema(SetSchema),
10597    ValidateConstraint(ValidateConstraint),
10598}
10599
10600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10601pub enum AlterTableAction {
10602    AddColumn(AddColumn),
10603    AddConstraint(AddConstraint),
10604    AlterColumn(AlterColumn),
10605    AlterConstraint(AlterConstraint),
10606    AttachPartition(AttachPartition),
10607    ClusterOn(ClusterOn),
10608    DetachPartition(DetachPartition),
10609    DisableRls(DisableRls),
10610    DisableRule(DisableRule),
10611    DisableTrigger(DisableTrigger),
10612    DropColumn(DropColumn),
10613    DropConstraint(DropConstraint),
10614    EnableAlwaysRule(EnableAlwaysRule),
10615    EnableAlwaysTrigger(EnableAlwaysTrigger),
10616    EnableReplicaRule(EnableReplicaRule),
10617    EnableReplicaTrigger(EnableReplicaTrigger),
10618    EnableRls(EnableRls),
10619    EnableRule(EnableRule),
10620    EnableTrigger(EnableTrigger),
10621    ForceRls(ForceRls),
10622    Inherit(Inherit),
10623    NoForceRls(NoForceRls),
10624    NoInherit(NoInherit),
10625    NotOf(NotOf),
10626    OfType(OfType),
10627    OptionsList(OptionsList),
10628    OwnerTo(OwnerTo),
10629    RenameColumn(RenameColumn),
10630    RenameConstraint(RenameConstraint),
10631    RenameTable(RenameTable),
10632    ReplicaIdentity(ReplicaIdentity),
10633    ResetStorageParams(ResetStorageParams),
10634    SetAccessMethod(SetAccessMethod),
10635    SetLogged(SetLogged),
10636    SetSchema(SetSchema),
10637    SetStorageParams(SetStorageParams),
10638    SetTablespace(SetTablespace),
10639    SetUnlogged(SetUnlogged),
10640    SetWithoutCluster(SetWithoutCluster),
10641    SetWithoutOids(SetWithoutOids),
10642    ValidateConstraint(ValidateConstraint),
10643}
10644
10645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10646pub enum ColumnConstraint {
10647    CheckConstraint(CheckConstraint),
10648    ExcludeConstraint(ExcludeConstraint),
10649    NotNullConstraint(NotNullConstraint),
10650    PrimaryKeyConstraint(PrimaryKeyConstraint),
10651    ReferencesConstraint(ReferencesConstraint),
10652    UniqueConstraint(UniqueConstraint),
10653}
10654
10655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10656pub enum Constraint {
10657    CheckConstraint(CheckConstraint),
10658    DefaultConstraint(DefaultConstraint),
10659    ForeignKeyConstraint(ForeignKeyConstraint),
10660    GeneratedConstraint(GeneratedConstraint),
10661    NotNullConstraint(NotNullConstraint),
10662    NullConstraint(NullConstraint),
10663    PrimaryKeyConstraint(PrimaryKeyConstraint),
10664    ReferencesConstraint(ReferencesConstraint),
10665    UniqueConstraint(UniqueConstraint),
10666}
10667
10668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10669pub enum Expr {
10670    ArrayExpr(ArrayExpr),
10671    BetweenExpr(BetweenExpr),
10672    BinExpr(BinExpr),
10673    CallExpr(CallExpr),
10674    CaseExpr(CaseExpr),
10675    CastExpr(CastExpr),
10676    FieldExpr(FieldExpr),
10677    IndexExpr(IndexExpr),
10678    Literal(Literal),
10679    NameRef(NameRef),
10680    ParenExpr(ParenExpr),
10681    PostfixExpr(PostfixExpr),
10682    PrefixExpr(PrefixExpr),
10683    TupleExpr(TupleExpr),
10684}
10685
10686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10687pub enum FuncOption {
10688    AsFuncOption(AsFuncOption),
10689    BeginFuncOption(BeginFuncOption),
10690    CostFuncOption(CostFuncOption),
10691    LanguageFuncOption(LanguageFuncOption),
10692    LeakproofFuncOption(LeakproofFuncOption),
10693    ParallelFuncOption(ParallelFuncOption),
10694    ResetFuncOption(ResetFuncOption),
10695    ReturnFuncOption(ReturnFuncOption),
10696    RowsFuncOption(RowsFuncOption),
10697    SecurityFuncOption(SecurityFuncOption),
10698    SetFuncOption(SetFuncOption),
10699    StrictFuncOption(StrictFuncOption),
10700    SupportFuncOption(SupportFuncOption),
10701    TransformFuncOption(TransformFuncOption),
10702    VolatilityFuncOption(VolatilityFuncOption),
10703    WindowFuncOption(WindowFuncOption),
10704}
10705
10706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10707pub enum GroupBy {
10708    GroupingCube(GroupingCube),
10709    GroupingExpr(GroupingExpr),
10710    GroupingRollup(GroupingRollup),
10711    GroupingSets(GroupingSets),
10712}
10713
10714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10715pub enum JoinType {
10716    JoinCross(JoinCross),
10717    JoinFull(JoinFull),
10718    JoinInner(JoinInner),
10719    JoinLeft(JoinLeft),
10720    JoinRight(JoinRight),
10721}
10722
10723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10724pub enum JsonBehavior {
10725    JsonBehaviorDefault(JsonBehaviorDefault),
10726    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
10727    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
10728    JsonBehaviorError(JsonBehaviorError),
10729    JsonBehaviorFalse(JsonBehaviorFalse),
10730    JsonBehaviorNull(JsonBehaviorNull),
10731    JsonBehaviorTrue(JsonBehaviorTrue),
10732    JsonBehaviorUnknown(JsonBehaviorUnknown),
10733}
10734
10735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10736pub enum MatchType {
10737    MatchFull(MatchFull),
10738    MatchPartial(MatchPartial),
10739    MatchSimple(MatchSimple),
10740}
10741
10742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10743pub enum MergeAction {
10744    MergeDelete(MergeDelete),
10745    MergeDoNothing(MergeDoNothing),
10746    MergeInsert(MergeInsert),
10747    MergeUpdate(MergeUpdate),
10748}
10749
10750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10751pub enum MergeWhenClause {
10752    MergeWhenMatched(MergeWhenMatched),
10753    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
10754    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
10755}
10756
10757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10758pub enum OnCommitAction {
10759    DeleteRows(DeleteRows),
10760    Drop(Drop),
10761    PreserveRows(PreserveRows),
10762}
10763
10764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10765pub enum ParamMode {
10766    ParamIn(ParamIn),
10767    ParamInOut(ParamInOut),
10768    ParamOut(ParamOut),
10769    ParamVariadic(ParamVariadic),
10770}
10771
10772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10773pub enum PartitionType {
10774    PartitionDefault(PartitionDefault),
10775    PartitionForValuesFrom(PartitionForValuesFrom),
10776    PartitionForValuesIn(PartitionForValuesIn),
10777    PartitionForValuesWith(PartitionForValuesWith),
10778}
10779
10780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10781pub enum RefAction {
10782    Cascade(Cascade),
10783    NoAction(NoAction),
10784    Restrict(Restrict),
10785    SetDefaultColumns(SetDefaultColumns),
10786    SetNullColumns(SetNullColumns),
10787}
10788
10789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10790pub enum Stmt {
10791    AlterAggregate(AlterAggregate),
10792    AlterCollation(AlterCollation),
10793    AlterConversion(AlterConversion),
10794    AlterDatabase(AlterDatabase),
10795    AlterDefaultPrivileges(AlterDefaultPrivileges),
10796    AlterDomain(AlterDomain),
10797    AlterEventTrigger(AlterEventTrigger),
10798    AlterExtension(AlterExtension),
10799    AlterForeignDataWrapper(AlterForeignDataWrapper),
10800    AlterForeignTable(AlterForeignTable),
10801    AlterFunction(AlterFunction),
10802    AlterGroup(AlterGroup),
10803    AlterIndex(AlterIndex),
10804    AlterLanguage(AlterLanguage),
10805    AlterLargeObject(AlterLargeObject),
10806    AlterMaterializedView(AlterMaterializedView),
10807    AlterOperator(AlterOperator),
10808    AlterOperatorClass(AlterOperatorClass),
10809    AlterOperatorFamily(AlterOperatorFamily),
10810    AlterPolicy(AlterPolicy),
10811    AlterProcedure(AlterProcedure),
10812    AlterPublication(AlterPublication),
10813    AlterRole(AlterRole),
10814    AlterRoutine(AlterRoutine),
10815    AlterRule(AlterRule),
10816    AlterSchema(AlterSchema),
10817    AlterSequence(AlterSequence),
10818    AlterServer(AlterServer),
10819    AlterStatistics(AlterStatistics),
10820    AlterSubscription(AlterSubscription),
10821    AlterSystem(AlterSystem),
10822    AlterTable(AlterTable),
10823    AlterTablespace(AlterTablespace),
10824    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
10825    AlterTextSearchDictionary(AlterTextSearchDictionary),
10826    AlterTextSearchParser(AlterTextSearchParser),
10827    AlterTextSearchTemplate(AlterTextSearchTemplate),
10828    AlterTrigger(AlterTrigger),
10829    AlterType(AlterType),
10830    AlterUser(AlterUser),
10831    AlterUserMapping(AlterUserMapping),
10832    AlterView(AlterView),
10833    Analyze(Analyze),
10834    Begin(Begin),
10835    Call(Call),
10836    Checkpoint(Checkpoint),
10837    Close(Close),
10838    Cluster(Cluster),
10839    CommentOn(CommentOn),
10840    Commit(Commit),
10841    Copy(Copy),
10842    CreateAccessMethod(CreateAccessMethod),
10843    CreateAggregate(CreateAggregate),
10844    CreateCast(CreateCast),
10845    CreateCollation(CreateCollation),
10846    CreateConversion(CreateConversion),
10847    CreateDatabase(CreateDatabase),
10848    CreateDomain(CreateDomain),
10849    CreateEventTrigger(CreateEventTrigger),
10850    CreateExtension(CreateExtension),
10851    CreateForeignDataWrapper(CreateForeignDataWrapper),
10852    CreateForeignTable(CreateForeignTable),
10853    CreateFunction(CreateFunction),
10854    CreateGroup(CreateGroup),
10855    CreateIndex(CreateIndex),
10856    CreateLanguage(CreateLanguage),
10857    CreateMaterializedView(CreateMaterializedView),
10858    CreateOperator(CreateOperator),
10859    CreateOperatorClass(CreateOperatorClass),
10860    CreateOperatorFamily(CreateOperatorFamily),
10861    CreatePolicy(CreatePolicy),
10862    CreateProcedure(CreateProcedure),
10863    CreatePublication(CreatePublication),
10864    CreateRole(CreateRole),
10865    CreateRule(CreateRule),
10866    CreateSchema(CreateSchema),
10867    CreateSequence(CreateSequence),
10868    CreateServer(CreateServer),
10869    CreateStatistics(CreateStatistics),
10870    CreateSubscription(CreateSubscription),
10871    CreateTable(CreateTable),
10872    CreateTableAs(CreateTableAs),
10873    CreateTablespace(CreateTablespace),
10874    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
10875    CreateTextSearchDictionary(CreateTextSearchDictionary),
10876    CreateTextSearchParser(CreateTextSearchParser),
10877    CreateTextSearchTemplate(CreateTextSearchTemplate),
10878    CreateTransform(CreateTransform),
10879    CreateTrigger(CreateTrigger),
10880    CreateType(CreateType),
10881    CreateUser(CreateUser),
10882    CreateUserMapping(CreateUserMapping),
10883    CreateView(CreateView),
10884    Deallocate(Deallocate),
10885    Declare(Declare),
10886    Delete(Delete),
10887    Discard(Discard),
10888    Do(Do),
10889    DropAccessMethod(DropAccessMethod),
10890    DropAggregate(DropAggregate),
10891    DropCast(DropCast),
10892    DropCollation(DropCollation),
10893    DropConversion(DropConversion),
10894    DropDatabase(DropDatabase),
10895    DropDomain(DropDomain),
10896    DropEventTrigger(DropEventTrigger),
10897    DropExtension(DropExtension),
10898    DropForeignDataWrapper(DropForeignDataWrapper),
10899    DropForeignTable(DropForeignTable),
10900    DropFunction(DropFunction),
10901    DropGroup(DropGroup),
10902    DropIndex(DropIndex),
10903    DropLanguage(DropLanguage),
10904    DropMaterializedView(DropMaterializedView),
10905    DropOperator(DropOperator),
10906    DropOperatorClass(DropOperatorClass),
10907    DropOperatorFamily(DropOperatorFamily),
10908    DropOwned(DropOwned),
10909    DropPolicy(DropPolicy),
10910    DropProcedure(DropProcedure),
10911    DropPublication(DropPublication),
10912    DropRole(DropRole),
10913    DropRoutine(DropRoutine),
10914    DropRule(DropRule),
10915    DropSchema(DropSchema),
10916    DropSequence(DropSequence),
10917    DropServer(DropServer),
10918    DropStatistics(DropStatistics),
10919    DropSubscription(DropSubscription),
10920    DropTable(DropTable),
10921    DropTablespace(DropTablespace),
10922    DropTextSearchConfig(DropTextSearchConfig),
10923    DropTextSearchDict(DropTextSearchDict),
10924    DropTextSearchParser(DropTextSearchParser),
10925    DropTextSearchTemplate(DropTextSearchTemplate),
10926    DropTransform(DropTransform),
10927    DropTrigger(DropTrigger),
10928    DropType(DropType),
10929    DropUser(DropUser),
10930    DropUserMapping(DropUserMapping),
10931    DropView(DropView),
10932    Execute(Execute),
10933    Explain(Explain),
10934    Fetch(Fetch),
10935    Grant(Grant),
10936    ImportForeignSchema(ImportForeignSchema),
10937    Insert(Insert),
10938    Listen(Listen),
10939    Load(Load),
10940    Lock(Lock),
10941    Merge(Merge),
10942    Move(Move),
10943    Notify(Notify),
10944    ParenSelect(ParenSelect),
10945    Prepare(Prepare),
10946    PrepareTransaction(PrepareTransaction),
10947    Reassign(Reassign),
10948    Refresh(Refresh),
10949    Reindex(Reindex),
10950    ReleaseSavepoint(ReleaseSavepoint),
10951    Reset(Reset),
10952    Revoke(Revoke),
10953    Rollback(Rollback),
10954    Savepoint(Savepoint),
10955    SecurityLabel(SecurityLabel),
10956    Select(Select),
10957    SelectInto(SelectInto),
10958    Set(Set),
10959    SetConstraints(SetConstraints),
10960    SetRole(SetRole),
10961    SetSessionAuth(SetSessionAuth),
10962    SetTransaction(SetTransaction),
10963    Show(Show),
10964    Table(Table),
10965    Truncate(Truncate),
10966    Unlisten(Unlisten),
10967    Update(Update),
10968    Vacuum(Vacuum),
10969    Values(Values),
10970}
10971
10972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10973pub enum TableArg {
10974    Column(Column),
10975    LikeClause(LikeClause),
10976    TableConstraint(TableConstraint),
10977}
10978
10979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10980pub enum TableConstraint {
10981    CheckConstraint(CheckConstraint),
10982    ExcludeConstraint(ExcludeConstraint),
10983    ForeignKeyConstraint(ForeignKeyConstraint),
10984    PrimaryKeyConstraint(PrimaryKeyConstraint),
10985    UniqueConstraint(UniqueConstraint),
10986}
10987
10988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10989pub enum Timezone {
10990    WithTimezone(WithTimezone),
10991    WithoutTimezone(WithoutTimezone),
10992}
10993
10994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10995pub enum TransactionMode {
10996    Deferrable(Deferrable),
10997    NotDeferrable(NotDeferrable),
10998    ReadCommitted(ReadCommitted),
10999    ReadOnly(ReadOnly),
11000    ReadUncommitted(ReadUncommitted),
11001    ReadWrite(ReadWrite),
11002    RepeatableRead(RepeatableRead),
11003    Serializable(Serializable),
11004}
11005
11006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11007pub enum Type {
11008    ArrayType(ArrayType),
11009    BitType(BitType),
11010    CharType(CharType),
11011    DoubleType(DoubleType),
11012    IntervalType(IntervalType),
11013    PathType(PathType),
11014    PercentType(PercentType),
11015    TimeType(TimeType),
11016}
11017
11018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11019pub enum WithQuery {
11020    Delete(Delete),
11021    Insert(Insert),
11022    Merge(Merge),
11023    Select(Select),
11024    Update(Update),
11025    Values(Values),
11026}
11027impl AstNode for AddColumn {
11028    #[inline]
11029    fn can_cast(kind: SyntaxKind) -> bool {
11030        kind == SyntaxKind::ADD_COLUMN
11031    }
11032    #[inline]
11033    fn cast(syntax: SyntaxNode) -> Option<Self> {
11034        if Self::can_cast(syntax.kind()) {
11035            Some(Self { syntax })
11036        } else {
11037            None
11038        }
11039    }
11040    #[inline]
11041    fn syntax(&self) -> &SyntaxNode {
11042        &self.syntax
11043    }
11044}
11045impl AstNode for AddConstraint {
11046    #[inline]
11047    fn can_cast(kind: SyntaxKind) -> bool {
11048        kind == SyntaxKind::ADD_CONSTRAINT
11049    }
11050    #[inline]
11051    fn cast(syntax: SyntaxNode) -> Option<Self> {
11052        if Self::can_cast(syntax.kind()) {
11053            Some(Self { syntax })
11054        } else {
11055            None
11056        }
11057    }
11058    #[inline]
11059    fn syntax(&self) -> &SyntaxNode {
11060        &self.syntax
11061    }
11062}
11063impl AstNode for AddGenerated {
11064    #[inline]
11065    fn can_cast(kind: SyntaxKind) -> bool {
11066        kind == SyntaxKind::ADD_GENERATED
11067    }
11068    #[inline]
11069    fn cast(syntax: SyntaxNode) -> Option<Self> {
11070        if Self::can_cast(syntax.kind()) {
11071            Some(Self { syntax })
11072        } else {
11073            None
11074        }
11075    }
11076    #[inline]
11077    fn syntax(&self) -> &SyntaxNode {
11078        &self.syntax
11079    }
11080}
11081impl AstNode for Aggregate {
11082    #[inline]
11083    fn can_cast(kind: SyntaxKind) -> bool {
11084        kind == SyntaxKind::AGGREGATE
11085    }
11086    #[inline]
11087    fn cast(syntax: SyntaxNode) -> Option<Self> {
11088        if Self::can_cast(syntax.kind()) {
11089            Some(Self { syntax })
11090        } else {
11091            None
11092        }
11093    }
11094    #[inline]
11095    fn syntax(&self) -> &SyntaxNode {
11096        &self.syntax
11097    }
11098}
11099impl AstNode for Alias {
11100    #[inline]
11101    fn can_cast(kind: SyntaxKind) -> bool {
11102        kind == SyntaxKind::ALIAS
11103    }
11104    #[inline]
11105    fn cast(syntax: SyntaxNode) -> Option<Self> {
11106        if Self::can_cast(syntax.kind()) {
11107            Some(Self { syntax })
11108        } else {
11109            None
11110        }
11111    }
11112    #[inline]
11113    fn syntax(&self) -> &SyntaxNode {
11114        &self.syntax
11115    }
11116}
11117impl AstNode for AlterAggregate {
11118    #[inline]
11119    fn can_cast(kind: SyntaxKind) -> bool {
11120        kind == SyntaxKind::ALTER_AGGREGATE
11121    }
11122    #[inline]
11123    fn cast(syntax: SyntaxNode) -> Option<Self> {
11124        if Self::can_cast(syntax.kind()) {
11125            Some(Self { syntax })
11126        } else {
11127            None
11128        }
11129    }
11130    #[inline]
11131    fn syntax(&self) -> &SyntaxNode {
11132        &self.syntax
11133    }
11134}
11135impl AstNode for AlterCollation {
11136    #[inline]
11137    fn can_cast(kind: SyntaxKind) -> bool {
11138        kind == SyntaxKind::ALTER_COLLATION
11139    }
11140    #[inline]
11141    fn cast(syntax: SyntaxNode) -> Option<Self> {
11142        if Self::can_cast(syntax.kind()) {
11143            Some(Self { syntax })
11144        } else {
11145            None
11146        }
11147    }
11148    #[inline]
11149    fn syntax(&self) -> &SyntaxNode {
11150        &self.syntax
11151    }
11152}
11153impl AstNode for AlterColumn {
11154    #[inline]
11155    fn can_cast(kind: SyntaxKind) -> bool {
11156        kind == SyntaxKind::ALTER_COLUMN
11157    }
11158    #[inline]
11159    fn cast(syntax: SyntaxNode) -> Option<Self> {
11160        if Self::can_cast(syntax.kind()) {
11161            Some(Self { syntax })
11162        } else {
11163            None
11164        }
11165    }
11166    #[inline]
11167    fn syntax(&self) -> &SyntaxNode {
11168        &self.syntax
11169    }
11170}
11171impl AstNode for AlterConstraint {
11172    #[inline]
11173    fn can_cast(kind: SyntaxKind) -> bool {
11174        kind == SyntaxKind::ALTER_CONSTRAINT
11175    }
11176    #[inline]
11177    fn cast(syntax: SyntaxNode) -> Option<Self> {
11178        if Self::can_cast(syntax.kind()) {
11179            Some(Self { syntax })
11180        } else {
11181            None
11182        }
11183    }
11184    #[inline]
11185    fn syntax(&self) -> &SyntaxNode {
11186        &self.syntax
11187    }
11188}
11189impl AstNode for AlterConversion {
11190    #[inline]
11191    fn can_cast(kind: SyntaxKind) -> bool {
11192        kind == SyntaxKind::ALTER_CONVERSION
11193    }
11194    #[inline]
11195    fn cast(syntax: SyntaxNode) -> Option<Self> {
11196        if Self::can_cast(syntax.kind()) {
11197            Some(Self { syntax })
11198        } else {
11199            None
11200        }
11201    }
11202    #[inline]
11203    fn syntax(&self) -> &SyntaxNode {
11204        &self.syntax
11205    }
11206}
11207impl AstNode for AlterDatabase {
11208    #[inline]
11209    fn can_cast(kind: SyntaxKind) -> bool {
11210        kind == SyntaxKind::ALTER_DATABASE
11211    }
11212    #[inline]
11213    fn cast(syntax: SyntaxNode) -> Option<Self> {
11214        if Self::can_cast(syntax.kind()) {
11215            Some(Self { syntax })
11216        } else {
11217            None
11218        }
11219    }
11220    #[inline]
11221    fn syntax(&self) -> &SyntaxNode {
11222        &self.syntax
11223    }
11224}
11225impl AstNode for AlterDefaultPrivileges {
11226    #[inline]
11227    fn can_cast(kind: SyntaxKind) -> bool {
11228        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
11229    }
11230    #[inline]
11231    fn cast(syntax: SyntaxNode) -> Option<Self> {
11232        if Self::can_cast(syntax.kind()) {
11233            Some(Self { syntax })
11234        } else {
11235            None
11236        }
11237    }
11238    #[inline]
11239    fn syntax(&self) -> &SyntaxNode {
11240        &self.syntax
11241    }
11242}
11243impl AstNode for AlterDomain {
11244    #[inline]
11245    fn can_cast(kind: SyntaxKind) -> bool {
11246        kind == SyntaxKind::ALTER_DOMAIN
11247    }
11248    #[inline]
11249    fn cast(syntax: SyntaxNode) -> Option<Self> {
11250        if Self::can_cast(syntax.kind()) {
11251            Some(Self { syntax })
11252        } else {
11253            None
11254        }
11255    }
11256    #[inline]
11257    fn syntax(&self) -> &SyntaxNode {
11258        &self.syntax
11259    }
11260}
11261impl AstNode for AlterEventTrigger {
11262    #[inline]
11263    fn can_cast(kind: SyntaxKind) -> bool {
11264        kind == SyntaxKind::ALTER_EVENT_TRIGGER
11265    }
11266    #[inline]
11267    fn cast(syntax: SyntaxNode) -> Option<Self> {
11268        if Self::can_cast(syntax.kind()) {
11269            Some(Self { syntax })
11270        } else {
11271            None
11272        }
11273    }
11274    #[inline]
11275    fn syntax(&self) -> &SyntaxNode {
11276        &self.syntax
11277    }
11278}
11279impl AstNode for AlterExtension {
11280    #[inline]
11281    fn can_cast(kind: SyntaxKind) -> bool {
11282        kind == SyntaxKind::ALTER_EXTENSION
11283    }
11284    #[inline]
11285    fn cast(syntax: SyntaxNode) -> Option<Self> {
11286        if Self::can_cast(syntax.kind()) {
11287            Some(Self { syntax })
11288        } else {
11289            None
11290        }
11291    }
11292    #[inline]
11293    fn syntax(&self) -> &SyntaxNode {
11294        &self.syntax
11295    }
11296}
11297impl AstNode for AlterForeignDataWrapper {
11298    #[inline]
11299    fn can_cast(kind: SyntaxKind) -> bool {
11300        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
11301    }
11302    #[inline]
11303    fn cast(syntax: SyntaxNode) -> Option<Self> {
11304        if Self::can_cast(syntax.kind()) {
11305            Some(Self { syntax })
11306        } else {
11307            None
11308        }
11309    }
11310    #[inline]
11311    fn syntax(&self) -> &SyntaxNode {
11312        &self.syntax
11313    }
11314}
11315impl AstNode for AlterForeignTable {
11316    #[inline]
11317    fn can_cast(kind: SyntaxKind) -> bool {
11318        kind == SyntaxKind::ALTER_FOREIGN_TABLE
11319    }
11320    #[inline]
11321    fn cast(syntax: SyntaxNode) -> Option<Self> {
11322        if Self::can_cast(syntax.kind()) {
11323            Some(Self { syntax })
11324        } else {
11325            None
11326        }
11327    }
11328    #[inline]
11329    fn syntax(&self) -> &SyntaxNode {
11330        &self.syntax
11331    }
11332}
11333impl AstNode for AlterFunction {
11334    #[inline]
11335    fn can_cast(kind: SyntaxKind) -> bool {
11336        kind == SyntaxKind::ALTER_FUNCTION
11337    }
11338    #[inline]
11339    fn cast(syntax: SyntaxNode) -> Option<Self> {
11340        if Self::can_cast(syntax.kind()) {
11341            Some(Self { syntax })
11342        } else {
11343            None
11344        }
11345    }
11346    #[inline]
11347    fn syntax(&self) -> &SyntaxNode {
11348        &self.syntax
11349    }
11350}
11351impl AstNode for AlterGroup {
11352    #[inline]
11353    fn can_cast(kind: SyntaxKind) -> bool {
11354        kind == SyntaxKind::ALTER_GROUP
11355    }
11356    #[inline]
11357    fn cast(syntax: SyntaxNode) -> Option<Self> {
11358        if Self::can_cast(syntax.kind()) {
11359            Some(Self { syntax })
11360        } else {
11361            None
11362        }
11363    }
11364    #[inline]
11365    fn syntax(&self) -> &SyntaxNode {
11366        &self.syntax
11367    }
11368}
11369impl AstNode for AlterIndex {
11370    #[inline]
11371    fn can_cast(kind: SyntaxKind) -> bool {
11372        kind == SyntaxKind::ALTER_INDEX
11373    }
11374    #[inline]
11375    fn cast(syntax: SyntaxNode) -> Option<Self> {
11376        if Self::can_cast(syntax.kind()) {
11377            Some(Self { syntax })
11378        } else {
11379            None
11380        }
11381    }
11382    #[inline]
11383    fn syntax(&self) -> &SyntaxNode {
11384        &self.syntax
11385    }
11386}
11387impl AstNode for AlterLanguage {
11388    #[inline]
11389    fn can_cast(kind: SyntaxKind) -> bool {
11390        kind == SyntaxKind::ALTER_LANGUAGE
11391    }
11392    #[inline]
11393    fn cast(syntax: SyntaxNode) -> Option<Self> {
11394        if Self::can_cast(syntax.kind()) {
11395            Some(Self { syntax })
11396        } else {
11397            None
11398        }
11399    }
11400    #[inline]
11401    fn syntax(&self) -> &SyntaxNode {
11402        &self.syntax
11403    }
11404}
11405impl AstNode for AlterLargeObject {
11406    #[inline]
11407    fn can_cast(kind: SyntaxKind) -> bool {
11408        kind == SyntaxKind::ALTER_LARGE_OBJECT
11409    }
11410    #[inline]
11411    fn cast(syntax: SyntaxNode) -> Option<Self> {
11412        if Self::can_cast(syntax.kind()) {
11413            Some(Self { syntax })
11414        } else {
11415            None
11416        }
11417    }
11418    #[inline]
11419    fn syntax(&self) -> &SyntaxNode {
11420        &self.syntax
11421    }
11422}
11423impl AstNode for AlterMaterializedView {
11424    #[inline]
11425    fn can_cast(kind: SyntaxKind) -> bool {
11426        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
11427    }
11428    #[inline]
11429    fn cast(syntax: SyntaxNode) -> Option<Self> {
11430        if Self::can_cast(syntax.kind()) {
11431            Some(Self { syntax })
11432        } else {
11433            None
11434        }
11435    }
11436    #[inline]
11437    fn syntax(&self) -> &SyntaxNode {
11438        &self.syntax
11439    }
11440}
11441impl AstNode for AlterOperator {
11442    #[inline]
11443    fn can_cast(kind: SyntaxKind) -> bool {
11444        kind == SyntaxKind::ALTER_OPERATOR
11445    }
11446    #[inline]
11447    fn cast(syntax: SyntaxNode) -> Option<Self> {
11448        if Self::can_cast(syntax.kind()) {
11449            Some(Self { syntax })
11450        } else {
11451            None
11452        }
11453    }
11454    #[inline]
11455    fn syntax(&self) -> &SyntaxNode {
11456        &self.syntax
11457    }
11458}
11459impl AstNode for AlterOperatorClass {
11460    #[inline]
11461    fn can_cast(kind: SyntaxKind) -> bool {
11462        kind == SyntaxKind::ALTER_OPERATOR_CLASS
11463    }
11464    #[inline]
11465    fn cast(syntax: SyntaxNode) -> Option<Self> {
11466        if Self::can_cast(syntax.kind()) {
11467            Some(Self { syntax })
11468        } else {
11469            None
11470        }
11471    }
11472    #[inline]
11473    fn syntax(&self) -> &SyntaxNode {
11474        &self.syntax
11475    }
11476}
11477impl AstNode for AlterOperatorFamily {
11478    #[inline]
11479    fn can_cast(kind: SyntaxKind) -> bool {
11480        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
11481    }
11482    #[inline]
11483    fn cast(syntax: SyntaxNode) -> Option<Self> {
11484        if Self::can_cast(syntax.kind()) {
11485            Some(Self { syntax })
11486        } else {
11487            None
11488        }
11489    }
11490    #[inline]
11491    fn syntax(&self) -> &SyntaxNode {
11492        &self.syntax
11493    }
11494}
11495impl AstNode for AlterPolicy {
11496    #[inline]
11497    fn can_cast(kind: SyntaxKind) -> bool {
11498        kind == SyntaxKind::ALTER_POLICY
11499    }
11500    #[inline]
11501    fn cast(syntax: SyntaxNode) -> Option<Self> {
11502        if Self::can_cast(syntax.kind()) {
11503            Some(Self { syntax })
11504        } else {
11505            None
11506        }
11507    }
11508    #[inline]
11509    fn syntax(&self) -> &SyntaxNode {
11510        &self.syntax
11511    }
11512}
11513impl AstNode for AlterProcedure {
11514    #[inline]
11515    fn can_cast(kind: SyntaxKind) -> bool {
11516        kind == SyntaxKind::ALTER_PROCEDURE
11517    }
11518    #[inline]
11519    fn cast(syntax: SyntaxNode) -> Option<Self> {
11520        if Self::can_cast(syntax.kind()) {
11521            Some(Self { syntax })
11522        } else {
11523            None
11524        }
11525    }
11526    #[inline]
11527    fn syntax(&self) -> &SyntaxNode {
11528        &self.syntax
11529    }
11530}
11531impl AstNode for AlterPublication {
11532    #[inline]
11533    fn can_cast(kind: SyntaxKind) -> bool {
11534        kind == SyntaxKind::ALTER_PUBLICATION
11535    }
11536    #[inline]
11537    fn cast(syntax: SyntaxNode) -> Option<Self> {
11538        if Self::can_cast(syntax.kind()) {
11539            Some(Self { syntax })
11540        } else {
11541            None
11542        }
11543    }
11544    #[inline]
11545    fn syntax(&self) -> &SyntaxNode {
11546        &self.syntax
11547    }
11548}
11549impl AstNode for AlterRole {
11550    #[inline]
11551    fn can_cast(kind: SyntaxKind) -> bool {
11552        kind == SyntaxKind::ALTER_ROLE
11553    }
11554    #[inline]
11555    fn cast(syntax: SyntaxNode) -> Option<Self> {
11556        if Self::can_cast(syntax.kind()) {
11557            Some(Self { syntax })
11558        } else {
11559            None
11560        }
11561    }
11562    #[inline]
11563    fn syntax(&self) -> &SyntaxNode {
11564        &self.syntax
11565    }
11566}
11567impl AstNode for AlterRoutine {
11568    #[inline]
11569    fn can_cast(kind: SyntaxKind) -> bool {
11570        kind == SyntaxKind::ALTER_ROUTINE
11571    }
11572    #[inline]
11573    fn cast(syntax: SyntaxNode) -> Option<Self> {
11574        if Self::can_cast(syntax.kind()) {
11575            Some(Self { syntax })
11576        } else {
11577            None
11578        }
11579    }
11580    #[inline]
11581    fn syntax(&self) -> &SyntaxNode {
11582        &self.syntax
11583    }
11584}
11585impl AstNode for AlterRule {
11586    #[inline]
11587    fn can_cast(kind: SyntaxKind) -> bool {
11588        kind == SyntaxKind::ALTER_RULE
11589    }
11590    #[inline]
11591    fn cast(syntax: SyntaxNode) -> Option<Self> {
11592        if Self::can_cast(syntax.kind()) {
11593            Some(Self { syntax })
11594        } else {
11595            None
11596        }
11597    }
11598    #[inline]
11599    fn syntax(&self) -> &SyntaxNode {
11600        &self.syntax
11601    }
11602}
11603impl AstNode for AlterSchema {
11604    #[inline]
11605    fn can_cast(kind: SyntaxKind) -> bool {
11606        kind == SyntaxKind::ALTER_SCHEMA
11607    }
11608    #[inline]
11609    fn cast(syntax: SyntaxNode) -> Option<Self> {
11610        if Self::can_cast(syntax.kind()) {
11611            Some(Self { syntax })
11612        } else {
11613            None
11614        }
11615    }
11616    #[inline]
11617    fn syntax(&self) -> &SyntaxNode {
11618        &self.syntax
11619    }
11620}
11621impl AstNode for AlterSequence {
11622    #[inline]
11623    fn can_cast(kind: SyntaxKind) -> bool {
11624        kind == SyntaxKind::ALTER_SEQUENCE
11625    }
11626    #[inline]
11627    fn cast(syntax: SyntaxNode) -> Option<Self> {
11628        if Self::can_cast(syntax.kind()) {
11629            Some(Self { syntax })
11630        } else {
11631            None
11632        }
11633    }
11634    #[inline]
11635    fn syntax(&self) -> &SyntaxNode {
11636        &self.syntax
11637    }
11638}
11639impl AstNode for AlterServer {
11640    #[inline]
11641    fn can_cast(kind: SyntaxKind) -> bool {
11642        kind == SyntaxKind::ALTER_SERVER
11643    }
11644    #[inline]
11645    fn cast(syntax: SyntaxNode) -> Option<Self> {
11646        if Self::can_cast(syntax.kind()) {
11647            Some(Self { syntax })
11648        } else {
11649            None
11650        }
11651    }
11652    #[inline]
11653    fn syntax(&self) -> &SyntaxNode {
11654        &self.syntax
11655    }
11656}
11657impl AstNode for AlterStatistics {
11658    #[inline]
11659    fn can_cast(kind: SyntaxKind) -> bool {
11660        kind == SyntaxKind::ALTER_STATISTICS
11661    }
11662    #[inline]
11663    fn cast(syntax: SyntaxNode) -> Option<Self> {
11664        if Self::can_cast(syntax.kind()) {
11665            Some(Self { syntax })
11666        } else {
11667            None
11668        }
11669    }
11670    #[inline]
11671    fn syntax(&self) -> &SyntaxNode {
11672        &self.syntax
11673    }
11674}
11675impl AstNode for AlterSubscription {
11676    #[inline]
11677    fn can_cast(kind: SyntaxKind) -> bool {
11678        kind == SyntaxKind::ALTER_SUBSCRIPTION
11679    }
11680    #[inline]
11681    fn cast(syntax: SyntaxNode) -> Option<Self> {
11682        if Self::can_cast(syntax.kind()) {
11683            Some(Self { syntax })
11684        } else {
11685            None
11686        }
11687    }
11688    #[inline]
11689    fn syntax(&self) -> &SyntaxNode {
11690        &self.syntax
11691    }
11692}
11693impl AstNode for AlterSystem {
11694    #[inline]
11695    fn can_cast(kind: SyntaxKind) -> bool {
11696        kind == SyntaxKind::ALTER_SYSTEM
11697    }
11698    #[inline]
11699    fn cast(syntax: SyntaxNode) -> Option<Self> {
11700        if Self::can_cast(syntax.kind()) {
11701            Some(Self { syntax })
11702        } else {
11703            None
11704        }
11705    }
11706    #[inline]
11707    fn syntax(&self) -> &SyntaxNode {
11708        &self.syntax
11709    }
11710}
11711impl AstNode for AlterTable {
11712    #[inline]
11713    fn can_cast(kind: SyntaxKind) -> bool {
11714        kind == SyntaxKind::ALTER_TABLE
11715    }
11716    #[inline]
11717    fn cast(syntax: SyntaxNode) -> Option<Self> {
11718        if Self::can_cast(syntax.kind()) {
11719            Some(Self { syntax })
11720        } else {
11721            None
11722        }
11723    }
11724    #[inline]
11725    fn syntax(&self) -> &SyntaxNode {
11726        &self.syntax
11727    }
11728}
11729impl AstNode for AlterTablespace {
11730    #[inline]
11731    fn can_cast(kind: SyntaxKind) -> bool {
11732        kind == SyntaxKind::ALTER_TABLESPACE
11733    }
11734    #[inline]
11735    fn cast(syntax: SyntaxNode) -> Option<Self> {
11736        if Self::can_cast(syntax.kind()) {
11737            Some(Self { syntax })
11738        } else {
11739            None
11740        }
11741    }
11742    #[inline]
11743    fn syntax(&self) -> &SyntaxNode {
11744        &self.syntax
11745    }
11746}
11747impl AstNode for AlterTextSearchConfiguration {
11748    #[inline]
11749    fn can_cast(kind: SyntaxKind) -> bool {
11750        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
11751    }
11752    #[inline]
11753    fn cast(syntax: SyntaxNode) -> Option<Self> {
11754        if Self::can_cast(syntax.kind()) {
11755            Some(Self { syntax })
11756        } else {
11757            None
11758        }
11759    }
11760    #[inline]
11761    fn syntax(&self) -> &SyntaxNode {
11762        &self.syntax
11763    }
11764}
11765impl AstNode for AlterTextSearchDictionary {
11766    #[inline]
11767    fn can_cast(kind: SyntaxKind) -> bool {
11768        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
11769    }
11770    #[inline]
11771    fn cast(syntax: SyntaxNode) -> Option<Self> {
11772        if Self::can_cast(syntax.kind()) {
11773            Some(Self { syntax })
11774        } else {
11775            None
11776        }
11777    }
11778    #[inline]
11779    fn syntax(&self) -> &SyntaxNode {
11780        &self.syntax
11781    }
11782}
11783impl AstNode for AlterTextSearchParser {
11784    #[inline]
11785    fn can_cast(kind: SyntaxKind) -> bool {
11786        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
11787    }
11788    #[inline]
11789    fn cast(syntax: SyntaxNode) -> Option<Self> {
11790        if Self::can_cast(syntax.kind()) {
11791            Some(Self { syntax })
11792        } else {
11793            None
11794        }
11795    }
11796    #[inline]
11797    fn syntax(&self) -> &SyntaxNode {
11798        &self.syntax
11799    }
11800}
11801impl AstNode for AlterTextSearchTemplate {
11802    #[inline]
11803    fn can_cast(kind: SyntaxKind) -> bool {
11804        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
11805    }
11806    #[inline]
11807    fn cast(syntax: SyntaxNode) -> Option<Self> {
11808        if Self::can_cast(syntax.kind()) {
11809            Some(Self { syntax })
11810        } else {
11811            None
11812        }
11813    }
11814    #[inline]
11815    fn syntax(&self) -> &SyntaxNode {
11816        &self.syntax
11817    }
11818}
11819impl AstNode for AlterTrigger {
11820    #[inline]
11821    fn can_cast(kind: SyntaxKind) -> bool {
11822        kind == SyntaxKind::ALTER_TRIGGER
11823    }
11824    #[inline]
11825    fn cast(syntax: SyntaxNode) -> Option<Self> {
11826        if Self::can_cast(syntax.kind()) {
11827            Some(Self { syntax })
11828        } else {
11829            None
11830        }
11831    }
11832    #[inline]
11833    fn syntax(&self) -> &SyntaxNode {
11834        &self.syntax
11835    }
11836}
11837impl AstNode for AlterType {
11838    #[inline]
11839    fn can_cast(kind: SyntaxKind) -> bool {
11840        kind == SyntaxKind::ALTER_TYPE
11841    }
11842    #[inline]
11843    fn cast(syntax: SyntaxNode) -> Option<Self> {
11844        if Self::can_cast(syntax.kind()) {
11845            Some(Self { syntax })
11846        } else {
11847            None
11848        }
11849    }
11850    #[inline]
11851    fn syntax(&self) -> &SyntaxNode {
11852        &self.syntax
11853    }
11854}
11855impl AstNode for AlterUser {
11856    #[inline]
11857    fn can_cast(kind: SyntaxKind) -> bool {
11858        kind == SyntaxKind::ALTER_USER
11859    }
11860    #[inline]
11861    fn cast(syntax: SyntaxNode) -> Option<Self> {
11862        if Self::can_cast(syntax.kind()) {
11863            Some(Self { syntax })
11864        } else {
11865            None
11866        }
11867    }
11868    #[inline]
11869    fn syntax(&self) -> &SyntaxNode {
11870        &self.syntax
11871    }
11872}
11873impl AstNode for AlterUserMapping {
11874    #[inline]
11875    fn can_cast(kind: SyntaxKind) -> bool {
11876        kind == SyntaxKind::ALTER_USER_MAPPING
11877    }
11878    #[inline]
11879    fn cast(syntax: SyntaxNode) -> Option<Self> {
11880        if Self::can_cast(syntax.kind()) {
11881            Some(Self { syntax })
11882        } else {
11883            None
11884        }
11885    }
11886    #[inline]
11887    fn syntax(&self) -> &SyntaxNode {
11888        &self.syntax
11889    }
11890}
11891impl AstNode for AlterView {
11892    #[inline]
11893    fn can_cast(kind: SyntaxKind) -> bool {
11894        kind == SyntaxKind::ALTER_VIEW
11895    }
11896    #[inline]
11897    fn cast(syntax: SyntaxNode) -> Option<Self> {
11898        if Self::can_cast(syntax.kind()) {
11899            Some(Self { syntax })
11900        } else {
11901            None
11902        }
11903    }
11904    #[inline]
11905    fn syntax(&self) -> &SyntaxNode {
11906        &self.syntax
11907    }
11908}
11909impl AstNode for Analyze {
11910    #[inline]
11911    fn can_cast(kind: SyntaxKind) -> bool {
11912        kind == SyntaxKind::ANALYZE
11913    }
11914    #[inline]
11915    fn cast(syntax: SyntaxNode) -> Option<Self> {
11916        if Self::can_cast(syntax.kind()) {
11917            Some(Self { syntax })
11918        } else {
11919            None
11920        }
11921    }
11922    #[inline]
11923    fn syntax(&self) -> &SyntaxNode {
11924        &self.syntax
11925    }
11926}
11927impl AstNode for Arg {
11928    #[inline]
11929    fn can_cast(kind: SyntaxKind) -> bool {
11930        kind == SyntaxKind::ARG
11931    }
11932    #[inline]
11933    fn cast(syntax: SyntaxNode) -> Option<Self> {
11934        if Self::can_cast(syntax.kind()) {
11935            Some(Self { syntax })
11936        } else {
11937            None
11938        }
11939    }
11940    #[inline]
11941    fn syntax(&self) -> &SyntaxNode {
11942        &self.syntax
11943    }
11944}
11945impl AstNode for ArgList {
11946    #[inline]
11947    fn can_cast(kind: SyntaxKind) -> bool {
11948        kind == SyntaxKind::ARG_LIST
11949    }
11950    #[inline]
11951    fn cast(syntax: SyntaxNode) -> Option<Self> {
11952        if Self::can_cast(syntax.kind()) {
11953            Some(Self { syntax })
11954        } else {
11955            None
11956        }
11957    }
11958    #[inline]
11959    fn syntax(&self) -> &SyntaxNode {
11960        &self.syntax
11961    }
11962}
11963impl AstNode for ArrayExpr {
11964    #[inline]
11965    fn can_cast(kind: SyntaxKind) -> bool {
11966        kind == SyntaxKind::ARRAY_EXPR
11967    }
11968    #[inline]
11969    fn cast(syntax: SyntaxNode) -> Option<Self> {
11970        if Self::can_cast(syntax.kind()) {
11971            Some(Self { syntax })
11972        } else {
11973            None
11974        }
11975    }
11976    #[inline]
11977    fn syntax(&self) -> &SyntaxNode {
11978        &self.syntax
11979    }
11980}
11981impl AstNode for ArrayType {
11982    #[inline]
11983    fn can_cast(kind: SyntaxKind) -> bool {
11984        kind == SyntaxKind::ARRAY_TYPE
11985    }
11986    #[inline]
11987    fn cast(syntax: SyntaxNode) -> Option<Self> {
11988        if Self::can_cast(syntax.kind()) {
11989            Some(Self { syntax })
11990        } else {
11991            None
11992        }
11993    }
11994    #[inline]
11995    fn syntax(&self) -> &SyntaxNode {
11996        &self.syntax
11997    }
11998}
11999impl AstNode for AsFuncOption {
12000    #[inline]
12001    fn can_cast(kind: SyntaxKind) -> bool {
12002        kind == SyntaxKind::AS_FUNC_OPTION
12003    }
12004    #[inline]
12005    fn cast(syntax: SyntaxNode) -> Option<Self> {
12006        if Self::can_cast(syntax.kind()) {
12007            Some(Self { syntax })
12008        } else {
12009            None
12010        }
12011    }
12012    #[inline]
12013    fn syntax(&self) -> &SyntaxNode {
12014        &self.syntax
12015    }
12016}
12017impl AstNode for AsName {
12018    #[inline]
12019    fn can_cast(kind: SyntaxKind) -> bool {
12020        kind == SyntaxKind::AS_NAME
12021    }
12022    #[inline]
12023    fn cast(syntax: SyntaxNode) -> Option<Self> {
12024        if Self::can_cast(syntax.kind()) {
12025            Some(Self { syntax })
12026        } else {
12027            None
12028        }
12029    }
12030    #[inline]
12031    fn syntax(&self) -> &SyntaxNode {
12032        &self.syntax
12033    }
12034}
12035impl AstNode for AtTimeZone {
12036    #[inline]
12037    fn can_cast(kind: SyntaxKind) -> bool {
12038        kind == SyntaxKind::AT_TIME_ZONE
12039    }
12040    #[inline]
12041    fn cast(syntax: SyntaxNode) -> Option<Self> {
12042        if Self::can_cast(syntax.kind()) {
12043            Some(Self { syntax })
12044        } else {
12045            None
12046        }
12047    }
12048    #[inline]
12049    fn syntax(&self) -> &SyntaxNode {
12050        &self.syntax
12051    }
12052}
12053impl AstNode for AttachPartition {
12054    #[inline]
12055    fn can_cast(kind: SyntaxKind) -> bool {
12056        kind == SyntaxKind::ATTACH_PARTITION
12057    }
12058    #[inline]
12059    fn cast(syntax: SyntaxNode) -> Option<Self> {
12060        if Self::can_cast(syntax.kind()) {
12061            Some(Self { syntax })
12062        } else {
12063            None
12064        }
12065    }
12066    #[inline]
12067    fn syntax(&self) -> &SyntaxNode {
12068        &self.syntax
12069    }
12070}
12071impl AstNode for AttributeList {
12072    #[inline]
12073    fn can_cast(kind: SyntaxKind) -> bool {
12074        kind == SyntaxKind::ATTRIBUTE_LIST
12075    }
12076    #[inline]
12077    fn cast(syntax: SyntaxNode) -> Option<Self> {
12078        if Self::can_cast(syntax.kind()) {
12079            Some(Self { syntax })
12080        } else {
12081            None
12082        }
12083    }
12084    #[inline]
12085    fn syntax(&self) -> &SyntaxNode {
12086        &self.syntax
12087    }
12088}
12089impl AstNode for AttributeOption {
12090    #[inline]
12091    fn can_cast(kind: SyntaxKind) -> bool {
12092        kind == SyntaxKind::ATTRIBUTE_OPTION
12093    }
12094    #[inline]
12095    fn cast(syntax: SyntaxNode) -> Option<Self> {
12096        if Self::can_cast(syntax.kind()) {
12097            Some(Self { syntax })
12098        } else {
12099            None
12100        }
12101    }
12102    #[inline]
12103    fn syntax(&self) -> &SyntaxNode {
12104        &self.syntax
12105    }
12106}
12107impl AstNode for Begin {
12108    #[inline]
12109    fn can_cast(kind: SyntaxKind) -> bool {
12110        kind == SyntaxKind::BEGIN
12111    }
12112    #[inline]
12113    fn cast(syntax: SyntaxNode) -> Option<Self> {
12114        if Self::can_cast(syntax.kind()) {
12115            Some(Self { syntax })
12116        } else {
12117            None
12118        }
12119    }
12120    #[inline]
12121    fn syntax(&self) -> &SyntaxNode {
12122        &self.syntax
12123    }
12124}
12125impl AstNode for BeginFuncOption {
12126    #[inline]
12127    fn can_cast(kind: SyntaxKind) -> bool {
12128        kind == SyntaxKind::BEGIN_FUNC_OPTION
12129    }
12130    #[inline]
12131    fn cast(syntax: SyntaxNode) -> Option<Self> {
12132        if Self::can_cast(syntax.kind()) {
12133            Some(Self { syntax })
12134        } else {
12135            None
12136        }
12137    }
12138    #[inline]
12139    fn syntax(&self) -> &SyntaxNode {
12140        &self.syntax
12141    }
12142}
12143impl AstNode for BetweenExpr {
12144    #[inline]
12145    fn can_cast(kind: SyntaxKind) -> bool {
12146        kind == SyntaxKind::BETWEEN_EXPR
12147    }
12148    #[inline]
12149    fn cast(syntax: SyntaxNode) -> Option<Self> {
12150        if Self::can_cast(syntax.kind()) {
12151            Some(Self { syntax })
12152        } else {
12153            None
12154        }
12155    }
12156    #[inline]
12157    fn syntax(&self) -> &SyntaxNode {
12158        &self.syntax
12159    }
12160}
12161impl AstNode for BinExpr {
12162    #[inline]
12163    fn can_cast(kind: SyntaxKind) -> bool {
12164        kind == SyntaxKind::BIN_EXPR
12165    }
12166    #[inline]
12167    fn cast(syntax: SyntaxNode) -> Option<Self> {
12168        if Self::can_cast(syntax.kind()) {
12169            Some(Self { syntax })
12170        } else {
12171            None
12172        }
12173    }
12174    #[inline]
12175    fn syntax(&self) -> &SyntaxNode {
12176        &self.syntax
12177    }
12178}
12179impl AstNode for BitType {
12180    #[inline]
12181    fn can_cast(kind: SyntaxKind) -> bool {
12182        kind == SyntaxKind::BIT_TYPE
12183    }
12184    #[inline]
12185    fn cast(syntax: SyntaxNode) -> Option<Self> {
12186        if Self::can_cast(syntax.kind()) {
12187            Some(Self { syntax })
12188        } else {
12189            None
12190        }
12191    }
12192    #[inline]
12193    fn syntax(&self) -> &SyntaxNode {
12194        &self.syntax
12195    }
12196}
12197impl AstNode for Call {
12198    #[inline]
12199    fn can_cast(kind: SyntaxKind) -> bool {
12200        kind == SyntaxKind::CALL
12201    }
12202    #[inline]
12203    fn cast(syntax: SyntaxNode) -> Option<Self> {
12204        if Self::can_cast(syntax.kind()) {
12205            Some(Self { syntax })
12206        } else {
12207            None
12208        }
12209    }
12210    #[inline]
12211    fn syntax(&self) -> &SyntaxNode {
12212        &self.syntax
12213    }
12214}
12215impl AstNode for CallExpr {
12216    #[inline]
12217    fn can_cast(kind: SyntaxKind) -> bool {
12218        kind == SyntaxKind::CALL_EXPR
12219    }
12220    #[inline]
12221    fn cast(syntax: SyntaxNode) -> Option<Self> {
12222        if Self::can_cast(syntax.kind()) {
12223            Some(Self { syntax })
12224        } else {
12225            None
12226        }
12227    }
12228    #[inline]
12229    fn syntax(&self) -> &SyntaxNode {
12230        &self.syntax
12231    }
12232}
12233impl AstNode for Cascade {
12234    #[inline]
12235    fn can_cast(kind: SyntaxKind) -> bool {
12236        kind == SyntaxKind::CASCADE
12237    }
12238    #[inline]
12239    fn cast(syntax: SyntaxNode) -> Option<Self> {
12240        if Self::can_cast(syntax.kind()) {
12241            Some(Self { syntax })
12242        } else {
12243            None
12244        }
12245    }
12246    #[inline]
12247    fn syntax(&self) -> &SyntaxNode {
12248        &self.syntax
12249    }
12250}
12251impl AstNode for CaseExpr {
12252    #[inline]
12253    fn can_cast(kind: SyntaxKind) -> bool {
12254        kind == SyntaxKind::CASE_EXPR
12255    }
12256    #[inline]
12257    fn cast(syntax: SyntaxNode) -> Option<Self> {
12258        if Self::can_cast(syntax.kind()) {
12259            Some(Self { syntax })
12260        } else {
12261            None
12262        }
12263    }
12264    #[inline]
12265    fn syntax(&self) -> &SyntaxNode {
12266        &self.syntax
12267    }
12268}
12269impl AstNode for CastExpr {
12270    #[inline]
12271    fn can_cast(kind: SyntaxKind) -> bool {
12272        kind == SyntaxKind::CAST_EXPR
12273    }
12274    #[inline]
12275    fn cast(syntax: SyntaxNode) -> Option<Self> {
12276        if Self::can_cast(syntax.kind()) {
12277            Some(Self { syntax })
12278        } else {
12279            None
12280        }
12281    }
12282    #[inline]
12283    fn syntax(&self) -> &SyntaxNode {
12284        &self.syntax
12285    }
12286}
12287impl AstNode for CharType {
12288    #[inline]
12289    fn can_cast(kind: SyntaxKind) -> bool {
12290        kind == SyntaxKind::CHAR_TYPE
12291    }
12292    #[inline]
12293    fn cast(syntax: SyntaxNode) -> Option<Self> {
12294        if Self::can_cast(syntax.kind()) {
12295            Some(Self { syntax })
12296        } else {
12297            None
12298        }
12299    }
12300    #[inline]
12301    fn syntax(&self) -> &SyntaxNode {
12302        &self.syntax
12303    }
12304}
12305impl AstNode for CheckConstraint {
12306    #[inline]
12307    fn can_cast(kind: SyntaxKind) -> bool {
12308        kind == SyntaxKind::CHECK_CONSTRAINT
12309    }
12310    #[inline]
12311    fn cast(syntax: SyntaxNode) -> Option<Self> {
12312        if Self::can_cast(syntax.kind()) {
12313            Some(Self { syntax })
12314        } else {
12315            None
12316        }
12317    }
12318    #[inline]
12319    fn syntax(&self) -> &SyntaxNode {
12320        &self.syntax
12321    }
12322}
12323impl AstNode for Checkpoint {
12324    #[inline]
12325    fn can_cast(kind: SyntaxKind) -> bool {
12326        kind == SyntaxKind::CHECKPOINT
12327    }
12328    #[inline]
12329    fn cast(syntax: SyntaxNode) -> Option<Self> {
12330        if Self::can_cast(syntax.kind()) {
12331            Some(Self { syntax })
12332        } else {
12333            None
12334        }
12335    }
12336    #[inline]
12337    fn syntax(&self) -> &SyntaxNode {
12338        &self.syntax
12339    }
12340}
12341impl AstNode for Close {
12342    #[inline]
12343    fn can_cast(kind: SyntaxKind) -> bool {
12344        kind == SyntaxKind::CLOSE
12345    }
12346    #[inline]
12347    fn cast(syntax: SyntaxNode) -> Option<Self> {
12348        if Self::can_cast(syntax.kind()) {
12349            Some(Self { syntax })
12350        } else {
12351            None
12352        }
12353    }
12354    #[inline]
12355    fn syntax(&self) -> &SyntaxNode {
12356        &self.syntax
12357    }
12358}
12359impl AstNode for Cluster {
12360    #[inline]
12361    fn can_cast(kind: SyntaxKind) -> bool {
12362        kind == SyntaxKind::CLUSTER
12363    }
12364    #[inline]
12365    fn cast(syntax: SyntaxNode) -> Option<Self> {
12366        if Self::can_cast(syntax.kind()) {
12367            Some(Self { syntax })
12368        } else {
12369            None
12370        }
12371    }
12372    #[inline]
12373    fn syntax(&self) -> &SyntaxNode {
12374        &self.syntax
12375    }
12376}
12377impl AstNode for ClusterOn {
12378    #[inline]
12379    fn can_cast(kind: SyntaxKind) -> bool {
12380        kind == SyntaxKind::CLUSTER_ON
12381    }
12382    #[inline]
12383    fn cast(syntax: SyntaxNode) -> Option<Self> {
12384        if Self::can_cast(syntax.kind()) {
12385            Some(Self { syntax })
12386        } else {
12387            None
12388        }
12389    }
12390    #[inline]
12391    fn syntax(&self) -> &SyntaxNode {
12392        &self.syntax
12393    }
12394}
12395impl AstNode for Collate {
12396    #[inline]
12397    fn can_cast(kind: SyntaxKind) -> bool {
12398        kind == SyntaxKind::COLLATE
12399    }
12400    #[inline]
12401    fn cast(syntax: SyntaxNode) -> Option<Self> {
12402        if Self::can_cast(syntax.kind()) {
12403            Some(Self { syntax })
12404        } else {
12405            None
12406        }
12407    }
12408    #[inline]
12409    fn syntax(&self) -> &SyntaxNode {
12410        &self.syntax
12411    }
12412}
12413impl AstNode for ColonColon {
12414    #[inline]
12415    fn can_cast(kind: SyntaxKind) -> bool {
12416        kind == SyntaxKind::COLON_COLON
12417    }
12418    #[inline]
12419    fn cast(syntax: SyntaxNode) -> Option<Self> {
12420        if Self::can_cast(syntax.kind()) {
12421            Some(Self { syntax })
12422        } else {
12423            None
12424        }
12425    }
12426    #[inline]
12427    fn syntax(&self) -> &SyntaxNode {
12428        &self.syntax
12429    }
12430}
12431impl AstNode for ColonEq {
12432    #[inline]
12433    fn can_cast(kind: SyntaxKind) -> bool {
12434        kind == SyntaxKind::COLON_EQ
12435    }
12436    #[inline]
12437    fn cast(syntax: SyntaxNode) -> Option<Self> {
12438        if Self::can_cast(syntax.kind()) {
12439            Some(Self { syntax })
12440        } else {
12441            None
12442        }
12443    }
12444    #[inline]
12445    fn syntax(&self) -> &SyntaxNode {
12446        &self.syntax
12447    }
12448}
12449impl AstNode for Column {
12450    #[inline]
12451    fn can_cast(kind: SyntaxKind) -> bool {
12452        kind == SyntaxKind::COLUMN
12453    }
12454    #[inline]
12455    fn cast(syntax: SyntaxNode) -> Option<Self> {
12456        if Self::can_cast(syntax.kind()) {
12457            Some(Self { syntax })
12458        } else {
12459            None
12460        }
12461    }
12462    #[inline]
12463    fn syntax(&self) -> &SyntaxNode {
12464        &self.syntax
12465    }
12466}
12467impl AstNode for ColumnList {
12468    #[inline]
12469    fn can_cast(kind: SyntaxKind) -> bool {
12470        kind == SyntaxKind::COLUMN_LIST
12471    }
12472    #[inline]
12473    fn cast(syntax: SyntaxNode) -> Option<Self> {
12474        if Self::can_cast(syntax.kind()) {
12475            Some(Self { syntax })
12476        } else {
12477            None
12478        }
12479    }
12480    #[inline]
12481    fn syntax(&self) -> &SyntaxNode {
12482        &self.syntax
12483    }
12484}
12485impl AstNode for CommentOn {
12486    #[inline]
12487    fn can_cast(kind: SyntaxKind) -> bool {
12488        kind == SyntaxKind::COMMENT_ON
12489    }
12490    #[inline]
12491    fn cast(syntax: SyntaxNode) -> Option<Self> {
12492        if Self::can_cast(syntax.kind()) {
12493            Some(Self { syntax })
12494        } else {
12495            None
12496        }
12497    }
12498    #[inline]
12499    fn syntax(&self) -> &SyntaxNode {
12500        &self.syntax
12501    }
12502}
12503impl AstNode for Commit {
12504    #[inline]
12505    fn can_cast(kind: SyntaxKind) -> bool {
12506        kind == SyntaxKind::COMMIT
12507    }
12508    #[inline]
12509    fn cast(syntax: SyntaxNode) -> Option<Self> {
12510        if Self::can_cast(syntax.kind()) {
12511            Some(Self { syntax })
12512        } else {
12513            None
12514        }
12515    }
12516    #[inline]
12517    fn syntax(&self) -> &SyntaxNode {
12518        &self.syntax
12519    }
12520}
12521impl AstNode for CompoundSelect {
12522    #[inline]
12523    fn can_cast(kind: SyntaxKind) -> bool {
12524        kind == SyntaxKind::COMPOUND_SELECT
12525    }
12526    #[inline]
12527    fn cast(syntax: SyntaxNode) -> Option<Self> {
12528        if Self::can_cast(syntax.kind()) {
12529            Some(Self { syntax })
12530        } else {
12531            None
12532        }
12533    }
12534    #[inline]
12535    fn syntax(&self) -> &SyntaxNode {
12536        &self.syntax
12537    }
12538}
12539impl AstNode for CompressionMethod {
12540    #[inline]
12541    fn can_cast(kind: SyntaxKind) -> bool {
12542        kind == SyntaxKind::COMPRESSION_METHOD
12543    }
12544    #[inline]
12545    fn cast(syntax: SyntaxNode) -> Option<Self> {
12546        if Self::can_cast(syntax.kind()) {
12547            Some(Self { syntax })
12548        } else {
12549            None
12550        }
12551    }
12552    #[inline]
12553    fn syntax(&self) -> &SyntaxNode {
12554        &self.syntax
12555    }
12556}
12557impl AstNode for ConstraintExclusion {
12558    #[inline]
12559    fn can_cast(kind: SyntaxKind) -> bool {
12560        kind == SyntaxKind::CONSTRAINT_EXCLUSION
12561    }
12562    #[inline]
12563    fn cast(syntax: SyntaxNode) -> Option<Self> {
12564        if Self::can_cast(syntax.kind()) {
12565            Some(Self { syntax })
12566        } else {
12567            None
12568        }
12569    }
12570    #[inline]
12571    fn syntax(&self) -> &SyntaxNode {
12572        &self.syntax
12573    }
12574}
12575impl AstNode for ConstraintExclusionList {
12576    #[inline]
12577    fn can_cast(kind: SyntaxKind) -> bool {
12578        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
12579    }
12580    #[inline]
12581    fn cast(syntax: SyntaxNode) -> Option<Self> {
12582        if Self::can_cast(syntax.kind()) {
12583            Some(Self { syntax })
12584        } else {
12585            None
12586        }
12587    }
12588    #[inline]
12589    fn syntax(&self) -> &SyntaxNode {
12590        &self.syntax
12591    }
12592}
12593impl AstNode for ConstraintIncludeClause {
12594    #[inline]
12595    fn can_cast(kind: SyntaxKind) -> bool {
12596        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
12597    }
12598    #[inline]
12599    fn cast(syntax: SyntaxNode) -> Option<Self> {
12600        if Self::can_cast(syntax.kind()) {
12601            Some(Self { syntax })
12602        } else {
12603            None
12604        }
12605    }
12606    #[inline]
12607    fn syntax(&self) -> &SyntaxNode {
12608        &self.syntax
12609    }
12610}
12611impl AstNode for ConstraintIndexMethod {
12612    #[inline]
12613    fn can_cast(kind: SyntaxKind) -> bool {
12614        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
12615    }
12616    #[inline]
12617    fn cast(syntax: SyntaxNode) -> Option<Self> {
12618        if Self::can_cast(syntax.kind()) {
12619            Some(Self { syntax })
12620        } else {
12621            None
12622        }
12623    }
12624    #[inline]
12625    fn syntax(&self) -> &SyntaxNode {
12626        &self.syntax
12627    }
12628}
12629impl AstNode for ConstraintIndexTablespace {
12630    #[inline]
12631    fn can_cast(kind: SyntaxKind) -> bool {
12632        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
12633    }
12634    #[inline]
12635    fn cast(syntax: SyntaxNode) -> Option<Self> {
12636        if Self::can_cast(syntax.kind()) {
12637            Some(Self { syntax })
12638        } else {
12639            None
12640        }
12641    }
12642    #[inline]
12643    fn syntax(&self) -> &SyntaxNode {
12644        &self.syntax
12645    }
12646}
12647impl AstNode for ConstraintWhereClause {
12648    #[inline]
12649    fn can_cast(kind: SyntaxKind) -> bool {
12650        kind == SyntaxKind::CONSTRAINT_WHERE_CLAUSE
12651    }
12652    #[inline]
12653    fn cast(syntax: SyntaxNode) -> Option<Self> {
12654        if Self::can_cast(syntax.kind()) {
12655            Some(Self { syntax })
12656        } else {
12657            None
12658        }
12659    }
12660    #[inline]
12661    fn syntax(&self) -> &SyntaxNode {
12662        &self.syntax
12663    }
12664}
12665impl AstNode for Copy {
12666    #[inline]
12667    fn can_cast(kind: SyntaxKind) -> bool {
12668        kind == SyntaxKind::COPY
12669    }
12670    #[inline]
12671    fn cast(syntax: SyntaxNode) -> Option<Self> {
12672        if Self::can_cast(syntax.kind()) {
12673            Some(Self { syntax })
12674        } else {
12675            None
12676        }
12677    }
12678    #[inline]
12679    fn syntax(&self) -> &SyntaxNode {
12680        &self.syntax
12681    }
12682}
12683impl AstNode for CostFuncOption {
12684    #[inline]
12685    fn can_cast(kind: SyntaxKind) -> bool {
12686        kind == SyntaxKind::COST_FUNC_OPTION
12687    }
12688    #[inline]
12689    fn cast(syntax: SyntaxNode) -> Option<Self> {
12690        if Self::can_cast(syntax.kind()) {
12691            Some(Self { syntax })
12692        } else {
12693            None
12694        }
12695    }
12696    #[inline]
12697    fn syntax(&self) -> &SyntaxNode {
12698        &self.syntax
12699    }
12700}
12701impl AstNode for CreateAccessMethod {
12702    #[inline]
12703    fn can_cast(kind: SyntaxKind) -> bool {
12704        kind == SyntaxKind::CREATE_ACCESS_METHOD
12705    }
12706    #[inline]
12707    fn cast(syntax: SyntaxNode) -> Option<Self> {
12708        if Self::can_cast(syntax.kind()) {
12709            Some(Self { syntax })
12710        } else {
12711            None
12712        }
12713    }
12714    #[inline]
12715    fn syntax(&self) -> &SyntaxNode {
12716        &self.syntax
12717    }
12718}
12719impl AstNode for CreateAggregate {
12720    #[inline]
12721    fn can_cast(kind: SyntaxKind) -> bool {
12722        kind == SyntaxKind::CREATE_AGGREGATE
12723    }
12724    #[inline]
12725    fn cast(syntax: SyntaxNode) -> Option<Self> {
12726        if Self::can_cast(syntax.kind()) {
12727            Some(Self { syntax })
12728        } else {
12729            None
12730        }
12731    }
12732    #[inline]
12733    fn syntax(&self) -> &SyntaxNode {
12734        &self.syntax
12735    }
12736}
12737impl AstNode for CreateCast {
12738    #[inline]
12739    fn can_cast(kind: SyntaxKind) -> bool {
12740        kind == SyntaxKind::CREATE_CAST
12741    }
12742    #[inline]
12743    fn cast(syntax: SyntaxNode) -> Option<Self> {
12744        if Self::can_cast(syntax.kind()) {
12745            Some(Self { syntax })
12746        } else {
12747            None
12748        }
12749    }
12750    #[inline]
12751    fn syntax(&self) -> &SyntaxNode {
12752        &self.syntax
12753    }
12754}
12755impl AstNode for CreateCollation {
12756    #[inline]
12757    fn can_cast(kind: SyntaxKind) -> bool {
12758        kind == SyntaxKind::CREATE_COLLATION
12759    }
12760    #[inline]
12761    fn cast(syntax: SyntaxNode) -> Option<Self> {
12762        if Self::can_cast(syntax.kind()) {
12763            Some(Self { syntax })
12764        } else {
12765            None
12766        }
12767    }
12768    #[inline]
12769    fn syntax(&self) -> &SyntaxNode {
12770        &self.syntax
12771    }
12772}
12773impl AstNode for CreateConversion {
12774    #[inline]
12775    fn can_cast(kind: SyntaxKind) -> bool {
12776        kind == SyntaxKind::CREATE_CONVERSION
12777    }
12778    #[inline]
12779    fn cast(syntax: SyntaxNode) -> Option<Self> {
12780        if Self::can_cast(syntax.kind()) {
12781            Some(Self { syntax })
12782        } else {
12783            None
12784        }
12785    }
12786    #[inline]
12787    fn syntax(&self) -> &SyntaxNode {
12788        &self.syntax
12789    }
12790}
12791impl AstNode for CreateDatabase {
12792    #[inline]
12793    fn can_cast(kind: SyntaxKind) -> bool {
12794        kind == SyntaxKind::CREATE_DATABASE
12795    }
12796    #[inline]
12797    fn cast(syntax: SyntaxNode) -> Option<Self> {
12798        if Self::can_cast(syntax.kind()) {
12799            Some(Self { syntax })
12800        } else {
12801            None
12802        }
12803    }
12804    #[inline]
12805    fn syntax(&self) -> &SyntaxNode {
12806        &self.syntax
12807    }
12808}
12809impl AstNode for CreateDomain {
12810    #[inline]
12811    fn can_cast(kind: SyntaxKind) -> bool {
12812        kind == SyntaxKind::CREATE_DOMAIN
12813    }
12814    #[inline]
12815    fn cast(syntax: SyntaxNode) -> Option<Self> {
12816        if Self::can_cast(syntax.kind()) {
12817            Some(Self { syntax })
12818        } else {
12819            None
12820        }
12821    }
12822    #[inline]
12823    fn syntax(&self) -> &SyntaxNode {
12824        &self.syntax
12825    }
12826}
12827impl AstNode for CreateEventTrigger {
12828    #[inline]
12829    fn can_cast(kind: SyntaxKind) -> bool {
12830        kind == SyntaxKind::CREATE_EVENT_TRIGGER
12831    }
12832    #[inline]
12833    fn cast(syntax: SyntaxNode) -> Option<Self> {
12834        if Self::can_cast(syntax.kind()) {
12835            Some(Self { syntax })
12836        } else {
12837            None
12838        }
12839    }
12840    #[inline]
12841    fn syntax(&self) -> &SyntaxNode {
12842        &self.syntax
12843    }
12844}
12845impl AstNode for CreateExtension {
12846    #[inline]
12847    fn can_cast(kind: SyntaxKind) -> bool {
12848        kind == SyntaxKind::CREATE_EXTENSION
12849    }
12850    #[inline]
12851    fn cast(syntax: SyntaxNode) -> Option<Self> {
12852        if Self::can_cast(syntax.kind()) {
12853            Some(Self { syntax })
12854        } else {
12855            None
12856        }
12857    }
12858    #[inline]
12859    fn syntax(&self) -> &SyntaxNode {
12860        &self.syntax
12861    }
12862}
12863impl AstNode for CreateForeignDataWrapper {
12864    #[inline]
12865    fn can_cast(kind: SyntaxKind) -> bool {
12866        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
12867    }
12868    #[inline]
12869    fn cast(syntax: SyntaxNode) -> Option<Self> {
12870        if Self::can_cast(syntax.kind()) {
12871            Some(Self { syntax })
12872        } else {
12873            None
12874        }
12875    }
12876    #[inline]
12877    fn syntax(&self) -> &SyntaxNode {
12878        &self.syntax
12879    }
12880}
12881impl AstNode for CreateForeignTable {
12882    #[inline]
12883    fn can_cast(kind: SyntaxKind) -> bool {
12884        kind == SyntaxKind::CREATE_FOREIGN_TABLE
12885    }
12886    #[inline]
12887    fn cast(syntax: SyntaxNode) -> Option<Self> {
12888        if Self::can_cast(syntax.kind()) {
12889            Some(Self { syntax })
12890        } else {
12891            None
12892        }
12893    }
12894    #[inline]
12895    fn syntax(&self) -> &SyntaxNode {
12896        &self.syntax
12897    }
12898}
12899impl AstNode for CreateFunction {
12900    #[inline]
12901    fn can_cast(kind: SyntaxKind) -> bool {
12902        kind == SyntaxKind::CREATE_FUNCTION
12903    }
12904    #[inline]
12905    fn cast(syntax: SyntaxNode) -> Option<Self> {
12906        if Self::can_cast(syntax.kind()) {
12907            Some(Self { syntax })
12908        } else {
12909            None
12910        }
12911    }
12912    #[inline]
12913    fn syntax(&self) -> &SyntaxNode {
12914        &self.syntax
12915    }
12916}
12917impl AstNode for CreateGroup {
12918    #[inline]
12919    fn can_cast(kind: SyntaxKind) -> bool {
12920        kind == SyntaxKind::CREATE_GROUP
12921    }
12922    #[inline]
12923    fn cast(syntax: SyntaxNode) -> Option<Self> {
12924        if Self::can_cast(syntax.kind()) {
12925            Some(Self { syntax })
12926        } else {
12927            None
12928        }
12929    }
12930    #[inline]
12931    fn syntax(&self) -> &SyntaxNode {
12932        &self.syntax
12933    }
12934}
12935impl AstNode for CreateIndex {
12936    #[inline]
12937    fn can_cast(kind: SyntaxKind) -> bool {
12938        kind == SyntaxKind::CREATE_INDEX
12939    }
12940    #[inline]
12941    fn cast(syntax: SyntaxNode) -> Option<Self> {
12942        if Self::can_cast(syntax.kind()) {
12943            Some(Self { syntax })
12944        } else {
12945            None
12946        }
12947    }
12948    #[inline]
12949    fn syntax(&self) -> &SyntaxNode {
12950        &self.syntax
12951    }
12952}
12953impl AstNode for CreateLanguage {
12954    #[inline]
12955    fn can_cast(kind: SyntaxKind) -> bool {
12956        kind == SyntaxKind::CREATE_LANGUAGE
12957    }
12958    #[inline]
12959    fn cast(syntax: SyntaxNode) -> Option<Self> {
12960        if Self::can_cast(syntax.kind()) {
12961            Some(Self { syntax })
12962        } else {
12963            None
12964        }
12965    }
12966    #[inline]
12967    fn syntax(&self) -> &SyntaxNode {
12968        &self.syntax
12969    }
12970}
12971impl AstNode for CreateMaterializedView {
12972    #[inline]
12973    fn can_cast(kind: SyntaxKind) -> bool {
12974        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
12975    }
12976    #[inline]
12977    fn cast(syntax: SyntaxNode) -> Option<Self> {
12978        if Self::can_cast(syntax.kind()) {
12979            Some(Self { syntax })
12980        } else {
12981            None
12982        }
12983    }
12984    #[inline]
12985    fn syntax(&self) -> &SyntaxNode {
12986        &self.syntax
12987    }
12988}
12989impl AstNode for CreateOperator {
12990    #[inline]
12991    fn can_cast(kind: SyntaxKind) -> bool {
12992        kind == SyntaxKind::CREATE_OPERATOR
12993    }
12994    #[inline]
12995    fn cast(syntax: SyntaxNode) -> Option<Self> {
12996        if Self::can_cast(syntax.kind()) {
12997            Some(Self { syntax })
12998        } else {
12999            None
13000        }
13001    }
13002    #[inline]
13003    fn syntax(&self) -> &SyntaxNode {
13004        &self.syntax
13005    }
13006}
13007impl AstNode for CreateOperatorClass {
13008    #[inline]
13009    fn can_cast(kind: SyntaxKind) -> bool {
13010        kind == SyntaxKind::CREATE_OPERATOR_CLASS
13011    }
13012    #[inline]
13013    fn cast(syntax: SyntaxNode) -> Option<Self> {
13014        if Self::can_cast(syntax.kind()) {
13015            Some(Self { syntax })
13016        } else {
13017            None
13018        }
13019    }
13020    #[inline]
13021    fn syntax(&self) -> &SyntaxNode {
13022        &self.syntax
13023    }
13024}
13025impl AstNode for CreateOperatorFamily {
13026    #[inline]
13027    fn can_cast(kind: SyntaxKind) -> bool {
13028        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
13029    }
13030    #[inline]
13031    fn cast(syntax: SyntaxNode) -> Option<Self> {
13032        if Self::can_cast(syntax.kind()) {
13033            Some(Self { syntax })
13034        } else {
13035            None
13036        }
13037    }
13038    #[inline]
13039    fn syntax(&self) -> &SyntaxNode {
13040        &self.syntax
13041    }
13042}
13043impl AstNode for CreatePolicy {
13044    #[inline]
13045    fn can_cast(kind: SyntaxKind) -> bool {
13046        kind == SyntaxKind::CREATE_POLICY
13047    }
13048    #[inline]
13049    fn cast(syntax: SyntaxNode) -> Option<Self> {
13050        if Self::can_cast(syntax.kind()) {
13051            Some(Self { syntax })
13052        } else {
13053            None
13054        }
13055    }
13056    #[inline]
13057    fn syntax(&self) -> &SyntaxNode {
13058        &self.syntax
13059    }
13060}
13061impl AstNode for CreateProcedure {
13062    #[inline]
13063    fn can_cast(kind: SyntaxKind) -> bool {
13064        kind == SyntaxKind::CREATE_PROCEDURE
13065    }
13066    #[inline]
13067    fn cast(syntax: SyntaxNode) -> Option<Self> {
13068        if Self::can_cast(syntax.kind()) {
13069            Some(Self { syntax })
13070        } else {
13071            None
13072        }
13073    }
13074    #[inline]
13075    fn syntax(&self) -> &SyntaxNode {
13076        &self.syntax
13077    }
13078}
13079impl AstNode for CreatePublication {
13080    #[inline]
13081    fn can_cast(kind: SyntaxKind) -> bool {
13082        kind == SyntaxKind::CREATE_PUBLICATION
13083    }
13084    #[inline]
13085    fn cast(syntax: SyntaxNode) -> Option<Self> {
13086        if Self::can_cast(syntax.kind()) {
13087            Some(Self { syntax })
13088        } else {
13089            None
13090        }
13091    }
13092    #[inline]
13093    fn syntax(&self) -> &SyntaxNode {
13094        &self.syntax
13095    }
13096}
13097impl AstNode for CreateRole {
13098    #[inline]
13099    fn can_cast(kind: SyntaxKind) -> bool {
13100        kind == SyntaxKind::CREATE_ROLE
13101    }
13102    #[inline]
13103    fn cast(syntax: SyntaxNode) -> Option<Self> {
13104        if Self::can_cast(syntax.kind()) {
13105            Some(Self { syntax })
13106        } else {
13107            None
13108        }
13109    }
13110    #[inline]
13111    fn syntax(&self) -> &SyntaxNode {
13112        &self.syntax
13113    }
13114}
13115impl AstNode for CreateRule {
13116    #[inline]
13117    fn can_cast(kind: SyntaxKind) -> bool {
13118        kind == SyntaxKind::CREATE_RULE
13119    }
13120    #[inline]
13121    fn cast(syntax: SyntaxNode) -> Option<Self> {
13122        if Self::can_cast(syntax.kind()) {
13123            Some(Self { syntax })
13124        } else {
13125            None
13126        }
13127    }
13128    #[inline]
13129    fn syntax(&self) -> &SyntaxNode {
13130        &self.syntax
13131    }
13132}
13133impl AstNode for CreateSchema {
13134    #[inline]
13135    fn can_cast(kind: SyntaxKind) -> bool {
13136        kind == SyntaxKind::CREATE_SCHEMA
13137    }
13138    #[inline]
13139    fn cast(syntax: SyntaxNode) -> Option<Self> {
13140        if Self::can_cast(syntax.kind()) {
13141            Some(Self { syntax })
13142        } else {
13143            None
13144        }
13145    }
13146    #[inline]
13147    fn syntax(&self) -> &SyntaxNode {
13148        &self.syntax
13149    }
13150}
13151impl AstNode for CreateSequence {
13152    #[inline]
13153    fn can_cast(kind: SyntaxKind) -> bool {
13154        kind == SyntaxKind::CREATE_SEQUENCE
13155    }
13156    #[inline]
13157    fn cast(syntax: SyntaxNode) -> Option<Self> {
13158        if Self::can_cast(syntax.kind()) {
13159            Some(Self { syntax })
13160        } else {
13161            None
13162        }
13163    }
13164    #[inline]
13165    fn syntax(&self) -> &SyntaxNode {
13166        &self.syntax
13167    }
13168}
13169impl AstNode for CreateServer {
13170    #[inline]
13171    fn can_cast(kind: SyntaxKind) -> bool {
13172        kind == SyntaxKind::CREATE_SERVER
13173    }
13174    #[inline]
13175    fn cast(syntax: SyntaxNode) -> Option<Self> {
13176        if Self::can_cast(syntax.kind()) {
13177            Some(Self { syntax })
13178        } else {
13179            None
13180        }
13181    }
13182    #[inline]
13183    fn syntax(&self) -> &SyntaxNode {
13184        &self.syntax
13185    }
13186}
13187impl AstNode for CreateStatistics {
13188    #[inline]
13189    fn can_cast(kind: SyntaxKind) -> bool {
13190        kind == SyntaxKind::CREATE_STATISTICS
13191    }
13192    #[inline]
13193    fn cast(syntax: SyntaxNode) -> Option<Self> {
13194        if Self::can_cast(syntax.kind()) {
13195            Some(Self { syntax })
13196        } else {
13197            None
13198        }
13199    }
13200    #[inline]
13201    fn syntax(&self) -> &SyntaxNode {
13202        &self.syntax
13203    }
13204}
13205impl AstNode for CreateSubscription {
13206    #[inline]
13207    fn can_cast(kind: SyntaxKind) -> bool {
13208        kind == SyntaxKind::CREATE_SUBSCRIPTION
13209    }
13210    #[inline]
13211    fn cast(syntax: SyntaxNode) -> Option<Self> {
13212        if Self::can_cast(syntax.kind()) {
13213            Some(Self { syntax })
13214        } else {
13215            None
13216        }
13217    }
13218    #[inline]
13219    fn syntax(&self) -> &SyntaxNode {
13220        &self.syntax
13221    }
13222}
13223impl AstNode for CreateTable {
13224    #[inline]
13225    fn can_cast(kind: SyntaxKind) -> bool {
13226        kind == SyntaxKind::CREATE_TABLE
13227    }
13228    #[inline]
13229    fn cast(syntax: SyntaxNode) -> Option<Self> {
13230        if Self::can_cast(syntax.kind()) {
13231            Some(Self { syntax })
13232        } else {
13233            None
13234        }
13235    }
13236    #[inline]
13237    fn syntax(&self) -> &SyntaxNode {
13238        &self.syntax
13239    }
13240}
13241impl AstNode for CreateTableAs {
13242    #[inline]
13243    fn can_cast(kind: SyntaxKind) -> bool {
13244        kind == SyntaxKind::CREATE_TABLE_AS
13245    }
13246    #[inline]
13247    fn cast(syntax: SyntaxNode) -> Option<Self> {
13248        if Self::can_cast(syntax.kind()) {
13249            Some(Self { syntax })
13250        } else {
13251            None
13252        }
13253    }
13254    #[inline]
13255    fn syntax(&self) -> &SyntaxNode {
13256        &self.syntax
13257    }
13258}
13259impl AstNode for CreateTablespace {
13260    #[inline]
13261    fn can_cast(kind: SyntaxKind) -> bool {
13262        kind == SyntaxKind::CREATE_TABLESPACE
13263    }
13264    #[inline]
13265    fn cast(syntax: SyntaxNode) -> Option<Self> {
13266        if Self::can_cast(syntax.kind()) {
13267            Some(Self { syntax })
13268        } else {
13269            None
13270        }
13271    }
13272    #[inline]
13273    fn syntax(&self) -> &SyntaxNode {
13274        &self.syntax
13275    }
13276}
13277impl AstNode for CreateTextSearchConfiguration {
13278    #[inline]
13279    fn can_cast(kind: SyntaxKind) -> bool {
13280        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
13281    }
13282    #[inline]
13283    fn cast(syntax: SyntaxNode) -> Option<Self> {
13284        if Self::can_cast(syntax.kind()) {
13285            Some(Self { syntax })
13286        } else {
13287            None
13288        }
13289    }
13290    #[inline]
13291    fn syntax(&self) -> &SyntaxNode {
13292        &self.syntax
13293    }
13294}
13295impl AstNode for CreateTextSearchDictionary {
13296    #[inline]
13297    fn can_cast(kind: SyntaxKind) -> bool {
13298        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
13299    }
13300    #[inline]
13301    fn cast(syntax: SyntaxNode) -> Option<Self> {
13302        if Self::can_cast(syntax.kind()) {
13303            Some(Self { syntax })
13304        } else {
13305            None
13306        }
13307    }
13308    #[inline]
13309    fn syntax(&self) -> &SyntaxNode {
13310        &self.syntax
13311    }
13312}
13313impl AstNode for CreateTextSearchParser {
13314    #[inline]
13315    fn can_cast(kind: SyntaxKind) -> bool {
13316        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
13317    }
13318    #[inline]
13319    fn cast(syntax: SyntaxNode) -> Option<Self> {
13320        if Self::can_cast(syntax.kind()) {
13321            Some(Self { syntax })
13322        } else {
13323            None
13324        }
13325    }
13326    #[inline]
13327    fn syntax(&self) -> &SyntaxNode {
13328        &self.syntax
13329    }
13330}
13331impl AstNode for CreateTextSearchTemplate {
13332    #[inline]
13333    fn can_cast(kind: SyntaxKind) -> bool {
13334        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
13335    }
13336    #[inline]
13337    fn cast(syntax: SyntaxNode) -> Option<Self> {
13338        if Self::can_cast(syntax.kind()) {
13339            Some(Self { syntax })
13340        } else {
13341            None
13342        }
13343    }
13344    #[inline]
13345    fn syntax(&self) -> &SyntaxNode {
13346        &self.syntax
13347    }
13348}
13349impl AstNode for CreateTransform {
13350    #[inline]
13351    fn can_cast(kind: SyntaxKind) -> bool {
13352        kind == SyntaxKind::CREATE_TRANSFORM
13353    }
13354    #[inline]
13355    fn cast(syntax: SyntaxNode) -> Option<Self> {
13356        if Self::can_cast(syntax.kind()) {
13357            Some(Self { syntax })
13358        } else {
13359            None
13360        }
13361    }
13362    #[inline]
13363    fn syntax(&self) -> &SyntaxNode {
13364        &self.syntax
13365    }
13366}
13367impl AstNode for CreateTrigger {
13368    #[inline]
13369    fn can_cast(kind: SyntaxKind) -> bool {
13370        kind == SyntaxKind::CREATE_TRIGGER
13371    }
13372    #[inline]
13373    fn cast(syntax: SyntaxNode) -> Option<Self> {
13374        if Self::can_cast(syntax.kind()) {
13375            Some(Self { syntax })
13376        } else {
13377            None
13378        }
13379    }
13380    #[inline]
13381    fn syntax(&self) -> &SyntaxNode {
13382        &self.syntax
13383    }
13384}
13385impl AstNode for CreateType {
13386    #[inline]
13387    fn can_cast(kind: SyntaxKind) -> bool {
13388        kind == SyntaxKind::CREATE_TYPE
13389    }
13390    #[inline]
13391    fn cast(syntax: SyntaxNode) -> Option<Self> {
13392        if Self::can_cast(syntax.kind()) {
13393            Some(Self { syntax })
13394        } else {
13395            None
13396        }
13397    }
13398    #[inline]
13399    fn syntax(&self) -> &SyntaxNode {
13400        &self.syntax
13401    }
13402}
13403impl AstNode for CreateUser {
13404    #[inline]
13405    fn can_cast(kind: SyntaxKind) -> bool {
13406        kind == SyntaxKind::CREATE_USER
13407    }
13408    #[inline]
13409    fn cast(syntax: SyntaxNode) -> Option<Self> {
13410        if Self::can_cast(syntax.kind()) {
13411            Some(Self { syntax })
13412        } else {
13413            None
13414        }
13415    }
13416    #[inline]
13417    fn syntax(&self) -> &SyntaxNode {
13418        &self.syntax
13419    }
13420}
13421impl AstNode for CreateUserMapping {
13422    #[inline]
13423    fn can_cast(kind: SyntaxKind) -> bool {
13424        kind == SyntaxKind::CREATE_USER_MAPPING
13425    }
13426    #[inline]
13427    fn cast(syntax: SyntaxNode) -> Option<Self> {
13428        if Self::can_cast(syntax.kind()) {
13429            Some(Self { syntax })
13430        } else {
13431            None
13432        }
13433    }
13434    #[inline]
13435    fn syntax(&self) -> &SyntaxNode {
13436        &self.syntax
13437    }
13438}
13439impl AstNode for CreateView {
13440    #[inline]
13441    fn can_cast(kind: SyntaxKind) -> bool {
13442        kind == SyntaxKind::CREATE_VIEW
13443    }
13444    #[inline]
13445    fn cast(syntax: SyntaxNode) -> Option<Self> {
13446        if Self::can_cast(syntax.kind()) {
13447            Some(Self { syntax })
13448        } else {
13449            None
13450        }
13451    }
13452    #[inline]
13453    fn syntax(&self) -> &SyntaxNode {
13454        &self.syntax
13455    }
13456}
13457impl AstNode for CustomOp {
13458    #[inline]
13459    fn can_cast(kind: SyntaxKind) -> bool {
13460        kind == SyntaxKind::CUSTOM_OP
13461    }
13462    #[inline]
13463    fn cast(syntax: SyntaxNode) -> Option<Self> {
13464        if Self::can_cast(syntax.kind()) {
13465            Some(Self { syntax })
13466        } else {
13467            None
13468        }
13469    }
13470    #[inline]
13471    fn syntax(&self) -> &SyntaxNode {
13472        &self.syntax
13473    }
13474}
13475impl AstNode for Deallocate {
13476    #[inline]
13477    fn can_cast(kind: SyntaxKind) -> bool {
13478        kind == SyntaxKind::DEALLOCATE
13479    }
13480    #[inline]
13481    fn cast(syntax: SyntaxNode) -> Option<Self> {
13482        if Self::can_cast(syntax.kind()) {
13483            Some(Self { syntax })
13484        } else {
13485            None
13486        }
13487    }
13488    #[inline]
13489    fn syntax(&self) -> &SyntaxNode {
13490        &self.syntax
13491    }
13492}
13493impl AstNode for Declare {
13494    #[inline]
13495    fn can_cast(kind: SyntaxKind) -> bool {
13496        kind == SyntaxKind::DECLARE
13497    }
13498    #[inline]
13499    fn cast(syntax: SyntaxNode) -> Option<Self> {
13500        if Self::can_cast(syntax.kind()) {
13501            Some(Self { syntax })
13502        } else {
13503            None
13504        }
13505    }
13506    #[inline]
13507    fn syntax(&self) -> &SyntaxNode {
13508        &self.syntax
13509    }
13510}
13511impl AstNode for DefaultConstraint {
13512    #[inline]
13513    fn can_cast(kind: SyntaxKind) -> bool {
13514        kind == SyntaxKind::DEFAULT_CONSTRAINT
13515    }
13516    #[inline]
13517    fn cast(syntax: SyntaxNode) -> Option<Self> {
13518        if Self::can_cast(syntax.kind()) {
13519            Some(Self { syntax })
13520        } else {
13521            None
13522        }
13523    }
13524    #[inline]
13525    fn syntax(&self) -> &SyntaxNode {
13526        &self.syntax
13527    }
13528}
13529impl AstNode for Deferrable {
13530    #[inline]
13531    fn can_cast(kind: SyntaxKind) -> bool {
13532        kind == SyntaxKind::DEFERRABLE
13533    }
13534    #[inline]
13535    fn cast(syntax: SyntaxNode) -> Option<Self> {
13536        if Self::can_cast(syntax.kind()) {
13537            Some(Self { syntax })
13538        } else {
13539            None
13540        }
13541    }
13542    #[inline]
13543    fn syntax(&self) -> &SyntaxNode {
13544        &self.syntax
13545    }
13546}
13547impl AstNode for DeferrableConstraintOption {
13548    #[inline]
13549    fn can_cast(kind: SyntaxKind) -> bool {
13550        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
13551    }
13552    #[inline]
13553    fn cast(syntax: SyntaxNode) -> Option<Self> {
13554        if Self::can_cast(syntax.kind()) {
13555            Some(Self { syntax })
13556        } else {
13557            None
13558        }
13559    }
13560    #[inline]
13561    fn syntax(&self) -> &SyntaxNode {
13562        &self.syntax
13563    }
13564}
13565impl AstNode for Delete {
13566    #[inline]
13567    fn can_cast(kind: SyntaxKind) -> bool {
13568        kind == SyntaxKind::DELETE
13569    }
13570    #[inline]
13571    fn cast(syntax: SyntaxNode) -> Option<Self> {
13572        if Self::can_cast(syntax.kind()) {
13573            Some(Self { syntax })
13574        } else {
13575            None
13576        }
13577    }
13578    #[inline]
13579    fn syntax(&self) -> &SyntaxNode {
13580        &self.syntax
13581    }
13582}
13583impl AstNode for DeleteRows {
13584    #[inline]
13585    fn can_cast(kind: SyntaxKind) -> bool {
13586        kind == SyntaxKind::DELETE_ROWS
13587    }
13588    #[inline]
13589    fn cast(syntax: SyntaxNode) -> Option<Self> {
13590        if Self::can_cast(syntax.kind()) {
13591            Some(Self { syntax })
13592        } else {
13593            None
13594        }
13595    }
13596    #[inline]
13597    fn syntax(&self) -> &SyntaxNode {
13598        &self.syntax
13599    }
13600}
13601impl AstNode for DetachPartition {
13602    #[inline]
13603    fn can_cast(kind: SyntaxKind) -> bool {
13604        kind == SyntaxKind::DETACH_PARTITION
13605    }
13606    #[inline]
13607    fn cast(syntax: SyntaxNode) -> Option<Self> {
13608        if Self::can_cast(syntax.kind()) {
13609            Some(Self { syntax })
13610        } else {
13611            None
13612        }
13613    }
13614    #[inline]
13615    fn syntax(&self) -> &SyntaxNode {
13616        &self.syntax
13617    }
13618}
13619impl AstNode for DisableRls {
13620    #[inline]
13621    fn can_cast(kind: SyntaxKind) -> bool {
13622        kind == SyntaxKind::DISABLE_RLS
13623    }
13624    #[inline]
13625    fn cast(syntax: SyntaxNode) -> Option<Self> {
13626        if Self::can_cast(syntax.kind()) {
13627            Some(Self { syntax })
13628        } else {
13629            None
13630        }
13631    }
13632    #[inline]
13633    fn syntax(&self) -> &SyntaxNode {
13634        &self.syntax
13635    }
13636}
13637impl AstNode for DisableRule {
13638    #[inline]
13639    fn can_cast(kind: SyntaxKind) -> bool {
13640        kind == SyntaxKind::DISABLE_RULE
13641    }
13642    #[inline]
13643    fn cast(syntax: SyntaxNode) -> Option<Self> {
13644        if Self::can_cast(syntax.kind()) {
13645            Some(Self { syntax })
13646        } else {
13647            None
13648        }
13649    }
13650    #[inline]
13651    fn syntax(&self) -> &SyntaxNode {
13652        &self.syntax
13653    }
13654}
13655impl AstNode for DisableTrigger {
13656    #[inline]
13657    fn can_cast(kind: SyntaxKind) -> bool {
13658        kind == SyntaxKind::DISABLE_TRIGGER
13659    }
13660    #[inline]
13661    fn cast(syntax: SyntaxNode) -> Option<Self> {
13662        if Self::can_cast(syntax.kind()) {
13663            Some(Self { syntax })
13664        } else {
13665            None
13666        }
13667    }
13668    #[inline]
13669    fn syntax(&self) -> &SyntaxNode {
13670        &self.syntax
13671    }
13672}
13673impl AstNode for Discard {
13674    #[inline]
13675    fn can_cast(kind: SyntaxKind) -> bool {
13676        kind == SyntaxKind::DISCARD
13677    }
13678    #[inline]
13679    fn cast(syntax: SyntaxNode) -> Option<Self> {
13680        if Self::can_cast(syntax.kind()) {
13681            Some(Self { syntax })
13682        } else {
13683            None
13684        }
13685    }
13686    #[inline]
13687    fn syntax(&self) -> &SyntaxNode {
13688        &self.syntax
13689    }
13690}
13691impl AstNode for DistinctClause {
13692    #[inline]
13693    fn can_cast(kind: SyntaxKind) -> bool {
13694        kind == SyntaxKind::DISTINCT_CLAUSE
13695    }
13696    #[inline]
13697    fn cast(syntax: SyntaxNode) -> Option<Self> {
13698        if Self::can_cast(syntax.kind()) {
13699            Some(Self { syntax })
13700        } else {
13701            None
13702        }
13703    }
13704    #[inline]
13705    fn syntax(&self) -> &SyntaxNode {
13706        &self.syntax
13707    }
13708}
13709impl AstNode for Do {
13710    #[inline]
13711    fn can_cast(kind: SyntaxKind) -> bool {
13712        kind == SyntaxKind::DO
13713    }
13714    #[inline]
13715    fn cast(syntax: SyntaxNode) -> Option<Self> {
13716        if Self::can_cast(syntax.kind()) {
13717            Some(Self { syntax })
13718        } else {
13719            None
13720        }
13721    }
13722    #[inline]
13723    fn syntax(&self) -> &SyntaxNode {
13724        &self.syntax
13725    }
13726}
13727impl AstNode for DoubleType {
13728    #[inline]
13729    fn can_cast(kind: SyntaxKind) -> bool {
13730        kind == SyntaxKind::DOUBLE_TYPE
13731    }
13732    #[inline]
13733    fn cast(syntax: SyntaxNode) -> Option<Self> {
13734        if Self::can_cast(syntax.kind()) {
13735            Some(Self { syntax })
13736        } else {
13737            None
13738        }
13739    }
13740    #[inline]
13741    fn syntax(&self) -> &SyntaxNode {
13742        &self.syntax
13743    }
13744}
13745impl AstNode for Drop {
13746    #[inline]
13747    fn can_cast(kind: SyntaxKind) -> bool {
13748        kind == SyntaxKind::DROP
13749    }
13750    #[inline]
13751    fn cast(syntax: SyntaxNode) -> Option<Self> {
13752        if Self::can_cast(syntax.kind()) {
13753            Some(Self { syntax })
13754        } else {
13755            None
13756        }
13757    }
13758    #[inline]
13759    fn syntax(&self) -> &SyntaxNode {
13760        &self.syntax
13761    }
13762}
13763impl AstNode for DropAccessMethod {
13764    #[inline]
13765    fn can_cast(kind: SyntaxKind) -> bool {
13766        kind == SyntaxKind::DROP_ACCESS_METHOD
13767    }
13768    #[inline]
13769    fn cast(syntax: SyntaxNode) -> Option<Self> {
13770        if Self::can_cast(syntax.kind()) {
13771            Some(Self { syntax })
13772        } else {
13773            None
13774        }
13775    }
13776    #[inline]
13777    fn syntax(&self) -> &SyntaxNode {
13778        &self.syntax
13779    }
13780}
13781impl AstNode for DropAggregate {
13782    #[inline]
13783    fn can_cast(kind: SyntaxKind) -> bool {
13784        kind == SyntaxKind::DROP_AGGREGATE
13785    }
13786    #[inline]
13787    fn cast(syntax: SyntaxNode) -> Option<Self> {
13788        if Self::can_cast(syntax.kind()) {
13789            Some(Self { syntax })
13790        } else {
13791            None
13792        }
13793    }
13794    #[inline]
13795    fn syntax(&self) -> &SyntaxNode {
13796        &self.syntax
13797    }
13798}
13799impl AstNode for DropCast {
13800    #[inline]
13801    fn can_cast(kind: SyntaxKind) -> bool {
13802        kind == SyntaxKind::DROP_CAST
13803    }
13804    #[inline]
13805    fn cast(syntax: SyntaxNode) -> Option<Self> {
13806        if Self::can_cast(syntax.kind()) {
13807            Some(Self { syntax })
13808        } else {
13809            None
13810        }
13811    }
13812    #[inline]
13813    fn syntax(&self) -> &SyntaxNode {
13814        &self.syntax
13815    }
13816}
13817impl AstNode for DropCollation {
13818    #[inline]
13819    fn can_cast(kind: SyntaxKind) -> bool {
13820        kind == SyntaxKind::DROP_COLLATION
13821    }
13822    #[inline]
13823    fn cast(syntax: SyntaxNode) -> Option<Self> {
13824        if Self::can_cast(syntax.kind()) {
13825            Some(Self { syntax })
13826        } else {
13827            None
13828        }
13829    }
13830    #[inline]
13831    fn syntax(&self) -> &SyntaxNode {
13832        &self.syntax
13833    }
13834}
13835impl AstNode for DropColumn {
13836    #[inline]
13837    fn can_cast(kind: SyntaxKind) -> bool {
13838        kind == SyntaxKind::DROP_COLUMN
13839    }
13840    #[inline]
13841    fn cast(syntax: SyntaxNode) -> Option<Self> {
13842        if Self::can_cast(syntax.kind()) {
13843            Some(Self { syntax })
13844        } else {
13845            None
13846        }
13847    }
13848    #[inline]
13849    fn syntax(&self) -> &SyntaxNode {
13850        &self.syntax
13851    }
13852}
13853impl AstNode for DropConstraint {
13854    #[inline]
13855    fn can_cast(kind: SyntaxKind) -> bool {
13856        kind == SyntaxKind::DROP_CONSTRAINT
13857    }
13858    #[inline]
13859    fn cast(syntax: SyntaxNode) -> Option<Self> {
13860        if Self::can_cast(syntax.kind()) {
13861            Some(Self { syntax })
13862        } else {
13863            None
13864        }
13865    }
13866    #[inline]
13867    fn syntax(&self) -> &SyntaxNode {
13868        &self.syntax
13869    }
13870}
13871impl AstNode for DropConversion {
13872    #[inline]
13873    fn can_cast(kind: SyntaxKind) -> bool {
13874        kind == SyntaxKind::DROP_CONVERSION
13875    }
13876    #[inline]
13877    fn cast(syntax: SyntaxNode) -> Option<Self> {
13878        if Self::can_cast(syntax.kind()) {
13879            Some(Self { syntax })
13880        } else {
13881            None
13882        }
13883    }
13884    #[inline]
13885    fn syntax(&self) -> &SyntaxNode {
13886        &self.syntax
13887    }
13888}
13889impl AstNode for DropDatabase {
13890    #[inline]
13891    fn can_cast(kind: SyntaxKind) -> bool {
13892        kind == SyntaxKind::DROP_DATABASE
13893    }
13894    #[inline]
13895    fn cast(syntax: SyntaxNode) -> Option<Self> {
13896        if Self::can_cast(syntax.kind()) {
13897            Some(Self { syntax })
13898        } else {
13899            None
13900        }
13901    }
13902    #[inline]
13903    fn syntax(&self) -> &SyntaxNode {
13904        &self.syntax
13905    }
13906}
13907impl AstNode for DropDefault {
13908    #[inline]
13909    fn can_cast(kind: SyntaxKind) -> bool {
13910        kind == SyntaxKind::DROP_DEFAULT
13911    }
13912    #[inline]
13913    fn cast(syntax: SyntaxNode) -> Option<Self> {
13914        if Self::can_cast(syntax.kind()) {
13915            Some(Self { syntax })
13916        } else {
13917            None
13918        }
13919    }
13920    #[inline]
13921    fn syntax(&self) -> &SyntaxNode {
13922        &self.syntax
13923    }
13924}
13925impl AstNode for DropDomain {
13926    #[inline]
13927    fn can_cast(kind: SyntaxKind) -> bool {
13928        kind == SyntaxKind::DROP_DOMAIN
13929    }
13930    #[inline]
13931    fn cast(syntax: SyntaxNode) -> Option<Self> {
13932        if Self::can_cast(syntax.kind()) {
13933            Some(Self { syntax })
13934        } else {
13935            None
13936        }
13937    }
13938    #[inline]
13939    fn syntax(&self) -> &SyntaxNode {
13940        &self.syntax
13941    }
13942}
13943impl AstNode for DropEventTrigger {
13944    #[inline]
13945    fn can_cast(kind: SyntaxKind) -> bool {
13946        kind == SyntaxKind::DROP_EVENT_TRIGGER
13947    }
13948    #[inline]
13949    fn cast(syntax: SyntaxNode) -> Option<Self> {
13950        if Self::can_cast(syntax.kind()) {
13951            Some(Self { syntax })
13952        } else {
13953            None
13954        }
13955    }
13956    #[inline]
13957    fn syntax(&self) -> &SyntaxNode {
13958        &self.syntax
13959    }
13960}
13961impl AstNode for DropExpression {
13962    #[inline]
13963    fn can_cast(kind: SyntaxKind) -> bool {
13964        kind == SyntaxKind::DROP_EXPRESSION
13965    }
13966    #[inline]
13967    fn cast(syntax: SyntaxNode) -> Option<Self> {
13968        if Self::can_cast(syntax.kind()) {
13969            Some(Self { syntax })
13970        } else {
13971            None
13972        }
13973    }
13974    #[inline]
13975    fn syntax(&self) -> &SyntaxNode {
13976        &self.syntax
13977    }
13978}
13979impl AstNode for DropExtension {
13980    #[inline]
13981    fn can_cast(kind: SyntaxKind) -> bool {
13982        kind == SyntaxKind::DROP_EXTENSION
13983    }
13984    #[inline]
13985    fn cast(syntax: SyntaxNode) -> Option<Self> {
13986        if Self::can_cast(syntax.kind()) {
13987            Some(Self { syntax })
13988        } else {
13989            None
13990        }
13991    }
13992    #[inline]
13993    fn syntax(&self) -> &SyntaxNode {
13994        &self.syntax
13995    }
13996}
13997impl AstNode for DropForeignDataWrapper {
13998    #[inline]
13999    fn can_cast(kind: SyntaxKind) -> bool {
14000        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
14001    }
14002    #[inline]
14003    fn cast(syntax: SyntaxNode) -> Option<Self> {
14004        if Self::can_cast(syntax.kind()) {
14005            Some(Self { syntax })
14006        } else {
14007            None
14008        }
14009    }
14010    #[inline]
14011    fn syntax(&self) -> &SyntaxNode {
14012        &self.syntax
14013    }
14014}
14015impl AstNode for DropForeignTable {
14016    #[inline]
14017    fn can_cast(kind: SyntaxKind) -> bool {
14018        kind == SyntaxKind::DROP_FOREIGN_TABLE
14019    }
14020    #[inline]
14021    fn cast(syntax: SyntaxNode) -> Option<Self> {
14022        if Self::can_cast(syntax.kind()) {
14023            Some(Self { syntax })
14024        } else {
14025            None
14026        }
14027    }
14028    #[inline]
14029    fn syntax(&self) -> &SyntaxNode {
14030        &self.syntax
14031    }
14032}
14033impl AstNode for DropFunction {
14034    #[inline]
14035    fn can_cast(kind: SyntaxKind) -> bool {
14036        kind == SyntaxKind::DROP_FUNCTION
14037    }
14038    #[inline]
14039    fn cast(syntax: SyntaxNode) -> Option<Self> {
14040        if Self::can_cast(syntax.kind()) {
14041            Some(Self { syntax })
14042        } else {
14043            None
14044        }
14045    }
14046    #[inline]
14047    fn syntax(&self) -> &SyntaxNode {
14048        &self.syntax
14049    }
14050}
14051impl AstNode for DropGroup {
14052    #[inline]
14053    fn can_cast(kind: SyntaxKind) -> bool {
14054        kind == SyntaxKind::DROP_GROUP
14055    }
14056    #[inline]
14057    fn cast(syntax: SyntaxNode) -> Option<Self> {
14058        if Self::can_cast(syntax.kind()) {
14059            Some(Self { syntax })
14060        } else {
14061            None
14062        }
14063    }
14064    #[inline]
14065    fn syntax(&self) -> &SyntaxNode {
14066        &self.syntax
14067    }
14068}
14069impl AstNode for DropIdentity {
14070    #[inline]
14071    fn can_cast(kind: SyntaxKind) -> bool {
14072        kind == SyntaxKind::DROP_IDENTITY
14073    }
14074    #[inline]
14075    fn cast(syntax: SyntaxNode) -> Option<Self> {
14076        if Self::can_cast(syntax.kind()) {
14077            Some(Self { syntax })
14078        } else {
14079            None
14080        }
14081    }
14082    #[inline]
14083    fn syntax(&self) -> &SyntaxNode {
14084        &self.syntax
14085    }
14086}
14087impl AstNode for DropIndex {
14088    #[inline]
14089    fn can_cast(kind: SyntaxKind) -> bool {
14090        kind == SyntaxKind::DROP_INDEX
14091    }
14092    #[inline]
14093    fn cast(syntax: SyntaxNode) -> Option<Self> {
14094        if Self::can_cast(syntax.kind()) {
14095            Some(Self { syntax })
14096        } else {
14097            None
14098        }
14099    }
14100    #[inline]
14101    fn syntax(&self) -> &SyntaxNode {
14102        &self.syntax
14103    }
14104}
14105impl AstNode for DropLanguage {
14106    #[inline]
14107    fn can_cast(kind: SyntaxKind) -> bool {
14108        kind == SyntaxKind::DROP_LANGUAGE
14109    }
14110    #[inline]
14111    fn cast(syntax: SyntaxNode) -> Option<Self> {
14112        if Self::can_cast(syntax.kind()) {
14113            Some(Self { syntax })
14114        } else {
14115            None
14116        }
14117    }
14118    #[inline]
14119    fn syntax(&self) -> &SyntaxNode {
14120        &self.syntax
14121    }
14122}
14123impl AstNode for DropMaterializedView {
14124    #[inline]
14125    fn can_cast(kind: SyntaxKind) -> bool {
14126        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
14127    }
14128    #[inline]
14129    fn cast(syntax: SyntaxNode) -> Option<Self> {
14130        if Self::can_cast(syntax.kind()) {
14131            Some(Self { syntax })
14132        } else {
14133            None
14134        }
14135    }
14136    #[inline]
14137    fn syntax(&self) -> &SyntaxNode {
14138        &self.syntax
14139    }
14140}
14141impl AstNode for DropNotNull {
14142    #[inline]
14143    fn can_cast(kind: SyntaxKind) -> bool {
14144        kind == SyntaxKind::DROP_NOT_NULL
14145    }
14146    #[inline]
14147    fn cast(syntax: SyntaxNode) -> Option<Self> {
14148        if Self::can_cast(syntax.kind()) {
14149            Some(Self { syntax })
14150        } else {
14151            None
14152        }
14153    }
14154    #[inline]
14155    fn syntax(&self) -> &SyntaxNode {
14156        &self.syntax
14157    }
14158}
14159impl AstNode for DropOperator {
14160    #[inline]
14161    fn can_cast(kind: SyntaxKind) -> bool {
14162        kind == SyntaxKind::DROP_OPERATOR
14163    }
14164    #[inline]
14165    fn cast(syntax: SyntaxNode) -> Option<Self> {
14166        if Self::can_cast(syntax.kind()) {
14167            Some(Self { syntax })
14168        } else {
14169            None
14170        }
14171    }
14172    #[inline]
14173    fn syntax(&self) -> &SyntaxNode {
14174        &self.syntax
14175    }
14176}
14177impl AstNode for DropOperatorClass {
14178    #[inline]
14179    fn can_cast(kind: SyntaxKind) -> bool {
14180        kind == SyntaxKind::DROP_OPERATOR_CLASS
14181    }
14182    #[inline]
14183    fn cast(syntax: SyntaxNode) -> Option<Self> {
14184        if Self::can_cast(syntax.kind()) {
14185            Some(Self { syntax })
14186        } else {
14187            None
14188        }
14189    }
14190    #[inline]
14191    fn syntax(&self) -> &SyntaxNode {
14192        &self.syntax
14193    }
14194}
14195impl AstNode for DropOperatorFamily {
14196    #[inline]
14197    fn can_cast(kind: SyntaxKind) -> bool {
14198        kind == SyntaxKind::DROP_OPERATOR_FAMILY
14199    }
14200    #[inline]
14201    fn cast(syntax: SyntaxNode) -> Option<Self> {
14202        if Self::can_cast(syntax.kind()) {
14203            Some(Self { syntax })
14204        } else {
14205            None
14206        }
14207    }
14208    #[inline]
14209    fn syntax(&self) -> &SyntaxNode {
14210        &self.syntax
14211    }
14212}
14213impl AstNode for DropOwned {
14214    #[inline]
14215    fn can_cast(kind: SyntaxKind) -> bool {
14216        kind == SyntaxKind::DROP_OWNED
14217    }
14218    #[inline]
14219    fn cast(syntax: SyntaxNode) -> Option<Self> {
14220        if Self::can_cast(syntax.kind()) {
14221            Some(Self { syntax })
14222        } else {
14223            None
14224        }
14225    }
14226    #[inline]
14227    fn syntax(&self) -> &SyntaxNode {
14228        &self.syntax
14229    }
14230}
14231impl AstNode for DropPolicy {
14232    #[inline]
14233    fn can_cast(kind: SyntaxKind) -> bool {
14234        kind == SyntaxKind::DROP_POLICY
14235    }
14236    #[inline]
14237    fn cast(syntax: SyntaxNode) -> Option<Self> {
14238        if Self::can_cast(syntax.kind()) {
14239            Some(Self { syntax })
14240        } else {
14241            None
14242        }
14243    }
14244    #[inline]
14245    fn syntax(&self) -> &SyntaxNode {
14246        &self.syntax
14247    }
14248}
14249impl AstNode for DropProcedure {
14250    #[inline]
14251    fn can_cast(kind: SyntaxKind) -> bool {
14252        kind == SyntaxKind::DROP_PROCEDURE
14253    }
14254    #[inline]
14255    fn cast(syntax: SyntaxNode) -> Option<Self> {
14256        if Self::can_cast(syntax.kind()) {
14257            Some(Self { syntax })
14258        } else {
14259            None
14260        }
14261    }
14262    #[inline]
14263    fn syntax(&self) -> &SyntaxNode {
14264        &self.syntax
14265    }
14266}
14267impl AstNode for DropPublication {
14268    #[inline]
14269    fn can_cast(kind: SyntaxKind) -> bool {
14270        kind == SyntaxKind::DROP_PUBLICATION
14271    }
14272    #[inline]
14273    fn cast(syntax: SyntaxNode) -> Option<Self> {
14274        if Self::can_cast(syntax.kind()) {
14275            Some(Self { syntax })
14276        } else {
14277            None
14278        }
14279    }
14280    #[inline]
14281    fn syntax(&self) -> &SyntaxNode {
14282        &self.syntax
14283    }
14284}
14285impl AstNode for DropRole {
14286    #[inline]
14287    fn can_cast(kind: SyntaxKind) -> bool {
14288        kind == SyntaxKind::DROP_ROLE
14289    }
14290    #[inline]
14291    fn cast(syntax: SyntaxNode) -> Option<Self> {
14292        if Self::can_cast(syntax.kind()) {
14293            Some(Self { syntax })
14294        } else {
14295            None
14296        }
14297    }
14298    #[inline]
14299    fn syntax(&self) -> &SyntaxNode {
14300        &self.syntax
14301    }
14302}
14303impl AstNode for DropRoutine {
14304    #[inline]
14305    fn can_cast(kind: SyntaxKind) -> bool {
14306        kind == SyntaxKind::DROP_ROUTINE
14307    }
14308    #[inline]
14309    fn cast(syntax: SyntaxNode) -> Option<Self> {
14310        if Self::can_cast(syntax.kind()) {
14311            Some(Self { syntax })
14312        } else {
14313            None
14314        }
14315    }
14316    #[inline]
14317    fn syntax(&self) -> &SyntaxNode {
14318        &self.syntax
14319    }
14320}
14321impl AstNode for DropRule {
14322    #[inline]
14323    fn can_cast(kind: SyntaxKind) -> bool {
14324        kind == SyntaxKind::DROP_RULE
14325    }
14326    #[inline]
14327    fn cast(syntax: SyntaxNode) -> Option<Self> {
14328        if Self::can_cast(syntax.kind()) {
14329            Some(Self { syntax })
14330        } else {
14331            None
14332        }
14333    }
14334    #[inline]
14335    fn syntax(&self) -> &SyntaxNode {
14336        &self.syntax
14337    }
14338}
14339impl AstNode for DropSchema {
14340    #[inline]
14341    fn can_cast(kind: SyntaxKind) -> bool {
14342        kind == SyntaxKind::DROP_SCHEMA
14343    }
14344    #[inline]
14345    fn cast(syntax: SyntaxNode) -> Option<Self> {
14346        if Self::can_cast(syntax.kind()) {
14347            Some(Self { syntax })
14348        } else {
14349            None
14350        }
14351    }
14352    #[inline]
14353    fn syntax(&self) -> &SyntaxNode {
14354        &self.syntax
14355    }
14356}
14357impl AstNode for DropSequence {
14358    #[inline]
14359    fn can_cast(kind: SyntaxKind) -> bool {
14360        kind == SyntaxKind::DROP_SEQUENCE
14361    }
14362    #[inline]
14363    fn cast(syntax: SyntaxNode) -> Option<Self> {
14364        if Self::can_cast(syntax.kind()) {
14365            Some(Self { syntax })
14366        } else {
14367            None
14368        }
14369    }
14370    #[inline]
14371    fn syntax(&self) -> &SyntaxNode {
14372        &self.syntax
14373    }
14374}
14375impl AstNode for DropServer {
14376    #[inline]
14377    fn can_cast(kind: SyntaxKind) -> bool {
14378        kind == SyntaxKind::DROP_SERVER
14379    }
14380    #[inline]
14381    fn cast(syntax: SyntaxNode) -> Option<Self> {
14382        if Self::can_cast(syntax.kind()) {
14383            Some(Self { syntax })
14384        } else {
14385            None
14386        }
14387    }
14388    #[inline]
14389    fn syntax(&self) -> &SyntaxNode {
14390        &self.syntax
14391    }
14392}
14393impl AstNode for DropStatistics {
14394    #[inline]
14395    fn can_cast(kind: SyntaxKind) -> bool {
14396        kind == SyntaxKind::DROP_STATISTICS
14397    }
14398    #[inline]
14399    fn cast(syntax: SyntaxNode) -> Option<Self> {
14400        if Self::can_cast(syntax.kind()) {
14401            Some(Self { syntax })
14402        } else {
14403            None
14404        }
14405    }
14406    #[inline]
14407    fn syntax(&self) -> &SyntaxNode {
14408        &self.syntax
14409    }
14410}
14411impl AstNode for DropSubscription {
14412    #[inline]
14413    fn can_cast(kind: SyntaxKind) -> bool {
14414        kind == SyntaxKind::DROP_SUBSCRIPTION
14415    }
14416    #[inline]
14417    fn cast(syntax: SyntaxNode) -> Option<Self> {
14418        if Self::can_cast(syntax.kind()) {
14419            Some(Self { syntax })
14420        } else {
14421            None
14422        }
14423    }
14424    #[inline]
14425    fn syntax(&self) -> &SyntaxNode {
14426        &self.syntax
14427    }
14428}
14429impl AstNode for DropTable {
14430    #[inline]
14431    fn can_cast(kind: SyntaxKind) -> bool {
14432        kind == SyntaxKind::DROP_TABLE
14433    }
14434    #[inline]
14435    fn cast(syntax: SyntaxNode) -> Option<Self> {
14436        if Self::can_cast(syntax.kind()) {
14437            Some(Self { syntax })
14438        } else {
14439            None
14440        }
14441    }
14442    #[inline]
14443    fn syntax(&self) -> &SyntaxNode {
14444        &self.syntax
14445    }
14446}
14447impl AstNode for DropTablespace {
14448    #[inline]
14449    fn can_cast(kind: SyntaxKind) -> bool {
14450        kind == SyntaxKind::DROP_TABLESPACE
14451    }
14452    #[inline]
14453    fn cast(syntax: SyntaxNode) -> Option<Self> {
14454        if Self::can_cast(syntax.kind()) {
14455            Some(Self { syntax })
14456        } else {
14457            None
14458        }
14459    }
14460    #[inline]
14461    fn syntax(&self) -> &SyntaxNode {
14462        &self.syntax
14463    }
14464}
14465impl AstNode for DropTextSearchConfig {
14466    #[inline]
14467    fn can_cast(kind: SyntaxKind) -> bool {
14468        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
14469    }
14470    #[inline]
14471    fn cast(syntax: SyntaxNode) -> Option<Self> {
14472        if Self::can_cast(syntax.kind()) {
14473            Some(Self { syntax })
14474        } else {
14475            None
14476        }
14477    }
14478    #[inline]
14479    fn syntax(&self) -> &SyntaxNode {
14480        &self.syntax
14481    }
14482}
14483impl AstNode for DropTextSearchDict {
14484    #[inline]
14485    fn can_cast(kind: SyntaxKind) -> bool {
14486        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
14487    }
14488    #[inline]
14489    fn cast(syntax: SyntaxNode) -> Option<Self> {
14490        if Self::can_cast(syntax.kind()) {
14491            Some(Self { syntax })
14492        } else {
14493            None
14494        }
14495    }
14496    #[inline]
14497    fn syntax(&self) -> &SyntaxNode {
14498        &self.syntax
14499    }
14500}
14501impl AstNode for DropTextSearchParser {
14502    #[inline]
14503    fn can_cast(kind: SyntaxKind) -> bool {
14504        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
14505    }
14506    #[inline]
14507    fn cast(syntax: SyntaxNode) -> Option<Self> {
14508        if Self::can_cast(syntax.kind()) {
14509            Some(Self { syntax })
14510        } else {
14511            None
14512        }
14513    }
14514    #[inline]
14515    fn syntax(&self) -> &SyntaxNode {
14516        &self.syntax
14517    }
14518}
14519impl AstNode for DropTextSearchTemplate {
14520    #[inline]
14521    fn can_cast(kind: SyntaxKind) -> bool {
14522        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
14523    }
14524    #[inline]
14525    fn cast(syntax: SyntaxNode) -> Option<Self> {
14526        if Self::can_cast(syntax.kind()) {
14527            Some(Self { syntax })
14528        } else {
14529            None
14530        }
14531    }
14532    #[inline]
14533    fn syntax(&self) -> &SyntaxNode {
14534        &self.syntax
14535    }
14536}
14537impl AstNode for DropTransform {
14538    #[inline]
14539    fn can_cast(kind: SyntaxKind) -> bool {
14540        kind == SyntaxKind::DROP_TRANSFORM
14541    }
14542    #[inline]
14543    fn cast(syntax: SyntaxNode) -> Option<Self> {
14544        if Self::can_cast(syntax.kind()) {
14545            Some(Self { syntax })
14546        } else {
14547            None
14548        }
14549    }
14550    #[inline]
14551    fn syntax(&self) -> &SyntaxNode {
14552        &self.syntax
14553    }
14554}
14555impl AstNode for DropTrigger {
14556    #[inline]
14557    fn can_cast(kind: SyntaxKind) -> bool {
14558        kind == SyntaxKind::DROP_TRIGGER
14559    }
14560    #[inline]
14561    fn cast(syntax: SyntaxNode) -> Option<Self> {
14562        if Self::can_cast(syntax.kind()) {
14563            Some(Self { syntax })
14564        } else {
14565            None
14566        }
14567    }
14568    #[inline]
14569    fn syntax(&self) -> &SyntaxNode {
14570        &self.syntax
14571    }
14572}
14573impl AstNode for DropType {
14574    #[inline]
14575    fn can_cast(kind: SyntaxKind) -> bool {
14576        kind == SyntaxKind::DROP_TYPE
14577    }
14578    #[inline]
14579    fn cast(syntax: SyntaxNode) -> Option<Self> {
14580        if Self::can_cast(syntax.kind()) {
14581            Some(Self { syntax })
14582        } else {
14583            None
14584        }
14585    }
14586    #[inline]
14587    fn syntax(&self) -> &SyntaxNode {
14588        &self.syntax
14589    }
14590}
14591impl AstNode for DropUser {
14592    #[inline]
14593    fn can_cast(kind: SyntaxKind) -> bool {
14594        kind == SyntaxKind::DROP_USER
14595    }
14596    #[inline]
14597    fn cast(syntax: SyntaxNode) -> Option<Self> {
14598        if Self::can_cast(syntax.kind()) {
14599            Some(Self { syntax })
14600        } else {
14601            None
14602        }
14603    }
14604    #[inline]
14605    fn syntax(&self) -> &SyntaxNode {
14606        &self.syntax
14607    }
14608}
14609impl AstNode for DropUserMapping {
14610    #[inline]
14611    fn can_cast(kind: SyntaxKind) -> bool {
14612        kind == SyntaxKind::DROP_USER_MAPPING
14613    }
14614    #[inline]
14615    fn cast(syntax: SyntaxNode) -> Option<Self> {
14616        if Self::can_cast(syntax.kind()) {
14617            Some(Self { syntax })
14618        } else {
14619            None
14620        }
14621    }
14622    #[inline]
14623    fn syntax(&self) -> &SyntaxNode {
14624        &self.syntax
14625    }
14626}
14627impl AstNode for DropView {
14628    #[inline]
14629    fn can_cast(kind: SyntaxKind) -> bool {
14630        kind == SyntaxKind::DROP_VIEW
14631    }
14632    #[inline]
14633    fn cast(syntax: SyntaxNode) -> Option<Self> {
14634        if Self::can_cast(syntax.kind()) {
14635            Some(Self { syntax })
14636        } else {
14637            None
14638        }
14639    }
14640    #[inline]
14641    fn syntax(&self) -> &SyntaxNode {
14642        &self.syntax
14643    }
14644}
14645impl AstNode for ElseClause {
14646    #[inline]
14647    fn can_cast(kind: SyntaxKind) -> bool {
14648        kind == SyntaxKind::ELSE_CLAUSE
14649    }
14650    #[inline]
14651    fn cast(syntax: SyntaxNode) -> Option<Self> {
14652        if Self::can_cast(syntax.kind()) {
14653            Some(Self { syntax })
14654        } else {
14655            None
14656        }
14657    }
14658    #[inline]
14659    fn syntax(&self) -> &SyntaxNode {
14660        &self.syntax
14661    }
14662}
14663impl AstNode for EnableAlwaysRule {
14664    #[inline]
14665    fn can_cast(kind: SyntaxKind) -> bool {
14666        kind == SyntaxKind::ENABLE_ALWAYS_RULE
14667    }
14668    #[inline]
14669    fn cast(syntax: SyntaxNode) -> Option<Self> {
14670        if Self::can_cast(syntax.kind()) {
14671            Some(Self { syntax })
14672        } else {
14673            None
14674        }
14675    }
14676    #[inline]
14677    fn syntax(&self) -> &SyntaxNode {
14678        &self.syntax
14679    }
14680}
14681impl AstNode for EnableAlwaysTrigger {
14682    #[inline]
14683    fn can_cast(kind: SyntaxKind) -> bool {
14684        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
14685    }
14686    #[inline]
14687    fn cast(syntax: SyntaxNode) -> Option<Self> {
14688        if Self::can_cast(syntax.kind()) {
14689            Some(Self { syntax })
14690        } else {
14691            None
14692        }
14693    }
14694    #[inline]
14695    fn syntax(&self) -> &SyntaxNode {
14696        &self.syntax
14697    }
14698}
14699impl AstNode for EnableReplicaRule {
14700    #[inline]
14701    fn can_cast(kind: SyntaxKind) -> bool {
14702        kind == SyntaxKind::ENABLE_REPLICA_RULE
14703    }
14704    #[inline]
14705    fn cast(syntax: SyntaxNode) -> Option<Self> {
14706        if Self::can_cast(syntax.kind()) {
14707            Some(Self { syntax })
14708        } else {
14709            None
14710        }
14711    }
14712    #[inline]
14713    fn syntax(&self) -> &SyntaxNode {
14714        &self.syntax
14715    }
14716}
14717impl AstNode for EnableReplicaTrigger {
14718    #[inline]
14719    fn can_cast(kind: SyntaxKind) -> bool {
14720        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
14721    }
14722    #[inline]
14723    fn cast(syntax: SyntaxNode) -> Option<Self> {
14724        if Self::can_cast(syntax.kind()) {
14725            Some(Self { syntax })
14726        } else {
14727            None
14728        }
14729    }
14730    #[inline]
14731    fn syntax(&self) -> &SyntaxNode {
14732        &self.syntax
14733    }
14734}
14735impl AstNode for EnableRls {
14736    #[inline]
14737    fn can_cast(kind: SyntaxKind) -> bool {
14738        kind == SyntaxKind::ENABLE_RLS
14739    }
14740    #[inline]
14741    fn cast(syntax: SyntaxNode) -> Option<Self> {
14742        if Self::can_cast(syntax.kind()) {
14743            Some(Self { syntax })
14744        } else {
14745            None
14746        }
14747    }
14748    #[inline]
14749    fn syntax(&self) -> &SyntaxNode {
14750        &self.syntax
14751    }
14752}
14753impl AstNode for EnableRule {
14754    #[inline]
14755    fn can_cast(kind: SyntaxKind) -> bool {
14756        kind == SyntaxKind::ENABLE_RULE
14757    }
14758    #[inline]
14759    fn cast(syntax: SyntaxNode) -> Option<Self> {
14760        if Self::can_cast(syntax.kind()) {
14761            Some(Self { syntax })
14762        } else {
14763            None
14764        }
14765    }
14766    #[inline]
14767    fn syntax(&self) -> &SyntaxNode {
14768        &self.syntax
14769    }
14770}
14771impl AstNode for EnableTrigger {
14772    #[inline]
14773    fn can_cast(kind: SyntaxKind) -> bool {
14774        kind == SyntaxKind::ENABLE_TRIGGER
14775    }
14776    #[inline]
14777    fn cast(syntax: SyntaxNode) -> Option<Self> {
14778        if Self::can_cast(syntax.kind()) {
14779            Some(Self { syntax })
14780        } else {
14781            None
14782        }
14783    }
14784    #[inline]
14785    fn syntax(&self) -> &SyntaxNode {
14786        &self.syntax
14787    }
14788}
14789impl AstNode for Enforced {
14790    #[inline]
14791    fn can_cast(kind: SyntaxKind) -> bool {
14792        kind == SyntaxKind::ENFORCED
14793    }
14794    #[inline]
14795    fn cast(syntax: SyntaxNode) -> Option<Self> {
14796        if Self::can_cast(syntax.kind()) {
14797            Some(Self { syntax })
14798        } else {
14799            None
14800        }
14801    }
14802    #[inline]
14803    fn syntax(&self) -> &SyntaxNode {
14804        &self.syntax
14805    }
14806}
14807impl AstNode for ExcludeConstraint {
14808    #[inline]
14809    fn can_cast(kind: SyntaxKind) -> bool {
14810        kind == SyntaxKind::EXCLUDE_CONSTRAINT
14811    }
14812    #[inline]
14813    fn cast(syntax: SyntaxNode) -> Option<Self> {
14814        if Self::can_cast(syntax.kind()) {
14815            Some(Self { syntax })
14816        } else {
14817            None
14818        }
14819    }
14820    #[inline]
14821    fn syntax(&self) -> &SyntaxNode {
14822        &self.syntax
14823    }
14824}
14825impl AstNode for Execute {
14826    #[inline]
14827    fn can_cast(kind: SyntaxKind) -> bool {
14828        kind == SyntaxKind::EXECUTE
14829    }
14830    #[inline]
14831    fn cast(syntax: SyntaxNode) -> Option<Self> {
14832        if Self::can_cast(syntax.kind()) {
14833            Some(Self { syntax })
14834        } else {
14835            None
14836        }
14837    }
14838    #[inline]
14839    fn syntax(&self) -> &SyntaxNode {
14840        &self.syntax
14841    }
14842}
14843impl AstNode for Explain {
14844    #[inline]
14845    fn can_cast(kind: SyntaxKind) -> bool {
14846        kind == SyntaxKind::EXPLAIN
14847    }
14848    #[inline]
14849    fn cast(syntax: SyntaxNode) -> Option<Self> {
14850        if Self::can_cast(syntax.kind()) {
14851            Some(Self { syntax })
14852        } else {
14853            None
14854        }
14855    }
14856    #[inline]
14857    fn syntax(&self) -> &SyntaxNode {
14858        &self.syntax
14859    }
14860}
14861impl AstNode for FatArrow {
14862    #[inline]
14863    fn can_cast(kind: SyntaxKind) -> bool {
14864        kind == SyntaxKind::FAT_ARROW
14865    }
14866    #[inline]
14867    fn cast(syntax: SyntaxNode) -> Option<Self> {
14868        if Self::can_cast(syntax.kind()) {
14869            Some(Self { syntax })
14870        } else {
14871            None
14872        }
14873    }
14874    #[inline]
14875    fn syntax(&self) -> &SyntaxNode {
14876        &self.syntax
14877    }
14878}
14879impl AstNode for Fetch {
14880    #[inline]
14881    fn can_cast(kind: SyntaxKind) -> bool {
14882        kind == SyntaxKind::FETCH
14883    }
14884    #[inline]
14885    fn cast(syntax: SyntaxNode) -> Option<Self> {
14886        if Self::can_cast(syntax.kind()) {
14887            Some(Self { syntax })
14888        } else {
14889            None
14890        }
14891    }
14892    #[inline]
14893    fn syntax(&self) -> &SyntaxNode {
14894        &self.syntax
14895    }
14896}
14897impl AstNode for FetchClause {
14898    #[inline]
14899    fn can_cast(kind: SyntaxKind) -> bool {
14900        kind == SyntaxKind::FETCH_CLAUSE
14901    }
14902    #[inline]
14903    fn cast(syntax: SyntaxNode) -> Option<Self> {
14904        if Self::can_cast(syntax.kind()) {
14905            Some(Self { syntax })
14906        } else {
14907            None
14908        }
14909    }
14910    #[inline]
14911    fn syntax(&self) -> &SyntaxNode {
14912        &self.syntax
14913    }
14914}
14915impl AstNode for FieldExpr {
14916    #[inline]
14917    fn can_cast(kind: SyntaxKind) -> bool {
14918        kind == SyntaxKind::FIELD_EXPR
14919    }
14920    #[inline]
14921    fn cast(syntax: SyntaxNode) -> Option<Self> {
14922        if Self::can_cast(syntax.kind()) {
14923            Some(Self { syntax })
14924        } else {
14925            None
14926        }
14927    }
14928    #[inline]
14929    fn syntax(&self) -> &SyntaxNode {
14930        &self.syntax
14931    }
14932}
14933impl AstNode for FilterClause {
14934    #[inline]
14935    fn can_cast(kind: SyntaxKind) -> bool {
14936        kind == SyntaxKind::FILTER_CLAUSE
14937    }
14938    #[inline]
14939    fn cast(syntax: SyntaxNode) -> Option<Self> {
14940        if Self::can_cast(syntax.kind()) {
14941            Some(Self { syntax })
14942        } else {
14943            None
14944        }
14945    }
14946    #[inline]
14947    fn syntax(&self) -> &SyntaxNode {
14948        &self.syntax
14949    }
14950}
14951impl AstNode for ForceRls {
14952    #[inline]
14953    fn can_cast(kind: SyntaxKind) -> bool {
14954        kind == SyntaxKind::FORCE_RLS
14955    }
14956    #[inline]
14957    fn cast(syntax: SyntaxNode) -> Option<Self> {
14958        if Self::can_cast(syntax.kind()) {
14959            Some(Self { syntax })
14960        } else {
14961            None
14962        }
14963    }
14964    #[inline]
14965    fn syntax(&self) -> &SyntaxNode {
14966        &self.syntax
14967    }
14968}
14969impl AstNode for ForeignKeyConstraint {
14970    #[inline]
14971    fn can_cast(kind: SyntaxKind) -> bool {
14972        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
14973    }
14974    #[inline]
14975    fn cast(syntax: SyntaxNode) -> Option<Self> {
14976        if Self::can_cast(syntax.kind()) {
14977            Some(Self { syntax })
14978        } else {
14979            None
14980        }
14981    }
14982    #[inline]
14983    fn syntax(&self) -> &SyntaxNode {
14984        &self.syntax
14985    }
14986}
14987impl AstNode for FrameClause {
14988    #[inline]
14989    fn can_cast(kind: SyntaxKind) -> bool {
14990        kind == SyntaxKind::FRAME_CLAUSE
14991    }
14992    #[inline]
14993    fn cast(syntax: SyntaxNode) -> Option<Self> {
14994        if Self::can_cast(syntax.kind()) {
14995            Some(Self { syntax })
14996        } else {
14997            None
14998        }
14999    }
15000    #[inline]
15001    fn syntax(&self) -> &SyntaxNode {
15002        &self.syntax
15003    }
15004}
15005impl AstNode for FromClause {
15006    #[inline]
15007    fn can_cast(kind: SyntaxKind) -> bool {
15008        kind == SyntaxKind::FROM_CLAUSE
15009    }
15010    #[inline]
15011    fn cast(syntax: SyntaxNode) -> Option<Self> {
15012        if Self::can_cast(syntax.kind()) {
15013            Some(Self { syntax })
15014        } else {
15015            None
15016        }
15017    }
15018    #[inline]
15019    fn syntax(&self) -> &SyntaxNode {
15020        &self.syntax
15021    }
15022}
15023impl AstNode for FromItem {
15024    #[inline]
15025    fn can_cast(kind: SyntaxKind) -> bool {
15026        kind == SyntaxKind::FROM_ITEM
15027    }
15028    #[inline]
15029    fn cast(syntax: SyntaxNode) -> Option<Self> {
15030        if Self::can_cast(syntax.kind()) {
15031            Some(Self { syntax })
15032        } else {
15033            None
15034        }
15035    }
15036    #[inline]
15037    fn syntax(&self) -> &SyntaxNode {
15038        &self.syntax
15039    }
15040}
15041impl AstNode for FuncOptionList {
15042    #[inline]
15043    fn can_cast(kind: SyntaxKind) -> bool {
15044        kind == SyntaxKind::FUNC_OPTION_LIST
15045    }
15046    #[inline]
15047    fn cast(syntax: SyntaxNode) -> Option<Self> {
15048        if Self::can_cast(syntax.kind()) {
15049            Some(Self { syntax })
15050        } else {
15051            None
15052        }
15053    }
15054    #[inline]
15055    fn syntax(&self) -> &SyntaxNode {
15056        &self.syntax
15057    }
15058}
15059impl AstNode for GeneratedConstraint {
15060    #[inline]
15061    fn can_cast(kind: SyntaxKind) -> bool {
15062        kind == SyntaxKind::GENERATED_CONSTRAINT
15063    }
15064    #[inline]
15065    fn cast(syntax: SyntaxNode) -> Option<Self> {
15066        if Self::can_cast(syntax.kind()) {
15067            Some(Self { syntax })
15068        } else {
15069            None
15070        }
15071    }
15072    #[inline]
15073    fn syntax(&self) -> &SyntaxNode {
15074        &self.syntax
15075    }
15076}
15077impl AstNode for Grant {
15078    #[inline]
15079    fn can_cast(kind: SyntaxKind) -> bool {
15080        kind == SyntaxKind::GRANT
15081    }
15082    #[inline]
15083    fn cast(syntax: SyntaxNode) -> Option<Self> {
15084        if Self::can_cast(syntax.kind()) {
15085            Some(Self { syntax })
15086        } else {
15087            None
15088        }
15089    }
15090    #[inline]
15091    fn syntax(&self) -> &SyntaxNode {
15092        &self.syntax
15093    }
15094}
15095impl AstNode for GroupByClause {
15096    #[inline]
15097    fn can_cast(kind: SyntaxKind) -> bool {
15098        kind == SyntaxKind::GROUP_BY_CLAUSE
15099    }
15100    #[inline]
15101    fn cast(syntax: SyntaxNode) -> Option<Self> {
15102        if Self::can_cast(syntax.kind()) {
15103            Some(Self { syntax })
15104        } else {
15105            None
15106        }
15107    }
15108    #[inline]
15109    fn syntax(&self) -> &SyntaxNode {
15110        &self.syntax
15111    }
15112}
15113impl AstNode for GroupByList {
15114    #[inline]
15115    fn can_cast(kind: SyntaxKind) -> bool {
15116        kind == SyntaxKind::GROUP_BY_LIST
15117    }
15118    #[inline]
15119    fn cast(syntax: SyntaxNode) -> Option<Self> {
15120        if Self::can_cast(syntax.kind()) {
15121            Some(Self { syntax })
15122        } else {
15123            None
15124        }
15125    }
15126    #[inline]
15127    fn syntax(&self) -> &SyntaxNode {
15128        &self.syntax
15129    }
15130}
15131impl AstNode for GroupingCube {
15132    #[inline]
15133    fn can_cast(kind: SyntaxKind) -> bool {
15134        kind == SyntaxKind::GROUPING_CUBE
15135    }
15136    #[inline]
15137    fn cast(syntax: SyntaxNode) -> Option<Self> {
15138        if Self::can_cast(syntax.kind()) {
15139            Some(Self { syntax })
15140        } else {
15141            None
15142        }
15143    }
15144    #[inline]
15145    fn syntax(&self) -> &SyntaxNode {
15146        &self.syntax
15147    }
15148}
15149impl AstNode for GroupingExpr {
15150    #[inline]
15151    fn can_cast(kind: SyntaxKind) -> bool {
15152        kind == SyntaxKind::GROUPING_EXPR
15153    }
15154    #[inline]
15155    fn cast(syntax: SyntaxNode) -> Option<Self> {
15156        if Self::can_cast(syntax.kind()) {
15157            Some(Self { syntax })
15158        } else {
15159            None
15160        }
15161    }
15162    #[inline]
15163    fn syntax(&self) -> &SyntaxNode {
15164        &self.syntax
15165    }
15166}
15167impl AstNode for GroupingRollup {
15168    #[inline]
15169    fn can_cast(kind: SyntaxKind) -> bool {
15170        kind == SyntaxKind::GROUPING_ROLLUP
15171    }
15172    #[inline]
15173    fn cast(syntax: SyntaxNode) -> Option<Self> {
15174        if Self::can_cast(syntax.kind()) {
15175            Some(Self { syntax })
15176        } else {
15177            None
15178        }
15179    }
15180    #[inline]
15181    fn syntax(&self) -> &SyntaxNode {
15182        &self.syntax
15183    }
15184}
15185impl AstNode for GroupingSets {
15186    #[inline]
15187    fn can_cast(kind: SyntaxKind) -> bool {
15188        kind == SyntaxKind::GROUPING_SETS
15189    }
15190    #[inline]
15191    fn cast(syntax: SyntaxNode) -> Option<Self> {
15192        if Self::can_cast(syntax.kind()) {
15193            Some(Self { syntax })
15194        } else {
15195            None
15196        }
15197    }
15198    #[inline]
15199    fn syntax(&self) -> &SyntaxNode {
15200        &self.syntax
15201    }
15202}
15203impl AstNode for Gteq {
15204    #[inline]
15205    fn can_cast(kind: SyntaxKind) -> bool {
15206        kind == SyntaxKind::GTEQ
15207    }
15208    #[inline]
15209    fn cast(syntax: SyntaxNode) -> Option<Self> {
15210        if Self::can_cast(syntax.kind()) {
15211            Some(Self { syntax })
15212        } else {
15213            None
15214        }
15215    }
15216    #[inline]
15217    fn syntax(&self) -> &SyntaxNode {
15218        &self.syntax
15219    }
15220}
15221impl AstNode for HavingClause {
15222    #[inline]
15223    fn can_cast(kind: SyntaxKind) -> bool {
15224        kind == SyntaxKind::HAVING_CLAUSE
15225    }
15226    #[inline]
15227    fn cast(syntax: SyntaxNode) -> Option<Self> {
15228        if Self::can_cast(syntax.kind()) {
15229            Some(Self { syntax })
15230        } else {
15231            None
15232        }
15233    }
15234    #[inline]
15235    fn syntax(&self) -> &SyntaxNode {
15236        &self.syntax
15237    }
15238}
15239impl AstNode for IfExists {
15240    #[inline]
15241    fn can_cast(kind: SyntaxKind) -> bool {
15242        kind == SyntaxKind::IF_EXISTS
15243    }
15244    #[inline]
15245    fn cast(syntax: SyntaxNode) -> Option<Self> {
15246        if Self::can_cast(syntax.kind()) {
15247            Some(Self { syntax })
15248        } else {
15249            None
15250        }
15251    }
15252    #[inline]
15253    fn syntax(&self) -> &SyntaxNode {
15254        &self.syntax
15255    }
15256}
15257impl AstNode for IfNotExists {
15258    #[inline]
15259    fn can_cast(kind: SyntaxKind) -> bool {
15260        kind == SyntaxKind::IF_NOT_EXISTS
15261    }
15262    #[inline]
15263    fn cast(syntax: SyntaxNode) -> Option<Self> {
15264        if Self::can_cast(syntax.kind()) {
15265            Some(Self { syntax })
15266        } else {
15267            None
15268        }
15269    }
15270    #[inline]
15271    fn syntax(&self) -> &SyntaxNode {
15272        &self.syntax
15273    }
15274}
15275impl AstNode for ImportForeignSchema {
15276    #[inline]
15277    fn can_cast(kind: SyntaxKind) -> bool {
15278        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
15279    }
15280    #[inline]
15281    fn cast(syntax: SyntaxNode) -> Option<Self> {
15282        if Self::can_cast(syntax.kind()) {
15283            Some(Self { syntax })
15284        } else {
15285            None
15286        }
15287    }
15288    #[inline]
15289    fn syntax(&self) -> &SyntaxNode {
15290        &self.syntax
15291    }
15292}
15293impl AstNode for IndexExpr {
15294    #[inline]
15295    fn can_cast(kind: SyntaxKind) -> bool {
15296        kind == SyntaxKind::INDEX_EXPR
15297    }
15298    #[inline]
15299    fn cast(syntax: SyntaxNode) -> Option<Self> {
15300        if Self::can_cast(syntax.kind()) {
15301            Some(Self { syntax })
15302        } else {
15303            None
15304        }
15305    }
15306    #[inline]
15307    fn syntax(&self) -> &SyntaxNode {
15308        &self.syntax
15309    }
15310}
15311impl AstNode for Inherit {
15312    #[inline]
15313    fn can_cast(kind: SyntaxKind) -> bool {
15314        kind == SyntaxKind::INHERIT
15315    }
15316    #[inline]
15317    fn cast(syntax: SyntaxNode) -> Option<Self> {
15318        if Self::can_cast(syntax.kind()) {
15319            Some(Self { syntax })
15320        } else {
15321            None
15322        }
15323    }
15324    #[inline]
15325    fn syntax(&self) -> &SyntaxNode {
15326        &self.syntax
15327    }
15328}
15329impl AstNode for Inherits {
15330    #[inline]
15331    fn can_cast(kind: SyntaxKind) -> bool {
15332        kind == SyntaxKind::INHERITS
15333    }
15334    #[inline]
15335    fn cast(syntax: SyntaxNode) -> Option<Self> {
15336        if Self::can_cast(syntax.kind()) {
15337            Some(Self { syntax })
15338        } else {
15339            None
15340        }
15341    }
15342    #[inline]
15343    fn syntax(&self) -> &SyntaxNode {
15344        &self.syntax
15345    }
15346}
15347impl AstNode for InitiallyDeferredConstraintOption {
15348    #[inline]
15349    fn can_cast(kind: SyntaxKind) -> bool {
15350        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
15351    }
15352    #[inline]
15353    fn cast(syntax: SyntaxNode) -> Option<Self> {
15354        if Self::can_cast(syntax.kind()) {
15355            Some(Self { syntax })
15356        } else {
15357            None
15358        }
15359    }
15360    #[inline]
15361    fn syntax(&self) -> &SyntaxNode {
15362        &self.syntax
15363    }
15364}
15365impl AstNode for InitiallyImmediateConstraintOption {
15366    #[inline]
15367    fn can_cast(kind: SyntaxKind) -> bool {
15368        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
15369    }
15370    #[inline]
15371    fn cast(syntax: SyntaxNode) -> Option<Self> {
15372        if Self::can_cast(syntax.kind()) {
15373            Some(Self { syntax })
15374        } else {
15375            None
15376        }
15377    }
15378    #[inline]
15379    fn syntax(&self) -> &SyntaxNode {
15380        &self.syntax
15381    }
15382}
15383impl AstNode for Insert {
15384    #[inline]
15385    fn can_cast(kind: SyntaxKind) -> bool {
15386        kind == SyntaxKind::INSERT
15387    }
15388    #[inline]
15389    fn cast(syntax: SyntaxNode) -> Option<Self> {
15390        if Self::can_cast(syntax.kind()) {
15391            Some(Self { syntax })
15392        } else {
15393            None
15394        }
15395    }
15396    #[inline]
15397    fn syntax(&self) -> &SyntaxNode {
15398        &self.syntax
15399    }
15400}
15401impl AstNode for IntervalType {
15402    #[inline]
15403    fn can_cast(kind: SyntaxKind) -> bool {
15404        kind == SyntaxKind::INTERVAL_TYPE
15405    }
15406    #[inline]
15407    fn cast(syntax: SyntaxNode) -> Option<Self> {
15408        if Self::can_cast(syntax.kind()) {
15409            Some(Self { syntax })
15410        } else {
15411            None
15412        }
15413    }
15414    #[inline]
15415    fn syntax(&self) -> &SyntaxNode {
15416        &self.syntax
15417    }
15418}
15419impl AstNode for IntoClause {
15420    #[inline]
15421    fn can_cast(kind: SyntaxKind) -> bool {
15422        kind == SyntaxKind::INTO_CLAUSE
15423    }
15424    #[inline]
15425    fn cast(syntax: SyntaxNode) -> Option<Self> {
15426        if Self::can_cast(syntax.kind()) {
15427            Some(Self { syntax })
15428        } else {
15429            None
15430        }
15431    }
15432    #[inline]
15433    fn syntax(&self) -> &SyntaxNode {
15434        &self.syntax
15435    }
15436}
15437impl AstNode for IsDistinctFrom {
15438    #[inline]
15439    fn can_cast(kind: SyntaxKind) -> bool {
15440        kind == SyntaxKind::IS_DISTINCT_FROM
15441    }
15442    #[inline]
15443    fn cast(syntax: SyntaxNode) -> Option<Self> {
15444        if Self::can_cast(syntax.kind()) {
15445            Some(Self { syntax })
15446        } else {
15447            None
15448        }
15449    }
15450    #[inline]
15451    fn syntax(&self) -> &SyntaxNode {
15452        &self.syntax
15453    }
15454}
15455impl AstNode for IsJson {
15456    #[inline]
15457    fn can_cast(kind: SyntaxKind) -> bool {
15458        kind == SyntaxKind::IS_JSON
15459    }
15460    #[inline]
15461    fn cast(syntax: SyntaxNode) -> Option<Self> {
15462        if Self::can_cast(syntax.kind()) {
15463            Some(Self { syntax })
15464        } else {
15465            None
15466        }
15467    }
15468    #[inline]
15469    fn syntax(&self) -> &SyntaxNode {
15470        &self.syntax
15471    }
15472}
15473impl AstNode for IsJsonArray {
15474    #[inline]
15475    fn can_cast(kind: SyntaxKind) -> bool {
15476        kind == SyntaxKind::IS_JSON_ARRAY
15477    }
15478    #[inline]
15479    fn cast(syntax: SyntaxNode) -> Option<Self> {
15480        if Self::can_cast(syntax.kind()) {
15481            Some(Self { syntax })
15482        } else {
15483            None
15484        }
15485    }
15486    #[inline]
15487    fn syntax(&self) -> &SyntaxNode {
15488        &self.syntax
15489    }
15490}
15491impl AstNode for IsJsonObject {
15492    #[inline]
15493    fn can_cast(kind: SyntaxKind) -> bool {
15494        kind == SyntaxKind::IS_JSON_OBJECT
15495    }
15496    #[inline]
15497    fn cast(syntax: SyntaxNode) -> Option<Self> {
15498        if Self::can_cast(syntax.kind()) {
15499            Some(Self { syntax })
15500        } else {
15501            None
15502        }
15503    }
15504    #[inline]
15505    fn syntax(&self) -> &SyntaxNode {
15506        &self.syntax
15507    }
15508}
15509impl AstNode for IsJsonScalar {
15510    #[inline]
15511    fn can_cast(kind: SyntaxKind) -> bool {
15512        kind == SyntaxKind::IS_JSON_SCALAR
15513    }
15514    #[inline]
15515    fn cast(syntax: SyntaxNode) -> Option<Self> {
15516        if Self::can_cast(syntax.kind()) {
15517            Some(Self { syntax })
15518        } else {
15519            None
15520        }
15521    }
15522    #[inline]
15523    fn syntax(&self) -> &SyntaxNode {
15524        &self.syntax
15525    }
15526}
15527impl AstNode for IsJsonValue {
15528    #[inline]
15529    fn can_cast(kind: SyntaxKind) -> bool {
15530        kind == SyntaxKind::IS_JSON_VALUE
15531    }
15532    #[inline]
15533    fn cast(syntax: SyntaxNode) -> Option<Self> {
15534        if Self::can_cast(syntax.kind()) {
15535            Some(Self { syntax })
15536        } else {
15537            None
15538        }
15539    }
15540    #[inline]
15541    fn syntax(&self) -> &SyntaxNode {
15542        &self.syntax
15543    }
15544}
15545impl AstNode for IsNormalized {
15546    #[inline]
15547    fn can_cast(kind: SyntaxKind) -> bool {
15548        kind == SyntaxKind::IS_NORMALIZED
15549    }
15550    #[inline]
15551    fn cast(syntax: SyntaxNode) -> Option<Self> {
15552        if Self::can_cast(syntax.kind()) {
15553            Some(Self { syntax })
15554        } else {
15555            None
15556        }
15557    }
15558    #[inline]
15559    fn syntax(&self) -> &SyntaxNode {
15560        &self.syntax
15561    }
15562}
15563impl AstNode for IsNot {
15564    #[inline]
15565    fn can_cast(kind: SyntaxKind) -> bool {
15566        kind == SyntaxKind::IS_NOT
15567    }
15568    #[inline]
15569    fn cast(syntax: SyntaxNode) -> Option<Self> {
15570        if Self::can_cast(syntax.kind()) {
15571            Some(Self { syntax })
15572        } else {
15573            None
15574        }
15575    }
15576    #[inline]
15577    fn syntax(&self) -> &SyntaxNode {
15578        &self.syntax
15579    }
15580}
15581impl AstNode for IsNotDistinctFrom {
15582    #[inline]
15583    fn can_cast(kind: SyntaxKind) -> bool {
15584        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
15585    }
15586    #[inline]
15587    fn cast(syntax: SyntaxNode) -> Option<Self> {
15588        if Self::can_cast(syntax.kind()) {
15589            Some(Self { syntax })
15590        } else {
15591            None
15592        }
15593    }
15594    #[inline]
15595    fn syntax(&self) -> &SyntaxNode {
15596        &self.syntax
15597    }
15598}
15599impl AstNode for IsNotJson {
15600    #[inline]
15601    fn can_cast(kind: SyntaxKind) -> bool {
15602        kind == SyntaxKind::IS_NOT_JSON
15603    }
15604    #[inline]
15605    fn cast(syntax: SyntaxNode) -> Option<Self> {
15606        if Self::can_cast(syntax.kind()) {
15607            Some(Self { syntax })
15608        } else {
15609            None
15610        }
15611    }
15612    #[inline]
15613    fn syntax(&self) -> &SyntaxNode {
15614        &self.syntax
15615    }
15616}
15617impl AstNode for IsNotJsonArray {
15618    #[inline]
15619    fn can_cast(kind: SyntaxKind) -> bool {
15620        kind == SyntaxKind::IS_NOT_JSON_ARRAY
15621    }
15622    #[inline]
15623    fn cast(syntax: SyntaxNode) -> Option<Self> {
15624        if Self::can_cast(syntax.kind()) {
15625            Some(Self { syntax })
15626        } else {
15627            None
15628        }
15629    }
15630    #[inline]
15631    fn syntax(&self) -> &SyntaxNode {
15632        &self.syntax
15633    }
15634}
15635impl AstNode for IsNotJsonObject {
15636    #[inline]
15637    fn can_cast(kind: SyntaxKind) -> bool {
15638        kind == SyntaxKind::IS_NOT_JSON_OBJECT
15639    }
15640    #[inline]
15641    fn cast(syntax: SyntaxNode) -> Option<Self> {
15642        if Self::can_cast(syntax.kind()) {
15643            Some(Self { syntax })
15644        } else {
15645            None
15646        }
15647    }
15648    #[inline]
15649    fn syntax(&self) -> &SyntaxNode {
15650        &self.syntax
15651    }
15652}
15653impl AstNode for IsNotJsonScalar {
15654    #[inline]
15655    fn can_cast(kind: SyntaxKind) -> bool {
15656        kind == SyntaxKind::IS_NOT_JSON_SCALAR
15657    }
15658    #[inline]
15659    fn cast(syntax: SyntaxNode) -> Option<Self> {
15660        if Self::can_cast(syntax.kind()) {
15661            Some(Self { syntax })
15662        } else {
15663            None
15664        }
15665    }
15666    #[inline]
15667    fn syntax(&self) -> &SyntaxNode {
15668        &self.syntax
15669    }
15670}
15671impl AstNode for IsNotJsonValue {
15672    #[inline]
15673    fn can_cast(kind: SyntaxKind) -> bool {
15674        kind == SyntaxKind::IS_NOT_JSON_VALUE
15675    }
15676    #[inline]
15677    fn cast(syntax: SyntaxNode) -> Option<Self> {
15678        if Self::can_cast(syntax.kind()) {
15679            Some(Self { syntax })
15680        } else {
15681            None
15682        }
15683    }
15684    #[inline]
15685    fn syntax(&self) -> &SyntaxNode {
15686        &self.syntax
15687    }
15688}
15689impl AstNode for IsNotNormalized {
15690    #[inline]
15691    fn can_cast(kind: SyntaxKind) -> bool {
15692        kind == SyntaxKind::IS_NOT_NORMALIZED
15693    }
15694    #[inline]
15695    fn cast(syntax: SyntaxNode) -> Option<Self> {
15696        if Self::can_cast(syntax.kind()) {
15697            Some(Self { syntax })
15698        } else {
15699            None
15700        }
15701    }
15702    #[inline]
15703    fn syntax(&self) -> &SyntaxNode {
15704        &self.syntax
15705    }
15706}
15707impl AstNode for Join {
15708    #[inline]
15709    fn can_cast(kind: SyntaxKind) -> bool {
15710        kind == SyntaxKind::JOIN
15711    }
15712    #[inline]
15713    fn cast(syntax: SyntaxNode) -> Option<Self> {
15714        if Self::can_cast(syntax.kind()) {
15715            Some(Self { syntax })
15716        } else {
15717            None
15718        }
15719    }
15720    #[inline]
15721    fn syntax(&self) -> &SyntaxNode {
15722        &self.syntax
15723    }
15724}
15725impl AstNode for JoinCross {
15726    #[inline]
15727    fn can_cast(kind: SyntaxKind) -> bool {
15728        kind == SyntaxKind::JOIN_CROSS
15729    }
15730    #[inline]
15731    fn cast(syntax: SyntaxNode) -> Option<Self> {
15732        if Self::can_cast(syntax.kind()) {
15733            Some(Self { syntax })
15734        } else {
15735            None
15736        }
15737    }
15738    #[inline]
15739    fn syntax(&self) -> &SyntaxNode {
15740        &self.syntax
15741    }
15742}
15743impl AstNode for JoinExpr {
15744    #[inline]
15745    fn can_cast(kind: SyntaxKind) -> bool {
15746        kind == SyntaxKind::JOIN_EXPR
15747    }
15748    #[inline]
15749    fn cast(syntax: SyntaxNode) -> Option<Self> {
15750        if Self::can_cast(syntax.kind()) {
15751            Some(Self { syntax })
15752        } else {
15753            None
15754        }
15755    }
15756    #[inline]
15757    fn syntax(&self) -> &SyntaxNode {
15758        &self.syntax
15759    }
15760}
15761impl AstNode for JoinFull {
15762    #[inline]
15763    fn can_cast(kind: SyntaxKind) -> bool {
15764        kind == SyntaxKind::JOIN_FULL
15765    }
15766    #[inline]
15767    fn cast(syntax: SyntaxNode) -> Option<Self> {
15768        if Self::can_cast(syntax.kind()) {
15769            Some(Self { syntax })
15770        } else {
15771            None
15772        }
15773    }
15774    #[inline]
15775    fn syntax(&self) -> &SyntaxNode {
15776        &self.syntax
15777    }
15778}
15779impl AstNode for JoinInner {
15780    #[inline]
15781    fn can_cast(kind: SyntaxKind) -> bool {
15782        kind == SyntaxKind::JOIN_INNER
15783    }
15784    #[inline]
15785    fn cast(syntax: SyntaxNode) -> Option<Self> {
15786        if Self::can_cast(syntax.kind()) {
15787            Some(Self { syntax })
15788        } else {
15789            None
15790        }
15791    }
15792    #[inline]
15793    fn syntax(&self) -> &SyntaxNode {
15794        &self.syntax
15795    }
15796}
15797impl AstNode for JoinLeft {
15798    #[inline]
15799    fn can_cast(kind: SyntaxKind) -> bool {
15800        kind == SyntaxKind::JOIN_LEFT
15801    }
15802    #[inline]
15803    fn cast(syntax: SyntaxNode) -> Option<Self> {
15804        if Self::can_cast(syntax.kind()) {
15805            Some(Self { syntax })
15806        } else {
15807            None
15808        }
15809    }
15810    #[inline]
15811    fn syntax(&self) -> &SyntaxNode {
15812        &self.syntax
15813    }
15814}
15815impl AstNode for JoinRight {
15816    #[inline]
15817    fn can_cast(kind: SyntaxKind) -> bool {
15818        kind == SyntaxKind::JOIN_RIGHT
15819    }
15820    #[inline]
15821    fn cast(syntax: SyntaxNode) -> Option<Self> {
15822        if Self::can_cast(syntax.kind()) {
15823            Some(Self { syntax })
15824        } else {
15825            None
15826        }
15827    }
15828    #[inline]
15829    fn syntax(&self) -> &SyntaxNode {
15830        &self.syntax
15831    }
15832}
15833impl AstNode for JoinUsingClause {
15834    #[inline]
15835    fn can_cast(kind: SyntaxKind) -> bool {
15836        kind == SyntaxKind::JOIN_USING_CLAUSE
15837    }
15838    #[inline]
15839    fn cast(syntax: SyntaxNode) -> Option<Self> {
15840        if Self::can_cast(syntax.kind()) {
15841            Some(Self { syntax })
15842        } else {
15843            None
15844        }
15845    }
15846    #[inline]
15847    fn syntax(&self) -> &SyntaxNode {
15848        &self.syntax
15849    }
15850}
15851impl AstNode for JsonBehaviorDefault {
15852    #[inline]
15853    fn can_cast(kind: SyntaxKind) -> bool {
15854        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
15855    }
15856    #[inline]
15857    fn cast(syntax: SyntaxNode) -> Option<Self> {
15858        if Self::can_cast(syntax.kind()) {
15859            Some(Self { syntax })
15860        } else {
15861            None
15862        }
15863    }
15864    #[inline]
15865    fn syntax(&self) -> &SyntaxNode {
15866        &self.syntax
15867    }
15868}
15869impl AstNode for JsonBehaviorEmptyArray {
15870    #[inline]
15871    fn can_cast(kind: SyntaxKind) -> bool {
15872        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
15873    }
15874    #[inline]
15875    fn cast(syntax: SyntaxNode) -> Option<Self> {
15876        if Self::can_cast(syntax.kind()) {
15877            Some(Self { syntax })
15878        } else {
15879            None
15880        }
15881    }
15882    #[inline]
15883    fn syntax(&self) -> &SyntaxNode {
15884        &self.syntax
15885    }
15886}
15887impl AstNode for JsonBehaviorEmptyObject {
15888    #[inline]
15889    fn can_cast(kind: SyntaxKind) -> bool {
15890        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
15891    }
15892    #[inline]
15893    fn cast(syntax: SyntaxNode) -> Option<Self> {
15894        if Self::can_cast(syntax.kind()) {
15895            Some(Self { syntax })
15896        } else {
15897            None
15898        }
15899    }
15900    #[inline]
15901    fn syntax(&self) -> &SyntaxNode {
15902        &self.syntax
15903    }
15904}
15905impl AstNode for JsonBehaviorError {
15906    #[inline]
15907    fn can_cast(kind: SyntaxKind) -> bool {
15908        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
15909    }
15910    #[inline]
15911    fn cast(syntax: SyntaxNode) -> Option<Self> {
15912        if Self::can_cast(syntax.kind()) {
15913            Some(Self { syntax })
15914        } else {
15915            None
15916        }
15917    }
15918    #[inline]
15919    fn syntax(&self) -> &SyntaxNode {
15920        &self.syntax
15921    }
15922}
15923impl AstNode for JsonBehaviorFalse {
15924    #[inline]
15925    fn can_cast(kind: SyntaxKind) -> bool {
15926        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
15927    }
15928    #[inline]
15929    fn cast(syntax: SyntaxNode) -> Option<Self> {
15930        if Self::can_cast(syntax.kind()) {
15931            Some(Self { syntax })
15932        } else {
15933            None
15934        }
15935    }
15936    #[inline]
15937    fn syntax(&self) -> &SyntaxNode {
15938        &self.syntax
15939    }
15940}
15941impl AstNode for JsonBehaviorNull {
15942    #[inline]
15943    fn can_cast(kind: SyntaxKind) -> bool {
15944        kind == SyntaxKind::JSON_BEHAVIOR_NULL
15945    }
15946    #[inline]
15947    fn cast(syntax: SyntaxNode) -> Option<Self> {
15948        if Self::can_cast(syntax.kind()) {
15949            Some(Self { syntax })
15950        } else {
15951            None
15952        }
15953    }
15954    #[inline]
15955    fn syntax(&self) -> &SyntaxNode {
15956        &self.syntax
15957    }
15958}
15959impl AstNode for JsonBehaviorTrue {
15960    #[inline]
15961    fn can_cast(kind: SyntaxKind) -> bool {
15962        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
15963    }
15964    #[inline]
15965    fn cast(syntax: SyntaxNode) -> Option<Self> {
15966        if Self::can_cast(syntax.kind()) {
15967            Some(Self { syntax })
15968        } else {
15969            None
15970        }
15971    }
15972    #[inline]
15973    fn syntax(&self) -> &SyntaxNode {
15974        &self.syntax
15975    }
15976}
15977impl AstNode for JsonBehaviorUnknown {
15978    #[inline]
15979    fn can_cast(kind: SyntaxKind) -> bool {
15980        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
15981    }
15982    #[inline]
15983    fn cast(syntax: SyntaxNode) -> Option<Self> {
15984        if Self::can_cast(syntax.kind()) {
15985            Some(Self { syntax })
15986        } else {
15987            None
15988        }
15989    }
15990    #[inline]
15991    fn syntax(&self) -> &SyntaxNode {
15992        &self.syntax
15993    }
15994}
15995impl AstNode for JsonFormatClause {
15996    #[inline]
15997    fn can_cast(kind: SyntaxKind) -> bool {
15998        kind == SyntaxKind::JSON_FORMAT_CLAUSE
15999    }
16000    #[inline]
16001    fn cast(syntax: SyntaxNode) -> Option<Self> {
16002        if Self::can_cast(syntax.kind()) {
16003            Some(Self { syntax })
16004        } else {
16005            None
16006        }
16007    }
16008    #[inline]
16009    fn syntax(&self) -> &SyntaxNode {
16010        &self.syntax
16011    }
16012}
16013impl AstNode for JsonKeyValue {
16014    #[inline]
16015    fn can_cast(kind: SyntaxKind) -> bool {
16016        kind == SyntaxKind::JSON_KEY_VALUE
16017    }
16018    #[inline]
16019    fn cast(syntax: SyntaxNode) -> Option<Self> {
16020        if Self::can_cast(syntax.kind()) {
16021            Some(Self { syntax })
16022        } else {
16023            None
16024        }
16025    }
16026    #[inline]
16027    fn syntax(&self) -> &SyntaxNode {
16028        &self.syntax
16029    }
16030}
16031impl AstNode for JsonKeysUniqueClause {
16032    #[inline]
16033    fn can_cast(kind: SyntaxKind) -> bool {
16034        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
16035    }
16036    #[inline]
16037    fn cast(syntax: SyntaxNode) -> Option<Self> {
16038        if Self::can_cast(syntax.kind()) {
16039            Some(Self { syntax })
16040        } else {
16041            None
16042        }
16043    }
16044    #[inline]
16045    fn syntax(&self) -> &SyntaxNode {
16046        &self.syntax
16047    }
16048}
16049impl AstNode for JsonNullClause {
16050    #[inline]
16051    fn can_cast(kind: SyntaxKind) -> bool {
16052        kind == SyntaxKind::JSON_NULL_CLAUSE
16053    }
16054    #[inline]
16055    fn cast(syntax: SyntaxNode) -> Option<Self> {
16056        if Self::can_cast(syntax.kind()) {
16057            Some(Self { syntax })
16058        } else {
16059            None
16060        }
16061    }
16062    #[inline]
16063    fn syntax(&self) -> &SyntaxNode {
16064        &self.syntax
16065    }
16066}
16067impl AstNode for JsonOnEmptyClause {
16068    #[inline]
16069    fn can_cast(kind: SyntaxKind) -> bool {
16070        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
16071    }
16072    #[inline]
16073    fn cast(syntax: SyntaxNode) -> Option<Self> {
16074        if Self::can_cast(syntax.kind()) {
16075            Some(Self { syntax })
16076        } else {
16077            None
16078        }
16079    }
16080    #[inline]
16081    fn syntax(&self) -> &SyntaxNode {
16082        &self.syntax
16083    }
16084}
16085impl AstNode for JsonOnErrorClause {
16086    #[inline]
16087    fn can_cast(kind: SyntaxKind) -> bool {
16088        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
16089    }
16090    #[inline]
16091    fn cast(syntax: SyntaxNode) -> Option<Self> {
16092        if Self::can_cast(syntax.kind()) {
16093            Some(Self { syntax })
16094        } else {
16095            None
16096        }
16097    }
16098    #[inline]
16099    fn syntax(&self) -> &SyntaxNode {
16100        &self.syntax
16101    }
16102}
16103impl AstNode for JsonPassingArg {
16104    #[inline]
16105    fn can_cast(kind: SyntaxKind) -> bool {
16106        kind == SyntaxKind::JSON_PASSING_ARG
16107    }
16108    #[inline]
16109    fn cast(syntax: SyntaxNode) -> Option<Self> {
16110        if Self::can_cast(syntax.kind()) {
16111            Some(Self { syntax })
16112        } else {
16113            None
16114        }
16115    }
16116    #[inline]
16117    fn syntax(&self) -> &SyntaxNode {
16118        &self.syntax
16119    }
16120}
16121impl AstNode for JsonPassingClause {
16122    #[inline]
16123    fn can_cast(kind: SyntaxKind) -> bool {
16124        kind == SyntaxKind::JSON_PASSING_CLAUSE
16125    }
16126    #[inline]
16127    fn cast(syntax: SyntaxNode) -> Option<Self> {
16128        if Self::can_cast(syntax.kind()) {
16129            Some(Self { syntax })
16130        } else {
16131            None
16132        }
16133    }
16134    #[inline]
16135    fn syntax(&self) -> &SyntaxNode {
16136        &self.syntax
16137    }
16138}
16139impl AstNode for JsonQuotesClause {
16140    #[inline]
16141    fn can_cast(kind: SyntaxKind) -> bool {
16142        kind == SyntaxKind::JSON_QUOTES_CLAUSE
16143    }
16144    #[inline]
16145    fn cast(syntax: SyntaxNode) -> Option<Self> {
16146        if Self::can_cast(syntax.kind()) {
16147            Some(Self { syntax })
16148        } else {
16149            None
16150        }
16151    }
16152    #[inline]
16153    fn syntax(&self) -> &SyntaxNode {
16154        &self.syntax
16155    }
16156}
16157impl AstNode for JsonReturningClause {
16158    #[inline]
16159    fn can_cast(kind: SyntaxKind) -> bool {
16160        kind == SyntaxKind::JSON_RETURNING_CLAUSE
16161    }
16162    #[inline]
16163    fn cast(syntax: SyntaxNode) -> Option<Self> {
16164        if Self::can_cast(syntax.kind()) {
16165            Some(Self { syntax })
16166        } else {
16167            None
16168        }
16169    }
16170    #[inline]
16171    fn syntax(&self) -> &SyntaxNode {
16172        &self.syntax
16173    }
16174}
16175impl AstNode for JsonTableColumn {
16176    #[inline]
16177    fn can_cast(kind: SyntaxKind) -> bool {
16178        kind == SyntaxKind::JSON_TABLE_COLUMN
16179    }
16180    #[inline]
16181    fn cast(syntax: SyntaxNode) -> Option<Self> {
16182        if Self::can_cast(syntax.kind()) {
16183            Some(Self { syntax })
16184        } else {
16185            None
16186        }
16187    }
16188    #[inline]
16189    fn syntax(&self) -> &SyntaxNode {
16190        &self.syntax
16191    }
16192}
16193impl AstNode for JsonTableColumnList {
16194    #[inline]
16195    fn can_cast(kind: SyntaxKind) -> bool {
16196        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
16197    }
16198    #[inline]
16199    fn cast(syntax: SyntaxNode) -> Option<Self> {
16200        if Self::can_cast(syntax.kind()) {
16201            Some(Self { syntax })
16202        } else {
16203            None
16204        }
16205    }
16206    #[inline]
16207    fn syntax(&self) -> &SyntaxNode {
16208        &self.syntax
16209    }
16210}
16211impl AstNode for JsonValueExpr {
16212    #[inline]
16213    fn can_cast(kind: SyntaxKind) -> bool {
16214        kind == SyntaxKind::JSON_VALUE_EXPR
16215    }
16216    #[inline]
16217    fn cast(syntax: SyntaxNode) -> Option<Self> {
16218        if Self::can_cast(syntax.kind()) {
16219            Some(Self { syntax })
16220        } else {
16221            None
16222        }
16223    }
16224    #[inline]
16225    fn syntax(&self) -> &SyntaxNode {
16226        &self.syntax
16227    }
16228}
16229impl AstNode for JsonWrapperBehaviorClause {
16230    #[inline]
16231    fn can_cast(kind: SyntaxKind) -> bool {
16232        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
16233    }
16234    #[inline]
16235    fn cast(syntax: SyntaxNode) -> Option<Self> {
16236        if Self::can_cast(syntax.kind()) {
16237            Some(Self { syntax })
16238        } else {
16239            None
16240        }
16241    }
16242    #[inline]
16243    fn syntax(&self) -> &SyntaxNode {
16244        &self.syntax
16245    }
16246}
16247impl AstNode for LanguageFuncOption {
16248    #[inline]
16249    fn can_cast(kind: SyntaxKind) -> bool {
16250        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
16251    }
16252    #[inline]
16253    fn cast(syntax: SyntaxNode) -> Option<Self> {
16254        if Self::can_cast(syntax.kind()) {
16255            Some(Self { syntax })
16256        } else {
16257            None
16258        }
16259    }
16260    #[inline]
16261    fn syntax(&self) -> &SyntaxNode {
16262        &self.syntax
16263    }
16264}
16265impl AstNode for LeakproofFuncOption {
16266    #[inline]
16267    fn can_cast(kind: SyntaxKind) -> bool {
16268        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
16269    }
16270    #[inline]
16271    fn cast(syntax: SyntaxNode) -> Option<Self> {
16272        if Self::can_cast(syntax.kind()) {
16273            Some(Self { syntax })
16274        } else {
16275            None
16276        }
16277    }
16278    #[inline]
16279    fn syntax(&self) -> &SyntaxNode {
16280        &self.syntax
16281    }
16282}
16283impl AstNode for LikeClause {
16284    #[inline]
16285    fn can_cast(kind: SyntaxKind) -> bool {
16286        kind == SyntaxKind::LIKE_CLAUSE
16287    }
16288    #[inline]
16289    fn cast(syntax: SyntaxNode) -> Option<Self> {
16290        if Self::can_cast(syntax.kind()) {
16291            Some(Self { syntax })
16292        } else {
16293            None
16294        }
16295    }
16296    #[inline]
16297    fn syntax(&self) -> &SyntaxNode {
16298        &self.syntax
16299    }
16300}
16301impl AstNode for LikeOption {
16302    #[inline]
16303    fn can_cast(kind: SyntaxKind) -> bool {
16304        kind == SyntaxKind::LIKE_OPTION
16305    }
16306    #[inline]
16307    fn cast(syntax: SyntaxNode) -> Option<Self> {
16308        if Self::can_cast(syntax.kind()) {
16309            Some(Self { syntax })
16310        } else {
16311            None
16312        }
16313    }
16314    #[inline]
16315    fn syntax(&self) -> &SyntaxNode {
16316        &self.syntax
16317    }
16318}
16319impl AstNode for LimitClause {
16320    #[inline]
16321    fn can_cast(kind: SyntaxKind) -> bool {
16322        kind == SyntaxKind::LIMIT_CLAUSE
16323    }
16324    #[inline]
16325    fn cast(syntax: SyntaxNode) -> Option<Self> {
16326        if Self::can_cast(syntax.kind()) {
16327            Some(Self { syntax })
16328        } else {
16329            None
16330        }
16331    }
16332    #[inline]
16333    fn syntax(&self) -> &SyntaxNode {
16334        &self.syntax
16335    }
16336}
16337impl AstNode for Listen {
16338    #[inline]
16339    fn can_cast(kind: SyntaxKind) -> bool {
16340        kind == SyntaxKind::LISTEN
16341    }
16342    #[inline]
16343    fn cast(syntax: SyntaxNode) -> Option<Self> {
16344        if Self::can_cast(syntax.kind()) {
16345            Some(Self { syntax })
16346        } else {
16347            None
16348        }
16349    }
16350    #[inline]
16351    fn syntax(&self) -> &SyntaxNode {
16352        &self.syntax
16353    }
16354}
16355impl AstNode for Literal {
16356    #[inline]
16357    fn can_cast(kind: SyntaxKind) -> bool {
16358        kind == SyntaxKind::LITERAL
16359    }
16360    #[inline]
16361    fn cast(syntax: SyntaxNode) -> Option<Self> {
16362        if Self::can_cast(syntax.kind()) {
16363            Some(Self { syntax })
16364        } else {
16365            None
16366        }
16367    }
16368    #[inline]
16369    fn syntax(&self) -> &SyntaxNode {
16370        &self.syntax
16371    }
16372}
16373impl AstNode for Load {
16374    #[inline]
16375    fn can_cast(kind: SyntaxKind) -> bool {
16376        kind == SyntaxKind::LOAD
16377    }
16378    #[inline]
16379    fn cast(syntax: SyntaxNode) -> Option<Self> {
16380        if Self::can_cast(syntax.kind()) {
16381            Some(Self { syntax })
16382        } else {
16383            None
16384        }
16385    }
16386    #[inline]
16387    fn syntax(&self) -> &SyntaxNode {
16388        &self.syntax
16389    }
16390}
16391impl AstNode for Lock {
16392    #[inline]
16393    fn can_cast(kind: SyntaxKind) -> bool {
16394        kind == SyntaxKind::LOCK
16395    }
16396    #[inline]
16397    fn cast(syntax: SyntaxNode) -> Option<Self> {
16398        if Self::can_cast(syntax.kind()) {
16399            Some(Self { syntax })
16400        } else {
16401            None
16402        }
16403    }
16404    #[inline]
16405    fn syntax(&self) -> &SyntaxNode {
16406        &self.syntax
16407    }
16408}
16409impl AstNode for LockingClause {
16410    #[inline]
16411    fn can_cast(kind: SyntaxKind) -> bool {
16412        kind == SyntaxKind::LOCKING_CLAUSE
16413    }
16414    #[inline]
16415    fn cast(syntax: SyntaxNode) -> Option<Self> {
16416        if Self::can_cast(syntax.kind()) {
16417            Some(Self { syntax })
16418        } else {
16419            None
16420        }
16421    }
16422    #[inline]
16423    fn syntax(&self) -> &SyntaxNode {
16424        &self.syntax
16425    }
16426}
16427impl AstNode for Lteq {
16428    #[inline]
16429    fn can_cast(kind: SyntaxKind) -> bool {
16430        kind == SyntaxKind::LTEQ
16431    }
16432    #[inline]
16433    fn cast(syntax: SyntaxNode) -> Option<Self> {
16434        if Self::can_cast(syntax.kind()) {
16435            Some(Self { syntax })
16436        } else {
16437            None
16438        }
16439    }
16440    #[inline]
16441    fn syntax(&self) -> &SyntaxNode {
16442        &self.syntax
16443    }
16444}
16445impl AstNode for MatchFull {
16446    #[inline]
16447    fn can_cast(kind: SyntaxKind) -> bool {
16448        kind == SyntaxKind::MATCH_FULL
16449    }
16450    #[inline]
16451    fn cast(syntax: SyntaxNode) -> Option<Self> {
16452        if Self::can_cast(syntax.kind()) {
16453            Some(Self { syntax })
16454        } else {
16455            None
16456        }
16457    }
16458    #[inline]
16459    fn syntax(&self) -> &SyntaxNode {
16460        &self.syntax
16461    }
16462}
16463impl AstNode for MatchPartial {
16464    #[inline]
16465    fn can_cast(kind: SyntaxKind) -> bool {
16466        kind == SyntaxKind::MATCH_PARTIAL
16467    }
16468    #[inline]
16469    fn cast(syntax: SyntaxNode) -> Option<Self> {
16470        if Self::can_cast(syntax.kind()) {
16471            Some(Self { syntax })
16472        } else {
16473            None
16474        }
16475    }
16476    #[inline]
16477    fn syntax(&self) -> &SyntaxNode {
16478        &self.syntax
16479    }
16480}
16481impl AstNode for MatchSimple {
16482    #[inline]
16483    fn can_cast(kind: SyntaxKind) -> bool {
16484        kind == SyntaxKind::MATCH_SIMPLE
16485    }
16486    #[inline]
16487    fn cast(syntax: SyntaxNode) -> Option<Self> {
16488        if Self::can_cast(syntax.kind()) {
16489            Some(Self { syntax })
16490        } else {
16491            None
16492        }
16493    }
16494    #[inline]
16495    fn syntax(&self) -> &SyntaxNode {
16496        &self.syntax
16497    }
16498}
16499impl AstNode for Materialized {
16500    #[inline]
16501    fn can_cast(kind: SyntaxKind) -> bool {
16502        kind == SyntaxKind::MATERIALIZED
16503    }
16504    #[inline]
16505    fn cast(syntax: SyntaxNode) -> Option<Self> {
16506        if Self::can_cast(syntax.kind()) {
16507            Some(Self { syntax })
16508        } else {
16509            None
16510        }
16511    }
16512    #[inline]
16513    fn syntax(&self) -> &SyntaxNode {
16514        &self.syntax
16515    }
16516}
16517impl AstNode for Merge {
16518    #[inline]
16519    fn can_cast(kind: SyntaxKind) -> bool {
16520        kind == SyntaxKind::MERGE
16521    }
16522    #[inline]
16523    fn cast(syntax: SyntaxNode) -> Option<Self> {
16524        if Self::can_cast(syntax.kind()) {
16525            Some(Self { syntax })
16526        } else {
16527            None
16528        }
16529    }
16530    #[inline]
16531    fn syntax(&self) -> &SyntaxNode {
16532        &self.syntax
16533    }
16534}
16535impl AstNode for MergeDelete {
16536    #[inline]
16537    fn can_cast(kind: SyntaxKind) -> bool {
16538        kind == SyntaxKind::MERGE_DELETE
16539    }
16540    #[inline]
16541    fn cast(syntax: SyntaxNode) -> Option<Self> {
16542        if Self::can_cast(syntax.kind()) {
16543            Some(Self { syntax })
16544        } else {
16545            None
16546        }
16547    }
16548    #[inline]
16549    fn syntax(&self) -> &SyntaxNode {
16550        &self.syntax
16551    }
16552}
16553impl AstNode for MergeDoNothing {
16554    #[inline]
16555    fn can_cast(kind: SyntaxKind) -> bool {
16556        kind == SyntaxKind::MERGE_DO_NOTHING
16557    }
16558    #[inline]
16559    fn cast(syntax: SyntaxNode) -> Option<Self> {
16560        if Self::can_cast(syntax.kind()) {
16561            Some(Self { syntax })
16562        } else {
16563            None
16564        }
16565    }
16566    #[inline]
16567    fn syntax(&self) -> &SyntaxNode {
16568        &self.syntax
16569    }
16570}
16571impl AstNode for MergeInsert {
16572    #[inline]
16573    fn can_cast(kind: SyntaxKind) -> bool {
16574        kind == SyntaxKind::MERGE_INSERT
16575    }
16576    #[inline]
16577    fn cast(syntax: SyntaxNode) -> Option<Self> {
16578        if Self::can_cast(syntax.kind()) {
16579            Some(Self { syntax })
16580        } else {
16581            None
16582        }
16583    }
16584    #[inline]
16585    fn syntax(&self) -> &SyntaxNode {
16586        &self.syntax
16587    }
16588}
16589impl AstNode for MergeUpdate {
16590    #[inline]
16591    fn can_cast(kind: SyntaxKind) -> bool {
16592        kind == SyntaxKind::MERGE_UPDATE
16593    }
16594    #[inline]
16595    fn cast(syntax: SyntaxNode) -> Option<Self> {
16596        if Self::can_cast(syntax.kind()) {
16597            Some(Self { syntax })
16598        } else {
16599            None
16600        }
16601    }
16602    #[inline]
16603    fn syntax(&self) -> &SyntaxNode {
16604        &self.syntax
16605    }
16606}
16607impl AstNode for MergeWhenMatched {
16608    #[inline]
16609    fn can_cast(kind: SyntaxKind) -> bool {
16610        kind == SyntaxKind::MERGE_WHEN_MATCHED
16611    }
16612    #[inline]
16613    fn cast(syntax: SyntaxNode) -> Option<Self> {
16614        if Self::can_cast(syntax.kind()) {
16615            Some(Self { syntax })
16616        } else {
16617            None
16618        }
16619    }
16620    #[inline]
16621    fn syntax(&self) -> &SyntaxNode {
16622        &self.syntax
16623    }
16624}
16625impl AstNode for MergeWhenNotMatchedSource {
16626    #[inline]
16627    fn can_cast(kind: SyntaxKind) -> bool {
16628        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
16629    }
16630    #[inline]
16631    fn cast(syntax: SyntaxNode) -> Option<Self> {
16632        if Self::can_cast(syntax.kind()) {
16633            Some(Self { syntax })
16634        } else {
16635            None
16636        }
16637    }
16638    #[inline]
16639    fn syntax(&self) -> &SyntaxNode {
16640        &self.syntax
16641    }
16642}
16643impl AstNode for MergeWhenNotMatchedTarget {
16644    #[inline]
16645    fn can_cast(kind: SyntaxKind) -> bool {
16646        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
16647    }
16648    #[inline]
16649    fn cast(syntax: SyntaxNode) -> Option<Self> {
16650        if Self::can_cast(syntax.kind()) {
16651            Some(Self { syntax })
16652        } else {
16653            None
16654        }
16655    }
16656    #[inline]
16657    fn syntax(&self) -> &SyntaxNode {
16658        &self.syntax
16659    }
16660}
16661impl AstNode for Move {
16662    #[inline]
16663    fn can_cast(kind: SyntaxKind) -> bool {
16664        kind == SyntaxKind::MOVE
16665    }
16666    #[inline]
16667    fn cast(syntax: SyntaxNode) -> Option<Self> {
16668        if Self::can_cast(syntax.kind()) {
16669            Some(Self { syntax })
16670        } else {
16671            None
16672        }
16673    }
16674    #[inline]
16675    fn syntax(&self) -> &SyntaxNode {
16676        &self.syntax
16677    }
16678}
16679impl AstNode for Name {
16680    #[inline]
16681    fn can_cast(kind: SyntaxKind) -> bool {
16682        kind == SyntaxKind::NAME
16683    }
16684    #[inline]
16685    fn cast(syntax: SyntaxNode) -> Option<Self> {
16686        if Self::can_cast(syntax.kind()) {
16687            Some(Self { syntax })
16688        } else {
16689            None
16690        }
16691    }
16692    #[inline]
16693    fn syntax(&self) -> &SyntaxNode {
16694        &self.syntax
16695    }
16696}
16697impl AstNode for NameRef {
16698    #[inline]
16699    fn can_cast(kind: SyntaxKind) -> bool {
16700        kind == SyntaxKind::NAME_REF
16701    }
16702    #[inline]
16703    fn cast(syntax: SyntaxNode) -> Option<Self> {
16704        if Self::can_cast(syntax.kind()) {
16705            Some(Self { syntax })
16706        } else {
16707            None
16708        }
16709    }
16710    #[inline]
16711    fn syntax(&self) -> &SyntaxNode {
16712        &self.syntax
16713    }
16714}
16715impl AstNode for NamedArg {
16716    #[inline]
16717    fn can_cast(kind: SyntaxKind) -> bool {
16718        kind == SyntaxKind::NAMED_ARG
16719    }
16720    #[inline]
16721    fn cast(syntax: SyntaxNode) -> Option<Self> {
16722        if Self::can_cast(syntax.kind()) {
16723            Some(Self { syntax })
16724        } else {
16725            None
16726        }
16727    }
16728    #[inline]
16729    fn syntax(&self) -> &SyntaxNode {
16730        &self.syntax
16731    }
16732}
16733impl AstNode for Neq {
16734    #[inline]
16735    fn can_cast(kind: SyntaxKind) -> bool {
16736        kind == SyntaxKind::NEQ
16737    }
16738    #[inline]
16739    fn cast(syntax: SyntaxNode) -> Option<Self> {
16740        if Self::can_cast(syntax.kind()) {
16741            Some(Self { syntax })
16742        } else {
16743            None
16744        }
16745    }
16746    #[inline]
16747    fn syntax(&self) -> &SyntaxNode {
16748        &self.syntax
16749    }
16750}
16751impl AstNode for Neqb {
16752    #[inline]
16753    fn can_cast(kind: SyntaxKind) -> bool {
16754        kind == SyntaxKind::NEQB
16755    }
16756    #[inline]
16757    fn cast(syntax: SyntaxNode) -> Option<Self> {
16758        if Self::can_cast(syntax.kind()) {
16759            Some(Self { syntax })
16760        } else {
16761            None
16762        }
16763    }
16764    #[inline]
16765    fn syntax(&self) -> &SyntaxNode {
16766        &self.syntax
16767    }
16768}
16769impl AstNode for NoAction {
16770    #[inline]
16771    fn can_cast(kind: SyntaxKind) -> bool {
16772        kind == SyntaxKind::NO_ACTION
16773    }
16774    #[inline]
16775    fn cast(syntax: SyntaxNode) -> Option<Self> {
16776        if Self::can_cast(syntax.kind()) {
16777            Some(Self { syntax })
16778        } else {
16779            None
16780        }
16781    }
16782    #[inline]
16783    fn syntax(&self) -> &SyntaxNode {
16784        &self.syntax
16785    }
16786}
16787impl AstNode for NoForceRls {
16788    #[inline]
16789    fn can_cast(kind: SyntaxKind) -> bool {
16790        kind == SyntaxKind::NO_FORCE_RLS
16791    }
16792    #[inline]
16793    fn cast(syntax: SyntaxNode) -> Option<Self> {
16794        if Self::can_cast(syntax.kind()) {
16795            Some(Self { syntax })
16796        } else {
16797            None
16798        }
16799    }
16800    #[inline]
16801    fn syntax(&self) -> &SyntaxNode {
16802        &self.syntax
16803    }
16804}
16805impl AstNode for NoInherit {
16806    #[inline]
16807    fn can_cast(kind: SyntaxKind) -> bool {
16808        kind == SyntaxKind::NO_INHERIT
16809    }
16810    #[inline]
16811    fn cast(syntax: SyntaxNode) -> Option<Self> {
16812        if Self::can_cast(syntax.kind()) {
16813            Some(Self { syntax })
16814        } else {
16815            None
16816        }
16817    }
16818    #[inline]
16819    fn syntax(&self) -> &SyntaxNode {
16820        &self.syntax
16821    }
16822}
16823impl AstNode for NonStandardParam {
16824    #[inline]
16825    fn can_cast(kind: SyntaxKind) -> bool {
16826        kind == SyntaxKind::NON_STANDARD_PARAM
16827    }
16828    #[inline]
16829    fn cast(syntax: SyntaxNode) -> Option<Self> {
16830        if Self::can_cast(syntax.kind()) {
16831            Some(Self { syntax })
16832        } else {
16833            None
16834        }
16835    }
16836    #[inline]
16837    fn syntax(&self) -> &SyntaxNode {
16838        &self.syntax
16839    }
16840}
16841impl AstNode for NotDeferrable {
16842    #[inline]
16843    fn can_cast(kind: SyntaxKind) -> bool {
16844        kind == SyntaxKind::NOT_DEFERRABLE
16845    }
16846    #[inline]
16847    fn cast(syntax: SyntaxNode) -> Option<Self> {
16848        if Self::can_cast(syntax.kind()) {
16849            Some(Self { syntax })
16850        } else {
16851            None
16852        }
16853    }
16854    #[inline]
16855    fn syntax(&self) -> &SyntaxNode {
16856        &self.syntax
16857    }
16858}
16859impl AstNode for NotDeferrableConstraintOption {
16860    #[inline]
16861    fn can_cast(kind: SyntaxKind) -> bool {
16862        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
16863    }
16864    #[inline]
16865    fn cast(syntax: SyntaxNode) -> Option<Self> {
16866        if Self::can_cast(syntax.kind()) {
16867            Some(Self { syntax })
16868        } else {
16869            None
16870        }
16871    }
16872    #[inline]
16873    fn syntax(&self) -> &SyntaxNode {
16874        &self.syntax
16875    }
16876}
16877impl AstNode for NotEnforced {
16878    #[inline]
16879    fn can_cast(kind: SyntaxKind) -> bool {
16880        kind == SyntaxKind::NOT_ENFORCED
16881    }
16882    #[inline]
16883    fn cast(syntax: SyntaxNode) -> Option<Self> {
16884        if Self::can_cast(syntax.kind()) {
16885            Some(Self { syntax })
16886        } else {
16887            None
16888        }
16889    }
16890    #[inline]
16891    fn syntax(&self) -> &SyntaxNode {
16892        &self.syntax
16893    }
16894}
16895impl AstNode for NotIlike {
16896    #[inline]
16897    fn can_cast(kind: SyntaxKind) -> bool {
16898        kind == SyntaxKind::NOT_ILIKE
16899    }
16900    #[inline]
16901    fn cast(syntax: SyntaxNode) -> Option<Self> {
16902        if Self::can_cast(syntax.kind()) {
16903            Some(Self { syntax })
16904        } else {
16905            None
16906        }
16907    }
16908    #[inline]
16909    fn syntax(&self) -> &SyntaxNode {
16910        &self.syntax
16911    }
16912}
16913impl AstNode for NotIn {
16914    #[inline]
16915    fn can_cast(kind: SyntaxKind) -> bool {
16916        kind == SyntaxKind::NOT_IN
16917    }
16918    #[inline]
16919    fn cast(syntax: SyntaxNode) -> Option<Self> {
16920        if Self::can_cast(syntax.kind()) {
16921            Some(Self { syntax })
16922        } else {
16923            None
16924        }
16925    }
16926    #[inline]
16927    fn syntax(&self) -> &SyntaxNode {
16928        &self.syntax
16929    }
16930}
16931impl AstNode for NotLike {
16932    #[inline]
16933    fn can_cast(kind: SyntaxKind) -> bool {
16934        kind == SyntaxKind::NOT_LIKE
16935    }
16936    #[inline]
16937    fn cast(syntax: SyntaxNode) -> Option<Self> {
16938        if Self::can_cast(syntax.kind()) {
16939            Some(Self { syntax })
16940        } else {
16941            None
16942        }
16943    }
16944    #[inline]
16945    fn syntax(&self) -> &SyntaxNode {
16946        &self.syntax
16947    }
16948}
16949impl AstNode for NotMaterialized {
16950    #[inline]
16951    fn can_cast(kind: SyntaxKind) -> bool {
16952        kind == SyntaxKind::NOT_MATERIALIZED
16953    }
16954    #[inline]
16955    fn cast(syntax: SyntaxNode) -> Option<Self> {
16956        if Self::can_cast(syntax.kind()) {
16957            Some(Self { syntax })
16958        } else {
16959            None
16960        }
16961    }
16962    #[inline]
16963    fn syntax(&self) -> &SyntaxNode {
16964        &self.syntax
16965    }
16966}
16967impl AstNode for NotNullConstraint {
16968    #[inline]
16969    fn can_cast(kind: SyntaxKind) -> bool {
16970        kind == SyntaxKind::NOT_NULL_CONSTRAINT
16971    }
16972    #[inline]
16973    fn cast(syntax: SyntaxNode) -> Option<Self> {
16974        if Self::can_cast(syntax.kind()) {
16975            Some(Self { syntax })
16976        } else {
16977            None
16978        }
16979    }
16980    #[inline]
16981    fn syntax(&self) -> &SyntaxNode {
16982        &self.syntax
16983    }
16984}
16985impl AstNode for NotOf {
16986    #[inline]
16987    fn can_cast(kind: SyntaxKind) -> bool {
16988        kind == SyntaxKind::NOT_OF
16989    }
16990    #[inline]
16991    fn cast(syntax: SyntaxNode) -> Option<Self> {
16992        if Self::can_cast(syntax.kind()) {
16993            Some(Self { syntax })
16994        } else {
16995            None
16996        }
16997    }
16998    #[inline]
16999    fn syntax(&self) -> &SyntaxNode {
17000        &self.syntax
17001    }
17002}
17003impl AstNode for NotSimilarTo {
17004    #[inline]
17005    fn can_cast(kind: SyntaxKind) -> bool {
17006        kind == SyntaxKind::NOT_SIMILAR_TO
17007    }
17008    #[inline]
17009    fn cast(syntax: SyntaxNode) -> Option<Self> {
17010        if Self::can_cast(syntax.kind()) {
17011            Some(Self { syntax })
17012        } else {
17013            None
17014        }
17015    }
17016    #[inline]
17017    fn syntax(&self) -> &SyntaxNode {
17018        &self.syntax
17019    }
17020}
17021impl AstNode for NotValid {
17022    #[inline]
17023    fn can_cast(kind: SyntaxKind) -> bool {
17024        kind == SyntaxKind::NOT_VALID
17025    }
17026    #[inline]
17027    fn cast(syntax: SyntaxNode) -> Option<Self> {
17028        if Self::can_cast(syntax.kind()) {
17029            Some(Self { syntax })
17030        } else {
17031            None
17032        }
17033    }
17034    #[inline]
17035    fn syntax(&self) -> &SyntaxNode {
17036        &self.syntax
17037    }
17038}
17039impl AstNode for Notify {
17040    #[inline]
17041    fn can_cast(kind: SyntaxKind) -> bool {
17042        kind == SyntaxKind::NOTIFY
17043    }
17044    #[inline]
17045    fn cast(syntax: SyntaxNode) -> Option<Self> {
17046        if Self::can_cast(syntax.kind()) {
17047            Some(Self { syntax })
17048        } else {
17049            None
17050        }
17051    }
17052    #[inline]
17053    fn syntax(&self) -> &SyntaxNode {
17054        &self.syntax
17055    }
17056}
17057impl AstNode for NullConstraint {
17058    #[inline]
17059    fn can_cast(kind: SyntaxKind) -> bool {
17060        kind == SyntaxKind::NULL_CONSTRAINT
17061    }
17062    #[inline]
17063    fn cast(syntax: SyntaxNode) -> Option<Self> {
17064        if Self::can_cast(syntax.kind()) {
17065            Some(Self { syntax })
17066        } else {
17067            None
17068        }
17069    }
17070    #[inline]
17071    fn syntax(&self) -> &SyntaxNode {
17072        &self.syntax
17073    }
17074}
17075impl AstNode for NullsDistinct {
17076    #[inline]
17077    fn can_cast(kind: SyntaxKind) -> bool {
17078        kind == SyntaxKind::NULLS_DISTINCT
17079    }
17080    #[inline]
17081    fn cast(syntax: SyntaxNode) -> Option<Self> {
17082        if Self::can_cast(syntax.kind()) {
17083            Some(Self { syntax })
17084        } else {
17085            None
17086        }
17087    }
17088    #[inline]
17089    fn syntax(&self) -> &SyntaxNode {
17090        &self.syntax
17091    }
17092}
17093impl AstNode for NullsFirst {
17094    #[inline]
17095    fn can_cast(kind: SyntaxKind) -> bool {
17096        kind == SyntaxKind::NULLS_FIRST
17097    }
17098    #[inline]
17099    fn cast(syntax: SyntaxNode) -> Option<Self> {
17100        if Self::can_cast(syntax.kind()) {
17101            Some(Self { syntax })
17102        } else {
17103            None
17104        }
17105    }
17106    #[inline]
17107    fn syntax(&self) -> &SyntaxNode {
17108        &self.syntax
17109    }
17110}
17111impl AstNode for NullsLast {
17112    #[inline]
17113    fn can_cast(kind: SyntaxKind) -> bool {
17114        kind == SyntaxKind::NULLS_LAST
17115    }
17116    #[inline]
17117    fn cast(syntax: SyntaxNode) -> Option<Self> {
17118        if Self::can_cast(syntax.kind()) {
17119            Some(Self { syntax })
17120        } else {
17121            None
17122        }
17123    }
17124    #[inline]
17125    fn syntax(&self) -> &SyntaxNode {
17126        &self.syntax
17127    }
17128}
17129impl AstNode for NullsNotDistinct {
17130    #[inline]
17131    fn can_cast(kind: SyntaxKind) -> bool {
17132        kind == SyntaxKind::NULLS_NOT_DISTINCT
17133    }
17134    #[inline]
17135    fn cast(syntax: SyntaxNode) -> Option<Self> {
17136        if Self::can_cast(syntax.kind()) {
17137            Some(Self { syntax })
17138        } else {
17139            None
17140        }
17141    }
17142    #[inline]
17143    fn syntax(&self) -> &SyntaxNode {
17144        &self.syntax
17145    }
17146}
17147impl AstNode for OfType {
17148    #[inline]
17149    fn can_cast(kind: SyntaxKind) -> bool {
17150        kind == SyntaxKind::OF_TYPE
17151    }
17152    #[inline]
17153    fn cast(syntax: SyntaxNode) -> Option<Self> {
17154        if Self::can_cast(syntax.kind()) {
17155            Some(Self { syntax })
17156        } else {
17157            None
17158        }
17159    }
17160    #[inline]
17161    fn syntax(&self) -> &SyntaxNode {
17162        &self.syntax
17163    }
17164}
17165impl AstNode for OffsetClause {
17166    #[inline]
17167    fn can_cast(kind: SyntaxKind) -> bool {
17168        kind == SyntaxKind::OFFSET_CLAUSE
17169    }
17170    #[inline]
17171    fn cast(syntax: SyntaxNode) -> Option<Self> {
17172        if Self::can_cast(syntax.kind()) {
17173            Some(Self { syntax })
17174        } else {
17175            None
17176        }
17177    }
17178    #[inline]
17179    fn syntax(&self) -> &SyntaxNode {
17180        &self.syntax
17181    }
17182}
17183impl AstNode for OnClause {
17184    #[inline]
17185    fn can_cast(kind: SyntaxKind) -> bool {
17186        kind == SyntaxKind::ON_CLAUSE
17187    }
17188    #[inline]
17189    fn cast(syntax: SyntaxNode) -> Option<Self> {
17190        if Self::can_cast(syntax.kind()) {
17191            Some(Self { syntax })
17192        } else {
17193            None
17194        }
17195    }
17196    #[inline]
17197    fn syntax(&self) -> &SyntaxNode {
17198        &self.syntax
17199    }
17200}
17201impl AstNode for OnCommit {
17202    #[inline]
17203    fn can_cast(kind: SyntaxKind) -> bool {
17204        kind == SyntaxKind::ON_COMMIT
17205    }
17206    #[inline]
17207    fn cast(syntax: SyntaxNode) -> Option<Self> {
17208        if Self::can_cast(syntax.kind()) {
17209            Some(Self { syntax })
17210        } else {
17211            None
17212        }
17213    }
17214    #[inline]
17215    fn syntax(&self) -> &SyntaxNode {
17216        &self.syntax
17217    }
17218}
17219impl AstNode for OnDeleteAction {
17220    #[inline]
17221    fn can_cast(kind: SyntaxKind) -> bool {
17222        kind == SyntaxKind::ON_DELETE_ACTION
17223    }
17224    #[inline]
17225    fn cast(syntax: SyntaxNode) -> Option<Self> {
17226        if Self::can_cast(syntax.kind()) {
17227            Some(Self { syntax })
17228        } else {
17229            None
17230        }
17231    }
17232    #[inline]
17233    fn syntax(&self) -> &SyntaxNode {
17234        &self.syntax
17235    }
17236}
17237impl AstNode for OnUpdateAction {
17238    #[inline]
17239    fn can_cast(kind: SyntaxKind) -> bool {
17240        kind == SyntaxKind::ON_UPDATE_ACTION
17241    }
17242    #[inline]
17243    fn cast(syntax: SyntaxNode) -> Option<Self> {
17244        if Self::can_cast(syntax.kind()) {
17245            Some(Self { syntax })
17246        } else {
17247            None
17248        }
17249    }
17250    #[inline]
17251    fn syntax(&self) -> &SyntaxNode {
17252        &self.syntax
17253    }
17254}
17255impl AstNode for Op {
17256    #[inline]
17257    fn can_cast(kind: SyntaxKind) -> bool {
17258        kind == SyntaxKind::OP
17259    }
17260    #[inline]
17261    fn cast(syntax: SyntaxNode) -> Option<Self> {
17262        if Self::can_cast(syntax.kind()) {
17263            Some(Self { syntax })
17264        } else {
17265            None
17266        }
17267    }
17268    #[inline]
17269    fn syntax(&self) -> &SyntaxNode {
17270        &self.syntax
17271    }
17272}
17273impl AstNode for OperatorCall {
17274    #[inline]
17275    fn can_cast(kind: SyntaxKind) -> bool {
17276        kind == SyntaxKind::OPERATOR_CALL
17277    }
17278    #[inline]
17279    fn cast(syntax: SyntaxNode) -> Option<Self> {
17280        if Self::can_cast(syntax.kind()) {
17281            Some(Self { syntax })
17282        } else {
17283            None
17284        }
17285    }
17286    #[inline]
17287    fn syntax(&self) -> &SyntaxNode {
17288        &self.syntax
17289    }
17290}
17291impl AstNode for OptionsList {
17292    #[inline]
17293    fn can_cast(kind: SyntaxKind) -> bool {
17294        kind == SyntaxKind::OPTIONS_LIST
17295    }
17296    #[inline]
17297    fn cast(syntax: SyntaxNode) -> Option<Self> {
17298        if Self::can_cast(syntax.kind()) {
17299            Some(Self { syntax })
17300        } else {
17301            None
17302        }
17303    }
17304    #[inline]
17305    fn syntax(&self) -> &SyntaxNode {
17306        &self.syntax
17307    }
17308}
17309impl AstNode for OrReplace {
17310    #[inline]
17311    fn can_cast(kind: SyntaxKind) -> bool {
17312        kind == SyntaxKind::OR_REPLACE
17313    }
17314    #[inline]
17315    fn cast(syntax: SyntaxNode) -> Option<Self> {
17316        if Self::can_cast(syntax.kind()) {
17317            Some(Self { syntax })
17318        } else {
17319            None
17320        }
17321    }
17322    #[inline]
17323    fn syntax(&self) -> &SyntaxNode {
17324        &self.syntax
17325    }
17326}
17327impl AstNode for OrderByClause {
17328    #[inline]
17329    fn can_cast(kind: SyntaxKind) -> bool {
17330        kind == SyntaxKind::ORDER_BY_CLAUSE
17331    }
17332    #[inline]
17333    fn cast(syntax: SyntaxNode) -> Option<Self> {
17334        if Self::can_cast(syntax.kind()) {
17335            Some(Self { syntax })
17336        } else {
17337            None
17338        }
17339    }
17340    #[inline]
17341    fn syntax(&self) -> &SyntaxNode {
17342        &self.syntax
17343    }
17344}
17345impl AstNode for OverClause {
17346    #[inline]
17347    fn can_cast(kind: SyntaxKind) -> bool {
17348        kind == SyntaxKind::OVER_CLAUSE
17349    }
17350    #[inline]
17351    fn cast(syntax: SyntaxNode) -> Option<Self> {
17352        if Self::can_cast(syntax.kind()) {
17353            Some(Self { syntax })
17354        } else {
17355            None
17356        }
17357    }
17358    #[inline]
17359    fn syntax(&self) -> &SyntaxNode {
17360        &self.syntax
17361    }
17362}
17363impl AstNode for OwnerTo {
17364    #[inline]
17365    fn can_cast(kind: SyntaxKind) -> bool {
17366        kind == SyntaxKind::OWNER_TO
17367    }
17368    #[inline]
17369    fn cast(syntax: SyntaxNode) -> Option<Self> {
17370        if Self::can_cast(syntax.kind()) {
17371            Some(Self { syntax })
17372        } else {
17373            None
17374        }
17375    }
17376    #[inline]
17377    fn syntax(&self) -> &SyntaxNode {
17378        &self.syntax
17379    }
17380}
17381impl AstNode for ParallelFuncOption {
17382    #[inline]
17383    fn can_cast(kind: SyntaxKind) -> bool {
17384        kind == SyntaxKind::PARALLEL_FUNC_OPTION
17385    }
17386    #[inline]
17387    fn cast(syntax: SyntaxNode) -> Option<Self> {
17388        if Self::can_cast(syntax.kind()) {
17389            Some(Self { syntax })
17390        } else {
17391            None
17392        }
17393    }
17394    #[inline]
17395    fn syntax(&self) -> &SyntaxNode {
17396        &self.syntax
17397    }
17398}
17399impl AstNode for Param {
17400    #[inline]
17401    fn can_cast(kind: SyntaxKind) -> bool {
17402        kind == SyntaxKind::PARAM
17403    }
17404    #[inline]
17405    fn cast(syntax: SyntaxNode) -> Option<Self> {
17406        if Self::can_cast(syntax.kind()) {
17407            Some(Self { syntax })
17408        } else {
17409            None
17410        }
17411    }
17412    #[inline]
17413    fn syntax(&self) -> &SyntaxNode {
17414        &self.syntax
17415    }
17416}
17417impl AstNode for ParamDefault {
17418    #[inline]
17419    fn can_cast(kind: SyntaxKind) -> bool {
17420        kind == SyntaxKind::PARAM_DEFAULT
17421    }
17422    #[inline]
17423    fn cast(syntax: SyntaxNode) -> Option<Self> {
17424        if Self::can_cast(syntax.kind()) {
17425            Some(Self { syntax })
17426        } else {
17427            None
17428        }
17429    }
17430    #[inline]
17431    fn syntax(&self) -> &SyntaxNode {
17432        &self.syntax
17433    }
17434}
17435impl AstNode for ParamIn {
17436    #[inline]
17437    fn can_cast(kind: SyntaxKind) -> bool {
17438        kind == SyntaxKind::PARAM_IN
17439    }
17440    #[inline]
17441    fn cast(syntax: SyntaxNode) -> Option<Self> {
17442        if Self::can_cast(syntax.kind()) {
17443            Some(Self { syntax })
17444        } else {
17445            None
17446        }
17447    }
17448    #[inline]
17449    fn syntax(&self) -> &SyntaxNode {
17450        &self.syntax
17451    }
17452}
17453impl AstNode for ParamInOut {
17454    #[inline]
17455    fn can_cast(kind: SyntaxKind) -> bool {
17456        kind == SyntaxKind::PARAM_IN_OUT
17457    }
17458    #[inline]
17459    fn cast(syntax: SyntaxNode) -> Option<Self> {
17460        if Self::can_cast(syntax.kind()) {
17461            Some(Self { syntax })
17462        } else {
17463            None
17464        }
17465    }
17466    #[inline]
17467    fn syntax(&self) -> &SyntaxNode {
17468        &self.syntax
17469    }
17470}
17471impl AstNode for ParamList {
17472    #[inline]
17473    fn can_cast(kind: SyntaxKind) -> bool {
17474        kind == SyntaxKind::PARAM_LIST
17475    }
17476    #[inline]
17477    fn cast(syntax: SyntaxNode) -> Option<Self> {
17478        if Self::can_cast(syntax.kind()) {
17479            Some(Self { syntax })
17480        } else {
17481            None
17482        }
17483    }
17484    #[inline]
17485    fn syntax(&self) -> &SyntaxNode {
17486        &self.syntax
17487    }
17488}
17489impl AstNode for ParamOut {
17490    #[inline]
17491    fn can_cast(kind: SyntaxKind) -> bool {
17492        kind == SyntaxKind::PARAM_OUT
17493    }
17494    #[inline]
17495    fn cast(syntax: SyntaxNode) -> Option<Self> {
17496        if Self::can_cast(syntax.kind()) {
17497            Some(Self { syntax })
17498        } else {
17499            None
17500        }
17501    }
17502    #[inline]
17503    fn syntax(&self) -> &SyntaxNode {
17504        &self.syntax
17505    }
17506}
17507impl AstNode for ParamVariadic {
17508    #[inline]
17509    fn can_cast(kind: SyntaxKind) -> bool {
17510        kind == SyntaxKind::PARAM_VARIADIC
17511    }
17512    #[inline]
17513    fn cast(syntax: SyntaxNode) -> Option<Self> {
17514        if Self::can_cast(syntax.kind()) {
17515            Some(Self { syntax })
17516        } else {
17517            None
17518        }
17519    }
17520    #[inline]
17521    fn syntax(&self) -> &SyntaxNode {
17522        &self.syntax
17523    }
17524}
17525impl AstNode for ParenExpr {
17526    #[inline]
17527    fn can_cast(kind: SyntaxKind) -> bool {
17528        kind == SyntaxKind::PAREN_EXPR
17529    }
17530    #[inline]
17531    fn cast(syntax: SyntaxNode) -> Option<Self> {
17532        if Self::can_cast(syntax.kind()) {
17533            Some(Self { syntax })
17534        } else {
17535            None
17536        }
17537    }
17538    #[inline]
17539    fn syntax(&self) -> &SyntaxNode {
17540        &self.syntax
17541    }
17542}
17543impl AstNode for ParenSelect {
17544    #[inline]
17545    fn can_cast(kind: SyntaxKind) -> bool {
17546        kind == SyntaxKind::PAREN_SELECT
17547    }
17548    #[inline]
17549    fn cast(syntax: SyntaxNode) -> Option<Self> {
17550        if Self::can_cast(syntax.kind()) {
17551            Some(Self { syntax })
17552        } else {
17553            None
17554        }
17555    }
17556    #[inline]
17557    fn syntax(&self) -> &SyntaxNode {
17558        &self.syntax
17559    }
17560}
17561impl AstNode for PartitionBy {
17562    #[inline]
17563    fn can_cast(kind: SyntaxKind) -> bool {
17564        kind == SyntaxKind::PARTITION_BY
17565    }
17566    #[inline]
17567    fn cast(syntax: SyntaxNode) -> Option<Self> {
17568        if Self::can_cast(syntax.kind()) {
17569            Some(Self { syntax })
17570        } else {
17571            None
17572        }
17573    }
17574    #[inline]
17575    fn syntax(&self) -> &SyntaxNode {
17576        &self.syntax
17577    }
17578}
17579impl AstNode for PartitionDefault {
17580    #[inline]
17581    fn can_cast(kind: SyntaxKind) -> bool {
17582        kind == SyntaxKind::PARTITION_DEFAULT
17583    }
17584    #[inline]
17585    fn cast(syntax: SyntaxNode) -> Option<Self> {
17586        if Self::can_cast(syntax.kind()) {
17587            Some(Self { syntax })
17588        } else {
17589            None
17590        }
17591    }
17592    #[inline]
17593    fn syntax(&self) -> &SyntaxNode {
17594        &self.syntax
17595    }
17596}
17597impl AstNode for PartitionForValuesFrom {
17598    #[inline]
17599    fn can_cast(kind: SyntaxKind) -> bool {
17600        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
17601    }
17602    #[inline]
17603    fn cast(syntax: SyntaxNode) -> Option<Self> {
17604        if Self::can_cast(syntax.kind()) {
17605            Some(Self { syntax })
17606        } else {
17607            None
17608        }
17609    }
17610    #[inline]
17611    fn syntax(&self) -> &SyntaxNode {
17612        &self.syntax
17613    }
17614}
17615impl AstNode for PartitionForValuesIn {
17616    #[inline]
17617    fn can_cast(kind: SyntaxKind) -> bool {
17618        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
17619    }
17620    #[inline]
17621    fn cast(syntax: SyntaxNode) -> Option<Self> {
17622        if Self::can_cast(syntax.kind()) {
17623            Some(Self { syntax })
17624        } else {
17625            None
17626        }
17627    }
17628    #[inline]
17629    fn syntax(&self) -> &SyntaxNode {
17630        &self.syntax
17631    }
17632}
17633impl AstNode for PartitionForValuesWith {
17634    #[inline]
17635    fn can_cast(kind: SyntaxKind) -> bool {
17636        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
17637    }
17638    #[inline]
17639    fn cast(syntax: SyntaxNode) -> Option<Self> {
17640        if Self::can_cast(syntax.kind()) {
17641            Some(Self { syntax })
17642        } else {
17643            None
17644        }
17645    }
17646    #[inline]
17647    fn syntax(&self) -> &SyntaxNode {
17648        &self.syntax
17649    }
17650}
17651impl AstNode for PartitionItem {
17652    #[inline]
17653    fn can_cast(kind: SyntaxKind) -> bool {
17654        kind == SyntaxKind::PARTITION_ITEM
17655    }
17656    #[inline]
17657    fn cast(syntax: SyntaxNode) -> Option<Self> {
17658        if Self::can_cast(syntax.kind()) {
17659            Some(Self { syntax })
17660        } else {
17661            None
17662        }
17663    }
17664    #[inline]
17665    fn syntax(&self) -> &SyntaxNode {
17666        &self.syntax
17667    }
17668}
17669impl AstNode for PartitionItemList {
17670    #[inline]
17671    fn can_cast(kind: SyntaxKind) -> bool {
17672        kind == SyntaxKind::PARTITION_ITEM_LIST
17673    }
17674    #[inline]
17675    fn cast(syntax: SyntaxNode) -> Option<Self> {
17676        if Self::can_cast(syntax.kind()) {
17677            Some(Self { syntax })
17678        } else {
17679            None
17680        }
17681    }
17682    #[inline]
17683    fn syntax(&self) -> &SyntaxNode {
17684        &self.syntax
17685    }
17686}
17687impl AstNode for PartitionOf {
17688    #[inline]
17689    fn can_cast(kind: SyntaxKind) -> bool {
17690        kind == SyntaxKind::PARTITION_OF
17691    }
17692    #[inline]
17693    fn cast(syntax: SyntaxNode) -> Option<Self> {
17694        if Self::can_cast(syntax.kind()) {
17695            Some(Self { syntax })
17696        } else {
17697            None
17698        }
17699    }
17700    #[inline]
17701    fn syntax(&self) -> &SyntaxNode {
17702        &self.syntax
17703    }
17704}
17705impl AstNode for Path {
17706    #[inline]
17707    fn can_cast(kind: SyntaxKind) -> bool {
17708        kind == SyntaxKind::PATH
17709    }
17710    #[inline]
17711    fn cast(syntax: SyntaxNode) -> Option<Self> {
17712        if Self::can_cast(syntax.kind()) {
17713            Some(Self { syntax })
17714        } else {
17715            None
17716        }
17717    }
17718    #[inline]
17719    fn syntax(&self) -> &SyntaxNode {
17720        &self.syntax
17721    }
17722}
17723impl AstNode for PathSegment {
17724    #[inline]
17725    fn can_cast(kind: SyntaxKind) -> bool {
17726        kind == SyntaxKind::PATH_SEGMENT
17727    }
17728    #[inline]
17729    fn cast(syntax: SyntaxNode) -> Option<Self> {
17730        if Self::can_cast(syntax.kind()) {
17731            Some(Self { syntax })
17732        } else {
17733            None
17734        }
17735    }
17736    #[inline]
17737    fn syntax(&self) -> &SyntaxNode {
17738        &self.syntax
17739    }
17740}
17741impl AstNode for PathType {
17742    #[inline]
17743    fn can_cast(kind: SyntaxKind) -> bool {
17744        kind == SyntaxKind::PATH_TYPE
17745    }
17746    #[inline]
17747    fn cast(syntax: SyntaxNode) -> Option<Self> {
17748        if Self::can_cast(syntax.kind()) {
17749            Some(Self { syntax })
17750        } else {
17751            None
17752        }
17753    }
17754    #[inline]
17755    fn syntax(&self) -> &SyntaxNode {
17756        &self.syntax
17757    }
17758}
17759impl AstNode for PercentType {
17760    #[inline]
17761    fn can_cast(kind: SyntaxKind) -> bool {
17762        kind == SyntaxKind::PERCENT_TYPE
17763    }
17764    #[inline]
17765    fn cast(syntax: SyntaxNode) -> Option<Self> {
17766        if Self::can_cast(syntax.kind()) {
17767            Some(Self { syntax })
17768        } else {
17769            None
17770        }
17771    }
17772    #[inline]
17773    fn syntax(&self) -> &SyntaxNode {
17774        &self.syntax
17775    }
17776}
17777impl AstNode for PercentTypeClause {
17778    #[inline]
17779    fn can_cast(kind: SyntaxKind) -> bool {
17780        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
17781    }
17782    #[inline]
17783    fn cast(syntax: SyntaxNode) -> Option<Self> {
17784        if Self::can_cast(syntax.kind()) {
17785            Some(Self { syntax })
17786        } else {
17787            None
17788        }
17789    }
17790    #[inline]
17791    fn syntax(&self) -> &SyntaxNode {
17792        &self.syntax
17793    }
17794}
17795impl AstNode for PostfixExpr {
17796    #[inline]
17797    fn can_cast(kind: SyntaxKind) -> bool {
17798        kind == SyntaxKind::POSTFIX_EXPR
17799    }
17800    #[inline]
17801    fn cast(syntax: SyntaxNode) -> Option<Self> {
17802        if Self::can_cast(syntax.kind()) {
17803            Some(Self { syntax })
17804        } else {
17805            None
17806        }
17807    }
17808    #[inline]
17809    fn syntax(&self) -> &SyntaxNode {
17810        &self.syntax
17811    }
17812}
17813impl AstNode for PrefixExpr {
17814    #[inline]
17815    fn can_cast(kind: SyntaxKind) -> bool {
17816        kind == SyntaxKind::PREFIX_EXPR
17817    }
17818    #[inline]
17819    fn cast(syntax: SyntaxNode) -> Option<Self> {
17820        if Self::can_cast(syntax.kind()) {
17821            Some(Self { syntax })
17822        } else {
17823            None
17824        }
17825    }
17826    #[inline]
17827    fn syntax(&self) -> &SyntaxNode {
17828        &self.syntax
17829    }
17830}
17831impl AstNode for Prepare {
17832    #[inline]
17833    fn can_cast(kind: SyntaxKind) -> bool {
17834        kind == SyntaxKind::PREPARE
17835    }
17836    #[inline]
17837    fn cast(syntax: SyntaxNode) -> Option<Self> {
17838        if Self::can_cast(syntax.kind()) {
17839            Some(Self { syntax })
17840        } else {
17841            None
17842        }
17843    }
17844    #[inline]
17845    fn syntax(&self) -> &SyntaxNode {
17846        &self.syntax
17847    }
17848}
17849impl AstNode for PrepareTransaction {
17850    #[inline]
17851    fn can_cast(kind: SyntaxKind) -> bool {
17852        kind == SyntaxKind::PREPARE_TRANSACTION
17853    }
17854    #[inline]
17855    fn cast(syntax: SyntaxNode) -> Option<Self> {
17856        if Self::can_cast(syntax.kind()) {
17857            Some(Self { syntax })
17858        } else {
17859            None
17860        }
17861    }
17862    #[inline]
17863    fn syntax(&self) -> &SyntaxNode {
17864        &self.syntax
17865    }
17866}
17867impl AstNode for PreserveRows {
17868    #[inline]
17869    fn can_cast(kind: SyntaxKind) -> bool {
17870        kind == SyntaxKind::PRESERVE_ROWS
17871    }
17872    #[inline]
17873    fn cast(syntax: SyntaxNode) -> Option<Self> {
17874        if Self::can_cast(syntax.kind()) {
17875            Some(Self { syntax })
17876        } else {
17877            None
17878        }
17879    }
17880    #[inline]
17881    fn syntax(&self) -> &SyntaxNode {
17882        &self.syntax
17883    }
17884}
17885impl AstNode for PrimaryKeyConstraint {
17886    #[inline]
17887    fn can_cast(kind: SyntaxKind) -> bool {
17888        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
17889    }
17890    #[inline]
17891    fn cast(syntax: SyntaxNode) -> Option<Self> {
17892        if Self::can_cast(syntax.kind()) {
17893            Some(Self { syntax })
17894        } else {
17895            None
17896        }
17897    }
17898    #[inline]
17899    fn syntax(&self) -> &SyntaxNode {
17900        &self.syntax
17901    }
17902}
17903impl AstNode for ReadCommitted {
17904    #[inline]
17905    fn can_cast(kind: SyntaxKind) -> bool {
17906        kind == SyntaxKind::READ_COMMITTED
17907    }
17908    #[inline]
17909    fn cast(syntax: SyntaxNode) -> Option<Self> {
17910        if Self::can_cast(syntax.kind()) {
17911            Some(Self { syntax })
17912        } else {
17913            None
17914        }
17915    }
17916    #[inline]
17917    fn syntax(&self) -> &SyntaxNode {
17918        &self.syntax
17919    }
17920}
17921impl AstNode for ReadOnly {
17922    #[inline]
17923    fn can_cast(kind: SyntaxKind) -> bool {
17924        kind == SyntaxKind::READ_ONLY
17925    }
17926    #[inline]
17927    fn cast(syntax: SyntaxNode) -> Option<Self> {
17928        if Self::can_cast(syntax.kind()) {
17929            Some(Self { syntax })
17930        } else {
17931            None
17932        }
17933    }
17934    #[inline]
17935    fn syntax(&self) -> &SyntaxNode {
17936        &self.syntax
17937    }
17938}
17939impl AstNode for ReadUncommitted {
17940    #[inline]
17941    fn can_cast(kind: SyntaxKind) -> bool {
17942        kind == SyntaxKind::READ_UNCOMMITTED
17943    }
17944    #[inline]
17945    fn cast(syntax: SyntaxNode) -> Option<Self> {
17946        if Self::can_cast(syntax.kind()) {
17947            Some(Self { syntax })
17948        } else {
17949            None
17950        }
17951    }
17952    #[inline]
17953    fn syntax(&self) -> &SyntaxNode {
17954        &self.syntax
17955    }
17956}
17957impl AstNode for ReadWrite {
17958    #[inline]
17959    fn can_cast(kind: SyntaxKind) -> bool {
17960        kind == SyntaxKind::READ_WRITE
17961    }
17962    #[inline]
17963    fn cast(syntax: SyntaxNode) -> Option<Self> {
17964        if Self::can_cast(syntax.kind()) {
17965            Some(Self { syntax })
17966        } else {
17967            None
17968        }
17969    }
17970    #[inline]
17971    fn syntax(&self) -> &SyntaxNode {
17972        &self.syntax
17973    }
17974}
17975impl AstNode for Reassign {
17976    #[inline]
17977    fn can_cast(kind: SyntaxKind) -> bool {
17978        kind == SyntaxKind::REASSIGN
17979    }
17980    #[inline]
17981    fn cast(syntax: SyntaxNode) -> Option<Self> {
17982        if Self::can_cast(syntax.kind()) {
17983            Some(Self { syntax })
17984        } else {
17985            None
17986        }
17987    }
17988    #[inline]
17989    fn syntax(&self) -> &SyntaxNode {
17990        &self.syntax
17991    }
17992}
17993impl AstNode for ReferencesConstraint {
17994    #[inline]
17995    fn can_cast(kind: SyntaxKind) -> bool {
17996        kind == SyntaxKind::REFERENCES_CONSTRAINT
17997    }
17998    #[inline]
17999    fn cast(syntax: SyntaxNode) -> Option<Self> {
18000        if Self::can_cast(syntax.kind()) {
18001            Some(Self { syntax })
18002        } else {
18003            None
18004        }
18005    }
18006    #[inline]
18007    fn syntax(&self) -> &SyntaxNode {
18008        &self.syntax
18009    }
18010}
18011impl AstNode for Refresh {
18012    #[inline]
18013    fn can_cast(kind: SyntaxKind) -> bool {
18014        kind == SyntaxKind::REFRESH
18015    }
18016    #[inline]
18017    fn cast(syntax: SyntaxNode) -> Option<Self> {
18018        if Self::can_cast(syntax.kind()) {
18019            Some(Self { syntax })
18020        } else {
18021            None
18022        }
18023    }
18024    #[inline]
18025    fn syntax(&self) -> &SyntaxNode {
18026        &self.syntax
18027    }
18028}
18029impl AstNode for Reindex {
18030    #[inline]
18031    fn can_cast(kind: SyntaxKind) -> bool {
18032        kind == SyntaxKind::REINDEX
18033    }
18034    #[inline]
18035    fn cast(syntax: SyntaxNode) -> Option<Self> {
18036        if Self::can_cast(syntax.kind()) {
18037            Some(Self { syntax })
18038        } else {
18039            None
18040        }
18041    }
18042    #[inline]
18043    fn syntax(&self) -> &SyntaxNode {
18044        &self.syntax
18045    }
18046}
18047impl AstNode for RelationName {
18048    #[inline]
18049    fn can_cast(kind: SyntaxKind) -> bool {
18050        kind == SyntaxKind::RELATION_NAME
18051    }
18052    #[inline]
18053    fn cast(syntax: SyntaxNode) -> Option<Self> {
18054        if Self::can_cast(syntax.kind()) {
18055            Some(Self { syntax })
18056        } else {
18057            None
18058        }
18059    }
18060    #[inline]
18061    fn syntax(&self) -> &SyntaxNode {
18062        &self.syntax
18063    }
18064}
18065impl AstNode for ReleaseSavepoint {
18066    #[inline]
18067    fn can_cast(kind: SyntaxKind) -> bool {
18068        kind == SyntaxKind::RELEASE_SAVEPOINT
18069    }
18070    #[inline]
18071    fn cast(syntax: SyntaxNode) -> Option<Self> {
18072        if Self::can_cast(syntax.kind()) {
18073            Some(Self { syntax })
18074        } else {
18075            None
18076        }
18077    }
18078    #[inline]
18079    fn syntax(&self) -> &SyntaxNode {
18080        &self.syntax
18081    }
18082}
18083impl AstNode for RenameColumn {
18084    #[inline]
18085    fn can_cast(kind: SyntaxKind) -> bool {
18086        kind == SyntaxKind::RENAME_COLUMN
18087    }
18088    #[inline]
18089    fn cast(syntax: SyntaxNode) -> Option<Self> {
18090        if Self::can_cast(syntax.kind()) {
18091            Some(Self { syntax })
18092        } else {
18093            None
18094        }
18095    }
18096    #[inline]
18097    fn syntax(&self) -> &SyntaxNode {
18098        &self.syntax
18099    }
18100}
18101impl AstNode for RenameConstraint {
18102    #[inline]
18103    fn can_cast(kind: SyntaxKind) -> bool {
18104        kind == SyntaxKind::RENAME_CONSTRAINT
18105    }
18106    #[inline]
18107    fn cast(syntax: SyntaxNode) -> Option<Self> {
18108        if Self::can_cast(syntax.kind()) {
18109            Some(Self { syntax })
18110        } else {
18111            None
18112        }
18113    }
18114    #[inline]
18115    fn syntax(&self) -> &SyntaxNode {
18116        &self.syntax
18117    }
18118}
18119impl AstNode for RenameTable {
18120    #[inline]
18121    fn can_cast(kind: SyntaxKind) -> bool {
18122        kind == SyntaxKind::RENAME_TABLE
18123    }
18124    #[inline]
18125    fn cast(syntax: SyntaxNode) -> Option<Self> {
18126        if Self::can_cast(syntax.kind()) {
18127            Some(Self { syntax })
18128        } else {
18129            None
18130        }
18131    }
18132    #[inline]
18133    fn syntax(&self) -> &SyntaxNode {
18134        &self.syntax
18135    }
18136}
18137impl AstNode for RenameTo {
18138    #[inline]
18139    fn can_cast(kind: SyntaxKind) -> bool {
18140        kind == SyntaxKind::RENAME_TO
18141    }
18142    #[inline]
18143    fn cast(syntax: SyntaxNode) -> Option<Self> {
18144        if Self::can_cast(syntax.kind()) {
18145            Some(Self { syntax })
18146        } else {
18147            None
18148        }
18149    }
18150    #[inline]
18151    fn syntax(&self) -> &SyntaxNode {
18152        &self.syntax
18153    }
18154}
18155impl AstNode for RepeatableRead {
18156    #[inline]
18157    fn can_cast(kind: SyntaxKind) -> bool {
18158        kind == SyntaxKind::REPEATABLE_READ
18159    }
18160    #[inline]
18161    fn cast(syntax: SyntaxNode) -> Option<Self> {
18162        if Self::can_cast(syntax.kind()) {
18163            Some(Self { syntax })
18164        } else {
18165            None
18166        }
18167    }
18168    #[inline]
18169    fn syntax(&self) -> &SyntaxNode {
18170        &self.syntax
18171    }
18172}
18173impl AstNode for ReplicaIdentity {
18174    #[inline]
18175    fn can_cast(kind: SyntaxKind) -> bool {
18176        kind == SyntaxKind::REPLICA_IDENTITY
18177    }
18178    #[inline]
18179    fn cast(syntax: SyntaxNode) -> Option<Self> {
18180        if Self::can_cast(syntax.kind()) {
18181            Some(Self { syntax })
18182        } else {
18183            None
18184        }
18185    }
18186    #[inline]
18187    fn syntax(&self) -> &SyntaxNode {
18188        &self.syntax
18189    }
18190}
18191impl AstNode for Reset {
18192    #[inline]
18193    fn can_cast(kind: SyntaxKind) -> bool {
18194        kind == SyntaxKind::RESET
18195    }
18196    #[inline]
18197    fn cast(syntax: SyntaxNode) -> Option<Self> {
18198        if Self::can_cast(syntax.kind()) {
18199            Some(Self { syntax })
18200        } else {
18201            None
18202        }
18203    }
18204    #[inline]
18205    fn syntax(&self) -> &SyntaxNode {
18206        &self.syntax
18207    }
18208}
18209impl AstNode for ResetFuncOption {
18210    #[inline]
18211    fn can_cast(kind: SyntaxKind) -> bool {
18212        kind == SyntaxKind::RESET_FUNC_OPTION
18213    }
18214    #[inline]
18215    fn cast(syntax: SyntaxNode) -> Option<Self> {
18216        if Self::can_cast(syntax.kind()) {
18217            Some(Self { syntax })
18218        } else {
18219            None
18220        }
18221    }
18222    #[inline]
18223    fn syntax(&self) -> &SyntaxNode {
18224        &self.syntax
18225    }
18226}
18227impl AstNode for ResetOptions {
18228    #[inline]
18229    fn can_cast(kind: SyntaxKind) -> bool {
18230        kind == SyntaxKind::RESET_OPTIONS
18231    }
18232    #[inline]
18233    fn cast(syntax: SyntaxNode) -> Option<Self> {
18234        if Self::can_cast(syntax.kind()) {
18235            Some(Self { syntax })
18236        } else {
18237            None
18238        }
18239    }
18240    #[inline]
18241    fn syntax(&self) -> &SyntaxNode {
18242        &self.syntax
18243    }
18244}
18245impl AstNode for ResetStorageParams {
18246    #[inline]
18247    fn can_cast(kind: SyntaxKind) -> bool {
18248        kind == SyntaxKind::RESET_STORAGE_PARAMS
18249    }
18250    #[inline]
18251    fn cast(syntax: SyntaxNode) -> Option<Self> {
18252        if Self::can_cast(syntax.kind()) {
18253            Some(Self { syntax })
18254        } else {
18255            None
18256        }
18257    }
18258    #[inline]
18259    fn syntax(&self) -> &SyntaxNode {
18260        &self.syntax
18261    }
18262}
18263impl AstNode for Restart {
18264    #[inline]
18265    fn can_cast(kind: SyntaxKind) -> bool {
18266        kind == SyntaxKind::RESTART
18267    }
18268    #[inline]
18269    fn cast(syntax: SyntaxNode) -> Option<Self> {
18270        if Self::can_cast(syntax.kind()) {
18271            Some(Self { syntax })
18272        } else {
18273            None
18274        }
18275    }
18276    #[inline]
18277    fn syntax(&self) -> &SyntaxNode {
18278        &self.syntax
18279    }
18280}
18281impl AstNode for Restrict {
18282    #[inline]
18283    fn can_cast(kind: SyntaxKind) -> bool {
18284        kind == SyntaxKind::RESTRICT
18285    }
18286    #[inline]
18287    fn cast(syntax: SyntaxNode) -> Option<Self> {
18288        if Self::can_cast(syntax.kind()) {
18289            Some(Self { syntax })
18290        } else {
18291            None
18292        }
18293    }
18294    #[inline]
18295    fn syntax(&self) -> &SyntaxNode {
18296        &self.syntax
18297    }
18298}
18299impl AstNode for RetType {
18300    #[inline]
18301    fn can_cast(kind: SyntaxKind) -> bool {
18302        kind == SyntaxKind::RET_TYPE
18303    }
18304    #[inline]
18305    fn cast(syntax: SyntaxNode) -> Option<Self> {
18306        if Self::can_cast(syntax.kind()) {
18307            Some(Self { syntax })
18308        } else {
18309            None
18310        }
18311    }
18312    #[inline]
18313    fn syntax(&self) -> &SyntaxNode {
18314        &self.syntax
18315    }
18316}
18317impl AstNode for ReturnFuncOption {
18318    #[inline]
18319    fn can_cast(kind: SyntaxKind) -> bool {
18320        kind == SyntaxKind::RETURN_FUNC_OPTION
18321    }
18322    #[inline]
18323    fn cast(syntax: SyntaxNode) -> Option<Self> {
18324        if Self::can_cast(syntax.kind()) {
18325            Some(Self { syntax })
18326        } else {
18327            None
18328        }
18329    }
18330    #[inline]
18331    fn syntax(&self) -> &SyntaxNode {
18332        &self.syntax
18333    }
18334}
18335impl AstNode for ReturningClause {
18336    #[inline]
18337    fn can_cast(kind: SyntaxKind) -> bool {
18338        kind == SyntaxKind::RETURNING_CLAUSE
18339    }
18340    #[inline]
18341    fn cast(syntax: SyntaxNode) -> Option<Self> {
18342        if Self::can_cast(syntax.kind()) {
18343            Some(Self { syntax })
18344        } else {
18345            None
18346        }
18347    }
18348    #[inline]
18349    fn syntax(&self) -> &SyntaxNode {
18350        &self.syntax
18351    }
18352}
18353impl AstNode for Revoke {
18354    #[inline]
18355    fn can_cast(kind: SyntaxKind) -> bool {
18356        kind == SyntaxKind::REVOKE
18357    }
18358    #[inline]
18359    fn cast(syntax: SyntaxNode) -> Option<Self> {
18360        if Self::can_cast(syntax.kind()) {
18361            Some(Self { syntax })
18362        } else {
18363            None
18364        }
18365    }
18366    #[inline]
18367    fn syntax(&self) -> &SyntaxNode {
18368        &self.syntax
18369    }
18370}
18371impl AstNode for Role {
18372    #[inline]
18373    fn can_cast(kind: SyntaxKind) -> bool {
18374        kind == SyntaxKind::ROLE
18375    }
18376    #[inline]
18377    fn cast(syntax: SyntaxNode) -> Option<Self> {
18378        if Self::can_cast(syntax.kind()) {
18379            Some(Self { syntax })
18380        } else {
18381            None
18382        }
18383    }
18384    #[inline]
18385    fn syntax(&self) -> &SyntaxNode {
18386        &self.syntax
18387    }
18388}
18389impl AstNode for Rollback {
18390    #[inline]
18391    fn can_cast(kind: SyntaxKind) -> bool {
18392        kind == SyntaxKind::ROLLBACK
18393    }
18394    #[inline]
18395    fn cast(syntax: SyntaxNode) -> Option<Self> {
18396        if Self::can_cast(syntax.kind()) {
18397            Some(Self { syntax })
18398        } else {
18399            None
18400        }
18401    }
18402    #[inline]
18403    fn syntax(&self) -> &SyntaxNode {
18404        &self.syntax
18405    }
18406}
18407impl AstNode for Row {
18408    #[inline]
18409    fn can_cast(kind: SyntaxKind) -> bool {
18410        kind == SyntaxKind::ROW
18411    }
18412    #[inline]
18413    fn cast(syntax: SyntaxNode) -> Option<Self> {
18414        if Self::can_cast(syntax.kind()) {
18415            Some(Self { syntax })
18416        } else {
18417            None
18418        }
18419    }
18420    #[inline]
18421    fn syntax(&self) -> &SyntaxNode {
18422        &self.syntax
18423    }
18424}
18425impl AstNode for RowList {
18426    #[inline]
18427    fn can_cast(kind: SyntaxKind) -> bool {
18428        kind == SyntaxKind::ROW_LIST
18429    }
18430    #[inline]
18431    fn cast(syntax: SyntaxNode) -> Option<Self> {
18432        if Self::can_cast(syntax.kind()) {
18433            Some(Self { syntax })
18434        } else {
18435            None
18436        }
18437    }
18438    #[inline]
18439    fn syntax(&self) -> &SyntaxNode {
18440        &self.syntax
18441    }
18442}
18443impl AstNode for RowsFuncOption {
18444    #[inline]
18445    fn can_cast(kind: SyntaxKind) -> bool {
18446        kind == SyntaxKind::ROWS_FUNC_OPTION
18447    }
18448    #[inline]
18449    fn cast(syntax: SyntaxNode) -> Option<Self> {
18450        if Self::can_cast(syntax.kind()) {
18451            Some(Self { syntax })
18452        } else {
18453            None
18454        }
18455    }
18456    #[inline]
18457    fn syntax(&self) -> &SyntaxNode {
18458        &self.syntax
18459    }
18460}
18461impl AstNode for Savepoint {
18462    #[inline]
18463    fn can_cast(kind: SyntaxKind) -> bool {
18464        kind == SyntaxKind::SAVEPOINT
18465    }
18466    #[inline]
18467    fn cast(syntax: SyntaxNode) -> Option<Self> {
18468        if Self::can_cast(syntax.kind()) {
18469            Some(Self { syntax })
18470        } else {
18471            None
18472        }
18473    }
18474    #[inline]
18475    fn syntax(&self) -> &SyntaxNode {
18476        &self.syntax
18477    }
18478}
18479impl AstNode for SecurityFuncOption {
18480    #[inline]
18481    fn can_cast(kind: SyntaxKind) -> bool {
18482        kind == SyntaxKind::SECURITY_FUNC_OPTION
18483    }
18484    #[inline]
18485    fn cast(syntax: SyntaxNode) -> Option<Self> {
18486        if Self::can_cast(syntax.kind()) {
18487            Some(Self { syntax })
18488        } else {
18489            None
18490        }
18491    }
18492    #[inline]
18493    fn syntax(&self) -> &SyntaxNode {
18494        &self.syntax
18495    }
18496}
18497impl AstNode for SecurityLabel {
18498    #[inline]
18499    fn can_cast(kind: SyntaxKind) -> bool {
18500        kind == SyntaxKind::SECURITY_LABEL
18501    }
18502    #[inline]
18503    fn cast(syntax: SyntaxNode) -> Option<Self> {
18504        if Self::can_cast(syntax.kind()) {
18505            Some(Self { syntax })
18506        } else {
18507            None
18508        }
18509    }
18510    #[inline]
18511    fn syntax(&self) -> &SyntaxNode {
18512        &self.syntax
18513    }
18514}
18515impl AstNode for Select {
18516    #[inline]
18517    fn can_cast(kind: SyntaxKind) -> bool {
18518        kind == SyntaxKind::SELECT
18519    }
18520    #[inline]
18521    fn cast(syntax: SyntaxNode) -> Option<Self> {
18522        if Self::can_cast(syntax.kind()) {
18523            Some(Self { syntax })
18524        } else {
18525            None
18526        }
18527    }
18528    #[inline]
18529    fn syntax(&self) -> &SyntaxNode {
18530        &self.syntax
18531    }
18532}
18533impl AstNode for SelectClause {
18534    #[inline]
18535    fn can_cast(kind: SyntaxKind) -> bool {
18536        kind == SyntaxKind::SELECT_CLAUSE
18537    }
18538    #[inline]
18539    fn cast(syntax: SyntaxNode) -> Option<Self> {
18540        if Self::can_cast(syntax.kind()) {
18541            Some(Self { syntax })
18542        } else {
18543            None
18544        }
18545    }
18546    #[inline]
18547    fn syntax(&self) -> &SyntaxNode {
18548        &self.syntax
18549    }
18550}
18551impl AstNode for SelectInto {
18552    #[inline]
18553    fn can_cast(kind: SyntaxKind) -> bool {
18554        kind == SyntaxKind::SELECT_INTO
18555    }
18556    #[inline]
18557    fn cast(syntax: SyntaxNode) -> Option<Self> {
18558        if Self::can_cast(syntax.kind()) {
18559            Some(Self { syntax })
18560        } else {
18561            None
18562        }
18563    }
18564    #[inline]
18565    fn syntax(&self) -> &SyntaxNode {
18566        &self.syntax
18567    }
18568}
18569impl AstNode for SequenceOptionList {
18570    #[inline]
18571    fn can_cast(kind: SyntaxKind) -> bool {
18572        kind == SyntaxKind::SEQUENCE_OPTION_LIST
18573    }
18574    #[inline]
18575    fn cast(syntax: SyntaxNode) -> Option<Self> {
18576        if Self::can_cast(syntax.kind()) {
18577            Some(Self { syntax })
18578        } else {
18579            None
18580        }
18581    }
18582    #[inline]
18583    fn syntax(&self) -> &SyntaxNode {
18584        &self.syntax
18585    }
18586}
18587impl AstNode for Serializable {
18588    #[inline]
18589    fn can_cast(kind: SyntaxKind) -> bool {
18590        kind == SyntaxKind::SERIALIZABLE
18591    }
18592    #[inline]
18593    fn cast(syntax: SyntaxNode) -> Option<Self> {
18594        if Self::can_cast(syntax.kind()) {
18595            Some(Self { syntax })
18596        } else {
18597            None
18598        }
18599    }
18600    #[inline]
18601    fn syntax(&self) -> &SyntaxNode {
18602        &self.syntax
18603    }
18604}
18605impl AstNode for Set {
18606    #[inline]
18607    fn can_cast(kind: SyntaxKind) -> bool {
18608        kind == SyntaxKind::SET
18609    }
18610    #[inline]
18611    fn cast(syntax: SyntaxNode) -> Option<Self> {
18612        if Self::can_cast(syntax.kind()) {
18613            Some(Self { syntax })
18614        } else {
18615            None
18616        }
18617    }
18618    #[inline]
18619    fn syntax(&self) -> &SyntaxNode {
18620        &self.syntax
18621    }
18622}
18623impl AstNode for SetAccessMethod {
18624    #[inline]
18625    fn can_cast(kind: SyntaxKind) -> bool {
18626        kind == SyntaxKind::SET_ACCESS_METHOD
18627    }
18628    #[inline]
18629    fn cast(syntax: SyntaxNode) -> Option<Self> {
18630        if Self::can_cast(syntax.kind()) {
18631            Some(Self { syntax })
18632        } else {
18633            None
18634        }
18635    }
18636    #[inline]
18637    fn syntax(&self) -> &SyntaxNode {
18638        &self.syntax
18639    }
18640}
18641impl AstNode for SetCompression {
18642    #[inline]
18643    fn can_cast(kind: SyntaxKind) -> bool {
18644        kind == SyntaxKind::SET_COMPRESSION
18645    }
18646    #[inline]
18647    fn cast(syntax: SyntaxNode) -> Option<Self> {
18648        if Self::can_cast(syntax.kind()) {
18649            Some(Self { syntax })
18650        } else {
18651            None
18652        }
18653    }
18654    #[inline]
18655    fn syntax(&self) -> &SyntaxNode {
18656        &self.syntax
18657    }
18658}
18659impl AstNode for SetConstraints {
18660    #[inline]
18661    fn can_cast(kind: SyntaxKind) -> bool {
18662        kind == SyntaxKind::SET_CONSTRAINTS
18663    }
18664    #[inline]
18665    fn cast(syntax: SyntaxNode) -> Option<Self> {
18666        if Self::can_cast(syntax.kind()) {
18667            Some(Self { syntax })
18668        } else {
18669            None
18670        }
18671    }
18672    #[inline]
18673    fn syntax(&self) -> &SyntaxNode {
18674        &self.syntax
18675    }
18676}
18677impl AstNode for SetDefault {
18678    #[inline]
18679    fn can_cast(kind: SyntaxKind) -> bool {
18680        kind == SyntaxKind::SET_DEFAULT
18681    }
18682    #[inline]
18683    fn cast(syntax: SyntaxNode) -> Option<Self> {
18684        if Self::can_cast(syntax.kind()) {
18685            Some(Self { syntax })
18686        } else {
18687            None
18688        }
18689    }
18690    #[inline]
18691    fn syntax(&self) -> &SyntaxNode {
18692        &self.syntax
18693    }
18694}
18695impl AstNode for SetDefaultColumns {
18696    #[inline]
18697    fn can_cast(kind: SyntaxKind) -> bool {
18698        kind == SyntaxKind::SET_DEFAULT_COLUMNS
18699    }
18700    #[inline]
18701    fn cast(syntax: SyntaxNode) -> Option<Self> {
18702        if Self::can_cast(syntax.kind()) {
18703            Some(Self { syntax })
18704        } else {
18705            None
18706        }
18707    }
18708    #[inline]
18709    fn syntax(&self) -> &SyntaxNode {
18710        &self.syntax
18711    }
18712}
18713impl AstNode for SetExpression {
18714    #[inline]
18715    fn can_cast(kind: SyntaxKind) -> bool {
18716        kind == SyntaxKind::SET_EXPRESSION
18717    }
18718    #[inline]
18719    fn cast(syntax: SyntaxNode) -> Option<Self> {
18720        if Self::can_cast(syntax.kind()) {
18721            Some(Self { syntax })
18722        } else {
18723            None
18724        }
18725    }
18726    #[inline]
18727    fn syntax(&self) -> &SyntaxNode {
18728        &self.syntax
18729    }
18730}
18731impl AstNode for SetFuncOption {
18732    #[inline]
18733    fn can_cast(kind: SyntaxKind) -> bool {
18734        kind == SyntaxKind::SET_FUNC_OPTION
18735    }
18736    #[inline]
18737    fn cast(syntax: SyntaxNode) -> Option<Self> {
18738        if Self::can_cast(syntax.kind()) {
18739            Some(Self { syntax })
18740        } else {
18741            None
18742        }
18743    }
18744    #[inline]
18745    fn syntax(&self) -> &SyntaxNode {
18746        &self.syntax
18747    }
18748}
18749impl AstNode for SetGenerated {
18750    #[inline]
18751    fn can_cast(kind: SyntaxKind) -> bool {
18752        kind == SyntaxKind::SET_GENERATED
18753    }
18754    #[inline]
18755    fn cast(syntax: SyntaxNode) -> Option<Self> {
18756        if Self::can_cast(syntax.kind()) {
18757            Some(Self { syntax })
18758        } else {
18759            None
18760        }
18761    }
18762    #[inline]
18763    fn syntax(&self) -> &SyntaxNode {
18764        &self.syntax
18765    }
18766}
18767impl AstNode for SetGeneratedOptions {
18768    #[inline]
18769    fn can_cast(kind: SyntaxKind) -> bool {
18770        kind == SyntaxKind::SET_GENERATED_OPTIONS
18771    }
18772    #[inline]
18773    fn cast(syntax: SyntaxNode) -> Option<Self> {
18774        if Self::can_cast(syntax.kind()) {
18775            Some(Self { syntax })
18776        } else {
18777            None
18778        }
18779    }
18780    #[inline]
18781    fn syntax(&self) -> &SyntaxNode {
18782        &self.syntax
18783    }
18784}
18785impl AstNode for SetLogged {
18786    #[inline]
18787    fn can_cast(kind: SyntaxKind) -> bool {
18788        kind == SyntaxKind::SET_LOGGED
18789    }
18790    #[inline]
18791    fn cast(syntax: SyntaxNode) -> Option<Self> {
18792        if Self::can_cast(syntax.kind()) {
18793            Some(Self { syntax })
18794        } else {
18795            None
18796        }
18797    }
18798    #[inline]
18799    fn syntax(&self) -> &SyntaxNode {
18800        &self.syntax
18801    }
18802}
18803impl AstNode for SetNotNull {
18804    #[inline]
18805    fn can_cast(kind: SyntaxKind) -> bool {
18806        kind == SyntaxKind::SET_NOT_NULL
18807    }
18808    #[inline]
18809    fn cast(syntax: SyntaxNode) -> Option<Self> {
18810        if Self::can_cast(syntax.kind()) {
18811            Some(Self { syntax })
18812        } else {
18813            None
18814        }
18815    }
18816    #[inline]
18817    fn syntax(&self) -> &SyntaxNode {
18818        &self.syntax
18819    }
18820}
18821impl AstNode for SetNullColumns {
18822    #[inline]
18823    fn can_cast(kind: SyntaxKind) -> bool {
18824        kind == SyntaxKind::SET_NULL_COLUMNS
18825    }
18826    #[inline]
18827    fn cast(syntax: SyntaxNode) -> Option<Self> {
18828        if Self::can_cast(syntax.kind()) {
18829            Some(Self { syntax })
18830        } else {
18831            None
18832        }
18833    }
18834    #[inline]
18835    fn syntax(&self) -> &SyntaxNode {
18836        &self.syntax
18837    }
18838}
18839impl AstNode for SetOptions {
18840    #[inline]
18841    fn can_cast(kind: SyntaxKind) -> bool {
18842        kind == SyntaxKind::SET_OPTIONS
18843    }
18844    #[inline]
18845    fn cast(syntax: SyntaxNode) -> Option<Self> {
18846        if Self::can_cast(syntax.kind()) {
18847            Some(Self { syntax })
18848        } else {
18849            None
18850        }
18851    }
18852    #[inline]
18853    fn syntax(&self) -> &SyntaxNode {
18854        &self.syntax
18855    }
18856}
18857impl AstNode for SetOptionsList {
18858    #[inline]
18859    fn can_cast(kind: SyntaxKind) -> bool {
18860        kind == SyntaxKind::SET_OPTIONS_LIST
18861    }
18862    #[inline]
18863    fn cast(syntax: SyntaxNode) -> Option<Self> {
18864        if Self::can_cast(syntax.kind()) {
18865            Some(Self { syntax })
18866        } else {
18867            None
18868        }
18869    }
18870    #[inline]
18871    fn syntax(&self) -> &SyntaxNode {
18872        &self.syntax
18873    }
18874}
18875impl AstNode for SetRole {
18876    #[inline]
18877    fn can_cast(kind: SyntaxKind) -> bool {
18878        kind == SyntaxKind::SET_ROLE
18879    }
18880    #[inline]
18881    fn cast(syntax: SyntaxNode) -> Option<Self> {
18882        if Self::can_cast(syntax.kind()) {
18883            Some(Self { syntax })
18884        } else {
18885            None
18886        }
18887    }
18888    #[inline]
18889    fn syntax(&self) -> &SyntaxNode {
18890        &self.syntax
18891    }
18892}
18893impl AstNode for SetSchema {
18894    #[inline]
18895    fn can_cast(kind: SyntaxKind) -> bool {
18896        kind == SyntaxKind::SET_SCHEMA
18897    }
18898    #[inline]
18899    fn cast(syntax: SyntaxNode) -> Option<Self> {
18900        if Self::can_cast(syntax.kind()) {
18901            Some(Self { syntax })
18902        } else {
18903            None
18904        }
18905    }
18906    #[inline]
18907    fn syntax(&self) -> &SyntaxNode {
18908        &self.syntax
18909    }
18910}
18911impl AstNode for SetSequenceOption {
18912    #[inline]
18913    fn can_cast(kind: SyntaxKind) -> bool {
18914        kind == SyntaxKind::SET_SEQUENCE_OPTION
18915    }
18916    #[inline]
18917    fn cast(syntax: SyntaxNode) -> Option<Self> {
18918        if Self::can_cast(syntax.kind()) {
18919            Some(Self { syntax })
18920        } else {
18921            None
18922        }
18923    }
18924    #[inline]
18925    fn syntax(&self) -> &SyntaxNode {
18926        &self.syntax
18927    }
18928}
18929impl AstNode for SetSessionAuth {
18930    #[inline]
18931    fn can_cast(kind: SyntaxKind) -> bool {
18932        kind == SyntaxKind::SET_SESSION_AUTH
18933    }
18934    #[inline]
18935    fn cast(syntax: SyntaxNode) -> Option<Self> {
18936        if Self::can_cast(syntax.kind()) {
18937            Some(Self { syntax })
18938        } else {
18939            None
18940        }
18941    }
18942    #[inline]
18943    fn syntax(&self) -> &SyntaxNode {
18944        &self.syntax
18945    }
18946}
18947impl AstNode for SetStatistics {
18948    #[inline]
18949    fn can_cast(kind: SyntaxKind) -> bool {
18950        kind == SyntaxKind::SET_STATISTICS
18951    }
18952    #[inline]
18953    fn cast(syntax: SyntaxNode) -> Option<Self> {
18954        if Self::can_cast(syntax.kind()) {
18955            Some(Self { syntax })
18956        } else {
18957            None
18958        }
18959    }
18960    #[inline]
18961    fn syntax(&self) -> &SyntaxNode {
18962        &self.syntax
18963    }
18964}
18965impl AstNode for SetStorage {
18966    #[inline]
18967    fn can_cast(kind: SyntaxKind) -> bool {
18968        kind == SyntaxKind::SET_STORAGE
18969    }
18970    #[inline]
18971    fn cast(syntax: SyntaxNode) -> Option<Self> {
18972        if Self::can_cast(syntax.kind()) {
18973            Some(Self { syntax })
18974        } else {
18975            None
18976        }
18977    }
18978    #[inline]
18979    fn syntax(&self) -> &SyntaxNode {
18980        &self.syntax
18981    }
18982}
18983impl AstNode for SetStorageParams {
18984    #[inline]
18985    fn can_cast(kind: SyntaxKind) -> bool {
18986        kind == SyntaxKind::SET_STORAGE_PARAMS
18987    }
18988    #[inline]
18989    fn cast(syntax: SyntaxNode) -> Option<Self> {
18990        if Self::can_cast(syntax.kind()) {
18991            Some(Self { syntax })
18992        } else {
18993            None
18994        }
18995    }
18996    #[inline]
18997    fn syntax(&self) -> &SyntaxNode {
18998        &self.syntax
18999    }
19000}
19001impl AstNode for SetTablespace {
19002    #[inline]
19003    fn can_cast(kind: SyntaxKind) -> bool {
19004        kind == SyntaxKind::SET_TABLESPACE
19005    }
19006    #[inline]
19007    fn cast(syntax: SyntaxNode) -> Option<Self> {
19008        if Self::can_cast(syntax.kind()) {
19009            Some(Self { syntax })
19010        } else {
19011            None
19012        }
19013    }
19014    #[inline]
19015    fn syntax(&self) -> &SyntaxNode {
19016        &self.syntax
19017    }
19018}
19019impl AstNode for SetTransaction {
19020    #[inline]
19021    fn can_cast(kind: SyntaxKind) -> bool {
19022        kind == SyntaxKind::SET_TRANSACTION
19023    }
19024    #[inline]
19025    fn cast(syntax: SyntaxNode) -> Option<Self> {
19026        if Self::can_cast(syntax.kind()) {
19027            Some(Self { syntax })
19028        } else {
19029            None
19030        }
19031    }
19032    #[inline]
19033    fn syntax(&self) -> &SyntaxNode {
19034        &self.syntax
19035    }
19036}
19037impl AstNode for SetType {
19038    #[inline]
19039    fn can_cast(kind: SyntaxKind) -> bool {
19040        kind == SyntaxKind::SET_TYPE
19041    }
19042    #[inline]
19043    fn cast(syntax: SyntaxNode) -> Option<Self> {
19044        if Self::can_cast(syntax.kind()) {
19045            Some(Self { syntax })
19046        } else {
19047            None
19048        }
19049    }
19050    #[inline]
19051    fn syntax(&self) -> &SyntaxNode {
19052        &self.syntax
19053    }
19054}
19055impl AstNode for SetUnlogged {
19056    #[inline]
19057    fn can_cast(kind: SyntaxKind) -> bool {
19058        kind == SyntaxKind::SET_UNLOGGED
19059    }
19060    #[inline]
19061    fn cast(syntax: SyntaxNode) -> Option<Self> {
19062        if Self::can_cast(syntax.kind()) {
19063            Some(Self { syntax })
19064        } else {
19065            None
19066        }
19067    }
19068    #[inline]
19069    fn syntax(&self) -> &SyntaxNode {
19070        &self.syntax
19071    }
19072}
19073impl AstNode for SetWithoutCluster {
19074    #[inline]
19075    fn can_cast(kind: SyntaxKind) -> bool {
19076        kind == SyntaxKind::SET_WITHOUT_CLUSTER
19077    }
19078    #[inline]
19079    fn cast(syntax: SyntaxNode) -> Option<Self> {
19080        if Self::can_cast(syntax.kind()) {
19081            Some(Self { syntax })
19082        } else {
19083            None
19084        }
19085    }
19086    #[inline]
19087    fn syntax(&self) -> &SyntaxNode {
19088        &self.syntax
19089    }
19090}
19091impl AstNode for SetWithoutOids {
19092    #[inline]
19093    fn can_cast(kind: SyntaxKind) -> bool {
19094        kind == SyntaxKind::SET_WITHOUT_OIDS
19095    }
19096    #[inline]
19097    fn cast(syntax: SyntaxNode) -> Option<Self> {
19098        if Self::can_cast(syntax.kind()) {
19099            Some(Self { syntax })
19100        } else {
19101            None
19102        }
19103    }
19104    #[inline]
19105    fn syntax(&self) -> &SyntaxNode {
19106        &self.syntax
19107    }
19108}
19109impl AstNode for Show {
19110    #[inline]
19111    fn can_cast(kind: SyntaxKind) -> bool {
19112        kind == SyntaxKind::SHOW
19113    }
19114    #[inline]
19115    fn cast(syntax: SyntaxNode) -> Option<Self> {
19116        if Self::can_cast(syntax.kind()) {
19117            Some(Self { syntax })
19118        } else {
19119            None
19120        }
19121    }
19122    #[inline]
19123    fn syntax(&self) -> &SyntaxNode {
19124        &self.syntax
19125    }
19126}
19127impl AstNode for SimilarTo {
19128    #[inline]
19129    fn can_cast(kind: SyntaxKind) -> bool {
19130        kind == SyntaxKind::SIMILAR_TO
19131    }
19132    #[inline]
19133    fn cast(syntax: SyntaxNode) -> Option<Self> {
19134        if Self::can_cast(syntax.kind()) {
19135            Some(Self { syntax })
19136        } else {
19137            None
19138        }
19139    }
19140    #[inline]
19141    fn syntax(&self) -> &SyntaxNode {
19142        &self.syntax
19143    }
19144}
19145impl AstNode for SortAsc {
19146    #[inline]
19147    fn can_cast(kind: SyntaxKind) -> bool {
19148        kind == SyntaxKind::SORT_ASC
19149    }
19150    #[inline]
19151    fn cast(syntax: SyntaxNode) -> Option<Self> {
19152        if Self::can_cast(syntax.kind()) {
19153            Some(Self { syntax })
19154        } else {
19155            None
19156        }
19157    }
19158    #[inline]
19159    fn syntax(&self) -> &SyntaxNode {
19160        &self.syntax
19161    }
19162}
19163impl AstNode for SortBy {
19164    #[inline]
19165    fn can_cast(kind: SyntaxKind) -> bool {
19166        kind == SyntaxKind::SORT_BY
19167    }
19168    #[inline]
19169    fn cast(syntax: SyntaxNode) -> Option<Self> {
19170        if Self::can_cast(syntax.kind()) {
19171            Some(Self { syntax })
19172        } else {
19173            None
19174        }
19175    }
19176    #[inline]
19177    fn syntax(&self) -> &SyntaxNode {
19178        &self.syntax
19179    }
19180}
19181impl AstNode for SortByList {
19182    #[inline]
19183    fn can_cast(kind: SyntaxKind) -> bool {
19184        kind == SyntaxKind::SORT_BY_LIST
19185    }
19186    #[inline]
19187    fn cast(syntax: SyntaxNode) -> Option<Self> {
19188        if Self::can_cast(syntax.kind()) {
19189            Some(Self { syntax })
19190        } else {
19191            None
19192        }
19193    }
19194    #[inline]
19195    fn syntax(&self) -> &SyntaxNode {
19196        &self.syntax
19197    }
19198}
19199impl AstNode for SortDesc {
19200    #[inline]
19201    fn can_cast(kind: SyntaxKind) -> bool {
19202        kind == SyntaxKind::SORT_DESC
19203    }
19204    #[inline]
19205    fn cast(syntax: SyntaxNode) -> Option<Self> {
19206        if Self::can_cast(syntax.kind()) {
19207            Some(Self { syntax })
19208        } else {
19209            None
19210        }
19211    }
19212    #[inline]
19213    fn syntax(&self) -> &SyntaxNode {
19214        &self.syntax
19215    }
19216}
19217impl AstNode for SortUsing {
19218    #[inline]
19219    fn can_cast(kind: SyntaxKind) -> bool {
19220        kind == SyntaxKind::SORT_USING
19221    }
19222    #[inline]
19223    fn cast(syntax: SyntaxNode) -> Option<Self> {
19224        if Self::can_cast(syntax.kind()) {
19225            Some(Self { syntax })
19226        } else {
19227            None
19228        }
19229    }
19230    #[inline]
19231    fn syntax(&self) -> &SyntaxNode {
19232        &self.syntax
19233    }
19234}
19235impl AstNode for SourceFile {
19236    #[inline]
19237    fn can_cast(kind: SyntaxKind) -> bool {
19238        kind == SyntaxKind::SOURCE_FILE
19239    }
19240    #[inline]
19241    fn cast(syntax: SyntaxNode) -> Option<Self> {
19242        if Self::can_cast(syntax.kind()) {
19243            Some(Self { syntax })
19244        } else {
19245            None
19246        }
19247    }
19248    #[inline]
19249    fn syntax(&self) -> &SyntaxNode {
19250        &self.syntax
19251    }
19252}
19253impl AstNode for Storage {
19254    #[inline]
19255    fn can_cast(kind: SyntaxKind) -> bool {
19256        kind == SyntaxKind::STORAGE
19257    }
19258    #[inline]
19259    fn cast(syntax: SyntaxNode) -> Option<Self> {
19260        if Self::can_cast(syntax.kind()) {
19261            Some(Self { syntax })
19262        } else {
19263            None
19264        }
19265    }
19266    #[inline]
19267    fn syntax(&self) -> &SyntaxNode {
19268        &self.syntax
19269    }
19270}
19271impl AstNode for StrictFuncOption {
19272    #[inline]
19273    fn can_cast(kind: SyntaxKind) -> bool {
19274        kind == SyntaxKind::STRICT_FUNC_OPTION
19275    }
19276    #[inline]
19277    fn cast(syntax: SyntaxNode) -> Option<Self> {
19278        if Self::can_cast(syntax.kind()) {
19279            Some(Self { syntax })
19280        } else {
19281            None
19282        }
19283    }
19284    #[inline]
19285    fn syntax(&self) -> &SyntaxNode {
19286        &self.syntax
19287    }
19288}
19289impl AstNode for SupportFuncOption {
19290    #[inline]
19291    fn can_cast(kind: SyntaxKind) -> bool {
19292        kind == SyntaxKind::SUPPORT_FUNC_OPTION
19293    }
19294    #[inline]
19295    fn cast(syntax: SyntaxNode) -> Option<Self> {
19296        if Self::can_cast(syntax.kind()) {
19297            Some(Self { syntax })
19298        } else {
19299            None
19300        }
19301    }
19302    #[inline]
19303    fn syntax(&self) -> &SyntaxNode {
19304        &self.syntax
19305    }
19306}
19307impl AstNode for Table {
19308    #[inline]
19309    fn can_cast(kind: SyntaxKind) -> bool {
19310        kind == SyntaxKind::TABLE
19311    }
19312    #[inline]
19313    fn cast(syntax: SyntaxNode) -> Option<Self> {
19314        if Self::can_cast(syntax.kind()) {
19315            Some(Self { syntax })
19316        } else {
19317            None
19318        }
19319    }
19320    #[inline]
19321    fn syntax(&self) -> &SyntaxNode {
19322        &self.syntax
19323    }
19324}
19325impl AstNode for TableArgList {
19326    #[inline]
19327    fn can_cast(kind: SyntaxKind) -> bool {
19328        kind == SyntaxKind::TABLE_ARG_LIST
19329    }
19330    #[inline]
19331    fn cast(syntax: SyntaxNode) -> Option<Self> {
19332        if Self::can_cast(syntax.kind()) {
19333            Some(Self { syntax })
19334        } else {
19335            None
19336        }
19337    }
19338    #[inline]
19339    fn syntax(&self) -> &SyntaxNode {
19340        &self.syntax
19341    }
19342}
19343impl AstNode for TableList {
19344    #[inline]
19345    fn can_cast(kind: SyntaxKind) -> bool {
19346        kind == SyntaxKind::TABLE_LIST
19347    }
19348    #[inline]
19349    fn cast(syntax: SyntaxNode) -> Option<Self> {
19350        if Self::can_cast(syntax.kind()) {
19351            Some(Self { syntax })
19352        } else {
19353            None
19354        }
19355    }
19356    #[inline]
19357    fn syntax(&self) -> &SyntaxNode {
19358        &self.syntax
19359    }
19360}
19361impl AstNode for Tablespace {
19362    #[inline]
19363    fn can_cast(kind: SyntaxKind) -> bool {
19364        kind == SyntaxKind::TABLESPACE
19365    }
19366    #[inline]
19367    fn cast(syntax: SyntaxNode) -> Option<Self> {
19368        if Self::can_cast(syntax.kind()) {
19369            Some(Self { syntax })
19370        } else {
19371            None
19372        }
19373    }
19374    #[inline]
19375    fn syntax(&self) -> &SyntaxNode {
19376        &self.syntax
19377    }
19378}
19379impl AstNode for Target {
19380    #[inline]
19381    fn can_cast(kind: SyntaxKind) -> bool {
19382        kind == SyntaxKind::TARGET
19383    }
19384    #[inline]
19385    fn cast(syntax: SyntaxNode) -> Option<Self> {
19386        if Self::can_cast(syntax.kind()) {
19387            Some(Self { syntax })
19388        } else {
19389            None
19390        }
19391    }
19392    #[inline]
19393    fn syntax(&self) -> &SyntaxNode {
19394        &self.syntax
19395    }
19396}
19397impl AstNode for TargetList {
19398    #[inline]
19399    fn can_cast(kind: SyntaxKind) -> bool {
19400        kind == SyntaxKind::TARGET_LIST
19401    }
19402    #[inline]
19403    fn cast(syntax: SyntaxNode) -> Option<Self> {
19404        if Self::can_cast(syntax.kind()) {
19405            Some(Self { syntax })
19406        } else {
19407            None
19408        }
19409    }
19410    #[inline]
19411    fn syntax(&self) -> &SyntaxNode {
19412        &self.syntax
19413    }
19414}
19415impl AstNode for TimeType {
19416    #[inline]
19417    fn can_cast(kind: SyntaxKind) -> bool {
19418        kind == SyntaxKind::TIME_TYPE
19419    }
19420    #[inline]
19421    fn cast(syntax: SyntaxNode) -> Option<Self> {
19422        if Self::can_cast(syntax.kind()) {
19423            Some(Self { syntax })
19424        } else {
19425            None
19426        }
19427    }
19428    #[inline]
19429    fn syntax(&self) -> &SyntaxNode {
19430        &self.syntax
19431    }
19432}
19433impl AstNode for TransactionModeList {
19434    #[inline]
19435    fn can_cast(kind: SyntaxKind) -> bool {
19436        kind == SyntaxKind::TRANSACTION_MODE_LIST
19437    }
19438    #[inline]
19439    fn cast(syntax: SyntaxNode) -> Option<Self> {
19440        if Self::can_cast(syntax.kind()) {
19441            Some(Self { syntax })
19442        } else {
19443            None
19444        }
19445    }
19446    #[inline]
19447    fn syntax(&self) -> &SyntaxNode {
19448        &self.syntax
19449    }
19450}
19451impl AstNode for TransformFuncOption {
19452    #[inline]
19453    fn can_cast(kind: SyntaxKind) -> bool {
19454        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
19455    }
19456    #[inline]
19457    fn cast(syntax: SyntaxNode) -> Option<Self> {
19458        if Self::can_cast(syntax.kind()) {
19459            Some(Self { syntax })
19460        } else {
19461            None
19462        }
19463    }
19464    #[inline]
19465    fn syntax(&self) -> &SyntaxNode {
19466        &self.syntax
19467    }
19468}
19469impl AstNode for Truncate {
19470    #[inline]
19471    fn can_cast(kind: SyntaxKind) -> bool {
19472        kind == SyntaxKind::TRUNCATE
19473    }
19474    #[inline]
19475    fn cast(syntax: SyntaxNode) -> Option<Self> {
19476        if Self::can_cast(syntax.kind()) {
19477            Some(Self { syntax })
19478        } else {
19479            None
19480        }
19481    }
19482    #[inline]
19483    fn syntax(&self) -> &SyntaxNode {
19484        &self.syntax
19485    }
19486}
19487impl AstNode for TupleExpr {
19488    #[inline]
19489    fn can_cast(kind: SyntaxKind) -> bool {
19490        kind == SyntaxKind::TUPLE_EXPR
19491    }
19492    #[inline]
19493    fn cast(syntax: SyntaxNode) -> Option<Self> {
19494        if Self::can_cast(syntax.kind()) {
19495            Some(Self { syntax })
19496        } else {
19497            None
19498        }
19499    }
19500    #[inline]
19501    fn syntax(&self) -> &SyntaxNode {
19502        &self.syntax
19503    }
19504}
19505impl AstNode for UnicodeNormalForm {
19506    #[inline]
19507    fn can_cast(kind: SyntaxKind) -> bool {
19508        kind == SyntaxKind::UNICODE_NORMAL_FORM
19509    }
19510    #[inline]
19511    fn cast(syntax: SyntaxNode) -> Option<Self> {
19512        if Self::can_cast(syntax.kind()) {
19513            Some(Self { syntax })
19514        } else {
19515            None
19516        }
19517    }
19518    #[inline]
19519    fn syntax(&self) -> &SyntaxNode {
19520        &self.syntax
19521    }
19522}
19523impl AstNode for UniqueConstraint {
19524    #[inline]
19525    fn can_cast(kind: SyntaxKind) -> bool {
19526        kind == SyntaxKind::UNIQUE_CONSTRAINT
19527    }
19528    #[inline]
19529    fn cast(syntax: SyntaxNode) -> Option<Self> {
19530        if Self::can_cast(syntax.kind()) {
19531            Some(Self { syntax })
19532        } else {
19533            None
19534        }
19535    }
19536    #[inline]
19537    fn syntax(&self) -> &SyntaxNode {
19538        &self.syntax
19539    }
19540}
19541impl AstNode for Unlisten {
19542    #[inline]
19543    fn can_cast(kind: SyntaxKind) -> bool {
19544        kind == SyntaxKind::UNLISTEN
19545    }
19546    #[inline]
19547    fn cast(syntax: SyntaxNode) -> Option<Self> {
19548        if Self::can_cast(syntax.kind()) {
19549            Some(Self { syntax })
19550        } else {
19551            None
19552        }
19553    }
19554    #[inline]
19555    fn syntax(&self) -> &SyntaxNode {
19556        &self.syntax
19557    }
19558}
19559impl AstNode for Update {
19560    #[inline]
19561    fn can_cast(kind: SyntaxKind) -> bool {
19562        kind == SyntaxKind::UPDATE
19563    }
19564    #[inline]
19565    fn cast(syntax: SyntaxNode) -> Option<Self> {
19566        if Self::can_cast(syntax.kind()) {
19567            Some(Self { syntax })
19568        } else {
19569            None
19570        }
19571    }
19572    #[inline]
19573    fn syntax(&self) -> &SyntaxNode {
19574        &self.syntax
19575    }
19576}
19577impl AstNode for UsingClause {
19578    #[inline]
19579    fn can_cast(kind: SyntaxKind) -> bool {
19580        kind == SyntaxKind::USING_CLAUSE
19581    }
19582    #[inline]
19583    fn cast(syntax: SyntaxNode) -> Option<Self> {
19584        if Self::can_cast(syntax.kind()) {
19585            Some(Self { syntax })
19586        } else {
19587            None
19588        }
19589    }
19590    #[inline]
19591    fn syntax(&self) -> &SyntaxNode {
19592        &self.syntax
19593    }
19594}
19595impl AstNode for UsingIndex {
19596    #[inline]
19597    fn can_cast(kind: SyntaxKind) -> bool {
19598        kind == SyntaxKind::USING_INDEX
19599    }
19600    #[inline]
19601    fn cast(syntax: SyntaxNode) -> Option<Self> {
19602        if Self::can_cast(syntax.kind()) {
19603            Some(Self { syntax })
19604        } else {
19605            None
19606        }
19607    }
19608    #[inline]
19609    fn syntax(&self) -> &SyntaxNode {
19610        &self.syntax
19611    }
19612}
19613impl AstNode for UsingMethod {
19614    #[inline]
19615    fn can_cast(kind: SyntaxKind) -> bool {
19616        kind == SyntaxKind::USING_METHOD
19617    }
19618    #[inline]
19619    fn cast(syntax: SyntaxNode) -> Option<Self> {
19620        if Self::can_cast(syntax.kind()) {
19621            Some(Self { syntax })
19622        } else {
19623            None
19624        }
19625    }
19626    #[inline]
19627    fn syntax(&self) -> &SyntaxNode {
19628        &self.syntax
19629    }
19630}
19631impl AstNode for Vacuum {
19632    #[inline]
19633    fn can_cast(kind: SyntaxKind) -> bool {
19634        kind == SyntaxKind::VACUUM
19635    }
19636    #[inline]
19637    fn cast(syntax: SyntaxNode) -> Option<Self> {
19638        if Self::can_cast(syntax.kind()) {
19639            Some(Self { syntax })
19640        } else {
19641            None
19642        }
19643    }
19644    #[inline]
19645    fn syntax(&self) -> &SyntaxNode {
19646        &self.syntax
19647    }
19648}
19649impl AstNode for VacuumOption {
19650    #[inline]
19651    fn can_cast(kind: SyntaxKind) -> bool {
19652        kind == SyntaxKind::VACUUM_OPTION
19653    }
19654    #[inline]
19655    fn cast(syntax: SyntaxNode) -> Option<Self> {
19656        if Self::can_cast(syntax.kind()) {
19657            Some(Self { syntax })
19658        } else {
19659            None
19660        }
19661    }
19662    #[inline]
19663    fn syntax(&self) -> &SyntaxNode {
19664        &self.syntax
19665    }
19666}
19667impl AstNode for VacuumOptionList {
19668    #[inline]
19669    fn can_cast(kind: SyntaxKind) -> bool {
19670        kind == SyntaxKind::VACUUM_OPTION_LIST
19671    }
19672    #[inline]
19673    fn cast(syntax: SyntaxNode) -> Option<Self> {
19674        if Self::can_cast(syntax.kind()) {
19675            Some(Self { syntax })
19676        } else {
19677            None
19678        }
19679    }
19680    #[inline]
19681    fn syntax(&self) -> &SyntaxNode {
19682        &self.syntax
19683    }
19684}
19685impl AstNode for ValidateConstraint {
19686    #[inline]
19687    fn can_cast(kind: SyntaxKind) -> bool {
19688        kind == SyntaxKind::VALIDATE_CONSTRAINT
19689    }
19690    #[inline]
19691    fn cast(syntax: SyntaxNode) -> Option<Self> {
19692        if Self::can_cast(syntax.kind()) {
19693            Some(Self { syntax })
19694        } else {
19695            None
19696        }
19697    }
19698    #[inline]
19699    fn syntax(&self) -> &SyntaxNode {
19700        &self.syntax
19701    }
19702}
19703impl AstNode for Values {
19704    #[inline]
19705    fn can_cast(kind: SyntaxKind) -> bool {
19706        kind == SyntaxKind::VALUES
19707    }
19708    #[inline]
19709    fn cast(syntax: SyntaxNode) -> Option<Self> {
19710        if Self::can_cast(syntax.kind()) {
19711            Some(Self { syntax })
19712        } else {
19713            None
19714        }
19715    }
19716    #[inline]
19717    fn syntax(&self) -> &SyntaxNode {
19718        &self.syntax
19719    }
19720}
19721impl AstNode for Variant {
19722    #[inline]
19723    fn can_cast(kind: SyntaxKind) -> bool {
19724        kind == SyntaxKind::VARIANT
19725    }
19726    #[inline]
19727    fn cast(syntax: SyntaxNode) -> Option<Self> {
19728        if Self::can_cast(syntax.kind()) {
19729            Some(Self { syntax })
19730        } else {
19731            None
19732        }
19733    }
19734    #[inline]
19735    fn syntax(&self) -> &SyntaxNode {
19736        &self.syntax
19737    }
19738}
19739impl AstNode for VariantList {
19740    #[inline]
19741    fn can_cast(kind: SyntaxKind) -> bool {
19742        kind == SyntaxKind::VARIANT_LIST
19743    }
19744    #[inline]
19745    fn cast(syntax: SyntaxNode) -> Option<Self> {
19746        if Self::can_cast(syntax.kind()) {
19747            Some(Self { syntax })
19748        } else {
19749            None
19750        }
19751    }
19752    #[inline]
19753    fn syntax(&self) -> &SyntaxNode {
19754        &self.syntax
19755    }
19756}
19757impl AstNode for VolatilityFuncOption {
19758    #[inline]
19759    fn can_cast(kind: SyntaxKind) -> bool {
19760        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
19761    }
19762    #[inline]
19763    fn cast(syntax: SyntaxNode) -> Option<Self> {
19764        if Self::can_cast(syntax.kind()) {
19765            Some(Self { syntax })
19766        } else {
19767            None
19768        }
19769    }
19770    #[inline]
19771    fn syntax(&self) -> &SyntaxNode {
19772        &self.syntax
19773    }
19774}
19775impl AstNode for WhenClause {
19776    #[inline]
19777    fn can_cast(kind: SyntaxKind) -> bool {
19778        kind == SyntaxKind::WHEN_CLAUSE
19779    }
19780    #[inline]
19781    fn cast(syntax: SyntaxNode) -> Option<Self> {
19782        if Self::can_cast(syntax.kind()) {
19783            Some(Self { syntax })
19784        } else {
19785            None
19786        }
19787    }
19788    #[inline]
19789    fn syntax(&self) -> &SyntaxNode {
19790        &self.syntax
19791    }
19792}
19793impl AstNode for WhenClauseList {
19794    #[inline]
19795    fn can_cast(kind: SyntaxKind) -> bool {
19796        kind == SyntaxKind::WHEN_CLAUSE_LIST
19797    }
19798    #[inline]
19799    fn cast(syntax: SyntaxNode) -> Option<Self> {
19800        if Self::can_cast(syntax.kind()) {
19801            Some(Self { syntax })
19802        } else {
19803            None
19804        }
19805    }
19806    #[inline]
19807    fn syntax(&self) -> &SyntaxNode {
19808        &self.syntax
19809    }
19810}
19811impl AstNode for WhereClause {
19812    #[inline]
19813    fn can_cast(kind: SyntaxKind) -> bool {
19814        kind == SyntaxKind::WHERE_CLAUSE
19815    }
19816    #[inline]
19817    fn cast(syntax: SyntaxNode) -> Option<Self> {
19818        if Self::can_cast(syntax.kind()) {
19819            Some(Self { syntax })
19820        } else {
19821            None
19822        }
19823    }
19824    #[inline]
19825    fn syntax(&self) -> &SyntaxNode {
19826        &self.syntax
19827    }
19828}
19829impl AstNode for WindowClause {
19830    #[inline]
19831    fn can_cast(kind: SyntaxKind) -> bool {
19832        kind == SyntaxKind::WINDOW_CLAUSE
19833    }
19834    #[inline]
19835    fn cast(syntax: SyntaxNode) -> Option<Self> {
19836        if Self::can_cast(syntax.kind()) {
19837            Some(Self { syntax })
19838        } else {
19839            None
19840        }
19841    }
19842    #[inline]
19843    fn syntax(&self) -> &SyntaxNode {
19844        &self.syntax
19845    }
19846}
19847impl AstNode for WindowDef {
19848    #[inline]
19849    fn can_cast(kind: SyntaxKind) -> bool {
19850        kind == SyntaxKind::WINDOW_DEF
19851    }
19852    #[inline]
19853    fn cast(syntax: SyntaxNode) -> Option<Self> {
19854        if Self::can_cast(syntax.kind()) {
19855            Some(Self { syntax })
19856        } else {
19857            None
19858        }
19859    }
19860    #[inline]
19861    fn syntax(&self) -> &SyntaxNode {
19862        &self.syntax
19863    }
19864}
19865impl AstNode for WindowFuncOption {
19866    #[inline]
19867    fn can_cast(kind: SyntaxKind) -> bool {
19868        kind == SyntaxKind::WINDOW_FUNC_OPTION
19869    }
19870    #[inline]
19871    fn cast(syntax: SyntaxNode) -> Option<Self> {
19872        if Self::can_cast(syntax.kind()) {
19873            Some(Self { syntax })
19874        } else {
19875            None
19876        }
19877    }
19878    #[inline]
19879    fn syntax(&self) -> &SyntaxNode {
19880        &self.syntax
19881    }
19882}
19883impl AstNode for WindowSpec {
19884    #[inline]
19885    fn can_cast(kind: SyntaxKind) -> bool {
19886        kind == SyntaxKind::WINDOW_SPEC
19887    }
19888    #[inline]
19889    fn cast(syntax: SyntaxNode) -> Option<Self> {
19890        if Self::can_cast(syntax.kind()) {
19891            Some(Self { syntax })
19892        } else {
19893            None
19894        }
19895    }
19896    #[inline]
19897    fn syntax(&self) -> &SyntaxNode {
19898        &self.syntax
19899    }
19900}
19901impl AstNode for WithClause {
19902    #[inline]
19903    fn can_cast(kind: SyntaxKind) -> bool {
19904        kind == SyntaxKind::WITH_CLAUSE
19905    }
19906    #[inline]
19907    fn cast(syntax: SyntaxNode) -> Option<Self> {
19908        if Self::can_cast(syntax.kind()) {
19909            Some(Self { syntax })
19910        } else {
19911            None
19912        }
19913    }
19914    #[inline]
19915    fn syntax(&self) -> &SyntaxNode {
19916        &self.syntax
19917    }
19918}
19919impl AstNode for WithData {
19920    #[inline]
19921    fn can_cast(kind: SyntaxKind) -> bool {
19922        kind == SyntaxKind::WITH_DATA
19923    }
19924    #[inline]
19925    fn cast(syntax: SyntaxNode) -> Option<Self> {
19926        if Self::can_cast(syntax.kind()) {
19927            Some(Self { syntax })
19928        } else {
19929            None
19930        }
19931    }
19932    #[inline]
19933    fn syntax(&self) -> &SyntaxNode {
19934        &self.syntax
19935    }
19936}
19937impl AstNode for WithNoData {
19938    #[inline]
19939    fn can_cast(kind: SyntaxKind) -> bool {
19940        kind == SyntaxKind::WITH_NO_DATA
19941    }
19942    #[inline]
19943    fn cast(syntax: SyntaxNode) -> Option<Self> {
19944        if Self::can_cast(syntax.kind()) {
19945            Some(Self { syntax })
19946        } else {
19947            None
19948        }
19949    }
19950    #[inline]
19951    fn syntax(&self) -> &SyntaxNode {
19952        &self.syntax
19953    }
19954}
19955impl AstNode for WithOptions {
19956    #[inline]
19957    fn can_cast(kind: SyntaxKind) -> bool {
19958        kind == SyntaxKind::WITH_OPTIONS
19959    }
19960    #[inline]
19961    fn cast(syntax: SyntaxNode) -> Option<Self> {
19962        if Self::can_cast(syntax.kind()) {
19963            Some(Self { syntax })
19964        } else {
19965            None
19966        }
19967    }
19968    #[inline]
19969    fn syntax(&self) -> &SyntaxNode {
19970        &self.syntax
19971    }
19972}
19973impl AstNode for WithParams {
19974    #[inline]
19975    fn can_cast(kind: SyntaxKind) -> bool {
19976        kind == SyntaxKind::WITH_PARAMS
19977    }
19978    #[inline]
19979    fn cast(syntax: SyntaxNode) -> Option<Self> {
19980        if Self::can_cast(syntax.kind()) {
19981            Some(Self { syntax })
19982        } else {
19983            None
19984        }
19985    }
19986    #[inline]
19987    fn syntax(&self) -> &SyntaxNode {
19988        &self.syntax
19989    }
19990}
19991impl AstNode for WithTable {
19992    #[inline]
19993    fn can_cast(kind: SyntaxKind) -> bool {
19994        kind == SyntaxKind::WITH_TABLE
19995    }
19996    #[inline]
19997    fn cast(syntax: SyntaxNode) -> Option<Self> {
19998        if Self::can_cast(syntax.kind()) {
19999            Some(Self { syntax })
20000        } else {
20001            None
20002        }
20003    }
20004    #[inline]
20005    fn syntax(&self) -> &SyntaxNode {
20006        &self.syntax
20007    }
20008}
20009impl AstNode for WithTimezone {
20010    #[inline]
20011    fn can_cast(kind: SyntaxKind) -> bool {
20012        kind == SyntaxKind::WITH_TIMEZONE
20013    }
20014    #[inline]
20015    fn cast(syntax: SyntaxNode) -> Option<Self> {
20016        if Self::can_cast(syntax.kind()) {
20017            Some(Self { syntax })
20018        } else {
20019            None
20020        }
20021    }
20022    #[inline]
20023    fn syntax(&self) -> &SyntaxNode {
20024        &self.syntax
20025    }
20026}
20027impl AstNode for WithinClause {
20028    #[inline]
20029    fn can_cast(kind: SyntaxKind) -> bool {
20030        kind == SyntaxKind::WITHIN_CLAUSE
20031    }
20032    #[inline]
20033    fn cast(syntax: SyntaxNode) -> Option<Self> {
20034        if Self::can_cast(syntax.kind()) {
20035            Some(Self { syntax })
20036        } else {
20037            None
20038        }
20039    }
20040    #[inline]
20041    fn syntax(&self) -> &SyntaxNode {
20042        &self.syntax
20043    }
20044}
20045impl AstNode for WithoutOids {
20046    #[inline]
20047    fn can_cast(kind: SyntaxKind) -> bool {
20048        kind == SyntaxKind::WITHOUT_OIDS
20049    }
20050    #[inline]
20051    fn cast(syntax: SyntaxNode) -> Option<Self> {
20052        if Self::can_cast(syntax.kind()) {
20053            Some(Self { syntax })
20054        } else {
20055            None
20056        }
20057    }
20058    #[inline]
20059    fn syntax(&self) -> &SyntaxNode {
20060        &self.syntax
20061    }
20062}
20063impl AstNode for WithoutTimezone {
20064    #[inline]
20065    fn can_cast(kind: SyntaxKind) -> bool {
20066        kind == SyntaxKind::WITHOUT_TIMEZONE
20067    }
20068    #[inline]
20069    fn cast(syntax: SyntaxNode) -> Option<Self> {
20070        if Self::can_cast(syntax.kind()) {
20071            Some(Self { syntax })
20072        } else {
20073            None
20074        }
20075    }
20076    #[inline]
20077    fn syntax(&self) -> &SyntaxNode {
20078        &self.syntax
20079    }
20080}
20081impl AstNode for XmlColumnOption {
20082    #[inline]
20083    fn can_cast(kind: SyntaxKind) -> bool {
20084        kind == SyntaxKind::XML_COLUMN_OPTION
20085    }
20086    #[inline]
20087    fn cast(syntax: SyntaxNode) -> Option<Self> {
20088        if Self::can_cast(syntax.kind()) {
20089            Some(Self { syntax })
20090        } else {
20091            None
20092        }
20093    }
20094    #[inline]
20095    fn syntax(&self) -> &SyntaxNode {
20096        &self.syntax
20097    }
20098}
20099impl AstNode for XmlColumnOptionList {
20100    #[inline]
20101    fn can_cast(kind: SyntaxKind) -> bool {
20102        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
20103    }
20104    #[inline]
20105    fn cast(syntax: SyntaxNode) -> Option<Self> {
20106        if Self::can_cast(syntax.kind()) {
20107            Some(Self { syntax })
20108        } else {
20109            None
20110        }
20111    }
20112    #[inline]
20113    fn syntax(&self) -> &SyntaxNode {
20114        &self.syntax
20115    }
20116}
20117impl AstNode for XmlTableColumn {
20118    #[inline]
20119    fn can_cast(kind: SyntaxKind) -> bool {
20120        kind == SyntaxKind::XML_TABLE_COLUMN
20121    }
20122    #[inline]
20123    fn cast(syntax: SyntaxNode) -> Option<Self> {
20124        if Self::can_cast(syntax.kind()) {
20125            Some(Self { syntax })
20126        } else {
20127            None
20128        }
20129    }
20130    #[inline]
20131    fn syntax(&self) -> &SyntaxNode {
20132        &self.syntax
20133    }
20134}
20135impl AstNode for XmlTableColumnList {
20136    #[inline]
20137    fn can_cast(kind: SyntaxKind) -> bool {
20138        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
20139    }
20140    #[inline]
20141    fn cast(syntax: SyntaxNode) -> Option<Self> {
20142        if Self::can_cast(syntax.kind()) {
20143            Some(Self { syntax })
20144        } else {
20145            None
20146        }
20147    }
20148    #[inline]
20149    fn syntax(&self) -> &SyntaxNode {
20150        &self.syntax
20151    }
20152}
20153impl AstNode for AlterColumnOption {
20154    #[inline]
20155    fn can_cast(kind: SyntaxKind) -> bool {
20156        matches!(
20157            kind,
20158            SyntaxKind::ADD_GENERATED
20159                | SyntaxKind::DROP_DEFAULT
20160                | SyntaxKind::DROP_EXPRESSION
20161                | SyntaxKind::DROP_IDENTITY
20162                | SyntaxKind::DROP_NOT_NULL
20163                | SyntaxKind::RESET_OPTIONS
20164                | SyntaxKind::RESTART
20165                | SyntaxKind::SET_COMPRESSION
20166                | SyntaxKind::SET_DEFAULT
20167                | SyntaxKind::SET_EXPRESSION
20168                | SyntaxKind::SET_GENERATED
20169                | SyntaxKind::SET_GENERATED_OPTIONS
20170                | SyntaxKind::SET_NOT_NULL
20171                | SyntaxKind::SET_OPTIONS
20172                | SyntaxKind::SET_SEQUENCE_OPTION
20173                | SyntaxKind::SET_STATISTICS
20174                | SyntaxKind::SET_STORAGE
20175                | SyntaxKind::SET_TYPE
20176        )
20177    }
20178    #[inline]
20179    fn cast(syntax: SyntaxNode) -> Option<Self> {
20180        let res = match syntax.kind() {
20181            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
20182            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
20183            SyntaxKind::DROP_EXPRESSION => {
20184                AlterColumnOption::DropExpression(DropExpression { syntax })
20185            }
20186            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
20187            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
20188            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
20189            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
20190            SyntaxKind::SET_COMPRESSION => {
20191                AlterColumnOption::SetCompression(SetCompression { syntax })
20192            }
20193            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
20194            SyntaxKind::SET_EXPRESSION => {
20195                AlterColumnOption::SetExpression(SetExpression { syntax })
20196            }
20197            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
20198            SyntaxKind::SET_GENERATED_OPTIONS => {
20199                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
20200            }
20201            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
20202            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
20203            SyntaxKind::SET_SEQUENCE_OPTION => {
20204                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
20205            }
20206            SyntaxKind::SET_STATISTICS => {
20207                AlterColumnOption::SetStatistics(SetStatistics { syntax })
20208            }
20209            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
20210            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
20211            _ => {
20212                return None;
20213            }
20214        };
20215        Some(res)
20216    }
20217    #[inline]
20218    fn syntax(&self) -> &SyntaxNode {
20219        match self {
20220            AlterColumnOption::AddGenerated(it) => &it.syntax,
20221            AlterColumnOption::DropDefault(it) => &it.syntax,
20222            AlterColumnOption::DropExpression(it) => &it.syntax,
20223            AlterColumnOption::DropIdentity(it) => &it.syntax,
20224            AlterColumnOption::DropNotNull(it) => &it.syntax,
20225            AlterColumnOption::ResetOptions(it) => &it.syntax,
20226            AlterColumnOption::Restart(it) => &it.syntax,
20227            AlterColumnOption::SetCompression(it) => &it.syntax,
20228            AlterColumnOption::SetDefault(it) => &it.syntax,
20229            AlterColumnOption::SetExpression(it) => &it.syntax,
20230            AlterColumnOption::SetGenerated(it) => &it.syntax,
20231            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
20232            AlterColumnOption::SetNotNull(it) => &it.syntax,
20233            AlterColumnOption::SetOptions(it) => &it.syntax,
20234            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
20235            AlterColumnOption::SetStatistics(it) => &it.syntax,
20236            AlterColumnOption::SetStorage(it) => &it.syntax,
20237            AlterColumnOption::SetType(it) => &it.syntax,
20238        }
20239    }
20240}
20241impl From<AddGenerated> for AlterColumnOption {
20242    #[inline]
20243    fn from(node: AddGenerated) -> AlterColumnOption {
20244        AlterColumnOption::AddGenerated(node)
20245    }
20246}
20247impl From<DropDefault> for AlterColumnOption {
20248    #[inline]
20249    fn from(node: DropDefault) -> AlterColumnOption {
20250        AlterColumnOption::DropDefault(node)
20251    }
20252}
20253impl From<DropExpression> for AlterColumnOption {
20254    #[inline]
20255    fn from(node: DropExpression) -> AlterColumnOption {
20256        AlterColumnOption::DropExpression(node)
20257    }
20258}
20259impl From<DropIdentity> for AlterColumnOption {
20260    #[inline]
20261    fn from(node: DropIdentity) -> AlterColumnOption {
20262        AlterColumnOption::DropIdentity(node)
20263    }
20264}
20265impl From<DropNotNull> for AlterColumnOption {
20266    #[inline]
20267    fn from(node: DropNotNull) -> AlterColumnOption {
20268        AlterColumnOption::DropNotNull(node)
20269    }
20270}
20271impl From<ResetOptions> for AlterColumnOption {
20272    #[inline]
20273    fn from(node: ResetOptions) -> AlterColumnOption {
20274        AlterColumnOption::ResetOptions(node)
20275    }
20276}
20277impl From<Restart> for AlterColumnOption {
20278    #[inline]
20279    fn from(node: Restart) -> AlterColumnOption {
20280        AlterColumnOption::Restart(node)
20281    }
20282}
20283impl From<SetCompression> for AlterColumnOption {
20284    #[inline]
20285    fn from(node: SetCompression) -> AlterColumnOption {
20286        AlterColumnOption::SetCompression(node)
20287    }
20288}
20289impl From<SetDefault> for AlterColumnOption {
20290    #[inline]
20291    fn from(node: SetDefault) -> AlterColumnOption {
20292        AlterColumnOption::SetDefault(node)
20293    }
20294}
20295impl From<SetExpression> for AlterColumnOption {
20296    #[inline]
20297    fn from(node: SetExpression) -> AlterColumnOption {
20298        AlterColumnOption::SetExpression(node)
20299    }
20300}
20301impl From<SetGenerated> for AlterColumnOption {
20302    #[inline]
20303    fn from(node: SetGenerated) -> AlterColumnOption {
20304        AlterColumnOption::SetGenerated(node)
20305    }
20306}
20307impl From<SetGeneratedOptions> for AlterColumnOption {
20308    #[inline]
20309    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
20310        AlterColumnOption::SetGeneratedOptions(node)
20311    }
20312}
20313impl From<SetNotNull> for AlterColumnOption {
20314    #[inline]
20315    fn from(node: SetNotNull) -> AlterColumnOption {
20316        AlterColumnOption::SetNotNull(node)
20317    }
20318}
20319impl From<SetOptions> for AlterColumnOption {
20320    #[inline]
20321    fn from(node: SetOptions) -> AlterColumnOption {
20322        AlterColumnOption::SetOptions(node)
20323    }
20324}
20325impl From<SetSequenceOption> for AlterColumnOption {
20326    #[inline]
20327    fn from(node: SetSequenceOption) -> AlterColumnOption {
20328        AlterColumnOption::SetSequenceOption(node)
20329    }
20330}
20331impl From<SetStatistics> for AlterColumnOption {
20332    #[inline]
20333    fn from(node: SetStatistics) -> AlterColumnOption {
20334        AlterColumnOption::SetStatistics(node)
20335    }
20336}
20337impl From<SetStorage> for AlterColumnOption {
20338    #[inline]
20339    fn from(node: SetStorage) -> AlterColumnOption {
20340        AlterColumnOption::SetStorage(node)
20341    }
20342}
20343impl From<SetType> for AlterColumnOption {
20344    #[inline]
20345    fn from(node: SetType) -> AlterColumnOption {
20346        AlterColumnOption::SetType(node)
20347    }
20348}
20349impl AstNode for AlterDomainAction {
20350    #[inline]
20351    fn can_cast(kind: SyntaxKind) -> bool {
20352        matches!(
20353            kind,
20354            SyntaxKind::ADD_CONSTRAINT
20355                | SyntaxKind::DROP_CONSTRAINT
20356                | SyntaxKind::DROP_DEFAULT
20357                | SyntaxKind::DROP_NOT_NULL
20358                | SyntaxKind::OWNER_TO
20359                | SyntaxKind::RENAME_CONSTRAINT
20360                | SyntaxKind::RENAME_TO
20361                | SyntaxKind::SET_DEFAULT
20362                | SyntaxKind::SET_NOT_NULL
20363                | SyntaxKind::SET_SCHEMA
20364                | SyntaxKind::VALIDATE_CONSTRAINT
20365        )
20366    }
20367    #[inline]
20368    fn cast(syntax: SyntaxNode) -> Option<Self> {
20369        let res = match syntax.kind() {
20370            SyntaxKind::ADD_CONSTRAINT => {
20371                AlterDomainAction::AddConstraint(AddConstraint { syntax })
20372            }
20373            SyntaxKind::DROP_CONSTRAINT => {
20374                AlterDomainAction::DropConstraint(DropConstraint { syntax })
20375            }
20376            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
20377            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
20378            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
20379            SyntaxKind::RENAME_CONSTRAINT => {
20380                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
20381            }
20382            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
20383            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
20384            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
20385            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
20386            SyntaxKind::VALIDATE_CONSTRAINT => {
20387                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
20388            }
20389            _ => {
20390                return None;
20391            }
20392        };
20393        Some(res)
20394    }
20395    #[inline]
20396    fn syntax(&self) -> &SyntaxNode {
20397        match self {
20398            AlterDomainAction::AddConstraint(it) => &it.syntax,
20399            AlterDomainAction::DropConstraint(it) => &it.syntax,
20400            AlterDomainAction::DropDefault(it) => &it.syntax,
20401            AlterDomainAction::DropNotNull(it) => &it.syntax,
20402            AlterDomainAction::OwnerTo(it) => &it.syntax,
20403            AlterDomainAction::RenameConstraint(it) => &it.syntax,
20404            AlterDomainAction::RenameTo(it) => &it.syntax,
20405            AlterDomainAction::SetDefault(it) => &it.syntax,
20406            AlterDomainAction::SetNotNull(it) => &it.syntax,
20407            AlterDomainAction::SetSchema(it) => &it.syntax,
20408            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
20409        }
20410    }
20411}
20412impl From<AddConstraint> for AlterDomainAction {
20413    #[inline]
20414    fn from(node: AddConstraint) -> AlterDomainAction {
20415        AlterDomainAction::AddConstraint(node)
20416    }
20417}
20418impl From<DropConstraint> for AlterDomainAction {
20419    #[inline]
20420    fn from(node: DropConstraint) -> AlterDomainAction {
20421        AlterDomainAction::DropConstraint(node)
20422    }
20423}
20424impl From<DropDefault> for AlterDomainAction {
20425    #[inline]
20426    fn from(node: DropDefault) -> AlterDomainAction {
20427        AlterDomainAction::DropDefault(node)
20428    }
20429}
20430impl From<DropNotNull> for AlterDomainAction {
20431    #[inline]
20432    fn from(node: DropNotNull) -> AlterDomainAction {
20433        AlterDomainAction::DropNotNull(node)
20434    }
20435}
20436impl From<OwnerTo> for AlterDomainAction {
20437    #[inline]
20438    fn from(node: OwnerTo) -> AlterDomainAction {
20439        AlterDomainAction::OwnerTo(node)
20440    }
20441}
20442impl From<RenameConstraint> for AlterDomainAction {
20443    #[inline]
20444    fn from(node: RenameConstraint) -> AlterDomainAction {
20445        AlterDomainAction::RenameConstraint(node)
20446    }
20447}
20448impl From<RenameTo> for AlterDomainAction {
20449    #[inline]
20450    fn from(node: RenameTo) -> AlterDomainAction {
20451        AlterDomainAction::RenameTo(node)
20452    }
20453}
20454impl From<SetDefault> for AlterDomainAction {
20455    #[inline]
20456    fn from(node: SetDefault) -> AlterDomainAction {
20457        AlterDomainAction::SetDefault(node)
20458    }
20459}
20460impl From<SetNotNull> for AlterDomainAction {
20461    #[inline]
20462    fn from(node: SetNotNull) -> AlterDomainAction {
20463        AlterDomainAction::SetNotNull(node)
20464    }
20465}
20466impl From<SetSchema> for AlterDomainAction {
20467    #[inline]
20468    fn from(node: SetSchema) -> AlterDomainAction {
20469        AlterDomainAction::SetSchema(node)
20470    }
20471}
20472impl From<ValidateConstraint> for AlterDomainAction {
20473    #[inline]
20474    fn from(node: ValidateConstraint) -> AlterDomainAction {
20475        AlterDomainAction::ValidateConstraint(node)
20476    }
20477}
20478impl AstNode for AlterTableAction {
20479    #[inline]
20480    fn can_cast(kind: SyntaxKind) -> bool {
20481        matches!(
20482            kind,
20483            SyntaxKind::ADD_COLUMN
20484                | SyntaxKind::ADD_CONSTRAINT
20485                | SyntaxKind::ALTER_COLUMN
20486                | SyntaxKind::ALTER_CONSTRAINT
20487                | SyntaxKind::ATTACH_PARTITION
20488                | SyntaxKind::CLUSTER_ON
20489                | SyntaxKind::DETACH_PARTITION
20490                | SyntaxKind::DISABLE_RLS
20491                | SyntaxKind::DISABLE_RULE
20492                | SyntaxKind::DISABLE_TRIGGER
20493                | SyntaxKind::DROP_COLUMN
20494                | SyntaxKind::DROP_CONSTRAINT
20495                | SyntaxKind::ENABLE_ALWAYS_RULE
20496                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
20497                | SyntaxKind::ENABLE_REPLICA_RULE
20498                | SyntaxKind::ENABLE_REPLICA_TRIGGER
20499                | SyntaxKind::ENABLE_RLS
20500                | SyntaxKind::ENABLE_RULE
20501                | SyntaxKind::ENABLE_TRIGGER
20502                | SyntaxKind::FORCE_RLS
20503                | SyntaxKind::INHERIT
20504                | SyntaxKind::NO_FORCE_RLS
20505                | SyntaxKind::NO_INHERIT
20506                | SyntaxKind::NOT_OF
20507                | SyntaxKind::OF_TYPE
20508                | SyntaxKind::OPTIONS_LIST
20509                | SyntaxKind::OWNER_TO
20510                | SyntaxKind::RENAME_COLUMN
20511                | SyntaxKind::RENAME_CONSTRAINT
20512                | SyntaxKind::RENAME_TABLE
20513                | SyntaxKind::REPLICA_IDENTITY
20514                | SyntaxKind::RESET_STORAGE_PARAMS
20515                | SyntaxKind::SET_ACCESS_METHOD
20516                | SyntaxKind::SET_LOGGED
20517                | SyntaxKind::SET_SCHEMA
20518                | SyntaxKind::SET_STORAGE_PARAMS
20519                | SyntaxKind::SET_TABLESPACE
20520                | SyntaxKind::SET_UNLOGGED
20521                | SyntaxKind::SET_WITHOUT_CLUSTER
20522                | SyntaxKind::SET_WITHOUT_OIDS
20523                | SyntaxKind::VALIDATE_CONSTRAINT
20524        )
20525    }
20526    #[inline]
20527    fn cast(syntax: SyntaxNode) -> Option<Self> {
20528        let res = match syntax.kind() {
20529            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
20530            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
20531            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
20532            SyntaxKind::ALTER_CONSTRAINT => {
20533                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
20534            }
20535            SyntaxKind::ATTACH_PARTITION => {
20536                AlterTableAction::AttachPartition(AttachPartition { syntax })
20537            }
20538            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
20539            SyntaxKind::DETACH_PARTITION => {
20540                AlterTableAction::DetachPartition(DetachPartition { syntax })
20541            }
20542            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
20543            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
20544            SyntaxKind::DISABLE_TRIGGER => {
20545                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
20546            }
20547            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
20548            SyntaxKind::DROP_CONSTRAINT => {
20549                AlterTableAction::DropConstraint(DropConstraint { syntax })
20550            }
20551            SyntaxKind::ENABLE_ALWAYS_RULE => {
20552                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
20553            }
20554            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
20555                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
20556            }
20557            SyntaxKind::ENABLE_REPLICA_RULE => {
20558                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
20559            }
20560            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
20561                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
20562            }
20563            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
20564            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
20565            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
20566            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
20567            SyntaxKind::INHERIT => AlterTableAction::Inherit(Inherit { syntax }),
20568            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
20569            SyntaxKind::NO_INHERIT => AlterTableAction::NoInherit(NoInherit { syntax }),
20570            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
20571            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
20572            SyntaxKind::OPTIONS_LIST => AlterTableAction::OptionsList(OptionsList { syntax }),
20573            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
20574            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
20575            SyntaxKind::RENAME_CONSTRAINT => {
20576                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
20577            }
20578            SyntaxKind::RENAME_TABLE => AlterTableAction::RenameTable(RenameTable { syntax }),
20579            SyntaxKind::REPLICA_IDENTITY => {
20580                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
20581            }
20582            SyntaxKind::RESET_STORAGE_PARAMS => {
20583                AlterTableAction::ResetStorageParams(ResetStorageParams { syntax })
20584            }
20585            SyntaxKind::SET_ACCESS_METHOD => {
20586                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
20587            }
20588            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
20589            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
20590            SyntaxKind::SET_STORAGE_PARAMS => {
20591                AlterTableAction::SetStorageParams(SetStorageParams { syntax })
20592            }
20593            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
20594            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
20595            SyntaxKind::SET_WITHOUT_CLUSTER => {
20596                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
20597            }
20598            SyntaxKind::SET_WITHOUT_OIDS => {
20599                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
20600            }
20601            SyntaxKind::VALIDATE_CONSTRAINT => {
20602                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
20603            }
20604            _ => {
20605                return None;
20606            }
20607        };
20608        Some(res)
20609    }
20610    #[inline]
20611    fn syntax(&self) -> &SyntaxNode {
20612        match self {
20613            AlterTableAction::AddColumn(it) => &it.syntax,
20614            AlterTableAction::AddConstraint(it) => &it.syntax,
20615            AlterTableAction::AlterColumn(it) => &it.syntax,
20616            AlterTableAction::AlterConstraint(it) => &it.syntax,
20617            AlterTableAction::AttachPartition(it) => &it.syntax,
20618            AlterTableAction::ClusterOn(it) => &it.syntax,
20619            AlterTableAction::DetachPartition(it) => &it.syntax,
20620            AlterTableAction::DisableRls(it) => &it.syntax,
20621            AlterTableAction::DisableRule(it) => &it.syntax,
20622            AlterTableAction::DisableTrigger(it) => &it.syntax,
20623            AlterTableAction::DropColumn(it) => &it.syntax,
20624            AlterTableAction::DropConstraint(it) => &it.syntax,
20625            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
20626            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
20627            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
20628            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
20629            AlterTableAction::EnableRls(it) => &it.syntax,
20630            AlterTableAction::EnableRule(it) => &it.syntax,
20631            AlterTableAction::EnableTrigger(it) => &it.syntax,
20632            AlterTableAction::ForceRls(it) => &it.syntax,
20633            AlterTableAction::Inherit(it) => &it.syntax,
20634            AlterTableAction::NoForceRls(it) => &it.syntax,
20635            AlterTableAction::NoInherit(it) => &it.syntax,
20636            AlterTableAction::NotOf(it) => &it.syntax,
20637            AlterTableAction::OfType(it) => &it.syntax,
20638            AlterTableAction::OptionsList(it) => &it.syntax,
20639            AlterTableAction::OwnerTo(it) => &it.syntax,
20640            AlterTableAction::RenameColumn(it) => &it.syntax,
20641            AlterTableAction::RenameConstraint(it) => &it.syntax,
20642            AlterTableAction::RenameTable(it) => &it.syntax,
20643            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
20644            AlterTableAction::ResetStorageParams(it) => &it.syntax,
20645            AlterTableAction::SetAccessMethod(it) => &it.syntax,
20646            AlterTableAction::SetLogged(it) => &it.syntax,
20647            AlterTableAction::SetSchema(it) => &it.syntax,
20648            AlterTableAction::SetStorageParams(it) => &it.syntax,
20649            AlterTableAction::SetTablespace(it) => &it.syntax,
20650            AlterTableAction::SetUnlogged(it) => &it.syntax,
20651            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
20652            AlterTableAction::SetWithoutOids(it) => &it.syntax,
20653            AlterTableAction::ValidateConstraint(it) => &it.syntax,
20654        }
20655    }
20656}
20657impl From<AddColumn> for AlterTableAction {
20658    #[inline]
20659    fn from(node: AddColumn) -> AlterTableAction {
20660        AlterTableAction::AddColumn(node)
20661    }
20662}
20663impl From<AddConstraint> for AlterTableAction {
20664    #[inline]
20665    fn from(node: AddConstraint) -> AlterTableAction {
20666        AlterTableAction::AddConstraint(node)
20667    }
20668}
20669impl From<AlterColumn> for AlterTableAction {
20670    #[inline]
20671    fn from(node: AlterColumn) -> AlterTableAction {
20672        AlterTableAction::AlterColumn(node)
20673    }
20674}
20675impl From<AlterConstraint> for AlterTableAction {
20676    #[inline]
20677    fn from(node: AlterConstraint) -> AlterTableAction {
20678        AlterTableAction::AlterConstraint(node)
20679    }
20680}
20681impl From<AttachPartition> for AlterTableAction {
20682    #[inline]
20683    fn from(node: AttachPartition) -> AlterTableAction {
20684        AlterTableAction::AttachPartition(node)
20685    }
20686}
20687impl From<ClusterOn> for AlterTableAction {
20688    #[inline]
20689    fn from(node: ClusterOn) -> AlterTableAction {
20690        AlterTableAction::ClusterOn(node)
20691    }
20692}
20693impl From<DetachPartition> for AlterTableAction {
20694    #[inline]
20695    fn from(node: DetachPartition) -> AlterTableAction {
20696        AlterTableAction::DetachPartition(node)
20697    }
20698}
20699impl From<DisableRls> for AlterTableAction {
20700    #[inline]
20701    fn from(node: DisableRls) -> AlterTableAction {
20702        AlterTableAction::DisableRls(node)
20703    }
20704}
20705impl From<DisableRule> for AlterTableAction {
20706    #[inline]
20707    fn from(node: DisableRule) -> AlterTableAction {
20708        AlterTableAction::DisableRule(node)
20709    }
20710}
20711impl From<DisableTrigger> for AlterTableAction {
20712    #[inline]
20713    fn from(node: DisableTrigger) -> AlterTableAction {
20714        AlterTableAction::DisableTrigger(node)
20715    }
20716}
20717impl From<DropColumn> for AlterTableAction {
20718    #[inline]
20719    fn from(node: DropColumn) -> AlterTableAction {
20720        AlterTableAction::DropColumn(node)
20721    }
20722}
20723impl From<DropConstraint> for AlterTableAction {
20724    #[inline]
20725    fn from(node: DropConstraint) -> AlterTableAction {
20726        AlterTableAction::DropConstraint(node)
20727    }
20728}
20729impl From<EnableAlwaysRule> for AlterTableAction {
20730    #[inline]
20731    fn from(node: EnableAlwaysRule) -> AlterTableAction {
20732        AlterTableAction::EnableAlwaysRule(node)
20733    }
20734}
20735impl From<EnableAlwaysTrigger> for AlterTableAction {
20736    #[inline]
20737    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
20738        AlterTableAction::EnableAlwaysTrigger(node)
20739    }
20740}
20741impl From<EnableReplicaRule> for AlterTableAction {
20742    #[inline]
20743    fn from(node: EnableReplicaRule) -> AlterTableAction {
20744        AlterTableAction::EnableReplicaRule(node)
20745    }
20746}
20747impl From<EnableReplicaTrigger> for AlterTableAction {
20748    #[inline]
20749    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
20750        AlterTableAction::EnableReplicaTrigger(node)
20751    }
20752}
20753impl From<EnableRls> for AlterTableAction {
20754    #[inline]
20755    fn from(node: EnableRls) -> AlterTableAction {
20756        AlterTableAction::EnableRls(node)
20757    }
20758}
20759impl From<EnableRule> for AlterTableAction {
20760    #[inline]
20761    fn from(node: EnableRule) -> AlterTableAction {
20762        AlterTableAction::EnableRule(node)
20763    }
20764}
20765impl From<EnableTrigger> for AlterTableAction {
20766    #[inline]
20767    fn from(node: EnableTrigger) -> AlterTableAction {
20768        AlterTableAction::EnableTrigger(node)
20769    }
20770}
20771impl From<ForceRls> for AlterTableAction {
20772    #[inline]
20773    fn from(node: ForceRls) -> AlterTableAction {
20774        AlterTableAction::ForceRls(node)
20775    }
20776}
20777impl From<Inherit> for AlterTableAction {
20778    #[inline]
20779    fn from(node: Inherit) -> AlterTableAction {
20780        AlterTableAction::Inherit(node)
20781    }
20782}
20783impl From<NoForceRls> for AlterTableAction {
20784    #[inline]
20785    fn from(node: NoForceRls) -> AlterTableAction {
20786        AlterTableAction::NoForceRls(node)
20787    }
20788}
20789impl From<NoInherit> for AlterTableAction {
20790    #[inline]
20791    fn from(node: NoInherit) -> AlterTableAction {
20792        AlterTableAction::NoInherit(node)
20793    }
20794}
20795impl From<NotOf> for AlterTableAction {
20796    #[inline]
20797    fn from(node: NotOf) -> AlterTableAction {
20798        AlterTableAction::NotOf(node)
20799    }
20800}
20801impl From<OfType> for AlterTableAction {
20802    #[inline]
20803    fn from(node: OfType) -> AlterTableAction {
20804        AlterTableAction::OfType(node)
20805    }
20806}
20807impl From<OptionsList> for AlterTableAction {
20808    #[inline]
20809    fn from(node: OptionsList) -> AlterTableAction {
20810        AlterTableAction::OptionsList(node)
20811    }
20812}
20813impl From<OwnerTo> for AlterTableAction {
20814    #[inline]
20815    fn from(node: OwnerTo) -> AlterTableAction {
20816        AlterTableAction::OwnerTo(node)
20817    }
20818}
20819impl From<RenameColumn> for AlterTableAction {
20820    #[inline]
20821    fn from(node: RenameColumn) -> AlterTableAction {
20822        AlterTableAction::RenameColumn(node)
20823    }
20824}
20825impl From<RenameConstraint> for AlterTableAction {
20826    #[inline]
20827    fn from(node: RenameConstraint) -> AlterTableAction {
20828        AlterTableAction::RenameConstraint(node)
20829    }
20830}
20831impl From<RenameTable> for AlterTableAction {
20832    #[inline]
20833    fn from(node: RenameTable) -> AlterTableAction {
20834        AlterTableAction::RenameTable(node)
20835    }
20836}
20837impl From<ReplicaIdentity> for AlterTableAction {
20838    #[inline]
20839    fn from(node: ReplicaIdentity) -> AlterTableAction {
20840        AlterTableAction::ReplicaIdentity(node)
20841    }
20842}
20843impl From<ResetStorageParams> for AlterTableAction {
20844    #[inline]
20845    fn from(node: ResetStorageParams) -> AlterTableAction {
20846        AlterTableAction::ResetStorageParams(node)
20847    }
20848}
20849impl From<SetAccessMethod> for AlterTableAction {
20850    #[inline]
20851    fn from(node: SetAccessMethod) -> AlterTableAction {
20852        AlterTableAction::SetAccessMethod(node)
20853    }
20854}
20855impl From<SetLogged> for AlterTableAction {
20856    #[inline]
20857    fn from(node: SetLogged) -> AlterTableAction {
20858        AlterTableAction::SetLogged(node)
20859    }
20860}
20861impl From<SetSchema> for AlterTableAction {
20862    #[inline]
20863    fn from(node: SetSchema) -> AlterTableAction {
20864        AlterTableAction::SetSchema(node)
20865    }
20866}
20867impl From<SetStorageParams> for AlterTableAction {
20868    #[inline]
20869    fn from(node: SetStorageParams) -> AlterTableAction {
20870        AlterTableAction::SetStorageParams(node)
20871    }
20872}
20873impl From<SetTablespace> for AlterTableAction {
20874    #[inline]
20875    fn from(node: SetTablespace) -> AlterTableAction {
20876        AlterTableAction::SetTablespace(node)
20877    }
20878}
20879impl From<SetUnlogged> for AlterTableAction {
20880    #[inline]
20881    fn from(node: SetUnlogged) -> AlterTableAction {
20882        AlterTableAction::SetUnlogged(node)
20883    }
20884}
20885impl From<SetWithoutCluster> for AlterTableAction {
20886    #[inline]
20887    fn from(node: SetWithoutCluster) -> AlterTableAction {
20888        AlterTableAction::SetWithoutCluster(node)
20889    }
20890}
20891impl From<SetWithoutOids> for AlterTableAction {
20892    #[inline]
20893    fn from(node: SetWithoutOids) -> AlterTableAction {
20894        AlterTableAction::SetWithoutOids(node)
20895    }
20896}
20897impl From<ValidateConstraint> for AlterTableAction {
20898    #[inline]
20899    fn from(node: ValidateConstraint) -> AlterTableAction {
20900        AlterTableAction::ValidateConstraint(node)
20901    }
20902}
20903impl AstNode for ColumnConstraint {
20904    #[inline]
20905    fn can_cast(kind: SyntaxKind) -> bool {
20906        matches!(
20907            kind,
20908            SyntaxKind::CHECK_CONSTRAINT
20909                | SyntaxKind::EXCLUDE_CONSTRAINT
20910                | SyntaxKind::NOT_NULL_CONSTRAINT
20911                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
20912                | SyntaxKind::REFERENCES_CONSTRAINT
20913                | SyntaxKind::UNIQUE_CONSTRAINT
20914        )
20915    }
20916    #[inline]
20917    fn cast(syntax: SyntaxNode) -> Option<Self> {
20918        let res = match syntax.kind() {
20919            SyntaxKind::CHECK_CONSTRAINT => {
20920                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
20921            }
20922            SyntaxKind::EXCLUDE_CONSTRAINT => {
20923                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
20924            }
20925            SyntaxKind::NOT_NULL_CONSTRAINT => {
20926                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
20927            }
20928            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
20929                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
20930            }
20931            SyntaxKind::REFERENCES_CONSTRAINT => {
20932                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
20933            }
20934            SyntaxKind::UNIQUE_CONSTRAINT => {
20935                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
20936            }
20937            _ => {
20938                return None;
20939            }
20940        };
20941        Some(res)
20942    }
20943    #[inline]
20944    fn syntax(&self) -> &SyntaxNode {
20945        match self {
20946            ColumnConstraint::CheckConstraint(it) => &it.syntax,
20947            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
20948            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
20949            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
20950            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
20951            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
20952        }
20953    }
20954}
20955impl From<CheckConstraint> for ColumnConstraint {
20956    #[inline]
20957    fn from(node: CheckConstraint) -> ColumnConstraint {
20958        ColumnConstraint::CheckConstraint(node)
20959    }
20960}
20961impl From<ExcludeConstraint> for ColumnConstraint {
20962    #[inline]
20963    fn from(node: ExcludeConstraint) -> ColumnConstraint {
20964        ColumnConstraint::ExcludeConstraint(node)
20965    }
20966}
20967impl From<NotNullConstraint> for ColumnConstraint {
20968    #[inline]
20969    fn from(node: NotNullConstraint) -> ColumnConstraint {
20970        ColumnConstraint::NotNullConstraint(node)
20971    }
20972}
20973impl From<PrimaryKeyConstraint> for ColumnConstraint {
20974    #[inline]
20975    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
20976        ColumnConstraint::PrimaryKeyConstraint(node)
20977    }
20978}
20979impl From<ReferencesConstraint> for ColumnConstraint {
20980    #[inline]
20981    fn from(node: ReferencesConstraint) -> ColumnConstraint {
20982        ColumnConstraint::ReferencesConstraint(node)
20983    }
20984}
20985impl From<UniqueConstraint> for ColumnConstraint {
20986    #[inline]
20987    fn from(node: UniqueConstraint) -> ColumnConstraint {
20988        ColumnConstraint::UniqueConstraint(node)
20989    }
20990}
20991impl AstNode for Constraint {
20992    #[inline]
20993    fn can_cast(kind: SyntaxKind) -> bool {
20994        matches!(
20995            kind,
20996            SyntaxKind::CHECK_CONSTRAINT
20997                | SyntaxKind::DEFAULT_CONSTRAINT
20998                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
20999                | SyntaxKind::GENERATED_CONSTRAINT
21000                | SyntaxKind::NOT_NULL_CONSTRAINT
21001                | SyntaxKind::NULL_CONSTRAINT
21002                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
21003                | SyntaxKind::REFERENCES_CONSTRAINT
21004                | SyntaxKind::UNIQUE_CONSTRAINT
21005        )
21006    }
21007    #[inline]
21008    fn cast(syntax: SyntaxNode) -> Option<Self> {
21009        let res = match syntax.kind() {
21010            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
21011            SyntaxKind::DEFAULT_CONSTRAINT => {
21012                Constraint::DefaultConstraint(DefaultConstraint { syntax })
21013            }
21014            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
21015                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
21016            }
21017            SyntaxKind::GENERATED_CONSTRAINT => {
21018                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
21019            }
21020            SyntaxKind::NOT_NULL_CONSTRAINT => {
21021                Constraint::NotNullConstraint(NotNullConstraint { syntax })
21022            }
21023            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
21024            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
21025                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
21026            }
21027            SyntaxKind::REFERENCES_CONSTRAINT => {
21028                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
21029            }
21030            SyntaxKind::UNIQUE_CONSTRAINT => {
21031                Constraint::UniqueConstraint(UniqueConstraint { syntax })
21032            }
21033            _ => {
21034                return None;
21035            }
21036        };
21037        Some(res)
21038    }
21039    #[inline]
21040    fn syntax(&self) -> &SyntaxNode {
21041        match self {
21042            Constraint::CheckConstraint(it) => &it.syntax,
21043            Constraint::DefaultConstraint(it) => &it.syntax,
21044            Constraint::ForeignKeyConstraint(it) => &it.syntax,
21045            Constraint::GeneratedConstraint(it) => &it.syntax,
21046            Constraint::NotNullConstraint(it) => &it.syntax,
21047            Constraint::NullConstraint(it) => &it.syntax,
21048            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
21049            Constraint::ReferencesConstraint(it) => &it.syntax,
21050            Constraint::UniqueConstraint(it) => &it.syntax,
21051        }
21052    }
21053}
21054impl From<CheckConstraint> for Constraint {
21055    #[inline]
21056    fn from(node: CheckConstraint) -> Constraint {
21057        Constraint::CheckConstraint(node)
21058    }
21059}
21060impl From<DefaultConstraint> for Constraint {
21061    #[inline]
21062    fn from(node: DefaultConstraint) -> Constraint {
21063        Constraint::DefaultConstraint(node)
21064    }
21065}
21066impl From<ForeignKeyConstraint> for Constraint {
21067    #[inline]
21068    fn from(node: ForeignKeyConstraint) -> Constraint {
21069        Constraint::ForeignKeyConstraint(node)
21070    }
21071}
21072impl From<GeneratedConstraint> for Constraint {
21073    #[inline]
21074    fn from(node: GeneratedConstraint) -> Constraint {
21075        Constraint::GeneratedConstraint(node)
21076    }
21077}
21078impl From<NotNullConstraint> for Constraint {
21079    #[inline]
21080    fn from(node: NotNullConstraint) -> Constraint {
21081        Constraint::NotNullConstraint(node)
21082    }
21083}
21084impl From<NullConstraint> for Constraint {
21085    #[inline]
21086    fn from(node: NullConstraint) -> Constraint {
21087        Constraint::NullConstraint(node)
21088    }
21089}
21090impl From<PrimaryKeyConstraint> for Constraint {
21091    #[inline]
21092    fn from(node: PrimaryKeyConstraint) -> Constraint {
21093        Constraint::PrimaryKeyConstraint(node)
21094    }
21095}
21096impl From<ReferencesConstraint> for Constraint {
21097    #[inline]
21098    fn from(node: ReferencesConstraint) -> Constraint {
21099        Constraint::ReferencesConstraint(node)
21100    }
21101}
21102impl From<UniqueConstraint> for Constraint {
21103    #[inline]
21104    fn from(node: UniqueConstraint) -> Constraint {
21105        Constraint::UniqueConstraint(node)
21106    }
21107}
21108impl AstNode for Expr {
21109    #[inline]
21110    fn can_cast(kind: SyntaxKind) -> bool {
21111        matches!(
21112            kind,
21113            SyntaxKind::ARRAY_EXPR
21114                | SyntaxKind::BETWEEN_EXPR
21115                | SyntaxKind::BIN_EXPR
21116                | SyntaxKind::CALL_EXPR
21117                | SyntaxKind::CASE_EXPR
21118                | SyntaxKind::CAST_EXPR
21119                | SyntaxKind::FIELD_EXPR
21120                | SyntaxKind::INDEX_EXPR
21121                | SyntaxKind::LITERAL
21122                | SyntaxKind::NAME_REF
21123                | SyntaxKind::PAREN_EXPR
21124                | SyntaxKind::POSTFIX_EXPR
21125                | SyntaxKind::PREFIX_EXPR
21126                | SyntaxKind::TUPLE_EXPR
21127        )
21128    }
21129    #[inline]
21130    fn cast(syntax: SyntaxNode) -> Option<Self> {
21131        let res = match syntax.kind() {
21132            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
21133            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
21134            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
21135            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
21136            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
21137            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
21138            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
21139            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
21140            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
21141            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
21142            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
21143            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
21144            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
21145            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
21146            _ => {
21147                return None;
21148            }
21149        };
21150        Some(res)
21151    }
21152    #[inline]
21153    fn syntax(&self) -> &SyntaxNode {
21154        match self {
21155            Expr::ArrayExpr(it) => &it.syntax,
21156            Expr::BetweenExpr(it) => &it.syntax,
21157            Expr::BinExpr(it) => &it.syntax,
21158            Expr::CallExpr(it) => &it.syntax,
21159            Expr::CaseExpr(it) => &it.syntax,
21160            Expr::CastExpr(it) => &it.syntax,
21161            Expr::FieldExpr(it) => &it.syntax,
21162            Expr::IndexExpr(it) => &it.syntax,
21163            Expr::Literal(it) => &it.syntax,
21164            Expr::NameRef(it) => &it.syntax,
21165            Expr::ParenExpr(it) => &it.syntax,
21166            Expr::PostfixExpr(it) => &it.syntax,
21167            Expr::PrefixExpr(it) => &it.syntax,
21168            Expr::TupleExpr(it) => &it.syntax,
21169        }
21170    }
21171}
21172impl From<ArrayExpr> for Expr {
21173    #[inline]
21174    fn from(node: ArrayExpr) -> Expr {
21175        Expr::ArrayExpr(node)
21176    }
21177}
21178impl From<BetweenExpr> for Expr {
21179    #[inline]
21180    fn from(node: BetweenExpr) -> Expr {
21181        Expr::BetweenExpr(node)
21182    }
21183}
21184impl From<BinExpr> for Expr {
21185    #[inline]
21186    fn from(node: BinExpr) -> Expr {
21187        Expr::BinExpr(node)
21188    }
21189}
21190impl From<CallExpr> for Expr {
21191    #[inline]
21192    fn from(node: CallExpr) -> Expr {
21193        Expr::CallExpr(node)
21194    }
21195}
21196impl From<CaseExpr> for Expr {
21197    #[inline]
21198    fn from(node: CaseExpr) -> Expr {
21199        Expr::CaseExpr(node)
21200    }
21201}
21202impl From<CastExpr> for Expr {
21203    #[inline]
21204    fn from(node: CastExpr) -> Expr {
21205        Expr::CastExpr(node)
21206    }
21207}
21208impl From<FieldExpr> for Expr {
21209    #[inline]
21210    fn from(node: FieldExpr) -> Expr {
21211        Expr::FieldExpr(node)
21212    }
21213}
21214impl From<IndexExpr> for Expr {
21215    #[inline]
21216    fn from(node: IndexExpr) -> Expr {
21217        Expr::IndexExpr(node)
21218    }
21219}
21220impl From<Literal> for Expr {
21221    #[inline]
21222    fn from(node: Literal) -> Expr {
21223        Expr::Literal(node)
21224    }
21225}
21226impl From<NameRef> for Expr {
21227    #[inline]
21228    fn from(node: NameRef) -> Expr {
21229        Expr::NameRef(node)
21230    }
21231}
21232impl From<ParenExpr> for Expr {
21233    #[inline]
21234    fn from(node: ParenExpr) -> Expr {
21235        Expr::ParenExpr(node)
21236    }
21237}
21238impl From<PostfixExpr> for Expr {
21239    #[inline]
21240    fn from(node: PostfixExpr) -> Expr {
21241        Expr::PostfixExpr(node)
21242    }
21243}
21244impl From<PrefixExpr> for Expr {
21245    #[inline]
21246    fn from(node: PrefixExpr) -> Expr {
21247        Expr::PrefixExpr(node)
21248    }
21249}
21250impl From<TupleExpr> for Expr {
21251    #[inline]
21252    fn from(node: TupleExpr) -> Expr {
21253        Expr::TupleExpr(node)
21254    }
21255}
21256impl AstNode for FuncOption {
21257    #[inline]
21258    fn can_cast(kind: SyntaxKind) -> bool {
21259        matches!(
21260            kind,
21261            SyntaxKind::AS_FUNC_OPTION
21262                | SyntaxKind::BEGIN_FUNC_OPTION
21263                | SyntaxKind::COST_FUNC_OPTION
21264                | SyntaxKind::LANGUAGE_FUNC_OPTION
21265                | SyntaxKind::LEAKPROOF_FUNC_OPTION
21266                | SyntaxKind::PARALLEL_FUNC_OPTION
21267                | SyntaxKind::RESET_FUNC_OPTION
21268                | SyntaxKind::RETURN_FUNC_OPTION
21269                | SyntaxKind::ROWS_FUNC_OPTION
21270                | SyntaxKind::SECURITY_FUNC_OPTION
21271                | SyntaxKind::SET_FUNC_OPTION
21272                | SyntaxKind::STRICT_FUNC_OPTION
21273                | SyntaxKind::SUPPORT_FUNC_OPTION
21274                | SyntaxKind::TRANSFORM_FUNC_OPTION
21275                | SyntaxKind::VOLATILITY_FUNC_OPTION
21276                | SyntaxKind::WINDOW_FUNC_OPTION
21277        )
21278    }
21279    #[inline]
21280    fn cast(syntax: SyntaxNode) -> Option<Self> {
21281        let res = match syntax.kind() {
21282            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
21283            SyntaxKind::BEGIN_FUNC_OPTION => {
21284                FuncOption::BeginFuncOption(BeginFuncOption { syntax })
21285            }
21286            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
21287            SyntaxKind::LANGUAGE_FUNC_OPTION => {
21288                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
21289            }
21290            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
21291                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
21292            }
21293            SyntaxKind::PARALLEL_FUNC_OPTION => {
21294                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
21295            }
21296            SyntaxKind::RESET_FUNC_OPTION => {
21297                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
21298            }
21299            SyntaxKind::RETURN_FUNC_OPTION => {
21300                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
21301            }
21302            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
21303            SyntaxKind::SECURITY_FUNC_OPTION => {
21304                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
21305            }
21306            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
21307            SyntaxKind::STRICT_FUNC_OPTION => {
21308                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
21309            }
21310            SyntaxKind::SUPPORT_FUNC_OPTION => {
21311                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
21312            }
21313            SyntaxKind::TRANSFORM_FUNC_OPTION => {
21314                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
21315            }
21316            SyntaxKind::VOLATILITY_FUNC_OPTION => {
21317                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
21318            }
21319            SyntaxKind::WINDOW_FUNC_OPTION => {
21320                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
21321            }
21322            _ => {
21323                return None;
21324            }
21325        };
21326        Some(res)
21327    }
21328    #[inline]
21329    fn syntax(&self) -> &SyntaxNode {
21330        match self {
21331            FuncOption::AsFuncOption(it) => &it.syntax,
21332            FuncOption::BeginFuncOption(it) => &it.syntax,
21333            FuncOption::CostFuncOption(it) => &it.syntax,
21334            FuncOption::LanguageFuncOption(it) => &it.syntax,
21335            FuncOption::LeakproofFuncOption(it) => &it.syntax,
21336            FuncOption::ParallelFuncOption(it) => &it.syntax,
21337            FuncOption::ResetFuncOption(it) => &it.syntax,
21338            FuncOption::ReturnFuncOption(it) => &it.syntax,
21339            FuncOption::RowsFuncOption(it) => &it.syntax,
21340            FuncOption::SecurityFuncOption(it) => &it.syntax,
21341            FuncOption::SetFuncOption(it) => &it.syntax,
21342            FuncOption::StrictFuncOption(it) => &it.syntax,
21343            FuncOption::SupportFuncOption(it) => &it.syntax,
21344            FuncOption::TransformFuncOption(it) => &it.syntax,
21345            FuncOption::VolatilityFuncOption(it) => &it.syntax,
21346            FuncOption::WindowFuncOption(it) => &it.syntax,
21347        }
21348    }
21349}
21350impl From<AsFuncOption> for FuncOption {
21351    #[inline]
21352    fn from(node: AsFuncOption) -> FuncOption {
21353        FuncOption::AsFuncOption(node)
21354    }
21355}
21356impl From<BeginFuncOption> for FuncOption {
21357    #[inline]
21358    fn from(node: BeginFuncOption) -> FuncOption {
21359        FuncOption::BeginFuncOption(node)
21360    }
21361}
21362impl From<CostFuncOption> for FuncOption {
21363    #[inline]
21364    fn from(node: CostFuncOption) -> FuncOption {
21365        FuncOption::CostFuncOption(node)
21366    }
21367}
21368impl From<LanguageFuncOption> for FuncOption {
21369    #[inline]
21370    fn from(node: LanguageFuncOption) -> FuncOption {
21371        FuncOption::LanguageFuncOption(node)
21372    }
21373}
21374impl From<LeakproofFuncOption> for FuncOption {
21375    #[inline]
21376    fn from(node: LeakproofFuncOption) -> FuncOption {
21377        FuncOption::LeakproofFuncOption(node)
21378    }
21379}
21380impl From<ParallelFuncOption> for FuncOption {
21381    #[inline]
21382    fn from(node: ParallelFuncOption) -> FuncOption {
21383        FuncOption::ParallelFuncOption(node)
21384    }
21385}
21386impl From<ResetFuncOption> for FuncOption {
21387    #[inline]
21388    fn from(node: ResetFuncOption) -> FuncOption {
21389        FuncOption::ResetFuncOption(node)
21390    }
21391}
21392impl From<ReturnFuncOption> for FuncOption {
21393    #[inline]
21394    fn from(node: ReturnFuncOption) -> FuncOption {
21395        FuncOption::ReturnFuncOption(node)
21396    }
21397}
21398impl From<RowsFuncOption> for FuncOption {
21399    #[inline]
21400    fn from(node: RowsFuncOption) -> FuncOption {
21401        FuncOption::RowsFuncOption(node)
21402    }
21403}
21404impl From<SecurityFuncOption> for FuncOption {
21405    #[inline]
21406    fn from(node: SecurityFuncOption) -> FuncOption {
21407        FuncOption::SecurityFuncOption(node)
21408    }
21409}
21410impl From<SetFuncOption> for FuncOption {
21411    #[inline]
21412    fn from(node: SetFuncOption) -> FuncOption {
21413        FuncOption::SetFuncOption(node)
21414    }
21415}
21416impl From<StrictFuncOption> for FuncOption {
21417    #[inline]
21418    fn from(node: StrictFuncOption) -> FuncOption {
21419        FuncOption::StrictFuncOption(node)
21420    }
21421}
21422impl From<SupportFuncOption> for FuncOption {
21423    #[inline]
21424    fn from(node: SupportFuncOption) -> FuncOption {
21425        FuncOption::SupportFuncOption(node)
21426    }
21427}
21428impl From<TransformFuncOption> for FuncOption {
21429    #[inline]
21430    fn from(node: TransformFuncOption) -> FuncOption {
21431        FuncOption::TransformFuncOption(node)
21432    }
21433}
21434impl From<VolatilityFuncOption> for FuncOption {
21435    #[inline]
21436    fn from(node: VolatilityFuncOption) -> FuncOption {
21437        FuncOption::VolatilityFuncOption(node)
21438    }
21439}
21440impl From<WindowFuncOption> for FuncOption {
21441    #[inline]
21442    fn from(node: WindowFuncOption) -> FuncOption {
21443        FuncOption::WindowFuncOption(node)
21444    }
21445}
21446impl AstNode for GroupBy {
21447    #[inline]
21448    fn can_cast(kind: SyntaxKind) -> bool {
21449        matches!(
21450            kind,
21451            SyntaxKind::GROUPING_CUBE
21452                | SyntaxKind::GROUPING_EXPR
21453                | SyntaxKind::GROUPING_ROLLUP
21454                | SyntaxKind::GROUPING_SETS
21455        )
21456    }
21457    #[inline]
21458    fn cast(syntax: SyntaxNode) -> Option<Self> {
21459        let res = match syntax.kind() {
21460            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
21461            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
21462            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
21463            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
21464            _ => {
21465                return None;
21466            }
21467        };
21468        Some(res)
21469    }
21470    #[inline]
21471    fn syntax(&self) -> &SyntaxNode {
21472        match self {
21473            GroupBy::GroupingCube(it) => &it.syntax,
21474            GroupBy::GroupingExpr(it) => &it.syntax,
21475            GroupBy::GroupingRollup(it) => &it.syntax,
21476            GroupBy::GroupingSets(it) => &it.syntax,
21477        }
21478    }
21479}
21480impl From<GroupingCube> for GroupBy {
21481    #[inline]
21482    fn from(node: GroupingCube) -> GroupBy {
21483        GroupBy::GroupingCube(node)
21484    }
21485}
21486impl From<GroupingExpr> for GroupBy {
21487    #[inline]
21488    fn from(node: GroupingExpr) -> GroupBy {
21489        GroupBy::GroupingExpr(node)
21490    }
21491}
21492impl From<GroupingRollup> for GroupBy {
21493    #[inline]
21494    fn from(node: GroupingRollup) -> GroupBy {
21495        GroupBy::GroupingRollup(node)
21496    }
21497}
21498impl From<GroupingSets> for GroupBy {
21499    #[inline]
21500    fn from(node: GroupingSets) -> GroupBy {
21501        GroupBy::GroupingSets(node)
21502    }
21503}
21504impl AstNode for JoinType {
21505    #[inline]
21506    fn can_cast(kind: SyntaxKind) -> bool {
21507        matches!(
21508            kind,
21509            SyntaxKind::JOIN_CROSS
21510                | SyntaxKind::JOIN_FULL
21511                | SyntaxKind::JOIN_INNER
21512                | SyntaxKind::JOIN_LEFT
21513                | SyntaxKind::JOIN_RIGHT
21514        )
21515    }
21516    #[inline]
21517    fn cast(syntax: SyntaxNode) -> Option<Self> {
21518        let res = match syntax.kind() {
21519            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
21520            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
21521            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
21522            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
21523            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
21524            _ => {
21525                return None;
21526            }
21527        };
21528        Some(res)
21529    }
21530    #[inline]
21531    fn syntax(&self) -> &SyntaxNode {
21532        match self {
21533            JoinType::JoinCross(it) => &it.syntax,
21534            JoinType::JoinFull(it) => &it.syntax,
21535            JoinType::JoinInner(it) => &it.syntax,
21536            JoinType::JoinLeft(it) => &it.syntax,
21537            JoinType::JoinRight(it) => &it.syntax,
21538        }
21539    }
21540}
21541impl From<JoinCross> for JoinType {
21542    #[inline]
21543    fn from(node: JoinCross) -> JoinType {
21544        JoinType::JoinCross(node)
21545    }
21546}
21547impl From<JoinFull> for JoinType {
21548    #[inline]
21549    fn from(node: JoinFull) -> JoinType {
21550        JoinType::JoinFull(node)
21551    }
21552}
21553impl From<JoinInner> for JoinType {
21554    #[inline]
21555    fn from(node: JoinInner) -> JoinType {
21556        JoinType::JoinInner(node)
21557    }
21558}
21559impl From<JoinLeft> for JoinType {
21560    #[inline]
21561    fn from(node: JoinLeft) -> JoinType {
21562        JoinType::JoinLeft(node)
21563    }
21564}
21565impl From<JoinRight> for JoinType {
21566    #[inline]
21567    fn from(node: JoinRight) -> JoinType {
21568        JoinType::JoinRight(node)
21569    }
21570}
21571impl AstNode for JsonBehavior {
21572    #[inline]
21573    fn can_cast(kind: SyntaxKind) -> bool {
21574        matches!(
21575            kind,
21576            SyntaxKind::JSON_BEHAVIOR_DEFAULT
21577                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
21578                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
21579                | SyntaxKind::JSON_BEHAVIOR_ERROR
21580                | SyntaxKind::JSON_BEHAVIOR_FALSE
21581                | SyntaxKind::JSON_BEHAVIOR_NULL
21582                | SyntaxKind::JSON_BEHAVIOR_TRUE
21583                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
21584        )
21585    }
21586    #[inline]
21587    fn cast(syntax: SyntaxNode) -> Option<Self> {
21588        let res = match syntax.kind() {
21589            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
21590                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
21591            }
21592            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
21593                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
21594            }
21595            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
21596                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
21597            }
21598            SyntaxKind::JSON_BEHAVIOR_ERROR => {
21599                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
21600            }
21601            SyntaxKind::JSON_BEHAVIOR_FALSE => {
21602                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
21603            }
21604            SyntaxKind::JSON_BEHAVIOR_NULL => {
21605                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
21606            }
21607            SyntaxKind::JSON_BEHAVIOR_TRUE => {
21608                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
21609            }
21610            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
21611                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
21612            }
21613            _ => {
21614                return None;
21615            }
21616        };
21617        Some(res)
21618    }
21619    #[inline]
21620    fn syntax(&self) -> &SyntaxNode {
21621        match self {
21622            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
21623            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
21624            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
21625            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
21626            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
21627            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
21628            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
21629            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
21630        }
21631    }
21632}
21633impl From<JsonBehaviorDefault> for JsonBehavior {
21634    #[inline]
21635    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
21636        JsonBehavior::JsonBehaviorDefault(node)
21637    }
21638}
21639impl From<JsonBehaviorEmptyArray> for JsonBehavior {
21640    #[inline]
21641    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
21642        JsonBehavior::JsonBehaviorEmptyArray(node)
21643    }
21644}
21645impl From<JsonBehaviorEmptyObject> for JsonBehavior {
21646    #[inline]
21647    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
21648        JsonBehavior::JsonBehaviorEmptyObject(node)
21649    }
21650}
21651impl From<JsonBehaviorError> for JsonBehavior {
21652    #[inline]
21653    fn from(node: JsonBehaviorError) -> JsonBehavior {
21654        JsonBehavior::JsonBehaviorError(node)
21655    }
21656}
21657impl From<JsonBehaviorFalse> for JsonBehavior {
21658    #[inline]
21659    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
21660        JsonBehavior::JsonBehaviorFalse(node)
21661    }
21662}
21663impl From<JsonBehaviorNull> for JsonBehavior {
21664    #[inline]
21665    fn from(node: JsonBehaviorNull) -> JsonBehavior {
21666        JsonBehavior::JsonBehaviorNull(node)
21667    }
21668}
21669impl From<JsonBehaviorTrue> for JsonBehavior {
21670    #[inline]
21671    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
21672        JsonBehavior::JsonBehaviorTrue(node)
21673    }
21674}
21675impl From<JsonBehaviorUnknown> for JsonBehavior {
21676    #[inline]
21677    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
21678        JsonBehavior::JsonBehaviorUnknown(node)
21679    }
21680}
21681impl AstNode for MatchType {
21682    #[inline]
21683    fn can_cast(kind: SyntaxKind) -> bool {
21684        matches!(
21685            kind,
21686            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
21687        )
21688    }
21689    #[inline]
21690    fn cast(syntax: SyntaxNode) -> Option<Self> {
21691        let res = match syntax.kind() {
21692            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
21693            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
21694            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
21695            _ => {
21696                return None;
21697            }
21698        };
21699        Some(res)
21700    }
21701    #[inline]
21702    fn syntax(&self) -> &SyntaxNode {
21703        match self {
21704            MatchType::MatchFull(it) => &it.syntax,
21705            MatchType::MatchPartial(it) => &it.syntax,
21706            MatchType::MatchSimple(it) => &it.syntax,
21707        }
21708    }
21709}
21710impl From<MatchFull> for MatchType {
21711    #[inline]
21712    fn from(node: MatchFull) -> MatchType {
21713        MatchType::MatchFull(node)
21714    }
21715}
21716impl From<MatchPartial> for MatchType {
21717    #[inline]
21718    fn from(node: MatchPartial) -> MatchType {
21719        MatchType::MatchPartial(node)
21720    }
21721}
21722impl From<MatchSimple> for MatchType {
21723    #[inline]
21724    fn from(node: MatchSimple) -> MatchType {
21725        MatchType::MatchSimple(node)
21726    }
21727}
21728impl AstNode for MergeAction {
21729    #[inline]
21730    fn can_cast(kind: SyntaxKind) -> bool {
21731        matches!(
21732            kind,
21733            SyntaxKind::MERGE_DELETE
21734                | SyntaxKind::MERGE_DO_NOTHING
21735                | SyntaxKind::MERGE_INSERT
21736                | SyntaxKind::MERGE_UPDATE
21737        )
21738    }
21739    #[inline]
21740    fn cast(syntax: SyntaxNode) -> Option<Self> {
21741        let res = match syntax.kind() {
21742            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
21743            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
21744            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
21745            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
21746            _ => {
21747                return None;
21748            }
21749        };
21750        Some(res)
21751    }
21752    #[inline]
21753    fn syntax(&self) -> &SyntaxNode {
21754        match self {
21755            MergeAction::MergeDelete(it) => &it.syntax,
21756            MergeAction::MergeDoNothing(it) => &it.syntax,
21757            MergeAction::MergeInsert(it) => &it.syntax,
21758            MergeAction::MergeUpdate(it) => &it.syntax,
21759        }
21760    }
21761}
21762impl From<MergeDelete> for MergeAction {
21763    #[inline]
21764    fn from(node: MergeDelete) -> MergeAction {
21765        MergeAction::MergeDelete(node)
21766    }
21767}
21768impl From<MergeDoNothing> for MergeAction {
21769    #[inline]
21770    fn from(node: MergeDoNothing) -> MergeAction {
21771        MergeAction::MergeDoNothing(node)
21772    }
21773}
21774impl From<MergeInsert> for MergeAction {
21775    #[inline]
21776    fn from(node: MergeInsert) -> MergeAction {
21777        MergeAction::MergeInsert(node)
21778    }
21779}
21780impl From<MergeUpdate> for MergeAction {
21781    #[inline]
21782    fn from(node: MergeUpdate) -> MergeAction {
21783        MergeAction::MergeUpdate(node)
21784    }
21785}
21786impl AstNode for MergeWhenClause {
21787    #[inline]
21788    fn can_cast(kind: SyntaxKind) -> bool {
21789        matches!(
21790            kind,
21791            SyntaxKind::MERGE_WHEN_MATCHED
21792                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
21793                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
21794        )
21795    }
21796    #[inline]
21797    fn cast(syntax: SyntaxNode) -> Option<Self> {
21798        let res = match syntax.kind() {
21799            SyntaxKind::MERGE_WHEN_MATCHED => {
21800                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
21801            }
21802            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
21803                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
21804            }
21805            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
21806                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
21807            }
21808            _ => {
21809                return None;
21810            }
21811        };
21812        Some(res)
21813    }
21814    #[inline]
21815    fn syntax(&self) -> &SyntaxNode {
21816        match self {
21817            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
21818            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
21819            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
21820        }
21821    }
21822}
21823impl From<MergeWhenMatched> for MergeWhenClause {
21824    #[inline]
21825    fn from(node: MergeWhenMatched) -> MergeWhenClause {
21826        MergeWhenClause::MergeWhenMatched(node)
21827    }
21828}
21829impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
21830    #[inline]
21831    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
21832        MergeWhenClause::MergeWhenNotMatchedSource(node)
21833    }
21834}
21835impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
21836    #[inline]
21837    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
21838        MergeWhenClause::MergeWhenNotMatchedTarget(node)
21839    }
21840}
21841impl AstNode for OnCommitAction {
21842    #[inline]
21843    fn can_cast(kind: SyntaxKind) -> bool {
21844        matches!(
21845            kind,
21846            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
21847        )
21848    }
21849    #[inline]
21850    fn cast(syntax: SyntaxNode) -> Option<Self> {
21851        let res = match syntax.kind() {
21852            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
21853            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
21854            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
21855            _ => {
21856                return None;
21857            }
21858        };
21859        Some(res)
21860    }
21861    #[inline]
21862    fn syntax(&self) -> &SyntaxNode {
21863        match self {
21864            OnCommitAction::DeleteRows(it) => &it.syntax,
21865            OnCommitAction::Drop(it) => &it.syntax,
21866            OnCommitAction::PreserveRows(it) => &it.syntax,
21867        }
21868    }
21869}
21870impl From<DeleteRows> for OnCommitAction {
21871    #[inline]
21872    fn from(node: DeleteRows) -> OnCommitAction {
21873        OnCommitAction::DeleteRows(node)
21874    }
21875}
21876impl From<Drop> for OnCommitAction {
21877    #[inline]
21878    fn from(node: Drop) -> OnCommitAction {
21879        OnCommitAction::Drop(node)
21880    }
21881}
21882impl From<PreserveRows> for OnCommitAction {
21883    #[inline]
21884    fn from(node: PreserveRows) -> OnCommitAction {
21885        OnCommitAction::PreserveRows(node)
21886    }
21887}
21888impl AstNode for ParamMode {
21889    #[inline]
21890    fn can_cast(kind: SyntaxKind) -> bool {
21891        matches!(
21892            kind,
21893            SyntaxKind::PARAM_IN
21894                | SyntaxKind::PARAM_IN_OUT
21895                | SyntaxKind::PARAM_OUT
21896                | SyntaxKind::PARAM_VARIADIC
21897        )
21898    }
21899    #[inline]
21900    fn cast(syntax: SyntaxNode) -> Option<Self> {
21901        let res = match syntax.kind() {
21902            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
21903            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
21904            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
21905            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
21906            _ => {
21907                return None;
21908            }
21909        };
21910        Some(res)
21911    }
21912    #[inline]
21913    fn syntax(&self) -> &SyntaxNode {
21914        match self {
21915            ParamMode::ParamIn(it) => &it.syntax,
21916            ParamMode::ParamInOut(it) => &it.syntax,
21917            ParamMode::ParamOut(it) => &it.syntax,
21918            ParamMode::ParamVariadic(it) => &it.syntax,
21919        }
21920    }
21921}
21922impl From<ParamIn> for ParamMode {
21923    #[inline]
21924    fn from(node: ParamIn) -> ParamMode {
21925        ParamMode::ParamIn(node)
21926    }
21927}
21928impl From<ParamInOut> for ParamMode {
21929    #[inline]
21930    fn from(node: ParamInOut) -> ParamMode {
21931        ParamMode::ParamInOut(node)
21932    }
21933}
21934impl From<ParamOut> for ParamMode {
21935    #[inline]
21936    fn from(node: ParamOut) -> ParamMode {
21937        ParamMode::ParamOut(node)
21938    }
21939}
21940impl From<ParamVariadic> for ParamMode {
21941    #[inline]
21942    fn from(node: ParamVariadic) -> ParamMode {
21943        ParamMode::ParamVariadic(node)
21944    }
21945}
21946impl AstNode for PartitionType {
21947    #[inline]
21948    fn can_cast(kind: SyntaxKind) -> bool {
21949        matches!(
21950            kind,
21951            SyntaxKind::PARTITION_DEFAULT
21952                | SyntaxKind::PARTITION_FOR_VALUES_FROM
21953                | SyntaxKind::PARTITION_FOR_VALUES_IN
21954                | SyntaxKind::PARTITION_FOR_VALUES_WITH
21955        )
21956    }
21957    #[inline]
21958    fn cast(syntax: SyntaxNode) -> Option<Self> {
21959        let res = match syntax.kind() {
21960            SyntaxKind::PARTITION_DEFAULT => {
21961                PartitionType::PartitionDefault(PartitionDefault { syntax })
21962            }
21963            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
21964                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
21965            }
21966            SyntaxKind::PARTITION_FOR_VALUES_IN => {
21967                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
21968            }
21969            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
21970                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
21971            }
21972            _ => {
21973                return None;
21974            }
21975        };
21976        Some(res)
21977    }
21978    #[inline]
21979    fn syntax(&self) -> &SyntaxNode {
21980        match self {
21981            PartitionType::PartitionDefault(it) => &it.syntax,
21982            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
21983            PartitionType::PartitionForValuesIn(it) => &it.syntax,
21984            PartitionType::PartitionForValuesWith(it) => &it.syntax,
21985        }
21986    }
21987}
21988impl From<PartitionDefault> for PartitionType {
21989    #[inline]
21990    fn from(node: PartitionDefault) -> PartitionType {
21991        PartitionType::PartitionDefault(node)
21992    }
21993}
21994impl From<PartitionForValuesFrom> for PartitionType {
21995    #[inline]
21996    fn from(node: PartitionForValuesFrom) -> PartitionType {
21997        PartitionType::PartitionForValuesFrom(node)
21998    }
21999}
22000impl From<PartitionForValuesIn> for PartitionType {
22001    #[inline]
22002    fn from(node: PartitionForValuesIn) -> PartitionType {
22003        PartitionType::PartitionForValuesIn(node)
22004    }
22005}
22006impl From<PartitionForValuesWith> for PartitionType {
22007    #[inline]
22008    fn from(node: PartitionForValuesWith) -> PartitionType {
22009        PartitionType::PartitionForValuesWith(node)
22010    }
22011}
22012impl AstNode for RefAction {
22013    #[inline]
22014    fn can_cast(kind: SyntaxKind) -> bool {
22015        matches!(
22016            kind,
22017            SyntaxKind::CASCADE
22018                | SyntaxKind::NO_ACTION
22019                | SyntaxKind::RESTRICT
22020                | SyntaxKind::SET_DEFAULT_COLUMNS
22021                | SyntaxKind::SET_NULL_COLUMNS
22022        )
22023    }
22024    #[inline]
22025    fn cast(syntax: SyntaxNode) -> Option<Self> {
22026        let res = match syntax.kind() {
22027            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
22028            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
22029            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
22030            SyntaxKind::SET_DEFAULT_COLUMNS => {
22031                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
22032            }
22033            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
22034            _ => {
22035                return None;
22036            }
22037        };
22038        Some(res)
22039    }
22040    #[inline]
22041    fn syntax(&self) -> &SyntaxNode {
22042        match self {
22043            RefAction::Cascade(it) => &it.syntax,
22044            RefAction::NoAction(it) => &it.syntax,
22045            RefAction::Restrict(it) => &it.syntax,
22046            RefAction::SetDefaultColumns(it) => &it.syntax,
22047            RefAction::SetNullColumns(it) => &it.syntax,
22048        }
22049    }
22050}
22051impl From<Cascade> for RefAction {
22052    #[inline]
22053    fn from(node: Cascade) -> RefAction {
22054        RefAction::Cascade(node)
22055    }
22056}
22057impl From<NoAction> for RefAction {
22058    #[inline]
22059    fn from(node: NoAction) -> RefAction {
22060        RefAction::NoAction(node)
22061    }
22062}
22063impl From<Restrict> for RefAction {
22064    #[inline]
22065    fn from(node: Restrict) -> RefAction {
22066        RefAction::Restrict(node)
22067    }
22068}
22069impl From<SetDefaultColumns> for RefAction {
22070    #[inline]
22071    fn from(node: SetDefaultColumns) -> RefAction {
22072        RefAction::SetDefaultColumns(node)
22073    }
22074}
22075impl From<SetNullColumns> for RefAction {
22076    #[inline]
22077    fn from(node: SetNullColumns) -> RefAction {
22078        RefAction::SetNullColumns(node)
22079    }
22080}
22081impl AstNode for Stmt {
22082    #[inline]
22083    fn can_cast(kind: SyntaxKind) -> bool {
22084        matches!(
22085            kind,
22086            SyntaxKind::ALTER_AGGREGATE
22087                | SyntaxKind::ALTER_COLLATION
22088                | SyntaxKind::ALTER_CONVERSION
22089                | SyntaxKind::ALTER_DATABASE
22090                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
22091                | SyntaxKind::ALTER_DOMAIN
22092                | SyntaxKind::ALTER_EVENT_TRIGGER
22093                | SyntaxKind::ALTER_EXTENSION
22094                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
22095                | SyntaxKind::ALTER_FOREIGN_TABLE
22096                | SyntaxKind::ALTER_FUNCTION
22097                | SyntaxKind::ALTER_GROUP
22098                | SyntaxKind::ALTER_INDEX
22099                | SyntaxKind::ALTER_LANGUAGE
22100                | SyntaxKind::ALTER_LARGE_OBJECT
22101                | SyntaxKind::ALTER_MATERIALIZED_VIEW
22102                | SyntaxKind::ALTER_OPERATOR
22103                | SyntaxKind::ALTER_OPERATOR_CLASS
22104                | SyntaxKind::ALTER_OPERATOR_FAMILY
22105                | SyntaxKind::ALTER_POLICY
22106                | SyntaxKind::ALTER_PROCEDURE
22107                | SyntaxKind::ALTER_PUBLICATION
22108                | SyntaxKind::ALTER_ROLE
22109                | SyntaxKind::ALTER_ROUTINE
22110                | SyntaxKind::ALTER_RULE
22111                | SyntaxKind::ALTER_SCHEMA
22112                | SyntaxKind::ALTER_SEQUENCE
22113                | SyntaxKind::ALTER_SERVER
22114                | SyntaxKind::ALTER_STATISTICS
22115                | SyntaxKind::ALTER_SUBSCRIPTION
22116                | SyntaxKind::ALTER_SYSTEM
22117                | SyntaxKind::ALTER_TABLE
22118                | SyntaxKind::ALTER_TABLESPACE
22119                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
22120                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
22121                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
22122                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
22123                | SyntaxKind::ALTER_TRIGGER
22124                | SyntaxKind::ALTER_TYPE
22125                | SyntaxKind::ALTER_USER
22126                | SyntaxKind::ALTER_USER_MAPPING
22127                | SyntaxKind::ALTER_VIEW
22128                | SyntaxKind::ANALYZE
22129                | SyntaxKind::BEGIN
22130                | SyntaxKind::CALL
22131                | SyntaxKind::CHECKPOINT
22132                | SyntaxKind::CLOSE
22133                | SyntaxKind::CLUSTER
22134                | SyntaxKind::COMMENT_ON
22135                | SyntaxKind::COMMIT
22136                | SyntaxKind::COPY
22137                | SyntaxKind::CREATE_ACCESS_METHOD
22138                | SyntaxKind::CREATE_AGGREGATE
22139                | SyntaxKind::CREATE_CAST
22140                | SyntaxKind::CREATE_COLLATION
22141                | SyntaxKind::CREATE_CONVERSION
22142                | SyntaxKind::CREATE_DATABASE
22143                | SyntaxKind::CREATE_DOMAIN
22144                | SyntaxKind::CREATE_EVENT_TRIGGER
22145                | SyntaxKind::CREATE_EXTENSION
22146                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
22147                | SyntaxKind::CREATE_FOREIGN_TABLE
22148                | SyntaxKind::CREATE_FUNCTION
22149                | SyntaxKind::CREATE_GROUP
22150                | SyntaxKind::CREATE_INDEX
22151                | SyntaxKind::CREATE_LANGUAGE
22152                | SyntaxKind::CREATE_MATERIALIZED_VIEW
22153                | SyntaxKind::CREATE_OPERATOR
22154                | SyntaxKind::CREATE_OPERATOR_CLASS
22155                | SyntaxKind::CREATE_OPERATOR_FAMILY
22156                | SyntaxKind::CREATE_POLICY
22157                | SyntaxKind::CREATE_PROCEDURE
22158                | SyntaxKind::CREATE_PUBLICATION
22159                | SyntaxKind::CREATE_ROLE
22160                | SyntaxKind::CREATE_RULE
22161                | SyntaxKind::CREATE_SCHEMA
22162                | SyntaxKind::CREATE_SEQUENCE
22163                | SyntaxKind::CREATE_SERVER
22164                | SyntaxKind::CREATE_STATISTICS
22165                | SyntaxKind::CREATE_SUBSCRIPTION
22166                | SyntaxKind::CREATE_TABLE
22167                | SyntaxKind::CREATE_TABLE_AS
22168                | SyntaxKind::CREATE_TABLESPACE
22169                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
22170                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
22171                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
22172                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
22173                | SyntaxKind::CREATE_TRANSFORM
22174                | SyntaxKind::CREATE_TRIGGER
22175                | SyntaxKind::CREATE_TYPE
22176                | SyntaxKind::CREATE_USER
22177                | SyntaxKind::CREATE_USER_MAPPING
22178                | SyntaxKind::CREATE_VIEW
22179                | SyntaxKind::DEALLOCATE
22180                | SyntaxKind::DECLARE
22181                | SyntaxKind::DELETE
22182                | SyntaxKind::DISCARD
22183                | SyntaxKind::DO
22184                | SyntaxKind::DROP_ACCESS_METHOD
22185                | SyntaxKind::DROP_AGGREGATE
22186                | SyntaxKind::DROP_CAST
22187                | SyntaxKind::DROP_COLLATION
22188                | SyntaxKind::DROP_CONVERSION
22189                | SyntaxKind::DROP_DATABASE
22190                | SyntaxKind::DROP_DOMAIN
22191                | SyntaxKind::DROP_EVENT_TRIGGER
22192                | SyntaxKind::DROP_EXTENSION
22193                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22194                | SyntaxKind::DROP_FOREIGN_TABLE
22195                | SyntaxKind::DROP_FUNCTION
22196                | SyntaxKind::DROP_GROUP
22197                | SyntaxKind::DROP_INDEX
22198                | SyntaxKind::DROP_LANGUAGE
22199                | SyntaxKind::DROP_MATERIALIZED_VIEW
22200                | SyntaxKind::DROP_OPERATOR
22201                | SyntaxKind::DROP_OPERATOR_CLASS
22202                | SyntaxKind::DROP_OPERATOR_FAMILY
22203                | SyntaxKind::DROP_OWNED
22204                | SyntaxKind::DROP_POLICY
22205                | SyntaxKind::DROP_PROCEDURE
22206                | SyntaxKind::DROP_PUBLICATION
22207                | SyntaxKind::DROP_ROLE
22208                | SyntaxKind::DROP_ROUTINE
22209                | SyntaxKind::DROP_RULE
22210                | SyntaxKind::DROP_SCHEMA
22211                | SyntaxKind::DROP_SEQUENCE
22212                | SyntaxKind::DROP_SERVER
22213                | SyntaxKind::DROP_STATISTICS
22214                | SyntaxKind::DROP_SUBSCRIPTION
22215                | SyntaxKind::DROP_TABLE
22216                | SyntaxKind::DROP_TABLESPACE
22217                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
22218                | SyntaxKind::DROP_TEXT_SEARCH_DICT
22219                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
22220                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
22221                | SyntaxKind::DROP_TRANSFORM
22222                | SyntaxKind::DROP_TRIGGER
22223                | SyntaxKind::DROP_TYPE
22224                | SyntaxKind::DROP_USER
22225                | SyntaxKind::DROP_USER_MAPPING
22226                | SyntaxKind::DROP_VIEW
22227                | SyntaxKind::EXECUTE
22228                | SyntaxKind::EXPLAIN
22229                | SyntaxKind::FETCH
22230                | SyntaxKind::GRANT
22231                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
22232                | SyntaxKind::INSERT
22233                | SyntaxKind::LISTEN
22234                | SyntaxKind::LOAD
22235                | SyntaxKind::LOCK
22236                | SyntaxKind::MERGE
22237                | SyntaxKind::MOVE
22238                | SyntaxKind::NOTIFY
22239                | SyntaxKind::PAREN_SELECT
22240                | SyntaxKind::PREPARE
22241                | SyntaxKind::PREPARE_TRANSACTION
22242                | SyntaxKind::REASSIGN
22243                | SyntaxKind::REFRESH
22244                | SyntaxKind::REINDEX
22245                | SyntaxKind::RELEASE_SAVEPOINT
22246                | SyntaxKind::RESET
22247                | SyntaxKind::REVOKE
22248                | SyntaxKind::ROLLBACK
22249                | SyntaxKind::SAVEPOINT
22250                | SyntaxKind::SECURITY_LABEL
22251                | SyntaxKind::SELECT
22252                | SyntaxKind::SELECT_INTO
22253                | SyntaxKind::SET
22254                | SyntaxKind::SET_CONSTRAINTS
22255                | SyntaxKind::SET_ROLE
22256                | SyntaxKind::SET_SESSION_AUTH
22257                | SyntaxKind::SET_TRANSACTION
22258                | SyntaxKind::SHOW
22259                | SyntaxKind::TABLE
22260                | SyntaxKind::TRUNCATE
22261                | SyntaxKind::UNLISTEN
22262                | SyntaxKind::UPDATE
22263                | SyntaxKind::VACUUM
22264                | SyntaxKind::VALUES
22265        )
22266    }
22267    #[inline]
22268    fn cast(syntax: SyntaxNode) -> Option<Self> {
22269        let res = match syntax.kind() {
22270            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
22271            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
22272            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
22273            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
22274            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
22275                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
22276            }
22277            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
22278            SyntaxKind::ALTER_EVENT_TRIGGER => {
22279                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
22280            }
22281            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
22282            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
22283                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
22284            }
22285            SyntaxKind::ALTER_FOREIGN_TABLE => {
22286                Stmt::AlterForeignTable(AlterForeignTable { syntax })
22287            }
22288            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
22289            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
22290            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
22291            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
22292            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
22293            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
22294                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
22295            }
22296            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
22297            SyntaxKind::ALTER_OPERATOR_CLASS => {
22298                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
22299            }
22300            SyntaxKind::ALTER_OPERATOR_FAMILY => {
22301                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
22302            }
22303            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
22304            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
22305            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
22306            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
22307            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
22308            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
22309            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
22310            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
22311            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
22312            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
22313            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
22314            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
22315            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
22316            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
22317            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
22318                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
22319            }
22320            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
22321                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
22322            }
22323            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
22324                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
22325            }
22326            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
22327                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
22328            }
22329            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
22330            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
22331            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
22332            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
22333            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
22334            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
22335            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
22336            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
22337            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
22338            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
22339            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
22340            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
22341            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
22342            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
22343            SyntaxKind::CREATE_ACCESS_METHOD => {
22344                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
22345            }
22346            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
22347            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
22348            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
22349            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
22350            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
22351            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
22352            SyntaxKind::CREATE_EVENT_TRIGGER => {
22353                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
22354            }
22355            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
22356            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
22357                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
22358            }
22359            SyntaxKind::CREATE_FOREIGN_TABLE => {
22360                Stmt::CreateForeignTable(CreateForeignTable { syntax })
22361            }
22362            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
22363            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
22364            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
22365            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
22366            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
22367                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
22368            }
22369            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
22370            SyntaxKind::CREATE_OPERATOR_CLASS => {
22371                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
22372            }
22373            SyntaxKind::CREATE_OPERATOR_FAMILY => {
22374                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
22375            }
22376            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
22377            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
22378            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
22379            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
22380            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
22381            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
22382            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
22383            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
22384            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
22385            SyntaxKind::CREATE_SUBSCRIPTION => {
22386                Stmt::CreateSubscription(CreateSubscription { syntax })
22387            }
22388            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
22389            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
22390            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
22391            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
22392                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
22393            }
22394            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
22395                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
22396            }
22397            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
22398                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
22399            }
22400            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
22401                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
22402            }
22403            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
22404            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
22405            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
22406            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
22407            SyntaxKind::CREATE_USER_MAPPING => {
22408                Stmt::CreateUserMapping(CreateUserMapping { syntax })
22409            }
22410            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
22411            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
22412            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
22413            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
22414            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
22415            SyntaxKind::DO => Stmt::Do(Do { syntax }),
22416            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
22417            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
22418            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
22419            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
22420            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
22421            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
22422            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
22423            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
22424            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
22425            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
22426                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
22427            }
22428            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
22429            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
22430            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
22431            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
22432            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
22433            SyntaxKind::DROP_MATERIALIZED_VIEW => {
22434                Stmt::DropMaterializedView(DropMaterializedView { syntax })
22435            }
22436            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
22437            SyntaxKind::DROP_OPERATOR_CLASS => {
22438                Stmt::DropOperatorClass(DropOperatorClass { syntax })
22439            }
22440            SyntaxKind::DROP_OPERATOR_FAMILY => {
22441                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
22442            }
22443            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
22444            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
22445            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
22446            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
22447            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
22448            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
22449            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
22450            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
22451            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
22452            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
22453            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
22454            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
22455            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
22456            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
22457            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
22458                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
22459            }
22460            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
22461                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
22462            }
22463            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
22464                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
22465            }
22466            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
22467                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
22468            }
22469            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
22470            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
22471            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
22472            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
22473            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
22474            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
22475            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
22476            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
22477            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
22478            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
22479            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
22480                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
22481            }
22482            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
22483            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
22484            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
22485            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
22486            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
22487            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
22488            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
22489            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
22490            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
22491            SyntaxKind::PREPARE_TRANSACTION => {
22492                Stmt::PrepareTransaction(PrepareTransaction { syntax })
22493            }
22494            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
22495            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
22496            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
22497            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
22498            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
22499            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
22500            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
22501            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
22502            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
22503            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
22504            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
22505            SyntaxKind::SET => Stmt::Set(Set { syntax }),
22506            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
22507            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
22508            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
22509            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
22510            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
22511            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
22512            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
22513            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
22514            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
22515            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
22516            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
22517            _ => {
22518                return None;
22519            }
22520        };
22521        Some(res)
22522    }
22523    #[inline]
22524    fn syntax(&self) -> &SyntaxNode {
22525        match self {
22526            Stmt::AlterAggregate(it) => &it.syntax,
22527            Stmt::AlterCollation(it) => &it.syntax,
22528            Stmt::AlterConversion(it) => &it.syntax,
22529            Stmt::AlterDatabase(it) => &it.syntax,
22530            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
22531            Stmt::AlterDomain(it) => &it.syntax,
22532            Stmt::AlterEventTrigger(it) => &it.syntax,
22533            Stmt::AlterExtension(it) => &it.syntax,
22534            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
22535            Stmt::AlterForeignTable(it) => &it.syntax,
22536            Stmt::AlterFunction(it) => &it.syntax,
22537            Stmt::AlterGroup(it) => &it.syntax,
22538            Stmt::AlterIndex(it) => &it.syntax,
22539            Stmt::AlterLanguage(it) => &it.syntax,
22540            Stmt::AlterLargeObject(it) => &it.syntax,
22541            Stmt::AlterMaterializedView(it) => &it.syntax,
22542            Stmt::AlterOperator(it) => &it.syntax,
22543            Stmt::AlterOperatorClass(it) => &it.syntax,
22544            Stmt::AlterOperatorFamily(it) => &it.syntax,
22545            Stmt::AlterPolicy(it) => &it.syntax,
22546            Stmt::AlterProcedure(it) => &it.syntax,
22547            Stmt::AlterPublication(it) => &it.syntax,
22548            Stmt::AlterRole(it) => &it.syntax,
22549            Stmt::AlterRoutine(it) => &it.syntax,
22550            Stmt::AlterRule(it) => &it.syntax,
22551            Stmt::AlterSchema(it) => &it.syntax,
22552            Stmt::AlterSequence(it) => &it.syntax,
22553            Stmt::AlterServer(it) => &it.syntax,
22554            Stmt::AlterStatistics(it) => &it.syntax,
22555            Stmt::AlterSubscription(it) => &it.syntax,
22556            Stmt::AlterSystem(it) => &it.syntax,
22557            Stmt::AlterTable(it) => &it.syntax,
22558            Stmt::AlterTablespace(it) => &it.syntax,
22559            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
22560            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
22561            Stmt::AlterTextSearchParser(it) => &it.syntax,
22562            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
22563            Stmt::AlterTrigger(it) => &it.syntax,
22564            Stmt::AlterType(it) => &it.syntax,
22565            Stmt::AlterUser(it) => &it.syntax,
22566            Stmt::AlterUserMapping(it) => &it.syntax,
22567            Stmt::AlterView(it) => &it.syntax,
22568            Stmt::Analyze(it) => &it.syntax,
22569            Stmt::Begin(it) => &it.syntax,
22570            Stmt::Call(it) => &it.syntax,
22571            Stmt::Checkpoint(it) => &it.syntax,
22572            Stmt::Close(it) => &it.syntax,
22573            Stmt::Cluster(it) => &it.syntax,
22574            Stmt::CommentOn(it) => &it.syntax,
22575            Stmt::Commit(it) => &it.syntax,
22576            Stmt::Copy(it) => &it.syntax,
22577            Stmt::CreateAccessMethod(it) => &it.syntax,
22578            Stmt::CreateAggregate(it) => &it.syntax,
22579            Stmt::CreateCast(it) => &it.syntax,
22580            Stmt::CreateCollation(it) => &it.syntax,
22581            Stmt::CreateConversion(it) => &it.syntax,
22582            Stmt::CreateDatabase(it) => &it.syntax,
22583            Stmt::CreateDomain(it) => &it.syntax,
22584            Stmt::CreateEventTrigger(it) => &it.syntax,
22585            Stmt::CreateExtension(it) => &it.syntax,
22586            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
22587            Stmt::CreateForeignTable(it) => &it.syntax,
22588            Stmt::CreateFunction(it) => &it.syntax,
22589            Stmt::CreateGroup(it) => &it.syntax,
22590            Stmt::CreateIndex(it) => &it.syntax,
22591            Stmt::CreateLanguage(it) => &it.syntax,
22592            Stmt::CreateMaterializedView(it) => &it.syntax,
22593            Stmt::CreateOperator(it) => &it.syntax,
22594            Stmt::CreateOperatorClass(it) => &it.syntax,
22595            Stmt::CreateOperatorFamily(it) => &it.syntax,
22596            Stmt::CreatePolicy(it) => &it.syntax,
22597            Stmt::CreateProcedure(it) => &it.syntax,
22598            Stmt::CreatePublication(it) => &it.syntax,
22599            Stmt::CreateRole(it) => &it.syntax,
22600            Stmt::CreateRule(it) => &it.syntax,
22601            Stmt::CreateSchema(it) => &it.syntax,
22602            Stmt::CreateSequence(it) => &it.syntax,
22603            Stmt::CreateServer(it) => &it.syntax,
22604            Stmt::CreateStatistics(it) => &it.syntax,
22605            Stmt::CreateSubscription(it) => &it.syntax,
22606            Stmt::CreateTable(it) => &it.syntax,
22607            Stmt::CreateTableAs(it) => &it.syntax,
22608            Stmt::CreateTablespace(it) => &it.syntax,
22609            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
22610            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
22611            Stmt::CreateTextSearchParser(it) => &it.syntax,
22612            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
22613            Stmt::CreateTransform(it) => &it.syntax,
22614            Stmt::CreateTrigger(it) => &it.syntax,
22615            Stmt::CreateType(it) => &it.syntax,
22616            Stmt::CreateUser(it) => &it.syntax,
22617            Stmt::CreateUserMapping(it) => &it.syntax,
22618            Stmt::CreateView(it) => &it.syntax,
22619            Stmt::Deallocate(it) => &it.syntax,
22620            Stmt::Declare(it) => &it.syntax,
22621            Stmt::Delete(it) => &it.syntax,
22622            Stmt::Discard(it) => &it.syntax,
22623            Stmt::Do(it) => &it.syntax,
22624            Stmt::DropAccessMethod(it) => &it.syntax,
22625            Stmt::DropAggregate(it) => &it.syntax,
22626            Stmt::DropCast(it) => &it.syntax,
22627            Stmt::DropCollation(it) => &it.syntax,
22628            Stmt::DropConversion(it) => &it.syntax,
22629            Stmt::DropDatabase(it) => &it.syntax,
22630            Stmt::DropDomain(it) => &it.syntax,
22631            Stmt::DropEventTrigger(it) => &it.syntax,
22632            Stmt::DropExtension(it) => &it.syntax,
22633            Stmt::DropForeignDataWrapper(it) => &it.syntax,
22634            Stmt::DropForeignTable(it) => &it.syntax,
22635            Stmt::DropFunction(it) => &it.syntax,
22636            Stmt::DropGroup(it) => &it.syntax,
22637            Stmt::DropIndex(it) => &it.syntax,
22638            Stmt::DropLanguage(it) => &it.syntax,
22639            Stmt::DropMaterializedView(it) => &it.syntax,
22640            Stmt::DropOperator(it) => &it.syntax,
22641            Stmt::DropOperatorClass(it) => &it.syntax,
22642            Stmt::DropOperatorFamily(it) => &it.syntax,
22643            Stmt::DropOwned(it) => &it.syntax,
22644            Stmt::DropPolicy(it) => &it.syntax,
22645            Stmt::DropProcedure(it) => &it.syntax,
22646            Stmt::DropPublication(it) => &it.syntax,
22647            Stmt::DropRole(it) => &it.syntax,
22648            Stmt::DropRoutine(it) => &it.syntax,
22649            Stmt::DropRule(it) => &it.syntax,
22650            Stmt::DropSchema(it) => &it.syntax,
22651            Stmt::DropSequence(it) => &it.syntax,
22652            Stmt::DropServer(it) => &it.syntax,
22653            Stmt::DropStatistics(it) => &it.syntax,
22654            Stmt::DropSubscription(it) => &it.syntax,
22655            Stmt::DropTable(it) => &it.syntax,
22656            Stmt::DropTablespace(it) => &it.syntax,
22657            Stmt::DropTextSearchConfig(it) => &it.syntax,
22658            Stmt::DropTextSearchDict(it) => &it.syntax,
22659            Stmt::DropTextSearchParser(it) => &it.syntax,
22660            Stmt::DropTextSearchTemplate(it) => &it.syntax,
22661            Stmt::DropTransform(it) => &it.syntax,
22662            Stmt::DropTrigger(it) => &it.syntax,
22663            Stmt::DropType(it) => &it.syntax,
22664            Stmt::DropUser(it) => &it.syntax,
22665            Stmt::DropUserMapping(it) => &it.syntax,
22666            Stmt::DropView(it) => &it.syntax,
22667            Stmt::Execute(it) => &it.syntax,
22668            Stmt::Explain(it) => &it.syntax,
22669            Stmt::Fetch(it) => &it.syntax,
22670            Stmt::Grant(it) => &it.syntax,
22671            Stmt::ImportForeignSchema(it) => &it.syntax,
22672            Stmt::Insert(it) => &it.syntax,
22673            Stmt::Listen(it) => &it.syntax,
22674            Stmt::Load(it) => &it.syntax,
22675            Stmt::Lock(it) => &it.syntax,
22676            Stmt::Merge(it) => &it.syntax,
22677            Stmt::Move(it) => &it.syntax,
22678            Stmt::Notify(it) => &it.syntax,
22679            Stmt::ParenSelect(it) => &it.syntax,
22680            Stmt::Prepare(it) => &it.syntax,
22681            Stmt::PrepareTransaction(it) => &it.syntax,
22682            Stmt::Reassign(it) => &it.syntax,
22683            Stmt::Refresh(it) => &it.syntax,
22684            Stmt::Reindex(it) => &it.syntax,
22685            Stmt::ReleaseSavepoint(it) => &it.syntax,
22686            Stmt::Reset(it) => &it.syntax,
22687            Stmt::Revoke(it) => &it.syntax,
22688            Stmt::Rollback(it) => &it.syntax,
22689            Stmt::Savepoint(it) => &it.syntax,
22690            Stmt::SecurityLabel(it) => &it.syntax,
22691            Stmt::Select(it) => &it.syntax,
22692            Stmt::SelectInto(it) => &it.syntax,
22693            Stmt::Set(it) => &it.syntax,
22694            Stmt::SetConstraints(it) => &it.syntax,
22695            Stmt::SetRole(it) => &it.syntax,
22696            Stmt::SetSessionAuth(it) => &it.syntax,
22697            Stmt::SetTransaction(it) => &it.syntax,
22698            Stmt::Show(it) => &it.syntax,
22699            Stmt::Table(it) => &it.syntax,
22700            Stmt::Truncate(it) => &it.syntax,
22701            Stmt::Unlisten(it) => &it.syntax,
22702            Stmt::Update(it) => &it.syntax,
22703            Stmt::Vacuum(it) => &it.syntax,
22704            Stmt::Values(it) => &it.syntax,
22705        }
22706    }
22707}
22708impl From<AlterAggregate> for Stmt {
22709    #[inline]
22710    fn from(node: AlterAggregate) -> Stmt {
22711        Stmt::AlterAggregate(node)
22712    }
22713}
22714impl From<AlterCollation> for Stmt {
22715    #[inline]
22716    fn from(node: AlterCollation) -> Stmt {
22717        Stmt::AlterCollation(node)
22718    }
22719}
22720impl From<AlterConversion> for Stmt {
22721    #[inline]
22722    fn from(node: AlterConversion) -> Stmt {
22723        Stmt::AlterConversion(node)
22724    }
22725}
22726impl From<AlterDatabase> for Stmt {
22727    #[inline]
22728    fn from(node: AlterDatabase) -> Stmt {
22729        Stmt::AlterDatabase(node)
22730    }
22731}
22732impl From<AlterDefaultPrivileges> for Stmt {
22733    #[inline]
22734    fn from(node: AlterDefaultPrivileges) -> Stmt {
22735        Stmt::AlterDefaultPrivileges(node)
22736    }
22737}
22738impl From<AlterDomain> for Stmt {
22739    #[inline]
22740    fn from(node: AlterDomain) -> Stmt {
22741        Stmt::AlterDomain(node)
22742    }
22743}
22744impl From<AlterEventTrigger> for Stmt {
22745    #[inline]
22746    fn from(node: AlterEventTrigger) -> Stmt {
22747        Stmt::AlterEventTrigger(node)
22748    }
22749}
22750impl From<AlterExtension> for Stmt {
22751    #[inline]
22752    fn from(node: AlterExtension) -> Stmt {
22753        Stmt::AlterExtension(node)
22754    }
22755}
22756impl From<AlterForeignDataWrapper> for Stmt {
22757    #[inline]
22758    fn from(node: AlterForeignDataWrapper) -> Stmt {
22759        Stmt::AlterForeignDataWrapper(node)
22760    }
22761}
22762impl From<AlterForeignTable> for Stmt {
22763    #[inline]
22764    fn from(node: AlterForeignTable) -> Stmt {
22765        Stmt::AlterForeignTable(node)
22766    }
22767}
22768impl From<AlterFunction> for Stmt {
22769    #[inline]
22770    fn from(node: AlterFunction) -> Stmt {
22771        Stmt::AlterFunction(node)
22772    }
22773}
22774impl From<AlterGroup> for Stmt {
22775    #[inline]
22776    fn from(node: AlterGroup) -> Stmt {
22777        Stmt::AlterGroup(node)
22778    }
22779}
22780impl From<AlterIndex> for Stmt {
22781    #[inline]
22782    fn from(node: AlterIndex) -> Stmt {
22783        Stmt::AlterIndex(node)
22784    }
22785}
22786impl From<AlterLanguage> for Stmt {
22787    #[inline]
22788    fn from(node: AlterLanguage) -> Stmt {
22789        Stmt::AlterLanguage(node)
22790    }
22791}
22792impl From<AlterLargeObject> for Stmt {
22793    #[inline]
22794    fn from(node: AlterLargeObject) -> Stmt {
22795        Stmt::AlterLargeObject(node)
22796    }
22797}
22798impl From<AlterMaterializedView> for Stmt {
22799    #[inline]
22800    fn from(node: AlterMaterializedView) -> Stmt {
22801        Stmt::AlterMaterializedView(node)
22802    }
22803}
22804impl From<AlterOperator> for Stmt {
22805    #[inline]
22806    fn from(node: AlterOperator) -> Stmt {
22807        Stmt::AlterOperator(node)
22808    }
22809}
22810impl From<AlterOperatorClass> for Stmt {
22811    #[inline]
22812    fn from(node: AlterOperatorClass) -> Stmt {
22813        Stmt::AlterOperatorClass(node)
22814    }
22815}
22816impl From<AlterOperatorFamily> for Stmt {
22817    #[inline]
22818    fn from(node: AlterOperatorFamily) -> Stmt {
22819        Stmt::AlterOperatorFamily(node)
22820    }
22821}
22822impl From<AlterPolicy> for Stmt {
22823    #[inline]
22824    fn from(node: AlterPolicy) -> Stmt {
22825        Stmt::AlterPolicy(node)
22826    }
22827}
22828impl From<AlterProcedure> for Stmt {
22829    #[inline]
22830    fn from(node: AlterProcedure) -> Stmt {
22831        Stmt::AlterProcedure(node)
22832    }
22833}
22834impl From<AlterPublication> for Stmt {
22835    #[inline]
22836    fn from(node: AlterPublication) -> Stmt {
22837        Stmt::AlterPublication(node)
22838    }
22839}
22840impl From<AlterRole> for Stmt {
22841    #[inline]
22842    fn from(node: AlterRole) -> Stmt {
22843        Stmt::AlterRole(node)
22844    }
22845}
22846impl From<AlterRoutine> for Stmt {
22847    #[inline]
22848    fn from(node: AlterRoutine) -> Stmt {
22849        Stmt::AlterRoutine(node)
22850    }
22851}
22852impl From<AlterRule> for Stmt {
22853    #[inline]
22854    fn from(node: AlterRule) -> Stmt {
22855        Stmt::AlterRule(node)
22856    }
22857}
22858impl From<AlterSchema> for Stmt {
22859    #[inline]
22860    fn from(node: AlterSchema) -> Stmt {
22861        Stmt::AlterSchema(node)
22862    }
22863}
22864impl From<AlterSequence> for Stmt {
22865    #[inline]
22866    fn from(node: AlterSequence) -> Stmt {
22867        Stmt::AlterSequence(node)
22868    }
22869}
22870impl From<AlterServer> for Stmt {
22871    #[inline]
22872    fn from(node: AlterServer) -> Stmt {
22873        Stmt::AlterServer(node)
22874    }
22875}
22876impl From<AlterStatistics> for Stmt {
22877    #[inline]
22878    fn from(node: AlterStatistics) -> Stmt {
22879        Stmt::AlterStatistics(node)
22880    }
22881}
22882impl From<AlterSubscription> for Stmt {
22883    #[inline]
22884    fn from(node: AlterSubscription) -> Stmt {
22885        Stmt::AlterSubscription(node)
22886    }
22887}
22888impl From<AlterSystem> for Stmt {
22889    #[inline]
22890    fn from(node: AlterSystem) -> Stmt {
22891        Stmt::AlterSystem(node)
22892    }
22893}
22894impl From<AlterTable> for Stmt {
22895    #[inline]
22896    fn from(node: AlterTable) -> Stmt {
22897        Stmt::AlterTable(node)
22898    }
22899}
22900impl From<AlterTablespace> for Stmt {
22901    #[inline]
22902    fn from(node: AlterTablespace) -> Stmt {
22903        Stmt::AlterTablespace(node)
22904    }
22905}
22906impl From<AlterTextSearchConfiguration> for Stmt {
22907    #[inline]
22908    fn from(node: AlterTextSearchConfiguration) -> Stmt {
22909        Stmt::AlterTextSearchConfiguration(node)
22910    }
22911}
22912impl From<AlterTextSearchDictionary> for Stmt {
22913    #[inline]
22914    fn from(node: AlterTextSearchDictionary) -> Stmt {
22915        Stmt::AlterTextSearchDictionary(node)
22916    }
22917}
22918impl From<AlterTextSearchParser> for Stmt {
22919    #[inline]
22920    fn from(node: AlterTextSearchParser) -> Stmt {
22921        Stmt::AlterTextSearchParser(node)
22922    }
22923}
22924impl From<AlterTextSearchTemplate> for Stmt {
22925    #[inline]
22926    fn from(node: AlterTextSearchTemplate) -> Stmt {
22927        Stmt::AlterTextSearchTemplate(node)
22928    }
22929}
22930impl From<AlterTrigger> for Stmt {
22931    #[inline]
22932    fn from(node: AlterTrigger) -> Stmt {
22933        Stmt::AlterTrigger(node)
22934    }
22935}
22936impl From<AlterType> for Stmt {
22937    #[inline]
22938    fn from(node: AlterType) -> Stmt {
22939        Stmt::AlterType(node)
22940    }
22941}
22942impl From<AlterUser> for Stmt {
22943    #[inline]
22944    fn from(node: AlterUser) -> Stmt {
22945        Stmt::AlterUser(node)
22946    }
22947}
22948impl From<AlterUserMapping> for Stmt {
22949    #[inline]
22950    fn from(node: AlterUserMapping) -> Stmt {
22951        Stmt::AlterUserMapping(node)
22952    }
22953}
22954impl From<AlterView> for Stmt {
22955    #[inline]
22956    fn from(node: AlterView) -> Stmt {
22957        Stmt::AlterView(node)
22958    }
22959}
22960impl From<Analyze> for Stmt {
22961    #[inline]
22962    fn from(node: Analyze) -> Stmt {
22963        Stmt::Analyze(node)
22964    }
22965}
22966impl From<Begin> for Stmt {
22967    #[inline]
22968    fn from(node: Begin) -> Stmt {
22969        Stmt::Begin(node)
22970    }
22971}
22972impl From<Call> for Stmt {
22973    #[inline]
22974    fn from(node: Call) -> Stmt {
22975        Stmt::Call(node)
22976    }
22977}
22978impl From<Checkpoint> for Stmt {
22979    #[inline]
22980    fn from(node: Checkpoint) -> Stmt {
22981        Stmt::Checkpoint(node)
22982    }
22983}
22984impl From<Close> for Stmt {
22985    #[inline]
22986    fn from(node: Close) -> Stmt {
22987        Stmt::Close(node)
22988    }
22989}
22990impl From<Cluster> for Stmt {
22991    #[inline]
22992    fn from(node: Cluster) -> Stmt {
22993        Stmt::Cluster(node)
22994    }
22995}
22996impl From<CommentOn> for Stmt {
22997    #[inline]
22998    fn from(node: CommentOn) -> Stmt {
22999        Stmt::CommentOn(node)
23000    }
23001}
23002impl From<Commit> for Stmt {
23003    #[inline]
23004    fn from(node: Commit) -> Stmt {
23005        Stmt::Commit(node)
23006    }
23007}
23008impl From<Copy> for Stmt {
23009    #[inline]
23010    fn from(node: Copy) -> Stmt {
23011        Stmt::Copy(node)
23012    }
23013}
23014impl From<CreateAccessMethod> for Stmt {
23015    #[inline]
23016    fn from(node: CreateAccessMethod) -> Stmt {
23017        Stmt::CreateAccessMethod(node)
23018    }
23019}
23020impl From<CreateAggregate> for Stmt {
23021    #[inline]
23022    fn from(node: CreateAggregate) -> Stmt {
23023        Stmt::CreateAggregate(node)
23024    }
23025}
23026impl From<CreateCast> for Stmt {
23027    #[inline]
23028    fn from(node: CreateCast) -> Stmt {
23029        Stmt::CreateCast(node)
23030    }
23031}
23032impl From<CreateCollation> for Stmt {
23033    #[inline]
23034    fn from(node: CreateCollation) -> Stmt {
23035        Stmt::CreateCollation(node)
23036    }
23037}
23038impl From<CreateConversion> for Stmt {
23039    #[inline]
23040    fn from(node: CreateConversion) -> Stmt {
23041        Stmt::CreateConversion(node)
23042    }
23043}
23044impl From<CreateDatabase> for Stmt {
23045    #[inline]
23046    fn from(node: CreateDatabase) -> Stmt {
23047        Stmt::CreateDatabase(node)
23048    }
23049}
23050impl From<CreateDomain> for Stmt {
23051    #[inline]
23052    fn from(node: CreateDomain) -> Stmt {
23053        Stmt::CreateDomain(node)
23054    }
23055}
23056impl From<CreateEventTrigger> for Stmt {
23057    #[inline]
23058    fn from(node: CreateEventTrigger) -> Stmt {
23059        Stmt::CreateEventTrigger(node)
23060    }
23061}
23062impl From<CreateExtension> for Stmt {
23063    #[inline]
23064    fn from(node: CreateExtension) -> Stmt {
23065        Stmt::CreateExtension(node)
23066    }
23067}
23068impl From<CreateForeignDataWrapper> for Stmt {
23069    #[inline]
23070    fn from(node: CreateForeignDataWrapper) -> Stmt {
23071        Stmt::CreateForeignDataWrapper(node)
23072    }
23073}
23074impl From<CreateForeignTable> for Stmt {
23075    #[inline]
23076    fn from(node: CreateForeignTable) -> Stmt {
23077        Stmt::CreateForeignTable(node)
23078    }
23079}
23080impl From<CreateFunction> for Stmt {
23081    #[inline]
23082    fn from(node: CreateFunction) -> Stmt {
23083        Stmt::CreateFunction(node)
23084    }
23085}
23086impl From<CreateGroup> for Stmt {
23087    #[inline]
23088    fn from(node: CreateGroup) -> Stmt {
23089        Stmt::CreateGroup(node)
23090    }
23091}
23092impl From<CreateIndex> for Stmt {
23093    #[inline]
23094    fn from(node: CreateIndex) -> Stmt {
23095        Stmt::CreateIndex(node)
23096    }
23097}
23098impl From<CreateLanguage> for Stmt {
23099    #[inline]
23100    fn from(node: CreateLanguage) -> Stmt {
23101        Stmt::CreateLanguage(node)
23102    }
23103}
23104impl From<CreateMaterializedView> for Stmt {
23105    #[inline]
23106    fn from(node: CreateMaterializedView) -> Stmt {
23107        Stmt::CreateMaterializedView(node)
23108    }
23109}
23110impl From<CreateOperator> for Stmt {
23111    #[inline]
23112    fn from(node: CreateOperator) -> Stmt {
23113        Stmt::CreateOperator(node)
23114    }
23115}
23116impl From<CreateOperatorClass> for Stmt {
23117    #[inline]
23118    fn from(node: CreateOperatorClass) -> Stmt {
23119        Stmt::CreateOperatorClass(node)
23120    }
23121}
23122impl From<CreateOperatorFamily> for Stmt {
23123    #[inline]
23124    fn from(node: CreateOperatorFamily) -> Stmt {
23125        Stmt::CreateOperatorFamily(node)
23126    }
23127}
23128impl From<CreatePolicy> for Stmt {
23129    #[inline]
23130    fn from(node: CreatePolicy) -> Stmt {
23131        Stmt::CreatePolicy(node)
23132    }
23133}
23134impl From<CreateProcedure> for Stmt {
23135    #[inline]
23136    fn from(node: CreateProcedure) -> Stmt {
23137        Stmt::CreateProcedure(node)
23138    }
23139}
23140impl From<CreatePublication> for Stmt {
23141    #[inline]
23142    fn from(node: CreatePublication) -> Stmt {
23143        Stmt::CreatePublication(node)
23144    }
23145}
23146impl From<CreateRole> for Stmt {
23147    #[inline]
23148    fn from(node: CreateRole) -> Stmt {
23149        Stmt::CreateRole(node)
23150    }
23151}
23152impl From<CreateRule> for Stmt {
23153    #[inline]
23154    fn from(node: CreateRule) -> Stmt {
23155        Stmt::CreateRule(node)
23156    }
23157}
23158impl From<CreateSchema> for Stmt {
23159    #[inline]
23160    fn from(node: CreateSchema) -> Stmt {
23161        Stmt::CreateSchema(node)
23162    }
23163}
23164impl From<CreateSequence> for Stmt {
23165    #[inline]
23166    fn from(node: CreateSequence) -> Stmt {
23167        Stmt::CreateSequence(node)
23168    }
23169}
23170impl From<CreateServer> for Stmt {
23171    #[inline]
23172    fn from(node: CreateServer) -> Stmt {
23173        Stmt::CreateServer(node)
23174    }
23175}
23176impl From<CreateStatistics> for Stmt {
23177    #[inline]
23178    fn from(node: CreateStatistics) -> Stmt {
23179        Stmt::CreateStatistics(node)
23180    }
23181}
23182impl From<CreateSubscription> for Stmt {
23183    #[inline]
23184    fn from(node: CreateSubscription) -> Stmt {
23185        Stmt::CreateSubscription(node)
23186    }
23187}
23188impl From<CreateTable> for Stmt {
23189    #[inline]
23190    fn from(node: CreateTable) -> Stmt {
23191        Stmt::CreateTable(node)
23192    }
23193}
23194impl From<CreateTableAs> for Stmt {
23195    #[inline]
23196    fn from(node: CreateTableAs) -> Stmt {
23197        Stmt::CreateTableAs(node)
23198    }
23199}
23200impl From<CreateTablespace> for Stmt {
23201    #[inline]
23202    fn from(node: CreateTablespace) -> Stmt {
23203        Stmt::CreateTablespace(node)
23204    }
23205}
23206impl From<CreateTextSearchConfiguration> for Stmt {
23207    #[inline]
23208    fn from(node: CreateTextSearchConfiguration) -> Stmt {
23209        Stmt::CreateTextSearchConfiguration(node)
23210    }
23211}
23212impl From<CreateTextSearchDictionary> for Stmt {
23213    #[inline]
23214    fn from(node: CreateTextSearchDictionary) -> Stmt {
23215        Stmt::CreateTextSearchDictionary(node)
23216    }
23217}
23218impl From<CreateTextSearchParser> for Stmt {
23219    #[inline]
23220    fn from(node: CreateTextSearchParser) -> Stmt {
23221        Stmt::CreateTextSearchParser(node)
23222    }
23223}
23224impl From<CreateTextSearchTemplate> for Stmt {
23225    #[inline]
23226    fn from(node: CreateTextSearchTemplate) -> Stmt {
23227        Stmt::CreateTextSearchTemplate(node)
23228    }
23229}
23230impl From<CreateTransform> for Stmt {
23231    #[inline]
23232    fn from(node: CreateTransform) -> Stmt {
23233        Stmt::CreateTransform(node)
23234    }
23235}
23236impl From<CreateTrigger> for Stmt {
23237    #[inline]
23238    fn from(node: CreateTrigger) -> Stmt {
23239        Stmt::CreateTrigger(node)
23240    }
23241}
23242impl From<CreateType> for Stmt {
23243    #[inline]
23244    fn from(node: CreateType) -> Stmt {
23245        Stmt::CreateType(node)
23246    }
23247}
23248impl From<CreateUser> for Stmt {
23249    #[inline]
23250    fn from(node: CreateUser) -> Stmt {
23251        Stmt::CreateUser(node)
23252    }
23253}
23254impl From<CreateUserMapping> for Stmt {
23255    #[inline]
23256    fn from(node: CreateUserMapping) -> Stmt {
23257        Stmt::CreateUserMapping(node)
23258    }
23259}
23260impl From<CreateView> for Stmt {
23261    #[inline]
23262    fn from(node: CreateView) -> Stmt {
23263        Stmt::CreateView(node)
23264    }
23265}
23266impl From<Deallocate> for Stmt {
23267    #[inline]
23268    fn from(node: Deallocate) -> Stmt {
23269        Stmt::Deallocate(node)
23270    }
23271}
23272impl From<Declare> for Stmt {
23273    #[inline]
23274    fn from(node: Declare) -> Stmt {
23275        Stmt::Declare(node)
23276    }
23277}
23278impl From<Delete> for Stmt {
23279    #[inline]
23280    fn from(node: Delete) -> Stmt {
23281        Stmt::Delete(node)
23282    }
23283}
23284impl From<Discard> for Stmt {
23285    #[inline]
23286    fn from(node: Discard) -> Stmt {
23287        Stmt::Discard(node)
23288    }
23289}
23290impl From<Do> for Stmt {
23291    #[inline]
23292    fn from(node: Do) -> Stmt {
23293        Stmt::Do(node)
23294    }
23295}
23296impl From<DropAccessMethod> for Stmt {
23297    #[inline]
23298    fn from(node: DropAccessMethod) -> Stmt {
23299        Stmt::DropAccessMethod(node)
23300    }
23301}
23302impl From<DropAggregate> for Stmt {
23303    #[inline]
23304    fn from(node: DropAggregate) -> Stmt {
23305        Stmt::DropAggregate(node)
23306    }
23307}
23308impl From<DropCast> for Stmt {
23309    #[inline]
23310    fn from(node: DropCast) -> Stmt {
23311        Stmt::DropCast(node)
23312    }
23313}
23314impl From<DropCollation> for Stmt {
23315    #[inline]
23316    fn from(node: DropCollation) -> Stmt {
23317        Stmt::DropCollation(node)
23318    }
23319}
23320impl From<DropConversion> for Stmt {
23321    #[inline]
23322    fn from(node: DropConversion) -> Stmt {
23323        Stmt::DropConversion(node)
23324    }
23325}
23326impl From<DropDatabase> for Stmt {
23327    #[inline]
23328    fn from(node: DropDatabase) -> Stmt {
23329        Stmt::DropDatabase(node)
23330    }
23331}
23332impl From<DropDomain> for Stmt {
23333    #[inline]
23334    fn from(node: DropDomain) -> Stmt {
23335        Stmt::DropDomain(node)
23336    }
23337}
23338impl From<DropEventTrigger> for Stmt {
23339    #[inline]
23340    fn from(node: DropEventTrigger) -> Stmt {
23341        Stmt::DropEventTrigger(node)
23342    }
23343}
23344impl From<DropExtension> for Stmt {
23345    #[inline]
23346    fn from(node: DropExtension) -> Stmt {
23347        Stmt::DropExtension(node)
23348    }
23349}
23350impl From<DropForeignDataWrapper> for Stmt {
23351    #[inline]
23352    fn from(node: DropForeignDataWrapper) -> Stmt {
23353        Stmt::DropForeignDataWrapper(node)
23354    }
23355}
23356impl From<DropForeignTable> for Stmt {
23357    #[inline]
23358    fn from(node: DropForeignTable) -> Stmt {
23359        Stmt::DropForeignTable(node)
23360    }
23361}
23362impl From<DropFunction> for Stmt {
23363    #[inline]
23364    fn from(node: DropFunction) -> Stmt {
23365        Stmt::DropFunction(node)
23366    }
23367}
23368impl From<DropGroup> for Stmt {
23369    #[inline]
23370    fn from(node: DropGroup) -> Stmt {
23371        Stmt::DropGroup(node)
23372    }
23373}
23374impl From<DropIndex> for Stmt {
23375    #[inline]
23376    fn from(node: DropIndex) -> Stmt {
23377        Stmt::DropIndex(node)
23378    }
23379}
23380impl From<DropLanguage> for Stmt {
23381    #[inline]
23382    fn from(node: DropLanguage) -> Stmt {
23383        Stmt::DropLanguage(node)
23384    }
23385}
23386impl From<DropMaterializedView> for Stmt {
23387    #[inline]
23388    fn from(node: DropMaterializedView) -> Stmt {
23389        Stmt::DropMaterializedView(node)
23390    }
23391}
23392impl From<DropOperator> for Stmt {
23393    #[inline]
23394    fn from(node: DropOperator) -> Stmt {
23395        Stmt::DropOperator(node)
23396    }
23397}
23398impl From<DropOperatorClass> for Stmt {
23399    #[inline]
23400    fn from(node: DropOperatorClass) -> Stmt {
23401        Stmt::DropOperatorClass(node)
23402    }
23403}
23404impl From<DropOperatorFamily> for Stmt {
23405    #[inline]
23406    fn from(node: DropOperatorFamily) -> Stmt {
23407        Stmt::DropOperatorFamily(node)
23408    }
23409}
23410impl From<DropOwned> for Stmt {
23411    #[inline]
23412    fn from(node: DropOwned) -> Stmt {
23413        Stmt::DropOwned(node)
23414    }
23415}
23416impl From<DropPolicy> for Stmt {
23417    #[inline]
23418    fn from(node: DropPolicy) -> Stmt {
23419        Stmt::DropPolicy(node)
23420    }
23421}
23422impl From<DropProcedure> for Stmt {
23423    #[inline]
23424    fn from(node: DropProcedure) -> Stmt {
23425        Stmt::DropProcedure(node)
23426    }
23427}
23428impl From<DropPublication> for Stmt {
23429    #[inline]
23430    fn from(node: DropPublication) -> Stmt {
23431        Stmt::DropPublication(node)
23432    }
23433}
23434impl From<DropRole> for Stmt {
23435    #[inline]
23436    fn from(node: DropRole) -> Stmt {
23437        Stmt::DropRole(node)
23438    }
23439}
23440impl From<DropRoutine> for Stmt {
23441    #[inline]
23442    fn from(node: DropRoutine) -> Stmt {
23443        Stmt::DropRoutine(node)
23444    }
23445}
23446impl From<DropRule> for Stmt {
23447    #[inline]
23448    fn from(node: DropRule) -> Stmt {
23449        Stmt::DropRule(node)
23450    }
23451}
23452impl From<DropSchema> for Stmt {
23453    #[inline]
23454    fn from(node: DropSchema) -> Stmt {
23455        Stmt::DropSchema(node)
23456    }
23457}
23458impl From<DropSequence> for Stmt {
23459    #[inline]
23460    fn from(node: DropSequence) -> Stmt {
23461        Stmt::DropSequence(node)
23462    }
23463}
23464impl From<DropServer> for Stmt {
23465    #[inline]
23466    fn from(node: DropServer) -> Stmt {
23467        Stmt::DropServer(node)
23468    }
23469}
23470impl From<DropStatistics> for Stmt {
23471    #[inline]
23472    fn from(node: DropStatistics) -> Stmt {
23473        Stmt::DropStatistics(node)
23474    }
23475}
23476impl From<DropSubscription> for Stmt {
23477    #[inline]
23478    fn from(node: DropSubscription) -> Stmt {
23479        Stmt::DropSubscription(node)
23480    }
23481}
23482impl From<DropTable> for Stmt {
23483    #[inline]
23484    fn from(node: DropTable) -> Stmt {
23485        Stmt::DropTable(node)
23486    }
23487}
23488impl From<DropTablespace> for Stmt {
23489    #[inline]
23490    fn from(node: DropTablespace) -> Stmt {
23491        Stmt::DropTablespace(node)
23492    }
23493}
23494impl From<DropTextSearchConfig> for Stmt {
23495    #[inline]
23496    fn from(node: DropTextSearchConfig) -> Stmt {
23497        Stmt::DropTextSearchConfig(node)
23498    }
23499}
23500impl From<DropTextSearchDict> for Stmt {
23501    #[inline]
23502    fn from(node: DropTextSearchDict) -> Stmt {
23503        Stmt::DropTextSearchDict(node)
23504    }
23505}
23506impl From<DropTextSearchParser> for Stmt {
23507    #[inline]
23508    fn from(node: DropTextSearchParser) -> Stmt {
23509        Stmt::DropTextSearchParser(node)
23510    }
23511}
23512impl From<DropTextSearchTemplate> for Stmt {
23513    #[inline]
23514    fn from(node: DropTextSearchTemplate) -> Stmt {
23515        Stmt::DropTextSearchTemplate(node)
23516    }
23517}
23518impl From<DropTransform> for Stmt {
23519    #[inline]
23520    fn from(node: DropTransform) -> Stmt {
23521        Stmt::DropTransform(node)
23522    }
23523}
23524impl From<DropTrigger> for Stmt {
23525    #[inline]
23526    fn from(node: DropTrigger) -> Stmt {
23527        Stmt::DropTrigger(node)
23528    }
23529}
23530impl From<DropType> for Stmt {
23531    #[inline]
23532    fn from(node: DropType) -> Stmt {
23533        Stmt::DropType(node)
23534    }
23535}
23536impl From<DropUser> for Stmt {
23537    #[inline]
23538    fn from(node: DropUser) -> Stmt {
23539        Stmt::DropUser(node)
23540    }
23541}
23542impl From<DropUserMapping> for Stmt {
23543    #[inline]
23544    fn from(node: DropUserMapping) -> Stmt {
23545        Stmt::DropUserMapping(node)
23546    }
23547}
23548impl From<DropView> for Stmt {
23549    #[inline]
23550    fn from(node: DropView) -> Stmt {
23551        Stmt::DropView(node)
23552    }
23553}
23554impl From<Execute> for Stmt {
23555    #[inline]
23556    fn from(node: Execute) -> Stmt {
23557        Stmt::Execute(node)
23558    }
23559}
23560impl From<Explain> for Stmt {
23561    #[inline]
23562    fn from(node: Explain) -> Stmt {
23563        Stmt::Explain(node)
23564    }
23565}
23566impl From<Fetch> for Stmt {
23567    #[inline]
23568    fn from(node: Fetch) -> Stmt {
23569        Stmt::Fetch(node)
23570    }
23571}
23572impl From<Grant> for Stmt {
23573    #[inline]
23574    fn from(node: Grant) -> Stmt {
23575        Stmt::Grant(node)
23576    }
23577}
23578impl From<ImportForeignSchema> for Stmt {
23579    #[inline]
23580    fn from(node: ImportForeignSchema) -> Stmt {
23581        Stmt::ImportForeignSchema(node)
23582    }
23583}
23584impl From<Insert> for Stmt {
23585    #[inline]
23586    fn from(node: Insert) -> Stmt {
23587        Stmt::Insert(node)
23588    }
23589}
23590impl From<Listen> for Stmt {
23591    #[inline]
23592    fn from(node: Listen) -> Stmt {
23593        Stmt::Listen(node)
23594    }
23595}
23596impl From<Load> for Stmt {
23597    #[inline]
23598    fn from(node: Load) -> Stmt {
23599        Stmt::Load(node)
23600    }
23601}
23602impl From<Lock> for Stmt {
23603    #[inline]
23604    fn from(node: Lock) -> Stmt {
23605        Stmt::Lock(node)
23606    }
23607}
23608impl From<Merge> for Stmt {
23609    #[inline]
23610    fn from(node: Merge) -> Stmt {
23611        Stmt::Merge(node)
23612    }
23613}
23614impl From<Move> for Stmt {
23615    #[inline]
23616    fn from(node: Move) -> Stmt {
23617        Stmt::Move(node)
23618    }
23619}
23620impl From<Notify> for Stmt {
23621    #[inline]
23622    fn from(node: Notify) -> Stmt {
23623        Stmt::Notify(node)
23624    }
23625}
23626impl From<ParenSelect> for Stmt {
23627    #[inline]
23628    fn from(node: ParenSelect) -> Stmt {
23629        Stmt::ParenSelect(node)
23630    }
23631}
23632impl From<Prepare> for Stmt {
23633    #[inline]
23634    fn from(node: Prepare) -> Stmt {
23635        Stmt::Prepare(node)
23636    }
23637}
23638impl From<PrepareTransaction> for Stmt {
23639    #[inline]
23640    fn from(node: PrepareTransaction) -> Stmt {
23641        Stmt::PrepareTransaction(node)
23642    }
23643}
23644impl From<Reassign> for Stmt {
23645    #[inline]
23646    fn from(node: Reassign) -> Stmt {
23647        Stmt::Reassign(node)
23648    }
23649}
23650impl From<Refresh> for Stmt {
23651    #[inline]
23652    fn from(node: Refresh) -> Stmt {
23653        Stmt::Refresh(node)
23654    }
23655}
23656impl From<Reindex> for Stmt {
23657    #[inline]
23658    fn from(node: Reindex) -> Stmt {
23659        Stmt::Reindex(node)
23660    }
23661}
23662impl From<ReleaseSavepoint> for Stmt {
23663    #[inline]
23664    fn from(node: ReleaseSavepoint) -> Stmt {
23665        Stmt::ReleaseSavepoint(node)
23666    }
23667}
23668impl From<Reset> for Stmt {
23669    #[inline]
23670    fn from(node: Reset) -> Stmt {
23671        Stmt::Reset(node)
23672    }
23673}
23674impl From<Revoke> for Stmt {
23675    #[inline]
23676    fn from(node: Revoke) -> Stmt {
23677        Stmt::Revoke(node)
23678    }
23679}
23680impl From<Rollback> for Stmt {
23681    #[inline]
23682    fn from(node: Rollback) -> Stmt {
23683        Stmt::Rollback(node)
23684    }
23685}
23686impl From<Savepoint> for Stmt {
23687    #[inline]
23688    fn from(node: Savepoint) -> Stmt {
23689        Stmt::Savepoint(node)
23690    }
23691}
23692impl From<SecurityLabel> for Stmt {
23693    #[inline]
23694    fn from(node: SecurityLabel) -> Stmt {
23695        Stmt::SecurityLabel(node)
23696    }
23697}
23698impl From<Select> for Stmt {
23699    #[inline]
23700    fn from(node: Select) -> Stmt {
23701        Stmt::Select(node)
23702    }
23703}
23704impl From<SelectInto> for Stmt {
23705    #[inline]
23706    fn from(node: SelectInto) -> Stmt {
23707        Stmt::SelectInto(node)
23708    }
23709}
23710impl From<Set> for Stmt {
23711    #[inline]
23712    fn from(node: Set) -> Stmt {
23713        Stmt::Set(node)
23714    }
23715}
23716impl From<SetConstraints> for Stmt {
23717    #[inline]
23718    fn from(node: SetConstraints) -> Stmt {
23719        Stmt::SetConstraints(node)
23720    }
23721}
23722impl From<SetRole> for Stmt {
23723    #[inline]
23724    fn from(node: SetRole) -> Stmt {
23725        Stmt::SetRole(node)
23726    }
23727}
23728impl From<SetSessionAuth> for Stmt {
23729    #[inline]
23730    fn from(node: SetSessionAuth) -> Stmt {
23731        Stmt::SetSessionAuth(node)
23732    }
23733}
23734impl From<SetTransaction> for Stmt {
23735    #[inline]
23736    fn from(node: SetTransaction) -> Stmt {
23737        Stmt::SetTransaction(node)
23738    }
23739}
23740impl From<Show> for Stmt {
23741    #[inline]
23742    fn from(node: Show) -> Stmt {
23743        Stmt::Show(node)
23744    }
23745}
23746impl From<Table> for Stmt {
23747    #[inline]
23748    fn from(node: Table) -> Stmt {
23749        Stmt::Table(node)
23750    }
23751}
23752impl From<Truncate> for Stmt {
23753    #[inline]
23754    fn from(node: Truncate) -> Stmt {
23755        Stmt::Truncate(node)
23756    }
23757}
23758impl From<Unlisten> for Stmt {
23759    #[inline]
23760    fn from(node: Unlisten) -> Stmt {
23761        Stmt::Unlisten(node)
23762    }
23763}
23764impl From<Update> for Stmt {
23765    #[inline]
23766    fn from(node: Update) -> Stmt {
23767        Stmt::Update(node)
23768    }
23769}
23770impl From<Vacuum> for Stmt {
23771    #[inline]
23772    fn from(node: Vacuum) -> Stmt {
23773        Stmt::Vacuum(node)
23774    }
23775}
23776impl From<Values> for Stmt {
23777    #[inline]
23778    fn from(node: Values) -> Stmt {
23779        Stmt::Values(node)
23780    }
23781}
23782impl AstNode for TableArg {
23783    #[inline]
23784    fn can_cast(kind: SyntaxKind) -> bool {
23785        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
23786    }
23787    #[inline]
23788    fn cast(syntax: SyntaxNode) -> Option<Self> {
23789        let res = match syntax.kind() {
23790            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
23791            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
23792            _ => {
23793                if let Some(result) = TableConstraint::cast(syntax) {
23794                    return Some(TableArg::TableConstraint(result));
23795                }
23796                return None;
23797            }
23798        };
23799        Some(res)
23800    }
23801    #[inline]
23802    fn syntax(&self) -> &SyntaxNode {
23803        match self {
23804            TableArg::Column(it) => &it.syntax,
23805            TableArg::LikeClause(it) => &it.syntax,
23806            TableArg::TableConstraint(it) => it.syntax(),
23807        }
23808    }
23809}
23810impl From<Column> for TableArg {
23811    #[inline]
23812    fn from(node: Column) -> TableArg {
23813        TableArg::Column(node)
23814    }
23815}
23816impl From<LikeClause> for TableArg {
23817    #[inline]
23818    fn from(node: LikeClause) -> TableArg {
23819        TableArg::LikeClause(node)
23820    }
23821}
23822impl AstNode for TableConstraint {
23823    #[inline]
23824    fn can_cast(kind: SyntaxKind) -> bool {
23825        matches!(
23826            kind,
23827            SyntaxKind::CHECK_CONSTRAINT
23828                | SyntaxKind::EXCLUDE_CONSTRAINT
23829                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
23830                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
23831                | SyntaxKind::UNIQUE_CONSTRAINT
23832        )
23833    }
23834    #[inline]
23835    fn cast(syntax: SyntaxNode) -> Option<Self> {
23836        let res = match syntax.kind() {
23837            SyntaxKind::CHECK_CONSTRAINT => {
23838                TableConstraint::CheckConstraint(CheckConstraint { syntax })
23839            }
23840            SyntaxKind::EXCLUDE_CONSTRAINT => {
23841                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
23842            }
23843            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
23844                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
23845            }
23846            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
23847                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
23848            }
23849            SyntaxKind::UNIQUE_CONSTRAINT => {
23850                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
23851            }
23852            _ => {
23853                return None;
23854            }
23855        };
23856        Some(res)
23857    }
23858    #[inline]
23859    fn syntax(&self) -> &SyntaxNode {
23860        match self {
23861            TableConstraint::CheckConstraint(it) => &it.syntax,
23862            TableConstraint::ExcludeConstraint(it) => &it.syntax,
23863            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
23864            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
23865            TableConstraint::UniqueConstraint(it) => &it.syntax,
23866        }
23867    }
23868}
23869impl From<CheckConstraint> for TableConstraint {
23870    #[inline]
23871    fn from(node: CheckConstraint) -> TableConstraint {
23872        TableConstraint::CheckConstraint(node)
23873    }
23874}
23875impl From<ExcludeConstraint> for TableConstraint {
23876    #[inline]
23877    fn from(node: ExcludeConstraint) -> TableConstraint {
23878        TableConstraint::ExcludeConstraint(node)
23879    }
23880}
23881impl From<ForeignKeyConstraint> for TableConstraint {
23882    #[inline]
23883    fn from(node: ForeignKeyConstraint) -> TableConstraint {
23884        TableConstraint::ForeignKeyConstraint(node)
23885    }
23886}
23887impl From<PrimaryKeyConstraint> for TableConstraint {
23888    #[inline]
23889    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
23890        TableConstraint::PrimaryKeyConstraint(node)
23891    }
23892}
23893impl From<UniqueConstraint> for TableConstraint {
23894    #[inline]
23895    fn from(node: UniqueConstraint) -> TableConstraint {
23896        TableConstraint::UniqueConstraint(node)
23897    }
23898}
23899impl AstNode for Timezone {
23900    #[inline]
23901    fn can_cast(kind: SyntaxKind) -> bool {
23902        matches!(
23903            kind,
23904            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
23905        )
23906    }
23907    #[inline]
23908    fn cast(syntax: SyntaxNode) -> Option<Self> {
23909        let res = match syntax.kind() {
23910            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
23911            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
23912            _ => {
23913                return None;
23914            }
23915        };
23916        Some(res)
23917    }
23918    #[inline]
23919    fn syntax(&self) -> &SyntaxNode {
23920        match self {
23921            Timezone::WithTimezone(it) => &it.syntax,
23922            Timezone::WithoutTimezone(it) => &it.syntax,
23923        }
23924    }
23925}
23926impl From<WithTimezone> for Timezone {
23927    #[inline]
23928    fn from(node: WithTimezone) -> Timezone {
23929        Timezone::WithTimezone(node)
23930    }
23931}
23932impl From<WithoutTimezone> for Timezone {
23933    #[inline]
23934    fn from(node: WithoutTimezone) -> Timezone {
23935        Timezone::WithoutTimezone(node)
23936    }
23937}
23938impl AstNode for TransactionMode {
23939    #[inline]
23940    fn can_cast(kind: SyntaxKind) -> bool {
23941        matches!(
23942            kind,
23943            SyntaxKind::DEFERRABLE
23944                | SyntaxKind::NOT_DEFERRABLE
23945                | SyntaxKind::READ_COMMITTED
23946                | SyntaxKind::READ_ONLY
23947                | SyntaxKind::READ_UNCOMMITTED
23948                | SyntaxKind::READ_WRITE
23949                | SyntaxKind::REPEATABLE_READ
23950                | SyntaxKind::SERIALIZABLE
23951        )
23952    }
23953    #[inline]
23954    fn cast(syntax: SyntaxNode) -> Option<Self> {
23955        let res = match syntax.kind() {
23956            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
23957            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
23958            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
23959            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
23960            SyntaxKind::READ_UNCOMMITTED => {
23961                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
23962            }
23963            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
23964            SyntaxKind::REPEATABLE_READ => {
23965                TransactionMode::RepeatableRead(RepeatableRead { syntax })
23966            }
23967            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
23968            _ => {
23969                return None;
23970            }
23971        };
23972        Some(res)
23973    }
23974    #[inline]
23975    fn syntax(&self) -> &SyntaxNode {
23976        match self {
23977            TransactionMode::Deferrable(it) => &it.syntax,
23978            TransactionMode::NotDeferrable(it) => &it.syntax,
23979            TransactionMode::ReadCommitted(it) => &it.syntax,
23980            TransactionMode::ReadOnly(it) => &it.syntax,
23981            TransactionMode::ReadUncommitted(it) => &it.syntax,
23982            TransactionMode::ReadWrite(it) => &it.syntax,
23983            TransactionMode::RepeatableRead(it) => &it.syntax,
23984            TransactionMode::Serializable(it) => &it.syntax,
23985        }
23986    }
23987}
23988impl From<Deferrable> for TransactionMode {
23989    #[inline]
23990    fn from(node: Deferrable) -> TransactionMode {
23991        TransactionMode::Deferrable(node)
23992    }
23993}
23994impl From<NotDeferrable> for TransactionMode {
23995    #[inline]
23996    fn from(node: NotDeferrable) -> TransactionMode {
23997        TransactionMode::NotDeferrable(node)
23998    }
23999}
24000impl From<ReadCommitted> for TransactionMode {
24001    #[inline]
24002    fn from(node: ReadCommitted) -> TransactionMode {
24003        TransactionMode::ReadCommitted(node)
24004    }
24005}
24006impl From<ReadOnly> for TransactionMode {
24007    #[inline]
24008    fn from(node: ReadOnly) -> TransactionMode {
24009        TransactionMode::ReadOnly(node)
24010    }
24011}
24012impl From<ReadUncommitted> for TransactionMode {
24013    #[inline]
24014    fn from(node: ReadUncommitted) -> TransactionMode {
24015        TransactionMode::ReadUncommitted(node)
24016    }
24017}
24018impl From<ReadWrite> for TransactionMode {
24019    #[inline]
24020    fn from(node: ReadWrite) -> TransactionMode {
24021        TransactionMode::ReadWrite(node)
24022    }
24023}
24024impl From<RepeatableRead> for TransactionMode {
24025    #[inline]
24026    fn from(node: RepeatableRead) -> TransactionMode {
24027        TransactionMode::RepeatableRead(node)
24028    }
24029}
24030impl From<Serializable> for TransactionMode {
24031    #[inline]
24032    fn from(node: Serializable) -> TransactionMode {
24033        TransactionMode::Serializable(node)
24034    }
24035}
24036impl AstNode for Type {
24037    #[inline]
24038    fn can_cast(kind: SyntaxKind) -> bool {
24039        matches!(
24040            kind,
24041            SyntaxKind::ARRAY_TYPE
24042                | SyntaxKind::BIT_TYPE
24043                | SyntaxKind::CHAR_TYPE
24044                | SyntaxKind::DOUBLE_TYPE
24045                | SyntaxKind::INTERVAL_TYPE
24046                | SyntaxKind::PATH_TYPE
24047                | SyntaxKind::PERCENT_TYPE
24048                | SyntaxKind::TIME_TYPE
24049        )
24050    }
24051    #[inline]
24052    fn cast(syntax: SyntaxNode) -> Option<Self> {
24053        let res = match syntax.kind() {
24054            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
24055            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
24056            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
24057            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
24058            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
24059            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
24060            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
24061            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
24062            _ => {
24063                return None;
24064            }
24065        };
24066        Some(res)
24067    }
24068    #[inline]
24069    fn syntax(&self) -> &SyntaxNode {
24070        match self {
24071            Type::ArrayType(it) => &it.syntax,
24072            Type::BitType(it) => &it.syntax,
24073            Type::CharType(it) => &it.syntax,
24074            Type::DoubleType(it) => &it.syntax,
24075            Type::IntervalType(it) => &it.syntax,
24076            Type::PathType(it) => &it.syntax,
24077            Type::PercentType(it) => &it.syntax,
24078            Type::TimeType(it) => &it.syntax,
24079        }
24080    }
24081}
24082impl From<ArrayType> for Type {
24083    #[inline]
24084    fn from(node: ArrayType) -> Type {
24085        Type::ArrayType(node)
24086    }
24087}
24088impl From<BitType> for Type {
24089    #[inline]
24090    fn from(node: BitType) -> Type {
24091        Type::BitType(node)
24092    }
24093}
24094impl From<CharType> for Type {
24095    #[inline]
24096    fn from(node: CharType) -> Type {
24097        Type::CharType(node)
24098    }
24099}
24100impl From<DoubleType> for Type {
24101    #[inline]
24102    fn from(node: DoubleType) -> Type {
24103        Type::DoubleType(node)
24104    }
24105}
24106impl From<IntervalType> for Type {
24107    #[inline]
24108    fn from(node: IntervalType) -> Type {
24109        Type::IntervalType(node)
24110    }
24111}
24112impl From<PathType> for Type {
24113    #[inline]
24114    fn from(node: PathType) -> Type {
24115        Type::PathType(node)
24116    }
24117}
24118impl From<PercentType> for Type {
24119    #[inline]
24120    fn from(node: PercentType) -> Type {
24121        Type::PercentType(node)
24122    }
24123}
24124impl From<TimeType> for Type {
24125    #[inline]
24126    fn from(node: TimeType) -> Type {
24127        Type::TimeType(node)
24128    }
24129}
24130impl AstNode for WithQuery {
24131    #[inline]
24132    fn can_cast(kind: SyntaxKind) -> bool {
24133        matches!(
24134            kind,
24135            SyntaxKind::DELETE
24136                | SyntaxKind::INSERT
24137                | SyntaxKind::MERGE
24138                | SyntaxKind::SELECT
24139                | SyntaxKind::UPDATE
24140                | SyntaxKind::VALUES
24141        )
24142    }
24143    #[inline]
24144    fn cast(syntax: SyntaxNode) -> Option<Self> {
24145        let res = match syntax.kind() {
24146            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
24147            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
24148            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
24149            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
24150            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
24151            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
24152            _ => {
24153                return None;
24154            }
24155        };
24156        Some(res)
24157    }
24158    #[inline]
24159    fn syntax(&self) -> &SyntaxNode {
24160        match self {
24161            WithQuery::Delete(it) => &it.syntax,
24162            WithQuery::Insert(it) => &it.syntax,
24163            WithQuery::Merge(it) => &it.syntax,
24164            WithQuery::Select(it) => &it.syntax,
24165            WithQuery::Update(it) => &it.syntax,
24166            WithQuery::Values(it) => &it.syntax,
24167        }
24168    }
24169}
24170impl From<Delete> for WithQuery {
24171    #[inline]
24172    fn from(node: Delete) -> WithQuery {
24173        WithQuery::Delete(node)
24174    }
24175}
24176impl From<Insert> for WithQuery {
24177    #[inline]
24178    fn from(node: Insert) -> WithQuery {
24179        WithQuery::Insert(node)
24180    }
24181}
24182impl From<Merge> for WithQuery {
24183    #[inline]
24184    fn from(node: Merge) -> WithQuery {
24185        WithQuery::Merge(node)
24186    }
24187}
24188impl From<Select> for WithQuery {
24189    #[inline]
24190    fn from(node: Select) -> WithQuery {
24191        WithQuery::Select(node)
24192    }
24193}
24194impl From<Update> for WithQuery {
24195    #[inline]
24196    fn from(node: Update) -> WithQuery {
24197        WithQuery::Update(node)
24198    }
24199}
24200impl From<Values> for WithQuery {
24201    #[inline]
24202    fn from(node: Values) -> WithQuery {
24203        WithQuery::Values(node)
24204    }
24205}