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 AtTimeZone {
1206    pub(crate) syntax: SyntaxNode,
1207}
1208impl AtTimeZone {
1209    #[inline]
1210    pub fn at_token(&self) -> Option<SyntaxToken> {
1211        support::token(&self.syntax, SyntaxKind::AT_KW)
1212    }
1213    #[inline]
1214    pub fn time_token(&self) -> Option<SyntaxToken> {
1215        support::token(&self.syntax, SyntaxKind::TIME_KW)
1216    }
1217    #[inline]
1218    pub fn zone_token(&self) -> Option<SyntaxToken> {
1219        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1220    }
1221}
1222
1223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1224pub struct AttachPartition {
1225    pub(crate) syntax: SyntaxNode,
1226}
1227impl AttachPartition {
1228    #[inline]
1229    pub fn partition_type(&self) -> Option<PartitionType> {
1230        support::child(&self.syntax)
1231    }
1232    #[inline]
1233    pub fn path(&self) -> Option<Path> {
1234        support::child(&self.syntax)
1235    }
1236    #[inline]
1237    pub fn attach_token(&self) -> Option<SyntaxToken> {
1238        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1239    }
1240    #[inline]
1241    pub fn partition_token(&self) -> Option<SyntaxToken> {
1242        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1243    }
1244}
1245
1246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1247pub struct AttributeList {
1248    pub(crate) syntax: SyntaxNode,
1249}
1250impl AttributeList {
1251    #[inline]
1252    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1253        support::children(&self.syntax)
1254    }
1255    #[inline]
1256    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1257        support::token(&self.syntax, SyntaxKind::L_PAREN)
1258    }
1259    #[inline]
1260    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1261        support::token(&self.syntax, SyntaxKind::R_PAREN)
1262    }
1263}
1264
1265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1266pub struct AttributeOption {
1267    pub(crate) syntax: SyntaxNode,
1268}
1269impl AttributeOption {
1270    #[inline]
1271    pub fn eq_token(&self) -> Option<SyntaxToken> {
1272        support::token(&self.syntax, SyntaxKind::EQ)
1273    }
1274}
1275
1276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1277pub struct Begin {
1278    pub(crate) syntax: SyntaxNode,
1279}
1280impl Begin {
1281    #[inline]
1282    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
1283        support::child(&self.syntax)
1284    }
1285    #[inline]
1286    pub fn begin_token(&self) -> Option<SyntaxToken> {
1287        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
1288    }
1289    #[inline]
1290    pub fn start_token(&self) -> Option<SyntaxToken> {
1291        support::token(&self.syntax, SyntaxKind::START_KW)
1292    }
1293    #[inline]
1294    pub fn transaction_token(&self) -> Option<SyntaxToken> {
1295        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
1296    }
1297    #[inline]
1298    pub fn work_token(&self) -> Option<SyntaxToken> {
1299        support::token(&self.syntax, SyntaxKind::WORK_KW)
1300    }
1301}
1302
1303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1304pub struct BeginFuncOption {
1305    pub(crate) syntax: SyntaxNode,
1306}
1307impl BeginFuncOption {
1308    #[inline]
1309    pub fn atomic_token(&self) -> Option<SyntaxToken> {
1310        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
1311    }
1312    #[inline]
1313    pub fn begin_token(&self) -> Option<SyntaxToken> {
1314        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
1315    }
1316    #[inline]
1317    pub fn end_token(&self) -> Option<SyntaxToken> {
1318        support::token(&self.syntax, SyntaxKind::END_KW)
1319    }
1320}
1321
1322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1323pub struct BetweenExpr {
1324    pub(crate) syntax: SyntaxNode,
1325}
1326impl BetweenExpr {
1327    #[inline]
1328    pub fn end(&self) -> Option<Expr> {
1329        support::child(&self.syntax)
1330    }
1331    #[inline]
1332    pub fn start(&self) -> Option<Expr> {
1333        support::child(&self.syntax)
1334    }
1335    #[inline]
1336    pub fn target(&self) -> Option<Expr> {
1337        support::child(&self.syntax)
1338    }
1339    #[inline]
1340    pub fn and_token(&self) -> Option<SyntaxToken> {
1341        support::token(&self.syntax, SyntaxKind::AND_KW)
1342    }
1343    #[inline]
1344    pub fn between_token(&self) -> Option<SyntaxToken> {
1345        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
1346    }
1347}
1348
1349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1350pub struct BinExpr {
1351    pub(crate) syntax: SyntaxNode,
1352}
1353impl BinExpr {
1354    #[inline]
1355    pub fn op(&self) -> Option<Op> {
1356        support::child(&self.syntax)
1357    }
1358}
1359
1360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1361pub struct BitType {
1362    pub(crate) syntax: SyntaxNode,
1363}
1364impl BitType {
1365    #[inline]
1366    pub fn arg_list(&self) -> Option<ArgList> {
1367        support::child(&self.syntax)
1368    }
1369    #[inline]
1370    pub fn bit_token(&self) -> Option<SyntaxToken> {
1371        support::token(&self.syntax, SyntaxKind::BIT_KW)
1372    }
1373    #[inline]
1374    pub fn varying_token(&self) -> Option<SyntaxToken> {
1375        support::token(&self.syntax, SyntaxKind::VARYING_KW)
1376    }
1377}
1378
1379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1380pub struct Call {
1381    pub(crate) syntax: SyntaxNode,
1382}
1383impl Call {
1384    #[inline]
1385    pub fn call_token(&self) -> Option<SyntaxToken> {
1386        support::token(&self.syntax, SyntaxKind::CALL_KW)
1387    }
1388}
1389
1390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1391pub struct CallExpr {
1392    pub(crate) syntax: SyntaxNode,
1393}
1394impl CallExpr {
1395    #[inline]
1396    pub fn arg_list(&self) -> Option<ArgList> {
1397        support::child(&self.syntax)
1398    }
1399    #[inline]
1400    pub fn expr(&self) -> Option<Expr> {
1401        support::child(&self.syntax)
1402    }
1403}
1404
1405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1406pub struct Cascade {
1407    pub(crate) syntax: SyntaxNode,
1408}
1409impl Cascade {
1410    #[inline]
1411    pub fn cascade_token(&self) -> Option<SyntaxToken> {
1412        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
1413    }
1414}
1415
1416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1417pub struct CaseExpr {
1418    pub(crate) syntax: SyntaxNode,
1419}
1420impl CaseExpr {
1421    #[inline]
1422    pub fn case_token(&self) -> Option<SyntaxToken> {
1423        support::token(&self.syntax, SyntaxKind::CASE_KW)
1424    }
1425}
1426
1427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1428pub struct CastExpr {
1429    pub(crate) syntax: SyntaxNode,
1430}
1431impl CastExpr {
1432    #[inline]
1433    pub fn colon_colon(&self) -> Option<ColonColon> {
1434        support::child(&self.syntax)
1435    }
1436    #[inline]
1437    pub fn expr(&self) -> Option<Expr> {
1438        support::child(&self.syntax)
1439    }
1440    #[inline]
1441    pub fn ty(&self) -> Option<Type> {
1442        support::child(&self.syntax)
1443    }
1444    #[inline]
1445    pub fn as_token(&self) -> Option<SyntaxToken> {
1446        support::token(&self.syntax, SyntaxKind::AS_KW)
1447    }
1448}
1449
1450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1451pub struct CharType {
1452    pub(crate) syntax: SyntaxNode,
1453}
1454impl CharType {
1455    #[inline]
1456    pub fn arg_list(&self) -> Option<ArgList> {
1457        support::child(&self.syntax)
1458    }
1459    #[inline]
1460    pub fn char_token(&self) -> Option<SyntaxToken> {
1461        support::token(&self.syntax, SyntaxKind::CHAR_KW)
1462    }
1463    #[inline]
1464    pub fn character_token(&self) -> Option<SyntaxToken> {
1465        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
1466    }
1467    #[inline]
1468    pub fn nchar_token(&self) -> Option<SyntaxToken> {
1469        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
1470    }
1471    #[inline]
1472    pub fn varchar_token(&self) -> Option<SyntaxToken> {
1473        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
1474    }
1475    #[inline]
1476    pub fn varying_token(&self) -> Option<SyntaxToken> {
1477        support::token(&self.syntax, SyntaxKind::VARYING_KW)
1478    }
1479}
1480
1481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1482pub struct CheckConstraint {
1483    pub(crate) syntax: SyntaxNode,
1484}
1485impl CheckConstraint {
1486    #[inline]
1487    pub fn expr(&self) -> Option<Expr> {
1488        support::child(&self.syntax)
1489    }
1490    #[inline]
1491    pub fn name_ref(&self) -> Option<NameRef> {
1492        support::child(&self.syntax)
1493    }
1494    #[inline]
1495    pub fn no_inherit(&self) -> Option<NoInherit> {
1496        support::child(&self.syntax)
1497    }
1498    #[inline]
1499    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1500        support::token(&self.syntax, SyntaxKind::L_PAREN)
1501    }
1502    #[inline]
1503    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1504        support::token(&self.syntax, SyntaxKind::R_PAREN)
1505    }
1506    #[inline]
1507    pub fn check_token(&self) -> Option<SyntaxToken> {
1508        support::token(&self.syntax, SyntaxKind::CHECK_KW)
1509    }
1510    #[inline]
1511    pub fn constraint_token(&self) -> Option<SyntaxToken> {
1512        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
1513    }
1514}
1515
1516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1517pub struct Checkpoint {
1518    pub(crate) syntax: SyntaxNode,
1519}
1520impl Checkpoint {
1521    #[inline]
1522    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
1523        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
1524    }
1525}
1526
1527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1528pub struct Close {
1529    pub(crate) syntax: SyntaxNode,
1530}
1531impl Close {
1532    #[inline]
1533    pub fn close_token(&self) -> Option<SyntaxToken> {
1534        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
1535    }
1536}
1537
1538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1539pub struct Cluster {
1540    pub(crate) syntax: SyntaxNode,
1541}
1542impl Cluster {
1543    #[inline]
1544    pub fn cluster_token(&self) -> Option<SyntaxToken> {
1545        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
1546    }
1547    #[inline]
1548    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1549        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1550    }
1551}
1552
1553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1554pub struct ClusterOn {
1555    pub(crate) syntax: SyntaxNode,
1556}
1557impl ClusterOn {
1558    #[inline]
1559    pub fn cluster_token(&self) -> Option<SyntaxToken> {
1560        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
1561    }
1562    #[inline]
1563    pub fn on_token(&self) -> Option<SyntaxToken> {
1564        support::token(&self.syntax, SyntaxKind::ON_KW)
1565    }
1566}
1567
1568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1569pub struct Collate {
1570    pub(crate) syntax: SyntaxNode,
1571}
1572impl Collate {
1573    #[inline]
1574    pub fn path(&self) -> Option<Path> {
1575        support::child(&self.syntax)
1576    }
1577    #[inline]
1578    pub fn collate_token(&self) -> Option<SyntaxToken> {
1579        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
1580    }
1581}
1582
1583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1584pub struct ColonColon {
1585    pub(crate) syntax: SyntaxNode,
1586}
1587impl ColonColon {
1588    #[inline]
1589    pub fn colon_token(&self) -> Option<SyntaxToken> {
1590        support::token(&self.syntax, SyntaxKind::COLON)
1591    }
1592}
1593
1594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1595pub struct ColonEq {
1596    pub(crate) syntax: SyntaxNode,
1597}
1598impl ColonEq {
1599    #[inline]
1600    pub fn colon_token(&self) -> Option<SyntaxToken> {
1601        support::token(&self.syntax, SyntaxKind::COLON)
1602    }
1603    #[inline]
1604    pub fn eq_token(&self) -> Option<SyntaxToken> {
1605        support::token(&self.syntax, SyntaxKind::EQ)
1606    }
1607}
1608
1609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1610pub struct Column {
1611    pub(crate) syntax: SyntaxNode,
1612}
1613impl Column {
1614    #[inline]
1615    pub fn collate(&self) -> Option<Collate> {
1616        support::child(&self.syntax)
1617    }
1618    #[inline]
1619    pub fn compression_method(&self) -> Option<CompressionMethod> {
1620        support::child(&self.syntax)
1621    }
1622    #[inline]
1623    pub fn constraint(&self) -> Option<ColumnConstraint> {
1624        support::child(&self.syntax)
1625    }
1626    #[inline]
1627    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
1628        support::child(&self.syntax)
1629    }
1630    #[inline]
1631    pub fn enforced(&self) -> Option<Enforced> {
1632        support::child(&self.syntax)
1633    }
1634    #[inline]
1635    pub fn index_expr(&self) -> Option<IndexExpr> {
1636        support::child(&self.syntax)
1637    }
1638    #[inline]
1639    pub fn initially_deferred_constraint_option(
1640        &self,
1641    ) -> Option<InitiallyDeferredConstraintOption> {
1642        support::child(&self.syntax)
1643    }
1644    #[inline]
1645    pub fn initially_immediate_constraint_option(
1646        &self,
1647    ) -> Option<InitiallyImmediateConstraintOption> {
1648        support::child(&self.syntax)
1649    }
1650    #[inline]
1651    pub fn name(&self) -> Option<Name> {
1652        support::child(&self.syntax)
1653    }
1654    #[inline]
1655    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
1656        support::child(&self.syntax)
1657    }
1658    #[inline]
1659    pub fn not_enforced(&self) -> Option<NotEnforced> {
1660        support::child(&self.syntax)
1661    }
1662    #[inline]
1663    pub fn storage(&self) -> Option<Storage> {
1664        support::child(&self.syntax)
1665    }
1666    #[inline]
1667    pub fn ty(&self) -> Option<Type> {
1668        support::child(&self.syntax)
1669    }
1670    #[inline]
1671    pub fn with_options(&self) -> Option<WithOptions> {
1672        support::child(&self.syntax)
1673    }
1674    #[inline]
1675    pub fn period_token(&self) -> Option<SyntaxToken> {
1676        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
1677    }
1678}
1679
1680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1681pub struct ColumnList {
1682    pub(crate) syntax: SyntaxNode,
1683}
1684impl ColumnList {
1685    #[inline]
1686    pub fn columns(&self) -> AstChildren<Column> {
1687        support::children(&self.syntax)
1688    }
1689    #[inline]
1690    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1691        support::token(&self.syntax, SyntaxKind::L_PAREN)
1692    }
1693    #[inline]
1694    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1695        support::token(&self.syntax, SyntaxKind::R_PAREN)
1696    }
1697}
1698
1699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1700pub struct CommentOn {
1701    pub(crate) syntax: SyntaxNode,
1702}
1703impl CommentOn {
1704    #[inline]
1705    pub fn comment_token(&self) -> Option<SyntaxToken> {
1706        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
1707    }
1708    #[inline]
1709    pub fn on_token(&self) -> Option<SyntaxToken> {
1710        support::token(&self.syntax, SyntaxKind::ON_KW)
1711    }
1712}
1713
1714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1715pub struct Commit {
1716    pub(crate) syntax: SyntaxNode,
1717}
1718impl Commit {
1719    #[inline]
1720    pub fn literal(&self) -> Option<Literal> {
1721        support::child(&self.syntax)
1722    }
1723    #[inline]
1724    pub fn and_token(&self) -> Option<SyntaxToken> {
1725        support::token(&self.syntax, SyntaxKind::AND_KW)
1726    }
1727    #[inline]
1728    pub fn chain_token(&self) -> Option<SyntaxToken> {
1729        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
1730    }
1731    #[inline]
1732    pub fn commit_token(&self) -> Option<SyntaxToken> {
1733        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
1734    }
1735    #[inline]
1736    pub fn no_token(&self) -> Option<SyntaxToken> {
1737        support::token(&self.syntax, SyntaxKind::NO_KW)
1738    }
1739    #[inline]
1740    pub fn prepared_token(&self) -> Option<SyntaxToken> {
1741        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
1742    }
1743    #[inline]
1744    pub fn transaction_token(&self) -> Option<SyntaxToken> {
1745        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
1746    }
1747    #[inline]
1748    pub fn work_token(&self) -> Option<SyntaxToken> {
1749        support::token(&self.syntax, SyntaxKind::WORK_KW)
1750    }
1751}
1752
1753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1754pub struct CompoundSelect {
1755    pub(crate) syntax: SyntaxNode,
1756}
1757impl CompoundSelect {
1758    #[inline]
1759    pub fn select(&self) -> Option<Select> {
1760        support::child(&self.syntax)
1761    }
1762}
1763
1764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1765pub struct CompressionMethod {
1766    pub(crate) syntax: SyntaxNode,
1767}
1768impl CompressionMethod {
1769    #[inline]
1770    pub fn compression_token(&self) -> Option<SyntaxToken> {
1771        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
1772    }
1773    #[inline]
1774    pub fn default_token(&self) -> Option<SyntaxToken> {
1775        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
1776    }
1777    #[inline]
1778    pub fn ident_token(&self) -> Option<SyntaxToken> {
1779        support::token(&self.syntax, SyntaxKind::IDENT)
1780    }
1781}
1782
1783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1784pub struct ConstraintExclusions {
1785    pub(crate) syntax: SyntaxNode,
1786}
1787impl ConstraintExclusions {
1788    #[inline]
1789    pub fn exclude_token(&self) -> Option<SyntaxToken> {
1790        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
1791    }
1792}
1793
1794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1795pub struct ConstraintIncludeClause {
1796    pub(crate) syntax: SyntaxNode,
1797}
1798impl ConstraintIncludeClause {
1799    #[inline]
1800    pub fn include_token(&self) -> Option<SyntaxToken> {
1801        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
1802    }
1803}
1804
1805#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1806pub struct ConstraintIndexMethod {
1807    pub(crate) syntax: SyntaxNode,
1808}
1809impl ConstraintIndexMethod {
1810    #[inline]
1811    pub fn using_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::USING_KW)
1813    }
1814}
1815
1816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1817pub struct ConstraintIndexTablespace {
1818    pub(crate) syntax: SyntaxNode,
1819}
1820impl ConstraintIndexTablespace {
1821    #[inline]
1822    pub fn name_ref(&self) -> Option<NameRef> {
1823        support::child(&self.syntax)
1824    }
1825    #[inline]
1826    pub fn index_token(&self) -> Option<SyntaxToken> {
1827        support::token(&self.syntax, SyntaxKind::INDEX_KW)
1828    }
1829    #[inline]
1830    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1831        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1832    }
1833    #[inline]
1834    pub fn using_token(&self) -> Option<SyntaxToken> {
1835        support::token(&self.syntax, SyntaxKind::USING_KW)
1836    }
1837}
1838
1839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1840pub struct ConstraintWhereClause {
1841    pub(crate) syntax: SyntaxNode,
1842}
1843impl ConstraintWhereClause {
1844    #[inline]
1845    pub fn where_token(&self) -> Option<SyntaxToken> {
1846        support::token(&self.syntax, SyntaxKind::WHERE_KW)
1847    }
1848}
1849
1850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1851pub struct Copy {
1852    pub(crate) syntax: SyntaxNode,
1853}
1854impl Copy {
1855    #[inline]
1856    pub fn copy_token(&self) -> Option<SyntaxToken> {
1857        support::token(&self.syntax, SyntaxKind::COPY_KW)
1858    }
1859}
1860
1861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1862pub struct CostFuncOption {
1863    pub(crate) syntax: SyntaxNode,
1864}
1865impl CostFuncOption {
1866    #[inline]
1867    pub fn cost_token(&self) -> Option<SyntaxToken> {
1868        support::token(&self.syntax, SyntaxKind::COST_KW)
1869    }
1870}
1871
1872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1873pub struct CreateAccessMethod {
1874    pub(crate) syntax: SyntaxNode,
1875}
1876impl CreateAccessMethod {
1877    #[inline]
1878    pub fn name_ref(&self) -> Option<NameRef> {
1879        support::child(&self.syntax)
1880    }
1881    #[inline]
1882    pub fn access_token(&self) -> Option<SyntaxToken> {
1883        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
1884    }
1885    #[inline]
1886    pub fn create_token(&self) -> Option<SyntaxToken> {
1887        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1888    }
1889    #[inline]
1890    pub fn method_token(&self) -> Option<SyntaxToken> {
1891        support::token(&self.syntax, SyntaxKind::METHOD_KW)
1892    }
1893    #[inline]
1894    pub fn type_token(&self) -> Option<SyntaxToken> {
1895        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1896    }
1897}
1898
1899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1900pub struct CreateAggregate {
1901    pub(crate) syntax: SyntaxNode,
1902}
1903impl CreateAggregate {
1904    #[inline]
1905    pub fn or_replace(&self) -> Option<OrReplace> {
1906        support::child(&self.syntax)
1907    }
1908    #[inline]
1909    pub fn param_list(&self) -> Option<ParamList> {
1910        support::child(&self.syntax)
1911    }
1912    #[inline]
1913    pub fn path(&self) -> Option<Path> {
1914        support::child(&self.syntax)
1915    }
1916    #[inline]
1917    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
1918        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
1919    }
1920    #[inline]
1921    pub fn create_token(&self) -> Option<SyntaxToken> {
1922        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1923    }
1924}
1925
1926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1927pub struct CreateCast {
1928    pub(crate) syntax: SyntaxNode,
1929}
1930impl CreateCast {
1931    #[inline]
1932    pub fn ty(&self) -> Option<Type> {
1933        support::child(&self.syntax)
1934    }
1935    #[inline]
1936    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1937        support::token(&self.syntax, SyntaxKind::L_PAREN)
1938    }
1939    #[inline]
1940    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1941        support::token(&self.syntax, SyntaxKind::R_PAREN)
1942    }
1943    #[inline]
1944    pub fn as_token(&self) -> Option<SyntaxToken> {
1945        support::token(&self.syntax, SyntaxKind::AS_KW)
1946    }
1947    #[inline]
1948    pub fn cast_token(&self) -> Option<SyntaxToken> {
1949        support::token(&self.syntax, SyntaxKind::CAST_KW)
1950    }
1951    #[inline]
1952    pub fn create_token(&self) -> Option<SyntaxToken> {
1953        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1954    }
1955}
1956
1957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1958pub struct CreateCollation {
1959    pub(crate) syntax: SyntaxNode,
1960}
1961impl CreateCollation {
1962    #[inline]
1963    pub fn name_ref(&self) -> Option<NameRef> {
1964        support::child(&self.syntax)
1965    }
1966    #[inline]
1967    pub fn collation_token(&self) -> Option<SyntaxToken> {
1968        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
1969    }
1970    #[inline]
1971    pub fn create_token(&self) -> Option<SyntaxToken> {
1972        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1973    }
1974}
1975
1976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1977pub struct CreateConversion {
1978    pub(crate) syntax: SyntaxNode,
1979}
1980impl CreateConversion {
1981    #[inline]
1982    pub fn name_ref(&self) -> Option<NameRef> {
1983        support::child(&self.syntax)
1984    }
1985    #[inline]
1986    pub fn conversion_token(&self) -> Option<SyntaxToken> {
1987        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
1988    }
1989    #[inline]
1990    pub fn create_token(&self) -> Option<SyntaxToken> {
1991        support::token(&self.syntax, SyntaxKind::CREATE_KW)
1992    }
1993    #[inline]
1994    pub fn for_token(&self) -> Option<SyntaxToken> {
1995        support::token(&self.syntax, SyntaxKind::FOR_KW)
1996    }
1997}
1998
1999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2000pub struct CreateDatabase {
2001    pub(crate) syntax: SyntaxNode,
2002}
2003impl CreateDatabase {
2004    #[inline]
2005    pub fn name_ref(&self) -> Option<NameRef> {
2006        support::child(&self.syntax)
2007    }
2008    #[inline]
2009    pub fn create_token(&self) -> Option<SyntaxToken> {
2010        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2011    }
2012    #[inline]
2013    pub fn database_token(&self) -> Option<SyntaxToken> {
2014        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
2015    }
2016}
2017
2018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2019pub struct CreateDomain {
2020    pub(crate) syntax: SyntaxNode,
2021}
2022impl CreateDomain {
2023    #[inline]
2024    pub fn collate(&self) -> Option<Collate> {
2025        support::child(&self.syntax)
2026    }
2027    #[inline]
2028    pub fn constraints(&self) -> AstChildren<Constraint> {
2029        support::children(&self.syntax)
2030    }
2031    #[inline]
2032    pub fn name_ref(&self) -> Option<NameRef> {
2033        support::child(&self.syntax)
2034    }
2035    #[inline]
2036    pub fn ty(&self) -> Option<Type> {
2037        support::child(&self.syntax)
2038    }
2039    #[inline]
2040    pub fn as_token(&self) -> Option<SyntaxToken> {
2041        support::token(&self.syntax, SyntaxKind::AS_KW)
2042    }
2043    #[inline]
2044    pub fn create_token(&self) -> Option<SyntaxToken> {
2045        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2046    }
2047    #[inline]
2048    pub fn domain_token(&self) -> Option<SyntaxToken> {
2049        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2050    }
2051}
2052
2053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2054pub struct CreateEventTrigger {
2055    pub(crate) syntax: SyntaxNode,
2056}
2057impl CreateEventTrigger {
2058    #[inline]
2059    pub fn name_ref(&self) -> Option<NameRef> {
2060        support::child(&self.syntax)
2061    }
2062    #[inline]
2063    pub fn create_token(&self) -> Option<SyntaxToken> {
2064        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2065    }
2066    #[inline]
2067    pub fn event_token(&self) -> Option<SyntaxToken> {
2068        support::token(&self.syntax, SyntaxKind::EVENT_KW)
2069    }
2070    #[inline]
2071    pub fn on_token(&self) -> Option<SyntaxToken> {
2072        support::token(&self.syntax, SyntaxKind::ON_KW)
2073    }
2074    #[inline]
2075    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2076        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2077    }
2078}
2079
2080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2081pub struct CreateExtension {
2082    pub(crate) syntax: SyntaxNode,
2083}
2084impl CreateExtension {
2085    #[inline]
2086    pub fn create_token(&self) -> Option<SyntaxToken> {
2087        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2088    }
2089    #[inline]
2090    pub fn extension_token(&self) -> Option<SyntaxToken> {
2091        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
2092    }
2093}
2094
2095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2096pub struct CreateForeignDataWrapper {
2097    pub(crate) syntax: SyntaxNode,
2098}
2099impl CreateForeignDataWrapper {
2100    #[inline]
2101    pub fn name_ref(&self) -> Option<NameRef> {
2102        support::child(&self.syntax)
2103    }
2104    #[inline]
2105    pub fn create_token(&self) -> Option<SyntaxToken> {
2106        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2107    }
2108    #[inline]
2109    pub fn data_token(&self) -> Option<SyntaxToken> {
2110        support::token(&self.syntax, SyntaxKind::DATA_KW)
2111    }
2112    #[inline]
2113    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2114        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2115    }
2116    #[inline]
2117    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
2118        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
2119    }
2120}
2121
2122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2123pub struct CreateForeignTable {
2124    pub(crate) syntax: SyntaxNode,
2125}
2126impl CreateForeignTable {
2127    #[inline]
2128    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2129        support::child(&self.syntax)
2130    }
2131    #[inline]
2132    pub fn create_token(&self) -> Option<SyntaxToken> {
2133        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2134    }
2135    #[inline]
2136    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2137        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2138    }
2139    #[inline]
2140    pub fn table_token(&self) -> Option<SyntaxToken> {
2141        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2142    }
2143}
2144
2145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2146pub struct CreateFunction {
2147    pub(crate) syntax: SyntaxNode,
2148}
2149impl CreateFunction {
2150    #[inline]
2151    pub fn option_list(&self) -> Option<FuncOptionList> {
2152        support::child(&self.syntax)
2153    }
2154    #[inline]
2155    pub fn or_replace(&self) -> Option<OrReplace> {
2156        support::child(&self.syntax)
2157    }
2158    #[inline]
2159    pub fn param_list(&self) -> Option<ParamList> {
2160        support::child(&self.syntax)
2161    }
2162    #[inline]
2163    pub fn path(&self) -> Option<Path> {
2164        support::child(&self.syntax)
2165    }
2166    #[inline]
2167    pub fn ret_type(&self) -> Option<RetType> {
2168        support::child(&self.syntax)
2169    }
2170    #[inline]
2171    pub fn create_token(&self) -> Option<SyntaxToken> {
2172        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2173    }
2174    #[inline]
2175    pub fn function_token(&self) -> Option<SyntaxToken> {
2176        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
2177    }
2178}
2179
2180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2181pub struct CreateGroup {
2182    pub(crate) syntax: SyntaxNode,
2183}
2184impl CreateGroup {
2185    #[inline]
2186    pub fn name_ref(&self) -> Option<NameRef> {
2187        support::child(&self.syntax)
2188    }
2189    #[inline]
2190    pub fn create_token(&self) -> Option<SyntaxToken> {
2191        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2192    }
2193    #[inline]
2194    pub fn group_token(&self) -> Option<SyntaxToken> {
2195        support::token(&self.syntax, SyntaxKind::GROUP_KW)
2196    }
2197}
2198
2199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2200pub struct CreateIndex {
2201    pub(crate) syntax: SyntaxNode,
2202}
2203impl CreateIndex {
2204    #[inline]
2205    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2206        support::child(&self.syntax)
2207    }
2208    #[inline]
2209    pub fn name(&self) -> Option<Name> {
2210        support::child(&self.syntax)
2211    }
2212    #[inline]
2213    pub fn relation_name(&self) -> Option<RelationName> {
2214        support::child(&self.syntax)
2215    }
2216    #[inline]
2217    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
2218        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
2219    }
2220    #[inline]
2221    pub fn create_token(&self) -> Option<SyntaxToken> {
2222        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2223    }
2224    #[inline]
2225    pub fn index_token(&self) -> Option<SyntaxToken> {
2226        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2227    }
2228    #[inline]
2229    pub fn on_token(&self) -> Option<SyntaxToken> {
2230        support::token(&self.syntax, SyntaxKind::ON_KW)
2231    }
2232    #[inline]
2233    pub fn unique_token(&self) -> Option<SyntaxToken> {
2234        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
2235    }
2236}
2237
2238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2239pub struct CreateLanguage {
2240    pub(crate) syntax: SyntaxNode,
2241}
2242impl CreateLanguage {
2243    #[inline]
2244    pub fn name_ref(&self) -> Option<NameRef> {
2245        support::child(&self.syntax)
2246    }
2247    #[inline]
2248    pub fn create_token(&self) -> Option<SyntaxToken> {
2249        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2250    }
2251    #[inline]
2252    pub fn language_token(&self) -> Option<SyntaxToken> {
2253        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2254    }
2255}
2256
2257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2258pub struct CreateMaterializedView {
2259    pub(crate) syntax: SyntaxNode,
2260}
2261impl CreateMaterializedView {
2262    #[inline]
2263    pub fn create_token(&self) -> Option<SyntaxToken> {
2264        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2265    }
2266}
2267
2268#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2269pub struct CreateOperator {
2270    pub(crate) syntax: SyntaxNode,
2271}
2272impl CreateOperator {
2273    #[inline]
2274    pub fn create_token(&self) -> Option<SyntaxToken> {
2275        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2276    }
2277    #[inline]
2278    pub fn operator_token(&self) -> Option<SyntaxToken> {
2279        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2280    }
2281}
2282
2283#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2284pub struct CreateOperatorClass {
2285    pub(crate) syntax: SyntaxNode,
2286}
2287impl CreateOperatorClass {
2288    #[inline]
2289    pub fn name_ref(&self) -> Option<NameRef> {
2290        support::child(&self.syntax)
2291    }
2292    #[inline]
2293    pub fn ty(&self) -> Option<Type> {
2294        support::child(&self.syntax)
2295    }
2296    #[inline]
2297    pub fn class_token(&self) -> Option<SyntaxToken> {
2298        support::token(&self.syntax, SyntaxKind::CLASS_KW)
2299    }
2300    #[inline]
2301    pub fn create_token(&self) -> Option<SyntaxToken> {
2302        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2303    }
2304    #[inline]
2305    pub fn default_token(&self) -> Option<SyntaxToken> {
2306        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2307    }
2308    #[inline]
2309    pub fn for_token(&self) -> Option<SyntaxToken> {
2310        support::token(&self.syntax, SyntaxKind::FOR_KW)
2311    }
2312    #[inline]
2313    pub fn operator_token(&self) -> Option<SyntaxToken> {
2314        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2315    }
2316    #[inline]
2317    pub fn type_token(&self) -> Option<SyntaxToken> {
2318        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2319    }
2320    #[inline]
2321    pub fn using_token(&self) -> Option<SyntaxToken> {
2322        support::token(&self.syntax, SyntaxKind::USING_KW)
2323    }
2324}
2325
2326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2327pub struct CreateOperatorFamily {
2328    pub(crate) syntax: SyntaxNode,
2329}
2330impl CreateOperatorFamily {
2331    #[inline]
2332    pub fn name_ref(&self) -> Option<NameRef> {
2333        support::child(&self.syntax)
2334    }
2335    #[inline]
2336    pub fn create_token(&self) -> Option<SyntaxToken> {
2337        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2338    }
2339    #[inline]
2340    pub fn family_token(&self) -> Option<SyntaxToken> {
2341        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
2342    }
2343    #[inline]
2344    pub fn operator_token(&self) -> Option<SyntaxToken> {
2345        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2346    }
2347    #[inline]
2348    pub fn using_token(&self) -> Option<SyntaxToken> {
2349        support::token(&self.syntax, SyntaxKind::USING_KW)
2350    }
2351}
2352
2353#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2354pub struct CreatePolicy {
2355    pub(crate) syntax: SyntaxNode,
2356}
2357impl CreatePolicy {
2358    #[inline]
2359    pub fn name_ref(&self) -> Option<NameRef> {
2360        support::child(&self.syntax)
2361    }
2362    #[inline]
2363    pub fn create_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2365    }
2366    #[inline]
2367    pub fn on_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::ON_KW)
2369    }
2370    #[inline]
2371    pub fn policy_token(&self) -> Option<SyntaxToken> {
2372        support::token(&self.syntax, SyntaxKind::POLICY_KW)
2373    }
2374}
2375
2376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2377pub struct CreateProcedure {
2378    pub(crate) syntax: SyntaxNode,
2379}
2380impl CreateProcedure {
2381    #[inline]
2382    pub fn create_token(&self) -> Option<SyntaxToken> {
2383        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2384    }
2385    #[inline]
2386    pub fn procedure_token(&self) -> Option<SyntaxToken> {
2387        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
2388    }
2389}
2390
2391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2392pub struct CreatePublication {
2393    pub(crate) syntax: SyntaxNode,
2394}
2395impl CreatePublication {
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 publication_token(&self) -> Option<SyntaxToken> {
2406        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
2407    }
2408}
2409
2410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2411pub struct CreateRole {
2412    pub(crate) syntax: SyntaxNode,
2413}
2414impl CreateRole {
2415    #[inline]
2416    pub fn name_ref(&self) -> Option<NameRef> {
2417        support::child(&self.syntax)
2418    }
2419    #[inline]
2420    pub fn create_token(&self) -> Option<SyntaxToken> {
2421        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2422    }
2423    #[inline]
2424    pub fn role_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::ROLE_KW)
2426    }
2427}
2428
2429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2430pub struct CreateRule {
2431    pub(crate) syntax: SyntaxNode,
2432}
2433impl CreateRule {
2434    #[inline]
2435    pub fn name_ref(&self) -> Option<NameRef> {
2436        support::child(&self.syntax)
2437    }
2438    #[inline]
2439    pub fn as_token(&self) -> Option<SyntaxToken> {
2440        support::token(&self.syntax, SyntaxKind::AS_KW)
2441    }
2442    #[inline]
2443    pub fn create_token(&self) -> Option<SyntaxToken> {
2444        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2445    }
2446    #[inline]
2447    pub fn on_token(&self) -> Option<SyntaxToken> {
2448        support::token(&self.syntax, SyntaxKind::ON_KW)
2449    }
2450    #[inline]
2451    pub fn rule_token(&self) -> Option<SyntaxToken> {
2452        support::token(&self.syntax, SyntaxKind::RULE_KW)
2453    }
2454}
2455
2456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2457pub struct CreateSchema {
2458    pub(crate) syntax: SyntaxNode,
2459}
2460impl CreateSchema {
2461    #[inline]
2462    pub fn create_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2464    }
2465    #[inline]
2466    pub fn schema_token(&self) -> Option<SyntaxToken> {
2467        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
2468    }
2469}
2470
2471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2472pub struct CreateSequence {
2473    pub(crate) syntax: SyntaxNode,
2474}
2475impl CreateSequence {
2476    #[inline]
2477    pub fn name_ref(&self) -> Option<NameRef> {
2478        support::child(&self.syntax)
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 sequence_token(&self) -> Option<SyntaxToken> {
2486        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
2487    }
2488}
2489
2490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2491pub struct CreateServer {
2492    pub(crate) syntax: SyntaxNode,
2493}
2494impl CreateServer {
2495    #[inline]
2496    pub fn name_ref(&self) -> Option<NameRef> {
2497        support::child(&self.syntax)
2498    }
2499    #[inline]
2500    pub fn create_token(&self) -> Option<SyntaxToken> {
2501        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2502    }
2503    #[inline]
2504    pub fn server_token(&self) -> Option<SyntaxToken> {
2505        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2506    }
2507}
2508
2509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2510pub struct CreateStatistics {
2511    pub(crate) syntax: SyntaxNode,
2512}
2513impl CreateStatistics {
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 statistics_token(&self) -> Option<SyntaxToken> {
2524        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2525    }
2526}
2527
2528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2529pub struct CreateSubscription {
2530    pub(crate) syntax: SyntaxNode,
2531}
2532impl CreateSubscription {
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 subscription_token(&self) -> Option<SyntaxToken> {
2543        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
2544    }
2545}
2546
2547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2548pub struct CreateTable {
2549    pub(crate) syntax: SyntaxNode,
2550}
2551impl CreateTable {
2552    #[inline]
2553    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn inherits(&self) -> Option<Inherits> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn of_type(&self) -> Option<OfType> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn on_commit(&self) -> Option<OnCommit> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn partition_by(&self) -> Option<PartitionBy> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn partition_of(&self) -> Option<PartitionOf> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn path(&self) -> Option<Path> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn table_arg_list(&self) -> Option<TableArgList> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn tablespace(&self) -> Option<Tablespace> {
2586        support::child(&self.syntax)
2587    }
2588    #[inline]
2589    pub fn using_method(&self) -> Option<UsingMethod> {
2590        support::child(&self.syntax)
2591    }
2592    #[inline]
2593    pub fn with_params(&self) -> Option<WithParams> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn without_oids(&self) -> Option<WithoutOids> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn create_token(&self) -> Option<SyntaxToken> {
2602        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2603    }
2604    #[inline]
2605    pub fn table_token(&self) -> Option<SyntaxToken> {
2606        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2607    }
2608}
2609
2610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2611pub struct CreateTableAs {
2612    pub(crate) syntax: SyntaxNode,
2613}
2614impl CreateTableAs {
2615    #[inline]
2616    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2617        support::child(&self.syntax)
2618    }
2619    #[inline]
2620    pub fn on_commit(&self) -> Option<OnCommit> {
2621        support::child(&self.syntax)
2622    }
2623    #[inline]
2624    pub fn path(&self) -> Option<Path> {
2625        support::child(&self.syntax)
2626    }
2627    #[inline]
2628    pub fn stmt(&self) -> Option<Stmt> {
2629        support::child(&self.syntax)
2630    }
2631    #[inline]
2632    pub fn tablespace(&self) -> Option<Tablespace> {
2633        support::child(&self.syntax)
2634    }
2635    #[inline]
2636    pub fn using_method(&self) -> Option<UsingMethod> {
2637        support::child(&self.syntax)
2638    }
2639    #[inline]
2640    pub fn with_data(&self) -> Option<WithData> {
2641        support::child(&self.syntax)
2642    }
2643    #[inline]
2644    pub fn with_no_data(&self) -> Option<WithNoData> {
2645        support::child(&self.syntax)
2646    }
2647    #[inline]
2648    pub fn with_params(&self) -> Option<WithParams> {
2649        support::child(&self.syntax)
2650    }
2651    #[inline]
2652    pub fn as_token(&self) -> Option<SyntaxToken> {
2653        support::token(&self.syntax, SyntaxKind::AS_KW)
2654    }
2655    #[inline]
2656    pub fn create_token(&self) -> Option<SyntaxToken> {
2657        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2658    }
2659    #[inline]
2660    pub fn table_token(&self) -> Option<SyntaxToken> {
2661        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2662    }
2663}
2664
2665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2666pub struct CreateTablespace {
2667    pub(crate) syntax: SyntaxNode,
2668}
2669impl CreateTablespace {
2670    #[inline]
2671    pub fn name_ref(&self) -> Option<NameRef> {
2672        support::child(&self.syntax)
2673    }
2674    #[inline]
2675    pub fn create_token(&self) -> Option<SyntaxToken> {
2676        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2677    }
2678    #[inline]
2679    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2680        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2681    }
2682}
2683
2684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2685pub struct CreateTextSearchConfiguration {
2686    pub(crate) syntax: SyntaxNode,
2687}
2688impl CreateTextSearchConfiguration {
2689    #[inline]
2690    pub fn attribute_list(&self) -> Option<AttributeList> {
2691        support::child(&self.syntax)
2692    }
2693    #[inline]
2694    pub fn name_ref(&self) -> Option<NameRef> {
2695        support::child(&self.syntax)
2696    }
2697    #[inline]
2698    pub fn configuration_token(&self) -> Option<SyntaxToken> {
2699        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
2700    }
2701    #[inline]
2702    pub fn create_token(&self) -> Option<SyntaxToken> {
2703        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2704    }
2705    #[inline]
2706    pub fn search_token(&self) -> Option<SyntaxToken> {
2707        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2708    }
2709    #[inline]
2710    pub fn text_token(&self) -> Option<SyntaxToken> {
2711        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2712    }
2713}
2714
2715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2716pub struct CreateTextSearchDictionary {
2717    pub(crate) syntax: SyntaxNode,
2718}
2719impl CreateTextSearchDictionary {
2720    #[inline]
2721    pub fn name_ref(&self) -> Option<NameRef> {
2722        support::child(&self.syntax)
2723    }
2724    #[inline]
2725    pub fn create_token(&self) -> Option<SyntaxToken> {
2726        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2727    }
2728    #[inline]
2729    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
2730        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
2731    }
2732    #[inline]
2733    pub fn search_token(&self) -> Option<SyntaxToken> {
2734        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2735    }
2736    #[inline]
2737    pub fn text_token(&self) -> Option<SyntaxToken> {
2738        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2739    }
2740}
2741
2742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2743pub struct CreateTextSearchParser {
2744    pub(crate) syntax: SyntaxNode,
2745}
2746impl CreateTextSearchParser {
2747    #[inline]
2748    pub fn name_ref(&self) -> Option<NameRef> {
2749        support::child(&self.syntax)
2750    }
2751    #[inline]
2752    pub fn create_token(&self) -> Option<SyntaxToken> {
2753        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2754    }
2755    #[inline]
2756    pub fn parser_token(&self) -> Option<SyntaxToken> {
2757        support::token(&self.syntax, SyntaxKind::PARSER_KW)
2758    }
2759    #[inline]
2760    pub fn search_token(&self) -> Option<SyntaxToken> {
2761        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2762    }
2763    #[inline]
2764    pub fn text_token(&self) -> Option<SyntaxToken> {
2765        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2766    }
2767}
2768
2769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2770pub struct CreateTextSearchTemplate {
2771    pub(crate) syntax: SyntaxNode,
2772}
2773impl CreateTextSearchTemplate {
2774    #[inline]
2775    pub fn name_ref(&self) -> Option<NameRef> {
2776        support::child(&self.syntax)
2777    }
2778    #[inline]
2779    pub fn create_token(&self) -> Option<SyntaxToken> {
2780        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2781    }
2782    #[inline]
2783    pub fn search_token(&self) -> Option<SyntaxToken> {
2784        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2785    }
2786    #[inline]
2787    pub fn template_token(&self) -> Option<SyntaxToken> {
2788        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
2789    }
2790    #[inline]
2791    pub fn text_token(&self) -> Option<SyntaxToken> {
2792        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2793    }
2794}
2795
2796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2797pub struct CreateTransform {
2798    pub(crate) syntax: SyntaxNode,
2799}
2800impl CreateTransform {
2801    #[inline]
2802    pub fn name_ref(&self) -> Option<NameRef> {
2803        support::child(&self.syntax)
2804    }
2805    #[inline]
2806    pub fn ty(&self) -> Option<Type> {
2807        support::child(&self.syntax)
2808    }
2809    #[inline]
2810    pub fn create_token(&self) -> Option<SyntaxToken> {
2811        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2812    }
2813    #[inline]
2814    pub fn for_token(&self) -> Option<SyntaxToken> {
2815        support::token(&self.syntax, SyntaxKind::FOR_KW)
2816    }
2817    #[inline]
2818    pub fn language_token(&self) -> Option<SyntaxToken> {
2819        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2820    }
2821    #[inline]
2822    pub fn transform_token(&self) -> Option<SyntaxToken> {
2823        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
2824    }
2825}
2826
2827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2828pub struct CreateTrigger {
2829    pub(crate) syntax: SyntaxNode,
2830}
2831impl CreateTrigger {
2832    #[inline]
2833    pub fn create_token(&self) -> Option<SyntaxToken> {
2834        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2835    }
2836}
2837
2838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2839pub struct CreateType {
2840    pub(crate) syntax: SyntaxNode,
2841}
2842impl CreateType {
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 type_token(&self) -> Option<SyntaxToken> {
2853        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2854    }
2855}
2856
2857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2858pub struct CreateUser {
2859    pub(crate) syntax: SyntaxNode,
2860}
2861impl CreateUser {
2862    #[inline]
2863    pub fn name_ref(&self) -> Option<NameRef> {
2864        support::child(&self.syntax)
2865    }
2866    #[inline]
2867    pub fn create_token(&self) -> Option<SyntaxToken> {
2868        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2869    }
2870    #[inline]
2871    pub fn user_token(&self) -> Option<SyntaxToken> {
2872        support::token(&self.syntax, SyntaxKind::USER_KW)
2873    }
2874}
2875
2876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2877pub struct CreateUserMapping {
2878    pub(crate) syntax: SyntaxNode,
2879}
2880impl CreateUserMapping {
2881    #[inline]
2882    pub fn name_ref(&self) -> Option<NameRef> {
2883        support::child(&self.syntax)
2884    }
2885    #[inline]
2886    pub fn create_token(&self) -> Option<SyntaxToken> {
2887        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2888    }
2889    #[inline]
2890    pub fn for_token(&self) -> Option<SyntaxToken> {
2891        support::token(&self.syntax, SyntaxKind::FOR_KW)
2892    }
2893    #[inline]
2894    pub fn mapping_token(&self) -> Option<SyntaxToken> {
2895        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
2896    }
2897    #[inline]
2898    pub fn server_token(&self) -> Option<SyntaxToken> {
2899        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2900    }
2901    #[inline]
2902    pub fn user_token(&self) -> Option<SyntaxToken> {
2903        support::token(&self.syntax, SyntaxKind::USER_KW)
2904    }
2905}
2906
2907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2908pub struct CreateView {
2909    pub(crate) syntax: SyntaxNode,
2910}
2911impl CreateView {
2912    #[inline]
2913    pub fn name_ref(&self) -> Option<NameRef> {
2914        support::child(&self.syntax)
2915    }
2916    #[inline]
2917    pub fn create_token(&self) -> Option<SyntaxToken> {
2918        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2919    }
2920    #[inline]
2921    pub fn view_token(&self) -> Option<SyntaxToken> {
2922        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2923    }
2924}
2925
2926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2927pub struct CustomOp {
2928    pub(crate) syntax: SyntaxNode,
2929}
2930impl CustomOp {
2931    #[inline]
2932    pub fn bang_token(&self) -> Option<SyntaxToken> {
2933        support::token(&self.syntax, SyntaxKind::BANG)
2934    }
2935    #[inline]
2936    pub fn pound_token(&self) -> Option<SyntaxToken> {
2937        support::token(&self.syntax, SyntaxKind::POUND)
2938    }
2939    #[inline]
2940    pub fn percent_token(&self) -> Option<SyntaxToken> {
2941        support::token(&self.syntax, SyntaxKind::PERCENT)
2942    }
2943    #[inline]
2944    pub fn amp_token(&self) -> Option<SyntaxToken> {
2945        support::token(&self.syntax, SyntaxKind::AMP)
2946    }
2947    #[inline]
2948    pub fn star_token(&self) -> Option<SyntaxToken> {
2949        support::token(&self.syntax, SyntaxKind::STAR)
2950    }
2951    #[inline]
2952    pub fn plus_token(&self) -> Option<SyntaxToken> {
2953        support::token(&self.syntax, SyntaxKind::PLUS)
2954    }
2955    #[inline]
2956    pub fn minus_token(&self) -> Option<SyntaxToken> {
2957        support::token(&self.syntax, SyntaxKind::MINUS)
2958    }
2959    #[inline]
2960    pub fn slash_token(&self) -> Option<SyntaxToken> {
2961        support::token(&self.syntax, SyntaxKind::SLASH)
2962    }
2963    #[inline]
2964    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
2965        support::token(&self.syntax, SyntaxKind::L_ANGLE)
2966    }
2967    #[inline]
2968    pub fn eq_token(&self) -> Option<SyntaxToken> {
2969        support::token(&self.syntax, SyntaxKind::EQ)
2970    }
2971    #[inline]
2972    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
2973        support::token(&self.syntax, SyntaxKind::R_ANGLE)
2974    }
2975    #[inline]
2976    pub fn question_token(&self) -> Option<SyntaxToken> {
2977        support::token(&self.syntax, SyntaxKind::QUESTION)
2978    }
2979    #[inline]
2980    pub fn at_token(&self) -> Option<SyntaxToken> {
2981        support::token(&self.syntax, SyntaxKind::AT)
2982    }
2983    #[inline]
2984    pub fn caret_token(&self) -> Option<SyntaxToken> {
2985        support::token(&self.syntax, SyntaxKind::CARET)
2986    }
2987    #[inline]
2988    pub fn backtick_token(&self) -> Option<SyntaxToken> {
2989        support::token(&self.syntax, SyntaxKind::BACKTICK)
2990    }
2991    #[inline]
2992    pub fn pipe_token(&self) -> Option<SyntaxToken> {
2993        support::token(&self.syntax, SyntaxKind::PIPE)
2994    }
2995    #[inline]
2996    pub fn tilde_token(&self) -> Option<SyntaxToken> {
2997        support::token(&self.syntax, SyntaxKind::TILDE)
2998    }
2999}
3000
3001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3002pub struct Deallocate {
3003    pub(crate) syntax: SyntaxNode,
3004}
3005impl Deallocate {
3006    #[inline]
3007    pub fn name_ref(&self) -> Option<NameRef> {
3008        support::child(&self.syntax)
3009    }
3010    #[inline]
3011    pub fn all_token(&self) -> Option<SyntaxToken> {
3012        support::token(&self.syntax, SyntaxKind::ALL_KW)
3013    }
3014    #[inline]
3015    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
3016        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
3017    }
3018    #[inline]
3019    pub fn prepare_token(&self) -> Option<SyntaxToken> {
3020        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
3021    }
3022}
3023
3024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3025pub struct Declare {
3026    pub(crate) syntax: SyntaxNode,
3027}
3028impl Declare {
3029    #[inline]
3030    pub fn declare_token(&self) -> Option<SyntaxToken> {
3031        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
3032    }
3033}
3034
3035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3036pub struct DefaultConstraint {
3037    pub(crate) syntax: SyntaxNode,
3038}
3039impl DefaultConstraint {
3040    #[inline]
3041    pub fn expr(&self) -> Option<Expr> {
3042        support::child(&self.syntax)
3043    }
3044    #[inline]
3045    pub fn name_ref(&self) -> Option<NameRef> {
3046        support::child(&self.syntax)
3047    }
3048    #[inline]
3049    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3050        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3051    }
3052    #[inline]
3053    pub fn default_token(&self) -> Option<SyntaxToken> {
3054        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3055    }
3056}
3057
3058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3059pub struct Deferrable {
3060    pub(crate) syntax: SyntaxNode,
3061}
3062impl Deferrable {
3063    #[inline]
3064    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
3065        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
3066    }
3067}
3068
3069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3070pub struct DeferrableConstraintOption {
3071    pub(crate) syntax: SyntaxNode,
3072}
3073impl DeferrableConstraintOption {
3074    #[inline]
3075    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
3076        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
3077    }
3078}
3079
3080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3081pub struct Delete {
3082    pub(crate) syntax: SyntaxNode,
3083}
3084impl Delete {
3085    #[inline]
3086    pub fn delete_token(&self) -> Option<SyntaxToken> {
3087        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3088    }
3089}
3090
3091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3092pub struct DeleteRows {
3093    pub(crate) syntax: SyntaxNode,
3094}
3095impl DeleteRows {
3096    #[inline]
3097    pub fn delete_token(&self) -> Option<SyntaxToken> {
3098        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3099    }
3100    #[inline]
3101    pub fn rows_token(&self) -> Option<SyntaxToken> {
3102        support::token(&self.syntax, SyntaxKind::ROWS_KW)
3103    }
3104}
3105
3106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3107pub struct DetachPartition {
3108    pub(crate) syntax: SyntaxNode,
3109}
3110impl DetachPartition {
3111    #[inline]
3112    pub fn detach_token(&self) -> Option<SyntaxToken> {
3113        support::token(&self.syntax, SyntaxKind::DETACH_KW)
3114    }
3115    #[inline]
3116    pub fn partition_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
3118    }
3119}
3120
3121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3122pub struct DisableRls {
3123    pub(crate) syntax: SyntaxNode,
3124}
3125impl DisableRls {
3126    #[inline]
3127    pub fn disable_token(&self) -> Option<SyntaxToken> {
3128        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3129    }
3130    #[inline]
3131    pub fn level_token(&self) -> Option<SyntaxToken> {
3132        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
3133    }
3134    #[inline]
3135    pub fn row_token(&self) -> Option<SyntaxToken> {
3136        support::token(&self.syntax, SyntaxKind::ROW_KW)
3137    }
3138    #[inline]
3139    pub fn security_token(&self) -> Option<SyntaxToken> {
3140        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
3141    }
3142}
3143
3144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3145pub struct DisableRule {
3146    pub(crate) syntax: SyntaxNode,
3147}
3148impl DisableRule {
3149    #[inline]
3150    pub fn disable_token(&self) -> Option<SyntaxToken> {
3151        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3152    }
3153    #[inline]
3154    pub fn rule_token(&self) -> Option<SyntaxToken> {
3155        support::token(&self.syntax, SyntaxKind::RULE_KW)
3156    }
3157}
3158
3159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3160pub struct DisableTrigger {
3161    pub(crate) syntax: SyntaxNode,
3162}
3163impl DisableTrigger {
3164    #[inline]
3165    pub fn disable_token(&self) -> Option<SyntaxToken> {
3166        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3167    }
3168    #[inline]
3169    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3170        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3171    }
3172}
3173
3174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3175pub struct Discard {
3176    pub(crate) syntax: SyntaxNode,
3177}
3178impl Discard {
3179    #[inline]
3180    pub fn all_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::ALL_KW)
3182    }
3183    #[inline]
3184    pub fn discard_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
3186    }
3187    #[inline]
3188    pub fn plans_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::PLANS_KW)
3190    }
3191    #[inline]
3192    pub fn sequences_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
3194    }
3195    #[inline]
3196    pub fn temp_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::TEMP_KW)
3198    }
3199    #[inline]
3200    pub fn temporary_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
3202    }
3203}
3204
3205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3206pub struct DistinctClause {
3207    pub(crate) syntax: SyntaxNode,
3208}
3209impl DistinctClause {
3210    #[inline]
3211    pub fn distinct_token(&self) -> Option<SyntaxToken> {
3212        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
3213    }
3214}
3215
3216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3217pub struct Do {
3218    pub(crate) syntax: SyntaxNode,
3219}
3220impl Do {
3221    #[inline]
3222    pub fn do_token(&self) -> Option<SyntaxToken> {
3223        support::token(&self.syntax, SyntaxKind::DO_KW)
3224    }
3225}
3226
3227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3228pub struct DoubleType {
3229    pub(crate) syntax: SyntaxNode,
3230}
3231impl DoubleType {
3232    #[inline]
3233    pub fn double_token(&self) -> Option<SyntaxToken> {
3234        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
3235    }
3236    #[inline]
3237    pub fn precision_token(&self) -> Option<SyntaxToken> {
3238        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
3239    }
3240}
3241
3242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3243pub struct Drop {
3244    pub(crate) syntax: SyntaxNode,
3245}
3246impl Drop {
3247    #[inline]
3248    pub fn drop_token(&self) -> Option<SyntaxToken> {
3249        support::token(&self.syntax, SyntaxKind::DROP_KW)
3250    }
3251}
3252
3253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3254pub struct DropAccessMethod {
3255    pub(crate) syntax: SyntaxNode,
3256}
3257impl DropAccessMethod {
3258    #[inline]
3259    pub fn if_exists(&self) -> Option<IfExists> {
3260        support::child(&self.syntax)
3261    }
3262    #[inline]
3263    pub fn name_ref(&self) -> Option<NameRef> {
3264        support::child(&self.syntax)
3265    }
3266    #[inline]
3267    pub fn access_token(&self) -> Option<SyntaxToken> {
3268        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3269    }
3270    #[inline]
3271    pub fn drop_token(&self) -> Option<SyntaxToken> {
3272        support::token(&self.syntax, SyntaxKind::DROP_KW)
3273    }
3274    #[inline]
3275    pub fn method_token(&self) -> Option<SyntaxToken> {
3276        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3277    }
3278}
3279
3280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3281pub struct DropAggregate {
3282    pub(crate) syntax: SyntaxNode,
3283}
3284impl DropAggregate {
3285    #[inline]
3286    pub fn aggregates(&self) -> AstChildren<Aggregate> {
3287        support::children(&self.syntax)
3288    }
3289    #[inline]
3290    pub fn if_exists(&self) -> Option<IfExists> {
3291        support::child(&self.syntax)
3292    }
3293    #[inline]
3294    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3295        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3296    }
3297    #[inline]
3298    pub fn drop_token(&self) -> Option<SyntaxToken> {
3299        support::token(&self.syntax, SyntaxKind::DROP_KW)
3300    }
3301}
3302
3303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3304pub struct DropCast {
3305    pub(crate) syntax: SyntaxNode,
3306}
3307impl DropCast {
3308    #[inline]
3309    pub fn if_exists(&self) -> Option<IfExists> {
3310        support::child(&self.syntax)
3311    }
3312    #[inline]
3313    pub fn ty(&self) -> Option<Type> {
3314        support::child(&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 as_token(&self) -> Option<SyntaxToken> {
3326        support::token(&self.syntax, SyntaxKind::AS_KW)
3327    }
3328    #[inline]
3329    pub fn cast_token(&self) -> Option<SyntaxToken> {
3330        support::token(&self.syntax, SyntaxKind::CAST_KW)
3331    }
3332    #[inline]
3333    pub fn drop_token(&self) -> Option<SyntaxToken> {
3334        support::token(&self.syntax, SyntaxKind::DROP_KW)
3335    }
3336}
3337
3338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3339pub struct DropCollation {
3340    pub(crate) syntax: SyntaxNode,
3341}
3342impl DropCollation {
3343    #[inline]
3344    pub fn if_exists(&self) -> Option<IfExists> {
3345        support::child(&self.syntax)
3346    }
3347    #[inline]
3348    pub fn name_ref(&self) -> Option<NameRef> {
3349        support::child(&self.syntax)
3350    }
3351    #[inline]
3352    pub fn collation_token(&self) -> Option<SyntaxToken> {
3353        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3354    }
3355    #[inline]
3356    pub fn drop_token(&self) -> Option<SyntaxToken> {
3357        support::token(&self.syntax, SyntaxKind::DROP_KW)
3358    }
3359}
3360
3361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3362pub struct DropColumn {
3363    pub(crate) syntax: SyntaxNode,
3364}
3365impl DropColumn {
3366    #[inline]
3367    pub fn if_exists(&self) -> Option<IfExists> {
3368        support::child(&self.syntax)
3369    }
3370    #[inline]
3371    pub fn column_token(&self) -> Option<SyntaxToken> {
3372        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3373    }
3374    #[inline]
3375    pub fn drop_token(&self) -> Option<SyntaxToken> {
3376        support::token(&self.syntax, SyntaxKind::DROP_KW)
3377    }
3378}
3379
3380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3381pub struct DropConstraint {
3382    pub(crate) syntax: SyntaxNode,
3383}
3384impl DropConstraint {
3385    #[inline]
3386    pub fn if_exists(&self) -> Option<IfExists> {
3387        support::child(&self.syntax)
3388    }
3389    #[inline]
3390    pub fn name_ref(&self) -> Option<NameRef> {
3391        support::child(&self.syntax)
3392    }
3393    #[inline]
3394    pub fn cascade_token(&self) -> Option<SyntaxToken> {
3395        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
3396    }
3397    #[inline]
3398    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3399        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3400    }
3401    #[inline]
3402    pub fn drop_token(&self) -> Option<SyntaxToken> {
3403        support::token(&self.syntax, SyntaxKind::DROP_KW)
3404    }
3405    #[inline]
3406    pub fn restrict_token(&self) -> Option<SyntaxToken> {
3407        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
3408    }
3409}
3410
3411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3412pub struct DropConversion {
3413    pub(crate) syntax: SyntaxNode,
3414}
3415impl DropConversion {
3416    #[inline]
3417    pub fn if_exists(&self) -> Option<IfExists> {
3418        support::child(&self.syntax)
3419    }
3420    #[inline]
3421    pub fn name_ref(&self) -> Option<NameRef> {
3422        support::child(&self.syntax)
3423    }
3424    #[inline]
3425    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3426        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3427    }
3428    #[inline]
3429    pub fn drop_token(&self) -> Option<SyntaxToken> {
3430        support::token(&self.syntax, SyntaxKind::DROP_KW)
3431    }
3432}
3433
3434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3435pub struct DropDatabase {
3436    pub(crate) syntax: SyntaxNode,
3437}
3438impl DropDatabase {
3439    #[inline]
3440    pub fn if_exists(&self) -> Option<IfExists> {
3441        support::child(&self.syntax)
3442    }
3443    #[inline]
3444    pub fn name_ref(&self) -> Option<NameRef> {
3445        support::child(&self.syntax)
3446    }
3447    #[inline]
3448    pub fn database_token(&self) -> Option<SyntaxToken> {
3449        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3450    }
3451    #[inline]
3452    pub fn drop_token(&self) -> Option<SyntaxToken> {
3453        support::token(&self.syntax, SyntaxKind::DROP_KW)
3454    }
3455}
3456
3457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3458pub struct DropDefault {
3459    pub(crate) syntax: SyntaxNode,
3460}
3461impl DropDefault {
3462    #[inline]
3463    pub fn default_token(&self) -> Option<SyntaxToken> {
3464        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3465    }
3466    #[inline]
3467    pub fn drop_token(&self) -> Option<SyntaxToken> {
3468        support::token(&self.syntax, SyntaxKind::DROP_KW)
3469    }
3470}
3471
3472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3473pub struct DropDomain {
3474    pub(crate) syntax: SyntaxNode,
3475}
3476impl DropDomain {
3477    #[inline]
3478    pub fn if_exists(&self) -> Option<IfExists> {
3479        support::child(&self.syntax)
3480    }
3481    #[inline]
3482    pub fn types(&self) -> AstChildren<Type> {
3483        support::children(&self.syntax)
3484    }
3485    #[inline]
3486    pub fn domain_token(&self) -> Option<SyntaxToken> {
3487        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3488    }
3489    #[inline]
3490    pub fn drop_token(&self) -> Option<SyntaxToken> {
3491        support::token(&self.syntax, SyntaxKind::DROP_KW)
3492    }
3493}
3494
3495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3496pub struct DropEventTrigger {
3497    pub(crate) syntax: SyntaxNode,
3498}
3499impl DropEventTrigger {
3500    #[inline]
3501    pub fn if_exists(&self) -> Option<IfExists> {
3502        support::child(&self.syntax)
3503    }
3504    #[inline]
3505    pub fn name_ref(&self) -> Option<NameRef> {
3506        support::child(&self.syntax)
3507    }
3508    #[inline]
3509    pub fn drop_token(&self) -> Option<SyntaxToken> {
3510        support::token(&self.syntax, SyntaxKind::DROP_KW)
3511    }
3512    #[inline]
3513    pub fn event_token(&self) -> Option<SyntaxToken> {
3514        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3515    }
3516    #[inline]
3517    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3518        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3519    }
3520}
3521
3522#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3523pub struct DropExpression {
3524    pub(crate) syntax: SyntaxNode,
3525}
3526impl DropExpression {
3527    #[inline]
3528    pub fn if_exists(&self) -> Option<IfExists> {
3529        support::child(&self.syntax)
3530    }
3531    #[inline]
3532    pub fn drop_token(&self) -> Option<SyntaxToken> {
3533        support::token(&self.syntax, SyntaxKind::DROP_KW)
3534    }
3535    #[inline]
3536    pub fn expression_token(&self) -> Option<SyntaxToken> {
3537        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
3538    }
3539}
3540
3541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3542pub struct DropExtension {
3543    pub(crate) syntax: SyntaxNode,
3544}
3545impl DropExtension {
3546    #[inline]
3547    pub fn if_exists(&self) -> Option<IfExists> {
3548        support::child(&self.syntax)
3549    }
3550    #[inline]
3551    pub fn name_refs(&self) -> AstChildren<NameRef> {
3552        support::children(&self.syntax)
3553    }
3554    #[inline]
3555    pub fn drop_token(&self) -> Option<SyntaxToken> {
3556        support::token(&self.syntax, SyntaxKind::DROP_KW)
3557    }
3558    #[inline]
3559    pub fn extension_token(&self) -> Option<SyntaxToken> {
3560        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3561    }
3562}
3563
3564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3565pub struct DropForeignDataWrapper {
3566    pub(crate) syntax: SyntaxNode,
3567}
3568impl DropForeignDataWrapper {
3569    #[inline]
3570    pub fn if_exists(&self) -> Option<IfExists> {
3571        support::child(&self.syntax)
3572    }
3573    #[inline]
3574    pub fn name_ref(&self) -> Option<NameRef> {
3575        support::child(&self.syntax)
3576    }
3577    #[inline]
3578    pub fn data_token(&self) -> Option<SyntaxToken> {
3579        support::token(&self.syntax, SyntaxKind::DATA_KW)
3580    }
3581    #[inline]
3582    pub fn drop_token(&self) -> Option<SyntaxToken> {
3583        support::token(&self.syntax, SyntaxKind::DROP_KW)
3584    }
3585    #[inline]
3586    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3587        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3588    }
3589    #[inline]
3590    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3591        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3592    }
3593}
3594
3595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3596pub struct DropForeignTable {
3597    pub(crate) syntax: SyntaxNode,
3598}
3599impl DropForeignTable {
3600    #[inline]
3601    pub fn if_exists(&self) -> Option<IfExists> {
3602        support::child(&self.syntax)
3603    }
3604    #[inline]
3605    pub fn drop_token(&self) -> Option<SyntaxToken> {
3606        support::token(&self.syntax, SyntaxKind::DROP_KW)
3607    }
3608    #[inline]
3609    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3610        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3611    }
3612    #[inline]
3613    pub fn table_token(&self) -> Option<SyntaxToken> {
3614        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3615    }
3616}
3617
3618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3619pub struct DropFunction {
3620    pub(crate) syntax: SyntaxNode,
3621}
3622impl DropFunction {
3623    #[inline]
3624    pub fn if_exists(&self) -> Option<IfExists> {
3625        support::child(&self.syntax)
3626    }
3627    #[inline]
3628    pub fn drop_token(&self) -> Option<SyntaxToken> {
3629        support::token(&self.syntax, SyntaxKind::DROP_KW)
3630    }
3631    #[inline]
3632    pub fn function_token(&self) -> Option<SyntaxToken> {
3633        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3634    }
3635}
3636
3637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3638pub struct DropGroup {
3639    pub(crate) syntax: SyntaxNode,
3640}
3641impl DropGroup {
3642    #[inline]
3643    pub fn if_exists(&self) -> Option<IfExists> {
3644        support::child(&self.syntax)
3645    }
3646    #[inline]
3647    pub fn name_ref(&self) -> Option<NameRef> {
3648        support::child(&self.syntax)
3649    }
3650    #[inline]
3651    pub fn drop_token(&self) -> Option<SyntaxToken> {
3652        support::token(&self.syntax, SyntaxKind::DROP_KW)
3653    }
3654    #[inline]
3655    pub fn group_token(&self) -> Option<SyntaxToken> {
3656        support::token(&self.syntax, SyntaxKind::GROUP_KW)
3657    }
3658}
3659
3660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3661pub struct DropIdentity {
3662    pub(crate) syntax: SyntaxNode,
3663}
3664impl DropIdentity {
3665    #[inline]
3666    pub fn if_exists(&self) -> Option<IfExists> {
3667        support::child(&self.syntax)
3668    }
3669    #[inline]
3670    pub fn drop_token(&self) -> Option<SyntaxToken> {
3671        support::token(&self.syntax, SyntaxKind::DROP_KW)
3672    }
3673    #[inline]
3674    pub fn identity_token(&self) -> Option<SyntaxToken> {
3675        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
3676    }
3677}
3678
3679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3680pub struct DropIndex {
3681    pub(crate) syntax: SyntaxNode,
3682}
3683impl DropIndex {
3684    #[inline]
3685    pub fn if_exists(&self) -> Option<IfExists> {
3686        support::child(&self.syntax)
3687    }
3688    #[inline]
3689    pub fn paths(&self) -> AstChildren<Path> {
3690        support::children(&self.syntax)
3691    }
3692    #[inline]
3693    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
3694        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
3695    }
3696    #[inline]
3697    pub fn drop_token(&self) -> Option<SyntaxToken> {
3698        support::token(&self.syntax, SyntaxKind::DROP_KW)
3699    }
3700    #[inline]
3701    pub fn index_token(&self) -> Option<SyntaxToken> {
3702        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3703    }
3704}
3705
3706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3707pub struct DropLanguage {
3708    pub(crate) syntax: SyntaxNode,
3709}
3710impl DropLanguage {
3711    #[inline]
3712    pub fn if_exists(&self) -> Option<IfExists> {
3713        support::child(&self.syntax)
3714    }
3715    #[inline]
3716    pub fn name_ref(&self) -> Option<NameRef> {
3717        support::child(&self.syntax)
3718    }
3719    #[inline]
3720    pub fn drop_token(&self) -> Option<SyntaxToken> {
3721        support::token(&self.syntax, SyntaxKind::DROP_KW)
3722    }
3723    #[inline]
3724    pub fn language_token(&self) -> Option<SyntaxToken> {
3725        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3726    }
3727}
3728
3729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3730pub struct DropMaterializedView {
3731    pub(crate) syntax: SyntaxNode,
3732}
3733impl DropMaterializedView {
3734    #[inline]
3735    pub fn if_exists(&self) -> Option<IfExists> {
3736        support::child(&self.syntax)
3737    }
3738    #[inline]
3739    pub fn drop_token(&self) -> Option<SyntaxToken> {
3740        support::token(&self.syntax, SyntaxKind::DROP_KW)
3741    }
3742    #[inline]
3743    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3744        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3745    }
3746    #[inline]
3747    pub fn view_token(&self) -> Option<SyntaxToken> {
3748        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3749    }
3750}
3751
3752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3753pub struct DropNotNull {
3754    pub(crate) syntax: SyntaxNode,
3755}
3756impl DropNotNull {
3757    #[inline]
3758    pub fn drop_token(&self) -> Option<SyntaxToken> {
3759        support::token(&self.syntax, SyntaxKind::DROP_KW)
3760    }
3761    #[inline]
3762    pub fn not_token(&self) -> Option<SyntaxToken> {
3763        support::token(&self.syntax, SyntaxKind::NOT_KW)
3764    }
3765    #[inline]
3766    pub fn null_token(&self) -> Option<SyntaxToken> {
3767        support::token(&self.syntax, SyntaxKind::NULL_KW)
3768    }
3769}
3770
3771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3772pub struct DropOperator {
3773    pub(crate) syntax: SyntaxNode,
3774}
3775impl DropOperator {
3776    #[inline]
3777    pub fn if_exists(&self) -> Option<IfExists> {
3778        support::child(&self.syntax)
3779    }
3780    #[inline]
3781    pub fn drop_token(&self) -> Option<SyntaxToken> {
3782        support::token(&self.syntax, SyntaxKind::DROP_KW)
3783    }
3784    #[inline]
3785    pub fn operator_token(&self) -> Option<SyntaxToken> {
3786        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3787    }
3788}
3789
3790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3791pub struct DropOperatorClass {
3792    pub(crate) syntax: SyntaxNode,
3793}
3794impl DropOperatorClass {
3795    #[inline]
3796    pub fn if_exists(&self) -> Option<IfExists> {
3797        support::child(&self.syntax)
3798    }
3799    #[inline]
3800    pub fn name_ref(&self) -> Option<NameRef> {
3801        support::child(&self.syntax)
3802    }
3803    #[inline]
3804    pub fn class_token(&self) -> Option<SyntaxToken> {
3805        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3806    }
3807    #[inline]
3808    pub fn drop_token(&self) -> Option<SyntaxToken> {
3809        support::token(&self.syntax, SyntaxKind::DROP_KW)
3810    }
3811    #[inline]
3812    pub fn operator_token(&self) -> Option<SyntaxToken> {
3813        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3814    }
3815    #[inline]
3816    pub fn using_token(&self) -> Option<SyntaxToken> {
3817        support::token(&self.syntax, SyntaxKind::USING_KW)
3818    }
3819}
3820
3821#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3822pub struct DropOperatorFamily {
3823    pub(crate) syntax: SyntaxNode,
3824}
3825impl DropOperatorFamily {
3826    #[inline]
3827    pub fn if_exists(&self) -> Option<IfExists> {
3828        support::child(&self.syntax)
3829    }
3830    #[inline]
3831    pub fn drop_token(&self) -> Option<SyntaxToken> {
3832        support::token(&self.syntax, SyntaxKind::DROP_KW)
3833    }
3834    #[inline]
3835    pub fn family_token(&self) -> Option<SyntaxToken> {
3836        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3837    }
3838    #[inline]
3839    pub fn operator_token(&self) -> Option<SyntaxToken> {
3840        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3841    }
3842}
3843
3844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3845pub struct DropOwned {
3846    pub(crate) syntax: SyntaxNode,
3847}
3848impl DropOwned {
3849    #[inline]
3850    pub fn by_token(&self) -> Option<SyntaxToken> {
3851        support::token(&self.syntax, SyntaxKind::BY_KW)
3852    }
3853    #[inline]
3854    pub fn drop_token(&self) -> Option<SyntaxToken> {
3855        support::token(&self.syntax, SyntaxKind::DROP_KW)
3856    }
3857    #[inline]
3858    pub fn owned_token(&self) -> Option<SyntaxToken> {
3859        support::token(&self.syntax, SyntaxKind::OWNED_KW)
3860    }
3861}
3862
3863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3864pub struct DropPolicy {
3865    pub(crate) syntax: SyntaxNode,
3866}
3867impl DropPolicy {
3868    #[inline]
3869    pub fn if_exists(&self) -> Option<IfExists> {
3870        support::child(&self.syntax)
3871    }
3872    #[inline]
3873    pub fn name_ref(&self) -> Option<NameRef> {
3874        support::child(&self.syntax)
3875    }
3876    #[inline]
3877    pub fn drop_token(&self) -> Option<SyntaxToken> {
3878        support::token(&self.syntax, SyntaxKind::DROP_KW)
3879    }
3880    #[inline]
3881    pub fn on_token(&self) -> Option<SyntaxToken> {
3882        support::token(&self.syntax, SyntaxKind::ON_KW)
3883    }
3884    #[inline]
3885    pub fn policy_token(&self) -> Option<SyntaxToken> {
3886        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3887    }
3888}
3889
3890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3891pub struct DropProcedure {
3892    pub(crate) syntax: SyntaxNode,
3893}
3894impl DropProcedure {
3895    #[inline]
3896    pub fn if_exists(&self) -> Option<IfExists> {
3897        support::child(&self.syntax)
3898    }
3899    #[inline]
3900    pub fn drop_token(&self) -> Option<SyntaxToken> {
3901        support::token(&self.syntax, SyntaxKind::DROP_KW)
3902    }
3903    #[inline]
3904    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3905        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3906    }
3907}
3908
3909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3910pub struct DropPublication {
3911    pub(crate) syntax: SyntaxNode,
3912}
3913impl DropPublication {
3914    #[inline]
3915    pub fn if_exists(&self) -> Option<IfExists> {
3916        support::child(&self.syntax)
3917    }
3918    #[inline]
3919    pub fn name_refs(&self) -> AstChildren<NameRef> {
3920        support::children(&self.syntax)
3921    }
3922    #[inline]
3923    pub fn drop_token(&self) -> Option<SyntaxToken> {
3924        support::token(&self.syntax, SyntaxKind::DROP_KW)
3925    }
3926    #[inline]
3927    pub fn publication_token(&self) -> Option<SyntaxToken> {
3928        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3929    }
3930}
3931
3932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3933pub struct DropRole {
3934    pub(crate) syntax: SyntaxNode,
3935}
3936impl DropRole {
3937    #[inline]
3938    pub fn if_exists(&self) -> Option<IfExists> {
3939        support::child(&self.syntax)
3940    }
3941    #[inline]
3942    pub fn name_refs(&self) -> AstChildren<NameRef> {
3943        support::children(&self.syntax)
3944    }
3945    #[inline]
3946    pub fn drop_token(&self) -> Option<SyntaxToken> {
3947        support::token(&self.syntax, SyntaxKind::DROP_KW)
3948    }
3949    #[inline]
3950    pub fn role_token(&self) -> Option<SyntaxToken> {
3951        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3952    }
3953}
3954
3955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3956pub struct DropRoutine {
3957    pub(crate) syntax: SyntaxNode,
3958}
3959impl DropRoutine {
3960    #[inline]
3961    pub fn if_exists(&self) -> Option<IfExists> {
3962        support::child(&self.syntax)
3963    }
3964    #[inline]
3965    pub fn drop_token(&self) -> Option<SyntaxToken> {
3966        support::token(&self.syntax, SyntaxKind::DROP_KW)
3967    }
3968    #[inline]
3969    pub fn routine_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3971    }
3972}
3973
3974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3975pub struct DropRule {
3976    pub(crate) syntax: SyntaxNode,
3977}
3978impl DropRule {
3979    #[inline]
3980    pub fn if_exists(&self) -> Option<IfExists> {
3981        support::child(&self.syntax)
3982    }
3983    #[inline]
3984    pub fn name_ref(&self) -> Option<NameRef> {
3985        support::child(&self.syntax)
3986    }
3987    #[inline]
3988    pub fn drop_token(&self) -> Option<SyntaxToken> {
3989        support::token(&self.syntax, SyntaxKind::DROP_KW)
3990    }
3991    #[inline]
3992    pub fn on_token(&self) -> Option<SyntaxToken> {
3993        support::token(&self.syntax, SyntaxKind::ON_KW)
3994    }
3995    #[inline]
3996    pub fn rule_token(&self) -> Option<SyntaxToken> {
3997        support::token(&self.syntax, SyntaxKind::RULE_KW)
3998    }
3999}
4000
4001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4002pub struct DropSchema {
4003    pub(crate) syntax: SyntaxNode,
4004}
4005impl DropSchema {
4006    #[inline]
4007    pub fn if_exists(&self) -> Option<IfExists> {
4008        support::child(&self.syntax)
4009    }
4010    #[inline]
4011    pub fn drop_token(&self) -> Option<SyntaxToken> {
4012        support::token(&self.syntax, SyntaxKind::DROP_KW)
4013    }
4014    #[inline]
4015    pub fn schema_token(&self) -> Option<SyntaxToken> {
4016        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4017    }
4018}
4019
4020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4021pub struct DropSequence {
4022    pub(crate) syntax: SyntaxNode,
4023}
4024impl DropSequence {
4025    #[inline]
4026    pub fn if_exists(&self) -> Option<IfExists> {
4027        support::child(&self.syntax)
4028    }
4029    #[inline]
4030    pub fn name_refs(&self) -> AstChildren<NameRef> {
4031        support::children(&self.syntax)
4032    }
4033    #[inline]
4034    pub fn drop_token(&self) -> Option<SyntaxToken> {
4035        support::token(&self.syntax, SyntaxKind::DROP_KW)
4036    }
4037    #[inline]
4038    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4039        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4040    }
4041}
4042
4043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4044pub struct DropServer {
4045    pub(crate) syntax: SyntaxNode,
4046}
4047impl DropServer {
4048    #[inline]
4049    pub fn if_exists(&self) -> Option<IfExists> {
4050        support::child(&self.syntax)
4051    }
4052    #[inline]
4053    pub fn name_ref(&self) -> Option<NameRef> {
4054        support::child(&self.syntax)
4055    }
4056    #[inline]
4057    pub fn drop_token(&self) -> Option<SyntaxToken> {
4058        support::token(&self.syntax, SyntaxKind::DROP_KW)
4059    }
4060    #[inline]
4061    pub fn server_token(&self) -> Option<SyntaxToken> {
4062        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4063    }
4064}
4065
4066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4067pub struct DropStatistics {
4068    pub(crate) syntax: SyntaxNode,
4069}
4070impl DropStatistics {
4071    #[inline]
4072    pub fn if_exists(&self) -> Option<IfExists> {
4073        support::child(&self.syntax)
4074    }
4075    #[inline]
4076    pub fn name_ref(&self) -> Option<NameRef> {
4077        support::child(&self.syntax)
4078    }
4079    #[inline]
4080    pub fn drop_token(&self) -> Option<SyntaxToken> {
4081        support::token(&self.syntax, SyntaxKind::DROP_KW)
4082    }
4083    #[inline]
4084    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4085        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4086    }
4087}
4088
4089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4090pub struct DropSubscription {
4091    pub(crate) syntax: SyntaxNode,
4092}
4093impl DropSubscription {
4094    #[inline]
4095    pub fn if_exists(&self) -> Option<IfExists> {
4096        support::child(&self.syntax)
4097    }
4098    #[inline]
4099    pub fn name_ref(&self) -> Option<NameRef> {
4100        support::child(&self.syntax)
4101    }
4102    #[inline]
4103    pub fn drop_token(&self) -> Option<SyntaxToken> {
4104        support::token(&self.syntax, SyntaxKind::DROP_KW)
4105    }
4106    #[inline]
4107    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4108        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4109    }
4110}
4111
4112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4113pub struct DropTable {
4114    pub(crate) syntax: SyntaxNode,
4115}
4116impl DropTable {
4117    #[inline]
4118    pub fn if_exists(&self) -> Option<IfExists> {
4119        support::child(&self.syntax)
4120    }
4121    #[inline]
4122    pub fn path(&self) -> Option<Path> {
4123        support::child(&self.syntax)
4124    }
4125    #[inline]
4126    pub fn comma_token(&self) -> Option<SyntaxToken> {
4127        support::token(&self.syntax, SyntaxKind::COMMA)
4128    }
4129    #[inline]
4130    pub fn cascade_token(&self) -> Option<SyntaxToken> {
4131        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
4132    }
4133    #[inline]
4134    pub fn drop_token(&self) -> Option<SyntaxToken> {
4135        support::token(&self.syntax, SyntaxKind::DROP_KW)
4136    }
4137    #[inline]
4138    pub fn restrict_token(&self) -> Option<SyntaxToken> {
4139        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
4140    }
4141    #[inline]
4142    pub fn table_token(&self) -> Option<SyntaxToken> {
4143        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4144    }
4145}
4146
4147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4148pub struct DropTablespace {
4149    pub(crate) syntax: SyntaxNode,
4150}
4151impl DropTablespace {
4152    #[inline]
4153    pub fn if_exists(&self) -> Option<IfExists> {
4154        support::child(&self.syntax)
4155    }
4156    #[inline]
4157    pub fn name_ref(&self) -> Option<NameRef> {
4158        support::child(&self.syntax)
4159    }
4160    #[inline]
4161    pub fn drop_token(&self) -> Option<SyntaxToken> {
4162        support::token(&self.syntax, SyntaxKind::DROP_KW)
4163    }
4164    #[inline]
4165    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4166        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4167    }
4168}
4169
4170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4171pub struct DropTextSearchConfig {
4172    pub(crate) syntax: SyntaxNode,
4173}
4174impl DropTextSearchConfig {
4175    #[inline]
4176    pub fn if_exists(&self) -> Option<IfExists> {
4177        support::child(&self.syntax)
4178    }
4179    #[inline]
4180    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4181        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4182    }
4183    #[inline]
4184    pub fn drop_token(&self) -> Option<SyntaxToken> {
4185        support::token(&self.syntax, SyntaxKind::DROP_KW)
4186    }
4187    #[inline]
4188    pub fn search_token(&self) -> Option<SyntaxToken> {
4189        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4190    }
4191    #[inline]
4192    pub fn text_token(&self) -> Option<SyntaxToken> {
4193        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4194    }
4195}
4196
4197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4198pub struct DropTextSearchDict {
4199    pub(crate) syntax: SyntaxNode,
4200}
4201impl DropTextSearchDict {
4202    #[inline]
4203    pub fn if_exists(&self) -> Option<IfExists> {
4204        support::child(&self.syntax)
4205    }
4206    #[inline]
4207    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4208        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4209    }
4210    #[inline]
4211    pub fn drop_token(&self) -> Option<SyntaxToken> {
4212        support::token(&self.syntax, SyntaxKind::DROP_KW)
4213    }
4214    #[inline]
4215    pub fn search_token(&self) -> Option<SyntaxToken> {
4216        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4217    }
4218    #[inline]
4219    pub fn text_token(&self) -> Option<SyntaxToken> {
4220        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4221    }
4222}
4223
4224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4225pub struct DropTextSearchParser {
4226    pub(crate) syntax: SyntaxNode,
4227}
4228impl DropTextSearchParser {
4229    #[inline]
4230    pub fn if_exists(&self) -> Option<IfExists> {
4231        support::child(&self.syntax)
4232    }
4233    #[inline]
4234    pub fn name_ref(&self) -> Option<NameRef> {
4235        support::child(&self.syntax)
4236    }
4237    #[inline]
4238    pub fn drop_token(&self) -> Option<SyntaxToken> {
4239        support::token(&self.syntax, SyntaxKind::DROP_KW)
4240    }
4241    #[inline]
4242    pub fn parser_token(&self) -> Option<SyntaxToken> {
4243        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4244    }
4245    #[inline]
4246    pub fn search_token(&self) -> Option<SyntaxToken> {
4247        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4248    }
4249    #[inline]
4250    pub fn text_token(&self) -> Option<SyntaxToken> {
4251        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4252    }
4253}
4254
4255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4256pub struct DropTextSearchTemplate {
4257    pub(crate) syntax: SyntaxNode,
4258}
4259impl DropTextSearchTemplate {
4260    #[inline]
4261    pub fn if_exists(&self) -> Option<IfExists> {
4262        support::child(&self.syntax)
4263    }
4264    #[inline]
4265    pub fn drop_token(&self) -> Option<SyntaxToken> {
4266        support::token(&self.syntax, SyntaxKind::DROP_KW)
4267    }
4268    #[inline]
4269    pub fn search_token(&self) -> Option<SyntaxToken> {
4270        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4271    }
4272    #[inline]
4273    pub fn template_token(&self) -> Option<SyntaxToken> {
4274        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4275    }
4276    #[inline]
4277    pub fn text_token(&self) -> Option<SyntaxToken> {
4278        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4279    }
4280}
4281
4282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4283pub struct DropTransform {
4284    pub(crate) syntax: SyntaxNode,
4285}
4286impl DropTransform {
4287    #[inline]
4288    pub fn if_exists(&self) -> Option<IfExists> {
4289        support::child(&self.syntax)
4290    }
4291    #[inline]
4292    pub fn drop_token(&self) -> Option<SyntaxToken> {
4293        support::token(&self.syntax, SyntaxKind::DROP_KW)
4294    }
4295    #[inline]
4296    pub fn transform_token(&self) -> Option<SyntaxToken> {
4297        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4298    }
4299}
4300
4301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4302pub struct DropTrigger {
4303    pub(crate) syntax: SyntaxNode,
4304}
4305impl DropTrigger {
4306    #[inline]
4307    pub fn if_exists(&self) -> Option<IfExists> {
4308        support::child(&self.syntax)
4309    }
4310    #[inline]
4311    pub fn name_ref(&self) -> Option<NameRef> {
4312        support::child(&self.syntax)
4313    }
4314    #[inline]
4315    pub fn drop_token(&self) -> Option<SyntaxToken> {
4316        support::token(&self.syntax, SyntaxKind::DROP_KW)
4317    }
4318    #[inline]
4319    pub fn on_token(&self) -> Option<SyntaxToken> {
4320        support::token(&self.syntax, SyntaxKind::ON_KW)
4321    }
4322    #[inline]
4323    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4324        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4325    }
4326}
4327
4328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4329pub struct DropType {
4330    pub(crate) syntax: SyntaxNode,
4331}
4332impl DropType {
4333    #[inline]
4334    pub fn if_exists(&self) -> Option<IfExists> {
4335        support::child(&self.syntax)
4336    }
4337    #[inline]
4338    pub fn paths(&self) -> AstChildren<Path> {
4339        support::children(&self.syntax)
4340    }
4341    #[inline]
4342    pub fn cascade_token(&self) -> Option<SyntaxToken> {
4343        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
4344    }
4345    #[inline]
4346    pub fn drop_token(&self) -> Option<SyntaxToken> {
4347        support::token(&self.syntax, SyntaxKind::DROP_KW)
4348    }
4349    #[inline]
4350    pub fn restrict_token(&self) -> Option<SyntaxToken> {
4351        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
4352    }
4353    #[inline]
4354    pub fn type_token(&self) -> Option<SyntaxToken> {
4355        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4356    }
4357}
4358
4359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4360pub struct DropUser {
4361    pub(crate) syntax: SyntaxNode,
4362}
4363impl DropUser {
4364    #[inline]
4365    pub fn if_exists(&self) -> Option<IfExists> {
4366        support::child(&self.syntax)
4367    }
4368    #[inline]
4369    pub fn name_refs(&self) -> AstChildren<NameRef> {
4370        support::children(&self.syntax)
4371    }
4372    #[inline]
4373    pub fn drop_token(&self) -> Option<SyntaxToken> {
4374        support::token(&self.syntax, SyntaxKind::DROP_KW)
4375    }
4376    #[inline]
4377    pub fn user_token(&self) -> Option<SyntaxToken> {
4378        support::token(&self.syntax, SyntaxKind::USER_KW)
4379    }
4380}
4381
4382#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4383pub struct DropUserMapping {
4384    pub(crate) syntax: SyntaxNode,
4385}
4386impl DropUserMapping {
4387    #[inline]
4388    pub fn if_exists(&self) -> Option<IfExists> {
4389        support::child(&self.syntax)
4390    }
4391    #[inline]
4392    pub fn name_ref(&self) -> Option<NameRef> {
4393        support::child(&self.syntax)
4394    }
4395    #[inline]
4396    pub fn drop_token(&self) -> Option<SyntaxToken> {
4397        support::token(&self.syntax, SyntaxKind::DROP_KW)
4398    }
4399    #[inline]
4400    pub fn for_token(&self) -> Option<SyntaxToken> {
4401        support::token(&self.syntax, SyntaxKind::FOR_KW)
4402    }
4403    #[inline]
4404    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4405        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4406    }
4407    #[inline]
4408    pub fn server_token(&self) -> Option<SyntaxToken> {
4409        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4410    }
4411    #[inline]
4412    pub fn user_token(&self) -> Option<SyntaxToken> {
4413        support::token(&self.syntax, SyntaxKind::USER_KW)
4414    }
4415}
4416
4417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4418pub struct DropView {
4419    pub(crate) syntax: SyntaxNode,
4420}
4421impl DropView {
4422    #[inline]
4423    pub fn if_exists(&self) -> Option<IfExists> {
4424        support::child(&self.syntax)
4425    }
4426    #[inline]
4427    pub fn drop_token(&self) -> Option<SyntaxToken> {
4428        support::token(&self.syntax, SyntaxKind::DROP_KW)
4429    }
4430    #[inline]
4431    pub fn view_token(&self) -> Option<SyntaxToken> {
4432        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4433    }
4434}
4435
4436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4437pub struct EnableAlwaysRule {
4438    pub(crate) syntax: SyntaxNode,
4439}
4440impl EnableAlwaysRule {
4441    #[inline]
4442    pub fn always_token(&self) -> Option<SyntaxToken> {
4443        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
4444    }
4445    #[inline]
4446    pub fn enable_token(&self) -> Option<SyntaxToken> {
4447        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4448    }
4449    #[inline]
4450    pub fn rule_token(&self) -> Option<SyntaxToken> {
4451        support::token(&self.syntax, SyntaxKind::RULE_KW)
4452    }
4453}
4454
4455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4456pub struct EnableAlwaysTrigger {
4457    pub(crate) syntax: SyntaxNode,
4458}
4459impl EnableAlwaysTrigger {
4460    #[inline]
4461    pub fn always_token(&self) -> Option<SyntaxToken> {
4462        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
4463    }
4464    #[inline]
4465    pub fn enable_token(&self) -> Option<SyntaxToken> {
4466        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4467    }
4468    #[inline]
4469    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4470        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4471    }
4472}
4473
4474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4475pub struct EnableReplicaRule {
4476    pub(crate) syntax: SyntaxNode,
4477}
4478impl EnableReplicaRule {
4479    #[inline]
4480    pub fn enable_token(&self) -> Option<SyntaxToken> {
4481        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4482    }
4483    #[inline]
4484    pub fn replica_token(&self) -> Option<SyntaxToken> {
4485        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
4486    }
4487    #[inline]
4488    pub fn rule_token(&self) -> Option<SyntaxToken> {
4489        support::token(&self.syntax, SyntaxKind::RULE_KW)
4490    }
4491}
4492
4493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4494pub struct EnableReplicaTrigger {
4495    pub(crate) syntax: SyntaxNode,
4496}
4497impl EnableReplicaTrigger {
4498    #[inline]
4499    pub fn enable_token(&self) -> Option<SyntaxToken> {
4500        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4501    }
4502    #[inline]
4503    pub fn replica_token(&self) -> Option<SyntaxToken> {
4504        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
4505    }
4506    #[inline]
4507    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4508        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4509    }
4510}
4511
4512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4513pub struct EnableRls {
4514    pub(crate) syntax: SyntaxNode,
4515}
4516impl EnableRls {
4517    #[inline]
4518    pub fn enable_token(&self) -> Option<SyntaxToken> {
4519        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4520    }
4521    #[inline]
4522    pub fn level_token(&self) -> Option<SyntaxToken> {
4523        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
4524    }
4525    #[inline]
4526    pub fn row_token(&self) -> Option<SyntaxToken> {
4527        support::token(&self.syntax, SyntaxKind::ROW_KW)
4528    }
4529    #[inline]
4530    pub fn security_token(&self) -> Option<SyntaxToken> {
4531        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
4532    }
4533}
4534
4535#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4536pub struct EnableRule {
4537    pub(crate) syntax: SyntaxNode,
4538}
4539impl EnableRule {
4540    #[inline]
4541    pub fn enable_token(&self) -> Option<SyntaxToken> {
4542        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4543    }
4544    #[inline]
4545    pub fn rule_token(&self) -> Option<SyntaxToken> {
4546        support::token(&self.syntax, SyntaxKind::RULE_KW)
4547    }
4548}
4549
4550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4551pub struct EnableTrigger {
4552    pub(crate) syntax: SyntaxNode,
4553}
4554impl EnableTrigger {
4555    #[inline]
4556    pub fn enable_token(&self) -> Option<SyntaxToken> {
4557        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4558    }
4559    #[inline]
4560    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4561        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4562    }
4563}
4564
4565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4566pub struct Enforced {
4567    pub(crate) syntax: SyntaxNode,
4568}
4569impl Enforced {
4570    #[inline]
4571    pub fn enforced_token(&self) -> Option<SyntaxToken> {
4572        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
4573    }
4574}
4575
4576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4577pub struct ExcludeConstraint {
4578    pub(crate) syntax: SyntaxNode,
4579}
4580impl ExcludeConstraint {
4581    #[inline]
4582    pub fn constraint_exclusions(&self) -> Option<ConstraintExclusions> {
4583        support::child(&self.syntax)
4584    }
4585    #[inline]
4586    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
4587        support::child(&self.syntax)
4588    }
4589    #[inline]
4590    pub fn exclude_token(&self) -> Option<SyntaxToken> {
4591        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
4592    }
4593}
4594
4595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4596pub struct Execute {
4597    pub(crate) syntax: SyntaxNode,
4598}
4599impl Execute {
4600    #[inline]
4601    pub fn execute_token(&self) -> Option<SyntaxToken> {
4602        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4603    }
4604}
4605
4606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4607pub struct Explain {
4608    pub(crate) syntax: SyntaxNode,
4609}
4610impl Explain {
4611    #[inline]
4612    pub fn explain_token(&self) -> Option<SyntaxToken> {
4613        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
4614    }
4615}
4616
4617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4618pub struct FatArrow {
4619    pub(crate) syntax: SyntaxNode,
4620}
4621impl FatArrow {
4622    #[inline]
4623    pub fn eq_token(&self) -> Option<SyntaxToken> {
4624        support::token(&self.syntax, SyntaxKind::EQ)
4625    }
4626    #[inline]
4627    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
4628        support::token(&self.syntax, SyntaxKind::R_ANGLE)
4629    }
4630}
4631
4632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4633pub struct Fetch {
4634    pub(crate) syntax: SyntaxNode,
4635}
4636impl Fetch {
4637    #[inline]
4638    pub fn fetch_token(&self) -> Option<SyntaxToken> {
4639        support::token(&self.syntax, SyntaxKind::FETCH_KW)
4640    }
4641}
4642
4643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4644pub struct FetchClause {
4645    pub(crate) syntax: SyntaxNode,
4646}
4647impl FetchClause {
4648    #[inline]
4649    pub fn fetch_token(&self) -> Option<SyntaxToken> {
4650        support::token(&self.syntax, SyntaxKind::FETCH_KW)
4651    }
4652}
4653
4654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4655pub struct FieldExpr {
4656    pub(crate) syntax: SyntaxNode,
4657}
4658impl FieldExpr {
4659    #[inline]
4660    pub fn expr(&self) -> Option<Expr> {
4661        support::child(&self.syntax)
4662    }
4663    #[inline]
4664    pub fn name_ref(&self) -> Option<NameRef> {
4665        support::child(&self.syntax)
4666    }
4667    #[inline]
4668    pub fn star_token(&self) -> Option<SyntaxToken> {
4669        support::token(&self.syntax, SyntaxKind::STAR)
4670    }
4671    #[inline]
4672    pub fn dot_token(&self) -> Option<SyntaxToken> {
4673        support::token(&self.syntax, SyntaxKind::DOT)
4674    }
4675}
4676
4677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4678pub struct FilterClause {
4679    pub(crate) syntax: SyntaxNode,
4680}
4681impl FilterClause {
4682    #[inline]
4683    pub fn expr(&self) -> Option<Expr> {
4684        support::child(&self.syntax)
4685    }
4686    #[inline]
4687    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4688        support::token(&self.syntax, SyntaxKind::L_PAREN)
4689    }
4690    #[inline]
4691    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4692        support::token(&self.syntax, SyntaxKind::R_PAREN)
4693    }
4694    #[inline]
4695    pub fn filter_token(&self) -> Option<SyntaxToken> {
4696        support::token(&self.syntax, SyntaxKind::FILTER_KW)
4697    }
4698    #[inline]
4699    pub fn where_token(&self) -> Option<SyntaxToken> {
4700        support::token(&self.syntax, SyntaxKind::WHERE_KW)
4701    }
4702}
4703
4704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4705pub struct ForceRls {
4706    pub(crate) syntax: SyntaxNode,
4707}
4708impl ForceRls {
4709    #[inline]
4710    pub fn force_token(&self) -> Option<SyntaxToken> {
4711        support::token(&self.syntax, SyntaxKind::FORCE_KW)
4712    }
4713    #[inline]
4714    pub fn level_token(&self) -> Option<SyntaxToken> {
4715        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
4716    }
4717    #[inline]
4718    pub fn row_token(&self) -> Option<SyntaxToken> {
4719        support::token(&self.syntax, SyntaxKind::ROW_KW)
4720    }
4721    #[inline]
4722    pub fn security_token(&self) -> Option<SyntaxToken> {
4723        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
4724    }
4725}
4726
4727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4728pub struct ForeignKeyConstraint {
4729    pub(crate) syntax: SyntaxNode,
4730}
4731impl ForeignKeyConstraint {
4732    #[inline]
4733    pub fn from_columns(&self) -> Option<ColumnList> {
4734        support::child(&self.syntax)
4735    }
4736    #[inline]
4737    pub fn match_type(&self) -> Option<MatchType> {
4738        support::child(&self.syntax)
4739    }
4740    #[inline]
4741    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
4742        support::child(&self.syntax)
4743    }
4744    #[inline]
4745    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
4746        support::child(&self.syntax)
4747    }
4748    #[inline]
4749    pub fn path(&self) -> Option<Path> {
4750        support::child(&self.syntax)
4751    }
4752    #[inline]
4753    pub fn to_columns(&self) -> Option<ColumnList> {
4754        support::child(&self.syntax)
4755    }
4756    #[inline]
4757    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4758        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4759    }
4760    #[inline]
4761    pub fn key_token(&self) -> Option<SyntaxToken> {
4762        support::token(&self.syntax, SyntaxKind::KEY_KW)
4763    }
4764    #[inline]
4765    pub fn references_token(&self) -> Option<SyntaxToken> {
4766        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
4767    }
4768}
4769
4770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4771pub struct FrameClause {
4772    pub(crate) syntax: SyntaxNode,
4773}
4774impl FrameClause {
4775    #[inline]
4776    pub fn groups_token(&self) -> Option<SyntaxToken> {
4777        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
4778    }
4779    #[inline]
4780    pub fn range_token(&self) -> Option<SyntaxToken> {
4781        support::token(&self.syntax, SyntaxKind::RANGE_KW)
4782    }
4783    #[inline]
4784    pub fn rows_token(&self) -> Option<SyntaxToken> {
4785        support::token(&self.syntax, SyntaxKind::ROWS_KW)
4786    }
4787}
4788
4789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4790pub struct FromClause {
4791    pub(crate) syntax: SyntaxNode,
4792}
4793impl FromClause {
4794    #[inline]
4795    pub fn from_items(&self) -> AstChildren<FromItem> {
4796        support::children(&self.syntax)
4797    }
4798    #[inline]
4799    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
4800        support::children(&self.syntax)
4801    }
4802    #[inline]
4803    pub fn from_token(&self) -> Option<SyntaxToken> {
4804        support::token(&self.syntax, SyntaxKind::FROM_KW)
4805    }
4806}
4807
4808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4809pub struct FromItem {
4810    pub(crate) syntax: SyntaxNode,
4811}
4812impl FromItem {
4813    #[inline]
4814    pub fn alias(&self) -> Option<Alias> {
4815        support::child(&self.syntax)
4816    }
4817    #[inline]
4818    pub fn call_expr(&self) -> Option<CallExpr> {
4819        support::child(&self.syntax)
4820    }
4821    #[inline]
4822    pub fn name_ref(&self) -> Option<NameRef> {
4823        support::child(&self.syntax)
4824    }
4825    #[inline]
4826    pub fn paren_select(&self) -> Option<ParenSelect> {
4827        support::child(&self.syntax)
4828    }
4829    #[inline]
4830    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4831        support::token(&self.syntax, SyntaxKind::L_PAREN)
4832    }
4833    #[inline]
4834    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4835        support::token(&self.syntax, SyntaxKind::R_PAREN)
4836    }
4837    #[inline]
4838    pub fn from_token(&self) -> Option<SyntaxToken> {
4839        support::token(&self.syntax, SyntaxKind::FROM_KW)
4840    }
4841    #[inline]
4842    pub fn lateral_token(&self) -> Option<SyntaxToken> {
4843        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
4844    }
4845    #[inline]
4846    pub fn only_token(&self) -> Option<SyntaxToken> {
4847        support::token(&self.syntax, SyntaxKind::ONLY_KW)
4848    }
4849    #[inline]
4850    pub fn rows_token(&self) -> Option<SyntaxToken> {
4851        support::token(&self.syntax, SyntaxKind::ROWS_KW)
4852    }
4853}
4854
4855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4856pub struct FuncOptionList {
4857    pub(crate) syntax: SyntaxNode,
4858}
4859impl FuncOptionList {
4860    #[inline]
4861    pub fn options(&self) -> AstChildren<FuncOption> {
4862        support::children(&self.syntax)
4863    }
4864}
4865
4866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4867pub struct GeneratedConstraint {
4868    pub(crate) syntax: SyntaxNode,
4869}
4870impl GeneratedConstraint {
4871    #[inline]
4872    pub fn expr(&self) -> Option<Expr> {
4873        support::child(&self.syntax)
4874    }
4875    #[inline]
4876    pub fn name_ref(&self) -> Option<NameRef> {
4877        support::child(&self.syntax)
4878    }
4879    #[inline]
4880    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
4881        support::child(&self.syntax)
4882    }
4883    #[inline]
4884    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4885        support::token(&self.syntax, SyntaxKind::L_PAREN)
4886    }
4887    #[inline]
4888    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4889        support::token(&self.syntax, SyntaxKind::R_PAREN)
4890    }
4891    #[inline]
4892    pub fn always_token(&self) -> Option<SyntaxToken> {
4893        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
4894    }
4895    #[inline]
4896    pub fn as_token(&self) -> Option<SyntaxToken> {
4897        support::token(&self.syntax, SyntaxKind::AS_KW)
4898    }
4899    #[inline]
4900    pub fn by_token(&self) -> Option<SyntaxToken> {
4901        support::token(&self.syntax, SyntaxKind::BY_KW)
4902    }
4903    #[inline]
4904    pub fn constraint_token(&self) -> Option<SyntaxToken> {
4905        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
4906    }
4907    #[inline]
4908    pub fn default_token(&self) -> Option<SyntaxToken> {
4909        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4910    }
4911    #[inline]
4912    pub fn generated_token(&self) -> Option<SyntaxToken> {
4913        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
4914    }
4915    #[inline]
4916    pub fn identity_token(&self) -> Option<SyntaxToken> {
4917        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
4918    }
4919    #[inline]
4920    pub fn stored_token(&self) -> Option<SyntaxToken> {
4921        support::token(&self.syntax, SyntaxKind::STORED_KW)
4922    }
4923}
4924
4925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4926pub struct Grant {
4927    pub(crate) syntax: SyntaxNode,
4928}
4929impl Grant {
4930    #[inline]
4931    pub fn grant_token(&self) -> Option<SyntaxToken> {
4932        support::token(&self.syntax, SyntaxKind::GRANT_KW)
4933    }
4934}
4935
4936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4937pub struct GroupByClause {
4938    pub(crate) syntax: SyntaxNode,
4939}
4940impl GroupByClause {
4941    #[inline]
4942    pub fn grouping_cube(&self) -> Option<GroupingCube> {
4943        support::child(&self.syntax)
4944    }
4945    #[inline]
4946    pub fn grouping_expr(&self) -> Option<GroupingExpr> {
4947        support::child(&self.syntax)
4948    }
4949    #[inline]
4950    pub fn grouping_rollup(&self) -> Option<GroupingRollup> {
4951        support::child(&self.syntax)
4952    }
4953    #[inline]
4954    pub fn grouping_sets(&self) -> Option<GroupingSets> {
4955        support::child(&self.syntax)
4956    }
4957    #[inline]
4958    pub fn all_token(&self) -> Option<SyntaxToken> {
4959        support::token(&self.syntax, SyntaxKind::ALL_KW)
4960    }
4961    #[inline]
4962    pub fn by_token(&self) -> Option<SyntaxToken> {
4963        support::token(&self.syntax, SyntaxKind::BY_KW)
4964    }
4965    #[inline]
4966    pub fn distinct_token(&self) -> Option<SyntaxToken> {
4967        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
4968    }
4969    #[inline]
4970    pub fn group_token(&self) -> Option<SyntaxToken> {
4971        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4972    }
4973}
4974
4975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4976pub struct GroupingCube {
4977    pub(crate) syntax: SyntaxNode,
4978}
4979impl GroupingCube {
4980    #[inline]
4981    pub fn expr(&self) -> Option<Expr> {
4982        support::child(&self.syntax)
4983    }
4984    #[inline]
4985    pub fn cube_token(&self) -> Option<SyntaxToken> {
4986        support::token(&self.syntax, SyntaxKind::CUBE_KW)
4987    }
4988}
4989
4990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4991pub struct GroupingExpr {
4992    pub(crate) syntax: SyntaxNode,
4993}
4994impl GroupingExpr {
4995    #[inline]
4996    pub fn expr(&self) -> Option<Expr> {
4997        support::child(&self.syntax)
4998    }
4999}
5000
5001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5002pub struct GroupingRollup {
5003    pub(crate) syntax: SyntaxNode,
5004}
5005impl GroupingRollup {
5006    #[inline]
5007    pub fn expr(&self) -> Option<Expr> {
5008        support::child(&self.syntax)
5009    }
5010    #[inline]
5011    pub fn rollup_token(&self) -> Option<SyntaxToken> {
5012        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
5013    }
5014}
5015
5016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5017pub struct GroupingSets {
5018    pub(crate) syntax: SyntaxNode,
5019}
5020impl GroupingSets {
5021    #[inline]
5022    pub fn expr(&self) -> Option<Expr> {
5023        support::child(&self.syntax)
5024    }
5025    #[inline]
5026    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5027        support::token(&self.syntax, SyntaxKind::L_PAREN)
5028    }
5029    #[inline]
5030    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5031        support::token(&self.syntax, SyntaxKind::R_PAREN)
5032    }
5033    #[inline]
5034    pub fn grouping_token(&self) -> Option<SyntaxToken> {
5035        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
5036    }
5037    #[inline]
5038    pub fn sets_token(&self) -> Option<SyntaxToken> {
5039        support::token(&self.syntax, SyntaxKind::SETS_KW)
5040    }
5041}
5042
5043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5044pub struct Gteq {
5045    pub(crate) syntax: SyntaxNode,
5046}
5047impl Gteq {
5048    #[inline]
5049    pub fn eq_token(&self) -> Option<SyntaxToken> {
5050        support::token(&self.syntax, SyntaxKind::EQ)
5051    }
5052    #[inline]
5053    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5054        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5055    }
5056}
5057
5058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5059pub struct HavingClause {
5060    pub(crate) syntax: SyntaxNode,
5061}
5062impl HavingClause {
5063    #[inline]
5064    pub fn having_token(&self) -> Option<SyntaxToken> {
5065        support::token(&self.syntax, SyntaxKind::HAVING_KW)
5066    }
5067}
5068
5069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5070pub struct IfExists {
5071    pub(crate) syntax: SyntaxNode,
5072}
5073impl IfExists {
5074    #[inline]
5075    pub fn exists_token(&self) -> Option<SyntaxToken> {
5076        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5077    }
5078    #[inline]
5079    pub fn if_token(&self) -> Option<SyntaxToken> {
5080        support::token(&self.syntax, SyntaxKind::IF_KW)
5081    }
5082}
5083
5084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5085pub struct IfNotExists {
5086    pub(crate) syntax: SyntaxNode,
5087}
5088impl IfNotExists {
5089    #[inline]
5090    pub fn exists_token(&self) -> Option<SyntaxToken> {
5091        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5092    }
5093    #[inline]
5094    pub fn if_token(&self) -> Option<SyntaxToken> {
5095        support::token(&self.syntax, SyntaxKind::IF_KW)
5096    }
5097    #[inline]
5098    pub fn not_token(&self) -> Option<SyntaxToken> {
5099        support::token(&self.syntax, SyntaxKind::NOT_KW)
5100    }
5101}
5102
5103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5104pub struct ImportForeignSchema {
5105    pub(crate) syntax: SyntaxNode,
5106}
5107impl ImportForeignSchema {
5108    #[inline]
5109    pub fn name_ref(&self) -> Option<NameRef> {
5110        support::child(&self.syntax)
5111    }
5112    #[inline]
5113    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5114        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5115    }
5116    #[inline]
5117    pub fn import_token(&self) -> Option<SyntaxToken> {
5118        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
5119    }
5120    #[inline]
5121    pub fn schema_token(&self) -> Option<SyntaxToken> {
5122        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
5123    }
5124}
5125
5126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5127pub struct IndexExpr {
5128    pub(crate) syntax: SyntaxNode,
5129}
5130impl IndexExpr {
5131    #[inline]
5132    pub fn base(&self) -> Option<Expr> {
5133        support::child(&self.syntax)
5134    }
5135    #[inline]
5136    pub fn index(&self) -> Option<Expr> {
5137        support::child(&self.syntax)
5138    }
5139    #[inline]
5140    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
5141        support::token(&self.syntax, SyntaxKind::L_BRACK)
5142    }
5143    #[inline]
5144    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
5145        support::token(&self.syntax, SyntaxKind::R_BRACK)
5146    }
5147}
5148
5149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5150pub struct IndexParams {
5151    pub(crate) syntax: SyntaxNode,
5152}
5153impl IndexParams {
5154    #[inline]
5155    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
5156        support::children(&self.syntax)
5157    }
5158    #[inline]
5159    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5160        support::token(&self.syntax, SyntaxKind::L_PAREN)
5161    }
5162    #[inline]
5163    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5164        support::token(&self.syntax, SyntaxKind::R_PAREN)
5165    }
5166}
5167
5168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5169pub struct Inherit {
5170    pub(crate) syntax: SyntaxNode,
5171}
5172impl Inherit {
5173    #[inline]
5174    pub fn inherit_token(&self) -> Option<SyntaxToken> {
5175        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
5176    }
5177}
5178
5179#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5180pub struct Inherits {
5181    pub(crate) syntax: SyntaxNode,
5182}
5183impl Inherits {
5184    #[inline]
5185    pub fn paths(&self) -> AstChildren<Path> {
5186        support::children(&self.syntax)
5187    }
5188    #[inline]
5189    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5190        support::token(&self.syntax, SyntaxKind::L_PAREN)
5191    }
5192    #[inline]
5193    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5194        support::token(&self.syntax, SyntaxKind::R_PAREN)
5195    }
5196    #[inline]
5197    pub fn inherits_token(&self) -> Option<SyntaxToken> {
5198        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
5199    }
5200}
5201
5202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5203pub struct InitiallyDeferredConstraintOption {
5204    pub(crate) syntax: SyntaxNode,
5205}
5206impl InitiallyDeferredConstraintOption {
5207    #[inline]
5208    pub fn deferred_token(&self) -> Option<SyntaxToken> {
5209        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
5210    }
5211    #[inline]
5212    pub fn initially_token(&self) -> Option<SyntaxToken> {
5213        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5214    }
5215}
5216
5217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5218pub struct InitiallyImmediateConstraintOption {
5219    pub(crate) syntax: SyntaxNode,
5220}
5221impl InitiallyImmediateConstraintOption {
5222    #[inline]
5223    pub fn immediate_token(&self) -> Option<SyntaxToken> {
5224        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
5225    }
5226    #[inline]
5227    pub fn initially_token(&self) -> Option<SyntaxToken> {
5228        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5229    }
5230}
5231
5232#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5233pub struct Insert {
5234    pub(crate) syntax: SyntaxNode,
5235}
5236impl Insert {
5237    #[inline]
5238    pub fn insert_token(&self) -> Option<SyntaxToken> {
5239        support::token(&self.syntax, SyntaxKind::INSERT_KW)
5240    }
5241}
5242
5243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5244pub struct IntervalType {
5245    pub(crate) syntax: SyntaxNode,
5246}
5247impl IntervalType {
5248    #[inline]
5249    pub fn literal(&self) -> Option<Literal> {
5250        support::child(&self.syntax)
5251    }
5252    #[inline]
5253    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5254        support::token(&self.syntax, SyntaxKind::L_PAREN)
5255    }
5256    #[inline]
5257    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5258        support::token(&self.syntax, SyntaxKind::R_PAREN)
5259    }
5260    #[inline]
5261    pub fn day_token(&self) -> Option<SyntaxToken> {
5262        support::token(&self.syntax, SyntaxKind::DAY_KW)
5263    }
5264    #[inline]
5265    pub fn hour_token(&self) -> Option<SyntaxToken> {
5266        support::token(&self.syntax, SyntaxKind::HOUR_KW)
5267    }
5268    #[inline]
5269    pub fn interval_token(&self) -> Option<SyntaxToken> {
5270        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
5271    }
5272    #[inline]
5273    pub fn minute_token(&self) -> Option<SyntaxToken> {
5274        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
5275    }
5276    #[inline]
5277    pub fn month_token(&self) -> Option<SyntaxToken> {
5278        support::token(&self.syntax, SyntaxKind::MONTH_KW)
5279    }
5280    #[inline]
5281    pub fn second_token(&self) -> Option<SyntaxToken> {
5282        support::token(&self.syntax, SyntaxKind::SECOND_KW)
5283    }
5284    #[inline]
5285    pub fn to_token(&self) -> Option<SyntaxToken> {
5286        support::token(&self.syntax, SyntaxKind::TO_KW)
5287    }
5288    #[inline]
5289    pub fn year_token(&self) -> Option<SyntaxToken> {
5290        support::token(&self.syntax, SyntaxKind::YEAR_KW)
5291    }
5292}
5293
5294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5295pub struct IntoClause {
5296    pub(crate) syntax: SyntaxNode,
5297}
5298impl IntoClause {
5299    #[inline]
5300    pub fn into_token(&self) -> Option<SyntaxToken> {
5301        support::token(&self.syntax, SyntaxKind::INTO_KW)
5302    }
5303}
5304
5305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5306pub struct IsDistinctFrom {
5307    pub(crate) syntax: SyntaxNode,
5308}
5309impl IsDistinctFrom {
5310    #[inline]
5311    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5312        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5313    }
5314    #[inline]
5315    pub fn from_token(&self) -> Option<SyntaxToken> {
5316        support::token(&self.syntax, SyntaxKind::FROM_KW)
5317    }
5318    #[inline]
5319    pub fn is_token(&self) -> Option<SyntaxToken> {
5320        support::token(&self.syntax, SyntaxKind::IS_KW)
5321    }
5322}
5323
5324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5325pub struct IsJson {
5326    pub(crate) syntax: SyntaxNode,
5327}
5328impl IsJson {
5329    #[inline]
5330    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5331        support::child(&self.syntax)
5332    }
5333    #[inline]
5334    pub fn is_token(&self) -> Option<SyntaxToken> {
5335        support::token(&self.syntax, SyntaxKind::IS_KW)
5336    }
5337    #[inline]
5338    pub fn json_token(&self) -> Option<SyntaxToken> {
5339        support::token(&self.syntax, SyntaxKind::JSON_KW)
5340    }
5341}
5342
5343#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5344pub struct IsJsonArray {
5345    pub(crate) syntax: SyntaxNode,
5346}
5347impl IsJsonArray {
5348    #[inline]
5349    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5350        support::child(&self.syntax)
5351    }
5352    #[inline]
5353    pub fn array_token(&self) -> Option<SyntaxToken> {
5354        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5355    }
5356    #[inline]
5357    pub fn is_token(&self) -> Option<SyntaxToken> {
5358        support::token(&self.syntax, SyntaxKind::IS_KW)
5359    }
5360    #[inline]
5361    pub fn json_token(&self) -> Option<SyntaxToken> {
5362        support::token(&self.syntax, SyntaxKind::JSON_KW)
5363    }
5364}
5365
5366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5367pub struct IsJsonObject {
5368    pub(crate) syntax: SyntaxNode,
5369}
5370impl IsJsonObject {
5371    #[inline]
5372    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5373        support::child(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn is_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::IS_KW)
5378    }
5379    #[inline]
5380    pub fn json_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::JSON_KW)
5382    }
5383    #[inline]
5384    pub fn object_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5386    }
5387}
5388
5389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5390pub struct IsJsonScalar {
5391    pub(crate) syntax: SyntaxNode,
5392}
5393impl IsJsonScalar {
5394    #[inline]
5395    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5396        support::child(&self.syntax)
5397    }
5398    #[inline]
5399    pub fn is_token(&self) -> Option<SyntaxToken> {
5400        support::token(&self.syntax, SyntaxKind::IS_KW)
5401    }
5402    #[inline]
5403    pub fn json_token(&self) -> Option<SyntaxToken> {
5404        support::token(&self.syntax, SyntaxKind::JSON_KW)
5405    }
5406    #[inline]
5407    pub fn scalar_token(&self) -> Option<SyntaxToken> {
5408        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
5409    }
5410}
5411
5412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5413pub struct IsJsonValue {
5414    pub(crate) syntax: SyntaxNode,
5415}
5416impl IsJsonValue {
5417    #[inline]
5418    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5419        support::child(&self.syntax)
5420    }
5421    #[inline]
5422    pub fn is_token(&self) -> Option<SyntaxToken> {
5423        support::token(&self.syntax, SyntaxKind::IS_KW)
5424    }
5425    #[inline]
5426    pub fn json_token(&self) -> Option<SyntaxToken> {
5427        support::token(&self.syntax, SyntaxKind::JSON_KW)
5428    }
5429    #[inline]
5430    pub fn value_token(&self) -> Option<SyntaxToken> {
5431        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5432    }
5433}
5434
5435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5436pub struct IsNormalized {
5437    pub(crate) syntax: SyntaxNode,
5438}
5439impl IsNormalized {
5440    #[inline]
5441    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
5442        support::child(&self.syntax)
5443    }
5444    #[inline]
5445    pub fn is_token(&self) -> Option<SyntaxToken> {
5446        support::token(&self.syntax, SyntaxKind::IS_KW)
5447    }
5448    #[inline]
5449    pub fn normalized_token(&self) -> Option<SyntaxToken> {
5450        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
5451    }
5452}
5453
5454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5455pub struct IsNot {
5456    pub(crate) syntax: SyntaxNode,
5457}
5458impl IsNot {
5459    #[inline]
5460    pub fn is_token(&self) -> Option<SyntaxToken> {
5461        support::token(&self.syntax, SyntaxKind::IS_KW)
5462    }
5463    #[inline]
5464    pub fn not_token(&self) -> Option<SyntaxToken> {
5465        support::token(&self.syntax, SyntaxKind::NOT_KW)
5466    }
5467}
5468
5469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5470pub struct IsNotDistinctFrom {
5471    pub(crate) syntax: SyntaxNode,
5472}
5473impl IsNotDistinctFrom {
5474    #[inline]
5475    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5477    }
5478    #[inline]
5479    pub fn from_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::FROM_KW)
5481    }
5482    #[inline]
5483    pub fn is_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::IS_KW)
5485    }
5486    #[inline]
5487    pub fn not_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::NOT_KW)
5489    }
5490}
5491
5492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5493pub struct IsNotJson {
5494    pub(crate) syntax: SyntaxNode,
5495}
5496impl IsNotJson {
5497    #[inline]
5498    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5499        support::child(&self.syntax)
5500    }
5501    #[inline]
5502    pub fn is_token(&self) -> Option<SyntaxToken> {
5503        support::token(&self.syntax, SyntaxKind::IS_KW)
5504    }
5505    #[inline]
5506    pub fn json_token(&self) -> Option<SyntaxToken> {
5507        support::token(&self.syntax, SyntaxKind::JSON_KW)
5508    }
5509    #[inline]
5510    pub fn not_token(&self) -> Option<SyntaxToken> {
5511        support::token(&self.syntax, SyntaxKind::NOT_KW)
5512    }
5513}
5514
5515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5516pub struct IsNotJsonArray {
5517    pub(crate) syntax: SyntaxNode,
5518}
5519impl IsNotJsonArray {
5520    #[inline]
5521    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5522        support::child(&self.syntax)
5523    }
5524    #[inline]
5525    pub fn array_token(&self) -> Option<SyntaxToken> {
5526        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5527    }
5528    #[inline]
5529    pub fn is_token(&self) -> Option<SyntaxToken> {
5530        support::token(&self.syntax, SyntaxKind::IS_KW)
5531    }
5532    #[inline]
5533    pub fn json_token(&self) -> Option<SyntaxToken> {
5534        support::token(&self.syntax, SyntaxKind::JSON_KW)
5535    }
5536    #[inline]
5537    pub fn not_token(&self) -> Option<SyntaxToken> {
5538        support::token(&self.syntax, SyntaxKind::NOT_KW)
5539    }
5540}
5541
5542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5543pub struct IsNotJsonObject {
5544    pub(crate) syntax: SyntaxNode,
5545}
5546impl IsNotJsonObject {
5547    #[inline]
5548    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5549        support::child(&self.syntax)
5550    }
5551    #[inline]
5552    pub fn is_token(&self) -> Option<SyntaxToken> {
5553        support::token(&self.syntax, SyntaxKind::IS_KW)
5554    }
5555    #[inline]
5556    pub fn json_token(&self) -> Option<SyntaxToken> {
5557        support::token(&self.syntax, SyntaxKind::JSON_KW)
5558    }
5559    #[inline]
5560    pub fn not_token(&self) -> Option<SyntaxToken> {
5561        support::token(&self.syntax, SyntaxKind::NOT_KW)
5562    }
5563    #[inline]
5564    pub fn object_token(&self) -> Option<SyntaxToken> {
5565        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5566    }
5567}
5568
5569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5570pub struct IsNotJsonScalar {
5571    pub(crate) syntax: SyntaxNode,
5572}
5573impl IsNotJsonScalar {
5574    #[inline]
5575    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5576        support::child(&self.syntax)
5577    }
5578    #[inline]
5579    pub fn is_token(&self) -> Option<SyntaxToken> {
5580        support::token(&self.syntax, SyntaxKind::IS_KW)
5581    }
5582    #[inline]
5583    pub fn json_token(&self) -> Option<SyntaxToken> {
5584        support::token(&self.syntax, SyntaxKind::JSON_KW)
5585    }
5586    #[inline]
5587    pub fn not_token(&self) -> Option<SyntaxToken> {
5588        support::token(&self.syntax, SyntaxKind::NOT_KW)
5589    }
5590    #[inline]
5591    pub fn scalar_token(&self) -> Option<SyntaxToken> {
5592        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
5593    }
5594}
5595
5596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5597pub struct IsNotJsonValue {
5598    pub(crate) syntax: SyntaxNode,
5599}
5600impl IsNotJsonValue {
5601    #[inline]
5602    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5603        support::child(&self.syntax)
5604    }
5605    #[inline]
5606    pub fn is_token(&self) -> Option<SyntaxToken> {
5607        support::token(&self.syntax, SyntaxKind::IS_KW)
5608    }
5609    #[inline]
5610    pub fn json_token(&self) -> Option<SyntaxToken> {
5611        support::token(&self.syntax, SyntaxKind::JSON_KW)
5612    }
5613    #[inline]
5614    pub fn not_token(&self) -> Option<SyntaxToken> {
5615        support::token(&self.syntax, SyntaxKind::NOT_KW)
5616    }
5617    #[inline]
5618    pub fn value_token(&self) -> Option<SyntaxToken> {
5619        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5620    }
5621}
5622
5623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5624pub struct IsNotNormalized {
5625    pub(crate) syntax: SyntaxNode,
5626}
5627impl IsNotNormalized {
5628    #[inline]
5629    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
5630        support::child(&self.syntax)
5631    }
5632    #[inline]
5633    pub fn is_token(&self) -> Option<SyntaxToken> {
5634        support::token(&self.syntax, SyntaxKind::IS_KW)
5635    }
5636    #[inline]
5637    pub fn normalized_token(&self) -> Option<SyntaxToken> {
5638        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
5639    }
5640    #[inline]
5641    pub fn not_token(&self) -> Option<SyntaxToken> {
5642        support::token(&self.syntax, SyntaxKind::NOT_KW)
5643    }
5644}
5645
5646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5647pub struct Join {
5648    pub(crate) syntax: SyntaxNode,
5649}
5650impl Join {
5651    #[inline]
5652    pub fn from_item(&self) -> Option<FromItem> {
5653        support::child(&self.syntax)
5654    }
5655    #[inline]
5656    pub fn join_type(&self) -> Option<JoinType> {
5657        support::child(&self.syntax)
5658    }
5659    #[inline]
5660    pub fn on_clause(&self) -> Option<OnClause> {
5661        support::child(&self.syntax)
5662    }
5663    #[inline]
5664    pub fn using_clause(&self) -> Option<JoinUsingClause> {
5665        support::child(&self.syntax)
5666    }
5667    #[inline]
5668    pub fn natural_token(&self) -> Option<SyntaxToken> {
5669        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
5670    }
5671}
5672
5673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5674pub struct JoinCross {
5675    pub(crate) syntax: SyntaxNode,
5676}
5677impl JoinCross {
5678    #[inline]
5679    pub fn cross_token(&self) -> Option<SyntaxToken> {
5680        support::token(&self.syntax, SyntaxKind::CROSS_KW)
5681    }
5682    #[inline]
5683    pub fn join_token(&self) -> Option<SyntaxToken> {
5684        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5685    }
5686}
5687
5688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5689pub struct JoinExpr {
5690    pub(crate) syntax: SyntaxNode,
5691}
5692impl JoinExpr {
5693    #[inline]
5694    pub fn from_item(&self) -> Option<FromItem> {
5695        support::child(&self.syntax)
5696    }
5697    #[inline]
5698    pub fn join(&self) -> Option<Join> {
5699        support::child(&self.syntax)
5700    }
5701    #[inline]
5702    pub fn join_expr(&self) -> Option<JoinExpr> {
5703        support::child(&self.syntax)
5704    }
5705}
5706
5707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5708pub struct JoinFull {
5709    pub(crate) syntax: SyntaxNode,
5710}
5711impl JoinFull {
5712    #[inline]
5713    pub fn full_token(&self) -> Option<SyntaxToken> {
5714        support::token(&self.syntax, SyntaxKind::FULL_KW)
5715    }
5716    #[inline]
5717    pub fn join_token(&self) -> Option<SyntaxToken> {
5718        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5719    }
5720    #[inline]
5721    pub fn outer_token(&self) -> Option<SyntaxToken> {
5722        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5723    }
5724}
5725
5726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5727pub struct JoinInner {
5728    pub(crate) syntax: SyntaxNode,
5729}
5730impl JoinInner {
5731    #[inline]
5732    pub fn inner_token(&self) -> Option<SyntaxToken> {
5733        support::token(&self.syntax, SyntaxKind::INNER_KW)
5734    }
5735    #[inline]
5736    pub fn join_token(&self) -> Option<SyntaxToken> {
5737        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5738    }
5739}
5740
5741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5742pub struct JoinLeft {
5743    pub(crate) syntax: SyntaxNode,
5744}
5745impl JoinLeft {
5746    #[inline]
5747    pub fn join_token(&self) -> Option<SyntaxToken> {
5748        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5749    }
5750    #[inline]
5751    pub fn left_token(&self) -> Option<SyntaxToken> {
5752        support::token(&self.syntax, SyntaxKind::LEFT_KW)
5753    }
5754    #[inline]
5755    pub fn outer_token(&self) -> Option<SyntaxToken> {
5756        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5757    }
5758}
5759
5760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5761pub struct JoinRight {
5762    pub(crate) syntax: SyntaxNode,
5763}
5764impl JoinRight {
5765    #[inline]
5766    pub fn join_token(&self) -> Option<SyntaxToken> {
5767        support::token(&self.syntax, SyntaxKind::JOIN_KW)
5768    }
5769    #[inline]
5770    pub fn outer_token(&self) -> Option<SyntaxToken> {
5771        support::token(&self.syntax, SyntaxKind::OUTER_KW)
5772    }
5773    #[inline]
5774    pub fn right_token(&self) -> Option<SyntaxToken> {
5775        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
5776    }
5777}
5778
5779#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5780pub struct JoinUsingClause {
5781    pub(crate) syntax: SyntaxNode,
5782}
5783impl JoinUsingClause {
5784    #[inline]
5785    pub fn alias(&self) -> Option<Alias> {
5786        support::child(&self.syntax)
5787    }
5788    #[inline]
5789    pub fn column_list(&self) -> Option<ColumnList> {
5790        support::child(&self.syntax)
5791    }
5792    #[inline]
5793    pub fn using_token(&self) -> Option<SyntaxToken> {
5794        support::token(&self.syntax, SyntaxKind::USING_KW)
5795    }
5796}
5797
5798#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5799pub struct JsonBehaviorDefault {
5800    pub(crate) syntax: SyntaxNode,
5801}
5802impl JsonBehaviorDefault {
5803    #[inline]
5804    pub fn expr(&self) -> Option<Expr> {
5805        support::child(&self.syntax)
5806    }
5807    #[inline]
5808    pub fn default_token(&self) -> Option<SyntaxToken> {
5809        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5810    }
5811}
5812
5813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5814pub struct JsonBehaviorEmptyArray {
5815    pub(crate) syntax: SyntaxNode,
5816}
5817impl JsonBehaviorEmptyArray {
5818    #[inline]
5819    pub fn array_token(&self) -> Option<SyntaxToken> {
5820        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5821    }
5822    #[inline]
5823    pub fn empty_token(&self) -> Option<SyntaxToken> {
5824        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
5825    }
5826}
5827
5828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5829pub struct JsonBehaviorEmptyObject {
5830    pub(crate) syntax: SyntaxNode,
5831}
5832impl JsonBehaviorEmptyObject {
5833    #[inline]
5834    pub fn empty_token(&self) -> Option<SyntaxToken> {
5835        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
5836    }
5837    #[inline]
5838    pub fn object_token(&self) -> Option<SyntaxToken> {
5839        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5840    }
5841}
5842
5843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5844pub struct JsonBehaviorError {
5845    pub(crate) syntax: SyntaxNode,
5846}
5847impl JsonBehaviorError {
5848    #[inline]
5849    pub fn error_token(&self) -> Option<SyntaxToken> {
5850        support::token(&self.syntax, SyntaxKind::ERROR_KW)
5851    }
5852}
5853
5854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5855pub struct JsonBehaviorFalse {
5856    pub(crate) syntax: SyntaxNode,
5857}
5858impl JsonBehaviorFalse {
5859    #[inline]
5860    pub fn false_token(&self) -> Option<SyntaxToken> {
5861        support::token(&self.syntax, SyntaxKind::FALSE_KW)
5862    }
5863}
5864
5865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5866pub struct JsonBehaviorNull {
5867    pub(crate) syntax: SyntaxNode,
5868}
5869impl JsonBehaviorNull {
5870    #[inline]
5871    pub fn null_token(&self) -> Option<SyntaxToken> {
5872        support::token(&self.syntax, SyntaxKind::NULL_KW)
5873    }
5874}
5875
5876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5877pub struct JsonBehaviorTrue {
5878    pub(crate) syntax: SyntaxNode,
5879}
5880impl JsonBehaviorTrue {
5881    #[inline]
5882    pub fn true_token(&self) -> Option<SyntaxToken> {
5883        support::token(&self.syntax, SyntaxKind::TRUE_KW)
5884    }
5885}
5886
5887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5888pub struct JsonBehaviorUnknown {
5889    pub(crate) syntax: SyntaxNode,
5890}
5891impl JsonBehaviorUnknown {
5892    #[inline]
5893    pub fn unknown_token(&self) -> Option<SyntaxToken> {
5894        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
5895    }
5896}
5897
5898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5899pub struct JsonFormatClause {
5900    pub(crate) syntax: SyntaxNode,
5901}
5902impl JsonFormatClause {
5903    #[inline]
5904    pub fn name(&self) -> Option<Name> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn encoding_token(&self) -> Option<SyntaxToken> {
5909        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
5910    }
5911    #[inline]
5912    pub fn format_token(&self) -> Option<SyntaxToken> {
5913        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
5914    }
5915    #[inline]
5916    pub fn json_token(&self) -> Option<SyntaxToken> {
5917        support::token(&self.syntax, SyntaxKind::JSON_KW)
5918    }
5919}
5920
5921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5922pub struct JsonKeyValue {
5923    pub(crate) syntax: SyntaxNode,
5924}
5925impl JsonKeyValue {
5926    #[inline]
5927    pub fn expr(&self) -> Option<Expr> {
5928        support::child(&self.syntax)
5929    }
5930    #[inline]
5931    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
5932        support::child(&self.syntax)
5933    }
5934    #[inline]
5935    pub fn colon_token(&self) -> Option<SyntaxToken> {
5936        support::token(&self.syntax, SyntaxKind::COLON)
5937    }
5938}
5939
5940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5941pub struct JsonKeysUniqueClause {
5942    pub(crate) syntax: SyntaxNode,
5943}
5944impl JsonKeysUniqueClause {
5945    #[inline]
5946    pub fn keys_token(&self) -> Option<SyntaxToken> {
5947        support::token(&self.syntax, SyntaxKind::KEYS_KW)
5948    }
5949    #[inline]
5950    pub fn unique_token(&self) -> Option<SyntaxToken> {
5951        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
5952    }
5953    #[inline]
5954    pub fn with_token(&self) -> Option<SyntaxToken> {
5955        support::token(&self.syntax, SyntaxKind::WITH_KW)
5956    }
5957    #[inline]
5958    pub fn without_token(&self) -> Option<SyntaxToken> {
5959        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5960    }
5961}
5962
5963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5964pub struct JsonNullClause {
5965    pub(crate) syntax: SyntaxNode,
5966}
5967impl JsonNullClause {
5968    #[inline]
5969    pub fn absent_token(&self) -> Option<SyntaxToken> {
5970        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
5971    }
5972    #[inline]
5973    pub fn null_token(&self) -> Option<SyntaxToken> {
5974        support::token(&self.syntax, SyntaxKind::NULL_KW)
5975    }
5976    #[inline]
5977    pub fn on_token(&self) -> Option<SyntaxToken> {
5978        support::token(&self.syntax, SyntaxKind::ON_KW)
5979    }
5980}
5981
5982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5983pub struct JsonOnEmptyClause {
5984    pub(crate) syntax: SyntaxNode,
5985}
5986impl JsonOnEmptyClause {
5987    #[inline]
5988    pub fn json_behavior(&self) -> Option<JsonBehavior> {
5989        support::child(&self.syntax)
5990    }
5991    #[inline]
5992    pub fn empty_token(&self) -> Option<SyntaxToken> {
5993        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
5994    }
5995    #[inline]
5996    pub fn on_token(&self) -> Option<SyntaxToken> {
5997        support::token(&self.syntax, SyntaxKind::ON_KW)
5998    }
5999}
6000
6001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6002pub struct JsonOnErrorClause {
6003    pub(crate) syntax: SyntaxNode,
6004}
6005impl JsonOnErrorClause {
6006    #[inline]
6007    pub fn json_behavior(&self) -> Option<JsonBehavior> {
6008        support::child(&self.syntax)
6009    }
6010    #[inline]
6011    pub fn error_token(&self) -> Option<SyntaxToken> {
6012        support::token(&self.syntax, SyntaxKind::ERROR_KW)
6013    }
6014    #[inline]
6015    pub fn on_token(&self) -> Option<SyntaxToken> {
6016        support::token(&self.syntax, SyntaxKind::ON_KW)
6017    }
6018}
6019
6020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6021pub struct JsonPassingArg {
6022    pub(crate) syntax: SyntaxNode,
6023}
6024impl JsonPassingArg {
6025    #[inline]
6026    pub fn expr(&self) -> Option<Expr> {
6027        support::child(&self.syntax)
6028    }
6029    #[inline]
6030    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6031        support::child(&self.syntax)
6032    }
6033    #[inline]
6034    pub fn name(&self) -> Option<Name> {
6035        support::child(&self.syntax)
6036    }
6037    #[inline]
6038    pub fn as_token(&self) -> Option<SyntaxToken> {
6039        support::token(&self.syntax, SyntaxKind::AS_KW)
6040    }
6041}
6042
6043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6044pub struct JsonPassingClause {
6045    pub(crate) syntax: SyntaxNode,
6046}
6047impl JsonPassingClause {
6048    #[inline]
6049    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
6050        support::children(&self.syntax)
6051    }
6052    #[inline]
6053    pub fn passing_token(&self) -> Option<SyntaxToken> {
6054        support::token(&self.syntax, SyntaxKind::PASSING_KW)
6055    }
6056}
6057
6058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6059pub struct JsonQuotesClause {
6060    pub(crate) syntax: SyntaxNode,
6061}
6062impl JsonQuotesClause {
6063    #[inline]
6064    pub fn keep_token(&self) -> Option<SyntaxToken> {
6065        support::token(&self.syntax, SyntaxKind::KEEP_KW)
6066    }
6067    #[inline]
6068    pub fn omit_token(&self) -> Option<SyntaxToken> {
6069        support::token(&self.syntax, SyntaxKind::OMIT_KW)
6070    }
6071    #[inline]
6072    pub fn quotes_token(&self) -> Option<SyntaxToken> {
6073        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
6074    }
6075}
6076
6077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6078pub struct JsonReturningClause {
6079    pub(crate) syntax: SyntaxNode,
6080}
6081impl JsonReturningClause {
6082    #[inline]
6083    pub fn ty(&self) -> Option<Type> {
6084        support::child(&self.syntax)
6085    }
6086    #[inline]
6087    pub fn returning_token(&self) -> Option<SyntaxToken> {
6088        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
6089    }
6090}
6091
6092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6093pub struct JsonTableColumn {
6094    pub(crate) syntax: SyntaxNode,
6095}
6096impl JsonTableColumn {
6097    #[inline]
6098    pub fn expr(&self) -> Option<Expr> {
6099        support::child(&self.syntax)
6100    }
6101    #[inline]
6102    pub fn name(&self) -> Option<Name> {
6103        support::child(&self.syntax)
6104    }
6105    #[inline]
6106    pub fn ty(&self) -> Option<Type> {
6107        support::child(&self.syntax)
6108    }
6109    #[inline]
6110    pub fn for_token(&self) -> Option<SyntaxToken> {
6111        support::token(&self.syntax, SyntaxKind::FOR_KW)
6112    }
6113    #[inline]
6114    pub fn nested_token(&self) -> Option<SyntaxToken> {
6115        support::token(&self.syntax, SyntaxKind::NESTED_KW)
6116    }
6117    #[inline]
6118    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
6119        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
6120    }
6121    #[inline]
6122    pub fn path_token(&self) -> Option<SyntaxToken> {
6123        support::token(&self.syntax, SyntaxKind::PATH_KW)
6124    }
6125}
6126
6127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6128pub struct JsonTableColumnList {
6129    pub(crate) syntax: SyntaxNode,
6130}
6131impl JsonTableColumnList {
6132    #[inline]
6133    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
6134        support::children(&self.syntax)
6135    }
6136    #[inline]
6137    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6138        support::token(&self.syntax, SyntaxKind::L_PAREN)
6139    }
6140    #[inline]
6141    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6142        support::token(&self.syntax, SyntaxKind::R_PAREN)
6143    }
6144    #[inline]
6145    pub fn columns_token(&self) -> Option<SyntaxToken> {
6146        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
6147    }
6148}
6149
6150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6151pub struct JsonValueExpr {
6152    pub(crate) syntax: SyntaxNode,
6153}
6154impl JsonValueExpr {
6155    #[inline]
6156    pub fn expr(&self) -> Option<Expr> {
6157        support::child(&self.syntax)
6158    }
6159    #[inline]
6160    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6161        support::child(&self.syntax)
6162    }
6163}
6164
6165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6166pub struct JsonWrapperBehaviorClause {
6167    pub(crate) syntax: SyntaxNode,
6168}
6169impl JsonWrapperBehaviorClause {
6170    #[inline]
6171    pub fn conditional_token(&self) -> Option<SyntaxToken> {
6172        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
6173    }
6174    #[inline]
6175    pub fn with_token(&self) -> Option<SyntaxToken> {
6176        support::token(&self.syntax, SyntaxKind::WITH_KW)
6177    }
6178    #[inline]
6179    pub fn without_token(&self) -> Option<SyntaxToken> {
6180        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6181    }
6182    #[inline]
6183    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6184        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6185    }
6186}
6187
6188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6189pub struct LanguageFuncOption {
6190    pub(crate) syntax: SyntaxNode,
6191}
6192impl LanguageFuncOption {
6193    #[inline]
6194    pub fn name_ref(&self) -> Option<NameRef> {
6195        support::child(&self.syntax)
6196    }
6197    #[inline]
6198    pub fn language_token(&self) -> Option<SyntaxToken> {
6199        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6200    }
6201}
6202
6203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6204pub struct LeakproofFuncOption {
6205    pub(crate) syntax: SyntaxNode,
6206}
6207impl LeakproofFuncOption {
6208    #[inline]
6209    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
6210        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
6211    }
6212    #[inline]
6213    pub fn not_token(&self) -> Option<SyntaxToken> {
6214        support::token(&self.syntax, SyntaxKind::NOT_KW)
6215    }
6216}
6217
6218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6219pub struct LikeClause {
6220    pub(crate) syntax: SyntaxNode,
6221}
6222impl LikeClause {
6223    #[inline]
6224    pub fn like_options(&self) -> AstChildren<LikeOption> {
6225        support::children(&self.syntax)
6226    }
6227    #[inline]
6228    pub fn like_token(&self) -> Option<SyntaxToken> {
6229        support::token(&self.syntax, SyntaxKind::LIKE_KW)
6230    }
6231}
6232
6233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6234pub struct LikeOption {
6235    pub(crate) syntax: SyntaxNode,
6236}
6237impl LikeOption {
6238    #[inline]
6239    pub fn comments_token(&self) -> Option<SyntaxToken> {
6240        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
6241    }
6242    #[inline]
6243    pub fn compression_token(&self) -> Option<SyntaxToken> {
6244        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
6245    }
6246    #[inline]
6247    pub fn constraints_token(&self) -> Option<SyntaxToken> {
6248        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
6249    }
6250    #[inline]
6251    pub fn defaults_token(&self) -> Option<SyntaxToken> {
6252        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
6253    }
6254    #[inline]
6255    pub fn excluding_token(&self) -> Option<SyntaxToken> {
6256        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
6257    }
6258    #[inline]
6259    pub fn generated_token(&self) -> Option<SyntaxToken> {
6260        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
6261    }
6262    #[inline]
6263    pub fn identity_token(&self) -> Option<SyntaxToken> {
6264        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6265    }
6266    #[inline]
6267    pub fn including_token(&self) -> Option<SyntaxToken> {
6268        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
6269    }
6270    #[inline]
6271    pub fn indexes_token(&self) -> Option<SyntaxToken> {
6272        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
6273    }
6274}
6275
6276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6277pub struct LimitClause {
6278    pub(crate) syntax: SyntaxNode,
6279}
6280impl LimitClause {
6281    #[inline]
6282    pub fn limit_token(&self) -> Option<SyntaxToken> {
6283        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
6284    }
6285}
6286
6287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6288pub struct Listen {
6289    pub(crate) syntax: SyntaxNode,
6290}
6291impl Listen {
6292    #[inline]
6293    pub fn name_ref(&self) -> Option<NameRef> {
6294        support::child(&self.syntax)
6295    }
6296    #[inline]
6297    pub fn listen_token(&self) -> Option<SyntaxToken> {
6298        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
6299    }
6300}
6301
6302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6303pub struct Literal {
6304    pub(crate) syntax: SyntaxNode,
6305}
6306impl Literal {}
6307
6308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6309pub struct Load {
6310    pub(crate) syntax: SyntaxNode,
6311}
6312impl Load {
6313    #[inline]
6314    pub fn load_token(&self) -> Option<SyntaxToken> {
6315        support::token(&self.syntax, SyntaxKind::LOAD_KW)
6316    }
6317}
6318
6319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6320pub struct Lock {
6321    pub(crate) syntax: SyntaxNode,
6322}
6323impl Lock {
6324    #[inline]
6325    pub fn lock_token(&self) -> Option<SyntaxToken> {
6326        support::token(&self.syntax, SyntaxKind::LOCK_KW)
6327    }
6328    #[inline]
6329    pub fn table_token(&self) -> Option<SyntaxToken> {
6330        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6331    }
6332}
6333
6334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6335pub struct LockingClause {
6336    pub(crate) syntax: SyntaxNode,
6337}
6338impl LockingClause {
6339    #[inline]
6340    pub fn for_token(&self) -> Option<SyntaxToken> {
6341        support::token(&self.syntax, SyntaxKind::FOR_KW)
6342    }
6343}
6344
6345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6346pub struct Lteq {
6347    pub(crate) syntax: SyntaxNode,
6348}
6349impl Lteq {
6350    #[inline]
6351    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6352        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6353    }
6354    #[inline]
6355    pub fn eq_token(&self) -> Option<SyntaxToken> {
6356        support::token(&self.syntax, SyntaxKind::EQ)
6357    }
6358}
6359
6360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6361pub struct MatchFull {
6362    pub(crate) syntax: SyntaxNode,
6363}
6364impl MatchFull {
6365    #[inline]
6366    pub fn full_token(&self) -> Option<SyntaxToken> {
6367        support::token(&self.syntax, SyntaxKind::FULL_KW)
6368    }
6369    #[inline]
6370    pub fn match_token(&self) -> Option<SyntaxToken> {
6371        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6372    }
6373}
6374
6375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6376pub struct MatchPartial {
6377    pub(crate) syntax: SyntaxNode,
6378}
6379impl MatchPartial {
6380    #[inline]
6381    pub fn match_token(&self) -> Option<SyntaxToken> {
6382        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6383    }
6384    #[inline]
6385    pub fn partial_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
6387    }
6388}
6389
6390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6391pub struct MatchSimple {
6392    pub(crate) syntax: SyntaxNode,
6393}
6394impl MatchSimple {
6395    #[inline]
6396    pub fn match_token(&self) -> Option<SyntaxToken> {
6397        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6398    }
6399    #[inline]
6400    pub fn simple_token(&self) -> Option<SyntaxToken> {
6401        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
6402    }
6403}
6404
6405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6406pub struct Materialized {
6407    pub(crate) syntax: SyntaxNode,
6408}
6409impl Materialized {
6410    #[inline]
6411    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6412        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6413    }
6414}
6415
6416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6417pub struct Merge {
6418    pub(crate) syntax: SyntaxNode,
6419}
6420impl Merge {
6421    #[inline]
6422    pub fn merge_token(&self) -> Option<SyntaxToken> {
6423        support::token(&self.syntax, SyntaxKind::MERGE_KW)
6424    }
6425}
6426
6427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6428pub struct Move {
6429    pub(crate) syntax: SyntaxNode,
6430}
6431impl Move {
6432    #[inline]
6433    pub fn move_token(&self) -> Option<SyntaxToken> {
6434        support::token(&self.syntax, SyntaxKind::MOVE_KW)
6435    }
6436}
6437
6438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6439pub struct Name {
6440    pub(crate) syntax: SyntaxNode,
6441}
6442impl Name {
6443    #[inline]
6444    pub fn ident_token(&self) -> Option<SyntaxToken> {
6445        support::token(&self.syntax, SyntaxKind::IDENT)
6446    }
6447}
6448
6449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6450pub struct NameRef {
6451    pub(crate) syntax: SyntaxNode,
6452}
6453impl NameRef {
6454    #[inline]
6455    pub fn ident_token(&self) -> Option<SyntaxToken> {
6456        support::token(&self.syntax, SyntaxKind::IDENT)
6457    }
6458}
6459
6460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6461pub struct NamedArg {
6462    pub(crate) syntax: SyntaxNode,
6463}
6464impl NamedArg {
6465    #[inline]
6466    pub fn expr(&self) -> Option<Expr> {
6467        support::child(&self.syntax)
6468    }
6469    #[inline]
6470    pub fn fat_arrow(&self) -> Option<FatArrow> {
6471        support::child(&self.syntax)
6472    }
6473    #[inline]
6474    pub fn name_ref(&self) -> Option<NameRef> {
6475        support::child(&self.syntax)
6476    }
6477}
6478
6479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6480pub struct Neq {
6481    pub(crate) syntax: SyntaxNode,
6482}
6483impl Neq {
6484    #[inline]
6485    pub fn bang_token(&self) -> Option<SyntaxToken> {
6486        support::token(&self.syntax, SyntaxKind::BANG)
6487    }
6488    #[inline]
6489    pub fn eq_token(&self) -> Option<SyntaxToken> {
6490        support::token(&self.syntax, SyntaxKind::EQ)
6491    }
6492}
6493
6494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6495pub struct Neqb {
6496    pub(crate) syntax: SyntaxNode,
6497}
6498impl Neqb {
6499    #[inline]
6500    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6501        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6502    }
6503    #[inline]
6504    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
6505        support::token(&self.syntax, SyntaxKind::R_ANGLE)
6506    }
6507}
6508
6509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6510pub struct NoAction {
6511    pub(crate) syntax: SyntaxNode,
6512}
6513impl NoAction {
6514    #[inline]
6515    pub fn action_token(&self) -> Option<SyntaxToken> {
6516        support::token(&self.syntax, SyntaxKind::ACTION_KW)
6517    }
6518    #[inline]
6519    pub fn no_token(&self) -> Option<SyntaxToken> {
6520        support::token(&self.syntax, SyntaxKind::NO_KW)
6521    }
6522}
6523
6524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6525pub struct NoForceRls {
6526    pub(crate) syntax: SyntaxNode,
6527}
6528impl NoForceRls {
6529    #[inline]
6530    pub fn force_token(&self) -> Option<SyntaxToken> {
6531        support::token(&self.syntax, SyntaxKind::FORCE_KW)
6532    }
6533    #[inline]
6534    pub fn level_token(&self) -> Option<SyntaxToken> {
6535        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6536    }
6537    #[inline]
6538    pub fn no_token(&self) -> Option<SyntaxToken> {
6539        support::token(&self.syntax, SyntaxKind::NO_KW)
6540    }
6541    #[inline]
6542    pub fn row_token(&self) -> Option<SyntaxToken> {
6543        support::token(&self.syntax, SyntaxKind::ROW_KW)
6544    }
6545    #[inline]
6546    pub fn security_token(&self) -> Option<SyntaxToken> {
6547        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6548    }
6549}
6550
6551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6552pub struct NoInherit {
6553    pub(crate) syntax: SyntaxNode,
6554}
6555impl NoInherit {
6556    #[inline]
6557    pub fn inherit_token(&self) -> Option<SyntaxToken> {
6558        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
6559    }
6560    #[inline]
6561    pub fn no_token(&self) -> Option<SyntaxToken> {
6562        support::token(&self.syntax, SyntaxKind::NO_KW)
6563    }
6564}
6565
6566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6567pub struct NonStandardParam {
6568    pub(crate) syntax: SyntaxNode,
6569}
6570impl NonStandardParam {
6571    #[inline]
6572    pub fn name_ref(&self) -> Option<NameRef> {
6573        support::child(&self.syntax)
6574    }
6575    #[inline]
6576    pub fn colon_token(&self) -> Option<SyntaxToken> {
6577        support::token(&self.syntax, SyntaxKind::COLON)
6578    }
6579}
6580
6581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6582pub struct NotDeferrable {
6583    pub(crate) syntax: SyntaxNode,
6584}
6585impl NotDeferrable {
6586    #[inline]
6587    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6588        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6589    }
6590    #[inline]
6591    pub fn not_token(&self) -> Option<SyntaxToken> {
6592        support::token(&self.syntax, SyntaxKind::NOT_KW)
6593    }
6594}
6595
6596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6597pub struct NotDeferrableConstraintOption {
6598    pub(crate) syntax: SyntaxNode,
6599}
6600impl NotDeferrableConstraintOption {
6601    #[inline]
6602    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
6603        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
6604    }
6605    #[inline]
6606    pub fn not_token(&self) -> Option<SyntaxToken> {
6607        support::token(&self.syntax, SyntaxKind::NOT_KW)
6608    }
6609}
6610
6611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6612pub struct NotEnforced {
6613    pub(crate) syntax: SyntaxNode,
6614}
6615impl NotEnforced {
6616    #[inline]
6617    pub fn enforced_token(&self) -> Option<SyntaxToken> {
6618        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
6619    }
6620    #[inline]
6621    pub fn not_token(&self) -> Option<SyntaxToken> {
6622        support::token(&self.syntax, SyntaxKind::NOT_KW)
6623    }
6624}
6625
6626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6627pub struct NotIlike {
6628    pub(crate) syntax: SyntaxNode,
6629}
6630impl NotIlike {
6631    #[inline]
6632    pub fn ilike_token(&self) -> Option<SyntaxToken> {
6633        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
6634    }
6635    #[inline]
6636    pub fn not_token(&self) -> Option<SyntaxToken> {
6637        support::token(&self.syntax, SyntaxKind::NOT_KW)
6638    }
6639}
6640
6641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6642pub struct NotIn {
6643    pub(crate) syntax: SyntaxNode,
6644}
6645impl NotIn {
6646    #[inline]
6647    pub fn in_token(&self) -> Option<SyntaxToken> {
6648        support::token(&self.syntax, SyntaxKind::IN_KW)
6649    }
6650    #[inline]
6651    pub fn not_token(&self) -> Option<SyntaxToken> {
6652        support::token(&self.syntax, SyntaxKind::NOT_KW)
6653    }
6654}
6655
6656#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6657pub struct NotLike {
6658    pub(crate) syntax: SyntaxNode,
6659}
6660impl NotLike {
6661    #[inline]
6662    pub fn like_token(&self) -> Option<SyntaxToken> {
6663        support::token(&self.syntax, SyntaxKind::LIKE_KW)
6664    }
6665    #[inline]
6666    pub fn not_token(&self) -> Option<SyntaxToken> {
6667        support::token(&self.syntax, SyntaxKind::NOT_KW)
6668    }
6669}
6670
6671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6672pub struct NotMaterialized {
6673    pub(crate) syntax: SyntaxNode,
6674}
6675impl NotMaterialized {
6676    #[inline]
6677    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6678        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6679    }
6680    #[inline]
6681    pub fn not_token(&self) -> Option<SyntaxToken> {
6682        support::token(&self.syntax, SyntaxKind::NOT_KW)
6683    }
6684}
6685
6686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6687pub struct NotNullConstraint {
6688    pub(crate) syntax: SyntaxNode,
6689}
6690impl NotNullConstraint {
6691    #[inline]
6692    pub fn name_ref(&self) -> Option<NameRef> {
6693        support::child(&self.syntax)
6694    }
6695    #[inline]
6696    pub fn no_inherit(&self) -> Option<NoInherit> {
6697        support::child(&self.syntax)
6698    }
6699    #[inline]
6700    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6701        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6702    }
6703    #[inline]
6704    pub fn not_token(&self) -> Option<SyntaxToken> {
6705        support::token(&self.syntax, SyntaxKind::NOT_KW)
6706    }
6707    #[inline]
6708    pub fn null_token(&self) -> Option<SyntaxToken> {
6709        support::token(&self.syntax, SyntaxKind::NULL_KW)
6710    }
6711}
6712
6713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6714pub struct NotOf {
6715    pub(crate) syntax: SyntaxNode,
6716}
6717impl NotOf {
6718    #[inline]
6719    pub fn not_token(&self) -> Option<SyntaxToken> {
6720        support::token(&self.syntax, SyntaxKind::NOT_KW)
6721    }
6722    #[inline]
6723    pub fn of_token(&self) -> Option<SyntaxToken> {
6724        support::token(&self.syntax, SyntaxKind::OF_KW)
6725    }
6726}
6727
6728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6729pub struct NotSimilarTo {
6730    pub(crate) syntax: SyntaxNode,
6731}
6732impl NotSimilarTo {
6733    #[inline]
6734    pub fn not_token(&self) -> Option<SyntaxToken> {
6735        support::token(&self.syntax, SyntaxKind::NOT_KW)
6736    }
6737    #[inline]
6738    pub fn similar_token(&self) -> Option<SyntaxToken> {
6739        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
6740    }
6741    #[inline]
6742    pub fn to_token(&self) -> Option<SyntaxToken> {
6743        support::token(&self.syntax, SyntaxKind::TO_KW)
6744    }
6745}
6746
6747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6748pub struct NotValid {
6749    pub(crate) syntax: SyntaxNode,
6750}
6751impl NotValid {
6752    #[inline]
6753    pub fn not_token(&self) -> Option<SyntaxToken> {
6754        support::token(&self.syntax, SyntaxKind::NOT_KW)
6755    }
6756    #[inline]
6757    pub fn valid_token(&self) -> Option<SyntaxToken> {
6758        support::token(&self.syntax, SyntaxKind::VALID_KW)
6759    }
6760}
6761
6762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6763pub struct Notify {
6764    pub(crate) syntax: SyntaxNode,
6765}
6766impl Notify {
6767    #[inline]
6768    pub fn notify_token(&self) -> Option<SyntaxToken> {
6769        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
6770    }
6771}
6772
6773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6774pub struct NullConstraint {
6775    pub(crate) syntax: SyntaxNode,
6776}
6777impl NullConstraint {
6778    #[inline]
6779    pub fn name_ref(&self) -> Option<NameRef> {
6780        support::child(&self.syntax)
6781    }
6782    #[inline]
6783    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6784        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6785    }
6786    #[inline]
6787    pub fn null_token(&self) -> Option<SyntaxToken> {
6788        support::token(&self.syntax, SyntaxKind::NULL_KW)
6789    }
6790}
6791
6792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6793pub struct NullsDistinct {
6794    pub(crate) syntax: SyntaxNode,
6795}
6796impl NullsDistinct {
6797    #[inline]
6798    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6799        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6800    }
6801    #[inline]
6802    pub fn nulls_token(&self) -> Option<SyntaxToken> {
6803        support::token(&self.syntax, SyntaxKind::NULLS_KW)
6804    }
6805}
6806
6807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6808pub struct NullsFirst {
6809    pub(crate) syntax: SyntaxNode,
6810}
6811impl NullsFirst {
6812    #[inline]
6813    pub fn first_token(&self) -> Option<SyntaxToken> {
6814        support::token(&self.syntax, SyntaxKind::FIRST_KW)
6815    }
6816    #[inline]
6817    pub fn nulls_token(&self) -> Option<SyntaxToken> {
6818        support::token(&self.syntax, SyntaxKind::NULLS_KW)
6819    }
6820}
6821
6822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6823pub struct NullsLast {
6824    pub(crate) syntax: SyntaxNode,
6825}
6826impl NullsLast {
6827    #[inline]
6828    pub fn last_token(&self) -> Option<SyntaxToken> {
6829        support::token(&self.syntax, SyntaxKind::LAST_KW)
6830    }
6831    #[inline]
6832    pub fn nulls_token(&self) -> Option<SyntaxToken> {
6833        support::token(&self.syntax, SyntaxKind::NULLS_KW)
6834    }
6835}
6836
6837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6838pub struct NullsNotDistinct {
6839    pub(crate) syntax: SyntaxNode,
6840}
6841impl NullsNotDistinct {
6842    #[inline]
6843    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6844        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6845    }
6846    #[inline]
6847    pub fn not_token(&self) -> Option<SyntaxToken> {
6848        support::token(&self.syntax, SyntaxKind::NOT_KW)
6849    }
6850    #[inline]
6851    pub fn nulls_token(&self) -> Option<SyntaxToken> {
6852        support::token(&self.syntax, SyntaxKind::NULLS_KW)
6853    }
6854}
6855
6856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6857pub struct OfType {
6858    pub(crate) syntax: SyntaxNode,
6859}
6860impl OfType {
6861    #[inline]
6862    pub fn ty(&self) -> Option<Type> {
6863        support::child(&self.syntax)
6864    }
6865    #[inline]
6866    pub fn of_token(&self) -> Option<SyntaxToken> {
6867        support::token(&self.syntax, SyntaxKind::OF_KW)
6868    }
6869}
6870
6871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6872pub struct OffsetClause {
6873    pub(crate) syntax: SyntaxNode,
6874}
6875impl OffsetClause {
6876    #[inline]
6877    pub fn offset_token(&self) -> Option<SyntaxToken> {
6878        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
6879    }
6880}
6881
6882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6883pub struct OnClause {
6884    pub(crate) syntax: SyntaxNode,
6885}
6886impl OnClause {
6887    #[inline]
6888    pub fn expr(&self) -> Option<Expr> {
6889        support::child(&self.syntax)
6890    }
6891    #[inline]
6892    pub fn on_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::ON_KW)
6894    }
6895}
6896
6897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6898pub struct OnCommit {
6899    pub(crate) syntax: SyntaxNode,
6900}
6901impl OnCommit {
6902    #[inline]
6903    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
6904        support::child(&self.syntax)
6905    }
6906    #[inline]
6907    pub fn commit_token(&self) -> Option<SyntaxToken> {
6908        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
6909    }
6910    #[inline]
6911    pub fn on_token(&self) -> Option<SyntaxToken> {
6912        support::token(&self.syntax, SyntaxKind::ON_KW)
6913    }
6914}
6915
6916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6917pub struct OnDeleteAction {
6918    pub(crate) syntax: SyntaxNode,
6919}
6920impl OnDeleteAction {
6921    #[inline]
6922    pub fn ref_action(&self) -> Option<RefAction> {
6923        support::child(&self.syntax)
6924    }
6925    #[inline]
6926    pub fn delete_token(&self) -> Option<SyntaxToken> {
6927        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6928    }
6929    #[inline]
6930    pub fn on_token(&self) -> Option<SyntaxToken> {
6931        support::token(&self.syntax, SyntaxKind::ON_KW)
6932    }
6933}
6934
6935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6936pub struct OnUpdateAction {
6937    pub(crate) syntax: SyntaxNode,
6938}
6939impl OnUpdateAction {
6940    #[inline]
6941    pub fn ref_action(&self) -> Option<RefAction> {
6942        support::child(&self.syntax)
6943    }
6944    #[inline]
6945    pub fn on_token(&self) -> Option<SyntaxToken> {
6946        support::token(&self.syntax, SyntaxKind::ON_KW)
6947    }
6948    #[inline]
6949    pub fn update_token(&self) -> Option<SyntaxToken> {
6950        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
6951    }
6952}
6953
6954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6955pub struct Op {
6956    pub(crate) syntax: SyntaxNode,
6957}
6958impl Op {
6959    #[inline]
6960    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
6961        support::child(&self.syntax)
6962    }
6963    #[inline]
6964    pub fn colon_colon(&self) -> Option<ColonColon> {
6965        support::child(&self.syntax)
6966    }
6967    #[inline]
6968    pub fn colon_eq(&self) -> Option<ColonEq> {
6969        support::child(&self.syntax)
6970    }
6971    #[inline]
6972    pub fn custom_op(&self) -> Option<CustomOp> {
6973        support::child(&self.syntax)
6974    }
6975    #[inline]
6976    pub fn fat_arrow(&self) -> Option<FatArrow> {
6977        support::child(&self.syntax)
6978    }
6979    #[inline]
6980    pub fn gteq(&self) -> Option<Gteq> {
6981        support::child(&self.syntax)
6982    }
6983    #[inline]
6984    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
6985        support::child(&self.syntax)
6986    }
6987    #[inline]
6988    pub fn is_json(&self) -> Option<IsJson> {
6989        support::child(&self.syntax)
6990    }
6991    #[inline]
6992    pub fn is_json_array(&self) -> Option<IsJsonArray> {
6993        support::child(&self.syntax)
6994    }
6995    #[inline]
6996    pub fn is_json_object(&self) -> Option<IsJsonObject> {
6997        support::child(&self.syntax)
6998    }
6999    #[inline]
7000    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
7001        support::child(&self.syntax)
7002    }
7003    #[inline]
7004    pub fn is_json_value(&self) -> Option<IsJsonValue> {
7005        support::child(&self.syntax)
7006    }
7007    #[inline]
7008    pub fn is_not(&self) -> Option<IsNot> {
7009        support::child(&self.syntax)
7010    }
7011    #[inline]
7012    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
7013        support::child(&self.syntax)
7014    }
7015    #[inline]
7016    pub fn is_not_json(&self) -> Option<IsNotJson> {
7017        support::child(&self.syntax)
7018    }
7019    #[inline]
7020    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
7021        support::child(&self.syntax)
7022    }
7023    #[inline]
7024    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
7025        support::child(&self.syntax)
7026    }
7027    #[inline]
7028    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
7029        support::child(&self.syntax)
7030    }
7031    #[inline]
7032    pub fn lteq(&self) -> Option<Lteq> {
7033        support::child(&self.syntax)
7034    }
7035    #[inline]
7036    pub fn neq(&self) -> Option<Neq> {
7037        support::child(&self.syntax)
7038    }
7039    #[inline]
7040    pub fn neqb(&self) -> Option<Neqb> {
7041        support::child(&self.syntax)
7042    }
7043    #[inline]
7044    pub fn not_ilike(&self) -> Option<NotIlike> {
7045        support::child(&self.syntax)
7046    }
7047    #[inline]
7048    pub fn not_in(&self) -> Option<NotIn> {
7049        support::child(&self.syntax)
7050    }
7051    #[inline]
7052    pub fn not_like(&self) -> Option<NotLike> {
7053        support::child(&self.syntax)
7054    }
7055    #[inline]
7056    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
7057        support::child(&self.syntax)
7058    }
7059    #[inline]
7060    pub fn operator_call(&self) -> Option<OperatorCall> {
7061        support::child(&self.syntax)
7062    }
7063    #[inline]
7064    pub fn similar_to(&self) -> Option<SimilarTo> {
7065        support::child(&self.syntax)
7066    }
7067    #[inline]
7068    pub fn percent_token(&self) -> Option<SyntaxToken> {
7069        support::token(&self.syntax, SyntaxKind::PERCENT)
7070    }
7071    #[inline]
7072    pub fn plus_token(&self) -> Option<SyntaxToken> {
7073        support::token(&self.syntax, SyntaxKind::PLUS)
7074    }
7075    #[inline]
7076    pub fn minus_token(&self) -> Option<SyntaxToken> {
7077        support::token(&self.syntax, SyntaxKind::MINUS)
7078    }
7079    #[inline]
7080    pub fn slash_token(&self) -> Option<SyntaxToken> {
7081        support::token(&self.syntax, SyntaxKind::SLASH)
7082    }
7083    #[inline]
7084    pub fn colon_token(&self) -> Option<SyntaxToken> {
7085        support::token(&self.syntax, SyntaxKind::COLON)
7086    }
7087    #[inline]
7088    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
7089        support::token(&self.syntax, SyntaxKind::L_ANGLE)
7090    }
7091    #[inline]
7092    pub fn eq_token(&self) -> Option<SyntaxToken> {
7093        support::token(&self.syntax, SyntaxKind::EQ)
7094    }
7095    #[inline]
7096    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7097        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7098    }
7099    #[inline]
7100    pub fn caret_token(&self) -> Option<SyntaxToken> {
7101        support::token(&self.syntax, SyntaxKind::CARET)
7102    }
7103    #[inline]
7104    pub fn and_token(&self) -> Option<SyntaxToken> {
7105        support::token(&self.syntax, SyntaxKind::AND_KW)
7106    }
7107    #[inline]
7108    pub fn collate_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
7110    }
7111    #[inline]
7112    pub fn ilike_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
7114    }
7115    #[inline]
7116    pub fn in_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::IN_KW)
7118    }
7119    #[inline]
7120    pub fn is_token(&self) -> Option<SyntaxToken> {
7121        support::token(&self.syntax, SyntaxKind::IS_KW)
7122    }
7123    #[inline]
7124    pub fn like_token(&self) -> Option<SyntaxToken> {
7125        support::token(&self.syntax, SyntaxKind::LIKE_KW)
7126    }
7127    #[inline]
7128    pub fn or_token(&self) -> Option<SyntaxToken> {
7129        support::token(&self.syntax, SyntaxKind::OR_KW)
7130    }
7131    #[inline]
7132    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
7133        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
7134    }
7135    #[inline]
7136    pub fn value_token(&self) -> Option<SyntaxToken> {
7137        support::token(&self.syntax, SyntaxKind::VALUE_KW)
7138    }
7139}
7140
7141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7142pub struct OperatorCall {
7143    pub(crate) syntax: SyntaxNode,
7144}
7145impl OperatorCall {
7146    #[inline]
7147    pub fn op(&self) -> Option<Op> {
7148        support::child(&self.syntax)
7149    }
7150    #[inline]
7151    pub fn path(&self) -> Option<Path> {
7152        support::child(&self.syntax)
7153    }
7154    #[inline]
7155    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::L_PAREN)
7157    }
7158    #[inline]
7159    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7160        support::token(&self.syntax, SyntaxKind::R_PAREN)
7161    }
7162    #[inline]
7163    pub fn dot_token(&self) -> Option<SyntaxToken> {
7164        support::token(&self.syntax, SyntaxKind::DOT)
7165    }
7166    #[inline]
7167    pub fn operator_token(&self) -> Option<SyntaxToken> {
7168        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7169    }
7170}
7171
7172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7173pub struct OptionsList {
7174    pub(crate) syntax: SyntaxNode,
7175}
7176impl OptionsList {
7177    #[inline]
7178    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7179        support::token(&self.syntax, SyntaxKind::L_PAREN)
7180    }
7181    #[inline]
7182    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::R_PAREN)
7184    }
7185    #[inline]
7186    pub fn option_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::OPTION_KW)
7188    }
7189}
7190
7191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7192pub struct OrReplace {
7193    pub(crate) syntax: SyntaxNode,
7194}
7195impl OrReplace {
7196    #[inline]
7197    pub fn or_token(&self) -> Option<SyntaxToken> {
7198        support::token(&self.syntax, SyntaxKind::OR_KW)
7199    }
7200    #[inline]
7201    pub fn replace_token(&self) -> Option<SyntaxToken> {
7202        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
7203    }
7204}
7205
7206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7207pub struct OrderByClause {
7208    pub(crate) syntax: SyntaxNode,
7209}
7210impl OrderByClause {
7211    #[inline]
7212    pub fn sort_bys(&self) -> AstChildren<SortBy> {
7213        support::children(&self.syntax)
7214    }
7215    #[inline]
7216    pub fn by_token(&self) -> Option<SyntaxToken> {
7217        support::token(&self.syntax, SyntaxKind::BY_KW)
7218    }
7219    #[inline]
7220    pub fn order_token(&self) -> Option<SyntaxToken> {
7221        support::token(&self.syntax, SyntaxKind::ORDER_KW)
7222    }
7223}
7224
7225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7226pub struct OverClause {
7227    pub(crate) syntax: SyntaxNode,
7228}
7229impl OverClause {
7230    #[inline]
7231    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7232        support::token(&self.syntax, SyntaxKind::L_PAREN)
7233    }
7234    #[inline]
7235    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7236        support::token(&self.syntax, SyntaxKind::R_PAREN)
7237    }
7238    #[inline]
7239    pub fn over_token(&self) -> Option<SyntaxToken> {
7240        support::token(&self.syntax, SyntaxKind::OVER_KW)
7241    }
7242}
7243
7244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7245pub struct OwnerTo {
7246    pub(crate) syntax: SyntaxNode,
7247}
7248impl OwnerTo {
7249    #[inline]
7250    pub fn role(&self) -> Option<Role> {
7251        support::child(&self.syntax)
7252    }
7253    #[inline]
7254    pub fn owner_token(&self) -> Option<SyntaxToken> {
7255        support::token(&self.syntax, SyntaxKind::OWNER_KW)
7256    }
7257    #[inline]
7258    pub fn to_token(&self) -> Option<SyntaxToken> {
7259        support::token(&self.syntax, SyntaxKind::TO_KW)
7260    }
7261}
7262
7263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7264pub struct ParallelFuncOption {
7265    pub(crate) syntax: SyntaxNode,
7266}
7267impl ParallelFuncOption {
7268    #[inline]
7269    pub fn ident_token(&self) -> Option<SyntaxToken> {
7270        support::token(&self.syntax, SyntaxKind::IDENT)
7271    }
7272    #[inline]
7273    pub fn parallel_token(&self) -> Option<SyntaxToken> {
7274        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
7275    }
7276}
7277
7278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7279pub struct Param {
7280    pub(crate) syntax: SyntaxNode,
7281}
7282impl Param {
7283    #[inline]
7284    pub fn mode(&self) -> Option<ParamMode> {
7285        support::child(&self.syntax)
7286    }
7287    #[inline]
7288    pub fn name(&self) -> Option<Name> {
7289        support::child(&self.syntax)
7290    }
7291    #[inline]
7292    pub fn param_default(&self) -> Option<ParamDefault> {
7293        support::child(&self.syntax)
7294    }
7295    #[inline]
7296    pub fn ty(&self) -> Option<Type> {
7297        support::child(&self.syntax)
7298    }
7299}
7300
7301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7302pub struct ParamDefault {
7303    pub(crate) syntax: SyntaxNode,
7304}
7305impl ParamDefault {
7306    #[inline]
7307    pub fn expr(&self) -> Option<Expr> {
7308        support::child(&self.syntax)
7309    }
7310    #[inline]
7311    pub fn eq_token(&self) -> Option<SyntaxToken> {
7312        support::token(&self.syntax, SyntaxKind::EQ)
7313    }
7314    #[inline]
7315    pub fn default_token(&self) -> Option<SyntaxToken> {
7316        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7317    }
7318}
7319
7320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7321pub struct ParamIn {
7322    pub(crate) syntax: SyntaxNode,
7323}
7324impl ParamIn {
7325    #[inline]
7326    pub fn in_token(&self) -> Option<SyntaxToken> {
7327        support::token(&self.syntax, SyntaxKind::IN_KW)
7328    }
7329}
7330
7331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7332pub struct ParamInOut {
7333    pub(crate) syntax: SyntaxNode,
7334}
7335impl ParamInOut {
7336    #[inline]
7337    pub fn in_token(&self) -> Option<SyntaxToken> {
7338        support::token(&self.syntax, SyntaxKind::IN_KW)
7339    }
7340    #[inline]
7341    pub fn inout_token(&self) -> Option<SyntaxToken> {
7342        support::token(&self.syntax, SyntaxKind::INOUT_KW)
7343    }
7344    #[inline]
7345    pub fn out_token(&self) -> Option<SyntaxToken> {
7346        support::token(&self.syntax, SyntaxKind::OUT_KW)
7347    }
7348}
7349
7350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7351pub struct ParamList {
7352    pub(crate) syntax: SyntaxNode,
7353}
7354impl ParamList {
7355    #[inline]
7356    pub fn params(&self) -> AstChildren<Param> {
7357        support::children(&self.syntax)
7358    }
7359}
7360
7361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7362pub struct ParamOut {
7363    pub(crate) syntax: SyntaxNode,
7364}
7365impl ParamOut {
7366    #[inline]
7367    pub fn out_token(&self) -> Option<SyntaxToken> {
7368        support::token(&self.syntax, SyntaxKind::OUT_KW)
7369    }
7370}
7371
7372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7373pub struct ParamVariadic {
7374    pub(crate) syntax: SyntaxNode,
7375}
7376impl ParamVariadic {
7377    #[inline]
7378    pub fn variadic_token(&self) -> Option<SyntaxToken> {
7379        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
7380    }
7381}
7382
7383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7384pub struct ParenExpr {
7385    pub(crate) syntax: SyntaxNode,
7386}
7387impl ParenExpr {
7388    #[inline]
7389    pub fn expr(&self) -> Option<Expr> {
7390        support::child(&self.syntax)
7391    }
7392    #[inline]
7393    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7394        support::token(&self.syntax, SyntaxKind::L_PAREN)
7395    }
7396    #[inline]
7397    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7398        support::token(&self.syntax, SyntaxKind::R_PAREN)
7399    }
7400}
7401
7402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7403pub struct ParenSelect {
7404    pub(crate) syntax: SyntaxNode,
7405}
7406impl ParenSelect {
7407    #[inline]
7408    pub fn select(&self) -> Option<Select> {
7409        support::child(&self.syntax)
7410    }
7411    #[inline]
7412    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7413        support::token(&self.syntax, SyntaxKind::L_PAREN)
7414    }
7415    #[inline]
7416    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7417        support::token(&self.syntax, SyntaxKind::R_PAREN)
7418    }
7419}
7420
7421#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7422pub struct PartitionBy {
7423    pub(crate) syntax: SyntaxNode,
7424}
7425impl PartitionBy {
7426    #[inline]
7427    pub fn by_token(&self) -> Option<SyntaxToken> {
7428        support::token(&self.syntax, SyntaxKind::BY_KW)
7429    }
7430    #[inline]
7431    pub fn partition_token(&self) -> Option<SyntaxToken> {
7432        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
7433    }
7434}
7435
7436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7437pub struct PartitionDefault {
7438    pub(crate) syntax: SyntaxNode,
7439}
7440impl PartitionDefault {
7441    #[inline]
7442    pub fn default_token(&self) -> Option<SyntaxToken> {
7443        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7444    }
7445}
7446
7447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7448pub struct PartitionForValuesFrom {
7449    pub(crate) syntax: SyntaxNode,
7450}
7451impl PartitionForValuesFrom {
7452    #[inline]
7453    pub fn exprs(&self) -> AstChildren<Expr> {
7454        support::children(&self.syntax)
7455    }
7456    #[inline]
7457    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7458        support::token(&self.syntax, SyntaxKind::L_PAREN)
7459    }
7460    #[inline]
7461    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7462        support::token(&self.syntax, SyntaxKind::R_PAREN)
7463    }
7464    #[inline]
7465    pub fn for_token(&self) -> Option<SyntaxToken> {
7466        support::token(&self.syntax, SyntaxKind::FOR_KW)
7467    }
7468    #[inline]
7469    pub fn from_token(&self) -> Option<SyntaxToken> {
7470        support::token(&self.syntax, SyntaxKind::FROM_KW)
7471    }
7472    #[inline]
7473    pub fn to_token(&self) -> Option<SyntaxToken> {
7474        support::token(&self.syntax, SyntaxKind::TO_KW)
7475    }
7476    #[inline]
7477    pub fn values_token(&self) -> Option<SyntaxToken> {
7478        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7479    }
7480}
7481
7482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7483pub struct PartitionForValuesIn {
7484    pub(crate) syntax: SyntaxNode,
7485}
7486impl PartitionForValuesIn {
7487    #[inline]
7488    pub fn exprs(&self) -> AstChildren<Expr> {
7489        support::children(&self.syntax)
7490    }
7491    #[inline]
7492    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7493        support::token(&self.syntax, SyntaxKind::L_PAREN)
7494    }
7495    #[inline]
7496    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7497        support::token(&self.syntax, SyntaxKind::R_PAREN)
7498    }
7499    #[inline]
7500    pub fn for_token(&self) -> Option<SyntaxToken> {
7501        support::token(&self.syntax, SyntaxKind::FOR_KW)
7502    }
7503    #[inline]
7504    pub fn in_token(&self) -> Option<SyntaxToken> {
7505        support::token(&self.syntax, SyntaxKind::IN_KW)
7506    }
7507    #[inline]
7508    pub fn values_token(&self) -> Option<SyntaxToken> {
7509        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7510    }
7511}
7512
7513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7514pub struct PartitionForValuesWith {
7515    pub(crate) syntax: SyntaxNode,
7516}
7517impl PartitionForValuesWith {
7518    #[inline]
7519    pub fn literal(&self) -> Option<Literal> {
7520        support::child(&self.syntax)
7521    }
7522    #[inline]
7523    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7524        support::token(&self.syntax, SyntaxKind::L_PAREN)
7525    }
7526    #[inline]
7527    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7528        support::token(&self.syntax, SyntaxKind::R_PAREN)
7529    }
7530    #[inline]
7531    pub fn comma_token(&self) -> Option<SyntaxToken> {
7532        support::token(&self.syntax, SyntaxKind::COMMA)
7533    }
7534    #[inline]
7535    pub fn for_token(&self) -> Option<SyntaxToken> {
7536        support::token(&self.syntax, SyntaxKind::FOR_KW)
7537    }
7538    #[inline]
7539    pub fn ident_token(&self) -> Option<SyntaxToken> {
7540        support::token(&self.syntax, SyntaxKind::IDENT)
7541    }
7542    #[inline]
7543    pub fn values_token(&self) -> Option<SyntaxToken> {
7544        support::token(&self.syntax, SyntaxKind::VALUES_KW)
7545    }
7546    #[inline]
7547    pub fn with_token(&self) -> Option<SyntaxToken> {
7548        support::token(&self.syntax, SyntaxKind::WITH_KW)
7549    }
7550}
7551
7552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7553pub struct PartitionItem {
7554    pub(crate) syntax: SyntaxNode,
7555}
7556impl PartitionItem {
7557    #[inline]
7558    pub fn collate(&self) -> Option<Collate> {
7559        support::child(&self.syntax)
7560    }
7561    #[inline]
7562    pub fn expr(&self) -> Option<Expr> {
7563        support::child(&self.syntax)
7564    }
7565}
7566
7567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7568pub struct PartitionOf {
7569    pub(crate) syntax: SyntaxNode,
7570}
7571impl PartitionOf {
7572    #[inline]
7573    pub fn ty(&self) -> Option<Type> {
7574        support::child(&self.syntax)
7575    }
7576    #[inline]
7577    pub fn of_token(&self) -> Option<SyntaxToken> {
7578        support::token(&self.syntax, SyntaxKind::OF_KW)
7579    }
7580    #[inline]
7581    pub fn partition_token(&self) -> Option<SyntaxToken> {
7582        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
7583    }
7584}
7585
7586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7587pub struct Path {
7588    pub(crate) syntax: SyntaxNode,
7589}
7590impl Path {
7591    #[inline]
7592    pub fn qualifier(&self) -> Option<Path> {
7593        support::child(&self.syntax)
7594    }
7595    #[inline]
7596    pub fn segment(&self) -> Option<PathSegment> {
7597        support::child(&self.syntax)
7598    }
7599    #[inline]
7600    pub fn dot_token(&self) -> Option<SyntaxToken> {
7601        support::token(&self.syntax, SyntaxKind::DOT)
7602    }
7603}
7604
7605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7606pub struct PathSegment {
7607    pub(crate) syntax: SyntaxNode,
7608}
7609impl PathSegment {
7610    #[inline]
7611    pub fn name(&self) -> Option<Name> {
7612        support::child(&self.syntax)
7613    }
7614    #[inline]
7615    pub fn name_ref(&self) -> Option<NameRef> {
7616        support::child(&self.syntax)
7617    }
7618}
7619
7620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7621pub struct PathType {
7622    pub(crate) syntax: SyntaxNode,
7623}
7624impl PathType {
7625    #[inline]
7626    pub fn arg_list(&self) -> Option<ArgList> {
7627        support::child(&self.syntax)
7628    }
7629    #[inline]
7630    pub fn path(&self) -> Option<Path> {
7631        support::child(&self.syntax)
7632    }
7633}
7634
7635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7636pub struct PercentType {
7637    pub(crate) syntax: SyntaxNode,
7638}
7639impl PercentType {
7640    #[inline]
7641    pub fn percent_token(&self) -> Option<SyntaxToken> {
7642        support::token(&self.syntax, SyntaxKind::PERCENT)
7643    }
7644    #[inline]
7645    pub fn type_token(&self) -> Option<SyntaxToken> {
7646        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7647    }
7648}
7649
7650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7651pub struct PercentTypeClause {
7652    pub(crate) syntax: SyntaxNode,
7653}
7654impl PercentTypeClause {
7655    #[inline]
7656    pub fn path(&self) -> Option<Path> {
7657        support::child(&self.syntax)
7658    }
7659    #[inline]
7660    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
7661        support::child(&self.syntax)
7662    }
7663}
7664
7665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7666pub struct PostfixExpr {
7667    pub(crate) syntax: SyntaxNode,
7668}
7669impl PostfixExpr {
7670    #[inline]
7671    pub fn expr(&self) -> Option<Expr> {
7672        support::child(&self.syntax)
7673    }
7674}
7675
7676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7677pub struct PrefixExpr {
7678    pub(crate) syntax: SyntaxNode,
7679}
7680impl PrefixExpr {
7681    #[inline]
7682    pub fn expr(&self) -> Option<Expr> {
7683        support::child(&self.syntax)
7684    }
7685}
7686
7687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7688pub struct Prepare {
7689    pub(crate) syntax: SyntaxNode,
7690}
7691impl Prepare {
7692    #[inline]
7693    pub fn name_ref(&self) -> Option<NameRef> {
7694        support::child(&self.syntax)
7695    }
7696    #[inline]
7697    pub fn prepare_token(&self) -> Option<SyntaxToken> {
7698        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
7699    }
7700}
7701
7702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7703pub struct PrepareTransaction {
7704    pub(crate) syntax: SyntaxNode,
7705}
7706impl PrepareTransaction {
7707    #[inline]
7708    pub fn literal(&self) -> Option<Literal> {
7709        support::child(&self.syntax)
7710    }
7711    #[inline]
7712    pub fn prepare_token(&self) -> Option<SyntaxToken> {
7713        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
7714    }
7715    #[inline]
7716    pub fn transaction_token(&self) -> Option<SyntaxToken> {
7717        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
7718    }
7719}
7720
7721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7722pub struct PreserveRows {
7723    pub(crate) syntax: SyntaxNode,
7724}
7725impl PreserveRows {
7726    #[inline]
7727    pub fn preserve_token(&self) -> Option<SyntaxToken> {
7728        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
7729    }
7730    #[inline]
7731    pub fn rows_token(&self) -> Option<SyntaxToken> {
7732        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7733    }
7734}
7735
7736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7737pub struct PrimaryKeyConstraint {
7738    pub(crate) syntax: SyntaxNode,
7739}
7740impl PrimaryKeyConstraint {
7741    #[inline]
7742    pub fn column_list(&self) -> Option<ColumnList> {
7743        support::child(&self.syntax)
7744    }
7745    #[inline]
7746    pub fn index_params(&self) -> Option<IndexParams> {
7747        support::child(&self.syntax)
7748    }
7749    #[inline]
7750    pub fn name_ref(&self) -> Option<NameRef> {
7751        support::child(&self.syntax)
7752    }
7753    #[inline]
7754    pub fn using_index(&self) -> Option<UsingIndex> {
7755        support::child(&self.syntax)
7756    }
7757    #[inline]
7758    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7759        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7760    }
7761    #[inline]
7762    pub fn key_token(&self) -> Option<SyntaxToken> {
7763        support::token(&self.syntax, SyntaxKind::KEY_KW)
7764    }
7765    #[inline]
7766    pub fn primary_token(&self) -> Option<SyntaxToken> {
7767        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
7768    }
7769}
7770
7771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7772pub struct ReadCommitted {
7773    pub(crate) syntax: SyntaxNode,
7774}
7775impl ReadCommitted {
7776    #[inline]
7777    pub fn committed_token(&self) -> Option<SyntaxToken> {
7778        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
7779    }
7780    #[inline]
7781    pub fn isolation_token(&self) -> Option<SyntaxToken> {
7782        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
7783    }
7784    #[inline]
7785    pub fn level_token(&self) -> Option<SyntaxToken> {
7786        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7787    }
7788    #[inline]
7789    pub fn read_token(&self) -> Option<SyntaxToken> {
7790        support::token(&self.syntax, SyntaxKind::READ_KW)
7791    }
7792}
7793
7794#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7795pub struct ReadOnly {
7796    pub(crate) syntax: SyntaxNode,
7797}
7798impl ReadOnly {
7799    #[inline]
7800    pub fn only_token(&self) -> Option<SyntaxToken> {
7801        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7802    }
7803    #[inline]
7804    pub fn read_token(&self) -> Option<SyntaxToken> {
7805        support::token(&self.syntax, SyntaxKind::READ_KW)
7806    }
7807}
7808
7809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7810pub struct ReadUncommitted {
7811    pub(crate) syntax: SyntaxNode,
7812}
7813impl ReadUncommitted {
7814    #[inline]
7815    pub fn isolation_token(&self) -> Option<SyntaxToken> {
7816        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
7817    }
7818    #[inline]
7819    pub fn level_token(&self) -> Option<SyntaxToken> {
7820        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7821    }
7822    #[inline]
7823    pub fn read_token(&self) -> Option<SyntaxToken> {
7824        support::token(&self.syntax, SyntaxKind::READ_KW)
7825    }
7826    #[inline]
7827    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
7828        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
7829    }
7830}
7831
7832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7833pub struct ReadWrite {
7834    pub(crate) syntax: SyntaxNode,
7835}
7836impl ReadWrite {
7837    #[inline]
7838    pub fn read_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::READ_KW)
7840    }
7841    #[inline]
7842    pub fn write_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::WRITE_KW)
7844    }
7845}
7846
7847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7848pub struct Reassign {
7849    pub(crate) syntax: SyntaxNode,
7850}
7851impl Reassign {
7852    #[inline]
7853    pub fn reassign_token(&self) -> Option<SyntaxToken> {
7854        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
7855    }
7856}
7857
7858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7859pub struct ReferencesConstraint {
7860    pub(crate) syntax: SyntaxNode,
7861}
7862impl ReferencesConstraint {
7863    #[inline]
7864    pub fn match_type(&self) -> Option<MatchType> {
7865        support::child(&self.syntax)
7866    }
7867    #[inline]
7868    pub fn name_ref(&self) -> Option<NameRef> {
7869        support::child(&self.syntax)
7870    }
7871    #[inline]
7872    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
7873        support::child(&self.syntax)
7874    }
7875    #[inline]
7876    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
7877        support::child(&self.syntax)
7878    }
7879    #[inline]
7880    pub fn path(&self) -> Option<Path> {
7881        support::child(&self.syntax)
7882    }
7883    #[inline]
7884    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7885        support::token(&self.syntax, SyntaxKind::L_PAREN)
7886    }
7887    #[inline]
7888    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7889        support::token(&self.syntax, SyntaxKind::R_PAREN)
7890    }
7891    #[inline]
7892    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7893        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7894    }
7895    #[inline]
7896    pub fn references_token(&self) -> Option<SyntaxToken> {
7897        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
7898    }
7899}
7900
7901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7902pub struct Refresh {
7903    pub(crate) syntax: SyntaxNode,
7904}
7905impl Refresh {
7906    #[inline]
7907    pub fn name_ref(&self) -> Option<NameRef> {
7908        support::child(&self.syntax)
7909    }
7910    #[inline]
7911    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
7912        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
7913    }
7914    #[inline]
7915    pub fn data_token(&self) -> Option<SyntaxToken> {
7916        support::token(&self.syntax, SyntaxKind::DATA_KW)
7917    }
7918    #[inline]
7919    pub fn materialized_token(&self) -> Option<SyntaxToken> {
7920        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
7921    }
7922    #[inline]
7923    pub fn refresh_token(&self) -> Option<SyntaxToken> {
7924        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
7925    }
7926    #[inline]
7927    pub fn view_token(&self) -> Option<SyntaxToken> {
7928        support::token(&self.syntax, SyntaxKind::VIEW_KW)
7929    }
7930    #[inline]
7931    pub fn with_token(&self) -> Option<SyntaxToken> {
7932        support::token(&self.syntax, SyntaxKind::WITH_KW)
7933    }
7934}
7935
7936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7937pub struct Reindex {
7938    pub(crate) syntax: SyntaxNode,
7939}
7940impl Reindex {
7941    #[inline]
7942    pub fn reindex_token(&self) -> Option<SyntaxToken> {
7943        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
7944    }
7945}
7946
7947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7948pub struct RelationName {
7949    pub(crate) syntax: SyntaxNode,
7950}
7951impl RelationName {
7952    #[inline]
7953    pub fn path(&self) -> Option<Path> {
7954        support::child(&self.syntax)
7955    }
7956    #[inline]
7957    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7958        support::token(&self.syntax, SyntaxKind::L_PAREN)
7959    }
7960    #[inline]
7961    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7962        support::token(&self.syntax, SyntaxKind::R_PAREN)
7963    }
7964    #[inline]
7965    pub fn star_token(&self) -> Option<SyntaxToken> {
7966        support::token(&self.syntax, SyntaxKind::STAR)
7967    }
7968    #[inline]
7969    pub fn only_token(&self) -> Option<SyntaxToken> {
7970        support::token(&self.syntax, SyntaxKind::ONLY_KW)
7971    }
7972}
7973
7974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7975pub struct ReleaseSavepoint {
7976    pub(crate) syntax: SyntaxNode,
7977}
7978impl ReleaseSavepoint {
7979    #[inline]
7980    pub fn name_ref(&self) -> Option<NameRef> {
7981        support::child(&self.syntax)
7982    }
7983    #[inline]
7984    pub fn release_token(&self) -> Option<SyntaxToken> {
7985        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
7986    }
7987    #[inline]
7988    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
7989        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
7990    }
7991}
7992
7993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7994pub struct RenameColumn {
7995    pub(crate) syntax: SyntaxNode,
7996}
7997impl RenameColumn {
7998    #[inline]
7999    pub fn column_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
8001    }
8002    #[inline]
8003    pub fn rename_token(&self) -> Option<SyntaxToken> {
8004        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8005    }
8006}
8007
8008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8009pub struct RenameConstraint {
8010    pub(crate) syntax: SyntaxNode,
8011}
8012impl RenameConstraint {
8013    #[inline]
8014    pub fn name(&self) -> Option<Name> {
8015        support::child(&self.syntax)
8016    }
8017    #[inline]
8018    pub fn name_ref(&self) -> Option<NameRef> {
8019        support::child(&self.syntax)
8020    }
8021    #[inline]
8022    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8023        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8024    }
8025    #[inline]
8026    pub fn rename_token(&self) -> Option<SyntaxToken> {
8027        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8028    }
8029    #[inline]
8030    pub fn to_token(&self) -> Option<SyntaxToken> {
8031        support::token(&self.syntax, SyntaxKind::TO_KW)
8032    }
8033}
8034
8035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8036pub struct RenameTable {
8037    pub(crate) syntax: SyntaxNode,
8038}
8039impl RenameTable {
8040    #[inline]
8041    pub fn name_ref(&self) -> Option<NameRef> {
8042        support::child(&self.syntax)
8043    }
8044    #[inline]
8045    pub fn rename_token(&self) -> Option<SyntaxToken> {
8046        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8047    }
8048    #[inline]
8049    pub fn to_token(&self) -> Option<SyntaxToken> {
8050        support::token(&self.syntax, SyntaxKind::TO_KW)
8051    }
8052}
8053
8054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8055pub struct RenameTo {
8056    pub(crate) syntax: SyntaxNode,
8057}
8058impl RenameTo {
8059    #[inline]
8060    pub fn name(&self) -> Option<Name> {
8061        support::child(&self.syntax)
8062    }
8063    #[inline]
8064    pub fn rename_token(&self) -> Option<SyntaxToken> {
8065        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8066    }
8067    #[inline]
8068    pub fn to_token(&self) -> Option<SyntaxToken> {
8069        support::token(&self.syntax, SyntaxKind::TO_KW)
8070    }
8071}
8072
8073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8074pub struct RepeatableRead {
8075    pub(crate) syntax: SyntaxNode,
8076}
8077impl RepeatableRead {
8078    #[inline]
8079    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8080        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8081    }
8082    #[inline]
8083    pub fn level_token(&self) -> Option<SyntaxToken> {
8084        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8085    }
8086    #[inline]
8087    pub fn read_token(&self) -> Option<SyntaxToken> {
8088        support::token(&self.syntax, SyntaxKind::READ_KW)
8089    }
8090    #[inline]
8091    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
8092        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
8093    }
8094}
8095
8096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8097pub struct ReplicaIdentity {
8098    pub(crate) syntax: SyntaxNode,
8099}
8100impl ReplicaIdentity {
8101    #[inline]
8102    pub fn identity_token(&self) -> Option<SyntaxToken> {
8103        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8104    }
8105    #[inline]
8106    pub fn replica_token(&self) -> Option<SyntaxToken> {
8107        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8108    }
8109}
8110
8111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8112pub struct Reset {
8113    pub(crate) syntax: SyntaxNode,
8114}
8115impl Reset {
8116    #[inline]
8117    pub fn name_ref(&self) -> Option<NameRef> {
8118        support::child(&self.syntax)
8119    }
8120    #[inline]
8121    pub fn all_token(&self) -> Option<SyntaxToken> {
8122        support::token(&self.syntax, SyntaxKind::ALL_KW)
8123    }
8124    #[inline]
8125    pub fn reset_token(&self) -> Option<SyntaxToken> {
8126        support::token(&self.syntax, SyntaxKind::RESET_KW)
8127    }
8128}
8129
8130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8131pub struct ResetFuncOption {
8132    pub(crate) syntax: SyntaxNode,
8133}
8134impl ResetFuncOption {
8135    #[inline]
8136    pub fn name_ref(&self) -> Option<NameRef> {
8137        support::child(&self.syntax)
8138    }
8139    #[inline]
8140    pub fn reset_token(&self) -> Option<SyntaxToken> {
8141        support::token(&self.syntax, SyntaxKind::RESET_KW)
8142    }
8143}
8144
8145#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8146pub struct ResetOptions {
8147    pub(crate) syntax: SyntaxNode,
8148}
8149impl ResetOptions {
8150    #[inline]
8151    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8152        support::token(&self.syntax, SyntaxKind::L_PAREN)
8153    }
8154    #[inline]
8155    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8156        support::token(&self.syntax, SyntaxKind::R_PAREN)
8157    }
8158    #[inline]
8159    pub fn reset_token(&self) -> Option<SyntaxToken> {
8160        support::token(&self.syntax, SyntaxKind::RESET_KW)
8161    }
8162}
8163
8164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8165pub struct ResetStorageParams {
8166    pub(crate) syntax: SyntaxNode,
8167}
8168impl ResetStorageParams {
8169    #[inline]
8170    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8171        support::token(&self.syntax, SyntaxKind::L_PAREN)
8172    }
8173    #[inline]
8174    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8175        support::token(&self.syntax, SyntaxKind::R_PAREN)
8176    }
8177    #[inline]
8178    pub fn reset_token(&self) -> Option<SyntaxToken> {
8179        support::token(&self.syntax, SyntaxKind::RESET_KW)
8180    }
8181}
8182
8183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8184pub struct Restart {
8185    pub(crate) syntax: SyntaxNode,
8186}
8187impl Restart {
8188    #[inline]
8189    pub fn restart_token(&self) -> Option<SyntaxToken> {
8190        support::token(&self.syntax, SyntaxKind::RESTART_KW)
8191    }
8192    #[inline]
8193    pub fn with_token(&self) -> Option<SyntaxToken> {
8194        support::token(&self.syntax, SyntaxKind::WITH_KW)
8195    }
8196}
8197
8198#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8199pub struct Restrict {
8200    pub(crate) syntax: SyntaxNode,
8201}
8202impl Restrict {
8203    #[inline]
8204    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8205        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8206    }
8207}
8208
8209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8210pub struct RetType {
8211    pub(crate) syntax: SyntaxNode,
8212}
8213impl RetType {
8214    #[inline]
8215    pub fn ty(&self) -> Option<Type> {
8216        support::child(&self.syntax)
8217    }
8218    #[inline]
8219    pub fn returns_token(&self) -> Option<SyntaxToken> {
8220        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
8221    }
8222}
8223
8224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8225pub struct ReturnFuncOption {
8226    pub(crate) syntax: SyntaxNode,
8227}
8228impl ReturnFuncOption {
8229    #[inline]
8230    pub fn expr(&self) -> Option<Expr> {
8231        support::child(&self.syntax)
8232    }
8233    #[inline]
8234    pub fn return_token(&self) -> Option<SyntaxToken> {
8235        support::token(&self.syntax, SyntaxKind::RETURN_KW)
8236    }
8237}
8238
8239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8240pub struct ReturningClause {
8241    pub(crate) syntax: SyntaxNode,
8242}
8243impl ReturningClause {
8244    #[inline]
8245    pub fn target_list(&self) -> Option<TargetList> {
8246        support::child(&self.syntax)
8247    }
8248    #[inline]
8249    pub fn returning_token(&self) -> Option<SyntaxToken> {
8250        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
8251    }
8252}
8253
8254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8255pub struct Revoke {
8256    pub(crate) syntax: SyntaxNode,
8257}
8258impl Revoke {
8259    #[inline]
8260    pub fn revoke_token(&self) -> Option<SyntaxToken> {
8261        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
8262    }
8263}
8264
8265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8266pub struct Role {
8267    pub(crate) syntax: SyntaxNode,
8268}
8269impl Role {
8270    #[inline]
8271    pub fn current_role_token(&self) -> Option<SyntaxToken> {
8272        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
8273    }
8274    #[inline]
8275    pub fn current_user_token(&self) -> Option<SyntaxToken> {
8276        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
8277    }
8278    #[inline]
8279    pub fn group_token(&self) -> Option<SyntaxToken> {
8280        support::token(&self.syntax, SyntaxKind::GROUP_KW)
8281    }
8282    #[inline]
8283    pub fn ident_token(&self) -> Option<SyntaxToken> {
8284        support::token(&self.syntax, SyntaxKind::IDENT)
8285    }
8286    #[inline]
8287    pub fn session_user_token(&self) -> Option<SyntaxToken> {
8288        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
8289    }
8290}
8291
8292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8293pub struct Rollback {
8294    pub(crate) syntax: SyntaxNode,
8295}
8296impl Rollback {
8297    #[inline]
8298    pub fn abort_token(&self) -> Option<SyntaxToken> {
8299        support::token(&self.syntax, SyntaxKind::ABORT_KW)
8300    }
8301    #[inline]
8302    pub fn rollback_token(&self) -> Option<SyntaxToken> {
8303        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
8304    }
8305}
8306
8307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8308pub struct RowsFuncOption {
8309    pub(crate) syntax: SyntaxNode,
8310}
8311impl RowsFuncOption {
8312    #[inline]
8313    pub fn rows_token(&self) -> Option<SyntaxToken> {
8314        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8315    }
8316}
8317
8318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8319pub struct Savepoint {
8320    pub(crate) syntax: SyntaxNode,
8321}
8322impl Savepoint {
8323    #[inline]
8324    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
8325        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
8326    }
8327}
8328
8329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8330pub struct SecurityFuncOption {
8331    pub(crate) syntax: SyntaxNode,
8332}
8333impl SecurityFuncOption {
8334    #[inline]
8335    pub fn definer_token(&self) -> Option<SyntaxToken> {
8336        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
8337    }
8338    #[inline]
8339    pub fn invoker_token(&self) -> Option<SyntaxToken> {
8340        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
8341    }
8342    #[inline]
8343    pub fn security_token(&self) -> Option<SyntaxToken> {
8344        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8345    }
8346}
8347
8348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8349pub struct SecurityLabel {
8350    pub(crate) syntax: SyntaxNode,
8351}
8352impl SecurityLabel {
8353    #[inline]
8354    pub fn label_token(&self) -> Option<SyntaxToken> {
8355        support::token(&self.syntax, SyntaxKind::LABEL_KW)
8356    }
8357    #[inline]
8358    pub fn security_token(&self) -> Option<SyntaxToken> {
8359        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8360    }
8361}
8362
8363#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8364pub struct Select {
8365    pub(crate) syntax: SyntaxNode,
8366}
8367impl Select {
8368    #[inline]
8369    pub fn fetch_clause(&self) -> Option<FetchClause> {
8370        support::child(&self.syntax)
8371    }
8372    #[inline]
8373    pub fn filter_clause(&self) -> Option<FilterClause> {
8374        support::child(&self.syntax)
8375    }
8376    #[inline]
8377    pub fn from_clause(&self) -> Option<FromClause> {
8378        support::child(&self.syntax)
8379    }
8380    #[inline]
8381    pub fn group_by_clause(&self) -> Option<GroupByClause> {
8382        support::child(&self.syntax)
8383    }
8384    #[inline]
8385    pub fn having_clause(&self) -> Option<HavingClause> {
8386        support::child(&self.syntax)
8387    }
8388    #[inline]
8389    pub fn limit_clause(&self) -> Option<LimitClause> {
8390        support::child(&self.syntax)
8391    }
8392    #[inline]
8393    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
8394        support::children(&self.syntax)
8395    }
8396    #[inline]
8397    pub fn offset_clause(&self) -> Option<OffsetClause> {
8398        support::child(&self.syntax)
8399    }
8400    #[inline]
8401    pub fn order_by_clause(&self) -> Option<OrderByClause> {
8402        support::child(&self.syntax)
8403    }
8404    #[inline]
8405    pub fn select_clause(&self) -> Option<SelectClause> {
8406        support::child(&self.syntax)
8407    }
8408    #[inline]
8409    pub fn where_clause(&self) -> Option<WhereClause> {
8410        support::child(&self.syntax)
8411    }
8412    #[inline]
8413    pub fn window_clause(&self) -> Option<WindowClause> {
8414        support::child(&self.syntax)
8415    }
8416    #[inline]
8417    pub fn with_clause(&self) -> Option<WithClause> {
8418        support::child(&self.syntax)
8419    }
8420}
8421
8422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8423pub struct SelectClause {
8424    pub(crate) syntax: SyntaxNode,
8425}
8426impl SelectClause {
8427    #[inline]
8428    pub fn distinct_clause(&self) -> Option<DistinctClause> {
8429        support::child(&self.syntax)
8430    }
8431    #[inline]
8432    pub fn target_list(&self) -> Option<TargetList> {
8433        support::child(&self.syntax)
8434    }
8435    #[inline]
8436    pub fn all_token(&self) -> Option<SyntaxToken> {
8437        support::token(&self.syntax, SyntaxKind::ALL_KW)
8438    }
8439    #[inline]
8440    pub fn select_token(&self) -> Option<SyntaxToken> {
8441        support::token(&self.syntax, SyntaxKind::SELECT_KW)
8442    }
8443}
8444
8445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8446pub struct SelectInto {
8447    pub(crate) syntax: SyntaxNode,
8448}
8449impl SelectInto {
8450    #[inline]
8451    pub fn filter_clause(&self) -> Option<FilterClause> {
8452        support::child(&self.syntax)
8453    }
8454    #[inline]
8455    pub fn from_clause(&self) -> Option<FromClause> {
8456        support::child(&self.syntax)
8457    }
8458    #[inline]
8459    pub fn group_by_clause(&self) -> Option<GroupByClause> {
8460        support::child(&self.syntax)
8461    }
8462    #[inline]
8463    pub fn having_clause(&self) -> Option<HavingClause> {
8464        support::child(&self.syntax)
8465    }
8466    #[inline]
8467    pub fn into_clause(&self) -> Option<IntoClause> {
8468        support::child(&self.syntax)
8469    }
8470    #[inline]
8471    pub fn limit_clause(&self) -> Option<LimitClause> {
8472        support::child(&self.syntax)
8473    }
8474    #[inline]
8475    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
8476        support::children(&self.syntax)
8477    }
8478    #[inline]
8479    pub fn offset_clause(&self) -> Option<OffsetClause> {
8480        support::child(&self.syntax)
8481    }
8482    #[inline]
8483    pub fn order_by_clause(&self) -> Option<OrderByClause> {
8484        support::child(&self.syntax)
8485    }
8486    #[inline]
8487    pub fn select_clause(&self) -> Option<SelectClause> {
8488        support::child(&self.syntax)
8489    }
8490    #[inline]
8491    pub fn where_clause(&self) -> Option<WhereClause> {
8492        support::child(&self.syntax)
8493    }
8494    #[inline]
8495    pub fn window_clause(&self) -> Option<WindowClause> {
8496        support::child(&self.syntax)
8497    }
8498}
8499
8500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8501pub struct SequenceOptionList {
8502    pub(crate) syntax: SyntaxNode,
8503}
8504impl SequenceOptionList {
8505    #[inline]
8506    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8507        support::token(&self.syntax, SyntaxKind::L_PAREN)
8508    }
8509    #[inline]
8510    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8511        support::token(&self.syntax, SyntaxKind::R_PAREN)
8512    }
8513}
8514
8515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8516pub struct Serializable {
8517    pub(crate) syntax: SyntaxNode,
8518}
8519impl Serializable {
8520    #[inline]
8521    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8522        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8523    }
8524    #[inline]
8525    pub fn level_token(&self) -> Option<SyntaxToken> {
8526        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8527    }
8528    #[inline]
8529    pub fn serializable_token(&self) -> Option<SyntaxToken> {
8530        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
8531    }
8532}
8533
8534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8535pub struct Set {
8536    pub(crate) syntax: SyntaxNode,
8537}
8538impl Set {
8539    #[inline]
8540    pub fn expr(&self) -> Option<Expr> {
8541        support::child(&self.syntax)
8542    }
8543    #[inline]
8544    pub fn path(&self) -> Option<Path> {
8545        support::child(&self.syntax)
8546    }
8547    #[inline]
8548    pub fn eq_token(&self) -> Option<SyntaxToken> {
8549        support::token(&self.syntax, SyntaxKind::EQ)
8550    }
8551    #[inline]
8552    pub fn default_token(&self) -> Option<SyntaxToken> {
8553        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8554    }
8555    #[inline]
8556    pub fn local_token(&self) -> Option<SyntaxToken> {
8557        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
8558    }
8559    #[inline]
8560    pub fn session_token(&self) -> Option<SyntaxToken> {
8561        support::token(&self.syntax, SyntaxKind::SESSION_KW)
8562    }
8563    #[inline]
8564    pub fn set_token(&self) -> Option<SyntaxToken> {
8565        support::token(&self.syntax, SyntaxKind::SET_KW)
8566    }
8567    #[inline]
8568    pub fn time_token(&self) -> Option<SyntaxToken> {
8569        support::token(&self.syntax, SyntaxKind::TIME_KW)
8570    }
8571    #[inline]
8572    pub fn to_token(&self) -> Option<SyntaxToken> {
8573        support::token(&self.syntax, SyntaxKind::TO_KW)
8574    }
8575    #[inline]
8576    pub fn zone_token(&self) -> Option<SyntaxToken> {
8577        support::token(&self.syntax, SyntaxKind::ZONE_KW)
8578    }
8579}
8580
8581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8582pub struct SetAccessMethod {
8583    pub(crate) syntax: SyntaxNode,
8584}
8585impl SetAccessMethod {
8586    #[inline]
8587    pub fn name_ref(&self) -> Option<NameRef> {
8588        support::child(&self.syntax)
8589    }
8590    #[inline]
8591    pub fn access_token(&self) -> Option<SyntaxToken> {
8592        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
8593    }
8594    #[inline]
8595    pub fn method_token(&self) -> Option<SyntaxToken> {
8596        support::token(&self.syntax, SyntaxKind::METHOD_KW)
8597    }
8598    #[inline]
8599    pub fn set_token(&self) -> Option<SyntaxToken> {
8600        support::token(&self.syntax, SyntaxKind::SET_KW)
8601    }
8602}
8603
8604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8605pub struct SetCompression {
8606    pub(crate) syntax: SyntaxNode,
8607}
8608impl SetCompression {
8609    #[inline]
8610    pub fn compression_token(&self) -> Option<SyntaxToken> {
8611        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
8612    }
8613    #[inline]
8614    pub fn set_token(&self) -> Option<SyntaxToken> {
8615        support::token(&self.syntax, SyntaxKind::SET_KW)
8616    }
8617}
8618
8619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8620pub struct SetConstraints {
8621    pub(crate) syntax: SyntaxNode,
8622}
8623impl SetConstraints {
8624    #[inline]
8625    pub fn constraints_token(&self) -> Option<SyntaxToken> {
8626        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
8627    }
8628    #[inline]
8629    pub fn set_token(&self) -> Option<SyntaxToken> {
8630        support::token(&self.syntax, SyntaxKind::SET_KW)
8631    }
8632}
8633
8634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8635pub struct SetDefault {
8636    pub(crate) syntax: SyntaxNode,
8637}
8638impl SetDefault {
8639    #[inline]
8640    pub fn expr(&self) -> Option<Expr> {
8641        support::child(&self.syntax)
8642    }
8643    #[inline]
8644    pub fn default_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8646    }
8647    #[inline]
8648    pub fn set_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::SET_KW)
8650    }
8651}
8652
8653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8654pub struct SetDefaultColumns {
8655    pub(crate) syntax: SyntaxNode,
8656}
8657impl SetDefaultColumns {
8658    #[inline]
8659    pub fn column_list(&self) -> Option<ColumnList> {
8660        support::child(&self.syntax)
8661    }
8662    #[inline]
8663    pub fn default_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8665    }
8666    #[inline]
8667    pub fn set_token(&self) -> Option<SyntaxToken> {
8668        support::token(&self.syntax, SyntaxKind::SET_KW)
8669    }
8670}
8671
8672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8673pub struct SetExpression {
8674    pub(crate) syntax: SyntaxNode,
8675}
8676impl SetExpression {
8677    #[inline]
8678    pub fn expr(&self) -> Option<Expr> {
8679        support::child(&self.syntax)
8680    }
8681    #[inline]
8682    pub fn expression_token(&self) -> Option<SyntaxToken> {
8683        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
8684    }
8685    #[inline]
8686    pub fn set_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::SET_KW)
8688    }
8689}
8690
8691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8692pub struct SetFuncOption {
8693    pub(crate) syntax: SyntaxNode,
8694}
8695impl SetFuncOption {
8696    #[inline]
8697    pub fn set_token(&self) -> Option<SyntaxToken> {
8698        support::token(&self.syntax, SyntaxKind::SET_KW)
8699    }
8700}
8701
8702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8703pub struct SetGenerated {
8704    pub(crate) syntax: SyntaxNode,
8705}
8706impl SetGenerated {
8707    #[inline]
8708    pub fn set_token(&self) -> Option<SyntaxToken> {
8709        support::token(&self.syntax, SyntaxKind::SET_KW)
8710    }
8711}
8712
8713#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8714pub struct SetGeneratedOptions {
8715    pub(crate) syntax: SyntaxNode,
8716}
8717impl SetGeneratedOptions {
8718    #[inline]
8719    pub fn set_token(&self) -> Option<SyntaxToken> {
8720        support::token(&self.syntax, SyntaxKind::SET_KW)
8721    }
8722}
8723
8724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8725pub struct SetLogged {
8726    pub(crate) syntax: SyntaxNode,
8727}
8728impl SetLogged {
8729    #[inline]
8730    pub fn logged_token(&self) -> Option<SyntaxToken> {
8731        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
8732    }
8733    #[inline]
8734    pub fn set_token(&self) -> Option<SyntaxToken> {
8735        support::token(&self.syntax, SyntaxKind::SET_KW)
8736    }
8737}
8738
8739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8740pub struct SetNotNull {
8741    pub(crate) syntax: SyntaxNode,
8742}
8743impl SetNotNull {
8744    #[inline]
8745    pub fn not_token(&self) -> Option<SyntaxToken> {
8746        support::token(&self.syntax, SyntaxKind::NOT_KW)
8747    }
8748    #[inline]
8749    pub fn null_token(&self) -> Option<SyntaxToken> {
8750        support::token(&self.syntax, SyntaxKind::NULL_KW)
8751    }
8752    #[inline]
8753    pub fn set_token(&self) -> Option<SyntaxToken> {
8754        support::token(&self.syntax, SyntaxKind::SET_KW)
8755    }
8756}
8757
8758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8759pub struct SetNullColumns {
8760    pub(crate) syntax: SyntaxNode,
8761}
8762impl SetNullColumns {
8763    #[inline]
8764    pub fn column_list(&self) -> Option<ColumnList> {
8765        support::child(&self.syntax)
8766    }
8767    #[inline]
8768    pub fn null_token(&self) -> Option<SyntaxToken> {
8769        support::token(&self.syntax, SyntaxKind::NULL_KW)
8770    }
8771    #[inline]
8772    pub fn set_token(&self) -> Option<SyntaxToken> {
8773        support::token(&self.syntax, SyntaxKind::SET_KW)
8774    }
8775}
8776
8777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8778pub struct SetOptions {
8779    pub(crate) syntax: SyntaxNode,
8780}
8781impl SetOptions {
8782    #[inline]
8783    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8784        support::token(&self.syntax, SyntaxKind::L_PAREN)
8785    }
8786    #[inline]
8787    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8788        support::token(&self.syntax, SyntaxKind::R_PAREN)
8789    }
8790    #[inline]
8791    pub fn set_token(&self) -> Option<SyntaxToken> {
8792        support::token(&self.syntax, SyntaxKind::SET_KW)
8793    }
8794}
8795
8796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8797pub struct SetOptionsList {
8798    pub(crate) syntax: SyntaxNode,
8799}
8800impl SetOptionsList {
8801    #[inline]
8802    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8803        support::token(&self.syntax, SyntaxKind::L_PAREN)
8804    }
8805    #[inline]
8806    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8807        support::token(&self.syntax, SyntaxKind::R_PAREN)
8808    }
8809    #[inline]
8810    pub fn set_token(&self) -> Option<SyntaxToken> {
8811        support::token(&self.syntax, SyntaxKind::SET_KW)
8812    }
8813}
8814
8815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8816pub struct SetRole {
8817    pub(crate) syntax: SyntaxNode,
8818}
8819impl SetRole {
8820    #[inline]
8821    pub fn role_token(&self) -> Option<SyntaxToken> {
8822        support::token(&self.syntax, SyntaxKind::ROLE_KW)
8823    }
8824    #[inline]
8825    pub fn set_token(&self) -> Option<SyntaxToken> {
8826        support::token(&self.syntax, SyntaxKind::SET_KW)
8827    }
8828}
8829
8830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8831pub struct SetSchema {
8832    pub(crate) syntax: SyntaxNode,
8833}
8834impl SetSchema {
8835    #[inline]
8836    pub fn name_ref(&self) -> Option<NameRef> {
8837        support::child(&self.syntax)
8838    }
8839    #[inline]
8840    pub fn schema_token(&self) -> Option<SyntaxToken> {
8841        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
8842    }
8843    #[inline]
8844    pub fn set_token(&self) -> Option<SyntaxToken> {
8845        support::token(&self.syntax, SyntaxKind::SET_KW)
8846    }
8847}
8848
8849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8850pub struct SetSequenceOption {
8851    pub(crate) syntax: SyntaxNode,
8852}
8853impl SetSequenceOption {
8854    #[inline]
8855    pub fn set_token(&self) -> Option<SyntaxToken> {
8856        support::token(&self.syntax, SyntaxKind::SET_KW)
8857    }
8858}
8859
8860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8861pub struct SetSessionAuth {
8862    pub(crate) syntax: SyntaxNode,
8863}
8864impl SetSessionAuth {
8865    #[inline]
8866    pub fn authorization_token(&self) -> Option<SyntaxToken> {
8867        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
8868    }
8869    #[inline]
8870    pub fn session_token(&self) -> Option<SyntaxToken> {
8871        support::token(&self.syntax, SyntaxKind::SESSION_KW)
8872    }
8873    #[inline]
8874    pub fn set_token(&self) -> Option<SyntaxToken> {
8875        support::token(&self.syntax, SyntaxKind::SET_KW)
8876    }
8877}
8878
8879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8880pub struct SetStatistics {
8881    pub(crate) syntax: SyntaxNode,
8882}
8883impl SetStatistics {
8884    #[inline]
8885    pub fn set_token(&self) -> Option<SyntaxToken> {
8886        support::token(&self.syntax, SyntaxKind::SET_KW)
8887    }
8888    #[inline]
8889    pub fn statistics_token(&self) -> Option<SyntaxToken> {
8890        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
8891    }
8892}
8893
8894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8895pub struct SetStorage {
8896    pub(crate) syntax: SyntaxNode,
8897}
8898impl SetStorage {
8899    #[inline]
8900    pub fn set_token(&self) -> Option<SyntaxToken> {
8901        support::token(&self.syntax, SyntaxKind::SET_KW)
8902    }
8903    #[inline]
8904    pub fn storage_token(&self) -> Option<SyntaxToken> {
8905        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
8906    }
8907}
8908
8909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8910pub struct SetStorageParams {
8911    pub(crate) syntax: SyntaxNode,
8912}
8913impl SetStorageParams {
8914    #[inline]
8915    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8916        support::token(&self.syntax, SyntaxKind::L_PAREN)
8917    }
8918    #[inline]
8919    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8920        support::token(&self.syntax, SyntaxKind::R_PAREN)
8921    }
8922    #[inline]
8923    pub fn set_token(&self) -> Option<SyntaxToken> {
8924        support::token(&self.syntax, SyntaxKind::SET_KW)
8925    }
8926}
8927
8928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8929pub struct SetTablespace {
8930    pub(crate) syntax: SyntaxNode,
8931}
8932impl SetTablespace {
8933    #[inline]
8934    pub fn name_ref(&self) -> Option<NameRef> {
8935        support::child(&self.syntax)
8936    }
8937    #[inline]
8938    pub fn set_token(&self) -> Option<SyntaxToken> {
8939        support::token(&self.syntax, SyntaxKind::SET_KW)
8940    }
8941    #[inline]
8942    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
8943        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
8944    }
8945}
8946
8947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8948pub struct SetTransaction {
8949    pub(crate) syntax: SyntaxNode,
8950}
8951impl SetTransaction {
8952    #[inline]
8953    pub fn set_token(&self) -> Option<SyntaxToken> {
8954        support::token(&self.syntax, SyntaxKind::SET_KW)
8955    }
8956    #[inline]
8957    pub fn transaction_token(&self) -> Option<SyntaxToken> {
8958        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
8959    }
8960}
8961
8962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8963pub struct SetType {
8964    pub(crate) syntax: SyntaxNode,
8965}
8966impl SetType {
8967    #[inline]
8968    pub fn collate(&self) -> Option<Collate> {
8969        support::child(&self.syntax)
8970    }
8971    #[inline]
8972    pub fn ty(&self) -> Option<Type> {
8973        support::child(&self.syntax)
8974    }
8975    #[inline]
8976    pub fn set_token(&self) -> Option<SyntaxToken> {
8977        support::token(&self.syntax, SyntaxKind::SET_KW)
8978    }
8979    #[inline]
8980    pub fn type_token(&self) -> Option<SyntaxToken> {
8981        support::token(&self.syntax, SyntaxKind::TYPE_KW)
8982    }
8983}
8984
8985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8986pub struct SetUnlogged {
8987    pub(crate) syntax: SyntaxNode,
8988}
8989impl SetUnlogged {
8990    #[inline]
8991    pub fn set_token(&self) -> Option<SyntaxToken> {
8992        support::token(&self.syntax, SyntaxKind::SET_KW)
8993    }
8994    #[inline]
8995    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
8996        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
8997    }
8998}
8999
9000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9001pub struct SetWithoutCluster {
9002    pub(crate) syntax: SyntaxNode,
9003}
9004impl SetWithoutCluster {
9005    #[inline]
9006    pub fn cluster_token(&self) -> Option<SyntaxToken> {
9007        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
9008    }
9009    #[inline]
9010    pub fn set_token(&self) -> Option<SyntaxToken> {
9011        support::token(&self.syntax, SyntaxKind::SET_KW)
9012    }
9013    #[inline]
9014    pub fn without_token(&self) -> Option<SyntaxToken> {
9015        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9016    }
9017}
9018
9019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9020pub struct SetWithoutOids {
9021    pub(crate) syntax: SyntaxNode,
9022}
9023impl SetWithoutOids {
9024    #[inline]
9025    pub fn oids_token(&self) -> Option<SyntaxToken> {
9026        support::token(&self.syntax, SyntaxKind::OIDS_KW)
9027    }
9028    #[inline]
9029    pub fn set_token(&self) -> Option<SyntaxToken> {
9030        support::token(&self.syntax, SyntaxKind::SET_KW)
9031    }
9032    #[inline]
9033    pub fn without_token(&self) -> Option<SyntaxToken> {
9034        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9035    }
9036}
9037
9038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9039pub struct Show {
9040    pub(crate) syntax: SyntaxNode,
9041}
9042impl Show {
9043    #[inline]
9044    pub fn show_token(&self) -> Option<SyntaxToken> {
9045        support::token(&self.syntax, SyntaxKind::SHOW_KW)
9046    }
9047}
9048
9049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9050pub struct SimilarTo {
9051    pub(crate) syntax: SyntaxNode,
9052}
9053impl SimilarTo {
9054    #[inline]
9055    pub fn similar_token(&self) -> Option<SyntaxToken> {
9056        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
9057    }
9058    #[inline]
9059    pub fn to_token(&self) -> Option<SyntaxToken> {
9060        support::token(&self.syntax, SyntaxKind::TO_KW)
9061    }
9062}
9063
9064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9065pub struct SortAsc {
9066    pub(crate) syntax: SyntaxNode,
9067}
9068impl SortAsc {
9069    #[inline]
9070    pub fn asc_token(&self) -> Option<SyntaxToken> {
9071        support::token(&self.syntax, SyntaxKind::ASC_KW)
9072    }
9073}
9074
9075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9076pub struct SortBy {
9077    pub(crate) syntax: SyntaxNode,
9078}
9079impl SortBy {
9080    #[inline]
9081    pub fn expr(&self) -> Option<Expr> {
9082        support::child(&self.syntax)
9083    }
9084    #[inline]
9085    pub fn nulls_first(&self) -> Option<NullsFirst> {
9086        support::child(&self.syntax)
9087    }
9088    #[inline]
9089    pub fn nulls_last(&self) -> Option<NullsLast> {
9090        support::child(&self.syntax)
9091    }
9092    #[inline]
9093    pub fn sort_asc(&self) -> Option<SortAsc> {
9094        support::child(&self.syntax)
9095    }
9096    #[inline]
9097    pub fn sort_desc(&self) -> Option<SortDesc> {
9098        support::child(&self.syntax)
9099    }
9100    #[inline]
9101    pub fn sort_using(&self) -> Option<SortUsing> {
9102        support::child(&self.syntax)
9103    }
9104}
9105
9106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9107pub struct SortDesc {
9108    pub(crate) syntax: SyntaxNode,
9109}
9110impl SortDesc {
9111    #[inline]
9112    pub fn desc_token(&self) -> Option<SyntaxToken> {
9113        support::token(&self.syntax, SyntaxKind::DESC_KW)
9114    }
9115}
9116
9117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9118pub struct SortUsing {
9119    pub(crate) syntax: SyntaxNode,
9120}
9121impl SortUsing {
9122    #[inline]
9123    pub fn op(&self) -> Option<Op> {
9124        support::child(&self.syntax)
9125    }
9126    #[inline]
9127    pub fn using_token(&self) -> Option<SyntaxToken> {
9128        support::token(&self.syntax, SyntaxKind::USING_KW)
9129    }
9130}
9131
9132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9133pub struct SourceFile {
9134    pub(crate) syntax: SyntaxNode,
9135}
9136impl SourceFile {
9137    #[inline]
9138    pub fn stmts(&self) -> AstChildren<Stmt> {
9139        support::children(&self.syntax)
9140    }
9141}
9142
9143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9144pub struct Storage {
9145    pub(crate) syntax: SyntaxNode,
9146}
9147impl Storage {
9148    #[inline]
9149    pub fn default_token(&self) -> Option<SyntaxToken> {
9150        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9151    }
9152    #[inline]
9153    pub fn external_token(&self) -> Option<SyntaxToken> {
9154        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
9155    }
9156    #[inline]
9157    pub fn ident_token(&self) -> Option<SyntaxToken> {
9158        support::token(&self.syntax, SyntaxKind::IDENT)
9159    }
9160    #[inline]
9161    pub fn storage_token(&self) -> Option<SyntaxToken> {
9162        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
9163    }
9164}
9165
9166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9167pub struct StrictFuncOption {
9168    pub(crate) syntax: SyntaxNode,
9169}
9170impl StrictFuncOption {
9171    #[inline]
9172    pub fn called_token(&self) -> Option<SyntaxToken> {
9173        support::token(&self.syntax, SyntaxKind::CALLED_KW)
9174    }
9175    #[inline]
9176    pub fn input_token(&self) -> Option<SyntaxToken> {
9177        support::token(&self.syntax, SyntaxKind::INPUT_KW)
9178    }
9179    #[inline]
9180    pub fn null_token(&self) -> Option<SyntaxToken> {
9181        support::token(&self.syntax, SyntaxKind::NULL_KW)
9182    }
9183    #[inline]
9184    pub fn on_token(&self) -> Option<SyntaxToken> {
9185        support::token(&self.syntax, SyntaxKind::ON_KW)
9186    }
9187    #[inline]
9188    pub fn returns_token(&self) -> Option<SyntaxToken> {
9189        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
9190    }
9191    #[inline]
9192    pub fn strict_token(&self) -> Option<SyntaxToken> {
9193        support::token(&self.syntax, SyntaxKind::STRICT_KW)
9194    }
9195}
9196
9197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9198pub struct SupportFuncOption {
9199    pub(crate) syntax: SyntaxNode,
9200}
9201impl SupportFuncOption {
9202    #[inline]
9203    pub fn support_token(&self) -> Option<SyntaxToken> {
9204        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
9205    }
9206}
9207
9208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9209pub struct Table {
9210    pub(crate) syntax: SyntaxNode,
9211}
9212impl Table {
9213    #[inline]
9214    pub fn table_token(&self) -> Option<SyntaxToken> {
9215        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9216    }
9217}
9218
9219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9220pub struct TableArgList {
9221    pub(crate) syntax: SyntaxNode,
9222}
9223impl TableArgList {
9224    #[inline]
9225    pub fn args(&self) -> AstChildren<TableArg> {
9226        support::children(&self.syntax)
9227    }
9228    #[inline]
9229    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9230        support::token(&self.syntax, SyntaxKind::L_PAREN)
9231    }
9232    #[inline]
9233    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9234        support::token(&self.syntax, SyntaxKind::R_PAREN)
9235    }
9236}
9237
9238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9239pub struct TableList {
9240    pub(crate) syntax: SyntaxNode,
9241}
9242impl TableList {
9243    #[inline]
9244    pub fn relation_names(&self) -> AstChildren<RelationName> {
9245        support::children(&self.syntax)
9246    }
9247}
9248
9249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9250pub struct Tablespace {
9251    pub(crate) syntax: SyntaxNode,
9252}
9253impl Tablespace {
9254    #[inline]
9255    pub fn name_ref(&self) -> Option<NameRef> {
9256        support::child(&self.syntax)
9257    }
9258    #[inline]
9259    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
9260        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
9261    }
9262}
9263
9264#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9265pub struct Target {
9266    pub(crate) syntax: SyntaxNode,
9267}
9268impl Target {
9269    #[inline]
9270    pub fn expr(&self) -> Option<Expr> {
9271        support::child(&self.syntax)
9272    }
9273    #[inline]
9274    pub fn name(&self) -> Option<Name> {
9275        support::child(&self.syntax)
9276    }
9277    #[inline]
9278    pub fn star_token(&self) -> Option<SyntaxToken> {
9279        support::token(&self.syntax, SyntaxKind::STAR)
9280    }
9281    #[inline]
9282    pub fn as_token(&self) -> Option<SyntaxToken> {
9283        support::token(&self.syntax, SyntaxKind::AS_KW)
9284    }
9285}
9286
9287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9288pub struct TargetList {
9289    pub(crate) syntax: SyntaxNode,
9290}
9291impl TargetList {
9292    #[inline]
9293    pub fn targets(&self) -> AstChildren<Target> {
9294        support::children(&self.syntax)
9295    }
9296}
9297
9298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9299pub struct TimeType {
9300    pub(crate) syntax: SyntaxNode,
9301}
9302impl TimeType {
9303    #[inline]
9304    pub fn literal(&self) -> Option<Literal> {
9305        support::child(&self.syntax)
9306    }
9307    #[inline]
9308    pub fn timezone(&self) -> Option<Timezone> {
9309        support::child(&self.syntax)
9310    }
9311    #[inline]
9312    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9313        support::token(&self.syntax, SyntaxKind::L_PAREN)
9314    }
9315    #[inline]
9316    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9317        support::token(&self.syntax, SyntaxKind::R_PAREN)
9318    }
9319    #[inline]
9320    pub fn time_token(&self) -> Option<SyntaxToken> {
9321        support::token(&self.syntax, SyntaxKind::TIME_KW)
9322    }
9323    #[inline]
9324    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
9325        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
9326    }
9327}
9328
9329#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9330pub struct TransactionModeList {
9331    pub(crate) syntax: SyntaxNode,
9332}
9333impl TransactionModeList {
9334    #[inline]
9335    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
9336        support::children(&self.syntax)
9337    }
9338}
9339
9340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9341pub struct TransformFuncOption {
9342    pub(crate) syntax: SyntaxNode,
9343}
9344impl TransformFuncOption {
9345    #[inline]
9346    pub fn transform_token(&self) -> Option<SyntaxToken> {
9347        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
9348    }
9349}
9350
9351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9352pub struct Truncate {
9353    pub(crate) syntax: SyntaxNode,
9354}
9355impl Truncate {
9356    #[inline]
9357    pub fn table_list(&self) -> Option<TableList> {
9358        support::child(&self.syntax)
9359    }
9360    #[inline]
9361    pub fn cascade_token(&self) -> Option<SyntaxToken> {
9362        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
9363    }
9364    #[inline]
9365    pub fn continue_token(&self) -> Option<SyntaxToken> {
9366        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
9367    }
9368    #[inline]
9369    pub fn identity_token(&self) -> Option<SyntaxToken> {
9370        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9371    }
9372    #[inline]
9373    pub fn restart_token(&self) -> Option<SyntaxToken> {
9374        support::token(&self.syntax, SyntaxKind::RESTART_KW)
9375    }
9376    #[inline]
9377    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9378        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9379    }
9380    #[inline]
9381    pub fn table_token(&self) -> Option<SyntaxToken> {
9382        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9383    }
9384    #[inline]
9385    pub fn truncate_token(&self) -> Option<SyntaxToken> {
9386        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
9387    }
9388}
9389
9390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9391pub struct TupleExpr {
9392    pub(crate) syntax: SyntaxNode,
9393}
9394impl TupleExpr {
9395    #[inline]
9396    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9397        support::token(&self.syntax, SyntaxKind::L_PAREN)
9398    }
9399    #[inline]
9400    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9401        support::token(&self.syntax, SyntaxKind::R_PAREN)
9402    }
9403}
9404
9405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9406pub struct UnicodeNormalForm {
9407    pub(crate) syntax: SyntaxNode,
9408}
9409impl UnicodeNormalForm {
9410    #[inline]
9411    pub fn nfc_token(&self) -> Option<SyntaxToken> {
9412        support::token(&self.syntax, SyntaxKind::NFC_KW)
9413    }
9414    #[inline]
9415    pub fn nfd_token(&self) -> Option<SyntaxToken> {
9416        support::token(&self.syntax, SyntaxKind::NFD_KW)
9417    }
9418    #[inline]
9419    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
9420        support::token(&self.syntax, SyntaxKind::NFKC_KW)
9421    }
9422    #[inline]
9423    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
9424        support::token(&self.syntax, SyntaxKind::NFKD_KW)
9425    }
9426}
9427
9428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9429pub struct UniqueConstraint {
9430    pub(crate) syntax: SyntaxNode,
9431}
9432impl UniqueConstraint {
9433    #[inline]
9434    pub fn column_list(&self) -> Option<ColumnList> {
9435        support::child(&self.syntax)
9436    }
9437    #[inline]
9438    pub fn name_ref(&self) -> Option<NameRef> {
9439        support::child(&self.syntax)
9440    }
9441    #[inline]
9442    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
9443        support::child(&self.syntax)
9444    }
9445    #[inline]
9446    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
9447        support::child(&self.syntax)
9448    }
9449    #[inline]
9450    pub fn using_index(&self) -> Option<UsingIndex> {
9451        support::child(&self.syntax)
9452    }
9453    #[inline]
9454    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9455        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9456    }
9457    #[inline]
9458    pub fn unique_token(&self) -> Option<SyntaxToken> {
9459        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
9460    }
9461}
9462
9463#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9464pub struct Unlisten {
9465    pub(crate) syntax: SyntaxNode,
9466}
9467impl Unlisten {
9468    #[inline]
9469    pub fn name_ref(&self) -> Option<NameRef> {
9470        support::child(&self.syntax)
9471    }
9472    #[inline]
9473    pub fn star_token(&self) -> Option<SyntaxToken> {
9474        support::token(&self.syntax, SyntaxKind::STAR)
9475    }
9476    #[inline]
9477    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
9478        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
9479    }
9480}
9481
9482#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9483pub struct Update {
9484    pub(crate) syntax: SyntaxNode,
9485}
9486impl Update {
9487    #[inline]
9488    pub fn returning_clause(&self) -> Option<ReturningClause> {
9489        support::child(&self.syntax)
9490    }
9491    #[inline]
9492    pub fn update_token(&self) -> Option<SyntaxToken> {
9493        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
9494    }
9495}
9496
9497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9498pub struct UsingClause {
9499    pub(crate) syntax: SyntaxNode,
9500}
9501impl UsingClause {
9502    #[inline]
9503    pub fn using_token(&self) -> Option<SyntaxToken> {
9504        support::token(&self.syntax, SyntaxKind::USING_KW)
9505    }
9506}
9507
9508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9509pub struct UsingIndex {
9510    pub(crate) syntax: SyntaxNode,
9511}
9512impl UsingIndex {
9513    #[inline]
9514    pub fn name_ref(&self) -> Option<NameRef> {
9515        support::child(&self.syntax)
9516    }
9517    #[inline]
9518    pub fn index_token(&self) -> Option<SyntaxToken> {
9519        support::token(&self.syntax, SyntaxKind::INDEX_KW)
9520    }
9521    #[inline]
9522    pub fn using_token(&self) -> Option<SyntaxToken> {
9523        support::token(&self.syntax, SyntaxKind::USING_KW)
9524    }
9525}
9526
9527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9528pub struct UsingMethod {
9529    pub(crate) syntax: SyntaxNode,
9530}
9531impl UsingMethod {
9532    #[inline]
9533    pub fn name_ref(&self) -> Option<NameRef> {
9534        support::child(&self.syntax)
9535    }
9536    #[inline]
9537    pub fn using_token(&self) -> Option<SyntaxToken> {
9538        support::token(&self.syntax, SyntaxKind::USING_KW)
9539    }
9540}
9541
9542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9543pub struct Vacuum {
9544    pub(crate) syntax: SyntaxNode,
9545}
9546impl Vacuum {
9547    #[inline]
9548    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
9549        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
9550    }
9551}
9552
9553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9554pub struct ValidateConstraint {
9555    pub(crate) syntax: SyntaxNode,
9556}
9557impl ValidateConstraint {
9558    #[inline]
9559    pub fn name_ref(&self) -> Option<NameRef> {
9560        support::child(&self.syntax)
9561    }
9562    #[inline]
9563    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9564        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9565    }
9566    #[inline]
9567    pub fn validate_token(&self) -> Option<SyntaxToken> {
9568        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
9569    }
9570}
9571
9572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9573pub struct Values {
9574    pub(crate) syntax: SyntaxNode,
9575}
9576impl Values {
9577    #[inline]
9578    pub fn values_token(&self) -> Option<SyntaxToken> {
9579        support::token(&self.syntax, SyntaxKind::VALUES_KW)
9580    }
9581}
9582
9583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9584pub struct VolatilityFuncOption {
9585    pub(crate) syntax: SyntaxNode,
9586}
9587impl VolatilityFuncOption {
9588    #[inline]
9589    pub fn immutable_token(&self) -> Option<SyntaxToken> {
9590        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
9591    }
9592    #[inline]
9593    pub fn stable_token(&self) -> Option<SyntaxToken> {
9594        support::token(&self.syntax, SyntaxKind::STABLE_KW)
9595    }
9596    #[inline]
9597    pub fn volatile_token(&self) -> Option<SyntaxToken> {
9598        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
9599    }
9600}
9601
9602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9603pub struct WhenClause {
9604    pub(crate) syntax: SyntaxNode,
9605}
9606impl WhenClause {
9607    #[inline]
9608    pub fn when_token(&self) -> Option<SyntaxToken> {
9609        support::token(&self.syntax, SyntaxKind::WHEN_KW)
9610    }
9611}
9612
9613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9614pub struct WhereClause {
9615    pub(crate) syntax: SyntaxNode,
9616}
9617impl WhereClause {
9618    #[inline]
9619    pub fn expr(&self) -> Option<Expr> {
9620        support::child(&self.syntax)
9621    }
9622    #[inline]
9623    pub fn where_token(&self) -> Option<SyntaxToken> {
9624        support::token(&self.syntax, SyntaxKind::WHERE_KW)
9625    }
9626}
9627
9628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9629pub struct WindowClause {
9630    pub(crate) syntax: SyntaxNode,
9631}
9632impl WindowClause {
9633    #[inline]
9634    pub fn window_defs(&self) -> AstChildren<WindowDef> {
9635        support::children(&self.syntax)
9636    }
9637    #[inline]
9638    pub fn window_token(&self) -> Option<SyntaxToken> {
9639        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
9640    }
9641}
9642
9643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9644pub struct WindowDef {
9645    pub(crate) syntax: SyntaxNode,
9646}
9647impl WindowDef {
9648    #[inline]
9649    pub fn name(&self) -> Option<Name> {
9650        support::child(&self.syntax)
9651    }
9652    #[inline]
9653    pub fn window_spec(&self) -> Option<WindowSpec> {
9654        support::child(&self.syntax)
9655    }
9656    #[inline]
9657    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9658        support::token(&self.syntax, SyntaxKind::L_PAREN)
9659    }
9660    #[inline]
9661    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9662        support::token(&self.syntax, SyntaxKind::R_PAREN)
9663    }
9664    #[inline]
9665    pub fn as_token(&self) -> Option<SyntaxToken> {
9666        support::token(&self.syntax, SyntaxKind::AS_KW)
9667    }
9668}
9669
9670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9671pub struct WindowFuncOption {
9672    pub(crate) syntax: SyntaxNode,
9673}
9674impl WindowFuncOption {
9675    #[inline]
9676    pub fn window_token(&self) -> Option<SyntaxToken> {
9677        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
9678    }
9679}
9680
9681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9682pub struct WindowSpec {
9683    pub(crate) syntax: SyntaxNode,
9684}
9685impl WindowSpec {
9686    #[inline]
9687    pub fn exprs(&self) -> AstChildren<Expr> {
9688        support::children(&self.syntax)
9689    }
9690    #[inline]
9691    pub fn frame_clause(&self) -> Option<FrameClause> {
9692        support::child(&self.syntax)
9693    }
9694    #[inline]
9695    pub fn order_by_clause(&self) -> Option<OrderByClause> {
9696        support::child(&self.syntax)
9697    }
9698    #[inline]
9699    pub fn by_token(&self) -> Option<SyntaxToken> {
9700        support::token(&self.syntax, SyntaxKind::BY_KW)
9701    }
9702    #[inline]
9703    pub fn ident_token(&self) -> Option<SyntaxToken> {
9704        support::token(&self.syntax, SyntaxKind::IDENT)
9705    }
9706    #[inline]
9707    pub fn partition_token(&self) -> Option<SyntaxToken> {
9708        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
9709    }
9710}
9711
9712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9713pub struct WithClause {
9714    pub(crate) syntax: SyntaxNode,
9715}
9716impl WithClause {
9717    #[inline]
9718    pub fn with_tables(&self) -> AstChildren<WithTable> {
9719        support::children(&self.syntax)
9720    }
9721    #[inline]
9722    pub fn recursive_token(&self) -> Option<SyntaxToken> {
9723        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
9724    }
9725    #[inline]
9726    pub fn with_token(&self) -> Option<SyntaxToken> {
9727        support::token(&self.syntax, SyntaxKind::WITH_KW)
9728    }
9729}
9730
9731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9732pub struct WithData {
9733    pub(crate) syntax: SyntaxNode,
9734}
9735impl WithData {
9736    #[inline]
9737    pub fn data_token(&self) -> Option<SyntaxToken> {
9738        support::token(&self.syntax, SyntaxKind::DATA_KW)
9739    }
9740    #[inline]
9741    pub fn with_token(&self) -> Option<SyntaxToken> {
9742        support::token(&self.syntax, SyntaxKind::WITH_KW)
9743    }
9744}
9745
9746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9747pub struct WithNoData {
9748    pub(crate) syntax: SyntaxNode,
9749}
9750impl WithNoData {
9751    #[inline]
9752    pub fn data_token(&self) -> Option<SyntaxToken> {
9753        support::token(&self.syntax, SyntaxKind::DATA_KW)
9754    }
9755    #[inline]
9756    pub fn no_token(&self) -> Option<SyntaxToken> {
9757        support::token(&self.syntax, SyntaxKind::NO_KW)
9758    }
9759    #[inline]
9760    pub fn with_token(&self) -> Option<SyntaxToken> {
9761        support::token(&self.syntax, SyntaxKind::WITH_KW)
9762    }
9763}
9764
9765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9766pub struct WithOptions {
9767    pub(crate) syntax: SyntaxNode,
9768}
9769impl WithOptions {
9770    #[inline]
9771    pub fn options_token(&self) -> Option<SyntaxToken> {
9772        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
9773    }
9774    #[inline]
9775    pub fn with_token(&self) -> Option<SyntaxToken> {
9776        support::token(&self.syntax, SyntaxKind::WITH_KW)
9777    }
9778}
9779
9780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9781pub struct WithParams {
9782    pub(crate) syntax: SyntaxNode,
9783}
9784impl WithParams {
9785    #[inline]
9786    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9787        support::token(&self.syntax, SyntaxKind::L_PAREN)
9788    }
9789    #[inline]
9790    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9791        support::token(&self.syntax, SyntaxKind::R_PAREN)
9792    }
9793    #[inline]
9794    pub fn with_token(&self) -> Option<SyntaxToken> {
9795        support::token(&self.syntax, SyntaxKind::WITH_KW)
9796    }
9797}
9798
9799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9800pub struct WithTable {
9801    pub(crate) syntax: SyntaxNode,
9802}
9803impl WithTable {
9804    #[inline]
9805    pub fn column_list(&self) -> Option<ColumnList> {
9806        support::child(&self.syntax)
9807    }
9808    #[inline]
9809    pub fn materialized(&self) -> Option<Materialized> {
9810        support::child(&self.syntax)
9811    }
9812    #[inline]
9813    pub fn name(&self) -> Option<Name> {
9814        support::child(&self.syntax)
9815    }
9816    #[inline]
9817    pub fn not_materialized(&self) -> Option<NotMaterialized> {
9818        support::child(&self.syntax)
9819    }
9820    #[inline]
9821    pub fn query(&self) -> Option<WithQuery> {
9822        support::child(&self.syntax)
9823    }
9824    #[inline]
9825    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9826        support::token(&self.syntax, SyntaxKind::L_PAREN)
9827    }
9828    #[inline]
9829    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9830        support::token(&self.syntax, SyntaxKind::R_PAREN)
9831    }
9832    #[inline]
9833    pub fn as_token(&self) -> Option<SyntaxToken> {
9834        support::token(&self.syntax, SyntaxKind::AS_KW)
9835    }
9836}
9837
9838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9839pub struct WithTimezone {
9840    pub(crate) syntax: SyntaxNode,
9841}
9842impl WithTimezone {
9843    #[inline]
9844    pub fn time_token(&self) -> Option<SyntaxToken> {
9845        support::token(&self.syntax, SyntaxKind::TIME_KW)
9846    }
9847    #[inline]
9848    pub fn with_token(&self) -> Option<SyntaxToken> {
9849        support::token(&self.syntax, SyntaxKind::WITH_KW)
9850    }
9851    #[inline]
9852    pub fn zone_token(&self) -> Option<SyntaxToken> {
9853        support::token(&self.syntax, SyntaxKind::ZONE_KW)
9854    }
9855}
9856
9857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9858pub struct WithinClause {
9859    pub(crate) syntax: SyntaxNode,
9860}
9861impl WithinClause {
9862    #[inline]
9863    pub fn order_by_clause(&self) -> Option<OrderByClause> {
9864        support::child(&self.syntax)
9865    }
9866    #[inline]
9867    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9868        support::token(&self.syntax, SyntaxKind::L_PAREN)
9869    }
9870    #[inline]
9871    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9872        support::token(&self.syntax, SyntaxKind::R_PAREN)
9873    }
9874    #[inline]
9875    pub fn group_token(&self) -> Option<SyntaxToken> {
9876        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9877    }
9878    #[inline]
9879    pub fn within_token(&self) -> Option<SyntaxToken> {
9880        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
9881    }
9882}
9883
9884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9885pub struct WithoutOids {
9886    pub(crate) syntax: SyntaxNode,
9887}
9888impl WithoutOids {
9889    #[inline]
9890    pub fn oids_token(&self) -> Option<SyntaxToken> {
9891        support::token(&self.syntax, SyntaxKind::OIDS_KW)
9892    }
9893    #[inline]
9894    pub fn without_token(&self) -> Option<SyntaxToken> {
9895        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9896    }
9897}
9898
9899#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9900pub struct WithoutTimezone {
9901    pub(crate) syntax: SyntaxNode,
9902}
9903impl WithoutTimezone {
9904    #[inline]
9905    pub fn time_token(&self) -> Option<SyntaxToken> {
9906        support::token(&self.syntax, SyntaxKind::TIME_KW)
9907    }
9908    #[inline]
9909    pub fn without_token(&self) -> Option<SyntaxToken> {
9910        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
9911    }
9912    #[inline]
9913    pub fn zone_token(&self) -> Option<SyntaxToken> {
9914        support::token(&self.syntax, SyntaxKind::ZONE_KW)
9915    }
9916}
9917
9918#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9919pub struct XmlColumnOption {
9920    pub(crate) syntax: SyntaxNode,
9921}
9922impl XmlColumnOption {
9923    #[inline]
9924    pub fn expr(&self) -> Option<Expr> {
9925        support::child(&self.syntax)
9926    }
9927    #[inline]
9928    pub fn default_token(&self) -> Option<SyntaxToken> {
9929        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9930    }
9931    #[inline]
9932    pub fn ident_token(&self) -> Option<SyntaxToken> {
9933        support::token(&self.syntax, SyntaxKind::IDENT)
9934    }
9935    #[inline]
9936    pub fn not_token(&self) -> Option<SyntaxToken> {
9937        support::token(&self.syntax, SyntaxKind::NOT_KW)
9938    }
9939    #[inline]
9940    pub fn null_token(&self) -> Option<SyntaxToken> {
9941        support::token(&self.syntax, SyntaxKind::NULL_KW)
9942    }
9943    #[inline]
9944    pub fn path_token(&self) -> Option<SyntaxToken> {
9945        support::token(&self.syntax, SyntaxKind::PATH_KW)
9946    }
9947}
9948
9949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9950pub struct XmlColumnOptionList {
9951    pub(crate) syntax: SyntaxNode,
9952}
9953impl XmlColumnOptionList {
9954    #[inline]
9955    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
9956        support::child(&self.syntax)
9957    }
9958    #[inline]
9959    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
9960        support::children(&self.syntax)
9961    }
9962}
9963
9964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9965pub struct XmlTableColumn {
9966    pub(crate) syntax: SyntaxNode,
9967}
9968impl XmlTableColumn {
9969    #[inline]
9970    pub fn name(&self) -> Option<Name> {
9971        support::child(&self.syntax)
9972    }
9973    #[inline]
9974    pub fn ty(&self) -> Option<Type> {
9975        support::child(&self.syntax)
9976    }
9977    #[inline]
9978    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
9979        support::child(&self.syntax)
9980    }
9981    #[inline]
9982    pub fn for_token(&self) -> Option<SyntaxToken> {
9983        support::token(&self.syntax, SyntaxKind::FOR_KW)
9984    }
9985    #[inline]
9986    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9987        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9988    }
9989}
9990
9991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9992pub struct XmlTableColumnList {
9993    pub(crate) syntax: SyntaxNode,
9994}
9995impl XmlTableColumnList {
9996    #[inline]
9997    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
9998        support::children(&self.syntax)
9999    }
10000}
10001
10002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10003pub enum AlterColumnOption {
10004    AddGenerated(AddGenerated),
10005    DropDefault(DropDefault),
10006    DropExpression(DropExpression),
10007    DropIdentity(DropIdentity),
10008    DropNotNull(DropNotNull),
10009    ResetOptions(ResetOptions),
10010    Restart(Restart),
10011    SetCompression(SetCompression),
10012    SetDefault(SetDefault),
10013    SetExpression(SetExpression),
10014    SetGenerated(SetGenerated),
10015    SetGeneratedOptions(SetGeneratedOptions),
10016    SetNotNull(SetNotNull),
10017    SetOptions(SetOptions),
10018    SetSequenceOption(SetSequenceOption),
10019    SetStatistics(SetStatistics),
10020    SetStorage(SetStorage),
10021    SetType(SetType),
10022}
10023
10024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10025pub enum AlterDomainAction {
10026    AddConstraint(AddConstraint),
10027    DropConstraint(DropConstraint),
10028    DropDefault(DropDefault),
10029    DropNotNull(DropNotNull),
10030    OwnerTo(OwnerTo),
10031    RenameConstraint(RenameConstraint),
10032    RenameTo(RenameTo),
10033    SetDefault(SetDefault),
10034    SetNotNull(SetNotNull),
10035    SetSchema(SetSchema),
10036    ValidateConstraint(ValidateConstraint),
10037}
10038
10039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10040pub enum AlterTableAction {
10041    AddColumn(AddColumn),
10042    AddConstraint(AddConstraint),
10043    AlterColumn(AlterColumn),
10044    AlterConstraint(AlterConstraint),
10045    AttachPartition(AttachPartition),
10046    ClusterOn(ClusterOn),
10047    DetachPartition(DetachPartition),
10048    DisableRls(DisableRls),
10049    DisableRule(DisableRule),
10050    DisableTrigger(DisableTrigger),
10051    DropColumn(DropColumn),
10052    DropConstraint(DropConstraint),
10053    EnableAlwaysRule(EnableAlwaysRule),
10054    EnableAlwaysTrigger(EnableAlwaysTrigger),
10055    EnableReplicaRule(EnableReplicaRule),
10056    EnableReplicaTrigger(EnableReplicaTrigger),
10057    EnableRls(EnableRls),
10058    EnableRule(EnableRule),
10059    EnableTrigger(EnableTrigger),
10060    ForceRls(ForceRls),
10061    Inherit(Inherit),
10062    NoForceRls(NoForceRls),
10063    NoInherit(NoInherit),
10064    NotOf(NotOf),
10065    OfType(OfType),
10066    OptionsList(OptionsList),
10067    OwnerTo(OwnerTo),
10068    RenameColumn(RenameColumn),
10069    RenameConstraint(RenameConstraint),
10070    RenameTable(RenameTable),
10071    ReplicaIdentity(ReplicaIdentity),
10072    ResetStorageParams(ResetStorageParams),
10073    SetAccessMethod(SetAccessMethod),
10074    SetLogged(SetLogged),
10075    SetSchema(SetSchema),
10076    SetStorageParams(SetStorageParams),
10077    SetTablespace(SetTablespace),
10078    SetUnlogged(SetUnlogged),
10079    SetWithoutCluster(SetWithoutCluster),
10080    SetWithoutOids(SetWithoutOids),
10081    ValidateConstraint(ValidateConstraint),
10082}
10083
10084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10085pub enum ColumnConstraint {
10086    CheckConstraint(CheckConstraint),
10087    ExcludeConstraint(ExcludeConstraint),
10088    NotNullConstraint(NotNullConstraint),
10089    PrimaryKeyConstraint(PrimaryKeyConstraint),
10090    ReferencesConstraint(ReferencesConstraint),
10091    UniqueConstraint(UniqueConstraint),
10092}
10093
10094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10095pub enum Constraint {
10096    CheckConstraint(CheckConstraint),
10097    DefaultConstraint(DefaultConstraint),
10098    ForeignKeyConstraint(ForeignKeyConstraint),
10099    GeneratedConstraint(GeneratedConstraint),
10100    NotNullConstraint(NotNullConstraint),
10101    NullConstraint(NullConstraint),
10102    PrimaryKeyConstraint(PrimaryKeyConstraint),
10103    ReferencesConstraint(ReferencesConstraint),
10104    UniqueConstraint(UniqueConstraint),
10105}
10106
10107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10108pub enum Expr {
10109    ArrayExpr(ArrayExpr),
10110    BetweenExpr(BetweenExpr),
10111    BinExpr(BinExpr),
10112    CallExpr(CallExpr),
10113    CaseExpr(CaseExpr),
10114    CastExpr(CastExpr),
10115    FieldExpr(FieldExpr),
10116    IndexExpr(IndexExpr),
10117    Literal(Literal),
10118    NameRef(NameRef),
10119}
10120
10121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10122pub enum FuncOption {
10123    AsFuncOption(AsFuncOption),
10124    BeginFuncOption(BeginFuncOption),
10125    CostFuncOption(CostFuncOption),
10126    LanguageFuncOption(LanguageFuncOption),
10127    LeakproofFuncOption(LeakproofFuncOption),
10128    ParallelFuncOption(ParallelFuncOption),
10129    ResetFuncOption(ResetFuncOption),
10130    ReturnFuncOption(ReturnFuncOption),
10131    RowsFuncOption(RowsFuncOption),
10132    SecurityFuncOption(SecurityFuncOption),
10133    SetFuncOption(SetFuncOption),
10134    StrictFuncOption(StrictFuncOption),
10135    SupportFuncOption(SupportFuncOption),
10136    TransformFuncOption(TransformFuncOption),
10137    VolatilityFuncOption(VolatilityFuncOption),
10138    WindowFuncOption(WindowFuncOption),
10139}
10140
10141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10142pub enum JoinType {
10143    JoinCross(JoinCross),
10144    JoinFull(JoinFull),
10145    JoinInner(JoinInner),
10146    JoinLeft(JoinLeft),
10147    JoinRight(JoinRight),
10148}
10149
10150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10151pub enum JsonBehavior {
10152    JsonBehaviorDefault(JsonBehaviorDefault),
10153    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
10154    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
10155    JsonBehaviorError(JsonBehaviorError),
10156    JsonBehaviorFalse(JsonBehaviorFalse),
10157    JsonBehaviorNull(JsonBehaviorNull),
10158    JsonBehaviorTrue(JsonBehaviorTrue),
10159    JsonBehaviorUnknown(JsonBehaviorUnknown),
10160}
10161
10162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10163pub enum MatchType {
10164    MatchFull(MatchFull),
10165    MatchPartial(MatchPartial),
10166    MatchSimple(MatchSimple),
10167}
10168
10169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10170pub enum OnCommitAction {
10171    DeleteRows(DeleteRows),
10172    Drop(Drop),
10173    PreserveRows(PreserveRows),
10174}
10175
10176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10177pub enum ParamMode {
10178    ParamIn(ParamIn),
10179    ParamInOut(ParamInOut),
10180    ParamOut(ParamOut),
10181    ParamVariadic(ParamVariadic),
10182}
10183
10184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10185pub enum PartitionType {
10186    PartitionDefault(PartitionDefault),
10187    PartitionForValuesFrom(PartitionForValuesFrom),
10188    PartitionForValuesIn(PartitionForValuesIn),
10189    PartitionForValuesWith(PartitionForValuesWith),
10190}
10191
10192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10193pub enum RefAction {
10194    Cascade(Cascade),
10195    NoAction(NoAction),
10196    Restrict(Restrict),
10197    SetDefaultColumns(SetDefaultColumns),
10198    SetNullColumns(SetNullColumns),
10199}
10200
10201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10202pub enum Stmt {
10203    AlterAggregate(AlterAggregate),
10204    AlterCollation(AlterCollation),
10205    AlterConversion(AlterConversion),
10206    AlterDatabase(AlterDatabase),
10207    AlterDefaultPrivileges(AlterDefaultPrivileges),
10208    AlterDomain(AlterDomain),
10209    AlterEventTrigger(AlterEventTrigger),
10210    AlterExtension(AlterExtension),
10211    AlterForeignDataWrapper(AlterForeignDataWrapper),
10212    AlterForeignTable(AlterForeignTable),
10213    AlterFunction(AlterFunction),
10214    AlterGroup(AlterGroup),
10215    AlterIndex(AlterIndex),
10216    AlterLanguage(AlterLanguage),
10217    AlterLargeObject(AlterLargeObject),
10218    AlterMaterializedView(AlterMaterializedView),
10219    AlterOperator(AlterOperator),
10220    AlterOperatorClass(AlterOperatorClass),
10221    AlterOperatorFamily(AlterOperatorFamily),
10222    AlterPolicy(AlterPolicy),
10223    AlterProcedure(AlterProcedure),
10224    AlterPublication(AlterPublication),
10225    AlterRole(AlterRole),
10226    AlterRoutine(AlterRoutine),
10227    AlterRule(AlterRule),
10228    AlterSchema(AlterSchema),
10229    AlterSequence(AlterSequence),
10230    AlterServer(AlterServer),
10231    AlterStatistics(AlterStatistics),
10232    AlterSubscription(AlterSubscription),
10233    AlterSystem(AlterSystem),
10234    AlterTable(AlterTable),
10235    AlterTablespace(AlterTablespace),
10236    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
10237    AlterTextSearchDictionary(AlterTextSearchDictionary),
10238    AlterTextSearchParser(AlterTextSearchParser),
10239    AlterTextSearchTemplate(AlterTextSearchTemplate),
10240    AlterTrigger(AlterTrigger),
10241    AlterType(AlterType),
10242    AlterUser(AlterUser),
10243    AlterUserMapping(AlterUserMapping),
10244    AlterView(AlterView),
10245    Analyze(Analyze),
10246    Begin(Begin),
10247    Call(Call),
10248    Checkpoint(Checkpoint),
10249    Close(Close),
10250    Cluster(Cluster),
10251    CommentOn(CommentOn),
10252    Commit(Commit),
10253    Copy(Copy),
10254    CreateAccessMethod(CreateAccessMethod),
10255    CreateAggregate(CreateAggregate),
10256    CreateCast(CreateCast),
10257    CreateCollation(CreateCollation),
10258    CreateConversion(CreateConversion),
10259    CreateDatabase(CreateDatabase),
10260    CreateDomain(CreateDomain),
10261    CreateEventTrigger(CreateEventTrigger),
10262    CreateExtension(CreateExtension),
10263    CreateForeignDataWrapper(CreateForeignDataWrapper),
10264    CreateForeignTable(CreateForeignTable),
10265    CreateFunction(CreateFunction),
10266    CreateGroup(CreateGroup),
10267    CreateIndex(CreateIndex),
10268    CreateLanguage(CreateLanguage),
10269    CreateMaterializedView(CreateMaterializedView),
10270    CreateOperator(CreateOperator),
10271    CreateOperatorClass(CreateOperatorClass),
10272    CreateOperatorFamily(CreateOperatorFamily),
10273    CreatePolicy(CreatePolicy),
10274    CreateProcedure(CreateProcedure),
10275    CreatePublication(CreatePublication),
10276    CreateRole(CreateRole),
10277    CreateRule(CreateRule),
10278    CreateSchema(CreateSchema),
10279    CreateSequence(CreateSequence),
10280    CreateServer(CreateServer),
10281    CreateStatistics(CreateStatistics),
10282    CreateSubscription(CreateSubscription),
10283    CreateTable(CreateTable),
10284    CreateTableAs(CreateTableAs),
10285    CreateTablespace(CreateTablespace),
10286    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
10287    CreateTextSearchDictionary(CreateTextSearchDictionary),
10288    CreateTextSearchParser(CreateTextSearchParser),
10289    CreateTextSearchTemplate(CreateTextSearchTemplate),
10290    CreateTransform(CreateTransform),
10291    CreateTrigger(CreateTrigger),
10292    CreateType(CreateType),
10293    CreateUser(CreateUser),
10294    CreateUserMapping(CreateUserMapping),
10295    CreateView(CreateView),
10296    Deallocate(Deallocate),
10297    Declare(Declare),
10298    Delete(Delete),
10299    Discard(Discard),
10300    Do(Do),
10301    DropAccessMethod(DropAccessMethod),
10302    DropAggregate(DropAggregate),
10303    DropCast(DropCast),
10304    DropCollation(DropCollation),
10305    DropConversion(DropConversion),
10306    DropDatabase(DropDatabase),
10307    DropDomain(DropDomain),
10308    DropEventTrigger(DropEventTrigger),
10309    DropExtension(DropExtension),
10310    DropForeignDataWrapper(DropForeignDataWrapper),
10311    DropForeignTable(DropForeignTable),
10312    DropFunction(DropFunction),
10313    DropGroup(DropGroup),
10314    DropIndex(DropIndex),
10315    DropLanguage(DropLanguage),
10316    DropMaterializedView(DropMaterializedView),
10317    DropOperator(DropOperator),
10318    DropOperatorClass(DropOperatorClass),
10319    DropOperatorFamily(DropOperatorFamily),
10320    DropOwned(DropOwned),
10321    DropPolicy(DropPolicy),
10322    DropProcedure(DropProcedure),
10323    DropPublication(DropPublication),
10324    DropRole(DropRole),
10325    DropRoutine(DropRoutine),
10326    DropRule(DropRule),
10327    DropSchema(DropSchema),
10328    DropSequence(DropSequence),
10329    DropServer(DropServer),
10330    DropStatistics(DropStatistics),
10331    DropSubscription(DropSubscription),
10332    DropTable(DropTable),
10333    DropTablespace(DropTablespace),
10334    DropTextSearchConfig(DropTextSearchConfig),
10335    DropTextSearchDict(DropTextSearchDict),
10336    DropTextSearchParser(DropTextSearchParser),
10337    DropTextSearchTemplate(DropTextSearchTemplate),
10338    DropTransform(DropTransform),
10339    DropTrigger(DropTrigger),
10340    DropType(DropType),
10341    DropUser(DropUser),
10342    DropUserMapping(DropUserMapping),
10343    DropView(DropView),
10344    Execute(Execute),
10345    Explain(Explain),
10346    Fetch(Fetch),
10347    Grant(Grant),
10348    ImportForeignSchema(ImportForeignSchema),
10349    Insert(Insert),
10350    Listen(Listen),
10351    Load(Load),
10352    Lock(Lock),
10353    Merge(Merge),
10354    Move(Move),
10355    Notify(Notify),
10356    ParenSelect(ParenSelect),
10357    Prepare(Prepare),
10358    PrepareTransaction(PrepareTransaction),
10359    Reassign(Reassign),
10360    Refresh(Refresh),
10361    Reindex(Reindex),
10362    ReleaseSavepoint(ReleaseSavepoint),
10363    Reset(Reset),
10364    Revoke(Revoke),
10365    Rollback(Rollback),
10366    Savepoint(Savepoint),
10367    SecurityLabel(SecurityLabel),
10368    Select(Select),
10369    SelectInto(SelectInto),
10370    Set(Set),
10371    SetConstraints(SetConstraints),
10372    SetRole(SetRole),
10373    SetSessionAuth(SetSessionAuth),
10374    SetTransaction(SetTransaction),
10375    Show(Show),
10376    Truncate(Truncate),
10377    Unlisten(Unlisten),
10378    Update(Update),
10379    Vacuum(Vacuum),
10380    Values(Values),
10381}
10382
10383#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10384pub enum TableArg {
10385    Column(Column),
10386    LikeClause(LikeClause),
10387    TableConstraint(TableConstraint),
10388}
10389
10390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10391pub enum TableConstraint {
10392    CheckConstraint(CheckConstraint),
10393    ExcludeConstraint(ExcludeConstraint),
10394    ForeignKeyConstraint(ForeignKeyConstraint),
10395    PrimaryKeyConstraint(PrimaryKeyConstraint),
10396    UniqueConstraint(UniqueConstraint),
10397}
10398
10399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10400pub enum Timezone {
10401    WithTimezone(WithTimezone),
10402    WithoutTimezone(WithoutTimezone),
10403}
10404
10405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10406pub enum TransactionMode {
10407    Deferrable(Deferrable),
10408    NotDeferrable(NotDeferrable),
10409    ReadCommitted(ReadCommitted),
10410    ReadOnly(ReadOnly),
10411    ReadUncommitted(ReadUncommitted),
10412    ReadWrite(ReadWrite),
10413    RepeatableRead(RepeatableRead),
10414    Serializable(Serializable),
10415}
10416
10417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10418pub enum Type {
10419    ArrayType(ArrayType),
10420    BitType(BitType),
10421    CharType(CharType),
10422    DoubleType(DoubleType),
10423    IntervalType(IntervalType),
10424    PathType(PathType),
10425    PercentType(PercentType),
10426    TimeType(TimeType),
10427}
10428
10429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10430pub enum WithQuery {
10431    Delete(Delete),
10432    Insert(Insert),
10433    Merge(Merge),
10434    Select(Select),
10435    Update(Update),
10436    Values(Values),
10437}
10438impl AstNode for AddColumn {
10439    #[inline]
10440    fn can_cast(kind: SyntaxKind) -> bool {
10441        kind == SyntaxKind::ADD_COLUMN
10442    }
10443    #[inline]
10444    fn cast(syntax: SyntaxNode) -> Option<Self> {
10445        if Self::can_cast(syntax.kind()) {
10446            Some(Self { syntax })
10447        } else {
10448            None
10449        }
10450    }
10451    #[inline]
10452    fn syntax(&self) -> &SyntaxNode {
10453        &self.syntax
10454    }
10455}
10456impl AstNode for AddConstraint {
10457    #[inline]
10458    fn can_cast(kind: SyntaxKind) -> bool {
10459        kind == SyntaxKind::ADD_CONSTRAINT
10460    }
10461    #[inline]
10462    fn cast(syntax: SyntaxNode) -> Option<Self> {
10463        if Self::can_cast(syntax.kind()) {
10464            Some(Self { syntax })
10465        } else {
10466            None
10467        }
10468    }
10469    #[inline]
10470    fn syntax(&self) -> &SyntaxNode {
10471        &self.syntax
10472    }
10473}
10474impl AstNode for AddGenerated {
10475    #[inline]
10476    fn can_cast(kind: SyntaxKind) -> bool {
10477        kind == SyntaxKind::ADD_GENERATED
10478    }
10479    #[inline]
10480    fn cast(syntax: SyntaxNode) -> Option<Self> {
10481        if Self::can_cast(syntax.kind()) {
10482            Some(Self { syntax })
10483        } else {
10484            None
10485        }
10486    }
10487    #[inline]
10488    fn syntax(&self) -> &SyntaxNode {
10489        &self.syntax
10490    }
10491}
10492impl AstNode for Aggregate {
10493    #[inline]
10494    fn can_cast(kind: SyntaxKind) -> bool {
10495        kind == SyntaxKind::AGGREGATE
10496    }
10497    #[inline]
10498    fn cast(syntax: SyntaxNode) -> Option<Self> {
10499        if Self::can_cast(syntax.kind()) {
10500            Some(Self { syntax })
10501        } else {
10502            None
10503        }
10504    }
10505    #[inline]
10506    fn syntax(&self) -> &SyntaxNode {
10507        &self.syntax
10508    }
10509}
10510impl AstNode for Alias {
10511    #[inline]
10512    fn can_cast(kind: SyntaxKind) -> bool {
10513        kind == SyntaxKind::ALIAS
10514    }
10515    #[inline]
10516    fn cast(syntax: SyntaxNode) -> Option<Self> {
10517        if Self::can_cast(syntax.kind()) {
10518            Some(Self { syntax })
10519        } else {
10520            None
10521        }
10522    }
10523    #[inline]
10524    fn syntax(&self) -> &SyntaxNode {
10525        &self.syntax
10526    }
10527}
10528impl AstNode for AlterAggregate {
10529    #[inline]
10530    fn can_cast(kind: SyntaxKind) -> bool {
10531        kind == SyntaxKind::ALTER_AGGREGATE
10532    }
10533    #[inline]
10534    fn cast(syntax: SyntaxNode) -> Option<Self> {
10535        if Self::can_cast(syntax.kind()) {
10536            Some(Self { syntax })
10537        } else {
10538            None
10539        }
10540    }
10541    #[inline]
10542    fn syntax(&self) -> &SyntaxNode {
10543        &self.syntax
10544    }
10545}
10546impl AstNode for AlterCollation {
10547    #[inline]
10548    fn can_cast(kind: SyntaxKind) -> bool {
10549        kind == SyntaxKind::ALTER_COLLATION
10550    }
10551    #[inline]
10552    fn cast(syntax: SyntaxNode) -> Option<Self> {
10553        if Self::can_cast(syntax.kind()) {
10554            Some(Self { syntax })
10555        } else {
10556            None
10557        }
10558    }
10559    #[inline]
10560    fn syntax(&self) -> &SyntaxNode {
10561        &self.syntax
10562    }
10563}
10564impl AstNode for AlterColumn {
10565    #[inline]
10566    fn can_cast(kind: SyntaxKind) -> bool {
10567        kind == SyntaxKind::ALTER_COLUMN
10568    }
10569    #[inline]
10570    fn cast(syntax: SyntaxNode) -> Option<Self> {
10571        if Self::can_cast(syntax.kind()) {
10572            Some(Self { syntax })
10573        } else {
10574            None
10575        }
10576    }
10577    #[inline]
10578    fn syntax(&self) -> &SyntaxNode {
10579        &self.syntax
10580    }
10581}
10582impl AstNode for AlterConstraint {
10583    #[inline]
10584    fn can_cast(kind: SyntaxKind) -> bool {
10585        kind == SyntaxKind::ALTER_CONSTRAINT
10586    }
10587    #[inline]
10588    fn cast(syntax: SyntaxNode) -> Option<Self> {
10589        if Self::can_cast(syntax.kind()) {
10590            Some(Self { syntax })
10591        } else {
10592            None
10593        }
10594    }
10595    #[inline]
10596    fn syntax(&self) -> &SyntaxNode {
10597        &self.syntax
10598    }
10599}
10600impl AstNode for AlterConversion {
10601    #[inline]
10602    fn can_cast(kind: SyntaxKind) -> bool {
10603        kind == SyntaxKind::ALTER_CONVERSION
10604    }
10605    #[inline]
10606    fn cast(syntax: SyntaxNode) -> Option<Self> {
10607        if Self::can_cast(syntax.kind()) {
10608            Some(Self { syntax })
10609        } else {
10610            None
10611        }
10612    }
10613    #[inline]
10614    fn syntax(&self) -> &SyntaxNode {
10615        &self.syntax
10616    }
10617}
10618impl AstNode for AlterDatabase {
10619    #[inline]
10620    fn can_cast(kind: SyntaxKind) -> bool {
10621        kind == SyntaxKind::ALTER_DATABASE
10622    }
10623    #[inline]
10624    fn cast(syntax: SyntaxNode) -> Option<Self> {
10625        if Self::can_cast(syntax.kind()) {
10626            Some(Self { syntax })
10627        } else {
10628            None
10629        }
10630    }
10631    #[inline]
10632    fn syntax(&self) -> &SyntaxNode {
10633        &self.syntax
10634    }
10635}
10636impl AstNode for AlterDefaultPrivileges {
10637    #[inline]
10638    fn can_cast(kind: SyntaxKind) -> bool {
10639        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
10640    }
10641    #[inline]
10642    fn cast(syntax: SyntaxNode) -> Option<Self> {
10643        if Self::can_cast(syntax.kind()) {
10644            Some(Self { syntax })
10645        } else {
10646            None
10647        }
10648    }
10649    #[inline]
10650    fn syntax(&self) -> &SyntaxNode {
10651        &self.syntax
10652    }
10653}
10654impl AstNode for AlterDomain {
10655    #[inline]
10656    fn can_cast(kind: SyntaxKind) -> bool {
10657        kind == SyntaxKind::ALTER_DOMAIN
10658    }
10659    #[inline]
10660    fn cast(syntax: SyntaxNode) -> Option<Self> {
10661        if Self::can_cast(syntax.kind()) {
10662            Some(Self { syntax })
10663        } else {
10664            None
10665        }
10666    }
10667    #[inline]
10668    fn syntax(&self) -> &SyntaxNode {
10669        &self.syntax
10670    }
10671}
10672impl AstNode for AlterEventTrigger {
10673    #[inline]
10674    fn can_cast(kind: SyntaxKind) -> bool {
10675        kind == SyntaxKind::ALTER_EVENT_TRIGGER
10676    }
10677    #[inline]
10678    fn cast(syntax: SyntaxNode) -> Option<Self> {
10679        if Self::can_cast(syntax.kind()) {
10680            Some(Self { syntax })
10681        } else {
10682            None
10683        }
10684    }
10685    #[inline]
10686    fn syntax(&self) -> &SyntaxNode {
10687        &self.syntax
10688    }
10689}
10690impl AstNode for AlterExtension {
10691    #[inline]
10692    fn can_cast(kind: SyntaxKind) -> bool {
10693        kind == SyntaxKind::ALTER_EXTENSION
10694    }
10695    #[inline]
10696    fn cast(syntax: SyntaxNode) -> Option<Self> {
10697        if Self::can_cast(syntax.kind()) {
10698            Some(Self { syntax })
10699        } else {
10700            None
10701        }
10702    }
10703    #[inline]
10704    fn syntax(&self) -> &SyntaxNode {
10705        &self.syntax
10706    }
10707}
10708impl AstNode for AlterForeignDataWrapper {
10709    #[inline]
10710    fn can_cast(kind: SyntaxKind) -> bool {
10711        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
10712    }
10713    #[inline]
10714    fn cast(syntax: SyntaxNode) -> Option<Self> {
10715        if Self::can_cast(syntax.kind()) {
10716            Some(Self { syntax })
10717        } else {
10718            None
10719        }
10720    }
10721    #[inline]
10722    fn syntax(&self) -> &SyntaxNode {
10723        &self.syntax
10724    }
10725}
10726impl AstNode for AlterForeignTable {
10727    #[inline]
10728    fn can_cast(kind: SyntaxKind) -> bool {
10729        kind == SyntaxKind::ALTER_FOREIGN_TABLE
10730    }
10731    #[inline]
10732    fn cast(syntax: SyntaxNode) -> Option<Self> {
10733        if Self::can_cast(syntax.kind()) {
10734            Some(Self { syntax })
10735        } else {
10736            None
10737        }
10738    }
10739    #[inline]
10740    fn syntax(&self) -> &SyntaxNode {
10741        &self.syntax
10742    }
10743}
10744impl AstNode for AlterFunction {
10745    #[inline]
10746    fn can_cast(kind: SyntaxKind) -> bool {
10747        kind == SyntaxKind::ALTER_FUNCTION
10748    }
10749    #[inline]
10750    fn cast(syntax: SyntaxNode) -> Option<Self> {
10751        if Self::can_cast(syntax.kind()) {
10752            Some(Self { syntax })
10753        } else {
10754            None
10755        }
10756    }
10757    #[inline]
10758    fn syntax(&self) -> &SyntaxNode {
10759        &self.syntax
10760    }
10761}
10762impl AstNode for AlterGroup {
10763    #[inline]
10764    fn can_cast(kind: SyntaxKind) -> bool {
10765        kind == SyntaxKind::ALTER_GROUP
10766    }
10767    #[inline]
10768    fn cast(syntax: SyntaxNode) -> Option<Self> {
10769        if Self::can_cast(syntax.kind()) {
10770            Some(Self { syntax })
10771        } else {
10772            None
10773        }
10774    }
10775    #[inline]
10776    fn syntax(&self) -> &SyntaxNode {
10777        &self.syntax
10778    }
10779}
10780impl AstNode for AlterIndex {
10781    #[inline]
10782    fn can_cast(kind: SyntaxKind) -> bool {
10783        kind == SyntaxKind::ALTER_INDEX
10784    }
10785    #[inline]
10786    fn cast(syntax: SyntaxNode) -> Option<Self> {
10787        if Self::can_cast(syntax.kind()) {
10788            Some(Self { syntax })
10789        } else {
10790            None
10791        }
10792    }
10793    #[inline]
10794    fn syntax(&self) -> &SyntaxNode {
10795        &self.syntax
10796    }
10797}
10798impl AstNode for AlterLanguage {
10799    #[inline]
10800    fn can_cast(kind: SyntaxKind) -> bool {
10801        kind == SyntaxKind::ALTER_LANGUAGE
10802    }
10803    #[inline]
10804    fn cast(syntax: SyntaxNode) -> Option<Self> {
10805        if Self::can_cast(syntax.kind()) {
10806            Some(Self { syntax })
10807        } else {
10808            None
10809        }
10810    }
10811    #[inline]
10812    fn syntax(&self) -> &SyntaxNode {
10813        &self.syntax
10814    }
10815}
10816impl AstNode for AlterLargeObject {
10817    #[inline]
10818    fn can_cast(kind: SyntaxKind) -> bool {
10819        kind == SyntaxKind::ALTER_LARGE_OBJECT
10820    }
10821    #[inline]
10822    fn cast(syntax: SyntaxNode) -> Option<Self> {
10823        if Self::can_cast(syntax.kind()) {
10824            Some(Self { syntax })
10825        } else {
10826            None
10827        }
10828    }
10829    #[inline]
10830    fn syntax(&self) -> &SyntaxNode {
10831        &self.syntax
10832    }
10833}
10834impl AstNode for AlterMaterializedView {
10835    #[inline]
10836    fn can_cast(kind: SyntaxKind) -> bool {
10837        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
10838    }
10839    #[inline]
10840    fn cast(syntax: SyntaxNode) -> Option<Self> {
10841        if Self::can_cast(syntax.kind()) {
10842            Some(Self { syntax })
10843        } else {
10844            None
10845        }
10846    }
10847    #[inline]
10848    fn syntax(&self) -> &SyntaxNode {
10849        &self.syntax
10850    }
10851}
10852impl AstNode for AlterOperator {
10853    #[inline]
10854    fn can_cast(kind: SyntaxKind) -> bool {
10855        kind == SyntaxKind::ALTER_OPERATOR
10856    }
10857    #[inline]
10858    fn cast(syntax: SyntaxNode) -> Option<Self> {
10859        if Self::can_cast(syntax.kind()) {
10860            Some(Self { syntax })
10861        } else {
10862            None
10863        }
10864    }
10865    #[inline]
10866    fn syntax(&self) -> &SyntaxNode {
10867        &self.syntax
10868    }
10869}
10870impl AstNode for AlterOperatorClass {
10871    #[inline]
10872    fn can_cast(kind: SyntaxKind) -> bool {
10873        kind == SyntaxKind::ALTER_OPERATOR_CLASS
10874    }
10875    #[inline]
10876    fn cast(syntax: SyntaxNode) -> Option<Self> {
10877        if Self::can_cast(syntax.kind()) {
10878            Some(Self { syntax })
10879        } else {
10880            None
10881        }
10882    }
10883    #[inline]
10884    fn syntax(&self) -> &SyntaxNode {
10885        &self.syntax
10886    }
10887}
10888impl AstNode for AlterOperatorFamily {
10889    #[inline]
10890    fn can_cast(kind: SyntaxKind) -> bool {
10891        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
10892    }
10893    #[inline]
10894    fn cast(syntax: SyntaxNode) -> Option<Self> {
10895        if Self::can_cast(syntax.kind()) {
10896            Some(Self { syntax })
10897        } else {
10898            None
10899        }
10900    }
10901    #[inline]
10902    fn syntax(&self) -> &SyntaxNode {
10903        &self.syntax
10904    }
10905}
10906impl AstNode for AlterPolicy {
10907    #[inline]
10908    fn can_cast(kind: SyntaxKind) -> bool {
10909        kind == SyntaxKind::ALTER_POLICY
10910    }
10911    #[inline]
10912    fn cast(syntax: SyntaxNode) -> Option<Self> {
10913        if Self::can_cast(syntax.kind()) {
10914            Some(Self { syntax })
10915        } else {
10916            None
10917        }
10918    }
10919    #[inline]
10920    fn syntax(&self) -> &SyntaxNode {
10921        &self.syntax
10922    }
10923}
10924impl AstNode for AlterProcedure {
10925    #[inline]
10926    fn can_cast(kind: SyntaxKind) -> bool {
10927        kind == SyntaxKind::ALTER_PROCEDURE
10928    }
10929    #[inline]
10930    fn cast(syntax: SyntaxNode) -> Option<Self> {
10931        if Self::can_cast(syntax.kind()) {
10932            Some(Self { syntax })
10933        } else {
10934            None
10935        }
10936    }
10937    #[inline]
10938    fn syntax(&self) -> &SyntaxNode {
10939        &self.syntax
10940    }
10941}
10942impl AstNode for AlterPublication {
10943    #[inline]
10944    fn can_cast(kind: SyntaxKind) -> bool {
10945        kind == SyntaxKind::ALTER_PUBLICATION
10946    }
10947    #[inline]
10948    fn cast(syntax: SyntaxNode) -> Option<Self> {
10949        if Self::can_cast(syntax.kind()) {
10950            Some(Self { syntax })
10951        } else {
10952            None
10953        }
10954    }
10955    #[inline]
10956    fn syntax(&self) -> &SyntaxNode {
10957        &self.syntax
10958    }
10959}
10960impl AstNode for AlterRole {
10961    #[inline]
10962    fn can_cast(kind: SyntaxKind) -> bool {
10963        kind == SyntaxKind::ALTER_ROLE
10964    }
10965    #[inline]
10966    fn cast(syntax: SyntaxNode) -> Option<Self> {
10967        if Self::can_cast(syntax.kind()) {
10968            Some(Self { syntax })
10969        } else {
10970            None
10971        }
10972    }
10973    #[inline]
10974    fn syntax(&self) -> &SyntaxNode {
10975        &self.syntax
10976    }
10977}
10978impl AstNode for AlterRoutine {
10979    #[inline]
10980    fn can_cast(kind: SyntaxKind) -> bool {
10981        kind == SyntaxKind::ALTER_ROUTINE
10982    }
10983    #[inline]
10984    fn cast(syntax: SyntaxNode) -> Option<Self> {
10985        if Self::can_cast(syntax.kind()) {
10986            Some(Self { syntax })
10987        } else {
10988            None
10989        }
10990    }
10991    #[inline]
10992    fn syntax(&self) -> &SyntaxNode {
10993        &self.syntax
10994    }
10995}
10996impl AstNode for AlterRule {
10997    #[inline]
10998    fn can_cast(kind: SyntaxKind) -> bool {
10999        kind == SyntaxKind::ALTER_RULE
11000    }
11001    #[inline]
11002    fn cast(syntax: SyntaxNode) -> Option<Self> {
11003        if Self::can_cast(syntax.kind()) {
11004            Some(Self { syntax })
11005        } else {
11006            None
11007        }
11008    }
11009    #[inline]
11010    fn syntax(&self) -> &SyntaxNode {
11011        &self.syntax
11012    }
11013}
11014impl AstNode for AlterSchema {
11015    #[inline]
11016    fn can_cast(kind: SyntaxKind) -> bool {
11017        kind == SyntaxKind::ALTER_SCHEMA
11018    }
11019    #[inline]
11020    fn cast(syntax: SyntaxNode) -> Option<Self> {
11021        if Self::can_cast(syntax.kind()) {
11022            Some(Self { syntax })
11023        } else {
11024            None
11025        }
11026    }
11027    #[inline]
11028    fn syntax(&self) -> &SyntaxNode {
11029        &self.syntax
11030    }
11031}
11032impl AstNode for AlterSequence {
11033    #[inline]
11034    fn can_cast(kind: SyntaxKind) -> bool {
11035        kind == SyntaxKind::ALTER_SEQUENCE
11036    }
11037    #[inline]
11038    fn cast(syntax: SyntaxNode) -> Option<Self> {
11039        if Self::can_cast(syntax.kind()) {
11040            Some(Self { syntax })
11041        } else {
11042            None
11043        }
11044    }
11045    #[inline]
11046    fn syntax(&self) -> &SyntaxNode {
11047        &self.syntax
11048    }
11049}
11050impl AstNode for AlterServer {
11051    #[inline]
11052    fn can_cast(kind: SyntaxKind) -> bool {
11053        kind == SyntaxKind::ALTER_SERVER
11054    }
11055    #[inline]
11056    fn cast(syntax: SyntaxNode) -> Option<Self> {
11057        if Self::can_cast(syntax.kind()) {
11058            Some(Self { syntax })
11059        } else {
11060            None
11061        }
11062    }
11063    #[inline]
11064    fn syntax(&self) -> &SyntaxNode {
11065        &self.syntax
11066    }
11067}
11068impl AstNode for AlterStatistics {
11069    #[inline]
11070    fn can_cast(kind: SyntaxKind) -> bool {
11071        kind == SyntaxKind::ALTER_STATISTICS
11072    }
11073    #[inline]
11074    fn cast(syntax: SyntaxNode) -> Option<Self> {
11075        if Self::can_cast(syntax.kind()) {
11076            Some(Self { syntax })
11077        } else {
11078            None
11079        }
11080    }
11081    #[inline]
11082    fn syntax(&self) -> &SyntaxNode {
11083        &self.syntax
11084    }
11085}
11086impl AstNode for AlterSubscription {
11087    #[inline]
11088    fn can_cast(kind: SyntaxKind) -> bool {
11089        kind == SyntaxKind::ALTER_SUBSCRIPTION
11090    }
11091    #[inline]
11092    fn cast(syntax: SyntaxNode) -> Option<Self> {
11093        if Self::can_cast(syntax.kind()) {
11094            Some(Self { syntax })
11095        } else {
11096            None
11097        }
11098    }
11099    #[inline]
11100    fn syntax(&self) -> &SyntaxNode {
11101        &self.syntax
11102    }
11103}
11104impl AstNode for AlterSystem {
11105    #[inline]
11106    fn can_cast(kind: SyntaxKind) -> bool {
11107        kind == SyntaxKind::ALTER_SYSTEM
11108    }
11109    #[inline]
11110    fn cast(syntax: SyntaxNode) -> Option<Self> {
11111        if Self::can_cast(syntax.kind()) {
11112            Some(Self { syntax })
11113        } else {
11114            None
11115        }
11116    }
11117    #[inline]
11118    fn syntax(&self) -> &SyntaxNode {
11119        &self.syntax
11120    }
11121}
11122impl AstNode for AlterTable {
11123    #[inline]
11124    fn can_cast(kind: SyntaxKind) -> bool {
11125        kind == SyntaxKind::ALTER_TABLE
11126    }
11127    #[inline]
11128    fn cast(syntax: SyntaxNode) -> Option<Self> {
11129        if Self::can_cast(syntax.kind()) {
11130            Some(Self { syntax })
11131        } else {
11132            None
11133        }
11134    }
11135    #[inline]
11136    fn syntax(&self) -> &SyntaxNode {
11137        &self.syntax
11138    }
11139}
11140impl AstNode for AlterTablespace {
11141    #[inline]
11142    fn can_cast(kind: SyntaxKind) -> bool {
11143        kind == SyntaxKind::ALTER_TABLESPACE
11144    }
11145    #[inline]
11146    fn cast(syntax: SyntaxNode) -> Option<Self> {
11147        if Self::can_cast(syntax.kind()) {
11148            Some(Self { syntax })
11149        } else {
11150            None
11151        }
11152    }
11153    #[inline]
11154    fn syntax(&self) -> &SyntaxNode {
11155        &self.syntax
11156    }
11157}
11158impl AstNode for AlterTextSearchConfiguration {
11159    #[inline]
11160    fn can_cast(kind: SyntaxKind) -> bool {
11161        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
11162    }
11163    #[inline]
11164    fn cast(syntax: SyntaxNode) -> Option<Self> {
11165        if Self::can_cast(syntax.kind()) {
11166            Some(Self { syntax })
11167        } else {
11168            None
11169        }
11170    }
11171    #[inline]
11172    fn syntax(&self) -> &SyntaxNode {
11173        &self.syntax
11174    }
11175}
11176impl AstNode for AlterTextSearchDictionary {
11177    #[inline]
11178    fn can_cast(kind: SyntaxKind) -> bool {
11179        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
11180    }
11181    #[inline]
11182    fn cast(syntax: SyntaxNode) -> Option<Self> {
11183        if Self::can_cast(syntax.kind()) {
11184            Some(Self { syntax })
11185        } else {
11186            None
11187        }
11188    }
11189    #[inline]
11190    fn syntax(&self) -> &SyntaxNode {
11191        &self.syntax
11192    }
11193}
11194impl AstNode for AlterTextSearchParser {
11195    #[inline]
11196    fn can_cast(kind: SyntaxKind) -> bool {
11197        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
11198    }
11199    #[inline]
11200    fn cast(syntax: SyntaxNode) -> Option<Self> {
11201        if Self::can_cast(syntax.kind()) {
11202            Some(Self { syntax })
11203        } else {
11204            None
11205        }
11206    }
11207    #[inline]
11208    fn syntax(&self) -> &SyntaxNode {
11209        &self.syntax
11210    }
11211}
11212impl AstNode for AlterTextSearchTemplate {
11213    #[inline]
11214    fn can_cast(kind: SyntaxKind) -> bool {
11215        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
11216    }
11217    #[inline]
11218    fn cast(syntax: SyntaxNode) -> Option<Self> {
11219        if Self::can_cast(syntax.kind()) {
11220            Some(Self { syntax })
11221        } else {
11222            None
11223        }
11224    }
11225    #[inline]
11226    fn syntax(&self) -> &SyntaxNode {
11227        &self.syntax
11228    }
11229}
11230impl AstNode for AlterTrigger {
11231    #[inline]
11232    fn can_cast(kind: SyntaxKind) -> bool {
11233        kind == SyntaxKind::ALTER_TRIGGER
11234    }
11235    #[inline]
11236    fn cast(syntax: SyntaxNode) -> Option<Self> {
11237        if Self::can_cast(syntax.kind()) {
11238            Some(Self { syntax })
11239        } else {
11240            None
11241        }
11242    }
11243    #[inline]
11244    fn syntax(&self) -> &SyntaxNode {
11245        &self.syntax
11246    }
11247}
11248impl AstNode for AlterType {
11249    #[inline]
11250    fn can_cast(kind: SyntaxKind) -> bool {
11251        kind == SyntaxKind::ALTER_TYPE
11252    }
11253    #[inline]
11254    fn cast(syntax: SyntaxNode) -> Option<Self> {
11255        if Self::can_cast(syntax.kind()) {
11256            Some(Self { syntax })
11257        } else {
11258            None
11259        }
11260    }
11261    #[inline]
11262    fn syntax(&self) -> &SyntaxNode {
11263        &self.syntax
11264    }
11265}
11266impl AstNode for AlterUser {
11267    #[inline]
11268    fn can_cast(kind: SyntaxKind) -> bool {
11269        kind == SyntaxKind::ALTER_USER
11270    }
11271    #[inline]
11272    fn cast(syntax: SyntaxNode) -> Option<Self> {
11273        if Self::can_cast(syntax.kind()) {
11274            Some(Self { syntax })
11275        } else {
11276            None
11277        }
11278    }
11279    #[inline]
11280    fn syntax(&self) -> &SyntaxNode {
11281        &self.syntax
11282    }
11283}
11284impl AstNode for AlterUserMapping {
11285    #[inline]
11286    fn can_cast(kind: SyntaxKind) -> bool {
11287        kind == SyntaxKind::ALTER_USER_MAPPING
11288    }
11289    #[inline]
11290    fn cast(syntax: SyntaxNode) -> Option<Self> {
11291        if Self::can_cast(syntax.kind()) {
11292            Some(Self { syntax })
11293        } else {
11294            None
11295        }
11296    }
11297    #[inline]
11298    fn syntax(&self) -> &SyntaxNode {
11299        &self.syntax
11300    }
11301}
11302impl AstNode for AlterView {
11303    #[inline]
11304    fn can_cast(kind: SyntaxKind) -> bool {
11305        kind == SyntaxKind::ALTER_VIEW
11306    }
11307    #[inline]
11308    fn cast(syntax: SyntaxNode) -> Option<Self> {
11309        if Self::can_cast(syntax.kind()) {
11310            Some(Self { syntax })
11311        } else {
11312            None
11313        }
11314    }
11315    #[inline]
11316    fn syntax(&self) -> &SyntaxNode {
11317        &self.syntax
11318    }
11319}
11320impl AstNode for Analyze {
11321    #[inline]
11322    fn can_cast(kind: SyntaxKind) -> bool {
11323        kind == SyntaxKind::ANALYZE
11324    }
11325    #[inline]
11326    fn cast(syntax: SyntaxNode) -> Option<Self> {
11327        if Self::can_cast(syntax.kind()) {
11328            Some(Self { syntax })
11329        } else {
11330            None
11331        }
11332    }
11333    #[inline]
11334    fn syntax(&self) -> &SyntaxNode {
11335        &self.syntax
11336    }
11337}
11338impl AstNode for Arg {
11339    #[inline]
11340    fn can_cast(kind: SyntaxKind) -> bool {
11341        kind == SyntaxKind::ARG
11342    }
11343    #[inline]
11344    fn cast(syntax: SyntaxNode) -> Option<Self> {
11345        if Self::can_cast(syntax.kind()) {
11346            Some(Self { syntax })
11347        } else {
11348            None
11349        }
11350    }
11351    #[inline]
11352    fn syntax(&self) -> &SyntaxNode {
11353        &self.syntax
11354    }
11355}
11356impl AstNode for ArgList {
11357    #[inline]
11358    fn can_cast(kind: SyntaxKind) -> bool {
11359        kind == SyntaxKind::ARG_LIST
11360    }
11361    #[inline]
11362    fn cast(syntax: SyntaxNode) -> Option<Self> {
11363        if Self::can_cast(syntax.kind()) {
11364            Some(Self { syntax })
11365        } else {
11366            None
11367        }
11368    }
11369    #[inline]
11370    fn syntax(&self) -> &SyntaxNode {
11371        &self.syntax
11372    }
11373}
11374impl AstNode for ArrayExpr {
11375    #[inline]
11376    fn can_cast(kind: SyntaxKind) -> bool {
11377        kind == SyntaxKind::ARRAY_EXPR
11378    }
11379    #[inline]
11380    fn cast(syntax: SyntaxNode) -> Option<Self> {
11381        if Self::can_cast(syntax.kind()) {
11382            Some(Self { syntax })
11383        } else {
11384            None
11385        }
11386    }
11387    #[inline]
11388    fn syntax(&self) -> &SyntaxNode {
11389        &self.syntax
11390    }
11391}
11392impl AstNode for ArrayType {
11393    #[inline]
11394    fn can_cast(kind: SyntaxKind) -> bool {
11395        kind == SyntaxKind::ARRAY_TYPE
11396    }
11397    #[inline]
11398    fn cast(syntax: SyntaxNode) -> Option<Self> {
11399        if Self::can_cast(syntax.kind()) {
11400            Some(Self { syntax })
11401        } else {
11402            None
11403        }
11404    }
11405    #[inline]
11406    fn syntax(&self) -> &SyntaxNode {
11407        &self.syntax
11408    }
11409}
11410impl AstNode for AsFuncOption {
11411    #[inline]
11412    fn can_cast(kind: SyntaxKind) -> bool {
11413        kind == SyntaxKind::AS_FUNC_OPTION
11414    }
11415    #[inline]
11416    fn cast(syntax: SyntaxNode) -> Option<Self> {
11417        if Self::can_cast(syntax.kind()) {
11418            Some(Self { syntax })
11419        } else {
11420            None
11421        }
11422    }
11423    #[inline]
11424    fn syntax(&self) -> &SyntaxNode {
11425        &self.syntax
11426    }
11427}
11428impl AstNode for AtTimeZone {
11429    #[inline]
11430    fn can_cast(kind: SyntaxKind) -> bool {
11431        kind == SyntaxKind::AT_TIME_ZONE
11432    }
11433    #[inline]
11434    fn cast(syntax: SyntaxNode) -> Option<Self> {
11435        if Self::can_cast(syntax.kind()) {
11436            Some(Self { syntax })
11437        } else {
11438            None
11439        }
11440    }
11441    #[inline]
11442    fn syntax(&self) -> &SyntaxNode {
11443        &self.syntax
11444    }
11445}
11446impl AstNode for AttachPartition {
11447    #[inline]
11448    fn can_cast(kind: SyntaxKind) -> bool {
11449        kind == SyntaxKind::ATTACH_PARTITION
11450    }
11451    #[inline]
11452    fn cast(syntax: SyntaxNode) -> Option<Self> {
11453        if Self::can_cast(syntax.kind()) {
11454            Some(Self { syntax })
11455        } else {
11456            None
11457        }
11458    }
11459    #[inline]
11460    fn syntax(&self) -> &SyntaxNode {
11461        &self.syntax
11462    }
11463}
11464impl AstNode for AttributeList {
11465    #[inline]
11466    fn can_cast(kind: SyntaxKind) -> bool {
11467        kind == SyntaxKind::ATTRIBUTE_LIST
11468    }
11469    #[inline]
11470    fn cast(syntax: SyntaxNode) -> Option<Self> {
11471        if Self::can_cast(syntax.kind()) {
11472            Some(Self { syntax })
11473        } else {
11474            None
11475        }
11476    }
11477    #[inline]
11478    fn syntax(&self) -> &SyntaxNode {
11479        &self.syntax
11480    }
11481}
11482impl AstNode for AttributeOption {
11483    #[inline]
11484    fn can_cast(kind: SyntaxKind) -> bool {
11485        kind == SyntaxKind::ATTRIBUTE_OPTION
11486    }
11487    #[inline]
11488    fn cast(syntax: SyntaxNode) -> Option<Self> {
11489        if Self::can_cast(syntax.kind()) {
11490            Some(Self { syntax })
11491        } else {
11492            None
11493        }
11494    }
11495    #[inline]
11496    fn syntax(&self) -> &SyntaxNode {
11497        &self.syntax
11498    }
11499}
11500impl AstNode for Begin {
11501    #[inline]
11502    fn can_cast(kind: SyntaxKind) -> bool {
11503        kind == SyntaxKind::BEGIN
11504    }
11505    #[inline]
11506    fn cast(syntax: SyntaxNode) -> Option<Self> {
11507        if Self::can_cast(syntax.kind()) {
11508            Some(Self { syntax })
11509        } else {
11510            None
11511        }
11512    }
11513    #[inline]
11514    fn syntax(&self) -> &SyntaxNode {
11515        &self.syntax
11516    }
11517}
11518impl AstNode for BeginFuncOption {
11519    #[inline]
11520    fn can_cast(kind: SyntaxKind) -> bool {
11521        kind == SyntaxKind::BEGIN_FUNC_OPTION
11522    }
11523    #[inline]
11524    fn cast(syntax: SyntaxNode) -> Option<Self> {
11525        if Self::can_cast(syntax.kind()) {
11526            Some(Self { syntax })
11527        } else {
11528            None
11529        }
11530    }
11531    #[inline]
11532    fn syntax(&self) -> &SyntaxNode {
11533        &self.syntax
11534    }
11535}
11536impl AstNode for BetweenExpr {
11537    #[inline]
11538    fn can_cast(kind: SyntaxKind) -> bool {
11539        kind == SyntaxKind::BETWEEN_EXPR
11540    }
11541    #[inline]
11542    fn cast(syntax: SyntaxNode) -> Option<Self> {
11543        if Self::can_cast(syntax.kind()) {
11544            Some(Self { syntax })
11545        } else {
11546            None
11547        }
11548    }
11549    #[inline]
11550    fn syntax(&self) -> &SyntaxNode {
11551        &self.syntax
11552    }
11553}
11554impl AstNode for BinExpr {
11555    #[inline]
11556    fn can_cast(kind: SyntaxKind) -> bool {
11557        kind == SyntaxKind::BIN_EXPR
11558    }
11559    #[inline]
11560    fn cast(syntax: SyntaxNode) -> Option<Self> {
11561        if Self::can_cast(syntax.kind()) {
11562            Some(Self { syntax })
11563        } else {
11564            None
11565        }
11566    }
11567    #[inline]
11568    fn syntax(&self) -> &SyntaxNode {
11569        &self.syntax
11570    }
11571}
11572impl AstNode for BitType {
11573    #[inline]
11574    fn can_cast(kind: SyntaxKind) -> bool {
11575        kind == SyntaxKind::BIT_TYPE
11576    }
11577    #[inline]
11578    fn cast(syntax: SyntaxNode) -> Option<Self> {
11579        if Self::can_cast(syntax.kind()) {
11580            Some(Self { syntax })
11581        } else {
11582            None
11583        }
11584    }
11585    #[inline]
11586    fn syntax(&self) -> &SyntaxNode {
11587        &self.syntax
11588    }
11589}
11590impl AstNode for Call {
11591    #[inline]
11592    fn can_cast(kind: SyntaxKind) -> bool {
11593        kind == SyntaxKind::CALL
11594    }
11595    #[inline]
11596    fn cast(syntax: SyntaxNode) -> Option<Self> {
11597        if Self::can_cast(syntax.kind()) {
11598            Some(Self { syntax })
11599        } else {
11600            None
11601        }
11602    }
11603    #[inline]
11604    fn syntax(&self) -> &SyntaxNode {
11605        &self.syntax
11606    }
11607}
11608impl AstNode for CallExpr {
11609    #[inline]
11610    fn can_cast(kind: SyntaxKind) -> bool {
11611        kind == SyntaxKind::CALL_EXPR
11612    }
11613    #[inline]
11614    fn cast(syntax: SyntaxNode) -> Option<Self> {
11615        if Self::can_cast(syntax.kind()) {
11616            Some(Self { syntax })
11617        } else {
11618            None
11619        }
11620    }
11621    #[inline]
11622    fn syntax(&self) -> &SyntaxNode {
11623        &self.syntax
11624    }
11625}
11626impl AstNode for Cascade {
11627    #[inline]
11628    fn can_cast(kind: SyntaxKind) -> bool {
11629        kind == SyntaxKind::CASCADE
11630    }
11631    #[inline]
11632    fn cast(syntax: SyntaxNode) -> Option<Self> {
11633        if Self::can_cast(syntax.kind()) {
11634            Some(Self { syntax })
11635        } else {
11636            None
11637        }
11638    }
11639    #[inline]
11640    fn syntax(&self) -> &SyntaxNode {
11641        &self.syntax
11642    }
11643}
11644impl AstNode for CaseExpr {
11645    #[inline]
11646    fn can_cast(kind: SyntaxKind) -> bool {
11647        kind == SyntaxKind::CASE_EXPR
11648    }
11649    #[inline]
11650    fn cast(syntax: SyntaxNode) -> Option<Self> {
11651        if Self::can_cast(syntax.kind()) {
11652            Some(Self { syntax })
11653        } else {
11654            None
11655        }
11656    }
11657    #[inline]
11658    fn syntax(&self) -> &SyntaxNode {
11659        &self.syntax
11660    }
11661}
11662impl AstNode for CastExpr {
11663    #[inline]
11664    fn can_cast(kind: SyntaxKind) -> bool {
11665        kind == SyntaxKind::CAST_EXPR
11666    }
11667    #[inline]
11668    fn cast(syntax: SyntaxNode) -> Option<Self> {
11669        if Self::can_cast(syntax.kind()) {
11670            Some(Self { syntax })
11671        } else {
11672            None
11673        }
11674    }
11675    #[inline]
11676    fn syntax(&self) -> &SyntaxNode {
11677        &self.syntax
11678    }
11679}
11680impl AstNode for CharType {
11681    #[inline]
11682    fn can_cast(kind: SyntaxKind) -> bool {
11683        kind == SyntaxKind::CHAR_TYPE
11684    }
11685    #[inline]
11686    fn cast(syntax: SyntaxNode) -> Option<Self> {
11687        if Self::can_cast(syntax.kind()) {
11688            Some(Self { syntax })
11689        } else {
11690            None
11691        }
11692    }
11693    #[inline]
11694    fn syntax(&self) -> &SyntaxNode {
11695        &self.syntax
11696    }
11697}
11698impl AstNode for CheckConstraint {
11699    #[inline]
11700    fn can_cast(kind: SyntaxKind) -> bool {
11701        kind == SyntaxKind::CHECK_CONSTRAINT
11702    }
11703    #[inline]
11704    fn cast(syntax: SyntaxNode) -> Option<Self> {
11705        if Self::can_cast(syntax.kind()) {
11706            Some(Self { syntax })
11707        } else {
11708            None
11709        }
11710    }
11711    #[inline]
11712    fn syntax(&self) -> &SyntaxNode {
11713        &self.syntax
11714    }
11715}
11716impl AstNode for Checkpoint {
11717    #[inline]
11718    fn can_cast(kind: SyntaxKind) -> bool {
11719        kind == SyntaxKind::CHECKPOINT
11720    }
11721    #[inline]
11722    fn cast(syntax: SyntaxNode) -> Option<Self> {
11723        if Self::can_cast(syntax.kind()) {
11724            Some(Self { syntax })
11725        } else {
11726            None
11727        }
11728    }
11729    #[inline]
11730    fn syntax(&self) -> &SyntaxNode {
11731        &self.syntax
11732    }
11733}
11734impl AstNode for Close {
11735    #[inline]
11736    fn can_cast(kind: SyntaxKind) -> bool {
11737        kind == SyntaxKind::CLOSE
11738    }
11739    #[inline]
11740    fn cast(syntax: SyntaxNode) -> Option<Self> {
11741        if Self::can_cast(syntax.kind()) {
11742            Some(Self { syntax })
11743        } else {
11744            None
11745        }
11746    }
11747    #[inline]
11748    fn syntax(&self) -> &SyntaxNode {
11749        &self.syntax
11750    }
11751}
11752impl AstNode for Cluster {
11753    #[inline]
11754    fn can_cast(kind: SyntaxKind) -> bool {
11755        kind == SyntaxKind::CLUSTER
11756    }
11757    #[inline]
11758    fn cast(syntax: SyntaxNode) -> Option<Self> {
11759        if Self::can_cast(syntax.kind()) {
11760            Some(Self { syntax })
11761        } else {
11762            None
11763        }
11764    }
11765    #[inline]
11766    fn syntax(&self) -> &SyntaxNode {
11767        &self.syntax
11768    }
11769}
11770impl AstNode for ClusterOn {
11771    #[inline]
11772    fn can_cast(kind: SyntaxKind) -> bool {
11773        kind == SyntaxKind::CLUSTER_ON
11774    }
11775    #[inline]
11776    fn cast(syntax: SyntaxNode) -> Option<Self> {
11777        if Self::can_cast(syntax.kind()) {
11778            Some(Self { syntax })
11779        } else {
11780            None
11781        }
11782    }
11783    #[inline]
11784    fn syntax(&self) -> &SyntaxNode {
11785        &self.syntax
11786    }
11787}
11788impl AstNode for Collate {
11789    #[inline]
11790    fn can_cast(kind: SyntaxKind) -> bool {
11791        kind == SyntaxKind::COLLATE
11792    }
11793    #[inline]
11794    fn cast(syntax: SyntaxNode) -> Option<Self> {
11795        if Self::can_cast(syntax.kind()) {
11796            Some(Self { syntax })
11797        } else {
11798            None
11799        }
11800    }
11801    #[inline]
11802    fn syntax(&self) -> &SyntaxNode {
11803        &self.syntax
11804    }
11805}
11806impl AstNode for ColonColon {
11807    #[inline]
11808    fn can_cast(kind: SyntaxKind) -> bool {
11809        kind == SyntaxKind::COLON_COLON
11810    }
11811    #[inline]
11812    fn cast(syntax: SyntaxNode) -> Option<Self> {
11813        if Self::can_cast(syntax.kind()) {
11814            Some(Self { syntax })
11815        } else {
11816            None
11817        }
11818    }
11819    #[inline]
11820    fn syntax(&self) -> &SyntaxNode {
11821        &self.syntax
11822    }
11823}
11824impl AstNode for ColonEq {
11825    #[inline]
11826    fn can_cast(kind: SyntaxKind) -> bool {
11827        kind == SyntaxKind::COLON_EQ
11828    }
11829    #[inline]
11830    fn cast(syntax: SyntaxNode) -> Option<Self> {
11831        if Self::can_cast(syntax.kind()) {
11832            Some(Self { syntax })
11833        } else {
11834            None
11835        }
11836    }
11837    #[inline]
11838    fn syntax(&self) -> &SyntaxNode {
11839        &self.syntax
11840    }
11841}
11842impl AstNode for Column {
11843    #[inline]
11844    fn can_cast(kind: SyntaxKind) -> bool {
11845        kind == SyntaxKind::COLUMN
11846    }
11847    #[inline]
11848    fn cast(syntax: SyntaxNode) -> Option<Self> {
11849        if Self::can_cast(syntax.kind()) {
11850            Some(Self { syntax })
11851        } else {
11852            None
11853        }
11854    }
11855    #[inline]
11856    fn syntax(&self) -> &SyntaxNode {
11857        &self.syntax
11858    }
11859}
11860impl AstNode for ColumnList {
11861    #[inline]
11862    fn can_cast(kind: SyntaxKind) -> bool {
11863        kind == SyntaxKind::COLUMN_LIST
11864    }
11865    #[inline]
11866    fn cast(syntax: SyntaxNode) -> Option<Self> {
11867        if Self::can_cast(syntax.kind()) {
11868            Some(Self { syntax })
11869        } else {
11870            None
11871        }
11872    }
11873    #[inline]
11874    fn syntax(&self) -> &SyntaxNode {
11875        &self.syntax
11876    }
11877}
11878impl AstNode for CommentOn {
11879    #[inline]
11880    fn can_cast(kind: SyntaxKind) -> bool {
11881        kind == SyntaxKind::COMMENT_ON
11882    }
11883    #[inline]
11884    fn cast(syntax: SyntaxNode) -> Option<Self> {
11885        if Self::can_cast(syntax.kind()) {
11886            Some(Self { syntax })
11887        } else {
11888            None
11889        }
11890    }
11891    #[inline]
11892    fn syntax(&self) -> &SyntaxNode {
11893        &self.syntax
11894    }
11895}
11896impl AstNode for Commit {
11897    #[inline]
11898    fn can_cast(kind: SyntaxKind) -> bool {
11899        kind == SyntaxKind::COMMIT
11900    }
11901    #[inline]
11902    fn cast(syntax: SyntaxNode) -> Option<Self> {
11903        if Self::can_cast(syntax.kind()) {
11904            Some(Self { syntax })
11905        } else {
11906            None
11907        }
11908    }
11909    #[inline]
11910    fn syntax(&self) -> &SyntaxNode {
11911        &self.syntax
11912    }
11913}
11914impl AstNode for CompoundSelect {
11915    #[inline]
11916    fn can_cast(kind: SyntaxKind) -> bool {
11917        kind == SyntaxKind::COMPOUND_SELECT
11918    }
11919    #[inline]
11920    fn cast(syntax: SyntaxNode) -> Option<Self> {
11921        if Self::can_cast(syntax.kind()) {
11922            Some(Self { syntax })
11923        } else {
11924            None
11925        }
11926    }
11927    #[inline]
11928    fn syntax(&self) -> &SyntaxNode {
11929        &self.syntax
11930    }
11931}
11932impl AstNode for CompressionMethod {
11933    #[inline]
11934    fn can_cast(kind: SyntaxKind) -> bool {
11935        kind == SyntaxKind::COMPRESSION_METHOD
11936    }
11937    #[inline]
11938    fn cast(syntax: SyntaxNode) -> Option<Self> {
11939        if Self::can_cast(syntax.kind()) {
11940            Some(Self { syntax })
11941        } else {
11942            None
11943        }
11944    }
11945    #[inline]
11946    fn syntax(&self) -> &SyntaxNode {
11947        &self.syntax
11948    }
11949}
11950impl AstNode for ConstraintExclusions {
11951    #[inline]
11952    fn can_cast(kind: SyntaxKind) -> bool {
11953        kind == SyntaxKind::CONSTRAINT_EXCLUSIONS
11954    }
11955    #[inline]
11956    fn cast(syntax: SyntaxNode) -> Option<Self> {
11957        if Self::can_cast(syntax.kind()) {
11958            Some(Self { syntax })
11959        } else {
11960            None
11961        }
11962    }
11963    #[inline]
11964    fn syntax(&self) -> &SyntaxNode {
11965        &self.syntax
11966    }
11967}
11968impl AstNode for ConstraintIncludeClause {
11969    #[inline]
11970    fn can_cast(kind: SyntaxKind) -> bool {
11971        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
11972    }
11973    #[inline]
11974    fn cast(syntax: SyntaxNode) -> Option<Self> {
11975        if Self::can_cast(syntax.kind()) {
11976            Some(Self { syntax })
11977        } else {
11978            None
11979        }
11980    }
11981    #[inline]
11982    fn syntax(&self) -> &SyntaxNode {
11983        &self.syntax
11984    }
11985}
11986impl AstNode for ConstraintIndexMethod {
11987    #[inline]
11988    fn can_cast(kind: SyntaxKind) -> bool {
11989        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
11990    }
11991    #[inline]
11992    fn cast(syntax: SyntaxNode) -> Option<Self> {
11993        if Self::can_cast(syntax.kind()) {
11994            Some(Self { syntax })
11995        } else {
11996            None
11997        }
11998    }
11999    #[inline]
12000    fn syntax(&self) -> &SyntaxNode {
12001        &self.syntax
12002    }
12003}
12004impl AstNode for ConstraintIndexTablespace {
12005    #[inline]
12006    fn can_cast(kind: SyntaxKind) -> bool {
12007        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
12008    }
12009    #[inline]
12010    fn cast(syntax: SyntaxNode) -> Option<Self> {
12011        if Self::can_cast(syntax.kind()) {
12012            Some(Self { syntax })
12013        } else {
12014            None
12015        }
12016    }
12017    #[inline]
12018    fn syntax(&self) -> &SyntaxNode {
12019        &self.syntax
12020    }
12021}
12022impl AstNode for ConstraintWhereClause {
12023    #[inline]
12024    fn can_cast(kind: SyntaxKind) -> bool {
12025        kind == SyntaxKind::CONSTRAINT_WHERE_CLAUSE
12026    }
12027    #[inline]
12028    fn cast(syntax: SyntaxNode) -> Option<Self> {
12029        if Self::can_cast(syntax.kind()) {
12030            Some(Self { syntax })
12031        } else {
12032            None
12033        }
12034    }
12035    #[inline]
12036    fn syntax(&self) -> &SyntaxNode {
12037        &self.syntax
12038    }
12039}
12040impl AstNode for Copy {
12041    #[inline]
12042    fn can_cast(kind: SyntaxKind) -> bool {
12043        kind == SyntaxKind::COPY
12044    }
12045    #[inline]
12046    fn cast(syntax: SyntaxNode) -> Option<Self> {
12047        if Self::can_cast(syntax.kind()) {
12048            Some(Self { syntax })
12049        } else {
12050            None
12051        }
12052    }
12053    #[inline]
12054    fn syntax(&self) -> &SyntaxNode {
12055        &self.syntax
12056    }
12057}
12058impl AstNode for CostFuncOption {
12059    #[inline]
12060    fn can_cast(kind: SyntaxKind) -> bool {
12061        kind == SyntaxKind::COST_FUNC_OPTION
12062    }
12063    #[inline]
12064    fn cast(syntax: SyntaxNode) -> Option<Self> {
12065        if Self::can_cast(syntax.kind()) {
12066            Some(Self { syntax })
12067        } else {
12068            None
12069        }
12070    }
12071    #[inline]
12072    fn syntax(&self) -> &SyntaxNode {
12073        &self.syntax
12074    }
12075}
12076impl AstNode for CreateAccessMethod {
12077    #[inline]
12078    fn can_cast(kind: SyntaxKind) -> bool {
12079        kind == SyntaxKind::CREATE_ACCESS_METHOD
12080    }
12081    #[inline]
12082    fn cast(syntax: SyntaxNode) -> Option<Self> {
12083        if Self::can_cast(syntax.kind()) {
12084            Some(Self { syntax })
12085        } else {
12086            None
12087        }
12088    }
12089    #[inline]
12090    fn syntax(&self) -> &SyntaxNode {
12091        &self.syntax
12092    }
12093}
12094impl AstNode for CreateAggregate {
12095    #[inline]
12096    fn can_cast(kind: SyntaxKind) -> bool {
12097        kind == SyntaxKind::CREATE_AGGREGATE
12098    }
12099    #[inline]
12100    fn cast(syntax: SyntaxNode) -> Option<Self> {
12101        if Self::can_cast(syntax.kind()) {
12102            Some(Self { syntax })
12103        } else {
12104            None
12105        }
12106    }
12107    #[inline]
12108    fn syntax(&self) -> &SyntaxNode {
12109        &self.syntax
12110    }
12111}
12112impl AstNode for CreateCast {
12113    #[inline]
12114    fn can_cast(kind: SyntaxKind) -> bool {
12115        kind == SyntaxKind::CREATE_CAST
12116    }
12117    #[inline]
12118    fn cast(syntax: SyntaxNode) -> Option<Self> {
12119        if Self::can_cast(syntax.kind()) {
12120            Some(Self { syntax })
12121        } else {
12122            None
12123        }
12124    }
12125    #[inline]
12126    fn syntax(&self) -> &SyntaxNode {
12127        &self.syntax
12128    }
12129}
12130impl AstNode for CreateCollation {
12131    #[inline]
12132    fn can_cast(kind: SyntaxKind) -> bool {
12133        kind == SyntaxKind::CREATE_COLLATION
12134    }
12135    #[inline]
12136    fn cast(syntax: SyntaxNode) -> Option<Self> {
12137        if Self::can_cast(syntax.kind()) {
12138            Some(Self { syntax })
12139        } else {
12140            None
12141        }
12142    }
12143    #[inline]
12144    fn syntax(&self) -> &SyntaxNode {
12145        &self.syntax
12146    }
12147}
12148impl AstNode for CreateConversion {
12149    #[inline]
12150    fn can_cast(kind: SyntaxKind) -> bool {
12151        kind == SyntaxKind::CREATE_CONVERSION
12152    }
12153    #[inline]
12154    fn cast(syntax: SyntaxNode) -> Option<Self> {
12155        if Self::can_cast(syntax.kind()) {
12156            Some(Self { syntax })
12157        } else {
12158            None
12159        }
12160    }
12161    #[inline]
12162    fn syntax(&self) -> &SyntaxNode {
12163        &self.syntax
12164    }
12165}
12166impl AstNode for CreateDatabase {
12167    #[inline]
12168    fn can_cast(kind: SyntaxKind) -> bool {
12169        kind == SyntaxKind::CREATE_DATABASE
12170    }
12171    #[inline]
12172    fn cast(syntax: SyntaxNode) -> Option<Self> {
12173        if Self::can_cast(syntax.kind()) {
12174            Some(Self { syntax })
12175        } else {
12176            None
12177        }
12178    }
12179    #[inline]
12180    fn syntax(&self) -> &SyntaxNode {
12181        &self.syntax
12182    }
12183}
12184impl AstNode for CreateDomain {
12185    #[inline]
12186    fn can_cast(kind: SyntaxKind) -> bool {
12187        kind == SyntaxKind::CREATE_DOMAIN
12188    }
12189    #[inline]
12190    fn cast(syntax: SyntaxNode) -> Option<Self> {
12191        if Self::can_cast(syntax.kind()) {
12192            Some(Self { syntax })
12193        } else {
12194            None
12195        }
12196    }
12197    #[inline]
12198    fn syntax(&self) -> &SyntaxNode {
12199        &self.syntax
12200    }
12201}
12202impl AstNode for CreateEventTrigger {
12203    #[inline]
12204    fn can_cast(kind: SyntaxKind) -> bool {
12205        kind == SyntaxKind::CREATE_EVENT_TRIGGER
12206    }
12207    #[inline]
12208    fn cast(syntax: SyntaxNode) -> Option<Self> {
12209        if Self::can_cast(syntax.kind()) {
12210            Some(Self { syntax })
12211        } else {
12212            None
12213        }
12214    }
12215    #[inline]
12216    fn syntax(&self) -> &SyntaxNode {
12217        &self.syntax
12218    }
12219}
12220impl AstNode for CreateExtension {
12221    #[inline]
12222    fn can_cast(kind: SyntaxKind) -> bool {
12223        kind == SyntaxKind::CREATE_EXTENSION
12224    }
12225    #[inline]
12226    fn cast(syntax: SyntaxNode) -> Option<Self> {
12227        if Self::can_cast(syntax.kind()) {
12228            Some(Self { syntax })
12229        } else {
12230            None
12231        }
12232    }
12233    #[inline]
12234    fn syntax(&self) -> &SyntaxNode {
12235        &self.syntax
12236    }
12237}
12238impl AstNode for CreateForeignDataWrapper {
12239    #[inline]
12240    fn can_cast(kind: SyntaxKind) -> bool {
12241        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
12242    }
12243    #[inline]
12244    fn cast(syntax: SyntaxNode) -> Option<Self> {
12245        if Self::can_cast(syntax.kind()) {
12246            Some(Self { syntax })
12247        } else {
12248            None
12249        }
12250    }
12251    #[inline]
12252    fn syntax(&self) -> &SyntaxNode {
12253        &self.syntax
12254    }
12255}
12256impl AstNode for CreateForeignTable {
12257    #[inline]
12258    fn can_cast(kind: SyntaxKind) -> bool {
12259        kind == SyntaxKind::CREATE_FOREIGN_TABLE
12260    }
12261    #[inline]
12262    fn cast(syntax: SyntaxNode) -> Option<Self> {
12263        if Self::can_cast(syntax.kind()) {
12264            Some(Self { syntax })
12265        } else {
12266            None
12267        }
12268    }
12269    #[inline]
12270    fn syntax(&self) -> &SyntaxNode {
12271        &self.syntax
12272    }
12273}
12274impl AstNode for CreateFunction {
12275    #[inline]
12276    fn can_cast(kind: SyntaxKind) -> bool {
12277        kind == SyntaxKind::CREATE_FUNCTION
12278    }
12279    #[inline]
12280    fn cast(syntax: SyntaxNode) -> Option<Self> {
12281        if Self::can_cast(syntax.kind()) {
12282            Some(Self { syntax })
12283        } else {
12284            None
12285        }
12286    }
12287    #[inline]
12288    fn syntax(&self) -> &SyntaxNode {
12289        &self.syntax
12290    }
12291}
12292impl AstNode for CreateGroup {
12293    #[inline]
12294    fn can_cast(kind: SyntaxKind) -> bool {
12295        kind == SyntaxKind::CREATE_GROUP
12296    }
12297    #[inline]
12298    fn cast(syntax: SyntaxNode) -> Option<Self> {
12299        if Self::can_cast(syntax.kind()) {
12300            Some(Self { syntax })
12301        } else {
12302            None
12303        }
12304    }
12305    #[inline]
12306    fn syntax(&self) -> &SyntaxNode {
12307        &self.syntax
12308    }
12309}
12310impl AstNode for CreateIndex {
12311    #[inline]
12312    fn can_cast(kind: SyntaxKind) -> bool {
12313        kind == SyntaxKind::CREATE_INDEX
12314    }
12315    #[inline]
12316    fn cast(syntax: SyntaxNode) -> Option<Self> {
12317        if Self::can_cast(syntax.kind()) {
12318            Some(Self { syntax })
12319        } else {
12320            None
12321        }
12322    }
12323    #[inline]
12324    fn syntax(&self) -> &SyntaxNode {
12325        &self.syntax
12326    }
12327}
12328impl AstNode for CreateLanguage {
12329    #[inline]
12330    fn can_cast(kind: SyntaxKind) -> bool {
12331        kind == SyntaxKind::CREATE_LANGUAGE
12332    }
12333    #[inline]
12334    fn cast(syntax: SyntaxNode) -> Option<Self> {
12335        if Self::can_cast(syntax.kind()) {
12336            Some(Self { syntax })
12337        } else {
12338            None
12339        }
12340    }
12341    #[inline]
12342    fn syntax(&self) -> &SyntaxNode {
12343        &self.syntax
12344    }
12345}
12346impl AstNode for CreateMaterializedView {
12347    #[inline]
12348    fn can_cast(kind: SyntaxKind) -> bool {
12349        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
12350    }
12351    #[inline]
12352    fn cast(syntax: SyntaxNode) -> Option<Self> {
12353        if Self::can_cast(syntax.kind()) {
12354            Some(Self { syntax })
12355        } else {
12356            None
12357        }
12358    }
12359    #[inline]
12360    fn syntax(&self) -> &SyntaxNode {
12361        &self.syntax
12362    }
12363}
12364impl AstNode for CreateOperator {
12365    #[inline]
12366    fn can_cast(kind: SyntaxKind) -> bool {
12367        kind == SyntaxKind::CREATE_OPERATOR
12368    }
12369    #[inline]
12370    fn cast(syntax: SyntaxNode) -> Option<Self> {
12371        if Self::can_cast(syntax.kind()) {
12372            Some(Self { syntax })
12373        } else {
12374            None
12375        }
12376    }
12377    #[inline]
12378    fn syntax(&self) -> &SyntaxNode {
12379        &self.syntax
12380    }
12381}
12382impl AstNode for CreateOperatorClass {
12383    #[inline]
12384    fn can_cast(kind: SyntaxKind) -> bool {
12385        kind == SyntaxKind::CREATE_OPERATOR_CLASS
12386    }
12387    #[inline]
12388    fn cast(syntax: SyntaxNode) -> Option<Self> {
12389        if Self::can_cast(syntax.kind()) {
12390            Some(Self { syntax })
12391        } else {
12392            None
12393        }
12394    }
12395    #[inline]
12396    fn syntax(&self) -> &SyntaxNode {
12397        &self.syntax
12398    }
12399}
12400impl AstNode for CreateOperatorFamily {
12401    #[inline]
12402    fn can_cast(kind: SyntaxKind) -> bool {
12403        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
12404    }
12405    #[inline]
12406    fn cast(syntax: SyntaxNode) -> Option<Self> {
12407        if Self::can_cast(syntax.kind()) {
12408            Some(Self { syntax })
12409        } else {
12410            None
12411        }
12412    }
12413    #[inline]
12414    fn syntax(&self) -> &SyntaxNode {
12415        &self.syntax
12416    }
12417}
12418impl AstNode for CreatePolicy {
12419    #[inline]
12420    fn can_cast(kind: SyntaxKind) -> bool {
12421        kind == SyntaxKind::CREATE_POLICY
12422    }
12423    #[inline]
12424    fn cast(syntax: SyntaxNode) -> Option<Self> {
12425        if Self::can_cast(syntax.kind()) {
12426            Some(Self { syntax })
12427        } else {
12428            None
12429        }
12430    }
12431    #[inline]
12432    fn syntax(&self) -> &SyntaxNode {
12433        &self.syntax
12434    }
12435}
12436impl AstNode for CreateProcedure {
12437    #[inline]
12438    fn can_cast(kind: SyntaxKind) -> bool {
12439        kind == SyntaxKind::CREATE_PROCEDURE
12440    }
12441    #[inline]
12442    fn cast(syntax: SyntaxNode) -> Option<Self> {
12443        if Self::can_cast(syntax.kind()) {
12444            Some(Self { syntax })
12445        } else {
12446            None
12447        }
12448    }
12449    #[inline]
12450    fn syntax(&self) -> &SyntaxNode {
12451        &self.syntax
12452    }
12453}
12454impl AstNode for CreatePublication {
12455    #[inline]
12456    fn can_cast(kind: SyntaxKind) -> bool {
12457        kind == SyntaxKind::CREATE_PUBLICATION
12458    }
12459    #[inline]
12460    fn cast(syntax: SyntaxNode) -> Option<Self> {
12461        if Self::can_cast(syntax.kind()) {
12462            Some(Self { syntax })
12463        } else {
12464            None
12465        }
12466    }
12467    #[inline]
12468    fn syntax(&self) -> &SyntaxNode {
12469        &self.syntax
12470    }
12471}
12472impl AstNode for CreateRole {
12473    #[inline]
12474    fn can_cast(kind: SyntaxKind) -> bool {
12475        kind == SyntaxKind::CREATE_ROLE
12476    }
12477    #[inline]
12478    fn cast(syntax: SyntaxNode) -> Option<Self> {
12479        if Self::can_cast(syntax.kind()) {
12480            Some(Self { syntax })
12481        } else {
12482            None
12483        }
12484    }
12485    #[inline]
12486    fn syntax(&self) -> &SyntaxNode {
12487        &self.syntax
12488    }
12489}
12490impl AstNode for CreateRule {
12491    #[inline]
12492    fn can_cast(kind: SyntaxKind) -> bool {
12493        kind == SyntaxKind::CREATE_RULE
12494    }
12495    #[inline]
12496    fn cast(syntax: SyntaxNode) -> Option<Self> {
12497        if Self::can_cast(syntax.kind()) {
12498            Some(Self { syntax })
12499        } else {
12500            None
12501        }
12502    }
12503    #[inline]
12504    fn syntax(&self) -> &SyntaxNode {
12505        &self.syntax
12506    }
12507}
12508impl AstNode for CreateSchema {
12509    #[inline]
12510    fn can_cast(kind: SyntaxKind) -> bool {
12511        kind == SyntaxKind::CREATE_SCHEMA
12512    }
12513    #[inline]
12514    fn cast(syntax: SyntaxNode) -> Option<Self> {
12515        if Self::can_cast(syntax.kind()) {
12516            Some(Self { syntax })
12517        } else {
12518            None
12519        }
12520    }
12521    #[inline]
12522    fn syntax(&self) -> &SyntaxNode {
12523        &self.syntax
12524    }
12525}
12526impl AstNode for CreateSequence {
12527    #[inline]
12528    fn can_cast(kind: SyntaxKind) -> bool {
12529        kind == SyntaxKind::CREATE_SEQUENCE
12530    }
12531    #[inline]
12532    fn cast(syntax: SyntaxNode) -> Option<Self> {
12533        if Self::can_cast(syntax.kind()) {
12534            Some(Self { syntax })
12535        } else {
12536            None
12537        }
12538    }
12539    #[inline]
12540    fn syntax(&self) -> &SyntaxNode {
12541        &self.syntax
12542    }
12543}
12544impl AstNode for CreateServer {
12545    #[inline]
12546    fn can_cast(kind: SyntaxKind) -> bool {
12547        kind == SyntaxKind::CREATE_SERVER
12548    }
12549    #[inline]
12550    fn cast(syntax: SyntaxNode) -> Option<Self> {
12551        if Self::can_cast(syntax.kind()) {
12552            Some(Self { syntax })
12553        } else {
12554            None
12555        }
12556    }
12557    #[inline]
12558    fn syntax(&self) -> &SyntaxNode {
12559        &self.syntax
12560    }
12561}
12562impl AstNode for CreateStatistics {
12563    #[inline]
12564    fn can_cast(kind: SyntaxKind) -> bool {
12565        kind == SyntaxKind::CREATE_STATISTICS
12566    }
12567    #[inline]
12568    fn cast(syntax: SyntaxNode) -> Option<Self> {
12569        if Self::can_cast(syntax.kind()) {
12570            Some(Self { syntax })
12571        } else {
12572            None
12573        }
12574    }
12575    #[inline]
12576    fn syntax(&self) -> &SyntaxNode {
12577        &self.syntax
12578    }
12579}
12580impl AstNode for CreateSubscription {
12581    #[inline]
12582    fn can_cast(kind: SyntaxKind) -> bool {
12583        kind == SyntaxKind::CREATE_SUBSCRIPTION
12584    }
12585    #[inline]
12586    fn cast(syntax: SyntaxNode) -> Option<Self> {
12587        if Self::can_cast(syntax.kind()) {
12588            Some(Self { syntax })
12589        } else {
12590            None
12591        }
12592    }
12593    #[inline]
12594    fn syntax(&self) -> &SyntaxNode {
12595        &self.syntax
12596    }
12597}
12598impl AstNode for CreateTable {
12599    #[inline]
12600    fn can_cast(kind: SyntaxKind) -> bool {
12601        kind == SyntaxKind::CREATE_TABLE
12602    }
12603    #[inline]
12604    fn cast(syntax: SyntaxNode) -> Option<Self> {
12605        if Self::can_cast(syntax.kind()) {
12606            Some(Self { syntax })
12607        } else {
12608            None
12609        }
12610    }
12611    #[inline]
12612    fn syntax(&self) -> &SyntaxNode {
12613        &self.syntax
12614    }
12615}
12616impl AstNode for CreateTableAs {
12617    #[inline]
12618    fn can_cast(kind: SyntaxKind) -> bool {
12619        kind == SyntaxKind::CREATE_TABLE_AS
12620    }
12621    #[inline]
12622    fn cast(syntax: SyntaxNode) -> Option<Self> {
12623        if Self::can_cast(syntax.kind()) {
12624            Some(Self { syntax })
12625        } else {
12626            None
12627        }
12628    }
12629    #[inline]
12630    fn syntax(&self) -> &SyntaxNode {
12631        &self.syntax
12632    }
12633}
12634impl AstNode for CreateTablespace {
12635    #[inline]
12636    fn can_cast(kind: SyntaxKind) -> bool {
12637        kind == SyntaxKind::CREATE_TABLESPACE
12638    }
12639    #[inline]
12640    fn cast(syntax: SyntaxNode) -> Option<Self> {
12641        if Self::can_cast(syntax.kind()) {
12642            Some(Self { syntax })
12643        } else {
12644            None
12645        }
12646    }
12647    #[inline]
12648    fn syntax(&self) -> &SyntaxNode {
12649        &self.syntax
12650    }
12651}
12652impl AstNode for CreateTextSearchConfiguration {
12653    #[inline]
12654    fn can_cast(kind: SyntaxKind) -> bool {
12655        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
12656    }
12657    #[inline]
12658    fn cast(syntax: SyntaxNode) -> Option<Self> {
12659        if Self::can_cast(syntax.kind()) {
12660            Some(Self { syntax })
12661        } else {
12662            None
12663        }
12664    }
12665    #[inline]
12666    fn syntax(&self) -> &SyntaxNode {
12667        &self.syntax
12668    }
12669}
12670impl AstNode for CreateTextSearchDictionary {
12671    #[inline]
12672    fn can_cast(kind: SyntaxKind) -> bool {
12673        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
12674    }
12675    #[inline]
12676    fn cast(syntax: SyntaxNode) -> Option<Self> {
12677        if Self::can_cast(syntax.kind()) {
12678            Some(Self { syntax })
12679        } else {
12680            None
12681        }
12682    }
12683    #[inline]
12684    fn syntax(&self) -> &SyntaxNode {
12685        &self.syntax
12686    }
12687}
12688impl AstNode for CreateTextSearchParser {
12689    #[inline]
12690    fn can_cast(kind: SyntaxKind) -> bool {
12691        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
12692    }
12693    #[inline]
12694    fn cast(syntax: SyntaxNode) -> Option<Self> {
12695        if Self::can_cast(syntax.kind()) {
12696            Some(Self { syntax })
12697        } else {
12698            None
12699        }
12700    }
12701    #[inline]
12702    fn syntax(&self) -> &SyntaxNode {
12703        &self.syntax
12704    }
12705}
12706impl AstNode for CreateTextSearchTemplate {
12707    #[inline]
12708    fn can_cast(kind: SyntaxKind) -> bool {
12709        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
12710    }
12711    #[inline]
12712    fn cast(syntax: SyntaxNode) -> Option<Self> {
12713        if Self::can_cast(syntax.kind()) {
12714            Some(Self { syntax })
12715        } else {
12716            None
12717        }
12718    }
12719    #[inline]
12720    fn syntax(&self) -> &SyntaxNode {
12721        &self.syntax
12722    }
12723}
12724impl AstNode for CreateTransform {
12725    #[inline]
12726    fn can_cast(kind: SyntaxKind) -> bool {
12727        kind == SyntaxKind::CREATE_TRANSFORM
12728    }
12729    #[inline]
12730    fn cast(syntax: SyntaxNode) -> Option<Self> {
12731        if Self::can_cast(syntax.kind()) {
12732            Some(Self { syntax })
12733        } else {
12734            None
12735        }
12736    }
12737    #[inline]
12738    fn syntax(&self) -> &SyntaxNode {
12739        &self.syntax
12740    }
12741}
12742impl AstNode for CreateTrigger {
12743    #[inline]
12744    fn can_cast(kind: SyntaxKind) -> bool {
12745        kind == SyntaxKind::CREATE_TRIGGER
12746    }
12747    #[inline]
12748    fn cast(syntax: SyntaxNode) -> Option<Self> {
12749        if Self::can_cast(syntax.kind()) {
12750            Some(Self { syntax })
12751        } else {
12752            None
12753        }
12754    }
12755    #[inline]
12756    fn syntax(&self) -> &SyntaxNode {
12757        &self.syntax
12758    }
12759}
12760impl AstNode for CreateType {
12761    #[inline]
12762    fn can_cast(kind: SyntaxKind) -> bool {
12763        kind == SyntaxKind::CREATE_TYPE
12764    }
12765    #[inline]
12766    fn cast(syntax: SyntaxNode) -> Option<Self> {
12767        if Self::can_cast(syntax.kind()) {
12768            Some(Self { syntax })
12769        } else {
12770            None
12771        }
12772    }
12773    #[inline]
12774    fn syntax(&self) -> &SyntaxNode {
12775        &self.syntax
12776    }
12777}
12778impl AstNode for CreateUser {
12779    #[inline]
12780    fn can_cast(kind: SyntaxKind) -> bool {
12781        kind == SyntaxKind::CREATE_USER
12782    }
12783    #[inline]
12784    fn cast(syntax: SyntaxNode) -> Option<Self> {
12785        if Self::can_cast(syntax.kind()) {
12786            Some(Self { syntax })
12787        } else {
12788            None
12789        }
12790    }
12791    #[inline]
12792    fn syntax(&self) -> &SyntaxNode {
12793        &self.syntax
12794    }
12795}
12796impl AstNode for CreateUserMapping {
12797    #[inline]
12798    fn can_cast(kind: SyntaxKind) -> bool {
12799        kind == SyntaxKind::CREATE_USER_MAPPING
12800    }
12801    #[inline]
12802    fn cast(syntax: SyntaxNode) -> Option<Self> {
12803        if Self::can_cast(syntax.kind()) {
12804            Some(Self { syntax })
12805        } else {
12806            None
12807        }
12808    }
12809    #[inline]
12810    fn syntax(&self) -> &SyntaxNode {
12811        &self.syntax
12812    }
12813}
12814impl AstNode for CreateView {
12815    #[inline]
12816    fn can_cast(kind: SyntaxKind) -> bool {
12817        kind == SyntaxKind::CREATE_VIEW
12818    }
12819    #[inline]
12820    fn cast(syntax: SyntaxNode) -> Option<Self> {
12821        if Self::can_cast(syntax.kind()) {
12822            Some(Self { syntax })
12823        } else {
12824            None
12825        }
12826    }
12827    #[inline]
12828    fn syntax(&self) -> &SyntaxNode {
12829        &self.syntax
12830    }
12831}
12832impl AstNode for CustomOp {
12833    #[inline]
12834    fn can_cast(kind: SyntaxKind) -> bool {
12835        kind == SyntaxKind::CUSTOM_OP
12836    }
12837    #[inline]
12838    fn cast(syntax: SyntaxNode) -> Option<Self> {
12839        if Self::can_cast(syntax.kind()) {
12840            Some(Self { syntax })
12841        } else {
12842            None
12843        }
12844    }
12845    #[inline]
12846    fn syntax(&self) -> &SyntaxNode {
12847        &self.syntax
12848    }
12849}
12850impl AstNode for Deallocate {
12851    #[inline]
12852    fn can_cast(kind: SyntaxKind) -> bool {
12853        kind == SyntaxKind::DEALLOCATE
12854    }
12855    #[inline]
12856    fn cast(syntax: SyntaxNode) -> Option<Self> {
12857        if Self::can_cast(syntax.kind()) {
12858            Some(Self { syntax })
12859        } else {
12860            None
12861        }
12862    }
12863    #[inline]
12864    fn syntax(&self) -> &SyntaxNode {
12865        &self.syntax
12866    }
12867}
12868impl AstNode for Declare {
12869    #[inline]
12870    fn can_cast(kind: SyntaxKind) -> bool {
12871        kind == SyntaxKind::DECLARE
12872    }
12873    #[inline]
12874    fn cast(syntax: SyntaxNode) -> Option<Self> {
12875        if Self::can_cast(syntax.kind()) {
12876            Some(Self { syntax })
12877        } else {
12878            None
12879        }
12880    }
12881    #[inline]
12882    fn syntax(&self) -> &SyntaxNode {
12883        &self.syntax
12884    }
12885}
12886impl AstNode for DefaultConstraint {
12887    #[inline]
12888    fn can_cast(kind: SyntaxKind) -> bool {
12889        kind == SyntaxKind::DEFAULT_CONSTRAINT
12890    }
12891    #[inline]
12892    fn cast(syntax: SyntaxNode) -> Option<Self> {
12893        if Self::can_cast(syntax.kind()) {
12894            Some(Self { syntax })
12895        } else {
12896            None
12897        }
12898    }
12899    #[inline]
12900    fn syntax(&self) -> &SyntaxNode {
12901        &self.syntax
12902    }
12903}
12904impl AstNode for Deferrable {
12905    #[inline]
12906    fn can_cast(kind: SyntaxKind) -> bool {
12907        kind == SyntaxKind::DEFERRABLE
12908    }
12909    #[inline]
12910    fn cast(syntax: SyntaxNode) -> Option<Self> {
12911        if Self::can_cast(syntax.kind()) {
12912            Some(Self { syntax })
12913        } else {
12914            None
12915        }
12916    }
12917    #[inline]
12918    fn syntax(&self) -> &SyntaxNode {
12919        &self.syntax
12920    }
12921}
12922impl AstNode for DeferrableConstraintOption {
12923    #[inline]
12924    fn can_cast(kind: SyntaxKind) -> bool {
12925        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
12926    }
12927    #[inline]
12928    fn cast(syntax: SyntaxNode) -> Option<Self> {
12929        if Self::can_cast(syntax.kind()) {
12930            Some(Self { syntax })
12931        } else {
12932            None
12933        }
12934    }
12935    #[inline]
12936    fn syntax(&self) -> &SyntaxNode {
12937        &self.syntax
12938    }
12939}
12940impl AstNode for Delete {
12941    #[inline]
12942    fn can_cast(kind: SyntaxKind) -> bool {
12943        kind == SyntaxKind::DELETE
12944    }
12945    #[inline]
12946    fn cast(syntax: SyntaxNode) -> Option<Self> {
12947        if Self::can_cast(syntax.kind()) {
12948            Some(Self { syntax })
12949        } else {
12950            None
12951        }
12952    }
12953    #[inline]
12954    fn syntax(&self) -> &SyntaxNode {
12955        &self.syntax
12956    }
12957}
12958impl AstNode for DeleteRows {
12959    #[inline]
12960    fn can_cast(kind: SyntaxKind) -> bool {
12961        kind == SyntaxKind::DELETE_ROWS
12962    }
12963    #[inline]
12964    fn cast(syntax: SyntaxNode) -> Option<Self> {
12965        if Self::can_cast(syntax.kind()) {
12966            Some(Self { syntax })
12967        } else {
12968            None
12969        }
12970    }
12971    #[inline]
12972    fn syntax(&self) -> &SyntaxNode {
12973        &self.syntax
12974    }
12975}
12976impl AstNode for DetachPartition {
12977    #[inline]
12978    fn can_cast(kind: SyntaxKind) -> bool {
12979        kind == SyntaxKind::DETACH_PARTITION
12980    }
12981    #[inline]
12982    fn cast(syntax: SyntaxNode) -> Option<Self> {
12983        if Self::can_cast(syntax.kind()) {
12984            Some(Self { syntax })
12985        } else {
12986            None
12987        }
12988    }
12989    #[inline]
12990    fn syntax(&self) -> &SyntaxNode {
12991        &self.syntax
12992    }
12993}
12994impl AstNode for DisableRls {
12995    #[inline]
12996    fn can_cast(kind: SyntaxKind) -> bool {
12997        kind == SyntaxKind::DISABLE_RLS
12998    }
12999    #[inline]
13000    fn cast(syntax: SyntaxNode) -> Option<Self> {
13001        if Self::can_cast(syntax.kind()) {
13002            Some(Self { syntax })
13003        } else {
13004            None
13005        }
13006    }
13007    #[inline]
13008    fn syntax(&self) -> &SyntaxNode {
13009        &self.syntax
13010    }
13011}
13012impl AstNode for DisableRule {
13013    #[inline]
13014    fn can_cast(kind: SyntaxKind) -> bool {
13015        kind == SyntaxKind::DISABLE_RULE
13016    }
13017    #[inline]
13018    fn cast(syntax: SyntaxNode) -> Option<Self> {
13019        if Self::can_cast(syntax.kind()) {
13020            Some(Self { syntax })
13021        } else {
13022            None
13023        }
13024    }
13025    #[inline]
13026    fn syntax(&self) -> &SyntaxNode {
13027        &self.syntax
13028    }
13029}
13030impl AstNode for DisableTrigger {
13031    #[inline]
13032    fn can_cast(kind: SyntaxKind) -> bool {
13033        kind == SyntaxKind::DISABLE_TRIGGER
13034    }
13035    #[inline]
13036    fn cast(syntax: SyntaxNode) -> Option<Self> {
13037        if Self::can_cast(syntax.kind()) {
13038            Some(Self { syntax })
13039        } else {
13040            None
13041        }
13042    }
13043    #[inline]
13044    fn syntax(&self) -> &SyntaxNode {
13045        &self.syntax
13046    }
13047}
13048impl AstNode for Discard {
13049    #[inline]
13050    fn can_cast(kind: SyntaxKind) -> bool {
13051        kind == SyntaxKind::DISCARD
13052    }
13053    #[inline]
13054    fn cast(syntax: SyntaxNode) -> Option<Self> {
13055        if Self::can_cast(syntax.kind()) {
13056            Some(Self { syntax })
13057        } else {
13058            None
13059        }
13060    }
13061    #[inline]
13062    fn syntax(&self) -> &SyntaxNode {
13063        &self.syntax
13064    }
13065}
13066impl AstNode for DistinctClause {
13067    #[inline]
13068    fn can_cast(kind: SyntaxKind) -> bool {
13069        kind == SyntaxKind::DISTINCT_CLAUSE
13070    }
13071    #[inline]
13072    fn cast(syntax: SyntaxNode) -> Option<Self> {
13073        if Self::can_cast(syntax.kind()) {
13074            Some(Self { syntax })
13075        } else {
13076            None
13077        }
13078    }
13079    #[inline]
13080    fn syntax(&self) -> &SyntaxNode {
13081        &self.syntax
13082    }
13083}
13084impl AstNode for Do {
13085    #[inline]
13086    fn can_cast(kind: SyntaxKind) -> bool {
13087        kind == SyntaxKind::DO
13088    }
13089    #[inline]
13090    fn cast(syntax: SyntaxNode) -> Option<Self> {
13091        if Self::can_cast(syntax.kind()) {
13092            Some(Self { syntax })
13093        } else {
13094            None
13095        }
13096    }
13097    #[inline]
13098    fn syntax(&self) -> &SyntaxNode {
13099        &self.syntax
13100    }
13101}
13102impl AstNode for DoubleType {
13103    #[inline]
13104    fn can_cast(kind: SyntaxKind) -> bool {
13105        kind == SyntaxKind::DOUBLE_TYPE
13106    }
13107    #[inline]
13108    fn cast(syntax: SyntaxNode) -> Option<Self> {
13109        if Self::can_cast(syntax.kind()) {
13110            Some(Self { syntax })
13111        } else {
13112            None
13113        }
13114    }
13115    #[inline]
13116    fn syntax(&self) -> &SyntaxNode {
13117        &self.syntax
13118    }
13119}
13120impl AstNode for Drop {
13121    #[inline]
13122    fn can_cast(kind: SyntaxKind) -> bool {
13123        kind == SyntaxKind::DROP
13124    }
13125    #[inline]
13126    fn cast(syntax: SyntaxNode) -> Option<Self> {
13127        if Self::can_cast(syntax.kind()) {
13128            Some(Self { syntax })
13129        } else {
13130            None
13131        }
13132    }
13133    #[inline]
13134    fn syntax(&self) -> &SyntaxNode {
13135        &self.syntax
13136    }
13137}
13138impl AstNode for DropAccessMethod {
13139    #[inline]
13140    fn can_cast(kind: SyntaxKind) -> bool {
13141        kind == SyntaxKind::DROP_ACCESS_METHOD
13142    }
13143    #[inline]
13144    fn cast(syntax: SyntaxNode) -> Option<Self> {
13145        if Self::can_cast(syntax.kind()) {
13146            Some(Self { syntax })
13147        } else {
13148            None
13149        }
13150    }
13151    #[inline]
13152    fn syntax(&self) -> &SyntaxNode {
13153        &self.syntax
13154    }
13155}
13156impl AstNode for DropAggregate {
13157    #[inline]
13158    fn can_cast(kind: SyntaxKind) -> bool {
13159        kind == SyntaxKind::DROP_AGGREGATE
13160    }
13161    #[inline]
13162    fn cast(syntax: SyntaxNode) -> Option<Self> {
13163        if Self::can_cast(syntax.kind()) {
13164            Some(Self { syntax })
13165        } else {
13166            None
13167        }
13168    }
13169    #[inline]
13170    fn syntax(&self) -> &SyntaxNode {
13171        &self.syntax
13172    }
13173}
13174impl AstNode for DropCast {
13175    #[inline]
13176    fn can_cast(kind: SyntaxKind) -> bool {
13177        kind == SyntaxKind::DROP_CAST
13178    }
13179    #[inline]
13180    fn cast(syntax: SyntaxNode) -> Option<Self> {
13181        if Self::can_cast(syntax.kind()) {
13182            Some(Self { syntax })
13183        } else {
13184            None
13185        }
13186    }
13187    #[inline]
13188    fn syntax(&self) -> &SyntaxNode {
13189        &self.syntax
13190    }
13191}
13192impl AstNode for DropCollation {
13193    #[inline]
13194    fn can_cast(kind: SyntaxKind) -> bool {
13195        kind == SyntaxKind::DROP_COLLATION
13196    }
13197    #[inline]
13198    fn cast(syntax: SyntaxNode) -> Option<Self> {
13199        if Self::can_cast(syntax.kind()) {
13200            Some(Self { syntax })
13201        } else {
13202            None
13203        }
13204    }
13205    #[inline]
13206    fn syntax(&self) -> &SyntaxNode {
13207        &self.syntax
13208    }
13209}
13210impl AstNode for DropColumn {
13211    #[inline]
13212    fn can_cast(kind: SyntaxKind) -> bool {
13213        kind == SyntaxKind::DROP_COLUMN
13214    }
13215    #[inline]
13216    fn cast(syntax: SyntaxNode) -> Option<Self> {
13217        if Self::can_cast(syntax.kind()) {
13218            Some(Self { syntax })
13219        } else {
13220            None
13221        }
13222    }
13223    #[inline]
13224    fn syntax(&self) -> &SyntaxNode {
13225        &self.syntax
13226    }
13227}
13228impl AstNode for DropConstraint {
13229    #[inline]
13230    fn can_cast(kind: SyntaxKind) -> bool {
13231        kind == SyntaxKind::DROP_CONSTRAINT
13232    }
13233    #[inline]
13234    fn cast(syntax: SyntaxNode) -> Option<Self> {
13235        if Self::can_cast(syntax.kind()) {
13236            Some(Self { syntax })
13237        } else {
13238            None
13239        }
13240    }
13241    #[inline]
13242    fn syntax(&self) -> &SyntaxNode {
13243        &self.syntax
13244    }
13245}
13246impl AstNode for DropConversion {
13247    #[inline]
13248    fn can_cast(kind: SyntaxKind) -> bool {
13249        kind == SyntaxKind::DROP_CONVERSION
13250    }
13251    #[inline]
13252    fn cast(syntax: SyntaxNode) -> Option<Self> {
13253        if Self::can_cast(syntax.kind()) {
13254            Some(Self { syntax })
13255        } else {
13256            None
13257        }
13258    }
13259    #[inline]
13260    fn syntax(&self) -> &SyntaxNode {
13261        &self.syntax
13262    }
13263}
13264impl AstNode for DropDatabase {
13265    #[inline]
13266    fn can_cast(kind: SyntaxKind) -> bool {
13267        kind == SyntaxKind::DROP_DATABASE
13268    }
13269    #[inline]
13270    fn cast(syntax: SyntaxNode) -> Option<Self> {
13271        if Self::can_cast(syntax.kind()) {
13272            Some(Self { syntax })
13273        } else {
13274            None
13275        }
13276    }
13277    #[inline]
13278    fn syntax(&self) -> &SyntaxNode {
13279        &self.syntax
13280    }
13281}
13282impl AstNode for DropDefault {
13283    #[inline]
13284    fn can_cast(kind: SyntaxKind) -> bool {
13285        kind == SyntaxKind::DROP_DEFAULT
13286    }
13287    #[inline]
13288    fn cast(syntax: SyntaxNode) -> Option<Self> {
13289        if Self::can_cast(syntax.kind()) {
13290            Some(Self { syntax })
13291        } else {
13292            None
13293        }
13294    }
13295    #[inline]
13296    fn syntax(&self) -> &SyntaxNode {
13297        &self.syntax
13298    }
13299}
13300impl AstNode for DropDomain {
13301    #[inline]
13302    fn can_cast(kind: SyntaxKind) -> bool {
13303        kind == SyntaxKind::DROP_DOMAIN
13304    }
13305    #[inline]
13306    fn cast(syntax: SyntaxNode) -> Option<Self> {
13307        if Self::can_cast(syntax.kind()) {
13308            Some(Self { syntax })
13309        } else {
13310            None
13311        }
13312    }
13313    #[inline]
13314    fn syntax(&self) -> &SyntaxNode {
13315        &self.syntax
13316    }
13317}
13318impl AstNode for DropEventTrigger {
13319    #[inline]
13320    fn can_cast(kind: SyntaxKind) -> bool {
13321        kind == SyntaxKind::DROP_EVENT_TRIGGER
13322    }
13323    #[inline]
13324    fn cast(syntax: SyntaxNode) -> Option<Self> {
13325        if Self::can_cast(syntax.kind()) {
13326            Some(Self { syntax })
13327        } else {
13328            None
13329        }
13330    }
13331    #[inline]
13332    fn syntax(&self) -> &SyntaxNode {
13333        &self.syntax
13334    }
13335}
13336impl AstNode for DropExpression {
13337    #[inline]
13338    fn can_cast(kind: SyntaxKind) -> bool {
13339        kind == SyntaxKind::DROP_EXPRESSION
13340    }
13341    #[inline]
13342    fn cast(syntax: SyntaxNode) -> Option<Self> {
13343        if Self::can_cast(syntax.kind()) {
13344            Some(Self { syntax })
13345        } else {
13346            None
13347        }
13348    }
13349    #[inline]
13350    fn syntax(&self) -> &SyntaxNode {
13351        &self.syntax
13352    }
13353}
13354impl AstNode for DropExtension {
13355    #[inline]
13356    fn can_cast(kind: SyntaxKind) -> bool {
13357        kind == SyntaxKind::DROP_EXTENSION
13358    }
13359    #[inline]
13360    fn cast(syntax: SyntaxNode) -> Option<Self> {
13361        if Self::can_cast(syntax.kind()) {
13362            Some(Self { syntax })
13363        } else {
13364            None
13365        }
13366    }
13367    #[inline]
13368    fn syntax(&self) -> &SyntaxNode {
13369        &self.syntax
13370    }
13371}
13372impl AstNode for DropForeignDataWrapper {
13373    #[inline]
13374    fn can_cast(kind: SyntaxKind) -> bool {
13375        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
13376    }
13377    #[inline]
13378    fn cast(syntax: SyntaxNode) -> Option<Self> {
13379        if Self::can_cast(syntax.kind()) {
13380            Some(Self { syntax })
13381        } else {
13382            None
13383        }
13384    }
13385    #[inline]
13386    fn syntax(&self) -> &SyntaxNode {
13387        &self.syntax
13388    }
13389}
13390impl AstNode for DropForeignTable {
13391    #[inline]
13392    fn can_cast(kind: SyntaxKind) -> bool {
13393        kind == SyntaxKind::DROP_FOREIGN_TABLE
13394    }
13395    #[inline]
13396    fn cast(syntax: SyntaxNode) -> Option<Self> {
13397        if Self::can_cast(syntax.kind()) {
13398            Some(Self { syntax })
13399        } else {
13400            None
13401        }
13402    }
13403    #[inline]
13404    fn syntax(&self) -> &SyntaxNode {
13405        &self.syntax
13406    }
13407}
13408impl AstNode for DropFunction {
13409    #[inline]
13410    fn can_cast(kind: SyntaxKind) -> bool {
13411        kind == SyntaxKind::DROP_FUNCTION
13412    }
13413    #[inline]
13414    fn cast(syntax: SyntaxNode) -> Option<Self> {
13415        if Self::can_cast(syntax.kind()) {
13416            Some(Self { syntax })
13417        } else {
13418            None
13419        }
13420    }
13421    #[inline]
13422    fn syntax(&self) -> &SyntaxNode {
13423        &self.syntax
13424    }
13425}
13426impl AstNode for DropGroup {
13427    #[inline]
13428    fn can_cast(kind: SyntaxKind) -> bool {
13429        kind == SyntaxKind::DROP_GROUP
13430    }
13431    #[inline]
13432    fn cast(syntax: SyntaxNode) -> Option<Self> {
13433        if Self::can_cast(syntax.kind()) {
13434            Some(Self { syntax })
13435        } else {
13436            None
13437        }
13438    }
13439    #[inline]
13440    fn syntax(&self) -> &SyntaxNode {
13441        &self.syntax
13442    }
13443}
13444impl AstNode for DropIdentity {
13445    #[inline]
13446    fn can_cast(kind: SyntaxKind) -> bool {
13447        kind == SyntaxKind::DROP_IDENTITY
13448    }
13449    #[inline]
13450    fn cast(syntax: SyntaxNode) -> Option<Self> {
13451        if Self::can_cast(syntax.kind()) {
13452            Some(Self { syntax })
13453        } else {
13454            None
13455        }
13456    }
13457    #[inline]
13458    fn syntax(&self) -> &SyntaxNode {
13459        &self.syntax
13460    }
13461}
13462impl AstNode for DropIndex {
13463    #[inline]
13464    fn can_cast(kind: SyntaxKind) -> bool {
13465        kind == SyntaxKind::DROP_INDEX
13466    }
13467    #[inline]
13468    fn cast(syntax: SyntaxNode) -> Option<Self> {
13469        if Self::can_cast(syntax.kind()) {
13470            Some(Self { syntax })
13471        } else {
13472            None
13473        }
13474    }
13475    #[inline]
13476    fn syntax(&self) -> &SyntaxNode {
13477        &self.syntax
13478    }
13479}
13480impl AstNode for DropLanguage {
13481    #[inline]
13482    fn can_cast(kind: SyntaxKind) -> bool {
13483        kind == SyntaxKind::DROP_LANGUAGE
13484    }
13485    #[inline]
13486    fn cast(syntax: SyntaxNode) -> Option<Self> {
13487        if Self::can_cast(syntax.kind()) {
13488            Some(Self { syntax })
13489        } else {
13490            None
13491        }
13492    }
13493    #[inline]
13494    fn syntax(&self) -> &SyntaxNode {
13495        &self.syntax
13496    }
13497}
13498impl AstNode for DropMaterializedView {
13499    #[inline]
13500    fn can_cast(kind: SyntaxKind) -> bool {
13501        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
13502    }
13503    #[inline]
13504    fn cast(syntax: SyntaxNode) -> Option<Self> {
13505        if Self::can_cast(syntax.kind()) {
13506            Some(Self { syntax })
13507        } else {
13508            None
13509        }
13510    }
13511    #[inline]
13512    fn syntax(&self) -> &SyntaxNode {
13513        &self.syntax
13514    }
13515}
13516impl AstNode for DropNotNull {
13517    #[inline]
13518    fn can_cast(kind: SyntaxKind) -> bool {
13519        kind == SyntaxKind::DROP_NOT_NULL
13520    }
13521    #[inline]
13522    fn cast(syntax: SyntaxNode) -> Option<Self> {
13523        if Self::can_cast(syntax.kind()) {
13524            Some(Self { syntax })
13525        } else {
13526            None
13527        }
13528    }
13529    #[inline]
13530    fn syntax(&self) -> &SyntaxNode {
13531        &self.syntax
13532    }
13533}
13534impl AstNode for DropOperator {
13535    #[inline]
13536    fn can_cast(kind: SyntaxKind) -> bool {
13537        kind == SyntaxKind::DROP_OPERATOR
13538    }
13539    #[inline]
13540    fn cast(syntax: SyntaxNode) -> Option<Self> {
13541        if Self::can_cast(syntax.kind()) {
13542            Some(Self { syntax })
13543        } else {
13544            None
13545        }
13546    }
13547    #[inline]
13548    fn syntax(&self) -> &SyntaxNode {
13549        &self.syntax
13550    }
13551}
13552impl AstNode for DropOperatorClass {
13553    #[inline]
13554    fn can_cast(kind: SyntaxKind) -> bool {
13555        kind == SyntaxKind::DROP_OPERATOR_CLASS
13556    }
13557    #[inline]
13558    fn cast(syntax: SyntaxNode) -> Option<Self> {
13559        if Self::can_cast(syntax.kind()) {
13560            Some(Self { syntax })
13561        } else {
13562            None
13563        }
13564    }
13565    #[inline]
13566    fn syntax(&self) -> &SyntaxNode {
13567        &self.syntax
13568    }
13569}
13570impl AstNode for DropOperatorFamily {
13571    #[inline]
13572    fn can_cast(kind: SyntaxKind) -> bool {
13573        kind == SyntaxKind::DROP_OPERATOR_FAMILY
13574    }
13575    #[inline]
13576    fn cast(syntax: SyntaxNode) -> Option<Self> {
13577        if Self::can_cast(syntax.kind()) {
13578            Some(Self { syntax })
13579        } else {
13580            None
13581        }
13582    }
13583    #[inline]
13584    fn syntax(&self) -> &SyntaxNode {
13585        &self.syntax
13586    }
13587}
13588impl AstNode for DropOwned {
13589    #[inline]
13590    fn can_cast(kind: SyntaxKind) -> bool {
13591        kind == SyntaxKind::DROP_OWNED
13592    }
13593    #[inline]
13594    fn cast(syntax: SyntaxNode) -> Option<Self> {
13595        if Self::can_cast(syntax.kind()) {
13596            Some(Self { syntax })
13597        } else {
13598            None
13599        }
13600    }
13601    #[inline]
13602    fn syntax(&self) -> &SyntaxNode {
13603        &self.syntax
13604    }
13605}
13606impl AstNode for DropPolicy {
13607    #[inline]
13608    fn can_cast(kind: SyntaxKind) -> bool {
13609        kind == SyntaxKind::DROP_POLICY
13610    }
13611    #[inline]
13612    fn cast(syntax: SyntaxNode) -> Option<Self> {
13613        if Self::can_cast(syntax.kind()) {
13614            Some(Self { syntax })
13615        } else {
13616            None
13617        }
13618    }
13619    #[inline]
13620    fn syntax(&self) -> &SyntaxNode {
13621        &self.syntax
13622    }
13623}
13624impl AstNode for DropProcedure {
13625    #[inline]
13626    fn can_cast(kind: SyntaxKind) -> bool {
13627        kind == SyntaxKind::DROP_PROCEDURE
13628    }
13629    #[inline]
13630    fn cast(syntax: SyntaxNode) -> Option<Self> {
13631        if Self::can_cast(syntax.kind()) {
13632            Some(Self { syntax })
13633        } else {
13634            None
13635        }
13636    }
13637    #[inline]
13638    fn syntax(&self) -> &SyntaxNode {
13639        &self.syntax
13640    }
13641}
13642impl AstNode for DropPublication {
13643    #[inline]
13644    fn can_cast(kind: SyntaxKind) -> bool {
13645        kind == SyntaxKind::DROP_PUBLICATION
13646    }
13647    #[inline]
13648    fn cast(syntax: SyntaxNode) -> Option<Self> {
13649        if Self::can_cast(syntax.kind()) {
13650            Some(Self { syntax })
13651        } else {
13652            None
13653        }
13654    }
13655    #[inline]
13656    fn syntax(&self) -> &SyntaxNode {
13657        &self.syntax
13658    }
13659}
13660impl AstNode for DropRole {
13661    #[inline]
13662    fn can_cast(kind: SyntaxKind) -> bool {
13663        kind == SyntaxKind::DROP_ROLE
13664    }
13665    #[inline]
13666    fn cast(syntax: SyntaxNode) -> Option<Self> {
13667        if Self::can_cast(syntax.kind()) {
13668            Some(Self { syntax })
13669        } else {
13670            None
13671        }
13672    }
13673    #[inline]
13674    fn syntax(&self) -> &SyntaxNode {
13675        &self.syntax
13676    }
13677}
13678impl AstNode for DropRoutine {
13679    #[inline]
13680    fn can_cast(kind: SyntaxKind) -> bool {
13681        kind == SyntaxKind::DROP_ROUTINE
13682    }
13683    #[inline]
13684    fn cast(syntax: SyntaxNode) -> Option<Self> {
13685        if Self::can_cast(syntax.kind()) {
13686            Some(Self { syntax })
13687        } else {
13688            None
13689        }
13690    }
13691    #[inline]
13692    fn syntax(&self) -> &SyntaxNode {
13693        &self.syntax
13694    }
13695}
13696impl AstNode for DropRule {
13697    #[inline]
13698    fn can_cast(kind: SyntaxKind) -> bool {
13699        kind == SyntaxKind::DROP_RULE
13700    }
13701    #[inline]
13702    fn cast(syntax: SyntaxNode) -> Option<Self> {
13703        if Self::can_cast(syntax.kind()) {
13704            Some(Self { syntax })
13705        } else {
13706            None
13707        }
13708    }
13709    #[inline]
13710    fn syntax(&self) -> &SyntaxNode {
13711        &self.syntax
13712    }
13713}
13714impl AstNode for DropSchema {
13715    #[inline]
13716    fn can_cast(kind: SyntaxKind) -> bool {
13717        kind == SyntaxKind::DROP_SCHEMA
13718    }
13719    #[inline]
13720    fn cast(syntax: SyntaxNode) -> Option<Self> {
13721        if Self::can_cast(syntax.kind()) {
13722            Some(Self { syntax })
13723        } else {
13724            None
13725        }
13726    }
13727    #[inline]
13728    fn syntax(&self) -> &SyntaxNode {
13729        &self.syntax
13730    }
13731}
13732impl AstNode for DropSequence {
13733    #[inline]
13734    fn can_cast(kind: SyntaxKind) -> bool {
13735        kind == SyntaxKind::DROP_SEQUENCE
13736    }
13737    #[inline]
13738    fn cast(syntax: SyntaxNode) -> Option<Self> {
13739        if Self::can_cast(syntax.kind()) {
13740            Some(Self { syntax })
13741        } else {
13742            None
13743        }
13744    }
13745    #[inline]
13746    fn syntax(&self) -> &SyntaxNode {
13747        &self.syntax
13748    }
13749}
13750impl AstNode for DropServer {
13751    #[inline]
13752    fn can_cast(kind: SyntaxKind) -> bool {
13753        kind == SyntaxKind::DROP_SERVER
13754    }
13755    #[inline]
13756    fn cast(syntax: SyntaxNode) -> Option<Self> {
13757        if Self::can_cast(syntax.kind()) {
13758            Some(Self { syntax })
13759        } else {
13760            None
13761        }
13762    }
13763    #[inline]
13764    fn syntax(&self) -> &SyntaxNode {
13765        &self.syntax
13766    }
13767}
13768impl AstNode for DropStatistics {
13769    #[inline]
13770    fn can_cast(kind: SyntaxKind) -> bool {
13771        kind == SyntaxKind::DROP_STATISTICS
13772    }
13773    #[inline]
13774    fn cast(syntax: SyntaxNode) -> Option<Self> {
13775        if Self::can_cast(syntax.kind()) {
13776            Some(Self { syntax })
13777        } else {
13778            None
13779        }
13780    }
13781    #[inline]
13782    fn syntax(&self) -> &SyntaxNode {
13783        &self.syntax
13784    }
13785}
13786impl AstNode for DropSubscription {
13787    #[inline]
13788    fn can_cast(kind: SyntaxKind) -> bool {
13789        kind == SyntaxKind::DROP_SUBSCRIPTION
13790    }
13791    #[inline]
13792    fn cast(syntax: SyntaxNode) -> Option<Self> {
13793        if Self::can_cast(syntax.kind()) {
13794            Some(Self { syntax })
13795        } else {
13796            None
13797        }
13798    }
13799    #[inline]
13800    fn syntax(&self) -> &SyntaxNode {
13801        &self.syntax
13802    }
13803}
13804impl AstNode for DropTable {
13805    #[inline]
13806    fn can_cast(kind: SyntaxKind) -> bool {
13807        kind == SyntaxKind::DROP_TABLE
13808    }
13809    #[inline]
13810    fn cast(syntax: SyntaxNode) -> Option<Self> {
13811        if Self::can_cast(syntax.kind()) {
13812            Some(Self { syntax })
13813        } else {
13814            None
13815        }
13816    }
13817    #[inline]
13818    fn syntax(&self) -> &SyntaxNode {
13819        &self.syntax
13820    }
13821}
13822impl AstNode for DropTablespace {
13823    #[inline]
13824    fn can_cast(kind: SyntaxKind) -> bool {
13825        kind == SyntaxKind::DROP_TABLESPACE
13826    }
13827    #[inline]
13828    fn cast(syntax: SyntaxNode) -> Option<Self> {
13829        if Self::can_cast(syntax.kind()) {
13830            Some(Self { syntax })
13831        } else {
13832            None
13833        }
13834    }
13835    #[inline]
13836    fn syntax(&self) -> &SyntaxNode {
13837        &self.syntax
13838    }
13839}
13840impl AstNode for DropTextSearchConfig {
13841    #[inline]
13842    fn can_cast(kind: SyntaxKind) -> bool {
13843        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
13844    }
13845    #[inline]
13846    fn cast(syntax: SyntaxNode) -> Option<Self> {
13847        if Self::can_cast(syntax.kind()) {
13848            Some(Self { syntax })
13849        } else {
13850            None
13851        }
13852    }
13853    #[inline]
13854    fn syntax(&self) -> &SyntaxNode {
13855        &self.syntax
13856    }
13857}
13858impl AstNode for DropTextSearchDict {
13859    #[inline]
13860    fn can_cast(kind: SyntaxKind) -> bool {
13861        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
13862    }
13863    #[inline]
13864    fn cast(syntax: SyntaxNode) -> Option<Self> {
13865        if Self::can_cast(syntax.kind()) {
13866            Some(Self { syntax })
13867        } else {
13868            None
13869        }
13870    }
13871    #[inline]
13872    fn syntax(&self) -> &SyntaxNode {
13873        &self.syntax
13874    }
13875}
13876impl AstNode for DropTextSearchParser {
13877    #[inline]
13878    fn can_cast(kind: SyntaxKind) -> bool {
13879        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
13880    }
13881    #[inline]
13882    fn cast(syntax: SyntaxNode) -> Option<Self> {
13883        if Self::can_cast(syntax.kind()) {
13884            Some(Self { syntax })
13885        } else {
13886            None
13887        }
13888    }
13889    #[inline]
13890    fn syntax(&self) -> &SyntaxNode {
13891        &self.syntax
13892    }
13893}
13894impl AstNode for DropTextSearchTemplate {
13895    #[inline]
13896    fn can_cast(kind: SyntaxKind) -> bool {
13897        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
13898    }
13899    #[inline]
13900    fn cast(syntax: SyntaxNode) -> Option<Self> {
13901        if Self::can_cast(syntax.kind()) {
13902            Some(Self { syntax })
13903        } else {
13904            None
13905        }
13906    }
13907    #[inline]
13908    fn syntax(&self) -> &SyntaxNode {
13909        &self.syntax
13910    }
13911}
13912impl AstNode for DropTransform {
13913    #[inline]
13914    fn can_cast(kind: SyntaxKind) -> bool {
13915        kind == SyntaxKind::DROP_TRANSFORM
13916    }
13917    #[inline]
13918    fn cast(syntax: SyntaxNode) -> Option<Self> {
13919        if Self::can_cast(syntax.kind()) {
13920            Some(Self { syntax })
13921        } else {
13922            None
13923        }
13924    }
13925    #[inline]
13926    fn syntax(&self) -> &SyntaxNode {
13927        &self.syntax
13928    }
13929}
13930impl AstNode for DropTrigger {
13931    #[inline]
13932    fn can_cast(kind: SyntaxKind) -> bool {
13933        kind == SyntaxKind::DROP_TRIGGER
13934    }
13935    #[inline]
13936    fn cast(syntax: SyntaxNode) -> Option<Self> {
13937        if Self::can_cast(syntax.kind()) {
13938            Some(Self { syntax })
13939        } else {
13940            None
13941        }
13942    }
13943    #[inline]
13944    fn syntax(&self) -> &SyntaxNode {
13945        &self.syntax
13946    }
13947}
13948impl AstNode for DropType {
13949    #[inline]
13950    fn can_cast(kind: SyntaxKind) -> bool {
13951        kind == SyntaxKind::DROP_TYPE
13952    }
13953    #[inline]
13954    fn cast(syntax: SyntaxNode) -> Option<Self> {
13955        if Self::can_cast(syntax.kind()) {
13956            Some(Self { syntax })
13957        } else {
13958            None
13959        }
13960    }
13961    #[inline]
13962    fn syntax(&self) -> &SyntaxNode {
13963        &self.syntax
13964    }
13965}
13966impl AstNode for DropUser {
13967    #[inline]
13968    fn can_cast(kind: SyntaxKind) -> bool {
13969        kind == SyntaxKind::DROP_USER
13970    }
13971    #[inline]
13972    fn cast(syntax: SyntaxNode) -> Option<Self> {
13973        if Self::can_cast(syntax.kind()) {
13974            Some(Self { syntax })
13975        } else {
13976            None
13977        }
13978    }
13979    #[inline]
13980    fn syntax(&self) -> &SyntaxNode {
13981        &self.syntax
13982    }
13983}
13984impl AstNode for DropUserMapping {
13985    #[inline]
13986    fn can_cast(kind: SyntaxKind) -> bool {
13987        kind == SyntaxKind::DROP_USER_MAPPING
13988    }
13989    #[inline]
13990    fn cast(syntax: SyntaxNode) -> Option<Self> {
13991        if Self::can_cast(syntax.kind()) {
13992            Some(Self { syntax })
13993        } else {
13994            None
13995        }
13996    }
13997    #[inline]
13998    fn syntax(&self) -> &SyntaxNode {
13999        &self.syntax
14000    }
14001}
14002impl AstNode for DropView {
14003    #[inline]
14004    fn can_cast(kind: SyntaxKind) -> bool {
14005        kind == SyntaxKind::DROP_VIEW
14006    }
14007    #[inline]
14008    fn cast(syntax: SyntaxNode) -> Option<Self> {
14009        if Self::can_cast(syntax.kind()) {
14010            Some(Self { syntax })
14011        } else {
14012            None
14013        }
14014    }
14015    #[inline]
14016    fn syntax(&self) -> &SyntaxNode {
14017        &self.syntax
14018    }
14019}
14020impl AstNode for EnableAlwaysRule {
14021    #[inline]
14022    fn can_cast(kind: SyntaxKind) -> bool {
14023        kind == SyntaxKind::ENABLE_ALWAYS_RULE
14024    }
14025    #[inline]
14026    fn cast(syntax: SyntaxNode) -> Option<Self> {
14027        if Self::can_cast(syntax.kind()) {
14028            Some(Self { syntax })
14029        } else {
14030            None
14031        }
14032    }
14033    #[inline]
14034    fn syntax(&self) -> &SyntaxNode {
14035        &self.syntax
14036    }
14037}
14038impl AstNode for EnableAlwaysTrigger {
14039    #[inline]
14040    fn can_cast(kind: SyntaxKind) -> bool {
14041        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
14042    }
14043    #[inline]
14044    fn cast(syntax: SyntaxNode) -> Option<Self> {
14045        if Self::can_cast(syntax.kind()) {
14046            Some(Self { syntax })
14047        } else {
14048            None
14049        }
14050    }
14051    #[inline]
14052    fn syntax(&self) -> &SyntaxNode {
14053        &self.syntax
14054    }
14055}
14056impl AstNode for EnableReplicaRule {
14057    #[inline]
14058    fn can_cast(kind: SyntaxKind) -> bool {
14059        kind == SyntaxKind::ENABLE_REPLICA_RULE
14060    }
14061    #[inline]
14062    fn cast(syntax: SyntaxNode) -> Option<Self> {
14063        if Self::can_cast(syntax.kind()) {
14064            Some(Self { syntax })
14065        } else {
14066            None
14067        }
14068    }
14069    #[inline]
14070    fn syntax(&self) -> &SyntaxNode {
14071        &self.syntax
14072    }
14073}
14074impl AstNode for EnableReplicaTrigger {
14075    #[inline]
14076    fn can_cast(kind: SyntaxKind) -> bool {
14077        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
14078    }
14079    #[inline]
14080    fn cast(syntax: SyntaxNode) -> Option<Self> {
14081        if Self::can_cast(syntax.kind()) {
14082            Some(Self { syntax })
14083        } else {
14084            None
14085        }
14086    }
14087    #[inline]
14088    fn syntax(&self) -> &SyntaxNode {
14089        &self.syntax
14090    }
14091}
14092impl AstNode for EnableRls {
14093    #[inline]
14094    fn can_cast(kind: SyntaxKind) -> bool {
14095        kind == SyntaxKind::ENABLE_RLS
14096    }
14097    #[inline]
14098    fn cast(syntax: SyntaxNode) -> Option<Self> {
14099        if Self::can_cast(syntax.kind()) {
14100            Some(Self { syntax })
14101        } else {
14102            None
14103        }
14104    }
14105    #[inline]
14106    fn syntax(&self) -> &SyntaxNode {
14107        &self.syntax
14108    }
14109}
14110impl AstNode for EnableRule {
14111    #[inline]
14112    fn can_cast(kind: SyntaxKind) -> bool {
14113        kind == SyntaxKind::ENABLE_RULE
14114    }
14115    #[inline]
14116    fn cast(syntax: SyntaxNode) -> Option<Self> {
14117        if Self::can_cast(syntax.kind()) {
14118            Some(Self { syntax })
14119        } else {
14120            None
14121        }
14122    }
14123    #[inline]
14124    fn syntax(&self) -> &SyntaxNode {
14125        &self.syntax
14126    }
14127}
14128impl AstNode for EnableTrigger {
14129    #[inline]
14130    fn can_cast(kind: SyntaxKind) -> bool {
14131        kind == SyntaxKind::ENABLE_TRIGGER
14132    }
14133    #[inline]
14134    fn cast(syntax: SyntaxNode) -> Option<Self> {
14135        if Self::can_cast(syntax.kind()) {
14136            Some(Self { syntax })
14137        } else {
14138            None
14139        }
14140    }
14141    #[inline]
14142    fn syntax(&self) -> &SyntaxNode {
14143        &self.syntax
14144    }
14145}
14146impl AstNode for Enforced {
14147    #[inline]
14148    fn can_cast(kind: SyntaxKind) -> bool {
14149        kind == SyntaxKind::ENFORCED
14150    }
14151    #[inline]
14152    fn cast(syntax: SyntaxNode) -> Option<Self> {
14153        if Self::can_cast(syntax.kind()) {
14154            Some(Self { syntax })
14155        } else {
14156            None
14157        }
14158    }
14159    #[inline]
14160    fn syntax(&self) -> &SyntaxNode {
14161        &self.syntax
14162    }
14163}
14164impl AstNode for ExcludeConstraint {
14165    #[inline]
14166    fn can_cast(kind: SyntaxKind) -> bool {
14167        kind == SyntaxKind::EXCLUDE_CONSTRAINT
14168    }
14169    #[inline]
14170    fn cast(syntax: SyntaxNode) -> Option<Self> {
14171        if Self::can_cast(syntax.kind()) {
14172            Some(Self { syntax })
14173        } else {
14174            None
14175        }
14176    }
14177    #[inline]
14178    fn syntax(&self) -> &SyntaxNode {
14179        &self.syntax
14180    }
14181}
14182impl AstNode for Execute {
14183    #[inline]
14184    fn can_cast(kind: SyntaxKind) -> bool {
14185        kind == SyntaxKind::EXECUTE
14186    }
14187    #[inline]
14188    fn cast(syntax: SyntaxNode) -> Option<Self> {
14189        if Self::can_cast(syntax.kind()) {
14190            Some(Self { syntax })
14191        } else {
14192            None
14193        }
14194    }
14195    #[inline]
14196    fn syntax(&self) -> &SyntaxNode {
14197        &self.syntax
14198    }
14199}
14200impl AstNode for Explain {
14201    #[inline]
14202    fn can_cast(kind: SyntaxKind) -> bool {
14203        kind == SyntaxKind::EXPLAIN
14204    }
14205    #[inline]
14206    fn cast(syntax: SyntaxNode) -> Option<Self> {
14207        if Self::can_cast(syntax.kind()) {
14208            Some(Self { syntax })
14209        } else {
14210            None
14211        }
14212    }
14213    #[inline]
14214    fn syntax(&self) -> &SyntaxNode {
14215        &self.syntax
14216    }
14217}
14218impl AstNode for FatArrow {
14219    #[inline]
14220    fn can_cast(kind: SyntaxKind) -> bool {
14221        kind == SyntaxKind::FAT_ARROW
14222    }
14223    #[inline]
14224    fn cast(syntax: SyntaxNode) -> Option<Self> {
14225        if Self::can_cast(syntax.kind()) {
14226            Some(Self { syntax })
14227        } else {
14228            None
14229        }
14230    }
14231    #[inline]
14232    fn syntax(&self) -> &SyntaxNode {
14233        &self.syntax
14234    }
14235}
14236impl AstNode for Fetch {
14237    #[inline]
14238    fn can_cast(kind: SyntaxKind) -> bool {
14239        kind == SyntaxKind::FETCH
14240    }
14241    #[inline]
14242    fn cast(syntax: SyntaxNode) -> Option<Self> {
14243        if Self::can_cast(syntax.kind()) {
14244            Some(Self { syntax })
14245        } else {
14246            None
14247        }
14248    }
14249    #[inline]
14250    fn syntax(&self) -> &SyntaxNode {
14251        &self.syntax
14252    }
14253}
14254impl AstNode for FetchClause {
14255    #[inline]
14256    fn can_cast(kind: SyntaxKind) -> bool {
14257        kind == SyntaxKind::FETCH_CLAUSE
14258    }
14259    #[inline]
14260    fn cast(syntax: SyntaxNode) -> Option<Self> {
14261        if Self::can_cast(syntax.kind()) {
14262            Some(Self { syntax })
14263        } else {
14264            None
14265        }
14266    }
14267    #[inline]
14268    fn syntax(&self) -> &SyntaxNode {
14269        &self.syntax
14270    }
14271}
14272impl AstNode for FieldExpr {
14273    #[inline]
14274    fn can_cast(kind: SyntaxKind) -> bool {
14275        kind == SyntaxKind::FIELD_EXPR
14276    }
14277    #[inline]
14278    fn cast(syntax: SyntaxNode) -> Option<Self> {
14279        if Self::can_cast(syntax.kind()) {
14280            Some(Self { syntax })
14281        } else {
14282            None
14283        }
14284    }
14285    #[inline]
14286    fn syntax(&self) -> &SyntaxNode {
14287        &self.syntax
14288    }
14289}
14290impl AstNode for FilterClause {
14291    #[inline]
14292    fn can_cast(kind: SyntaxKind) -> bool {
14293        kind == SyntaxKind::FILTER_CLAUSE
14294    }
14295    #[inline]
14296    fn cast(syntax: SyntaxNode) -> Option<Self> {
14297        if Self::can_cast(syntax.kind()) {
14298            Some(Self { syntax })
14299        } else {
14300            None
14301        }
14302    }
14303    #[inline]
14304    fn syntax(&self) -> &SyntaxNode {
14305        &self.syntax
14306    }
14307}
14308impl AstNode for ForceRls {
14309    #[inline]
14310    fn can_cast(kind: SyntaxKind) -> bool {
14311        kind == SyntaxKind::FORCE_RLS
14312    }
14313    #[inline]
14314    fn cast(syntax: SyntaxNode) -> Option<Self> {
14315        if Self::can_cast(syntax.kind()) {
14316            Some(Self { syntax })
14317        } else {
14318            None
14319        }
14320    }
14321    #[inline]
14322    fn syntax(&self) -> &SyntaxNode {
14323        &self.syntax
14324    }
14325}
14326impl AstNode for ForeignKeyConstraint {
14327    #[inline]
14328    fn can_cast(kind: SyntaxKind) -> bool {
14329        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
14330    }
14331    #[inline]
14332    fn cast(syntax: SyntaxNode) -> Option<Self> {
14333        if Self::can_cast(syntax.kind()) {
14334            Some(Self { syntax })
14335        } else {
14336            None
14337        }
14338    }
14339    #[inline]
14340    fn syntax(&self) -> &SyntaxNode {
14341        &self.syntax
14342    }
14343}
14344impl AstNode for FrameClause {
14345    #[inline]
14346    fn can_cast(kind: SyntaxKind) -> bool {
14347        kind == SyntaxKind::FRAME_CLAUSE
14348    }
14349    #[inline]
14350    fn cast(syntax: SyntaxNode) -> Option<Self> {
14351        if Self::can_cast(syntax.kind()) {
14352            Some(Self { syntax })
14353        } else {
14354            None
14355        }
14356    }
14357    #[inline]
14358    fn syntax(&self) -> &SyntaxNode {
14359        &self.syntax
14360    }
14361}
14362impl AstNode for FromClause {
14363    #[inline]
14364    fn can_cast(kind: SyntaxKind) -> bool {
14365        kind == SyntaxKind::FROM_CLAUSE
14366    }
14367    #[inline]
14368    fn cast(syntax: SyntaxNode) -> Option<Self> {
14369        if Self::can_cast(syntax.kind()) {
14370            Some(Self { syntax })
14371        } else {
14372            None
14373        }
14374    }
14375    #[inline]
14376    fn syntax(&self) -> &SyntaxNode {
14377        &self.syntax
14378    }
14379}
14380impl AstNode for FromItem {
14381    #[inline]
14382    fn can_cast(kind: SyntaxKind) -> bool {
14383        kind == SyntaxKind::FROM_ITEM
14384    }
14385    #[inline]
14386    fn cast(syntax: SyntaxNode) -> Option<Self> {
14387        if Self::can_cast(syntax.kind()) {
14388            Some(Self { syntax })
14389        } else {
14390            None
14391        }
14392    }
14393    #[inline]
14394    fn syntax(&self) -> &SyntaxNode {
14395        &self.syntax
14396    }
14397}
14398impl AstNode for FuncOptionList {
14399    #[inline]
14400    fn can_cast(kind: SyntaxKind) -> bool {
14401        kind == SyntaxKind::FUNC_OPTION_LIST
14402    }
14403    #[inline]
14404    fn cast(syntax: SyntaxNode) -> Option<Self> {
14405        if Self::can_cast(syntax.kind()) {
14406            Some(Self { syntax })
14407        } else {
14408            None
14409        }
14410    }
14411    #[inline]
14412    fn syntax(&self) -> &SyntaxNode {
14413        &self.syntax
14414    }
14415}
14416impl AstNode for GeneratedConstraint {
14417    #[inline]
14418    fn can_cast(kind: SyntaxKind) -> bool {
14419        kind == SyntaxKind::GENERATED_CONSTRAINT
14420    }
14421    #[inline]
14422    fn cast(syntax: SyntaxNode) -> Option<Self> {
14423        if Self::can_cast(syntax.kind()) {
14424            Some(Self { syntax })
14425        } else {
14426            None
14427        }
14428    }
14429    #[inline]
14430    fn syntax(&self) -> &SyntaxNode {
14431        &self.syntax
14432    }
14433}
14434impl AstNode for Grant {
14435    #[inline]
14436    fn can_cast(kind: SyntaxKind) -> bool {
14437        kind == SyntaxKind::GRANT
14438    }
14439    #[inline]
14440    fn cast(syntax: SyntaxNode) -> Option<Self> {
14441        if Self::can_cast(syntax.kind()) {
14442            Some(Self { syntax })
14443        } else {
14444            None
14445        }
14446    }
14447    #[inline]
14448    fn syntax(&self) -> &SyntaxNode {
14449        &self.syntax
14450    }
14451}
14452impl AstNode for GroupByClause {
14453    #[inline]
14454    fn can_cast(kind: SyntaxKind) -> bool {
14455        kind == SyntaxKind::GROUP_BY_CLAUSE
14456    }
14457    #[inline]
14458    fn cast(syntax: SyntaxNode) -> Option<Self> {
14459        if Self::can_cast(syntax.kind()) {
14460            Some(Self { syntax })
14461        } else {
14462            None
14463        }
14464    }
14465    #[inline]
14466    fn syntax(&self) -> &SyntaxNode {
14467        &self.syntax
14468    }
14469}
14470impl AstNode for GroupingCube {
14471    #[inline]
14472    fn can_cast(kind: SyntaxKind) -> bool {
14473        kind == SyntaxKind::GROUPING_CUBE
14474    }
14475    #[inline]
14476    fn cast(syntax: SyntaxNode) -> Option<Self> {
14477        if Self::can_cast(syntax.kind()) {
14478            Some(Self { syntax })
14479        } else {
14480            None
14481        }
14482    }
14483    #[inline]
14484    fn syntax(&self) -> &SyntaxNode {
14485        &self.syntax
14486    }
14487}
14488impl AstNode for GroupingExpr {
14489    #[inline]
14490    fn can_cast(kind: SyntaxKind) -> bool {
14491        kind == SyntaxKind::GROUPING_EXPR
14492    }
14493    #[inline]
14494    fn cast(syntax: SyntaxNode) -> Option<Self> {
14495        if Self::can_cast(syntax.kind()) {
14496            Some(Self { syntax })
14497        } else {
14498            None
14499        }
14500    }
14501    #[inline]
14502    fn syntax(&self) -> &SyntaxNode {
14503        &self.syntax
14504    }
14505}
14506impl AstNode for GroupingRollup {
14507    #[inline]
14508    fn can_cast(kind: SyntaxKind) -> bool {
14509        kind == SyntaxKind::GROUPING_ROLLUP
14510    }
14511    #[inline]
14512    fn cast(syntax: SyntaxNode) -> Option<Self> {
14513        if Self::can_cast(syntax.kind()) {
14514            Some(Self { syntax })
14515        } else {
14516            None
14517        }
14518    }
14519    #[inline]
14520    fn syntax(&self) -> &SyntaxNode {
14521        &self.syntax
14522    }
14523}
14524impl AstNode for GroupingSets {
14525    #[inline]
14526    fn can_cast(kind: SyntaxKind) -> bool {
14527        kind == SyntaxKind::GROUPING_SETS
14528    }
14529    #[inline]
14530    fn cast(syntax: SyntaxNode) -> Option<Self> {
14531        if Self::can_cast(syntax.kind()) {
14532            Some(Self { syntax })
14533        } else {
14534            None
14535        }
14536    }
14537    #[inline]
14538    fn syntax(&self) -> &SyntaxNode {
14539        &self.syntax
14540    }
14541}
14542impl AstNode for Gteq {
14543    #[inline]
14544    fn can_cast(kind: SyntaxKind) -> bool {
14545        kind == SyntaxKind::GTEQ
14546    }
14547    #[inline]
14548    fn cast(syntax: SyntaxNode) -> Option<Self> {
14549        if Self::can_cast(syntax.kind()) {
14550            Some(Self { syntax })
14551        } else {
14552            None
14553        }
14554    }
14555    #[inline]
14556    fn syntax(&self) -> &SyntaxNode {
14557        &self.syntax
14558    }
14559}
14560impl AstNode for HavingClause {
14561    #[inline]
14562    fn can_cast(kind: SyntaxKind) -> bool {
14563        kind == SyntaxKind::HAVING_CLAUSE
14564    }
14565    #[inline]
14566    fn cast(syntax: SyntaxNode) -> Option<Self> {
14567        if Self::can_cast(syntax.kind()) {
14568            Some(Self { syntax })
14569        } else {
14570            None
14571        }
14572    }
14573    #[inline]
14574    fn syntax(&self) -> &SyntaxNode {
14575        &self.syntax
14576    }
14577}
14578impl AstNode for IfExists {
14579    #[inline]
14580    fn can_cast(kind: SyntaxKind) -> bool {
14581        kind == SyntaxKind::IF_EXISTS
14582    }
14583    #[inline]
14584    fn cast(syntax: SyntaxNode) -> Option<Self> {
14585        if Self::can_cast(syntax.kind()) {
14586            Some(Self { syntax })
14587        } else {
14588            None
14589        }
14590    }
14591    #[inline]
14592    fn syntax(&self) -> &SyntaxNode {
14593        &self.syntax
14594    }
14595}
14596impl AstNode for IfNotExists {
14597    #[inline]
14598    fn can_cast(kind: SyntaxKind) -> bool {
14599        kind == SyntaxKind::IF_NOT_EXISTS
14600    }
14601    #[inline]
14602    fn cast(syntax: SyntaxNode) -> Option<Self> {
14603        if Self::can_cast(syntax.kind()) {
14604            Some(Self { syntax })
14605        } else {
14606            None
14607        }
14608    }
14609    #[inline]
14610    fn syntax(&self) -> &SyntaxNode {
14611        &self.syntax
14612    }
14613}
14614impl AstNode for ImportForeignSchema {
14615    #[inline]
14616    fn can_cast(kind: SyntaxKind) -> bool {
14617        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
14618    }
14619    #[inline]
14620    fn cast(syntax: SyntaxNode) -> Option<Self> {
14621        if Self::can_cast(syntax.kind()) {
14622            Some(Self { syntax })
14623        } else {
14624            None
14625        }
14626    }
14627    #[inline]
14628    fn syntax(&self) -> &SyntaxNode {
14629        &self.syntax
14630    }
14631}
14632impl AstNode for IndexExpr {
14633    #[inline]
14634    fn can_cast(kind: SyntaxKind) -> bool {
14635        kind == SyntaxKind::INDEX_EXPR
14636    }
14637    #[inline]
14638    fn cast(syntax: SyntaxNode) -> Option<Self> {
14639        if Self::can_cast(syntax.kind()) {
14640            Some(Self { syntax })
14641        } else {
14642            None
14643        }
14644    }
14645    #[inline]
14646    fn syntax(&self) -> &SyntaxNode {
14647        &self.syntax
14648    }
14649}
14650impl AstNode for IndexParams {
14651    #[inline]
14652    fn can_cast(kind: SyntaxKind) -> bool {
14653        kind == SyntaxKind::INDEX_PARAMS
14654    }
14655    #[inline]
14656    fn cast(syntax: SyntaxNode) -> Option<Self> {
14657        if Self::can_cast(syntax.kind()) {
14658            Some(Self { syntax })
14659        } else {
14660            None
14661        }
14662    }
14663    #[inline]
14664    fn syntax(&self) -> &SyntaxNode {
14665        &self.syntax
14666    }
14667}
14668impl AstNode for Inherit {
14669    #[inline]
14670    fn can_cast(kind: SyntaxKind) -> bool {
14671        kind == SyntaxKind::INHERIT
14672    }
14673    #[inline]
14674    fn cast(syntax: SyntaxNode) -> Option<Self> {
14675        if Self::can_cast(syntax.kind()) {
14676            Some(Self { syntax })
14677        } else {
14678            None
14679        }
14680    }
14681    #[inline]
14682    fn syntax(&self) -> &SyntaxNode {
14683        &self.syntax
14684    }
14685}
14686impl AstNode for Inherits {
14687    #[inline]
14688    fn can_cast(kind: SyntaxKind) -> bool {
14689        kind == SyntaxKind::INHERITS
14690    }
14691    #[inline]
14692    fn cast(syntax: SyntaxNode) -> Option<Self> {
14693        if Self::can_cast(syntax.kind()) {
14694            Some(Self { syntax })
14695        } else {
14696            None
14697        }
14698    }
14699    #[inline]
14700    fn syntax(&self) -> &SyntaxNode {
14701        &self.syntax
14702    }
14703}
14704impl AstNode for InitiallyDeferredConstraintOption {
14705    #[inline]
14706    fn can_cast(kind: SyntaxKind) -> bool {
14707        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
14708    }
14709    #[inline]
14710    fn cast(syntax: SyntaxNode) -> Option<Self> {
14711        if Self::can_cast(syntax.kind()) {
14712            Some(Self { syntax })
14713        } else {
14714            None
14715        }
14716    }
14717    #[inline]
14718    fn syntax(&self) -> &SyntaxNode {
14719        &self.syntax
14720    }
14721}
14722impl AstNode for InitiallyImmediateConstraintOption {
14723    #[inline]
14724    fn can_cast(kind: SyntaxKind) -> bool {
14725        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
14726    }
14727    #[inline]
14728    fn cast(syntax: SyntaxNode) -> Option<Self> {
14729        if Self::can_cast(syntax.kind()) {
14730            Some(Self { syntax })
14731        } else {
14732            None
14733        }
14734    }
14735    #[inline]
14736    fn syntax(&self) -> &SyntaxNode {
14737        &self.syntax
14738    }
14739}
14740impl AstNode for Insert {
14741    #[inline]
14742    fn can_cast(kind: SyntaxKind) -> bool {
14743        kind == SyntaxKind::INSERT
14744    }
14745    #[inline]
14746    fn cast(syntax: SyntaxNode) -> Option<Self> {
14747        if Self::can_cast(syntax.kind()) {
14748            Some(Self { syntax })
14749        } else {
14750            None
14751        }
14752    }
14753    #[inline]
14754    fn syntax(&self) -> &SyntaxNode {
14755        &self.syntax
14756    }
14757}
14758impl AstNode for IntervalType {
14759    #[inline]
14760    fn can_cast(kind: SyntaxKind) -> bool {
14761        kind == SyntaxKind::INTERVAL_TYPE
14762    }
14763    #[inline]
14764    fn cast(syntax: SyntaxNode) -> Option<Self> {
14765        if Self::can_cast(syntax.kind()) {
14766            Some(Self { syntax })
14767        } else {
14768            None
14769        }
14770    }
14771    #[inline]
14772    fn syntax(&self) -> &SyntaxNode {
14773        &self.syntax
14774    }
14775}
14776impl AstNode for IntoClause {
14777    #[inline]
14778    fn can_cast(kind: SyntaxKind) -> bool {
14779        kind == SyntaxKind::INTO_CLAUSE
14780    }
14781    #[inline]
14782    fn cast(syntax: SyntaxNode) -> Option<Self> {
14783        if Self::can_cast(syntax.kind()) {
14784            Some(Self { syntax })
14785        } else {
14786            None
14787        }
14788    }
14789    #[inline]
14790    fn syntax(&self) -> &SyntaxNode {
14791        &self.syntax
14792    }
14793}
14794impl AstNode for IsDistinctFrom {
14795    #[inline]
14796    fn can_cast(kind: SyntaxKind) -> bool {
14797        kind == SyntaxKind::IS_DISTINCT_FROM
14798    }
14799    #[inline]
14800    fn cast(syntax: SyntaxNode) -> Option<Self> {
14801        if Self::can_cast(syntax.kind()) {
14802            Some(Self { syntax })
14803        } else {
14804            None
14805        }
14806    }
14807    #[inline]
14808    fn syntax(&self) -> &SyntaxNode {
14809        &self.syntax
14810    }
14811}
14812impl AstNode for IsJson {
14813    #[inline]
14814    fn can_cast(kind: SyntaxKind) -> bool {
14815        kind == SyntaxKind::IS_JSON
14816    }
14817    #[inline]
14818    fn cast(syntax: SyntaxNode) -> Option<Self> {
14819        if Self::can_cast(syntax.kind()) {
14820            Some(Self { syntax })
14821        } else {
14822            None
14823        }
14824    }
14825    #[inline]
14826    fn syntax(&self) -> &SyntaxNode {
14827        &self.syntax
14828    }
14829}
14830impl AstNode for IsJsonArray {
14831    #[inline]
14832    fn can_cast(kind: SyntaxKind) -> bool {
14833        kind == SyntaxKind::IS_JSON_ARRAY
14834    }
14835    #[inline]
14836    fn cast(syntax: SyntaxNode) -> Option<Self> {
14837        if Self::can_cast(syntax.kind()) {
14838            Some(Self { syntax })
14839        } else {
14840            None
14841        }
14842    }
14843    #[inline]
14844    fn syntax(&self) -> &SyntaxNode {
14845        &self.syntax
14846    }
14847}
14848impl AstNode for IsJsonObject {
14849    #[inline]
14850    fn can_cast(kind: SyntaxKind) -> bool {
14851        kind == SyntaxKind::IS_JSON_OBJECT
14852    }
14853    #[inline]
14854    fn cast(syntax: SyntaxNode) -> Option<Self> {
14855        if Self::can_cast(syntax.kind()) {
14856            Some(Self { syntax })
14857        } else {
14858            None
14859        }
14860    }
14861    #[inline]
14862    fn syntax(&self) -> &SyntaxNode {
14863        &self.syntax
14864    }
14865}
14866impl AstNode for IsJsonScalar {
14867    #[inline]
14868    fn can_cast(kind: SyntaxKind) -> bool {
14869        kind == SyntaxKind::IS_JSON_SCALAR
14870    }
14871    #[inline]
14872    fn cast(syntax: SyntaxNode) -> Option<Self> {
14873        if Self::can_cast(syntax.kind()) {
14874            Some(Self { syntax })
14875        } else {
14876            None
14877        }
14878    }
14879    #[inline]
14880    fn syntax(&self) -> &SyntaxNode {
14881        &self.syntax
14882    }
14883}
14884impl AstNode for IsJsonValue {
14885    #[inline]
14886    fn can_cast(kind: SyntaxKind) -> bool {
14887        kind == SyntaxKind::IS_JSON_VALUE
14888    }
14889    #[inline]
14890    fn cast(syntax: SyntaxNode) -> Option<Self> {
14891        if Self::can_cast(syntax.kind()) {
14892            Some(Self { syntax })
14893        } else {
14894            None
14895        }
14896    }
14897    #[inline]
14898    fn syntax(&self) -> &SyntaxNode {
14899        &self.syntax
14900    }
14901}
14902impl AstNode for IsNormalized {
14903    #[inline]
14904    fn can_cast(kind: SyntaxKind) -> bool {
14905        kind == SyntaxKind::IS_NORMALIZED
14906    }
14907    #[inline]
14908    fn cast(syntax: SyntaxNode) -> Option<Self> {
14909        if Self::can_cast(syntax.kind()) {
14910            Some(Self { syntax })
14911        } else {
14912            None
14913        }
14914    }
14915    #[inline]
14916    fn syntax(&self) -> &SyntaxNode {
14917        &self.syntax
14918    }
14919}
14920impl AstNode for IsNot {
14921    #[inline]
14922    fn can_cast(kind: SyntaxKind) -> bool {
14923        kind == SyntaxKind::IS_NOT
14924    }
14925    #[inline]
14926    fn cast(syntax: SyntaxNode) -> Option<Self> {
14927        if Self::can_cast(syntax.kind()) {
14928            Some(Self { syntax })
14929        } else {
14930            None
14931        }
14932    }
14933    #[inline]
14934    fn syntax(&self) -> &SyntaxNode {
14935        &self.syntax
14936    }
14937}
14938impl AstNode for IsNotDistinctFrom {
14939    #[inline]
14940    fn can_cast(kind: SyntaxKind) -> bool {
14941        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
14942    }
14943    #[inline]
14944    fn cast(syntax: SyntaxNode) -> Option<Self> {
14945        if Self::can_cast(syntax.kind()) {
14946            Some(Self { syntax })
14947        } else {
14948            None
14949        }
14950    }
14951    #[inline]
14952    fn syntax(&self) -> &SyntaxNode {
14953        &self.syntax
14954    }
14955}
14956impl AstNode for IsNotJson {
14957    #[inline]
14958    fn can_cast(kind: SyntaxKind) -> bool {
14959        kind == SyntaxKind::IS_NOT_JSON
14960    }
14961    #[inline]
14962    fn cast(syntax: SyntaxNode) -> Option<Self> {
14963        if Self::can_cast(syntax.kind()) {
14964            Some(Self { syntax })
14965        } else {
14966            None
14967        }
14968    }
14969    #[inline]
14970    fn syntax(&self) -> &SyntaxNode {
14971        &self.syntax
14972    }
14973}
14974impl AstNode for IsNotJsonArray {
14975    #[inline]
14976    fn can_cast(kind: SyntaxKind) -> bool {
14977        kind == SyntaxKind::IS_NOT_JSON_ARRAY
14978    }
14979    #[inline]
14980    fn cast(syntax: SyntaxNode) -> Option<Self> {
14981        if Self::can_cast(syntax.kind()) {
14982            Some(Self { syntax })
14983        } else {
14984            None
14985        }
14986    }
14987    #[inline]
14988    fn syntax(&self) -> &SyntaxNode {
14989        &self.syntax
14990    }
14991}
14992impl AstNode for IsNotJsonObject {
14993    #[inline]
14994    fn can_cast(kind: SyntaxKind) -> bool {
14995        kind == SyntaxKind::IS_NOT_JSON_OBJECT
14996    }
14997    #[inline]
14998    fn cast(syntax: SyntaxNode) -> Option<Self> {
14999        if Self::can_cast(syntax.kind()) {
15000            Some(Self { syntax })
15001        } else {
15002            None
15003        }
15004    }
15005    #[inline]
15006    fn syntax(&self) -> &SyntaxNode {
15007        &self.syntax
15008    }
15009}
15010impl AstNode for IsNotJsonScalar {
15011    #[inline]
15012    fn can_cast(kind: SyntaxKind) -> bool {
15013        kind == SyntaxKind::IS_NOT_JSON_SCALAR
15014    }
15015    #[inline]
15016    fn cast(syntax: SyntaxNode) -> Option<Self> {
15017        if Self::can_cast(syntax.kind()) {
15018            Some(Self { syntax })
15019        } else {
15020            None
15021        }
15022    }
15023    #[inline]
15024    fn syntax(&self) -> &SyntaxNode {
15025        &self.syntax
15026    }
15027}
15028impl AstNode for IsNotJsonValue {
15029    #[inline]
15030    fn can_cast(kind: SyntaxKind) -> bool {
15031        kind == SyntaxKind::IS_NOT_JSON_VALUE
15032    }
15033    #[inline]
15034    fn cast(syntax: SyntaxNode) -> Option<Self> {
15035        if Self::can_cast(syntax.kind()) {
15036            Some(Self { syntax })
15037        } else {
15038            None
15039        }
15040    }
15041    #[inline]
15042    fn syntax(&self) -> &SyntaxNode {
15043        &self.syntax
15044    }
15045}
15046impl AstNode for IsNotNormalized {
15047    #[inline]
15048    fn can_cast(kind: SyntaxKind) -> bool {
15049        kind == SyntaxKind::IS_NOT_NORMALIZED
15050    }
15051    #[inline]
15052    fn cast(syntax: SyntaxNode) -> Option<Self> {
15053        if Self::can_cast(syntax.kind()) {
15054            Some(Self { syntax })
15055        } else {
15056            None
15057        }
15058    }
15059    #[inline]
15060    fn syntax(&self) -> &SyntaxNode {
15061        &self.syntax
15062    }
15063}
15064impl AstNode for Join {
15065    #[inline]
15066    fn can_cast(kind: SyntaxKind) -> bool {
15067        kind == SyntaxKind::JOIN
15068    }
15069    #[inline]
15070    fn cast(syntax: SyntaxNode) -> Option<Self> {
15071        if Self::can_cast(syntax.kind()) {
15072            Some(Self { syntax })
15073        } else {
15074            None
15075        }
15076    }
15077    #[inline]
15078    fn syntax(&self) -> &SyntaxNode {
15079        &self.syntax
15080    }
15081}
15082impl AstNode for JoinCross {
15083    #[inline]
15084    fn can_cast(kind: SyntaxKind) -> bool {
15085        kind == SyntaxKind::JOIN_CROSS
15086    }
15087    #[inline]
15088    fn cast(syntax: SyntaxNode) -> Option<Self> {
15089        if Self::can_cast(syntax.kind()) {
15090            Some(Self { syntax })
15091        } else {
15092            None
15093        }
15094    }
15095    #[inline]
15096    fn syntax(&self) -> &SyntaxNode {
15097        &self.syntax
15098    }
15099}
15100impl AstNode for JoinExpr {
15101    #[inline]
15102    fn can_cast(kind: SyntaxKind) -> bool {
15103        kind == SyntaxKind::JOIN_EXPR
15104    }
15105    #[inline]
15106    fn cast(syntax: SyntaxNode) -> Option<Self> {
15107        if Self::can_cast(syntax.kind()) {
15108            Some(Self { syntax })
15109        } else {
15110            None
15111        }
15112    }
15113    #[inline]
15114    fn syntax(&self) -> &SyntaxNode {
15115        &self.syntax
15116    }
15117}
15118impl AstNode for JoinFull {
15119    #[inline]
15120    fn can_cast(kind: SyntaxKind) -> bool {
15121        kind == SyntaxKind::JOIN_FULL
15122    }
15123    #[inline]
15124    fn cast(syntax: SyntaxNode) -> Option<Self> {
15125        if Self::can_cast(syntax.kind()) {
15126            Some(Self { syntax })
15127        } else {
15128            None
15129        }
15130    }
15131    #[inline]
15132    fn syntax(&self) -> &SyntaxNode {
15133        &self.syntax
15134    }
15135}
15136impl AstNode for JoinInner {
15137    #[inline]
15138    fn can_cast(kind: SyntaxKind) -> bool {
15139        kind == SyntaxKind::JOIN_INNER
15140    }
15141    #[inline]
15142    fn cast(syntax: SyntaxNode) -> Option<Self> {
15143        if Self::can_cast(syntax.kind()) {
15144            Some(Self { syntax })
15145        } else {
15146            None
15147        }
15148    }
15149    #[inline]
15150    fn syntax(&self) -> &SyntaxNode {
15151        &self.syntax
15152    }
15153}
15154impl AstNode for JoinLeft {
15155    #[inline]
15156    fn can_cast(kind: SyntaxKind) -> bool {
15157        kind == SyntaxKind::JOIN_LEFT
15158    }
15159    #[inline]
15160    fn cast(syntax: SyntaxNode) -> Option<Self> {
15161        if Self::can_cast(syntax.kind()) {
15162            Some(Self { syntax })
15163        } else {
15164            None
15165        }
15166    }
15167    #[inline]
15168    fn syntax(&self) -> &SyntaxNode {
15169        &self.syntax
15170    }
15171}
15172impl AstNode for JoinRight {
15173    #[inline]
15174    fn can_cast(kind: SyntaxKind) -> bool {
15175        kind == SyntaxKind::JOIN_RIGHT
15176    }
15177    #[inline]
15178    fn cast(syntax: SyntaxNode) -> Option<Self> {
15179        if Self::can_cast(syntax.kind()) {
15180            Some(Self { syntax })
15181        } else {
15182            None
15183        }
15184    }
15185    #[inline]
15186    fn syntax(&self) -> &SyntaxNode {
15187        &self.syntax
15188    }
15189}
15190impl AstNode for JoinUsingClause {
15191    #[inline]
15192    fn can_cast(kind: SyntaxKind) -> bool {
15193        kind == SyntaxKind::JOIN_USING_CLAUSE
15194    }
15195    #[inline]
15196    fn cast(syntax: SyntaxNode) -> Option<Self> {
15197        if Self::can_cast(syntax.kind()) {
15198            Some(Self { syntax })
15199        } else {
15200            None
15201        }
15202    }
15203    #[inline]
15204    fn syntax(&self) -> &SyntaxNode {
15205        &self.syntax
15206    }
15207}
15208impl AstNode for JsonBehaviorDefault {
15209    #[inline]
15210    fn can_cast(kind: SyntaxKind) -> bool {
15211        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
15212    }
15213    #[inline]
15214    fn cast(syntax: SyntaxNode) -> Option<Self> {
15215        if Self::can_cast(syntax.kind()) {
15216            Some(Self { syntax })
15217        } else {
15218            None
15219        }
15220    }
15221    #[inline]
15222    fn syntax(&self) -> &SyntaxNode {
15223        &self.syntax
15224    }
15225}
15226impl AstNode for JsonBehaviorEmptyArray {
15227    #[inline]
15228    fn can_cast(kind: SyntaxKind) -> bool {
15229        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
15230    }
15231    #[inline]
15232    fn cast(syntax: SyntaxNode) -> Option<Self> {
15233        if Self::can_cast(syntax.kind()) {
15234            Some(Self { syntax })
15235        } else {
15236            None
15237        }
15238    }
15239    #[inline]
15240    fn syntax(&self) -> &SyntaxNode {
15241        &self.syntax
15242    }
15243}
15244impl AstNode for JsonBehaviorEmptyObject {
15245    #[inline]
15246    fn can_cast(kind: SyntaxKind) -> bool {
15247        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
15248    }
15249    #[inline]
15250    fn cast(syntax: SyntaxNode) -> Option<Self> {
15251        if Self::can_cast(syntax.kind()) {
15252            Some(Self { syntax })
15253        } else {
15254            None
15255        }
15256    }
15257    #[inline]
15258    fn syntax(&self) -> &SyntaxNode {
15259        &self.syntax
15260    }
15261}
15262impl AstNode for JsonBehaviorError {
15263    #[inline]
15264    fn can_cast(kind: SyntaxKind) -> bool {
15265        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
15266    }
15267    #[inline]
15268    fn cast(syntax: SyntaxNode) -> Option<Self> {
15269        if Self::can_cast(syntax.kind()) {
15270            Some(Self { syntax })
15271        } else {
15272            None
15273        }
15274    }
15275    #[inline]
15276    fn syntax(&self) -> &SyntaxNode {
15277        &self.syntax
15278    }
15279}
15280impl AstNode for JsonBehaviorFalse {
15281    #[inline]
15282    fn can_cast(kind: SyntaxKind) -> bool {
15283        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
15284    }
15285    #[inline]
15286    fn cast(syntax: SyntaxNode) -> Option<Self> {
15287        if Self::can_cast(syntax.kind()) {
15288            Some(Self { syntax })
15289        } else {
15290            None
15291        }
15292    }
15293    #[inline]
15294    fn syntax(&self) -> &SyntaxNode {
15295        &self.syntax
15296    }
15297}
15298impl AstNode for JsonBehaviorNull {
15299    #[inline]
15300    fn can_cast(kind: SyntaxKind) -> bool {
15301        kind == SyntaxKind::JSON_BEHAVIOR_NULL
15302    }
15303    #[inline]
15304    fn cast(syntax: SyntaxNode) -> Option<Self> {
15305        if Self::can_cast(syntax.kind()) {
15306            Some(Self { syntax })
15307        } else {
15308            None
15309        }
15310    }
15311    #[inline]
15312    fn syntax(&self) -> &SyntaxNode {
15313        &self.syntax
15314    }
15315}
15316impl AstNode for JsonBehaviorTrue {
15317    #[inline]
15318    fn can_cast(kind: SyntaxKind) -> bool {
15319        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
15320    }
15321    #[inline]
15322    fn cast(syntax: SyntaxNode) -> Option<Self> {
15323        if Self::can_cast(syntax.kind()) {
15324            Some(Self { syntax })
15325        } else {
15326            None
15327        }
15328    }
15329    #[inline]
15330    fn syntax(&self) -> &SyntaxNode {
15331        &self.syntax
15332    }
15333}
15334impl AstNode for JsonBehaviorUnknown {
15335    #[inline]
15336    fn can_cast(kind: SyntaxKind) -> bool {
15337        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
15338    }
15339    #[inline]
15340    fn cast(syntax: SyntaxNode) -> Option<Self> {
15341        if Self::can_cast(syntax.kind()) {
15342            Some(Self { syntax })
15343        } else {
15344            None
15345        }
15346    }
15347    #[inline]
15348    fn syntax(&self) -> &SyntaxNode {
15349        &self.syntax
15350    }
15351}
15352impl AstNode for JsonFormatClause {
15353    #[inline]
15354    fn can_cast(kind: SyntaxKind) -> bool {
15355        kind == SyntaxKind::JSON_FORMAT_CLAUSE
15356    }
15357    #[inline]
15358    fn cast(syntax: SyntaxNode) -> Option<Self> {
15359        if Self::can_cast(syntax.kind()) {
15360            Some(Self { syntax })
15361        } else {
15362            None
15363        }
15364    }
15365    #[inline]
15366    fn syntax(&self) -> &SyntaxNode {
15367        &self.syntax
15368    }
15369}
15370impl AstNode for JsonKeyValue {
15371    #[inline]
15372    fn can_cast(kind: SyntaxKind) -> bool {
15373        kind == SyntaxKind::JSON_KEY_VALUE
15374    }
15375    #[inline]
15376    fn cast(syntax: SyntaxNode) -> Option<Self> {
15377        if Self::can_cast(syntax.kind()) {
15378            Some(Self { syntax })
15379        } else {
15380            None
15381        }
15382    }
15383    #[inline]
15384    fn syntax(&self) -> &SyntaxNode {
15385        &self.syntax
15386    }
15387}
15388impl AstNode for JsonKeysUniqueClause {
15389    #[inline]
15390    fn can_cast(kind: SyntaxKind) -> bool {
15391        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
15392    }
15393    #[inline]
15394    fn cast(syntax: SyntaxNode) -> Option<Self> {
15395        if Self::can_cast(syntax.kind()) {
15396            Some(Self { syntax })
15397        } else {
15398            None
15399        }
15400    }
15401    #[inline]
15402    fn syntax(&self) -> &SyntaxNode {
15403        &self.syntax
15404    }
15405}
15406impl AstNode for JsonNullClause {
15407    #[inline]
15408    fn can_cast(kind: SyntaxKind) -> bool {
15409        kind == SyntaxKind::JSON_NULL_CLAUSE
15410    }
15411    #[inline]
15412    fn cast(syntax: SyntaxNode) -> Option<Self> {
15413        if Self::can_cast(syntax.kind()) {
15414            Some(Self { syntax })
15415        } else {
15416            None
15417        }
15418    }
15419    #[inline]
15420    fn syntax(&self) -> &SyntaxNode {
15421        &self.syntax
15422    }
15423}
15424impl AstNode for JsonOnEmptyClause {
15425    #[inline]
15426    fn can_cast(kind: SyntaxKind) -> bool {
15427        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
15428    }
15429    #[inline]
15430    fn cast(syntax: SyntaxNode) -> Option<Self> {
15431        if Self::can_cast(syntax.kind()) {
15432            Some(Self { syntax })
15433        } else {
15434            None
15435        }
15436    }
15437    #[inline]
15438    fn syntax(&self) -> &SyntaxNode {
15439        &self.syntax
15440    }
15441}
15442impl AstNode for JsonOnErrorClause {
15443    #[inline]
15444    fn can_cast(kind: SyntaxKind) -> bool {
15445        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
15446    }
15447    #[inline]
15448    fn cast(syntax: SyntaxNode) -> Option<Self> {
15449        if Self::can_cast(syntax.kind()) {
15450            Some(Self { syntax })
15451        } else {
15452            None
15453        }
15454    }
15455    #[inline]
15456    fn syntax(&self) -> &SyntaxNode {
15457        &self.syntax
15458    }
15459}
15460impl AstNode for JsonPassingArg {
15461    #[inline]
15462    fn can_cast(kind: SyntaxKind) -> bool {
15463        kind == SyntaxKind::JSON_PASSING_ARG
15464    }
15465    #[inline]
15466    fn cast(syntax: SyntaxNode) -> Option<Self> {
15467        if Self::can_cast(syntax.kind()) {
15468            Some(Self { syntax })
15469        } else {
15470            None
15471        }
15472    }
15473    #[inline]
15474    fn syntax(&self) -> &SyntaxNode {
15475        &self.syntax
15476    }
15477}
15478impl AstNode for JsonPassingClause {
15479    #[inline]
15480    fn can_cast(kind: SyntaxKind) -> bool {
15481        kind == SyntaxKind::JSON_PASSING_CLAUSE
15482    }
15483    #[inline]
15484    fn cast(syntax: SyntaxNode) -> Option<Self> {
15485        if Self::can_cast(syntax.kind()) {
15486            Some(Self { syntax })
15487        } else {
15488            None
15489        }
15490    }
15491    #[inline]
15492    fn syntax(&self) -> &SyntaxNode {
15493        &self.syntax
15494    }
15495}
15496impl AstNode for JsonQuotesClause {
15497    #[inline]
15498    fn can_cast(kind: SyntaxKind) -> bool {
15499        kind == SyntaxKind::JSON_QUOTES_CLAUSE
15500    }
15501    #[inline]
15502    fn cast(syntax: SyntaxNode) -> Option<Self> {
15503        if Self::can_cast(syntax.kind()) {
15504            Some(Self { syntax })
15505        } else {
15506            None
15507        }
15508    }
15509    #[inline]
15510    fn syntax(&self) -> &SyntaxNode {
15511        &self.syntax
15512    }
15513}
15514impl AstNode for JsonReturningClause {
15515    #[inline]
15516    fn can_cast(kind: SyntaxKind) -> bool {
15517        kind == SyntaxKind::JSON_RETURNING_CLAUSE
15518    }
15519    #[inline]
15520    fn cast(syntax: SyntaxNode) -> Option<Self> {
15521        if Self::can_cast(syntax.kind()) {
15522            Some(Self { syntax })
15523        } else {
15524            None
15525        }
15526    }
15527    #[inline]
15528    fn syntax(&self) -> &SyntaxNode {
15529        &self.syntax
15530    }
15531}
15532impl AstNode for JsonTableColumn {
15533    #[inline]
15534    fn can_cast(kind: SyntaxKind) -> bool {
15535        kind == SyntaxKind::JSON_TABLE_COLUMN
15536    }
15537    #[inline]
15538    fn cast(syntax: SyntaxNode) -> Option<Self> {
15539        if Self::can_cast(syntax.kind()) {
15540            Some(Self { syntax })
15541        } else {
15542            None
15543        }
15544    }
15545    #[inline]
15546    fn syntax(&self) -> &SyntaxNode {
15547        &self.syntax
15548    }
15549}
15550impl AstNode for JsonTableColumnList {
15551    #[inline]
15552    fn can_cast(kind: SyntaxKind) -> bool {
15553        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
15554    }
15555    #[inline]
15556    fn cast(syntax: SyntaxNode) -> Option<Self> {
15557        if Self::can_cast(syntax.kind()) {
15558            Some(Self { syntax })
15559        } else {
15560            None
15561        }
15562    }
15563    #[inline]
15564    fn syntax(&self) -> &SyntaxNode {
15565        &self.syntax
15566    }
15567}
15568impl AstNode for JsonValueExpr {
15569    #[inline]
15570    fn can_cast(kind: SyntaxKind) -> bool {
15571        kind == SyntaxKind::JSON_VALUE_EXPR
15572    }
15573    #[inline]
15574    fn cast(syntax: SyntaxNode) -> Option<Self> {
15575        if Self::can_cast(syntax.kind()) {
15576            Some(Self { syntax })
15577        } else {
15578            None
15579        }
15580    }
15581    #[inline]
15582    fn syntax(&self) -> &SyntaxNode {
15583        &self.syntax
15584    }
15585}
15586impl AstNode for JsonWrapperBehaviorClause {
15587    #[inline]
15588    fn can_cast(kind: SyntaxKind) -> bool {
15589        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
15590    }
15591    #[inline]
15592    fn cast(syntax: SyntaxNode) -> Option<Self> {
15593        if Self::can_cast(syntax.kind()) {
15594            Some(Self { syntax })
15595        } else {
15596            None
15597        }
15598    }
15599    #[inline]
15600    fn syntax(&self) -> &SyntaxNode {
15601        &self.syntax
15602    }
15603}
15604impl AstNode for LanguageFuncOption {
15605    #[inline]
15606    fn can_cast(kind: SyntaxKind) -> bool {
15607        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
15608    }
15609    #[inline]
15610    fn cast(syntax: SyntaxNode) -> Option<Self> {
15611        if Self::can_cast(syntax.kind()) {
15612            Some(Self { syntax })
15613        } else {
15614            None
15615        }
15616    }
15617    #[inline]
15618    fn syntax(&self) -> &SyntaxNode {
15619        &self.syntax
15620    }
15621}
15622impl AstNode for LeakproofFuncOption {
15623    #[inline]
15624    fn can_cast(kind: SyntaxKind) -> bool {
15625        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
15626    }
15627    #[inline]
15628    fn cast(syntax: SyntaxNode) -> Option<Self> {
15629        if Self::can_cast(syntax.kind()) {
15630            Some(Self { syntax })
15631        } else {
15632            None
15633        }
15634    }
15635    #[inline]
15636    fn syntax(&self) -> &SyntaxNode {
15637        &self.syntax
15638    }
15639}
15640impl AstNode for LikeClause {
15641    #[inline]
15642    fn can_cast(kind: SyntaxKind) -> bool {
15643        kind == SyntaxKind::LIKE_CLAUSE
15644    }
15645    #[inline]
15646    fn cast(syntax: SyntaxNode) -> Option<Self> {
15647        if Self::can_cast(syntax.kind()) {
15648            Some(Self { syntax })
15649        } else {
15650            None
15651        }
15652    }
15653    #[inline]
15654    fn syntax(&self) -> &SyntaxNode {
15655        &self.syntax
15656    }
15657}
15658impl AstNode for LikeOption {
15659    #[inline]
15660    fn can_cast(kind: SyntaxKind) -> bool {
15661        kind == SyntaxKind::LIKE_OPTION
15662    }
15663    #[inline]
15664    fn cast(syntax: SyntaxNode) -> Option<Self> {
15665        if Self::can_cast(syntax.kind()) {
15666            Some(Self { syntax })
15667        } else {
15668            None
15669        }
15670    }
15671    #[inline]
15672    fn syntax(&self) -> &SyntaxNode {
15673        &self.syntax
15674    }
15675}
15676impl AstNode for LimitClause {
15677    #[inline]
15678    fn can_cast(kind: SyntaxKind) -> bool {
15679        kind == SyntaxKind::LIMIT_CLAUSE
15680    }
15681    #[inline]
15682    fn cast(syntax: SyntaxNode) -> Option<Self> {
15683        if Self::can_cast(syntax.kind()) {
15684            Some(Self { syntax })
15685        } else {
15686            None
15687        }
15688    }
15689    #[inline]
15690    fn syntax(&self) -> &SyntaxNode {
15691        &self.syntax
15692    }
15693}
15694impl AstNode for Listen {
15695    #[inline]
15696    fn can_cast(kind: SyntaxKind) -> bool {
15697        kind == SyntaxKind::LISTEN
15698    }
15699    #[inline]
15700    fn cast(syntax: SyntaxNode) -> Option<Self> {
15701        if Self::can_cast(syntax.kind()) {
15702            Some(Self { syntax })
15703        } else {
15704            None
15705        }
15706    }
15707    #[inline]
15708    fn syntax(&self) -> &SyntaxNode {
15709        &self.syntax
15710    }
15711}
15712impl AstNode for Literal {
15713    #[inline]
15714    fn can_cast(kind: SyntaxKind) -> bool {
15715        kind == SyntaxKind::LITERAL
15716    }
15717    #[inline]
15718    fn cast(syntax: SyntaxNode) -> Option<Self> {
15719        if Self::can_cast(syntax.kind()) {
15720            Some(Self { syntax })
15721        } else {
15722            None
15723        }
15724    }
15725    #[inline]
15726    fn syntax(&self) -> &SyntaxNode {
15727        &self.syntax
15728    }
15729}
15730impl AstNode for Load {
15731    #[inline]
15732    fn can_cast(kind: SyntaxKind) -> bool {
15733        kind == SyntaxKind::LOAD
15734    }
15735    #[inline]
15736    fn cast(syntax: SyntaxNode) -> Option<Self> {
15737        if Self::can_cast(syntax.kind()) {
15738            Some(Self { syntax })
15739        } else {
15740            None
15741        }
15742    }
15743    #[inline]
15744    fn syntax(&self) -> &SyntaxNode {
15745        &self.syntax
15746    }
15747}
15748impl AstNode for Lock {
15749    #[inline]
15750    fn can_cast(kind: SyntaxKind) -> bool {
15751        kind == SyntaxKind::LOCK
15752    }
15753    #[inline]
15754    fn cast(syntax: SyntaxNode) -> Option<Self> {
15755        if Self::can_cast(syntax.kind()) {
15756            Some(Self { syntax })
15757        } else {
15758            None
15759        }
15760    }
15761    #[inline]
15762    fn syntax(&self) -> &SyntaxNode {
15763        &self.syntax
15764    }
15765}
15766impl AstNode for LockingClause {
15767    #[inline]
15768    fn can_cast(kind: SyntaxKind) -> bool {
15769        kind == SyntaxKind::LOCKING_CLAUSE
15770    }
15771    #[inline]
15772    fn cast(syntax: SyntaxNode) -> Option<Self> {
15773        if Self::can_cast(syntax.kind()) {
15774            Some(Self { syntax })
15775        } else {
15776            None
15777        }
15778    }
15779    #[inline]
15780    fn syntax(&self) -> &SyntaxNode {
15781        &self.syntax
15782    }
15783}
15784impl AstNode for Lteq {
15785    #[inline]
15786    fn can_cast(kind: SyntaxKind) -> bool {
15787        kind == SyntaxKind::LTEQ
15788    }
15789    #[inline]
15790    fn cast(syntax: SyntaxNode) -> Option<Self> {
15791        if Self::can_cast(syntax.kind()) {
15792            Some(Self { syntax })
15793        } else {
15794            None
15795        }
15796    }
15797    #[inline]
15798    fn syntax(&self) -> &SyntaxNode {
15799        &self.syntax
15800    }
15801}
15802impl AstNode for MatchFull {
15803    #[inline]
15804    fn can_cast(kind: SyntaxKind) -> bool {
15805        kind == SyntaxKind::MATCH_FULL
15806    }
15807    #[inline]
15808    fn cast(syntax: SyntaxNode) -> Option<Self> {
15809        if Self::can_cast(syntax.kind()) {
15810            Some(Self { syntax })
15811        } else {
15812            None
15813        }
15814    }
15815    #[inline]
15816    fn syntax(&self) -> &SyntaxNode {
15817        &self.syntax
15818    }
15819}
15820impl AstNode for MatchPartial {
15821    #[inline]
15822    fn can_cast(kind: SyntaxKind) -> bool {
15823        kind == SyntaxKind::MATCH_PARTIAL
15824    }
15825    #[inline]
15826    fn cast(syntax: SyntaxNode) -> Option<Self> {
15827        if Self::can_cast(syntax.kind()) {
15828            Some(Self { syntax })
15829        } else {
15830            None
15831        }
15832    }
15833    #[inline]
15834    fn syntax(&self) -> &SyntaxNode {
15835        &self.syntax
15836    }
15837}
15838impl AstNode for MatchSimple {
15839    #[inline]
15840    fn can_cast(kind: SyntaxKind) -> bool {
15841        kind == SyntaxKind::MATCH_SIMPLE
15842    }
15843    #[inline]
15844    fn cast(syntax: SyntaxNode) -> Option<Self> {
15845        if Self::can_cast(syntax.kind()) {
15846            Some(Self { syntax })
15847        } else {
15848            None
15849        }
15850    }
15851    #[inline]
15852    fn syntax(&self) -> &SyntaxNode {
15853        &self.syntax
15854    }
15855}
15856impl AstNode for Materialized {
15857    #[inline]
15858    fn can_cast(kind: SyntaxKind) -> bool {
15859        kind == SyntaxKind::MATERIALIZED
15860    }
15861    #[inline]
15862    fn cast(syntax: SyntaxNode) -> Option<Self> {
15863        if Self::can_cast(syntax.kind()) {
15864            Some(Self { syntax })
15865        } else {
15866            None
15867        }
15868    }
15869    #[inline]
15870    fn syntax(&self) -> &SyntaxNode {
15871        &self.syntax
15872    }
15873}
15874impl AstNode for Merge {
15875    #[inline]
15876    fn can_cast(kind: SyntaxKind) -> bool {
15877        kind == SyntaxKind::MERGE
15878    }
15879    #[inline]
15880    fn cast(syntax: SyntaxNode) -> Option<Self> {
15881        if Self::can_cast(syntax.kind()) {
15882            Some(Self { syntax })
15883        } else {
15884            None
15885        }
15886    }
15887    #[inline]
15888    fn syntax(&self) -> &SyntaxNode {
15889        &self.syntax
15890    }
15891}
15892impl AstNode for Move {
15893    #[inline]
15894    fn can_cast(kind: SyntaxKind) -> bool {
15895        kind == SyntaxKind::MOVE
15896    }
15897    #[inline]
15898    fn cast(syntax: SyntaxNode) -> Option<Self> {
15899        if Self::can_cast(syntax.kind()) {
15900            Some(Self { syntax })
15901        } else {
15902            None
15903        }
15904    }
15905    #[inline]
15906    fn syntax(&self) -> &SyntaxNode {
15907        &self.syntax
15908    }
15909}
15910impl AstNode for Name {
15911    #[inline]
15912    fn can_cast(kind: SyntaxKind) -> bool {
15913        kind == SyntaxKind::NAME
15914    }
15915    #[inline]
15916    fn cast(syntax: SyntaxNode) -> Option<Self> {
15917        if Self::can_cast(syntax.kind()) {
15918            Some(Self { syntax })
15919        } else {
15920            None
15921        }
15922    }
15923    #[inline]
15924    fn syntax(&self) -> &SyntaxNode {
15925        &self.syntax
15926    }
15927}
15928impl AstNode for NameRef {
15929    #[inline]
15930    fn can_cast(kind: SyntaxKind) -> bool {
15931        kind == SyntaxKind::NAME_REF
15932    }
15933    #[inline]
15934    fn cast(syntax: SyntaxNode) -> Option<Self> {
15935        if Self::can_cast(syntax.kind()) {
15936            Some(Self { syntax })
15937        } else {
15938            None
15939        }
15940    }
15941    #[inline]
15942    fn syntax(&self) -> &SyntaxNode {
15943        &self.syntax
15944    }
15945}
15946impl AstNode for NamedArg {
15947    #[inline]
15948    fn can_cast(kind: SyntaxKind) -> bool {
15949        kind == SyntaxKind::NAMED_ARG
15950    }
15951    #[inline]
15952    fn cast(syntax: SyntaxNode) -> Option<Self> {
15953        if Self::can_cast(syntax.kind()) {
15954            Some(Self { syntax })
15955        } else {
15956            None
15957        }
15958    }
15959    #[inline]
15960    fn syntax(&self) -> &SyntaxNode {
15961        &self.syntax
15962    }
15963}
15964impl AstNode for Neq {
15965    #[inline]
15966    fn can_cast(kind: SyntaxKind) -> bool {
15967        kind == SyntaxKind::NEQ
15968    }
15969    #[inline]
15970    fn cast(syntax: SyntaxNode) -> Option<Self> {
15971        if Self::can_cast(syntax.kind()) {
15972            Some(Self { syntax })
15973        } else {
15974            None
15975        }
15976    }
15977    #[inline]
15978    fn syntax(&self) -> &SyntaxNode {
15979        &self.syntax
15980    }
15981}
15982impl AstNode for Neqb {
15983    #[inline]
15984    fn can_cast(kind: SyntaxKind) -> bool {
15985        kind == SyntaxKind::NEQB
15986    }
15987    #[inline]
15988    fn cast(syntax: SyntaxNode) -> Option<Self> {
15989        if Self::can_cast(syntax.kind()) {
15990            Some(Self { syntax })
15991        } else {
15992            None
15993        }
15994    }
15995    #[inline]
15996    fn syntax(&self) -> &SyntaxNode {
15997        &self.syntax
15998    }
15999}
16000impl AstNode for NoAction {
16001    #[inline]
16002    fn can_cast(kind: SyntaxKind) -> bool {
16003        kind == SyntaxKind::NO_ACTION
16004    }
16005    #[inline]
16006    fn cast(syntax: SyntaxNode) -> Option<Self> {
16007        if Self::can_cast(syntax.kind()) {
16008            Some(Self { syntax })
16009        } else {
16010            None
16011        }
16012    }
16013    #[inline]
16014    fn syntax(&self) -> &SyntaxNode {
16015        &self.syntax
16016    }
16017}
16018impl AstNode for NoForceRls {
16019    #[inline]
16020    fn can_cast(kind: SyntaxKind) -> bool {
16021        kind == SyntaxKind::NO_FORCE_RLS
16022    }
16023    #[inline]
16024    fn cast(syntax: SyntaxNode) -> Option<Self> {
16025        if Self::can_cast(syntax.kind()) {
16026            Some(Self { syntax })
16027        } else {
16028            None
16029        }
16030    }
16031    #[inline]
16032    fn syntax(&self) -> &SyntaxNode {
16033        &self.syntax
16034    }
16035}
16036impl AstNode for NoInherit {
16037    #[inline]
16038    fn can_cast(kind: SyntaxKind) -> bool {
16039        kind == SyntaxKind::NO_INHERIT
16040    }
16041    #[inline]
16042    fn cast(syntax: SyntaxNode) -> Option<Self> {
16043        if Self::can_cast(syntax.kind()) {
16044            Some(Self { syntax })
16045        } else {
16046            None
16047        }
16048    }
16049    #[inline]
16050    fn syntax(&self) -> &SyntaxNode {
16051        &self.syntax
16052    }
16053}
16054impl AstNode for NonStandardParam {
16055    #[inline]
16056    fn can_cast(kind: SyntaxKind) -> bool {
16057        kind == SyntaxKind::NON_STANDARD_PARAM
16058    }
16059    #[inline]
16060    fn cast(syntax: SyntaxNode) -> Option<Self> {
16061        if Self::can_cast(syntax.kind()) {
16062            Some(Self { syntax })
16063        } else {
16064            None
16065        }
16066    }
16067    #[inline]
16068    fn syntax(&self) -> &SyntaxNode {
16069        &self.syntax
16070    }
16071}
16072impl AstNode for NotDeferrable {
16073    #[inline]
16074    fn can_cast(kind: SyntaxKind) -> bool {
16075        kind == SyntaxKind::NOT_DEFERRABLE
16076    }
16077    #[inline]
16078    fn cast(syntax: SyntaxNode) -> Option<Self> {
16079        if Self::can_cast(syntax.kind()) {
16080            Some(Self { syntax })
16081        } else {
16082            None
16083        }
16084    }
16085    #[inline]
16086    fn syntax(&self) -> &SyntaxNode {
16087        &self.syntax
16088    }
16089}
16090impl AstNode for NotDeferrableConstraintOption {
16091    #[inline]
16092    fn can_cast(kind: SyntaxKind) -> bool {
16093        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
16094    }
16095    #[inline]
16096    fn cast(syntax: SyntaxNode) -> Option<Self> {
16097        if Self::can_cast(syntax.kind()) {
16098            Some(Self { syntax })
16099        } else {
16100            None
16101        }
16102    }
16103    #[inline]
16104    fn syntax(&self) -> &SyntaxNode {
16105        &self.syntax
16106    }
16107}
16108impl AstNode for NotEnforced {
16109    #[inline]
16110    fn can_cast(kind: SyntaxKind) -> bool {
16111        kind == SyntaxKind::NOT_ENFORCED
16112    }
16113    #[inline]
16114    fn cast(syntax: SyntaxNode) -> Option<Self> {
16115        if Self::can_cast(syntax.kind()) {
16116            Some(Self { syntax })
16117        } else {
16118            None
16119        }
16120    }
16121    #[inline]
16122    fn syntax(&self) -> &SyntaxNode {
16123        &self.syntax
16124    }
16125}
16126impl AstNode for NotIlike {
16127    #[inline]
16128    fn can_cast(kind: SyntaxKind) -> bool {
16129        kind == SyntaxKind::NOT_ILIKE
16130    }
16131    #[inline]
16132    fn cast(syntax: SyntaxNode) -> Option<Self> {
16133        if Self::can_cast(syntax.kind()) {
16134            Some(Self { syntax })
16135        } else {
16136            None
16137        }
16138    }
16139    #[inline]
16140    fn syntax(&self) -> &SyntaxNode {
16141        &self.syntax
16142    }
16143}
16144impl AstNode for NotIn {
16145    #[inline]
16146    fn can_cast(kind: SyntaxKind) -> bool {
16147        kind == SyntaxKind::NOT_IN
16148    }
16149    #[inline]
16150    fn cast(syntax: SyntaxNode) -> Option<Self> {
16151        if Self::can_cast(syntax.kind()) {
16152            Some(Self { syntax })
16153        } else {
16154            None
16155        }
16156    }
16157    #[inline]
16158    fn syntax(&self) -> &SyntaxNode {
16159        &self.syntax
16160    }
16161}
16162impl AstNode for NotLike {
16163    #[inline]
16164    fn can_cast(kind: SyntaxKind) -> bool {
16165        kind == SyntaxKind::NOT_LIKE
16166    }
16167    #[inline]
16168    fn cast(syntax: SyntaxNode) -> Option<Self> {
16169        if Self::can_cast(syntax.kind()) {
16170            Some(Self { syntax })
16171        } else {
16172            None
16173        }
16174    }
16175    #[inline]
16176    fn syntax(&self) -> &SyntaxNode {
16177        &self.syntax
16178    }
16179}
16180impl AstNode for NotMaterialized {
16181    #[inline]
16182    fn can_cast(kind: SyntaxKind) -> bool {
16183        kind == SyntaxKind::NOT_MATERIALIZED
16184    }
16185    #[inline]
16186    fn cast(syntax: SyntaxNode) -> Option<Self> {
16187        if Self::can_cast(syntax.kind()) {
16188            Some(Self { syntax })
16189        } else {
16190            None
16191        }
16192    }
16193    #[inline]
16194    fn syntax(&self) -> &SyntaxNode {
16195        &self.syntax
16196    }
16197}
16198impl AstNode for NotNullConstraint {
16199    #[inline]
16200    fn can_cast(kind: SyntaxKind) -> bool {
16201        kind == SyntaxKind::NOT_NULL_CONSTRAINT
16202    }
16203    #[inline]
16204    fn cast(syntax: SyntaxNode) -> Option<Self> {
16205        if Self::can_cast(syntax.kind()) {
16206            Some(Self { syntax })
16207        } else {
16208            None
16209        }
16210    }
16211    #[inline]
16212    fn syntax(&self) -> &SyntaxNode {
16213        &self.syntax
16214    }
16215}
16216impl AstNode for NotOf {
16217    #[inline]
16218    fn can_cast(kind: SyntaxKind) -> bool {
16219        kind == SyntaxKind::NOT_OF
16220    }
16221    #[inline]
16222    fn cast(syntax: SyntaxNode) -> Option<Self> {
16223        if Self::can_cast(syntax.kind()) {
16224            Some(Self { syntax })
16225        } else {
16226            None
16227        }
16228    }
16229    #[inline]
16230    fn syntax(&self) -> &SyntaxNode {
16231        &self.syntax
16232    }
16233}
16234impl AstNode for NotSimilarTo {
16235    #[inline]
16236    fn can_cast(kind: SyntaxKind) -> bool {
16237        kind == SyntaxKind::NOT_SIMILAR_TO
16238    }
16239    #[inline]
16240    fn cast(syntax: SyntaxNode) -> Option<Self> {
16241        if Self::can_cast(syntax.kind()) {
16242            Some(Self { syntax })
16243        } else {
16244            None
16245        }
16246    }
16247    #[inline]
16248    fn syntax(&self) -> &SyntaxNode {
16249        &self.syntax
16250    }
16251}
16252impl AstNode for NotValid {
16253    #[inline]
16254    fn can_cast(kind: SyntaxKind) -> bool {
16255        kind == SyntaxKind::NOT_VALID
16256    }
16257    #[inline]
16258    fn cast(syntax: SyntaxNode) -> Option<Self> {
16259        if Self::can_cast(syntax.kind()) {
16260            Some(Self { syntax })
16261        } else {
16262            None
16263        }
16264    }
16265    #[inline]
16266    fn syntax(&self) -> &SyntaxNode {
16267        &self.syntax
16268    }
16269}
16270impl AstNode for Notify {
16271    #[inline]
16272    fn can_cast(kind: SyntaxKind) -> bool {
16273        kind == SyntaxKind::NOTIFY
16274    }
16275    #[inline]
16276    fn cast(syntax: SyntaxNode) -> Option<Self> {
16277        if Self::can_cast(syntax.kind()) {
16278            Some(Self { syntax })
16279        } else {
16280            None
16281        }
16282    }
16283    #[inline]
16284    fn syntax(&self) -> &SyntaxNode {
16285        &self.syntax
16286    }
16287}
16288impl AstNode for NullConstraint {
16289    #[inline]
16290    fn can_cast(kind: SyntaxKind) -> bool {
16291        kind == SyntaxKind::NULL_CONSTRAINT
16292    }
16293    #[inline]
16294    fn cast(syntax: SyntaxNode) -> Option<Self> {
16295        if Self::can_cast(syntax.kind()) {
16296            Some(Self { syntax })
16297        } else {
16298            None
16299        }
16300    }
16301    #[inline]
16302    fn syntax(&self) -> &SyntaxNode {
16303        &self.syntax
16304    }
16305}
16306impl AstNode for NullsDistinct {
16307    #[inline]
16308    fn can_cast(kind: SyntaxKind) -> bool {
16309        kind == SyntaxKind::NULLS_DISTINCT
16310    }
16311    #[inline]
16312    fn cast(syntax: SyntaxNode) -> Option<Self> {
16313        if Self::can_cast(syntax.kind()) {
16314            Some(Self { syntax })
16315        } else {
16316            None
16317        }
16318    }
16319    #[inline]
16320    fn syntax(&self) -> &SyntaxNode {
16321        &self.syntax
16322    }
16323}
16324impl AstNode for NullsFirst {
16325    #[inline]
16326    fn can_cast(kind: SyntaxKind) -> bool {
16327        kind == SyntaxKind::NULLS_FIRST
16328    }
16329    #[inline]
16330    fn cast(syntax: SyntaxNode) -> Option<Self> {
16331        if Self::can_cast(syntax.kind()) {
16332            Some(Self { syntax })
16333        } else {
16334            None
16335        }
16336    }
16337    #[inline]
16338    fn syntax(&self) -> &SyntaxNode {
16339        &self.syntax
16340    }
16341}
16342impl AstNode for NullsLast {
16343    #[inline]
16344    fn can_cast(kind: SyntaxKind) -> bool {
16345        kind == SyntaxKind::NULLS_LAST
16346    }
16347    #[inline]
16348    fn cast(syntax: SyntaxNode) -> Option<Self> {
16349        if Self::can_cast(syntax.kind()) {
16350            Some(Self { syntax })
16351        } else {
16352            None
16353        }
16354    }
16355    #[inline]
16356    fn syntax(&self) -> &SyntaxNode {
16357        &self.syntax
16358    }
16359}
16360impl AstNode for NullsNotDistinct {
16361    #[inline]
16362    fn can_cast(kind: SyntaxKind) -> bool {
16363        kind == SyntaxKind::NULLS_NOT_DISTINCT
16364    }
16365    #[inline]
16366    fn cast(syntax: SyntaxNode) -> Option<Self> {
16367        if Self::can_cast(syntax.kind()) {
16368            Some(Self { syntax })
16369        } else {
16370            None
16371        }
16372    }
16373    #[inline]
16374    fn syntax(&self) -> &SyntaxNode {
16375        &self.syntax
16376    }
16377}
16378impl AstNode for OfType {
16379    #[inline]
16380    fn can_cast(kind: SyntaxKind) -> bool {
16381        kind == SyntaxKind::OF_TYPE
16382    }
16383    #[inline]
16384    fn cast(syntax: SyntaxNode) -> Option<Self> {
16385        if Self::can_cast(syntax.kind()) {
16386            Some(Self { syntax })
16387        } else {
16388            None
16389        }
16390    }
16391    #[inline]
16392    fn syntax(&self) -> &SyntaxNode {
16393        &self.syntax
16394    }
16395}
16396impl AstNode for OffsetClause {
16397    #[inline]
16398    fn can_cast(kind: SyntaxKind) -> bool {
16399        kind == SyntaxKind::OFFSET_CLAUSE
16400    }
16401    #[inline]
16402    fn cast(syntax: SyntaxNode) -> Option<Self> {
16403        if Self::can_cast(syntax.kind()) {
16404            Some(Self { syntax })
16405        } else {
16406            None
16407        }
16408    }
16409    #[inline]
16410    fn syntax(&self) -> &SyntaxNode {
16411        &self.syntax
16412    }
16413}
16414impl AstNode for OnClause {
16415    #[inline]
16416    fn can_cast(kind: SyntaxKind) -> bool {
16417        kind == SyntaxKind::ON_CLAUSE
16418    }
16419    #[inline]
16420    fn cast(syntax: SyntaxNode) -> Option<Self> {
16421        if Self::can_cast(syntax.kind()) {
16422            Some(Self { syntax })
16423        } else {
16424            None
16425        }
16426    }
16427    #[inline]
16428    fn syntax(&self) -> &SyntaxNode {
16429        &self.syntax
16430    }
16431}
16432impl AstNode for OnCommit {
16433    #[inline]
16434    fn can_cast(kind: SyntaxKind) -> bool {
16435        kind == SyntaxKind::ON_COMMIT
16436    }
16437    #[inline]
16438    fn cast(syntax: SyntaxNode) -> Option<Self> {
16439        if Self::can_cast(syntax.kind()) {
16440            Some(Self { syntax })
16441        } else {
16442            None
16443        }
16444    }
16445    #[inline]
16446    fn syntax(&self) -> &SyntaxNode {
16447        &self.syntax
16448    }
16449}
16450impl AstNode for OnDeleteAction {
16451    #[inline]
16452    fn can_cast(kind: SyntaxKind) -> bool {
16453        kind == SyntaxKind::ON_DELETE_ACTION
16454    }
16455    #[inline]
16456    fn cast(syntax: SyntaxNode) -> Option<Self> {
16457        if Self::can_cast(syntax.kind()) {
16458            Some(Self { syntax })
16459        } else {
16460            None
16461        }
16462    }
16463    #[inline]
16464    fn syntax(&self) -> &SyntaxNode {
16465        &self.syntax
16466    }
16467}
16468impl AstNode for OnUpdateAction {
16469    #[inline]
16470    fn can_cast(kind: SyntaxKind) -> bool {
16471        kind == SyntaxKind::ON_UPDATE_ACTION
16472    }
16473    #[inline]
16474    fn cast(syntax: SyntaxNode) -> Option<Self> {
16475        if Self::can_cast(syntax.kind()) {
16476            Some(Self { syntax })
16477        } else {
16478            None
16479        }
16480    }
16481    #[inline]
16482    fn syntax(&self) -> &SyntaxNode {
16483        &self.syntax
16484    }
16485}
16486impl AstNode for Op {
16487    #[inline]
16488    fn can_cast(kind: SyntaxKind) -> bool {
16489        kind == SyntaxKind::OP
16490    }
16491    #[inline]
16492    fn cast(syntax: SyntaxNode) -> Option<Self> {
16493        if Self::can_cast(syntax.kind()) {
16494            Some(Self { syntax })
16495        } else {
16496            None
16497        }
16498    }
16499    #[inline]
16500    fn syntax(&self) -> &SyntaxNode {
16501        &self.syntax
16502    }
16503}
16504impl AstNode for OperatorCall {
16505    #[inline]
16506    fn can_cast(kind: SyntaxKind) -> bool {
16507        kind == SyntaxKind::OPERATOR_CALL
16508    }
16509    #[inline]
16510    fn cast(syntax: SyntaxNode) -> Option<Self> {
16511        if Self::can_cast(syntax.kind()) {
16512            Some(Self { syntax })
16513        } else {
16514            None
16515        }
16516    }
16517    #[inline]
16518    fn syntax(&self) -> &SyntaxNode {
16519        &self.syntax
16520    }
16521}
16522impl AstNode for OptionsList {
16523    #[inline]
16524    fn can_cast(kind: SyntaxKind) -> bool {
16525        kind == SyntaxKind::OPTIONS_LIST
16526    }
16527    #[inline]
16528    fn cast(syntax: SyntaxNode) -> Option<Self> {
16529        if Self::can_cast(syntax.kind()) {
16530            Some(Self { syntax })
16531        } else {
16532            None
16533        }
16534    }
16535    #[inline]
16536    fn syntax(&self) -> &SyntaxNode {
16537        &self.syntax
16538    }
16539}
16540impl AstNode for OrReplace {
16541    #[inline]
16542    fn can_cast(kind: SyntaxKind) -> bool {
16543        kind == SyntaxKind::OR_REPLACE
16544    }
16545    #[inline]
16546    fn cast(syntax: SyntaxNode) -> Option<Self> {
16547        if Self::can_cast(syntax.kind()) {
16548            Some(Self { syntax })
16549        } else {
16550            None
16551        }
16552    }
16553    #[inline]
16554    fn syntax(&self) -> &SyntaxNode {
16555        &self.syntax
16556    }
16557}
16558impl AstNode for OrderByClause {
16559    #[inline]
16560    fn can_cast(kind: SyntaxKind) -> bool {
16561        kind == SyntaxKind::ORDER_BY_CLAUSE
16562    }
16563    #[inline]
16564    fn cast(syntax: SyntaxNode) -> Option<Self> {
16565        if Self::can_cast(syntax.kind()) {
16566            Some(Self { syntax })
16567        } else {
16568            None
16569        }
16570    }
16571    #[inline]
16572    fn syntax(&self) -> &SyntaxNode {
16573        &self.syntax
16574    }
16575}
16576impl AstNode for OverClause {
16577    #[inline]
16578    fn can_cast(kind: SyntaxKind) -> bool {
16579        kind == SyntaxKind::OVER_CLAUSE
16580    }
16581    #[inline]
16582    fn cast(syntax: SyntaxNode) -> Option<Self> {
16583        if Self::can_cast(syntax.kind()) {
16584            Some(Self { syntax })
16585        } else {
16586            None
16587        }
16588    }
16589    #[inline]
16590    fn syntax(&self) -> &SyntaxNode {
16591        &self.syntax
16592    }
16593}
16594impl AstNode for OwnerTo {
16595    #[inline]
16596    fn can_cast(kind: SyntaxKind) -> bool {
16597        kind == SyntaxKind::OWNER_TO
16598    }
16599    #[inline]
16600    fn cast(syntax: SyntaxNode) -> Option<Self> {
16601        if Self::can_cast(syntax.kind()) {
16602            Some(Self { syntax })
16603        } else {
16604            None
16605        }
16606    }
16607    #[inline]
16608    fn syntax(&self) -> &SyntaxNode {
16609        &self.syntax
16610    }
16611}
16612impl AstNode for ParallelFuncOption {
16613    #[inline]
16614    fn can_cast(kind: SyntaxKind) -> bool {
16615        kind == SyntaxKind::PARALLEL_FUNC_OPTION
16616    }
16617    #[inline]
16618    fn cast(syntax: SyntaxNode) -> Option<Self> {
16619        if Self::can_cast(syntax.kind()) {
16620            Some(Self { syntax })
16621        } else {
16622            None
16623        }
16624    }
16625    #[inline]
16626    fn syntax(&self) -> &SyntaxNode {
16627        &self.syntax
16628    }
16629}
16630impl AstNode for Param {
16631    #[inline]
16632    fn can_cast(kind: SyntaxKind) -> bool {
16633        kind == SyntaxKind::PARAM
16634    }
16635    #[inline]
16636    fn cast(syntax: SyntaxNode) -> Option<Self> {
16637        if Self::can_cast(syntax.kind()) {
16638            Some(Self { syntax })
16639        } else {
16640            None
16641        }
16642    }
16643    #[inline]
16644    fn syntax(&self) -> &SyntaxNode {
16645        &self.syntax
16646    }
16647}
16648impl AstNode for ParamDefault {
16649    #[inline]
16650    fn can_cast(kind: SyntaxKind) -> bool {
16651        kind == SyntaxKind::PARAM_DEFAULT
16652    }
16653    #[inline]
16654    fn cast(syntax: SyntaxNode) -> Option<Self> {
16655        if Self::can_cast(syntax.kind()) {
16656            Some(Self { syntax })
16657        } else {
16658            None
16659        }
16660    }
16661    #[inline]
16662    fn syntax(&self) -> &SyntaxNode {
16663        &self.syntax
16664    }
16665}
16666impl AstNode for ParamIn {
16667    #[inline]
16668    fn can_cast(kind: SyntaxKind) -> bool {
16669        kind == SyntaxKind::PARAM_IN
16670    }
16671    #[inline]
16672    fn cast(syntax: SyntaxNode) -> Option<Self> {
16673        if Self::can_cast(syntax.kind()) {
16674            Some(Self { syntax })
16675        } else {
16676            None
16677        }
16678    }
16679    #[inline]
16680    fn syntax(&self) -> &SyntaxNode {
16681        &self.syntax
16682    }
16683}
16684impl AstNode for ParamInOut {
16685    #[inline]
16686    fn can_cast(kind: SyntaxKind) -> bool {
16687        kind == SyntaxKind::PARAM_IN_OUT
16688    }
16689    #[inline]
16690    fn cast(syntax: SyntaxNode) -> Option<Self> {
16691        if Self::can_cast(syntax.kind()) {
16692            Some(Self { syntax })
16693        } else {
16694            None
16695        }
16696    }
16697    #[inline]
16698    fn syntax(&self) -> &SyntaxNode {
16699        &self.syntax
16700    }
16701}
16702impl AstNode for ParamList {
16703    #[inline]
16704    fn can_cast(kind: SyntaxKind) -> bool {
16705        kind == SyntaxKind::PARAM_LIST
16706    }
16707    #[inline]
16708    fn cast(syntax: SyntaxNode) -> Option<Self> {
16709        if Self::can_cast(syntax.kind()) {
16710            Some(Self { syntax })
16711        } else {
16712            None
16713        }
16714    }
16715    #[inline]
16716    fn syntax(&self) -> &SyntaxNode {
16717        &self.syntax
16718    }
16719}
16720impl AstNode for ParamOut {
16721    #[inline]
16722    fn can_cast(kind: SyntaxKind) -> bool {
16723        kind == SyntaxKind::PARAM_OUT
16724    }
16725    #[inline]
16726    fn cast(syntax: SyntaxNode) -> Option<Self> {
16727        if Self::can_cast(syntax.kind()) {
16728            Some(Self { syntax })
16729        } else {
16730            None
16731        }
16732    }
16733    #[inline]
16734    fn syntax(&self) -> &SyntaxNode {
16735        &self.syntax
16736    }
16737}
16738impl AstNode for ParamVariadic {
16739    #[inline]
16740    fn can_cast(kind: SyntaxKind) -> bool {
16741        kind == SyntaxKind::PARAM_VARIADIC
16742    }
16743    #[inline]
16744    fn cast(syntax: SyntaxNode) -> Option<Self> {
16745        if Self::can_cast(syntax.kind()) {
16746            Some(Self { syntax })
16747        } else {
16748            None
16749        }
16750    }
16751    #[inline]
16752    fn syntax(&self) -> &SyntaxNode {
16753        &self.syntax
16754    }
16755}
16756impl AstNode for ParenExpr {
16757    #[inline]
16758    fn can_cast(kind: SyntaxKind) -> bool {
16759        kind == SyntaxKind::PAREN_EXPR
16760    }
16761    #[inline]
16762    fn cast(syntax: SyntaxNode) -> Option<Self> {
16763        if Self::can_cast(syntax.kind()) {
16764            Some(Self { syntax })
16765        } else {
16766            None
16767        }
16768    }
16769    #[inline]
16770    fn syntax(&self) -> &SyntaxNode {
16771        &self.syntax
16772    }
16773}
16774impl AstNode for ParenSelect {
16775    #[inline]
16776    fn can_cast(kind: SyntaxKind) -> bool {
16777        kind == SyntaxKind::PAREN_SELECT
16778    }
16779    #[inline]
16780    fn cast(syntax: SyntaxNode) -> Option<Self> {
16781        if Self::can_cast(syntax.kind()) {
16782            Some(Self { syntax })
16783        } else {
16784            None
16785        }
16786    }
16787    #[inline]
16788    fn syntax(&self) -> &SyntaxNode {
16789        &self.syntax
16790    }
16791}
16792impl AstNode for PartitionBy {
16793    #[inline]
16794    fn can_cast(kind: SyntaxKind) -> bool {
16795        kind == SyntaxKind::PARTITION_BY
16796    }
16797    #[inline]
16798    fn cast(syntax: SyntaxNode) -> Option<Self> {
16799        if Self::can_cast(syntax.kind()) {
16800            Some(Self { syntax })
16801        } else {
16802            None
16803        }
16804    }
16805    #[inline]
16806    fn syntax(&self) -> &SyntaxNode {
16807        &self.syntax
16808    }
16809}
16810impl AstNode for PartitionDefault {
16811    #[inline]
16812    fn can_cast(kind: SyntaxKind) -> bool {
16813        kind == SyntaxKind::PARTITION_DEFAULT
16814    }
16815    #[inline]
16816    fn cast(syntax: SyntaxNode) -> Option<Self> {
16817        if Self::can_cast(syntax.kind()) {
16818            Some(Self { syntax })
16819        } else {
16820            None
16821        }
16822    }
16823    #[inline]
16824    fn syntax(&self) -> &SyntaxNode {
16825        &self.syntax
16826    }
16827}
16828impl AstNode for PartitionForValuesFrom {
16829    #[inline]
16830    fn can_cast(kind: SyntaxKind) -> bool {
16831        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
16832    }
16833    #[inline]
16834    fn cast(syntax: SyntaxNode) -> Option<Self> {
16835        if Self::can_cast(syntax.kind()) {
16836            Some(Self { syntax })
16837        } else {
16838            None
16839        }
16840    }
16841    #[inline]
16842    fn syntax(&self) -> &SyntaxNode {
16843        &self.syntax
16844    }
16845}
16846impl AstNode for PartitionForValuesIn {
16847    #[inline]
16848    fn can_cast(kind: SyntaxKind) -> bool {
16849        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
16850    }
16851    #[inline]
16852    fn cast(syntax: SyntaxNode) -> Option<Self> {
16853        if Self::can_cast(syntax.kind()) {
16854            Some(Self { syntax })
16855        } else {
16856            None
16857        }
16858    }
16859    #[inline]
16860    fn syntax(&self) -> &SyntaxNode {
16861        &self.syntax
16862    }
16863}
16864impl AstNode for PartitionForValuesWith {
16865    #[inline]
16866    fn can_cast(kind: SyntaxKind) -> bool {
16867        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
16868    }
16869    #[inline]
16870    fn cast(syntax: SyntaxNode) -> Option<Self> {
16871        if Self::can_cast(syntax.kind()) {
16872            Some(Self { syntax })
16873        } else {
16874            None
16875        }
16876    }
16877    #[inline]
16878    fn syntax(&self) -> &SyntaxNode {
16879        &self.syntax
16880    }
16881}
16882impl AstNode for PartitionItem {
16883    #[inline]
16884    fn can_cast(kind: SyntaxKind) -> bool {
16885        kind == SyntaxKind::PARTITION_ITEM
16886    }
16887    #[inline]
16888    fn cast(syntax: SyntaxNode) -> Option<Self> {
16889        if Self::can_cast(syntax.kind()) {
16890            Some(Self { syntax })
16891        } else {
16892            None
16893        }
16894    }
16895    #[inline]
16896    fn syntax(&self) -> &SyntaxNode {
16897        &self.syntax
16898    }
16899}
16900impl AstNode for PartitionOf {
16901    #[inline]
16902    fn can_cast(kind: SyntaxKind) -> bool {
16903        kind == SyntaxKind::PARTITION_OF
16904    }
16905    #[inline]
16906    fn cast(syntax: SyntaxNode) -> Option<Self> {
16907        if Self::can_cast(syntax.kind()) {
16908            Some(Self { syntax })
16909        } else {
16910            None
16911        }
16912    }
16913    #[inline]
16914    fn syntax(&self) -> &SyntaxNode {
16915        &self.syntax
16916    }
16917}
16918impl AstNode for Path {
16919    #[inline]
16920    fn can_cast(kind: SyntaxKind) -> bool {
16921        kind == SyntaxKind::PATH
16922    }
16923    #[inline]
16924    fn cast(syntax: SyntaxNode) -> Option<Self> {
16925        if Self::can_cast(syntax.kind()) {
16926            Some(Self { syntax })
16927        } else {
16928            None
16929        }
16930    }
16931    #[inline]
16932    fn syntax(&self) -> &SyntaxNode {
16933        &self.syntax
16934    }
16935}
16936impl AstNode for PathSegment {
16937    #[inline]
16938    fn can_cast(kind: SyntaxKind) -> bool {
16939        kind == SyntaxKind::PATH_SEGMENT
16940    }
16941    #[inline]
16942    fn cast(syntax: SyntaxNode) -> Option<Self> {
16943        if Self::can_cast(syntax.kind()) {
16944            Some(Self { syntax })
16945        } else {
16946            None
16947        }
16948    }
16949    #[inline]
16950    fn syntax(&self) -> &SyntaxNode {
16951        &self.syntax
16952    }
16953}
16954impl AstNode for PathType {
16955    #[inline]
16956    fn can_cast(kind: SyntaxKind) -> bool {
16957        kind == SyntaxKind::PATH_TYPE
16958    }
16959    #[inline]
16960    fn cast(syntax: SyntaxNode) -> Option<Self> {
16961        if Self::can_cast(syntax.kind()) {
16962            Some(Self { syntax })
16963        } else {
16964            None
16965        }
16966    }
16967    #[inline]
16968    fn syntax(&self) -> &SyntaxNode {
16969        &self.syntax
16970    }
16971}
16972impl AstNode for PercentType {
16973    #[inline]
16974    fn can_cast(kind: SyntaxKind) -> bool {
16975        kind == SyntaxKind::PERCENT_TYPE
16976    }
16977    #[inline]
16978    fn cast(syntax: SyntaxNode) -> Option<Self> {
16979        if Self::can_cast(syntax.kind()) {
16980            Some(Self { syntax })
16981        } else {
16982            None
16983        }
16984    }
16985    #[inline]
16986    fn syntax(&self) -> &SyntaxNode {
16987        &self.syntax
16988    }
16989}
16990impl AstNode for PercentTypeClause {
16991    #[inline]
16992    fn can_cast(kind: SyntaxKind) -> bool {
16993        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
16994    }
16995    #[inline]
16996    fn cast(syntax: SyntaxNode) -> Option<Self> {
16997        if Self::can_cast(syntax.kind()) {
16998            Some(Self { syntax })
16999        } else {
17000            None
17001        }
17002    }
17003    #[inline]
17004    fn syntax(&self) -> &SyntaxNode {
17005        &self.syntax
17006    }
17007}
17008impl AstNode for PostfixExpr {
17009    #[inline]
17010    fn can_cast(kind: SyntaxKind) -> bool {
17011        kind == SyntaxKind::POSTFIX_EXPR
17012    }
17013    #[inline]
17014    fn cast(syntax: SyntaxNode) -> Option<Self> {
17015        if Self::can_cast(syntax.kind()) {
17016            Some(Self { syntax })
17017        } else {
17018            None
17019        }
17020    }
17021    #[inline]
17022    fn syntax(&self) -> &SyntaxNode {
17023        &self.syntax
17024    }
17025}
17026impl AstNode for PrefixExpr {
17027    #[inline]
17028    fn can_cast(kind: SyntaxKind) -> bool {
17029        kind == SyntaxKind::PREFIX_EXPR
17030    }
17031    #[inline]
17032    fn cast(syntax: SyntaxNode) -> Option<Self> {
17033        if Self::can_cast(syntax.kind()) {
17034            Some(Self { syntax })
17035        } else {
17036            None
17037        }
17038    }
17039    #[inline]
17040    fn syntax(&self) -> &SyntaxNode {
17041        &self.syntax
17042    }
17043}
17044impl AstNode for Prepare {
17045    #[inline]
17046    fn can_cast(kind: SyntaxKind) -> bool {
17047        kind == SyntaxKind::PREPARE
17048    }
17049    #[inline]
17050    fn cast(syntax: SyntaxNode) -> Option<Self> {
17051        if Self::can_cast(syntax.kind()) {
17052            Some(Self { syntax })
17053        } else {
17054            None
17055        }
17056    }
17057    #[inline]
17058    fn syntax(&self) -> &SyntaxNode {
17059        &self.syntax
17060    }
17061}
17062impl AstNode for PrepareTransaction {
17063    #[inline]
17064    fn can_cast(kind: SyntaxKind) -> bool {
17065        kind == SyntaxKind::PREPARE_TRANSACTION
17066    }
17067    #[inline]
17068    fn cast(syntax: SyntaxNode) -> Option<Self> {
17069        if Self::can_cast(syntax.kind()) {
17070            Some(Self { syntax })
17071        } else {
17072            None
17073        }
17074    }
17075    #[inline]
17076    fn syntax(&self) -> &SyntaxNode {
17077        &self.syntax
17078    }
17079}
17080impl AstNode for PreserveRows {
17081    #[inline]
17082    fn can_cast(kind: SyntaxKind) -> bool {
17083        kind == SyntaxKind::PRESERVE_ROWS
17084    }
17085    #[inline]
17086    fn cast(syntax: SyntaxNode) -> Option<Self> {
17087        if Self::can_cast(syntax.kind()) {
17088            Some(Self { syntax })
17089        } else {
17090            None
17091        }
17092    }
17093    #[inline]
17094    fn syntax(&self) -> &SyntaxNode {
17095        &self.syntax
17096    }
17097}
17098impl AstNode for PrimaryKeyConstraint {
17099    #[inline]
17100    fn can_cast(kind: SyntaxKind) -> bool {
17101        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
17102    }
17103    #[inline]
17104    fn cast(syntax: SyntaxNode) -> Option<Self> {
17105        if Self::can_cast(syntax.kind()) {
17106            Some(Self { syntax })
17107        } else {
17108            None
17109        }
17110    }
17111    #[inline]
17112    fn syntax(&self) -> &SyntaxNode {
17113        &self.syntax
17114    }
17115}
17116impl AstNode for ReadCommitted {
17117    #[inline]
17118    fn can_cast(kind: SyntaxKind) -> bool {
17119        kind == SyntaxKind::READ_COMMITTED
17120    }
17121    #[inline]
17122    fn cast(syntax: SyntaxNode) -> Option<Self> {
17123        if Self::can_cast(syntax.kind()) {
17124            Some(Self { syntax })
17125        } else {
17126            None
17127        }
17128    }
17129    #[inline]
17130    fn syntax(&self) -> &SyntaxNode {
17131        &self.syntax
17132    }
17133}
17134impl AstNode for ReadOnly {
17135    #[inline]
17136    fn can_cast(kind: SyntaxKind) -> bool {
17137        kind == SyntaxKind::READ_ONLY
17138    }
17139    #[inline]
17140    fn cast(syntax: SyntaxNode) -> Option<Self> {
17141        if Self::can_cast(syntax.kind()) {
17142            Some(Self { syntax })
17143        } else {
17144            None
17145        }
17146    }
17147    #[inline]
17148    fn syntax(&self) -> &SyntaxNode {
17149        &self.syntax
17150    }
17151}
17152impl AstNode for ReadUncommitted {
17153    #[inline]
17154    fn can_cast(kind: SyntaxKind) -> bool {
17155        kind == SyntaxKind::READ_UNCOMMITTED
17156    }
17157    #[inline]
17158    fn cast(syntax: SyntaxNode) -> Option<Self> {
17159        if Self::can_cast(syntax.kind()) {
17160            Some(Self { syntax })
17161        } else {
17162            None
17163        }
17164    }
17165    #[inline]
17166    fn syntax(&self) -> &SyntaxNode {
17167        &self.syntax
17168    }
17169}
17170impl AstNode for ReadWrite {
17171    #[inline]
17172    fn can_cast(kind: SyntaxKind) -> bool {
17173        kind == SyntaxKind::READ_WRITE
17174    }
17175    #[inline]
17176    fn cast(syntax: SyntaxNode) -> Option<Self> {
17177        if Self::can_cast(syntax.kind()) {
17178            Some(Self { syntax })
17179        } else {
17180            None
17181        }
17182    }
17183    #[inline]
17184    fn syntax(&self) -> &SyntaxNode {
17185        &self.syntax
17186    }
17187}
17188impl AstNode for Reassign {
17189    #[inline]
17190    fn can_cast(kind: SyntaxKind) -> bool {
17191        kind == SyntaxKind::REASSIGN
17192    }
17193    #[inline]
17194    fn cast(syntax: SyntaxNode) -> Option<Self> {
17195        if Self::can_cast(syntax.kind()) {
17196            Some(Self { syntax })
17197        } else {
17198            None
17199        }
17200    }
17201    #[inline]
17202    fn syntax(&self) -> &SyntaxNode {
17203        &self.syntax
17204    }
17205}
17206impl AstNode for ReferencesConstraint {
17207    #[inline]
17208    fn can_cast(kind: SyntaxKind) -> bool {
17209        kind == SyntaxKind::REFERENCES_CONSTRAINT
17210    }
17211    #[inline]
17212    fn cast(syntax: SyntaxNode) -> Option<Self> {
17213        if Self::can_cast(syntax.kind()) {
17214            Some(Self { syntax })
17215        } else {
17216            None
17217        }
17218    }
17219    #[inline]
17220    fn syntax(&self) -> &SyntaxNode {
17221        &self.syntax
17222    }
17223}
17224impl AstNode for Refresh {
17225    #[inline]
17226    fn can_cast(kind: SyntaxKind) -> bool {
17227        kind == SyntaxKind::REFRESH
17228    }
17229    #[inline]
17230    fn cast(syntax: SyntaxNode) -> Option<Self> {
17231        if Self::can_cast(syntax.kind()) {
17232            Some(Self { syntax })
17233        } else {
17234            None
17235        }
17236    }
17237    #[inline]
17238    fn syntax(&self) -> &SyntaxNode {
17239        &self.syntax
17240    }
17241}
17242impl AstNode for Reindex {
17243    #[inline]
17244    fn can_cast(kind: SyntaxKind) -> bool {
17245        kind == SyntaxKind::REINDEX
17246    }
17247    #[inline]
17248    fn cast(syntax: SyntaxNode) -> Option<Self> {
17249        if Self::can_cast(syntax.kind()) {
17250            Some(Self { syntax })
17251        } else {
17252            None
17253        }
17254    }
17255    #[inline]
17256    fn syntax(&self) -> &SyntaxNode {
17257        &self.syntax
17258    }
17259}
17260impl AstNode for RelationName {
17261    #[inline]
17262    fn can_cast(kind: SyntaxKind) -> bool {
17263        kind == SyntaxKind::RELATION_NAME
17264    }
17265    #[inline]
17266    fn cast(syntax: SyntaxNode) -> Option<Self> {
17267        if Self::can_cast(syntax.kind()) {
17268            Some(Self { syntax })
17269        } else {
17270            None
17271        }
17272    }
17273    #[inline]
17274    fn syntax(&self) -> &SyntaxNode {
17275        &self.syntax
17276    }
17277}
17278impl AstNode for ReleaseSavepoint {
17279    #[inline]
17280    fn can_cast(kind: SyntaxKind) -> bool {
17281        kind == SyntaxKind::RELEASE_SAVEPOINT
17282    }
17283    #[inline]
17284    fn cast(syntax: SyntaxNode) -> Option<Self> {
17285        if Self::can_cast(syntax.kind()) {
17286            Some(Self { syntax })
17287        } else {
17288            None
17289        }
17290    }
17291    #[inline]
17292    fn syntax(&self) -> &SyntaxNode {
17293        &self.syntax
17294    }
17295}
17296impl AstNode for RenameColumn {
17297    #[inline]
17298    fn can_cast(kind: SyntaxKind) -> bool {
17299        kind == SyntaxKind::RENAME_COLUMN
17300    }
17301    #[inline]
17302    fn cast(syntax: SyntaxNode) -> Option<Self> {
17303        if Self::can_cast(syntax.kind()) {
17304            Some(Self { syntax })
17305        } else {
17306            None
17307        }
17308    }
17309    #[inline]
17310    fn syntax(&self) -> &SyntaxNode {
17311        &self.syntax
17312    }
17313}
17314impl AstNode for RenameConstraint {
17315    #[inline]
17316    fn can_cast(kind: SyntaxKind) -> bool {
17317        kind == SyntaxKind::RENAME_CONSTRAINT
17318    }
17319    #[inline]
17320    fn cast(syntax: SyntaxNode) -> Option<Self> {
17321        if Self::can_cast(syntax.kind()) {
17322            Some(Self { syntax })
17323        } else {
17324            None
17325        }
17326    }
17327    #[inline]
17328    fn syntax(&self) -> &SyntaxNode {
17329        &self.syntax
17330    }
17331}
17332impl AstNode for RenameTable {
17333    #[inline]
17334    fn can_cast(kind: SyntaxKind) -> bool {
17335        kind == SyntaxKind::RENAME_TABLE
17336    }
17337    #[inline]
17338    fn cast(syntax: SyntaxNode) -> Option<Self> {
17339        if Self::can_cast(syntax.kind()) {
17340            Some(Self { syntax })
17341        } else {
17342            None
17343        }
17344    }
17345    #[inline]
17346    fn syntax(&self) -> &SyntaxNode {
17347        &self.syntax
17348    }
17349}
17350impl AstNode for RenameTo {
17351    #[inline]
17352    fn can_cast(kind: SyntaxKind) -> bool {
17353        kind == SyntaxKind::RENAME_TO
17354    }
17355    #[inline]
17356    fn cast(syntax: SyntaxNode) -> Option<Self> {
17357        if Self::can_cast(syntax.kind()) {
17358            Some(Self { syntax })
17359        } else {
17360            None
17361        }
17362    }
17363    #[inline]
17364    fn syntax(&self) -> &SyntaxNode {
17365        &self.syntax
17366    }
17367}
17368impl AstNode for RepeatableRead {
17369    #[inline]
17370    fn can_cast(kind: SyntaxKind) -> bool {
17371        kind == SyntaxKind::REPEATABLE_READ
17372    }
17373    #[inline]
17374    fn cast(syntax: SyntaxNode) -> Option<Self> {
17375        if Self::can_cast(syntax.kind()) {
17376            Some(Self { syntax })
17377        } else {
17378            None
17379        }
17380    }
17381    #[inline]
17382    fn syntax(&self) -> &SyntaxNode {
17383        &self.syntax
17384    }
17385}
17386impl AstNode for ReplicaIdentity {
17387    #[inline]
17388    fn can_cast(kind: SyntaxKind) -> bool {
17389        kind == SyntaxKind::REPLICA_IDENTITY
17390    }
17391    #[inline]
17392    fn cast(syntax: SyntaxNode) -> Option<Self> {
17393        if Self::can_cast(syntax.kind()) {
17394            Some(Self { syntax })
17395        } else {
17396            None
17397        }
17398    }
17399    #[inline]
17400    fn syntax(&self) -> &SyntaxNode {
17401        &self.syntax
17402    }
17403}
17404impl AstNode for Reset {
17405    #[inline]
17406    fn can_cast(kind: SyntaxKind) -> bool {
17407        kind == SyntaxKind::RESET
17408    }
17409    #[inline]
17410    fn cast(syntax: SyntaxNode) -> Option<Self> {
17411        if Self::can_cast(syntax.kind()) {
17412            Some(Self { syntax })
17413        } else {
17414            None
17415        }
17416    }
17417    #[inline]
17418    fn syntax(&self) -> &SyntaxNode {
17419        &self.syntax
17420    }
17421}
17422impl AstNode for ResetFuncOption {
17423    #[inline]
17424    fn can_cast(kind: SyntaxKind) -> bool {
17425        kind == SyntaxKind::RESET_FUNC_OPTION
17426    }
17427    #[inline]
17428    fn cast(syntax: SyntaxNode) -> Option<Self> {
17429        if Self::can_cast(syntax.kind()) {
17430            Some(Self { syntax })
17431        } else {
17432            None
17433        }
17434    }
17435    #[inline]
17436    fn syntax(&self) -> &SyntaxNode {
17437        &self.syntax
17438    }
17439}
17440impl AstNode for ResetOptions {
17441    #[inline]
17442    fn can_cast(kind: SyntaxKind) -> bool {
17443        kind == SyntaxKind::RESET_OPTIONS
17444    }
17445    #[inline]
17446    fn cast(syntax: SyntaxNode) -> Option<Self> {
17447        if Self::can_cast(syntax.kind()) {
17448            Some(Self { syntax })
17449        } else {
17450            None
17451        }
17452    }
17453    #[inline]
17454    fn syntax(&self) -> &SyntaxNode {
17455        &self.syntax
17456    }
17457}
17458impl AstNode for ResetStorageParams {
17459    #[inline]
17460    fn can_cast(kind: SyntaxKind) -> bool {
17461        kind == SyntaxKind::RESET_STORAGE_PARAMS
17462    }
17463    #[inline]
17464    fn cast(syntax: SyntaxNode) -> Option<Self> {
17465        if Self::can_cast(syntax.kind()) {
17466            Some(Self { syntax })
17467        } else {
17468            None
17469        }
17470    }
17471    #[inline]
17472    fn syntax(&self) -> &SyntaxNode {
17473        &self.syntax
17474    }
17475}
17476impl AstNode for Restart {
17477    #[inline]
17478    fn can_cast(kind: SyntaxKind) -> bool {
17479        kind == SyntaxKind::RESTART
17480    }
17481    #[inline]
17482    fn cast(syntax: SyntaxNode) -> Option<Self> {
17483        if Self::can_cast(syntax.kind()) {
17484            Some(Self { syntax })
17485        } else {
17486            None
17487        }
17488    }
17489    #[inline]
17490    fn syntax(&self) -> &SyntaxNode {
17491        &self.syntax
17492    }
17493}
17494impl AstNode for Restrict {
17495    #[inline]
17496    fn can_cast(kind: SyntaxKind) -> bool {
17497        kind == SyntaxKind::RESTRICT
17498    }
17499    #[inline]
17500    fn cast(syntax: SyntaxNode) -> Option<Self> {
17501        if Self::can_cast(syntax.kind()) {
17502            Some(Self { syntax })
17503        } else {
17504            None
17505        }
17506    }
17507    #[inline]
17508    fn syntax(&self) -> &SyntaxNode {
17509        &self.syntax
17510    }
17511}
17512impl AstNode for RetType {
17513    #[inline]
17514    fn can_cast(kind: SyntaxKind) -> bool {
17515        kind == SyntaxKind::RET_TYPE
17516    }
17517    #[inline]
17518    fn cast(syntax: SyntaxNode) -> Option<Self> {
17519        if Self::can_cast(syntax.kind()) {
17520            Some(Self { syntax })
17521        } else {
17522            None
17523        }
17524    }
17525    #[inline]
17526    fn syntax(&self) -> &SyntaxNode {
17527        &self.syntax
17528    }
17529}
17530impl AstNode for ReturnFuncOption {
17531    #[inline]
17532    fn can_cast(kind: SyntaxKind) -> bool {
17533        kind == SyntaxKind::RETURN_FUNC_OPTION
17534    }
17535    #[inline]
17536    fn cast(syntax: SyntaxNode) -> Option<Self> {
17537        if Self::can_cast(syntax.kind()) {
17538            Some(Self { syntax })
17539        } else {
17540            None
17541        }
17542    }
17543    #[inline]
17544    fn syntax(&self) -> &SyntaxNode {
17545        &self.syntax
17546    }
17547}
17548impl AstNode for ReturningClause {
17549    #[inline]
17550    fn can_cast(kind: SyntaxKind) -> bool {
17551        kind == SyntaxKind::RETURNING_CLAUSE
17552    }
17553    #[inline]
17554    fn cast(syntax: SyntaxNode) -> Option<Self> {
17555        if Self::can_cast(syntax.kind()) {
17556            Some(Self { syntax })
17557        } else {
17558            None
17559        }
17560    }
17561    #[inline]
17562    fn syntax(&self) -> &SyntaxNode {
17563        &self.syntax
17564    }
17565}
17566impl AstNode for Revoke {
17567    #[inline]
17568    fn can_cast(kind: SyntaxKind) -> bool {
17569        kind == SyntaxKind::REVOKE
17570    }
17571    #[inline]
17572    fn cast(syntax: SyntaxNode) -> Option<Self> {
17573        if Self::can_cast(syntax.kind()) {
17574            Some(Self { syntax })
17575        } else {
17576            None
17577        }
17578    }
17579    #[inline]
17580    fn syntax(&self) -> &SyntaxNode {
17581        &self.syntax
17582    }
17583}
17584impl AstNode for Role {
17585    #[inline]
17586    fn can_cast(kind: SyntaxKind) -> bool {
17587        kind == SyntaxKind::ROLE
17588    }
17589    #[inline]
17590    fn cast(syntax: SyntaxNode) -> Option<Self> {
17591        if Self::can_cast(syntax.kind()) {
17592            Some(Self { syntax })
17593        } else {
17594            None
17595        }
17596    }
17597    #[inline]
17598    fn syntax(&self) -> &SyntaxNode {
17599        &self.syntax
17600    }
17601}
17602impl AstNode for Rollback {
17603    #[inline]
17604    fn can_cast(kind: SyntaxKind) -> bool {
17605        kind == SyntaxKind::ROLLBACK
17606    }
17607    #[inline]
17608    fn cast(syntax: SyntaxNode) -> Option<Self> {
17609        if Self::can_cast(syntax.kind()) {
17610            Some(Self { syntax })
17611        } else {
17612            None
17613        }
17614    }
17615    #[inline]
17616    fn syntax(&self) -> &SyntaxNode {
17617        &self.syntax
17618    }
17619}
17620impl AstNode for RowsFuncOption {
17621    #[inline]
17622    fn can_cast(kind: SyntaxKind) -> bool {
17623        kind == SyntaxKind::ROWS_FUNC_OPTION
17624    }
17625    #[inline]
17626    fn cast(syntax: SyntaxNode) -> Option<Self> {
17627        if Self::can_cast(syntax.kind()) {
17628            Some(Self { syntax })
17629        } else {
17630            None
17631        }
17632    }
17633    #[inline]
17634    fn syntax(&self) -> &SyntaxNode {
17635        &self.syntax
17636    }
17637}
17638impl AstNode for Savepoint {
17639    #[inline]
17640    fn can_cast(kind: SyntaxKind) -> bool {
17641        kind == SyntaxKind::SAVEPOINT
17642    }
17643    #[inline]
17644    fn cast(syntax: SyntaxNode) -> Option<Self> {
17645        if Self::can_cast(syntax.kind()) {
17646            Some(Self { syntax })
17647        } else {
17648            None
17649        }
17650    }
17651    #[inline]
17652    fn syntax(&self) -> &SyntaxNode {
17653        &self.syntax
17654    }
17655}
17656impl AstNode for SecurityFuncOption {
17657    #[inline]
17658    fn can_cast(kind: SyntaxKind) -> bool {
17659        kind == SyntaxKind::SECURITY_FUNC_OPTION
17660    }
17661    #[inline]
17662    fn cast(syntax: SyntaxNode) -> Option<Self> {
17663        if Self::can_cast(syntax.kind()) {
17664            Some(Self { syntax })
17665        } else {
17666            None
17667        }
17668    }
17669    #[inline]
17670    fn syntax(&self) -> &SyntaxNode {
17671        &self.syntax
17672    }
17673}
17674impl AstNode for SecurityLabel {
17675    #[inline]
17676    fn can_cast(kind: SyntaxKind) -> bool {
17677        kind == SyntaxKind::SECURITY_LABEL
17678    }
17679    #[inline]
17680    fn cast(syntax: SyntaxNode) -> Option<Self> {
17681        if Self::can_cast(syntax.kind()) {
17682            Some(Self { syntax })
17683        } else {
17684            None
17685        }
17686    }
17687    #[inline]
17688    fn syntax(&self) -> &SyntaxNode {
17689        &self.syntax
17690    }
17691}
17692impl AstNode for Select {
17693    #[inline]
17694    fn can_cast(kind: SyntaxKind) -> bool {
17695        kind == SyntaxKind::SELECT
17696    }
17697    #[inline]
17698    fn cast(syntax: SyntaxNode) -> Option<Self> {
17699        if Self::can_cast(syntax.kind()) {
17700            Some(Self { syntax })
17701        } else {
17702            None
17703        }
17704    }
17705    #[inline]
17706    fn syntax(&self) -> &SyntaxNode {
17707        &self.syntax
17708    }
17709}
17710impl AstNode for SelectClause {
17711    #[inline]
17712    fn can_cast(kind: SyntaxKind) -> bool {
17713        kind == SyntaxKind::SELECT_CLAUSE
17714    }
17715    #[inline]
17716    fn cast(syntax: SyntaxNode) -> Option<Self> {
17717        if Self::can_cast(syntax.kind()) {
17718            Some(Self { syntax })
17719        } else {
17720            None
17721        }
17722    }
17723    #[inline]
17724    fn syntax(&self) -> &SyntaxNode {
17725        &self.syntax
17726    }
17727}
17728impl AstNode for SelectInto {
17729    #[inline]
17730    fn can_cast(kind: SyntaxKind) -> bool {
17731        kind == SyntaxKind::SELECT_INTO
17732    }
17733    #[inline]
17734    fn cast(syntax: SyntaxNode) -> Option<Self> {
17735        if Self::can_cast(syntax.kind()) {
17736            Some(Self { syntax })
17737        } else {
17738            None
17739        }
17740    }
17741    #[inline]
17742    fn syntax(&self) -> &SyntaxNode {
17743        &self.syntax
17744    }
17745}
17746impl AstNode for SequenceOptionList {
17747    #[inline]
17748    fn can_cast(kind: SyntaxKind) -> bool {
17749        kind == SyntaxKind::SEQUENCE_OPTION_LIST
17750    }
17751    #[inline]
17752    fn cast(syntax: SyntaxNode) -> Option<Self> {
17753        if Self::can_cast(syntax.kind()) {
17754            Some(Self { syntax })
17755        } else {
17756            None
17757        }
17758    }
17759    #[inline]
17760    fn syntax(&self) -> &SyntaxNode {
17761        &self.syntax
17762    }
17763}
17764impl AstNode for Serializable {
17765    #[inline]
17766    fn can_cast(kind: SyntaxKind) -> bool {
17767        kind == SyntaxKind::SERIALIZABLE
17768    }
17769    #[inline]
17770    fn cast(syntax: SyntaxNode) -> Option<Self> {
17771        if Self::can_cast(syntax.kind()) {
17772            Some(Self { syntax })
17773        } else {
17774            None
17775        }
17776    }
17777    #[inline]
17778    fn syntax(&self) -> &SyntaxNode {
17779        &self.syntax
17780    }
17781}
17782impl AstNode for Set {
17783    #[inline]
17784    fn can_cast(kind: SyntaxKind) -> bool {
17785        kind == SyntaxKind::SET
17786    }
17787    #[inline]
17788    fn cast(syntax: SyntaxNode) -> Option<Self> {
17789        if Self::can_cast(syntax.kind()) {
17790            Some(Self { syntax })
17791        } else {
17792            None
17793        }
17794    }
17795    #[inline]
17796    fn syntax(&self) -> &SyntaxNode {
17797        &self.syntax
17798    }
17799}
17800impl AstNode for SetAccessMethod {
17801    #[inline]
17802    fn can_cast(kind: SyntaxKind) -> bool {
17803        kind == SyntaxKind::SET_ACCESS_METHOD
17804    }
17805    #[inline]
17806    fn cast(syntax: SyntaxNode) -> Option<Self> {
17807        if Self::can_cast(syntax.kind()) {
17808            Some(Self { syntax })
17809        } else {
17810            None
17811        }
17812    }
17813    #[inline]
17814    fn syntax(&self) -> &SyntaxNode {
17815        &self.syntax
17816    }
17817}
17818impl AstNode for SetCompression {
17819    #[inline]
17820    fn can_cast(kind: SyntaxKind) -> bool {
17821        kind == SyntaxKind::SET_COMPRESSION
17822    }
17823    #[inline]
17824    fn cast(syntax: SyntaxNode) -> Option<Self> {
17825        if Self::can_cast(syntax.kind()) {
17826            Some(Self { syntax })
17827        } else {
17828            None
17829        }
17830    }
17831    #[inline]
17832    fn syntax(&self) -> &SyntaxNode {
17833        &self.syntax
17834    }
17835}
17836impl AstNode for SetConstraints {
17837    #[inline]
17838    fn can_cast(kind: SyntaxKind) -> bool {
17839        kind == SyntaxKind::SET_CONSTRAINTS
17840    }
17841    #[inline]
17842    fn cast(syntax: SyntaxNode) -> Option<Self> {
17843        if Self::can_cast(syntax.kind()) {
17844            Some(Self { syntax })
17845        } else {
17846            None
17847        }
17848    }
17849    #[inline]
17850    fn syntax(&self) -> &SyntaxNode {
17851        &self.syntax
17852    }
17853}
17854impl AstNode for SetDefault {
17855    #[inline]
17856    fn can_cast(kind: SyntaxKind) -> bool {
17857        kind == SyntaxKind::SET_DEFAULT
17858    }
17859    #[inline]
17860    fn cast(syntax: SyntaxNode) -> Option<Self> {
17861        if Self::can_cast(syntax.kind()) {
17862            Some(Self { syntax })
17863        } else {
17864            None
17865        }
17866    }
17867    #[inline]
17868    fn syntax(&self) -> &SyntaxNode {
17869        &self.syntax
17870    }
17871}
17872impl AstNode for SetDefaultColumns {
17873    #[inline]
17874    fn can_cast(kind: SyntaxKind) -> bool {
17875        kind == SyntaxKind::SET_DEFAULT_COLUMNS
17876    }
17877    #[inline]
17878    fn cast(syntax: SyntaxNode) -> Option<Self> {
17879        if Self::can_cast(syntax.kind()) {
17880            Some(Self { syntax })
17881        } else {
17882            None
17883        }
17884    }
17885    #[inline]
17886    fn syntax(&self) -> &SyntaxNode {
17887        &self.syntax
17888    }
17889}
17890impl AstNode for SetExpression {
17891    #[inline]
17892    fn can_cast(kind: SyntaxKind) -> bool {
17893        kind == SyntaxKind::SET_EXPRESSION
17894    }
17895    #[inline]
17896    fn cast(syntax: SyntaxNode) -> Option<Self> {
17897        if Self::can_cast(syntax.kind()) {
17898            Some(Self { syntax })
17899        } else {
17900            None
17901        }
17902    }
17903    #[inline]
17904    fn syntax(&self) -> &SyntaxNode {
17905        &self.syntax
17906    }
17907}
17908impl AstNode for SetFuncOption {
17909    #[inline]
17910    fn can_cast(kind: SyntaxKind) -> bool {
17911        kind == SyntaxKind::SET_FUNC_OPTION
17912    }
17913    #[inline]
17914    fn cast(syntax: SyntaxNode) -> Option<Self> {
17915        if Self::can_cast(syntax.kind()) {
17916            Some(Self { syntax })
17917        } else {
17918            None
17919        }
17920    }
17921    #[inline]
17922    fn syntax(&self) -> &SyntaxNode {
17923        &self.syntax
17924    }
17925}
17926impl AstNode for SetGenerated {
17927    #[inline]
17928    fn can_cast(kind: SyntaxKind) -> bool {
17929        kind == SyntaxKind::SET_GENERATED
17930    }
17931    #[inline]
17932    fn cast(syntax: SyntaxNode) -> Option<Self> {
17933        if Self::can_cast(syntax.kind()) {
17934            Some(Self { syntax })
17935        } else {
17936            None
17937        }
17938    }
17939    #[inline]
17940    fn syntax(&self) -> &SyntaxNode {
17941        &self.syntax
17942    }
17943}
17944impl AstNode for SetGeneratedOptions {
17945    #[inline]
17946    fn can_cast(kind: SyntaxKind) -> bool {
17947        kind == SyntaxKind::SET_GENERATED_OPTIONS
17948    }
17949    #[inline]
17950    fn cast(syntax: SyntaxNode) -> Option<Self> {
17951        if Self::can_cast(syntax.kind()) {
17952            Some(Self { syntax })
17953        } else {
17954            None
17955        }
17956    }
17957    #[inline]
17958    fn syntax(&self) -> &SyntaxNode {
17959        &self.syntax
17960    }
17961}
17962impl AstNode for SetLogged {
17963    #[inline]
17964    fn can_cast(kind: SyntaxKind) -> bool {
17965        kind == SyntaxKind::SET_LOGGED
17966    }
17967    #[inline]
17968    fn cast(syntax: SyntaxNode) -> Option<Self> {
17969        if Self::can_cast(syntax.kind()) {
17970            Some(Self { syntax })
17971        } else {
17972            None
17973        }
17974    }
17975    #[inline]
17976    fn syntax(&self) -> &SyntaxNode {
17977        &self.syntax
17978    }
17979}
17980impl AstNode for SetNotNull {
17981    #[inline]
17982    fn can_cast(kind: SyntaxKind) -> bool {
17983        kind == SyntaxKind::SET_NOT_NULL
17984    }
17985    #[inline]
17986    fn cast(syntax: SyntaxNode) -> Option<Self> {
17987        if Self::can_cast(syntax.kind()) {
17988            Some(Self { syntax })
17989        } else {
17990            None
17991        }
17992    }
17993    #[inline]
17994    fn syntax(&self) -> &SyntaxNode {
17995        &self.syntax
17996    }
17997}
17998impl AstNode for SetNullColumns {
17999    #[inline]
18000    fn can_cast(kind: SyntaxKind) -> bool {
18001        kind == SyntaxKind::SET_NULL_COLUMNS
18002    }
18003    #[inline]
18004    fn cast(syntax: SyntaxNode) -> Option<Self> {
18005        if Self::can_cast(syntax.kind()) {
18006            Some(Self { syntax })
18007        } else {
18008            None
18009        }
18010    }
18011    #[inline]
18012    fn syntax(&self) -> &SyntaxNode {
18013        &self.syntax
18014    }
18015}
18016impl AstNode for SetOptions {
18017    #[inline]
18018    fn can_cast(kind: SyntaxKind) -> bool {
18019        kind == SyntaxKind::SET_OPTIONS
18020    }
18021    #[inline]
18022    fn cast(syntax: SyntaxNode) -> Option<Self> {
18023        if Self::can_cast(syntax.kind()) {
18024            Some(Self { syntax })
18025        } else {
18026            None
18027        }
18028    }
18029    #[inline]
18030    fn syntax(&self) -> &SyntaxNode {
18031        &self.syntax
18032    }
18033}
18034impl AstNode for SetOptionsList {
18035    #[inline]
18036    fn can_cast(kind: SyntaxKind) -> bool {
18037        kind == SyntaxKind::SET_OPTIONS_LIST
18038    }
18039    #[inline]
18040    fn cast(syntax: SyntaxNode) -> Option<Self> {
18041        if Self::can_cast(syntax.kind()) {
18042            Some(Self { syntax })
18043        } else {
18044            None
18045        }
18046    }
18047    #[inline]
18048    fn syntax(&self) -> &SyntaxNode {
18049        &self.syntax
18050    }
18051}
18052impl AstNode for SetRole {
18053    #[inline]
18054    fn can_cast(kind: SyntaxKind) -> bool {
18055        kind == SyntaxKind::SET_ROLE
18056    }
18057    #[inline]
18058    fn cast(syntax: SyntaxNode) -> Option<Self> {
18059        if Self::can_cast(syntax.kind()) {
18060            Some(Self { syntax })
18061        } else {
18062            None
18063        }
18064    }
18065    #[inline]
18066    fn syntax(&self) -> &SyntaxNode {
18067        &self.syntax
18068    }
18069}
18070impl AstNode for SetSchema {
18071    #[inline]
18072    fn can_cast(kind: SyntaxKind) -> bool {
18073        kind == SyntaxKind::SET_SCHEMA
18074    }
18075    #[inline]
18076    fn cast(syntax: SyntaxNode) -> Option<Self> {
18077        if Self::can_cast(syntax.kind()) {
18078            Some(Self { syntax })
18079        } else {
18080            None
18081        }
18082    }
18083    #[inline]
18084    fn syntax(&self) -> &SyntaxNode {
18085        &self.syntax
18086    }
18087}
18088impl AstNode for SetSequenceOption {
18089    #[inline]
18090    fn can_cast(kind: SyntaxKind) -> bool {
18091        kind == SyntaxKind::SET_SEQUENCE_OPTION
18092    }
18093    #[inline]
18094    fn cast(syntax: SyntaxNode) -> Option<Self> {
18095        if Self::can_cast(syntax.kind()) {
18096            Some(Self { syntax })
18097        } else {
18098            None
18099        }
18100    }
18101    #[inline]
18102    fn syntax(&self) -> &SyntaxNode {
18103        &self.syntax
18104    }
18105}
18106impl AstNode for SetSessionAuth {
18107    #[inline]
18108    fn can_cast(kind: SyntaxKind) -> bool {
18109        kind == SyntaxKind::SET_SESSION_AUTH
18110    }
18111    #[inline]
18112    fn cast(syntax: SyntaxNode) -> Option<Self> {
18113        if Self::can_cast(syntax.kind()) {
18114            Some(Self { syntax })
18115        } else {
18116            None
18117        }
18118    }
18119    #[inline]
18120    fn syntax(&self) -> &SyntaxNode {
18121        &self.syntax
18122    }
18123}
18124impl AstNode for SetStatistics {
18125    #[inline]
18126    fn can_cast(kind: SyntaxKind) -> bool {
18127        kind == SyntaxKind::SET_STATISTICS
18128    }
18129    #[inline]
18130    fn cast(syntax: SyntaxNode) -> Option<Self> {
18131        if Self::can_cast(syntax.kind()) {
18132            Some(Self { syntax })
18133        } else {
18134            None
18135        }
18136    }
18137    #[inline]
18138    fn syntax(&self) -> &SyntaxNode {
18139        &self.syntax
18140    }
18141}
18142impl AstNode for SetStorage {
18143    #[inline]
18144    fn can_cast(kind: SyntaxKind) -> bool {
18145        kind == SyntaxKind::SET_STORAGE
18146    }
18147    #[inline]
18148    fn cast(syntax: SyntaxNode) -> Option<Self> {
18149        if Self::can_cast(syntax.kind()) {
18150            Some(Self { syntax })
18151        } else {
18152            None
18153        }
18154    }
18155    #[inline]
18156    fn syntax(&self) -> &SyntaxNode {
18157        &self.syntax
18158    }
18159}
18160impl AstNode for SetStorageParams {
18161    #[inline]
18162    fn can_cast(kind: SyntaxKind) -> bool {
18163        kind == SyntaxKind::SET_STORAGE_PARAMS
18164    }
18165    #[inline]
18166    fn cast(syntax: SyntaxNode) -> Option<Self> {
18167        if Self::can_cast(syntax.kind()) {
18168            Some(Self { syntax })
18169        } else {
18170            None
18171        }
18172    }
18173    #[inline]
18174    fn syntax(&self) -> &SyntaxNode {
18175        &self.syntax
18176    }
18177}
18178impl AstNode for SetTablespace {
18179    #[inline]
18180    fn can_cast(kind: SyntaxKind) -> bool {
18181        kind == SyntaxKind::SET_TABLESPACE
18182    }
18183    #[inline]
18184    fn cast(syntax: SyntaxNode) -> Option<Self> {
18185        if Self::can_cast(syntax.kind()) {
18186            Some(Self { syntax })
18187        } else {
18188            None
18189        }
18190    }
18191    #[inline]
18192    fn syntax(&self) -> &SyntaxNode {
18193        &self.syntax
18194    }
18195}
18196impl AstNode for SetTransaction {
18197    #[inline]
18198    fn can_cast(kind: SyntaxKind) -> bool {
18199        kind == SyntaxKind::SET_TRANSACTION
18200    }
18201    #[inline]
18202    fn cast(syntax: SyntaxNode) -> Option<Self> {
18203        if Self::can_cast(syntax.kind()) {
18204            Some(Self { syntax })
18205        } else {
18206            None
18207        }
18208    }
18209    #[inline]
18210    fn syntax(&self) -> &SyntaxNode {
18211        &self.syntax
18212    }
18213}
18214impl AstNode for SetType {
18215    #[inline]
18216    fn can_cast(kind: SyntaxKind) -> bool {
18217        kind == SyntaxKind::SET_TYPE
18218    }
18219    #[inline]
18220    fn cast(syntax: SyntaxNode) -> Option<Self> {
18221        if Self::can_cast(syntax.kind()) {
18222            Some(Self { syntax })
18223        } else {
18224            None
18225        }
18226    }
18227    #[inline]
18228    fn syntax(&self) -> &SyntaxNode {
18229        &self.syntax
18230    }
18231}
18232impl AstNode for SetUnlogged {
18233    #[inline]
18234    fn can_cast(kind: SyntaxKind) -> bool {
18235        kind == SyntaxKind::SET_UNLOGGED
18236    }
18237    #[inline]
18238    fn cast(syntax: SyntaxNode) -> Option<Self> {
18239        if Self::can_cast(syntax.kind()) {
18240            Some(Self { syntax })
18241        } else {
18242            None
18243        }
18244    }
18245    #[inline]
18246    fn syntax(&self) -> &SyntaxNode {
18247        &self.syntax
18248    }
18249}
18250impl AstNode for SetWithoutCluster {
18251    #[inline]
18252    fn can_cast(kind: SyntaxKind) -> bool {
18253        kind == SyntaxKind::SET_WITHOUT_CLUSTER
18254    }
18255    #[inline]
18256    fn cast(syntax: SyntaxNode) -> Option<Self> {
18257        if Self::can_cast(syntax.kind()) {
18258            Some(Self { syntax })
18259        } else {
18260            None
18261        }
18262    }
18263    #[inline]
18264    fn syntax(&self) -> &SyntaxNode {
18265        &self.syntax
18266    }
18267}
18268impl AstNode for SetWithoutOids {
18269    #[inline]
18270    fn can_cast(kind: SyntaxKind) -> bool {
18271        kind == SyntaxKind::SET_WITHOUT_OIDS
18272    }
18273    #[inline]
18274    fn cast(syntax: SyntaxNode) -> Option<Self> {
18275        if Self::can_cast(syntax.kind()) {
18276            Some(Self { syntax })
18277        } else {
18278            None
18279        }
18280    }
18281    #[inline]
18282    fn syntax(&self) -> &SyntaxNode {
18283        &self.syntax
18284    }
18285}
18286impl AstNode for Show {
18287    #[inline]
18288    fn can_cast(kind: SyntaxKind) -> bool {
18289        kind == SyntaxKind::SHOW
18290    }
18291    #[inline]
18292    fn cast(syntax: SyntaxNode) -> Option<Self> {
18293        if Self::can_cast(syntax.kind()) {
18294            Some(Self { syntax })
18295        } else {
18296            None
18297        }
18298    }
18299    #[inline]
18300    fn syntax(&self) -> &SyntaxNode {
18301        &self.syntax
18302    }
18303}
18304impl AstNode for SimilarTo {
18305    #[inline]
18306    fn can_cast(kind: SyntaxKind) -> bool {
18307        kind == SyntaxKind::SIMILAR_TO
18308    }
18309    #[inline]
18310    fn cast(syntax: SyntaxNode) -> Option<Self> {
18311        if Self::can_cast(syntax.kind()) {
18312            Some(Self { syntax })
18313        } else {
18314            None
18315        }
18316    }
18317    #[inline]
18318    fn syntax(&self) -> &SyntaxNode {
18319        &self.syntax
18320    }
18321}
18322impl AstNode for SortAsc {
18323    #[inline]
18324    fn can_cast(kind: SyntaxKind) -> bool {
18325        kind == SyntaxKind::SORT_ASC
18326    }
18327    #[inline]
18328    fn cast(syntax: SyntaxNode) -> Option<Self> {
18329        if Self::can_cast(syntax.kind()) {
18330            Some(Self { syntax })
18331        } else {
18332            None
18333        }
18334    }
18335    #[inline]
18336    fn syntax(&self) -> &SyntaxNode {
18337        &self.syntax
18338    }
18339}
18340impl AstNode for SortBy {
18341    #[inline]
18342    fn can_cast(kind: SyntaxKind) -> bool {
18343        kind == SyntaxKind::SORT_BY
18344    }
18345    #[inline]
18346    fn cast(syntax: SyntaxNode) -> Option<Self> {
18347        if Self::can_cast(syntax.kind()) {
18348            Some(Self { syntax })
18349        } else {
18350            None
18351        }
18352    }
18353    #[inline]
18354    fn syntax(&self) -> &SyntaxNode {
18355        &self.syntax
18356    }
18357}
18358impl AstNode for SortDesc {
18359    #[inline]
18360    fn can_cast(kind: SyntaxKind) -> bool {
18361        kind == SyntaxKind::SORT_DESC
18362    }
18363    #[inline]
18364    fn cast(syntax: SyntaxNode) -> Option<Self> {
18365        if Self::can_cast(syntax.kind()) {
18366            Some(Self { syntax })
18367        } else {
18368            None
18369        }
18370    }
18371    #[inline]
18372    fn syntax(&self) -> &SyntaxNode {
18373        &self.syntax
18374    }
18375}
18376impl AstNode for SortUsing {
18377    #[inline]
18378    fn can_cast(kind: SyntaxKind) -> bool {
18379        kind == SyntaxKind::SORT_USING
18380    }
18381    #[inline]
18382    fn cast(syntax: SyntaxNode) -> Option<Self> {
18383        if Self::can_cast(syntax.kind()) {
18384            Some(Self { syntax })
18385        } else {
18386            None
18387        }
18388    }
18389    #[inline]
18390    fn syntax(&self) -> &SyntaxNode {
18391        &self.syntax
18392    }
18393}
18394impl AstNode for SourceFile {
18395    #[inline]
18396    fn can_cast(kind: SyntaxKind) -> bool {
18397        kind == SyntaxKind::SOURCE_FILE
18398    }
18399    #[inline]
18400    fn cast(syntax: SyntaxNode) -> Option<Self> {
18401        if Self::can_cast(syntax.kind()) {
18402            Some(Self { syntax })
18403        } else {
18404            None
18405        }
18406    }
18407    #[inline]
18408    fn syntax(&self) -> &SyntaxNode {
18409        &self.syntax
18410    }
18411}
18412impl AstNode for Storage {
18413    #[inline]
18414    fn can_cast(kind: SyntaxKind) -> bool {
18415        kind == SyntaxKind::STORAGE
18416    }
18417    #[inline]
18418    fn cast(syntax: SyntaxNode) -> Option<Self> {
18419        if Self::can_cast(syntax.kind()) {
18420            Some(Self { syntax })
18421        } else {
18422            None
18423        }
18424    }
18425    #[inline]
18426    fn syntax(&self) -> &SyntaxNode {
18427        &self.syntax
18428    }
18429}
18430impl AstNode for StrictFuncOption {
18431    #[inline]
18432    fn can_cast(kind: SyntaxKind) -> bool {
18433        kind == SyntaxKind::STRICT_FUNC_OPTION
18434    }
18435    #[inline]
18436    fn cast(syntax: SyntaxNode) -> Option<Self> {
18437        if Self::can_cast(syntax.kind()) {
18438            Some(Self { syntax })
18439        } else {
18440            None
18441        }
18442    }
18443    #[inline]
18444    fn syntax(&self) -> &SyntaxNode {
18445        &self.syntax
18446    }
18447}
18448impl AstNode for SupportFuncOption {
18449    #[inline]
18450    fn can_cast(kind: SyntaxKind) -> bool {
18451        kind == SyntaxKind::SUPPORT_FUNC_OPTION
18452    }
18453    #[inline]
18454    fn cast(syntax: SyntaxNode) -> Option<Self> {
18455        if Self::can_cast(syntax.kind()) {
18456            Some(Self { syntax })
18457        } else {
18458            None
18459        }
18460    }
18461    #[inline]
18462    fn syntax(&self) -> &SyntaxNode {
18463        &self.syntax
18464    }
18465}
18466impl AstNode for Table {
18467    #[inline]
18468    fn can_cast(kind: SyntaxKind) -> bool {
18469        kind == SyntaxKind::TABLE
18470    }
18471    #[inline]
18472    fn cast(syntax: SyntaxNode) -> Option<Self> {
18473        if Self::can_cast(syntax.kind()) {
18474            Some(Self { syntax })
18475        } else {
18476            None
18477        }
18478    }
18479    #[inline]
18480    fn syntax(&self) -> &SyntaxNode {
18481        &self.syntax
18482    }
18483}
18484impl AstNode for TableArgList {
18485    #[inline]
18486    fn can_cast(kind: SyntaxKind) -> bool {
18487        kind == SyntaxKind::TABLE_ARG_LIST
18488    }
18489    #[inline]
18490    fn cast(syntax: SyntaxNode) -> Option<Self> {
18491        if Self::can_cast(syntax.kind()) {
18492            Some(Self { syntax })
18493        } else {
18494            None
18495        }
18496    }
18497    #[inline]
18498    fn syntax(&self) -> &SyntaxNode {
18499        &self.syntax
18500    }
18501}
18502impl AstNode for TableList {
18503    #[inline]
18504    fn can_cast(kind: SyntaxKind) -> bool {
18505        kind == SyntaxKind::TABLE_LIST
18506    }
18507    #[inline]
18508    fn cast(syntax: SyntaxNode) -> Option<Self> {
18509        if Self::can_cast(syntax.kind()) {
18510            Some(Self { syntax })
18511        } else {
18512            None
18513        }
18514    }
18515    #[inline]
18516    fn syntax(&self) -> &SyntaxNode {
18517        &self.syntax
18518    }
18519}
18520impl AstNode for Tablespace {
18521    #[inline]
18522    fn can_cast(kind: SyntaxKind) -> bool {
18523        kind == SyntaxKind::TABLESPACE
18524    }
18525    #[inline]
18526    fn cast(syntax: SyntaxNode) -> Option<Self> {
18527        if Self::can_cast(syntax.kind()) {
18528            Some(Self { syntax })
18529        } else {
18530            None
18531        }
18532    }
18533    #[inline]
18534    fn syntax(&self) -> &SyntaxNode {
18535        &self.syntax
18536    }
18537}
18538impl AstNode for Target {
18539    #[inline]
18540    fn can_cast(kind: SyntaxKind) -> bool {
18541        kind == SyntaxKind::TARGET
18542    }
18543    #[inline]
18544    fn cast(syntax: SyntaxNode) -> Option<Self> {
18545        if Self::can_cast(syntax.kind()) {
18546            Some(Self { syntax })
18547        } else {
18548            None
18549        }
18550    }
18551    #[inline]
18552    fn syntax(&self) -> &SyntaxNode {
18553        &self.syntax
18554    }
18555}
18556impl AstNode for TargetList {
18557    #[inline]
18558    fn can_cast(kind: SyntaxKind) -> bool {
18559        kind == SyntaxKind::TARGET_LIST
18560    }
18561    #[inline]
18562    fn cast(syntax: SyntaxNode) -> Option<Self> {
18563        if Self::can_cast(syntax.kind()) {
18564            Some(Self { syntax })
18565        } else {
18566            None
18567        }
18568    }
18569    #[inline]
18570    fn syntax(&self) -> &SyntaxNode {
18571        &self.syntax
18572    }
18573}
18574impl AstNode for TimeType {
18575    #[inline]
18576    fn can_cast(kind: SyntaxKind) -> bool {
18577        kind == SyntaxKind::TIME_TYPE
18578    }
18579    #[inline]
18580    fn cast(syntax: SyntaxNode) -> Option<Self> {
18581        if Self::can_cast(syntax.kind()) {
18582            Some(Self { syntax })
18583        } else {
18584            None
18585        }
18586    }
18587    #[inline]
18588    fn syntax(&self) -> &SyntaxNode {
18589        &self.syntax
18590    }
18591}
18592impl AstNode for TransactionModeList {
18593    #[inline]
18594    fn can_cast(kind: SyntaxKind) -> bool {
18595        kind == SyntaxKind::TRANSACTION_MODE_LIST
18596    }
18597    #[inline]
18598    fn cast(syntax: SyntaxNode) -> Option<Self> {
18599        if Self::can_cast(syntax.kind()) {
18600            Some(Self { syntax })
18601        } else {
18602            None
18603        }
18604    }
18605    #[inline]
18606    fn syntax(&self) -> &SyntaxNode {
18607        &self.syntax
18608    }
18609}
18610impl AstNode for TransformFuncOption {
18611    #[inline]
18612    fn can_cast(kind: SyntaxKind) -> bool {
18613        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
18614    }
18615    #[inline]
18616    fn cast(syntax: SyntaxNode) -> Option<Self> {
18617        if Self::can_cast(syntax.kind()) {
18618            Some(Self { syntax })
18619        } else {
18620            None
18621        }
18622    }
18623    #[inline]
18624    fn syntax(&self) -> &SyntaxNode {
18625        &self.syntax
18626    }
18627}
18628impl AstNode for Truncate {
18629    #[inline]
18630    fn can_cast(kind: SyntaxKind) -> bool {
18631        kind == SyntaxKind::TRUNCATE
18632    }
18633    #[inline]
18634    fn cast(syntax: SyntaxNode) -> Option<Self> {
18635        if Self::can_cast(syntax.kind()) {
18636            Some(Self { syntax })
18637        } else {
18638            None
18639        }
18640    }
18641    #[inline]
18642    fn syntax(&self) -> &SyntaxNode {
18643        &self.syntax
18644    }
18645}
18646impl AstNode for TupleExpr {
18647    #[inline]
18648    fn can_cast(kind: SyntaxKind) -> bool {
18649        kind == SyntaxKind::TUPLE_EXPR
18650    }
18651    #[inline]
18652    fn cast(syntax: SyntaxNode) -> Option<Self> {
18653        if Self::can_cast(syntax.kind()) {
18654            Some(Self { syntax })
18655        } else {
18656            None
18657        }
18658    }
18659    #[inline]
18660    fn syntax(&self) -> &SyntaxNode {
18661        &self.syntax
18662    }
18663}
18664impl AstNode for UnicodeNormalForm {
18665    #[inline]
18666    fn can_cast(kind: SyntaxKind) -> bool {
18667        kind == SyntaxKind::UNICODE_NORMAL_FORM
18668    }
18669    #[inline]
18670    fn cast(syntax: SyntaxNode) -> Option<Self> {
18671        if Self::can_cast(syntax.kind()) {
18672            Some(Self { syntax })
18673        } else {
18674            None
18675        }
18676    }
18677    #[inline]
18678    fn syntax(&self) -> &SyntaxNode {
18679        &self.syntax
18680    }
18681}
18682impl AstNode for UniqueConstraint {
18683    #[inline]
18684    fn can_cast(kind: SyntaxKind) -> bool {
18685        kind == SyntaxKind::UNIQUE_CONSTRAINT
18686    }
18687    #[inline]
18688    fn cast(syntax: SyntaxNode) -> Option<Self> {
18689        if Self::can_cast(syntax.kind()) {
18690            Some(Self { syntax })
18691        } else {
18692            None
18693        }
18694    }
18695    #[inline]
18696    fn syntax(&self) -> &SyntaxNode {
18697        &self.syntax
18698    }
18699}
18700impl AstNode for Unlisten {
18701    #[inline]
18702    fn can_cast(kind: SyntaxKind) -> bool {
18703        kind == SyntaxKind::UNLISTEN
18704    }
18705    #[inline]
18706    fn cast(syntax: SyntaxNode) -> Option<Self> {
18707        if Self::can_cast(syntax.kind()) {
18708            Some(Self { syntax })
18709        } else {
18710            None
18711        }
18712    }
18713    #[inline]
18714    fn syntax(&self) -> &SyntaxNode {
18715        &self.syntax
18716    }
18717}
18718impl AstNode for Update {
18719    #[inline]
18720    fn can_cast(kind: SyntaxKind) -> bool {
18721        kind == SyntaxKind::UPDATE
18722    }
18723    #[inline]
18724    fn cast(syntax: SyntaxNode) -> Option<Self> {
18725        if Self::can_cast(syntax.kind()) {
18726            Some(Self { syntax })
18727        } else {
18728            None
18729        }
18730    }
18731    #[inline]
18732    fn syntax(&self) -> &SyntaxNode {
18733        &self.syntax
18734    }
18735}
18736impl AstNode for UsingClause {
18737    #[inline]
18738    fn can_cast(kind: SyntaxKind) -> bool {
18739        kind == SyntaxKind::USING_CLAUSE
18740    }
18741    #[inline]
18742    fn cast(syntax: SyntaxNode) -> Option<Self> {
18743        if Self::can_cast(syntax.kind()) {
18744            Some(Self { syntax })
18745        } else {
18746            None
18747        }
18748    }
18749    #[inline]
18750    fn syntax(&self) -> &SyntaxNode {
18751        &self.syntax
18752    }
18753}
18754impl AstNode for UsingIndex {
18755    #[inline]
18756    fn can_cast(kind: SyntaxKind) -> bool {
18757        kind == SyntaxKind::USING_INDEX
18758    }
18759    #[inline]
18760    fn cast(syntax: SyntaxNode) -> Option<Self> {
18761        if Self::can_cast(syntax.kind()) {
18762            Some(Self { syntax })
18763        } else {
18764            None
18765        }
18766    }
18767    #[inline]
18768    fn syntax(&self) -> &SyntaxNode {
18769        &self.syntax
18770    }
18771}
18772impl AstNode for UsingMethod {
18773    #[inline]
18774    fn can_cast(kind: SyntaxKind) -> bool {
18775        kind == SyntaxKind::USING_METHOD
18776    }
18777    #[inline]
18778    fn cast(syntax: SyntaxNode) -> Option<Self> {
18779        if Self::can_cast(syntax.kind()) {
18780            Some(Self { syntax })
18781        } else {
18782            None
18783        }
18784    }
18785    #[inline]
18786    fn syntax(&self) -> &SyntaxNode {
18787        &self.syntax
18788    }
18789}
18790impl AstNode for Vacuum {
18791    #[inline]
18792    fn can_cast(kind: SyntaxKind) -> bool {
18793        kind == SyntaxKind::VACUUM
18794    }
18795    #[inline]
18796    fn cast(syntax: SyntaxNode) -> Option<Self> {
18797        if Self::can_cast(syntax.kind()) {
18798            Some(Self { syntax })
18799        } else {
18800            None
18801        }
18802    }
18803    #[inline]
18804    fn syntax(&self) -> &SyntaxNode {
18805        &self.syntax
18806    }
18807}
18808impl AstNode for ValidateConstraint {
18809    #[inline]
18810    fn can_cast(kind: SyntaxKind) -> bool {
18811        kind == SyntaxKind::VALIDATE_CONSTRAINT
18812    }
18813    #[inline]
18814    fn cast(syntax: SyntaxNode) -> Option<Self> {
18815        if Self::can_cast(syntax.kind()) {
18816            Some(Self { syntax })
18817        } else {
18818            None
18819        }
18820    }
18821    #[inline]
18822    fn syntax(&self) -> &SyntaxNode {
18823        &self.syntax
18824    }
18825}
18826impl AstNode for Values {
18827    #[inline]
18828    fn can_cast(kind: SyntaxKind) -> bool {
18829        kind == SyntaxKind::VALUES
18830    }
18831    #[inline]
18832    fn cast(syntax: SyntaxNode) -> Option<Self> {
18833        if Self::can_cast(syntax.kind()) {
18834            Some(Self { syntax })
18835        } else {
18836            None
18837        }
18838    }
18839    #[inline]
18840    fn syntax(&self) -> &SyntaxNode {
18841        &self.syntax
18842    }
18843}
18844impl AstNode for VolatilityFuncOption {
18845    #[inline]
18846    fn can_cast(kind: SyntaxKind) -> bool {
18847        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
18848    }
18849    #[inline]
18850    fn cast(syntax: SyntaxNode) -> Option<Self> {
18851        if Self::can_cast(syntax.kind()) {
18852            Some(Self { syntax })
18853        } else {
18854            None
18855        }
18856    }
18857    #[inline]
18858    fn syntax(&self) -> &SyntaxNode {
18859        &self.syntax
18860    }
18861}
18862impl AstNode for WhenClause {
18863    #[inline]
18864    fn can_cast(kind: SyntaxKind) -> bool {
18865        kind == SyntaxKind::WHEN_CLAUSE
18866    }
18867    #[inline]
18868    fn cast(syntax: SyntaxNode) -> Option<Self> {
18869        if Self::can_cast(syntax.kind()) {
18870            Some(Self { syntax })
18871        } else {
18872            None
18873        }
18874    }
18875    #[inline]
18876    fn syntax(&self) -> &SyntaxNode {
18877        &self.syntax
18878    }
18879}
18880impl AstNode for WhereClause {
18881    #[inline]
18882    fn can_cast(kind: SyntaxKind) -> bool {
18883        kind == SyntaxKind::WHERE_CLAUSE
18884    }
18885    #[inline]
18886    fn cast(syntax: SyntaxNode) -> Option<Self> {
18887        if Self::can_cast(syntax.kind()) {
18888            Some(Self { syntax })
18889        } else {
18890            None
18891        }
18892    }
18893    #[inline]
18894    fn syntax(&self) -> &SyntaxNode {
18895        &self.syntax
18896    }
18897}
18898impl AstNode for WindowClause {
18899    #[inline]
18900    fn can_cast(kind: SyntaxKind) -> bool {
18901        kind == SyntaxKind::WINDOW_CLAUSE
18902    }
18903    #[inline]
18904    fn cast(syntax: SyntaxNode) -> Option<Self> {
18905        if Self::can_cast(syntax.kind()) {
18906            Some(Self { syntax })
18907        } else {
18908            None
18909        }
18910    }
18911    #[inline]
18912    fn syntax(&self) -> &SyntaxNode {
18913        &self.syntax
18914    }
18915}
18916impl AstNode for WindowDef {
18917    #[inline]
18918    fn can_cast(kind: SyntaxKind) -> bool {
18919        kind == SyntaxKind::WINDOW_DEF
18920    }
18921    #[inline]
18922    fn cast(syntax: SyntaxNode) -> Option<Self> {
18923        if Self::can_cast(syntax.kind()) {
18924            Some(Self { syntax })
18925        } else {
18926            None
18927        }
18928    }
18929    #[inline]
18930    fn syntax(&self) -> &SyntaxNode {
18931        &self.syntax
18932    }
18933}
18934impl AstNode for WindowFuncOption {
18935    #[inline]
18936    fn can_cast(kind: SyntaxKind) -> bool {
18937        kind == SyntaxKind::WINDOW_FUNC_OPTION
18938    }
18939    #[inline]
18940    fn cast(syntax: SyntaxNode) -> Option<Self> {
18941        if Self::can_cast(syntax.kind()) {
18942            Some(Self { syntax })
18943        } else {
18944            None
18945        }
18946    }
18947    #[inline]
18948    fn syntax(&self) -> &SyntaxNode {
18949        &self.syntax
18950    }
18951}
18952impl AstNode for WindowSpec {
18953    #[inline]
18954    fn can_cast(kind: SyntaxKind) -> bool {
18955        kind == SyntaxKind::WINDOW_SPEC
18956    }
18957    #[inline]
18958    fn cast(syntax: SyntaxNode) -> Option<Self> {
18959        if Self::can_cast(syntax.kind()) {
18960            Some(Self { syntax })
18961        } else {
18962            None
18963        }
18964    }
18965    #[inline]
18966    fn syntax(&self) -> &SyntaxNode {
18967        &self.syntax
18968    }
18969}
18970impl AstNode for WithClause {
18971    #[inline]
18972    fn can_cast(kind: SyntaxKind) -> bool {
18973        kind == SyntaxKind::WITH_CLAUSE
18974    }
18975    #[inline]
18976    fn cast(syntax: SyntaxNode) -> Option<Self> {
18977        if Self::can_cast(syntax.kind()) {
18978            Some(Self { syntax })
18979        } else {
18980            None
18981        }
18982    }
18983    #[inline]
18984    fn syntax(&self) -> &SyntaxNode {
18985        &self.syntax
18986    }
18987}
18988impl AstNode for WithData {
18989    #[inline]
18990    fn can_cast(kind: SyntaxKind) -> bool {
18991        kind == SyntaxKind::WITH_DATA
18992    }
18993    #[inline]
18994    fn cast(syntax: SyntaxNode) -> Option<Self> {
18995        if Self::can_cast(syntax.kind()) {
18996            Some(Self { syntax })
18997        } else {
18998            None
18999        }
19000    }
19001    #[inline]
19002    fn syntax(&self) -> &SyntaxNode {
19003        &self.syntax
19004    }
19005}
19006impl AstNode for WithNoData {
19007    #[inline]
19008    fn can_cast(kind: SyntaxKind) -> bool {
19009        kind == SyntaxKind::WITH_NO_DATA
19010    }
19011    #[inline]
19012    fn cast(syntax: SyntaxNode) -> Option<Self> {
19013        if Self::can_cast(syntax.kind()) {
19014            Some(Self { syntax })
19015        } else {
19016            None
19017        }
19018    }
19019    #[inline]
19020    fn syntax(&self) -> &SyntaxNode {
19021        &self.syntax
19022    }
19023}
19024impl AstNode for WithOptions {
19025    #[inline]
19026    fn can_cast(kind: SyntaxKind) -> bool {
19027        kind == SyntaxKind::WITH_OPTIONS
19028    }
19029    #[inline]
19030    fn cast(syntax: SyntaxNode) -> Option<Self> {
19031        if Self::can_cast(syntax.kind()) {
19032            Some(Self { syntax })
19033        } else {
19034            None
19035        }
19036    }
19037    #[inline]
19038    fn syntax(&self) -> &SyntaxNode {
19039        &self.syntax
19040    }
19041}
19042impl AstNode for WithParams {
19043    #[inline]
19044    fn can_cast(kind: SyntaxKind) -> bool {
19045        kind == SyntaxKind::WITH_PARAMS
19046    }
19047    #[inline]
19048    fn cast(syntax: SyntaxNode) -> Option<Self> {
19049        if Self::can_cast(syntax.kind()) {
19050            Some(Self { syntax })
19051        } else {
19052            None
19053        }
19054    }
19055    #[inline]
19056    fn syntax(&self) -> &SyntaxNode {
19057        &self.syntax
19058    }
19059}
19060impl AstNode for WithTable {
19061    #[inline]
19062    fn can_cast(kind: SyntaxKind) -> bool {
19063        kind == SyntaxKind::WITH_TABLE
19064    }
19065    #[inline]
19066    fn cast(syntax: SyntaxNode) -> Option<Self> {
19067        if Self::can_cast(syntax.kind()) {
19068            Some(Self { syntax })
19069        } else {
19070            None
19071        }
19072    }
19073    #[inline]
19074    fn syntax(&self) -> &SyntaxNode {
19075        &self.syntax
19076    }
19077}
19078impl AstNode for WithTimezone {
19079    #[inline]
19080    fn can_cast(kind: SyntaxKind) -> bool {
19081        kind == SyntaxKind::WITH_TIMEZONE
19082    }
19083    #[inline]
19084    fn cast(syntax: SyntaxNode) -> Option<Self> {
19085        if Self::can_cast(syntax.kind()) {
19086            Some(Self { syntax })
19087        } else {
19088            None
19089        }
19090    }
19091    #[inline]
19092    fn syntax(&self) -> &SyntaxNode {
19093        &self.syntax
19094    }
19095}
19096impl AstNode for WithinClause {
19097    #[inline]
19098    fn can_cast(kind: SyntaxKind) -> bool {
19099        kind == SyntaxKind::WITHIN_CLAUSE
19100    }
19101    #[inline]
19102    fn cast(syntax: SyntaxNode) -> Option<Self> {
19103        if Self::can_cast(syntax.kind()) {
19104            Some(Self { syntax })
19105        } else {
19106            None
19107        }
19108    }
19109    #[inline]
19110    fn syntax(&self) -> &SyntaxNode {
19111        &self.syntax
19112    }
19113}
19114impl AstNode for WithoutOids {
19115    #[inline]
19116    fn can_cast(kind: SyntaxKind) -> bool {
19117        kind == SyntaxKind::WITHOUT_OIDS
19118    }
19119    #[inline]
19120    fn cast(syntax: SyntaxNode) -> Option<Self> {
19121        if Self::can_cast(syntax.kind()) {
19122            Some(Self { syntax })
19123        } else {
19124            None
19125        }
19126    }
19127    #[inline]
19128    fn syntax(&self) -> &SyntaxNode {
19129        &self.syntax
19130    }
19131}
19132impl AstNode for WithoutTimezone {
19133    #[inline]
19134    fn can_cast(kind: SyntaxKind) -> bool {
19135        kind == SyntaxKind::WITHOUT_TIMEZONE
19136    }
19137    #[inline]
19138    fn cast(syntax: SyntaxNode) -> Option<Self> {
19139        if Self::can_cast(syntax.kind()) {
19140            Some(Self { syntax })
19141        } else {
19142            None
19143        }
19144    }
19145    #[inline]
19146    fn syntax(&self) -> &SyntaxNode {
19147        &self.syntax
19148    }
19149}
19150impl AstNode for XmlColumnOption {
19151    #[inline]
19152    fn can_cast(kind: SyntaxKind) -> bool {
19153        kind == SyntaxKind::XML_COLUMN_OPTION
19154    }
19155    #[inline]
19156    fn cast(syntax: SyntaxNode) -> Option<Self> {
19157        if Self::can_cast(syntax.kind()) {
19158            Some(Self { syntax })
19159        } else {
19160            None
19161        }
19162    }
19163    #[inline]
19164    fn syntax(&self) -> &SyntaxNode {
19165        &self.syntax
19166    }
19167}
19168impl AstNode for XmlColumnOptionList {
19169    #[inline]
19170    fn can_cast(kind: SyntaxKind) -> bool {
19171        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
19172    }
19173    #[inline]
19174    fn cast(syntax: SyntaxNode) -> Option<Self> {
19175        if Self::can_cast(syntax.kind()) {
19176            Some(Self { syntax })
19177        } else {
19178            None
19179        }
19180    }
19181    #[inline]
19182    fn syntax(&self) -> &SyntaxNode {
19183        &self.syntax
19184    }
19185}
19186impl AstNode for XmlTableColumn {
19187    #[inline]
19188    fn can_cast(kind: SyntaxKind) -> bool {
19189        kind == SyntaxKind::XML_TABLE_COLUMN
19190    }
19191    #[inline]
19192    fn cast(syntax: SyntaxNode) -> Option<Self> {
19193        if Self::can_cast(syntax.kind()) {
19194            Some(Self { syntax })
19195        } else {
19196            None
19197        }
19198    }
19199    #[inline]
19200    fn syntax(&self) -> &SyntaxNode {
19201        &self.syntax
19202    }
19203}
19204impl AstNode for XmlTableColumnList {
19205    #[inline]
19206    fn can_cast(kind: SyntaxKind) -> bool {
19207        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
19208    }
19209    #[inline]
19210    fn cast(syntax: SyntaxNode) -> Option<Self> {
19211        if Self::can_cast(syntax.kind()) {
19212            Some(Self { syntax })
19213        } else {
19214            None
19215        }
19216    }
19217    #[inline]
19218    fn syntax(&self) -> &SyntaxNode {
19219        &self.syntax
19220    }
19221}
19222impl AstNode for AlterColumnOption {
19223    #[inline]
19224    fn can_cast(kind: SyntaxKind) -> bool {
19225        matches!(
19226            kind,
19227            SyntaxKind::ADD_GENERATED
19228                | SyntaxKind::DROP_DEFAULT
19229                | SyntaxKind::DROP_EXPRESSION
19230                | SyntaxKind::DROP_IDENTITY
19231                | SyntaxKind::DROP_NOT_NULL
19232                | SyntaxKind::RESET_OPTIONS
19233                | SyntaxKind::RESTART
19234                | SyntaxKind::SET_COMPRESSION
19235                | SyntaxKind::SET_DEFAULT
19236                | SyntaxKind::SET_EXPRESSION
19237                | SyntaxKind::SET_GENERATED
19238                | SyntaxKind::SET_GENERATED_OPTIONS
19239                | SyntaxKind::SET_NOT_NULL
19240                | SyntaxKind::SET_OPTIONS
19241                | SyntaxKind::SET_SEQUENCE_OPTION
19242                | SyntaxKind::SET_STATISTICS
19243                | SyntaxKind::SET_STORAGE
19244                | SyntaxKind::SET_TYPE
19245        )
19246    }
19247    #[inline]
19248    fn cast(syntax: SyntaxNode) -> Option<Self> {
19249        let res = match syntax.kind() {
19250            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
19251            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
19252            SyntaxKind::DROP_EXPRESSION => {
19253                AlterColumnOption::DropExpression(DropExpression { syntax })
19254            }
19255            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
19256            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
19257            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
19258            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
19259            SyntaxKind::SET_COMPRESSION => {
19260                AlterColumnOption::SetCompression(SetCompression { syntax })
19261            }
19262            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
19263            SyntaxKind::SET_EXPRESSION => {
19264                AlterColumnOption::SetExpression(SetExpression { syntax })
19265            }
19266            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
19267            SyntaxKind::SET_GENERATED_OPTIONS => {
19268                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
19269            }
19270            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
19271            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
19272            SyntaxKind::SET_SEQUENCE_OPTION => {
19273                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
19274            }
19275            SyntaxKind::SET_STATISTICS => {
19276                AlterColumnOption::SetStatistics(SetStatistics { syntax })
19277            }
19278            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
19279            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
19280            _ => {
19281                return None;
19282            }
19283        };
19284        Some(res)
19285    }
19286    #[inline]
19287    fn syntax(&self) -> &SyntaxNode {
19288        match self {
19289            AlterColumnOption::AddGenerated(it) => &it.syntax,
19290            AlterColumnOption::DropDefault(it) => &it.syntax,
19291            AlterColumnOption::DropExpression(it) => &it.syntax,
19292            AlterColumnOption::DropIdentity(it) => &it.syntax,
19293            AlterColumnOption::DropNotNull(it) => &it.syntax,
19294            AlterColumnOption::ResetOptions(it) => &it.syntax,
19295            AlterColumnOption::Restart(it) => &it.syntax,
19296            AlterColumnOption::SetCompression(it) => &it.syntax,
19297            AlterColumnOption::SetDefault(it) => &it.syntax,
19298            AlterColumnOption::SetExpression(it) => &it.syntax,
19299            AlterColumnOption::SetGenerated(it) => &it.syntax,
19300            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
19301            AlterColumnOption::SetNotNull(it) => &it.syntax,
19302            AlterColumnOption::SetOptions(it) => &it.syntax,
19303            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
19304            AlterColumnOption::SetStatistics(it) => &it.syntax,
19305            AlterColumnOption::SetStorage(it) => &it.syntax,
19306            AlterColumnOption::SetType(it) => &it.syntax,
19307        }
19308    }
19309}
19310impl From<AddGenerated> for AlterColumnOption {
19311    #[inline]
19312    fn from(node: AddGenerated) -> AlterColumnOption {
19313        AlterColumnOption::AddGenerated(node)
19314    }
19315}
19316impl From<DropDefault> for AlterColumnOption {
19317    #[inline]
19318    fn from(node: DropDefault) -> AlterColumnOption {
19319        AlterColumnOption::DropDefault(node)
19320    }
19321}
19322impl From<DropExpression> for AlterColumnOption {
19323    #[inline]
19324    fn from(node: DropExpression) -> AlterColumnOption {
19325        AlterColumnOption::DropExpression(node)
19326    }
19327}
19328impl From<DropIdentity> for AlterColumnOption {
19329    #[inline]
19330    fn from(node: DropIdentity) -> AlterColumnOption {
19331        AlterColumnOption::DropIdentity(node)
19332    }
19333}
19334impl From<DropNotNull> for AlterColumnOption {
19335    #[inline]
19336    fn from(node: DropNotNull) -> AlterColumnOption {
19337        AlterColumnOption::DropNotNull(node)
19338    }
19339}
19340impl From<ResetOptions> for AlterColumnOption {
19341    #[inline]
19342    fn from(node: ResetOptions) -> AlterColumnOption {
19343        AlterColumnOption::ResetOptions(node)
19344    }
19345}
19346impl From<Restart> for AlterColumnOption {
19347    #[inline]
19348    fn from(node: Restart) -> AlterColumnOption {
19349        AlterColumnOption::Restart(node)
19350    }
19351}
19352impl From<SetCompression> for AlterColumnOption {
19353    #[inline]
19354    fn from(node: SetCompression) -> AlterColumnOption {
19355        AlterColumnOption::SetCompression(node)
19356    }
19357}
19358impl From<SetDefault> for AlterColumnOption {
19359    #[inline]
19360    fn from(node: SetDefault) -> AlterColumnOption {
19361        AlterColumnOption::SetDefault(node)
19362    }
19363}
19364impl From<SetExpression> for AlterColumnOption {
19365    #[inline]
19366    fn from(node: SetExpression) -> AlterColumnOption {
19367        AlterColumnOption::SetExpression(node)
19368    }
19369}
19370impl From<SetGenerated> for AlterColumnOption {
19371    #[inline]
19372    fn from(node: SetGenerated) -> AlterColumnOption {
19373        AlterColumnOption::SetGenerated(node)
19374    }
19375}
19376impl From<SetGeneratedOptions> for AlterColumnOption {
19377    #[inline]
19378    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
19379        AlterColumnOption::SetGeneratedOptions(node)
19380    }
19381}
19382impl From<SetNotNull> for AlterColumnOption {
19383    #[inline]
19384    fn from(node: SetNotNull) -> AlterColumnOption {
19385        AlterColumnOption::SetNotNull(node)
19386    }
19387}
19388impl From<SetOptions> for AlterColumnOption {
19389    #[inline]
19390    fn from(node: SetOptions) -> AlterColumnOption {
19391        AlterColumnOption::SetOptions(node)
19392    }
19393}
19394impl From<SetSequenceOption> for AlterColumnOption {
19395    #[inline]
19396    fn from(node: SetSequenceOption) -> AlterColumnOption {
19397        AlterColumnOption::SetSequenceOption(node)
19398    }
19399}
19400impl From<SetStatistics> for AlterColumnOption {
19401    #[inline]
19402    fn from(node: SetStatistics) -> AlterColumnOption {
19403        AlterColumnOption::SetStatistics(node)
19404    }
19405}
19406impl From<SetStorage> for AlterColumnOption {
19407    #[inline]
19408    fn from(node: SetStorage) -> AlterColumnOption {
19409        AlterColumnOption::SetStorage(node)
19410    }
19411}
19412impl From<SetType> for AlterColumnOption {
19413    #[inline]
19414    fn from(node: SetType) -> AlterColumnOption {
19415        AlterColumnOption::SetType(node)
19416    }
19417}
19418impl AstNode for AlterDomainAction {
19419    #[inline]
19420    fn can_cast(kind: SyntaxKind) -> bool {
19421        matches!(
19422            kind,
19423            SyntaxKind::ADD_CONSTRAINT
19424                | SyntaxKind::DROP_CONSTRAINT
19425                | SyntaxKind::DROP_DEFAULT
19426                | SyntaxKind::DROP_NOT_NULL
19427                | SyntaxKind::OWNER_TO
19428                | SyntaxKind::RENAME_CONSTRAINT
19429                | SyntaxKind::RENAME_TO
19430                | SyntaxKind::SET_DEFAULT
19431                | SyntaxKind::SET_NOT_NULL
19432                | SyntaxKind::SET_SCHEMA
19433                | SyntaxKind::VALIDATE_CONSTRAINT
19434        )
19435    }
19436    #[inline]
19437    fn cast(syntax: SyntaxNode) -> Option<Self> {
19438        let res = match syntax.kind() {
19439            SyntaxKind::ADD_CONSTRAINT => {
19440                AlterDomainAction::AddConstraint(AddConstraint { syntax })
19441            }
19442            SyntaxKind::DROP_CONSTRAINT => {
19443                AlterDomainAction::DropConstraint(DropConstraint { syntax })
19444            }
19445            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
19446            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
19447            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
19448            SyntaxKind::RENAME_CONSTRAINT => {
19449                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
19450            }
19451            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
19452            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
19453            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
19454            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
19455            SyntaxKind::VALIDATE_CONSTRAINT => {
19456                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
19457            }
19458            _ => {
19459                return None;
19460            }
19461        };
19462        Some(res)
19463    }
19464    #[inline]
19465    fn syntax(&self) -> &SyntaxNode {
19466        match self {
19467            AlterDomainAction::AddConstraint(it) => &it.syntax,
19468            AlterDomainAction::DropConstraint(it) => &it.syntax,
19469            AlterDomainAction::DropDefault(it) => &it.syntax,
19470            AlterDomainAction::DropNotNull(it) => &it.syntax,
19471            AlterDomainAction::OwnerTo(it) => &it.syntax,
19472            AlterDomainAction::RenameConstraint(it) => &it.syntax,
19473            AlterDomainAction::RenameTo(it) => &it.syntax,
19474            AlterDomainAction::SetDefault(it) => &it.syntax,
19475            AlterDomainAction::SetNotNull(it) => &it.syntax,
19476            AlterDomainAction::SetSchema(it) => &it.syntax,
19477            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
19478        }
19479    }
19480}
19481impl From<AddConstraint> for AlterDomainAction {
19482    #[inline]
19483    fn from(node: AddConstraint) -> AlterDomainAction {
19484        AlterDomainAction::AddConstraint(node)
19485    }
19486}
19487impl From<DropConstraint> for AlterDomainAction {
19488    #[inline]
19489    fn from(node: DropConstraint) -> AlterDomainAction {
19490        AlterDomainAction::DropConstraint(node)
19491    }
19492}
19493impl From<DropDefault> for AlterDomainAction {
19494    #[inline]
19495    fn from(node: DropDefault) -> AlterDomainAction {
19496        AlterDomainAction::DropDefault(node)
19497    }
19498}
19499impl From<DropNotNull> for AlterDomainAction {
19500    #[inline]
19501    fn from(node: DropNotNull) -> AlterDomainAction {
19502        AlterDomainAction::DropNotNull(node)
19503    }
19504}
19505impl From<OwnerTo> for AlterDomainAction {
19506    #[inline]
19507    fn from(node: OwnerTo) -> AlterDomainAction {
19508        AlterDomainAction::OwnerTo(node)
19509    }
19510}
19511impl From<RenameConstraint> for AlterDomainAction {
19512    #[inline]
19513    fn from(node: RenameConstraint) -> AlterDomainAction {
19514        AlterDomainAction::RenameConstraint(node)
19515    }
19516}
19517impl From<RenameTo> for AlterDomainAction {
19518    #[inline]
19519    fn from(node: RenameTo) -> AlterDomainAction {
19520        AlterDomainAction::RenameTo(node)
19521    }
19522}
19523impl From<SetDefault> for AlterDomainAction {
19524    #[inline]
19525    fn from(node: SetDefault) -> AlterDomainAction {
19526        AlterDomainAction::SetDefault(node)
19527    }
19528}
19529impl From<SetNotNull> for AlterDomainAction {
19530    #[inline]
19531    fn from(node: SetNotNull) -> AlterDomainAction {
19532        AlterDomainAction::SetNotNull(node)
19533    }
19534}
19535impl From<SetSchema> for AlterDomainAction {
19536    #[inline]
19537    fn from(node: SetSchema) -> AlterDomainAction {
19538        AlterDomainAction::SetSchema(node)
19539    }
19540}
19541impl From<ValidateConstraint> for AlterDomainAction {
19542    #[inline]
19543    fn from(node: ValidateConstraint) -> AlterDomainAction {
19544        AlterDomainAction::ValidateConstraint(node)
19545    }
19546}
19547impl AstNode for AlterTableAction {
19548    #[inline]
19549    fn can_cast(kind: SyntaxKind) -> bool {
19550        matches!(
19551            kind,
19552            SyntaxKind::ADD_COLUMN
19553                | SyntaxKind::ADD_CONSTRAINT
19554                | SyntaxKind::ALTER_COLUMN
19555                | SyntaxKind::ALTER_CONSTRAINT
19556                | SyntaxKind::ATTACH_PARTITION
19557                | SyntaxKind::CLUSTER_ON
19558                | SyntaxKind::DETACH_PARTITION
19559                | SyntaxKind::DISABLE_RLS
19560                | SyntaxKind::DISABLE_RULE
19561                | SyntaxKind::DISABLE_TRIGGER
19562                | SyntaxKind::DROP_COLUMN
19563                | SyntaxKind::DROP_CONSTRAINT
19564                | SyntaxKind::ENABLE_ALWAYS_RULE
19565                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
19566                | SyntaxKind::ENABLE_REPLICA_RULE
19567                | SyntaxKind::ENABLE_REPLICA_TRIGGER
19568                | SyntaxKind::ENABLE_RLS
19569                | SyntaxKind::ENABLE_RULE
19570                | SyntaxKind::ENABLE_TRIGGER
19571                | SyntaxKind::FORCE_RLS
19572                | SyntaxKind::INHERIT
19573                | SyntaxKind::NO_FORCE_RLS
19574                | SyntaxKind::NO_INHERIT
19575                | SyntaxKind::NOT_OF
19576                | SyntaxKind::OF_TYPE
19577                | SyntaxKind::OPTIONS_LIST
19578                | SyntaxKind::OWNER_TO
19579                | SyntaxKind::RENAME_COLUMN
19580                | SyntaxKind::RENAME_CONSTRAINT
19581                | SyntaxKind::RENAME_TABLE
19582                | SyntaxKind::REPLICA_IDENTITY
19583                | SyntaxKind::RESET_STORAGE_PARAMS
19584                | SyntaxKind::SET_ACCESS_METHOD
19585                | SyntaxKind::SET_LOGGED
19586                | SyntaxKind::SET_SCHEMA
19587                | SyntaxKind::SET_STORAGE_PARAMS
19588                | SyntaxKind::SET_TABLESPACE
19589                | SyntaxKind::SET_UNLOGGED
19590                | SyntaxKind::SET_WITHOUT_CLUSTER
19591                | SyntaxKind::SET_WITHOUT_OIDS
19592                | SyntaxKind::VALIDATE_CONSTRAINT
19593        )
19594    }
19595    #[inline]
19596    fn cast(syntax: SyntaxNode) -> Option<Self> {
19597        let res = match syntax.kind() {
19598            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
19599            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
19600            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
19601            SyntaxKind::ALTER_CONSTRAINT => {
19602                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
19603            }
19604            SyntaxKind::ATTACH_PARTITION => {
19605                AlterTableAction::AttachPartition(AttachPartition { syntax })
19606            }
19607            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
19608            SyntaxKind::DETACH_PARTITION => {
19609                AlterTableAction::DetachPartition(DetachPartition { syntax })
19610            }
19611            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
19612            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
19613            SyntaxKind::DISABLE_TRIGGER => {
19614                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
19615            }
19616            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
19617            SyntaxKind::DROP_CONSTRAINT => {
19618                AlterTableAction::DropConstraint(DropConstraint { syntax })
19619            }
19620            SyntaxKind::ENABLE_ALWAYS_RULE => {
19621                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
19622            }
19623            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
19624                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
19625            }
19626            SyntaxKind::ENABLE_REPLICA_RULE => {
19627                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
19628            }
19629            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
19630                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
19631            }
19632            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
19633            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
19634            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
19635            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
19636            SyntaxKind::INHERIT => AlterTableAction::Inherit(Inherit { syntax }),
19637            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
19638            SyntaxKind::NO_INHERIT => AlterTableAction::NoInherit(NoInherit { syntax }),
19639            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
19640            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
19641            SyntaxKind::OPTIONS_LIST => AlterTableAction::OptionsList(OptionsList { syntax }),
19642            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
19643            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
19644            SyntaxKind::RENAME_CONSTRAINT => {
19645                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
19646            }
19647            SyntaxKind::RENAME_TABLE => AlterTableAction::RenameTable(RenameTable { syntax }),
19648            SyntaxKind::REPLICA_IDENTITY => {
19649                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
19650            }
19651            SyntaxKind::RESET_STORAGE_PARAMS => {
19652                AlterTableAction::ResetStorageParams(ResetStorageParams { syntax })
19653            }
19654            SyntaxKind::SET_ACCESS_METHOD => {
19655                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
19656            }
19657            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
19658            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
19659            SyntaxKind::SET_STORAGE_PARAMS => {
19660                AlterTableAction::SetStorageParams(SetStorageParams { syntax })
19661            }
19662            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
19663            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
19664            SyntaxKind::SET_WITHOUT_CLUSTER => {
19665                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
19666            }
19667            SyntaxKind::SET_WITHOUT_OIDS => {
19668                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
19669            }
19670            SyntaxKind::VALIDATE_CONSTRAINT => {
19671                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
19672            }
19673            _ => {
19674                return None;
19675            }
19676        };
19677        Some(res)
19678    }
19679    #[inline]
19680    fn syntax(&self) -> &SyntaxNode {
19681        match self {
19682            AlterTableAction::AddColumn(it) => &it.syntax,
19683            AlterTableAction::AddConstraint(it) => &it.syntax,
19684            AlterTableAction::AlterColumn(it) => &it.syntax,
19685            AlterTableAction::AlterConstraint(it) => &it.syntax,
19686            AlterTableAction::AttachPartition(it) => &it.syntax,
19687            AlterTableAction::ClusterOn(it) => &it.syntax,
19688            AlterTableAction::DetachPartition(it) => &it.syntax,
19689            AlterTableAction::DisableRls(it) => &it.syntax,
19690            AlterTableAction::DisableRule(it) => &it.syntax,
19691            AlterTableAction::DisableTrigger(it) => &it.syntax,
19692            AlterTableAction::DropColumn(it) => &it.syntax,
19693            AlterTableAction::DropConstraint(it) => &it.syntax,
19694            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
19695            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
19696            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
19697            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
19698            AlterTableAction::EnableRls(it) => &it.syntax,
19699            AlterTableAction::EnableRule(it) => &it.syntax,
19700            AlterTableAction::EnableTrigger(it) => &it.syntax,
19701            AlterTableAction::ForceRls(it) => &it.syntax,
19702            AlterTableAction::Inherit(it) => &it.syntax,
19703            AlterTableAction::NoForceRls(it) => &it.syntax,
19704            AlterTableAction::NoInherit(it) => &it.syntax,
19705            AlterTableAction::NotOf(it) => &it.syntax,
19706            AlterTableAction::OfType(it) => &it.syntax,
19707            AlterTableAction::OptionsList(it) => &it.syntax,
19708            AlterTableAction::OwnerTo(it) => &it.syntax,
19709            AlterTableAction::RenameColumn(it) => &it.syntax,
19710            AlterTableAction::RenameConstraint(it) => &it.syntax,
19711            AlterTableAction::RenameTable(it) => &it.syntax,
19712            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
19713            AlterTableAction::ResetStorageParams(it) => &it.syntax,
19714            AlterTableAction::SetAccessMethod(it) => &it.syntax,
19715            AlterTableAction::SetLogged(it) => &it.syntax,
19716            AlterTableAction::SetSchema(it) => &it.syntax,
19717            AlterTableAction::SetStorageParams(it) => &it.syntax,
19718            AlterTableAction::SetTablespace(it) => &it.syntax,
19719            AlterTableAction::SetUnlogged(it) => &it.syntax,
19720            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
19721            AlterTableAction::SetWithoutOids(it) => &it.syntax,
19722            AlterTableAction::ValidateConstraint(it) => &it.syntax,
19723        }
19724    }
19725}
19726impl From<AddColumn> for AlterTableAction {
19727    #[inline]
19728    fn from(node: AddColumn) -> AlterTableAction {
19729        AlterTableAction::AddColumn(node)
19730    }
19731}
19732impl From<AddConstraint> for AlterTableAction {
19733    #[inline]
19734    fn from(node: AddConstraint) -> AlterTableAction {
19735        AlterTableAction::AddConstraint(node)
19736    }
19737}
19738impl From<AlterColumn> for AlterTableAction {
19739    #[inline]
19740    fn from(node: AlterColumn) -> AlterTableAction {
19741        AlterTableAction::AlterColumn(node)
19742    }
19743}
19744impl From<AlterConstraint> for AlterTableAction {
19745    #[inline]
19746    fn from(node: AlterConstraint) -> AlterTableAction {
19747        AlterTableAction::AlterConstraint(node)
19748    }
19749}
19750impl From<AttachPartition> for AlterTableAction {
19751    #[inline]
19752    fn from(node: AttachPartition) -> AlterTableAction {
19753        AlterTableAction::AttachPartition(node)
19754    }
19755}
19756impl From<ClusterOn> for AlterTableAction {
19757    #[inline]
19758    fn from(node: ClusterOn) -> AlterTableAction {
19759        AlterTableAction::ClusterOn(node)
19760    }
19761}
19762impl From<DetachPartition> for AlterTableAction {
19763    #[inline]
19764    fn from(node: DetachPartition) -> AlterTableAction {
19765        AlterTableAction::DetachPartition(node)
19766    }
19767}
19768impl From<DisableRls> for AlterTableAction {
19769    #[inline]
19770    fn from(node: DisableRls) -> AlterTableAction {
19771        AlterTableAction::DisableRls(node)
19772    }
19773}
19774impl From<DisableRule> for AlterTableAction {
19775    #[inline]
19776    fn from(node: DisableRule) -> AlterTableAction {
19777        AlterTableAction::DisableRule(node)
19778    }
19779}
19780impl From<DisableTrigger> for AlterTableAction {
19781    #[inline]
19782    fn from(node: DisableTrigger) -> AlterTableAction {
19783        AlterTableAction::DisableTrigger(node)
19784    }
19785}
19786impl From<DropColumn> for AlterTableAction {
19787    #[inline]
19788    fn from(node: DropColumn) -> AlterTableAction {
19789        AlterTableAction::DropColumn(node)
19790    }
19791}
19792impl From<DropConstraint> for AlterTableAction {
19793    #[inline]
19794    fn from(node: DropConstraint) -> AlterTableAction {
19795        AlterTableAction::DropConstraint(node)
19796    }
19797}
19798impl From<EnableAlwaysRule> for AlterTableAction {
19799    #[inline]
19800    fn from(node: EnableAlwaysRule) -> AlterTableAction {
19801        AlterTableAction::EnableAlwaysRule(node)
19802    }
19803}
19804impl From<EnableAlwaysTrigger> for AlterTableAction {
19805    #[inline]
19806    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
19807        AlterTableAction::EnableAlwaysTrigger(node)
19808    }
19809}
19810impl From<EnableReplicaRule> for AlterTableAction {
19811    #[inline]
19812    fn from(node: EnableReplicaRule) -> AlterTableAction {
19813        AlterTableAction::EnableReplicaRule(node)
19814    }
19815}
19816impl From<EnableReplicaTrigger> for AlterTableAction {
19817    #[inline]
19818    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
19819        AlterTableAction::EnableReplicaTrigger(node)
19820    }
19821}
19822impl From<EnableRls> for AlterTableAction {
19823    #[inline]
19824    fn from(node: EnableRls) -> AlterTableAction {
19825        AlterTableAction::EnableRls(node)
19826    }
19827}
19828impl From<EnableRule> for AlterTableAction {
19829    #[inline]
19830    fn from(node: EnableRule) -> AlterTableAction {
19831        AlterTableAction::EnableRule(node)
19832    }
19833}
19834impl From<EnableTrigger> for AlterTableAction {
19835    #[inline]
19836    fn from(node: EnableTrigger) -> AlterTableAction {
19837        AlterTableAction::EnableTrigger(node)
19838    }
19839}
19840impl From<ForceRls> for AlterTableAction {
19841    #[inline]
19842    fn from(node: ForceRls) -> AlterTableAction {
19843        AlterTableAction::ForceRls(node)
19844    }
19845}
19846impl From<Inherit> for AlterTableAction {
19847    #[inline]
19848    fn from(node: Inherit) -> AlterTableAction {
19849        AlterTableAction::Inherit(node)
19850    }
19851}
19852impl From<NoForceRls> for AlterTableAction {
19853    #[inline]
19854    fn from(node: NoForceRls) -> AlterTableAction {
19855        AlterTableAction::NoForceRls(node)
19856    }
19857}
19858impl From<NoInherit> for AlterTableAction {
19859    #[inline]
19860    fn from(node: NoInherit) -> AlterTableAction {
19861        AlterTableAction::NoInherit(node)
19862    }
19863}
19864impl From<NotOf> for AlterTableAction {
19865    #[inline]
19866    fn from(node: NotOf) -> AlterTableAction {
19867        AlterTableAction::NotOf(node)
19868    }
19869}
19870impl From<OfType> for AlterTableAction {
19871    #[inline]
19872    fn from(node: OfType) -> AlterTableAction {
19873        AlterTableAction::OfType(node)
19874    }
19875}
19876impl From<OptionsList> for AlterTableAction {
19877    #[inline]
19878    fn from(node: OptionsList) -> AlterTableAction {
19879        AlterTableAction::OptionsList(node)
19880    }
19881}
19882impl From<OwnerTo> for AlterTableAction {
19883    #[inline]
19884    fn from(node: OwnerTo) -> AlterTableAction {
19885        AlterTableAction::OwnerTo(node)
19886    }
19887}
19888impl From<RenameColumn> for AlterTableAction {
19889    #[inline]
19890    fn from(node: RenameColumn) -> AlterTableAction {
19891        AlterTableAction::RenameColumn(node)
19892    }
19893}
19894impl From<RenameConstraint> for AlterTableAction {
19895    #[inline]
19896    fn from(node: RenameConstraint) -> AlterTableAction {
19897        AlterTableAction::RenameConstraint(node)
19898    }
19899}
19900impl From<RenameTable> for AlterTableAction {
19901    #[inline]
19902    fn from(node: RenameTable) -> AlterTableAction {
19903        AlterTableAction::RenameTable(node)
19904    }
19905}
19906impl From<ReplicaIdentity> for AlterTableAction {
19907    #[inline]
19908    fn from(node: ReplicaIdentity) -> AlterTableAction {
19909        AlterTableAction::ReplicaIdentity(node)
19910    }
19911}
19912impl From<ResetStorageParams> for AlterTableAction {
19913    #[inline]
19914    fn from(node: ResetStorageParams) -> AlterTableAction {
19915        AlterTableAction::ResetStorageParams(node)
19916    }
19917}
19918impl From<SetAccessMethod> for AlterTableAction {
19919    #[inline]
19920    fn from(node: SetAccessMethod) -> AlterTableAction {
19921        AlterTableAction::SetAccessMethod(node)
19922    }
19923}
19924impl From<SetLogged> for AlterTableAction {
19925    #[inline]
19926    fn from(node: SetLogged) -> AlterTableAction {
19927        AlterTableAction::SetLogged(node)
19928    }
19929}
19930impl From<SetSchema> for AlterTableAction {
19931    #[inline]
19932    fn from(node: SetSchema) -> AlterTableAction {
19933        AlterTableAction::SetSchema(node)
19934    }
19935}
19936impl From<SetStorageParams> for AlterTableAction {
19937    #[inline]
19938    fn from(node: SetStorageParams) -> AlterTableAction {
19939        AlterTableAction::SetStorageParams(node)
19940    }
19941}
19942impl From<SetTablespace> for AlterTableAction {
19943    #[inline]
19944    fn from(node: SetTablespace) -> AlterTableAction {
19945        AlterTableAction::SetTablespace(node)
19946    }
19947}
19948impl From<SetUnlogged> for AlterTableAction {
19949    #[inline]
19950    fn from(node: SetUnlogged) -> AlterTableAction {
19951        AlterTableAction::SetUnlogged(node)
19952    }
19953}
19954impl From<SetWithoutCluster> for AlterTableAction {
19955    #[inline]
19956    fn from(node: SetWithoutCluster) -> AlterTableAction {
19957        AlterTableAction::SetWithoutCluster(node)
19958    }
19959}
19960impl From<SetWithoutOids> for AlterTableAction {
19961    #[inline]
19962    fn from(node: SetWithoutOids) -> AlterTableAction {
19963        AlterTableAction::SetWithoutOids(node)
19964    }
19965}
19966impl From<ValidateConstraint> for AlterTableAction {
19967    #[inline]
19968    fn from(node: ValidateConstraint) -> AlterTableAction {
19969        AlterTableAction::ValidateConstraint(node)
19970    }
19971}
19972impl AstNode for ColumnConstraint {
19973    #[inline]
19974    fn can_cast(kind: SyntaxKind) -> bool {
19975        matches!(
19976            kind,
19977            SyntaxKind::CHECK_CONSTRAINT
19978                | SyntaxKind::EXCLUDE_CONSTRAINT
19979                | SyntaxKind::NOT_NULL_CONSTRAINT
19980                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
19981                | SyntaxKind::REFERENCES_CONSTRAINT
19982                | SyntaxKind::UNIQUE_CONSTRAINT
19983        )
19984    }
19985    #[inline]
19986    fn cast(syntax: SyntaxNode) -> Option<Self> {
19987        let res = match syntax.kind() {
19988            SyntaxKind::CHECK_CONSTRAINT => {
19989                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
19990            }
19991            SyntaxKind::EXCLUDE_CONSTRAINT => {
19992                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
19993            }
19994            SyntaxKind::NOT_NULL_CONSTRAINT => {
19995                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
19996            }
19997            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
19998                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
19999            }
20000            SyntaxKind::REFERENCES_CONSTRAINT => {
20001                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
20002            }
20003            SyntaxKind::UNIQUE_CONSTRAINT => {
20004                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
20005            }
20006            _ => {
20007                return None;
20008            }
20009        };
20010        Some(res)
20011    }
20012    #[inline]
20013    fn syntax(&self) -> &SyntaxNode {
20014        match self {
20015            ColumnConstraint::CheckConstraint(it) => &it.syntax,
20016            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
20017            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
20018            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
20019            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
20020            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
20021        }
20022    }
20023}
20024impl From<CheckConstraint> for ColumnConstraint {
20025    #[inline]
20026    fn from(node: CheckConstraint) -> ColumnConstraint {
20027        ColumnConstraint::CheckConstraint(node)
20028    }
20029}
20030impl From<ExcludeConstraint> for ColumnConstraint {
20031    #[inline]
20032    fn from(node: ExcludeConstraint) -> ColumnConstraint {
20033        ColumnConstraint::ExcludeConstraint(node)
20034    }
20035}
20036impl From<NotNullConstraint> for ColumnConstraint {
20037    #[inline]
20038    fn from(node: NotNullConstraint) -> ColumnConstraint {
20039        ColumnConstraint::NotNullConstraint(node)
20040    }
20041}
20042impl From<PrimaryKeyConstraint> for ColumnConstraint {
20043    #[inline]
20044    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
20045        ColumnConstraint::PrimaryKeyConstraint(node)
20046    }
20047}
20048impl From<ReferencesConstraint> for ColumnConstraint {
20049    #[inline]
20050    fn from(node: ReferencesConstraint) -> ColumnConstraint {
20051        ColumnConstraint::ReferencesConstraint(node)
20052    }
20053}
20054impl From<UniqueConstraint> for ColumnConstraint {
20055    #[inline]
20056    fn from(node: UniqueConstraint) -> ColumnConstraint {
20057        ColumnConstraint::UniqueConstraint(node)
20058    }
20059}
20060impl AstNode for Constraint {
20061    #[inline]
20062    fn can_cast(kind: SyntaxKind) -> bool {
20063        matches!(
20064            kind,
20065            SyntaxKind::CHECK_CONSTRAINT
20066                | SyntaxKind::DEFAULT_CONSTRAINT
20067                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
20068                | SyntaxKind::GENERATED_CONSTRAINT
20069                | SyntaxKind::NOT_NULL_CONSTRAINT
20070                | SyntaxKind::NULL_CONSTRAINT
20071                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
20072                | SyntaxKind::REFERENCES_CONSTRAINT
20073                | SyntaxKind::UNIQUE_CONSTRAINT
20074        )
20075    }
20076    #[inline]
20077    fn cast(syntax: SyntaxNode) -> Option<Self> {
20078        let res = match syntax.kind() {
20079            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
20080            SyntaxKind::DEFAULT_CONSTRAINT => {
20081                Constraint::DefaultConstraint(DefaultConstraint { syntax })
20082            }
20083            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
20084                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
20085            }
20086            SyntaxKind::GENERATED_CONSTRAINT => {
20087                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
20088            }
20089            SyntaxKind::NOT_NULL_CONSTRAINT => {
20090                Constraint::NotNullConstraint(NotNullConstraint { syntax })
20091            }
20092            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
20093            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
20094                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
20095            }
20096            SyntaxKind::REFERENCES_CONSTRAINT => {
20097                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
20098            }
20099            SyntaxKind::UNIQUE_CONSTRAINT => {
20100                Constraint::UniqueConstraint(UniqueConstraint { syntax })
20101            }
20102            _ => {
20103                return None;
20104            }
20105        };
20106        Some(res)
20107    }
20108    #[inline]
20109    fn syntax(&self) -> &SyntaxNode {
20110        match self {
20111            Constraint::CheckConstraint(it) => &it.syntax,
20112            Constraint::DefaultConstraint(it) => &it.syntax,
20113            Constraint::ForeignKeyConstraint(it) => &it.syntax,
20114            Constraint::GeneratedConstraint(it) => &it.syntax,
20115            Constraint::NotNullConstraint(it) => &it.syntax,
20116            Constraint::NullConstraint(it) => &it.syntax,
20117            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
20118            Constraint::ReferencesConstraint(it) => &it.syntax,
20119            Constraint::UniqueConstraint(it) => &it.syntax,
20120        }
20121    }
20122}
20123impl From<CheckConstraint> for Constraint {
20124    #[inline]
20125    fn from(node: CheckConstraint) -> Constraint {
20126        Constraint::CheckConstraint(node)
20127    }
20128}
20129impl From<DefaultConstraint> for Constraint {
20130    #[inline]
20131    fn from(node: DefaultConstraint) -> Constraint {
20132        Constraint::DefaultConstraint(node)
20133    }
20134}
20135impl From<ForeignKeyConstraint> for Constraint {
20136    #[inline]
20137    fn from(node: ForeignKeyConstraint) -> Constraint {
20138        Constraint::ForeignKeyConstraint(node)
20139    }
20140}
20141impl From<GeneratedConstraint> for Constraint {
20142    #[inline]
20143    fn from(node: GeneratedConstraint) -> Constraint {
20144        Constraint::GeneratedConstraint(node)
20145    }
20146}
20147impl From<NotNullConstraint> for Constraint {
20148    #[inline]
20149    fn from(node: NotNullConstraint) -> Constraint {
20150        Constraint::NotNullConstraint(node)
20151    }
20152}
20153impl From<NullConstraint> for Constraint {
20154    #[inline]
20155    fn from(node: NullConstraint) -> Constraint {
20156        Constraint::NullConstraint(node)
20157    }
20158}
20159impl From<PrimaryKeyConstraint> for Constraint {
20160    #[inline]
20161    fn from(node: PrimaryKeyConstraint) -> Constraint {
20162        Constraint::PrimaryKeyConstraint(node)
20163    }
20164}
20165impl From<ReferencesConstraint> for Constraint {
20166    #[inline]
20167    fn from(node: ReferencesConstraint) -> Constraint {
20168        Constraint::ReferencesConstraint(node)
20169    }
20170}
20171impl From<UniqueConstraint> for Constraint {
20172    #[inline]
20173    fn from(node: UniqueConstraint) -> Constraint {
20174        Constraint::UniqueConstraint(node)
20175    }
20176}
20177impl AstNode for Expr {
20178    #[inline]
20179    fn can_cast(kind: SyntaxKind) -> bool {
20180        matches!(
20181            kind,
20182            SyntaxKind::ARRAY_EXPR
20183                | SyntaxKind::BETWEEN_EXPR
20184                | SyntaxKind::BIN_EXPR
20185                | SyntaxKind::CALL_EXPR
20186                | SyntaxKind::CASE_EXPR
20187                | SyntaxKind::CAST_EXPR
20188                | SyntaxKind::FIELD_EXPR
20189                | SyntaxKind::INDEX_EXPR
20190                | SyntaxKind::LITERAL
20191                | SyntaxKind::NAME_REF
20192        )
20193    }
20194    #[inline]
20195    fn cast(syntax: SyntaxNode) -> Option<Self> {
20196        let res = match syntax.kind() {
20197            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
20198            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
20199            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
20200            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
20201            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
20202            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
20203            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
20204            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
20205            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
20206            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
20207            _ => {
20208                return None;
20209            }
20210        };
20211        Some(res)
20212    }
20213    #[inline]
20214    fn syntax(&self) -> &SyntaxNode {
20215        match self {
20216            Expr::ArrayExpr(it) => &it.syntax,
20217            Expr::BetweenExpr(it) => &it.syntax,
20218            Expr::BinExpr(it) => &it.syntax,
20219            Expr::CallExpr(it) => &it.syntax,
20220            Expr::CaseExpr(it) => &it.syntax,
20221            Expr::CastExpr(it) => &it.syntax,
20222            Expr::FieldExpr(it) => &it.syntax,
20223            Expr::IndexExpr(it) => &it.syntax,
20224            Expr::Literal(it) => &it.syntax,
20225            Expr::NameRef(it) => &it.syntax,
20226        }
20227    }
20228}
20229impl From<ArrayExpr> for Expr {
20230    #[inline]
20231    fn from(node: ArrayExpr) -> Expr {
20232        Expr::ArrayExpr(node)
20233    }
20234}
20235impl From<BetweenExpr> for Expr {
20236    #[inline]
20237    fn from(node: BetweenExpr) -> Expr {
20238        Expr::BetweenExpr(node)
20239    }
20240}
20241impl From<BinExpr> for Expr {
20242    #[inline]
20243    fn from(node: BinExpr) -> Expr {
20244        Expr::BinExpr(node)
20245    }
20246}
20247impl From<CallExpr> for Expr {
20248    #[inline]
20249    fn from(node: CallExpr) -> Expr {
20250        Expr::CallExpr(node)
20251    }
20252}
20253impl From<CaseExpr> for Expr {
20254    #[inline]
20255    fn from(node: CaseExpr) -> Expr {
20256        Expr::CaseExpr(node)
20257    }
20258}
20259impl From<CastExpr> for Expr {
20260    #[inline]
20261    fn from(node: CastExpr) -> Expr {
20262        Expr::CastExpr(node)
20263    }
20264}
20265impl From<FieldExpr> for Expr {
20266    #[inline]
20267    fn from(node: FieldExpr) -> Expr {
20268        Expr::FieldExpr(node)
20269    }
20270}
20271impl From<IndexExpr> for Expr {
20272    #[inline]
20273    fn from(node: IndexExpr) -> Expr {
20274        Expr::IndexExpr(node)
20275    }
20276}
20277impl From<Literal> for Expr {
20278    #[inline]
20279    fn from(node: Literal) -> Expr {
20280        Expr::Literal(node)
20281    }
20282}
20283impl From<NameRef> for Expr {
20284    #[inline]
20285    fn from(node: NameRef) -> Expr {
20286        Expr::NameRef(node)
20287    }
20288}
20289impl AstNode for FuncOption {
20290    #[inline]
20291    fn can_cast(kind: SyntaxKind) -> bool {
20292        matches!(
20293            kind,
20294            SyntaxKind::AS_FUNC_OPTION
20295                | SyntaxKind::BEGIN_FUNC_OPTION
20296                | SyntaxKind::COST_FUNC_OPTION
20297                | SyntaxKind::LANGUAGE_FUNC_OPTION
20298                | SyntaxKind::LEAKPROOF_FUNC_OPTION
20299                | SyntaxKind::PARALLEL_FUNC_OPTION
20300                | SyntaxKind::RESET_FUNC_OPTION
20301                | SyntaxKind::RETURN_FUNC_OPTION
20302                | SyntaxKind::ROWS_FUNC_OPTION
20303                | SyntaxKind::SECURITY_FUNC_OPTION
20304                | SyntaxKind::SET_FUNC_OPTION
20305                | SyntaxKind::STRICT_FUNC_OPTION
20306                | SyntaxKind::SUPPORT_FUNC_OPTION
20307                | SyntaxKind::TRANSFORM_FUNC_OPTION
20308                | SyntaxKind::VOLATILITY_FUNC_OPTION
20309                | SyntaxKind::WINDOW_FUNC_OPTION
20310        )
20311    }
20312    #[inline]
20313    fn cast(syntax: SyntaxNode) -> Option<Self> {
20314        let res = match syntax.kind() {
20315            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
20316            SyntaxKind::BEGIN_FUNC_OPTION => {
20317                FuncOption::BeginFuncOption(BeginFuncOption { syntax })
20318            }
20319            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
20320            SyntaxKind::LANGUAGE_FUNC_OPTION => {
20321                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
20322            }
20323            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
20324                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
20325            }
20326            SyntaxKind::PARALLEL_FUNC_OPTION => {
20327                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
20328            }
20329            SyntaxKind::RESET_FUNC_OPTION => {
20330                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
20331            }
20332            SyntaxKind::RETURN_FUNC_OPTION => {
20333                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
20334            }
20335            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
20336            SyntaxKind::SECURITY_FUNC_OPTION => {
20337                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
20338            }
20339            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
20340            SyntaxKind::STRICT_FUNC_OPTION => {
20341                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
20342            }
20343            SyntaxKind::SUPPORT_FUNC_OPTION => {
20344                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
20345            }
20346            SyntaxKind::TRANSFORM_FUNC_OPTION => {
20347                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
20348            }
20349            SyntaxKind::VOLATILITY_FUNC_OPTION => {
20350                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
20351            }
20352            SyntaxKind::WINDOW_FUNC_OPTION => {
20353                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
20354            }
20355            _ => {
20356                return None;
20357            }
20358        };
20359        Some(res)
20360    }
20361    #[inline]
20362    fn syntax(&self) -> &SyntaxNode {
20363        match self {
20364            FuncOption::AsFuncOption(it) => &it.syntax,
20365            FuncOption::BeginFuncOption(it) => &it.syntax,
20366            FuncOption::CostFuncOption(it) => &it.syntax,
20367            FuncOption::LanguageFuncOption(it) => &it.syntax,
20368            FuncOption::LeakproofFuncOption(it) => &it.syntax,
20369            FuncOption::ParallelFuncOption(it) => &it.syntax,
20370            FuncOption::ResetFuncOption(it) => &it.syntax,
20371            FuncOption::ReturnFuncOption(it) => &it.syntax,
20372            FuncOption::RowsFuncOption(it) => &it.syntax,
20373            FuncOption::SecurityFuncOption(it) => &it.syntax,
20374            FuncOption::SetFuncOption(it) => &it.syntax,
20375            FuncOption::StrictFuncOption(it) => &it.syntax,
20376            FuncOption::SupportFuncOption(it) => &it.syntax,
20377            FuncOption::TransformFuncOption(it) => &it.syntax,
20378            FuncOption::VolatilityFuncOption(it) => &it.syntax,
20379            FuncOption::WindowFuncOption(it) => &it.syntax,
20380        }
20381    }
20382}
20383impl From<AsFuncOption> for FuncOption {
20384    #[inline]
20385    fn from(node: AsFuncOption) -> FuncOption {
20386        FuncOption::AsFuncOption(node)
20387    }
20388}
20389impl From<BeginFuncOption> for FuncOption {
20390    #[inline]
20391    fn from(node: BeginFuncOption) -> FuncOption {
20392        FuncOption::BeginFuncOption(node)
20393    }
20394}
20395impl From<CostFuncOption> for FuncOption {
20396    #[inline]
20397    fn from(node: CostFuncOption) -> FuncOption {
20398        FuncOption::CostFuncOption(node)
20399    }
20400}
20401impl From<LanguageFuncOption> for FuncOption {
20402    #[inline]
20403    fn from(node: LanguageFuncOption) -> FuncOption {
20404        FuncOption::LanguageFuncOption(node)
20405    }
20406}
20407impl From<LeakproofFuncOption> for FuncOption {
20408    #[inline]
20409    fn from(node: LeakproofFuncOption) -> FuncOption {
20410        FuncOption::LeakproofFuncOption(node)
20411    }
20412}
20413impl From<ParallelFuncOption> for FuncOption {
20414    #[inline]
20415    fn from(node: ParallelFuncOption) -> FuncOption {
20416        FuncOption::ParallelFuncOption(node)
20417    }
20418}
20419impl From<ResetFuncOption> for FuncOption {
20420    #[inline]
20421    fn from(node: ResetFuncOption) -> FuncOption {
20422        FuncOption::ResetFuncOption(node)
20423    }
20424}
20425impl From<ReturnFuncOption> for FuncOption {
20426    #[inline]
20427    fn from(node: ReturnFuncOption) -> FuncOption {
20428        FuncOption::ReturnFuncOption(node)
20429    }
20430}
20431impl From<RowsFuncOption> for FuncOption {
20432    #[inline]
20433    fn from(node: RowsFuncOption) -> FuncOption {
20434        FuncOption::RowsFuncOption(node)
20435    }
20436}
20437impl From<SecurityFuncOption> for FuncOption {
20438    #[inline]
20439    fn from(node: SecurityFuncOption) -> FuncOption {
20440        FuncOption::SecurityFuncOption(node)
20441    }
20442}
20443impl From<SetFuncOption> for FuncOption {
20444    #[inline]
20445    fn from(node: SetFuncOption) -> FuncOption {
20446        FuncOption::SetFuncOption(node)
20447    }
20448}
20449impl From<StrictFuncOption> for FuncOption {
20450    #[inline]
20451    fn from(node: StrictFuncOption) -> FuncOption {
20452        FuncOption::StrictFuncOption(node)
20453    }
20454}
20455impl From<SupportFuncOption> for FuncOption {
20456    #[inline]
20457    fn from(node: SupportFuncOption) -> FuncOption {
20458        FuncOption::SupportFuncOption(node)
20459    }
20460}
20461impl From<TransformFuncOption> for FuncOption {
20462    #[inline]
20463    fn from(node: TransformFuncOption) -> FuncOption {
20464        FuncOption::TransformFuncOption(node)
20465    }
20466}
20467impl From<VolatilityFuncOption> for FuncOption {
20468    #[inline]
20469    fn from(node: VolatilityFuncOption) -> FuncOption {
20470        FuncOption::VolatilityFuncOption(node)
20471    }
20472}
20473impl From<WindowFuncOption> for FuncOption {
20474    #[inline]
20475    fn from(node: WindowFuncOption) -> FuncOption {
20476        FuncOption::WindowFuncOption(node)
20477    }
20478}
20479impl AstNode for JoinType {
20480    #[inline]
20481    fn can_cast(kind: SyntaxKind) -> bool {
20482        matches!(
20483            kind,
20484            SyntaxKind::JOIN_CROSS
20485                | SyntaxKind::JOIN_FULL
20486                | SyntaxKind::JOIN_INNER
20487                | SyntaxKind::JOIN_LEFT
20488                | SyntaxKind::JOIN_RIGHT
20489        )
20490    }
20491    #[inline]
20492    fn cast(syntax: SyntaxNode) -> Option<Self> {
20493        let res = match syntax.kind() {
20494            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
20495            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
20496            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
20497            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
20498            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
20499            _ => {
20500                return None;
20501            }
20502        };
20503        Some(res)
20504    }
20505    #[inline]
20506    fn syntax(&self) -> &SyntaxNode {
20507        match self {
20508            JoinType::JoinCross(it) => &it.syntax,
20509            JoinType::JoinFull(it) => &it.syntax,
20510            JoinType::JoinInner(it) => &it.syntax,
20511            JoinType::JoinLeft(it) => &it.syntax,
20512            JoinType::JoinRight(it) => &it.syntax,
20513        }
20514    }
20515}
20516impl From<JoinCross> for JoinType {
20517    #[inline]
20518    fn from(node: JoinCross) -> JoinType {
20519        JoinType::JoinCross(node)
20520    }
20521}
20522impl From<JoinFull> for JoinType {
20523    #[inline]
20524    fn from(node: JoinFull) -> JoinType {
20525        JoinType::JoinFull(node)
20526    }
20527}
20528impl From<JoinInner> for JoinType {
20529    #[inline]
20530    fn from(node: JoinInner) -> JoinType {
20531        JoinType::JoinInner(node)
20532    }
20533}
20534impl From<JoinLeft> for JoinType {
20535    #[inline]
20536    fn from(node: JoinLeft) -> JoinType {
20537        JoinType::JoinLeft(node)
20538    }
20539}
20540impl From<JoinRight> for JoinType {
20541    #[inline]
20542    fn from(node: JoinRight) -> JoinType {
20543        JoinType::JoinRight(node)
20544    }
20545}
20546impl AstNode for JsonBehavior {
20547    #[inline]
20548    fn can_cast(kind: SyntaxKind) -> bool {
20549        matches!(
20550            kind,
20551            SyntaxKind::JSON_BEHAVIOR_DEFAULT
20552                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
20553                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
20554                | SyntaxKind::JSON_BEHAVIOR_ERROR
20555                | SyntaxKind::JSON_BEHAVIOR_FALSE
20556                | SyntaxKind::JSON_BEHAVIOR_NULL
20557                | SyntaxKind::JSON_BEHAVIOR_TRUE
20558                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
20559        )
20560    }
20561    #[inline]
20562    fn cast(syntax: SyntaxNode) -> Option<Self> {
20563        let res = match syntax.kind() {
20564            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
20565                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
20566            }
20567            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
20568                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
20569            }
20570            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
20571                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
20572            }
20573            SyntaxKind::JSON_BEHAVIOR_ERROR => {
20574                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
20575            }
20576            SyntaxKind::JSON_BEHAVIOR_FALSE => {
20577                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
20578            }
20579            SyntaxKind::JSON_BEHAVIOR_NULL => {
20580                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
20581            }
20582            SyntaxKind::JSON_BEHAVIOR_TRUE => {
20583                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
20584            }
20585            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
20586                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
20587            }
20588            _ => {
20589                return None;
20590            }
20591        };
20592        Some(res)
20593    }
20594    #[inline]
20595    fn syntax(&self) -> &SyntaxNode {
20596        match self {
20597            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
20598            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
20599            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
20600            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
20601            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
20602            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
20603            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
20604            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
20605        }
20606    }
20607}
20608impl From<JsonBehaviorDefault> for JsonBehavior {
20609    #[inline]
20610    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
20611        JsonBehavior::JsonBehaviorDefault(node)
20612    }
20613}
20614impl From<JsonBehaviorEmptyArray> for JsonBehavior {
20615    #[inline]
20616    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
20617        JsonBehavior::JsonBehaviorEmptyArray(node)
20618    }
20619}
20620impl From<JsonBehaviorEmptyObject> for JsonBehavior {
20621    #[inline]
20622    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
20623        JsonBehavior::JsonBehaviorEmptyObject(node)
20624    }
20625}
20626impl From<JsonBehaviorError> for JsonBehavior {
20627    #[inline]
20628    fn from(node: JsonBehaviorError) -> JsonBehavior {
20629        JsonBehavior::JsonBehaviorError(node)
20630    }
20631}
20632impl From<JsonBehaviorFalse> for JsonBehavior {
20633    #[inline]
20634    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
20635        JsonBehavior::JsonBehaviorFalse(node)
20636    }
20637}
20638impl From<JsonBehaviorNull> for JsonBehavior {
20639    #[inline]
20640    fn from(node: JsonBehaviorNull) -> JsonBehavior {
20641        JsonBehavior::JsonBehaviorNull(node)
20642    }
20643}
20644impl From<JsonBehaviorTrue> for JsonBehavior {
20645    #[inline]
20646    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
20647        JsonBehavior::JsonBehaviorTrue(node)
20648    }
20649}
20650impl From<JsonBehaviorUnknown> for JsonBehavior {
20651    #[inline]
20652    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
20653        JsonBehavior::JsonBehaviorUnknown(node)
20654    }
20655}
20656impl AstNode for MatchType {
20657    #[inline]
20658    fn can_cast(kind: SyntaxKind) -> bool {
20659        matches!(
20660            kind,
20661            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
20662        )
20663    }
20664    #[inline]
20665    fn cast(syntax: SyntaxNode) -> Option<Self> {
20666        let res = match syntax.kind() {
20667            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
20668            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
20669            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
20670            _ => {
20671                return None;
20672            }
20673        };
20674        Some(res)
20675    }
20676    #[inline]
20677    fn syntax(&self) -> &SyntaxNode {
20678        match self {
20679            MatchType::MatchFull(it) => &it.syntax,
20680            MatchType::MatchPartial(it) => &it.syntax,
20681            MatchType::MatchSimple(it) => &it.syntax,
20682        }
20683    }
20684}
20685impl From<MatchFull> for MatchType {
20686    #[inline]
20687    fn from(node: MatchFull) -> MatchType {
20688        MatchType::MatchFull(node)
20689    }
20690}
20691impl From<MatchPartial> for MatchType {
20692    #[inline]
20693    fn from(node: MatchPartial) -> MatchType {
20694        MatchType::MatchPartial(node)
20695    }
20696}
20697impl From<MatchSimple> for MatchType {
20698    #[inline]
20699    fn from(node: MatchSimple) -> MatchType {
20700        MatchType::MatchSimple(node)
20701    }
20702}
20703impl AstNode for OnCommitAction {
20704    #[inline]
20705    fn can_cast(kind: SyntaxKind) -> bool {
20706        matches!(
20707            kind,
20708            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
20709        )
20710    }
20711    #[inline]
20712    fn cast(syntax: SyntaxNode) -> Option<Self> {
20713        let res = match syntax.kind() {
20714            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
20715            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
20716            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
20717            _ => {
20718                return None;
20719            }
20720        };
20721        Some(res)
20722    }
20723    #[inline]
20724    fn syntax(&self) -> &SyntaxNode {
20725        match self {
20726            OnCommitAction::DeleteRows(it) => &it.syntax,
20727            OnCommitAction::Drop(it) => &it.syntax,
20728            OnCommitAction::PreserveRows(it) => &it.syntax,
20729        }
20730    }
20731}
20732impl From<DeleteRows> for OnCommitAction {
20733    #[inline]
20734    fn from(node: DeleteRows) -> OnCommitAction {
20735        OnCommitAction::DeleteRows(node)
20736    }
20737}
20738impl From<Drop> for OnCommitAction {
20739    #[inline]
20740    fn from(node: Drop) -> OnCommitAction {
20741        OnCommitAction::Drop(node)
20742    }
20743}
20744impl From<PreserveRows> for OnCommitAction {
20745    #[inline]
20746    fn from(node: PreserveRows) -> OnCommitAction {
20747        OnCommitAction::PreserveRows(node)
20748    }
20749}
20750impl AstNode for ParamMode {
20751    #[inline]
20752    fn can_cast(kind: SyntaxKind) -> bool {
20753        matches!(
20754            kind,
20755            SyntaxKind::PARAM_IN
20756                | SyntaxKind::PARAM_IN_OUT
20757                | SyntaxKind::PARAM_OUT
20758                | SyntaxKind::PARAM_VARIADIC
20759        )
20760    }
20761    #[inline]
20762    fn cast(syntax: SyntaxNode) -> Option<Self> {
20763        let res = match syntax.kind() {
20764            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
20765            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
20766            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
20767            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
20768            _ => {
20769                return None;
20770            }
20771        };
20772        Some(res)
20773    }
20774    #[inline]
20775    fn syntax(&self) -> &SyntaxNode {
20776        match self {
20777            ParamMode::ParamIn(it) => &it.syntax,
20778            ParamMode::ParamInOut(it) => &it.syntax,
20779            ParamMode::ParamOut(it) => &it.syntax,
20780            ParamMode::ParamVariadic(it) => &it.syntax,
20781        }
20782    }
20783}
20784impl From<ParamIn> for ParamMode {
20785    #[inline]
20786    fn from(node: ParamIn) -> ParamMode {
20787        ParamMode::ParamIn(node)
20788    }
20789}
20790impl From<ParamInOut> for ParamMode {
20791    #[inline]
20792    fn from(node: ParamInOut) -> ParamMode {
20793        ParamMode::ParamInOut(node)
20794    }
20795}
20796impl From<ParamOut> for ParamMode {
20797    #[inline]
20798    fn from(node: ParamOut) -> ParamMode {
20799        ParamMode::ParamOut(node)
20800    }
20801}
20802impl From<ParamVariadic> for ParamMode {
20803    #[inline]
20804    fn from(node: ParamVariadic) -> ParamMode {
20805        ParamMode::ParamVariadic(node)
20806    }
20807}
20808impl AstNode for PartitionType {
20809    #[inline]
20810    fn can_cast(kind: SyntaxKind) -> bool {
20811        matches!(
20812            kind,
20813            SyntaxKind::PARTITION_DEFAULT
20814                | SyntaxKind::PARTITION_FOR_VALUES_FROM
20815                | SyntaxKind::PARTITION_FOR_VALUES_IN
20816                | SyntaxKind::PARTITION_FOR_VALUES_WITH
20817        )
20818    }
20819    #[inline]
20820    fn cast(syntax: SyntaxNode) -> Option<Self> {
20821        let res = match syntax.kind() {
20822            SyntaxKind::PARTITION_DEFAULT => {
20823                PartitionType::PartitionDefault(PartitionDefault { syntax })
20824            }
20825            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
20826                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
20827            }
20828            SyntaxKind::PARTITION_FOR_VALUES_IN => {
20829                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
20830            }
20831            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
20832                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
20833            }
20834            _ => {
20835                return None;
20836            }
20837        };
20838        Some(res)
20839    }
20840    #[inline]
20841    fn syntax(&self) -> &SyntaxNode {
20842        match self {
20843            PartitionType::PartitionDefault(it) => &it.syntax,
20844            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
20845            PartitionType::PartitionForValuesIn(it) => &it.syntax,
20846            PartitionType::PartitionForValuesWith(it) => &it.syntax,
20847        }
20848    }
20849}
20850impl From<PartitionDefault> for PartitionType {
20851    #[inline]
20852    fn from(node: PartitionDefault) -> PartitionType {
20853        PartitionType::PartitionDefault(node)
20854    }
20855}
20856impl From<PartitionForValuesFrom> for PartitionType {
20857    #[inline]
20858    fn from(node: PartitionForValuesFrom) -> PartitionType {
20859        PartitionType::PartitionForValuesFrom(node)
20860    }
20861}
20862impl From<PartitionForValuesIn> for PartitionType {
20863    #[inline]
20864    fn from(node: PartitionForValuesIn) -> PartitionType {
20865        PartitionType::PartitionForValuesIn(node)
20866    }
20867}
20868impl From<PartitionForValuesWith> for PartitionType {
20869    #[inline]
20870    fn from(node: PartitionForValuesWith) -> PartitionType {
20871        PartitionType::PartitionForValuesWith(node)
20872    }
20873}
20874impl AstNode for RefAction {
20875    #[inline]
20876    fn can_cast(kind: SyntaxKind) -> bool {
20877        matches!(
20878            kind,
20879            SyntaxKind::CASCADE
20880                | SyntaxKind::NO_ACTION
20881                | SyntaxKind::RESTRICT
20882                | SyntaxKind::SET_DEFAULT_COLUMNS
20883                | SyntaxKind::SET_NULL_COLUMNS
20884        )
20885    }
20886    #[inline]
20887    fn cast(syntax: SyntaxNode) -> Option<Self> {
20888        let res = match syntax.kind() {
20889            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
20890            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
20891            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
20892            SyntaxKind::SET_DEFAULT_COLUMNS => {
20893                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
20894            }
20895            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
20896            _ => {
20897                return None;
20898            }
20899        };
20900        Some(res)
20901    }
20902    #[inline]
20903    fn syntax(&self) -> &SyntaxNode {
20904        match self {
20905            RefAction::Cascade(it) => &it.syntax,
20906            RefAction::NoAction(it) => &it.syntax,
20907            RefAction::Restrict(it) => &it.syntax,
20908            RefAction::SetDefaultColumns(it) => &it.syntax,
20909            RefAction::SetNullColumns(it) => &it.syntax,
20910        }
20911    }
20912}
20913impl From<Cascade> for RefAction {
20914    #[inline]
20915    fn from(node: Cascade) -> RefAction {
20916        RefAction::Cascade(node)
20917    }
20918}
20919impl From<NoAction> for RefAction {
20920    #[inline]
20921    fn from(node: NoAction) -> RefAction {
20922        RefAction::NoAction(node)
20923    }
20924}
20925impl From<Restrict> for RefAction {
20926    #[inline]
20927    fn from(node: Restrict) -> RefAction {
20928        RefAction::Restrict(node)
20929    }
20930}
20931impl From<SetDefaultColumns> for RefAction {
20932    #[inline]
20933    fn from(node: SetDefaultColumns) -> RefAction {
20934        RefAction::SetDefaultColumns(node)
20935    }
20936}
20937impl From<SetNullColumns> for RefAction {
20938    #[inline]
20939    fn from(node: SetNullColumns) -> RefAction {
20940        RefAction::SetNullColumns(node)
20941    }
20942}
20943impl AstNode for Stmt {
20944    #[inline]
20945    fn can_cast(kind: SyntaxKind) -> bool {
20946        matches!(
20947            kind,
20948            SyntaxKind::ALTER_AGGREGATE
20949                | SyntaxKind::ALTER_COLLATION
20950                | SyntaxKind::ALTER_CONVERSION
20951                | SyntaxKind::ALTER_DATABASE
20952                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
20953                | SyntaxKind::ALTER_DOMAIN
20954                | SyntaxKind::ALTER_EVENT_TRIGGER
20955                | SyntaxKind::ALTER_EXTENSION
20956                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
20957                | SyntaxKind::ALTER_FOREIGN_TABLE
20958                | SyntaxKind::ALTER_FUNCTION
20959                | SyntaxKind::ALTER_GROUP
20960                | SyntaxKind::ALTER_INDEX
20961                | SyntaxKind::ALTER_LANGUAGE
20962                | SyntaxKind::ALTER_LARGE_OBJECT
20963                | SyntaxKind::ALTER_MATERIALIZED_VIEW
20964                | SyntaxKind::ALTER_OPERATOR
20965                | SyntaxKind::ALTER_OPERATOR_CLASS
20966                | SyntaxKind::ALTER_OPERATOR_FAMILY
20967                | SyntaxKind::ALTER_POLICY
20968                | SyntaxKind::ALTER_PROCEDURE
20969                | SyntaxKind::ALTER_PUBLICATION
20970                | SyntaxKind::ALTER_ROLE
20971                | SyntaxKind::ALTER_ROUTINE
20972                | SyntaxKind::ALTER_RULE
20973                | SyntaxKind::ALTER_SCHEMA
20974                | SyntaxKind::ALTER_SEQUENCE
20975                | SyntaxKind::ALTER_SERVER
20976                | SyntaxKind::ALTER_STATISTICS
20977                | SyntaxKind::ALTER_SUBSCRIPTION
20978                | SyntaxKind::ALTER_SYSTEM
20979                | SyntaxKind::ALTER_TABLE
20980                | SyntaxKind::ALTER_TABLESPACE
20981                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
20982                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
20983                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
20984                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
20985                | SyntaxKind::ALTER_TRIGGER
20986                | SyntaxKind::ALTER_TYPE
20987                | SyntaxKind::ALTER_USER
20988                | SyntaxKind::ALTER_USER_MAPPING
20989                | SyntaxKind::ALTER_VIEW
20990                | SyntaxKind::ANALYZE
20991                | SyntaxKind::BEGIN
20992                | SyntaxKind::CALL
20993                | SyntaxKind::CHECKPOINT
20994                | SyntaxKind::CLOSE
20995                | SyntaxKind::CLUSTER
20996                | SyntaxKind::COMMENT_ON
20997                | SyntaxKind::COMMIT
20998                | SyntaxKind::COPY
20999                | SyntaxKind::CREATE_ACCESS_METHOD
21000                | SyntaxKind::CREATE_AGGREGATE
21001                | SyntaxKind::CREATE_CAST
21002                | SyntaxKind::CREATE_COLLATION
21003                | SyntaxKind::CREATE_CONVERSION
21004                | SyntaxKind::CREATE_DATABASE
21005                | SyntaxKind::CREATE_DOMAIN
21006                | SyntaxKind::CREATE_EVENT_TRIGGER
21007                | SyntaxKind::CREATE_EXTENSION
21008                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
21009                | SyntaxKind::CREATE_FOREIGN_TABLE
21010                | SyntaxKind::CREATE_FUNCTION
21011                | SyntaxKind::CREATE_GROUP
21012                | SyntaxKind::CREATE_INDEX
21013                | SyntaxKind::CREATE_LANGUAGE
21014                | SyntaxKind::CREATE_MATERIALIZED_VIEW
21015                | SyntaxKind::CREATE_OPERATOR
21016                | SyntaxKind::CREATE_OPERATOR_CLASS
21017                | SyntaxKind::CREATE_OPERATOR_FAMILY
21018                | SyntaxKind::CREATE_POLICY
21019                | SyntaxKind::CREATE_PROCEDURE
21020                | SyntaxKind::CREATE_PUBLICATION
21021                | SyntaxKind::CREATE_ROLE
21022                | SyntaxKind::CREATE_RULE
21023                | SyntaxKind::CREATE_SCHEMA
21024                | SyntaxKind::CREATE_SEQUENCE
21025                | SyntaxKind::CREATE_SERVER
21026                | SyntaxKind::CREATE_STATISTICS
21027                | SyntaxKind::CREATE_SUBSCRIPTION
21028                | SyntaxKind::CREATE_TABLE
21029                | SyntaxKind::CREATE_TABLE_AS
21030                | SyntaxKind::CREATE_TABLESPACE
21031                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
21032                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
21033                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
21034                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
21035                | SyntaxKind::CREATE_TRANSFORM
21036                | SyntaxKind::CREATE_TRIGGER
21037                | SyntaxKind::CREATE_TYPE
21038                | SyntaxKind::CREATE_USER
21039                | SyntaxKind::CREATE_USER_MAPPING
21040                | SyntaxKind::CREATE_VIEW
21041                | SyntaxKind::DEALLOCATE
21042                | SyntaxKind::DECLARE
21043                | SyntaxKind::DELETE
21044                | SyntaxKind::DISCARD
21045                | SyntaxKind::DO
21046                | SyntaxKind::DROP_ACCESS_METHOD
21047                | SyntaxKind::DROP_AGGREGATE
21048                | SyntaxKind::DROP_CAST
21049                | SyntaxKind::DROP_COLLATION
21050                | SyntaxKind::DROP_CONVERSION
21051                | SyntaxKind::DROP_DATABASE
21052                | SyntaxKind::DROP_DOMAIN
21053                | SyntaxKind::DROP_EVENT_TRIGGER
21054                | SyntaxKind::DROP_EXTENSION
21055                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
21056                | SyntaxKind::DROP_FOREIGN_TABLE
21057                | SyntaxKind::DROP_FUNCTION
21058                | SyntaxKind::DROP_GROUP
21059                | SyntaxKind::DROP_INDEX
21060                | SyntaxKind::DROP_LANGUAGE
21061                | SyntaxKind::DROP_MATERIALIZED_VIEW
21062                | SyntaxKind::DROP_OPERATOR
21063                | SyntaxKind::DROP_OPERATOR_CLASS
21064                | SyntaxKind::DROP_OPERATOR_FAMILY
21065                | SyntaxKind::DROP_OWNED
21066                | SyntaxKind::DROP_POLICY
21067                | SyntaxKind::DROP_PROCEDURE
21068                | SyntaxKind::DROP_PUBLICATION
21069                | SyntaxKind::DROP_ROLE
21070                | SyntaxKind::DROP_ROUTINE
21071                | SyntaxKind::DROP_RULE
21072                | SyntaxKind::DROP_SCHEMA
21073                | SyntaxKind::DROP_SEQUENCE
21074                | SyntaxKind::DROP_SERVER
21075                | SyntaxKind::DROP_STATISTICS
21076                | SyntaxKind::DROP_SUBSCRIPTION
21077                | SyntaxKind::DROP_TABLE
21078                | SyntaxKind::DROP_TABLESPACE
21079                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
21080                | SyntaxKind::DROP_TEXT_SEARCH_DICT
21081                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
21082                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
21083                | SyntaxKind::DROP_TRANSFORM
21084                | SyntaxKind::DROP_TRIGGER
21085                | SyntaxKind::DROP_TYPE
21086                | SyntaxKind::DROP_USER
21087                | SyntaxKind::DROP_USER_MAPPING
21088                | SyntaxKind::DROP_VIEW
21089                | SyntaxKind::EXECUTE
21090                | SyntaxKind::EXPLAIN
21091                | SyntaxKind::FETCH
21092                | SyntaxKind::GRANT
21093                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
21094                | SyntaxKind::INSERT
21095                | SyntaxKind::LISTEN
21096                | SyntaxKind::LOAD
21097                | SyntaxKind::LOCK
21098                | SyntaxKind::MERGE
21099                | SyntaxKind::MOVE
21100                | SyntaxKind::NOTIFY
21101                | SyntaxKind::PAREN_SELECT
21102                | SyntaxKind::PREPARE
21103                | SyntaxKind::PREPARE_TRANSACTION
21104                | SyntaxKind::REASSIGN
21105                | SyntaxKind::REFRESH
21106                | SyntaxKind::REINDEX
21107                | SyntaxKind::RELEASE_SAVEPOINT
21108                | SyntaxKind::RESET
21109                | SyntaxKind::REVOKE
21110                | SyntaxKind::ROLLBACK
21111                | SyntaxKind::SAVEPOINT
21112                | SyntaxKind::SECURITY_LABEL
21113                | SyntaxKind::SELECT
21114                | SyntaxKind::SELECT_INTO
21115                | SyntaxKind::SET
21116                | SyntaxKind::SET_CONSTRAINTS
21117                | SyntaxKind::SET_ROLE
21118                | SyntaxKind::SET_SESSION_AUTH
21119                | SyntaxKind::SET_TRANSACTION
21120                | SyntaxKind::SHOW
21121                | SyntaxKind::TRUNCATE
21122                | SyntaxKind::UNLISTEN
21123                | SyntaxKind::UPDATE
21124                | SyntaxKind::VACUUM
21125                | SyntaxKind::VALUES
21126        )
21127    }
21128    #[inline]
21129    fn cast(syntax: SyntaxNode) -> Option<Self> {
21130        let res = match syntax.kind() {
21131            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
21132            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
21133            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
21134            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
21135            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
21136                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
21137            }
21138            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
21139            SyntaxKind::ALTER_EVENT_TRIGGER => {
21140                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
21141            }
21142            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
21143            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
21144                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
21145            }
21146            SyntaxKind::ALTER_FOREIGN_TABLE => {
21147                Stmt::AlterForeignTable(AlterForeignTable { syntax })
21148            }
21149            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
21150            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
21151            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
21152            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
21153            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
21154            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
21155                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
21156            }
21157            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
21158            SyntaxKind::ALTER_OPERATOR_CLASS => {
21159                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
21160            }
21161            SyntaxKind::ALTER_OPERATOR_FAMILY => {
21162                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
21163            }
21164            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
21165            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
21166            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
21167            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
21168            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
21169            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
21170            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
21171            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
21172            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
21173            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
21174            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
21175            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
21176            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
21177            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
21178            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
21179                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
21180            }
21181            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
21182                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
21183            }
21184            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
21185                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
21186            }
21187            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
21188                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
21189            }
21190            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
21191            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
21192            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
21193            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
21194            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
21195            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
21196            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
21197            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
21198            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
21199            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
21200            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
21201            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
21202            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
21203            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
21204            SyntaxKind::CREATE_ACCESS_METHOD => {
21205                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
21206            }
21207            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
21208            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
21209            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
21210            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
21211            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
21212            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
21213            SyntaxKind::CREATE_EVENT_TRIGGER => {
21214                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
21215            }
21216            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
21217            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
21218                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
21219            }
21220            SyntaxKind::CREATE_FOREIGN_TABLE => {
21221                Stmt::CreateForeignTable(CreateForeignTable { syntax })
21222            }
21223            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
21224            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
21225            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
21226            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
21227            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
21228                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
21229            }
21230            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
21231            SyntaxKind::CREATE_OPERATOR_CLASS => {
21232                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
21233            }
21234            SyntaxKind::CREATE_OPERATOR_FAMILY => {
21235                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
21236            }
21237            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
21238            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
21239            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
21240            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
21241            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
21242            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
21243            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
21244            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
21245            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
21246            SyntaxKind::CREATE_SUBSCRIPTION => {
21247                Stmt::CreateSubscription(CreateSubscription { syntax })
21248            }
21249            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
21250            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
21251            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
21252            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
21253                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
21254            }
21255            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
21256                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
21257            }
21258            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
21259                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
21260            }
21261            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
21262                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
21263            }
21264            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
21265            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
21266            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
21267            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
21268            SyntaxKind::CREATE_USER_MAPPING => {
21269                Stmt::CreateUserMapping(CreateUserMapping { syntax })
21270            }
21271            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
21272            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
21273            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
21274            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
21275            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
21276            SyntaxKind::DO => Stmt::Do(Do { syntax }),
21277            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
21278            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
21279            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
21280            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
21281            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
21282            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
21283            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
21284            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
21285            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
21286            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
21287                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
21288            }
21289            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
21290            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
21291            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
21292            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
21293            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
21294            SyntaxKind::DROP_MATERIALIZED_VIEW => {
21295                Stmt::DropMaterializedView(DropMaterializedView { syntax })
21296            }
21297            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
21298            SyntaxKind::DROP_OPERATOR_CLASS => {
21299                Stmt::DropOperatorClass(DropOperatorClass { syntax })
21300            }
21301            SyntaxKind::DROP_OPERATOR_FAMILY => {
21302                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
21303            }
21304            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
21305            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
21306            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
21307            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
21308            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
21309            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
21310            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
21311            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
21312            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
21313            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
21314            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
21315            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
21316            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
21317            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
21318            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
21319                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
21320            }
21321            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
21322                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
21323            }
21324            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
21325                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
21326            }
21327            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
21328                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
21329            }
21330            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
21331            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
21332            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
21333            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
21334            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
21335            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
21336            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
21337            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
21338            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
21339            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
21340            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
21341                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
21342            }
21343            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
21344            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
21345            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
21346            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
21347            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
21348            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
21349            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
21350            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
21351            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
21352            SyntaxKind::PREPARE_TRANSACTION => {
21353                Stmt::PrepareTransaction(PrepareTransaction { syntax })
21354            }
21355            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
21356            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
21357            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
21358            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
21359            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
21360            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
21361            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
21362            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
21363            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
21364            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
21365            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
21366            SyntaxKind::SET => Stmt::Set(Set { syntax }),
21367            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
21368            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
21369            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
21370            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
21371            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
21372            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
21373            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
21374            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
21375            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
21376            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
21377            _ => {
21378                return None;
21379            }
21380        };
21381        Some(res)
21382    }
21383    #[inline]
21384    fn syntax(&self) -> &SyntaxNode {
21385        match self {
21386            Stmt::AlterAggregate(it) => &it.syntax,
21387            Stmt::AlterCollation(it) => &it.syntax,
21388            Stmt::AlterConversion(it) => &it.syntax,
21389            Stmt::AlterDatabase(it) => &it.syntax,
21390            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
21391            Stmt::AlterDomain(it) => &it.syntax,
21392            Stmt::AlterEventTrigger(it) => &it.syntax,
21393            Stmt::AlterExtension(it) => &it.syntax,
21394            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
21395            Stmt::AlterForeignTable(it) => &it.syntax,
21396            Stmt::AlterFunction(it) => &it.syntax,
21397            Stmt::AlterGroup(it) => &it.syntax,
21398            Stmt::AlterIndex(it) => &it.syntax,
21399            Stmt::AlterLanguage(it) => &it.syntax,
21400            Stmt::AlterLargeObject(it) => &it.syntax,
21401            Stmt::AlterMaterializedView(it) => &it.syntax,
21402            Stmt::AlterOperator(it) => &it.syntax,
21403            Stmt::AlterOperatorClass(it) => &it.syntax,
21404            Stmt::AlterOperatorFamily(it) => &it.syntax,
21405            Stmt::AlterPolicy(it) => &it.syntax,
21406            Stmt::AlterProcedure(it) => &it.syntax,
21407            Stmt::AlterPublication(it) => &it.syntax,
21408            Stmt::AlterRole(it) => &it.syntax,
21409            Stmt::AlterRoutine(it) => &it.syntax,
21410            Stmt::AlterRule(it) => &it.syntax,
21411            Stmt::AlterSchema(it) => &it.syntax,
21412            Stmt::AlterSequence(it) => &it.syntax,
21413            Stmt::AlterServer(it) => &it.syntax,
21414            Stmt::AlterStatistics(it) => &it.syntax,
21415            Stmt::AlterSubscription(it) => &it.syntax,
21416            Stmt::AlterSystem(it) => &it.syntax,
21417            Stmt::AlterTable(it) => &it.syntax,
21418            Stmt::AlterTablespace(it) => &it.syntax,
21419            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
21420            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
21421            Stmt::AlterTextSearchParser(it) => &it.syntax,
21422            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
21423            Stmt::AlterTrigger(it) => &it.syntax,
21424            Stmt::AlterType(it) => &it.syntax,
21425            Stmt::AlterUser(it) => &it.syntax,
21426            Stmt::AlterUserMapping(it) => &it.syntax,
21427            Stmt::AlterView(it) => &it.syntax,
21428            Stmt::Analyze(it) => &it.syntax,
21429            Stmt::Begin(it) => &it.syntax,
21430            Stmt::Call(it) => &it.syntax,
21431            Stmt::Checkpoint(it) => &it.syntax,
21432            Stmt::Close(it) => &it.syntax,
21433            Stmt::Cluster(it) => &it.syntax,
21434            Stmt::CommentOn(it) => &it.syntax,
21435            Stmt::Commit(it) => &it.syntax,
21436            Stmt::Copy(it) => &it.syntax,
21437            Stmt::CreateAccessMethod(it) => &it.syntax,
21438            Stmt::CreateAggregate(it) => &it.syntax,
21439            Stmt::CreateCast(it) => &it.syntax,
21440            Stmt::CreateCollation(it) => &it.syntax,
21441            Stmt::CreateConversion(it) => &it.syntax,
21442            Stmt::CreateDatabase(it) => &it.syntax,
21443            Stmt::CreateDomain(it) => &it.syntax,
21444            Stmt::CreateEventTrigger(it) => &it.syntax,
21445            Stmt::CreateExtension(it) => &it.syntax,
21446            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
21447            Stmt::CreateForeignTable(it) => &it.syntax,
21448            Stmt::CreateFunction(it) => &it.syntax,
21449            Stmt::CreateGroup(it) => &it.syntax,
21450            Stmt::CreateIndex(it) => &it.syntax,
21451            Stmt::CreateLanguage(it) => &it.syntax,
21452            Stmt::CreateMaterializedView(it) => &it.syntax,
21453            Stmt::CreateOperator(it) => &it.syntax,
21454            Stmt::CreateOperatorClass(it) => &it.syntax,
21455            Stmt::CreateOperatorFamily(it) => &it.syntax,
21456            Stmt::CreatePolicy(it) => &it.syntax,
21457            Stmt::CreateProcedure(it) => &it.syntax,
21458            Stmt::CreatePublication(it) => &it.syntax,
21459            Stmt::CreateRole(it) => &it.syntax,
21460            Stmt::CreateRule(it) => &it.syntax,
21461            Stmt::CreateSchema(it) => &it.syntax,
21462            Stmt::CreateSequence(it) => &it.syntax,
21463            Stmt::CreateServer(it) => &it.syntax,
21464            Stmt::CreateStatistics(it) => &it.syntax,
21465            Stmt::CreateSubscription(it) => &it.syntax,
21466            Stmt::CreateTable(it) => &it.syntax,
21467            Stmt::CreateTableAs(it) => &it.syntax,
21468            Stmt::CreateTablespace(it) => &it.syntax,
21469            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
21470            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
21471            Stmt::CreateTextSearchParser(it) => &it.syntax,
21472            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
21473            Stmt::CreateTransform(it) => &it.syntax,
21474            Stmt::CreateTrigger(it) => &it.syntax,
21475            Stmt::CreateType(it) => &it.syntax,
21476            Stmt::CreateUser(it) => &it.syntax,
21477            Stmt::CreateUserMapping(it) => &it.syntax,
21478            Stmt::CreateView(it) => &it.syntax,
21479            Stmt::Deallocate(it) => &it.syntax,
21480            Stmt::Declare(it) => &it.syntax,
21481            Stmt::Delete(it) => &it.syntax,
21482            Stmt::Discard(it) => &it.syntax,
21483            Stmt::Do(it) => &it.syntax,
21484            Stmt::DropAccessMethod(it) => &it.syntax,
21485            Stmt::DropAggregate(it) => &it.syntax,
21486            Stmt::DropCast(it) => &it.syntax,
21487            Stmt::DropCollation(it) => &it.syntax,
21488            Stmt::DropConversion(it) => &it.syntax,
21489            Stmt::DropDatabase(it) => &it.syntax,
21490            Stmt::DropDomain(it) => &it.syntax,
21491            Stmt::DropEventTrigger(it) => &it.syntax,
21492            Stmt::DropExtension(it) => &it.syntax,
21493            Stmt::DropForeignDataWrapper(it) => &it.syntax,
21494            Stmt::DropForeignTable(it) => &it.syntax,
21495            Stmt::DropFunction(it) => &it.syntax,
21496            Stmt::DropGroup(it) => &it.syntax,
21497            Stmt::DropIndex(it) => &it.syntax,
21498            Stmt::DropLanguage(it) => &it.syntax,
21499            Stmt::DropMaterializedView(it) => &it.syntax,
21500            Stmt::DropOperator(it) => &it.syntax,
21501            Stmt::DropOperatorClass(it) => &it.syntax,
21502            Stmt::DropOperatorFamily(it) => &it.syntax,
21503            Stmt::DropOwned(it) => &it.syntax,
21504            Stmt::DropPolicy(it) => &it.syntax,
21505            Stmt::DropProcedure(it) => &it.syntax,
21506            Stmt::DropPublication(it) => &it.syntax,
21507            Stmt::DropRole(it) => &it.syntax,
21508            Stmt::DropRoutine(it) => &it.syntax,
21509            Stmt::DropRule(it) => &it.syntax,
21510            Stmt::DropSchema(it) => &it.syntax,
21511            Stmt::DropSequence(it) => &it.syntax,
21512            Stmt::DropServer(it) => &it.syntax,
21513            Stmt::DropStatistics(it) => &it.syntax,
21514            Stmt::DropSubscription(it) => &it.syntax,
21515            Stmt::DropTable(it) => &it.syntax,
21516            Stmt::DropTablespace(it) => &it.syntax,
21517            Stmt::DropTextSearchConfig(it) => &it.syntax,
21518            Stmt::DropTextSearchDict(it) => &it.syntax,
21519            Stmt::DropTextSearchParser(it) => &it.syntax,
21520            Stmt::DropTextSearchTemplate(it) => &it.syntax,
21521            Stmt::DropTransform(it) => &it.syntax,
21522            Stmt::DropTrigger(it) => &it.syntax,
21523            Stmt::DropType(it) => &it.syntax,
21524            Stmt::DropUser(it) => &it.syntax,
21525            Stmt::DropUserMapping(it) => &it.syntax,
21526            Stmt::DropView(it) => &it.syntax,
21527            Stmt::Execute(it) => &it.syntax,
21528            Stmt::Explain(it) => &it.syntax,
21529            Stmt::Fetch(it) => &it.syntax,
21530            Stmt::Grant(it) => &it.syntax,
21531            Stmt::ImportForeignSchema(it) => &it.syntax,
21532            Stmt::Insert(it) => &it.syntax,
21533            Stmt::Listen(it) => &it.syntax,
21534            Stmt::Load(it) => &it.syntax,
21535            Stmt::Lock(it) => &it.syntax,
21536            Stmt::Merge(it) => &it.syntax,
21537            Stmt::Move(it) => &it.syntax,
21538            Stmt::Notify(it) => &it.syntax,
21539            Stmt::ParenSelect(it) => &it.syntax,
21540            Stmt::Prepare(it) => &it.syntax,
21541            Stmt::PrepareTransaction(it) => &it.syntax,
21542            Stmt::Reassign(it) => &it.syntax,
21543            Stmt::Refresh(it) => &it.syntax,
21544            Stmt::Reindex(it) => &it.syntax,
21545            Stmt::ReleaseSavepoint(it) => &it.syntax,
21546            Stmt::Reset(it) => &it.syntax,
21547            Stmt::Revoke(it) => &it.syntax,
21548            Stmt::Rollback(it) => &it.syntax,
21549            Stmt::Savepoint(it) => &it.syntax,
21550            Stmt::SecurityLabel(it) => &it.syntax,
21551            Stmt::Select(it) => &it.syntax,
21552            Stmt::SelectInto(it) => &it.syntax,
21553            Stmt::Set(it) => &it.syntax,
21554            Stmt::SetConstraints(it) => &it.syntax,
21555            Stmt::SetRole(it) => &it.syntax,
21556            Stmt::SetSessionAuth(it) => &it.syntax,
21557            Stmt::SetTransaction(it) => &it.syntax,
21558            Stmt::Show(it) => &it.syntax,
21559            Stmt::Truncate(it) => &it.syntax,
21560            Stmt::Unlisten(it) => &it.syntax,
21561            Stmt::Update(it) => &it.syntax,
21562            Stmt::Vacuum(it) => &it.syntax,
21563            Stmt::Values(it) => &it.syntax,
21564        }
21565    }
21566}
21567impl From<AlterAggregate> for Stmt {
21568    #[inline]
21569    fn from(node: AlterAggregate) -> Stmt {
21570        Stmt::AlterAggregate(node)
21571    }
21572}
21573impl From<AlterCollation> for Stmt {
21574    #[inline]
21575    fn from(node: AlterCollation) -> Stmt {
21576        Stmt::AlterCollation(node)
21577    }
21578}
21579impl From<AlterConversion> for Stmt {
21580    #[inline]
21581    fn from(node: AlterConversion) -> Stmt {
21582        Stmt::AlterConversion(node)
21583    }
21584}
21585impl From<AlterDatabase> for Stmt {
21586    #[inline]
21587    fn from(node: AlterDatabase) -> Stmt {
21588        Stmt::AlterDatabase(node)
21589    }
21590}
21591impl From<AlterDefaultPrivileges> for Stmt {
21592    #[inline]
21593    fn from(node: AlterDefaultPrivileges) -> Stmt {
21594        Stmt::AlterDefaultPrivileges(node)
21595    }
21596}
21597impl From<AlterDomain> for Stmt {
21598    #[inline]
21599    fn from(node: AlterDomain) -> Stmt {
21600        Stmt::AlterDomain(node)
21601    }
21602}
21603impl From<AlterEventTrigger> for Stmt {
21604    #[inline]
21605    fn from(node: AlterEventTrigger) -> Stmt {
21606        Stmt::AlterEventTrigger(node)
21607    }
21608}
21609impl From<AlterExtension> for Stmt {
21610    #[inline]
21611    fn from(node: AlterExtension) -> Stmt {
21612        Stmt::AlterExtension(node)
21613    }
21614}
21615impl From<AlterForeignDataWrapper> for Stmt {
21616    #[inline]
21617    fn from(node: AlterForeignDataWrapper) -> Stmt {
21618        Stmt::AlterForeignDataWrapper(node)
21619    }
21620}
21621impl From<AlterForeignTable> for Stmt {
21622    #[inline]
21623    fn from(node: AlterForeignTable) -> Stmt {
21624        Stmt::AlterForeignTable(node)
21625    }
21626}
21627impl From<AlterFunction> for Stmt {
21628    #[inline]
21629    fn from(node: AlterFunction) -> Stmt {
21630        Stmt::AlterFunction(node)
21631    }
21632}
21633impl From<AlterGroup> for Stmt {
21634    #[inline]
21635    fn from(node: AlterGroup) -> Stmt {
21636        Stmt::AlterGroup(node)
21637    }
21638}
21639impl From<AlterIndex> for Stmt {
21640    #[inline]
21641    fn from(node: AlterIndex) -> Stmt {
21642        Stmt::AlterIndex(node)
21643    }
21644}
21645impl From<AlterLanguage> for Stmt {
21646    #[inline]
21647    fn from(node: AlterLanguage) -> Stmt {
21648        Stmt::AlterLanguage(node)
21649    }
21650}
21651impl From<AlterLargeObject> for Stmt {
21652    #[inline]
21653    fn from(node: AlterLargeObject) -> Stmt {
21654        Stmt::AlterLargeObject(node)
21655    }
21656}
21657impl From<AlterMaterializedView> for Stmt {
21658    #[inline]
21659    fn from(node: AlterMaterializedView) -> Stmt {
21660        Stmt::AlterMaterializedView(node)
21661    }
21662}
21663impl From<AlterOperator> for Stmt {
21664    #[inline]
21665    fn from(node: AlterOperator) -> Stmt {
21666        Stmt::AlterOperator(node)
21667    }
21668}
21669impl From<AlterOperatorClass> for Stmt {
21670    #[inline]
21671    fn from(node: AlterOperatorClass) -> Stmt {
21672        Stmt::AlterOperatorClass(node)
21673    }
21674}
21675impl From<AlterOperatorFamily> for Stmt {
21676    #[inline]
21677    fn from(node: AlterOperatorFamily) -> Stmt {
21678        Stmt::AlterOperatorFamily(node)
21679    }
21680}
21681impl From<AlterPolicy> for Stmt {
21682    #[inline]
21683    fn from(node: AlterPolicy) -> Stmt {
21684        Stmt::AlterPolicy(node)
21685    }
21686}
21687impl From<AlterProcedure> for Stmt {
21688    #[inline]
21689    fn from(node: AlterProcedure) -> Stmt {
21690        Stmt::AlterProcedure(node)
21691    }
21692}
21693impl From<AlterPublication> for Stmt {
21694    #[inline]
21695    fn from(node: AlterPublication) -> Stmt {
21696        Stmt::AlterPublication(node)
21697    }
21698}
21699impl From<AlterRole> for Stmt {
21700    #[inline]
21701    fn from(node: AlterRole) -> Stmt {
21702        Stmt::AlterRole(node)
21703    }
21704}
21705impl From<AlterRoutine> for Stmt {
21706    #[inline]
21707    fn from(node: AlterRoutine) -> Stmt {
21708        Stmt::AlterRoutine(node)
21709    }
21710}
21711impl From<AlterRule> for Stmt {
21712    #[inline]
21713    fn from(node: AlterRule) -> Stmt {
21714        Stmt::AlterRule(node)
21715    }
21716}
21717impl From<AlterSchema> for Stmt {
21718    #[inline]
21719    fn from(node: AlterSchema) -> Stmt {
21720        Stmt::AlterSchema(node)
21721    }
21722}
21723impl From<AlterSequence> for Stmt {
21724    #[inline]
21725    fn from(node: AlterSequence) -> Stmt {
21726        Stmt::AlterSequence(node)
21727    }
21728}
21729impl From<AlterServer> for Stmt {
21730    #[inline]
21731    fn from(node: AlterServer) -> Stmt {
21732        Stmt::AlterServer(node)
21733    }
21734}
21735impl From<AlterStatistics> for Stmt {
21736    #[inline]
21737    fn from(node: AlterStatistics) -> Stmt {
21738        Stmt::AlterStatistics(node)
21739    }
21740}
21741impl From<AlterSubscription> for Stmt {
21742    #[inline]
21743    fn from(node: AlterSubscription) -> Stmt {
21744        Stmt::AlterSubscription(node)
21745    }
21746}
21747impl From<AlterSystem> for Stmt {
21748    #[inline]
21749    fn from(node: AlterSystem) -> Stmt {
21750        Stmt::AlterSystem(node)
21751    }
21752}
21753impl From<AlterTable> for Stmt {
21754    #[inline]
21755    fn from(node: AlterTable) -> Stmt {
21756        Stmt::AlterTable(node)
21757    }
21758}
21759impl From<AlterTablespace> for Stmt {
21760    #[inline]
21761    fn from(node: AlterTablespace) -> Stmt {
21762        Stmt::AlterTablespace(node)
21763    }
21764}
21765impl From<AlterTextSearchConfiguration> for Stmt {
21766    #[inline]
21767    fn from(node: AlterTextSearchConfiguration) -> Stmt {
21768        Stmt::AlterTextSearchConfiguration(node)
21769    }
21770}
21771impl From<AlterTextSearchDictionary> for Stmt {
21772    #[inline]
21773    fn from(node: AlterTextSearchDictionary) -> Stmt {
21774        Stmt::AlterTextSearchDictionary(node)
21775    }
21776}
21777impl From<AlterTextSearchParser> for Stmt {
21778    #[inline]
21779    fn from(node: AlterTextSearchParser) -> Stmt {
21780        Stmt::AlterTextSearchParser(node)
21781    }
21782}
21783impl From<AlterTextSearchTemplate> for Stmt {
21784    #[inline]
21785    fn from(node: AlterTextSearchTemplate) -> Stmt {
21786        Stmt::AlterTextSearchTemplate(node)
21787    }
21788}
21789impl From<AlterTrigger> for Stmt {
21790    #[inline]
21791    fn from(node: AlterTrigger) -> Stmt {
21792        Stmt::AlterTrigger(node)
21793    }
21794}
21795impl From<AlterType> for Stmt {
21796    #[inline]
21797    fn from(node: AlterType) -> Stmt {
21798        Stmt::AlterType(node)
21799    }
21800}
21801impl From<AlterUser> for Stmt {
21802    #[inline]
21803    fn from(node: AlterUser) -> Stmt {
21804        Stmt::AlterUser(node)
21805    }
21806}
21807impl From<AlterUserMapping> for Stmt {
21808    #[inline]
21809    fn from(node: AlterUserMapping) -> Stmt {
21810        Stmt::AlterUserMapping(node)
21811    }
21812}
21813impl From<AlterView> for Stmt {
21814    #[inline]
21815    fn from(node: AlterView) -> Stmt {
21816        Stmt::AlterView(node)
21817    }
21818}
21819impl From<Analyze> for Stmt {
21820    #[inline]
21821    fn from(node: Analyze) -> Stmt {
21822        Stmt::Analyze(node)
21823    }
21824}
21825impl From<Begin> for Stmt {
21826    #[inline]
21827    fn from(node: Begin) -> Stmt {
21828        Stmt::Begin(node)
21829    }
21830}
21831impl From<Call> for Stmt {
21832    #[inline]
21833    fn from(node: Call) -> Stmt {
21834        Stmt::Call(node)
21835    }
21836}
21837impl From<Checkpoint> for Stmt {
21838    #[inline]
21839    fn from(node: Checkpoint) -> Stmt {
21840        Stmt::Checkpoint(node)
21841    }
21842}
21843impl From<Close> for Stmt {
21844    #[inline]
21845    fn from(node: Close) -> Stmt {
21846        Stmt::Close(node)
21847    }
21848}
21849impl From<Cluster> for Stmt {
21850    #[inline]
21851    fn from(node: Cluster) -> Stmt {
21852        Stmt::Cluster(node)
21853    }
21854}
21855impl From<CommentOn> for Stmt {
21856    #[inline]
21857    fn from(node: CommentOn) -> Stmt {
21858        Stmt::CommentOn(node)
21859    }
21860}
21861impl From<Commit> for Stmt {
21862    #[inline]
21863    fn from(node: Commit) -> Stmt {
21864        Stmt::Commit(node)
21865    }
21866}
21867impl From<Copy> for Stmt {
21868    #[inline]
21869    fn from(node: Copy) -> Stmt {
21870        Stmt::Copy(node)
21871    }
21872}
21873impl From<CreateAccessMethod> for Stmt {
21874    #[inline]
21875    fn from(node: CreateAccessMethod) -> Stmt {
21876        Stmt::CreateAccessMethod(node)
21877    }
21878}
21879impl From<CreateAggregate> for Stmt {
21880    #[inline]
21881    fn from(node: CreateAggregate) -> Stmt {
21882        Stmt::CreateAggregate(node)
21883    }
21884}
21885impl From<CreateCast> for Stmt {
21886    #[inline]
21887    fn from(node: CreateCast) -> Stmt {
21888        Stmt::CreateCast(node)
21889    }
21890}
21891impl From<CreateCollation> for Stmt {
21892    #[inline]
21893    fn from(node: CreateCollation) -> Stmt {
21894        Stmt::CreateCollation(node)
21895    }
21896}
21897impl From<CreateConversion> for Stmt {
21898    #[inline]
21899    fn from(node: CreateConversion) -> Stmt {
21900        Stmt::CreateConversion(node)
21901    }
21902}
21903impl From<CreateDatabase> for Stmt {
21904    #[inline]
21905    fn from(node: CreateDatabase) -> Stmt {
21906        Stmt::CreateDatabase(node)
21907    }
21908}
21909impl From<CreateDomain> for Stmt {
21910    #[inline]
21911    fn from(node: CreateDomain) -> Stmt {
21912        Stmt::CreateDomain(node)
21913    }
21914}
21915impl From<CreateEventTrigger> for Stmt {
21916    #[inline]
21917    fn from(node: CreateEventTrigger) -> Stmt {
21918        Stmt::CreateEventTrigger(node)
21919    }
21920}
21921impl From<CreateExtension> for Stmt {
21922    #[inline]
21923    fn from(node: CreateExtension) -> Stmt {
21924        Stmt::CreateExtension(node)
21925    }
21926}
21927impl From<CreateForeignDataWrapper> for Stmt {
21928    #[inline]
21929    fn from(node: CreateForeignDataWrapper) -> Stmt {
21930        Stmt::CreateForeignDataWrapper(node)
21931    }
21932}
21933impl From<CreateForeignTable> for Stmt {
21934    #[inline]
21935    fn from(node: CreateForeignTable) -> Stmt {
21936        Stmt::CreateForeignTable(node)
21937    }
21938}
21939impl From<CreateFunction> for Stmt {
21940    #[inline]
21941    fn from(node: CreateFunction) -> Stmt {
21942        Stmt::CreateFunction(node)
21943    }
21944}
21945impl From<CreateGroup> for Stmt {
21946    #[inline]
21947    fn from(node: CreateGroup) -> Stmt {
21948        Stmt::CreateGroup(node)
21949    }
21950}
21951impl From<CreateIndex> for Stmt {
21952    #[inline]
21953    fn from(node: CreateIndex) -> Stmt {
21954        Stmt::CreateIndex(node)
21955    }
21956}
21957impl From<CreateLanguage> for Stmt {
21958    #[inline]
21959    fn from(node: CreateLanguage) -> Stmt {
21960        Stmt::CreateLanguage(node)
21961    }
21962}
21963impl From<CreateMaterializedView> for Stmt {
21964    #[inline]
21965    fn from(node: CreateMaterializedView) -> Stmt {
21966        Stmt::CreateMaterializedView(node)
21967    }
21968}
21969impl From<CreateOperator> for Stmt {
21970    #[inline]
21971    fn from(node: CreateOperator) -> Stmt {
21972        Stmt::CreateOperator(node)
21973    }
21974}
21975impl From<CreateOperatorClass> for Stmt {
21976    #[inline]
21977    fn from(node: CreateOperatorClass) -> Stmt {
21978        Stmt::CreateOperatorClass(node)
21979    }
21980}
21981impl From<CreateOperatorFamily> for Stmt {
21982    #[inline]
21983    fn from(node: CreateOperatorFamily) -> Stmt {
21984        Stmt::CreateOperatorFamily(node)
21985    }
21986}
21987impl From<CreatePolicy> for Stmt {
21988    #[inline]
21989    fn from(node: CreatePolicy) -> Stmt {
21990        Stmt::CreatePolicy(node)
21991    }
21992}
21993impl From<CreateProcedure> for Stmt {
21994    #[inline]
21995    fn from(node: CreateProcedure) -> Stmt {
21996        Stmt::CreateProcedure(node)
21997    }
21998}
21999impl From<CreatePublication> for Stmt {
22000    #[inline]
22001    fn from(node: CreatePublication) -> Stmt {
22002        Stmt::CreatePublication(node)
22003    }
22004}
22005impl From<CreateRole> for Stmt {
22006    #[inline]
22007    fn from(node: CreateRole) -> Stmt {
22008        Stmt::CreateRole(node)
22009    }
22010}
22011impl From<CreateRule> for Stmt {
22012    #[inline]
22013    fn from(node: CreateRule) -> Stmt {
22014        Stmt::CreateRule(node)
22015    }
22016}
22017impl From<CreateSchema> for Stmt {
22018    #[inline]
22019    fn from(node: CreateSchema) -> Stmt {
22020        Stmt::CreateSchema(node)
22021    }
22022}
22023impl From<CreateSequence> for Stmt {
22024    #[inline]
22025    fn from(node: CreateSequence) -> Stmt {
22026        Stmt::CreateSequence(node)
22027    }
22028}
22029impl From<CreateServer> for Stmt {
22030    #[inline]
22031    fn from(node: CreateServer) -> Stmt {
22032        Stmt::CreateServer(node)
22033    }
22034}
22035impl From<CreateStatistics> for Stmt {
22036    #[inline]
22037    fn from(node: CreateStatistics) -> Stmt {
22038        Stmt::CreateStatistics(node)
22039    }
22040}
22041impl From<CreateSubscription> for Stmt {
22042    #[inline]
22043    fn from(node: CreateSubscription) -> Stmt {
22044        Stmt::CreateSubscription(node)
22045    }
22046}
22047impl From<CreateTable> for Stmt {
22048    #[inline]
22049    fn from(node: CreateTable) -> Stmt {
22050        Stmt::CreateTable(node)
22051    }
22052}
22053impl From<CreateTableAs> for Stmt {
22054    #[inline]
22055    fn from(node: CreateTableAs) -> Stmt {
22056        Stmt::CreateTableAs(node)
22057    }
22058}
22059impl From<CreateTablespace> for Stmt {
22060    #[inline]
22061    fn from(node: CreateTablespace) -> Stmt {
22062        Stmt::CreateTablespace(node)
22063    }
22064}
22065impl From<CreateTextSearchConfiguration> for Stmt {
22066    #[inline]
22067    fn from(node: CreateTextSearchConfiguration) -> Stmt {
22068        Stmt::CreateTextSearchConfiguration(node)
22069    }
22070}
22071impl From<CreateTextSearchDictionary> for Stmt {
22072    #[inline]
22073    fn from(node: CreateTextSearchDictionary) -> Stmt {
22074        Stmt::CreateTextSearchDictionary(node)
22075    }
22076}
22077impl From<CreateTextSearchParser> for Stmt {
22078    #[inline]
22079    fn from(node: CreateTextSearchParser) -> Stmt {
22080        Stmt::CreateTextSearchParser(node)
22081    }
22082}
22083impl From<CreateTextSearchTemplate> for Stmt {
22084    #[inline]
22085    fn from(node: CreateTextSearchTemplate) -> Stmt {
22086        Stmt::CreateTextSearchTemplate(node)
22087    }
22088}
22089impl From<CreateTransform> for Stmt {
22090    #[inline]
22091    fn from(node: CreateTransform) -> Stmt {
22092        Stmt::CreateTransform(node)
22093    }
22094}
22095impl From<CreateTrigger> for Stmt {
22096    #[inline]
22097    fn from(node: CreateTrigger) -> Stmt {
22098        Stmt::CreateTrigger(node)
22099    }
22100}
22101impl From<CreateType> for Stmt {
22102    #[inline]
22103    fn from(node: CreateType) -> Stmt {
22104        Stmt::CreateType(node)
22105    }
22106}
22107impl From<CreateUser> for Stmt {
22108    #[inline]
22109    fn from(node: CreateUser) -> Stmt {
22110        Stmt::CreateUser(node)
22111    }
22112}
22113impl From<CreateUserMapping> for Stmt {
22114    #[inline]
22115    fn from(node: CreateUserMapping) -> Stmt {
22116        Stmt::CreateUserMapping(node)
22117    }
22118}
22119impl From<CreateView> for Stmt {
22120    #[inline]
22121    fn from(node: CreateView) -> Stmt {
22122        Stmt::CreateView(node)
22123    }
22124}
22125impl From<Deallocate> for Stmt {
22126    #[inline]
22127    fn from(node: Deallocate) -> Stmt {
22128        Stmt::Deallocate(node)
22129    }
22130}
22131impl From<Declare> for Stmt {
22132    #[inline]
22133    fn from(node: Declare) -> Stmt {
22134        Stmt::Declare(node)
22135    }
22136}
22137impl From<Delete> for Stmt {
22138    #[inline]
22139    fn from(node: Delete) -> Stmt {
22140        Stmt::Delete(node)
22141    }
22142}
22143impl From<Discard> for Stmt {
22144    #[inline]
22145    fn from(node: Discard) -> Stmt {
22146        Stmt::Discard(node)
22147    }
22148}
22149impl From<Do> for Stmt {
22150    #[inline]
22151    fn from(node: Do) -> Stmt {
22152        Stmt::Do(node)
22153    }
22154}
22155impl From<DropAccessMethod> for Stmt {
22156    #[inline]
22157    fn from(node: DropAccessMethod) -> Stmt {
22158        Stmt::DropAccessMethod(node)
22159    }
22160}
22161impl From<DropAggregate> for Stmt {
22162    #[inline]
22163    fn from(node: DropAggregate) -> Stmt {
22164        Stmt::DropAggregate(node)
22165    }
22166}
22167impl From<DropCast> for Stmt {
22168    #[inline]
22169    fn from(node: DropCast) -> Stmt {
22170        Stmt::DropCast(node)
22171    }
22172}
22173impl From<DropCollation> for Stmt {
22174    #[inline]
22175    fn from(node: DropCollation) -> Stmt {
22176        Stmt::DropCollation(node)
22177    }
22178}
22179impl From<DropConversion> for Stmt {
22180    #[inline]
22181    fn from(node: DropConversion) -> Stmt {
22182        Stmt::DropConversion(node)
22183    }
22184}
22185impl From<DropDatabase> for Stmt {
22186    #[inline]
22187    fn from(node: DropDatabase) -> Stmt {
22188        Stmt::DropDatabase(node)
22189    }
22190}
22191impl From<DropDomain> for Stmt {
22192    #[inline]
22193    fn from(node: DropDomain) -> Stmt {
22194        Stmt::DropDomain(node)
22195    }
22196}
22197impl From<DropEventTrigger> for Stmt {
22198    #[inline]
22199    fn from(node: DropEventTrigger) -> Stmt {
22200        Stmt::DropEventTrigger(node)
22201    }
22202}
22203impl From<DropExtension> for Stmt {
22204    #[inline]
22205    fn from(node: DropExtension) -> Stmt {
22206        Stmt::DropExtension(node)
22207    }
22208}
22209impl From<DropForeignDataWrapper> for Stmt {
22210    #[inline]
22211    fn from(node: DropForeignDataWrapper) -> Stmt {
22212        Stmt::DropForeignDataWrapper(node)
22213    }
22214}
22215impl From<DropForeignTable> for Stmt {
22216    #[inline]
22217    fn from(node: DropForeignTable) -> Stmt {
22218        Stmt::DropForeignTable(node)
22219    }
22220}
22221impl From<DropFunction> for Stmt {
22222    #[inline]
22223    fn from(node: DropFunction) -> Stmt {
22224        Stmt::DropFunction(node)
22225    }
22226}
22227impl From<DropGroup> for Stmt {
22228    #[inline]
22229    fn from(node: DropGroup) -> Stmt {
22230        Stmt::DropGroup(node)
22231    }
22232}
22233impl From<DropIndex> for Stmt {
22234    #[inline]
22235    fn from(node: DropIndex) -> Stmt {
22236        Stmt::DropIndex(node)
22237    }
22238}
22239impl From<DropLanguage> for Stmt {
22240    #[inline]
22241    fn from(node: DropLanguage) -> Stmt {
22242        Stmt::DropLanguage(node)
22243    }
22244}
22245impl From<DropMaterializedView> for Stmt {
22246    #[inline]
22247    fn from(node: DropMaterializedView) -> Stmt {
22248        Stmt::DropMaterializedView(node)
22249    }
22250}
22251impl From<DropOperator> for Stmt {
22252    #[inline]
22253    fn from(node: DropOperator) -> Stmt {
22254        Stmt::DropOperator(node)
22255    }
22256}
22257impl From<DropOperatorClass> for Stmt {
22258    #[inline]
22259    fn from(node: DropOperatorClass) -> Stmt {
22260        Stmt::DropOperatorClass(node)
22261    }
22262}
22263impl From<DropOperatorFamily> for Stmt {
22264    #[inline]
22265    fn from(node: DropOperatorFamily) -> Stmt {
22266        Stmt::DropOperatorFamily(node)
22267    }
22268}
22269impl From<DropOwned> for Stmt {
22270    #[inline]
22271    fn from(node: DropOwned) -> Stmt {
22272        Stmt::DropOwned(node)
22273    }
22274}
22275impl From<DropPolicy> for Stmt {
22276    #[inline]
22277    fn from(node: DropPolicy) -> Stmt {
22278        Stmt::DropPolicy(node)
22279    }
22280}
22281impl From<DropProcedure> for Stmt {
22282    #[inline]
22283    fn from(node: DropProcedure) -> Stmt {
22284        Stmt::DropProcedure(node)
22285    }
22286}
22287impl From<DropPublication> for Stmt {
22288    #[inline]
22289    fn from(node: DropPublication) -> Stmt {
22290        Stmt::DropPublication(node)
22291    }
22292}
22293impl From<DropRole> for Stmt {
22294    #[inline]
22295    fn from(node: DropRole) -> Stmt {
22296        Stmt::DropRole(node)
22297    }
22298}
22299impl From<DropRoutine> for Stmt {
22300    #[inline]
22301    fn from(node: DropRoutine) -> Stmt {
22302        Stmt::DropRoutine(node)
22303    }
22304}
22305impl From<DropRule> for Stmt {
22306    #[inline]
22307    fn from(node: DropRule) -> Stmt {
22308        Stmt::DropRule(node)
22309    }
22310}
22311impl From<DropSchema> for Stmt {
22312    #[inline]
22313    fn from(node: DropSchema) -> Stmt {
22314        Stmt::DropSchema(node)
22315    }
22316}
22317impl From<DropSequence> for Stmt {
22318    #[inline]
22319    fn from(node: DropSequence) -> Stmt {
22320        Stmt::DropSequence(node)
22321    }
22322}
22323impl From<DropServer> for Stmt {
22324    #[inline]
22325    fn from(node: DropServer) -> Stmt {
22326        Stmt::DropServer(node)
22327    }
22328}
22329impl From<DropStatistics> for Stmt {
22330    #[inline]
22331    fn from(node: DropStatistics) -> Stmt {
22332        Stmt::DropStatistics(node)
22333    }
22334}
22335impl From<DropSubscription> for Stmt {
22336    #[inline]
22337    fn from(node: DropSubscription) -> Stmt {
22338        Stmt::DropSubscription(node)
22339    }
22340}
22341impl From<DropTable> for Stmt {
22342    #[inline]
22343    fn from(node: DropTable) -> Stmt {
22344        Stmt::DropTable(node)
22345    }
22346}
22347impl From<DropTablespace> for Stmt {
22348    #[inline]
22349    fn from(node: DropTablespace) -> Stmt {
22350        Stmt::DropTablespace(node)
22351    }
22352}
22353impl From<DropTextSearchConfig> for Stmt {
22354    #[inline]
22355    fn from(node: DropTextSearchConfig) -> Stmt {
22356        Stmt::DropTextSearchConfig(node)
22357    }
22358}
22359impl From<DropTextSearchDict> for Stmt {
22360    #[inline]
22361    fn from(node: DropTextSearchDict) -> Stmt {
22362        Stmt::DropTextSearchDict(node)
22363    }
22364}
22365impl From<DropTextSearchParser> for Stmt {
22366    #[inline]
22367    fn from(node: DropTextSearchParser) -> Stmt {
22368        Stmt::DropTextSearchParser(node)
22369    }
22370}
22371impl From<DropTextSearchTemplate> for Stmt {
22372    #[inline]
22373    fn from(node: DropTextSearchTemplate) -> Stmt {
22374        Stmt::DropTextSearchTemplate(node)
22375    }
22376}
22377impl From<DropTransform> for Stmt {
22378    #[inline]
22379    fn from(node: DropTransform) -> Stmt {
22380        Stmt::DropTransform(node)
22381    }
22382}
22383impl From<DropTrigger> for Stmt {
22384    #[inline]
22385    fn from(node: DropTrigger) -> Stmt {
22386        Stmt::DropTrigger(node)
22387    }
22388}
22389impl From<DropType> for Stmt {
22390    #[inline]
22391    fn from(node: DropType) -> Stmt {
22392        Stmt::DropType(node)
22393    }
22394}
22395impl From<DropUser> for Stmt {
22396    #[inline]
22397    fn from(node: DropUser) -> Stmt {
22398        Stmt::DropUser(node)
22399    }
22400}
22401impl From<DropUserMapping> for Stmt {
22402    #[inline]
22403    fn from(node: DropUserMapping) -> Stmt {
22404        Stmt::DropUserMapping(node)
22405    }
22406}
22407impl From<DropView> for Stmt {
22408    #[inline]
22409    fn from(node: DropView) -> Stmt {
22410        Stmt::DropView(node)
22411    }
22412}
22413impl From<Execute> for Stmt {
22414    #[inline]
22415    fn from(node: Execute) -> Stmt {
22416        Stmt::Execute(node)
22417    }
22418}
22419impl From<Explain> for Stmt {
22420    #[inline]
22421    fn from(node: Explain) -> Stmt {
22422        Stmt::Explain(node)
22423    }
22424}
22425impl From<Fetch> for Stmt {
22426    #[inline]
22427    fn from(node: Fetch) -> Stmt {
22428        Stmt::Fetch(node)
22429    }
22430}
22431impl From<Grant> for Stmt {
22432    #[inline]
22433    fn from(node: Grant) -> Stmt {
22434        Stmt::Grant(node)
22435    }
22436}
22437impl From<ImportForeignSchema> for Stmt {
22438    #[inline]
22439    fn from(node: ImportForeignSchema) -> Stmt {
22440        Stmt::ImportForeignSchema(node)
22441    }
22442}
22443impl From<Insert> for Stmt {
22444    #[inline]
22445    fn from(node: Insert) -> Stmt {
22446        Stmt::Insert(node)
22447    }
22448}
22449impl From<Listen> for Stmt {
22450    #[inline]
22451    fn from(node: Listen) -> Stmt {
22452        Stmt::Listen(node)
22453    }
22454}
22455impl From<Load> for Stmt {
22456    #[inline]
22457    fn from(node: Load) -> Stmt {
22458        Stmt::Load(node)
22459    }
22460}
22461impl From<Lock> for Stmt {
22462    #[inline]
22463    fn from(node: Lock) -> Stmt {
22464        Stmt::Lock(node)
22465    }
22466}
22467impl From<Merge> for Stmt {
22468    #[inline]
22469    fn from(node: Merge) -> Stmt {
22470        Stmt::Merge(node)
22471    }
22472}
22473impl From<Move> for Stmt {
22474    #[inline]
22475    fn from(node: Move) -> Stmt {
22476        Stmt::Move(node)
22477    }
22478}
22479impl From<Notify> for Stmt {
22480    #[inline]
22481    fn from(node: Notify) -> Stmt {
22482        Stmt::Notify(node)
22483    }
22484}
22485impl From<ParenSelect> for Stmt {
22486    #[inline]
22487    fn from(node: ParenSelect) -> Stmt {
22488        Stmt::ParenSelect(node)
22489    }
22490}
22491impl From<Prepare> for Stmt {
22492    #[inline]
22493    fn from(node: Prepare) -> Stmt {
22494        Stmt::Prepare(node)
22495    }
22496}
22497impl From<PrepareTransaction> for Stmt {
22498    #[inline]
22499    fn from(node: PrepareTransaction) -> Stmt {
22500        Stmt::PrepareTransaction(node)
22501    }
22502}
22503impl From<Reassign> for Stmt {
22504    #[inline]
22505    fn from(node: Reassign) -> Stmt {
22506        Stmt::Reassign(node)
22507    }
22508}
22509impl From<Refresh> for Stmt {
22510    #[inline]
22511    fn from(node: Refresh) -> Stmt {
22512        Stmt::Refresh(node)
22513    }
22514}
22515impl From<Reindex> for Stmt {
22516    #[inline]
22517    fn from(node: Reindex) -> Stmt {
22518        Stmt::Reindex(node)
22519    }
22520}
22521impl From<ReleaseSavepoint> for Stmt {
22522    #[inline]
22523    fn from(node: ReleaseSavepoint) -> Stmt {
22524        Stmt::ReleaseSavepoint(node)
22525    }
22526}
22527impl From<Reset> for Stmt {
22528    #[inline]
22529    fn from(node: Reset) -> Stmt {
22530        Stmt::Reset(node)
22531    }
22532}
22533impl From<Revoke> for Stmt {
22534    #[inline]
22535    fn from(node: Revoke) -> Stmt {
22536        Stmt::Revoke(node)
22537    }
22538}
22539impl From<Rollback> for Stmt {
22540    #[inline]
22541    fn from(node: Rollback) -> Stmt {
22542        Stmt::Rollback(node)
22543    }
22544}
22545impl From<Savepoint> for Stmt {
22546    #[inline]
22547    fn from(node: Savepoint) -> Stmt {
22548        Stmt::Savepoint(node)
22549    }
22550}
22551impl From<SecurityLabel> for Stmt {
22552    #[inline]
22553    fn from(node: SecurityLabel) -> Stmt {
22554        Stmt::SecurityLabel(node)
22555    }
22556}
22557impl From<Select> for Stmt {
22558    #[inline]
22559    fn from(node: Select) -> Stmt {
22560        Stmt::Select(node)
22561    }
22562}
22563impl From<SelectInto> for Stmt {
22564    #[inline]
22565    fn from(node: SelectInto) -> Stmt {
22566        Stmt::SelectInto(node)
22567    }
22568}
22569impl From<Set> for Stmt {
22570    #[inline]
22571    fn from(node: Set) -> Stmt {
22572        Stmt::Set(node)
22573    }
22574}
22575impl From<SetConstraints> for Stmt {
22576    #[inline]
22577    fn from(node: SetConstraints) -> Stmt {
22578        Stmt::SetConstraints(node)
22579    }
22580}
22581impl From<SetRole> for Stmt {
22582    #[inline]
22583    fn from(node: SetRole) -> Stmt {
22584        Stmt::SetRole(node)
22585    }
22586}
22587impl From<SetSessionAuth> for Stmt {
22588    #[inline]
22589    fn from(node: SetSessionAuth) -> Stmt {
22590        Stmt::SetSessionAuth(node)
22591    }
22592}
22593impl From<SetTransaction> for Stmt {
22594    #[inline]
22595    fn from(node: SetTransaction) -> Stmt {
22596        Stmt::SetTransaction(node)
22597    }
22598}
22599impl From<Show> for Stmt {
22600    #[inline]
22601    fn from(node: Show) -> Stmt {
22602        Stmt::Show(node)
22603    }
22604}
22605impl From<Truncate> for Stmt {
22606    #[inline]
22607    fn from(node: Truncate) -> Stmt {
22608        Stmt::Truncate(node)
22609    }
22610}
22611impl From<Unlisten> for Stmt {
22612    #[inline]
22613    fn from(node: Unlisten) -> Stmt {
22614        Stmt::Unlisten(node)
22615    }
22616}
22617impl From<Update> for Stmt {
22618    #[inline]
22619    fn from(node: Update) -> Stmt {
22620        Stmt::Update(node)
22621    }
22622}
22623impl From<Vacuum> for Stmt {
22624    #[inline]
22625    fn from(node: Vacuum) -> Stmt {
22626        Stmt::Vacuum(node)
22627    }
22628}
22629impl From<Values> for Stmt {
22630    #[inline]
22631    fn from(node: Values) -> Stmt {
22632        Stmt::Values(node)
22633    }
22634}
22635impl AstNode for TableArg {
22636    #[inline]
22637    fn can_cast(kind: SyntaxKind) -> bool {
22638        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
22639    }
22640    #[inline]
22641    fn cast(syntax: SyntaxNode) -> Option<Self> {
22642        let res = match syntax.kind() {
22643            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
22644            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
22645            _ => {
22646                if let Some(result) = TableConstraint::cast(syntax) {
22647                    return Some(TableArg::TableConstraint(result));
22648                }
22649                return None;
22650            }
22651        };
22652        Some(res)
22653    }
22654    #[inline]
22655    fn syntax(&self) -> &SyntaxNode {
22656        match self {
22657            TableArg::Column(it) => &it.syntax,
22658            TableArg::LikeClause(it) => &it.syntax,
22659            TableArg::TableConstraint(it) => it.syntax(),
22660        }
22661    }
22662}
22663impl From<Column> for TableArg {
22664    #[inline]
22665    fn from(node: Column) -> TableArg {
22666        TableArg::Column(node)
22667    }
22668}
22669impl From<LikeClause> for TableArg {
22670    #[inline]
22671    fn from(node: LikeClause) -> TableArg {
22672        TableArg::LikeClause(node)
22673    }
22674}
22675impl AstNode for TableConstraint {
22676    #[inline]
22677    fn can_cast(kind: SyntaxKind) -> bool {
22678        matches!(
22679            kind,
22680            SyntaxKind::CHECK_CONSTRAINT
22681                | SyntaxKind::EXCLUDE_CONSTRAINT
22682                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
22683                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
22684                | SyntaxKind::UNIQUE_CONSTRAINT
22685        )
22686    }
22687    #[inline]
22688    fn cast(syntax: SyntaxNode) -> Option<Self> {
22689        let res = match syntax.kind() {
22690            SyntaxKind::CHECK_CONSTRAINT => {
22691                TableConstraint::CheckConstraint(CheckConstraint { syntax })
22692            }
22693            SyntaxKind::EXCLUDE_CONSTRAINT => {
22694                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
22695            }
22696            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
22697                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
22698            }
22699            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
22700                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
22701            }
22702            SyntaxKind::UNIQUE_CONSTRAINT => {
22703                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
22704            }
22705            _ => {
22706                return None;
22707            }
22708        };
22709        Some(res)
22710    }
22711    #[inline]
22712    fn syntax(&self) -> &SyntaxNode {
22713        match self {
22714            TableConstraint::CheckConstraint(it) => &it.syntax,
22715            TableConstraint::ExcludeConstraint(it) => &it.syntax,
22716            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
22717            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
22718            TableConstraint::UniqueConstraint(it) => &it.syntax,
22719        }
22720    }
22721}
22722impl From<CheckConstraint> for TableConstraint {
22723    #[inline]
22724    fn from(node: CheckConstraint) -> TableConstraint {
22725        TableConstraint::CheckConstraint(node)
22726    }
22727}
22728impl From<ExcludeConstraint> for TableConstraint {
22729    #[inline]
22730    fn from(node: ExcludeConstraint) -> TableConstraint {
22731        TableConstraint::ExcludeConstraint(node)
22732    }
22733}
22734impl From<ForeignKeyConstraint> for TableConstraint {
22735    #[inline]
22736    fn from(node: ForeignKeyConstraint) -> TableConstraint {
22737        TableConstraint::ForeignKeyConstraint(node)
22738    }
22739}
22740impl From<PrimaryKeyConstraint> for TableConstraint {
22741    #[inline]
22742    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
22743        TableConstraint::PrimaryKeyConstraint(node)
22744    }
22745}
22746impl From<UniqueConstraint> for TableConstraint {
22747    #[inline]
22748    fn from(node: UniqueConstraint) -> TableConstraint {
22749        TableConstraint::UniqueConstraint(node)
22750    }
22751}
22752impl AstNode for Timezone {
22753    #[inline]
22754    fn can_cast(kind: SyntaxKind) -> bool {
22755        matches!(
22756            kind,
22757            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
22758        )
22759    }
22760    #[inline]
22761    fn cast(syntax: SyntaxNode) -> Option<Self> {
22762        let res = match syntax.kind() {
22763            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
22764            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
22765            _ => {
22766                return None;
22767            }
22768        };
22769        Some(res)
22770    }
22771    #[inline]
22772    fn syntax(&self) -> &SyntaxNode {
22773        match self {
22774            Timezone::WithTimezone(it) => &it.syntax,
22775            Timezone::WithoutTimezone(it) => &it.syntax,
22776        }
22777    }
22778}
22779impl From<WithTimezone> for Timezone {
22780    #[inline]
22781    fn from(node: WithTimezone) -> Timezone {
22782        Timezone::WithTimezone(node)
22783    }
22784}
22785impl From<WithoutTimezone> for Timezone {
22786    #[inline]
22787    fn from(node: WithoutTimezone) -> Timezone {
22788        Timezone::WithoutTimezone(node)
22789    }
22790}
22791impl AstNode for TransactionMode {
22792    #[inline]
22793    fn can_cast(kind: SyntaxKind) -> bool {
22794        matches!(
22795            kind,
22796            SyntaxKind::DEFERRABLE
22797                | SyntaxKind::NOT_DEFERRABLE
22798                | SyntaxKind::READ_COMMITTED
22799                | SyntaxKind::READ_ONLY
22800                | SyntaxKind::READ_UNCOMMITTED
22801                | SyntaxKind::READ_WRITE
22802                | SyntaxKind::REPEATABLE_READ
22803                | SyntaxKind::SERIALIZABLE
22804        )
22805    }
22806    #[inline]
22807    fn cast(syntax: SyntaxNode) -> Option<Self> {
22808        let res = match syntax.kind() {
22809            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
22810            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
22811            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
22812            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
22813            SyntaxKind::READ_UNCOMMITTED => {
22814                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
22815            }
22816            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
22817            SyntaxKind::REPEATABLE_READ => {
22818                TransactionMode::RepeatableRead(RepeatableRead { syntax })
22819            }
22820            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
22821            _ => {
22822                return None;
22823            }
22824        };
22825        Some(res)
22826    }
22827    #[inline]
22828    fn syntax(&self) -> &SyntaxNode {
22829        match self {
22830            TransactionMode::Deferrable(it) => &it.syntax,
22831            TransactionMode::NotDeferrable(it) => &it.syntax,
22832            TransactionMode::ReadCommitted(it) => &it.syntax,
22833            TransactionMode::ReadOnly(it) => &it.syntax,
22834            TransactionMode::ReadUncommitted(it) => &it.syntax,
22835            TransactionMode::ReadWrite(it) => &it.syntax,
22836            TransactionMode::RepeatableRead(it) => &it.syntax,
22837            TransactionMode::Serializable(it) => &it.syntax,
22838        }
22839    }
22840}
22841impl From<Deferrable> for TransactionMode {
22842    #[inline]
22843    fn from(node: Deferrable) -> TransactionMode {
22844        TransactionMode::Deferrable(node)
22845    }
22846}
22847impl From<NotDeferrable> for TransactionMode {
22848    #[inline]
22849    fn from(node: NotDeferrable) -> TransactionMode {
22850        TransactionMode::NotDeferrable(node)
22851    }
22852}
22853impl From<ReadCommitted> for TransactionMode {
22854    #[inline]
22855    fn from(node: ReadCommitted) -> TransactionMode {
22856        TransactionMode::ReadCommitted(node)
22857    }
22858}
22859impl From<ReadOnly> for TransactionMode {
22860    #[inline]
22861    fn from(node: ReadOnly) -> TransactionMode {
22862        TransactionMode::ReadOnly(node)
22863    }
22864}
22865impl From<ReadUncommitted> for TransactionMode {
22866    #[inline]
22867    fn from(node: ReadUncommitted) -> TransactionMode {
22868        TransactionMode::ReadUncommitted(node)
22869    }
22870}
22871impl From<ReadWrite> for TransactionMode {
22872    #[inline]
22873    fn from(node: ReadWrite) -> TransactionMode {
22874        TransactionMode::ReadWrite(node)
22875    }
22876}
22877impl From<RepeatableRead> for TransactionMode {
22878    #[inline]
22879    fn from(node: RepeatableRead) -> TransactionMode {
22880        TransactionMode::RepeatableRead(node)
22881    }
22882}
22883impl From<Serializable> for TransactionMode {
22884    #[inline]
22885    fn from(node: Serializable) -> TransactionMode {
22886        TransactionMode::Serializable(node)
22887    }
22888}
22889impl AstNode for Type {
22890    #[inline]
22891    fn can_cast(kind: SyntaxKind) -> bool {
22892        matches!(
22893            kind,
22894            SyntaxKind::ARRAY_TYPE
22895                | SyntaxKind::BIT_TYPE
22896                | SyntaxKind::CHAR_TYPE
22897                | SyntaxKind::DOUBLE_TYPE
22898                | SyntaxKind::INTERVAL_TYPE
22899                | SyntaxKind::PATH_TYPE
22900                | SyntaxKind::PERCENT_TYPE
22901                | SyntaxKind::TIME_TYPE
22902        )
22903    }
22904    #[inline]
22905    fn cast(syntax: SyntaxNode) -> Option<Self> {
22906        let res = match syntax.kind() {
22907            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
22908            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
22909            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
22910            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
22911            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
22912            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
22913            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
22914            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
22915            _ => {
22916                return None;
22917            }
22918        };
22919        Some(res)
22920    }
22921    #[inline]
22922    fn syntax(&self) -> &SyntaxNode {
22923        match self {
22924            Type::ArrayType(it) => &it.syntax,
22925            Type::BitType(it) => &it.syntax,
22926            Type::CharType(it) => &it.syntax,
22927            Type::DoubleType(it) => &it.syntax,
22928            Type::IntervalType(it) => &it.syntax,
22929            Type::PathType(it) => &it.syntax,
22930            Type::PercentType(it) => &it.syntax,
22931            Type::TimeType(it) => &it.syntax,
22932        }
22933    }
22934}
22935impl From<ArrayType> for Type {
22936    #[inline]
22937    fn from(node: ArrayType) -> Type {
22938        Type::ArrayType(node)
22939    }
22940}
22941impl From<BitType> for Type {
22942    #[inline]
22943    fn from(node: BitType) -> Type {
22944        Type::BitType(node)
22945    }
22946}
22947impl From<CharType> for Type {
22948    #[inline]
22949    fn from(node: CharType) -> Type {
22950        Type::CharType(node)
22951    }
22952}
22953impl From<DoubleType> for Type {
22954    #[inline]
22955    fn from(node: DoubleType) -> Type {
22956        Type::DoubleType(node)
22957    }
22958}
22959impl From<IntervalType> for Type {
22960    #[inline]
22961    fn from(node: IntervalType) -> Type {
22962        Type::IntervalType(node)
22963    }
22964}
22965impl From<PathType> for Type {
22966    #[inline]
22967    fn from(node: PathType) -> Type {
22968        Type::PathType(node)
22969    }
22970}
22971impl From<PercentType> for Type {
22972    #[inline]
22973    fn from(node: PercentType) -> Type {
22974        Type::PercentType(node)
22975    }
22976}
22977impl From<TimeType> for Type {
22978    #[inline]
22979    fn from(node: TimeType) -> Type {
22980        Type::TimeType(node)
22981    }
22982}
22983impl AstNode for WithQuery {
22984    #[inline]
22985    fn can_cast(kind: SyntaxKind) -> bool {
22986        matches!(
22987            kind,
22988            SyntaxKind::DELETE
22989                | SyntaxKind::INSERT
22990                | SyntaxKind::MERGE
22991                | SyntaxKind::SELECT
22992                | SyntaxKind::UPDATE
22993                | SyntaxKind::VALUES
22994        )
22995    }
22996    #[inline]
22997    fn cast(syntax: SyntaxNode) -> Option<Self> {
22998        let res = match syntax.kind() {
22999            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
23000            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
23001            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
23002            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
23003            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
23004            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
23005            _ => {
23006                return None;
23007            }
23008        };
23009        Some(res)
23010    }
23011    #[inline]
23012    fn syntax(&self) -> &SyntaxNode {
23013        match self {
23014            WithQuery::Delete(it) => &it.syntax,
23015            WithQuery::Insert(it) => &it.syntax,
23016            WithQuery::Merge(it) => &it.syntax,
23017            WithQuery::Select(it) => &it.syntax,
23018            WithQuery::Update(it) => &it.syntax,
23019            WithQuery::Values(it) => &it.syntax,
23020        }
23021    }
23022}
23023impl From<Delete> for WithQuery {
23024    #[inline]
23025    fn from(node: Delete) -> WithQuery {
23026        WithQuery::Delete(node)
23027    }
23028}
23029impl From<Insert> for WithQuery {
23030    #[inline]
23031    fn from(node: Insert) -> WithQuery {
23032        WithQuery::Insert(node)
23033    }
23034}
23035impl From<Merge> for WithQuery {
23036    #[inline]
23037    fn from(node: Merge) -> WithQuery {
23038        WithQuery::Merge(node)
23039    }
23040}
23041impl From<Select> for WithQuery {
23042    #[inline]
23043    fn from(node: Select) -> WithQuery {
23044        WithQuery::Select(node)
23045    }
23046}
23047impl From<Update> for WithQuery {
23048    #[inline]
23049    fn from(node: Update) -> WithQuery {
23050        WithQuery::Update(node)
23051    }
23052}
23053impl From<Values> for WithQuery {
23054    #[inline]
23055    fn from(node: Values) -> WithQuery {
23056        WithQuery::Values(node)
23057    }
23058}