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 grouping_cube(&self) -> Option<GroupingCube> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn grouping_expr(&self) -> Option<GroupingExpr> {
5112        support::child(&self.syntax)
5113    }
5114    #[inline]
5115    pub fn grouping_rollup(&self) -> Option<GroupingRollup> {
5116        support::child(&self.syntax)
5117    }
5118    #[inline]
5119    pub fn grouping_sets(&self) -> Option<GroupingSets> {
5120        support::child(&self.syntax)
5121    }
5122    #[inline]
5123    pub fn all_token(&self) -> Option<SyntaxToken> {
5124        support::token(&self.syntax, SyntaxKind::ALL_KW)
5125    }
5126    #[inline]
5127    pub fn by_token(&self) -> Option<SyntaxToken> {
5128        support::token(&self.syntax, SyntaxKind::BY_KW)
5129    }
5130    #[inline]
5131    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5132        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5133    }
5134    #[inline]
5135    pub fn group_token(&self) -> Option<SyntaxToken> {
5136        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5137    }
5138}
5139
5140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5141pub struct GroupingCube {
5142    pub(crate) syntax: SyntaxNode,
5143}
5144impl GroupingCube {
5145    #[inline]
5146    pub fn expr(&self) -> Option<Expr> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn cube_token(&self) -> Option<SyntaxToken> {
5151        support::token(&self.syntax, SyntaxKind::CUBE_KW)
5152    }
5153}
5154
5155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5156pub struct GroupingExpr {
5157    pub(crate) syntax: SyntaxNode,
5158}
5159impl GroupingExpr {
5160    #[inline]
5161    pub fn expr(&self) -> Option<Expr> {
5162        support::child(&self.syntax)
5163    }
5164}
5165
5166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5167pub struct GroupingRollup {
5168    pub(crate) syntax: SyntaxNode,
5169}
5170impl GroupingRollup {
5171    #[inline]
5172    pub fn expr(&self) -> Option<Expr> {
5173        support::child(&self.syntax)
5174    }
5175    #[inline]
5176    pub fn rollup_token(&self) -> Option<SyntaxToken> {
5177        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
5178    }
5179}
5180
5181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5182pub struct GroupingSets {
5183    pub(crate) syntax: SyntaxNode,
5184}
5185impl GroupingSets {
5186    #[inline]
5187    pub fn expr(&self) -> Option<Expr> {
5188        support::child(&self.syntax)
5189    }
5190    #[inline]
5191    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5192        support::token(&self.syntax, SyntaxKind::L_PAREN)
5193    }
5194    #[inline]
5195    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5196        support::token(&self.syntax, SyntaxKind::R_PAREN)
5197    }
5198    #[inline]
5199    pub fn grouping_token(&self) -> Option<SyntaxToken> {
5200        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
5201    }
5202    #[inline]
5203    pub fn sets_token(&self) -> Option<SyntaxToken> {
5204        support::token(&self.syntax, SyntaxKind::SETS_KW)
5205    }
5206}
5207
5208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5209pub struct Gteq {
5210    pub(crate) syntax: SyntaxNode,
5211}
5212impl Gteq {
5213    #[inline]
5214    pub fn eq_token(&self) -> Option<SyntaxToken> {
5215        support::token(&self.syntax, SyntaxKind::EQ)
5216    }
5217    #[inline]
5218    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5219        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5220    }
5221}
5222
5223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5224pub struct HavingClause {
5225    pub(crate) syntax: SyntaxNode,
5226}
5227impl HavingClause {
5228    #[inline]
5229    pub fn expr(&self) -> Option<Expr> {
5230        support::child(&self.syntax)
5231    }
5232    #[inline]
5233    pub fn having_token(&self) -> Option<SyntaxToken> {
5234        support::token(&self.syntax, SyntaxKind::HAVING_KW)
5235    }
5236}
5237
5238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5239pub struct IfExists {
5240    pub(crate) syntax: SyntaxNode,
5241}
5242impl IfExists {
5243    #[inline]
5244    pub fn exists_token(&self) -> Option<SyntaxToken> {
5245        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5246    }
5247    #[inline]
5248    pub fn if_token(&self) -> Option<SyntaxToken> {
5249        support::token(&self.syntax, SyntaxKind::IF_KW)
5250    }
5251}
5252
5253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5254pub struct IfNotExists {
5255    pub(crate) syntax: SyntaxNode,
5256}
5257impl IfNotExists {
5258    #[inline]
5259    pub fn exists_token(&self) -> Option<SyntaxToken> {
5260        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5261    }
5262    #[inline]
5263    pub fn if_token(&self) -> Option<SyntaxToken> {
5264        support::token(&self.syntax, SyntaxKind::IF_KW)
5265    }
5266    #[inline]
5267    pub fn not_token(&self) -> Option<SyntaxToken> {
5268        support::token(&self.syntax, SyntaxKind::NOT_KW)
5269    }
5270}
5271
5272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5273pub struct ImportForeignSchema {
5274    pub(crate) syntax: SyntaxNode,
5275}
5276impl ImportForeignSchema {
5277    #[inline]
5278    pub fn name_ref(&self) -> Option<NameRef> {
5279        support::child(&self.syntax)
5280    }
5281    #[inline]
5282    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5283        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5284    }
5285    #[inline]
5286    pub fn import_token(&self) -> Option<SyntaxToken> {
5287        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
5288    }
5289    #[inline]
5290    pub fn schema_token(&self) -> Option<SyntaxToken> {
5291        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
5292    }
5293}
5294
5295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5296pub struct IndexExpr {
5297    pub(crate) syntax: SyntaxNode,
5298}
5299impl IndexExpr {
5300    #[inline]
5301    pub fn base(&self) -> Option<Expr> {
5302        support::child(&self.syntax)
5303    }
5304    #[inline]
5305    pub fn index(&self) -> Option<Expr> {
5306        support::child(&self.syntax)
5307    }
5308    #[inline]
5309    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
5310        support::token(&self.syntax, SyntaxKind::L_BRACK)
5311    }
5312    #[inline]
5313    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
5314        support::token(&self.syntax, SyntaxKind::R_BRACK)
5315    }
5316}
5317
5318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5319pub struct Inherit {
5320    pub(crate) syntax: SyntaxNode,
5321}
5322impl Inherit {
5323    #[inline]
5324    pub fn inherit_token(&self) -> Option<SyntaxToken> {
5325        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
5326    }
5327}
5328
5329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5330pub struct Inherits {
5331    pub(crate) syntax: SyntaxNode,
5332}
5333impl Inherits {
5334    #[inline]
5335    pub fn paths(&self) -> AstChildren<Path> {
5336        support::children(&self.syntax)
5337    }
5338    #[inline]
5339    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5340        support::token(&self.syntax, SyntaxKind::L_PAREN)
5341    }
5342    #[inline]
5343    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5344        support::token(&self.syntax, SyntaxKind::R_PAREN)
5345    }
5346    #[inline]
5347    pub fn inherits_token(&self) -> Option<SyntaxToken> {
5348        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
5349    }
5350}
5351
5352#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5353pub struct InitiallyDeferredConstraintOption {
5354    pub(crate) syntax: SyntaxNode,
5355}
5356impl InitiallyDeferredConstraintOption {
5357    #[inline]
5358    pub fn deferred_token(&self) -> Option<SyntaxToken> {
5359        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
5360    }
5361    #[inline]
5362    pub fn initially_token(&self) -> Option<SyntaxToken> {
5363        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5364    }
5365}
5366
5367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5368pub struct InitiallyImmediateConstraintOption {
5369    pub(crate) syntax: SyntaxNode,
5370}
5371impl InitiallyImmediateConstraintOption {
5372    #[inline]
5373    pub fn immediate_token(&self) -> Option<SyntaxToken> {
5374        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
5375    }
5376    #[inline]
5377    pub fn initially_token(&self) -> Option<SyntaxToken> {
5378        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5379    }
5380}
5381
5382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5383pub struct Insert {
5384    pub(crate) syntax: SyntaxNode,
5385}
5386impl Insert {
5387    #[inline]
5388    pub fn alias(&self) -> Option<Alias> {
5389        support::child(&self.syntax)
5390    }
5391    #[inline]
5392    pub fn column_list(&self) -> Option<ColumnList> {
5393        support::child(&self.syntax)
5394    }
5395    #[inline]
5396    pub fn relation_name(&self) -> Option<RelationName> {
5397        support::child(&self.syntax)
5398    }
5399    #[inline]
5400    pub fn stmt(&self) -> Option<Stmt> {
5401        support::child(&self.syntax)
5402    }
5403    #[inline]
5404    pub fn values(&self) -> Option<Values> {
5405        support::child(&self.syntax)
5406    }
5407    #[inline]
5408    pub fn conflict_token(&self) -> Option<SyntaxToken> {
5409        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
5410    }
5411    #[inline]
5412    pub fn default_token(&self) -> Option<SyntaxToken> {
5413        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5414    }
5415    #[inline]
5416    pub fn insert_token(&self) -> Option<SyntaxToken> {
5417        support::token(&self.syntax, SyntaxKind::INSERT_KW)
5418    }
5419    #[inline]
5420    pub fn into_token(&self) -> Option<SyntaxToken> {
5421        support::token(&self.syntax, SyntaxKind::INTO_KW)
5422    }
5423    #[inline]
5424    pub fn on_token(&self) -> Option<SyntaxToken> {
5425        support::token(&self.syntax, SyntaxKind::ON_KW)
5426    }
5427    #[inline]
5428    pub fn overriding_token(&self) -> Option<SyntaxToken> {
5429        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
5430    }
5431    #[inline]
5432    pub fn system_token(&self) -> Option<SyntaxToken> {
5433        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
5434    }
5435    #[inline]
5436    pub fn user_token(&self) -> Option<SyntaxToken> {
5437        support::token(&self.syntax, SyntaxKind::USER_KW)
5438    }
5439    #[inline]
5440    pub fn value_token(&self) -> Option<SyntaxToken> {
5441        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5442    }
5443    #[inline]
5444    pub fn values_token(&self) -> Option<SyntaxToken> {
5445        support::token(&self.syntax, SyntaxKind::VALUES_KW)
5446    }
5447}
5448
5449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5450pub struct IntervalType {
5451    pub(crate) syntax: SyntaxNode,
5452}
5453impl IntervalType {
5454    #[inline]
5455    pub fn literal(&self) -> Option<Literal> {
5456        support::child(&self.syntax)
5457    }
5458    #[inline]
5459    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5460        support::token(&self.syntax, SyntaxKind::L_PAREN)
5461    }
5462    #[inline]
5463    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5464        support::token(&self.syntax, SyntaxKind::R_PAREN)
5465    }
5466    #[inline]
5467    pub fn day_token(&self) -> Option<SyntaxToken> {
5468        support::token(&self.syntax, SyntaxKind::DAY_KW)
5469    }
5470    #[inline]
5471    pub fn hour_token(&self) -> Option<SyntaxToken> {
5472        support::token(&self.syntax, SyntaxKind::HOUR_KW)
5473    }
5474    #[inline]
5475    pub fn interval_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
5477    }
5478    #[inline]
5479    pub fn minute_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
5481    }
5482    #[inline]
5483    pub fn month_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::MONTH_KW)
5485    }
5486    #[inline]
5487    pub fn second_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::SECOND_KW)
5489    }
5490    #[inline]
5491    pub fn to_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::TO_KW)
5493    }
5494    #[inline]
5495    pub fn year_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::YEAR_KW)
5497    }
5498}
5499
5500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5501pub struct IntoClause {
5502    pub(crate) syntax: SyntaxNode,
5503}
5504impl IntoClause {
5505    #[inline]
5506    pub fn into_token(&self) -> Option<SyntaxToken> {
5507        support::token(&self.syntax, SyntaxKind::INTO_KW)
5508    }
5509}
5510
5511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5512pub struct IsDistinctFrom {
5513    pub(crate) syntax: SyntaxNode,
5514}
5515impl IsDistinctFrom {
5516    #[inline]
5517    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5518        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5519    }
5520    #[inline]
5521    pub fn from_token(&self) -> Option<SyntaxToken> {
5522        support::token(&self.syntax, SyntaxKind::FROM_KW)
5523    }
5524    #[inline]
5525    pub fn is_token(&self) -> Option<SyntaxToken> {
5526        support::token(&self.syntax, SyntaxKind::IS_KW)
5527    }
5528}
5529
5530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5531pub struct IsJson {
5532    pub(crate) syntax: SyntaxNode,
5533}
5534impl IsJson {
5535    #[inline]
5536    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5537        support::child(&self.syntax)
5538    }
5539    #[inline]
5540    pub fn is_token(&self) -> Option<SyntaxToken> {
5541        support::token(&self.syntax, SyntaxKind::IS_KW)
5542    }
5543    #[inline]
5544    pub fn json_token(&self) -> Option<SyntaxToken> {
5545        support::token(&self.syntax, SyntaxKind::JSON_KW)
5546    }
5547}
5548
5549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5550pub struct IsJsonArray {
5551    pub(crate) syntax: SyntaxNode,
5552}
5553impl IsJsonArray {
5554    #[inline]
5555    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5556        support::child(&self.syntax)
5557    }
5558    #[inline]
5559    pub fn array_token(&self) -> Option<SyntaxToken> {
5560        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5561    }
5562    #[inline]
5563    pub fn is_token(&self) -> Option<SyntaxToken> {
5564        support::token(&self.syntax, SyntaxKind::IS_KW)
5565    }
5566    #[inline]
5567    pub fn json_token(&self) -> Option<SyntaxToken> {
5568        support::token(&self.syntax, SyntaxKind::JSON_KW)
5569    }
5570}
5571
5572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5573pub struct IsJsonObject {
5574    pub(crate) syntax: SyntaxNode,
5575}
5576impl IsJsonObject {
5577    #[inline]
5578    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5579        support::child(&self.syntax)
5580    }
5581    #[inline]
5582    pub fn is_token(&self) -> Option<SyntaxToken> {
5583        support::token(&self.syntax, SyntaxKind::IS_KW)
5584    }
5585    #[inline]
5586    pub fn json_token(&self) -> Option<SyntaxToken> {
5587        support::token(&self.syntax, SyntaxKind::JSON_KW)
5588    }
5589    #[inline]
5590    pub fn object_token(&self) -> Option<SyntaxToken> {
5591        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5592    }
5593}
5594
5595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5596pub struct IsJsonScalar {
5597    pub(crate) syntax: SyntaxNode,
5598}
5599impl IsJsonScalar {
5600    #[inline]
5601    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5602        support::child(&self.syntax)
5603    }
5604    #[inline]
5605    pub fn is_token(&self) -> Option<SyntaxToken> {
5606        support::token(&self.syntax, SyntaxKind::IS_KW)
5607    }
5608    #[inline]
5609    pub fn json_token(&self) -> Option<SyntaxToken> {
5610        support::token(&self.syntax, SyntaxKind::JSON_KW)
5611    }
5612    #[inline]
5613    pub fn scalar_token(&self) -> Option<SyntaxToken> {
5614        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
5615    }
5616}
5617
5618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5619pub struct IsJsonValue {
5620    pub(crate) syntax: SyntaxNode,
5621}
5622impl IsJsonValue {
5623    #[inline]
5624    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5625        support::child(&self.syntax)
5626    }
5627    #[inline]
5628    pub fn is_token(&self) -> Option<SyntaxToken> {
5629        support::token(&self.syntax, SyntaxKind::IS_KW)
5630    }
5631    #[inline]
5632    pub fn json_token(&self) -> Option<SyntaxToken> {
5633        support::token(&self.syntax, SyntaxKind::JSON_KW)
5634    }
5635    #[inline]
5636    pub fn value_token(&self) -> Option<SyntaxToken> {
5637        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5638    }
5639}
5640
5641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5642pub struct IsNormalized {
5643    pub(crate) syntax: SyntaxNode,
5644}
5645impl IsNormalized {
5646    #[inline]
5647    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
5648        support::child(&self.syntax)
5649    }
5650    #[inline]
5651    pub fn is_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::IS_KW)
5653    }
5654    #[inline]
5655    pub fn normalized_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
5657    }
5658}
5659
5660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5661pub struct IsNot {
5662    pub(crate) syntax: SyntaxNode,
5663}
5664impl IsNot {
5665    #[inline]
5666    pub fn is_token(&self) -> Option<SyntaxToken> {
5667        support::token(&self.syntax, SyntaxKind::IS_KW)
5668    }
5669    #[inline]
5670    pub fn not_token(&self) -> Option<SyntaxToken> {
5671        support::token(&self.syntax, SyntaxKind::NOT_KW)
5672    }
5673}
5674
5675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5676pub struct IsNotDistinctFrom {
5677    pub(crate) syntax: SyntaxNode,
5678}
5679impl IsNotDistinctFrom {
5680    #[inline]
5681    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5682        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5683    }
5684    #[inline]
5685    pub fn from_token(&self) -> Option<SyntaxToken> {
5686        support::token(&self.syntax, SyntaxKind::FROM_KW)
5687    }
5688    #[inline]
5689    pub fn is_token(&self) -> Option<SyntaxToken> {
5690        support::token(&self.syntax, SyntaxKind::IS_KW)
5691    }
5692    #[inline]
5693    pub fn not_token(&self) -> Option<SyntaxToken> {
5694        support::token(&self.syntax, SyntaxKind::NOT_KW)
5695    }
5696}
5697
5698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5699pub struct IsNotJson {
5700    pub(crate) syntax: SyntaxNode,
5701}
5702impl IsNotJson {
5703    #[inline]
5704    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5705        support::child(&self.syntax)
5706    }
5707    #[inline]
5708    pub fn is_token(&self) -> Option<SyntaxToken> {
5709        support::token(&self.syntax, SyntaxKind::IS_KW)
5710    }
5711    #[inline]
5712    pub fn json_token(&self) -> Option<SyntaxToken> {
5713        support::token(&self.syntax, SyntaxKind::JSON_KW)
5714    }
5715    #[inline]
5716    pub fn not_token(&self) -> Option<SyntaxToken> {
5717        support::token(&self.syntax, SyntaxKind::NOT_KW)
5718    }
5719}
5720
5721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5722pub struct IsNotJsonArray {
5723    pub(crate) syntax: SyntaxNode,
5724}
5725impl IsNotJsonArray {
5726    #[inline]
5727    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5728        support::child(&self.syntax)
5729    }
5730    #[inline]
5731    pub fn array_token(&self) -> Option<SyntaxToken> {
5732        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5733    }
5734    #[inline]
5735    pub fn is_token(&self) -> Option<SyntaxToken> {
5736        support::token(&self.syntax, SyntaxKind::IS_KW)
5737    }
5738    #[inline]
5739    pub fn json_token(&self) -> Option<SyntaxToken> {
5740        support::token(&self.syntax, SyntaxKind::JSON_KW)
5741    }
5742    #[inline]
5743    pub fn not_token(&self) -> Option<SyntaxToken> {
5744        support::token(&self.syntax, SyntaxKind::NOT_KW)
5745    }
5746}
5747
5748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5749pub struct IsNotJsonObject {
5750    pub(crate) syntax: SyntaxNode,
5751}
5752impl IsNotJsonObject {
5753    #[inline]
5754    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5755        support::child(&self.syntax)
5756    }
5757    #[inline]
5758    pub fn is_token(&self) -> Option<SyntaxToken> {
5759        support::token(&self.syntax, SyntaxKind::IS_KW)
5760    }
5761    #[inline]
5762    pub fn json_token(&self) -> Option<SyntaxToken> {
5763        support::token(&self.syntax, SyntaxKind::JSON_KW)
5764    }
5765    #[inline]
5766    pub fn not_token(&self) -> Option<SyntaxToken> {
5767        support::token(&self.syntax, SyntaxKind::NOT_KW)
5768    }
5769    #[inline]
5770    pub fn object_token(&self) -> Option<SyntaxToken> {
5771        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5772    }
5773}
5774
5775#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5776pub struct IsNotJsonScalar {
5777    pub(crate) syntax: SyntaxNode,
5778}
5779impl IsNotJsonScalar {
5780    #[inline]
5781    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5782        support::child(&self.syntax)
5783    }
5784    #[inline]
5785    pub fn is_token(&self) -> Option<SyntaxToken> {
5786        support::token(&self.syntax, SyntaxKind::IS_KW)
5787    }
5788    #[inline]
5789    pub fn json_token(&self) -> Option<SyntaxToken> {
5790        support::token(&self.syntax, SyntaxKind::JSON_KW)
5791    }
5792    #[inline]
5793    pub fn not_token(&self) -> Option<SyntaxToken> {
5794        support::token(&self.syntax, SyntaxKind::NOT_KW)
5795    }
5796    #[inline]
5797    pub fn scalar_token(&self) -> Option<SyntaxToken> {
5798        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
5799    }
5800}
5801
5802#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5803pub struct IsNotJsonValue {
5804    pub(crate) syntax: SyntaxNode,
5805}
5806impl IsNotJsonValue {
5807    #[inline]
5808    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5809        support::child(&self.syntax)
5810    }
5811    #[inline]
5812    pub fn is_token(&self) -> Option<SyntaxToken> {
5813        support::token(&self.syntax, SyntaxKind::IS_KW)
5814    }
5815    #[inline]
5816    pub fn json_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::JSON_KW)
5818    }
5819    #[inline]
5820    pub fn not_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::NOT_KW)
5822    }
5823    #[inline]
5824    pub fn value_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5826    }
5827}
5828
5829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5830pub struct IsNotNormalized {
5831    pub(crate) syntax: SyntaxNode,
5832}
5833impl IsNotNormalized {
5834    #[inline]
5835    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
5836        support::child(&self.syntax)
5837    }
5838    #[inline]
5839    pub fn is_token(&self) -> Option<SyntaxToken> {
5840        support::token(&self.syntax, SyntaxKind::IS_KW)
5841    }
5842    #[inline]
5843    pub fn normalized_token(&self) -> Option<SyntaxToken> {
5844        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
5845    }
5846    #[inline]
5847    pub fn not_token(&self) -> Option<SyntaxToken> {
5848        support::token(&self.syntax, SyntaxKind::NOT_KW)
5849    }
5850}
5851
5852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5853pub struct Join {
5854    pub(crate) syntax: SyntaxNode,
5855}
5856impl Join {
5857    #[inline]
5858    pub fn from_item(&self) -> Option<FromItem> {
5859        support::child(&self.syntax)
5860    }
5861    #[inline]
5862    pub fn join_type(&self) -> Option<JoinType> {
5863        support::child(&self.syntax)
5864    }
5865    #[inline]
5866    pub fn on_clause(&self) -> Option<OnClause> {
5867        support::child(&self.syntax)
5868    }
5869    #[inline]
5870    pub fn using_clause(&self) -> Option<JoinUsingClause> {
5871        support::child(&self.syntax)
5872    }
5873    #[inline]
5874    pub fn natural_token(&self) -> Option<SyntaxToken> {
5875        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
5876    }
5877}
5878
5879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5880pub struct JoinCross {
5881    pub(crate) syntax: SyntaxNode,
5882}
5883impl JoinCross {
5884    #[inline]
5885    pub fn cross_token(&self) -> Option<SyntaxToken> {
5886        support::token(&self.syntax, SyntaxKind::CROSS_KW)
5887    }
5888    #[inline]
5889    pub fn join_token(&self) -> Option<SyntaxToken> {
5890        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5891    }
5892}
5893
5894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5895pub struct JoinExpr {
5896    pub(crate) syntax: SyntaxNode,
5897}
5898impl JoinExpr {
5899    #[inline]
5900    pub fn from_item(&self) -> Option<FromItem> {
5901        support::child(&self.syntax)
5902    }
5903    #[inline]
5904    pub fn join(&self) -> Option<Join> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn join_expr(&self) -> Option<JoinExpr> {
5909        support::child(&self.syntax)
5910    }
5911}
5912
5913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5914pub struct JoinFull {
5915    pub(crate) syntax: SyntaxNode,
5916}
5917impl JoinFull {
5918    #[inline]
5919    pub fn full_token(&self) -> Option<SyntaxToken> {
5920        support::token(&self.syntax, SyntaxKind::FULL_KW)
5921    }
5922    #[inline]
5923    pub fn join_token(&self) -> Option<SyntaxToken> {
5924        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5925    }
5926    #[inline]
5927    pub fn outer_token(&self) -> Option<SyntaxToken> {
5928        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5929    }
5930}
5931
5932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5933pub struct JoinInner {
5934    pub(crate) syntax: SyntaxNode,
5935}
5936impl JoinInner {
5937    #[inline]
5938    pub fn inner_token(&self) -> Option<SyntaxToken> {
5939        support::token(&self.syntax, SyntaxKind::INNER_KW)
5940    }
5941    #[inline]
5942    pub fn join_token(&self) -> Option<SyntaxToken> {
5943        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5944    }
5945}
5946
5947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5948pub struct JoinLeft {
5949    pub(crate) syntax: SyntaxNode,
5950}
5951impl JoinLeft {
5952    #[inline]
5953    pub fn join_token(&self) -> Option<SyntaxToken> {
5954        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5955    }
5956    #[inline]
5957    pub fn left_token(&self) -> Option<SyntaxToken> {
5958        support::token(&self.syntax, SyntaxKind::LEFT_KW)
5959    }
5960    #[inline]
5961    pub fn outer_token(&self) -> Option<SyntaxToken> {
5962        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5963    }
5964}
5965
5966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5967pub struct JoinRight {
5968    pub(crate) syntax: SyntaxNode,
5969}
5970impl JoinRight {
5971    #[inline]
5972    pub fn join_token(&self) -> Option<SyntaxToken> {
5973        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5974    }
5975    #[inline]
5976    pub fn outer_token(&self) -> Option<SyntaxToken> {
5977        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5978    }
5979    #[inline]
5980    pub fn right_token(&self) -> Option<SyntaxToken> {
5981        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
5982    }
5983}
5984
5985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5986pub struct JoinUsingClause {
5987    pub(crate) syntax: SyntaxNode,
5988}
5989impl JoinUsingClause {
5990    #[inline]
5991    pub fn alias(&self) -> Option<Alias> {
5992        support::child(&self.syntax)
5993    }
5994    #[inline]
5995    pub fn column_list(&self) -> Option<ColumnList> {
5996        support::child(&self.syntax)
5997    }
5998    #[inline]
5999    pub fn using_token(&self) -> Option<SyntaxToken> {
6000        support::token(&self.syntax, SyntaxKind::USING_KW)
6001    }
6002}
6003
6004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6005pub struct JsonBehaviorDefault {
6006    pub(crate) syntax: SyntaxNode,
6007}
6008impl JsonBehaviorDefault {
6009    #[inline]
6010    pub fn expr(&self) -> Option<Expr> {
6011        support::child(&self.syntax)
6012    }
6013    #[inline]
6014    pub fn default_token(&self) -> Option<SyntaxToken> {
6015        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6016    }
6017}
6018
6019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6020pub struct JsonBehaviorEmptyArray {
6021    pub(crate) syntax: SyntaxNode,
6022}
6023impl JsonBehaviorEmptyArray {
6024    #[inline]
6025    pub fn array_token(&self) -> Option<SyntaxToken> {
6026        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
6027    }
6028    #[inline]
6029    pub fn empty_token(&self) -> Option<SyntaxToken> {
6030        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6031    }
6032}
6033
6034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6035pub struct JsonBehaviorEmptyObject {
6036    pub(crate) syntax: SyntaxNode,
6037}
6038impl JsonBehaviorEmptyObject {
6039    #[inline]
6040    pub fn empty_token(&self) -> Option<SyntaxToken> {
6041        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6042    }
6043    #[inline]
6044    pub fn object_token(&self) -> Option<SyntaxToken> {
6045        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
6046    }
6047}
6048
6049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6050pub struct JsonBehaviorError {
6051    pub(crate) syntax: SyntaxNode,
6052}
6053impl JsonBehaviorError {
6054    #[inline]
6055    pub fn error_token(&self) -> Option<SyntaxToken> {
6056        support::token(&self.syntax, SyntaxKind::ERROR_KW)
6057    }
6058}
6059
6060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6061pub struct JsonBehaviorFalse {
6062    pub(crate) syntax: SyntaxNode,
6063}
6064impl JsonBehaviorFalse {
6065    #[inline]
6066    pub fn false_token(&self) -> Option<SyntaxToken> {
6067        support::token(&self.syntax, SyntaxKind::FALSE_KW)
6068    }
6069}
6070
6071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6072pub struct JsonBehaviorNull {
6073    pub(crate) syntax: SyntaxNode,
6074}
6075impl JsonBehaviorNull {
6076    #[inline]
6077    pub fn null_token(&self) -> Option<SyntaxToken> {
6078        support::token(&self.syntax, SyntaxKind::NULL_KW)
6079    }
6080}
6081
6082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6083pub struct JsonBehaviorTrue {
6084    pub(crate) syntax: SyntaxNode,
6085}
6086impl JsonBehaviorTrue {
6087    #[inline]
6088    pub fn true_token(&self) -> Option<SyntaxToken> {
6089        support::token(&self.syntax, SyntaxKind::TRUE_KW)
6090    }
6091}
6092
6093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6094pub struct JsonBehaviorUnknown {
6095    pub(crate) syntax: SyntaxNode,
6096}
6097impl JsonBehaviorUnknown {
6098    #[inline]
6099    pub fn unknown_token(&self) -> Option<SyntaxToken> {
6100        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
6101    }
6102}
6103
6104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6105pub struct JsonFormatClause {
6106    pub(crate) syntax: SyntaxNode,
6107}
6108impl JsonFormatClause {
6109    #[inline]
6110    pub fn name(&self) -> Option<Name> {
6111        support::child(&self.syntax)
6112    }
6113    #[inline]
6114    pub fn encoding_token(&self) -> Option<SyntaxToken> {
6115        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
6116    }
6117    #[inline]
6118    pub fn format_token(&self) -> Option<SyntaxToken> {
6119        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
6120    }
6121    #[inline]
6122    pub fn json_token(&self) -> Option<SyntaxToken> {
6123        support::token(&self.syntax, SyntaxKind::JSON_KW)
6124    }
6125}
6126
6127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6128pub struct JsonKeyValue {
6129    pub(crate) syntax: SyntaxNode,
6130}
6131impl JsonKeyValue {
6132    #[inline]
6133    pub fn expr(&self) -> Option<Expr> {
6134        support::child(&self.syntax)
6135    }
6136    #[inline]
6137    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
6138        support::child(&self.syntax)
6139    }
6140    #[inline]
6141    pub fn colon_token(&self) -> Option<SyntaxToken> {
6142        support::token(&self.syntax, SyntaxKind::COLON)
6143    }
6144}
6145
6146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6147pub struct JsonKeysUniqueClause {
6148    pub(crate) syntax: SyntaxNode,
6149}
6150impl JsonKeysUniqueClause {
6151    #[inline]
6152    pub fn keys_token(&self) -> Option<SyntaxToken> {
6153        support::token(&self.syntax, SyntaxKind::KEYS_KW)
6154    }
6155    #[inline]
6156    pub fn unique_token(&self) -> Option<SyntaxToken> {
6157        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
6158    }
6159    #[inline]
6160    pub fn with_token(&self) -> Option<SyntaxToken> {
6161        support::token(&self.syntax, SyntaxKind::WITH_KW)
6162    }
6163    #[inline]
6164    pub fn without_token(&self) -> Option<SyntaxToken> {
6165        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6166    }
6167}
6168
6169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6170pub struct JsonNullClause {
6171    pub(crate) syntax: SyntaxNode,
6172}
6173impl JsonNullClause {
6174    #[inline]
6175    pub fn absent_token(&self) -> Option<SyntaxToken> {
6176        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
6177    }
6178    #[inline]
6179    pub fn null_token(&self) -> Option<SyntaxToken> {
6180        support::token(&self.syntax, SyntaxKind::NULL_KW)
6181    }
6182    #[inline]
6183    pub fn on_token(&self) -> Option<SyntaxToken> {
6184        support::token(&self.syntax, SyntaxKind::ON_KW)
6185    }
6186}
6187
6188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6189pub struct JsonOnEmptyClause {
6190    pub(crate) syntax: SyntaxNode,
6191}
6192impl JsonOnEmptyClause {
6193    #[inline]
6194    pub fn json_behavior(&self) -> Option<JsonBehavior> {
6195        support::child(&self.syntax)
6196    }
6197    #[inline]
6198    pub fn empty_token(&self) -> Option<SyntaxToken> {
6199        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6200    }
6201    #[inline]
6202    pub fn on_token(&self) -> Option<SyntaxToken> {
6203        support::token(&self.syntax, SyntaxKind::ON_KW)
6204    }
6205}
6206
6207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6208pub struct JsonOnErrorClause {
6209    pub(crate) syntax: SyntaxNode,
6210}
6211impl JsonOnErrorClause {
6212    #[inline]
6213    pub fn json_behavior(&self) -> Option<JsonBehavior> {
6214        support::child(&self.syntax)
6215    }
6216    #[inline]
6217    pub fn error_token(&self) -> Option<SyntaxToken> {
6218        support::token(&self.syntax, SyntaxKind::ERROR_KW)
6219    }
6220    #[inline]
6221    pub fn on_token(&self) -> Option<SyntaxToken> {
6222        support::token(&self.syntax, SyntaxKind::ON_KW)
6223    }
6224}
6225
6226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6227pub struct JsonPassingArg {
6228    pub(crate) syntax: SyntaxNode,
6229}
6230impl JsonPassingArg {
6231    #[inline]
6232    pub fn expr(&self) -> Option<Expr> {
6233        support::child(&self.syntax)
6234    }
6235    #[inline]
6236    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6237        support::child(&self.syntax)
6238    }
6239    #[inline]
6240    pub fn name(&self) -> Option<Name> {
6241        support::child(&self.syntax)
6242    }
6243    #[inline]
6244    pub fn as_token(&self) -> Option<SyntaxToken> {
6245        support::token(&self.syntax, SyntaxKind::AS_KW)
6246    }
6247}
6248
6249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6250pub struct JsonPassingClause {
6251    pub(crate) syntax: SyntaxNode,
6252}
6253impl JsonPassingClause {
6254    #[inline]
6255    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
6256        support::children(&self.syntax)
6257    }
6258    #[inline]
6259    pub fn passing_token(&self) -> Option<SyntaxToken> {
6260        support::token(&self.syntax, SyntaxKind::PASSING_KW)
6261    }
6262}
6263
6264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6265pub struct JsonQuotesClause {
6266    pub(crate) syntax: SyntaxNode,
6267}
6268impl JsonQuotesClause {
6269    #[inline]
6270    pub fn keep_token(&self) -> Option<SyntaxToken> {
6271        support::token(&self.syntax, SyntaxKind::KEEP_KW)
6272    }
6273    #[inline]
6274    pub fn omit_token(&self) -> Option<SyntaxToken> {
6275        support::token(&self.syntax, SyntaxKind::OMIT_KW)
6276    }
6277    #[inline]
6278    pub fn quotes_token(&self) -> Option<SyntaxToken> {
6279        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
6280    }
6281}
6282
6283#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6284pub struct JsonReturningClause {
6285    pub(crate) syntax: SyntaxNode,
6286}
6287impl JsonReturningClause {
6288    #[inline]
6289    pub fn ty(&self) -> Option<Type> {
6290        support::child(&self.syntax)
6291    }
6292    #[inline]
6293    pub fn returning_token(&self) -> Option<SyntaxToken> {
6294        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
6295    }
6296}
6297
6298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6299pub struct JsonTableColumn {
6300    pub(crate) syntax: SyntaxNode,
6301}
6302impl JsonTableColumn {
6303    #[inline]
6304    pub fn expr(&self) -> Option<Expr> {
6305        support::child(&self.syntax)
6306    }
6307    #[inline]
6308    pub fn name(&self) -> Option<Name> {
6309        support::child(&self.syntax)
6310    }
6311    #[inline]
6312    pub fn ty(&self) -> Option<Type> {
6313        support::child(&self.syntax)
6314    }
6315    #[inline]
6316    pub fn for_token(&self) -> Option<SyntaxToken> {
6317        support::token(&self.syntax, SyntaxKind::FOR_KW)
6318    }
6319    #[inline]
6320    pub fn nested_token(&self) -> Option<SyntaxToken> {
6321        support::token(&self.syntax, SyntaxKind::NESTED_KW)
6322    }
6323    #[inline]
6324    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
6325        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
6326    }
6327    #[inline]
6328    pub fn path_token(&self) -> Option<SyntaxToken> {
6329        support::token(&self.syntax, SyntaxKind::PATH_KW)
6330    }
6331}
6332
6333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6334pub struct JsonTableColumnList {
6335    pub(crate) syntax: SyntaxNode,
6336}
6337impl JsonTableColumnList {
6338    #[inline]
6339    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
6340        support::children(&self.syntax)
6341    }
6342    #[inline]
6343    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6344        support::token(&self.syntax, SyntaxKind::L_PAREN)
6345    }
6346    #[inline]
6347    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6348        support::token(&self.syntax, SyntaxKind::R_PAREN)
6349    }
6350    #[inline]
6351    pub fn columns_token(&self) -> Option<SyntaxToken> {
6352        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
6353    }
6354}
6355
6356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6357pub struct JsonValueExpr {
6358    pub(crate) syntax: SyntaxNode,
6359}
6360impl JsonValueExpr {
6361    #[inline]
6362    pub fn expr(&self) -> Option<Expr> {
6363        support::child(&self.syntax)
6364    }
6365    #[inline]
6366    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6367        support::child(&self.syntax)
6368    }
6369}
6370
6371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6372pub struct JsonWrapperBehaviorClause {
6373    pub(crate) syntax: SyntaxNode,
6374}
6375impl JsonWrapperBehaviorClause {
6376    #[inline]
6377    pub fn conditional_token(&self) -> Option<SyntaxToken> {
6378        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
6379    }
6380    #[inline]
6381    pub fn with_token(&self) -> Option<SyntaxToken> {
6382        support::token(&self.syntax, SyntaxKind::WITH_KW)
6383    }
6384    #[inline]
6385    pub fn without_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6387    }
6388    #[inline]
6389    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6390        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6391    }
6392}
6393
6394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6395pub struct LanguageFuncOption {
6396    pub(crate) syntax: SyntaxNode,
6397}
6398impl LanguageFuncOption {
6399    #[inline]
6400    pub fn name_ref(&self) -> Option<NameRef> {
6401        support::child(&self.syntax)
6402    }
6403    #[inline]
6404    pub fn language_token(&self) -> Option<SyntaxToken> {
6405        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6406    }
6407}
6408
6409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6410pub struct LeakproofFuncOption {
6411    pub(crate) syntax: SyntaxNode,
6412}
6413impl LeakproofFuncOption {
6414    #[inline]
6415    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
6416        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
6417    }
6418    #[inline]
6419    pub fn not_token(&self) -> Option<SyntaxToken> {
6420        support::token(&self.syntax, SyntaxKind::NOT_KW)
6421    }
6422}
6423
6424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6425pub struct LikeClause {
6426    pub(crate) syntax: SyntaxNode,
6427}
6428impl LikeClause {
6429    #[inline]
6430    pub fn like_options(&self) -> AstChildren<LikeOption> {
6431        support::children(&self.syntax)
6432    }
6433    #[inline]
6434    pub fn like_token(&self) -> Option<SyntaxToken> {
6435        support::token(&self.syntax, SyntaxKind::LIKE_KW)
6436    }
6437}
6438
6439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6440pub struct LikeOption {
6441    pub(crate) syntax: SyntaxNode,
6442}
6443impl LikeOption {
6444    #[inline]
6445    pub fn comments_token(&self) -> Option<SyntaxToken> {
6446        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
6447    }
6448    #[inline]
6449    pub fn compression_token(&self) -> Option<SyntaxToken> {
6450        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
6451    }
6452    #[inline]
6453    pub fn constraints_token(&self) -> Option<SyntaxToken> {
6454        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
6455    }
6456    #[inline]
6457    pub fn defaults_token(&self) -> Option<SyntaxToken> {
6458        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
6459    }
6460    #[inline]
6461    pub fn excluding_token(&self) -> Option<SyntaxToken> {
6462        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
6463    }
6464    #[inline]
6465    pub fn generated_token(&self) -> Option<SyntaxToken> {
6466        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
6467    }
6468    #[inline]
6469    pub fn identity_token(&self) -> Option<SyntaxToken> {
6470        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6471    }
6472    #[inline]
6473    pub fn including_token(&self) -> Option<SyntaxToken> {
6474        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
6475    }
6476    #[inline]
6477    pub fn indexes_token(&self) -> Option<SyntaxToken> {
6478        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
6479    }
6480}
6481
6482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6483pub struct LimitClause {
6484    pub(crate) syntax: SyntaxNode,
6485}
6486impl LimitClause {
6487    #[inline]
6488    pub fn expr(&self) -> Option<Expr> {
6489        support::child(&self.syntax)
6490    }
6491    #[inline]
6492    pub fn all_token(&self) -> Option<SyntaxToken> {
6493        support::token(&self.syntax, SyntaxKind::ALL_KW)
6494    }
6495    #[inline]
6496    pub fn limit_token(&self) -> Option<SyntaxToken> {
6497        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
6498    }
6499}
6500
6501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6502pub struct Listen {
6503    pub(crate) syntax: SyntaxNode,
6504}
6505impl Listen {
6506    #[inline]
6507    pub fn name_ref(&self) -> Option<NameRef> {
6508        support::child(&self.syntax)
6509    }
6510    #[inline]
6511    pub fn listen_token(&self) -> Option<SyntaxToken> {
6512        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
6513    }
6514}
6515
6516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6517pub struct Literal {
6518    pub(crate) syntax: SyntaxNode,
6519}
6520impl Literal {}
6521
6522#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6523pub struct Load {
6524    pub(crate) syntax: SyntaxNode,
6525}
6526impl Load {
6527    #[inline]
6528    pub fn load_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::LOAD_KW)
6530    }
6531}
6532
6533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6534pub struct Lock {
6535    pub(crate) syntax: SyntaxNode,
6536}
6537impl Lock {
6538    #[inline]
6539    pub fn lock_token(&self) -> Option<SyntaxToken> {
6540        support::token(&self.syntax, SyntaxKind::LOCK_KW)
6541    }
6542    #[inline]
6543    pub fn table_token(&self) -> Option<SyntaxToken> {
6544        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6545    }
6546}
6547
6548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6549pub struct LockingClause {
6550    pub(crate) syntax: SyntaxNode,
6551}
6552impl LockingClause {
6553    #[inline]
6554    pub fn for_token(&self) -> Option<SyntaxToken> {
6555        support::token(&self.syntax, SyntaxKind::FOR_KW)
6556    }
6557}
6558
6559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6560pub struct Lteq {
6561    pub(crate) syntax: SyntaxNode,
6562}
6563impl Lteq {
6564    #[inline]
6565    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6566        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6567    }
6568    #[inline]
6569    pub fn eq_token(&self) -> Option<SyntaxToken> {
6570        support::token(&self.syntax, SyntaxKind::EQ)
6571    }
6572}
6573
6574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6575pub struct MatchFull {
6576    pub(crate) syntax: SyntaxNode,
6577}
6578impl MatchFull {
6579    #[inline]
6580    pub fn full_token(&self) -> Option<SyntaxToken> {
6581        support::token(&self.syntax, SyntaxKind::FULL_KW)
6582    }
6583    #[inline]
6584    pub fn match_token(&self) -> Option<SyntaxToken> {
6585        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6586    }
6587}
6588
6589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6590pub struct MatchPartial {
6591    pub(crate) syntax: SyntaxNode,
6592}
6593impl MatchPartial {
6594    #[inline]
6595    pub fn match_token(&self) -> Option<SyntaxToken> {
6596        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6597    }
6598    #[inline]
6599    pub fn partial_token(&self) -> Option<SyntaxToken> {
6600        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
6601    }
6602}
6603
6604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6605pub struct MatchSimple {
6606    pub(crate) syntax: SyntaxNode,
6607}
6608impl MatchSimple {
6609    #[inline]
6610    pub fn match_token(&self) -> Option<SyntaxToken> {
6611        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6612    }
6613    #[inline]
6614    pub fn simple_token(&self) -> Option<SyntaxToken> {
6615        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
6616    }
6617}
6618
6619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6620pub struct Materialized {
6621    pub(crate) syntax: SyntaxNode,
6622}
6623impl Materialized {
6624    #[inline]
6625    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6626        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6627    }
6628}
6629
6630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6631pub struct Merge {
6632    pub(crate) syntax: SyntaxNode,
6633}
6634impl Merge {
6635    #[inline]
6636    pub fn alias(&self) -> Option<Alias> {
6637        support::child(&self.syntax)
6638    }
6639    #[inline]
6640    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
6641        support::children(&self.syntax)
6642    }
6643    #[inline]
6644    pub fn relation_name(&self) -> Option<RelationName> {
6645        support::child(&self.syntax)
6646    }
6647    #[inline]
6648    pub fn using_clause(&self) -> Option<UsingClause> {
6649        support::child(&self.syntax)
6650    }
6651    #[inline]
6652    pub fn into_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::INTO_KW)
6654    }
6655    #[inline]
6656    pub fn merge_token(&self) -> Option<SyntaxToken> {
6657        support::token(&self.syntax, SyntaxKind::MERGE_KW)
6658    }
6659}
6660
6661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6662pub struct MergeDelete {
6663    pub(crate) syntax: SyntaxNode,
6664}
6665impl MergeDelete {
6666    #[inline]
6667    pub fn delete_token(&self) -> Option<SyntaxToken> {
6668        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6669    }
6670}
6671
6672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6673pub struct MergeDoNothing {
6674    pub(crate) syntax: SyntaxNode,
6675}
6676impl MergeDoNothing {
6677    #[inline]
6678    pub fn do_token(&self) -> Option<SyntaxToken> {
6679        support::token(&self.syntax, SyntaxKind::DO_KW)
6680    }
6681    #[inline]
6682    pub fn nothing_token(&self) -> Option<SyntaxToken> {
6683        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
6684    }
6685}
6686
6687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6688pub struct MergeInsert {
6689    pub(crate) syntax: SyntaxNode,
6690}
6691impl MergeInsert {
6692    #[inline]
6693    pub fn insert_token(&self) -> Option<SyntaxToken> {
6694        support::token(&self.syntax, SyntaxKind::INSERT_KW)
6695    }
6696}
6697
6698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6699pub struct MergeUpdate {
6700    pub(crate) syntax: SyntaxNode,
6701}
6702impl MergeUpdate {
6703    #[inline]
6704    pub fn set_token(&self) -> Option<SyntaxToken> {
6705        support::token(&self.syntax, SyntaxKind::SET_KW)
6706    }
6707    #[inline]
6708    pub fn update_token(&self) -> Option<SyntaxToken> {
6709        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
6710    }
6711}
6712
6713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6714pub struct MergeWhenMatched {
6715    pub(crate) syntax: SyntaxNode,
6716}
6717impl MergeWhenMatched {
6718    #[inline]
6719    pub fn condition(&self) -> Option<Expr> {
6720        support::child(&self.syntax)
6721    }
6722    #[inline]
6723    pub fn merge_action(&self) -> Option<MergeAction> {
6724        support::child(&self.syntax)
6725    }
6726    #[inline]
6727    pub fn and_token(&self) -> Option<SyntaxToken> {
6728        support::token(&self.syntax, SyntaxKind::AND_KW)
6729    }
6730    #[inline]
6731    pub fn matched_token(&self) -> Option<SyntaxToken> {
6732        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
6733    }
6734    #[inline]
6735    pub fn then_token(&self) -> Option<SyntaxToken> {
6736        support::token(&self.syntax, SyntaxKind::THEN_KW)
6737    }
6738    #[inline]
6739    pub fn when_token(&self) -> Option<SyntaxToken> {
6740        support::token(&self.syntax, SyntaxKind::WHEN_KW)
6741    }
6742}
6743
6744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6745pub struct MergeWhenNotMatchedSource {
6746    pub(crate) syntax: SyntaxNode,
6747}
6748impl MergeWhenNotMatchedSource {
6749    #[inline]
6750    pub fn condition(&self) -> Option<Expr> {
6751        support::child(&self.syntax)
6752    }
6753    #[inline]
6754    pub fn merge_action(&self) -> Option<MergeAction> {
6755        support::child(&self.syntax)
6756    }
6757    #[inline]
6758    pub fn and_token(&self) -> Option<SyntaxToken> {
6759        support::token(&self.syntax, SyntaxKind::AND_KW)
6760    }
6761    #[inline]
6762    pub fn by_token(&self) -> Option<SyntaxToken> {
6763        support::token(&self.syntax, SyntaxKind::BY_KW)
6764    }
6765    #[inline]
6766    pub fn matched_token(&self) -> Option<SyntaxToken> {
6767        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
6768    }
6769    #[inline]
6770    pub fn not_token(&self) -> Option<SyntaxToken> {
6771        support::token(&self.syntax, SyntaxKind::NOT_KW)
6772    }
6773    #[inline]
6774    pub fn source_token(&self) -> Option<SyntaxToken> {
6775        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
6776    }
6777    #[inline]
6778    pub fn then_token(&self) -> Option<SyntaxToken> {
6779        support::token(&self.syntax, SyntaxKind::THEN_KW)
6780    }
6781    #[inline]
6782    pub fn when_token(&self) -> Option<SyntaxToken> {
6783        support::token(&self.syntax, SyntaxKind::WHEN_KW)
6784    }
6785}
6786
6787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6788pub struct MergeWhenNotMatchedTarget {
6789    pub(crate) syntax: SyntaxNode,
6790}
6791impl MergeWhenNotMatchedTarget {
6792    #[inline]
6793    pub fn condition(&self) -> Option<Expr> {
6794        support::child(&self.syntax)
6795    }
6796    #[inline]
6797    pub fn merge_action(&self) -> Option<MergeAction> {
6798        support::child(&self.syntax)
6799    }
6800    #[inline]
6801    pub fn and_token(&self) -> Option<SyntaxToken> {
6802        support::token(&self.syntax, SyntaxKind::AND_KW)
6803    }
6804    #[inline]
6805    pub fn by_token(&self) -> Option<SyntaxToken> {
6806        support::token(&self.syntax, SyntaxKind::BY_KW)
6807    }
6808    #[inline]
6809    pub fn matched_token(&self) -> Option<SyntaxToken> {
6810        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
6811    }
6812    #[inline]
6813    pub fn not_token(&self) -> Option<SyntaxToken> {
6814        support::token(&self.syntax, SyntaxKind::NOT_KW)
6815    }
6816    #[inline]
6817    pub fn target_token(&self) -> Option<SyntaxToken> {
6818        support::token(&self.syntax, SyntaxKind::TARGET_KW)
6819    }
6820    #[inline]
6821    pub fn then_token(&self) -> Option<SyntaxToken> {
6822        support::token(&self.syntax, SyntaxKind::THEN_KW)
6823    }
6824    #[inline]
6825    pub fn when_token(&self) -> Option<SyntaxToken> {
6826        support::token(&self.syntax, SyntaxKind::WHEN_KW)
6827    }
6828}
6829
6830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6831pub struct Move {
6832    pub(crate) syntax: SyntaxNode,
6833}
6834impl Move {
6835    #[inline]
6836    pub fn move_token(&self) -> Option<SyntaxToken> {
6837        support::token(&self.syntax, SyntaxKind::MOVE_KW)
6838    }
6839}
6840
6841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6842pub struct Name {
6843    pub(crate) syntax: SyntaxNode,
6844}
6845impl Name {
6846    #[inline]
6847    pub fn ident_token(&self) -> Option<SyntaxToken> {
6848        support::token(&self.syntax, SyntaxKind::IDENT)
6849    }
6850}
6851
6852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6853pub struct NameRef {
6854    pub(crate) syntax: SyntaxNode,
6855}
6856impl NameRef {
6857    #[inline]
6858    pub fn ident_token(&self) -> Option<SyntaxToken> {
6859        support::token(&self.syntax, SyntaxKind::IDENT)
6860    }
6861}
6862
6863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6864pub struct NamedArg {
6865    pub(crate) syntax: SyntaxNode,
6866}
6867impl NamedArg {
6868    #[inline]
6869    pub fn expr(&self) -> Option<Expr> {
6870        support::child(&self.syntax)
6871    }
6872    #[inline]
6873    pub fn fat_arrow(&self) -> Option<FatArrow> {
6874        support::child(&self.syntax)
6875    }
6876    #[inline]
6877    pub fn name_ref(&self) -> Option<NameRef> {
6878        support::child(&self.syntax)
6879    }
6880}
6881
6882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6883pub struct Neq {
6884    pub(crate) syntax: SyntaxNode,
6885}
6886impl Neq {
6887    #[inline]
6888    pub fn bang_token(&self) -> Option<SyntaxToken> {
6889        support::token(&self.syntax, SyntaxKind::BANG)
6890    }
6891    #[inline]
6892    pub fn eq_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::EQ)
6894    }
6895}
6896
6897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6898pub struct Neqb {
6899    pub(crate) syntax: SyntaxNode,
6900}
6901impl Neqb {
6902    #[inline]
6903    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6904        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6905    }
6906    #[inline]
6907    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
6908        support::token(&self.syntax, SyntaxKind::R_ANGLE)
6909    }
6910}
6911
6912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6913pub struct NoAction {
6914    pub(crate) syntax: SyntaxNode,
6915}
6916impl NoAction {
6917    #[inline]
6918    pub fn action_token(&self) -> Option<SyntaxToken> {
6919        support::token(&self.syntax, SyntaxKind::ACTION_KW)
6920    }
6921    #[inline]
6922    pub fn no_token(&self) -> Option<SyntaxToken> {
6923        support::token(&self.syntax, SyntaxKind::NO_KW)
6924    }
6925}
6926
6927#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6928pub struct NoForceRls {
6929    pub(crate) syntax: SyntaxNode,
6930}
6931impl NoForceRls {
6932    #[inline]
6933    pub fn force_token(&self) -> Option<SyntaxToken> {
6934        support::token(&self.syntax, SyntaxKind::FORCE_KW)
6935    }
6936    #[inline]
6937    pub fn level_token(&self) -> Option<SyntaxToken> {
6938        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6939    }
6940    #[inline]
6941    pub fn no_token(&self) -> Option<SyntaxToken> {
6942        support::token(&self.syntax, SyntaxKind::NO_KW)
6943    }
6944    #[inline]
6945    pub fn row_token(&self) -> Option<SyntaxToken> {
6946        support::token(&self.syntax, SyntaxKind::ROW_KW)
6947    }
6948    #[inline]
6949    pub fn security_token(&self) -> Option<SyntaxToken> {
6950        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6951    }
6952}
6953
6954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6955pub struct NoInherit {
6956    pub(crate) syntax: SyntaxNode,
6957}
6958impl NoInherit {
6959    #[inline]
6960    pub fn inherit_token(&self) -> Option<SyntaxToken> {
6961        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
6962    }
6963    #[inline]
6964    pub fn no_token(&self) -> Option<SyntaxToken> {
6965        support::token(&self.syntax, SyntaxKind::NO_KW)
6966    }
6967}
6968
6969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6970pub struct NonStandardParam {
6971    pub(crate) syntax: SyntaxNode,
6972}
6973impl NonStandardParam {
6974    #[inline]
6975    pub fn name_ref(&self) -> Option<NameRef> {
6976        support::child(&self.syntax)
6977    }
6978    #[inline]
6979    pub fn colon_token(&self) -> Option<SyntaxToken> {
6980        support::token(&self.syntax, SyntaxKind::COLON)
6981    }
6982}
6983
6984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6985pub struct NotDeferrable {
6986    pub(crate) syntax: SyntaxNode,
6987}
6988impl NotDeferrable {
6989    #[inline]
6990    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6991        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6992    }
6993    #[inline]
6994    pub fn not_token(&self) -> Option<SyntaxToken> {
6995        support::token(&self.syntax, SyntaxKind::NOT_KW)
6996    }
6997}
6998
6999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7000pub struct NotDeferrableConstraintOption {
7001    pub(crate) syntax: SyntaxNode,
7002}
7003impl NotDeferrableConstraintOption {
7004    #[inline]
7005    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
7006        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
7007    }
7008    #[inline]
7009    pub fn not_token(&self) -> Option<SyntaxToken> {
7010        support::token(&self.syntax, SyntaxKind::NOT_KW)
7011    }
7012}
7013
7014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7015pub struct NotEnforced {
7016    pub(crate) syntax: SyntaxNode,
7017}
7018impl NotEnforced {
7019    #[inline]
7020    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7021        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7022    }
7023    #[inline]
7024    pub fn not_token(&self) -> Option<SyntaxToken> {
7025        support::token(&self.syntax, SyntaxKind::NOT_KW)
7026    }
7027}
7028
7029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7030pub struct NotIlike {
7031    pub(crate) syntax: SyntaxNode,
7032}
7033impl NotIlike {
7034    #[inline]
7035    pub fn ilike_token(&self) -> Option<SyntaxToken> {
7036        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
7037    }
7038    #[inline]
7039    pub fn not_token(&self) -> Option<SyntaxToken> {
7040        support::token(&self.syntax, SyntaxKind::NOT_KW)
7041    }
7042}
7043
7044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7045pub struct NotIn {
7046    pub(crate) syntax: SyntaxNode,
7047}
7048impl NotIn {
7049    #[inline]
7050    pub fn in_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::IN_KW)
7052    }
7053    #[inline]
7054    pub fn not_token(&self) -> Option<SyntaxToken> {
7055        support::token(&self.syntax, SyntaxKind::NOT_KW)
7056    }
7057}
7058
7059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7060pub struct NotLike {
7061    pub(crate) syntax: SyntaxNode,
7062}
7063impl NotLike {
7064    #[inline]
7065    pub fn like_token(&self) -> Option<SyntaxToken> {
7066        support::token(&self.syntax, SyntaxKind::LIKE_KW)
7067    }
7068    #[inline]
7069    pub fn not_token(&self) -> Option<SyntaxToken> {
7070        support::token(&self.syntax, SyntaxKind::NOT_KW)
7071    }
7072}
7073
7074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7075pub struct NotMaterialized {
7076    pub(crate) syntax: SyntaxNode,
7077}
7078impl NotMaterialized {
7079    #[inline]
7080    pub fn materialized_token(&self) -> Option<SyntaxToken> {
7081        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
7082    }
7083    #[inline]
7084    pub fn not_token(&self) -> Option<SyntaxToken> {
7085        support::token(&self.syntax, SyntaxKind::NOT_KW)
7086    }
7087}
7088
7089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7090pub struct NotNullConstraint {
7091    pub(crate) syntax: SyntaxNode,
7092}
7093impl NotNullConstraint {
7094    #[inline]
7095    pub fn name_ref(&self) -> Option<NameRef> {
7096        support::child(&self.syntax)
7097    }
7098    #[inline]
7099    pub fn no_inherit(&self) -> Option<NoInherit> {
7100        support::child(&self.syntax)
7101    }
7102    #[inline]
7103    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7104        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7105    }
7106    #[inline]
7107    pub fn not_token(&self) -> Option<SyntaxToken> {
7108        support::token(&self.syntax, SyntaxKind::NOT_KW)
7109    }
7110    #[inline]
7111    pub fn null_token(&self) -> Option<SyntaxToken> {
7112        support::token(&self.syntax, SyntaxKind::NULL_KW)
7113    }
7114}
7115
7116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7117pub struct NotOf {
7118    pub(crate) syntax: SyntaxNode,
7119}
7120impl NotOf {
7121    #[inline]
7122    pub fn not_token(&self) -> Option<SyntaxToken> {
7123        support::token(&self.syntax, SyntaxKind::NOT_KW)
7124    }
7125    #[inline]
7126    pub fn of_token(&self) -> Option<SyntaxToken> {
7127        support::token(&self.syntax, SyntaxKind::OF_KW)
7128    }
7129}
7130
7131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7132pub struct NotSimilarTo {
7133    pub(crate) syntax: SyntaxNode,
7134}
7135impl NotSimilarTo {
7136    #[inline]
7137    pub fn not_token(&self) -> Option<SyntaxToken> {
7138        support::token(&self.syntax, SyntaxKind::NOT_KW)
7139    }
7140    #[inline]
7141    pub fn similar_token(&self) -> Option<SyntaxToken> {
7142        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
7143    }
7144    #[inline]
7145    pub fn to_token(&self) -> Option<SyntaxToken> {
7146        support::token(&self.syntax, SyntaxKind::TO_KW)
7147    }
7148}
7149
7150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7151pub struct NotValid {
7152    pub(crate) syntax: SyntaxNode,
7153}
7154impl NotValid {
7155    #[inline]
7156    pub fn not_token(&self) -> Option<SyntaxToken> {
7157        support::token(&self.syntax, SyntaxKind::NOT_KW)
7158    }
7159    #[inline]
7160    pub fn valid_token(&self) -> Option<SyntaxToken> {
7161        support::token(&self.syntax, SyntaxKind::VALID_KW)
7162    }
7163}
7164
7165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7166pub struct Notify {
7167    pub(crate) syntax: SyntaxNode,
7168}
7169impl Notify {
7170    #[inline]
7171    pub fn notify_token(&self) -> Option<SyntaxToken> {
7172        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
7173    }
7174}
7175
7176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7177pub struct NullConstraint {
7178    pub(crate) syntax: SyntaxNode,
7179}
7180impl NullConstraint {
7181    #[inline]
7182    pub fn name_ref(&self) -> Option<NameRef> {
7183        support::child(&self.syntax)
7184    }
7185    #[inline]
7186    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7188    }
7189    #[inline]
7190    pub fn null_token(&self) -> Option<SyntaxToken> {
7191        support::token(&self.syntax, SyntaxKind::NULL_KW)
7192    }
7193}
7194
7195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7196pub struct NullsDistinct {
7197    pub(crate) syntax: SyntaxNode,
7198}
7199impl NullsDistinct {
7200    #[inline]
7201    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7202        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7203    }
7204    #[inline]
7205    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7206        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7207    }
7208}
7209
7210#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7211pub struct NullsFirst {
7212    pub(crate) syntax: SyntaxNode,
7213}
7214impl NullsFirst {
7215    #[inline]
7216    pub fn first_token(&self) -> Option<SyntaxToken> {
7217        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7218    }
7219    #[inline]
7220    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7221        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7222    }
7223}
7224
7225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7226pub struct NullsLast {
7227    pub(crate) syntax: SyntaxNode,
7228}
7229impl NullsLast {
7230    #[inline]
7231    pub fn last_token(&self) -> Option<SyntaxToken> {
7232        support::token(&self.syntax, SyntaxKind::LAST_KW)
7233    }
7234    #[inline]
7235    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7236        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7237    }
7238}
7239
7240#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7241pub struct NullsNotDistinct {
7242    pub(crate) syntax: SyntaxNode,
7243}
7244impl NullsNotDistinct {
7245    #[inline]
7246    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7247        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7248    }
7249    #[inline]
7250    pub fn not_token(&self) -> Option<SyntaxToken> {
7251        support::token(&self.syntax, SyntaxKind::NOT_KW)
7252    }
7253    #[inline]
7254    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7255        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7256    }
7257}
7258
7259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7260pub struct OfType {
7261    pub(crate) syntax: SyntaxNode,
7262}
7263impl OfType {
7264    #[inline]
7265    pub fn ty(&self) -> Option<Type> {
7266        support::child(&self.syntax)
7267    }
7268    #[inline]
7269    pub fn of_token(&self) -> Option<SyntaxToken> {
7270        support::token(&self.syntax, SyntaxKind::OF_KW)
7271    }
7272}
7273
7274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7275pub struct OffsetClause {
7276    pub(crate) syntax: SyntaxNode,
7277}
7278impl OffsetClause {
7279    #[inline]
7280    pub fn expr(&self) -> Option<Expr> {
7281        support::child(&self.syntax)
7282    }
7283    #[inline]
7284    pub fn offset_token(&self) -> Option<SyntaxToken> {
7285        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
7286    }
7287    #[inline]
7288    pub fn row_token(&self) -> Option<SyntaxToken> {
7289        support::token(&self.syntax, SyntaxKind::ROW_KW)
7290    }
7291    #[inline]
7292    pub fn rows_token(&self) -> Option<SyntaxToken> {
7293        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7294    }
7295}
7296
7297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7298pub struct OnClause {
7299    pub(crate) syntax: SyntaxNode,
7300}
7301impl OnClause {
7302    #[inline]
7303    pub fn expr(&self) -> Option<Expr> {
7304        support::child(&self.syntax)
7305    }
7306    #[inline]
7307    pub fn on_token(&self) -> Option<SyntaxToken> {
7308        support::token(&self.syntax, SyntaxKind::ON_KW)
7309    }
7310}
7311
7312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7313pub struct OnCommit {
7314    pub(crate) syntax: SyntaxNode,
7315}
7316impl OnCommit {
7317    #[inline]
7318    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
7319        support::child(&self.syntax)
7320    }
7321    #[inline]
7322    pub fn commit_token(&self) -> Option<SyntaxToken> {
7323        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
7324    }
7325    #[inline]
7326    pub fn on_token(&self) -> Option<SyntaxToken> {
7327        support::token(&self.syntax, SyntaxKind::ON_KW)
7328    }
7329}
7330
7331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7332pub struct OnDeleteAction {
7333    pub(crate) syntax: SyntaxNode,
7334}
7335impl OnDeleteAction {
7336    #[inline]
7337    pub fn ref_action(&self) -> Option<RefAction> {
7338        support::child(&self.syntax)
7339    }
7340    #[inline]
7341    pub fn delete_token(&self) -> Option<SyntaxToken> {
7342        support::token(&self.syntax, SyntaxKind::DELETE_KW)
7343    }
7344    #[inline]
7345    pub fn on_token(&self) -> Option<SyntaxToken> {
7346        support::token(&self.syntax, SyntaxKind::ON_KW)
7347    }
7348}
7349
7350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7351pub struct OnUpdateAction {
7352    pub(crate) syntax: SyntaxNode,
7353}
7354impl OnUpdateAction {
7355    #[inline]
7356    pub fn ref_action(&self) -> Option<RefAction> {
7357        support::child(&self.syntax)
7358    }
7359    #[inline]
7360    pub fn on_token(&self) -> Option<SyntaxToken> {
7361        support::token(&self.syntax, SyntaxKind::ON_KW)
7362    }
7363    #[inline]
7364    pub fn update_token(&self) -> Option<SyntaxToken> {
7365        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
7366    }
7367}
7368
7369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7370pub struct Op {
7371    pub(crate) syntax: SyntaxNode,
7372}
7373impl Op {
7374    #[inline]
7375    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
7376        support::child(&self.syntax)
7377    }
7378    #[inline]
7379    pub fn colon_colon(&self) -> Option<ColonColon> {
7380        support::child(&self.syntax)
7381    }
7382    #[inline]
7383    pub fn colon_eq(&self) -> Option<ColonEq> {
7384        support::child(&self.syntax)
7385    }
7386    #[inline]
7387    pub fn custom_op(&self) -> Option<CustomOp> {
7388        support::child(&self.syntax)
7389    }
7390    #[inline]
7391    pub fn fat_arrow(&self) -> Option<FatArrow> {
7392        support::child(&self.syntax)
7393    }
7394    #[inline]
7395    pub fn gteq(&self) -> Option<Gteq> {
7396        support::child(&self.syntax)
7397    }
7398    #[inline]
7399    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
7400        support::child(&self.syntax)
7401    }
7402    #[inline]
7403    pub fn is_json(&self) -> Option<IsJson> {
7404        support::child(&self.syntax)
7405    }
7406    #[inline]
7407    pub fn is_json_array(&self) -> Option<IsJsonArray> {
7408        support::child(&self.syntax)
7409    }
7410    #[inline]
7411    pub fn is_json_object(&self) -> Option<IsJsonObject> {
7412        support::child(&self.syntax)
7413    }
7414    #[inline]
7415    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
7416        support::child(&self.syntax)
7417    }
7418    #[inline]
7419    pub fn is_json_value(&self) -> Option<IsJsonValue> {
7420        support::child(&self.syntax)
7421    }
7422    #[inline]
7423    pub fn is_not(&self) -> Option<IsNot> {
7424        support::child(&self.syntax)
7425    }
7426    #[inline]
7427    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
7428        support::child(&self.syntax)
7429    }
7430    #[inline]
7431    pub fn is_not_json(&self) -> Option<IsNotJson> {
7432        support::child(&self.syntax)
7433    }
7434    #[inline]
7435    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
7436        support::child(&self.syntax)
7437    }
7438    #[inline]
7439    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
7440        support::child(&self.syntax)
7441    }
7442    #[inline]
7443    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
7444        support::child(&self.syntax)
7445    }
7446    #[inline]
7447    pub fn lteq(&self) -> Option<Lteq> {
7448        support::child(&self.syntax)
7449    }
7450    #[inline]
7451    pub fn neq(&self) -> Option<Neq> {
7452        support::child(&self.syntax)
7453    }
7454    #[inline]
7455    pub fn neqb(&self) -> Option<Neqb> {
7456        support::child(&self.syntax)
7457    }
7458    #[inline]
7459    pub fn not_ilike(&self) -> Option<NotIlike> {
7460        support::child(&self.syntax)
7461    }
7462    #[inline]
7463    pub fn not_in(&self) -> Option<NotIn> {
7464        support::child(&self.syntax)
7465    }
7466    #[inline]
7467    pub fn not_like(&self) -> Option<NotLike> {
7468        support::child(&self.syntax)
7469    }
7470    #[inline]
7471    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
7472        support::child(&self.syntax)
7473    }
7474    #[inline]
7475    pub fn operator_call(&self) -> Option<OperatorCall> {
7476        support::child(&self.syntax)
7477    }
7478    #[inline]
7479    pub fn similar_to(&self) -> Option<SimilarTo> {
7480        support::child(&self.syntax)
7481    }
7482    #[inline]
7483    pub fn percent_token(&self) -> Option<SyntaxToken> {
7484        support::token(&self.syntax, SyntaxKind::PERCENT)
7485    }
7486    #[inline]
7487    pub fn plus_token(&self) -> Option<SyntaxToken> {
7488        support::token(&self.syntax, SyntaxKind::PLUS)
7489    }
7490    #[inline]
7491    pub fn minus_token(&self) -> Option<SyntaxToken> {
7492        support::token(&self.syntax, SyntaxKind::MINUS)
7493    }
7494    #[inline]
7495    pub fn slash_token(&self) -> Option<SyntaxToken> {
7496        support::token(&self.syntax, SyntaxKind::SLASH)
7497    }
7498    #[inline]
7499    pub fn colon_token(&self) -> Option<SyntaxToken> {
7500        support::token(&self.syntax, SyntaxKind::COLON)
7501    }
7502    #[inline]
7503    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
7504        support::token(&self.syntax, SyntaxKind::L_ANGLE)
7505    }
7506    #[inline]
7507    pub fn eq_token(&self) -> Option<SyntaxToken> {
7508        support::token(&self.syntax, SyntaxKind::EQ)
7509    }
7510    #[inline]
7511    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7512        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7513    }
7514    #[inline]
7515    pub fn caret_token(&self) -> Option<SyntaxToken> {
7516        support::token(&self.syntax, SyntaxKind::CARET)
7517    }
7518    #[inline]
7519    pub fn and_token(&self) -> Option<SyntaxToken> {
7520        support::token(&self.syntax, SyntaxKind::AND_KW)
7521    }
7522    #[inline]
7523    pub fn collate_token(&self) -> Option<SyntaxToken> {
7524        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
7525    }
7526    #[inline]
7527    pub fn ilike_token(&self) -> Option<SyntaxToken> {
7528        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
7529    }
7530    #[inline]
7531    pub fn in_token(&self) -> Option<SyntaxToken> {
7532        support::token(&self.syntax, SyntaxKind::IN_KW)
7533    }
7534    #[inline]
7535    pub fn is_token(&self) -> Option<SyntaxToken> {
7536        support::token(&self.syntax, SyntaxKind::IS_KW)
7537    }
7538    #[inline]
7539    pub fn like_token(&self) -> Option<SyntaxToken> {
7540        support::token(&self.syntax, SyntaxKind::LIKE_KW)
7541    }
7542    #[inline]
7543    pub fn or_token(&self) -> Option<SyntaxToken> {
7544        support::token(&self.syntax, SyntaxKind::OR_KW)
7545    }
7546    #[inline]
7547    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
7548        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
7549    }
7550    #[inline]
7551    pub fn value_token(&self) -> Option<SyntaxToken> {
7552        support::token(&self.syntax, SyntaxKind::VALUE_KW)
7553    }
7554}
7555
7556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7557pub struct OperatorCall {
7558    pub(crate) syntax: SyntaxNode,
7559}
7560impl OperatorCall {
7561    #[inline]
7562    pub fn op(&self) -> Option<Op> {
7563        support::child(&self.syntax)
7564    }
7565    #[inline]
7566    pub fn path(&self) -> Option<Path> {
7567        support::child(&self.syntax)
7568    }
7569    #[inline]
7570    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7571        support::token(&self.syntax, SyntaxKind::L_PAREN)
7572    }
7573    #[inline]
7574    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7575        support::token(&self.syntax, SyntaxKind::R_PAREN)
7576    }
7577    #[inline]
7578    pub fn dot_token(&self) -> Option<SyntaxToken> {
7579        support::token(&self.syntax, SyntaxKind::DOT)
7580    }
7581    #[inline]
7582    pub fn operator_token(&self) -> Option<SyntaxToken> {
7583        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7584    }
7585}
7586
7587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7588pub struct OptionsList {
7589    pub(crate) syntax: SyntaxNode,
7590}
7591impl OptionsList {
7592    #[inline]
7593    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7594        support::token(&self.syntax, SyntaxKind::L_PAREN)
7595    }
7596    #[inline]
7597    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7598        support::token(&self.syntax, SyntaxKind::R_PAREN)
7599    }
7600    #[inline]
7601    pub fn option_token(&self) -> Option<SyntaxToken> {
7602        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7603    }
7604}
7605
7606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7607pub struct OrReplace {
7608    pub(crate) syntax: SyntaxNode,
7609}
7610impl OrReplace {
7611    #[inline]
7612    pub fn or_token(&self) -> Option<SyntaxToken> {
7613        support::token(&self.syntax, SyntaxKind::OR_KW)
7614    }
7615    #[inline]
7616    pub fn replace_token(&self) -> Option<SyntaxToken> {
7617        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
7618    }
7619}
7620
7621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7622pub struct OrderByClause {
7623    pub(crate) syntax: SyntaxNode,
7624}
7625impl OrderByClause {
7626    #[inline]
7627    pub fn sort_bys(&self) -> AstChildren<SortBy> {
7628        support::children(&self.syntax)
7629    }
7630    #[inline]
7631    pub fn by_token(&self) -> Option<SyntaxToken> {
7632        support::token(&self.syntax, SyntaxKind::BY_KW)
7633    }
7634    #[inline]
7635    pub fn order_token(&self) -> Option<SyntaxToken> {
7636        support::token(&self.syntax, SyntaxKind::ORDER_KW)
7637    }
7638}
7639
7640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7641pub struct OverClause {
7642    pub(crate) syntax: SyntaxNode,
7643}
7644impl OverClause {
7645    #[inline]
7646    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7647        support::token(&self.syntax, SyntaxKind::L_PAREN)
7648    }
7649    #[inline]
7650    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7651        support::token(&self.syntax, SyntaxKind::R_PAREN)
7652    }
7653    #[inline]
7654    pub fn over_token(&self) -> Option<SyntaxToken> {
7655        support::token(&self.syntax, SyntaxKind::OVER_KW)
7656    }
7657}
7658
7659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7660pub struct OwnerTo {
7661    pub(crate) syntax: SyntaxNode,
7662}
7663impl OwnerTo {
7664    #[inline]
7665    pub fn role(&self) -> Option<Role> {
7666        support::child(&self.syntax)
7667    }
7668    #[inline]
7669    pub fn owner_token(&self) -> Option<SyntaxToken> {
7670        support::token(&self.syntax, SyntaxKind::OWNER_KW)
7671    }
7672    #[inline]
7673    pub fn to_token(&self) -> Option<SyntaxToken> {
7674        support::token(&self.syntax, SyntaxKind::TO_KW)
7675    }
7676}
7677
7678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7679pub struct ParallelFuncOption {
7680    pub(crate) syntax: SyntaxNode,
7681}
7682impl ParallelFuncOption {
7683    #[inline]
7684    pub fn ident_token(&self) -> Option<SyntaxToken> {
7685        support::token(&self.syntax, SyntaxKind::IDENT)
7686    }
7687    #[inline]
7688    pub fn parallel_token(&self) -> Option<SyntaxToken> {
7689        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
7690    }
7691}
7692
7693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7694pub struct Param {
7695    pub(crate) syntax: SyntaxNode,
7696}
7697impl Param {
7698    #[inline]
7699    pub fn mode(&self) -> Option<ParamMode> {
7700        support::child(&self.syntax)
7701    }
7702    #[inline]
7703    pub fn name(&self) -> Option<Name> {
7704        support::child(&self.syntax)
7705    }
7706    #[inline]
7707    pub fn param_default(&self) -> Option<ParamDefault> {
7708        support::child(&self.syntax)
7709    }
7710    #[inline]
7711    pub fn ty(&self) -> Option<Type> {
7712        support::child(&self.syntax)
7713    }
7714}
7715
7716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7717pub struct ParamDefault {
7718    pub(crate) syntax: SyntaxNode,
7719}
7720impl ParamDefault {
7721    #[inline]
7722    pub fn expr(&self) -> Option<Expr> {
7723        support::child(&self.syntax)
7724    }
7725    #[inline]
7726    pub fn eq_token(&self) -> Option<SyntaxToken> {
7727        support::token(&self.syntax, SyntaxKind::EQ)
7728    }
7729    #[inline]
7730    pub fn default_token(&self) -> Option<SyntaxToken> {
7731        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7732    }
7733}
7734
7735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7736pub struct ParamIn {
7737    pub(crate) syntax: SyntaxNode,
7738}
7739impl ParamIn {
7740    #[inline]
7741    pub fn in_token(&self) -> Option<SyntaxToken> {
7742        support::token(&self.syntax, SyntaxKind::IN_KW)
7743    }
7744}
7745
7746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7747pub struct ParamInOut {
7748    pub(crate) syntax: SyntaxNode,
7749}
7750impl ParamInOut {
7751    #[inline]
7752    pub fn in_token(&self) -> Option<SyntaxToken> {
7753        support::token(&self.syntax, SyntaxKind::IN_KW)
7754    }
7755    #[inline]
7756    pub fn inout_token(&self) -> Option<SyntaxToken> {
7757        support::token(&self.syntax, SyntaxKind::INOUT_KW)
7758    }
7759    #[inline]
7760    pub fn out_token(&self) -> Option<SyntaxToken> {
7761        support::token(&self.syntax, SyntaxKind::OUT_KW)
7762    }
7763}
7764
7765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7766pub struct ParamList {
7767    pub(crate) syntax: SyntaxNode,
7768}
7769impl ParamList {
7770    #[inline]
7771    pub fn params(&self) -> AstChildren<Param> {
7772        support::children(&self.syntax)
7773    }
7774}
7775
7776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7777pub struct ParamOut {
7778    pub(crate) syntax: SyntaxNode,
7779}
7780impl ParamOut {
7781    #[inline]
7782    pub fn out_token(&self) -> Option<SyntaxToken> {
7783        support::token(&self.syntax, SyntaxKind::OUT_KW)
7784    }
7785}
7786
7787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7788pub struct ParamVariadic {
7789    pub(crate) syntax: SyntaxNode,
7790}
7791impl ParamVariadic {
7792    #[inline]
7793    pub fn variadic_token(&self) -> Option<SyntaxToken> {
7794        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
7795    }
7796}
7797
7798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7799pub struct ParenExpr {
7800    pub(crate) syntax: SyntaxNode,
7801}
7802impl ParenExpr {
7803    #[inline]
7804    pub fn expr(&self) -> Option<Expr> {
7805        support::child(&self.syntax)
7806    }
7807    #[inline]
7808    pub fn select(&self) -> Option<Select> {
7809        support::child(&self.syntax)
7810    }
7811    #[inline]
7812    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7813        support::token(&self.syntax, SyntaxKind::L_PAREN)
7814    }
7815    #[inline]
7816    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7817        support::token(&self.syntax, SyntaxKind::R_PAREN)
7818    }
7819}
7820
7821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7822pub struct ParenSelect {
7823    pub(crate) syntax: SyntaxNode,
7824}
7825impl ParenSelect {
7826    #[inline]
7827    pub fn select(&self) -> Option<Select> {
7828        support::child(&self.syntax)
7829    }
7830    #[inline]
7831    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7832        support::token(&self.syntax, SyntaxKind::L_PAREN)
7833    }
7834    #[inline]
7835    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7836        support::token(&self.syntax, SyntaxKind::R_PAREN)
7837    }
7838}
7839
7840#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7841pub struct PartitionBy {
7842    pub(crate) syntax: SyntaxNode,
7843}
7844impl PartitionBy {
7845    #[inline]
7846    pub fn by_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::BY_KW)
7848    }
7849    #[inline]
7850    pub fn partition_token(&self) -> Option<SyntaxToken> {
7851        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
7852    }
7853}
7854
7855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7856pub struct PartitionDefault {
7857    pub(crate) syntax: SyntaxNode,
7858}
7859impl PartitionDefault {
7860    #[inline]
7861    pub fn default_token(&self) -> Option<SyntaxToken> {
7862        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7863    }
7864}
7865
7866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7867pub struct PartitionForValuesFrom {
7868    pub(crate) syntax: SyntaxNode,
7869}
7870impl PartitionForValuesFrom {
7871    #[inline]
7872    pub fn exprs(&self) -> AstChildren<Expr> {
7873        support::children(&self.syntax)
7874    }
7875    #[inline]
7876    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7877        support::token(&self.syntax, SyntaxKind::L_PAREN)
7878    }
7879    #[inline]
7880    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7881        support::token(&self.syntax, SyntaxKind::R_PAREN)
7882    }
7883    #[inline]
7884    pub fn for_token(&self) -> Option<SyntaxToken> {
7885        support::token(&self.syntax, SyntaxKind::FOR_KW)
7886    }
7887    #[inline]
7888    pub fn from_token(&self) -> Option<SyntaxToken> {
7889        support::token(&self.syntax, SyntaxKind::FROM_KW)
7890    }
7891    #[inline]
7892    pub fn to_token(&self) -> Option<SyntaxToken> {
7893        support::token(&self.syntax, SyntaxKind::TO_KW)
7894    }
7895    #[inline]
7896    pub fn values_token(&self) -> Option<SyntaxToken> {
7897        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7898    }
7899}
7900
7901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7902pub struct PartitionForValuesIn {
7903    pub(crate) syntax: SyntaxNode,
7904}
7905impl PartitionForValuesIn {
7906    #[inline]
7907    pub fn exprs(&self) -> AstChildren<Expr> {
7908        support::children(&self.syntax)
7909    }
7910    #[inline]
7911    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7912        support::token(&self.syntax, SyntaxKind::L_PAREN)
7913    }
7914    #[inline]
7915    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7916        support::token(&self.syntax, SyntaxKind::R_PAREN)
7917    }
7918    #[inline]
7919    pub fn for_token(&self) -> Option<SyntaxToken> {
7920        support::token(&self.syntax, SyntaxKind::FOR_KW)
7921    }
7922    #[inline]
7923    pub fn in_token(&self) -> Option<SyntaxToken> {
7924        support::token(&self.syntax, SyntaxKind::IN_KW)
7925    }
7926    #[inline]
7927    pub fn values_token(&self) -> Option<SyntaxToken> {
7928        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7929    }
7930}
7931
7932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7933pub struct PartitionForValuesWith {
7934    pub(crate) syntax: SyntaxNode,
7935}
7936impl PartitionForValuesWith {
7937    #[inline]
7938    pub fn literal(&self) -> Option<Literal> {
7939        support::child(&self.syntax)
7940    }
7941    #[inline]
7942    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7943        support::token(&self.syntax, SyntaxKind::L_PAREN)
7944    }
7945    #[inline]
7946    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7947        support::token(&self.syntax, SyntaxKind::R_PAREN)
7948    }
7949    #[inline]
7950    pub fn comma_token(&self) -> Option<SyntaxToken> {
7951        support::token(&self.syntax, SyntaxKind::COMMA)
7952    }
7953    #[inline]
7954    pub fn for_token(&self) -> Option<SyntaxToken> {
7955        support::token(&self.syntax, SyntaxKind::FOR_KW)
7956    }
7957    #[inline]
7958    pub fn ident_token(&self) -> Option<SyntaxToken> {
7959        support::token(&self.syntax, SyntaxKind::IDENT)
7960    }
7961    #[inline]
7962    pub fn values_token(&self) -> Option<SyntaxToken> {
7963        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7964    }
7965    #[inline]
7966    pub fn with_token(&self) -> Option<SyntaxToken> {
7967        support::token(&self.syntax, SyntaxKind::WITH_KW)
7968    }
7969}
7970
7971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7972pub struct PartitionItem {
7973    pub(crate) syntax: SyntaxNode,
7974}
7975impl PartitionItem {
7976    #[inline]
7977    pub fn collate(&self) -> Option<Collate> {
7978        support::child(&self.syntax)
7979    }
7980    #[inline]
7981    pub fn expr(&self) -> Option<Expr> {
7982        support::child(&self.syntax)
7983    }
7984}
7985
7986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7987pub struct PartitionItemList {
7988    pub(crate) syntax: SyntaxNode,
7989}
7990impl PartitionItemList {
7991    #[inline]
7992    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
7993        support::children(&self.syntax)
7994    }
7995    #[inline]
7996    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7997        support::token(&self.syntax, SyntaxKind::L_PAREN)
7998    }
7999    #[inline]
8000    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8001        support::token(&self.syntax, SyntaxKind::R_PAREN)
8002    }
8003}
8004
8005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8006pub struct PartitionOf {
8007    pub(crate) syntax: SyntaxNode,
8008}
8009impl PartitionOf {
8010    #[inline]
8011    pub fn ty(&self) -> Option<Type> {
8012        support::child(&self.syntax)
8013    }
8014    #[inline]
8015    pub fn of_token(&self) -> Option<SyntaxToken> {
8016        support::token(&self.syntax, SyntaxKind::OF_KW)
8017    }
8018    #[inline]
8019    pub fn partition_token(&self) -> Option<SyntaxToken> {
8020        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
8021    }
8022}
8023
8024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8025pub struct Path {
8026    pub(crate) syntax: SyntaxNode,
8027}
8028impl Path {
8029    #[inline]
8030    pub fn qualifier(&self) -> Option<Path> {
8031        support::child(&self.syntax)
8032    }
8033    #[inline]
8034    pub fn segment(&self) -> Option<PathSegment> {
8035        support::child(&self.syntax)
8036    }
8037    #[inline]
8038    pub fn dot_token(&self) -> Option<SyntaxToken> {
8039        support::token(&self.syntax, SyntaxKind::DOT)
8040    }
8041}
8042
8043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8044pub struct PathSegment {
8045    pub(crate) syntax: SyntaxNode,
8046}
8047impl PathSegment {
8048    #[inline]
8049    pub fn name(&self) -> Option<Name> {
8050        support::child(&self.syntax)
8051    }
8052    #[inline]
8053    pub fn name_ref(&self) -> Option<NameRef> {
8054        support::child(&self.syntax)
8055    }
8056}
8057
8058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8059pub struct PathType {
8060    pub(crate) syntax: SyntaxNode,
8061}
8062impl PathType {
8063    #[inline]
8064    pub fn arg_list(&self) -> Option<ArgList> {
8065        support::child(&self.syntax)
8066    }
8067    #[inline]
8068    pub fn path(&self) -> Option<Path> {
8069        support::child(&self.syntax)
8070    }
8071}
8072
8073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8074pub struct PercentType {
8075    pub(crate) syntax: SyntaxNode,
8076}
8077impl PercentType {
8078    #[inline]
8079    pub fn percent_token(&self) -> Option<SyntaxToken> {
8080        support::token(&self.syntax, SyntaxKind::PERCENT)
8081    }
8082    #[inline]
8083    pub fn type_token(&self) -> Option<SyntaxToken> {
8084        support::token(&self.syntax, SyntaxKind::TYPE_KW)
8085    }
8086}
8087
8088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8089pub struct PercentTypeClause {
8090    pub(crate) syntax: SyntaxNode,
8091}
8092impl PercentTypeClause {
8093    #[inline]
8094    pub fn path(&self) -> Option<Path> {
8095        support::child(&self.syntax)
8096    }
8097    #[inline]
8098    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
8099        support::child(&self.syntax)
8100    }
8101}
8102
8103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8104pub struct PostfixExpr {
8105    pub(crate) syntax: SyntaxNode,
8106}
8107impl PostfixExpr {
8108    #[inline]
8109    pub fn expr(&self) -> Option<Expr> {
8110        support::child(&self.syntax)
8111    }
8112}
8113
8114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8115pub struct PrefixExpr {
8116    pub(crate) syntax: SyntaxNode,
8117}
8118impl PrefixExpr {
8119    #[inline]
8120    pub fn expr(&self) -> Option<Expr> {
8121        support::child(&self.syntax)
8122    }
8123}
8124
8125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8126pub struct Prepare {
8127    pub(crate) syntax: SyntaxNode,
8128}
8129impl Prepare {
8130    #[inline]
8131    pub fn name_ref(&self) -> Option<NameRef> {
8132        support::child(&self.syntax)
8133    }
8134    #[inline]
8135    pub fn prepare_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
8137    }
8138}
8139
8140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8141pub struct PrepareTransaction {
8142    pub(crate) syntax: SyntaxNode,
8143}
8144impl PrepareTransaction {
8145    #[inline]
8146    pub fn literal(&self) -> Option<Literal> {
8147        support::child(&self.syntax)
8148    }
8149    #[inline]
8150    pub fn prepare_token(&self) -> Option<SyntaxToken> {
8151        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
8152    }
8153    #[inline]
8154    pub fn transaction_token(&self) -> Option<SyntaxToken> {
8155        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
8156    }
8157}
8158
8159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8160pub struct PreserveRows {
8161    pub(crate) syntax: SyntaxNode,
8162}
8163impl PreserveRows {
8164    #[inline]
8165    pub fn preserve_token(&self) -> Option<SyntaxToken> {
8166        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
8167    }
8168    #[inline]
8169    pub fn rows_token(&self) -> Option<SyntaxToken> {
8170        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8171    }
8172}
8173
8174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8175pub struct PrimaryKeyConstraint {
8176    pub(crate) syntax: SyntaxNode,
8177}
8178impl PrimaryKeyConstraint {
8179    #[inline]
8180    pub fn column_list(&self) -> Option<ColumnList> {
8181        support::child(&self.syntax)
8182    }
8183    #[inline]
8184    pub fn name_ref(&self) -> Option<NameRef> {
8185        support::child(&self.syntax)
8186    }
8187    #[inline]
8188    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
8189        support::child(&self.syntax)
8190    }
8191    #[inline]
8192    pub fn using_index(&self) -> Option<UsingIndex> {
8193        support::child(&self.syntax)
8194    }
8195    #[inline]
8196    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8197        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8198    }
8199    #[inline]
8200    pub fn key_token(&self) -> Option<SyntaxToken> {
8201        support::token(&self.syntax, SyntaxKind::KEY_KW)
8202    }
8203    #[inline]
8204    pub fn primary_token(&self) -> Option<SyntaxToken> {
8205        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
8206    }
8207}
8208
8209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8210pub struct ReadCommitted {
8211    pub(crate) syntax: SyntaxNode,
8212}
8213impl ReadCommitted {
8214    #[inline]
8215    pub fn committed_token(&self) -> Option<SyntaxToken> {
8216        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
8217    }
8218    #[inline]
8219    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8220        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8221    }
8222    #[inline]
8223    pub fn level_token(&self) -> Option<SyntaxToken> {
8224        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8225    }
8226    #[inline]
8227    pub fn read_token(&self) -> Option<SyntaxToken> {
8228        support::token(&self.syntax, SyntaxKind::READ_KW)
8229    }
8230}
8231
8232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8233pub struct ReadOnly {
8234    pub(crate) syntax: SyntaxNode,
8235}
8236impl ReadOnly {
8237    #[inline]
8238    pub fn only_token(&self) -> Option<SyntaxToken> {
8239        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8240    }
8241    #[inline]
8242    pub fn read_token(&self) -> Option<SyntaxToken> {
8243        support::token(&self.syntax, SyntaxKind::READ_KW)
8244    }
8245}
8246
8247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8248pub struct ReadUncommitted {
8249    pub(crate) syntax: SyntaxNode,
8250}
8251impl ReadUncommitted {
8252    #[inline]
8253    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8254        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8255    }
8256    #[inline]
8257    pub fn level_token(&self) -> Option<SyntaxToken> {
8258        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8259    }
8260    #[inline]
8261    pub fn read_token(&self) -> Option<SyntaxToken> {
8262        support::token(&self.syntax, SyntaxKind::READ_KW)
8263    }
8264    #[inline]
8265    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
8266        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
8267    }
8268}
8269
8270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8271pub struct ReadWrite {
8272    pub(crate) syntax: SyntaxNode,
8273}
8274impl ReadWrite {
8275    #[inline]
8276    pub fn read_token(&self) -> Option<SyntaxToken> {
8277        support::token(&self.syntax, SyntaxKind::READ_KW)
8278    }
8279    #[inline]
8280    pub fn write_token(&self) -> Option<SyntaxToken> {
8281        support::token(&self.syntax, SyntaxKind::WRITE_KW)
8282    }
8283}
8284
8285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8286pub struct Reassign {
8287    pub(crate) syntax: SyntaxNode,
8288}
8289impl Reassign {
8290    #[inline]
8291    pub fn reassign_token(&self) -> Option<SyntaxToken> {
8292        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
8293    }
8294}
8295
8296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8297pub struct ReferencesConstraint {
8298    pub(crate) syntax: SyntaxNode,
8299}
8300impl ReferencesConstraint {
8301    #[inline]
8302    pub fn match_type(&self) -> Option<MatchType> {
8303        support::child(&self.syntax)
8304    }
8305    #[inline]
8306    pub fn name_ref(&self) -> Option<NameRef> {
8307        support::child(&self.syntax)
8308    }
8309    #[inline]
8310    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8311        support::child(&self.syntax)
8312    }
8313    #[inline]
8314    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8315        support::child(&self.syntax)
8316    }
8317    #[inline]
8318    pub fn path(&self) -> Option<Path> {
8319        support::child(&self.syntax)
8320    }
8321    #[inline]
8322    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8323        support::token(&self.syntax, SyntaxKind::L_PAREN)
8324    }
8325    #[inline]
8326    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8327        support::token(&self.syntax, SyntaxKind::R_PAREN)
8328    }
8329    #[inline]
8330    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8331        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8332    }
8333    #[inline]
8334    pub fn references_token(&self) -> Option<SyntaxToken> {
8335        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8336    }
8337}
8338
8339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8340pub struct Refresh {
8341    pub(crate) syntax: SyntaxNode,
8342}
8343impl Refresh {
8344    #[inline]
8345    pub fn name_ref(&self) -> Option<NameRef> {
8346        support::child(&self.syntax)
8347    }
8348    #[inline]
8349    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
8350        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
8351    }
8352    #[inline]
8353    pub fn data_token(&self) -> Option<SyntaxToken> {
8354        support::token(&self.syntax, SyntaxKind::DATA_KW)
8355    }
8356    #[inline]
8357    pub fn materialized_token(&self) -> Option<SyntaxToken> {
8358        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
8359    }
8360    #[inline]
8361    pub fn refresh_token(&self) -> Option<SyntaxToken> {
8362        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
8363    }
8364    #[inline]
8365    pub fn view_token(&self) -> Option<SyntaxToken> {
8366        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8367    }
8368    #[inline]
8369    pub fn with_token(&self) -> Option<SyntaxToken> {
8370        support::token(&self.syntax, SyntaxKind::WITH_KW)
8371    }
8372}
8373
8374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8375pub struct Reindex {
8376    pub(crate) syntax: SyntaxNode,
8377}
8378impl Reindex {
8379    #[inline]
8380    pub fn reindex_token(&self) -> Option<SyntaxToken> {
8381        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
8382    }
8383}
8384
8385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8386pub struct RelationName {
8387    pub(crate) syntax: SyntaxNode,
8388}
8389impl RelationName {
8390    #[inline]
8391    pub fn path(&self) -> Option<Path> {
8392        support::child(&self.syntax)
8393    }
8394    #[inline]
8395    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8396        support::token(&self.syntax, SyntaxKind::L_PAREN)
8397    }
8398    #[inline]
8399    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8400        support::token(&self.syntax, SyntaxKind::R_PAREN)
8401    }
8402    #[inline]
8403    pub fn star_token(&self) -> Option<SyntaxToken> {
8404        support::token(&self.syntax, SyntaxKind::STAR)
8405    }
8406    #[inline]
8407    pub fn only_token(&self) -> Option<SyntaxToken> {
8408        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8409    }
8410}
8411
8412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8413pub struct ReleaseSavepoint {
8414    pub(crate) syntax: SyntaxNode,
8415}
8416impl ReleaseSavepoint {
8417    #[inline]
8418    pub fn name_ref(&self) -> Option<NameRef> {
8419        support::child(&self.syntax)
8420    }
8421    #[inline]
8422    pub fn release_token(&self) -> Option<SyntaxToken> {
8423        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
8424    }
8425    #[inline]
8426    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
8427        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
8428    }
8429}
8430
8431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8432pub struct RenameColumn {
8433    pub(crate) syntax: SyntaxNode,
8434}
8435impl RenameColumn {
8436    #[inline]
8437    pub fn column_token(&self) -> Option<SyntaxToken> {
8438        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
8439    }
8440    #[inline]
8441    pub fn rename_token(&self) -> Option<SyntaxToken> {
8442        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8443    }
8444}
8445
8446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8447pub struct RenameConstraint {
8448    pub(crate) syntax: SyntaxNode,
8449}
8450impl RenameConstraint {
8451    #[inline]
8452    pub fn name(&self) -> Option<Name> {
8453        support::child(&self.syntax)
8454    }
8455    #[inline]
8456    pub fn name_ref(&self) -> Option<NameRef> {
8457        support::child(&self.syntax)
8458    }
8459    #[inline]
8460    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8461        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8462    }
8463    #[inline]
8464    pub fn rename_token(&self) -> Option<SyntaxToken> {
8465        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8466    }
8467    #[inline]
8468    pub fn to_token(&self) -> Option<SyntaxToken> {
8469        support::token(&self.syntax, SyntaxKind::TO_KW)
8470    }
8471}
8472
8473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8474pub struct RenameTable {
8475    pub(crate) syntax: SyntaxNode,
8476}
8477impl RenameTable {
8478    #[inline]
8479    pub fn name_ref(&self) -> Option<NameRef> {
8480        support::child(&self.syntax)
8481    }
8482    #[inline]
8483    pub fn rename_token(&self) -> Option<SyntaxToken> {
8484        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8485    }
8486    #[inline]
8487    pub fn to_token(&self) -> Option<SyntaxToken> {
8488        support::token(&self.syntax, SyntaxKind::TO_KW)
8489    }
8490}
8491
8492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8493pub struct RenameTo {
8494    pub(crate) syntax: SyntaxNode,
8495}
8496impl RenameTo {
8497    #[inline]
8498    pub fn name(&self) -> Option<Name> {
8499        support::child(&self.syntax)
8500    }
8501    #[inline]
8502    pub fn rename_token(&self) -> Option<SyntaxToken> {
8503        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8504    }
8505    #[inline]
8506    pub fn to_token(&self) -> Option<SyntaxToken> {
8507        support::token(&self.syntax, SyntaxKind::TO_KW)
8508    }
8509}
8510
8511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8512pub struct RepeatableRead {
8513    pub(crate) syntax: SyntaxNode,
8514}
8515impl RepeatableRead {
8516    #[inline]
8517    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8518        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8519    }
8520    #[inline]
8521    pub fn level_token(&self) -> Option<SyntaxToken> {
8522        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8523    }
8524    #[inline]
8525    pub fn read_token(&self) -> Option<SyntaxToken> {
8526        support::token(&self.syntax, SyntaxKind::READ_KW)
8527    }
8528    #[inline]
8529    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
8530        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
8531    }
8532}
8533
8534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8535pub struct ReplicaIdentity {
8536    pub(crate) syntax: SyntaxNode,
8537}
8538impl ReplicaIdentity {
8539    #[inline]
8540    pub fn identity_token(&self) -> Option<SyntaxToken> {
8541        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8542    }
8543    #[inline]
8544    pub fn replica_token(&self) -> Option<SyntaxToken> {
8545        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8546    }
8547}
8548
8549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8550pub struct Reset {
8551    pub(crate) syntax: SyntaxNode,
8552}
8553impl Reset {
8554    #[inline]
8555    pub fn name_ref(&self) -> Option<NameRef> {
8556        support::child(&self.syntax)
8557    }
8558    #[inline]
8559    pub fn all_token(&self) -> Option<SyntaxToken> {
8560        support::token(&self.syntax, SyntaxKind::ALL_KW)
8561    }
8562    #[inline]
8563    pub fn reset_token(&self) -> Option<SyntaxToken> {
8564        support::token(&self.syntax, SyntaxKind::RESET_KW)
8565    }
8566}
8567
8568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8569pub struct ResetFuncOption {
8570    pub(crate) syntax: SyntaxNode,
8571}
8572impl ResetFuncOption {
8573    #[inline]
8574    pub fn name_ref(&self) -> Option<NameRef> {
8575        support::child(&self.syntax)
8576    }
8577    #[inline]
8578    pub fn reset_token(&self) -> Option<SyntaxToken> {
8579        support::token(&self.syntax, SyntaxKind::RESET_KW)
8580    }
8581}
8582
8583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8584pub struct ResetOptions {
8585    pub(crate) syntax: SyntaxNode,
8586}
8587impl ResetOptions {
8588    #[inline]
8589    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8590        support::token(&self.syntax, SyntaxKind::L_PAREN)
8591    }
8592    #[inline]
8593    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8594        support::token(&self.syntax, SyntaxKind::R_PAREN)
8595    }
8596    #[inline]
8597    pub fn reset_token(&self) -> Option<SyntaxToken> {
8598        support::token(&self.syntax, SyntaxKind::RESET_KW)
8599    }
8600}
8601
8602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8603pub struct ResetStorageParams {
8604    pub(crate) syntax: SyntaxNode,
8605}
8606impl ResetStorageParams {
8607    #[inline]
8608    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8609        support::token(&self.syntax, SyntaxKind::L_PAREN)
8610    }
8611    #[inline]
8612    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8613        support::token(&self.syntax, SyntaxKind::R_PAREN)
8614    }
8615    #[inline]
8616    pub fn reset_token(&self) -> Option<SyntaxToken> {
8617        support::token(&self.syntax, SyntaxKind::RESET_KW)
8618    }
8619}
8620
8621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8622pub struct Restart {
8623    pub(crate) syntax: SyntaxNode,
8624}
8625impl Restart {
8626    #[inline]
8627    pub fn restart_token(&self) -> Option<SyntaxToken> {
8628        support::token(&self.syntax, SyntaxKind::RESTART_KW)
8629    }
8630    #[inline]
8631    pub fn with_token(&self) -> Option<SyntaxToken> {
8632        support::token(&self.syntax, SyntaxKind::WITH_KW)
8633    }
8634}
8635
8636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8637pub struct Restrict {
8638    pub(crate) syntax: SyntaxNode,
8639}
8640impl Restrict {
8641    #[inline]
8642    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8643        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8644    }
8645}
8646
8647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8648pub struct RetType {
8649    pub(crate) syntax: SyntaxNode,
8650}
8651impl RetType {
8652    #[inline]
8653    pub fn ty(&self) -> Option<Type> {
8654        support::child(&self.syntax)
8655    }
8656    #[inline]
8657    pub fn returns_token(&self) -> Option<SyntaxToken> {
8658        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
8659    }
8660}
8661
8662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8663pub struct ReturnFuncOption {
8664    pub(crate) syntax: SyntaxNode,
8665}
8666impl ReturnFuncOption {
8667    #[inline]
8668    pub fn expr(&self) -> Option<Expr> {
8669        support::child(&self.syntax)
8670    }
8671    #[inline]
8672    pub fn return_token(&self) -> Option<SyntaxToken> {
8673        support::token(&self.syntax, SyntaxKind::RETURN_KW)
8674    }
8675}
8676
8677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8678pub struct ReturningClause {
8679    pub(crate) syntax: SyntaxNode,
8680}
8681impl ReturningClause {
8682    #[inline]
8683    pub fn target_list(&self) -> Option<TargetList> {
8684        support::child(&self.syntax)
8685    }
8686    #[inline]
8687    pub fn returning_token(&self) -> Option<SyntaxToken> {
8688        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
8689    }
8690}
8691
8692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8693pub struct Revoke {
8694    pub(crate) syntax: SyntaxNode,
8695}
8696impl Revoke {
8697    #[inline]
8698    pub fn revoke_token(&self) -> Option<SyntaxToken> {
8699        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
8700    }
8701}
8702
8703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8704pub struct Role {
8705    pub(crate) syntax: SyntaxNode,
8706}
8707impl Role {
8708    #[inline]
8709    pub fn current_role_token(&self) -> Option<SyntaxToken> {
8710        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
8711    }
8712    #[inline]
8713    pub fn current_user_token(&self) -> Option<SyntaxToken> {
8714        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
8715    }
8716    #[inline]
8717    pub fn group_token(&self) -> Option<SyntaxToken> {
8718        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8719    }
8720    #[inline]
8721    pub fn ident_token(&self) -> Option<SyntaxToken> {
8722        support::token(&self.syntax, SyntaxKind::IDENT)
8723    }
8724    #[inline]
8725    pub fn session_user_token(&self) -> Option<SyntaxToken> {
8726        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
8727    }
8728}
8729
8730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8731pub struct Rollback {
8732    pub(crate) syntax: SyntaxNode,
8733}
8734impl Rollback {
8735    #[inline]
8736    pub fn abort_token(&self) -> Option<SyntaxToken> {
8737        support::token(&self.syntax, SyntaxKind::ABORT_KW)
8738    }
8739    #[inline]
8740    pub fn rollback_token(&self) -> Option<SyntaxToken> {
8741        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
8742    }
8743}
8744
8745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8746pub struct Row {
8747    pub(crate) syntax: SyntaxNode,
8748}
8749impl Row {
8750    #[inline]
8751    pub fn exprs(&self) -> AstChildren<Expr> {
8752        support::children(&self.syntax)
8753    }
8754}
8755
8756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8757pub struct RowList {
8758    pub(crate) syntax: SyntaxNode,
8759}
8760impl RowList {
8761    #[inline]
8762    pub fn rows(&self) -> AstChildren<Row> {
8763        support::children(&self.syntax)
8764    }
8765}
8766
8767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8768pub struct RowsFuncOption {
8769    pub(crate) syntax: SyntaxNode,
8770}
8771impl RowsFuncOption {
8772    #[inline]
8773    pub fn rows_token(&self) -> Option<SyntaxToken> {
8774        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8775    }
8776}
8777
8778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8779pub struct Savepoint {
8780    pub(crate) syntax: SyntaxNode,
8781}
8782impl Savepoint {
8783    #[inline]
8784    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
8785        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
8786    }
8787}
8788
8789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8790pub struct SecurityFuncOption {
8791    pub(crate) syntax: SyntaxNode,
8792}
8793impl SecurityFuncOption {
8794    #[inline]
8795    pub fn definer_token(&self) -> Option<SyntaxToken> {
8796        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
8797    }
8798    #[inline]
8799    pub fn invoker_token(&self) -> Option<SyntaxToken> {
8800        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
8801    }
8802    #[inline]
8803    pub fn security_token(&self) -> Option<SyntaxToken> {
8804        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8805    }
8806}
8807
8808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8809pub struct SecurityLabel {
8810    pub(crate) syntax: SyntaxNode,
8811}
8812impl SecurityLabel {
8813    #[inline]
8814    pub fn label_token(&self) -> Option<SyntaxToken> {
8815        support::token(&self.syntax, SyntaxKind::LABEL_KW)
8816    }
8817    #[inline]
8818    pub fn security_token(&self) -> Option<SyntaxToken> {
8819        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8820    }
8821}
8822
8823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8824pub struct Select {
8825    pub(crate) syntax: SyntaxNode,
8826}
8827impl Select {
8828    #[inline]
8829    pub fn fetch_clause(&self) -> Option<FetchClause> {
8830        support::child(&self.syntax)
8831    }
8832    #[inline]
8833    pub fn filter_clause(&self) -> Option<FilterClause> {
8834        support::child(&self.syntax)
8835    }
8836    #[inline]
8837    pub fn from_clause(&self) -> Option<FromClause> {
8838        support::child(&self.syntax)
8839    }
8840    #[inline]
8841    pub fn group_by_clause(&self) -> Option<GroupByClause> {
8842        support::child(&self.syntax)
8843    }
8844    #[inline]
8845    pub fn having_clause(&self) -> Option<HavingClause> {
8846        support::child(&self.syntax)
8847    }
8848    #[inline]
8849    pub fn limit_clause(&self) -> Option<LimitClause> {
8850        support::child(&self.syntax)
8851    }
8852    #[inline]
8853    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
8854        support::children(&self.syntax)
8855    }
8856    #[inline]
8857    pub fn offset_clause(&self) -> Option<OffsetClause> {
8858        support::child(&self.syntax)
8859    }
8860    #[inline]
8861    pub fn order_by_clause(&self) -> Option<OrderByClause> {
8862        support::child(&self.syntax)
8863    }
8864    #[inline]
8865    pub fn select_clause(&self) -> Option<SelectClause> {
8866        support::child(&self.syntax)
8867    }
8868    #[inline]
8869    pub fn where_clause(&self) -> Option<WhereClause> {
8870        support::child(&self.syntax)
8871    }
8872    #[inline]
8873    pub fn window_clause(&self) -> Option<WindowClause> {
8874        support::child(&self.syntax)
8875    }
8876    #[inline]
8877    pub fn with_clause(&self) -> Option<WithClause> {
8878        support::child(&self.syntax)
8879    }
8880}
8881
8882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8883pub struct SelectClause {
8884    pub(crate) syntax: SyntaxNode,
8885}
8886impl SelectClause {
8887    #[inline]
8888    pub fn distinct_clause(&self) -> Option<DistinctClause> {
8889        support::child(&self.syntax)
8890    }
8891    #[inline]
8892    pub fn target_list(&self) -> Option<TargetList> {
8893        support::child(&self.syntax)
8894    }
8895    #[inline]
8896    pub fn all_token(&self) -> Option<SyntaxToken> {
8897        support::token(&self.syntax, SyntaxKind::ALL_KW)
8898    }
8899    #[inline]
8900    pub fn select_token(&self) -> Option<SyntaxToken> {
8901        support::token(&self.syntax, SyntaxKind::SELECT_KW)
8902    }
8903}
8904
8905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8906pub struct SelectInto {
8907    pub(crate) syntax: SyntaxNode,
8908}
8909impl SelectInto {
8910    #[inline]
8911    pub fn filter_clause(&self) -> Option<FilterClause> {
8912        support::child(&self.syntax)
8913    }
8914    #[inline]
8915    pub fn from_clause(&self) -> Option<FromClause> {
8916        support::child(&self.syntax)
8917    }
8918    #[inline]
8919    pub fn group_by_clause(&self) -> Option<GroupByClause> {
8920        support::child(&self.syntax)
8921    }
8922    #[inline]
8923    pub fn having_clause(&self) -> Option<HavingClause> {
8924        support::child(&self.syntax)
8925    }
8926    #[inline]
8927    pub fn into_clause(&self) -> Option<IntoClause> {
8928        support::child(&self.syntax)
8929    }
8930    #[inline]
8931    pub fn limit_clause(&self) -> Option<LimitClause> {
8932        support::child(&self.syntax)
8933    }
8934    #[inline]
8935    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
8936        support::children(&self.syntax)
8937    }
8938    #[inline]
8939    pub fn offset_clause(&self) -> Option<OffsetClause> {
8940        support::child(&self.syntax)
8941    }
8942    #[inline]
8943    pub fn order_by_clause(&self) -> Option<OrderByClause> {
8944        support::child(&self.syntax)
8945    }
8946    #[inline]
8947    pub fn select_clause(&self) -> Option<SelectClause> {
8948        support::child(&self.syntax)
8949    }
8950    #[inline]
8951    pub fn where_clause(&self) -> Option<WhereClause> {
8952        support::child(&self.syntax)
8953    }
8954    #[inline]
8955    pub fn window_clause(&self) -> Option<WindowClause> {
8956        support::child(&self.syntax)
8957    }
8958}
8959
8960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8961pub struct SequenceOptionList {
8962    pub(crate) syntax: SyntaxNode,
8963}
8964impl SequenceOptionList {
8965    #[inline]
8966    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8967        support::token(&self.syntax, SyntaxKind::L_PAREN)
8968    }
8969    #[inline]
8970    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8971        support::token(&self.syntax, SyntaxKind::R_PAREN)
8972    }
8973}
8974
8975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8976pub struct Serializable {
8977    pub(crate) syntax: SyntaxNode,
8978}
8979impl Serializable {
8980    #[inline]
8981    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8982        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8983    }
8984    #[inline]
8985    pub fn level_token(&self) -> Option<SyntaxToken> {
8986        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8987    }
8988    #[inline]
8989    pub fn serializable_token(&self) -> Option<SyntaxToken> {
8990        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
8991    }
8992}
8993
8994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8995pub struct Set {
8996    pub(crate) syntax: SyntaxNode,
8997}
8998impl Set {
8999    #[inline]
9000    pub fn expr(&self) -> Option<Expr> {
9001        support::child(&self.syntax)
9002    }
9003    #[inline]
9004    pub fn path(&self) -> Option<Path> {
9005        support::child(&self.syntax)
9006    }
9007    #[inline]
9008    pub fn eq_token(&self) -> Option<SyntaxToken> {
9009        support::token(&self.syntax, SyntaxKind::EQ)
9010    }
9011    #[inline]
9012    pub fn default_token(&self) -> Option<SyntaxToken> {
9013        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9014    }
9015    #[inline]
9016    pub fn local_token(&self) -> Option<SyntaxToken> {
9017        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
9018    }
9019    #[inline]
9020    pub fn session_token(&self) -> Option<SyntaxToken> {
9021        support::token(&self.syntax, SyntaxKind::SESSION_KW)
9022    }
9023    #[inline]
9024    pub fn set_token(&self) -> Option<SyntaxToken> {
9025        support::token(&self.syntax, SyntaxKind::SET_KW)
9026    }
9027    #[inline]
9028    pub fn time_token(&self) -> Option<SyntaxToken> {
9029        support::token(&self.syntax, SyntaxKind::TIME_KW)
9030    }
9031    #[inline]
9032    pub fn to_token(&self) -> Option<SyntaxToken> {
9033        support::token(&self.syntax, SyntaxKind::TO_KW)
9034    }
9035    #[inline]
9036    pub fn zone_token(&self) -> Option<SyntaxToken> {
9037        support::token(&self.syntax, SyntaxKind::ZONE_KW)
9038    }
9039}
9040
9041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9042pub struct SetAccessMethod {
9043    pub(crate) syntax: SyntaxNode,
9044}
9045impl SetAccessMethod {
9046    #[inline]
9047    pub fn name_ref(&self) -> Option<NameRef> {
9048        support::child(&self.syntax)
9049    }
9050    #[inline]
9051    pub fn access_token(&self) -> Option<SyntaxToken> {
9052        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
9053    }
9054    #[inline]
9055    pub fn method_token(&self) -> Option<SyntaxToken> {
9056        support::token(&self.syntax, SyntaxKind::METHOD_KW)
9057    }
9058    #[inline]
9059    pub fn set_token(&self) -> Option<SyntaxToken> {
9060        support::token(&self.syntax, SyntaxKind::SET_KW)
9061    }
9062}
9063
9064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9065pub struct SetCompression {
9066    pub(crate) syntax: SyntaxNode,
9067}
9068impl SetCompression {
9069    #[inline]
9070    pub fn compression_token(&self) -> Option<SyntaxToken> {
9071        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
9072    }
9073    #[inline]
9074    pub fn set_token(&self) -> Option<SyntaxToken> {
9075        support::token(&self.syntax, SyntaxKind::SET_KW)
9076    }
9077}
9078
9079#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9080pub struct SetConstraints {
9081    pub(crate) syntax: SyntaxNode,
9082}
9083impl SetConstraints {
9084    #[inline]
9085    pub fn constraints_token(&self) -> Option<SyntaxToken> {
9086        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
9087    }
9088    #[inline]
9089    pub fn set_token(&self) -> Option<SyntaxToken> {
9090        support::token(&self.syntax, SyntaxKind::SET_KW)
9091    }
9092}
9093
9094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9095pub struct SetDefault {
9096    pub(crate) syntax: SyntaxNode,
9097}
9098impl SetDefault {
9099    #[inline]
9100    pub fn expr(&self) -> Option<Expr> {
9101        support::child(&self.syntax)
9102    }
9103    #[inline]
9104    pub fn default_token(&self) -> Option<SyntaxToken> {
9105        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9106    }
9107    #[inline]
9108    pub fn set_token(&self) -> Option<SyntaxToken> {
9109        support::token(&self.syntax, SyntaxKind::SET_KW)
9110    }
9111}
9112
9113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9114pub struct SetDefaultColumns {
9115    pub(crate) syntax: SyntaxNode,
9116}
9117impl SetDefaultColumns {
9118    #[inline]
9119    pub fn column_list(&self) -> Option<ColumnList> {
9120        support::child(&self.syntax)
9121    }
9122    #[inline]
9123    pub fn default_token(&self) -> Option<SyntaxToken> {
9124        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9125    }
9126    #[inline]
9127    pub fn set_token(&self) -> Option<SyntaxToken> {
9128        support::token(&self.syntax, SyntaxKind::SET_KW)
9129    }
9130}
9131
9132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9133pub struct SetExpression {
9134    pub(crate) syntax: SyntaxNode,
9135}
9136impl SetExpression {
9137    #[inline]
9138    pub fn expr(&self) -> Option<Expr> {
9139        support::child(&self.syntax)
9140    }
9141    #[inline]
9142    pub fn expression_token(&self) -> Option<SyntaxToken> {
9143        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
9144    }
9145    #[inline]
9146    pub fn set_token(&self) -> Option<SyntaxToken> {
9147        support::token(&self.syntax, SyntaxKind::SET_KW)
9148    }
9149}
9150
9151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9152pub struct SetFuncOption {
9153    pub(crate) syntax: SyntaxNode,
9154}
9155impl SetFuncOption {
9156    #[inline]
9157    pub fn set_token(&self) -> Option<SyntaxToken> {
9158        support::token(&self.syntax, SyntaxKind::SET_KW)
9159    }
9160}
9161
9162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9163pub struct SetGenerated {
9164    pub(crate) syntax: SyntaxNode,
9165}
9166impl SetGenerated {
9167    #[inline]
9168    pub fn set_token(&self) -> Option<SyntaxToken> {
9169        support::token(&self.syntax, SyntaxKind::SET_KW)
9170    }
9171}
9172
9173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9174pub struct SetGeneratedOptions {
9175    pub(crate) syntax: SyntaxNode,
9176}
9177impl SetGeneratedOptions {
9178    #[inline]
9179    pub fn set_token(&self) -> Option<SyntaxToken> {
9180        support::token(&self.syntax, SyntaxKind::SET_KW)
9181    }
9182}
9183
9184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9185pub struct SetLogged {
9186    pub(crate) syntax: SyntaxNode,
9187}
9188impl SetLogged {
9189    #[inline]
9190    pub fn logged_token(&self) -> Option<SyntaxToken> {
9191        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
9192    }
9193    #[inline]
9194    pub fn set_token(&self) -> Option<SyntaxToken> {
9195        support::token(&self.syntax, SyntaxKind::SET_KW)
9196    }
9197}
9198
9199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9200pub struct SetNotNull {
9201    pub(crate) syntax: SyntaxNode,
9202}
9203impl SetNotNull {
9204    #[inline]
9205    pub fn not_token(&self) -> Option<SyntaxToken> {
9206        support::token(&self.syntax, SyntaxKind::NOT_KW)
9207    }
9208    #[inline]
9209    pub fn null_token(&self) -> Option<SyntaxToken> {
9210        support::token(&self.syntax, SyntaxKind::NULL_KW)
9211    }
9212    #[inline]
9213    pub fn set_token(&self) -> Option<SyntaxToken> {
9214        support::token(&self.syntax, SyntaxKind::SET_KW)
9215    }
9216}
9217
9218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9219pub struct SetNullColumns {
9220    pub(crate) syntax: SyntaxNode,
9221}
9222impl SetNullColumns {
9223    #[inline]
9224    pub fn column_list(&self) -> Option<ColumnList> {
9225        support::child(&self.syntax)
9226    }
9227    #[inline]
9228    pub fn null_token(&self) -> Option<SyntaxToken> {
9229        support::token(&self.syntax, SyntaxKind::NULL_KW)
9230    }
9231    #[inline]
9232    pub fn set_token(&self) -> Option<SyntaxToken> {
9233        support::token(&self.syntax, SyntaxKind::SET_KW)
9234    }
9235}
9236
9237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9238pub struct SetOptions {
9239    pub(crate) syntax: SyntaxNode,
9240}
9241impl SetOptions {
9242    #[inline]
9243    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9244        support::token(&self.syntax, SyntaxKind::L_PAREN)
9245    }
9246    #[inline]
9247    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9248        support::token(&self.syntax, SyntaxKind::R_PAREN)
9249    }
9250    #[inline]
9251    pub fn set_token(&self) -> Option<SyntaxToken> {
9252        support::token(&self.syntax, SyntaxKind::SET_KW)
9253    }
9254}
9255
9256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9257pub struct SetOptionsList {
9258    pub(crate) syntax: SyntaxNode,
9259}
9260impl SetOptionsList {
9261    #[inline]
9262    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9263        support::token(&self.syntax, SyntaxKind::L_PAREN)
9264    }
9265    #[inline]
9266    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9267        support::token(&self.syntax, SyntaxKind::R_PAREN)
9268    }
9269    #[inline]
9270    pub fn set_token(&self) -> Option<SyntaxToken> {
9271        support::token(&self.syntax, SyntaxKind::SET_KW)
9272    }
9273}
9274
9275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9276pub struct SetRole {
9277    pub(crate) syntax: SyntaxNode,
9278}
9279impl SetRole {
9280    #[inline]
9281    pub fn role_token(&self) -> Option<SyntaxToken> {
9282        support::token(&self.syntax, SyntaxKind::ROLE_KW)
9283    }
9284    #[inline]
9285    pub fn set_token(&self) -> Option<SyntaxToken> {
9286        support::token(&self.syntax, SyntaxKind::SET_KW)
9287    }
9288}
9289
9290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9291pub struct SetSchema {
9292    pub(crate) syntax: SyntaxNode,
9293}
9294impl SetSchema {
9295    #[inline]
9296    pub fn name_ref(&self) -> Option<NameRef> {
9297        support::child(&self.syntax)
9298    }
9299    #[inline]
9300    pub fn schema_token(&self) -> Option<SyntaxToken> {
9301        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9302    }
9303    #[inline]
9304    pub fn set_token(&self) -> Option<SyntaxToken> {
9305        support::token(&self.syntax, SyntaxKind::SET_KW)
9306    }
9307}
9308
9309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9310pub struct SetSequenceOption {
9311    pub(crate) syntax: SyntaxNode,
9312}
9313impl SetSequenceOption {
9314    #[inline]
9315    pub fn set_token(&self) -> Option<SyntaxToken> {
9316        support::token(&self.syntax, SyntaxKind::SET_KW)
9317    }
9318}
9319
9320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9321pub struct SetSessionAuth {
9322    pub(crate) syntax: SyntaxNode,
9323}
9324impl SetSessionAuth {
9325    #[inline]
9326    pub fn authorization_token(&self) -> Option<SyntaxToken> {
9327        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
9328    }
9329    #[inline]
9330    pub fn session_token(&self) -> Option<SyntaxToken> {
9331        support::token(&self.syntax, SyntaxKind::SESSION_KW)
9332    }
9333    #[inline]
9334    pub fn set_token(&self) -> Option<SyntaxToken> {
9335        support::token(&self.syntax, SyntaxKind::SET_KW)
9336    }
9337}
9338
9339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9340pub struct SetStatistics {
9341    pub(crate) syntax: SyntaxNode,
9342}
9343impl SetStatistics {
9344    #[inline]
9345    pub fn set_token(&self) -> Option<SyntaxToken> {
9346        support::token(&self.syntax, SyntaxKind::SET_KW)
9347    }
9348    #[inline]
9349    pub fn statistics_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
9351    }
9352}
9353
9354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9355pub struct SetStorage {
9356    pub(crate) syntax: SyntaxNode,
9357}
9358impl SetStorage {
9359    #[inline]
9360    pub fn set_token(&self) -> Option<SyntaxToken> {
9361        support::token(&self.syntax, SyntaxKind::SET_KW)
9362    }
9363    #[inline]
9364    pub fn storage_token(&self) -> Option<SyntaxToken> {
9365        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
9366    }
9367}
9368
9369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9370pub struct SetStorageParams {
9371    pub(crate) syntax: SyntaxNode,
9372}
9373impl SetStorageParams {
9374    #[inline]
9375    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9376        support::token(&self.syntax, SyntaxKind::L_PAREN)
9377    }
9378    #[inline]
9379    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9380        support::token(&self.syntax, SyntaxKind::R_PAREN)
9381    }
9382    #[inline]
9383    pub fn set_token(&self) -> Option<SyntaxToken> {
9384        support::token(&self.syntax, SyntaxKind::SET_KW)
9385    }
9386}
9387
9388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9389pub struct SetTablespace {
9390    pub(crate) syntax: SyntaxNode,
9391}
9392impl SetTablespace {
9393    #[inline]
9394    pub fn name_ref(&self) -> Option<NameRef> {
9395        support::child(&self.syntax)
9396    }
9397    #[inline]
9398    pub fn set_token(&self) -> Option<SyntaxToken> {
9399        support::token(&self.syntax, SyntaxKind::SET_KW)
9400    }
9401    #[inline]
9402    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
9403        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
9404    }
9405}
9406
9407#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9408pub struct SetTransaction {
9409    pub(crate) syntax: SyntaxNode,
9410}
9411impl SetTransaction {
9412    #[inline]
9413    pub fn set_token(&self) -> Option<SyntaxToken> {
9414        support::token(&self.syntax, SyntaxKind::SET_KW)
9415    }
9416    #[inline]
9417    pub fn transaction_token(&self) -> Option<SyntaxToken> {
9418        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
9419    }
9420}
9421
9422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9423pub struct SetType {
9424    pub(crate) syntax: SyntaxNode,
9425}
9426impl SetType {
9427    #[inline]
9428    pub fn collate(&self) -> Option<Collate> {
9429        support::child(&self.syntax)
9430    }
9431    #[inline]
9432    pub fn ty(&self) -> Option<Type> {
9433        support::child(&self.syntax)
9434    }
9435    #[inline]
9436    pub fn set_token(&self) -> Option<SyntaxToken> {
9437        support::token(&self.syntax, SyntaxKind::SET_KW)
9438    }
9439    #[inline]
9440    pub fn type_token(&self) -> Option<SyntaxToken> {
9441        support::token(&self.syntax, SyntaxKind::TYPE_KW)
9442    }
9443}
9444
9445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9446pub struct SetUnlogged {
9447    pub(crate) syntax: SyntaxNode,
9448}
9449impl SetUnlogged {
9450    #[inline]
9451    pub fn set_token(&self) -> Option<SyntaxToken> {
9452        support::token(&self.syntax, SyntaxKind::SET_KW)
9453    }
9454    #[inline]
9455    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
9456        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
9457    }
9458}
9459
9460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9461pub struct SetWithoutCluster {
9462    pub(crate) syntax: SyntaxNode,
9463}
9464impl SetWithoutCluster {
9465    #[inline]
9466    pub fn cluster_token(&self) -> Option<SyntaxToken> {
9467        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
9468    }
9469    #[inline]
9470    pub fn set_token(&self) -> Option<SyntaxToken> {
9471        support::token(&self.syntax, SyntaxKind::SET_KW)
9472    }
9473    #[inline]
9474    pub fn without_token(&self) -> Option<SyntaxToken> {
9475        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9476    }
9477}
9478
9479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9480pub struct SetWithoutOids {
9481    pub(crate) syntax: SyntaxNode,
9482}
9483impl SetWithoutOids {
9484    #[inline]
9485    pub fn oids_token(&self) -> Option<SyntaxToken> {
9486        support::token(&self.syntax, SyntaxKind::OIDS_KW)
9487    }
9488    #[inline]
9489    pub fn set_token(&self) -> Option<SyntaxToken> {
9490        support::token(&self.syntax, SyntaxKind::SET_KW)
9491    }
9492    #[inline]
9493    pub fn without_token(&self) -> Option<SyntaxToken> {
9494        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9495    }
9496}
9497
9498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9499pub struct Show {
9500    pub(crate) syntax: SyntaxNode,
9501}
9502impl Show {
9503    #[inline]
9504    pub fn show_token(&self) -> Option<SyntaxToken> {
9505        support::token(&self.syntax, SyntaxKind::SHOW_KW)
9506    }
9507}
9508
9509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9510pub struct SimilarTo {
9511    pub(crate) syntax: SyntaxNode,
9512}
9513impl SimilarTo {
9514    #[inline]
9515    pub fn similar_token(&self) -> Option<SyntaxToken> {
9516        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
9517    }
9518    #[inline]
9519    pub fn to_token(&self) -> Option<SyntaxToken> {
9520        support::token(&self.syntax, SyntaxKind::TO_KW)
9521    }
9522}
9523
9524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9525pub struct SortAsc {
9526    pub(crate) syntax: SyntaxNode,
9527}
9528impl SortAsc {
9529    #[inline]
9530    pub fn asc_token(&self) -> Option<SyntaxToken> {
9531        support::token(&self.syntax, SyntaxKind::ASC_KW)
9532    }
9533}
9534
9535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9536pub struct SortBy {
9537    pub(crate) syntax: SyntaxNode,
9538}
9539impl SortBy {
9540    #[inline]
9541    pub fn expr(&self) -> Option<Expr> {
9542        support::child(&self.syntax)
9543    }
9544    #[inline]
9545    pub fn nulls_first(&self) -> Option<NullsFirst> {
9546        support::child(&self.syntax)
9547    }
9548    #[inline]
9549    pub fn nulls_last(&self) -> Option<NullsLast> {
9550        support::child(&self.syntax)
9551    }
9552    #[inline]
9553    pub fn sort_asc(&self) -> Option<SortAsc> {
9554        support::child(&self.syntax)
9555    }
9556    #[inline]
9557    pub fn sort_desc(&self) -> Option<SortDesc> {
9558        support::child(&self.syntax)
9559    }
9560    #[inline]
9561    pub fn sort_using(&self) -> Option<SortUsing> {
9562        support::child(&self.syntax)
9563    }
9564}
9565
9566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9567pub struct SortDesc {
9568    pub(crate) syntax: SyntaxNode,
9569}
9570impl SortDesc {
9571    #[inline]
9572    pub fn desc_token(&self) -> Option<SyntaxToken> {
9573        support::token(&self.syntax, SyntaxKind::DESC_KW)
9574    }
9575}
9576
9577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9578pub struct SortUsing {
9579    pub(crate) syntax: SyntaxNode,
9580}
9581impl SortUsing {
9582    #[inline]
9583    pub fn op(&self) -> Option<Op> {
9584        support::child(&self.syntax)
9585    }
9586    #[inline]
9587    pub fn using_token(&self) -> Option<SyntaxToken> {
9588        support::token(&self.syntax, SyntaxKind::USING_KW)
9589    }
9590}
9591
9592#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9593pub struct SourceFile {
9594    pub(crate) syntax: SyntaxNode,
9595}
9596impl SourceFile {
9597    #[inline]
9598    pub fn stmts(&self) -> AstChildren<Stmt> {
9599        support::children(&self.syntax)
9600    }
9601}
9602
9603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9604pub struct Storage {
9605    pub(crate) syntax: SyntaxNode,
9606}
9607impl Storage {
9608    #[inline]
9609    pub fn default_token(&self) -> Option<SyntaxToken> {
9610        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9611    }
9612    #[inline]
9613    pub fn external_token(&self) -> Option<SyntaxToken> {
9614        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
9615    }
9616    #[inline]
9617    pub fn ident_token(&self) -> Option<SyntaxToken> {
9618        support::token(&self.syntax, SyntaxKind::IDENT)
9619    }
9620    #[inline]
9621    pub fn storage_token(&self) -> Option<SyntaxToken> {
9622        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
9623    }
9624}
9625
9626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9627pub struct StrictFuncOption {
9628    pub(crate) syntax: SyntaxNode,
9629}
9630impl StrictFuncOption {
9631    #[inline]
9632    pub fn called_token(&self) -> Option<SyntaxToken> {
9633        support::token(&self.syntax, SyntaxKind::CALLED_KW)
9634    }
9635    #[inline]
9636    pub fn input_token(&self) -> Option<SyntaxToken> {
9637        support::token(&self.syntax, SyntaxKind::INPUT_KW)
9638    }
9639    #[inline]
9640    pub fn null_token(&self) -> Option<SyntaxToken> {
9641        support::token(&self.syntax, SyntaxKind::NULL_KW)
9642    }
9643    #[inline]
9644    pub fn on_token(&self) -> Option<SyntaxToken> {
9645        support::token(&self.syntax, SyntaxKind::ON_KW)
9646    }
9647    #[inline]
9648    pub fn returns_token(&self) -> Option<SyntaxToken> {
9649        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
9650    }
9651    #[inline]
9652    pub fn strict_token(&self) -> Option<SyntaxToken> {
9653        support::token(&self.syntax, SyntaxKind::STRICT_KW)
9654    }
9655}
9656
9657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9658pub struct SupportFuncOption {
9659    pub(crate) syntax: SyntaxNode,
9660}
9661impl SupportFuncOption {
9662    #[inline]
9663    pub fn support_token(&self) -> Option<SyntaxToken> {
9664        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
9665    }
9666}
9667
9668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9669pub struct Table {
9670    pub(crate) syntax: SyntaxNode,
9671}
9672impl Table {
9673    #[inline]
9674    pub fn relation_name(&self) -> Option<RelationName> {
9675        support::child(&self.syntax)
9676    }
9677    #[inline]
9678    pub fn table_token(&self) -> Option<SyntaxToken> {
9679        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9680    }
9681}
9682
9683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9684pub struct TableArgList {
9685    pub(crate) syntax: SyntaxNode,
9686}
9687impl TableArgList {
9688    #[inline]
9689    pub fn args(&self) -> AstChildren<TableArg> {
9690        support::children(&self.syntax)
9691    }
9692    #[inline]
9693    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9694        support::token(&self.syntax, SyntaxKind::L_PAREN)
9695    }
9696    #[inline]
9697    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9698        support::token(&self.syntax, SyntaxKind::R_PAREN)
9699    }
9700}
9701
9702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9703pub struct TableList {
9704    pub(crate) syntax: SyntaxNode,
9705}
9706impl TableList {
9707    #[inline]
9708    pub fn relation_names(&self) -> AstChildren<RelationName> {
9709        support::children(&self.syntax)
9710    }
9711}
9712
9713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9714pub struct Tablespace {
9715    pub(crate) syntax: SyntaxNode,
9716}
9717impl Tablespace {
9718    #[inline]
9719    pub fn name_ref(&self) -> Option<NameRef> {
9720        support::child(&self.syntax)
9721    }
9722    #[inline]
9723    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
9724        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
9725    }
9726}
9727
9728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9729pub struct Target {
9730    pub(crate) syntax: SyntaxNode,
9731}
9732impl Target {
9733    #[inline]
9734    pub fn as_name(&self) -> Option<AsName> {
9735        support::child(&self.syntax)
9736    }
9737    #[inline]
9738    pub fn expr(&self) -> Option<Expr> {
9739        support::child(&self.syntax)
9740    }
9741    #[inline]
9742    pub fn star_token(&self) -> Option<SyntaxToken> {
9743        support::token(&self.syntax, SyntaxKind::STAR)
9744    }
9745}
9746
9747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9748pub struct TargetList {
9749    pub(crate) syntax: SyntaxNode,
9750}
9751impl TargetList {
9752    #[inline]
9753    pub fn targets(&self) -> AstChildren<Target> {
9754        support::children(&self.syntax)
9755    }
9756}
9757
9758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9759pub struct TimeType {
9760    pub(crate) syntax: SyntaxNode,
9761}
9762impl TimeType {
9763    #[inline]
9764    pub fn literal(&self) -> Option<Literal> {
9765        support::child(&self.syntax)
9766    }
9767    #[inline]
9768    pub fn timezone(&self) -> Option<Timezone> {
9769        support::child(&self.syntax)
9770    }
9771    #[inline]
9772    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9773        support::token(&self.syntax, SyntaxKind::L_PAREN)
9774    }
9775    #[inline]
9776    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9777        support::token(&self.syntax, SyntaxKind::R_PAREN)
9778    }
9779    #[inline]
9780    pub fn time_token(&self) -> Option<SyntaxToken> {
9781        support::token(&self.syntax, SyntaxKind::TIME_KW)
9782    }
9783    #[inline]
9784    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
9785        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
9786    }
9787}
9788
9789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9790pub struct TransactionModeList {
9791    pub(crate) syntax: SyntaxNode,
9792}
9793impl TransactionModeList {
9794    #[inline]
9795    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
9796        support::children(&self.syntax)
9797    }
9798}
9799
9800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9801pub struct TransformFuncOption {
9802    pub(crate) syntax: SyntaxNode,
9803}
9804impl TransformFuncOption {
9805    #[inline]
9806    pub fn transform_token(&self) -> Option<SyntaxToken> {
9807        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
9808    }
9809}
9810
9811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9812pub struct Truncate {
9813    pub(crate) syntax: SyntaxNode,
9814}
9815impl Truncate {
9816    #[inline]
9817    pub fn table_list(&self) -> Option<TableList> {
9818        support::child(&self.syntax)
9819    }
9820    #[inline]
9821    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9822        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9823    }
9824    #[inline]
9825    pub fn continue_token(&self) -> Option<SyntaxToken> {
9826        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
9827    }
9828    #[inline]
9829    pub fn identity_token(&self) -> Option<SyntaxToken> {
9830        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9831    }
9832    #[inline]
9833    pub fn restart_token(&self) -> Option<SyntaxToken> {
9834        support::token(&self.syntax, SyntaxKind::RESTART_KW)
9835    }
9836    #[inline]
9837    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9838        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9839    }
9840    #[inline]
9841    pub fn table_token(&self) -> Option<SyntaxToken> {
9842        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9843    }
9844    #[inline]
9845    pub fn truncate_token(&self) -> Option<SyntaxToken> {
9846        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
9847    }
9848}
9849
9850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9851pub struct TupleExpr {
9852    pub(crate) syntax: SyntaxNode,
9853}
9854impl TupleExpr {
9855    #[inline]
9856    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9857        support::token(&self.syntax, SyntaxKind::L_PAREN)
9858    }
9859    #[inline]
9860    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9861        support::token(&self.syntax, SyntaxKind::R_PAREN)
9862    }
9863}
9864
9865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9866pub struct UnicodeNormalForm {
9867    pub(crate) syntax: SyntaxNode,
9868}
9869impl UnicodeNormalForm {
9870    #[inline]
9871    pub fn nfc_token(&self) -> Option<SyntaxToken> {
9872        support::token(&self.syntax, SyntaxKind::NFC_KW)
9873    }
9874    #[inline]
9875    pub fn nfd_token(&self) -> Option<SyntaxToken> {
9876        support::token(&self.syntax, SyntaxKind::NFD_KW)
9877    }
9878    #[inline]
9879    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
9880        support::token(&self.syntax, SyntaxKind::NFKC_KW)
9881    }
9882    #[inline]
9883    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
9884        support::token(&self.syntax, SyntaxKind::NFKD_KW)
9885    }
9886}
9887
9888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9889pub struct UniqueConstraint {
9890    pub(crate) syntax: SyntaxNode,
9891}
9892impl UniqueConstraint {
9893    #[inline]
9894    pub fn column_list(&self) -> Option<ColumnList> {
9895        support::child(&self.syntax)
9896    }
9897    #[inline]
9898    pub fn name_ref(&self) -> Option<NameRef> {
9899        support::child(&self.syntax)
9900    }
9901    #[inline]
9902    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
9903        support::child(&self.syntax)
9904    }
9905    #[inline]
9906    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
9907        support::child(&self.syntax)
9908    }
9909    #[inline]
9910    pub fn using_index(&self) -> Option<UsingIndex> {
9911        support::child(&self.syntax)
9912    }
9913    #[inline]
9914    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9915        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9916    }
9917    #[inline]
9918    pub fn unique_token(&self) -> Option<SyntaxToken> {
9919        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9920    }
9921}
9922
9923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9924pub struct Unlisten {
9925    pub(crate) syntax: SyntaxNode,
9926}
9927impl Unlisten {
9928    #[inline]
9929    pub fn name_ref(&self) -> Option<NameRef> {
9930        support::child(&self.syntax)
9931    }
9932    #[inline]
9933    pub fn star_token(&self) -> Option<SyntaxToken> {
9934        support::token(&self.syntax, SyntaxKind::STAR)
9935    }
9936    #[inline]
9937    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
9938        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
9939    }
9940}
9941
9942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9943pub struct Update {
9944    pub(crate) syntax: SyntaxNode,
9945}
9946impl Update {
9947    #[inline]
9948    pub fn returning_clause(&self) -> Option<ReturningClause> {
9949        support::child(&self.syntax)
9950    }
9951    #[inline]
9952    pub fn update_token(&self) -> Option<SyntaxToken> {
9953        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
9954    }
9955}
9956
9957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9958pub struct UsingClause {
9959    pub(crate) syntax: SyntaxNode,
9960}
9961impl UsingClause {
9962    #[inline]
9963    pub fn using_token(&self) -> Option<SyntaxToken> {
9964        support::token(&self.syntax, SyntaxKind::USING_KW)
9965    }
9966}
9967
9968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9969pub struct UsingIndex {
9970    pub(crate) syntax: SyntaxNode,
9971}
9972impl UsingIndex {
9973    #[inline]
9974    pub fn name_ref(&self) -> Option<NameRef> {
9975        support::child(&self.syntax)
9976    }
9977    #[inline]
9978    pub fn index_token(&self) -> Option<SyntaxToken> {
9979        support::token(&self.syntax, SyntaxKind::INDEX_KW)
9980    }
9981    #[inline]
9982    pub fn using_token(&self) -> Option<SyntaxToken> {
9983        support::token(&self.syntax, SyntaxKind::USING_KW)
9984    }
9985}
9986
9987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9988pub struct UsingMethod {
9989    pub(crate) syntax: SyntaxNode,
9990}
9991impl UsingMethod {
9992    #[inline]
9993    pub fn name_ref(&self) -> Option<NameRef> {
9994        support::child(&self.syntax)
9995    }
9996    #[inline]
9997    pub fn using_token(&self) -> Option<SyntaxToken> {
9998        support::token(&self.syntax, SyntaxKind::USING_KW)
9999    }
10000}
10001
10002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10003pub struct Vacuum {
10004    pub(crate) syntax: SyntaxNode,
10005}
10006impl Vacuum {
10007    #[inline]
10008    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
10009        support::child(&self.syntax)
10010    }
10011    #[inline]
10012    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
10013        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
10014    }
10015}
10016
10017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10018pub struct VacuumOption {
10019    pub(crate) syntax: SyntaxNode,
10020}
10021impl VacuumOption {
10022    #[inline]
10023    pub fn full_token(&self) -> Option<SyntaxToken> {
10024        support::token(&self.syntax, SyntaxKind::FULL_KW)
10025    }
10026}
10027
10028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10029pub struct VacuumOptionList {
10030    pub(crate) syntax: SyntaxNode,
10031}
10032impl VacuumOptionList {
10033    #[inline]
10034    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
10035        support::children(&self.syntax)
10036    }
10037    #[inline]
10038    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10039        support::token(&self.syntax, SyntaxKind::L_PAREN)
10040    }
10041    #[inline]
10042    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10043        support::token(&self.syntax, SyntaxKind::R_PAREN)
10044    }
10045}
10046
10047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10048pub struct ValidateConstraint {
10049    pub(crate) syntax: SyntaxNode,
10050}
10051impl ValidateConstraint {
10052    #[inline]
10053    pub fn name_ref(&self) -> Option<NameRef> {
10054        support::child(&self.syntax)
10055    }
10056    #[inline]
10057    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10058        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10059    }
10060    #[inline]
10061    pub fn validate_token(&self) -> Option<SyntaxToken> {
10062        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
10063    }
10064}
10065
10066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10067pub struct Values {
10068    pub(crate) syntax: SyntaxNode,
10069}
10070impl Values {
10071    #[inline]
10072    pub fn row_list(&self) -> Option<RowList> {
10073        support::child(&self.syntax)
10074    }
10075    #[inline]
10076    pub fn values_token(&self) -> Option<SyntaxToken> {
10077        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10078    }
10079}
10080
10081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10082pub struct Variant {
10083    pub(crate) syntax: SyntaxNode,
10084}
10085impl Variant {
10086    #[inline]
10087    pub fn literal(&self) -> Option<Literal> {
10088        support::child(&self.syntax)
10089    }
10090}
10091
10092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10093pub struct VariantList {
10094    pub(crate) syntax: SyntaxNode,
10095}
10096impl VariantList {
10097    #[inline]
10098    pub fn variants(&self) -> AstChildren<Variant> {
10099        support::children(&self.syntax)
10100    }
10101    #[inline]
10102    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10103        support::token(&self.syntax, SyntaxKind::L_PAREN)
10104    }
10105    #[inline]
10106    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10107        support::token(&self.syntax, SyntaxKind::R_PAREN)
10108    }
10109}
10110
10111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10112pub struct VolatilityFuncOption {
10113    pub(crate) syntax: SyntaxNode,
10114}
10115impl VolatilityFuncOption {
10116    #[inline]
10117    pub fn immutable_token(&self) -> Option<SyntaxToken> {
10118        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
10119    }
10120    #[inline]
10121    pub fn stable_token(&self) -> Option<SyntaxToken> {
10122        support::token(&self.syntax, SyntaxKind::STABLE_KW)
10123    }
10124    #[inline]
10125    pub fn volatile_token(&self) -> Option<SyntaxToken> {
10126        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
10127    }
10128}
10129
10130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10131pub struct WhenClause {
10132    pub(crate) syntax: SyntaxNode,
10133}
10134impl WhenClause {
10135    #[inline]
10136    pub fn expr(&self) -> Option<Expr> {
10137        support::child(&self.syntax)
10138    }
10139    #[inline]
10140    pub fn then_token(&self) -> Option<SyntaxToken> {
10141        support::token(&self.syntax, SyntaxKind::THEN_KW)
10142    }
10143    #[inline]
10144    pub fn when_token(&self) -> Option<SyntaxToken> {
10145        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10146    }
10147}
10148
10149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10150pub struct WhenClauseList {
10151    pub(crate) syntax: SyntaxNode,
10152}
10153impl WhenClauseList {
10154    #[inline]
10155    pub fn when_clause(&self) -> Option<WhenClause> {
10156        support::child(&self.syntax)
10157    }
10158    #[inline]
10159    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
10160        support::children(&self.syntax)
10161    }
10162}
10163
10164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10165pub struct WhereClause {
10166    pub(crate) syntax: SyntaxNode,
10167}
10168impl WhereClause {
10169    #[inline]
10170    pub fn expr(&self) -> Option<Expr> {
10171        support::child(&self.syntax)
10172    }
10173    #[inline]
10174    pub fn where_token(&self) -> Option<SyntaxToken> {
10175        support::token(&self.syntax, SyntaxKind::WHERE_KW)
10176    }
10177}
10178
10179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10180pub struct WindowClause {
10181    pub(crate) syntax: SyntaxNode,
10182}
10183impl WindowClause {
10184    #[inline]
10185    pub fn window_defs(&self) -> AstChildren<WindowDef> {
10186        support::children(&self.syntax)
10187    }
10188    #[inline]
10189    pub fn window_token(&self) -> Option<SyntaxToken> {
10190        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
10191    }
10192}
10193
10194#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10195pub struct WindowDef {
10196    pub(crate) syntax: SyntaxNode,
10197}
10198impl WindowDef {
10199    #[inline]
10200    pub fn name(&self) -> Option<Name> {
10201        support::child(&self.syntax)
10202    }
10203    #[inline]
10204    pub fn window_spec(&self) -> Option<WindowSpec> {
10205        support::child(&self.syntax)
10206    }
10207    #[inline]
10208    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10209        support::token(&self.syntax, SyntaxKind::L_PAREN)
10210    }
10211    #[inline]
10212    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10213        support::token(&self.syntax, SyntaxKind::R_PAREN)
10214    }
10215    #[inline]
10216    pub fn as_token(&self) -> Option<SyntaxToken> {
10217        support::token(&self.syntax, SyntaxKind::AS_KW)
10218    }
10219}
10220
10221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10222pub struct WindowFuncOption {
10223    pub(crate) syntax: SyntaxNode,
10224}
10225impl WindowFuncOption {
10226    #[inline]
10227    pub fn window_token(&self) -> Option<SyntaxToken> {
10228        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
10229    }
10230}
10231
10232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10233pub struct WindowSpec {
10234    pub(crate) syntax: SyntaxNode,
10235}
10236impl WindowSpec {
10237    #[inline]
10238    pub fn exprs(&self) -> AstChildren<Expr> {
10239        support::children(&self.syntax)
10240    }
10241    #[inline]
10242    pub fn frame_clause(&self) -> Option<FrameClause> {
10243        support::child(&self.syntax)
10244    }
10245    #[inline]
10246    pub fn order_by_clause(&self) -> Option<OrderByClause> {
10247        support::child(&self.syntax)
10248    }
10249    #[inline]
10250    pub fn by_token(&self) -> Option<SyntaxToken> {
10251        support::token(&self.syntax, SyntaxKind::BY_KW)
10252    }
10253    #[inline]
10254    pub fn ident_token(&self) -> Option<SyntaxToken> {
10255        support::token(&self.syntax, SyntaxKind::IDENT)
10256    }
10257    #[inline]
10258    pub fn partition_token(&self) -> Option<SyntaxToken> {
10259        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
10260    }
10261}
10262
10263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10264pub struct WithClause {
10265    pub(crate) syntax: SyntaxNode,
10266}
10267impl WithClause {
10268    #[inline]
10269    pub fn with_tables(&self) -> AstChildren<WithTable> {
10270        support::children(&self.syntax)
10271    }
10272    #[inline]
10273    pub fn recursive_token(&self) -> Option<SyntaxToken> {
10274        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
10275    }
10276    #[inline]
10277    pub fn with_token(&self) -> Option<SyntaxToken> {
10278        support::token(&self.syntax, SyntaxKind::WITH_KW)
10279    }
10280}
10281
10282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10283pub struct WithData {
10284    pub(crate) syntax: SyntaxNode,
10285}
10286impl WithData {
10287    #[inline]
10288    pub fn data_token(&self) -> Option<SyntaxToken> {
10289        support::token(&self.syntax, SyntaxKind::DATA_KW)
10290    }
10291    #[inline]
10292    pub fn with_token(&self) -> Option<SyntaxToken> {
10293        support::token(&self.syntax, SyntaxKind::WITH_KW)
10294    }
10295}
10296
10297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10298pub struct WithNoData {
10299    pub(crate) syntax: SyntaxNode,
10300}
10301impl WithNoData {
10302    #[inline]
10303    pub fn data_token(&self) -> Option<SyntaxToken> {
10304        support::token(&self.syntax, SyntaxKind::DATA_KW)
10305    }
10306    #[inline]
10307    pub fn no_token(&self) -> Option<SyntaxToken> {
10308        support::token(&self.syntax, SyntaxKind::NO_KW)
10309    }
10310    #[inline]
10311    pub fn with_token(&self) -> Option<SyntaxToken> {
10312        support::token(&self.syntax, SyntaxKind::WITH_KW)
10313    }
10314}
10315
10316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10317pub struct WithOptions {
10318    pub(crate) syntax: SyntaxNode,
10319}
10320impl WithOptions {
10321    #[inline]
10322    pub fn options_token(&self) -> Option<SyntaxToken> {
10323        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
10324    }
10325    #[inline]
10326    pub fn with_token(&self) -> Option<SyntaxToken> {
10327        support::token(&self.syntax, SyntaxKind::WITH_KW)
10328    }
10329}
10330
10331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10332pub struct WithParams {
10333    pub(crate) syntax: SyntaxNode,
10334}
10335impl WithParams {
10336    #[inline]
10337    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10338        support::token(&self.syntax, SyntaxKind::L_PAREN)
10339    }
10340    #[inline]
10341    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10342        support::token(&self.syntax, SyntaxKind::R_PAREN)
10343    }
10344    #[inline]
10345    pub fn with_token(&self) -> Option<SyntaxToken> {
10346        support::token(&self.syntax, SyntaxKind::WITH_KW)
10347    }
10348}
10349
10350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10351pub struct WithTable {
10352    pub(crate) syntax: SyntaxNode,
10353}
10354impl WithTable {
10355    #[inline]
10356    pub fn column_list(&self) -> Option<ColumnList> {
10357        support::child(&self.syntax)
10358    }
10359    #[inline]
10360    pub fn materialized(&self) -> Option<Materialized> {
10361        support::child(&self.syntax)
10362    }
10363    #[inline]
10364    pub fn name(&self) -> Option<Name> {
10365        support::child(&self.syntax)
10366    }
10367    #[inline]
10368    pub fn not_materialized(&self) -> Option<NotMaterialized> {
10369        support::child(&self.syntax)
10370    }
10371    #[inline]
10372    pub fn query(&self) -> Option<WithQuery> {
10373        support::child(&self.syntax)
10374    }
10375    #[inline]
10376    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10377        support::token(&self.syntax, SyntaxKind::L_PAREN)
10378    }
10379    #[inline]
10380    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10381        support::token(&self.syntax, SyntaxKind::R_PAREN)
10382    }
10383    #[inline]
10384    pub fn as_token(&self) -> Option<SyntaxToken> {
10385        support::token(&self.syntax, SyntaxKind::AS_KW)
10386    }
10387}
10388
10389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10390pub struct WithTimezone {
10391    pub(crate) syntax: SyntaxNode,
10392}
10393impl WithTimezone {
10394    #[inline]
10395    pub fn time_token(&self) -> Option<SyntaxToken> {
10396        support::token(&self.syntax, SyntaxKind::TIME_KW)
10397    }
10398    #[inline]
10399    pub fn with_token(&self) -> Option<SyntaxToken> {
10400        support::token(&self.syntax, SyntaxKind::WITH_KW)
10401    }
10402    #[inline]
10403    pub fn zone_token(&self) -> Option<SyntaxToken> {
10404        support::token(&self.syntax, SyntaxKind::ZONE_KW)
10405    }
10406}
10407
10408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10409pub struct WithinClause {
10410    pub(crate) syntax: SyntaxNode,
10411}
10412impl WithinClause {
10413    #[inline]
10414    pub fn order_by_clause(&self) -> Option<OrderByClause> {
10415        support::child(&self.syntax)
10416    }
10417    #[inline]
10418    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10419        support::token(&self.syntax, SyntaxKind::L_PAREN)
10420    }
10421    #[inline]
10422    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10423        support::token(&self.syntax, SyntaxKind::R_PAREN)
10424    }
10425    #[inline]
10426    pub fn group_token(&self) -> Option<SyntaxToken> {
10427        support::token(&self.syntax, SyntaxKind::GROUP_KW)
10428    }
10429    #[inline]
10430    pub fn within_token(&self) -> Option<SyntaxToken> {
10431        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
10432    }
10433}
10434
10435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10436pub struct WithoutOids {
10437    pub(crate) syntax: SyntaxNode,
10438}
10439impl WithoutOids {
10440    #[inline]
10441    pub fn oids_token(&self) -> Option<SyntaxToken> {
10442        support::token(&self.syntax, SyntaxKind::OIDS_KW)
10443    }
10444    #[inline]
10445    pub fn without_token(&self) -> Option<SyntaxToken> {
10446        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10447    }
10448}
10449
10450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10451pub struct WithoutTimezone {
10452    pub(crate) syntax: SyntaxNode,
10453}
10454impl WithoutTimezone {
10455    #[inline]
10456    pub fn time_token(&self) -> Option<SyntaxToken> {
10457        support::token(&self.syntax, SyntaxKind::TIME_KW)
10458    }
10459    #[inline]
10460    pub fn without_token(&self) -> Option<SyntaxToken> {
10461        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10462    }
10463    #[inline]
10464    pub fn zone_token(&self) -> Option<SyntaxToken> {
10465        support::token(&self.syntax, SyntaxKind::ZONE_KW)
10466    }
10467}
10468
10469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10470pub struct XmlColumnOption {
10471    pub(crate) syntax: SyntaxNode,
10472}
10473impl XmlColumnOption {
10474    #[inline]
10475    pub fn expr(&self) -> Option<Expr> {
10476        support::child(&self.syntax)
10477    }
10478    #[inline]
10479    pub fn default_token(&self) -> Option<SyntaxToken> {
10480        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10481    }
10482    #[inline]
10483    pub fn ident_token(&self) -> Option<SyntaxToken> {
10484        support::token(&self.syntax, SyntaxKind::IDENT)
10485    }
10486    #[inline]
10487    pub fn not_token(&self) -> Option<SyntaxToken> {
10488        support::token(&self.syntax, SyntaxKind::NOT_KW)
10489    }
10490    #[inline]
10491    pub fn null_token(&self) -> Option<SyntaxToken> {
10492        support::token(&self.syntax, SyntaxKind::NULL_KW)
10493    }
10494    #[inline]
10495    pub fn path_token(&self) -> Option<SyntaxToken> {
10496        support::token(&self.syntax, SyntaxKind::PATH_KW)
10497    }
10498}
10499
10500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10501pub struct XmlColumnOptionList {
10502    pub(crate) syntax: SyntaxNode,
10503}
10504impl XmlColumnOptionList {
10505    #[inline]
10506    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
10507        support::child(&self.syntax)
10508    }
10509    #[inline]
10510    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
10511        support::children(&self.syntax)
10512    }
10513}
10514
10515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10516pub struct XmlTableColumn {
10517    pub(crate) syntax: SyntaxNode,
10518}
10519impl XmlTableColumn {
10520    #[inline]
10521    pub fn name(&self) -> Option<Name> {
10522        support::child(&self.syntax)
10523    }
10524    #[inline]
10525    pub fn ty(&self) -> Option<Type> {
10526        support::child(&self.syntax)
10527    }
10528    #[inline]
10529    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
10530        support::child(&self.syntax)
10531    }
10532    #[inline]
10533    pub fn for_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::FOR_KW)
10535    }
10536    #[inline]
10537    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
10538        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
10539    }
10540}
10541
10542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10543pub struct XmlTableColumnList {
10544    pub(crate) syntax: SyntaxNode,
10545}
10546impl XmlTableColumnList {
10547    #[inline]
10548    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
10549        support::children(&self.syntax)
10550    }
10551}
10552
10553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10554pub enum AlterColumnOption {
10555    AddGenerated(AddGenerated),
10556    DropDefault(DropDefault),
10557    DropExpression(DropExpression),
10558    DropIdentity(DropIdentity),
10559    DropNotNull(DropNotNull),
10560    ResetOptions(ResetOptions),
10561    Restart(Restart),
10562    SetCompression(SetCompression),
10563    SetDefault(SetDefault),
10564    SetExpression(SetExpression),
10565    SetGenerated(SetGenerated),
10566    SetGeneratedOptions(SetGeneratedOptions),
10567    SetNotNull(SetNotNull),
10568    SetOptions(SetOptions),
10569    SetSequenceOption(SetSequenceOption),
10570    SetStatistics(SetStatistics),
10571    SetStorage(SetStorage),
10572    SetType(SetType),
10573}
10574
10575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10576pub enum AlterDomainAction {
10577    AddConstraint(AddConstraint),
10578    DropConstraint(DropConstraint),
10579    DropDefault(DropDefault),
10580    DropNotNull(DropNotNull),
10581    OwnerTo(OwnerTo),
10582    RenameConstraint(RenameConstraint),
10583    RenameTo(RenameTo),
10584    SetDefault(SetDefault),
10585    SetNotNull(SetNotNull),
10586    SetSchema(SetSchema),
10587    ValidateConstraint(ValidateConstraint),
10588}
10589
10590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10591pub enum AlterTableAction {
10592    AddColumn(AddColumn),
10593    AddConstraint(AddConstraint),
10594    AlterColumn(AlterColumn),
10595    AlterConstraint(AlterConstraint),
10596    AttachPartition(AttachPartition),
10597    ClusterOn(ClusterOn),
10598    DetachPartition(DetachPartition),
10599    DisableRls(DisableRls),
10600    DisableRule(DisableRule),
10601    DisableTrigger(DisableTrigger),
10602    DropColumn(DropColumn),
10603    DropConstraint(DropConstraint),
10604    EnableAlwaysRule(EnableAlwaysRule),
10605    EnableAlwaysTrigger(EnableAlwaysTrigger),
10606    EnableReplicaRule(EnableReplicaRule),
10607    EnableReplicaTrigger(EnableReplicaTrigger),
10608    EnableRls(EnableRls),
10609    EnableRule(EnableRule),
10610    EnableTrigger(EnableTrigger),
10611    ForceRls(ForceRls),
10612    Inherit(Inherit),
10613    NoForceRls(NoForceRls),
10614    NoInherit(NoInherit),
10615    NotOf(NotOf),
10616    OfType(OfType),
10617    OptionsList(OptionsList),
10618    OwnerTo(OwnerTo),
10619    RenameColumn(RenameColumn),
10620    RenameConstraint(RenameConstraint),
10621    RenameTable(RenameTable),
10622    ReplicaIdentity(ReplicaIdentity),
10623    ResetStorageParams(ResetStorageParams),
10624    SetAccessMethod(SetAccessMethod),
10625    SetLogged(SetLogged),
10626    SetSchema(SetSchema),
10627    SetStorageParams(SetStorageParams),
10628    SetTablespace(SetTablespace),
10629    SetUnlogged(SetUnlogged),
10630    SetWithoutCluster(SetWithoutCluster),
10631    SetWithoutOids(SetWithoutOids),
10632    ValidateConstraint(ValidateConstraint),
10633}
10634
10635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10636pub enum ColumnConstraint {
10637    CheckConstraint(CheckConstraint),
10638    ExcludeConstraint(ExcludeConstraint),
10639    NotNullConstraint(NotNullConstraint),
10640    PrimaryKeyConstraint(PrimaryKeyConstraint),
10641    ReferencesConstraint(ReferencesConstraint),
10642    UniqueConstraint(UniqueConstraint),
10643}
10644
10645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10646pub enum Constraint {
10647    CheckConstraint(CheckConstraint),
10648    DefaultConstraint(DefaultConstraint),
10649    ForeignKeyConstraint(ForeignKeyConstraint),
10650    GeneratedConstraint(GeneratedConstraint),
10651    NotNullConstraint(NotNullConstraint),
10652    NullConstraint(NullConstraint),
10653    PrimaryKeyConstraint(PrimaryKeyConstraint),
10654    ReferencesConstraint(ReferencesConstraint),
10655    UniqueConstraint(UniqueConstraint),
10656}
10657
10658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10659pub enum Expr {
10660    ArrayExpr(ArrayExpr),
10661    BetweenExpr(BetweenExpr),
10662    BinExpr(BinExpr),
10663    CallExpr(CallExpr),
10664    CaseExpr(CaseExpr),
10665    CastExpr(CastExpr),
10666    FieldExpr(FieldExpr),
10667    IndexExpr(IndexExpr),
10668    Literal(Literal),
10669    NameRef(NameRef),
10670    ParenExpr(ParenExpr),
10671    PostfixExpr(PostfixExpr),
10672    PrefixExpr(PrefixExpr),
10673    TupleExpr(TupleExpr),
10674}
10675
10676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10677pub enum FuncOption {
10678    AsFuncOption(AsFuncOption),
10679    BeginFuncOption(BeginFuncOption),
10680    CostFuncOption(CostFuncOption),
10681    LanguageFuncOption(LanguageFuncOption),
10682    LeakproofFuncOption(LeakproofFuncOption),
10683    ParallelFuncOption(ParallelFuncOption),
10684    ResetFuncOption(ResetFuncOption),
10685    ReturnFuncOption(ReturnFuncOption),
10686    RowsFuncOption(RowsFuncOption),
10687    SecurityFuncOption(SecurityFuncOption),
10688    SetFuncOption(SetFuncOption),
10689    StrictFuncOption(StrictFuncOption),
10690    SupportFuncOption(SupportFuncOption),
10691    TransformFuncOption(TransformFuncOption),
10692    VolatilityFuncOption(VolatilityFuncOption),
10693    WindowFuncOption(WindowFuncOption),
10694}
10695
10696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10697pub enum JoinType {
10698    JoinCross(JoinCross),
10699    JoinFull(JoinFull),
10700    JoinInner(JoinInner),
10701    JoinLeft(JoinLeft),
10702    JoinRight(JoinRight),
10703}
10704
10705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10706pub enum JsonBehavior {
10707    JsonBehaviorDefault(JsonBehaviorDefault),
10708    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
10709    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
10710    JsonBehaviorError(JsonBehaviorError),
10711    JsonBehaviorFalse(JsonBehaviorFalse),
10712    JsonBehaviorNull(JsonBehaviorNull),
10713    JsonBehaviorTrue(JsonBehaviorTrue),
10714    JsonBehaviorUnknown(JsonBehaviorUnknown),
10715}
10716
10717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10718pub enum MatchType {
10719    MatchFull(MatchFull),
10720    MatchPartial(MatchPartial),
10721    MatchSimple(MatchSimple),
10722}
10723
10724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10725pub enum MergeAction {
10726    MergeDelete(MergeDelete),
10727    MergeDoNothing(MergeDoNothing),
10728    MergeInsert(MergeInsert),
10729    MergeUpdate(MergeUpdate),
10730}
10731
10732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10733pub enum MergeWhenClause {
10734    MergeWhenMatched(MergeWhenMatched),
10735    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
10736    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
10737}
10738
10739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10740pub enum OnCommitAction {
10741    DeleteRows(DeleteRows),
10742    Drop(Drop),
10743    PreserveRows(PreserveRows),
10744}
10745
10746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10747pub enum ParamMode {
10748    ParamIn(ParamIn),
10749    ParamInOut(ParamInOut),
10750    ParamOut(ParamOut),
10751    ParamVariadic(ParamVariadic),
10752}
10753
10754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10755pub enum PartitionType {
10756    PartitionDefault(PartitionDefault),
10757    PartitionForValuesFrom(PartitionForValuesFrom),
10758    PartitionForValuesIn(PartitionForValuesIn),
10759    PartitionForValuesWith(PartitionForValuesWith),
10760}
10761
10762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10763pub enum RefAction {
10764    Cascade(Cascade),
10765    NoAction(NoAction),
10766    Restrict(Restrict),
10767    SetDefaultColumns(SetDefaultColumns),
10768    SetNullColumns(SetNullColumns),
10769}
10770
10771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10772pub enum Stmt {
10773    AlterAggregate(AlterAggregate),
10774    AlterCollation(AlterCollation),
10775    AlterConversion(AlterConversion),
10776    AlterDatabase(AlterDatabase),
10777    AlterDefaultPrivileges(AlterDefaultPrivileges),
10778    AlterDomain(AlterDomain),
10779    AlterEventTrigger(AlterEventTrigger),
10780    AlterExtension(AlterExtension),
10781    AlterForeignDataWrapper(AlterForeignDataWrapper),
10782    AlterForeignTable(AlterForeignTable),
10783    AlterFunction(AlterFunction),
10784    AlterGroup(AlterGroup),
10785    AlterIndex(AlterIndex),
10786    AlterLanguage(AlterLanguage),
10787    AlterLargeObject(AlterLargeObject),
10788    AlterMaterializedView(AlterMaterializedView),
10789    AlterOperator(AlterOperator),
10790    AlterOperatorClass(AlterOperatorClass),
10791    AlterOperatorFamily(AlterOperatorFamily),
10792    AlterPolicy(AlterPolicy),
10793    AlterProcedure(AlterProcedure),
10794    AlterPublication(AlterPublication),
10795    AlterRole(AlterRole),
10796    AlterRoutine(AlterRoutine),
10797    AlterRule(AlterRule),
10798    AlterSchema(AlterSchema),
10799    AlterSequence(AlterSequence),
10800    AlterServer(AlterServer),
10801    AlterStatistics(AlterStatistics),
10802    AlterSubscription(AlterSubscription),
10803    AlterSystem(AlterSystem),
10804    AlterTable(AlterTable),
10805    AlterTablespace(AlterTablespace),
10806    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
10807    AlterTextSearchDictionary(AlterTextSearchDictionary),
10808    AlterTextSearchParser(AlterTextSearchParser),
10809    AlterTextSearchTemplate(AlterTextSearchTemplate),
10810    AlterTrigger(AlterTrigger),
10811    AlterType(AlterType),
10812    AlterUser(AlterUser),
10813    AlterUserMapping(AlterUserMapping),
10814    AlterView(AlterView),
10815    Analyze(Analyze),
10816    Begin(Begin),
10817    Call(Call),
10818    Checkpoint(Checkpoint),
10819    Close(Close),
10820    Cluster(Cluster),
10821    CommentOn(CommentOn),
10822    Commit(Commit),
10823    Copy(Copy),
10824    CreateAccessMethod(CreateAccessMethod),
10825    CreateAggregate(CreateAggregate),
10826    CreateCast(CreateCast),
10827    CreateCollation(CreateCollation),
10828    CreateConversion(CreateConversion),
10829    CreateDatabase(CreateDatabase),
10830    CreateDomain(CreateDomain),
10831    CreateEventTrigger(CreateEventTrigger),
10832    CreateExtension(CreateExtension),
10833    CreateForeignDataWrapper(CreateForeignDataWrapper),
10834    CreateForeignTable(CreateForeignTable),
10835    CreateFunction(CreateFunction),
10836    CreateGroup(CreateGroup),
10837    CreateIndex(CreateIndex),
10838    CreateLanguage(CreateLanguage),
10839    CreateMaterializedView(CreateMaterializedView),
10840    CreateOperator(CreateOperator),
10841    CreateOperatorClass(CreateOperatorClass),
10842    CreateOperatorFamily(CreateOperatorFamily),
10843    CreatePolicy(CreatePolicy),
10844    CreateProcedure(CreateProcedure),
10845    CreatePublication(CreatePublication),
10846    CreateRole(CreateRole),
10847    CreateRule(CreateRule),
10848    CreateSchema(CreateSchema),
10849    CreateSequence(CreateSequence),
10850    CreateServer(CreateServer),
10851    CreateStatistics(CreateStatistics),
10852    CreateSubscription(CreateSubscription),
10853    CreateTable(CreateTable),
10854    CreateTableAs(CreateTableAs),
10855    CreateTablespace(CreateTablespace),
10856    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
10857    CreateTextSearchDictionary(CreateTextSearchDictionary),
10858    CreateTextSearchParser(CreateTextSearchParser),
10859    CreateTextSearchTemplate(CreateTextSearchTemplate),
10860    CreateTransform(CreateTransform),
10861    CreateTrigger(CreateTrigger),
10862    CreateType(CreateType),
10863    CreateUser(CreateUser),
10864    CreateUserMapping(CreateUserMapping),
10865    CreateView(CreateView),
10866    Deallocate(Deallocate),
10867    Declare(Declare),
10868    Delete(Delete),
10869    Discard(Discard),
10870    Do(Do),
10871    DropAccessMethod(DropAccessMethod),
10872    DropAggregate(DropAggregate),
10873    DropCast(DropCast),
10874    DropCollation(DropCollation),
10875    DropConversion(DropConversion),
10876    DropDatabase(DropDatabase),
10877    DropDomain(DropDomain),
10878    DropEventTrigger(DropEventTrigger),
10879    DropExtension(DropExtension),
10880    DropForeignDataWrapper(DropForeignDataWrapper),
10881    DropForeignTable(DropForeignTable),
10882    DropFunction(DropFunction),
10883    DropGroup(DropGroup),
10884    DropIndex(DropIndex),
10885    DropLanguage(DropLanguage),
10886    DropMaterializedView(DropMaterializedView),
10887    DropOperator(DropOperator),
10888    DropOperatorClass(DropOperatorClass),
10889    DropOperatorFamily(DropOperatorFamily),
10890    DropOwned(DropOwned),
10891    DropPolicy(DropPolicy),
10892    DropProcedure(DropProcedure),
10893    DropPublication(DropPublication),
10894    DropRole(DropRole),
10895    DropRoutine(DropRoutine),
10896    DropRule(DropRule),
10897    DropSchema(DropSchema),
10898    DropSequence(DropSequence),
10899    DropServer(DropServer),
10900    DropStatistics(DropStatistics),
10901    DropSubscription(DropSubscription),
10902    DropTable(DropTable),
10903    DropTablespace(DropTablespace),
10904    DropTextSearchConfig(DropTextSearchConfig),
10905    DropTextSearchDict(DropTextSearchDict),
10906    DropTextSearchParser(DropTextSearchParser),
10907    DropTextSearchTemplate(DropTextSearchTemplate),
10908    DropTransform(DropTransform),
10909    DropTrigger(DropTrigger),
10910    DropType(DropType),
10911    DropUser(DropUser),
10912    DropUserMapping(DropUserMapping),
10913    DropView(DropView),
10914    Execute(Execute),
10915    Explain(Explain),
10916    Fetch(Fetch),
10917    Grant(Grant),
10918    ImportForeignSchema(ImportForeignSchema),
10919    Insert(Insert),
10920    Listen(Listen),
10921    Load(Load),
10922    Lock(Lock),
10923    Merge(Merge),
10924    Move(Move),
10925    Notify(Notify),
10926    ParenSelect(ParenSelect),
10927    Prepare(Prepare),
10928    PrepareTransaction(PrepareTransaction),
10929    Reassign(Reassign),
10930    Refresh(Refresh),
10931    Reindex(Reindex),
10932    ReleaseSavepoint(ReleaseSavepoint),
10933    Reset(Reset),
10934    Revoke(Revoke),
10935    Rollback(Rollback),
10936    Savepoint(Savepoint),
10937    SecurityLabel(SecurityLabel),
10938    Select(Select),
10939    SelectInto(SelectInto),
10940    Set(Set),
10941    SetConstraints(SetConstraints),
10942    SetRole(SetRole),
10943    SetSessionAuth(SetSessionAuth),
10944    SetTransaction(SetTransaction),
10945    Show(Show),
10946    Table(Table),
10947    Truncate(Truncate),
10948    Unlisten(Unlisten),
10949    Update(Update),
10950    Vacuum(Vacuum),
10951    Values(Values),
10952}
10953
10954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10955pub enum TableArg {
10956    Column(Column),
10957    LikeClause(LikeClause),
10958    TableConstraint(TableConstraint),
10959}
10960
10961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10962pub enum TableConstraint {
10963    CheckConstraint(CheckConstraint),
10964    ExcludeConstraint(ExcludeConstraint),
10965    ForeignKeyConstraint(ForeignKeyConstraint),
10966    PrimaryKeyConstraint(PrimaryKeyConstraint),
10967    UniqueConstraint(UniqueConstraint),
10968}
10969
10970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10971pub enum Timezone {
10972    WithTimezone(WithTimezone),
10973    WithoutTimezone(WithoutTimezone),
10974}
10975
10976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10977pub enum TransactionMode {
10978    Deferrable(Deferrable),
10979    NotDeferrable(NotDeferrable),
10980    ReadCommitted(ReadCommitted),
10981    ReadOnly(ReadOnly),
10982    ReadUncommitted(ReadUncommitted),
10983    ReadWrite(ReadWrite),
10984    RepeatableRead(RepeatableRead),
10985    Serializable(Serializable),
10986}
10987
10988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10989pub enum Type {
10990    ArrayType(ArrayType),
10991    BitType(BitType),
10992    CharType(CharType),
10993    DoubleType(DoubleType),
10994    IntervalType(IntervalType),
10995    PathType(PathType),
10996    PercentType(PercentType),
10997    TimeType(TimeType),
10998}
10999
11000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11001pub enum WithQuery {
11002    Delete(Delete),
11003    Insert(Insert),
11004    Merge(Merge),
11005    Select(Select),
11006    Update(Update),
11007    Values(Values),
11008}
11009impl AstNode for AddColumn {
11010    #[inline]
11011    fn can_cast(kind: SyntaxKind) -> bool {
11012        kind == SyntaxKind::ADD_COLUMN
11013    }
11014    #[inline]
11015    fn cast(syntax: SyntaxNode) -> Option<Self> {
11016        if Self::can_cast(syntax.kind()) {
11017            Some(Self { syntax })
11018        } else {
11019            None
11020        }
11021    }
11022    #[inline]
11023    fn syntax(&self) -> &SyntaxNode {
11024        &self.syntax
11025    }
11026}
11027impl AstNode for AddConstraint {
11028    #[inline]
11029    fn can_cast(kind: SyntaxKind) -> bool {
11030        kind == SyntaxKind::ADD_CONSTRAINT
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 AddGenerated {
11046    #[inline]
11047    fn can_cast(kind: SyntaxKind) -> bool {
11048        kind == SyntaxKind::ADD_GENERATED
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 Aggregate {
11064    #[inline]
11065    fn can_cast(kind: SyntaxKind) -> bool {
11066        kind == SyntaxKind::AGGREGATE
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 Alias {
11082    #[inline]
11083    fn can_cast(kind: SyntaxKind) -> bool {
11084        kind == SyntaxKind::ALIAS
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 AlterAggregate {
11100    #[inline]
11101    fn can_cast(kind: SyntaxKind) -> bool {
11102        kind == SyntaxKind::ALTER_AGGREGATE
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 AlterCollation {
11118    #[inline]
11119    fn can_cast(kind: SyntaxKind) -> bool {
11120        kind == SyntaxKind::ALTER_COLLATION
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 AlterColumn {
11136    #[inline]
11137    fn can_cast(kind: SyntaxKind) -> bool {
11138        kind == SyntaxKind::ALTER_COLUMN
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 AlterConstraint {
11154    #[inline]
11155    fn can_cast(kind: SyntaxKind) -> bool {
11156        kind == SyntaxKind::ALTER_CONSTRAINT
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 AlterConversion {
11172    #[inline]
11173    fn can_cast(kind: SyntaxKind) -> bool {
11174        kind == SyntaxKind::ALTER_CONVERSION
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 AlterDatabase {
11190    #[inline]
11191    fn can_cast(kind: SyntaxKind) -> bool {
11192        kind == SyntaxKind::ALTER_DATABASE
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 AlterDefaultPrivileges {
11208    #[inline]
11209    fn can_cast(kind: SyntaxKind) -> bool {
11210        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
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 AlterDomain {
11226    #[inline]
11227    fn can_cast(kind: SyntaxKind) -> bool {
11228        kind == SyntaxKind::ALTER_DOMAIN
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 AlterEventTrigger {
11244    #[inline]
11245    fn can_cast(kind: SyntaxKind) -> bool {
11246        kind == SyntaxKind::ALTER_EVENT_TRIGGER
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 AlterExtension {
11262    #[inline]
11263    fn can_cast(kind: SyntaxKind) -> bool {
11264        kind == SyntaxKind::ALTER_EXTENSION
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 AlterForeignDataWrapper {
11280    #[inline]
11281    fn can_cast(kind: SyntaxKind) -> bool {
11282        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
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 AlterForeignTable {
11298    #[inline]
11299    fn can_cast(kind: SyntaxKind) -> bool {
11300        kind == SyntaxKind::ALTER_FOREIGN_TABLE
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 AlterFunction {
11316    #[inline]
11317    fn can_cast(kind: SyntaxKind) -> bool {
11318        kind == SyntaxKind::ALTER_FUNCTION
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 AlterGroup {
11334    #[inline]
11335    fn can_cast(kind: SyntaxKind) -> bool {
11336        kind == SyntaxKind::ALTER_GROUP
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 AlterIndex {
11352    #[inline]
11353    fn can_cast(kind: SyntaxKind) -> bool {
11354        kind == SyntaxKind::ALTER_INDEX
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 AlterLanguage {
11370    #[inline]
11371    fn can_cast(kind: SyntaxKind) -> bool {
11372        kind == SyntaxKind::ALTER_LANGUAGE
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 AlterLargeObject {
11388    #[inline]
11389    fn can_cast(kind: SyntaxKind) -> bool {
11390        kind == SyntaxKind::ALTER_LARGE_OBJECT
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 AlterMaterializedView {
11406    #[inline]
11407    fn can_cast(kind: SyntaxKind) -> bool {
11408        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
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 AlterOperator {
11424    #[inline]
11425    fn can_cast(kind: SyntaxKind) -> bool {
11426        kind == SyntaxKind::ALTER_OPERATOR
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 AlterOperatorClass {
11442    #[inline]
11443    fn can_cast(kind: SyntaxKind) -> bool {
11444        kind == SyntaxKind::ALTER_OPERATOR_CLASS
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 AlterOperatorFamily {
11460    #[inline]
11461    fn can_cast(kind: SyntaxKind) -> bool {
11462        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
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 AlterPolicy {
11478    #[inline]
11479    fn can_cast(kind: SyntaxKind) -> bool {
11480        kind == SyntaxKind::ALTER_POLICY
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 AlterProcedure {
11496    #[inline]
11497    fn can_cast(kind: SyntaxKind) -> bool {
11498        kind == SyntaxKind::ALTER_PROCEDURE
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 AlterPublication {
11514    #[inline]
11515    fn can_cast(kind: SyntaxKind) -> bool {
11516        kind == SyntaxKind::ALTER_PUBLICATION
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 AlterRole {
11532    #[inline]
11533    fn can_cast(kind: SyntaxKind) -> bool {
11534        kind == SyntaxKind::ALTER_ROLE
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 AlterRoutine {
11550    #[inline]
11551    fn can_cast(kind: SyntaxKind) -> bool {
11552        kind == SyntaxKind::ALTER_ROUTINE
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 AlterRule {
11568    #[inline]
11569    fn can_cast(kind: SyntaxKind) -> bool {
11570        kind == SyntaxKind::ALTER_RULE
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 AlterSchema {
11586    #[inline]
11587    fn can_cast(kind: SyntaxKind) -> bool {
11588        kind == SyntaxKind::ALTER_SCHEMA
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 AlterSequence {
11604    #[inline]
11605    fn can_cast(kind: SyntaxKind) -> bool {
11606        kind == SyntaxKind::ALTER_SEQUENCE
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 AlterServer {
11622    #[inline]
11623    fn can_cast(kind: SyntaxKind) -> bool {
11624        kind == SyntaxKind::ALTER_SERVER
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 AlterStatistics {
11640    #[inline]
11641    fn can_cast(kind: SyntaxKind) -> bool {
11642        kind == SyntaxKind::ALTER_STATISTICS
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 AlterSubscription {
11658    #[inline]
11659    fn can_cast(kind: SyntaxKind) -> bool {
11660        kind == SyntaxKind::ALTER_SUBSCRIPTION
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 AlterSystem {
11676    #[inline]
11677    fn can_cast(kind: SyntaxKind) -> bool {
11678        kind == SyntaxKind::ALTER_SYSTEM
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 AlterTable {
11694    #[inline]
11695    fn can_cast(kind: SyntaxKind) -> bool {
11696        kind == SyntaxKind::ALTER_TABLE
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 AlterTablespace {
11712    #[inline]
11713    fn can_cast(kind: SyntaxKind) -> bool {
11714        kind == SyntaxKind::ALTER_TABLESPACE
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 AlterTextSearchConfiguration {
11730    #[inline]
11731    fn can_cast(kind: SyntaxKind) -> bool {
11732        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
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 AlterTextSearchDictionary {
11748    #[inline]
11749    fn can_cast(kind: SyntaxKind) -> bool {
11750        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
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 AlterTextSearchParser {
11766    #[inline]
11767    fn can_cast(kind: SyntaxKind) -> bool {
11768        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
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 AlterTextSearchTemplate {
11784    #[inline]
11785    fn can_cast(kind: SyntaxKind) -> bool {
11786        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
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 AlterTrigger {
11802    #[inline]
11803    fn can_cast(kind: SyntaxKind) -> bool {
11804        kind == SyntaxKind::ALTER_TRIGGER
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 AlterType {
11820    #[inline]
11821    fn can_cast(kind: SyntaxKind) -> bool {
11822        kind == SyntaxKind::ALTER_TYPE
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 AlterUser {
11838    #[inline]
11839    fn can_cast(kind: SyntaxKind) -> bool {
11840        kind == SyntaxKind::ALTER_USER
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 AlterUserMapping {
11856    #[inline]
11857    fn can_cast(kind: SyntaxKind) -> bool {
11858        kind == SyntaxKind::ALTER_USER_MAPPING
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 AlterView {
11874    #[inline]
11875    fn can_cast(kind: SyntaxKind) -> bool {
11876        kind == SyntaxKind::ALTER_VIEW
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 Analyze {
11892    #[inline]
11893    fn can_cast(kind: SyntaxKind) -> bool {
11894        kind == SyntaxKind::ANALYZE
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 Arg {
11910    #[inline]
11911    fn can_cast(kind: SyntaxKind) -> bool {
11912        kind == SyntaxKind::ARG
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 ArgList {
11928    #[inline]
11929    fn can_cast(kind: SyntaxKind) -> bool {
11930        kind == SyntaxKind::ARG_LIST
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 ArrayExpr {
11946    #[inline]
11947    fn can_cast(kind: SyntaxKind) -> bool {
11948        kind == SyntaxKind::ARRAY_EXPR
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 ArrayType {
11964    #[inline]
11965    fn can_cast(kind: SyntaxKind) -> bool {
11966        kind == SyntaxKind::ARRAY_TYPE
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 AsFuncOption {
11982    #[inline]
11983    fn can_cast(kind: SyntaxKind) -> bool {
11984        kind == SyntaxKind::AS_FUNC_OPTION
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 AsName {
12000    #[inline]
12001    fn can_cast(kind: SyntaxKind) -> bool {
12002        kind == SyntaxKind::AS_NAME
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 AtTimeZone {
12018    #[inline]
12019    fn can_cast(kind: SyntaxKind) -> bool {
12020        kind == SyntaxKind::AT_TIME_ZONE
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 AttachPartition {
12036    #[inline]
12037    fn can_cast(kind: SyntaxKind) -> bool {
12038        kind == SyntaxKind::ATTACH_PARTITION
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 AttributeList {
12054    #[inline]
12055    fn can_cast(kind: SyntaxKind) -> bool {
12056        kind == SyntaxKind::ATTRIBUTE_LIST
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 AttributeOption {
12072    #[inline]
12073    fn can_cast(kind: SyntaxKind) -> bool {
12074        kind == SyntaxKind::ATTRIBUTE_OPTION
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 Begin {
12090    #[inline]
12091    fn can_cast(kind: SyntaxKind) -> bool {
12092        kind == SyntaxKind::BEGIN
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 BeginFuncOption {
12108    #[inline]
12109    fn can_cast(kind: SyntaxKind) -> bool {
12110        kind == SyntaxKind::BEGIN_FUNC_OPTION
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 BetweenExpr {
12126    #[inline]
12127    fn can_cast(kind: SyntaxKind) -> bool {
12128        kind == SyntaxKind::BETWEEN_EXPR
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 BinExpr {
12144    #[inline]
12145    fn can_cast(kind: SyntaxKind) -> bool {
12146        kind == SyntaxKind::BIN_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 BitType {
12162    #[inline]
12163    fn can_cast(kind: SyntaxKind) -> bool {
12164        kind == SyntaxKind::BIT_TYPE
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 Call {
12180    #[inline]
12181    fn can_cast(kind: SyntaxKind) -> bool {
12182        kind == SyntaxKind::CALL
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 CallExpr {
12198    #[inline]
12199    fn can_cast(kind: SyntaxKind) -> bool {
12200        kind == SyntaxKind::CALL_EXPR
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 Cascade {
12216    #[inline]
12217    fn can_cast(kind: SyntaxKind) -> bool {
12218        kind == SyntaxKind::CASCADE
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 CaseExpr {
12234    #[inline]
12235    fn can_cast(kind: SyntaxKind) -> bool {
12236        kind == SyntaxKind::CASE_EXPR
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 CastExpr {
12252    #[inline]
12253    fn can_cast(kind: SyntaxKind) -> bool {
12254        kind == SyntaxKind::CAST_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 CharType {
12270    #[inline]
12271    fn can_cast(kind: SyntaxKind) -> bool {
12272        kind == SyntaxKind::CHAR_TYPE
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 CheckConstraint {
12288    #[inline]
12289    fn can_cast(kind: SyntaxKind) -> bool {
12290        kind == SyntaxKind::CHECK_CONSTRAINT
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 Checkpoint {
12306    #[inline]
12307    fn can_cast(kind: SyntaxKind) -> bool {
12308        kind == SyntaxKind::CHECKPOINT
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 Close {
12324    #[inline]
12325    fn can_cast(kind: SyntaxKind) -> bool {
12326        kind == SyntaxKind::CLOSE
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 Cluster {
12342    #[inline]
12343    fn can_cast(kind: SyntaxKind) -> bool {
12344        kind == SyntaxKind::CLUSTER
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 ClusterOn {
12360    #[inline]
12361    fn can_cast(kind: SyntaxKind) -> bool {
12362        kind == SyntaxKind::CLUSTER_ON
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 Collate {
12378    #[inline]
12379    fn can_cast(kind: SyntaxKind) -> bool {
12380        kind == SyntaxKind::COLLATE
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 ColonColon {
12396    #[inline]
12397    fn can_cast(kind: SyntaxKind) -> bool {
12398        kind == SyntaxKind::COLON_COLON
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 ColonEq {
12414    #[inline]
12415    fn can_cast(kind: SyntaxKind) -> bool {
12416        kind == SyntaxKind::COLON_EQ
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 Column {
12432    #[inline]
12433    fn can_cast(kind: SyntaxKind) -> bool {
12434        kind == SyntaxKind::COLUMN
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 ColumnList {
12450    #[inline]
12451    fn can_cast(kind: SyntaxKind) -> bool {
12452        kind == SyntaxKind::COLUMN_LIST
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 CommentOn {
12468    #[inline]
12469    fn can_cast(kind: SyntaxKind) -> bool {
12470        kind == SyntaxKind::COMMENT_ON
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 Commit {
12486    #[inline]
12487    fn can_cast(kind: SyntaxKind) -> bool {
12488        kind == SyntaxKind::COMMIT
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 CompoundSelect {
12504    #[inline]
12505    fn can_cast(kind: SyntaxKind) -> bool {
12506        kind == SyntaxKind::COMPOUND_SELECT
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 CompressionMethod {
12522    #[inline]
12523    fn can_cast(kind: SyntaxKind) -> bool {
12524        kind == SyntaxKind::COMPRESSION_METHOD
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 ConstraintExclusion {
12540    #[inline]
12541    fn can_cast(kind: SyntaxKind) -> bool {
12542        kind == SyntaxKind::CONSTRAINT_EXCLUSION
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 ConstraintExclusionList {
12558    #[inline]
12559    fn can_cast(kind: SyntaxKind) -> bool {
12560        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
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 ConstraintIncludeClause {
12576    #[inline]
12577    fn can_cast(kind: SyntaxKind) -> bool {
12578        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
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 ConstraintIndexMethod {
12594    #[inline]
12595    fn can_cast(kind: SyntaxKind) -> bool {
12596        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
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 ConstraintIndexTablespace {
12612    #[inline]
12613    fn can_cast(kind: SyntaxKind) -> bool {
12614        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
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 ConstraintWhereClause {
12630    #[inline]
12631    fn can_cast(kind: SyntaxKind) -> bool {
12632        kind == SyntaxKind::CONSTRAINT_WHERE_CLAUSE
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 Copy {
12648    #[inline]
12649    fn can_cast(kind: SyntaxKind) -> bool {
12650        kind == SyntaxKind::COPY
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 CostFuncOption {
12666    #[inline]
12667    fn can_cast(kind: SyntaxKind) -> bool {
12668        kind == SyntaxKind::COST_FUNC_OPTION
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 CreateAccessMethod {
12684    #[inline]
12685    fn can_cast(kind: SyntaxKind) -> bool {
12686        kind == SyntaxKind::CREATE_ACCESS_METHOD
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 CreateAggregate {
12702    #[inline]
12703    fn can_cast(kind: SyntaxKind) -> bool {
12704        kind == SyntaxKind::CREATE_AGGREGATE
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 CreateCast {
12720    #[inline]
12721    fn can_cast(kind: SyntaxKind) -> bool {
12722        kind == SyntaxKind::CREATE_CAST
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 CreateCollation {
12738    #[inline]
12739    fn can_cast(kind: SyntaxKind) -> bool {
12740        kind == SyntaxKind::CREATE_COLLATION
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 CreateConversion {
12756    #[inline]
12757    fn can_cast(kind: SyntaxKind) -> bool {
12758        kind == SyntaxKind::CREATE_CONVERSION
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 CreateDatabase {
12774    #[inline]
12775    fn can_cast(kind: SyntaxKind) -> bool {
12776        kind == SyntaxKind::CREATE_DATABASE
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 CreateDomain {
12792    #[inline]
12793    fn can_cast(kind: SyntaxKind) -> bool {
12794        kind == SyntaxKind::CREATE_DOMAIN
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 CreateEventTrigger {
12810    #[inline]
12811    fn can_cast(kind: SyntaxKind) -> bool {
12812        kind == SyntaxKind::CREATE_EVENT_TRIGGER
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 CreateExtension {
12828    #[inline]
12829    fn can_cast(kind: SyntaxKind) -> bool {
12830        kind == SyntaxKind::CREATE_EXTENSION
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 CreateForeignDataWrapper {
12846    #[inline]
12847    fn can_cast(kind: SyntaxKind) -> bool {
12848        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
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 CreateForeignTable {
12864    #[inline]
12865    fn can_cast(kind: SyntaxKind) -> bool {
12866        kind == SyntaxKind::CREATE_FOREIGN_TABLE
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 CreateFunction {
12882    #[inline]
12883    fn can_cast(kind: SyntaxKind) -> bool {
12884        kind == SyntaxKind::CREATE_FUNCTION
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 CreateGroup {
12900    #[inline]
12901    fn can_cast(kind: SyntaxKind) -> bool {
12902        kind == SyntaxKind::CREATE_GROUP
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 CreateIndex {
12918    #[inline]
12919    fn can_cast(kind: SyntaxKind) -> bool {
12920        kind == SyntaxKind::CREATE_INDEX
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 CreateLanguage {
12936    #[inline]
12937    fn can_cast(kind: SyntaxKind) -> bool {
12938        kind == SyntaxKind::CREATE_LANGUAGE
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 CreateMaterializedView {
12954    #[inline]
12955    fn can_cast(kind: SyntaxKind) -> bool {
12956        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
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 CreateOperator {
12972    #[inline]
12973    fn can_cast(kind: SyntaxKind) -> bool {
12974        kind == SyntaxKind::CREATE_OPERATOR
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 CreateOperatorClass {
12990    #[inline]
12991    fn can_cast(kind: SyntaxKind) -> bool {
12992        kind == SyntaxKind::CREATE_OPERATOR_CLASS
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 CreateOperatorFamily {
13008    #[inline]
13009    fn can_cast(kind: SyntaxKind) -> bool {
13010        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
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 CreatePolicy {
13026    #[inline]
13027    fn can_cast(kind: SyntaxKind) -> bool {
13028        kind == SyntaxKind::CREATE_POLICY
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 CreateProcedure {
13044    #[inline]
13045    fn can_cast(kind: SyntaxKind) -> bool {
13046        kind == SyntaxKind::CREATE_PROCEDURE
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 CreatePublication {
13062    #[inline]
13063    fn can_cast(kind: SyntaxKind) -> bool {
13064        kind == SyntaxKind::CREATE_PUBLICATION
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 CreateRole {
13080    #[inline]
13081    fn can_cast(kind: SyntaxKind) -> bool {
13082        kind == SyntaxKind::CREATE_ROLE
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 CreateRule {
13098    #[inline]
13099    fn can_cast(kind: SyntaxKind) -> bool {
13100        kind == SyntaxKind::CREATE_RULE
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 CreateSchema {
13116    #[inline]
13117    fn can_cast(kind: SyntaxKind) -> bool {
13118        kind == SyntaxKind::CREATE_SCHEMA
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 CreateSequence {
13134    #[inline]
13135    fn can_cast(kind: SyntaxKind) -> bool {
13136        kind == SyntaxKind::CREATE_SEQUENCE
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 CreateServer {
13152    #[inline]
13153    fn can_cast(kind: SyntaxKind) -> bool {
13154        kind == SyntaxKind::CREATE_SERVER
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 CreateStatistics {
13170    #[inline]
13171    fn can_cast(kind: SyntaxKind) -> bool {
13172        kind == SyntaxKind::CREATE_STATISTICS
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 CreateSubscription {
13188    #[inline]
13189    fn can_cast(kind: SyntaxKind) -> bool {
13190        kind == SyntaxKind::CREATE_SUBSCRIPTION
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 CreateTable {
13206    #[inline]
13207    fn can_cast(kind: SyntaxKind) -> bool {
13208        kind == SyntaxKind::CREATE_TABLE
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 CreateTableAs {
13224    #[inline]
13225    fn can_cast(kind: SyntaxKind) -> bool {
13226        kind == SyntaxKind::CREATE_TABLE_AS
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 CreateTablespace {
13242    #[inline]
13243    fn can_cast(kind: SyntaxKind) -> bool {
13244        kind == SyntaxKind::CREATE_TABLESPACE
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 CreateTextSearchConfiguration {
13260    #[inline]
13261    fn can_cast(kind: SyntaxKind) -> bool {
13262        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
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 CreateTextSearchDictionary {
13278    #[inline]
13279    fn can_cast(kind: SyntaxKind) -> bool {
13280        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
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 CreateTextSearchParser {
13296    #[inline]
13297    fn can_cast(kind: SyntaxKind) -> bool {
13298        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
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 CreateTextSearchTemplate {
13314    #[inline]
13315    fn can_cast(kind: SyntaxKind) -> bool {
13316        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
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 CreateTransform {
13332    #[inline]
13333    fn can_cast(kind: SyntaxKind) -> bool {
13334        kind == SyntaxKind::CREATE_TRANSFORM
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 CreateTrigger {
13350    #[inline]
13351    fn can_cast(kind: SyntaxKind) -> bool {
13352        kind == SyntaxKind::CREATE_TRIGGER
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 CreateType {
13368    #[inline]
13369    fn can_cast(kind: SyntaxKind) -> bool {
13370        kind == SyntaxKind::CREATE_TYPE
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 CreateUser {
13386    #[inline]
13387    fn can_cast(kind: SyntaxKind) -> bool {
13388        kind == SyntaxKind::CREATE_USER
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 CreateUserMapping {
13404    #[inline]
13405    fn can_cast(kind: SyntaxKind) -> bool {
13406        kind == SyntaxKind::CREATE_USER_MAPPING
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 CreateView {
13422    #[inline]
13423    fn can_cast(kind: SyntaxKind) -> bool {
13424        kind == SyntaxKind::CREATE_VIEW
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 CustomOp {
13440    #[inline]
13441    fn can_cast(kind: SyntaxKind) -> bool {
13442        kind == SyntaxKind::CUSTOM_OP
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 Deallocate {
13458    #[inline]
13459    fn can_cast(kind: SyntaxKind) -> bool {
13460        kind == SyntaxKind::DEALLOCATE
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 Declare {
13476    #[inline]
13477    fn can_cast(kind: SyntaxKind) -> bool {
13478        kind == SyntaxKind::DECLARE
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 DefaultConstraint {
13494    #[inline]
13495    fn can_cast(kind: SyntaxKind) -> bool {
13496        kind == SyntaxKind::DEFAULT_CONSTRAINT
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 Deferrable {
13512    #[inline]
13513    fn can_cast(kind: SyntaxKind) -> bool {
13514        kind == SyntaxKind::DEFERRABLE
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 DeferrableConstraintOption {
13530    #[inline]
13531    fn can_cast(kind: SyntaxKind) -> bool {
13532        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
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 Delete {
13548    #[inline]
13549    fn can_cast(kind: SyntaxKind) -> bool {
13550        kind == SyntaxKind::DELETE
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 DeleteRows {
13566    #[inline]
13567    fn can_cast(kind: SyntaxKind) -> bool {
13568        kind == SyntaxKind::DELETE_ROWS
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 DetachPartition {
13584    #[inline]
13585    fn can_cast(kind: SyntaxKind) -> bool {
13586        kind == SyntaxKind::DETACH_PARTITION
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 DisableRls {
13602    #[inline]
13603    fn can_cast(kind: SyntaxKind) -> bool {
13604        kind == SyntaxKind::DISABLE_RLS
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 DisableRule {
13620    #[inline]
13621    fn can_cast(kind: SyntaxKind) -> bool {
13622        kind == SyntaxKind::DISABLE_RULE
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 DisableTrigger {
13638    #[inline]
13639    fn can_cast(kind: SyntaxKind) -> bool {
13640        kind == SyntaxKind::DISABLE_TRIGGER
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 Discard {
13656    #[inline]
13657    fn can_cast(kind: SyntaxKind) -> bool {
13658        kind == SyntaxKind::DISCARD
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 DistinctClause {
13674    #[inline]
13675    fn can_cast(kind: SyntaxKind) -> bool {
13676        kind == SyntaxKind::DISTINCT_CLAUSE
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 Do {
13692    #[inline]
13693    fn can_cast(kind: SyntaxKind) -> bool {
13694        kind == SyntaxKind::DO
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 DoubleType {
13710    #[inline]
13711    fn can_cast(kind: SyntaxKind) -> bool {
13712        kind == SyntaxKind::DOUBLE_TYPE
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 Drop {
13728    #[inline]
13729    fn can_cast(kind: SyntaxKind) -> bool {
13730        kind == SyntaxKind::DROP
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 DropAccessMethod {
13746    #[inline]
13747    fn can_cast(kind: SyntaxKind) -> bool {
13748        kind == SyntaxKind::DROP_ACCESS_METHOD
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 DropAggregate {
13764    #[inline]
13765    fn can_cast(kind: SyntaxKind) -> bool {
13766        kind == SyntaxKind::DROP_AGGREGATE
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 DropCast {
13782    #[inline]
13783    fn can_cast(kind: SyntaxKind) -> bool {
13784        kind == SyntaxKind::DROP_CAST
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 DropCollation {
13800    #[inline]
13801    fn can_cast(kind: SyntaxKind) -> bool {
13802        kind == SyntaxKind::DROP_COLLATION
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 DropColumn {
13818    #[inline]
13819    fn can_cast(kind: SyntaxKind) -> bool {
13820        kind == SyntaxKind::DROP_COLUMN
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 DropConstraint {
13836    #[inline]
13837    fn can_cast(kind: SyntaxKind) -> bool {
13838        kind == SyntaxKind::DROP_CONSTRAINT
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 DropConversion {
13854    #[inline]
13855    fn can_cast(kind: SyntaxKind) -> bool {
13856        kind == SyntaxKind::DROP_CONVERSION
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 DropDatabase {
13872    #[inline]
13873    fn can_cast(kind: SyntaxKind) -> bool {
13874        kind == SyntaxKind::DROP_DATABASE
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 DropDefault {
13890    #[inline]
13891    fn can_cast(kind: SyntaxKind) -> bool {
13892        kind == SyntaxKind::DROP_DEFAULT
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 DropDomain {
13908    #[inline]
13909    fn can_cast(kind: SyntaxKind) -> bool {
13910        kind == SyntaxKind::DROP_DOMAIN
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 DropEventTrigger {
13926    #[inline]
13927    fn can_cast(kind: SyntaxKind) -> bool {
13928        kind == SyntaxKind::DROP_EVENT_TRIGGER
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 DropExpression {
13944    #[inline]
13945    fn can_cast(kind: SyntaxKind) -> bool {
13946        kind == SyntaxKind::DROP_EXPRESSION
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 DropExtension {
13962    #[inline]
13963    fn can_cast(kind: SyntaxKind) -> bool {
13964        kind == SyntaxKind::DROP_EXTENSION
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 DropForeignDataWrapper {
13980    #[inline]
13981    fn can_cast(kind: SyntaxKind) -> bool {
13982        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
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 DropForeignTable {
13998    #[inline]
13999    fn can_cast(kind: SyntaxKind) -> bool {
14000        kind == SyntaxKind::DROP_FOREIGN_TABLE
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 DropFunction {
14016    #[inline]
14017    fn can_cast(kind: SyntaxKind) -> bool {
14018        kind == SyntaxKind::DROP_FUNCTION
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 DropGroup {
14034    #[inline]
14035    fn can_cast(kind: SyntaxKind) -> bool {
14036        kind == SyntaxKind::DROP_GROUP
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 DropIdentity {
14052    #[inline]
14053    fn can_cast(kind: SyntaxKind) -> bool {
14054        kind == SyntaxKind::DROP_IDENTITY
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 DropIndex {
14070    #[inline]
14071    fn can_cast(kind: SyntaxKind) -> bool {
14072        kind == SyntaxKind::DROP_INDEX
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 DropLanguage {
14088    #[inline]
14089    fn can_cast(kind: SyntaxKind) -> bool {
14090        kind == SyntaxKind::DROP_LANGUAGE
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 DropMaterializedView {
14106    #[inline]
14107    fn can_cast(kind: SyntaxKind) -> bool {
14108        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
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 DropNotNull {
14124    #[inline]
14125    fn can_cast(kind: SyntaxKind) -> bool {
14126        kind == SyntaxKind::DROP_NOT_NULL
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 DropOperator {
14142    #[inline]
14143    fn can_cast(kind: SyntaxKind) -> bool {
14144        kind == SyntaxKind::DROP_OPERATOR
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 DropOperatorClass {
14160    #[inline]
14161    fn can_cast(kind: SyntaxKind) -> bool {
14162        kind == SyntaxKind::DROP_OPERATOR_CLASS
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 DropOperatorFamily {
14178    #[inline]
14179    fn can_cast(kind: SyntaxKind) -> bool {
14180        kind == SyntaxKind::DROP_OPERATOR_FAMILY
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 DropOwned {
14196    #[inline]
14197    fn can_cast(kind: SyntaxKind) -> bool {
14198        kind == SyntaxKind::DROP_OWNED
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 DropPolicy {
14214    #[inline]
14215    fn can_cast(kind: SyntaxKind) -> bool {
14216        kind == SyntaxKind::DROP_POLICY
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 DropProcedure {
14232    #[inline]
14233    fn can_cast(kind: SyntaxKind) -> bool {
14234        kind == SyntaxKind::DROP_PROCEDURE
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 DropPublication {
14250    #[inline]
14251    fn can_cast(kind: SyntaxKind) -> bool {
14252        kind == SyntaxKind::DROP_PUBLICATION
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 DropRole {
14268    #[inline]
14269    fn can_cast(kind: SyntaxKind) -> bool {
14270        kind == SyntaxKind::DROP_ROLE
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 DropRoutine {
14286    #[inline]
14287    fn can_cast(kind: SyntaxKind) -> bool {
14288        kind == SyntaxKind::DROP_ROUTINE
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 DropRule {
14304    #[inline]
14305    fn can_cast(kind: SyntaxKind) -> bool {
14306        kind == SyntaxKind::DROP_RULE
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 DropSchema {
14322    #[inline]
14323    fn can_cast(kind: SyntaxKind) -> bool {
14324        kind == SyntaxKind::DROP_SCHEMA
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 DropSequence {
14340    #[inline]
14341    fn can_cast(kind: SyntaxKind) -> bool {
14342        kind == SyntaxKind::DROP_SEQUENCE
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 DropServer {
14358    #[inline]
14359    fn can_cast(kind: SyntaxKind) -> bool {
14360        kind == SyntaxKind::DROP_SERVER
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 DropStatistics {
14376    #[inline]
14377    fn can_cast(kind: SyntaxKind) -> bool {
14378        kind == SyntaxKind::DROP_STATISTICS
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 DropSubscription {
14394    #[inline]
14395    fn can_cast(kind: SyntaxKind) -> bool {
14396        kind == SyntaxKind::DROP_SUBSCRIPTION
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 DropTable {
14412    #[inline]
14413    fn can_cast(kind: SyntaxKind) -> bool {
14414        kind == SyntaxKind::DROP_TABLE
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 DropTablespace {
14430    #[inline]
14431    fn can_cast(kind: SyntaxKind) -> bool {
14432        kind == SyntaxKind::DROP_TABLESPACE
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 DropTextSearchConfig {
14448    #[inline]
14449    fn can_cast(kind: SyntaxKind) -> bool {
14450        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
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 DropTextSearchDict {
14466    #[inline]
14467    fn can_cast(kind: SyntaxKind) -> bool {
14468        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
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 DropTextSearchParser {
14484    #[inline]
14485    fn can_cast(kind: SyntaxKind) -> bool {
14486        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
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 DropTextSearchTemplate {
14502    #[inline]
14503    fn can_cast(kind: SyntaxKind) -> bool {
14504        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
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 DropTransform {
14520    #[inline]
14521    fn can_cast(kind: SyntaxKind) -> bool {
14522        kind == SyntaxKind::DROP_TRANSFORM
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 DropTrigger {
14538    #[inline]
14539    fn can_cast(kind: SyntaxKind) -> bool {
14540        kind == SyntaxKind::DROP_TRIGGER
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 DropType {
14556    #[inline]
14557    fn can_cast(kind: SyntaxKind) -> bool {
14558        kind == SyntaxKind::DROP_TYPE
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 DropUser {
14574    #[inline]
14575    fn can_cast(kind: SyntaxKind) -> bool {
14576        kind == SyntaxKind::DROP_USER
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 DropUserMapping {
14592    #[inline]
14593    fn can_cast(kind: SyntaxKind) -> bool {
14594        kind == SyntaxKind::DROP_USER_MAPPING
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 DropView {
14610    #[inline]
14611    fn can_cast(kind: SyntaxKind) -> bool {
14612        kind == SyntaxKind::DROP_VIEW
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 ElseClause {
14628    #[inline]
14629    fn can_cast(kind: SyntaxKind) -> bool {
14630        kind == SyntaxKind::ELSE_CLAUSE
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 EnableAlwaysRule {
14646    #[inline]
14647    fn can_cast(kind: SyntaxKind) -> bool {
14648        kind == SyntaxKind::ENABLE_ALWAYS_RULE
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 EnableAlwaysTrigger {
14664    #[inline]
14665    fn can_cast(kind: SyntaxKind) -> bool {
14666        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
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 EnableReplicaRule {
14682    #[inline]
14683    fn can_cast(kind: SyntaxKind) -> bool {
14684        kind == SyntaxKind::ENABLE_REPLICA_RULE
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 EnableReplicaTrigger {
14700    #[inline]
14701    fn can_cast(kind: SyntaxKind) -> bool {
14702        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
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 EnableRls {
14718    #[inline]
14719    fn can_cast(kind: SyntaxKind) -> bool {
14720        kind == SyntaxKind::ENABLE_RLS
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 EnableRule {
14736    #[inline]
14737    fn can_cast(kind: SyntaxKind) -> bool {
14738        kind == SyntaxKind::ENABLE_RULE
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 EnableTrigger {
14754    #[inline]
14755    fn can_cast(kind: SyntaxKind) -> bool {
14756        kind == SyntaxKind::ENABLE_TRIGGER
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 Enforced {
14772    #[inline]
14773    fn can_cast(kind: SyntaxKind) -> bool {
14774        kind == SyntaxKind::ENFORCED
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 ExcludeConstraint {
14790    #[inline]
14791    fn can_cast(kind: SyntaxKind) -> bool {
14792        kind == SyntaxKind::EXCLUDE_CONSTRAINT
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 Execute {
14808    #[inline]
14809    fn can_cast(kind: SyntaxKind) -> bool {
14810        kind == SyntaxKind::EXECUTE
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 Explain {
14826    #[inline]
14827    fn can_cast(kind: SyntaxKind) -> bool {
14828        kind == SyntaxKind::EXPLAIN
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 FatArrow {
14844    #[inline]
14845    fn can_cast(kind: SyntaxKind) -> bool {
14846        kind == SyntaxKind::FAT_ARROW
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 Fetch {
14862    #[inline]
14863    fn can_cast(kind: SyntaxKind) -> bool {
14864        kind == SyntaxKind::FETCH
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 FetchClause {
14880    #[inline]
14881    fn can_cast(kind: SyntaxKind) -> bool {
14882        kind == SyntaxKind::FETCH_CLAUSE
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 FieldExpr {
14898    #[inline]
14899    fn can_cast(kind: SyntaxKind) -> bool {
14900        kind == SyntaxKind::FIELD_EXPR
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 FilterClause {
14916    #[inline]
14917    fn can_cast(kind: SyntaxKind) -> bool {
14918        kind == SyntaxKind::FILTER_CLAUSE
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 ForceRls {
14934    #[inline]
14935    fn can_cast(kind: SyntaxKind) -> bool {
14936        kind == SyntaxKind::FORCE_RLS
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 ForeignKeyConstraint {
14952    #[inline]
14953    fn can_cast(kind: SyntaxKind) -> bool {
14954        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
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 FrameClause {
14970    #[inline]
14971    fn can_cast(kind: SyntaxKind) -> bool {
14972        kind == SyntaxKind::FRAME_CLAUSE
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 FromClause {
14988    #[inline]
14989    fn can_cast(kind: SyntaxKind) -> bool {
14990        kind == SyntaxKind::FROM_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 FromItem {
15006    #[inline]
15007    fn can_cast(kind: SyntaxKind) -> bool {
15008        kind == SyntaxKind::FROM_ITEM
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 FuncOptionList {
15024    #[inline]
15025    fn can_cast(kind: SyntaxKind) -> bool {
15026        kind == SyntaxKind::FUNC_OPTION_LIST
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 GeneratedConstraint {
15042    #[inline]
15043    fn can_cast(kind: SyntaxKind) -> bool {
15044        kind == SyntaxKind::GENERATED_CONSTRAINT
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 Grant {
15060    #[inline]
15061    fn can_cast(kind: SyntaxKind) -> bool {
15062        kind == SyntaxKind::GRANT
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 GroupByClause {
15078    #[inline]
15079    fn can_cast(kind: SyntaxKind) -> bool {
15080        kind == SyntaxKind::GROUP_BY_CLAUSE
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 GroupingCube {
15096    #[inline]
15097    fn can_cast(kind: SyntaxKind) -> bool {
15098        kind == SyntaxKind::GROUPING_CUBE
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 GroupingExpr {
15114    #[inline]
15115    fn can_cast(kind: SyntaxKind) -> bool {
15116        kind == SyntaxKind::GROUPING_EXPR
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 GroupingRollup {
15132    #[inline]
15133    fn can_cast(kind: SyntaxKind) -> bool {
15134        kind == SyntaxKind::GROUPING_ROLLUP
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 GroupingSets {
15150    #[inline]
15151    fn can_cast(kind: SyntaxKind) -> bool {
15152        kind == SyntaxKind::GROUPING_SETS
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 Gteq {
15168    #[inline]
15169    fn can_cast(kind: SyntaxKind) -> bool {
15170        kind == SyntaxKind::GTEQ
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 HavingClause {
15186    #[inline]
15187    fn can_cast(kind: SyntaxKind) -> bool {
15188        kind == SyntaxKind::HAVING_CLAUSE
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 IfExists {
15204    #[inline]
15205    fn can_cast(kind: SyntaxKind) -> bool {
15206        kind == SyntaxKind::IF_EXISTS
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 IfNotExists {
15222    #[inline]
15223    fn can_cast(kind: SyntaxKind) -> bool {
15224        kind == SyntaxKind::IF_NOT_EXISTS
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 ImportForeignSchema {
15240    #[inline]
15241    fn can_cast(kind: SyntaxKind) -> bool {
15242        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
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 IndexExpr {
15258    #[inline]
15259    fn can_cast(kind: SyntaxKind) -> bool {
15260        kind == SyntaxKind::INDEX_EXPR
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 Inherit {
15276    #[inline]
15277    fn can_cast(kind: SyntaxKind) -> bool {
15278        kind == SyntaxKind::INHERIT
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 Inherits {
15294    #[inline]
15295    fn can_cast(kind: SyntaxKind) -> bool {
15296        kind == SyntaxKind::INHERITS
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 InitiallyDeferredConstraintOption {
15312    #[inline]
15313    fn can_cast(kind: SyntaxKind) -> bool {
15314        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
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 InitiallyImmediateConstraintOption {
15330    #[inline]
15331    fn can_cast(kind: SyntaxKind) -> bool {
15332        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
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 Insert {
15348    #[inline]
15349    fn can_cast(kind: SyntaxKind) -> bool {
15350        kind == SyntaxKind::INSERT
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 IntervalType {
15366    #[inline]
15367    fn can_cast(kind: SyntaxKind) -> bool {
15368        kind == SyntaxKind::INTERVAL_TYPE
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 IntoClause {
15384    #[inline]
15385    fn can_cast(kind: SyntaxKind) -> bool {
15386        kind == SyntaxKind::INTO_CLAUSE
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 IsDistinctFrom {
15402    #[inline]
15403    fn can_cast(kind: SyntaxKind) -> bool {
15404        kind == SyntaxKind::IS_DISTINCT_FROM
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 IsJson {
15420    #[inline]
15421    fn can_cast(kind: SyntaxKind) -> bool {
15422        kind == SyntaxKind::IS_JSON
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 IsJsonArray {
15438    #[inline]
15439    fn can_cast(kind: SyntaxKind) -> bool {
15440        kind == SyntaxKind::IS_JSON_ARRAY
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 IsJsonObject {
15456    #[inline]
15457    fn can_cast(kind: SyntaxKind) -> bool {
15458        kind == SyntaxKind::IS_JSON_OBJECT
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 IsJsonScalar {
15474    #[inline]
15475    fn can_cast(kind: SyntaxKind) -> bool {
15476        kind == SyntaxKind::IS_JSON_SCALAR
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 IsJsonValue {
15492    #[inline]
15493    fn can_cast(kind: SyntaxKind) -> bool {
15494        kind == SyntaxKind::IS_JSON_VALUE
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 IsNormalized {
15510    #[inline]
15511    fn can_cast(kind: SyntaxKind) -> bool {
15512        kind == SyntaxKind::IS_NORMALIZED
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 IsNot {
15528    #[inline]
15529    fn can_cast(kind: SyntaxKind) -> bool {
15530        kind == SyntaxKind::IS_NOT
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 IsNotDistinctFrom {
15546    #[inline]
15547    fn can_cast(kind: SyntaxKind) -> bool {
15548        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
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 IsNotJson {
15564    #[inline]
15565    fn can_cast(kind: SyntaxKind) -> bool {
15566        kind == SyntaxKind::IS_NOT_JSON
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 IsNotJsonArray {
15582    #[inline]
15583    fn can_cast(kind: SyntaxKind) -> bool {
15584        kind == SyntaxKind::IS_NOT_JSON_ARRAY
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 IsNotJsonObject {
15600    #[inline]
15601    fn can_cast(kind: SyntaxKind) -> bool {
15602        kind == SyntaxKind::IS_NOT_JSON_OBJECT
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 IsNotJsonScalar {
15618    #[inline]
15619    fn can_cast(kind: SyntaxKind) -> bool {
15620        kind == SyntaxKind::IS_NOT_JSON_SCALAR
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 IsNotJsonValue {
15636    #[inline]
15637    fn can_cast(kind: SyntaxKind) -> bool {
15638        kind == SyntaxKind::IS_NOT_JSON_VALUE
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 IsNotNormalized {
15654    #[inline]
15655    fn can_cast(kind: SyntaxKind) -> bool {
15656        kind == SyntaxKind::IS_NOT_NORMALIZED
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 Join {
15672    #[inline]
15673    fn can_cast(kind: SyntaxKind) -> bool {
15674        kind == SyntaxKind::JOIN
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 JoinCross {
15690    #[inline]
15691    fn can_cast(kind: SyntaxKind) -> bool {
15692        kind == SyntaxKind::JOIN_CROSS
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 JoinExpr {
15708    #[inline]
15709    fn can_cast(kind: SyntaxKind) -> bool {
15710        kind == SyntaxKind::JOIN_EXPR
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 JoinFull {
15726    #[inline]
15727    fn can_cast(kind: SyntaxKind) -> bool {
15728        kind == SyntaxKind::JOIN_FULL
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 JoinInner {
15744    #[inline]
15745    fn can_cast(kind: SyntaxKind) -> bool {
15746        kind == SyntaxKind::JOIN_INNER
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 JoinLeft {
15762    #[inline]
15763    fn can_cast(kind: SyntaxKind) -> bool {
15764        kind == SyntaxKind::JOIN_LEFT
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 JoinRight {
15780    #[inline]
15781    fn can_cast(kind: SyntaxKind) -> bool {
15782        kind == SyntaxKind::JOIN_RIGHT
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 JoinUsingClause {
15798    #[inline]
15799    fn can_cast(kind: SyntaxKind) -> bool {
15800        kind == SyntaxKind::JOIN_USING_CLAUSE
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 JsonBehaviorDefault {
15816    #[inline]
15817    fn can_cast(kind: SyntaxKind) -> bool {
15818        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
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 JsonBehaviorEmptyArray {
15834    #[inline]
15835    fn can_cast(kind: SyntaxKind) -> bool {
15836        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
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 JsonBehaviorEmptyObject {
15852    #[inline]
15853    fn can_cast(kind: SyntaxKind) -> bool {
15854        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
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 JsonBehaviorError {
15870    #[inline]
15871    fn can_cast(kind: SyntaxKind) -> bool {
15872        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
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 JsonBehaviorFalse {
15888    #[inline]
15889    fn can_cast(kind: SyntaxKind) -> bool {
15890        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
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 JsonBehaviorNull {
15906    #[inline]
15907    fn can_cast(kind: SyntaxKind) -> bool {
15908        kind == SyntaxKind::JSON_BEHAVIOR_NULL
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 JsonBehaviorTrue {
15924    #[inline]
15925    fn can_cast(kind: SyntaxKind) -> bool {
15926        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
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 JsonBehaviorUnknown {
15942    #[inline]
15943    fn can_cast(kind: SyntaxKind) -> bool {
15944        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
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 JsonFormatClause {
15960    #[inline]
15961    fn can_cast(kind: SyntaxKind) -> bool {
15962        kind == SyntaxKind::JSON_FORMAT_CLAUSE
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 JsonKeyValue {
15978    #[inline]
15979    fn can_cast(kind: SyntaxKind) -> bool {
15980        kind == SyntaxKind::JSON_KEY_VALUE
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 JsonKeysUniqueClause {
15996    #[inline]
15997    fn can_cast(kind: SyntaxKind) -> bool {
15998        kind == SyntaxKind::JSON_KEYS_UNIQUE_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 JsonNullClause {
16014    #[inline]
16015    fn can_cast(kind: SyntaxKind) -> bool {
16016        kind == SyntaxKind::JSON_NULL_CLAUSE
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 JsonOnEmptyClause {
16032    #[inline]
16033    fn can_cast(kind: SyntaxKind) -> bool {
16034        kind == SyntaxKind::JSON_ON_EMPTY_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 JsonOnErrorClause {
16050    #[inline]
16051    fn can_cast(kind: SyntaxKind) -> bool {
16052        kind == SyntaxKind::JSON_ON_ERROR_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 JsonPassingArg {
16068    #[inline]
16069    fn can_cast(kind: SyntaxKind) -> bool {
16070        kind == SyntaxKind::JSON_PASSING_ARG
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 JsonPassingClause {
16086    #[inline]
16087    fn can_cast(kind: SyntaxKind) -> bool {
16088        kind == SyntaxKind::JSON_PASSING_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 JsonQuotesClause {
16104    #[inline]
16105    fn can_cast(kind: SyntaxKind) -> bool {
16106        kind == SyntaxKind::JSON_QUOTES_CLAUSE
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 JsonReturningClause {
16122    #[inline]
16123    fn can_cast(kind: SyntaxKind) -> bool {
16124        kind == SyntaxKind::JSON_RETURNING_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 JsonTableColumn {
16140    #[inline]
16141    fn can_cast(kind: SyntaxKind) -> bool {
16142        kind == SyntaxKind::JSON_TABLE_COLUMN
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 JsonTableColumnList {
16158    #[inline]
16159    fn can_cast(kind: SyntaxKind) -> bool {
16160        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
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 JsonValueExpr {
16176    #[inline]
16177    fn can_cast(kind: SyntaxKind) -> bool {
16178        kind == SyntaxKind::JSON_VALUE_EXPR
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 JsonWrapperBehaviorClause {
16194    #[inline]
16195    fn can_cast(kind: SyntaxKind) -> bool {
16196        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
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 LanguageFuncOption {
16212    #[inline]
16213    fn can_cast(kind: SyntaxKind) -> bool {
16214        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
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 LeakproofFuncOption {
16230    #[inline]
16231    fn can_cast(kind: SyntaxKind) -> bool {
16232        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
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 LikeClause {
16248    #[inline]
16249    fn can_cast(kind: SyntaxKind) -> bool {
16250        kind == SyntaxKind::LIKE_CLAUSE
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 LikeOption {
16266    #[inline]
16267    fn can_cast(kind: SyntaxKind) -> bool {
16268        kind == SyntaxKind::LIKE_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 LimitClause {
16284    #[inline]
16285    fn can_cast(kind: SyntaxKind) -> bool {
16286        kind == SyntaxKind::LIMIT_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 Listen {
16302    #[inline]
16303    fn can_cast(kind: SyntaxKind) -> bool {
16304        kind == SyntaxKind::LISTEN
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 Literal {
16320    #[inline]
16321    fn can_cast(kind: SyntaxKind) -> bool {
16322        kind == SyntaxKind::LITERAL
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 Load {
16338    #[inline]
16339    fn can_cast(kind: SyntaxKind) -> bool {
16340        kind == SyntaxKind::LOAD
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 Lock {
16356    #[inline]
16357    fn can_cast(kind: SyntaxKind) -> bool {
16358        kind == SyntaxKind::LOCK
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 LockingClause {
16374    #[inline]
16375    fn can_cast(kind: SyntaxKind) -> bool {
16376        kind == SyntaxKind::LOCKING_CLAUSE
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 Lteq {
16392    #[inline]
16393    fn can_cast(kind: SyntaxKind) -> bool {
16394        kind == SyntaxKind::LTEQ
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 MatchFull {
16410    #[inline]
16411    fn can_cast(kind: SyntaxKind) -> bool {
16412        kind == SyntaxKind::MATCH_FULL
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 MatchPartial {
16428    #[inline]
16429    fn can_cast(kind: SyntaxKind) -> bool {
16430        kind == SyntaxKind::MATCH_PARTIAL
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 MatchSimple {
16446    #[inline]
16447    fn can_cast(kind: SyntaxKind) -> bool {
16448        kind == SyntaxKind::MATCH_SIMPLE
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 Materialized {
16464    #[inline]
16465    fn can_cast(kind: SyntaxKind) -> bool {
16466        kind == SyntaxKind::MATERIALIZED
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 Merge {
16482    #[inline]
16483    fn can_cast(kind: SyntaxKind) -> bool {
16484        kind == SyntaxKind::MERGE
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 MergeDelete {
16500    #[inline]
16501    fn can_cast(kind: SyntaxKind) -> bool {
16502        kind == SyntaxKind::MERGE_DELETE
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 MergeDoNothing {
16518    #[inline]
16519    fn can_cast(kind: SyntaxKind) -> bool {
16520        kind == SyntaxKind::MERGE_DO_NOTHING
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 MergeInsert {
16536    #[inline]
16537    fn can_cast(kind: SyntaxKind) -> bool {
16538        kind == SyntaxKind::MERGE_INSERT
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 MergeUpdate {
16554    #[inline]
16555    fn can_cast(kind: SyntaxKind) -> bool {
16556        kind == SyntaxKind::MERGE_UPDATE
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 MergeWhenMatched {
16572    #[inline]
16573    fn can_cast(kind: SyntaxKind) -> bool {
16574        kind == SyntaxKind::MERGE_WHEN_MATCHED
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 MergeWhenNotMatchedSource {
16590    #[inline]
16591    fn can_cast(kind: SyntaxKind) -> bool {
16592        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
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 MergeWhenNotMatchedTarget {
16608    #[inline]
16609    fn can_cast(kind: SyntaxKind) -> bool {
16610        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
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 Move {
16626    #[inline]
16627    fn can_cast(kind: SyntaxKind) -> bool {
16628        kind == SyntaxKind::MOVE
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 Name {
16644    #[inline]
16645    fn can_cast(kind: SyntaxKind) -> bool {
16646        kind == SyntaxKind::NAME
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 NameRef {
16662    #[inline]
16663    fn can_cast(kind: SyntaxKind) -> bool {
16664        kind == SyntaxKind::NAME_REF
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 NamedArg {
16680    #[inline]
16681    fn can_cast(kind: SyntaxKind) -> bool {
16682        kind == SyntaxKind::NAMED_ARG
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 Neq {
16698    #[inline]
16699    fn can_cast(kind: SyntaxKind) -> bool {
16700        kind == SyntaxKind::NEQ
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 Neqb {
16716    #[inline]
16717    fn can_cast(kind: SyntaxKind) -> bool {
16718        kind == SyntaxKind::NEQB
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 NoAction {
16734    #[inline]
16735    fn can_cast(kind: SyntaxKind) -> bool {
16736        kind == SyntaxKind::NO_ACTION
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 NoForceRls {
16752    #[inline]
16753    fn can_cast(kind: SyntaxKind) -> bool {
16754        kind == SyntaxKind::NO_FORCE_RLS
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 NoInherit {
16770    #[inline]
16771    fn can_cast(kind: SyntaxKind) -> bool {
16772        kind == SyntaxKind::NO_INHERIT
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 NonStandardParam {
16788    #[inline]
16789    fn can_cast(kind: SyntaxKind) -> bool {
16790        kind == SyntaxKind::NON_STANDARD_PARAM
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 NotDeferrable {
16806    #[inline]
16807    fn can_cast(kind: SyntaxKind) -> bool {
16808        kind == SyntaxKind::NOT_DEFERRABLE
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 NotDeferrableConstraintOption {
16824    #[inline]
16825    fn can_cast(kind: SyntaxKind) -> bool {
16826        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
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 NotEnforced {
16842    #[inline]
16843    fn can_cast(kind: SyntaxKind) -> bool {
16844        kind == SyntaxKind::NOT_ENFORCED
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 NotIlike {
16860    #[inline]
16861    fn can_cast(kind: SyntaxKind) -> bool {
16862        kind == SyntaxKind::NOT_ILIKE
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 NotIn {
16878    #[inline]
16879    fn can_cast(kind: SyntaxKind) -> bool {
16880        kind == SyntaxKind::NOT_IN
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 NotLike {
16896    #[inline]
16897    fn can_cast(kind: SyntaxKind) -> bool {
16898        kind == SyntaxKind::NOT_LIKE
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 NotMaterialized {
16914    #[inline]
16915    fn can_cast(kind: SyntaxKind) -> bool {
16916        kind == SyntaxKind::NOT_MATERIALIZED
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 NotNullConstraint {
16932    #[inline]
16933    fn can_cast(kind: SyntaxKind) -> bool {
16934        kind == SyntaxKind::NOT_NULL_CONSTRAINT
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 NotOf {
16950    #[inline]
16951    fn can_cast(kind: SyntaxKind) -> bool {
16952        kind == SyntaxKind::NOT_OF
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 NotSimilarTo {
16968    #[inline]
16969    fn can_cast(kind: SyntaxKind) -> bool {
16970        kind == SyntaxKind::NOT_SIMILAR_TO
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 NotValid {
16986    #[inline]
16987    fn can_cast(kind: SyntaxKind) -> bool {
16988        kind == SyntaxKind::NOT_VALID
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 Notify {
17004    #[inline]
17005    fn can_cast(kind: SyntaxKind) -> bool {
17006        kind == SyntaxKind::NOTIFY
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 NullConstraint {
17022    #[inline]
17023    fn can_cast(kind: SyntaxKind) -> bool {
17024        kind == SyntaxKind::NULL_CONSTRAINT
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 NullsDistinct {
17040    #[inline]
17041    fn can_cast(kind: SyntaxKind) -> bool {
17042        kind == SyntaxKind::NULLS_DISTINCT
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 NullsFirst {
17058    #[inline]
17059    fn can_cast(kind: SyntaxKind) -> bool {
17060        kind == SyntaxKind::NULLS_FIRST
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 NullsLast {
17076    #[inline]
17077    fn can_cast(kind: SyntaxKind) -> bool {
17078        kind == SyntaxKind::NULLS_LAST
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 NullsNotDistinct {
17094    #[inline]
17095    fn can_cast(kind: SyntaxKind) -> bool {
17096        kind == SyntaxKind::NULLS_NOT_DISTINCT
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 OfType {
17112    #[inline]
17113    fn can_cast(kind: SyntaxKind) -> bool {
17114        kind == SyntaxKind::OF_TYPE
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 OffsetClause {
17130    #[inline]
17131    fn can_cast(kind: SyntaxKind) -> bool {
17132        kind == SyntaxKind::OFFSET_CLAUSE
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 OnClause {
17148    #[inline]
17149    fn can_cast(kind: SyntaxKind) -> bool {
17150        kind == SyntaxKind::ON_CLAUSE
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 OnCommit {
17166    #[inline]
17167    fn can_cast(kind: SyntaxKind) -> bool {
17168        kind == SyntaxKind::ON_COMMIT
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 OnDeleteAction {
17184    #[inline]
17185    fn can_cast(kind: SyntaxKind) -> bool {
17186        kind == SyntaxKind::ON_DELETE_ACTION
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 OnUpdateAction {
17202    #[inline]
17203    fn can_cast(kind: SyntaxKind) -> bool {
17204        kind == SyntaxKind::ON_UPDATE_ACTION
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 Op {
17220    #[inline]
17221    fn can_cast(kind: SyntaxKind) -> bool {
17222        kind == SyntaxKind::OP
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 OperatorCall {
17238    #[inline]
17239    fn can_cast(kind: SyntaxKind) -> bool {
17240        kind == SyntaxKind::OPERATOR_CALL
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 OptionsList {
17256    #[inline]
17257    fn can_cast(kind: SyntaxKind) -> bool {
17258        kind == SyntaxKind::OPTIONS_LIST
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 OrReplace {
17274    #[inline]
17275    fn can_cast(kind: SyntaxKind) -> bool {
17276        kind == SyntaxKind::OR_REPLACE
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 OrderByClause {
17292    #[inline]
17293    fn can_cast(kind: SyntaxKind) -> bool {
17294        kind == SyntaxKind::ORDER_BY_CLAUSE
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 OverClause {
17310    #[inline]
17311    fn can_cast(kind: SyntaxKind) -> bool {
17312        kind == SyntaxKind::OVER_CLAUSE
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 OwnerTo {
17328    #[inline]
17329    fn can_cast(kind: SyntaxKind) -> bool {
17330        kind == SyntaxKind::OWNER_TO
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 ParallelFuncOption {
17346    #[inline]
17347    fn can_cast(kind: SyntaxKind) -> bool {
17348        kind == SyntaxKind::PARALLEL_FUNC_OPTION
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 Param {
17364    #[inline]
17365    fn can_cast(kind: SyntaxKind) -> bool {
17366        kind == SyntaxKind::PARAM
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 ParamDefault {
17382    #[inline]
17383    fn can_cast(kind: SyntaxKind) -> bool {
17384        kind == SyntaxKind::PARAM_DEFAULT
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 ParamIn {
17400    #[inline]
17401    fn can_cast(kind: SyntaxKind) -> bool {
17402        kind == SyntaxKind::PARAM_IN
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 ParamInOut {
17418    #[inline]
17419    fn can_cast(kind: SyntaxKind) -> bool {
17420        kind == SyntaxKind::PARAM_IN_OUT
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 ParamList {
17436    #[inline]
17437    fn can_cast(kind: SyntaxKind) -> bool {
17438        kind == SyntaxKind::PARAM_LIST
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 ParamOut {
17454    #[inline]
17455    fn can_cast(kind: SyntaxKind) -> bool {
17456        kind == SyntaxKind::PARAM_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 ParamVariadic {
17472    #[inline]
17473    fn can_cast(kind: SyntaxKind) -> bool {
17474        kind == SyntaxKind::PARAM_VARIADIC
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 ParenExpr {
17490    #[inline]
17491    fn can_cast(kind: SyntaxKind) -> bool {
17492        kind == SyntaxKind::PAREN_EXPR
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 ParenSelect {
17508    #[inline]
17509    fn can_cast(kind: SyntaxKind) -> bool {
17510        kind == SyntaxKind::PAREN_SELECT
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 PartitionBy {
17526    #[inline]
17527    fn can_cast(kind: SyntaxKind) -> bool {
17528        kind == SyntaxKind::PARTITION_BY
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 PartitionDefault {
17544    #[inline]
17545    fn can_cast(kind: SyntaxKind) -> bool {
17546        kind == SyntaxKind::PARTITION_DEFAULT
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 PartitionForValuesFrom {
17562    #[inline]
17563    fn can_cast(kind: SyntaxKind) -> bool {
17564        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
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 PartitionForValuesIn {
17580    #[inline]
17581    fn can_cast(kind: SyntaxKind) -> bool {
17582        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
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 PartitionForValuesWith {
17598    #[inline]
17599    fn can_cast(kind: SyntaxKind) -> bool {
17600        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
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 PartitionItem {
17616    #[inline]
17617    fn can_cast(kind: SyntaxKind) -> bool {
17618        kind == SyntaxKind::PARTITION_ITEM
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 PartitionItemList {
17634    #[inline]
17635    fn can_cast(kind: SyntaxKind) -> bool {
17636        kind == SyntaxKind::PARTITION_ITEM_LIST
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 PartitionOf {
17652    #[inline]
17653    fn can_cast(kind: SyntaxKind) -> bool {
17654        kind == SyntaxKind::PARTITION_OF
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 Path {
17670    #[inline]
17671    fn can_cast(kind: SyntaxKind) -> bool {
17672        kind == SyntaxKind::PATH
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 PathSegment {
17688    #[inline]
17689    fn can_cast(kind: SyntaxKind) -> bool {
17690        kind == SyntaxKind::PATH_SEGMENT
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 PathType {
17706    #[inline]
17707    fn can_cast(kind: SyntaxKind) -> bool {
17708        kind == SyntaxKind::PATH_TYPE
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 PercentType {
17724    #[inline]
17725    fn can_cast(kind: SyntaxKind) -> bool {
17726        kind == SyntaxKind::PERCENT_TYPE
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 PercentTypeClause {
17742    #[inline]
17743    fn can_cast(kind: SyntaxKind) -> bool {
17744        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
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 PostfixExpr {
17760    #[inline]
17761    fn can_cast(kind: SyntaxKind) -> bool {
17762        kind == SyntaxKind::POSTFIX_EXPR
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 PrefixExpr {
17778    #[inline]
17779    fn can_cast(kind: SyntaxKind) -> bool {
17780        kind == SyntaxKind::PREFIX_EXPR
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 Prepare {
17796    #[inline]
17797    fn can_cast(kind: SyntaxKind) -> bool {
17798        kind == SyntaxKind::PREPARE
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 PrepareTransaction {
17814    #[inline]
17815    fn can_cast(kind: SyntaxKind) -> bool {
17816        kind == SyntaxKind::PREPARE_TRANSACTION
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 PreserveRows {
17832    #[inline]
17833    fn can_cast(kind: SyntaxKind) -> bool {
17834        kind == SyntaxKind::PRESERVE_ROWS
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 PrimaryKeyConstraint {
17850    #[inline]
17851    fn can_cast(kind: SyntaxKind) -> bool {
17852        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
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 ReadCommitted {
17868    #[inline]
17869    fn can_cast(kind: SyntaxKind) -> bool {
17870        kind == SyntaxKind::READ_COMMITTED
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 ReadOnly {
17886    #[inline]
17887    fn can_cast(kind: SyntaxKind) -> bool {
17888        kind == SyntaxKind::READ_ONLY
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 ReadUncommitted {
17904    #[inline]
17905    fn can_cast(kind: SyntaxKind) -> bool {
17906        kind == SyntaxKind::READ_UNCOMMITTED
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 ReadWrite {
17922    #[inline]
17923    fn can_cast(kind: SyntaxKind) -> bool {
17924        kind == SyntaxKind::READ_WRITE
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 Reassign {
17940    #[inline]
17941    fn can_cast(kind: SyntaxKind) -> bool {
17942        kind == SyntaxKind::REASSIGN
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 ReferencesConstraint {
17958    #[inline]
17959    fn can_cast(kind: SyntaxKind) -> bool {
17960        kind == SyntaxKind::REFERENCES_CONSTRAINT
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 Refresh {
17976    #[inline]
17977    fn can_cast(kind: SyntaxKind) -> bool {
17978        kind == SyntaxKind::REFRESH
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 Reindex {
17994    #[inline]
17995    fn can_cast(kind: SyntaxKind) -> bool {
17996        kind == SyntaxKind::REINDEX
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 RelationName {
18012    #[inline]
18013    fn can_cast(kind: SyntaxKind) -> bool {
18014        kind == SyntaxKind::RELATION_NAME
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 ReleaseSavepoint {
18030    #[inline]
18031    fn can_cast(kind: SyntaxKind) -> bool {
18032        kind == SyntaxKind::RELEASE_SAVEPOINT
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 RenameColumn {
18048    #[inline]
18049    fn can_cast(kind: SyntaxKind) -> bool {
18050        kind == SyntaxKind::RENAME_COLUMN
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 RenameConstraint {
18066    #[inline]
18067    fn can_cast(kind: SyntaxKind) -> bool {
18068        kind == SyntaxKind::RENAME_CONSTRAINT
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 RenameTable {
18084    #[inline]
18085    fn can_cast(kind: SyntaxKind) -> bool {
18086        kind == SyntaxKind::RENAME_TABLE
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 RenameTo {
18102    #[inline]
18103    fn can_cast(kind: SyntaxKind) -> bool {
18104        kind == SyntaxKind::RENAME_TO
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 RepeatableRead {
18120    #[inline]
18121    fn can_cast(kind: SyntaxKind) -> bool {
18122        kind == SyntaxKind::REPEATABLE_READ
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 ReplicaIdentity {
18138    #[inline]
18139    fn can_cast(kind: SyntaxKind) -> bool {
18140        kind == SyntaxKind::REPLICA_IDENTITY
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 Reset {
18156    #[inline]
18157    fn can_cast(kind: SyntaxKind) -> bool {
18158        kind == SyntaxKind::RESET
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 ResetFuncOption {
18174    #[inline]
18175    fn can_cast(kind: SyntaxKind) -> bool {
18176        kind == SyntaxKind::RESET_FUNC_OPTION
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 ResetOptions {
18192    #[inline]
18193    fn can_cast(kind: SyntaxKind) -> bool {
18194        kind == SyntaxKind::RESET_OPTIONS
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 ResetStorageParams {
18210    #[inline]
18211    fn can_cast(kind: SyntaxKind) -> bool {
18212        kind == SyntaxKind::RESET_STORAGE_PARAMS
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 Restart {
18228    #[inline]
18229    fn can_cast(kind: SyntaxKind) -> bool {
18230        kind == SyntaxKind::RESTART
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 Restrict {
18246    #[inline]
18247    fn can_cast(kind: SyntaxKind) -> bool {
18248        kind == SyntaxKind::RESTRICT
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 RetType {
18264    #[inline]
18265    fn can_cast(kind: SyntaxKind) -> bool {
18266        kind == SyntaxKind::RET_TYPE
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 ReturnFuncOption {
18282    #[inline]
18283    fn can_cast(kind: SyntaxKind) -> bool {
18284        kind == SyntaxKind::RETURN_FUNC_OPTION
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 ReturningClause {
18300    #[inline]
18301    fn can_cast(kind: SyntaxKind) -> bool {
18302        kind == SyntaxKind::RETURNING_CLAUSE
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 Revoke {
18318    #[inline]
18319    fn can_cast(kind: SyntaxKind) -> bool {
18320        kind == SyntaxKind::REVOKE
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 Role {
18336    #[inline]
18337    fn can_cast(kind: SyntaxKind) -> bool {
18338        kind == SyntaxKind::ROLE
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 Rollback {
18354    #[inline]
18355    fn can_cast(kind: SyntaxKind) -> bool {
18356        kind == SyntaxKind::ROLLBACK
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 Row {
18372    #[inline]
18373    fn can_cast(kind: SyntaxKind) -> bool {
18374        kind == SyntaxKind::ROW
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 RowList {
18390    #[inline]
18391    fn can_cast(kind: SyntaxKind) -> bool {
18392        kind == SyntaxKind::ROW_LIST
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 RowsFuncOption {
18408    #[inline]
18409    fn can_cast(kind: SyntaxKind) -> bool {
18410        kind == SyntaxKind::ROWS_FUNC_OPTION
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 Savepoint {
18426    #[inline]
18427    fn can_cast(kind: SyntaxKind) -> bool {
18428        kind == SyntaxKind::SAVEPOINT
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 SecurityFuncOption {
18444    #[inline]
18445    fn can_cast(kind: SyntaxKind) -> bool {
18446        kind == SyntaxKind::SECURITY_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 SecurityLabel {
18462    #[inline]
18463    fn can_cast(kind: SyntaxKind) -> bool {
18464        kind == SyntaxKind::SECURITY_LABEL
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 Select {
18480    #[inline]
18481    fn can_cast(kind: SyntaxKind) -> bool {
18482        kind == SyntaxKind::SELECT
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 SelectClause {
18498    #[inline]
18499    fn can_cast(kind: SyntaxKind) -> bool {
18500        kind == SyntaxKind::SELECT_CLAUSE
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 SelectInto {
18516    #[inline]
18517    fn can_cast(kind: SyntaxKind) -> bool {
18518        kind == SyntaxKind::SELECT_INTO
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 SequenceOptionList {
18534    #[inline]
18535    fn can_cast(kind: SyntaxKind) -> bool {
18536        kind == SyntaxKind::SEQUENCE_OPTION_LIST
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 Serializable {
18552    #[inline]
18553    fn can_cast(kind: SyntaxKind) -> bool {
18554        kind == SyntaxKind::SERIALIZABLE
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 Set {
18570    #[inline]
18571    fn can_cast(kind: SyntaxKind) -> bool {
18572        kind == SyntaxKind::SET
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 SetAccessMethod {
18588    #[inline]
18589    fn can_cast(kind: SyntaxKind) -> bool {
18590        kind == SyntaxKind::SET_ACCESS_METHOD
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 SetCompression {
18606    #[inline]
18607    fn can_cast(kind: SyntaxKind) -> bool {
18608        kind == SyntaxKind::SET_COMPRESSION
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 SetConstraints {
18624    #[inline]
18625    fn can_cast(kind: SyntaxKind) -> bool {
18626        kind == SyntaxKind::SET_CONSTRAINTS
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 SetDefault {
18642    #[inline]
18643    fn can_cast(kind: SyntaxKind) -> bool {
18644        kind == SyntaxKind::SET_DEFAULT
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 SetDefaultColumns {
18660    #[inline]
18661    fn can_cast(kind: SyntaxKind) -> bool {
18662        kind == SyntaxKind::SET_DEFAULT_COLUMNS
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 SetExpression {
18678    #[inline]
18679    fn can_cast(kind: SyntaxKind) -> bool {
18680        kind == SyntaxKind::SET_EXPRESSION
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 SetFuncOption {
18696    #[inline]
18697    fn can_cast(kind: SyntaxKind) -> bool {
18698        kind == SyntaxKind::SET_FUNC_OPTION
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 SetGenerated {
18714    #[inline]
18715    fn can_cast(kind: SyntaxKind) -> bool {
18716        kind == SyntaxKind::SET_GENERATED
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 SetGeneratedOptions {
18732    #[inline]
18733    fn can_cast(kind: SyntaxKind) -> bool {
18734        kind == SyntaxKind::SET_GENERATED_OPTIONS
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 SetLogged {
18750    #[inline]
18751    fn can_cast(kind: SyntaxKind) -> bool {
18752        kind == SyntaxKind::SET_LOGGED
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 SetNotNull {
18768    #[inline]
18769    fn can_cast(kind: SyntaxKind) -> bool {
18770        kind == SyntaxKind::SET_NOT_NULL
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 SetNullColumns {
18786    #[inline]
18787    fn can_cast(kind: SyntaxKind) -> bool {
18788        kind == SyntaxKind::SET_NULL_COLUMNS
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 SetOptions {
18804    #[inline]
18805    fn can_cast(kind: SyntaxKind) -> bool {
18806        kind == SyntaxKind::SET_OPTIONS
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 SetOptionsList {
18822    #[inline]
18823    fn can_cast(kind: SyntaxKind) -> bool {
18824        kind == SyntaxKind::SET_OPTIONS_LIST
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 SetRole {
18840    #[inline]
18841    fn can_cast(kind: SyntaxKind) -> bool {
18842        kind == SyntaxKind::SET_ROLE
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 SetSchema {
18858    #[inline]
18859    fn can_cast(kind: SyntaxKind) -> bool {
18860        kind == SyntaxKind::SET_SCHEMA
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 SetSequenceOption {
18876    #[inline]
18877    fn can_cast(kind: SyntaxKind) -> bool {
18878        kind == SyntaxKind::SET_SEQUENCE_OPTION
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 SetSessionAuth {
18894    #[inline]
18895    fn can_cast(kind: SyntaxKind) -> bool {
18896        kind == SyntaxKind::SET_SESSION_AUTH
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 SetStatistics {
18912    #[inline]
18913    fn can_cast(kind: SyntaxKind) -> bool {
18914        kind == SyntaxKind::SET_STATISTICS
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 SetStorage {
18930    #[inline]
18931    fn can_cast(kind: SyntaxKind) -> bool {
18932        kind == SyntaxKind::SET_STORAGE
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 SetStorageParams {
18948    #[inline]
18949    fn can_cast(kind: SyntaxKind) -> bool {
18950        kind == SyntaxKind::SET_STORAGE_PARAMS
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 SetTablespace {
18966    #[inline]
18967    fn can_cast(kind: SyntaxKind) -> bool {
18968        kind == SyntaxKind::SET_TABLESPACE
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 SetTransaction {
18984    #[inline]
18985    fn can_cast(kind: SyntaxKind) -> bool {
18986        kind == SyntaxKind::SET_TRANSACTION
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 SetType {
19002    #[inline]
19003    fn can_cast(kind: SyntaxKind) -> bool {
19004        kind == SyntaxKind::SET_TYPE
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 SetUnlogged {
19020    #[inline]
19021    fn can_cast(kind: SyntaxKind) -> bool {
19022        kind == SyntaxKind::SET_UNLOGGED
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 SetWithoutCluster {
19038    #[inline]
19039    fn can_cast(kind: SyntaxKind) -> bool {
19040        kind == SyntaxKind::SET_WITHOUT_CLUSTER
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 SetWithoutOids {
19056    #[inline]
19057    fn can_cast(kind: SyntaxKind) -> bool {
19058        kind == SyntaxKind::SET_WITHOUT_OIDS
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 Show {
19074    #[inline]
19075    fn can_cast(kind: SyntaxKind) -> bool {
19076        kind == SyntaxKind::SHOW
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 SimilarTo {
19092    #[inline]
19093    fn can_cast(kind: SyntaxKind) -> bool {
19094        kind == SyntaxKind::SIMILAR_TO
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 SortAsc {
19110    #[inline]
19111    fn can_cast(kind: SyntaxKind) -> bool {
19112        kind == SyntaxKind::SORT_ASC
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 SortBy {
19128    #[inline]
19129    fn can_cast(kind: SyntaxKind) -> bool {
19130        kind == SyntaxKind::SORT_BY
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 SortDesc {
19146    #[inline]
19147    fn can_cast(kind: SyntaxKind) -> bool {
19148        kind == SyntaxKind::SORT_DESC
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 SortUsing {
19164    #[inline]
19165    fn can_cast(kind: SyntaxKind) -> bool {
19166        kind == SyntaxKind::SORT_USING
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 SourceFile {
19182    #[inline]
19183    fn can_cast(kind: SyntaxKind) -> bool {
19184        kind == SyntaxKind::SOURCE_FILE
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 Storage {
19200    #[inline]
19201    fn can_cast(kind: SyntaxKind) -> bool {
19202        kind == SyntaxKind::STORAGE
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 StrictFuncOption {
19218    #[inline]
19219    fn can_cast(kind: SyntaxKind) -> bool {
19220        kind == SyntaxKind::STRICT_FUNC_OPTION
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 SupportFuncOption {
19236    #[inline]
19237    fn can_cast(kind: SyntaxKind) -> bool {
19238        kind == SyntaxKind::SUPPORT_FUNC_OPTION
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 Table {
19254    #[inline]
19255    fn can_cast(kind: SyntaxKind) -> bool {
19256        kind == SyntaxKind::TABLE
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 TableArgList {
19272    #[inline]
19273    fn can_cast(kind: SyntaxKind) -> bool {
19274        kind == SyntaxKind::TABLE_ARG_LIST
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 TableList {
19290    #[inline]
19291    fn can_cast(kind: SyntaxKind) -> bool {
19292        kind == SyntaxKind::TABLE_LIST
19293    }
19294    #[inline]
19295    fn cast(syntax: SyntaxNode) -> Option<Self> {
19296        if Self::can_cast(syntax.kind()) {
19297            Some(Self { syntax })
19298        } else {
19299            None
19300        }
19301    }
19302    #[inline]
19303    fn syntax(&self) -> &SyntaxNode {
19304        &self.syntax
19305    }
19306}
19307impl AstNode for Tablespace {
19308    #[inline]
19309    fn can_cast(kind: SyntaxKind) -> bool {
19310        kind == SyntaxKind::TABLESPACE
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 Target {
19326    #[inline]
19327    fn can_cast(kind: SyntaxKind) -> bool {
19328        kind == SyntaxKind::TARGET
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 TargetList {
19344    #[inline]
19345    fn can_cast(kind: SyntaxKind) -> bool {
19346        kind == SyntaxKind::TARGET_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 TimeType {
19362    #[inline]
19363    fn can_cast(kind: SyntaxKind) -> bool {
19364        kind == SyntaxKind::TIME_TYPE
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 TransactionModeList {
19380    #[inline]
19381    fn can_cast(kind: SyntaxKind) -> bool {
19382        kind == SyntaxKind::TRANSACTION_MODE_LIST
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 TransformFuncOption {
19398    #[inline]
19399    fn can_cast(kind: SyntaxKind) -> bool {
19400        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
19401    }
19402    #[inline]
19403    fn cast(syntax: SyntaxNode) -> Option<Self> {
19404        if Self::can_cast(syntax.kind()) {
19405            Some(Self { syntax })
19406        } else {
19407            None
19408        }
19409    }
19410    #[inline]
19411    fn syntax(&self) -> &SyntaxNode {
19412        &self.syntax
19413    }
19414}
19415impl AstNode for Truncate {
19416    #[inline]
19417    fn can_cast(kind: SyntaxKind) -> bool {
19418        kind == SyntaxKind::TRUNCATE
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 TupleExpr {
19434    #[inline]
19435    fn can_cast(kind: SyntaxKind) -> bool {
19436        kind == SyntaxKind::TUPLE_EXPR
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 UnicodeNormalForm {
19452    #[inline]
19453    fn can_cast(kind: SyntaxKind) -> bool {
19454        kind == SyntaxKind::UNICODE_NORMAL_FORM
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 UniqueConstraint {
19470    #[inline]
19471    fn can_cast(kind: SyntaxKind) -> bool {
19472        kind == SyntaxKind::UNIQUE_CONSTRAINT
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 Unlisten {
19488    #[inline]
19489    fn can_cast(kind: SyntaxKind) -> bool {
19490        kind == SyntaxKind::UNLISTEN
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 Update {
19506    #[inline]
19507    fn can_cast(kind: SyntaxKind) -> bool {
19508        kind == SyntaxKind::UPDATE
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 UsingClause {
19524    #[inline]
19525    fn can_cast(kind: SyntaxKind) -> bool {
19526        kind == SyntaxKind::USING_CLAUSE
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 UsingIndex {
19542    #[inline]
19543    fn can_cast(kind: SyntaxKind) -> bool {
19544        kind == SyntaxKind::USING_INDEX
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 UsingMethod {
19560    #[inline]
19561    fn can_cast(kind: SyntaxKind) -> bool {
19562        kind == SyntaxKind::USING_METHOD
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 Vacuum {
19578    #[inline]
19579    fn can_cast(kind: SyntaxKind) -> bool {
19580        kind == SyntaxKind::VACUUM
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 VacuumOption {
19596    #[inline]
19597    fn can_cast(kind: SyntaxKind) -> bool {
19598        kind == SyntaxKind::VACUUM_OPTION
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 VacuumOptionList {
19614    #[inline]
19615    fn can_cast(kind: SyntaxKind) -> bool {
19616        kind == SyntaxKind::VACUUM_OPTION_LIST
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 ValidateConstraint {
19632    #[inline]
19633    fn can_cast(kind: SyntaxKind) -> bool {
19634        kind == SyntaxKind::VALIDATE_CONSTRAINT
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 Values {
19650    #[inline]
19651    fn can_cast(kind: SyntaxKind) -> bool {
19652        kind == SyntaxKind::VALUES
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 Variant {
19668    #[inline]
19669    fn can_cast(kind: SyntaxKind) -> bool {
19670        kind == SyntaxKind::VARIANT
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 VariantList {
19686    #[inline]
19687    fn can_cast(kind: SyntaxKind) -> bool {
19688        kind == SyntaxKind::VARIANT_LIST
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 VolatilityFuncOption {
19704    #[inline]
19705    fn can_cast(kind: SyntaxKind) -> bool {
19706        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
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 WhenClause {
19722    #[inline]
19723    fn can_cast(kind: SyntaxKind) -> bool {
19724        kind == SyntaxKind::WHEN_CLAUSE
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 WhenClauseList {
19740    #[inline]
19741    fn can_cast(kind: SyntaxKind) -> bool {
19742        kind == SyntaxKind::WHEN_CLAUSE_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 WhereClause {
19758    #[inline]
19759    fn can_cast(kind: SyntaxKind) -> bool {
19760        kind == SyntaxKind::WHERE_CLAUSE
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 WindowClause {
19776    #[inline]
19777    fn can_cast(kind: SyntaxKind) -> bool {
19778        kind == SyntaxKind::WINDOW_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 WindowDef {
19794    #[inline]
19795    fn can_cast(kind: SyntaxKind) -> bool {
19796        kind == SyntaxKind::WINDOW_DEF
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 WindowFuncOption {
19812    #[inline]
19813    fn can_cast(kind: SyntaxKind) -> bool {
19814        kind == SyntaxKind::WINDOW_FUNC_OPTION
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 WindowSpec {
19830    #[inline]
19831    fn can_cast(kind: SyntaxKind) -> bool {
19832        kind == SyntaxKind::WINDOW_SPEC
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 WithClause {
19848    #[inline]
19849    fn can_cast(kind: SyntaxKind) -> bool {
19850        kind == SyntaxKind::WITH_CLAUSE
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 WithData {
19866    #[inline]
19867    fn can_cast(kind: SyntaxKind) -> bool {
19868        kind == SyntaxKind::WITH_DATA
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 WithNoData {
19884    #[inline]
19885    fn can_cast(kind: SyntaxKind) -> bool {
19886        kind == SyntaxKind::WITH_NO_DATA
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 WithOptions {
19902    #[inline]
19903    fn can_cast(kind: SyntaxKind) -> bool {
19904        kind == SyntaxKind::WITH_OPTIONS
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 WithParams {
19920    #[inline]
19921    fn can_cast(kind: SyntaxKind) -> bool {
19922        kind == SyntaxKind::WITH_PARAMS
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 WithTable {
19938    #[inline]
19939    fn can_cast(kind: SyntaxKind) -> bool {
19940        kind == SyntaxKind::WITH_TABLE
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 WithTimezone {
19956    #[inline]
19957    fn can_cast(kind: SyntaxKind) -> bool {
19958        kind == SyntaxKind::WITH_TIMEZONE
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 WithinClause {
19974    #[inline]
19975    fn can_cast(kind: SyntaxKind) -> bool {
19976        kind == SyntaxKind::WITHIN_CLAUSE
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 WithoutOids {
19992    #[inline]
19993    fn can_cast(kind: SyntaxKind) -> bool {
19994        kind == SyntaxKind::WITHOUT_OIDS
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 WithoutTimezone {
20010    #[inline]
20011    fn can_cast(kind: SyntaxKind) -> bool {
20012        kind == SyntaxKind::WITHOUT_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 XmlColumnOption {
20028    #[inline]
20029    fn can_cast(kind: SyntaxKind) -> bool {
20030        kind == SyntaxKind::XML_COLUMN_OPTION
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 XmlColumnOptionList {
20046    #[inline]
20047    fn can_cast(kind: SyntaxKind) -> bool {
20048        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
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 XmlTableColumn {
20064    #[inline]
20065    fn can_cast(kind: SyntaxKind) -> bool {
20066        kind == SyntaxKind::XML_TABLE_COLUMN
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 XmlTableColumnList {
20082    #[inline]
20083    fn can_cast(kind: SyntaxKind) -> bool {
20084        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
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 AlterColumnOption {
20100    #[inline]
20101    fn can_cast(kind: SyntaxKind) -> bool {
20102        matches!(
20103            kind,
20104            SyntaxKind::ADD_GENERATED
20105                | SyntaxKind::DROP_DEFAULT
20106                | SyntaxKind::DROP_EXPRESSION
20107                | SyntaxKind::DROP_IDENTITY
20108                | SyntaxKind::DROP_NOT_NULL
20109                | SyntaxKind::RESET_OPTIONS
20110                | SyntaxKind::RESTART
20111                | SyntaxKind::SET_COMPRESSION
20112                | SyntaxKind::SET_DEFAULT
20113                | SyntaxKind::SET_EXPRESSION
20114                | SyntaxKind::SET_GENERATED
20115                | SyntaxKind::SET_GENERATED_OPTIONS
20116                | SyntaxKind::SET_NOT_NULL
20117                | SyntaxKind::SET_OPTIONS
20118                | SyntaxKind::SET_SEQUENCE_OPTION
20119                | SyntaxKind::SET_STATISTICS
20120                | SyntaxKind::SET_STORAGE
20121                | SyntaxKind::SET_TYPE
20122        )
20123    }
20124    #[inline]
20125    fn cast(syntax: SyntaxNode) -> Option<Self> {
20126        let res = match syntax.kind() {
20127            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
20128            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
20129            SyntaxKind::DROP_EXPRESSION => {
20130                AlterColumnOption::DropExpression(DropExpression { syntax })
20131            }
20132            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
20133            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
20134            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
20135            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
20136            SyntaxKind::SET_COMPRESSION => {
20137                AlterColumnOption::SetCompression(SetCompression { syntax })
20138            }
20139            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
20140            SyntaxKind::SET_EXPRESSION => {
20141                AlterColumnOption::SetExpression(SetExpression { syntax })
20142            }
20143            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
20144            SyntaxKind::SET_GENERATED_OPTIONS => {
20145                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
20146            }
20147            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
20148            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
20149            SyntaxKind::SET_SEQUENCE_OPTION => {
20150                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
20151            }
20152            SyntaxKind::SET_STATISTICS => {
20153                AlterColumnOption::SetStatistics(SetStatistics { syntax })
20154            }
20155            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
20156            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
20157            _ => {
20158                return None;
20159            }
20160        };
20161        Some(res)
20162    }
20163    #[inline]
20164    fn syntax(&self) -> &SyntaxNode {
20165        match self {
20166            AlterColumnOption::AddGenerated(it) => &it.syntax,
20167            AlterColumnOption::DropDefault(it) => &it.syntax,
20168            AlterColumnOption::DropExpression(it) => &it.syntax,
20169            AlterColumnOption::DropIdentity(it) => &it.syntax,
20170            AlterColumnOption::DropNotNull(it) => &it.syntax,
20171            AlterColumnOption::ResetOptions(it) => &it.syntax,
20172            AlterColumnOption::Restart(it) => &it.syntax,
20173            AlterColumnOption::SetCompression(it) => &it.syntax,
20174            AlterColumnOption::SetDefault(it) => &it.syntax,
20175            AlterColumnOption::SetExpression(it) => &it.syntax,
20176            AlterColumnOption::SetGenerated(it) => &it.syntax,
20177            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
20178            AlterColumnOption::SetNotNull(it) => &it.syntax,
20179            AlterColumnOption::SetOptions(it) => &it.syntax,
20180            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
20181            AlterColumnOption::SetStatistics(it) => &it.syntax,
20182            AlterColumnOption::SetStorage(it) => &it.syntax,
20183            AlterColumnOption::SetType(it) => &it.syntax,
20184        }
20185    }
20186}
20187impl From<AddGenerated> for AlterColumnOption {
20188    #[inline]
20189    fn from(node: AddGenerated) -> AlterColumnOption {
20190        AlterColumnOption::AddGenerated(node)
20191    }
20192}
20193impl From<DropDefault> for AlterColumnOption {
20194    #[inline]
20195    fn from(node: DropDefault) -> AlterColumnOption {
20196        AlterColumnOption::DropDefault(node)
20197    }
20198}
20199impl From<DropExpression> for AlterColumnOption {
20200    #[inline]
20201    fn from(node: DropExpression) -> AlterColumnOption {
20202        AlterColumnOption::DropExpression(node)
20203    }
20204}
20205impl From<DropIdentity> for AlterColumnOption {
20206    #[inline]
20207    fn from(node: DropIdentity) -> AlterColumnOption {
20208        AlterColumnOption::DropIdentity(node)
20209    }
20210}
20211impl From<DropNotNull> for AlterColumnOption {
20212    #[inline]
20213    fn from(node: DropNotNull) -> AlterColumnOption {
20214        AlterColumnOption::DropNotNull(node)
20215    }
20216}
20217impl From<ResetOptions> for AlterColumnOption {
20218    #[inline]
20219    fn from(node: ResetOptions) -> AlterColumnOption {
20220        AlterColumnOption::ResetOptions(node)
20221    }
20222}
20223impl From<Restart> for AlterColumnOption {
20224    #[inline]
20225    fn from(node: Restart) -> AlterColumnOption {
20226        AlterColumnOption::Restart(node)
20227    }
20228}
20229impl From<SetCompression> for AlterColumnOption {
20230    #[inline]
20231    fn from(node: SetCompression) -> AlterColumnOption {
20232        AlterColumnOption::SetCompression(node)
20233    }
20234}
20235impl From<SetDefault> for AlterColumnOption {
20236    #[inline]
20237    fn from(node: SetDefault) -> AlterColumnOption {
20238        AlterColumnOption::SetDefault(node)
20239    }
20240}
20241impl From<SetExpression> for AlterColumnOption {
20242    #[inline]
20243    fn from(node: SetExpression) -> AlterColumnOption {
20244        AlterColumnOption::SetExpression(node)
20245    }
20246}
20247impl From<SetGenerated> for AlterColumnOption {
20248    #[inline]
20249    fn from(node: SetGenerated) -> AlterColumnOption {
20250        AlterColumnOption::SetGenerated(node)
20251    }
20252}
20253impl From<SetGeneratedOptions> for AlterColumnOption {
20254    #[inline]
20255    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
20256        AlterColumnOption::SetGeneratedOptions(node)
20257    }
20258}
20259impl From<SetNotNull> for AlterColumnOption {
20260    #[inline]
20261    fn from(node: SetNotNull) -> AlterColumnOption {
20262        AlterColumnOption::SetNotNull(node)
20263    }
20264}
20265impl From<SetOptions> for AlterColumnOption {
20266    #[inline]
20267    fn from(node: SetOptions) -> AlterColumnOption {
20268        AlterColumnOption::SetOptions(node)
20269    }
20270}
20271impl From<SetSequenceOption> for AlterColumnOption {
20272    #[inline]
20273    fn from(node: SetSequenceOption) -> AlterColumnOption {
20274        AlterColumnOption::SetSequenceOption(node)
20275    }
20276}
20277impl From<SetStatistics> for AlterColumnOption {
20278    #[inline]
20279    fn from(node: SetStatistics) -> AlterColumnOption {
20280        AlterColumnOption::SetStatistics(node)
20281    }
20282}
20283impl From<SetStorage> for AlterColumnOption {
20284    #[inline]
20285    fn from(node: SetStorage) -> AlterColumnOption {
20286        AlterColumnOption::SetStorage(node)
20287    }
20288}
20289impl From<SetType> for AlterColumnOption {
20290    #[inline]
20291    fn from(node: SetType) -> AlterColumnOption {
20292        AlterColumnOption::SetType(node)
20293    }
20294}
20295impl AstNode for AlterDomainAction {
20296    #[inline]
20297    fn can_cast(kind: SyntaxKind) -> bool {
20298        matches!(
20299            kind,
20300            SyntaxKind::ADD_CONSTRAINT
20301                | SyntaxKind::DROP_CONSTRAINT
20302                | SyntaxKind::DROP_DEFAULT
20303                | SyntaxKind::DROP_NOT_NULL
20304                | SyntaxKind::OWNER_TO
20305                | SyntaxKind::RENAME_CONSTRAINT
20306                | SyntaxKind::RENAME_TO
20307                | SyntaxKind::SET_DEFAULT
20308                | SyntaxKind::SET_NOT_NULL
20309                | SyntaxKind::SET_SCHEMA
20310                | SyntaxKind::VALIDATE_CONSTRAINT
20311        )
20312    }
20313    #[inline]
20314    fn cast(syntax: SyntaxNode) -> Option<Self> {
20315        let res = match syntax.kind() {
20316            SyntaxKind::ADD_CONSTRAINT => {
20317                AlterDomainAction::AddConstraint(AddConstraint { syntax })
20318            }
20319            SyntaxKind::DROP_CONSTRAINT => {
20320                AlterDomainAction::DropConstraint(DropConstraint { syntax })
20321            }
20322            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
20323            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
20324            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
20325            SyntaxKind::RENAME_CONSTRAINT => {
20326                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
20327            }
20328            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
20329            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
20330            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
20331            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
20332            SyntaxKind::VALIDATE_CONSTRAINT => {
20333                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
20334            }
20335            _ => {
20336                return None;
20337            }
20338        };
20339        Some(res)
20340    }
20341    #[inline]
20342    fn syntax(&self) -> &SyntaxNode {
20343        match self {
20344            AlterDomainAction::AddConstraint(it) => &it.syntax,
20345            AlterDomainAction::DropConstraint(it) => &it.syntax,
20346            AlterDomainAction::DropDefault(it) => &it.syntax,
20347            AlterDomainAction::DropNotNull(it) => &it.syntax,
20348            AlterDomainAction::OwnerTo(it) => &it.syntax,
20349            AlterDomainAction::RenameConstraint(it) => &it.syntax,
20350            AlterDomainAction::RenameTo(it) => &it.syntax,
20351            AlterDomainAction::SetDefault(it) => &it.syntax,
20352            AlterDomainAction::SetNotNull(it) => &it.syntax,
20353            AlterDomainAction::SetSchema(it) => &it.syntax,
20354            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
20355        }
20356    }
20357}
20358impl From<AddConstraint> for AlterDomainAction {
20359    #[inline]
20360    fn from(node: AddConstraint) -> AlterDomainAction {
20361        AlterDomainAction::AddConstraint(node)
20362    }
20363}
20364impl From<DropConstraint> for AlterDomainAction {
20365    #[inline]
20366    fn from(node: DropConstraint) -> AlterDomainAction {
20367        AlterDomainAction::DropConstraint(node)
20368    }
20369}
20370impl From<DropDefault> for AlterDomainAction {
20371    #[inline]
20372    fn from(node: DropDefault) -> AlterDomainAction {
20373        AlterDomainAction::DropDefault(node)
20374    }
20375}
20376impl From<DropNotNull> for AlterDomainAction {
20377    #[inline]
20378    fn from(node: DropNotNull) -> AlterDomainAction {
20379        AlterDomainAction::DropNotNull(node)
20380    }
20381}
20382impl From<OwnerTo> for AlterDomainAction {
20383    #[inline]
20384    fn from(node: OwnerTo) -> AlterDomainAction {
20385        AlterDomainAction::OwnerTo(node)
20386    }
20387}
20388impl From<RenameConstraint> for AlterDomainAction {
20389    #[inline]
20390    fn from(node: RenameConstraint) -> AlterDomainAction {
20391        AlterDomainAction::RenameConstraint(node)
20392    }
20393}
20394impl From<RenameTo> for AlterDomainAction {
20395    #[inline]
20396    fn from(node: RenameTo) -> AlterDomainAction {
20397        AlterDomainAction::RenameTo(node)
20398    }
20399}
20400impl From<SetDefault> for AlterDomainAction {
20401    #[inline]
20402    fn from(node: SetDefault) -> AlterDomainAction {
20403        AlterDomainAction::SetDefault(node)
20404    }
20405}
20406impl From<SetNotNull> for AlterDomainAction {
20407    #[inline]
20408    fn from(node: SetNotNull) -> AlterDomainAction {
20409        AlterDomainAction::SetNotNull(node)
20410    }
20411}
20412impl From<SetSchema> for AlterDomainAction {
20413    #[inline]
20414    fn from(node: SetSchema) -> AlterDomainAction {
20415        AlterDomainAction::SetSchema(node)
20416    }
20417}
20418impl From<ValidateConstraint> for AlterDomainAction {
20419    #[inline]
20420    fn from(node: ValidateConstraint) -> AlterDomainAction {
20421        AlterDomainAction::ValidateConstraint(node)
20422    }
20423}
20424impl AstNode for AlterTableAction {
20425    #[inline]
20426    fn can_cast(kind: SyntaxKind) -> bool {
20427        matches!(
20428            kind,
20429            SyntaxKind::ADD_COLUMN
20430                | SyntaxKind::ADD_CONSTRAINT
20431                | SyntaxKind::ALTER_COLUMN
20432                | SyntaxKind::ALTER_CONSTRAINT
20433                | SyntaxKind::ATTACH_PARTITION
20434                | SyntaxKind::CLUSTER_ON
20435                | SyntaxKind::DETACH_PARTITION
20436                | SyntaxKind::DISABLE_RLS
20437                | SyntaxKind::DISABLE_RULE
20438                | SyntaxKind::DISABLE_TRIGGER
20439                | SyntaxKind::DROP_COLUMN
20440                | SyntaxKind::DROP_CONSTRAINT
20441                | SyntaxKind::ENABLE_ALWAYS_RULE
20442                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
20443                | SyntaxKind::ENABLE_REPLICA_RULE
20444                | SyntaxKind::ENABLE_REPLICA_TRIGGER
20445                | SyntaxKind::ENABLE_RLS
20446                | SyntaxKind::ENABLE_RULE
20447                | SyntaxKind::ENABLE_TRIGGER
20448                | SyntaxKind::FORCE_RLS
20449                | SyntaxKind::INHERIT
20450                | SyntaxKind::NO_FORCE_RLS
20451                | SyntaxKind::NO_INHERIT
20452                | SyntaxKind::NOT_OF
20453                | SyntaxKind::OF_TYPE
20454                | SyntaxKind::OPTIONS_LIST
20455                | SyntaxKind::OWNER_TO
20456                | SyntaxKind::RENAME_COLUMN
20457                | SyntaxKind::RENAME_CONSTRAINT
20458                | SyntaxKind::RENAME_TABLE
20459                | SyntaxKind::REPLICA_IDENTITY
20460                | SyntaxKind::RESET_STORAGE_PARAMS
20461                | SyntaxKind::SET_ACCESS_METHOD
20462                | SyntaxKind::SET_LOGGED
20463                | SyntaxKind::SET_SCHEMA
20464                | SyntaxKind::SET_STORAGE_PARAMS
20465                | SyntaxKind::SET_TABLESPACE
20466                | SyntaxKind::SET_UNLOGGED
20467                | SyntaxKind::SET_WITHOUT_CLUSTER
20468                | SyntaxKind::SET_WITHOUT_OIDS
20469                | SyntaxKind::VALIDATE_CONSTRAINT
20470        )
20471    }
20472    #[inline]
20473    fn cast(syntax: SyntaxNode) -> Option<Self> {
20474        let res = match syntax.kind() {
20475            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
20476            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
20477            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
20478            SyntaxKind::ALTER_CONSTRAINT => {
20479                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
20480            }
20481            SyntaxKind::ATTACH_PARTITION => {
20482                AlterTableAction::AttachPartition(AttachPartition { syntax })
20483            }
20484            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
20485            SyntaxKind::DETACH_PARTITION => {
20486                AlterTableAction::DetachPartition(DetachPartition { syntax })
20487            }
20488            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
20489            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
20490            SyntaxKind::DISABLE_TRIGGER => {
20491                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
20492            }
20493            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
20494            SyntaxKind::DROP_CONSTRAINT => {
20495                AlterTableAction::DropConstraint(DropConstraint { syntax })
20496            }
20497            SyntaxKind::ENABLE_ALWAYS_RULE => {
20498                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
20499            }
20500            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
20501                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
20502            }
20503            SyntaxKind::ENABLE_REPLICA_RULE => {
20504                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
20505            }
20506            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
20507                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
20508            }
20509            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
20510            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
20511            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
20512            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
20513            SyntaxKind::INHERIT => AlterTableAction::Inherit(Inherit { syntax }),
20514            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
20515            SyntaxKind::NO_INHERIT => AlterTableAction::NoInherit(NoInherit { syntax }),
20516            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
20517            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
20518            SyntaxKind::OPTIONS_LIST => AlterTableAction::OptionsList(OptionsList { syntax }),
20519            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
20520            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
20521            SyntaxKind::RENAME_CONSTRAINT => {
20522                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
20523            }
20524            SyntaxKind::RENAME_TABLE => AlterTableAction::RenameTable(RenameTable { syntax }),
20525            SyntaxKind::REPLICA_IDENTITY => {
20526                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
20527            }
20528            SyntaxKind::RESET_STORAGE_PARAMS => {
20529                AlterTableAction::ResetStorageParams(ResetStorageParams { syntax })
20530            }
20531            SyntaxKind::SET_ACCESS_METHOD => {
20532                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
20533            }
20534            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
20535            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
20536            SyntaxKind::SET_STORAGE_PARAMS => {
20537                AlterTableAction::SetStorageParams(SetStorageParams { syntax })
20538            }
20539            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
20540            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
20541            SyntaxKind::SET_WITHOUT_CLUSTER => {
20542                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
20543            }
20544            SyntaxKind::SET_WITHOUT_OIDS => {
20545                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
20546            }
20547            SyntaxKind::VALIDATE_CONSTRAINT => {
20548                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
20549            }
20550            _ => {
20551                return None;
20552            }
20553        };
20554        Some(res)
20555    }
20556    #[inline]
20557    fn syntax(&self) -> &SyntaxNode {
20558        match self {
20559            AlterTableAction::AddColumn(it) => &it.syntax,
20560            AlterTableAction::AddConstraint(it) => &it.syntax,
20561            AlterTableAction::AlterColumn(it) => &it.syntax,
20562            AlterTableAction::AlterConstraint(it) => &it.syntax,
20563            AlterTableAction::AttachPartition(it) => &it.syntax,
20564            AlterTableAction::ClusterOn(it) => &it.syntax,
20565            AlterTableAction::DetachPartition(it) => &it.syntax,
20566            AlterTableAction::DisableRls(it) => &it.syntax,
20567            AlterTableAction::DisableRule(it) => &it.syntax,
20568            AlterTableAction::DisableTrigger(it) => &it.syntax,
20569            AlterTableAction::DropColumn(it) => &it.syntax,
20570            AlterTableAction::DropConstraint(it) => &it.syntax,
20571            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
20572            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
20573            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
20574            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
20575            AlterTableAction::EnableRls(it) => &it.syntax,
20576            AlterTableAction::EnableRule(it) => &it.syntax,
20577            AlterTableAction::EnableTrigger(it) => &it.syntax,
20578            AlterTableAction::ForceRls(it) => &it.syntax,
20579            AlterTableAction::Inherit(it) => &it.syntax,
20580            AlterTableAction::NoForceRls(it) => &it.syntax,
20581            AlterTableAction::NoInherit(it) => &it.syntax,
20582            AlterTableAction::NotOf(it) => &it.syntax,
20583            AlterTableAction::OfType(it) => &it.syntax,
20584            AlterTableAction::OptionsList(it) => &it.syntax,
20585            AlterTableAction::OwnerTo(it) => &it.syntax,
20586            AlterTableAction::RenameColumn(it) => &it.syntax,
20587            AlterTableAction::RenameConstraint(it) => &it.syntax,
20588            AlterTableAction::RenameTable(it) => &it.syntax,
20589            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
20590            AlterTableAction::ResetStorageParams(it) => &it.syntax,
20591            AlterTableAction::SetAccessMethod(it) => &it.syntax,
20592            AlterTableAction::SetLogged(it) => &it.syntax,
20593            AlterTableAction::SetSchema(it) => &it.syntax,
20594            AlterTableAction::SetStorageParams(it) => &it.syntax,
20595            AlterTableAction::SetTablespace(it) => &it.syntax,
20596            AlterTableAction::SetUnlogged(it) => &it.syntax,
20597            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
20598            AlterTableAction::SetWithoutOids(it) => &it.syntax,
20599            AlterTableAction::ValidateConstraint(it) => &it.syntax,
20600        }
20601    }
20602}
20603impl From<AddColumn> for AlterTableAction {
20604    #[inline]
20605    fn from(node: AddColumn) -> AlterTableAction {
20606        AlterTableAction::AddColumn(node)
20607    }
20608}
20609impl From<AddConstraint> for AlterTableAction {
20610    #[inline]
20611    fn from(node: AddConstraint) -> AlterTableAction {
20612        AlterTableAction::AddConstraint(node)
20613    }
20614}
20615impl From<AlterColumn> for AlterTableAction {
20616    #[inline]
20617    fn from(node: AlterColumn) -> AlterTableAction {
20618        AlterTableAction::AlterColumn(node)
20619    }
20620}
20621impl From<AlterConstraint> for AlterTableAction {
20622    #[inline]
20623    fn from(node: AlterConstraint) -> AlterTableAction {
20624        AlterTableAction::AlterConstraint(node)
20625    }
20626}
20627impl From<AttachPartition> for AlterTableAction {
20628    #[inline]
20629    fn from(node: AttachPartition) -> AlterTableAction {
20630        AlterTableAction::AttachPartition(node)
20631    }
20632}
20633impl From<ClusterOn> for AlterTableAction {
20634    #[inline]
20635    fn from(node: ClusterOn) -> AlterTableAction {
20636        AlterTableAction::ClusterOn(node)
20637    }
20638}
20639impl From<DetachPartition> for AlterTableAction {
20640    #[inline]
20641    fn from(node: DetachPartition) -> AlterTableAction {
20642        AlterTableAction::DetachPartition(node)
20643    }
20644}
20645impl From<DisableRls> for AlterTableAction {
20646    #[inline]
20647    fn from(node: DisableRls) -> AlterTableAction {
20648        AlterTableAction::DisableRls(node)
20649    }
20650}
20651impl From<DisableRule> for AlterTableAction {
20652    #[inline]
20653    fn from(node: DisableRule) -> AlterTableAction {
20654        AlterTableAction::DisableRule(node)
20655    }
20656}
20657impl From<DisableTrigger> for AlterTableAction {
20658    #[inline]
20659    fn from(node: DisableTrigger) -> AlterTableAction {
20660        AlterTableAction::DisableTrigger(node)
20661    }
20662}
20663impl From<DropColumn> for AlterTableAction {
20664    #[inline]
20665    fn from(node: DropColumn) -> AlterTableAction {
20666        AlterTableAction::DropColumn(node)
20667    }
20668}
20669impl From<DropConstraint> for AlterTableAction {
20670    #[inline]
20671    fn from(node: DropConstraint) -> AlterTableAction {
20672        AlterTableAction::DropConstraint(node)
20673    }
20674}
20675impl From<EnableAlwaysRule> for AlterTableAction {
20676    #[inline]
20677    fn from(node: EnableAlwaysRule) -> AlterTableAction {
20678        AlterTableAction::EnableAlwaysRule(node)
20679    }
20680}
20681impl From<EnableAlwaysTrigger> for AlterTableAction {
20682    #[inline]
20683    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
20684        AlterTableAction::EnableAlwaysTrigger(node)
20685    }
20686}
20687impl From<EnableReplicaRule> for AlterTableAction {
20688    #[inline]
20689    fn from(node: EnableReplicaRule) -> AlterTableAction {
20690        AlterTableAction::EnableReplicaRule(node)
20691    }
20692}
20693impl From<EnableReplicaTrigger> for AlterTableAction {
20694    #[inline]
20695    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
20696        AlterTableAction::EnableReplicaTrigger(node)
20697    }
20698}
20699impl From<EnableRls> for AlterTableAction {
20700    #[inline]
20701    fn from(node: EnableRls) -> AlterTableAction {
20702        AlterTableAction::EnableRls(node)
20703    }
20704}
20705impl From<EnableRule> for AlterTableAction {
20706    #[inline]
20707    fn from(node: EnableRule) -> AlterTableAction {
20708        AlterTableAction::EnableRule(node)
20709    }
20710}
20711impl From<EnableTrigger> for AlterTableAction {
20712    #[inline]
20713    fn from(node: EnableTrigger) -> AlterTableAction {
20714        AlterTableAction::EnableTrigger(node)
20715    }
20716}
20717impl From<ForceRls> for AlterTableAction {
20718    #[inline]
20719    fn from(node: ForceRls) -> AlterTableAction {
20720        AlterTableAction::ForceRls(node)
20721    }
20722}
20723impl From<Inherit> for AlterTableAction {
20724    #[inline]
20725    fn from(node: Inherit) -> AlterTableAction {
20726        AlterTableAction::Inherit(node)
20727    }
20728}
20729impl From<NoForceRls> for AlterTableAction {
20730    #[inline]
20731    fn from(node: NoForceRls) -> AlterTableAction {
20732        AlterTableAction::NoForceRls(node)
20733    }
20734}
20735impl From<NoInherit> for AlterTableAction {
20736    #[inline]
20737    fn from(node: NoInherit) -> AlterTableAction {
20738        AlterTableAction::NoInherit(node)
20739    }
20740}
20741impl From<NotOf> for AlterTableAction {
20742    #[inline]
20743    fn from(node: NotOf) -> AlterTableAction {
20744        AlterTableAction::NotOf(node)
20745    }
20746}
20747impl From<OfType> for AlterTableAction {
20748    #[inline]
20749    fn from(node: OfType) -> AlterTableAction {
20750        AlterTableAction::OfType(node)
20751    }
20752}
20753impl From<OptionsList> for AlterTableAction {
20754    #[inline]
20755    fn from(node: OptionsList) -> AlterTableAction {
20756        AlterTableAction::OptionsList(node)
20757    }
20758}
20759impl From<OwnerTo> for AlterTableAction {
20760    #[inline]
20761    fn from(node: OwnerTo) -> AlterTableAction {
20762        AlterTableAction::OwnerTo(node)
20763    }
20764}
20765impl From<RenameColumn> for AlterTableAction {
20766    #[inline]
20767    fn from(node: RenameColumn) -> AlterTableAction {
20768        AlterTableAction::RenameColumn(node)
20769    }
20770}
20771impl From<RenameConstraint> for AlterTableAction {
20772    #[inline]
20773    fn from(node: RenameConstraint) -> AlterTableAction {
20774        AlterTableAction::RenameConstraint(node)
20775    }
20776}
20777impl From<RenameTable> for AlterTableAction {
20778    #[inline]
20779    fn from(node: RenameTable) -> AlterTableAction {
20780        AlterTableAction::RenameTable(node)
20781    }
20782}
20783impl From<ReplicaIdentity> for AlterTableAction {
20784    #[inline]
20785    fn from(node: ReplicaIdentity) -> AlterTableAction {
20786        AlterTableAction::ReplicaIdentity(node)
20787    }
20788}
20789impl From<ResetStorageParams> for AlterTableAction {
20790    #[inline]
20791    fn from(node: ResetStorageParams) -> AlterTableAction {
20792        AlterTableAction::ResetStorageParams(node)
20793    }
20794}
20795impl From<SetAccessMethod> for AlterTableAction {
20796    #[inline]
20797    fn from(node: SetAccessMethod) -> AlterTableAction {
20798        AlterTableAction::SetAccessMethod(node)
20799    }
20800}
20801impl From<SetLogged> for AlterTableAction {
20802    #[inline]
20803    fn from(node: SetLogged) -> AlterTableAction {
20804        AlterTableAction::SetLogged(node)
20805    }
20806}
20807impl From<SetSchema> for AlterTableAction {
20808    #[inline]
20809    fn from(node: SetSchema) -> AlterTableAction {
20810        AlterTableAction::SetSchema(node)
20811    }
20812}
20813impl From<SetStorageParams> for AlterTableAction {
20814    #[inline]
20815    fn from(node: SetStorageParams) -> AlterTableAction {
20816        AlterTableAction::SetStorageParams(node)
20817    }
20818}
20819impl From<SetTablespace> for AlterTableAction {
20820    #[inline]
20821    fn from(node: SetTablespace) -> AlterTableAction {
20822        AlterTableAction::SetTablespace(node)
20823    }
20824}
20825impl From<SetUnlogged> for AlterTableAction {
20826    #[inline]
20827    fn from(node: SetUnlogged) -> AlterTableAction {
20828        AlterTableAction::SetUnlogged(node)
20829    }
20830}
20831impl From<SetWithoutCluster> for AlterTableAction {
20832    #[inline]
20833    fn from(node: SetWithoutCluster) -> AlterTableAction {
20834        AlterTableAction::SetWithoutCluster(node)
20835    }
20836}
20837impl From<SetWithoutOids> for AlterTableAction {
20838    #[inline]
20839    fn from(node: SetWithoutOids) -> AlterTableAction {
20840        AlterTableAction::SetWithoutOids(node)
20841    }
20842}
20843impl From<ValidateConstraint> for AlterTableAction {
20844    #[inline]
20845    fn from(node: ValidateConstraint) -> AlterTableAction {
20846        AlterTableAction::ValidateConstraint(node)
20847    }
20848}
20849impl AstNode for ColumnConstraint {
20850    #[inline]
20851    fn can_cast(kind: SyntaxKind) -> bool {
20852        matches!(
20853            kind,
20854            SyntaxKind::CHECK_CONSTRAINT
20855                | SyntaxKind::EXCLUDE_CONSTRAINT
20856                | SyntaxKind::NOT_NULL_CONSTRAINT
20857                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
20858                | SyntaxKind::REFERENCES_CONSTRAINT
20859                | SyntaxKind::UNIQUE_CONSTRAINT
20860        )
20861    }
20862    #[inline]
20863    fn cast(syntax: SyntaxNode) -> Option<Self> {
20864        let res = match syntax.kind() {
20865            SyntaxKind::CHECK_CONSTRAINT => {
20866                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
20867            }
20868            SyntaxKind::EXCLUDE_CONSTRAINT => {
20869                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
20870            }
20871            SyntaxKind::NOT_NULL_CONSTRAINT => {
20872                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
20873            }
20874            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
20875                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
20876            }
20877            SyntaxKind::REFERENCES_CONSTRAINT => {
20878                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
20879            }
20880            SyntaxKind::UNIQUE_CONSTRAINT => {
20881                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
20882            }
20883            _ => {
20884                return None;
20885            }
20886        };
20887        Some(res)
20888    }
20889    #[inline]
20890    fn syntax(&self) -> &SyntaxNode {
20891        match self {
20892            ColumnConstraint::CheckConstraint(it) => &it.syntax,
20893            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
20894            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
20895            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
20896            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
20897            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
20898        }
20899    }
20900}
20901impl From<CheckConstraint> for ColumnConstraint {
20902    #[inline]
20903    fn from(node: CheckConstraint) -> ColumnConstraint {
20904        ColumnConstraint::CheckConstraint(node)
20905    }
20906}
20907impl From<ExcludeConstraint> for ColumnConstraint {
20908    #[inline]
20909    fn from(node: ExcludeConstraint) -> ColumnConstraint {
20910        ColumnConstraint::ExcludeConstraint(node)
20911    }
20912}
20913impl From<NotNullConstraint> for ColumnConstraint {
20914    #[inline]
20915    fn from(node: NotNullConstraint) -> ColumnConstraint {
20916        ColumnConstraint::NotNullConstraint(node)
20917    }
20918}
20919impl From<PrimaryKeyConstraint> for ColumnConstraint {
20920    #[inline]
20921    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
20922        ColumnConstraint::PrimaryKeyConstraint(node)
20923    }
20924}
20925impl From<ReferencesConstraint> for ColumnConstraint {
20926    #[inline]
20927    fn from(node: ReferencesConstraint) -> ColumnConstraint {
20928        ColumnConstraint::ReferencesConstraint(node)
20929    }
20930}
20931impl From<UniqueConstraint> for ColumnConstraint {
20932    #[inline]
20933    fn from(node: UniqueConstraint) -> ColumnConstraint {
20934        ColumnConstraint::UniqueConstraint(node)
20935    }
20936}
20937impl AstNode for Constraint {
20938    #[inline]
20939    fn can_cast(kind: SyntaxKind) -> bool {
20940        matches!(
20941            kind,
20942            SyntaxKind::CHECK_CONSTRAINT
20943                | SyntaxKind::DEFAULT_CONSTRAINT
20944                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
20945                | SyntaxKind::GENERATED_CONSTRAINT
20946                | SyntaxKind::NOT_NULL_CONSTRAINT
20947                | SyntaxKind::NULL_CONSTRAINT
20948                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
20949                | SyntaxKind::REFERENCES_CONSTRAINT
20950                | SyntaxKind::UNIQUE_CONSTRAINT
20951        )
20952    }
20953    #[inline]
20954    fn cast(syntax: SyntaxNode) -> Option<Self> {
20955        let res = match syntax.kind() {
20956            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
20957            SyntaxKind::DEFAULT_CONSTRAINT => {
20958                Constraint::DefaultConstraint(DefaultConstraint { syntax })
20959            }
20960            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
20961                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
20962            }
20963            SyntaxKind::GENERATED_CONSTRAINT => {
20964                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
20965            }
20966            SyntaxKind::NOT_NULL_CONSTRAINT => {
20967                Constraint::NotNullConstraint(NotNullConstraint { syntax })
20968            }
20969            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
20970            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
20971                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
20972            }
20973            SyntaxKind::REFERENCES_CONSTRAINT => {
20974                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
20975            }
20976            SyntaxKind::UNIQUE_CONSTRAINT => {
20977                Constraint::UniqueConstraint(UniqueConstraint { syntax })
20978            }
20979            _ => {
20980                return None;
20981            }
20982        };
20983        Some(res)
20984    }
20985    #[inline]
20986    fn syntax(&self) -> &SyntaxNode {
20987        match self {
20988            Constraint::CheckConstraint(it) => &it.syntax,
20989            Constraint::DefaultConstraint(it) => &it.syntax,
20990            Constraint::ForeignKeyConstraint(it) => &it.syntax,
20991            Constraint::GeneratedConstraint(it) => &it.syntax,
20992            Constraint::NotNullConstraint(it) => &it.syntax,
20993            Constraint::NullConstraint(it) => &it.syntax,
20994            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
20995            Constraint::ReferencesConstraint(it) => &it.syntax,
20996            Constraint::UniqueConstraint(it) => &it.syntax,
20997        }
20998    }
20999}
21000impl From<CheckConstraint> for Constraint {
21001    #[inline]
21002    fn from(node: CheckConstraint) -> Constraint {
21003        Constraint::CheckConstraint(node)
21004    }
21005}
21006impl From<DefaultConstraint> for Constraint {
21007    #[inline]
21008    fn from(node: DefaultConstraint) -> Constraint {
21009        Constraint::DefaultConstraint(node)
21010    }
21011}
21012impl From<ForeignKeyConstraint> for Constraint {
21013    #[inline]
21014    fn from(node: ForeignKeyConstraint) -> Constraint {
21015        Constraint::ForeignKeyConstraint(node)
21016    }
21017}
21018impl From<GeneratedConstraint> for Constraint {
21019    #[inline]
21020    fn from(node: GeneratedConstraint) -> Constraint {
21021        Constraint::GeneratedConstraint(node)
21022    }
21023}
21024impl From<NotNullConstraint> for Constraint {
21025    #[inline]
21026    fn from(node: NotNullConstraint) -> Constraint {
21027        Constraint::NotNullConstraint(node)
21028    }
21029}
21030impl From<NullConstraint> for Constraint {
21031    #[inline]
21032    fn from(node: NullConstraint) -> Constraint {
21033        Constraint::NullConstraint(node)
21034    }
21035}
21036impl From<PrimaryKeyConstraint> for Constraint {
21037    #[inline]
21038    fn from(node: PrimaryKeyConstraint) -> Constraint {
21039        Constraint::PrimaryKeyConstraint(node)
21040    }
21041}
21042impl From<ReferencesConstraint> for Constraint {
21043    #[inline]
21044    fn from(node: ReferencesConstraint) -> Constraint {
21045        Constraint::ReferencesConstraint(node)
21046    }
21047}
21048impl From<UniqueConstraint> for Constraint {
21049    #[inline]
21050    fn from(node: UniqueConstraint) -> Constraint {
21051        Constraint::UniqueConstraint(node)
21052    }
21053}
21054impl AstNode for Expr {
21055    #[inline]
21056    fn can_cast(kind: SyntaxKind) -> bool {
21057        matches!(
21058            kind,
21059            SyntaxKind::ARRAY_EXPR
21060                | SyntaxKind::BETWEEN_EXPR
21061                | SyntaxKind::BIN_EXPR
21062                | SyntaxKind::CALL_EXPR
21063                | SyntaxKind::CASE_EXPR
21064                | SyntaxKind::CAST_EXPR
21065                | SyntaxKind::FIELD_EXPR
21066                | SyntaxKind::INDEX_EXPR
21067                | SyntaxKind::LITERAL
21068                | SyntaxKind::NAME_REF
21069                | SyntaxKind::PAREN_EXPR
21070                | SyntaxKind::POSTFIX_EXPR
21071                | SyntaxKind::PREFIX_EXPR
21072                | SyntaxKind::TUPLE_EXPR
21073        )
21074    }
21075    #[inline]
21076    fn cast(syntax: SyntaxNode) -> Option<Self> {
21077        let res = match syntax.kind() {
21078            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
21079            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
21080            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
21081            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
21082            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
21083            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
21084            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
21085            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
21086            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
21087            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
21088            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
21089            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
21090            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
21091            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
21092            _ => {
21093                return None;
21094            }
21095        };
21096        Some(res)
21097    }
21098    #[inline]
21099    fn syntax(&self) -> &SyntaxNode {
21100        match self {
21101            Expr::ArrayExpr(it) => &it.syntax,
21102            Expr::BetweenExpr(it) => &it.syntax,
21103            Expr::BinExpr(it) => &it.syntax,
21104            Expr::CallExpr(it) => &it.syntax,
21105            Expr::CaseExpr(it) => &it.syntax,
21106            Expr::CastExpr(it) => &it.syntax,
21107            Expr::FieldExpr(it) => &it.syntax,
21108            Expr::IndexExpr(it) => &it.syntax,
21109            Expr::Literal(it) => &it.syntax,
21110            Expr::NameRef(it) => &it.syntax,
21111            Expr::ParenExpr(it) => &it.syntax,
21112            Expr::PostfixExpr(it) => &it.syntax,
21113            Expr::PrefixExpr(it) => &it.syntax,
21114            Expr::TupleExpr(it) => &it.syntax,
21115        }
21116    }
21117}
21118impl From<ArrayExpr> for Expr {
21119    #[inline]
21120    fn from(node: ArrayExpr) -> Expr {
21121        Expr::ArrayExpr(node)
21122    }
21123}
21124impl From<BetweenExpr> for Expr {
21125    #[inline]
21126    fn from(node: BetweenExpr) -> Expr {
21127        Expr::BetweenExpr(node)
21128    }
21129}
21130impl From<BinExpr> for Expr {
21131    #[inline]
21132    fn from(node: BinExpr) -> Expr {
21133        Expr::BinExpr(node)
21134    }
21135}
21136impl From<CallExpr> for Expr {
21137    #[inline]
21138    fn from(node: CallExpr) -> Expr {
21139        Expr::CallExpr(node)
21140    }
21141}
21142impl From<CaseExpr> for Expr {
21143    #[inline]
21144    fn from(node: CaseExpr) -> Expr {
21145        Expr::CaseExpr(node)
21146    }
21147}
21148impl From<CastExpr> for Expr {
21149    #[inline]
21150    fn from(node: CastExpr) -> Expr {
21151        Expr::CastExpr(node)
21152    }
21153}
21154impl From<FieldExpr> for Expr {
21155    #[inline]
21156    fn from(node: FieldExpr) -> Expr {
21157        Expr::FieldExpr(node)
21158    }
21159}
21160impl From<IndexExpr> for Expr {
21161    #[inline]
21162    fn from(node: IndexExpr) -> Expr {
21163        Expr::IndexExpr(node)
21164    }
21165}
21166impl From<Literal> for Expr {
21167    #[inline]
21168    fn from(node: Literal) -> Expr {
21169        Expr::Literal(node)
21170    }
21171}
21172impl From<NameRef> for Expr {
21173    #[inline]
21174    fn from(node: NameRef) -> Expr {
21175        Expr::NameRef(node)
21176    }
21177}
21178impl From<ParenExpr> for Expr {
21179    #[inline]
21180    fn from(node: ParenExpr) -> Expr {
21181        Expr::ParenExpr(node)
21182    }
21183}
21184impl From<PostfixExpr> for Expr {
21185    #[inline]
21186    fn from(node: PostfixExpr) -> Expr {
21187        Expr::PostfixExpr(node)
21188    }
21189}
21190impl From<PrefixExpr> for Expr {
21191    #[inline]
21192    fn from(node: PrefixExpr) -> Expr {
21193        Expr::PrefixExpr(node)
21194    }
21195}
21196impl From<TupleExpr> for Expr {
21197    #[inline]
21198    fn from(node: TupleExpr) -> Expr {
21199        Expr::TupleExpr(node)
21200    }
21201}
21202impl AstNode for FuncOption {
21203    #[inline]
21204    fn can_cast(kind: SyntaxKind) -> bool {
21205        matches!(
21206            kind,
21207            SyntaxKind::AS_FUNC_OPTION
21208                | SyntaxKind::BEGIN_FUNC_OPTION
21209                | SyntaxKind::COST_FUNC_OPTION
21210                | SyntaxKind::LANGUAGE_FUNC_OPTION
21211                | SyntaxKind::LEAKPROOF_FUNC_OPTION
21212                | SyntaxKind::PARALLEL_FUNC_OPTION
21213                | SyntaxKind::RESET_FUNC_OPTION
21214                | SyntaxKind::RETURN_FUNC_OPTION
21215                | SyntaxKind::ROWS_FUNC_OPTION
21216                | SyntaxKind::SECURITY_FUNC_OPTION
21217                | SyntaxKind::SET_FUNC_OPTION
21218                | SyntaxKind::STRICT_FUNC_OPTION
21219                | SyntaxKind::SUPPORT_FUNC_OPTION
21220                | SyntaxKind::TRANSFORM_FUNC_OPTION
21221                | SyntaxKind::VOLATILITY_FUNC_OPTION
21222                | SyntaxKind::WINDOW_FUNC_OPTION
21223        )
21224    }
21225    #[inline]
21226    fn cast(syntax: SyntaxNode) -> Option<Self> {
21227        let res = match syntax.kind() {
21228            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
21229            SyntaxKind::BEGIN_FUNC_OPTION => {
21230                FuncOption::BeginFuncOption(BeginFuncOption { syntax })
21231            }
21232            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
21233            SyntaxKind::LANGUAGE_FUNC_OPTION => {
21234                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
21235            }
21236            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
21237                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
21238            }
21239            SyntaxKind::PARALLEL_FUNC_OPTION => {
21240                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
21241            }
21242            SyntaxKind::RESET_FUNC_OPTION => {
21243                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
21244            }
21245            SyntaxKind::RETURN_FUNC_OPTION => {
21246                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
21247            }
21248            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
21249            SyntaxKind::SECURITY_FUNC_OPTION => {
21250                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
21251            }
21252            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
21253            SyntaxKind::STRICT_FUNC_OPTION => {
21254                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
21255            }
21256            SyntaxKind::SUPPORT_FUNC_OPTION => {
21257                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
21258            }
21259            SyntaxKind::TRANSFORM_FUNC_OPTION => {
21260                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
21261            }
21262            SyntaxKind::VOLATILITY_FUNC_OPTION => {
21263                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
21264            }
21265            SyntaxKind::WINDOW_FUNC_OPTION => {
21266                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
21267            }
21268            _ => {
21269                return None;
21270            }
21271        };
21272        Some(res)
21273    }
21274    #[inline]
21275    fn syntax(&self) -> &SyntaxNode {
21276        match self {
21277            FuncOption::AsFuncOption(it) => &it.syntax,
21278            FuncOption::BeginFuncOption(it) => &it.syntax,
21279            FuncOption::CostFuncOption(it) => &it.syntax,
21280            FuncOption::LanguageFuncOption(it) => &it.syntax,
21281            FuncOption::LeakproofFuncOption(it) => &it.syntax,
21282            FuncOption::ParallelFuncOption(it) => &it.syntax,
21283            FuncOption::ResetFuncOption(it) => &it.syntax,
21284            FuncOption::ReturnFuncOption(it) => &it.syntax,
21285            FuncOption::RowsFuncOption(it) => &it.syntax,
21286            FuncOption::SecurityFuncOption(it) => &it.syntax,
21287            FuncOption::SetFuncOption(it) => &it.syntax,
21288            FuncOption::StrictFuncOption(it) => &it.syntax,
21289            FuncOption::SupportFuncOption(it) => &it.syntax,
21290            FuncOption::TransformFuncOption(it) => &it.syntax,
21291            FuncOption::VolatilityFuncOption(it) => &it.syntax,
21292            FuncOption::WindowFuncOption(it) => &it.syntax,
21293        }
21294    }
21295}
21296impl From<AsFuncOption> for FuncOption {
21297    #[inline]
21298    fn from(node: AsFuncOption) -> FuncOption {
21299        FuncOption::AsFuncOption(node)
21300    }
21301}
21302impl From<BeginFuncOption> for FuncOption {
21303    #[inline]
21304    fn from(node: BeginFuncOption) -> FuncOption {
21305        FuncOption::BeginFuncOption(node)
21306    }
21307}
21308impl From<CostFuncOption> for FuncOption {
21309    #[inline]
21310    fn from(node: CostFuncOption) -> FuncOption {
21311        FuncOption::CostFuncOption(node)
21312    }
21313}
21314impl From<LanguageFuncOption> for FuncOption {
21315    #[inline]
21316    fn from(node: LanguageFuncOption) -> FuncOption {
21317        FuncOption::LanguageFuncOption(node)
21318    }
21319}
21320impl From<LeakproofFuncOption> for FuncOption {
21321    #[inline]
21322    fn from(node: LeakproofFuncOption) -> FuncOption {
21323        FuncOption::LeakproofFuncOption(node)
21324    }
21325}
21326impl From<ParallelFuncOption> for FuncOption {
21327    #[inline]
21328    fn from(node: ParallelFuncOption) -> FuncOption {
21329        FuncOption::ParallelFuncOption(node)
21330    }
21331}
21332impl From<ResetFuncOption> for FuncOption {
21333    #[inline]
21334    fn from(node: ResetFuncOption) -> FuncOption {
21335        FuncOption::ResetFuncOption(node)
21336    }
21337}
21338impl From<ReturnFuncOption> for FuncOption {
21339    #[inline]
21340    fn from(node: ReturnFuncOption) -> FuncOption {
21341        FuncOption::ReturnFuncOption(node)
21342    }
21343}
21344impl From<RowsFuncOption> for FuncOption {
21345    #[inline]
21346    fn from(node: RowsFuncOption) -> FuncOption {
21347        FuncOption::RowsFuncOption(node)
21348    }
21349}
21350impl From<SecurityFuncOption> for FuncOption {
21351    #[inline]
21352    fn from(node: SecurityFuncOption) -> FuncOption {
21353        FuncOption::SecurityFuncOption(node)
21354    }
21355}
21356impl From<SetFuncOption> for FuncOption {
21357    #[inline]
21358    fn from(node: SetFuncOption) -> FuncOption {
21359        FuncOption::SetFuncOption(node)
21360    }
21361}
21362impl From<StrictFuncOption> for FuncOption {
21363    #[inline]
21364    fn from(node: StrictFuncOption) -> FuncOption {
21365        FuncOption::StrictFuncOption(node)
21366    }
21367}
21368impl From<SupportFuncOption> for FuncOption {
21369    #[inline]
21370    fn from(node: SupportFuncOption) -> FuncOption {
21371        FuncOption::SupportFuncOption(node)
21372    }
21373}
21374impl From<TransformFuncOption> for FuncOption {
21375    #[inline]
21376    fn from(node: TransformFuncOption) -> FuncOption {
21377        FuncOption::TransformFuncOption(node)
21378    }
21379}
21380impl From<VolatilityFuncOption> for FuncOption {
21381    #[inline]
21382    fn from(node: VolatilityFuncOption) -> FuncOption {
21383        FuncOption::VolatilityFuncOption(node)
21384    }
21385}
21386impl From<WindowFuncOption> for FuncOption {
21387    #[inline]
21388    fn from(node: WindowFuncOption) -> FuncOption {
21389        FuncOption::WindowFuncOption(node)
21390    }
21391}
21392impl AstNode for JoinType {
21393    #[inline]
21394    fn can_cast(kind: SyntaxKind) -> bool {
21395        matches!(
21396            kind,
21397            SyntaxKind::JOIN_CROSS
21398                | SyntaxKind::JOIN_FULL
21399                | SyntaxKind::JOIN_INNER
21400                | SyntaxKind::JOIN_LEFT
21401                | SyntaxKind::JOIN_RIGHT
21402        )
21403    }
21404    #[inline]
21405    fn cast(syntax: SyntaxNode) -> Option<Self> {
21406        let res = match syntax.kind() {
21407            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
21408            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
21409            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
21410            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
21411            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
21412            _ => {
21413                return None;
21414            }
21415        };
21416        Some(res)
21417    }
21418    #[inline]
21419    fn syntax(&self) -> &SyntaxNode {
21420        match self {
21421            JoinType::JoinCross(it) => &it.syntax,
21422            JoinType::JoinFull(it) => &it.syntax,
21423            JoinType::JoinInner(it) => &it.syntax,
21424            JoinType::JoinLeft(it) => &it.syntax,
21425            JoinType::JoinRight(it) => &it.syntax,
21426        }
21427    }
21428}
21429impl From<JoinCross> for JoinType {
21430    #[inline]
21431    fn from(node: JoinCross) -> JoinType {
21432        JoinType::JoinCross(node)
21433    }
21434}
21435impl From<JoinFull> for JoinType {
21436    #[inline]
21437    fn from(node: JoinFull) -> JoinType {
21438        JoinType::JoinFull(node)
21439    }
21440}
21441impl From<JoinInner> for JoinType {
21442    #[inline]
21443    fn from(node: JoinInner) -> JoinType {
21444        JoinType::JoinInner(node)
21445    }
21446}
21447impl From<JoinLeft> for JoinType {
21448    #[inline]
21449    fn from(node: JoinLeft) -> JoinType {
21450        JoinType::JoinLeft(node)
21451    }
21452}
21453impl From<JoinRight> for JoinType {
21454    #[inline]
21455    fn from(node: JoinRight) -> JoinType {
21456        JoinType::JoinRight(node)
21457    }
21458}
21459impl AstNode for JsonBehavior {
21460    #[inline]
21461    fn can_cast(kind: SyntaxKind) -> bool {
21462        matches!(
21463            kind,
21464            SyntaxKind::JSON_BEHAVIOR_DEFAULT
21465                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
21466                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
21467                | SyntaxKind::JSON_BEHAVIOR_ERROR
21468                | SyntaxKind::JSON_BEHAVIOR_FALSE
21469                | SyntaxKind::JSON_BEHAVIOR_NULL
21470                | SyntaxKind::JSON_BEHAVIOR_TRUE
21471                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
21472        )
21473    }
21474    #[inline]
21475    fn cast(syntax: SyntaxNode) -> Option<Self> {
21476        let res = match syntax.kind() {
21477            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
21478                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
21479            }
21480            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
21481                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
21482            }
21483            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
21484                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
21485            }
21486            SyntaxKind::JSON_BEHAVIOR_ERROR => {
21487                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
21488            }
21489            SyntaxKind::JSON_BEHAVIOR_FALSE => {
21490                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
21491            }
21492            SyntaxKind::JSON_BEHAVIOR_NULL => {
21493                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
21494            }
21495            SyntaxKind::JSON_BEHAVIOR_TRUE => {
21496                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
21497            }
21498            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
21499                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
21500            }
21501            _ => {
21502                return None;
21503            }
21504        };
21505        Some(res)
21506    }
21507    #[inline]
21508    fn syntax(&self) -> &SyntaxNode {
21509        match self {
21510            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
21511            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
21512            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
21513            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
21514            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
21515            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
21516            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
21517            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
21518        }
21519    }
21520}
21521impl From<JsonBehaviorDefault> for JsonBehavior {
21522    #[inline]
21523    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
21524        JsonBehavior::JsonBehaviorDefault(node)
21525    }
21526}
21527impl From<JsonBehaviorEmptyArray> for JsonBehavior {
21528    #[inline]
21529    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
21530        JsonBehavior::JsonBehaviorEmptyArray(node)
21531    }
21532}
21533impl From<JsonBehaviorEmptyObject> for JsonBehavior {
21534    #[inline]
21535    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
21536        JsonBehavior::JsonBehaviorEmptyObject(node)
21537    }
21538}
21539impl From<JsonBehaviorError> for JsonBehavior {
21540    #[inline]
21541    fn from(node: JsonBehaviorError) -> JsonBehavior {
21542        JsonBehavior::JsonBehaviorError(node)
21543    }
21544}
21545impl From<JsonBehaviorFalse> for JsonBehavior {
21546    #[inline]
21547    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
21548        JsonBehavior::JsonBehaviorFalse(node)
21549    }
21550}
21551impl From<JsonBehaviorNull> for JsonBehavior {
21552    #[inline]
21553    fn from(node: JsonBehaviorNull) -> JsonBehavior {
21554        JsonBehavior::JsonBehaviorNull(node)
21555    }
21556}
21557impl From<JsonBehaviorTrue> for JsonBehavior {
21558    #[inline]
21559    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
21560        JsonBehavior::JsonBehaviorTrue(node)
21561    }
21562}
21563impl From<JsonBehaviorUnknown> for JsonBehavior {
21564    #[inline]
21565    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
21566        JsonBehavior::JsonBehaviorUnknown(node)
21567    }
21568}
21569impl AstNode for MatchType {
21570    #[inline]
21571    fn can_cast(kind: SyntaxKind) -> bool {
21572        matches!(
21573            kind,
21574            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
21575        )
21576    }
21577    #[inline]
21578    fn cast(syntax: SyntaxNode) -> Option<Self> {
21579        let res = match syntax.kind() {
21580            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
21581            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
21582            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
21583            _ => {
21584                return None;
21585            }
21586        };
21587        Some(res)
21588    }
21589    #[inline]
21590    fn syntax(&self) -> &SyntaxNode {
21591        match self {
21592            MatchType::MatchFull(it) => &it.syntax,
21593            MatchType::MatchPartial(it) => &it.syntax,
21594            MatchType::MatchSimple(it) => &it.syntax,
21595        }
21596    }
21597}
21598impl From<MatchFull> for MatchType {
21599    #[inline]
21600    fn from(node: MatchFull) -> MatchType {
21601        MatchType::MatchFull(node)
21602    }
21603}
21604impl From<MatchPartial> for MatchType {
21605    #[inline]
21606    fn from(node: MatchPartial) -> MatchType {
21607        MatchType::MatchPartial(node)
21608    }
21609}
21610impl From<MatchSimple> for MatchType {
21611    #[inline]
21612    fn from(node: MatchSimple) -> MatchType {
21613        MatchType::MatchSimple(node)
21614    }
21615}
21616impl AstNode for MergeAction {
21617    #[inline]
21618    fn can_cast(kind: SyntaxKind) -> bool {
21619        matches!(
21620            kind,
21621            SyntaxKind::MERGE_DELETE
21622                | SyntaxKind::MERGE_DO_NOTHING
21623                | SyntaxKind::MERGE_INSERT
21624                | SyntaxKind::MERGE_UPDATE
21625        )
21626    }
21627    #[inline]
21628    fn cast(syntax: SyntaxNode) -> Option<Self> {
21629        let res = match syntax.kind() {
21630            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
21631            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
21632            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
21633            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
21634            _ => {
21635                return None;
21636            }
21637        };
21638        Some(res)
21639    }
21640    #[inline]
21641    fn syntax(&self) -> &SyntaxNode {
21642        match self {
21643            MergeAction::MergeDelete(it) => &it.syntax,
21644            MergeAction::MergeDoNothing(it) => &it.syntax,
21645            MergeAction::MergeInsert(it) => &it.syntax,
21646            MergeAction::MergeUpdate(it) => &it.syntax,
21647        }
21648    }
21649}
21650impl From<MergeDelete> for MergeAction {
21651    #[inline]
21652    fn from(node: MergeDelete) -> MergeAction {
21653        MergeAction::MergeDelete(node)
21654    }
21655}
21656impl From<MergeDoNothing> for MergeAction {
21657    #[inline]
21658    fn from(node: MergeDoNothing) -> MergeAction {
21659        MergeAction::MergeDoNothing(node)
21660    }
21661}
21662impl From<MergeInsert> for MergeAction {
21663    #[inline]
21664    fn from(node: MergeInsert) -> MergeAction {
21665        MergeAction::MergeInsert(node)
21666    }
21667}
21668impl From<MergeUpdate> for MergeAction {
21669    #[inline]
21670    fn from(node: MergeUpdate) -> MergeAction {
21671        MergeAction::MergeUpdate(node)
21672    }
21673}
21674impl AstNode for MergeWhenClause {
21675    #[inline]
21676    fn can_cast(kind: SyntaxKind) -> bool {
21677        matches!(
21678            kind,
21679            SyntaxKind::MERGE_WHEN_MATCHED
21680                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
21681                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
21682        )
21683    }
21684    #[inline]
21685    fn cast(syntax: SyntaxNode) -> Option<Self> {
21686        let res = match syntax.kind() {
21687            SyntaxKind::MERGE_WHEN_MATCHED => {
21688                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
21689            }
21690            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
21691                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
21692            }
21693            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
21694                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
21695            }
21696            _ => {
21697                return None;
21698            }
21699        };
21700        Some(res)
21701    }
21702    #[inline]
21703    fn syntax(&self) -> &SyntaxNode {
21704        match self {
21705            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
21706            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
21707            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
21708        }
21709    }
21710}
21711impl From<MergeWhenMatched> for MergeWhenClause {
21712    #[inline]
21713    fn from(node: MergeWhenMatched) -> MergeWhenClause {
21714        MergeWhenClause::MergeWhenMatched(node)
21715    }
21716}
21717impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
21718    #[inline]
21719    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
21720        MergeWhenClause::MergeWhenNotMatchedSource(node)
21721    }
21722}
21723impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
21724    #[inline]
21725    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
21726        MergeWhenClause::MergeWhenNotMatchedTarget(node)
21727    }
21728}
21729impl AstNode for OnCommitAction {
21730    #[inline]
21731    fn can_cast(kind: SyntaxKind) -> bool {
21732        matches!(
21733            kind,
21734            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
21735        )
21736    }
21737    #[inline]
21738    fn cast(syntax: SyntaxNode) -> Option<Self> {
21739        let res = match syntax.kind() {
21740            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
21741            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
21742            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
21743            _ => {
21744                return None;
21745            }
21746        };
21747        Some(res)
21748    }
21749    #[inline]
21750    fn syntax(&self) -> &SyntaxNode {
21751        match self {
21752            OnCommitAction::DeleteRows(it) => &it.syntax,
21753            OnCommitAction::Drop(it) => &it.syntax,
21754            OnCommitAction::PreserveRows(it) => &it.syntax,
21755        }
21756    }
21757}
21758impl From<DeleteRows> for OnCommitAction {
21759    #[inline]
21760    fn from(node: DeleteRows) -> OnCommitAction {
21761        OnCommitAction::DeleteRows(node)
21762    }
21763}
21764impl From<Drop> for OnCommitAction {
21765    #[inline]
21766    fn from(node: Drop) -> OnCommitAction {
21767        OnCommitAction::Drop(node)
21768    }
21769}
21770impl From<PreserveRows> for OnCommitAction {
21771    #[inline]
21772    fn from(node: PreserveRows) -> OnCommitAction {
21773        OnCommitAction::PreserveRows(node)
21774    }
21775}
21776impl AstNode for ParamMode {
21777    #[inline]
21778    fn can_cast(kind: SyntaxKind) -> bool {
21779        matches!(
21780            kind,
21781            SyntaxKind::PARAM_IN
21782                | SyntaxKind::PARAM_IN_OUT
21783                | SyntaxKind::PARAM_OUT
21784                | SyntaxKind::PARAM_VARIADIC
21785        )
21786    }
21787    #[inline]
21788    fn cast(syntax: SyntaxNode) -> Option<Self> {
21789        let res = match syntax.kind() {
21790            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
21791            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
21792            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
21793            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
21794            _ => {
21795                return None;
21796            }
21797        };
21798        Some(res)
21799    }
21800    #[inline]
21801    fn syntax(&self) -> &SyntaxNode {
21802        match self {
21803            ParamMode::ParamIn(it) => &it.syntax,
21804            ParamMode::ParamInOut(it) => &it.syntax,
21805            ParamMode::ParamOut(it) => &it.syntax,
21806            ParamMode::ParamVariadic(it) => &it.syntax,
21807        }
21808    }
21809}
21810impl From<ParamIn> for ParamMode {
21811    #[inline]
21812    fn from(node: ParamIn) -> ParamMode {
21813        ParamMode::ParamIn(node)
21814    }
21815}
21816impl From<ParamInOut> for ParamMode {
21817    #[inline]
21818    fn from(node: ParamInOut) -> ParamMode {
21819        ParamMode::ParamInOut(node)
21820    }
21821}
21822impl From<ParamOut> for ParamMode {
21823    #[inline]
21824    fn from(node: ParamOut) -> ParamMode {
21825        ParamMode::ParamOut(node)
21826    }
21827}
21828impl From<ParamVariadic> for ParamMode {
21829    #[inline]
21830    fn from(node: ParamVariadic) -> ParamMode {
21831        ParamMode::ParamVariadic(node)
21832    }
21833}
21834impl AstNode for PartitionType {
21835    #[inline]
21836    fn can_cast(kind: SyntaxKind) -> bool {
21837        matches!(
21838            kind,
21839            SyntaxKind::PARTITION_DEFAULT
21840                | SyntaxKind::PARTITION_FOR_VALUES_FROM
21841                | SyntaxKind::PARTITION_FOR_VALUES_IN
21842                | SyntaxKind::PARTITION_FOR_VALUES_WITH
21843        )
21844    }
21845    #[inline]
21846    fn cast(syntax: SyntaxNode) -> Option<Self> {
21847        let res = match syntax.kind() {
21848            SyntaxKind::PARTITION_DEFAULT => {
21849                PartitionType::PartitionDefault(PartitionDefault { syntax })
21850            }
21851            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
21852                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
21853            }
21854            SyntaxKind::PARTITION_FOR_VALUES_IN => {
21855                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
21856            }
21857            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
21858                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
21859            }
21860            _ => {
21861                return None;
21862            }
21863        };
21864        Some(res)
21865    }
21866    #[inline]
21867    fn syntax(&self) -> &SyntaxNode {
21868        match self {
21869            PartitionType::PartitionDefault(it) => &it.syntax,
21870            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
21871            PartitionType::PartitionForValuesIn(it) => &it.syntax,
21872            PartitionType::PartitionForValuesWith(it) => &it.syntax,
21873        }
21874    }
21875}
21876impl From<PartitionDefault> for PartitionType {
21877    #[inline]
21878    fn from(node: PartitionDefault) -> PartitionType {
21879        PartitionType::PartitionDefault(node)
21880    }
21881}
21882impl From<PartitionForValuesFrom> for PartitionType {
21883    #[inline]
21884    fn from(node: PartitionForValuesFrom) -> PartitionType {
21885        PartitionType::PartitionForValuesFrom(node)
21886    }
21887}
21888impl From<PartitionForValuesIn> for PartitionType {
21889    #[inline]
21890    fn from(node: PartitionForValuesIn) -> PartitionType {
21891        PartitionType::PartitionForValuesIn(node)
21892    }
21893}
21894impl From<PartitionForValuesWith> for PartitionType {
21895    #[inline]
21896    fn from(node: PartitionForValuesWith) -> PartitionType {
21897        PartitionType::PartitionForValuesWith(node)
21898    }
21899}
21900impl AstNode for RefAction {
21901    #[inline]
21902    fn can_cast(kind: SyntaxKind) -> bool {
21903        matches!(
21904            kind,
21905            SyntaxKind::CASCADE
21906                | SyntaxKind::NO_ACTION
21907                | SyntaxKind::RESTRICT
21908                | SyntaxKind::SET_DEFAULT_COLUMNS
21909                | SyntaxKind::SET_NULL_COLUMNS
21910        )
21911    }
21912    #[inline]
21913    fn cast(syntax: SyntaxNode) -> Option<Self> {
21914        let res = match syntax.kind() {
21915            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
21916            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
21917            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
21918            SyntaxKind::SET_DEFAULT_COLUMNS => {
21919                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
21920            }
21921            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
21922            _ => {
21923                return None;
21924            }
21925        };
21926        Some(res)
21927    }
21928    #[inline]
21929    fn syntax(&self) -> &SyntaxNode {
21930        match self {
21931            RefAction::Cascade(it) => &it.syntax,
21932            RefAction::NoAction(it) => &it.syntax,
21933            RefAction::Restrict(it) => &it.syntax,
21934            RefAction::SetDefaultColumns(it) => &it.syntax,
21935            RefAction::SetNullColumns(it) => &it.syntax,
21936        }
21937    }
21938}
21939impl From<Cascade> for RefAction {
21940    #[inline]
21941    fn from(node: Cascade) -> RefAction {
21942        RefAction::Cascade(node)
21943    }
21944}
21945impl From<NoAction> for RefAction {
21946    #[inline]
21947    fn from(node: NoAction) -> RefAction {
21948        RefAction::NoAction(node)
21949    }
21950}
21951impl From<Restrict> for RefAction {
21952    #[inline]
21953    fn from(node: Restrict) -> RefAction {
21954        RefAction::Restrict(node)
21955    }
21956}
21957impl From<SetDefaultColumns> for RefAction {
21958    #[inline]
21959    fn from(node: SetDefaultColumns) -> RefAction {
21960        RefAction::SetDefaultColumns(node)
21961    }
21962}
21963impl From<SetNullColumns> for RefAction {
21964    #[inline]
21965    fn from(node: SetNullColumns) -> RefAction {
21966        RefAction::SetNullColumns(node)
21967    }
21968}
21969impl AstNode for Stmt {
21970    #[inline]
21971    fn can_cast(kind: SyntaxKind) -> bool {
21972        matches!(
21973            kind,
21974            SyntaxKind::ALTER_AGGREGATE
21975                | SyntaxKind::ALTER_COLLATION
21976                | SyntaxKind::ALTER_CONVERSION
21977                | SyntaxKind::ALTER_DATABASE
21978                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
21979                | SyntaxKind::ALTER_DOMAIN
21980                | SyntaxKind::ALTER_EVENT_TRIGGER
21981                | SyntaxKind::ALTER_EXTENSION
21982                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
21983                | SyntaxKind::ALTER_FOREIGN_TABLE
21984                | SyntaxKind::ALTER_FUNCTION
21985                | SyntaxKind::ALTER_GROUP
21986                | SyntaxKind::ALTER_INDEX
21987                | SyntaxKind::ALTER_LANGUAGE
21988                | SyntaxKind::ALTER_LARGE_OBJECT
21989                | SyntaxKind::ALTER_MATERIALIZED_VIEW
21990                | SyntaxKind::ALTER_OPERATOR
21991                | SyntaxKind::ALTER_OPERATOR_CLASS
21992                | SyntaxKind::ALTER_OPERATOR_FAMILY
21993                | SyntaxKind::ALTER_POLICY
21994                | SyntaxKind::ALTER_PROCEDURE
21995                | SyntaxKind::ALTER_PUBLICATION
21996                | SyntaxKind::ALTER_ROLE
21997                | SyntaxKind::ALTER_ROUTINE
21998                | SyntaxKind::ALTER_RULE
21999                | SyntaxKind::ALTER_SCHEMA
22000                | SyntaxKind::ALTER_SEQUENCE
22001                | SyntaxKind::ALTER_SERVER
22002                | SyntaxKind::ALTER_STATISTICS
22003                | SyntaxKind::ALTER_SUBSCRIPTION
22004                | SyntaxKind::ALTER_SYSTEM
22005                | SyntaxKind::ALTER_TABLE
22006                | SyntaxKind::ALTER_TABLESPACE
22007                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
22008                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
22009                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
22010                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
22011                | SyntaxKind::ALTER_TRIGGER
22012                | SyntaxKind::ALTER_TYPE
22013                | SyntaxKind::ALTER_USER
22014                | SyntaxKind::ALTER_USER_MAPPING
22015                | SyntaxKind::ALTER_VIEW
22016                | SyntaxKind::ANALYZE
22017                | SyntaxKind::BEGIN
22018                | SyntaxKind::CALL
22019                | SyntaxKind::CHECKPOINT
22020                | SyntaxKind::CLOSE
22021                | SyntaxKind::CLUSTER
22022                | SyntaxKind::COMMENT_ON
22023                | SyntaxKind::COMMIT
22024                | SyntaxKind::COPY
22025                | SyntaxKind::CREATE_ACCESS_METHOD
22026                | SyntaxKind::CREATE_AGGREGATE
22027                | SyntaxKind::CREATE_CAST
22028                | SyntaxKind::CREATE_COLLATION
22029                | SyntaxKind::CREATE_CONVERSION
22030                | SyntaxKind::CREATE_DATABASE
22031                | SyntaxKind::CREATE_DOMAIN
22032                | SyntaxKind::CREATE_EVENT_TRIGGER
22033                | SyntaxKind::CREATE_EXTENSION
22034                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
22035                | SyntaxKind::CREATE_FOREIGN_TABLE
22036                | SyntaxKind::CREATE_FUNCTION
22037                | SyntaxKind::CREATE_GROUP
22038                | SyntaxKind::CREATE_INDEX
22039                | SyntaxKind::CREATE_LANGUAGE
22040                | SyntaxKind::CREATE_MATERIALIZED_VIEW
22041                | SyntaxKind::CREATE_OPERATOR
22042                | SyntaxKind::CREATE_OPERATOR_CLASS
22043                | SyntaxKind::CREATE_OPERATOR_FAMILY
22044                | SyntaxKind::CREATE_POLICY
22045                | SyntaxKind::CREATE_PROCEDURE
22046                | SyntaxKind::CREATE_PUBLICATION
22047                | SyntaxKind::CREATE_ROLE
22048                | SyntaxKind::CREATE_RULE
22049                | SyntaxKind::CREATE_SCHEMA
22050                | SyntaxKind::CREATE_SEQUENCE
22051                | SyntaxKind::CREATE_SERVER
22052                | SyntaxKind::CREATE_STATISTICS
22053                | SyntaxKind::CREATE_SUBSCRIPTION
22054                | SyntaxKind::CREATE_TABLE
22055                | SyntaxKind::CREATE_TABLE_AS
22056                | SyntaxKind::CREATE_TABLESPACE
22057                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
22058                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
22059                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
22060                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
22061                | SyntaxKind::CREATE_TRANSFORM
22062                | SyntaxKind::CREATE_TRIGGER
22063                | SyntaxKind::CREATE_TYPE
22064                | SyntaxKind::CREATE_USER
22065                | SyntaxKind::CREATE_USER_MAPPING
22066                | SyntaxKind::CREATE_VIEW
22067                | SyntaxKind::DEALLOCATE
22068                | SyntaxKind::DECLARE
22069                | SyntaxKind::DELETE
22070                | SyntaxKind::DISCARD
22071                | SyntaxKind::DO
22072                | SyntaxKind::DROP_ACCESS_METHOD
22073                | SyntaxKind::DROP_AGGREGATE
22074                | SyntaxKind::DROP_CAST
22075                | SyntaxKind::DROP_COLLATION
22076                | SyntaxKind::DROP_CONVERSION
22077                | SyntaxKind::DROP_DATABASE
22078                | SyntaxKind::DROP_DOMAIN
22079                | SyntaxKind::DROP_EVENT_TRIGGER
22080                | SyntaxKind::DROP_EXTENSION
22081                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22082                | SyntaxKind::DROP_FOREIGN_TABLE
22083                | SyntaxKind::DROP_FUNCTION
22084                | SyntaxKind::DROP_GROUP
22085                | SyntaxKind::DROP_INDEX
22086                | SyntaxKind::DROP_LANGUAGE
22087                | SyntaxKind::DROP_MATERIALIZED_VIEW
22088                | SyntaxKind::DROP_OPERATOR
22089                | SyntaxKind::DROP_OPERATOR_CLASS
22090                | SyntaxKind::DROP_OPERATOR_FAMILY
22091                | SyntaxKind::DROP_OWNED
22092                | SyntaxKind::DROP_POLICY
22093                | SyntaxKind::DROP_PROCEDURE
22094                | SyntaxKind::DROP_PUBLICATION
22095                | SyntaxKind::DROP_ROLE
22096                | SyntaxKind::DROP_ROUTINE
22097                | SyntaxKind::DROP_RULE
22098                | SyntaxKind::DROP_SCHEMA
22099                | SyntaxKind::DROP_SEQUENCE
22100                | SyntaxKind::DROP_SERVER
22101                | SyntaxKind::DROP_STATISTICS
22102                | SyntaxKind::DROP_SUBSCRIPTION
22103                | SyntaxKind::DROP_TABLE
22104                | SyntaxKind::DROP_TABLESPACE
22105                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
22106                | SyntaxKind::DROP_TEXT_SEARCH_DICT
22107                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
22108                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
22109                | SyntaxKind::DROP_TRANSFORM
22110                | SyntaxKind::DROP_TRIGGER
22111                | SyntaxKind::DROP_TYPE
22112                | SyntaxKind::DROP_USER
22113                | SyntaxKind::DROP_USER_MAPPING
22114                | SyntaxKind::DROP_VIEW
22115                | SyntaxKind::EXECUTE
22116                | SyntaxKind::EXPLAIN
22117                | SyntaxKind::FETCH
22118                | SyntaxKind::GRANT
22119                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
22120                | SyntaxKind::INSERT
22121                | SyntaxKind::LISTEN
22122                | SyntaxKind::LOAD
22123                | SyntaxKind::LOCK
22124                | SyntaxKind::MERGE
22125                | SyntaxKind::MOVE
22126                | SyntaxKind::NOTIFY
22127                | SyntaxKind::PAREN_SELECT
22128                | SyntaxKind::PREPARE
22129                | SyntaxKind::PREPARE_TRANSACTION
22130                | SyntaxKind::REASSIGN
22131                | SyntaxKind::REFRESH
22132                | SyntaxKind::REINDEX
22133                | SyntaxKind::RELEASE_SAVEPOINT
22134                | SyntaxKind::RESET
22135                | SyntaxKind::REVOKE
22136                | SyntaxKind::ROLLBACK
22137                | SyntaxKind::SAVEPOINT
22138                | SyntaxKind::SECURITY_LABEL
22139                | SyntaxKind::SELECT
22140                | SyntaxKind::SELECT_INTO
22141                | SyntaxKind::SET
22142                | SyntaxKind::SET_CONSTRAINTS
22143                | SyntaxKind::SET_ROLE
22144                | SyntaxKind::SET_SESSION_AUTH
22145                | SyntaxKind::SET_TRANSACTION
22146                | SyntaxKind::SHOW
22147                | SyntaxKind::TABLE
22148                | SyntaxKind::TRUNCATE
22149                | SyntaxKind::UNLISTEN
22150                | SyntaxKind::UPDATE
22151                | SyntaxKind::VACUUM
22152                | SyntaxKind::VALUES
22153        )
22154    }
22155    #[inline]
22156    fn cast(syntax: SyntaxNode) -> Option<Self> {
22157        let res = match syntax.kind() {
22158            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
22159            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
22160            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
22161            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
22162            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
22163                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
22164            }
22165            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
22166            SyntaxKind::ALTER_EVENT_TRIGGER => {
22167                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
22168            }
22169            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
22170            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
22171                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
22172            }
22173            SyntaxKind::ALTER_FOREIGN_TABLE => {
22174                Stmt::AlterForeignTable(AlterForeignTable { syntax })
22175            }
22176            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
22177            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
22178            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
22179            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
22180            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
22181            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
22182                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
22183            }
22184            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
22185            SyntaxKind::ALTER_OPERATOR_CLASS => {
22186                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
22187            }
22188            SyntaxKind::ALTER_OPERATOR_FAMILY => {
22189                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
22190            }
22191            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
22192            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
22193            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
22194            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
22195            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
22196            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
22197            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
22198            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
22199            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
22200            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
22201            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
22202            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
22203            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
22204            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
22205            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
22206                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
22207            }
22208            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
22209                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
22210            }
22211            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
22212                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
22213            }
22214            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
22215                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
22216            }
22217            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
22218            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
22219            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
22220            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
22221            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
22222            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
22223            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
22224            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
22225            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
22226            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
22227            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
22228            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
22229            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
22230            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
22231            SyntaxKind::CREATE_ACCESS_METHOD => {
22232                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
22233            }
22234            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
22235            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
22236            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
22237            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
22238            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
22239            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
22240            SyntaxKind::CREATE_EVENT_TRIGGER => {
22241                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
22242            }
22243            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
22244            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
22245                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
22246            }
22247            SyntaxKind::CREATE_FOREIGN_TABLE => {
22248                Stmt::CreateForeignTable(CreateForeignTable { syntax })
22249            }
22250            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
22251            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
22252            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
22253            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
22254            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
22255                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
22256            }
22257            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
22258            SyntaxKind::CREATE_OPERATOR_CLASS => {
22259                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
22260            }
22261            SyntaxKind::CREATE_OPERATOR_FAMILY => {
22262                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
22263            }
22264            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
22265            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
22266            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
22267            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
22268            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
22269            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
22270            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
22271            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
22272            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
22273            SyntaxKind::CREATE_SUBSCRIPTION => {
22274                Stmt::CreateSubscription(CreateSubscription { syntax })
22275            }
22276            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
22277            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
22278            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
22279            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
22280                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
22281            }
22282            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
22283                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
22284            }
22285            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
22286                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
22287            }
22288            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
22289                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
22290            }
22291            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
22292            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
22293            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
22294            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
22295            SyntaxKind::CREATE_USER_MAPPING => {
22296                Stmt::CreateUserMapping(CreateUserMapping { syntax })
22297            }
22298            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
22299            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
22300            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
22301            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
22302            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
22303            SyntaxKind::DO => Stmt::Do(Do { syntax }),
22304            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
22305            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
22306            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
22307            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
22308            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
22309            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
22310            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
22311            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
22312            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
22313            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
22314                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
22315            }
22316            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
22317            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
22318            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
22319            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
22320            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
22321            SyntaxKind::DROP_MATERIALIZED_VIEW => {
22322                Stmt::DropMaterializedView(DropMaterializedView { syntax })
22323            }
22324            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
22325            SyntaxKind::DROP_OPERATOR_CLASS => {
22326                Stmt::DropOperatorClass(DropOperatorClass { syntax })
22327            }
22328            SyntaxKind::DROP_OPERATOR_FAMILY => {
22329                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
22330            }
22331            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
22332            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
22333            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
22334            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
22335            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
22336            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
22337            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
22338            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
22339            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
22340            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
22341            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
22342            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
22343            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
22344            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
22345            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
22346                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
22347            }
22348            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
22349                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
22350            }
22351            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
22352                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
22353            }
22354            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
22355                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
22356            }
22357            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
22358            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
22359            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
22360            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
22361            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
22362            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
22363            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
22364            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
22365            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
22366            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
22367            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
22368                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
22369            }
22370            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
22371            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
22372            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
22373            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
22374            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
22375            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
22376            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
22377            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
22378            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
22379            SyntaxKind::PREPARE_TRANSACTION => {
22380                Stmt::PrepareTransaction(PrepareTransaction { syntax })
22381            }
22382            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
22383            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
22384            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
22385            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
22386            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
22387            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
22388            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
22389            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
22390            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
22391            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
22392            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
22393            SyntaxKind::SET => Stmt::Set(Set { syntax }),
22394            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
22395            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
22396            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
22397            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
22398            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
22399            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
22400            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
22401            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
22402            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
22403            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
22404            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
22405            _ => {
22406                return None;
22407            }
22408        };
22409        Some(res)
22410    }
22411    #[inline]
22412    fn syntax(&self) -> &SyntaxNode {
22413        match self {
22414            Stmt::AlterAggregate(it) => &it.syntax,
22415            Stmt::AlterCollation(it) => &it.syntax,
22416            Stmt::AlterConversion(it) => &it.syntax,
22417            Stmt::AlterDatabase(it) => &it.syntax,
22418            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
22419            Stmt::AlterDomain(it) => &it.syntax,
22420            Stmt::AlterEventTrigger(it) => &it.syntax,
22421            Stmt::AlterExtension(it) => &it.syntax,
22422            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
22423            Stmt::AlterForeignTable(it) => &it.syntax,
22424            Stmt::AlterFunction(it) => &it.syntax,
22425            Stmt::AlterGroup(it) => &it.syntax,
22426            Stmt::AlterIndex(it) => &it.syntax,
22427            Stmt::AlterLanguage(it) => &it.syntax,
22428            Stmt::AlterLargeObject(it) => &it.syntax,
22429            Stmt::AlterMaterializedView(it) => &it.syntax,
22430            Stmt::AlterOperator(it) => &it.syntax,
22431            Stmt::AlterOperatorClass(it) => &it.syntax,
22432            Stmt::AlterOperatorFamily(it) => &it.syntax,
22433            Stmt::AlterPolicy(it) => &it.syntax,
22434            Stmt::AlterProcedure(it) => &it.syntax,
22435            Stmt::AlterPublication(it) => &it.syntax,
22436            Stmt::AlterRole(it) => &it.syntax,
22437            Stmt::AlterRoutine(it) => &it.syntax,
22438            Stmt::AlterRule(it) => &it.syntax,
22439            Stmt::AlterSchema(it) => &it.syntax,
22440            Stmt::AlterSequence(it) => &it.syntax,
22441            Stmt::AlterServer(it) => &it.syntax,
22442            Stmt::AlterStatistics(it) => &it.syntax,
22443            Stmt::AlterSubscription(it) => &it.syntax,
22444            Stmt::AlterSystem(it) => &it.syntax,
22445            Stmt::AlterTable(it) => &it.syntax,
22446            Stmt::AlterTablespace(it) => &it.syntax,
22447            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
22448            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
22449            Stmt::AlterTextSearchParser(it) => &it.syntax,
22450            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
22451            Stmt::AlterTrigger(it) => &it.syntax,
22452            Stmt::AlterType(it) => &it.syntax,
22453            Stmt::AlterUser(it) => &it.syntax,
22454            Stmt::AlterUserMapping(it) => &it.syntax,
22455            Stmt::AlterView(it) => &it.syntax,
22456            Stmt::Analyze(it) => &it.syntax,
22457            Stmt::Begin(it) => &it.syntax,
22458            Stmt::Call(it) => &it.syntax,
22459            Stmt::Checkpoint(it) => &it.syntax,
22460            Stmt::Close(it) => &it.syntax,
22461            Stmt::Cluster(it) => &it.syntax,
22462            Stmt::CommentOn(it) => &it.syntax,
22463            Stmt::Commit(it) => &it.syntax,
22464            Stmt::Copy(it) => &it.syntax,
22465            Stmt::CreateAccessMethod(it) => &it.syntax,
22466            Stmt::CreateAggregate(it) => &it.syntax,
22467            Stmt::CreateCast(it) => &it.syntax,
22468            Stmt::CreateCollation(it) => &it.syntax,
22469            Stmt::CreateConversion(it) => &it.syntax,
22470            Stmt::CreateDatabase(it) => &it.syntax,
22471            Stmt::CreateDomain(it) => &it.syntax,
22472            Stmt::CreateEventTrigger(it) => &it.syntax,
22473            Stmt::CreateExtension(it) => &it.syntax,
22474            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
22475            Stmt::CreateForeignTable(it) => &it.syntax,
22476            Stmt::CreateFunction(it) => &it.syntax,
22477            Stmt::CreateGroup(it) => &it.syntax,
22478            Stmt::CreateIndex(it) => &it.syntax,
22479            Stmt::CreateLanguage(it) => &it.syntax,
22480            Stmt::CreateMaterializedView(it) => &it.syntax,
22481            Stmt::CreateOperator(it) => &it.syntax,
22482            Stmt::CreateOperatorClass(it) => &it.syntax,
22483            Stmt::CreateOperatorFamily(it) => &it.syntax,
22484            Stmt::CreatePolicy(it) => &it.syntax,
22485            Stmt::CreateProcedure(it) => &it.syntax,
22486            Stmt::CreatePublication(it) => &it.syntax,
22487            Stmt::CreateRole(it) => &it.syntax,
22488            Stmt::CreateRule(it) => &it.syntax,
22489            Stmt::CreateSchema(it) => &it.syntax,
22490            Stmt::CreateSequence(it) => &it.syntax,
22491            Stmt::CreateServer(it) => &it.syntax,
22492            Stmt::CreateStatistics(it) => &it.syntax,
22493            Stmt::CreateSubscription(it) => &it.syntax,
22494            Stmt::CreateTable(it) => &it.syntax,
22495            Stmt::CreateTableAs(it) => &it.syntax,
22496            Stmt::CreateTablespace(it) => &it.syntax,
22497            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
22498            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
22499            Stmt::CreateTextSearchParser(it) => &it.syntax,
22500            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
22501            Stmt::CreateTransform(it) => &it.syntax,
22502            Stmt::CreateTrigger(it) => &it.syntax,
22503            Stmt::CreateType(it) => &it.syntax,
22504            Stmt::CreateUser(it) => &it.syntax,
22505            Stmt::CreateUserMapping(it) => &it.syntax,
22506            Stmt::CreateView(it) => &it.syntax,
22507            Stmt::Deallocate(it) => &it.syntax,
22508            Stmt::Declare(it) => &it.syntax,
22509            Stmt::Delete(it) => &it.syntax,
22510            Stmt::Discard(it) => &it.syntax,
22511            Stmt::Do(it) => &it.syntax,
22512            Stmt::DropAccessMethod(it) => &it.syntax,
22513            Stmt::DropAggregate(it) => &it.syntax,
22514            Stmt::DropCast(it) => &it.syntax,
22515            Stmt::DropCollation(it) => &it.syntax,
22516            Stmt::DropConversion(it) => &it.syntax,
22517            Stmt::DropDatabase(it) => &it.syntax,
22518            Stmt::DropDomain(it) => &it.syntax,
22519            Stmt::DropEventTrigger(it) => &it.syntax,
22520            Stmt::DropExtension(it) => &it.syntax,
22521            Stmt::DropForeignDataWrapper(it) => &it.syntax,
22522            Stmt::DropForeignTable(it) => &it.syntax,
22523            Stmt::DropFunction(it) => &it.syntax,
22524            Stmt::DropGroup(it) => &it.syntax,
22525            Stmt::DropIndex(it) => &it.syntax,
22526            Stmt::DropLanguage(it) => &it.syntax,
22527            Stmt::DropMaterializedView(it) => &it.syntax,
22528            Stmt::DropOperator(it) => &it.syntax,
22529            Stmt::DropOperatorClass(it) => &it.syntax,
22530            Stmt::DropOperatorFamily(it) => &it.syntax,
22531            Stmt::DropOwned(it) => &it.syntax,
22532            Stmt::DropPolicy(it) => &it.syntax,
22533            Stmt::DropProcedure(it) => &it.syntax,
22534            Stmt::DropPublication(it) => &it.syntax,
22535            Stmt::DropRole(it) => &it.syntax,
22536            Stmt::DropRoutine(it) => &it.syntax,
22537            Stmt::DropRule(it) => &it.syntax,
22538            Stmt::DropSchema(it) => &it.syntax,
22539            Stmt::DropSequence(it) => &it.syntax,
22540            Stmt::DropServer(it) => &it.syntax,
22541            Stmt::DropStatistics(it) => &it.syntax,
22542            Stmt::DropSubscription(it) => &it.syntax,
22543            Stmt::DropTable(it) => &it.syntax,
22544            Stmt::DropTablespace(it) => &it.syntax,
22545            Stmt::DropTextSearchConfig(it) => &it.syntax,
22546            Stmt::DropTextSearchDict(it) => &it.syntax,
22547            Stmt::DropTextSearchParser(it) => &it.syntax,
22548            Stmt::DropTextSearchTemplate(it) => &it.syntax,
22549            Stmt::DropTransform(it) => &it.syntax,
22550            Stmt::DropTrigger(it) => &it.syntax,
22551            Stmt::DropType(it) => &it.syntax,
22552            Stmt::DropUser(it) => &it.syntax,
22553            Stmt::DropUserMapping(it) => &it.syntax,
22554            Stmt::DropView(it) => &it.syntax,
22555            Stmt::Execute(it) => &it.syntax,
22556            Stmt::Explain(it) => &it.syntax,
22557            Stmt::Fetch(it) => &it.syntax,
22558            Stmt::Grant(it) => &it.syntax,
22559            Stmt::ImportForeignSchema(it) => &it.syntax,
22560            Stmt::Insert(it) => &it.syntax,
22561            Stmt::Listen(it) => &it.syntax,
22562            Stmt::Load(it) => &it.syntax,
22563            Stmt::Lock(it) => &it.syntax,
22564            Stmt::Merge(it) => &it.syntax,
22565            Stmt::Move(it) => &it.syntax,
22566            Stmt::Notify(it) => &it.syntax,
22567            Stmt::ParenSelect(it) => &it.syntax,
22568            Stmt::Prepare(it) => &it.syntax,
22569            Stmt::PrepareTransaction(it) => &it.syntax,
22570            Stmt::Reassign(it) => &it.syntax,
22571            Stmt::Refresh(it) => &it.syntax,
22572            Stmt::Reindex(it) => &it.syntax,
22573            Stmt::ReleaseSavepoint(it) => &it.syntax,
22574            Stmt::Reset(it) => &it.syntax,
22575            Stmt::Revoke(it) => &it.syntax,
22576            Stmt::Rollback(it) => &it.syntax,
22577            Stmt::Savepoint(it) => &it.syntax,
22578            Stmt::SecurityLabel(it) => &it.syntax,
22579            Stmt::Select(it) => &it.syntax,
22580            Stmt::SelectInto(it) => &it.syntax,
22581            Stmt::Set(it) => &it.syntax,
22582            Stmt::SetConstraints(it) => &it.syntax,
22583            Stmt::SetRole(it) => &it.syntax,
22584            Stmt::SetSessionAuth(it) => &it.syntax,
22585            Stmt::SetTransaction(it) => &it.syntax,
22586            Stmt::Show(it) => &it.syntax,
22587            Stmt::Table(it) => &it.syntax,
22588            Stmt::Truncate(it) => &it.syntax,
22589            Stmt::Unlisten(it) => &it.syntax,
22590            Stmt::Update(it) => &it.syntax,
22591            Stmt::Vacuum(it) => &it.syntax,
22592            Stmt::Values(it) => &it.syntax,
22593        }
22594    }
22595}
22596impl From<AlterAggregate> for Stmt {
22597    #[inline]
22598    fn from(node: AlterAggregate) -> Stmt {
22599        Stmt::AlterAggregate(node)
22600    }
22601}
22602impl From<AlterCollation> for Stmt {
22603    #[inline]
22604    fn from(node: AlterCollation) -> Stmt {
22605        Stmt::AlterCollation(node)
22606    }
22607}
22608impl From<AlterConversion> for Stmt {
22609    #[inline]
22610    fn from(node: AlterConversion) -> Stmt {
22611        Stmt::AlterConversion(node)
22612    }
22613}
22614impl From<AlterDatabase> for Stmt {
22615    #[inline]
22616    fn from(node: AlterDatabase) -> Stmt {
22617        Stmt::AlterDatabase(node)
22618    }
22619}
22620impl From<AlterDefaultPrivileges> for Stmt {
22621    #[inline]
22622    fn from(node: AlterDefaultPrivileges) -> Stmt {
22623        Stmt::AlterDefaultPrivileges(node)
22624    }
22625}
22626impl From<AlterDomain> for Stmt {
22627    #[inline]
22628    fn from(node: AlterDomain) -> Stmt {
22629        Stmt::AlterDomain(node)
22630    }
22631}
22632impl From<AlterEventTrigger> for Stmt {
22633    #[inline]
22634    fn from(node: AlterEventTrigger) -> Stmt {
22635        Stmt::AlterEventTrigger(node)
22636    }
22637}
22638impl From<AlterExtension> for Stmt {
22639    #[inline]
22640    fn from(node: AlterExtension) -> Stmt {
22641        Stmt::AlterExtension(node)
22642    }
22643}
22644impl From<AlterForeignDataWrapper> for Stmt {
22645    #[inline]
22646    fn from(node: AlterForeignDataWrapper) -> Stmt {
22647        Stmt::AlterForeignDataWrapper(node)
22648    }
22649}
22650impl From<AlterForeignTable> for Stmt {
22651    #[inline]
22652    fn from(node: AlterForeignTable) -> Stmt {
22653        Stmt::AlterForeignTable(node)
22654    }
22655}
22656impl From<AlterFunction> for Stmt {
22657    #[inline]
22658    fn from(node: AlterFunction) -> Stmt {
22659        Stmt::AlterFunction(node)
22660    }
22661}
22662impl From<AlterGroup> for Stmt {
22663    #[inline]
22664    fn from(node: AlterGroup) -> Stmt {
22665        Stmt::AlterGroup(node)
22666    }
22667}
22668impl From<AlterIndex> for Stmt {
22669    #[inline]
22670    fn from(node: AlterIndex) -> Stmt {
22671        Stmt::AlterIndex(node)
22672    }
22673}
22674impl From<AlterLanguage> for Stmt {
22675    #[inline]
22676    fn from(node: AlterLanguage) -> Stmt {
22677        Stmt::AlterLanguage(node)
22678    }
22679}
22680impl From<AlterLargeObject> for Stmt {
22681    #[inline]
22682    fn from(node: AlterLargeObject) -> Stmt {
22683        Stmt::AlterLargeObject(node)
22684    }
22685}
22686impl From<AlterMaterializedView> for Stmt {
22687    #[inline]
22688    fn from(node: AlterMaterializedView) -> Stmt {
22689        Stmt::AlterMaterializedView(node)
22690    }
22691}
22692impl From<AlterOperator> for Stmt {
22693    #[inline]
22694    fn from(node: AlterOperator) -> Stmt {
22695        Stmt::AlterOperator(node)
22696    }
22697}
22698impl From<AlterOperatorClass> for Stmt {
22699    #[inline]
22700    fn from(node: AlterOperatorClass) -> Stmt {
22701        Stmt::AlterOperatorClass(node)
22702    }
22703}
22704impl From<AlterOperatorFamily> for Stmt {
22705    #[inline]
22706    fn from(node: AlterOperatorFamily) -> Stmt {
22707        Stmt::AlterOperatorFamily(node)
22708    }
22709}
22710impl From<AlterPolicy> for Stmt {
22711    #[inline]
22712    fn from(node: AlterPolicy) -> Stmt {
22713        Stmt::AlterPolicy(node)
22714    }
22715}
22716impl From<AlterProcedure> for Stmt {
22717    #[inline]
22718    fn from(node: AlterProcedure) -> Stmt {
22719        Stmt::AlterProcedure(node)
22720    }
22721}
22722impl From<AlterPublication> for Stmt {
22723    #[inline]
22724    fn from(node: AlterPublication) -> Stmt {
22725        Stmt::AlterPublication(node)
22726    }
22727}
22728impl From<AlterRole> for Stmt {
22729    #[inline]
22730    fn from(node: AlterRole) -> Stmt {
22731        Stmt::AlterRole(node)
22732    }
22733}
22734impl From<AlterRoutine> for Stmt {
22735    #[inline]
22736    fn from(node: AlterRoutine) -> Stmt {
22737        Stmt::AlterRoutine(node)
22738    }
22739}
22740impl From<AlterRule> for Stmt {
22741    #[inline]
22742    fn from(node: AlterRule) -> Stmt {
22743        Stmt::AlterRule(node)
22744    }
22745}
22746impl From<AlterSchema> for Stmt {
22747    #[inline]
22748    fn from(node: AlterSchema) -> Stmt {
22749        Stmt::AlterSchema(node)
22750    }
22751}
22752impl From<AlterSequence> for Stmt {
22753    #[inline]
22754    fn from(node: AlterSequence) -> Stmt {
22755        Stmt::AlterSequence(node)
22756    }
22757}
22758impl From<AlterServer> for Stmt {
22759    #[inline]
22760    fn from(node: AlterServer) -> Stmt {
22761        Stmt::AlterServer(node)
22762    }
22763}
22764impl From<AlterStatistics> for Stmt {
22765    #[inline]
22766    fn from(node: AlterStatistics) -> Stmt {
22767        Stmt::AlterStatistics(node)
22768    }
22769}
22770impl From<AlterSubscription> for Stmt {
22771    #[inline]
22772    fn from(node: AlterSubscription) -> Stmt {
22773        Stmt::AlterSubscription(node)
22774    }
22775}
22776impl From<AlterSystem> for Stmt {
22777    #[inline]
22778    fn from(node: AlterSystem) -> Stmt {
22779        Stmt::AlterSystem(node)
22780    }
22781}
22782impl From<AlterTable> for Stmt {
22783    #[inline]
22784    fn from(node: AlterTable) -> Stmt {
22785        Stmt::AlterTable(node)
22786    }
22787}
22788impl From<AlterTablespace> for Stmt {
22789    #[inline]
22790    fn from(node: AlterTablespace) -> Stmt {
22791        Stmt::AlterTablespace(node)
22792    }
22793}
22794impl From<AlterTextSearchConfiguration> for Stmt {
22795    #[inline]
22796    fn from(node: AlterTextSearchConfiguration) -> Stmt {
22797        Stmt::AlterTextSearchConfiguration(node)
22798    }
22799}
22800impl From<AlterTextSearchDictionary> for Stmt {
22801    #[inline]
22802    fn from(node: AlterTextSearchDictionary) -> Stmt {
22803        Stmt::AlterTextSearchDictionary(node)
22804    }
22805}
22806impl From<AlterTextSearchParser> for Stmt {
22807    #[inline]
22808    fn from(node: AlterTextSearchParser) -> Stmt {
22809        Stmt::AlterTextSearchParser(node)
22810    }
22811}
22812impl From<AlterTextSearchTemplate> for Stmt {
22813    #[inline]
22814    fn from(node: AlterTextSearchTemplate) -> Stmt {
22815        Stmt::AlterTextSearchTemplate(node)
22816    }
22817}
22818impl From<AlterTrigger> for Stmt {
22819    #[inline]
22820    fn from(node: AlterTrigger) -> Stmt {
22821        Stmt::AlterTrigger(node)
22822    }
22823}
22824impl From<AlterType> for Stmt {
22825    #[inline]
22826    fn from(node: AlterType) -> Stmt {
22827        Stmt::AlterType(node)
22828    }
22829}
22830impl From<AlterUser> for Stmt {
22831    #[inline]
22832    fn from(node: AlterUser) -> Stmt {
22833        Stmt::AlterUser(node)
22834    }
22835}
22836impl From<AlterUserMapping> for Stmt {
22837    #[inline]
22838    fn from(node: AlterUserMapping) -> Stmt {
22839        Stmt::AlterUserMapping(node)
22840    }
22841}
22842impl From<AlterView> for Stmt {
22843    #[inline]
22844    fn from(node: AlterView) -> Stmt {
22845        Stmt::AlterView(node)
22846    }
22847}
22848impl From<Analyze> for Stmt {
22849    #[inline]
22850    fn from(node: Analyze) -> Stmt {
22851        Stmt::Analyze(node)
22852    }
22853}
22854impl From<Begin> for Stmt {
22855    #[inline]
22856    fn from(node: Begin) -> Stmt {
22857        Stmt::Begin(node)
22858    }
22859}
22860impl From<Call> for Stmt {
22861    #[inline]
22862    fn from(node: Call) -> Stmt {
22863        Stmt::Call(node)
22864    }
22865}
22866impl From<Checkpoint> for Stmt {
22867    #[inline]
22868    fn from(node: Checkpoint) -> Stmt {
22869        Stmt::Checkpoint(node)
22870    }
22871}
22872impl From<Close> for Stmt {
22873    #[inline]
22874    fn from(node: Close) -> Stmt {
22875        Stmt::Close(node)
22876    }
22877}
22878impl From<Cluster> for Stmt {
22879    #[inline]
22880    fn from(node: Cluster) -> Stmt {
22881        Stmt::Cluster(node)
22882    }
22883}
22884impl From<CommentOn> for Stmt {
22885    #[inline]
22886    fn from(node: CommentOn) -> Stmt {
22887        Stmt::CommentOn(node)
22888    }
22889}
22890impl From<Commit> for Stmt {
22891    #[inline]
22892    fn from(node: Commit) -> Stmt {
22893        Stmt::Commit(node)
22894    }
22895}
22896impl From<Copy> for Stmt {
22897    #[inline]
22898    fn from(node: Copy) -> Stmt {
22899        Stmt::Copy(node)
22900    }
22901}
22902impl From<CreateAccessMethod> for Stmt {
22903    #[inline]
22904    fn from(node: CreateAccessMethod) -> Stmt {
22905        Stmt::CreateAccessMethod(node)
22906    }
22907}
22908impl From<CreateAggregate> for Stmt {
22909    #[inline]
22910    fn from(node: CreateAggregate) -> Stmt {
22911        Stmt::CreateAggregate(node)
22912    }
22913}
22914impl From<CreateCast> for Stmt {
22915    #[inline]
22916    fn from(node: CreateCast) -> Stmt {
22917        Stmt::CreateCast(node)
22918    }
22919}
22920impl From<CreateCollation> for Stmt {
22921    #[inline]
22922    fn from(node: CreateCollation) -> Stmt {
22923        Stmt::CreateCollation(node)
22924    }
22925}
22926impl From<CreateConversion> for Stmt {
22927    #[inline]
22928    fn from(node: CreateConversion) -> Stmt {
22929        Stmt::CreateConversion(node)
22930    }
22931}
22932impl From<CreateDatabase> for Stmt {
22933    #[inline]
22934    fn from(node: CreateDatabase) -> Stmt {
22935        Stmt::CreateDatabase(node)
22936    }
22937}
22938impl From<CreateDomain> for Stmt {
22939    #[inline]
22940    fn from(node: CreateDomain) -> Stmt {
22941        Stmt::CreateDomain(node)
22942    }
22943}
22944impl From<CreateEventTrigger> for Stmt {
22945    #[inline]
22946    fn from(node: CreateEventTrigger) -> Stmt {
22947        Stmt::CreateEventTrigger(node)
22948    }
22949}
22950impl From<CreateExtension> for Stmt {
22951    #[inline]
22952    fn from(node: CreateExtension) -> Stmt {
22953        Stmt::CreateExtension(node)
22954    }
22955}
22956impl From<CreateForeignDataWrapper> for Stmt {
22957    #[inline]
22958    fn from(node: CreateForeignDataWrapper) -> Stmt {
22959        Stmt::CreateForeignDataWrapper(node)
22960    }
22961}
22962impl From<CreateForeignTable> for Stmt {
22963    #[inline]
22964    fn from(node: CreateForeignTable) -> Stmt {
22965        Stmt::CreateForeignTable(node)
22966    }
22967}
22968impl From<CreateFunction> for Stmt {
22969    #[inline]
22970    fn from(node: CreateFunction) -> Stmt {
22971        Stmt::CreateFunction(node)
22972    }
22973}
22974impl From<CreateGroup> for Stmt {
22975    #[inline]
22976    fn from(node: CreateGroup) -> Stmt {
22977        Stmt::CreateGroup(node)
22978    }
22979}
22980impl From<CreateIndex> for Stmt {
22981    #[inline]
22982    fn from(node: CreateIndex) -> Stmt {
22983        Stmt::CreateIndex(node)
22984    }
22985}
22986impl From<CreateLanguage> for Stmt {
22987    #[inline]
22988    fn from(node: CreateLanguage) -> Stmt {
22989        Stmt::CreateLanguage(node)
22990    }
22991}
22992impl From<CreateMaterializedView> for Stmt {
22993    #[inline]
22994    fn from(node: CreateMaterializedView) -> Stmt {
22995        Stmt::CreateMaterializedView(node)
22996    }
22997}
22998impl From<CreateOperator> for Stmt {
22999    #[inline]
23000    fn from(node: CreateOperator) -> Stmt {
23001        Stmt::CreateOperator(node)
23002    }
23003}
23004impl From<CreateOperatorClass> for Stmt {
23005    #[inline]
23006    fn from(node: CreateOperatorClass) -> Stmt {
23007        Stmt::CreateOperatorClass(node)
23008    }
23009}
23010impl From<CreateOperatorFamily> for Stmt {
23011    #[inline]
23012    fn from(node: CreateOperatorFamily) -> Stmt {
23013        Stmt::CreateOperatorFamily(node)
23014    }
23015}
23016impl From<CreatePolicy> for Stmt {
23017    #[inline]
23018    fn from(node: CreatePolicy) -> Stmt {
23019        Stmt::CreatePolicy(node)
23020    }
23021}
23022impl From<CreateProcedure> for Stmt {
23023    #[inline]
23024    fn from(node: CreateProcedure) -> Stmt {
23025        Stmt::CreateProcedure(node)
23026    }
23027}
23028impl From<CreatePublication> for Stmt {
23029    #[inline]
23030    fn from(node: CreatePublication) -> Stmt {
23031        Stmt::CreatePublication(node)
23032    }
23033}
23034impl From<CreateRole> for Stmt {
23035    #[inline]
23036    fn from(node: CreateRole) -> Stmt {
23037        Stmt::CreateRole(node)
23038    }
23039}
23040impl From<CreateRule> for Stmt {
23041    #[inline]
23042    fn from(node: CreateRule) -> Stmt {
23043        Stmt::CreateRule(node)
23044    }
23045}
23046impl From<CreateSchema> for Stmt {
23047    #[inline]
23048    fn from(node: CreateSchema) -> Stmt {
23049        Stmt::CreateSchema(node)
23050    }
23051}
23052impl From<CreateSequence> for Stmt {
23053    #[inline]
23054    fn from(node: CreateSequence) -> Stmt {
23055        Stmt::CreateSequence(node)
23056    }
23057}
23058impl From<CreateServer> for Stmt {
23059    #[inline]
23060    fn from(node: CreateServer) -> Stmt {
23061        Stmt::CreateServer(node)
23062    }
23063}
23064impl From<CreateStatistics> for Stmt {
23065    #[inline]
23066    fn from(node: CreateStatistics) -> Stmt {
23067        Stmt::CreateStatistics(node)
23068    }
23069}
23070impl From<CreateSubscription> for Stmt {
23071    #[inline]
23072    fn from(node: CreateSubscription) -> Stmt {
23073        Stmt::CreateSubscription(node)
23074    }
23075}
23076impl From<CreateTable> for Stmt {
23077    #[inline]
23078    fn from(node: CreateTable) -> Stmt {
23079        Stmt::CreateTable(node)
23080    }
23081}
23082impl From<CreateTableAs> for Stmt {
23083    #[inline]
23084    fn from(node: CreateTableAs) -> Stmt {
23085        Stmt::CreateTableAs(node)
23086    }
23087}
23088impl From<CreateTablespace> for Stmt {
23089    #[inline]
23090    fn from(node: CreateTablespace) -> Stmt {
23091        Stmt::CreateTablespace(node)
23092    }
23093}
23094impl From<CreateTextSearchConfiguration> for Stmt {
23095    #[inline]
23096    fn from(node: CreateTextSearchConfiguration) -> Stmt {
23097        Stmt::CreateTextSearchConfiguration(node)
23098    }
23099}
23100impl From<CreateTextSearchDictionary> for Stmt {
23101    #[inline]
23102    fn from(node: CreateTextSearchDictionary) -> Stmt {
23103        Stmt::CreateTextSearchDictionary(node)
23104    }
23105}
23106impl From<CreateTextSearchParser> for Stmt {
23107    #[inline]
23108    fn from(node: CreateTextSearchParser) -> Stmt {
23109        Stmt::CreateTextSearchParser(node)
23110    }
23111}
23112impl From<CreateTextSearchTemplate> for Stmt {
23113    #[inline]
23114    fn from(node: CreateTextSearchTemplate) -> Stmt {
23115        Stmt::CreateTextSearchTemplate(node)
23116    }
23117}
23118impl From<CreateTransform> for Stmt {
23119    #[inline]
23120    fn from(node: CreateTransform) -> Stmt {
23121        Stmt::CreateTransform(node)
23122    }
23123}
23124impl From<CreateTrigger> for Stmt {
23125    #[inline]
23126    fn from(node: CreateTrigger) -> Stmt {
23127        Stmt::CreateTrigger(node)
23128    }
23129}
23130impl From<CreateType> for Stmt {
23131    #[inline]
23132    fn from(node: CreateType) -> Stmt {
23133        Stmt::CreateType(node)
23134    }
23135}
23136impl From<CreateUser> for Stmt {
23137    #[inline]
23138    fn from(node: CreateUser) -> Stmt {
23139        Stmt::CreateUser(node)
23140    }
23141}
23142impl From<CreateUserMapping> for Stmt {
23143    #[inline]
23144    fn from(node: CreateUserMapping) -> Stmt {
23145        Stmt::CreateUserMapping(node)
23146    }
23147}
23148impl From<CreateView> for Stmt {
23149    #[inline]
23150    fn from(node: CreateView) -> Stmt {
23151        Stmt::CreateView(node)
23152    }
23153}
23154impl From<Deallocate> for Stmt {
23155    #[inline]
23156    fn from(node: Deallocate) -> Stmt {
23157        Stmt::Deallocate(node)
23158    }
23159}
23160impl From<Declare> for Stmt {
23161    #[inline]
23162    fn from(node: Declare) -> Stmt {
23163        Stmt::Declare(node)
23164    }
23165}
23166impl From<Delete> for Stmt {
23167    #[inline]
23168    fn from(node: Delete) -> Stmt {
23169        Stmt::Delete(node)
23170    }
23171}
23172impl From<Discard> for Stmt {
23173    #[inline]
23174    fn from(node: Discard) -> Stmt {
23175        Stmt::Discard(node)
23176    }
23177}
23178impl From<Do> for Stmt {
23179    #[inline]
23180    fn from(node: Do) -> Stmt {
23181        Stmt::Do(node)
23182    }
23183}
23184impl From<DropAccessMethod> for Stmt {
23185    #[inline]
23186    fn from(node: DropAccessMethod) -> Stmt {
23187        Stmt::DropAccessMethod(node)
23188    }
23189}
23190impl From<DropAggregate> for Stmt {
23191    #[inline]
23192    fn from(node: DropAggregate) -> Stmt {
23193        Stmt::DropAggregate(node)
23194    }
23195}
23196impl From<DropCast> for Stmt {
23197    #[inline]
23198    fn from(node: DropCast) -> Stmt {
23199        Stmt::DropCast(node)
23200    }
23201}
23202impl From<DropCollation> for Stmt {
23203    #[inline]
23204    fn from(node: DropCollation) -> Stmt {
23205        Stmt::DropCollation(node)
23206    }
23207}
23208impl From<DropConversion> for Stmt {
23209    #[inline]
23210    fn from(node: DropConversion) -> Stmt {
23211        Stmt::DropConversion(node)
23212    }
23213}
23214impl From<DropDatabase> for Stmt {
23215    #[inline]
23216    fn from(node: DropDatabase) -> Stmt {
23217        Stmt::DropDatabase(node)
23218    }
23219}
23220impl From<DropDomain> for Stmt {
23221    #[inline]
23222    fn from(node: DropDomain) -> Stmt {
23223        Stmt::DropDomain(node)
23224    }
23225}
23226impl From<DropEventTrigger> for Stmt {
23227    #[inline]
23228    fn from(node: DropEventTrigger) -> Stmt {
23229        Stmt::DropEventTrigger(node)
23230    }
23231}
23232impl From<DropExtension> for Stmt {
23233    #[inline]
23234    fn from(node: DropExtension) -> Stmt {
23235        Stmt::DropExtension(node)
23236    }
23237}
23238impl From<DropForeignDataWrapper> for Stmt {
23239    #[inline]
23240    fn from(node: DropForeignDataWrapper) -> Stmt {
23241        Stmt::DropForeignDataWrapper(node)
23242    }
23243}
23244impl From<DropForeignTable> for Stmt {
23245    #[inline]
23246    fn from(node: DropForeignTable) -> Stmt {
23247        Stmt::DropForeignTable(node)
23248    }
23249}
23250impl From<DropFunction> for Stmt {
23251    #[inline]
23252    fn from(node: DropFunction) -> Stmt {
23253        Stmt::DropFunction(node)
23254    }
23255}
23256impl From<DropGroup> for Stmt {
23257    #[inline]
23258    fn from(node: DropGroup) -> Stmt {
23259        Stmt::DropGroup(node)
23260    }
23261}
23262impl From<DropIndex> for Stmt {
23263    #[inline]
23264    fn from(node: DropIndex) -> Stmt {
23265        Stmt::DropIndex(node)
23266    }
23267}
23268impl From<DropLanguage> for Stmt {
23269    #[inline]
23270    fn from(node: DropLanguage) -> Stmt {
23271        Stmt::DropLanguage(node)
23272    }
23273}
23274impl From<DropMaterializedView> for Stmt {
23275    #[inline]
23276    fn from(node: DropMaterializedView) -> Stmt {
23277        Stmt::DropMaterializedView(node)
23278    }
23279}
23280impl From<DropOperator> for Stmt {
23281    #[inline]
23282    fn from(node: DropOperator) -> Stmt {
23283        Stmt::DropOperator(node)
23284    }
23285}
23286impl From<DropOperatorClass> for Stmt {
23287    #[inline]
23288    fn from(node: DropOperatorClass) -> Stmt {
23289        Stmt::DropOperatorClass(node)
23290    }
23291}
23292impl From<DropOperatorFamily> for Stmt {
23293    #[inline]
23294    fn from(node: DropOperatorFamily) -> Stmt {
23295        Stmt::DropOperatorFamily(node)
23296    }
23297}
23298impl From<DropOwned> for Stmt {
23299    #[inline]
23300    fn from(node: DropOwned) -> Stmt {
23301        Stmt::DropOwned(node)
23302    }
23303}
23304impl From<DropPolicy> for Stmt {
23305    #[inline]
23306    fn from(node: DropPolicy) -> Stmt {
23307        Stmt::DropPolicy(node)
23308    }
23309}
23310impl From<DropProcedure> for Stmt {
23311    #[inline]
23312    fn from(node: DropProcedure) -> Stmt {
23313        Stmt::DropProcedure(node)
23314    }
23315}
23316impl From<DropPublication> for Stmt {
23317    #[inline]
23318    fn from(node: DropPublication) -> Stmt {
23319        Stmt::DropPublication(node)
23320    }
23321}
23322impl From<DropRole> for Stmt {
23323    #[inline]
23324    fn from(node: DropRole) -> Stmt {
23325        Stmt::DropRole(node)
23326    }
23327}
23328impl From<DropRoutine> for Stmt {
23329    #[inline]
23330    fn from(node: DropRoutine) -> Stmt {
23331        Stmt::DropRoutine(node)
23332    }
23333}
23334impl From<DropRule> for Stmt {
23335    #[inline]
23336    fn from(node: DropRule) -> Stmt {
23337        Stmt::DropRule(node)
23338    }
23339}
23340impl From<DropSchema> for Stmt {
23341    #[inline]
23342    fn from(node: DropSchema) -> Stmt {
23343        Stmt::DropSchema(node)
23344    }
23345}
23346impl From<DropSequence> for Stmt {
23347    #[inline]
23348    fn from(node: DropSequence) -> Stmt {
23349        Stmt::DropSequence(node)
23350    }
23351}
23352impl From<DropServer> for Stmt {
23353    #[inline]
23354    fn from(node: DropServer) -> Stmt {
23355        Stmt::DropServer(node)
23356    }
23357}
23358impl From<DropStatistics> for Stmt {
23359    #[inline]
23360    fn from(node: DropStatistics) -> Stmt {
23361        Stmt::DropStatistics(node)
23362    }
23363}
23364impl From<DropSubscription> for Stmt {
23365    #[inline]
23366    fn from(node: DropSubscription) -> Stmt {
23367        Stmt::DropSubscription(node)
23368    }
23369}
23370impl From<DropTable> for Stmt {
23371    #[inline]
23372    fn from(node: DropTable) -> Stmt {
23373        Stmt::DropTable(node)
23374    }
23375}
23376impl From<DropTablespace> for Stmt {
23377    #[inline]
23378    fn from(node: DropTablespace) -> Stmt {
23379        Stmt::DropTablespace(node)
23380    }
23381}
23382impl From<DropTextSearchConfig> for Stmt {
23383    #[inline]
23384    fn from(node: DropTextSearchConfig) -> Stmt {
23385        Stmt::DropTextSearchConfig(node)
23386    }
23387}
23388impl From<DropTextSearchDict> for Stmt {
23389    #[inline]
23390    fn from(node: DropTextSearchDict) -> Stmt {
23391        Stmt::DropTextSearchDict(node)
23392    }
23393}
23394impl From<DropTextSearchParser> for Stmt {
23395    #[inline]
23396    fn from(node: DropTextSearchParser) -> Stmt {
23397        Stmt::DropTextSearchParser(node)
23398    }
23399}
23400impl From<DropTextSearchTemplate> for Stmt {
23401    #[inline]
23402    fn from(node: DropTextSearchTemplate) -> Stmt {
23403        Stmt::DropTextSearchTemplate(node)
23404    }
23405}
23406impl From<DropTransform> for Stmt {
23407    #[inline]
23408    fn from(node: DropTransform) -> Stmt {
23409        Stmt::DropTransform(node)
23410    }
23411}
23412impl From<DropTrigger> for Stmt {
23413    #[inline]
23414    fn from(node: DropTrigger) -> Stmt {
23415        Stmt::DropTrigger(node)
23416    }
23417}
23418impl From<DropType> for Stmt {
23419    #[inline]
23420    fn from(node: DropType) -> Stmt {
23421        Stmt::DropType(node)
23422    }
23423}
23424impl From<DropUser> for Stmt {
23425    #[inline]
23426    fn from(node: DropUser) -> Stmt {
23427        Stmt::DropUser(node)
23428    }
23429}
23430impl From<DropUserMapping> for Stmt {
23431    #[inline]
23432    fn from(node: DropUserMapping) -> Stmt {
23433        Stmt::DropUserMapping(node)
23434    }
23435}
23436impl From<DropView> for Stmt {
23437    #[inline]
23438    fn from(node: DropView) -> Stmt {
23439        Stmt::DropView(node)
23440    }
23441}
23442impl From<Execute> for Stmt {
23443    #[inline]
23444    fn from(node: Execute) -> Stmt {
23445        Stmt::Execute(node)
23446    }
23447}
23448impl From<Explain> for Stmt {
23449    #[inline]
23450    fn from(node: Explain) -> Stmt {
23451        Stmt::Explain(node)
23452    }
23453}
23454impl From<Fetch> for Stmt {
23455    #[inline]
23456    fn from(node: Fetch) -> Stmt {
23457        Stmt::Fetch(node)
23458    }
23459}
23460impl From<Grant> for Stmt {
23461    #[inline]
23462    fn from(node: Grant) -> Stmt {
23463        Stmt::Grant(node)
23464    }
23465}
23466impl From<ImportForeignSchema> for Stmt {
23467    #[inline]
23468    fn from(node: ImportForeignSchema) -> Stmt {
23469        Stmt::ImportForeignSchema(node)
23470    }
23471}
23472impl From<Insert> for Stmt {
23473    #[inline]
23474    fn from(node: Insert) -> Stmt {
23475        Stmt::Insert(node)
23476    }
23477}
23478impl From<Listen> for Stmt {
23479    #[inline]
23480    fn from(node: Listen) -> Stmt {
23481        Stmt::Listen(node)
23482    }
23483}
23484impl From<Load> for Stmt {
23485    #[inline]
23486    fn from(node: Load) -> Stmt {
23487        Stmt::Load(node)
23488    }
23489}
23490impl From<Lock> for Stmt {
23491    #[inline]
23492    fn from(node: Lock) -> Stmt {
23493        Stmt::Lock(node)
23494    }
23495}
23496impl From<Merge> for Stmt {
23497    #[inline]
23498    fn from(node: Merge) -> Stmt {
23499        Stmt::Merge(node)
23500    }
23501}
23502impl From<Move> for Stmt {
23503    #[inline]
23504    fn from(node: Move) -> Stmt {
23505        Stmt::Move(node)
23506    }
23507}
23508impl From<Notify> for Stmt {
23509    #[inline]
23510    fn from(node: Notify) -> Stmt {
23511        Stmt::Notify(node)
23512    }
23513}
23514impl From<ParenSelect> for Stmt {
23515    #[inline]
23516    fn from(node: ParenSelect) -> Stmt {
23517        Stmt::ParenSelect(node)
23518    }
23519}
23520impl From<Prepare> for Stmt {
23521    #[inline]
23522    fn from(node: Prepare) -> Stmt {
23523        Stmt::Prepare(node)
23524    }
23525}
23526impl From<PrepareTransaction> for Stmt {
23527    #[inline]
23528    fn from(node: PrepareTransaction) -> Stmt {
23529        Stmt::PrepareTransaction(node)
23530    }
23531}
23532impl From<Reassign> for Stmt {
23533    #[inline]
23534    fn from(node: Reassign) -> Stmt {
23535        Stmt::Reassign(node)
23536    }
23537}
23538impl From<Refresh> for Stmt {
23539    #[inline]
23540    fn from(node: Refresh) -> Stmt {
23541        Stmt::Refresh(node)
23542    }
23543}
23544impl From<Reindex> for Stmt {
23545    #[inline]
23546    fn from(node: Reindex) -> Stmt {
23547        Stmt::Reindex(node)
23548    }
23549}
23550impl From<ReleaseSavepoint> for Stmt {
23551    #[inline]
23552    fn from(node: ReleaseSavepoint) -> Stmt {
23553        Stmt::ReleaseSavepoint(node)
23554    }
23555}
23556impl From<Reset> for Stmt {
23557    #[inline]
23558    fn from(node: Reset) -> Stmt {
23559        Stmt::Reset(node)
23560    }
23561}
23562impl From<Revoke> for Stmt {
23563    #[inline]
23564    fn from(node: Revoke) -> Stmt {
23565        Stmt::Revoke(node)
23566    }
23567}
23568impl From<Rollback> for Stmt {
23569    #[inline]
23570    fn from(node: Rollback) -> Stmt {
23571        Stmt::Rollback(node)
23572    }
23573}
23574impl From<Savepoint> for Stmt {
23575    #[inline]
23576    fn from(node: Savepoint) -> Stmt {
23577        Stmt::Savepoint(node)
23578    }
23579}
23580impl From<SecurityLabel> for Stmt {
23581    #[inline]
23582    fn from(node: SecurityLabel) -> Stmt {
23583        Stmt::SecurityLabel(node)
23584    }
23585}
23586impl From<Select> for Stmt {
23587    #[inline]
23588    fn from(node: Select) -> Stmt {
23589        Stmt::Select(node)
23590    }
23591}
23592impl From<SelectInto> for Stmt {
23593    #[inline]
23594    fn from(node: SelectInto) -> Stmt {
23595        Stmt::SelectInto(node)
23596    }
23597}
23598impl From<Set> for Stmt {
23599    #[inline]
23600    fn from(node: Set) -> Stmt {
23601        Stmt::Set(node)
23602    }
23603}
23604impl From<SetConstraints> for Stmt {
23605    #[inline]
23606    fn from(node: SetConstraints) -> Stmt {
23607        Stmt::SetConstraints(node)
23608    }
23609}
23610impl From<SetRole> for Stmt {
23611    #[inline]
23612    fn from(node: SetRole) -> Stmt {
23613        Stmt::SetRole(node)
23614    }
23615}
23616impl From<SetSessionAuth> for Stmt {
23617    #[inline]
23618    fn from(node: SetSessionAuth) -> Stmt {
23619        Stmt::SetSessionAuth(node)
23620    }
23621}
23622impl From<SetTransaction> for Stmt {
23623    #[inline]
23624    fn from(node: SetTransaction) -> Stmt {
23625        Stmt::SetTransaction(node)
23626    }
23627}
23628impl From<Show> for Stmt {
23629    #[inline]
23630    fn from(node: Show) -> Stmt {
23631        Stmt::Show(node)
23632    }
23633}
23634impl From<Table> for Stmt {
23635    #[inline]
23636    fn from(node: Table) -> Stmt {
23637        Stmt::Table(node)
23638    }
23639}
23640impl From<Truncate> for Stmt {
23641    #[inline]
23642    fn from(node: Truncate) -> Stmt {
23643        Stmt::Truncate(node)
23644    }
23645}
23646impl From<Unlisten> for Stmt {
23647    #[inline]
23648    fn from(node: Unlisten) -> Stmt {
23649        Stmt::Unlisten(node)
23650    }
23651}
23652impl From<Update> for Stmt {
23653    #[inline]
23654    fn from(node: Update) -> Stmt {
23655        Stmt::Update(node)
23656    }
23657}
23658impl From<Vacuum> for Stmt {
23659    #[inline]
23660    fn from(node: Vacuum) -> Stmt {
23661        Stmt::Vacuum(node)
23662    }
23663}
23664impl From<Values> for Stmt {
23665    #[inline]
23666    fn from(node: Values) -> Stmt {
23667        Stmt::Values(node)
23668    }
23669}
23670impl AstNode for TableArg {
23671    #[inline]
23672    fn can_cast(kind: SyntaxKind) -> bool {
23673        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
23674    }
23675    #[inline]
23676    fn cast(syntax: SyntaxNode) -> Option<Self> {
23677        let res = match syntax.kind() {
23678            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
23679            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
23680            _ => {
23681                if let Some(result) = TableConstraint::cast(syntax) {
23682                    return Some(TableArg::TableConstraint(result));
23683                }
23684                return None;
23685            }
23686        };
23687        Some(res)
23688    }
23689    #[inline]
23690    fn syntax(&self) -> &SyntaxNode {
23691        match self {
23692            TableArg::Column(it) => &it.syntax,
23693            TableArg::LikeClause(it) => &it.syntax,
23694            TableArg::TableConstraint(it) => it.syntax(),
23695        }
23696    }
23697}
23698impl From<Column> for TableArg {
23699    #[inline]
23700    fn from(node: Column) -> TableArg {
23701        TableArg::Column(node)
23702    }
23703}
23704impl From<LikeClause> for TableArg {
23705    #[inline]
23706    fn from(node: LikeClause) -> TableArg {
23707        TableArg::LikeClause(node)
23708    }
23709}
23710impl AstNode for TableConstraint {
23711    #[inline]
23712    fn can_cast(kind: SyntaxKind) -> bool {
23713        matches!(
23714            kind,
23715            SyntaxKind::CHECK_CONSTRAINT
23716                | SyntaxKind::EXCLUDE_CONSTRAINT
23717                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
23718                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
23719                | SyntaxKind::UNIQUE_CONSTRAINT
23720        )
23721    }
23722    #[inline]
23723    fn cast(syntax: SyntaxNode) -> Option<Self> {
23724        let res = match syntax.kind() {
23725            SyntaxKind::CHECK_CONSTRAINT => {
23726                TableConstraint::CheckConstraint(CheckConstraint { syntax })
23727            }
23728            SyntaxKind::EXCLUDE_CONSTRAINT => {
23729                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
23730            }
23731            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
23732                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
23733            }
23734            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
23735                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
23736            }
23737            SyntaxKind::UNIQUE_CONSTRAINT => {
23738                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
23739            }
23740            _ => {
23741                return None;
23742            }
23743        };
23744        Some(res)
23745    }
23746    #[inline]
23747    fn syntax(&self) -> &SyntaxNode {
23748        match self {
23749            TableConstraint::CheckConstraint(it) => &it.syntax,
23750            TableConstraint::ExcludeConstraint(it) => &it.syntax,
23751            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
23752            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
23753            TableConstraint::UniqueConstraint(it) => &it.syntax,
23754        }
23755    }
23756}
23757impl From<CheckConstraint> for TableConstraint {
23758    #[inline]
23759    fn from(node: CheckConstraint) -> TableConstraint {
23760        TableConstraint::CheckConstraint(node)
23761    }
23762}
23763impl From<ExcludeConstraint> for TableConstraint {
23764    #[inline]
23765    fn from(node: ExcludeConstraint) -> TableConstraint {
23766        TableConstraint::ExcludeConstraint(node)
23767    }
23768}
23769impl From<ForeignKeyConstraint> for TableConstraint {
23770    #[inline]
23771    fn from(node: ForeignKeyConstraint) -> TableConstraint {
23772        TableConstraint::ForeignKeyConstraint(node)
23773    }
23774}
23775impl From<PrimaryKeyConstraint> for TableConstraint {
23776    #[inline]
23777    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
23778        TableConstraint::PrimaryKeyConstraint(node)
23779    }
23780}
23781impl From<UniqueConstraint> for TableConstraint {
23782    #[inline]
23783    fn from(node: UniqueConstraint) -> TableConstraint {
23784        TableConstraint::UniqueConstraint(node)
23785    }
23786}
23787impl AstNode for Timezone {
23788    #[inline]
23789    fn can_cast(kind: SyntaxKind) -> bool {
23790        matches!(
23791            kind,
23792            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
23793        )
23794    }
23795    #[inline]
23796    fn cast(syntax: SyntaxNode) -> Option<Self> {
23797        let res = match syntax.kind() {
23798            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
23799            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
23800            _ => {
23801                return None;
23802            }
23803        };
23804        Some(res)
23805    }
23806    #[inline]
23807    fn syntax(&self) -> &SyntaxNode {
23808        match self {
23809            Timezone::WithTimezone(it) => &it.syntax,
23810            Timezone::WithoutTimezone(it) => &it.syntax,
23811        }
23812    }
23813}
23814impl From<WithTimezone> for Timezone {
23815    #[inline]
23816    fn from(node: WithTimezone) -> Timezone {
23817        Timezone::WithTimezone(node)
23818    }
23819}
23820impl From<WithoutTimezone> for Timezone {
23821    #[inline]
23822    fn from(node: WithoutTimezone) -> Timezone {
23823        Timezone::WithoutTimezone(node)
23824    }
23825}
23826impl AstNode for TransactionMode {
23827    #[inline]
23828    fn can_cast(kind: SyntaxKind) -> bool {
23829        matches!(
23830            kind,
23831            SyntaxKind::DEFERRABLE
23832                | SyntaxKind::NOT_DEFERRABLE
23833                | SyntaxKind::READ_COMMITTED
23834                | SyntaxKind::READ_ONLY
23835                | SyntaxKind::READ_UNCOMMITTED
23836                | SyntaxKind::READ_WRITE
23837                | SyntaxKind::REPEATABLE_READ
23838                | SyntaxKind::SERIALIZABLE
23839        )
23840    }
23841    #[inline]
23842    fn cast(syntax: SyntaxNode) -> Option<Self> {
23843        let res = match syntax.kind() {
23844            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
23845            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
23846            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
23847            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
23848            SyntaxKind::READ_UNCOMMITTED => {
23849                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
23850            }
23851            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
23852            SyntaxKind::REPEATABLE_READ => {
23853                TransactionMode::RepeatableRead(RepeatableRead { syntax })
23854            }
23855            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
23856            _ => {
23857                return None;
23858            }
23859        };
23860        Some(res)
23861    }
23862    #[inline]
23863    fn syntax(&self) -> &SyntaxNode {
23864        match self {
23865            TransactionMode::Deferrable(it) => &it.syntax,
23866            TransactionMode::NotDeferrable(it) => &it.syntax,
23867            TransactionMode::ReadCommitted(it) => &it.syntax,
23868            TransactionMode::ReadOnly(it) => &it.syntax,
23869            TransactionMode::ReadUncommitted(it) => &it.syntax,
23870            TransactionMode::ReadWrite(it) => &it.syntax,
23871            TransactionMode::RepeatableRead(it) => &it.syntax,
23872            TransactionMode::Serializable(it) => &it.syntax,
23873        }
23874    }
23875}
23876impl From<Deferrable> for TransactionMode {
23877    #[inline]
23878    fn from(node: Deferrable) -> TransactionMode {
23879        TransactionMode::Deferrable(node)
23880    }
23881}
23882impl From<NotDeferrable> for TransactionMode {
23883    #[inline]
23884    fn from(node: NotDeferrable) -> TransactionMode {
23885        TransactionMode::NotDeferrable(node)
23886    }
23887}
23888impl From<ReadCommitted> for TransactionMode {
23889    #[inline]
23890    fn from(node: ReadCommitted) -> TransactionMode {
23891        TransactionMode::ReadCommitted(node)
23892    }
23893}
23894impl From<ReadOnly> for TransactionMode {
23895    #[inline]
23896    fn from(node: ReadOnly) -> TransactionMode {
23897        TransactionMode::ReadOnly(node)
23898    }
23899}
23900impl From<ReadUncommitted> for TransactionMode {
23901    #[inline]
23902    fn from(node: ReadUncommitted) -> TransactionMode {
23903        TransactionMode::ReadUncommitted(node)
23904    }
23905}
23906impl From<ReadWrite> for TransactionMode {
23907    #[inline]
23908    fn from(node: ReadWrite) -> TransactionMode {
23909        TransactionMode::ReadWrite(node)
23910    }
23911}
23912impl From<RepeatableRead> for TransactionMode {
23913    #[inline]
23914    fn from(node: RepeatableRead) -> TransactionMode {
23915        TransactionMode::RepeatableRead(node)
23916    }
23917}
23918impl From<Serializable> for TransactionMode {
23919    #[inline]
23920    fn from(node: Serializable) -> TransactionMode {
23921        TransactionMode::Serializable(node)
23922    }
23923}
23924impl AstNode for Type {
23925    #[inline]
23926    fn can_cast(kind: SyntaxKind) -> bool {
23927        matches!(
23928            kind,
23929            SyntaxKind::ARRAY_TYPE
23930                | SyntaxKind::BIT_TYPE
23931                | SyntaxKind::CHAR_TYPE
23932                | SyntaxKind::DOUBLE_TYPE
23933                | SyntaxKind::INTERVAL_TYPE
23934                | SyntaxKind::PATH_TYPE
23935                | SyntaxKind::PERCENT_TYPE
23936                | SyntaxKind::TIME_TYPE
23937        )
23938    }
23939    #[inline]
23940    fn cast(syntax: SyntaxNode) -> Option<Self> {
23941        let res = match syntax.kind() {
23942            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
23943            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
23944            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
23945            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
23946            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
23947            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
23948            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
23949            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
23950            _ => {
23951                return None;
23952            }
23953        };
23954        Some(res)
23955    }
23956    #[inline]
23957    fn syntax(&self) -> &SyntaxNode {
23958        match self {
23959            Type::ArrayType(it) => &it.syntax,
23960            Type::BitType(it) => &it.syntax,
23961            Type::CharType(it) => &it.syntax,
23962            Type::DoubleType(it) => &it.syntax,
23963            Type::IntervalType(it) => &it.syntax,
23964            Type::PathType(it) => &it.syntax,
23965            Type::PercentType(it) => &it.syntax,
23966            Type::TimeType(it) => &it.syntax,
23967        }
23968    }
23969}
23970impl From<ArrayType> for Type {
23971    #[inline]
23972    fn from(node: ArrayType) -> Type {
23973        Type::ArrayType(node)
23974    }
23975}
23976impl From<BitType> for Type {
23977    #[inline]
23978    fn from(node: BitType) -> Type {
23979        Type::BitType(node)
23980    }
23981}
23982impl From<CharType> for Type {
23983    #[inline]
23984    fn from(node: CharType) -> Type {
23985        Type::CharType(node)
23986    }
23987}
23988impl From<DoubleType> for Type {
23989    #[inline]
23990    fn from(node: DoubleType) -> Type {
23991        Type::DoubleType(node)
23992    }
23993}
23994impl From<IntervalType> for Type {
23995    #[inline]
23996    fn from(node: IntervalType) -> Type {
23997        Type::IntervalType(node)
23998    }
23999}
24000impl From<PathType> for Type {
24001    #[inline]
24002    fn from(node: PathType) -> Type {
24003        Type::PathType(node)
24004    }
24005}
24006impl From<PercentType> for Type {
24007    #[inline]
24008    fn from(node: PercentType) -> Type {
24009        Type::PercentType(node)
24010    }
24011}
24012impl From<TimeType> for Type {
24013    #[inline]
24014    fn from(node: TimeType) -> Type {
24015        Type::TimeType(node)
24016    }
24017}
24018impl AstNode for WithQuery {
24019    #[inline]
24020    fn can_cast(kind: SyntaxKind) -> bool {
24021        matches!(
24022            kind,
24023            SyntaxKind::DELETE
24024                | SyntaxKind::INSERT
24025                | SyntaxKind::MERGE
24026                | SyntaxKind::SELECT
24027                | SyntaxKind::UPDATE
24028                | SyntaxKind::VALUES
24029        )
24030    }
24031    #[inline]
24032    fn cast(syntax: SyntaxNode) -> Option<Self> {
24033        let res = match syntax.kind() {
24034            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
24035            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
24036            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
24037            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
24038            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
24039            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
24040            _ => {
24041                return None;
24042            }
24043        };
24044        Some(res)
24045    }
24046    #[inline]
24047    fn syntax(&self) -> &SyntaxNode {
24048        match self {
24049            WithQuery::Delete(it) => &it.syntax,
24050            WithQuery::Insert(it) => &it.syntax,
24051            WithQuery::Merge(it) => &it.syntax,
24052            WithQuery::Select(it) => &it.syntax,
24053            WithQuery::Update(it) => &it.syntax,
24054            WithQuery::Values(it) => &it.syntax,
24055        }
24056    }
24057}
24058impl From<Delete> for WithQuery {
24059    #[inline]
24060    fn from(node: Delete) -> WithQuery {
24061        WithQuery::Delete(node)
24062    }
24063}
24064impl From<Insert> for WithQuery {
24065    #[inline]
24066    fn from(node: Insert) -> WithQuery {
24067        WithQuery::Insert(node)
24068    }
24069}
24070impl From<Merge> for WithQuery {
24071    #[inline]
24072    fn from(node: Merge) -> WithQuery {
24073        WithQuery::Merge(node)
24074    }
24075}
24076impl From<Select> for WithQuery {
24077    #[inline]
24078    fn from(node: Select) -> WithQuery {
24079        WithQuery::Select(node)
24080    }
24081}
24082impl From<Update> for WithQuery {
24083    #[inline]
24084    fn from(node: Update) -> WithQuery {
24085        WithQuery::Update(node)
24086    }
24087}
24088impl From<Values> for WithQuery {
24089    #[inline]
24090    fn from(node: Values) -> WithQuery {
24091        WithQuery::Values(node)
24092    }
24093}