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(&self) -> Option<Name> {
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 name(&self) -> Option<Name> {
130        support::child(&self.syntax)
131    }
132    #[inline]
133    pub fn as_token(&self) -> Option<SyntaxToken> {
134        support::token(&self.syntax, SyntaxKind::AS_KW)
135    }
136}
137
138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
139pub struct AlterAggregate {
140    pub(crate) syntax: SyntaxNode,
141}
142impl AlterAggregate {
143    #[inline]
144    pub fn aggregate(&self) -> Option<Aggregate> {
145        support::child(&self.syntax)
146    }
147    #[inline]
148    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
149        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
150    }
151    #[inline]
152    pub fn alter_token(&self) -> Option<SyntaxToken> {
153        support::token(&self.syntax, SyntaxKind::ALTER_KW)
154    }
155}
156
157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
158pub struct AlterCollation {
159    pub(crate) syntax: SyntaxNode,
160}
161impl AlterCollation {
162    #[inline]
163    pub fn name_ref(&self) -> Option<NameRef> {
164        support::child(&self.syntax)
165    }
166    #[inline]
167    pub fn alter_token(&self) -> Option<SyntaxToken> {
168        support::token(&self.syntax, SyntaxKind::ALTER_KW)
169    }
170    #[inline]
171    pub fn collation_token(&self) -> Option<SyntaxToken> {
172        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
173    }
174}
175
176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
177pub struct AlterColumn {
178    pub(crate) syntax: SyntaxNode,
179}
180impl AlterColumn {
181    #[inline]
182    pub fn name_ref(&self) -> Option<NameRef> {
183        support::child(&self.syntax)
184    }
185    #[inline]
186    pub fn option(&self) -> Option<AlterColumnOption> {
187        support::child(&self.syntax)
188    }
189    #[inline]
190    pub fn alter_token(&self) -> Option<SyntaxToken> {
191        support::token(&self.syntax, SyntaxKind::ALTER_KW)
192    }
193    #[inline]
194    pub fn column_token(&self) -> Option<SyntaxToken> {
195        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
196    }
197}
198
199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
200pub struct AlterConstraint {
201    pub(crate) syntax: SyntaxNode,
202}
203impl AlterConstraint {
204    #[inline]
205    pub fn option(&self) -> Option<AlterColumnOption> {
206        support::child(&self.syntax)
207    }
208    #[inline]
209    pub fn alter_token(&self) -> Option<SyntaxToken> {
210        support::token(&self.syntax, SyntaxKind::ALTER_KW)
211    }
212    #[inline]
213    pub fn constraint_token(&self) -> Option<SyntaxToken> {
214        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
215    }
216}
217
218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
219pub struct AlterConversion {
220    pub(crate) syntax: SyntaxNode,
221}
222impl AlterConversion {
223    #[inline]
224    pub fn name_ref(&self) -> Option<NameRef> {
225        support::child(&self.syntax)
226    }
227    #[inline]
228    pub fn alter_token(&self) -> Option<SyntaxToken> {
229        support::token(&self.syntax, SyntaxKind::ALTER_KW)
230    }
231    #[inline]
232    pub fn conversion_token(&self) -> Option<SyntaxToken> {
233        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
234    }
235}
236
237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
238pub struct AlterDatabase {
239    pub(crate) syntax: SyntaxNode,
240}
241impl AlterDatabase {
242    #[inline]
243    pub fn name_ref(&self) -> Option<NameRef> {
244        support::child(&self.syntax)
245    }
246    #[inline]
247    pub fn alter_token(&self) -> Option<SyntaxToken> {
248        support::token(&self.syntax, SyntaxKind::ALTER_KW)
249    }
250    #[inline]
251    pub fn database_token(&self) -> Option<SyntaxToken> {
252        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
253    }
254}
255
256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
257pub struct AlterDefaultPrivileges {
258    pub(crate) syntax: SyntaxNode,
259}
260impl AlterDefaultPrivileges {
261    #[inline]
262    pub fn alter_token(&self) -> Option<SyntaxToken> {
263        support::token(&self.syntax, SyntaxKind::ALTER_KW)
264    }
265    #[inline]
266    pub fn default_token(&self) -> Option<SyntaxToken> {
267        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
268    }
269    #[inline]
270    pub fn privileges_token(&self) -> Option<SyntaxToken> {
271        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
272    }
273}
274
275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
276pub struct AlterDomain {
277    pub(crate) syntax: SyntaxNode,
278}
279impl AlterDomain {
280    #[inline]
281    pub fn action(&self) -> Option<AlterDomainAction> {
282        support::child(&self.syntax)
283    }
284    #[inline]
285    pub fn path(&self) -> Option<Path> {
286        support::child(&self.syntax)
287    }
288    #[inline]
289    pub fn alter_token(&self) -> Option<SyntaxToken> {
290        support::token(&self.syntax, SyntaxKind::ALTER_KW)
291    }
292    #[inline]
293    pub fn domain_token(&self) -> Option<SyntaxToken> {
294        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
295    }
296}
297
298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
299pub struct AlterEventTrigger {
300    pub(crate) syntax: SyntaxNode,
301}
302impl AlterEventTrigger {
303    #[inline]
304    pub fn alter_token(&self) -> Option<SyntaxToken> {
305        support::token(&self.syntax, SyntaxKind::ALTER_KW)
306    }
307    #[inline]
308    pub fn event_token(&self) -> Option<SyntaxToken> {
309        support::token(&self.syntax, SyntaxKind::EVENT_KW)
310    }
311    #[inline]
312    pub fn trigger_token(&self) -> Option<SyntaxToken> {
313        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
314    }
315}
316
317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
318pub struct AlterExtension {
319    pub(crate) syntax: SyntaxNode,
320}
321impl AlterExtension {
322    #[inline]
323    pub fn name_ref(&self) -> Option<NameRef> {
324        support::child(&self.syntax)
325    }
326    #[inline]
327    pub fn alter_token(&self) -> Option<SyntaxToken> {
328        support::token(&self.syntax, SyntaxKind::ALTER_KW)
329    }
330    #[inline]
331    pub fn extension_token(&self) -> Option<SyntaxToken> {
332        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
333    }
334}
335
336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
337pub struct AlterForeignDataWrapper {
338    pub(crate) syntax: SyntaxNode,
339}
340impl AlterForeignDataWrapper {
341    #[inline]
342    pub fn alter_token(&self) -> Option<SyntaxToken> {
343        support::token(&self.syntax, SyntaxKind::ALTER_KW)
344    }
345    #[inline]
346    pub fn data_token(&self) -> Option<SyntaxToken> {
347        support::token(&self.syntax, SyntaxKind::DATA_KW)
348    }
349    #[inline]
350    pub fn foreign_token(&self) -> Option<SyntaxToken> {
351        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
352    }
353    #[inline]
354    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
355        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
356    }
357}
358
359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
360pub struct AlterForeignTable {
361    pub(crate) syntax: SyntaxNode,
362}
363impl AlterForeignTable {
364    #[inline]
365    pub fn alter_token(&self) -> Option<SyntaxToken> {
366        support::token(&self.syntax, SyntaxKind::ALTER_KW)
367    }
368    #[inline]
369    pub fn foreign_token(&self) -> Option<SyntaxToken> {
370        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
371    }
372    #[inline]
373    pub fn table_token(&self) -> Option<SyntaxToken> {
374        support::token(&self.syntax, SyntaxKind::TABLE_KW)
375    }
376}
377
378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
379pub struct AlterFunction {
380    pub(crate) syntax: SyntaxNode,
381}
382impl AlterFunction {
383    #[inline]
384    pub fn alter_token(&self) -> Option<SyntaxToken> {
385        support::token(&self.syntax, SyntaxKind::ALTER_KW)
386    }
387    #[inline]
388    pub fn function_token(&self) -> Option<SyntaxToken> {
389        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
390    }
391}
392
393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
394pub struct AlterGroup {
395    pub(crate) syntax: SyntaxNode,
396}
397impl AlterGroup {
398    #[inline]
399    pub fn name_ref(&self) -> Option<NameRef> {
400        support::child(&self.syntax)
401    }
402    #[inline]
403    pub fn alter_token(&self) -> Option<SyntaxToken> {
404        support::token(&self.syntax, SyntaxKind::ALTER_KW)
405    }
406    #[inline]
407    pub fn group_token(&self) -> Option<SyntaxToken> {
408        support::token(&self.syntax, SyntaxKind::GROUP_KW)
409    }
410}
411
412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
413pub struct AlterIndex {
414    pub(crate) syntax: SyntaxNode,
415}
416impl AlterIndex {
417    #[inline]
418    pub fn name_ref(&self) -> Option<NameRef> {
419        support::child(&self.syntax)
420    }
421    #[inline]
422    pub fn alter_token(&self) -> Option<SyntaxToken> {
423        support::token(&self.syntax, SyntaxKind::ALTER_KW)
424    }
425    #[inline]
426    pub fn index_token(&self) -> Option<SyntaxToken> {
427        support::token(&self.syntax, SyntaxKind::INDEX_KW)
428    }
429}
430
431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
432pub struct AlterLanguage {
433    pub(crate) syntax: SyntaxNode,
434}
435impl AlterLanguage {
436    #[inline]
437    pub fn name_ref(&self) -> Option<NameRef> {
438        support::child(&self.syntax)
439    }
440    #[inline]
441    pub fn alter_token(&self) -> Option<SyntaxToken> {
442        support::token(&self.syntax, SyntaxKind::ALTER_KW)
443    }
444    #[inline]
445    pub fn language_token(&self) -> Option<SyntaxToken> {
446        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
447    }
448}
449
450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
451pub struct AlterLargeObject {
452    pub(crate) syntax: SyntaxNode,
453}
454impl AlterLargeObject {
455    #[inline]
456    pub fn alter_token(&self) -> Option<SyntaxToken> {
457        support::token(&self.syntax, SyntaxKind::ALTER_KW)
458    }
459    #[inline]
460    pub fn large_token(&self) -> Option<SyntaxToken> {
461        support::token(&self.syntax, SyntaxKind::LARGE_KW)
462    }
463    #[inline]
464    pub fn object_token(&self) -> Option<SyntaxToken> {
465        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
466    }
467}
468
469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
470pub struct AlterMaterializedView {
471    pub(crate) syntax: SyntaxNode,
472}
473impl AlterMaterializedView {
474    #[inline]
475    pub fn name_ref(&self) -> Option<NameRef> {
476        support::child(&self.syntax)
477    }
478    #[inline]
479    pub fn alter_token(&self) -> Option<SyntaxToken> {
480        support::token(&self.syntax, SyntaxKind::ALTER_KW)
481    }
482    #[inline]
483    pub fn materialized_token(&self) -> Option<SyntaxToken> {
484        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
485    }
486    #[inline]
487    pub fn view_token(&self) -> Option<SyntaxToken> {
488        support::token(&self.syntax, SyntaxKind::VIEW_KW)
489    }
490}
491
492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
493pub struct AlterOperator {
494    pub(crate) syntax: SyntaxNode,
495}
496impl AlterOperator {
497    #[inline]
498    pub fn alter_token(&self) -> Option<SyntaxToken> {
499        support::token(&self.syntax, SyntaxKind::ALTER_KW)
500    }
501    #[inline]
502    pub fn operator_token(&self) -> Option<SyntaxToken> {
503        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
504    }
505}
506
507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
508pub struct AlterOperatorClass {
509    pub(crate) syntax: SyntaxNode,
510}
511impl AlterOperatorClass {
512    #[inline]
513    pub fn name_ref(&self) -> Option<NameRef> {
514        support::child(&self.syntax)
515    }
516    #[inline]
517    pub fn alter_token(&self) -> Option<SyntaxToken> {
518        support::token(&self.syntax, SyntaxKind::ALTER_KW)
519    }
520    #[inline]
521    pub fn class_token(&self) -> Option<SyntaxToken> {
522        support::token(&self.syntax, SyntaxKind::CLASS_KW)
523    }
524    #[inline]
525    pub fn operator_token(&self) -> Option<SyntaxToken> {
526        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
527    }
528    #[inline]
529    pub fn using_token(&self) -> Option<SyntaxToken> {
530        support::token(&self.syntax, SyntaxKind::USING_KW)
531    }
532}
533
534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
535pub struct AlterOperatorFamily {
536    pub(crate) syntax: SyntaxNode,
537}
538impl AlterOperatorFamily {
539    #[inline]
540    pub fn name_ref(&self) -> Option<NameRef> {
541        support::child(&self.syntax)
542    }
543    #[inline]
544    pub fn alter_token(&self) -> Option<SyntaxToken> {
545        support::token(&self.syntax, SyntaxKind::ALTER_KW)
546    }
547    #[inline]
548    pub fn family_token(&self) -> Option<SyntaxToken> {
549        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
550    }
551    #[inline]
552    pub fn operator_token(&self) -> Option<SyntaxToken> {
553        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
554    }
555    #[inline]
556    pub fn using_token(&self) -> Option<SyntaxToken> {
557        support::token(&self.syntax, SyntaxKind::USING_KW)
558    }
559}
560
561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
562pub struct AlterOption {
563    pub(crate) syntax: SyntaxNode,
564}
565impl AlterOption {
566    #[inline]
567    pub fn literal(&self) -> Option<Literal> {
568        support::child(&self.syntax)
569    }
570    #[inline]
571    pub fn name_ref(&self) -> Option<NameRef> {
572        support::child(&self.syntax)
573    }
574    #[inline]
575    pub fn add_token(&self) -> Option<SyntaxToken> {
576        support::token(&self.syntax, SyntaxKind::ADD_KW)
577    }
578    #[inline]
579    pub fn drop_token(&self) -> Option<SyntaxToken> {
580        support::token(&self.syntax, SyntaxKind::DROP_KW)
581    }
582    #[inline]
583    pub fn set_token(&self) -> Option<SyntaxToken> {
584        support::token(&self.syntax, SyntaxKind::SET_KW)
585    }
586}
587
588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
589pub struct AlterOptionList {
590    pub(crate) syntax: SyntaxNode,
591}
592impl AlterOptionList {
593    #[inline]
594    pub fn alter_options(&self) -> AstChildren<AlterOption> {
595        support::children(&self.syntax)
596    }
597}
598
599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
600pub struct AlterPolicy {
601    pub(crate) syntax: SyntaxNode,
602}
603impl AlterPolicy {
604    #[inline]
605    pub fn name_ref(&self) -> Option<NameRef> {
606        support::child(&self.syntax)
607    }
608    #[inline]
609    pub fn alter_token(&self) -> Option<SyntaxToken> {
610        support::token(&self.syntax, SyntaxKind::ALTER_KW)
611    }
612    #[inline]
613    pub fn on_token(&self) -> Option<SyntaxToken> {
614        support::token(&self.syntax, SyntaxKind::ON_KW)
615    }
616    #[inline]
617    pub fn policy_token(&self) -> Option<SyntaxToken> {
618        support::token(&self.syntax, SyntaxKind::POLICY_KW)
619    }
620}
621
622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
623pub struct AlterProcedure {
624    pub(crate) syntax: SyntaxNode,
625}
626impl AlterProcedure {
627    #[inline]
628    pub fn alter_token(&self) -> Option<SyntaxToken> {
629        support::token(&self.syntax, SyntaxKind::ALTER_KW)
630    }
631    #[inline]
632    pub fn procedure_token(&self) -> Option<SyntaxToken> {
633        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
634    }
635}
636
637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
638pub struct AlterPublication {
639    pub(crate) syntax: SyntaxNode,
640}
641impl AlterPublication {
642    #[inline]
643    pub fn name_ref(&self) -> Option<NameRef> {
644        support::child(&self.syntax)
645    }
646    #[inline]
647    pub fn alter_token(&self) -> Option<SyntaxToken> {
648        support::token(&self.syntax, SyntaxKind::ALTER_KW)
649    }
650    #[inline]
651    pub fn publication_token(&self) -> Option<SyntaxToken> {
652        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
653    }
654}
655
656#[derive(Debug, Clone, PartialEq, Eq, Hash)]
657pub struct AlterRole {
658    pub(crate) syntax: SyntaxNode,
659}
660impl AlterRole {
661    #[inline]
662    pub fn alter_token(&self) -> Option<SyntaxToken> {
663        support::token(&self.syntax, SyntaxKind::ALTER_KW)
664    }
665    #[inline]
666    pub fn role_token(&self) -> Option<SyntaxToken> {
667        support::token(&self.syntax, SyntaxKind::ROLE_KW)
668    }
669}
670
671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
672pub struct AlterRoutine {
673    pub(crate) syntax: SyntaxNode,
674}
675impl AlterRoutine {
676    #[inline]
677    pub fn alter_token(&self) -> Option<SyntaxToken> {
678        support::token(&self.syntax, SyntaxKind::ALTER_KW)
679    }
680    #[inline]
681    pub fn routine_token(&self) -> Option<SyntaxToken> {
682        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
683    }
684}
685
686#[derive(Debug, Clone, PartialEq, Eq, Hash)]
687pub struct AlterRule {
688    pub(crate) syntax: SyntaxNode,
689}
690impl AlterRule {
691    #[inline]
692    pub fn name_ref(&self) -> Option<NameRef> {
693        support::child(&self.syntax)
694    }
695    #[inline]
696    pub fn alter_token(&self) -> Option<SyntaxToken> {
697        support::token(&self.syntax, SyntaxKind::ALTER_KW)
698    }
699    #[inline]
700    pub fn on_token(&self) -> Option<SyntaxToken> {
701        support::token(&self.syntax, SyntaxKind::ON_KW)
702    }
703    #[inline]
704    pub fn rule_token(&self) -> Option<SyntaxToken> {
705        support::token(&self.syntax, SyntaxKind::RULE_KW)
706    }
707}
708
709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
710pub struct AlterSchema {
711    pub(crate) syntax: SyntaxNode,
712}
713impl AlterSchema {
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 rename_token(&self) -> Option<SyntaxToken> {
724        support::token(&self.syntax, SyntaxKind::RENAME_KW)
725    }
726    #[inline]
727    pub fn schema_token(&self) -> Option<SyntaxToken> {
728        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
729    }
730    #[inline]
731    pub fn to_token(&self) -> Option<SyntaxToken> {
732        support::token(&self.syntax, SyntaxKind::TO_KW)
733    }
734}
735
736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
737pub struct AlterSequence {
738    pub(crate) syntax: SyntaxNode,
739}
740impl AlterSequence {
741    #[inline]
742    pub fn name_ref(&self) -> Option<NameRef> {
743        support::child(&self.syntax)
744    }
745    #[inline]
746    pub fn alter_token(&self) -> Option<SyntaxToken> {
747        support::token(&self.syntax, SyntaxKind::ALTER_KW)
748    }
749    #[inline]
750    pub fn sequence_token(&self) -> Option<SyntaxToken> {
751        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
752    }
753}
754
755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
756pub struct AlterServer {
757    pub(crate) syntax: SyntaxNode,
758}
759impl AlterServer {
760    #[inline]
761    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
762        support::child(&self.syntax)
763    }
764    #[inline]
765    pub fn name_ref(&self) -> Option<NameRef> {
766        support::child(&self.syntax)
767    }
768    #[inline]
769    pub fn alter_token(&self) -> Option<SyntaxToken> {
770        support::token(&self.syntax, SyntaxKind::ALTER_KW)
771    }
772    #[inline]
773    pub fn server_token(&self) -> Option<SyntaxToken> {
774        support::token(&self.syntax, SyntaxKind::SERVER_KW)
775    }
776}
777
778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
779pub struct AlterStatistics {
780    pub(crate) syntax: SyntaxNode,
781}
782impl AlterStatistics {
783    #[inline]
784    pub fn name_ref(&self) -> Option<NameRef> {
785        support::child(&self.syntax)
786    }
787    #[inline]
788    pub fn alter_token(&self) -> Option<SyntaxToken> {
789        support::token(&self.syntax, SyntaxKind::ALTER_KW)
790    }
791    #[inline]
792    pub fn statistics_token(&self) -> Option<SyntaxToken> {
793        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
794    }
795}
796
797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
798pub struct AlterSubscription {
799    pub(crate) syntax: SyntaxNode,
800}
801impl AlterSubscription {
802    #[inline]
803    pub fn name_ref(&self) -> Option<NameRef> {
804        support::child(&self.syntax)
805    }
806    #[inline]
807    pub fn alter_token(&self) -> Option<SyntaxToken> {
808        support::token(&self.syntax, SyntaxKind::ALTER_KW)
809    }
810    #[inline]
811    pub fn subscription_token(&self) -> Option<SyntaxToken> {
812        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
813    }
814}
815
816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
817pub struct AlterSystem {
818    pub(crate) syntax: SyntaxNode,
819}
820impl AlterSystem {
821    #[inline]
822    pub fn alter_token(&self) -> Option<SyntaxToken> {
823        support::token(&self.syntax, SyntaxKind::ALTER_KW)
824    }
825    #[inline]
826    pub fn set_token(&self) -> Option<SyntaxToken> {
827        support::token(&self.syntax, SyntaxKind::SET_KW)
828    }
829    #[inline]
830    pub fn system_token(&self) -> Option<SyntaxToken> {
831        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
832    }
833}
834
835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
836pub struct AlterTable {
837    pub(crate) syntax: SyntaxNode,
838}
839impl AlterTable {
840    #[inline]
841    pub fn actions(&self) -> AstChildren<AlterTableAction> {
842        support::children(&self.syntax)
843    }
844    #[inline]
845    pub fn relation_name(&self) -> Option<RelationName> {
846        support::child(&self.syntax)
847    }
848    #[inline]
849    pub fn alter_token(&self) -> Option<SyntaxToken> {
850        support::token(&self.syntax, SyntaxKind::ALTER_KW)
851    }
852    #[inline]
853    pub fn table_token(&self) -> Option<SyntaxToken> {
854        support::token(&self.syntax, SyntaxKind::TABLE_KW)
855    }
856}
857
858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
859pub struct AlterTablespace {
860    pub(crate) syntax: SyntaxNode,
861}
862impl AlterTablespace {
863    #[inline]
864    pub fn name_ref(&self) -> Option<NameRef> {
865        support::child(&self.syntax)
866    }
867    #[inline]
868    pub fn alter_token(&self) -> Option<SyntaxToken> {
869        support::token(&self.syntax, SyntaxKind::ALTER_KW)
870    }
871    #[inline]
872    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
873        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
874    }
875}
876
877#[derive(Debug, Clone, PartialEq, Eq, Hash)]
878pub struct AlterTextSearchConfiguration {
879    pub(crate) syntax: SyntaxNode,
880}
881impl AlterTextSearchConfiguration {
882    #[inline]
883    pub fn name_ref(&self) -> Option<NameRef> {
884        support::child(&self.syntax)
885    }
886    #[inline]
887    pub fn alter_token(&self) -> Option<SyntaxToken> {
888        support::token(&self.syntax, SyntaxKind::ALTER_KW)
889    }
890    #[inline]
891    pub fn configuration_token(&self) -> Option<SyntaxToken> {
892        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
893    }
894    #[inline]
895    pub fn search_token(&self) -> Option<SyntaxToken> {
896        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
897    }
898    #[inline]
899    pub fn text_token(&self) -> Option<SyntaxToken> {
900        support::token(&self.syntax, SyntaxKind::TEXT_KW)
901    }
902}
903
904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
905pub struct AlterTextSearchDictionary {
906    pub(crate) syntax: SyntaxNode,
907}
908impl AlterTextSearchDictionary {
909    #[inline]
910    pub fn name_ref(&self) -> Option<NameRef> {
911        support::child(&self.syntax)
912    }
913    #[inline]
914    pub fn alter_token(&self) -> Option<SyntaxToken> {
915        support::token(&self.syntax, SyntaxKind::ALTER_KW)
916    }
917    #[inline]
918    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
919        support::token(&self.syntax, SyntaxKind::DICTIONARY_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 text_token(&self) -> Option<SyntaxToken> {
927        support::token(&self.syntax, SyntaxKind::TEXT_KW)
928    }
929}
930
931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
932pub struct AlterTextSearchParser {
933    pub(crate) syntax: SyntaxNode,
934}
935impl AlterTextSearchParser {
936    #[inline]
937    pub fn name_ref(&self) -> Option<NameRef> {
938        support::child(&self.syntax)
939    }
940    #[inline]
941    pub fn alter_token(&self) -> Option<SyntaxToken> {
942        support::token(&self.syntax, SyntaxKind::ALTER_KW)
943    }
944    #[inline]
945    pub fn parser_token(&self) -> Option<SyntaxToken> {
946        support::token(&self.syntax, SyntaxKind::PARSER_KW)
947    }
948    #[inline]
949    pub fn search_token(&self) -> Option<SyntaxToken> {
950        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
951    }
952    #[inline]
953    pub fn text_token(&self) -> Option<SyntaxToken> {
954        support::token(&self.syntax, SyntaxKind::TEXT_KW)
955    }
956}
957
958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
959pub struct AlterTextSearchTemplate {
960    pub(crate) syntax: SyntaxNode,
961}
962impl AlterTextSearchTemplate {
963    #[inline]
964    pub fn name_ref(&self) -> Option<NameRef> {
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 search_token(&self) -> Option<SyntaxToken> {
973        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
974    }
975    #[inline]
976    pub fn template_token(&self) -> Option<SyntaxToken> {
977        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
978    }
979    #[inline]
980    pub fn text_token(&self) -> Option<SyntaxToken> {
981        support::token(&self.syntax, SyntaxKind::TEXT_KW)
982    }
983}
984
985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
986pub struct AlterTrigger {
987    pub(crate) syntax: SyntaxNode,
988}
989impl AlterTrigger {
990    #[inline]
991    pub fn name_ref(&self) -> Option<NameRef> {
992        support::child(&self.syntax)
993    }
994    #[inline]
995    pub fn alter_token(&self) -> Option<SyntaxToken> {
996        support::token(&self.syntax, SyntaxKind::ALTER_KW)
997    }
998    #[inline]
999    pub fn on_token(&self) -> Option<SyntaxToken> {
1000        support::token(&self.syntax, SyntaxKind::ON_KW)
1001    }
1002    #[inline]
1003    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1004        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1005    }
1006}
1007
1008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1009pub struct AlterType {
1010    pub(crate) syntax: SyntaxNode,
1011}
1012impl AlterType {
1013    #[inline]
1014    pub fn ty(&self) -> Option<Type> {
1015        support::child(&self.syntax)
1016    }
1017    #[inline]
1018    pub fn alter_token(&self) -> Option<SyntaxToken> {
1019        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1020    }
1021    #[inline]
1022    pub fn type_token(&self) -> Option<SyntaxToken> {
1023        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1024    }
1025}
1026
1027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1028pub struct AlterUser {
1029    pub(crate) syntax: SyntaxNode,
1030}
1031impl AlterUser {
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 user_token(&self) -> Option<SyntaxToken> {
1042        support::token(&self.syntax, SyntaxKind::USER_KW)
1043    }
1044}
1045
1046#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1047pub struct AlterUserMapping {
1048    pub(crate) syntax: SyntaxNode,
1049}
1050impl AlterUserMapping {
1051    #[inline]
1052    pub fn name_ref(&self) -> Option<NameRef> {
1053        support::child(&self.syntax)
1054    }
1055    #[inline]
1056    pub fn alter_token(&self) -> Option<SyntaxToken> {
1057        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1058    }
1059    #[inline]
1060    pub fn for_token(&self) -> Option<SyntaxToken> {
1061        support::token(&self.syntax, SyntaxKind::FOR_KW)
1062    }
1063    #[inline]
1064    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1065        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1066    }
1067    #[inline]
1068    pub fn server_token(&self) -> Option<SyntaxToken> {
1069        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1070    }
1071    #[inline]
1072    pub fn user_token(&self) -> Option<SyntaxToken> {
1073        support::token(&self.syntax, SyntaxKind::USER_KW)
1074    }
1075}
1076
1077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1078pub struct AlterView {
1079    pub(crate) syntax: SyntaxNode,
1080}
1081impl AlterView {
1082    #[inline]
1083    pub fn name_ref(&self) -> Option<NameRef> {
1084        support::child(&self.syntax)
1085    }
1086    #[inline]
1087    pub fn alter_token(&self) -> Option<SyntaxToken> {
1088        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1089    }
1090    #[inline]
1091    pub fn view_token(&self) -> Option<SyntaxToken> {
1092        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1093    }
1094}
1095
1096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1097pub struct Analyze {
1098    pub(crate) syntax: SyntaxNode,
1099}
1100impl Analyze {
1101    #[inline]
1102    pub fn option_item_list(&self) -> Option<OptionItemList> {
1103        support::child(&self.syntax)
1104    }
1105    #[inline]
1106    pub fn analyze_token(&self) -> Option<SyntaxToken> {
1107        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
1108    }
1109    #[inline]
1110    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1111        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1112    }
1113}
1114
1115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1116pub struct Arg {
1117    pub(crate) syntax: SyntaxNode,
1118}
1119impl Arg {
1120    #[inline]
1121    pub fn expr(&self) -> Option<Expr> {
1122        support::child(&self.syntax)
1123    }
1124}
1125
1126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1127pub struct ArgList {
1128    pub(crate) syntax: SyntaxNode,
1129}
1130impl ArgList {
1131    #[inline]
1132    pub fn args(&self) -> AstChildren<Expr> {
1133        support::children(&self.syntax)
1134    }
1135    #[inline]
1136    pub fn expr(&self) -> Option<Expr> {
1137        support::child(&self.syntax)
1138    }
1139    #[inline]
1140    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1141        support::token(&self.syntax, SyntaxKind::L_PAREN)
1142    }
1143    #[inline]
1144    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1145        support::token(&self.syntax, SyntaxKind::R_PAREN)
1146    }
1147    #[inline]
1148    pub fn star_token(&self) -> Option<SyntaxToken> {
1149        support::token(&self.syntax, SyntaxKind::STAR)
1150    }
1151    #[inline]
1152    pub fn all_token(&self) -> Option<SyntaxToken> {
1153        support::token(&self.syntax, SyntaxKind::ALL_KW)
1154    }
1155    #[inline]
1156    pub fn distinct_token(&self) -> Option<SyntaxToken> {
1157        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
1158    }
1159    #[inline]
1160    pub fn variadic_token(&self) -> Option<SyntaxToken> {
1161        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
1162    }
1163}
1164
1165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1166pub struct ArrayExpr {
1167    pub(crate) syntax: SyntaxNode,
1168}
1169impl ArrayExpr {
1170    #[inline]
1171    pub fn exprs(&self) -> AstChildren<Expr> {
1172        support::children(&self.syntax)
1173    }
1174    #[inline]
1175    pub fn select(&self) -> Option<Select> {
1176        support::child(&self.syntax)
1177    }
1178    #[inline]
1179    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1180        support::token(&self.syntax, SyntaxKind::L_PAREN)
1181    }
1182    #[inline]
1183    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1184        support::token(&self.syntax, SyntaxKind::R_PAREN)
1185    }
1186    #[inline]
1187    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1188        support::token(&self.syntax, SyntaxKind::L_BRACK)
1189    }
1190    #[inline]
1191    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1192        support::token(&self.syntax, SyntaxKind::R_BRACK)
1193    }
1194    #[inline]
1195    pub fn array_token(&self) -> Option<SyntaxToken> {
1196        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1197    }
1198}
1199
1200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1201pub struct ArrayType {
1202    pub(crate) syntax: SyntaxNode,
1203}
1204impl ArrayType {
1205    #[inline]
1206    pub fn expr(&self) -> Option<Expr> {
1207        support::child(&self.syntax)
1208    }
1209    #[inline]
1210    pub fn name_ref(&self) -> Option<NameRef> {
1211        support::child(&self.syntax)
1212    }
1213    #[inline]
1214    pub fn ty(&self) -> Option<Type> {
1215        support::child(&self.syntax)
1216    }
1217    #[inline]
1218    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
1219        support::token(&self.syntax, SyntaxKind::L_BRACK)
1220    }
1221    #[inline]
1222    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
1223        support::token(&self.syntax, SyntaxKind::R_BRACK)
1224    }
1225    #[inline]
1226    pub fn array_token(&self) -> Option<SyntaxToken> {
1227        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
1228    }
1229}
1230
1231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1232pub struct AsFuncOption {
1233    pub(crate) syntax: SyntaxNode,
1234}
1235impl AsFuncOption {
1236    #[inline]
1237    pub fn definition(&self) -> Option<Literal> {
1238        support::child(&self.syntax)
1239    }
1240    #[inline]
1241    pub fn link_symbol(&self) -> Option<Literal> {
1242        support::child(&self.syntax)
1243    }
1244    #[inline]
1245    pub fn obj_file(&self) -> Option<Literal> {
1246        support::child(&self.syntax)
1247    }
1248    #[inline]
1249    pub fn comma_token(&self) -> Option<SyntaxToken> {
1250        support::token(&self.syntax, SyntaxKind::COMMA)
1251    }
1252    #[inline]
1253    pub fn as_token(&self) -> Option<SyntaxToken> {
1254        support::token(&self.syntax, SyntaxKind::AS_KW)
1255    }
1256}
1257
1258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1259pub struct AsName {
1260    pub(crate) syntax: SyntaxNode,
1261}
1262impl AsName {
1263    #[inline]
1264    pub fn name(&self) -> Option<Name> {
1265        support::child(&self.syntax)
1266    }
1267    #[inline]
1268    pub fn as_token(&self) -> Option<SyntaxToken> {
1269        support::token(&self.syntax, SyntaxKind::AS_KW)
1270    }
1271}
1272
1273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1274pub struct AtTimeZone {
1275    pub(crate) syntax: SyntaxNode,
1276}
1277impl AtTimeZone {
1278    #[inline]
1279    pub fn at_token(&self) -> Option<SyntaxToken> {
1280        support::token(&self.syntax, SyntaxKind::AT_KW)
1281    }
1282    #[inline]
1283    pub fn time_token(&self) -> Option<SyntaxToken> {
1284        support::token(&self.syntax, SyntaxKind::TIME_KW)
1285    }
1286    #[inline]
1287    pub fn zone_token(&self) -> Option<SyntaxToken> {
1288        support::token(&self.syntax, SyntaxKind::ZONE_KW)
1289    }
1290}
1291
1292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1293pub struct AttachPartition {
1294    pub(crate) syntax: SyntaxNode,
1295}
1296impl AttachPartition {
1297    #[inline]
1298    pub fn partition_type(&self) -> Option<PartitionType> {
1299        support::child(&self.syntax)
1300    }
1301    #[inline]
1302    pub fn path(&self) -> Option<Path> {
1303        support::child(&self.syntax)
1304    }
1305    #[inline]
1306    pub fn attach_token(&self) -> Option<SyntaxToken> {
1307        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
1308    }
1309    #[inline]
1310    pub fn partition_token(&self) -> Option<SyntaxToken> {
1311        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
1312    }
1313}
1314
1315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1316pub struct AttributeList {
1317    pub(crate) syntax: SyntaxNode,
1318}
1319impl AttributeList {
1320    #[inline]
1321    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
1322        support::children(&self.syntax)
1323    }
1324    #[inline]
1325    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1326        support::token(&self.syntax, SyntaxKind::L_PAREN)
1327    }
1328    #[inline]
1329    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1330        support::token(&self.syntax, SyntaxKind::R_PAREN)
1331    }
1332}
1333
1334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1335pub struct AttributeOption {
1336    pub(crate) syntax: SyntaxNode,
1337}
1338impl AttributeOption {
1339    #[inline]
1340    pub fn eq_token(&self) -> Option<SyntaxToken> {
1341        support::token(&self.syntax, SyntaxKind::EQ)
1342    }
1343}
1344
1345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1346pub struct Begin {
1347    pub(crate) syntax: SyntaxNode,
1348}
1349impl Begin {
1350    #[inline]
1351    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
1352        support::child(&self.syntax)
1353    }
1354    #[inline]
1355    pub fn begin_token(&self) -> Option<SyntaxToken> {
1356        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
1357    }
1358    #[inline]
1359    pub fn start_token(&self) -> Option<SyntaxToken> {
1360        support::token(&self.syntax, SyntaxKind::START_KW)
1361    }
1362    #[inline]
1363    pub fn transaction_token(&self) -> Option<SyntaxToken> {
1364        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
1365    }
1366    #[inline]
1367    pub fn work_token(&self) -> Option<SyntaxToken> {
1368        support::token(&self.syntax, SyntaxKind::WORK_KW)
1369    }
1370}
1371
1372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1373pub struct BeginFuncOption {
1374    pub(crate) syntax: SyntaxNode,
1375}
1376impl BeginFuncOption {
1377    #[inline]
1378    pub fn atomic_token(&self) -> Option<SyntaxToken> {
1379        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
1380    }
1381    #[inline]
1382    pub fn begin_token(&self) -> Option<SyntaxToken> {
1383        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
1384    }
1385    #[inline]
1386    pub fn end_token(&self) -> Option<SyntaxToken> {
1387        support::token(&self.syntax, SyntaxKind::END_KW)
1388    }
1389}
1390
1391#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1392pub struct BetweenExpr {
1393    pub(crate) syntax: SyntaxNode,
1394}
1395impl BetweenExpr {
1396    #[inline]
1397    pub fn and_token(&self) -> Option<SyntaxToken> {
1398        support::token(&self.syntax, SyntaxKind::AND_KW)
1399    }
1400    #[inline]
1401    pub fn between_token(&self) -> Option<SyntaxToken> {
1402        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
1403    }
1404}
1405
1406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1407pub struct BinExpr {
1408    pub(crate) syntax: SyntaxNode,
1409}
1410impl BinExpr {
1411    #[inline]
1412    pub fn op(&self) -> Option<Op> {
1413        support::child(&self.syntax)
1414    }
1415}
1416
1417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1418pub struct BitType {
1419    pub(crate) syntax: SyntaxNode,
1420}
1421impl BitType {
1422    #[inline]
1423    pub fn arg_list(&self) -> Option<ArgList> {
1424        support::child(&self.syntax)
1425    }
1426    #[inline]
1427    pub fn bit_token(&self) -> Option<SyntaxToken> {
1428        support::token(&self.syntax, SyntaxKind::BIT_KW)
1429    }
1430    #[inline]
1431    pub fn varying_token(&self) -> Option<SyntaxToken> {
1432        support::token(&self.syntax, SyntaxKind::VARYING_KW)
1433    }
1434}
1435
1436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1437pub struct Call {
1438    pub(crate) syntax: SyntaxNode,
1439}
1440impl Call {
1441    #[inline]
1442    pub fn call_token(&self) -> Option<SyntaxToken> {
1443        support::token(&self.syntax, SyntaxKind::CALL_KW)
1444    }
1445}
1446
1447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1448pub struct CallExpr {
1449    pub(crate) syntax: SyntaxNode,
1450}
1451impl CallExpr {
1452    #[inline]
1453    pub fn arg_list(&self) -> Option<ArgList> {
1454        support::child(&self.syntax)
1455    }
1456    #[inline]
1457    pub fn expr(&self) -> Option<Expr> {
1458        support::child(&self.syntax)
1459    }
1460    #[inline]
1461    pub fn filter_clause(&self) -> Option<FilterClause> {
1462        support::child(&self.syntax)
1463    }
1464    #[inline]
1465    pub fn over_clause(&self) -> Option<OverClause> {
1466        support::child(&self.syntax)
1467    }
1468    #[inline]
1469    pub fn within_clause(&self) -> Option<WithinClause> {
1470        support::child(&self.syntax)
1471    }
1472}
1473
1474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1475pub struct Cascade {
1476    pub(crate) syntax: SyntaxNode,
1477}
1478impl Cascade {
1479    #[inline]
1480    pub fn cascade_token(&self) -> Option<SyntaxToken> {
1481        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
1482    }
1483}
1484
1485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1486pub struct CaseExpr {
1487    pub(crate) syntax: SyntaxNode,
1488}
1489impl CaseExpr {
1490    #[inline]
1491    pub fn else_clause(&self) -> Option<ElseClause> {
1492        support::child(&self.syntax)
1493    }
1494    #[inline]
1495    pub fn expr(&self) -> Option<Expr> {
1496        support::child(&self.syntax)
1497    }
1498    #[inline]
1499    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
1500        support::child(&self.syntax)
1501    }
1502    #[inline]
1503    pub fn case_token(&self) -> Option<SyntaxToken> {
1504        support::token(&self.syntax, SyntaxKind::CASE_KW)
1505    }
1506}
1507
1508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1509pub struct CastExpr {
1510    pub(crate) syntax: SyntaxNode,
1511}
1512impl CastExpr {
1513    #[inline]
1514    pub fn colon_colon(&self) -> Option<ColonColon> {
1515        support::child(&self.syntax)
1516    }
1517    #[inline]
1518    pub fn expr(&self) -> Option<Expr> {
1519        support::child(&self.syntax)
1520    }
1521    #[inline]
1522    pub fn ty(&self) -> Option<Type> {
1523        support::child(&self.syntax)
1524    }
1525    #[inline]
1526    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1527        support::token(&self.syntax, SyntaxKind::L_PAREN)
1528    }
1529    #[inline]
1530    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1531        support::token(&self.syntax, SyntaxKind::R_PAREN)
1532    }
1533    #[inline]
1534    pub fn as_token(&self) -> Option<SyntaxToken> {
1535        support::token(&self.syntax, SyntaxKind::AS_KW)
1536    }
1537    #[inline]
1538    pub fn cast_token(&self) -> Option<SyntaxToken> {
1539        support::token(&self.syntax, SyntaxKind::CAST_KW)
1540    }
1541}
1542
1543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1544pub struct CharType {
1545    pub(crate) syntax: SyntaxNode,
1546}
1547impl CharType {
1548    #[inline]
1549    pub fn arg_list(&self) -> Option<ArgList> {
1550        support::child(&self.syntax)
1551    }
1552    #[inline]
1553    pub fn char_token(&self) -> Option<SyntaxToken> {
1554        support::token(&self.syntax, SyntaxKind::CHAR_KW)
1555    }
1556    #[inline]
1557    pub fn character_token(&self) -> Option<SyntaxToken> {
1558        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
1559    }
1560    #[inline]
1561    pub fn nchar_token(&self) -> Option<SyntaxToken> {
1562        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
1563    }
1564    #[inline]
1565    pub fn varchar_token(&self) -> Option<SyntaxToken> {
1566        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
1567    }
1568    #[inline]
1569    pub fn varying_token(&self) -> Option<SyntaxToken> {
1570        support::token(&self.syntax, SyntaxKind::VARYING_KW)
1571    }
1572}
1573
1574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1575pub struct CheckConstraint {
1576    pub(crate) syntax: SyntaxNode,
1577}
1578impl CheckConstraint {
1579    #[inline]
1580    pub fn expr(&self) -> Option<Expr> {
1581        support::child(&self.syntax)
1582    }
1583    #[inline]
1584    pub fn name_ref(&self) -> Option<NameRef> {
1585        support::child(&self.syntax)
1586    }
1587    #[inline]
1588    pub fn no_inherit(&self) -> Option<NoInherit> {
1589        support::child(&self.syntax)
1590    }
1591    #[inline]
1592    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1593        support::token(&self.syntax, SyntaxKind::L_PAREN)
1594    }
1595    #[inline]
1596    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1597        support::token(&self.syntax, SyntaxKind::R_PAREN)
1598    }
1599    #[inline]
1600    pub fn check_token(&self) -> Option<SyntaxToken> {
1601        support::token(&self.syntax, SyntaxKind::CHECK_KW)
1602    }
1603    #[inline]
1604    pub fn constraint_token(&self) -> Option<SyntaxToken> {
1605        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
1606    }
1607}
1608
1609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1610pub struct Checkpoint {
1611    pub(crate) syntax: SyntaxNode,
1612}
1613impl Checkpoint {
1614    #[inline]
1615    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
1616        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
1617    }
1618}
1619
1620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1621pub struct Close {
1622    pub(crate) syntax: SyntaxNode,
1623}
1624impl Close {
1625    #[inline]
1626    pub fn close_token(&self) -> Option<SyntaxToken> {
1627        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
1628    }
1629}
1630
1631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1632pub struct Cluster {
1633    pub(crate) syntax: SyntaxNode,
1634}
1635impl Cluster {
1636    #[inline]
1637    pub fn cluster_token(&self) -> Option<SyntaxToken> {
1638        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
1639    }
1640    #[inline]
1641    pub fn verbose_token(&self) -> Option<SyntaxToken> {
1642        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
1643    }
1644}
1645
1646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1647pub struct ClusterOn {
1648    pub(crate) syntax: SyntaxNode,
1649}
1650impl ClusterOn {
1651    #[inline]
1652    pub fn cluster_token(&self) -> Option<SyntaxToken> {
1653        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
1654    }
1655    #[inline]
1656    pub fn on_token(&self) -> Option<SyntaxToken> {
1657        support::token(&self.syntax, SyntaxKind::ON_KW)
1658    }
1659}
1660
1661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1662pub struct Collate {
1663    pub(crate) syntax: SyntaxNode,
1664}
1665impl Collate {
1666    #[inline]
1667    pub fn path(&self) -> Option<Path> {
1668        support::child(&self.syntax)
1669    }
1670    #[inline]
1671    pub fn collate_token(&self) -> Option<SyntaxToken> {
1672        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
1673    }
1674}
1675
1676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1677pub struct ColonColon {
1678    pub(crate) syntax: SyntaxNode,
1679}
1680impl ColonColon {
1681    #[inline]
1682    pub fn colon_token(&self) -> Option<SyntaxToken> {
1683        support::token(&self.syntax, SyntaxKind::COLON)
1684    }
1685}
1686
1687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1688pub struct ColonEq {
1689    pub(crate) syntax: SyntaxNode,
1690}
1691impl ColonEq {
1692    #[inline]
1693    pub fn colon_token(&self) -> Option<SyntaxToken> {
1694        support::token(&self.syntax, SyntaxKind::COLON)
1695    }
1696    #[inline]
1697    pub fn eq_token(&self) -> Option<SyntaxToken> {
1698        support::token(&self.syntax, SyntaxKind::EQ)
1699    }
1700}
1701
1702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1703pub struct Column {
1704    pub(crate) syntax: SyntaxNode,
1705}
1706impl Column {
1707    #[inline]
1708    pub fn collate(&self) -> Option<Collate> {
1709        support::child(&self.syntax)
1710    }
1711    #[inline]
1712    pub fn compression_method(&self) -> Option<CompressionMethod> {
1713        support::child(&self.syntax)
1714    }
1715    #[inline]
1716    pub fn constraint(&self) -> Option<ColumnConstraint> {
1717        support::child(&self.syntax)
1718    }
1719    #[inline]
1720    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
1721        support::child(&self.syntax)
1722    }
1723    #[inline]
1724    pub fn enforced(&self) -> Option<Enforced> {
1725        support::child(&self.syntax)
1726    }
1727    #[inline]
1728    pub fn index_expr(&self) -> Option<IndexExpr> {
1729        support::child(&self.syntax)
1730    }
1731    #[inline]
1732    pub fn initially_deferred_constraint_option(
1733        &self,
1734    ) -> Option<InitiallyDeferredConstraintOption> {
1735        support::child(&self.syntax)
1736    }
1737    #[inline]
1738    pub fn initially_immediate_constraint_option(
1739        &self,
1740    ) -> Option<InitiallyImmediateConstraintOption> {
1741        support::child(&self.syntax)
1742    }
1743    #[inline]
1744    pub fn name(&self) -> Option<Name> {
1745        support::child(&self.syntax)
1746    }
1747    #[inline]
1748    pub fn name_ref(&self) -> Option<NameRef> {
1749        support::child(&self.syntax)
1750    }
1751    #[inline]
1752    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
1753        support::child(&self.syntax)
1754    }
1755    #[inline]
1756    pub fn not_enforced(&self) -> Option<NotEnforced> {
1757        support::child(&self.syntax)
1758    }
1759    #[inline]
1760    pub fn storage(&self) -> Option<Storage> {
1761        support::child(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn ty(&self) -> Option<Type> {
1765        support::child(&self.syntax)
1766    }
1767    #[inline]
1768    pub fn with_options(&self) -> Option<WithOptions> {
1769        support::child(&self.syntax)
1770    }
1771    #[inline]
1772    pub fn period_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
1774    }
1775}
1776
1777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1778pub struct ColumnList {
1779    pub(crate) syntax: SyntaxNode,
1780}
1781impl ColumnList {
1782    #[inline]
1783    pub fn columns(&self) -> AstChildren<Column> {
1784        support::children(&self.syntax)
1785    }
1786    #[inline]
1787    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1788        support::token(&self.syntax, SyntaxKind::L_PAREN)
1789    }
1790    #[inline]
1791    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1792        support::token(&self.syntax, SyntaxKind::R_PAREN)
1793    }
1794}
1795
1796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1797pub struct CommentOn {
1798    pub(crate) syntax: SyntaxNode,
1799}
1800impl CommentOn {
1801    #[inline]
1802    pub fn comment_token(&self) -> Option<SyntaxToken> {
1803        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
1804    }
1805    #[inline]
1806    pub fn on_token(&self) -> Option<SyntaxToken> {
1807        support::token(&self.syntax, SyntaxKind::ON_KW)
1808    }
1809}
1810
1811#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1812pub struct Commit {
1813    pub(crate) syntax: SyntaxNode,
1814}
1815impl Commit {
1816    #[inline]
1817    pub fn literal(&self) -> Option<Literal> {
1818        support::child(&self.syntax)
1819    }
1820    #[inline]
1821    pub fn and_token(&self) -> Option<SyntaxToken> {
1822        support::token(&self.syntax, SyntaxKind::AND_KW)
1823    }
1824    #[inline]
1825    pub fn chain_token(&self) -> Option<SyntaxToken> {
1826        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
1827    }
1828    #[inline]
1829    pub fn commit_token(&self) -> Option<SyntaxToken> {
1830        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
1831    }
1832    #[inline]
1833    pub fn no_token(&self) -> Option<SyntaxToken> {
1834        support::token(&self.syntax, SyntaxKind::NO_KW)
1835    }
1836    #[inline]
1837    pub fn prepared_token(&self) -> Option<SyntaxToken> {
1838        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
1839    }
1840    #[inline]
1841    pub fn transaction_token(&self) -> Option<SyntaxToken> {
1842        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
1843    }
1844    #[inline]
1845    pub fn work_token(&self) -> Option<SyntaxToken> {
1846        support::token(&self.syntax, SyntaxKind::WORK_KW)
1847    }
1848}
1849
1850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1851pub struct CompoundSelect {
1852    pub(crate) syntax: SyntaxNode,
1853}
1854impl CompoundSelect {
1855    #[inline]
1856    pub fn except_token(&self) -> Option<SyntaxToken> {
1857        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
1858    }
1859    #[inline]
1860    pub fn intersect_token(&self) -> Option<SyntaxToken> {
1861        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
1862    }
1863    #[inline]
1864    pub fn union_token(&self) -> Option<SyntaxToken> {
1865        support::token(&self.syntax, SyntaxKind::UNION_KW)
1866    }
1867}
1868
1869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1870pub struct CompressionMethod {
1871    pub(crate) syntax: SyntaxNode,
1872}
1873impl CompressionMethod {
1874    #[inline]
1875    pub fn compression_token(&self) -> Option<SyntaxToken> {
1876        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
1877    }
1878    #[inline]
1879    pub fn default_token(&self) -> Option<SyntaxToken> {
1880        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
1881    }
1882    #[inline]
1883    pub fn ident_token(&self) -> Option<SyntaxToken> {
1884        support::token(&self.syntax, SyntaxKind::IDENT)
1885    }
1886}
1887
1888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1889pub struct ConflictDoNothing {
1890    pub(crate) syntax: SyntaxNode,
1891}
1892impl ConflictDoNothing {
1893    #[inline]
1894    pub fn do_token(&self) -> Option<SyntaxToken> {
1895        support::token(&self.syntax, SyntaxKind::DO_KW)
1896    }
1897    #[inline]
1898    pub fn nothing_token(&self) -> Option<SyntaxToken> {
1899        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
1900    }
1901}
1902
1903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1904pub struct ConflictDoUpdateSet {
1905    pub(crate) syntax: SyntaxNode,
1906}
1907impl ConflictDoUpdateSet {
1908    #[inline]
1909    pub fn set_clause(&self) -> Option<SetClause> {
1910        support::child(&self.syntax)
1911    }
1912    #[inline]
1913    pub fn where_clause(&self) -> Option<WhereClause> {
1914        support::child(&self.syntax)
1915    }
1916    #[inline]
1917    pub fn do_token(&self) -> Option<SyntaxToken> {
1918        support::token(&self.syntax, SyntaxKind::DO_KW)
1919    }
1920    #[inline]
1921    pub fn update_token(&self) -> Option<SyntaxToken> {
1922        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
1923    }
1924}
1925
1926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1927pub struct ConflictIndexItem {
1928    pub(crate) syntax: SyntaxNode,
1929}
1930impl ConflictIndexItem {
1931    #[inline]
1932    pub fn collate(&self) -> Option<Collate> {
1933        support::child(&self.syntax)
1934    }
1935    #[inline]
1936    pub fn expr(&self) -> Option<Expr> {
1937        support::child(&self.syntax)
1938    }
1939    #[inline]
1940    pub fn ident_token(&self) -> Option<SyntaxToken> {
1941        support::token(&self.syntax, SyntaxKind::IDENT)
1942    }
1943}
1944
1945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1946pub struct ConflictIndexItemList {
1947    pub(crate) syntax: SyntaxNode,
1948}
1949impl ConflictIndexItemList {
1950    #[inline]
1951    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
1952        support::children(&self.syntax)
1953    }
1954    #[inline]
1955    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
1956        support::token(&self.syntax, SyntaxKind::L_PAREN)
1957    }
1958    #[inline]
1959    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
1960        support::token(&self.syntax, SyntaxKind::R_PAREN)
1961    }
1962}
1963
1964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1965pub struct ConflictOnConstraint {
1966    pub(crate) syntax: SyntaxNode,
1967}
1968impl ConflictOnConstraint {
1969    #[inline]
1970    pub fn name_ref(&self) -> Option<NameRef> {
1971        support::child(&self.syntax)
1972    }
1973    #[inline]
1974    pub fn constraint_token(&self) -> Option<SyntaxToken> {
1975        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
1976    }
1977    #[inline]
1978    pub fn on_token(&self) -> Option<SyntaxToken> {
1979        support::token(&self.syntax, SyntaxKind::ON_KW)
1980    }
1981}
1982
1983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1984pub struct ConflictOnIndex {
1985    pub(crate) syntax: SyntaxNode,
1986}
1987impl ConflictOnIndex {
1988    #[inline]
1989    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
1990        support::child(&self.syntax)
1991    }
1992    #[inline]
1993    pub fn where_clause(&self) -> Option<WhereClause> {
1994        support::child(&self.syntax)
1995    }
1996}
1997
1998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1999pub struct ConstraintExclusion {
2000    pub(crate) syntax: SyntaxNode,
2001}
2002impl ConstraintExclusion {
2003    #[inline]
2004    pub fn with_token(&self) -> Option<SyntaxToken> {
2005        support::token(&self.syntax, SyntaxKind::WITH_KW)
2006    }
2007}
2008
2009#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2010pub struct ConstraintExclusionList {
2011    pub(crate) syntax: SyntaxNode,
2012}
2013impl ConstraintExclusionList {
2014    #[inline]
2015    pub fn exclude_token(&self) -> Option<SyntaxToken> {
2016        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
2017    }
2018}
2019
2020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2021pub struct ConstraintIncludeClause {
2022    pub(crate) syntax: SyntaxNode,
2023}
2024impl ConstraintIncludeClause {
2025    #[inline]
2026    pub fn include_token(&self) -> Option<SyntaxToken> {
2027        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
2028    }
2029}
2030
2031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2032pub struct ConstraintIndexMethod {
2033    pub(crate) syntax: SyntaxNode,
2034}
2035impl ConstraintIndexMethod {
2036    #[inline]
2037    pub fn using_token(&self) -> Option<SyntaxToken> {
2038        support::token(&self.syntax, SyntaxKind::USING_KW)
2039    }
2040}
2041
2042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2043pub struct ConstraintIndexTablespace {
2044    pub(crate) syntax: SyntaxNode,
2045}
2046impl ConstraintIndexTablespace {
2047    #[inline]
2048    pub fn name_ref(&self) -> Option<NameRef> {
2049        support::child(&self.syntax)
2050    }
2051    #[inline]
2052    pub fn index_token(&self) -> Option<SyntaxToken> {
2053        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2054    }
2055    #[inline]
2056    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2057        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2058    }
2059    #[inline]
2060    pub fn using_token(&self) -> Option<SyntaxToken> {
2061        support::token(&self.syntax, SyntaxKind::USING_KW)
2062    }
2063}
2064
2065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2066pub struct ConstraintWhereClause {
2067    pub(crate) syntax: SyntaxNode,
2068}
2069impl ConstraintWhereClause {
2070    #[inline]
2071    pub fn where_token(&self) -> Option<SyntaxToken> {
2072        support::token(&self.syntax, SyntaxKind::WHERE_KW)
2073    }
2074}
2075
2076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2077pub struct Copy {
2078    pub(crate) syntax: SyntaxNode,
2079}
2080impl Copy {
2081    #[inline]
2082    pub fn copy_token(&self) -> Option<SyntaxToken> {
2083        support::token(&self.syntax, SyntaxKind::COPY_KW)
2084    }
2085}
2086
2087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2088pub struct CostFuncOption {
2089    pub(crate) syntax: SyntaxNode,
2090}
2091impl CostFuncOption {
2092    #[inline]
2093    pub fn cost_token(&self) -> Option<SyntaxToken> {
2094        support::token(&self.syntax, SyntaxKind::COST_KW)
2095    }
2096}
2097
2098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2099pub struct CreateAccessMethod {
2100    pub(crate) syntax: SyntaxNode,
2101}
2102impl CreateAccessMethod {
2103    #[inline]
2104    pub fn name_ref(&self) -> Option<NameRef> {
2105        support::child(&self.syntax)
2106    }
2107    #[inline]
2108    pub fn access_token(&self) -> Option<SyntaxToken> {
2109        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
2110    }
2111    #[inline]
2112    pub fn create_token(&self) -> Option<SyntaxToken> {
2113        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2114    }
2115    #[inline]
2116    pub fn method_token(&self) -> Option<SyntaxToken> {
2117        support::token(&self.syntax, SyntaxKind::METHOD_KW)
2118    }
2119    #[inline]
2120    pub fn type_token(&self) -> Option<SyntaxToken> {
2121        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2122    }
2123}
2124
2125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2126pub struct CreateAggregate {
2127    pub(crate) syntax: SyntaxNode,
2128}
2129impl CreateAggregate {
2130    #[inline]
2131    pub fn or_replace(&self) -> Option<OrReplace> {
2132        support::child(&self.syntax)
2133    }
2134    #[inline]
2135    pub fn param_list(&self) -> Option<ParamList> {
2136        support::child(&self.syntax)
2137    }
2138    #[inline]
2139    pub fn path(&self) -> Option<Path> {
2140        support::child(&self.syntax)
2141    }
2142    #[inline]
2143    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
2144        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
2145    }
2146    #[inline]
2147    pub fn create_token(&self) -> Option<SyntaxToken> {
2148        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2149    }
2150}
2151
2152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2153pub struct CreateCast {
2154    pub(crate) syntax: SyntaxNode,
2155}
2156impl CreateCast {
2157    #[inline]
2158    pub fn ty(&self) -> Option<Type> {
2159        support::child(&self.syntax)
2160    }
2161    #[inline]
2162    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2163        support::token(&self.syntax, SyntaxKind::L_PAREN)
2164    }
2165    #[inline]
2166    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2167        support::token(&self.syntax, SyntaxKind::R_PAREN)
2168    }
2169    #[inline]
2170    pub fn as_token(&self) -> Option<SyntaxToken> {
2171        support::token(&self.syntax, SyntaxKind::AS_KW)
2172    }
2173    #[inline]
2174    pub fn cast_token(&self) -> Option<SyntaxToken> {
2175        support::token(&self.syntax, SyntaxKind::CAST_KW)
2176    }
2177    #[inline]
2178    pub fn create_token(&self) -> Option<SyntaxToken> {
2179        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2180    }
2181}
2182
2183#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2184pub struct CreateCollation {
2185    pub(crate) syntax: SyntaxNode,
2186}
2187impl CreateCollation {
2188    #[inline]
2189    pub fn name_ref(&self) -> Option<NameRef> {
2190        support::child(&self.syntax)
2191    }
2192    #[inline]
2193    pub fn collation_token(&self) -> Option<SyntaxToken> {
2194        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2195    }
2196    #[inline]
2197    pub fn create_token(&self) -> Option<SyntaxToken> {
2198        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2199    }
2200}
2201
2202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2203pub struct CreateConversion {
2204    pub(crate) syntax: SyntaxNode,
2205}
2206impl CreateConversion {
2207    #[inline]
2208    pub fn name_ref(&self) -> Option<NameRef> {
2209        support::child(&self.syntax)
2210    }
2211    #[inline]
2212    pub fn conversion_token(&self) -> Option<SyntaxToken> {
2213        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
2214    }
2215    #[inline]
2216    pub fn create_token(&self) -> Option<SyntaxToken> {
2217        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2218    }
2219    #[inline]
2220    pub fn for_token(&self) -> Option<SyntaxToken> {
2221        support::token(&self.syntax, SyntaxKind::FOR_KW)
2222    }
2223}
2224
2225#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2226pub struct CreateDatabase {
2227    pub(crate) syntax: SyntaxNode,
2228}
2229impl CreateDatabase {
2230    #[inline]
2231    pub fn name_ref(&self) -> Option<NameRef> {
2232        support::child(&self.syntax)
2233    }
2234    #[inline]
2235    pub fn create_token(&self) -> Option<SyntaxToken> {
2236        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2237    }
2238    #[inline]
2239    pub fn database_token(&self) -> Option<SyntaxToken> {
2240        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
2241    }
2242}
2243
2244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2245pub struct CreateDomain {
2246    pub(crate) syntax: SyntaxNode,
2247}
2248impl CreateDomain {
2249    #[inline]
2250    pub fn collate(&self) -> Option<Collate> {
2251        support::child(&self.syntax)
2252    }
2253    #[inline]
2254    pub fn constraints(&self) -> AstChildren<Constraint> {
2255        support::children(&self.syntax)
2256    }
2257    #[inline]
2258    pub fn name_ref(&self) -> Option<NameRef> {
2259        support::child(&self.syntax)
2260    }
2261    #[inline]
2262    pub fn ty(&self) -> Option<Type> {
2263        support::child(&self.syntax)
2264    }
2265    #[inline]
2266    pub fn as_token(&self) -> Option<SyntaxToken> {
2267        support::token(&self.syntax, SyntaxKind::AS_KW)
2268    }
2269    #[inline]
2270    pub fn create_token(&self) -> Option<SyntaxToken> {
2271        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2272    }
2273    #[inline]
2274    pub fn domain_token(&self) -> Option<SyntaxToken> {
2275        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
2276    }
2277}
2278
2279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2280pub struct CreateEventTrigger {
2281    pub(crate) syntax: SyntaxNode,
2282}
2283impl CreateEventTrigger {
2284    #[inline]
2285    pub fn name_ref(&self) -> Option<NameRef> {
2286        support::child(&self.syntax)
2287    }
2288    #[inline]
2289    pub fn create_token(&self) -> Option<SyntaxToken> {
2290        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2291    }
2292    #[inline]
2293    pub fn event_token(&self) -> Option<SyntaxToken> {
2294        support::token(&self.syntax, SyntaxKind::EVENT_KW)
2295    }
2296    #[inline]
2297    pub fn on_token(&self) -> Option<SyntaxToken> {
2298        support::token(&self.syntax, SyntaxKind::ON_KW)
2299    }
2300    #[inline]
2301    pub fn trigger_token(&self) -> Option<SyntaxToken> {
2302        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
2303    }
2304}
2305
2306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2307pub struct CreateExtension {
2308    pub(crate) syntax: SyntaxNode,
2309}
2310impl CreateExtension {
2311    #[inline]
2312    pub fn create_token(&self) -> Option<SyntaxToken> {
2313        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2314    }
2315    #[inline]
2316    pub fn extension_token(&self) -> Option<SyntaxToken> {
2317        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
2318    }
2319}
2320
2321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2322pub struct CreateForeignDataWrapper {
2323    pub(crate) syntax: SyntaxNode,
2324}
2325impl CreateForeignDataWrapper {
2326    #[inline]
2327    pub fn name_ref(&self) -> Option<NameRef> {
2328        support::child(&self.syntax)
2329    }
2330    #[inline]
2331    pub fn create_token(&self) -> Option<SyntaxToken> {
2332        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2333    }
2334    #[inline]
2335    pub fn data_token(&self) -> Option<SyntaxToken> {
2336        support::token(&self.syntax, SyntaxKind::DATA_KW)
2337    }
2338    #[inline]
2339    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2340        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2341    }
2342    #[inline]
2343    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
2344        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
2345    }
2346}
2347
2348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2349pub struct CreateForeignTable {
2350    pub(crate) syntax: SyntaxNode,
2351}
2352impl CreateForeignTable {
2353    #[inline]
2354    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2355        support::child(&self.syntax)
2356    }
2357    #[inline]
2358    pub fn create_token(&self) -> Option<SyntaxToken> {
2359        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2360    }
2361    #[inline]
2362    pub fn foreign_token(&self) -> Option<SyntaxToken> {
2363        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
2364    }
2365    #[inline]
2366    pub fn table_token(&self) -> Option<SyntaxToken> {
2367        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2368    }
2369}
2370
2371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2372pub struct CreateFunction {
2373    pub(crate) syntax: SyntaxNode,
2374}
2375impl CreateFunction {
2376    #[inline]
2377    pub fn option_list(&self) -> Option<FuncOptionList> {
2378        support::child(&self.syntax)
2379    }
2380    #[inline]
2381    pub fn or_replace(&self) -> Option<OrReplace> {
2382        support::child(&self.syntax)
2383    }
2384    #[inline]
2385    pub fn param_list(&self) -> Option<ParamList> {
2386        support::child(&self.syntax)
2387    }
2388    #[inline]
2389    pub fn path(&self) -> Option<Path> {
2390        support::child(&self.syntax)
2391    }
2392    #[inline]
2393    pub fn ret_type(&self) -> Option<RetType> {
2394        support::child(&self.syntax)
2395    }
2396    #[inline]
2397    pub fn create_token(&self) -> Option<SyntaxToken> {
2398        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2399    }
2400    #[inline]
2401    pub fn function_token(&self) -> Option<SyntaxToken> {
2402        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
2403    }
2404}
2405
2406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2407pub struct CreateGroup {
2408    pub(crate) syntax: SyntaxNode,
2409}
2410impl CreateGroup {
2411    #[inline]
2412    pub fn name_ref(&self) -> Option<NameRef> {
2413        support::child(&self.syntax)
2414    }
2415    #[inline]
2416    pub fn role_option_list(&self) -> Option<RoleOptionList> {
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 group_token(&self) -> Option<SyntaxToken> {
2425        support::token(&self.syntax, SyntaxKind::GROUP_KW)
2426    }
2427}
2428
2429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2430pub struct CreateIndex {
2431    pub(crate) syntax: SyntaxNode,
2432}
2433impl CreateIndex {
2434    #[inline]
2435    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
2436        support::child(&self.syntax)
2437    }
2438    #[inline]
2439    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2440        support::child(&self.syntax)
2441    }
2442    #[inline]
2443    pub fn name(&self) -> Option<Name> {
2444        support::child(&self.syntax)
2445    }
2446    #[inline]
2447    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
2448        support::child(&self.syntax)
2449    }
2450    #[inline]
2451    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
2452        support::child(&self.syntax)
2453    }
2454    #[inline]
2455    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
2456        support::child(&self.syntax)
2457    }
2458    #[inline]
2459    pub fn relation_name(&self) -> Option<RelationName> {
2460        support::child(&self.syntax)
2461    }
2462    #[inline]
2463    pub fn tablespace(&self) -> Option<Tablespace> {
2464        support::child(&self.syntax)
2465    }
2466    #[inline]
2467    pub fn using_method(&self) -> Option<UsingMethod> {
2468        support::child(&self.syntax)
2469    }
2470    #[inline]
2471    pub fn where_clause(&self) -> Option<WhereClause> {
2472        support::child(&self.syntax)
2473    }
2474    #[inline]
2475    pub fn with_params(&self) -> Option<WithParams> {
2476        support::child(&self.syntax)
2477    }
2478    #[inline]
2479    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
2480        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
2481    }
2482    #[inline]
2483    pub fn create_token(&self) -> Option<SyntaxToken> {
2484        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2485    }
2486    #[inline]
2487    pub fn index_token(&self) -> Option<SyntaxToken> {
2488        support::token(&self.syntax, SyntaxKind::INDEX_KW)
2489    }
2490    #[inline]
2491    pub fn on_token(&self) -> Option<SyntaxToken> {
2492        support::token(&self.syntax, SyntaxKind::ON_KW)
2493    }
2494    #[inline]
2495    pub fn unique_token(&self) -> Option<SyntaxToken> {
2496        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
2497    }
2498}
2499
2500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2501pub struct CreateLanguage {
2502    pub(crate) syntax: SyntaxNode,
2503}
2504impl CreateLanguage {
2505    #[inline]
2506    pub fn name_ref(&self) -> Option<NameRef> {
2507        support::child(&self.syntax)
2508    }
2509    #[inline]
2510    pub fn create_token(&self) -> Option<SyntaxToken> {
2511        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2512    }
2513    #[inline]
2514    pub fn language_token(&self) -> Option<SyntaxToken> {
2515        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
2516    }
2517}
2518
2519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2520pub struct CreateMaterializedView {
2521    pub(crate) syntax: SyntaxNode,
2522}
2523impl CreateMaterializedView {
2524    #[inline]
2525    pub fn create_token(&self) -> Option<SyntaxToken> {
2526        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2527    }
2528}
2529
2530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2531pub struct CreateOperator {
2532    pub(crate) syntax: SyntaxNode,
2533}
2534impl CreateOperator {
2535    #[inline]
2536    pub fn create_token(&self) -> Option<SyntaxToken> {
2537        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2538    }
2539    #[inline]
2540    pub fn operator_token(&self) -> Option<SyntaxToken> {
2541        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2542    }
2543}
2544
2545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2546pub struct CreateOperatorClass {
2547    pub(crate) syntax: SyntaxNode,
2548}
2549impl CreateOperatorClass {
2550    #[inline]
2551    pub fn name_ref(&self) -> Option<NameRef> {
2552        support::child(&self.syntax)
2553    }
2554    #[inline]
2555    pub fn ty(&self) -> Option<Type> {
2556        support::child(&self.syntax)
2557    }
2558    #[inline]
2559    pub fn class_token(&self) -> Option<SyntaxToken> {
2560        support::token(&self.syntax, SyntaxKind::CLASS_KW)
2561    }
2562    #[inline]
2563    pub fn create_token(&self) -> Option<SyntaxToken> {
2564        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2565    }
2566    #[inline]
2567    pub fn default_token(&self) -> Option<SyntaxToken> {
2568        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
2569    }
2570    #[inline]
2571    pub fn for_token(&self) -> Option<SyntaxToken> {
2572        support::token(&self.syntax, SyntaxKind::FOR_KW)
2573    }
2574    #[inline]
2575    pub fn operator_token(&self) -> Option<SyntaxToken> {
2576        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2577    }
2578    #[inline]
2579    pub fn type_token(&self) -> Option<SyntaxToken> {
2580        support::token(&self.syntax, SyntaxKind::TYPE_KW)
2581    }
2582    #[inline]
2583    pub fn using_token(&self) -> Option<SyntaxToken> {
2584        support::token(&self.syntax, SyntaxKind::USING_KW)
2585    }
2586}
2587
2588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2589pub struct CreateOperatorFamily {
2590    pub(crate) syntax: SyntaxNode,
2591}
2592impl CreateOperatorFamily {
2593    #[inline]
2594    pub fn name_ref(&self) -> Option<NameRef> {
2595        support::child(&self.syntax)
2596    }
2597    #[inline]
2598    pub fn create_token(&self) -> Option<SyntaxToken> {
2599        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2600    }
2601    #[inline]
2602    pub fn family_token(&self) -> Option<SyntaxToken> {
2603        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
2604    }
2605    #[inline]
2606    pub fn operator_token(&self) -> Option<SyntaxToken> {
2607        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2608    }
2609    #[inline]
2610    pub fn using_token(&self) -> Option<SyntaxToken> {
2611        support::token(&self.syntax, SyntaxKind::USING_KW)
2612    }
2613}
2614
2615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2616pub struct CreatePolicy {
2617    pub(crate) syntax: SyntaxNode,
2618}
2619impl CreatePolicy {
2620    #[inline]
2621    pub fn name_ref(&self) -> Option<NameRef> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn create_token(&self) -> Option<SyntaxToken> {
2626        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2627    }
2628    #[inline]
2629    pub fn on_token(&self) -> Option<SyntaxToken> {
2630        support::token(&self.syntax, SyntaxKind::ON_KW)
2631    }
2632    #[inline]
2633    pub fn policy_token(&self) -> Option<SyntaxToken> {
2634        support::token(&self.syntax, SyntaxKind::POLICY_KW)
2635    }
2636}
2637
2638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2639pub struct CreateProcedure {
2640    pub(crate) syntax: SyntaxNode,
2641}
2642impl CreateProcedure {
2643    #[inline]
2644    pub fn create_token(&self) -> Option<SyntaxToken> {
2645        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2646    }
2647    #[inline]
2648    pub fn procedure_token(&self) -> Option<SyntaxToken> {
2649        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
2650    }
2651}
2652
2653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2654pub struct CreatePublication {
2655    pub(crate) syntax: SyntaxNode,
2656}
2657impl CreatePublication {
2658    #[inline]
2659    pub fn name_ref(&self) -> Option<NameRef> {
2660        support::child(&self.syntax)
2661    }
2662    #[inline]
2663    pub fn create_token(&self) -> Option<SyntaxToken> {
2664        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2665    }
2666    #[inline]
2667    pub fn publication_token(&self) -> Option<SyntaxToken> {
2668        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
2669    }
2670}
2671
2672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2673pub struct CreateRole {
2674    pub(crate) syntax: SyntaxNode,
2675}
2676impl CreateRole {
2677    #[inline]
2678    pub fn name_ref(&self) -> Option<NameRef> {
2679        support::child(&self.syntax)
2680    }
2681    #[inline]
2682    pub fn create_token(&self) -> Option<SyntaxToken> {
2683        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2684    }
2685    #[inline]
2686    pub fn role_token(&self) -> Option<SyntaxToken> {
2687        support::token(&self.syntax, SyntaxKind::ROLE_KW)
2688    }
2689}
2690
2691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2692pub struct CreateRule {
2693    pub(crate) syntax: SyntaxNode,
2694}
2695impl CreateRule {
2696    #[inline]
2697    pub fn name_ref(&self) -> Option<NameRef> {
2698        support::child(&self.syntax)
2699    }
2700    #[inline]
2701    pub fn as_token(&self) -> Option<SyntaxToken> {
2702        support::token(&self.syntax, SyntaxKind::AS_KW)
2703    }
2704    #[inline]
2705    pub fn create_token(&self) -> Option<SyntaxToken> {
2706        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2707    }
2708    #[inline]
2709    pub fn on_token(&self) -> Option<SyntaxToken> {
2710        support::token(&self.syntax, SyntaxKind::ON_KW)
2711    }
2712    #[inline]
2713    pub fn rule_token(&self) -> Option<SyntaxToken> {
2714        support::token(&self.syntax, SyntaxKind::RULE_KW)
2715    }
2716}
2717
2718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2719pub struct CreateSchema {
2720    pub(crate) syntax: SyntaxNode,
2721}
2722impl CreateSchema {
2723    #[inline]
2724    pub fn create_token(&self) -> Option<SyntaxToken> {
2725        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2726    }
2727    #[inline]
2728    pub fn schema_token(&self) -> Option<SyntaxToken> {
2729        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
2730    }
2731}
2732
2733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2734pub struct CreateSequence {
2735    pub(crate) syntax: SyntaxNode,
2736}
2737impl CreateSequence {
2738    #[inline]
2739    pub fn name_ref(&self) -> Option<NameRef> {
2740        support::child(&self.syntax)
2741    }
2742    #[inline]
2743    pub fn create_token(&self) -> Option<SyntaxToken> {
2744        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2745    }
2746    #[inline]
2747    pub fn sequence_token(&self) -> Option<SyntaxToken> {
2748        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
2749    }
2750}
2751
2752#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2753pub struct CreateServer {
2754    pub(crate) syntax: SyntaxNode,
2755}
2756impl CreateServer {
2757    #[inline]
2758    pub fn name_ref(&self) -> Option<NameRef> {
2759        support::child(&self.syntax)
2760    }
2761    #[inline]
2762    pub fn create_token(&self) -> Option<SyntaxToken> {
2763        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2764    }
2765    #[inline]
2766    pub fn server_token(&self) -> Option<SyntaxToken> {
2767        support::token(&self.syntax, SyntaxKind::SERVER_KW)
2768    }
2769}
2770
2771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2772pub struct CreateStatistics {
2773    pub(crate) syntax: SyntaxNode,
2774}
2775impl CreateStatistics {
2776    #[inline]
2777    pub fn name_ref(&self) -> Option<NameRef> {
2778        support::child(&self.syntax)
2779    }
2780    #[inline]
2781    pub fn create_token(&self) -> Option<SyntaxToken> {
2782        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2783    }
2784    #[inline]
2785    pub fn statistics_token(&self) -> Option<SyntaxToken> {
2786        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
2787    }
2788}
2789
2790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2791pub struct CreateSubscription {
2792    pub(crate) syntax: SyntaxNode,
2793}
2794impl CreateSubscription {
2795    #[inline]
2796    pub fn name_ref(&self) -> Option<NameRef> {
2797        support::child(&self.syntax)
2798    }
2799    #[inline]
2800    pub fn create_token(&self) -> Option<SyntaxToken> {
2801        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2802    }
2803    #[inline]
2804    pub fn subscription_token(&self) -> Option<SyntaxToken> {
2805        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
2806    }
2807}
2808
2809#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2810pub struct CreateTable {
2811    pub(crate) syntax: SyntaxNode,
2812}
2813impl CreateTable {
2814    #[inline]
2815    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2816        support::child(&self.syntax)
2817    }
2818    #[inline]
2819    pub fn inherits(&self) -> Option<Inherits> {
2820        support::child(&self.syntax)
2821    }
2822    #[inline]
2823    pub fn of_type(&self) -> Option<OfType> {
2824        support::child(&self.syntax)
2825    }
2826    #[inline]
2827    pub fn on_commit(&self) -> Option<OnCommit> {
2828        support::child(&self.syntax)
2829    }
2830    #[inline]
2831    pub fn partition_by(&self) -> Option<PartitionBy> {
2832        support::child(&self.syntax)
2833    }
2834    #[inline]
2835    pub fn partition_of(&self) -> Option<PartitionOf> {
2836        support::child(&self.syntax)
2837    }
2838    #[inline]
2839    pub fn path(&self) -> Option<Path> {
2840        support::child(&self.syntax)
2841    }
2842    #[inline]
2843    pub fn table_arg_list(&self) -> Option<TableArgList> {
2844        support::child(&self.syntax)
2845    }
2846    #[inline]
2847    pub fn tablespace(&self) -> Option<Tablespace> {
2848        support::child(&self.syntax)
2849    }
2850    #[inline]
2851    pub fn using_method(&self) -> Option<UsingMethod> {
2852        support::child(&self.syntax)
2853    }
2854    #[inline]
2855    pub fn with_params(&self) -> Option<WithParams> {
2856        support::child(&self.syntax)
2857    }
2858    #[inline]
2859    pub fn without_oids(&self) -> Option<WithoutOids> {
2860        support::child(&self.syntax)
2861    }
2862    #[inline]
2863    pub fn create_token(&self) -> Option<SyntaxToken> {
2864        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2865    }
2866    #[inline]
2867    pub fn table_token(&self) -> Option<SyntaxToken> {
2868        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2869    }
2870}
2871
2872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2873pub struct CreateTableAs {
2874    pub(crate) syntax: SyntaxNode,
2875}
2876impl CreateTableAs {
2877    #[inline]
2878    pub fn if_not_exists(&self) -> Option<IfNotExists> {
2879        support::child(&self.syntax)
2880    }
2881    #[inline]
2882    pub fn on_commit(&self) -> Option<OnCommit> {
2883        support::child(&self.syntax)
2884    }
2885    #[inline]
2886    pub fn path(&self) -> Option<Path> {
2887        support::child(&self.syntax)
2888    }
2889    #[inline]
2890    pub fn stmt(&self) -> Option<Stmt> {
2891        support::child(&self.syntax)
2892    }
2893    #[inline]
2894    pub fn tablespace(&self) -> Option<Tablespace> {
2895        support::child(&self.syntax)
2896    }
2897    #[inline]
2898    pub fn using_method(&self) -> Option<UsingMethod> {
2899        support::child(&self.syntax)
2900    }
2901    #[inline]
2902    pub fn with_data(&self) -> Option<WithData> {
2903        support::child(&self.syntax)
2904    }
2905    #[inline]
2906    pub fn with_no_data(&self) -> Option<WithNoData> {
2907        support::child(&self.syntax)
2908    }
2909    #[inline]
2910    pub fn with_params(&self) -> Option<WithParams> {
2911        support::child(&self.syntax)
2912    }
2913    #[inline]
2914    pub fn as_token(&self) -> Option<SyntaxToken> {
2915        support::token(&self.syntax, SyntaxKind::AS_KW)
2916    }
2917    #[inline]
2918    pub fn create_token(&self) -> Option<SyntaxToken> {
2919        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2920    }
2921    #[inline]
2922    pub fn table_token(&self) -> Option<SyntaxToken> {
2923        support::token(&self.syntax, SyntaxKind::TABLE_KW)
2924    }
2925}
2926
2927#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2928pub struct CreateTablespace {
2929    pub(crate) syntax: SyntaxNode,
2930}
2931impl CreateTablespace {
2932    #[inline]
2933    pub fn name_ref(&self) -> Option<NameRef> {
2934        support::child(&self.syntax)
2935    }
2936    #[inline]
2937    pub fn create_token(&self) -> Option<SyntaxToken> {
2938        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2939    }
2940    #[inline]
2941    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
2942        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
2943    }
2944}
2945
2946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2947pub struct CreateTextSearchConfiguration {
2948    pub(crate) syntax: SyntaxNode,
2949}
2950impl CreateTextSearchConfiguration {
2951    #[inline]
2952    pub fn attribute_list(&self) -> Option<AttributeList> {
2953        support::child(&self.syntax)
2954    }
2955    #[inline]
2956    pub fn name_ref(&self) -> Option<NameRef> {
2957        support::child(&self.syntax)
2958    }
2959    #[inline]
2960    pub fn configuration_token(&self) -> Option<SyntaxToken> {
2961        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
2962    }
2963    #[inline]
2964    pub fn create_token(&self) -> Option<SyntaxToken> {
2965        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2966    }
2967    #[inline]
2968    pub fn search_token(&self) -> Option<SyntaxToken> {
2969        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2970    }
2971    #[inline]
2972    pub fn text_token(&self) -> Option<SyntaxToken> {
2973        support::token(&self.syntax, SyntaxKind::TEXT_KW)
2974    }
2975}
2976
2977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2978pub struct CreateTextSearchDictionary {
2979    pub(crate) syntax: SyntaxNode,
2980}
2981impl CreateTextSearchDictionary {
2982    #[inline]
2983    pub fn name_ref(&self) -> Option<NameRef> {
2984        support::child(&self.syntax)
2985    }
2986    #[inline]
2987    pub fn create_token(&self) -> Option<SyntaxToken> {
2988        support::token(&self.syntax, SyntaxKind::CREATE_KW)
2989    }
2990    #[inline]
2991    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
2992        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
2993    }
2994    #[inline]
2995    pub fn search_token(&self) -> Option<SyntaxToken> {
2996        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
2997    }
2998    #[inline]
2999    pub fn text_token(&self) -> Option<SyntaxToken> {
3000        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3001    }
3002}
3003
3004#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3005pub struct CreateTextSearchParser {
3006    pub(crate) syntax: SyntaxNode,
3007}
3008impl CreateTextSearchParser {
3009    #[inline]
3010    pub fn name_ref(&self) -> Option<NameRef> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn create_token(&self) -> Option<SyntaxToken> {
3015        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3016    }
3017    #[inline]
3018    pub fn parser_token(&self) -> Option<SyntaxToken> {
3019        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3020    }
3021    #[inline]
3022    pub fn search_token(&self) -> Option<SyntaxToken> {
3023        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3024    }
3025    #[inline]
3026    pub fn text_token(&self) -> Option<SyntaxToken> {
3027        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3028    }
3029}
3030
3031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3032pub struct CreateTextSearchTemplate {
3033    pub(crate) syntax: SyntaxNode,
3034}
3035impl CreateTextSearchTemplate {
3036    #[inline]
3037    pub fn name_ref(&self) -> Option<NameRef> {
3038        support::child(&self.syntax)
3039    }
3040    #[inline]
3041    pub fn create_token(&self) -> Option<SyntaxToken> {
3042        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3043    }
3044    #[inline]
3045    pub fn search_token(&self) -> Option<SyntaxToken> {
3046        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3047    }
3048    #[inline]
3049    pub fn template_token(&self) -> Option<SyntaxToken> {
3050        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3051    }
3052    #[inline]
3053    pub fn text_token(&self) -> Option<SyntaxToken> {
3054        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3055    }
3056}
3057
3058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3059pub struct CreateTransform {
3060    pub(crate) syntax: SyntaxNode,
3061}
3062impl CreateTransform {
3063    #[inline]
3064    pub fn name_ref(&self) -> Option<NameRef> {
3065        support::child(&self.syntax)
3066    }
3067    #[inline]
3068    pub fn ty(&self) -> Option<Type> {
3069        support::child(&self.syntax)
3070    }
3071    #[inline]
3072    pub fn create_token(&self) -> Option<SyntaxToken> {
3073        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3074    }
3075    #[inline]
3076    pub fn for_token(&self) -> Option<SyntaxToken> {
3077        support::token(&self.syntax, SyntaxKind::FOR_KW)
3078    }
3079    #[inline]
3080    pub fn language_token(&self) -> Option<SyntaxToken> {
3081        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3082    }
3083    #[inline]
3084    pub fn transform_token(&self) -> Option<SyntaxToken> {
3085        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3086    }
3087}
3088
3089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3090pub struct CreateTrigger {
3091    pub(crate) syntax: SyntaxNode,
3092}
3093impl CreateTrigger {
3094    #[inline]
3095    pub fn create_token(&self) -> Option<SyntaxToken> {
3096        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3097    }
3098}
3099
3100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3101pub struct CreateType {
3102    pub(crate) syntax: SyntaxNode,
3103}
3104impl CreateType {
3105    #[inline]
3106    pub fn ty(&self) -> Option<Type> {
3107        support::child(&self.syntax)
3108    }
3109    #[inline]
3110    pub fn variant_list(&self) -> Option<VariantList> {
3111        support::child(&self.syntax)
3112    }
3113    #[inline]
3114    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3115        support::token(&self.syntax, SyntaxKind::L_PAREN)
3116    }
3117    #[inline]
3118    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3119        support::token(&self.syntax, SyntaxKind::R_PAREN)
3120    }
3121    #[inline]
3122    pub fn as_token(&self) -> Option<SyntaxToken> {
3123        support::token(&self.syntax, SyntaxKind::AS_KW)
3124    }
3125    #[inline]
3126    pub fn create_token(&self) -> Option<SyntaxToken> {
3127        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3128    }
3129    #[inline]
3130    pub fn enum_token(&self) -> Option<SyntaxToken> {
3131        support::token(&self.syntax, SyntaxKind::ENUM_KW)
3132    }
3133    #[inline]
3134    pub fn range_token(&self) -> Option<SyntaxToken> {
3135        support::token(&self.syntax, SyntaxKind::RANGE_KW)
3136    }
3137    #[inline]
3138    pub fn type_token(&self) -> Option<SyntaxToken> {
3139        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3140    }
3141}
3142
3143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3144pub struct CreateUser {
3145    pub(crate) syntax: SyntaxNode,
3146}
3147impl CreateUser {
3148    #[inline]
3149    pub fn name_ref(&self) -> Option<NameRef> {
3150        support::child(&self.syntax)
3151    }
3152    #[inline]
3153    pub fn create_token(&self) -> Option<SyntaxToken> {
3154        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3155    }
3156    #[inline]
3157    pub fn user_token(&self) -> Option<SyntaxToken> {
3158        support::token(&self.syntax, SyntaxKind::USER_KW)
3159    }
3160}
3161
3162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3163pub struct CreateUserMapping {
3164    pub(crate) syntax: SyntaxNode,
3165}
3166impl CreateUserMapping {
3167    #[inline]
3168    pub fn name_ref(&self) -> Option<NameRef> {
3169        support::child(&self.syntax)
3170    }
3171    #[inline]
3172    pub fn create_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3174    }
3175    #[inline]
3176    pub fn for_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::FOR_KW)
3178    }
3179    #[inline]
3180    pub fn mapping_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
3182    }
3183    #[inline]
3184    pub fn server_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3186    }
3187    #[inline]
3188    pub fn user_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::USER_KW)
3190    }
3191}
3192
3193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3194pub struct CreateView {
3195    pub(crate) syntax: SyntaxNode,
3196}
3197impl CreateView {
3198    #[inline]
3199    pub fn name_ref(&self) -> Option<NameRef> {
3200        support::child(&self.syntax)
3201    }
3202    #[inline]
3203    pub fn create_token(&self) -> Option<SyntaxToken> {
3204        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3205    }
3206    #[inline]
3207    pub fn view_token(&self) -> Option<SyntaxToken> {
3208        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3209    }
3210}
3211
3212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3213pub struct CustomOp {
3214    pub(crate) syntax: SyntaxNode,
3215}
3216impl CustomOp {
3217    #[inline]
3218    pub fn bang_token(&self) -> Option<SyntaxToken> {
3219        support::token(&self.syntax, SyntaxKind::BANG)
3220    }
3221    #[inline]
3222    pub fn pound_token(&self) -> Option<SyntaxToken> {
3223        support::token(&self.syntax, SyntaxKind::POUND)
3224    }
3225    #[inline]
3226    pub fn percent_token(&self) -> Option<SyntaxToken> {
3227        support::token(&self.syntax, SyntaxKind::PERCENT)
3228    }
3229    #[inline]
3230    pub fn amp_token(&self) -> Option<SyntaxToken> {
3231        support::token(&self.syntax, SyntaxKind::AMP)
3232    }
3233    #[inline]
3234    pub fn star_token(&self) -> Option<SyntaxToken> {
3235        support::token(&self.syntax, SyntaxKind::STAR)
3236    }
3237    #[inline]
3238    pub fn plus_token(&self) -> Option<SyntaxToken> {
3239        support::token(&self.syntax, SyntaxKind::PLUS)
3240    }
3241    #[inline]
3242    pub fn minus_token(&self) -> Option<SyntaxToken> {
3243        support::token(&self.syntax, SyntaxKind::MINUS)
3244    }
3245    #[inline]
3246    pub fn slash_token(&self) -> Option<SyntaxToken> {
3247        support::token(&self.syntax, SyntaxKind::SLASH)
3248    }
3249    #[inline]
3250    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
3251        support::token(&self.syntax, SyntaxKind::L_ANGLE)
3252    }
3253    #[inline]
3254    pub fn eq_token(&self) -> Option<SyntaxToken> {
3255        support::token(&self.syntax, SyntaxKind::EQ)
3256    }
3257    #[inline]
3258    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
3259        support::token(&self.syntax, SyntaxKind::R_ANGLE)
3260    }
3261    #[inline]
3262    pub fn question_token(&self) -> Option<SyntaxToken> {
3263        support::token(&self.syntax, SyntaxKind::QUESTION)
3264    }
3265    #[inline]
3266    pub fn at_token(&self) -> Option<SyntaxToken> {
3267        support::token(&self.syntax, SyntaxKind::AT)
3268    }
3269    #[inline]
3270    pub fn caret_token(&self) -> Option<SyntaxToken> {
3271        support::token(&self.syntax, SyntaxKind::CARET)
3272    }
3273    #[inline]
3274    pub fn backtick_token(&self) -> Option<SyntaxToken> {
3275        support::token(&self.syntax, SyntaxKind::BACKTICK)
3276    }
3277    #[inline]
3278    pub fn pipe_token(&self) -> Option<SyntaxToken> {
3279        support::token(&self.syntax, SyntaxKind::PIPE)
3280    }
3281    #[inline]
3282    pub fn tilde_token(&self) -> Option<SyntaxToken> {
3283        support::token(&self.syntax, SyntaxKind::TILDE)
3284    }
3285}
3286
3287#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3288pub struct Deallocate {
3289    pub(crate) syntax: SyntaxNode,
3290}
3291impl Deallocate {
3292    #[inline]
3293    pub fn name_ref(&self) -> Option<NameRef> {
3294        support::child(&self.syntax)
3295    }
3296    #[inline]
3297    pub fn all_token(&self) -> Option<SyntaxToken> {
3298        support::token(&self.syntax, SyntaxKind::ALL_KW)
3299    }
3300    #[inline]
3301    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
3302        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
3303    }
3304    #[inline]
3305    pub fn prepare_token(&self) -> Option<SyntaxToken> {
3306        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
3307    }
3308}
3309
3310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3311pub struct Declare {
3312    pub(crate) syntax: SyntaxNode,
3313}
3314impl Declare {
3315    #[inline]
3316    pub fn declare_token(&self) -> Option<SyntaxToken> {
3317        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
3318    }
3319}
3320
3321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3322pub struct DefaultConstraint {
3323    pub(crate) syntax: SyntaxNode,
3324}
3325impl DefaultConstraint {
3326    #[inline]
3327    pub fn expr(&self) -> Option<Expr> {
3328        support::child(&self.syntax)
3329    }
3330    #[inline]
3331    pub fn name_ref(&self) -> Option<NameRef> {
3332        support::child(&self.syntax)
3333    }
3334    #[inline]
3335    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3336        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3337    }
3338    #[inline]
3339    pub fn default_token(&self) -> Option<SyntaxToken> {
3340        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3341    }
3342}
3343
3344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3345pub struct Deferrable {
3346    pub(crate) syntax: SyntaxNode,
3347}
3348impl Deferrable {
3349    #[inline]
3350    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
3351        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
3352    }
3353}
3354
3355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3356pub struct DeferrableConstraintOption {
3357    pub(crate) syntax: SyntaxNode,
3358}
3359impl DeferrableConstraintOption {
3360    #[inline]
3361    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
3362        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
3363    }
3364}
3365
3366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3367pub struct Delete {
3368    pub(crate) syntax: SyntaxNode,
3369}
3370impl Delete {
3371    #[inline]
3372    pub fn alias(&self) -> Option<Alias> {
3373        support::child(&self.syntax)
3374    }
3375    #[inline]
3376    pub fn relation_name(&self) -> Option<RelationName> {
3377        support::child(&self.syntax)
3378    }
3379    #[inline]
3380    pub fn returning_clause(&self) -> Option<ReturningClause> {
3381        support::child(&self.syntax)
3382    }
3383    #[inline]
3384    pub fn using_clause(&self) -> Option<UsingClause> {
3385        support::child(&self.syntax)
3386    }
3387    #[inline]
3388    pub fn where_clause(&self) -> Option<WhereClause> {
3389        support::child(&self.syntax)
3390    }
3391    #[inline]
3392    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
3393        support::child(&self.syntax)
3394    }
3395    #[inline]
3396    pub fn delete_token(&self) -> Option<SyntaxToken> {
3397        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3398    }
3399    #[inline]
3400    pub fn from_token(&self) -> Option<SyntaxToken> {
3401        support::token(&self.syntax, SyntaxKind::FROM_KW)
3402    }
3403}
3404
3405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3406pub struct DeleteRows {
3407    pub(crate) syntax: SyntaxNode,
3408}
3409impl DeleteRows {
3410    #[inline]
3411    pub fn delete_token(&self) -> Option<SyntaxToken> {
3412        support::token(&self.syntax, SyntaxKind::DELETE_KW)
3413    }
3414    #[inline]
3415    pub fn rows_token(&self) -> Option<SyntaxToken> {
3416        support::token(&self.syntax, SyntaxKind::ROWS_KW)
3417    }
3418}
3419
3420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3421pub struct DetachPartition {
3422    pub(crate) syntax: SyntaxNode,
3423}
3424impl DetachPartition {
3425    #[inline]
3426    pub fn detach_token(&self) -> Option<SyntaxToken> {
3427        support::token(&self.syntax, SyntaxKind::DETACH_KW)
3428    }
3429    #[inline]
3430    pub fn partition_token(&self) -> Option<SyntaxToken> {
3431        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
3432    }
3433}
3434
3435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3436pub struct DisableRls {
3437    pub(crate) syntax: SyntaxNode,
3438}
3439impl DisableRls {
3440    #[inline]
3441    pub fn disable_token(&self) -> Option<SyntaxToken> {
3442        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3443    }
3444    #[inline]
3445    pub fn level_token(&self) -> Option<SyntaxToken> {
3446        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
3447    }
3448    #[inline]
3449    pub fn row_token(&self) -> Option<SyntaxToken> {
3450        support::token(&self.syntax, SyntaxKind::ROW_KW)
3451    }
3452    #[inline]
3453    pub fn security_token(&self) -> Option<SyntaxToken> {
3454        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
3455    }
3456}
3457
3458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3459pub struct DisableRule {
3460    pub(crate) syntax: SyntaxNode,
3461}
3462impl DisableRule {
3463    #[inline]
3464    pub fn disable_token(&self) -> Option<SyntaxToken> {
3465        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3466    }
3467    #[inline]
3468    pub fn rule_token(&self) -> Option<SyntaxToken> {
3469        support::token(&self.syntax, SyntaxKind::RULE_KW)
3470    }
3471}
3472
3473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3474pub struct DisableTrigger {
3475    pub(crate) syntax: SyntaxNode,
3476}
3477impl DisableTrigger {
3478    #[inline]
3479    pub fn disable_token(&self) -> Option<SyntaxToken> {
3480        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
3481    }
3482    #[inline]
3483    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3484        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3485    }
3486}
3487
3488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3489pub struct Discard {
3490    pub(crate) syntax: SyntaxNode,
3491}
3492impl Discard {
3493    #[inline]
3494    pub fn all_token(&self) -> Option<SyntaxToken> {
3495        support::token(&self.syntax, SyntaxKind::ALL_KW)
3496    }
3497    #[inline]
3498    pub fn discard_token(&self) -> Option<SyntaxToken> {
3499        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
3500    }
3501    #[inline]
3502    pub fn plans_token(&self) -> Option<SyntaxToken> {
3503        support::token(&self.syntax, SyntaxKind::PLANS_KW)
3504    }
3505    #[inline]
3506    pub fn sequences_token(&self) -> Option<SyntaxToken> {
3507        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
3508    }
3509    #[inline]
3510    pub fn temp_token(&self) -> Option<SyntaxToken> {
3511        support::token(&self.syntax, SyntaxKind::TEMP_KW)
3512    }
3513    #[inline]
3514    pub fn temporary_token(&self) -> Option<SyntaxToken> {
3515        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
3516    }
3517}
3518
3519#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3520pub struct DistinctClause {
3521    pub(crate) syntax: SyntaxNode,
3522}
3523impl DistinctClause {
3524    #[inline]
3525    pub fn exprs(&self) -> AstChildren<Expr> {
3526        support::children(&self.syntax)
3527    }
3528    #[inline]
3529    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3530        support::token(&self.syntax, SyntaxKind::L_PAREN)
3531    }
3532    #[inline]
3533    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3534        support::token(&self.syntax, SyntaxKind::R_PAREN)
3535    }
3536    #[inline]
3537    pub fn distinct_token(&self) -> Option<SyntaxToken> {
3538        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
3539    }
3540    #[inline]
3541    pub fn on_token(&self) -> Option<SyntaxToken> {
3542        support::token(&self.syntax, SyntaxKind::ON_KW)
3543    }
3544}
3545
3546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3547pub struct Do {
3548    pub(crate) syntax: SyntaxNode,
3549}
3550impl Do {
3551    #[inline]
3552    pub fn do_token(&self) -> Option<SyntaxToken> {
3553        support::token(&self.syntax, SyntaxKind::DO_KW)
3554    }
3555}
3556
3557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3558pub struct DoubleType {
3559    pub(crate) syntax: SyntaxNode,
3560}
3561impl DoubleType {
3562    #[inline]
3563    pub fn double_token(&self) -> Option<SyntaxToken> {
3564        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
3565    }
3566    #[inline]
3567    pub fn precision_token(&self) -> Option<SyntaxToken> {
3568        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
3569    }
3570}
3571
3572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3573pub struct Drop {
3574    pub(crate) syntax: SyntaxNode,
3575}
3576impl Drop {
3577    #[inline]
3578    pub fn drop_token(&self) -> Option<SyntaxToken> {
3579        support::token(&self.syntax, SyntaxKind::DROP_KW)
3580    }
3581}
3582
3583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3584pub struct DropAccessMethod {
3585    pub(crate) syntax: SyntaxNode,
3586}
3587impl DropAccessMethod {
3588    #[inline]
3589    pub fn if_exists(&self) -> Option<IfExists> {
3590        support::child(&self.syntax)
3591    }
3592    #[inline]
3593    pub fn name_ref(&self) -> Option<NameRef> {
3594        support::child(&self.syntax)
3595    }
3596    #[inline]
3597    pub fn access_token(&self) -> Option<SyntaxToken> {
3598        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3599    }
3600    #[inline]
3601    pub fn drop_token(&self) -> Option<SyntaxToken> {
3602        support::token(&self.syntax, SyntaxKind::DROP_KW)
3603    }
3604    #[inline]
3605    pub fn method_token(&self) -> Option<SyntaxToken> {
3606        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3607    }
3608}
3609
3610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3611pub struct DropAggregate {
3612    pub(crate) syntax: SyntaxNode,
3613}
3614impl DropAggregate {
3615    #[inline]
3616    pub fn aggregates(&self) -> AstChildren<Aggregate> {
3617        support::children(&self.syntax)
3618    }
3619    #[inline]
3620    pub fn if_exists(&self) -> Option<IfExists> {
3621        support::child(&self.syntax)
3622    }
3623    #[inline]
3624    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3625        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3626    }
3627    #[inline]
3628    pub fn drop_token(&self) -> Option<SyntaxToken> {
3629        support::token(&self.syntax, SyntaxKind::DROP_KW)
3630    }
3631}
3632
3633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3634pub struct DropCast {
3635    pub(crate) syntax: SyntaxNode,
3636}
3637impl DropCast {
3638    #[inline]
3639    pub fn if_exists(&self) -> Option<IfExists> {
3640        support::child(&self.syntax)
3641    }
3642    #[inline]
3643    pub fn ty(&self) -> Option<Type> {
3644        support::child(&self.syntax)
3645    }
3646    #[inline]
3647    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3648        support::token(&self.syntax, SyntaxKind::L_PAREN)
3649    }
3650    #[inline]
3651    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3652        support::token(&self.syntax, SyntaxKind::R_PAREN)
3653    }
3654    #[inline]
3655    pub fn as_token(&self) -> Option<SyntaxToken> {
3656        support::token(&self.syntax, SyntaxKind::AS_KW)
3657    }
3658    #[inline]
3659    pub fn cast_token(&self) -> Option<SyntaxToken> {
3660        support::token(&self.syntax, SyntaxKind::CAST_KW)
3661    }
3662    #[inline]
3663    pub fn drop_token(&self) -> Option<SyntaxToken> {
3664        support::token(&self.syntax, SyntaxKind::DROP_KW)
3665    }
3666}
3667
3668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3669pub struct DropCollation {
3670    pub(crate) syntax: SyntaxNode,
3671}
3672impl DropCollation {
3673    #[inline]
3674    pub fn if_exists(&self) -> Option<IfExists> {
3675        support::child(&self.syntax)
3676    }
3677    #[inline]
3678    pub fn name_ref(&self) -> Option<NameRef> {
3679        support::child(&self.syntax)
3680    }
3681    #[inline]
3682    pub fn collation_token(&self) -> Option<SyntaxToken> {
3683        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3684    }
3685    #[inline]
3686    pub fn drop_token(&self) -> Option<SyntaxToken> {
3687        support::token(&self.syntax, SyntaxKind::DROP_KW)
3688    }
3689}
3690
3691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3692pub struct DropColumn {
3693    pub(crate) syntax: SyntaxNode,
3694}
3695impl DropColumn {
3696    #[inline]
3697    pub fn if_exists(&self) -> Option<IfExists> {
3698        support::child(&self.syntax)
3699    }
3700    #[inline]
3701    pub fn name_ref(&self) -> Option<NameRef> {
3702        support::child(&self.syntax)
3703    }
3704    #[inline]
3705    pub fn cascade_token(&self) -> Option<SyntaxToken> {
3706        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
3707    }
3708    #[inline]
3709    pub fn column_token(&self) -> Option<SyntaxToken> {
3710        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3711    }
3712    #[inline]
3713    pub fn drop_token(&self) -> Option<SyntaxToken> {
3714        support::token(&self.syntax, SyntaxKind::DROP_KW)
3715    }
3716    #[inline]
3717    pub fn restrict_token(&self) -> Option<SyntaxToken> {
3718        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
3719    }
3720}
3721
3722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3723pub struct DropConstraint {
3724    pub(crate) syntax: SyntaxNode,
3725}
3726impl DropConstraint {
3727    #[inline]
3728    pub fn if_exists(&self) -> Option<IfExists> {
3729        support::child(&self.syntax)
3730    }
3731    #[inline]
3732    pub fn name_ref(&self) -> Option<NameRef> {
3733        support::child(&self.syntax)
3734    }
3735    #[inline]
3736    pub fn cascade_token(&self) -> Option<SyntaxToken> {
3737        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
3738    }
3739    #[inline]
3740    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3741        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3742    }
3743    #[inline]
3744    pub fn drop_token(&self) -> Option<SyntaxToken> {
3745        support::token(&self.syntax, SyntaxKind::DROP_KW)
3746    }
3747    #[inline]
3748    pub fn restrict_token(&self) -> Option<SyntaxToken> {
3749        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
3750    }
3751}
3752
3753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3754pub struct DropConversion {
3755    pub(crate) syntax: SyntaxNode,
3756}
3757impl DropConversion {
3758    #[inline]
3759    pub fn if_exists(&self) -> Option<IfExists> {
3760        support::child(&self.syntax)
3761    }
3762    #[inline]
3763    pub fn name_ref(&self) -> Option<NameRef> {
3764        support::child(&self.syntax)
3765    }
3766    #[inline]
3767    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3768        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3769    }
3770    #[inline]
3771    pub fn drop_token(&self) -> Option<SyntaxToken> {
3772        support::token(&self.syntax, SyntaxKind::DROP_KW)
3773    }
3774}
3775
3776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3777pub struct DropDatabase {
3778    pub(crate) syntax: SyntaxNode,
3779}
3780impl DropDatabase {
3781    #[inline]
3782    pub fn if_exists(&self) -> Option<IfExists> {
3783        support::child(&self.syntax)
3784    }
3785    #[inline]
3786    pub fn name_ref(&self) -> Option<NameRef> {
3787        support::child(&self.syntax)
3788    }
3789    #[inline]
3790    pub fn database_token(&self) -> Option<SyntaxToken> {
3791        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3792    }
3793    #[inline]
3794    pub fn drop_token(&self) -> Option<SyntaxToken> {
3795        support::token(&self.syntax, SyntaxKind::DROP_KW)
3796    }
3797}
3798
3799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3800pub struct DropDefault {
3801    pub(crate) syntax: SyntaxNode,
3802}
3803impl DropDefault {
3804    #[inline]
3805    pub fn default_token(&self) -> Option<SyntaxToken> {
3806        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3807    }
3808    #[inline]
3809    pub fn drop_token(&self) -> Option<SyntaxToken> {
3810        support::token(&self.syntax, SyntaxKind::DROP_KW)
3811    }
3812}
3813
3814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3815pub struct DropDomain {
3816    pub(crate) syntax: SyntaxNode,
3817}
3818impl DropDomain {
3819    #[inline]
3820    pub fn if_exists(&self) -> Option<IfExists> {
3821        support::child(&self.syntax)
3822    }
3823    #[inline]
3824    pub fn types(&self) -> AstChildren<Type> {
3825        support::children(&self.syntax)
3826    }
3827    #[inline]
3828    pub fn domain_token(&self) -> Option<SyntaxToken> {
3829        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3830    }
3831    #[inline]
3832    pub fn drop_token(&self) -> Option<SyntaxToken> {
3833        support::token(&self.syntax, SyntaxKind::DROP_KW)
3834    }
3835}
3836
3837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3838pub struct DropEventTrigger {
3839    pub(crate) syntax: SyntaxNode,
3840}
3841impl DropEventTrigger {
3842    #[inline]
3843    pub fn if_exists(&self) -> Option<IfExists> {
3844        support::child(&self.syntax)
3845    }
3846    #[inline]
3847    pub fn name_ref(&self) -> Option<NameRef> {
3848        support::child(&self.syntax)
3849    }
3850    #[inline]
3851    pub fn drop_token(&self) -> Option<SyntaxToken> {
3852        support::token(&self.syntax, SyntaxKind::DROP_KW)
3853    }
3854    #[inline]
3855    pub fn event_token(&self) -> Option<SyntaxToken> {
3856        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3857    }
3858    #[inline]
3859    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3860        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3861    }
3862}
3863
3864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3865pub struct DropExpression {
3866    pub(crate) syntax: SyntaxNode,
3867}
3868impl DropExpression {
3869    #[inline]
3870    pub fn if_exists(&self) -> Option<IfExists> {
3871        support::child(&self.syntax)
3872    }
3873    #[inline]
3874    pub fn drop_token(&self) -> Option<SyntaxToken> {
3875        support::token(&self.syntax, SyntaxKind::DROP_KW)
3876    }
3877    #[inline]
3878    pub fn expression_token(&self) -> Option<SyntaxToken> {
3879        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
3880    }
3881}
3882
3883#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3884pub struct DropExtension {
3885    pub(crate) syntax: SyntaxNode,
3886}
3887impl DropExtension {
3888    #[inline]
3889    pub fn if_exists(&self) -> Option<IfExists> {
3890        support::child(&self.syntax)
3891    }
3892    #[inline]
3893    pub fn name_refs(&self) -> AstChildren<NameRef> {
3894        support::children(&self.syntax)
3895    }
3896    #[inline]
3897    pub fn drop_token(&self) -> Option<SyntaxToken> {
3898        support::token(&self.syntax, SyntaxKind::DROP_KW)
3899    }
3900    #[inline]
3901    pub fn extension_token(&self) -> Option<SyntaxToken> {
3902        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3903    }
3904}
3905
3906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3907pub struct DropForeignDataWrapper {
3908    pub(crate) syntax: SyntaxNode,
3909}
3910impl DropForeignDataWrapper {
3911    #[inline]
3912    pub fn if_exists(&self) -> Option<IfExists> {
3913        support::child(&self.syntax)
3914    }
3915    #[inline]
3916    pub fn name_ref(&self) -> Option<NameRef> {
3917        support::child(&self.syntax)
3918    }
3919    #[inline]
3920    pub fn data_token(&self) -> Option<SyntaxToken> {
3921        support::token(&self.syntax, SyntaxKind::DATA_KW)
3922    }
3923    #[inline]
3924    pub fn drop_token(&self) -> Option<SyntaxToken> {
3925        support::token(&self.syntax, SyntaxKind::DROP_KW)
3926    }
3927    #[inline]
3928    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3929        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3930    }
3931    #[inline]
3932    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3933        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3934    }
3935}
3936
3937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3938pub struct DropForeignTable {
3939    pub(crate) syntax: SyntaxNode,
3940}
3941impl DropForeignTable {
3942    #[inline]
3943    pub fn if_exists(&self) -> Option<IfExists> {
3944        support::child(&self.syntax)
3945    }
3946    #[inline]
3947    pub fn drop_token(&self) -> Option<SyntaxToken> {
3948        support::token(&self.syntax, SyntaxKind::DROP_KW)
3949    }
3950    #[inline]
3951    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3952        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3953    }
3954    #[inline]
3955    pub fn table_token(&self) -> Option<SyntaxToken> {
3956        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3957    }
3958}
3959
3960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3961pub struct DropFunction {
3962    pub(crate) syntax: SyntaxNode,
3963}
3964impl DropFunction {
3965    #[inline]
3966    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
3967        support::child(&self.syntax)
3968    }
3969    #[inline]
3970    pub fn if_exists(&self) -> Option<IfExists> {
3971        support::child(&self.syntax)
3972    }
3973    #[inline]
3974    pub fn drop_token(&self) -> Option<SyntaxToken> {
3975        support::token(&self.syntax, SyntaxKind::DROP_KW)
3976    }
3977    #[inline]
3978    pub fn function_token(&self) -> Option<SyntaxToken> {
3979        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3980    }
3981}
3982
3983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3984pub struct DropGroup {
3985    pub(crate) syntax: SyntaxNode,
3986}
3987impl DropGroup {
3988    #[inline]
3989    pub fn if_exists(&self) -> Option<IfExists> {
3990        support::child(&self.syntax)
3991    }
3992    #[inline]
3993    pub fn name_ref(&self) -> Option<NameRef> {
3994        support::child(&self.syntax)
3995    }
3996    #[inline]
3997    pub fn drop_token(&self) -> Option<SyntaxToken> {
3998        support::token(&self.syntax, SyntaxKind::DROP_KW)
3999    }
4000    #[inline]
4001    pub fn group_token(&self) -> Option<SyntaxToken> {
4002        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4003    }
4004}
4005
4006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4007pub struct DropIdentity {
4008    pub(crate) syntax: SyntaxNode,
4009}
4010impl DropIdentity {
4011    #[inline]
4012    pub fn if_exists(&self) -> Option<IfExists> {
4013        support::child(&self.syntax)
4014    }
4015    #[inline]
4016    pub fn drop_token(&self) -> Option<SyntaxToken> {
4017        support::token(&self.syntax, SyntaxKind::DROP_KW)
4018    }
4019    #[inline]
4020    pub fn identity_token(&self) -> Option<SyntaxToken> {
4021        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
4022    }
4023}
4024
4025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4026pub struct DropIndex {
4027    pub(crate) syntax: SyntaxNode,
4028}
4029impl DropIndex {
4030    #[inline]
4031    pub fn if_exists(&self) -> Option<IfExists> {
4032        support::child(&self.syntax)
4033    }
4034    #[inline]
4035    pub fn paths(&self) -> AstChildren<Path> {
4036        support::children(&self.syntax)
4037    }
4038    #[inline]
4039    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4040        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4041    }
4042    #[inline]
4043    pub fn drop_token(&self) -> Option<SyntaxToken> {
4044        support::token(&self.syntax, SyntaxKind::DROP_KW)
4045    }
4046    #[inline]
4047    pub fn index_token(&self) -> Option<SyntaxToken> {
4048        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4049    }
4050}
4051
4052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4053pub struct DropLanguage {
4054    pub(crate) syntax: SyntaxNode,
4055}
4056impl DropLanguage {
4057    #[inline]
4058    pub fn if_exists(&self) -> Option<IfExists> {
4059        support::child(&self.syntax)
4060    }
4061    #[inline]
4062    pub fn name_ref(&self) -> Option<NameRef> {
4063        support::child(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn drop_token(&self) -> Option<SyntaxToken> {
4067        support::token(&self.syntax, SyntaxKind::DROP_KW)
4068    }
4069    #[inline]
4070    pub fn language_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4072    }
4073}
4074
4075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4076pub struct DropMaterializedView {
4077    pub(crate) syntax: SyntaxNode,
4078}
4079impl DropMaterializedView {
4080    #[inline]
4081    pub fn if_exists(&self) -> Option<IfExists> {
4082        support::child(&self.syntax)
4083    }
4084    #[inline]
4085    pub fn drop_token(&self) -> Option<SyntaxToken> {
4086        support::token(&self.syntax, SyntaxKind::DROP_KW)
4087    }
4088    #[inline]
4089    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4090        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4091    }
4092    #[inline]
4093    pub fn view_token(&self) -> Option<SyntaxToken> {
4094        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4095    }
4096}
4097
4098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4099pub struct DropNotNull {
4100    pub(crate) syntax: SyntaxNode,
4101}
4102impl DropNotNull {
4103    #[inline]
4104    pub fn drop_token(&self) -> Option<SyntaxToken> {
4105        support::token(&self.syntax, SyntaxKind::DROP_KW)
4106    }
4107    #[inline]
4108    pub fn not_token(&self) -> Option<SyntaxToken> {
4109        support::token(&self.syntax, SyntaxKind::NOT_KW)
4110    }
4111    #[inline]
4112    pub fn null_token(&self) -> Option<SyntaxToken> {
4113        support::token(&self.syntax, SyntaxKind::NULL_KW)
4114    }
4115}
4116
4117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4118pub struct DropOperator {
4119    pub(crate) syntax: SyntaxNode,
4120}
4121impl DropOperator {
4122    #[inline]
4123    pub fn if_exists(&self) -> Option<IfExists> {
4124        support::child(&self.syntax)
4125    }
4126    #[inline]
4127    pub fn drop_token(&self) -> Option<SyntaxToken> {
4128        support::token(&self.syntax, SyntaxKind::DROP_KW)
4129    }
4130    #[inline]
4131    pub fn operator_token(&self) -> Option<SyntaxToken> {
4132        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4133    }
4134}
4135
4136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4137pub struct DropOperatorClass {
4138    pub(crate) syntax: SyntaxNode,
4139}
4140impl DropOperatorClass {
4141    #[inline]
4142    pub fn if_exists(&self) -> Option<IfExists> {
4143        support::child(&self.syntax)
4144    }
4145    #[inline]
4146    pub fn name_ref(&self) -> Option<NameRef> {
4147        support::child(&self.syntax)
4148    }
4149    #[inline]
4150    pub fn class_token(&self) -> Option<SyntaxToken> {
4151        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4152    }
4153    #[inline]
4154    pub fn drop_token(&self) -> Option<SyntaxToken> {
4155        support::token(&self.syntax, SyntaxKind::DROP_KW)
4156    }
4157    #[inline]
4158    pub fn operator_token(&self) -> Option<SyntaxToken> {
4159        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4160    }
4161    #[inline]
4162    pub fn using_token(&self) -> Option<SyntaxToken> {
4163        support::token(&self.syntax, SyntaxKind::USING_KW)
4164    }
4165}
4166
4167#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4168pub struct DropOperatorFamily {
4169    pub(crate) syntax: SyntaxNode,
4170}
4171impl DropOperatorFamily {
4172    #[inline]
4173    pub fn if_exists(&self) -> Option<IfExists> {
4174        support::child(&self.syntax)
4175    }
4176    #[inline]
4177    pub fn drop_token(&self) -> Option<SyntaxToken> {
4178        support::token(&self.syntax, SyntaxKind::DROP_KW)
4179    }
4180    #[inline]
4181    pub fn family_token(&self) -> Option<SyntaxToken> {
4182        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4183    }
4184    #[inline]
4185    pub fn operator_token(&self) -> Option<SyntaxToken> {
4186        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4187    }
4188}
4189
4190#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4191pub struct DropOwned {
4192    pub(crate) syntax: SyntaxNode,
4193}
4194impl DropOwned {
4195    #[inline]
4196    pub fn by_token(&self) -> Option<SyntaxToken> {
4197        support::token(&self.syntax, SyntaxKind::BY_KW)
4198    }
4199    #[inline]
4200    pub fn drop_token(&self) -> Option<SyntaxToken> {
4201        support::token(&self.syntax, SyntaxKind::DROP_KW)
4202    }
4203    #[inline]
4204    pub fn owned_token(&self) -> Option<SyntaxToken> {
4205        support::token(&self.syntax, SyntaxKind::OWNED_KW)
4206    }
4207}
4208
4209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4210pub struct DropPolicy {
4211    pub(crate) syntax: SyntaxNode,
4212}
4213impl DropPolicy {
4214    #[inline]
4215    pub fn if_exists(&self) -> Option<IfExists> {
4216        support::child(&self.syntax)
4217    }
4218    #[inline]
4219    pub fn name_ref(&self) -> Option<NameRef> {
4220        support::child(&self.syntax)
4221    }
4222    #[inline]
4223    pub fn drop_token(&self) -> Option<SyntaxToken> {
4224        support::token(&self.syntax, SyntaxKind::DROP_KW)
4225    }
4226    #[inline]
4227    pub fn on_token(&self) -> Option<SyntaxToken> {
4228        support::token(&self.syntax, SyntaxKind::ON_KW)
4229    }
4230    #[inline]
4231    pub fn policy_token(&self) -> Option<SyntaxToken> {
4232        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4233    }
4234}
4235
4236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4237pub struct DropProcedure {
4238    pub(crate) syntax: SyntaxNode,
4239}
4240impl DropProcedure {
4241    #[inline]
4242    pub fn if_exists(&self) -> Option<IfExists> {
4243        support::child(&self.syntax)
4244    }
4245    #[inline]
4246    pub fn drop_token(&self) -> Option<SyntaxToken> {
4247        support::token(&self.syntax, SyntaxKind::DROP_KW)
4248    }
4249    #[inline]
4250    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4251        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4252    }
4253}
4254
4255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4256pub struct DropPublication {
4257    pub(crate) syntax: SyntaxNode,
4258}
4259impl DropPublication {
4260    #[inline]
4261    pub fn if_exists(&self) -> Option<IfExists> {
4262        support::child(&self.syntax)
4263    }
4264    #[inline]
4265    pub fn name_refs(&self) -> AstChildren<NameRef> {
4266        support::children(&self.syntax)
4267    }
4268    #[inline]
4269    pub fn drop_token(&self) -> Option<SyntaxToken> {
4270        support::token(&self.syntax, SyntaxKind::DROP_KW)
4271    }
4272    #[inline]
4273    pub fn publication_token(&self) -> Option<SyntaxToken> {
4274        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4275    }
4276}
4277
4278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4279pub struct DropRole {
4280    pub(crate) syntax: SyntaxNode,
4281}
4282impl DropRole {
4283    #[inline]
4284    pub fn if_exists(&self) -> Option<IfExists> {
4285        support::child(&self.syntax)
4286    }
4287    #[inline]
4288    pub fn name_refs(&self) -> AstChildren<NameRef> {
4289        support::children(&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 role_token(&self) -> Option<SyntaxToken> {
4297        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4298    }
4299}
4300
4301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4302pub struct DropRoutine {
4303    pub(crate) syntax: SyntaxNode,
4304}
4305impl DropRoutine {
4306    #[inline]
4307    pub fn if_exists(&self) -> Option<IfExists> {
4308        support::child(&self.syntax)
4309    }
4310    #[inline]
4311    pub fn drop_token(&self) -> Option<SyntaxToken> {
4312        support::token(&self.syntax, SyntaxKind::DROP_KW)
4313    }
4314    #[inline]
4315    pub fn routine_token(&self) -> Option<SyntaxToken> {
4316        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
4317    }
4318}
4319
4320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4321pub struct DropRule {
4322    pub(crate) syntax: SyntaxNode,
4323}
4324impl DropRule {
4325    #[inline]
4326    pub fn if_exists(&self) -> Option<IfExists> {
4327        support::child(&self.syntax)
4328    }
4329    #[inline]
4330    pub fn name_ref(&self) -> Option<NameRef> {
4331        support::child(&self.syntax)
4332    }
4333    #[inline]
4334    pub fn drop_token(&self) -> Option<SyntaxToken> {
4335        support::token(&self.syntax, SyntaxKind::DROP_KW)
4336    }
4337    #[inline]
4338    pub fn on_token(&self) -> Option<SyntaxToken> {
4339        support::token(&self.syntax, SyntaxKind::ON_KW)
4340    }
4341    #[inline]
4342    pub fn rule_token(&self) -> Option<SyntaxToken> {
4343        support::token(&self.syntax, SyntaxKind::RULE_KW)
4344    }
4345}
4346
4347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4348pub struct DropSchema {
4349    pub(crate) syntax: SyntaxNode,
4350}
4351impl DropSchema {
4352    #[inline]
4353    pub fn if_exists(&self) -> Option<IfExists> {
4354        support::child(&self.syntax)
4355    }
4356    #[inline]
4357    pub fn drop_token(&self) -> Option<SyntaxToken> {
4358        support::token(&self.syntax, SyntaxKind::DROP_KW)
4359    }
4360    #[inline]
4361    pub fn schema_token(&self) -> Option<SyntaxToken> {
4362        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4363    }
4364}
4365
4366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4367pub struct DropSequence {
4368    pub(crate) syntax: SyntaxNode,
4369}
4370impl DropSequence {
4371    #[inline]
4372    pub fn if_exists(&self) -> Option<IfExists> {
4373        support::child(&self.syntax)
4374    }
4375    #[inline]
4376    pub fn name_refs(&self) -> AstChildren<NameRef> {
4377        support::children(&self.syntax)
4378    }
4379    #[inline]
4380    pub fn drop_token(&self) -> Option<SyntaxToken> {
4381        support::token(&self.syntax, SyntaxKind::DROP_KW)
4382    }
4383    #[inline]
4384    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4385        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4386    }
4387}
4388
4389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4390pub struct DropServer {
4391    pub(crate) syntax: SyntaxNode,
4392}
4393impl DropServer {
4394    #[inline]
4395    pub fn if_exists(&self) -> Option<IfExists> {
4396        support::child(&self.syntax)
4397    }
4398    #[inline]
4399    pub fn name_ref(&self) -> Option<NameRef> {
4400        support::child(&self.syntax)
4401    }
4402    #[inline]
4403    pub fn drop_token(&self) -> Option<SyntaxToken> {
4404        support::token(&self.syntax, SyntaxKind::DROP_KW)
4405    }
4406    #[inline]
4407    pub fn server_token(&self) -> Option<SyntaxToken> {
4408        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4409    }
4410}
4411
4412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4413pub struct DropStatistics {
4414    pub(crate) syntax: SyntaxNode,
4415}
4416impl DropStatistics {
4417    #[inline]
4418    pub fn if_exists(&self) -> Option<IfExists> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn name_ref(&self) -> Option<NameRef> {
4423        support::child(&self.syntax)
4424    }
4425    #[inline]
4426    pub fn drop_token(&self) -> Option<SyntaxToken> {
4427        support::token(&self.syntax, SyntaxKind::DROP_KW)
4428    }
4429    #[inline]
4430    pub fn statistics_token(&self) -> Option<SyntaxToken> {
4431        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
4432    }
4433}
4434
4435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4436pub struct DropSubscription {
4437    pub(crate) syntax: SyntaxNode,
4438}
4439impl DropSubscription {
4440    #[inline]
4441    pub fn if_exists(&self) -> Option<IfExists> {
4442        support::child(&self.syntax)
4443    }
4444    #[inline]
4445    pub fn name_ref(&self) -> Option<NameRef> {
4446        support::child(&self.syntax)
4447    }
4448    #[inline]
4449    pub fn drop_token(&self) -> Option<SyntaxToken> {
4450        support::token(&self.syntax, SyntaxKind::DROP_KW)
4451    }
4452    #[inline]
4453    pub fn subscription_token(&self) -> Option<SyntaxToken> {
4454        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
4455    }
4456}
4457
4458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4459pub struct DropTable {
4460    pub(crate) syntax: SyntaxNode,
4461}
4462impl DropTable {
4463    #[inline]
4464    pub fn if_exists(&self) -> Option<IfExists> {
4465        support::child(&self.syntax)
4466    }
4467    #[inline]
4468    pub fn path(&self) -> Option<Path> {
4469        support::child(&self.syntax)
4470    }
4471    #[inline]
4472    pub fn comma_token(&self) -> Option<SyntaxToken> {
4473        support::token(&self.syntax, SyntaxKind::COMMA)
4474    }
4475    #[inline]
4476    pub fn cascade_token(&self) -> Option<SyntaxToken> {
4477        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
4478    }
4479    #[inline]
4480    pub fn drop_token(&self) -> Option<SyntaxToken> {
4481        support::token(&self.syntax, SyntaxKind::DROP_KW)
4482    }
4483    #[inline]
4484    pub fn restrict_token(&self) -> Option<SyntaxToken> {
4485        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
4486    }
4487    #[inline]
4488    pub fn table_token(&self) -> Option<SyntaxToken> {
4489        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4490    }
4491}
4492
4493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4494pub struct DropTablespace {
4495    pub(crate) syntax: SyntaxNode,
4496}
4497impl DropTablespace {
4498    #[inline]
4499    pub fn if_exists(&self) -> Option<IfExists> {
4500        support::child(&self.syntax)
4501    }
4502    #[inline]
4503    pub fn name_ref(&self) -> Option<NameRef> {
4504        support::child(&self.syntax)
4505    }
4506    #[inline]
4507    pub fn drop_token(&self) -> Option<SyntaxToken> {
4508        support::token(&self.syntax, SyntaxKind::DROP_KW)
4509    }
4510    #[inline]
4511    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
4512        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
4513    }
4514}
4515
4516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4517pub struct DropTextSearchConfig {
4518    pub(crate) syntax: SyntaxNode,
4519}
4520impl DropTextSearchConfig {
4521    #[inline]
4522    pub fn if_exists(&self) -> Option<IfExists> {
4523        support::child(&self.syntax)
4524    }
4525    #[inline]
4526    pub fn configuration_token(&self) -> Option<SyntaxToken> {
4527        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
4528    }
4529    #[inline]
4530    pub fn drop_token(&self) -> Option<SyntaxToken> {
4531        support::token(&self.syntax, SyntaxKind::DROP_KW)
4532    }
4533    #[inline]
4534    pub fn search_token(&self) -> Option<SyntaxToken> {
4535        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4536    }
4537    #[inline]
4538    pub fn text_token(&self) -> Option<SyntaxToken> {
4539        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4540    }
4541}
4542
4543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4544pub struct DropTextSearchDict {
4545    pub(crate) syntax: SyntaxNode,
4546}
4547impl DropTextSearchDict {
4548    #[inline]
4549    pub fn if_exists(&self) -> Option<IfExists> {
4550        support::child(&self.syntax)
4551    }
4552    #[inline]
4553    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
4554        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
4555    }
4556    #[inline]
4557    pub fn drop_token(&self) -> Option<SyntaxToken> {
4558        support::token(&self.syntax, SyntaxKind::DROP_KW)
4559    }
4560    #[inline]
4561    pub fn search_token(&self) -> Option<SyntaxToken> {
4562        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4563    }
4564    #[inline]
4565    pub fn text_token(&self) -> Option<SyntaxToken> {
4566        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4567    }
4568}
4569
4570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4571pub struct DropTextSearchParser {
4572    pub(crate) syntax: SyntaxNode,
4573}
4574impl DropTextSearchParser {
4575    #[inline]
4576    pub fn if_exists(&self) -> Option<IfExists> {
4577        support::child(&self.syntax)
4578    }
4579    #[inline]
4580    pub fn name_ref(&self) -> Option<NameRef> {
4581        support::child(&self.syntax)
4582    }
4583    #[inline]
4584    pub fn drop_token(&self) -> Option<SyntaxToken> {
4585        support::token(&self.syntax, SyntaxKind::DROP_KW)
4586    }
4587    #[inline]
4588    pub fn parser_token(&self) -> Option<SyntaxToken> {
4589        support::token(&self.syntax, SyntaxKind::PARSER_KW)
4590    }
4591    #[inline]
4592    pub fn search_token(&self) -> Option<SyntaxToken> {
4593        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4594    }
4595    #[inline]
4596    pub fn text_token(&self) -> Option<SyntaxToken> {
4597        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4598    }
4599}
4600
4601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4602pub struct DropTextSearchTemplate {
4603    pub(crate) syntax: SyntaxNode,
4604}
4605impl DropTextSearchTemplate {
4606    #[inline]
4607    pub fn if_exists(&self) -> Option<IfExists> {
4608        support::child(&self.syntax)
4609    }
4610    #[inline]
4611    pub fn drop_token(&self) -> Option<SyntaxToken> {
4612        support::token(&self.syntax, SyntaxKind::DROP_KW)
4613    }
4614    #[inline]
4615    pub fn search_token(&self) -> Option<SyntaxToken> {
4616        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
4617    }
4618    #[inline]
4619    pub fn template_token(&self) -> Option<SyntaxToken> {
4620        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4621    }
4622    #[inline]
4623    pub fn text_token(&self) -> Option<SyntaxToken> {
4624        support::token(&self.syntax, SyntaxKind::TEXT_KW)
4625    }
4626}
4627
4628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4629pub struct DropTransform {
4630    pub(crate) syntax: SyntaxNode,
4631}
4632impl DropTransform {
4633    #[inline]
4634    pub fn if_exists(&self) -> Option<IfExists> {
4635        support::child(&self.syntax)
4636    }
4637    #[inline]
4638    pub fn drop_token(&self) -> Option<SyntaxToken> {
4639        support::token(&self.syntax, SyntaxKind::DROP_KW)
4640    }
4641    #[inline]
4642    pub fn transform_token(&self) -> Option<SyntaxToken> {
4643        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
4644    }
4645}
4646
4647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4648pub struct DropTrigger {
4649    pub(crate) syntax: SyntaxNode,
4650}
4651impl DropTrigger {
4652    #[inline]
4653    pub fn if_exists(&self) -> Option<IfExists> {
4654        support::child(&self.syntax)
4655    }
4656    #[inline]
4657    pub fn name_ref(&self) -> Option<NameRef> {
4658        support::child(&self.syntax)
4659    }
4660    #[inline]
4661    pub fn drop_token(&self) -> Option<SyntaxToken> {
4662        support::token(&self.syntax, SyntaxKind::DROP_KW)
4663    }
4664    #[inline]
4665    pub fn on_token(&self) -> Option<SyntaxToken> {
4666        support::token(&self.syntax, SyntaxKind::ON_KW)
4667    }
4668    #[inline]
4669    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4670        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4671    }
4672}
4673
4674#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4675pub struct DropType {
4676    pub(crate) syntax: SyntaxNode,
4677}
4678impl DropType {
4679    #[inline]
4680    pub fn if_exists(&self) -> Option<IfExists> {
4681        support::child(&self.syntax)
4682    }
4683    #[inline]
4684    pub fn paths(&self) -> AstChildren<Path> {
4685        support::children(&self.syntax)
4686    }
4687    #[inline]
4688    pub fn cascade_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
4690    }
4691    #[inline]
4692    pub fn drop_token(&self) -> Option<SyntaxToken> {
4693        support::token(&self.syntax, SyntaxKind::DROP_KW)
4694    }
4695    #[inline]
4696    pub fn restrict_token(&self) -> Option<SyntaxToken> {
4697        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
4698    }
4699    #[inline]
4700    pub fn type_token(&self) -> Option<SyntaxToken> {
4701        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4702    }
4703}
4704
4705#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4706pub struct DropUser {
4707    pub(crate) syntax: SyntaxNode,
4708}
4709impl DropUser {
4710    #[inline]
4711    pub fn if_exists(&self) -> Option<IfExists> {
4712        support::child(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn name_refs(&self) -> AstChildren<NameRef> {
4716        support::children(&self.syntax)
4717    }
4718    #[inline]
4719    pub fn drop_token(&self) -> Option<SyntaxToken> {
4720        support::token(&self.syntax, SyntaxKind::DROP_KW)
4721    }
4722    #[inline]
4723    pub fn user_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::USER_KW)
4725    }
4726}
4727
4728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4729pub struct DropUserMapping {
4730    pub(crate) syntax: SyntaxNode,
4731}
4732impl DropUserMapping {
4733    #[inline]
4734    pub fn if_exists(&self) -> Option<IfExists> {
4735        support::child(&self.syntax)
4736    }
4737    #[inline]
4738    pub fn name_ref(&self) -> Option<NameRef> {
4739        support::child(&self.syntax)
4740    }
4741    #[inline]
4742    pub fn drop_token(&self) -> Option<SyntaxToken> {
4743        support::token(&self.syntax, SyntaxKind::DROP_KW)
4744    }
4745    #[inline]
4746    pub fn for_token(&self) -> Option<SyntaxToken> {
4747        support::token(&self.syntax, SyntaxKind::FOR_KW)
4748    }
4749    #[inline]
4750    pub fn mapping_token(&self) -> Option<SyntaxToken> {
4751        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
4752    }
4753    #[inline]
4754    pub fn server_token(&self) -> Option<SyntaxToken> {
4755        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4756    }
4757    #[inline]
4758    pub fn user_token(&self) -> Option<SyntaxToken> {
4759        support::token(&self.syntax, SyntaxKind::USER_KW)
4760    }
4761}
4762
4763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4764pub struct DropView {
4765    pub(crate) syntax: SyntaxNode,
4766}
4767impl DropView {
4768    #[inline]
4769    pub fn if_exists(&self) -> Option<IfExists> {
4770        support::child(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn drop_token(&self) -> Option<SyntaxToken> {
4774        support::token(&self.syntax, SyntaxKind::DROP_KW)
4775    }
4776    #[inline]
4777    pub fn view_token(&self) -> Option<SyntaxToken> {
4778        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4779    }
4780}
4781
4782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4783pub struct ElseClause {
4784    pub(crate) syntax: SyntaxNode,
4785}
4786impl ElseClause {
4787    #[inline]
4788    pub fn expr(&self) -> Option<Expr> {
4789        support::child(&self.syntax)
4790    }
4791    #[inline]
4792    pub fn else_token(&self) -> Option<SyntaxToken> {
4793        support::token(&self.syntax, SyntaxKind::ELSE_KW)
4794    }
4795}
4796
4797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4798pub struct EnableAlwaysRule {
4799    pub(crate) syntax: SyntaxNode,
4800}
4801impl EnableAlwaysRule {
4802    #[inline]
4803    pub fn always_token(&self) -> Option<SyntaxToken> {
4804        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
4805    }
4806    #[inline]
4807    pub fn enable_token(&self) -> Option<SyntaxToken> {
4808        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4809    }
4810    #[inline]
4811    pub fn rule_token(&self) -> Option<SyntaxToken> {
4812        support::token(&self.syntax, SyntaxKind::RULE_KW)
4813    }
4814}
4815
4816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4817pub struct EnableAlwaysTrigger {
4818    pub(crate) syntax: SyntaxNode,
4819}
4820impl EnableAlwaysTrigger {
4821    #[inline]
4822    pub fn always_token(&self) -> Option<SyntaxToken> {
4823        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
4824    }
4825    #[inline]
4826    pub fn enable_token(&self) -> Option<SyntaxToken> {
4827        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4828    }
4829    #[inline]
4830    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4831        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4832    }
4833}
4834
4835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4836pub struct EnableReplicaRule {
4837    pub(crate) syntax: SyntaxNode,
4838}
4839impl EnableReplicaRule {
4840    #[inline]
4841    pub fn enable_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4843    }
4844    #[inline]
4845    pub fn replica_token(&self) -> Option<SyntaxToken> {
4846        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
4847    }
4848    #[inline]
4849    pub fn rule_token(&self) -> Option<SyntaxToken> {
4850        support::token(&self.syntax, SyntaxKind::RULE_KW)
4851    }
4852}
4853
4854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4855pub struct EnableReplicaTrigger {
4856    pub(crate) syntax: SyntaxNode,
4857}
4858impl EnableReplicaTrigger {
4859    #[inline]
4860    pub fn enable_token(&self) -> Option<SyntaxToken> {
4861        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4862    }
4863    #[inline]
4864    pub fn replica_token(&self) -> Option<SyntaxToken> {
4865        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
4866    }
4867    #[inline]
4868    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4869        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4870    }
4871}
4872
4873#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4874pub struct EnableRls {
4875    pub(crate) syntax: SyntaxNode,
4876}
4877impl EnableRls {
4878    #[inline]
4879    pub fn enable_token(&self) -> Option<SyntaxToken> {
4880        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4881    }
4882    #[inline]
4883    pub fn level_token(&self) -> Option<SyntaxToken> {
4884        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
4885    }
4886    #[inline]
4887    pub fn row_token(&self) -> Option<SyntaxToken> {
4888        support::token(&self.syntax, SyntaxKind::ROW_KW)
4889    }
4890    #[inline]
4891    pub fn security_token(&self) -> Option<SyntaxToken> {
4892        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
4893    }
4894}
4895
4896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4897pub struct EnableRule {
4898    pub(crate) syntax: SyntaxNode,
4899}
4900impl EnableRule {
4901    #[inline]
4902    pub fn enable_token(&self) -> Option<SyntaxToken> {
4903        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4904    }
4905    #[inline]
4906    pub fn rule_token(&self) -> Option<SyntaxToken> {
4907        support::token(&self.syntax, SyntaxKind::RULE_KW)
4908    }
4909}
4910
4911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4912pub struct EnableTrigger {
4913    pub(crate) syntax: SyntaxNode,
4914}
4915impl EnableTrigger {
4916    #[inline]
4917    pub fn enable_token(&self) -> Option<SyntaxToken> {
4918        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
4919    }
4920    #[inline]
4921    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4922        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4923    }
4924}
4925
4926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4927pub struct Enforced {
4928    pub(crate) syntax: SyntaxNode,
4929}
4930impl Enforced {
4931    #[inline]
4932    pub fn enforced_token(&self) -> Option<SyntaxToken> {
4933        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
4934    }
4935}
4936
4937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4938pub struct ExcludeConstraint {
4939    pub(crate) syntax: SyntaxNode,
4940}
4941impl ExcludeConstraint {
4942    #[inline]
4943    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
4944        support::child(&self.syntax)
4945    }
4946    #[inline]
4947    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
4948        support::child(&self.syntax)
4949    }
4950    #[inline]
4951    pub fn exclude_token(&self) -> Option<SyntaxToken> {
4952        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
4953    }
4954}
4955
4956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4957pub struct Execute {
4958    pub(crate) syntax: SyntaxNode,
4959}
4960impl Execute {
4961    #[inline]
4962    pub fn execute_token(&self) -> Option<SyntaxToken> {
4963        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4964    }
4965}
4966
4967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4968pub struct Explain {
4969    pub(crate) syntax: SyntaxNode,
4970}
4971impl Explain {
4972    #[inline]
4973    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
4974        support::child(&self.syntax)
4975    }
4976    #[inline]
4977    pub fn explain_token(&self) -> Option<SyntaxToken> {
4978        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
4979    }
4980}
4981
4982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4983pub struct ExprType {
4984    pub(crate) syntax: SyntaxNode,
4985}
4986impl ExprType {
4987    #[inline]
4988    pub fn expr(&self) -> Option<Expr> {
4989        support::child(&self.syntax)
4990    }
4991}
4992
4993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4994pub struct FatArrow {
4995    pub(crate) syntax: SyntaxNode,
4996}
4997impl FatArrow {
4998    #[inline]
4999    pub fn eq_token(&self) -> Option<SyntaxToken> {
5000        support::token(&self.syntax, SyntaxKind::EQ)
5001    }
5002    #[inline]
5003    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5004        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5005    }
5006}
5007
5008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5009pub struct Fetch {
5010    pub(crate) syntax: SyntaxNode,
5011}
5012impl Fetch {
5013    #[inline]
5014    pub fn fetch_token(&self) -> Option<SyntaxToken> {
5015        support::token(&self.syntax, SyntaxKind::FETCH_KW)
5016    }
5017}
5018
5019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5020pub struct FetchClause {
5021    pub(crate) syntax: SyntaxNode,
5022}
5023impl FetchClause {
5024    #[inline]
5025    pub fn expr(&self) -> Option<Expr> {
5026        support::child(&self.syntax)
5027    }
5028    #[inline]
5029    pub fn fetch_token(&self) -> Option<SyntaxToken> {
5030        support::token(&self.syntax, SyntaxKind::FETCH_KW)
5031    }
5032    #[inline]
5033    pub fn first_token(&self) -> Option<SyntaxToken> {
5034        support::token(&self.syntax, SyntaxKind::FIRST_KW)
5035    }
5036    #[inline]
5037    pub fn next_token(&self) -> Option<SyntaxToken> {
5038        support::token(&self.syntax, SyntaxKind::NEXT_KW)
5039    }
5040    #[inline]
5041    pub fn only_token(&self) -> Option<SyntaxToken> {
5042        support::token(&self.syntax, SyntaxKind::ONLY_KW)
5043    }
5044    #[inline]
5045    pub fn row_token(&self) -> Option<SyntaxToken> {
5046        support::token(&self.syntax, SyntaxKind::ROW_KW)
5047    }
5048    #[inline]
5049    pub fn rows_token(&self) -> Option<SyntaxToken> {
5050        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5051    }
5052    #[inline]
5053    pub fn ties_token(&self) -> Option<SyntaxToken> {
5054        support::token(&self.syntax, SyntaxKind::TIES_KW)
5055    }
5056    #[inline]
5057    pub fn with_token(&self) -> Option<SyntaxToken> {
5058        support::token(&self.syntax, SyntaxKind::WITH_KW)
5059    }
5060}
5061
5062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5063pub struct FieldExpr {
5064    pub(crate) syntax: SyntaxNode,
5065}
5066impl FieldExpr {
5067    #[inline]
5068    pub fn star_token(&self) -> Option<SyntaxToken> {
5069        support::token(&self.syntax, SyntaxKind::STAR)
5070    }
5071    #[inline]
5072    pub fn dot_token(&self) -> Option<SyntaxToken> {
5073        support::token(&self.syntax, SyntaxKind::DOT)
5074    }
5075}
5076
5077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5078pub struct FilterClause {
5079    pub(crate) syntax: SyntaxNode,
5080}
5081impl FilterClause {
5082    #[inline]
5083    pub fn expr(&self) -> Option<Expr> {
5084        support::child(&self.syntax)
5085    }
5086    #[inline]
5087    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5088        support::token(&self.syntax, SyntaxKind::L_PAREN)
5089    }
5090    #[inline]
5091    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5092        support::token(&self.syntax, SyntaxKind::R_PAREN)
5093    }
5094    #[inline]
5095    pub fn filter_token(&self) -> Option<SyntaxToken> {
5096        support::token(&self.syntax, SyntaxKind::FILTER_KW)
5097    }
5098    #[inline]
5099    pub fn where_token(&self) -> Option<SyntaxToken> {
5100        support::token(&self.syntax, SyntaxKind::WHERE_KW)
5101    }
5102}
5103
5104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5105pub struct ForceRls {
5106    pub(crate) syntax: SyntaxNode,
5107}
5108impl ForceRls {
5109    #[inline]
5110    pub fn force_token(&self) -> Option<SyntaxToken> {
5111        support::token(&self.syntax, SyntaxKind::FORCE_KW)
5112    }
5113    #[inline]
5114    pub fn level_token(&self) -> Option<SyntaxToken> {
5115        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
5116    }
5117    #[inline]
5118    pub fn row_token(&self) -> Option<SyntaxToken> {
5119        support::token(&self.syntax, SyntaxKind::ROW_KW)
5120    }
5121    #[inline]
5122    pub fn security_token(&self) -> Option<SyntaxToken> {
5123        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
5124    }
5125}
5126
5127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5128pub struct ForeignKeyConstraint {
5129    pub(crate) syntax: SyntaxNode,
5130}
5131impl ForeignKeyConstraint {
5132    #[inline]
5133    pub fn match_type(&self) -> Option<MatchType> {
5134        support::child(&self.syntax)
5135    }
5136    #[inline]
5137    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
5138        support::child(&self.syntax)
5139    }
5140    #[inline]
5141    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
5142        support::child(&self.syntax)
5143    }
5144    #[inline]
5145    pub fn path(&self) -> Option<Path> {
5146        support::child(&self.syntax)
5147    }
5148    #[inline]
5149    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5150        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5151    }
5152    #[inline]
5153    pub fn key_token(&self) -> Option<SyntaxToken> {
5154        support::token(&self.syntax, SyntaxKind::KEY_KW)
5155    }
5156    #[inline]
5157    pub fn references_token(&self) -> Option<SyntaxToken> {
5158        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
5159    }
5160}
5161
5162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5163pub struct FrameClause {
5164    pub(crate) syntax: SyntaxNode,
5165}
5166impl FrameClause {
5167    #[inline]
5168    pub fn groups_token(&self) -> Option<SyntaxToken> {
5169        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
5170    }
5171    #[inline]
5172    pub fn range_token(&self) -> Option<SyntaxToken> {
5173        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5174    }
5175    #[inline]
5176    pub fn rows_token(&self) -> Option<SyntaxToken> {
5177        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5178    }
5179}
5180
5181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5182pub struct FromClause {
5183    pub(crate) syntax: SyntaxNode,
5184}
5185impl FromClause {
5186    #[inline]
5187    pub fn from_items(&self) -> AstChildren<FromItem> {
5188        support::children(&self.syntax)
5189    }
5190    #[inline]
5191    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
5192        support::children(&self.syntax)
5193    }
5194    #[inline]
5195    pub fn from_token(&self) -> Option<SyntaxToken> {
5196        support::token(&self.syntax, SyntaxKind::FROM_KW)
5197    }
5198}
5199
5200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5201pub struct FromItem {
5202    pub(crate) syntax: SyntaxNode,
5203}
5204impl FromItem {
5205    #[inline]
5206    pub fn alias(&self) -> Option<Alias> {
5207        support::child(&self.syntax)
5208    }
5209    #[inline]
5210    pub fn call_expr(&self) -> Option<CallExpr> {
5211        support::child(&self.syntax)
5212    }
5213    #[inline]
5214    pub fn field_expr(&self) -> Option<FieldExpr> {
5215        support::child(&self.syntax)
5216    }
5217    #[inline]
5218    pub fn name_ref(&self) -> Option<NameRef> {
5219        support::child(&self.syntax)
5220    }
5221    #[inline]
5222    pub fn paren_select(&self) -> Option<ParenSelect> {
5223        support::child(&self.syntax)
5224    }
5225    #[inline]
5226    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5227        support::token(&self.syntax, SyntaxKind::L_PAREN)
5228    }
5229    #[inline]
5230    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5231        support::token(&self.syntax, SyntaxKind::R_PAREN)
5232    }
5233    #[inline]
5234    pub fn from_token(&self) -> Option<SyntaxToken> {
5235        support::token(&self.syntax, SyntaxKind::FROM_KW)
5236    }
5237    #[inline]
5238    pub fn lateral_token(&self) -> Option<SyntaxToken> {
5239        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
5240    }
5241    #[inline]
5242    pub fn only_token(&self) -> Option<SyntaxToken> {
5243        support::token(&self.syntax, SyntaxKind::ONLY_KW)
5244    }
5245    #[inline]
5246    pub fn rows_token(&self) -> Option<SyntaxToken> {
5247        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5248    }
5249}
5250
5251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5252pub struct FuncOptionList {
5253    pub(crate) syntax: SyntaxNode,
5254}
5255impl FuncOptionList {
5256    #[inline]
5257    pub fn options(&self) -> AstChildren<FuncOption> {
5258        support::children(&self.syntax)
5259    }
5260}
5261
5262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5263pub struct FunctionSig {
5264    pub(crate) syntax: SyntaxNode,
5265}
5266impl FunctionSig {
5267    #[inline]
5268    pub fn param_list(&self) -> Option<ParamList> {
5269        support::child(&self.syntax)
5270    }
5271    #[inline]
5272    pub fn path(&self) -> Option<Path> {
5273        support::child(&self.syntax)
5274    }
5275}
5276
5277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5278pub struct FunctionSigList {
5279    pub(crate) syntax: SyntaxNode,
5280}
5281impl FunctionSigList {
5282    #[inline]
5283    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
5284        support::children(&self.syntax)
5285    }
5286}
5287
5288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5289pub struct GeneratedConstraint {
5290    pub(crate) syntax: SyntaxNode,
5291}
5292impl GeneratedConstraint {
5293    #[inline]
5294    pub fn expr(&self) -> Option<Expr> {
5295        support::child(&self.syntax)
5296    }
5297    #[inline]
5298    pub fn name_ref(&self) -> Option<NameRef> {
5299        support::child(&self.syntax)
5300    }
5301    #[inline]
5302    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
5303        support::child(&self.syntax)
5304    }
5305    #[inline]
5306    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5307        support::token(&self.syntax, SyntaxKind::L_PAREN)
5308    }
5309    #[inline]
5310    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::R_PAREN)
5312    }
5313    #[inline]
5314    pub fn always_token(&self) -> Option<SyntaxToken> {
5315        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
5316    }
5317    #[inline]
5318    pub fn as_token(&self) -> Option<SyntaxToken> {
5319        support::token(&self.syntax, SyntaxKind::AS_KW)
5320    }
5321    #[inline]
5322    pub fn by_token(&self) -> Option<SyntaxToken> {
5323        support::token(&self.syntax, SyntaxKind::BY_KW)
5324    }
5325    #[inline]
5326    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5327        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5328    }
5329    #[inline]
5330    pub fn default_token(&self) -> Option<SyntaxToken> {
5331        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5332    }
5333    #[inline]
5334    pub fn generated_token(&self) -> Option<SyntaxToken> {
5335        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
5336    }
5337    #[inline]
5338    pub fn identity_token(&self) -> Option<SyntaxToken> {
5339        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
5340    }
5341    #[inline]
5342    pub fn stored_token(&self) -> Option<SyntaxToken> {
5343        support::token(&self.syntax, SyntaxKind::STORED_KW)
5344    }
5345}
5346
5347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5348pub struct Grant {
5349    pub(crate) syntax: SyntaxNode,
5350}
5351impl Grant {
5352    #[inline]
5353    pub fn grant_token(&self) -> Option<SyntaxToken> {
5354        support::token(&self.syntax, SyntaxKind::GRANT_KW)
5355    }
5356}
5357
5358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5359pub struct GroupByClause {
5360    pub(crate) syntax: SyntaxNode,
5361}
5362impl GroupByClause {
5363    #[inline]
5364    pub fn group_by_list(&self) -> Option<GroupByList> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn all_token(&self) -> Option<SyntaxToken> {
5369        support::token(&self.syntax, SyntaxKind::ALL_KW)
5370    }
5371    #[inline]
5372    pub fn by_token(&self) -> Option<SyntaxToken> {
5373        support::token(&self.syntax, SyntaxKind::BY_KW)
5374    }
5375    #[inline]
5376    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5378    }
5379    #[inline]
5380    pub fn group_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::GROUP_KW)
5382    }
5383}
5384
5385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5386pub struct GroupByList {
5387    pub(crate) syntax: SyntaxNode,
5388}
5389impl GroupByList {
5390    #[inline]
5391    pub fn group_bys(&self) -> AstChildren<GroupBy> {
5392        support::children(&self.syntax)
5393    }
5394}
5395
5396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5397pub struct GroupingCube {
5398    pub(crate) syntax: SyntaxNode,
5399}
5400impl GroupingCube {
5401    #[inline]
5402    pub fn expr(&self) -> Option<Expr> {
5403        support::child(&self.syntax)
5404    }
5405    #[inline]
5406    pub fn cube_token(&self) -> Option<SyntaxToken> {
5407        support::token(&self.syntax, SyntaxKind::CUBE_KW)
5408    }
5409}
5410
5411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5412pub struct GroupingExpr {
5413    pub(crate) syntax: SyntaxNode,
5414}
5415impl GroupingExpr {
5416    #[inline]
5417    pub fn expr(&self) -> Option<Expr> {
5418        support::child(&self.syntax)
5419    }
5420}
5421
5422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5423pub struct GroupingRollup {
5424    pub(crate) syntax: SyntaxNode,
5425}
5426impl GroupingRollup {
5427    #[inline]
5428    pub fn expr(&self) -> Option<Expr> {
5429        support::child(&self.syntax)
5430    }
5431    #[inline]
5432    pub fn rollup_token(&self) -> Option<SyntaxToken> {
5433        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
5434    }
5435}
5436
5437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5438pub struct GroupingSets {
5439    pub(crate) syntax: SyntaxNode,
5440}
5441impl GroupingSets {
5442    #[inline]
5443    pub fn expr(&self) -> Option<Expr> {
5444        support::child(&self.syntax)
5445    }
5446    #[inline]
5447    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5448        support::token(&self.syntax, SyntaxKind::L_PAREN)
5449    }
5450    #[inline]
5451    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5452        support::token(&self.syntax, SyntaxKind::R_PAREN)
5453    }
5454    #[inline]
5455    pub fn grouping_token(&self) -> Option<SyntaxToken> {
5456        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
5457    }
5458    #[inline]
5459    pub fn sets_token(&self) -> Option<SyntaxToken> {
5460        support::token(&self.syntax, SyntaxKind::SETS_KW)
5461    }
5462}
5463
5464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5465pub struct Gteq {
5466    pub(crate) syntax: SyntaxNode,
5467}
5468impl Gteq {
5469    #[inline]
5470    pub fn eq_token(&self) -> Option<SyntaxToken> {
5471        support::token(&self.syntax, SyntaxKind::EQ)
5472    }
5473    #[inline]
5474    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5475        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5476    }
5477}
5478
5479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5480pub struct HavingClause {
5481    pub(crate) syntax: SyntaxNode,
5482}
5483impl HavingClause {
5484    #[inline]
5485    pub fn expr(&self) -> Option<Expr> {
5486        support::child(&self.syntax)
5487    }
5488    #[inline]
5489    pub fn having_token(&self) -> Option<SyntaxToken> {
5490        support::token(&self.syntax, SyntaxKind::HAVING_KW)
5491    }
5492}
5493
5494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5495pub struct IfExists {
5496    pub(crate) syntax: SyntaxNode,
5497}
5498impl IfExists {
5499    #[inline]
5500    pub fn exists_token(&self) -> Option<SyntaxToken> {
5501        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5502    }
5503    #[inline]
5504    pub fn if_token(&self) -> Option<SyntaxToken> {
5505        support::token(&self.syntax, SyntaxKind::IF_KW)
5506    }
5507}
5508
5509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5510pub struct IfNotExists {
5511    pub(crate) syntax: SyntaxNode,
5512}
5513impl IfNotExists {
5514    #[inline]
5515    pub fn exists_token(&self) -> Option<SyntaxToken> {
5516        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
5517    }
5518    #[inline]
5519    pub fn if_token(&self) -> Option<SyntaxToken> {
5520        support::token(&self.syntax, SyntaxKind::IF_KW)
5521    }
5522    #[inline]
5523    pub fn not_token(&self) -> Option<SyntaxToken> {
5524        support::token(&self.syntax, SyntaxKind::NOT_KW)
5525    }
5526}
5527
5528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5529pub struct ImportForeignSchema {
5530    pub(crate) syntax: SyntaxNode,
5531}
5532impl ImportForeignSchema {
5533    #[inline]
5534    pub fn name_ref(&self) -> Option<NameRef> {
5535        support::child(&self.syntax)
5536    }
5537    #[inline]
5538    pub fn foreign_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
5540    }
5541    #[inline]
5542    pub fn import_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
5544    }
5545    #[inline]
5546    pub fn schema_token(&self) -> Option<SyntaxToken> {
5547        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
5548    }
5549}
5550
5551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5552pub struct IndexExpr {
5553    pub(crate) syntax: SyntaxNode,
5554}
5555impl IndexExpr {
5556    #[inline]
5557    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
5558        support::token(&self.syntax, SyntaxKind::L_BRACK)
5559    }
5560    #[inline]
5561    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
5562        support::token(&self.syntax, SyntaxKind::R_BRACK)
5563    }
5564}
5565
5566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5567pub struct Inherit {
5568    pub(crate) syntax: SyntaxNode,
5569}
5570impl Inherit {
5571    #[inline]
5572    pub fn path(&self) -> Option<Path> {
5573        support::child(&self.syntax)
5574    }
5575    #[inline]
5576    pub fn inherit_token(&self) -> Option<SyntaxToken> {
5577        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
5578    }
5579}
5580
5581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5582pub struct InheritTable {
5583    pub(crate) syntax: SyntaxNode,
5584}
5585impl InheritTable {
5586    #[inline]
5587    pub fn path(&self) -> Option<Path> {
5588        support::child(&self.syntax)
5589    }
5590    #[inline]
5591    pub fn inherit_token(&self) -> Option<SyntaxToken> {
5592        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
5593    }
5594}
5595
5596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5597pub struct Inherits {
5598    pub(crate) syntax: SyntaxNode,
5599}
5600impl Inherits {
5601    #[inline]
5602    pub fn paths(&self) -> AstChildren<Path> {
5603        support::children(&self.syntax)
5604    }
5605    #[inline]
5606    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5607        support::token(&self.syntax, SyntaxKind::L_PAREN)
5608    }
5609    #[inline]
5610    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5611        support::token(&self.syntax, SyntaxKind::R_PAREN)
5612    }
5613    #[inline]
5614    pub fn inherits_token(&self) -> Option<SyntaxToken> {
5615        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
5616    }
5617}
5618
5619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5620pub struct InitiallyDeferredConstraintOption {
5621    pub(crate) syntax: SyntaxNode,
5622}
5623impl InitiallyDeferredConstraintOption {
5624    #[inline]
5625    pub fn deferred_token(&self) -> Option<SyntaxToken> {
5626        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
5627    }
5628    #[inline]
5629    pub fn initially_token(&self) -> Option<SyntaxToken> {
5630        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5631    }
5632}
5633
5634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5635pub struct InitiallyImmediateConstraintOption {
5636    pub(crate) syntax: SyntaxNode,
5637}
5638impl InitiallyImmediateConstraintOption {
5639    #[inline]
5640    pub fn immediate_token(&self) -> Option<SyntaxToken> {
5641        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
5642    }
5643    #[inline]
5644    pub fn initially_token(&self) -> Option<SyntaxToken> {
5645        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
5646    }
5647}
5648
5649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5650pub struct Insert {
5651    pub(crate) syntax: SyntaxNode,
5652}
5653impl Insert {
5654    #[inline]
5655    pub fn alias(&self) -> Option<Alias> {
5656        support::child(&self.syntax)
5657    }
5658    #[inline]
5659    pub fn column_list(&self) -> Option<ColumnList> {
5660        support::child(&self.syntax)
5661    }
5662    #[inline]
5663    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
5664        support::child(&self.syntax)
5665    }
5666    #[inline]
5667    pub fn path(&self) -> Option<Path> {
5668        support::child(&self.syntax)
5669    }
5670    #[inline]
5671    pub fn returning_clause(&self) -> Option<ReturningClause> {
5672        support::child(&self.syntax)
5673    }
5674    #[inline]
5675    pub fn stmt(&self) -> Option<Stmt> {
5676        support::child(&self.syntax)
5677    }
5678    #[inline]
5679    pub fn values(&self) -> Option<Values> {
5680        support::child(&self.syntax)
5681    }
5682    #[inline]
5683    pub fn default_token(&self) -> Option<SyntaxToken> {
5684        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5685    }
5686    #[inline]
5687    pub fn insert_token(&self) -> Option<SyntaxToken> {
5688        support::token(&self.syntax, SyntaxKind::INSERT_KW)
5689    }
5690    #[inline]
5691    pub fn into_token(&self) -> Option<SyntaxToken> {
5692        support::token(&self.syntax, SyntaxKind::INTO_KW)
5693    }
5694    #[inline]
5695    pub fn overriding_token(&self) -> Option<SyntaxToken> {
5696        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
5697    }
5698    #[inline]
5699    pub fn system_token(&self) -> Option<SyntaxToken> {
5700        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
5701    }
5702    #[inline]
5703    pub fn user_token(&self) -> Option<SyntaxToken> {
5704        support::token(&self.syntax, SyntaxKind::USER_KW)
5705    }
5706    #[inline]
5707    pub fn value_token(&self) -> Option<SyntaxToken> {
5708        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5709    }
5710    #[inline]
5711    pub fn values_token(&self) -> Option<SyntaxToken> {
5712        support::token(&self.syntax, SyntaxKind::VALUES_KW)
5713    }
5714}
5715
5716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5717pub struct IntervalType {
5718    pub(crate) syntax: SyntaxNode,
5719}
5720impl IntervalType {
5721    #[inline]
5722    pub fn literal(&self) -> Option<Literal> {
5723        support::child(&self.syntax)
5724    }
5725    #[inline]
5726    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5727        support::token(&self.syntax, SyntaxKind::L_PAREN)
5728    }
5729    #[inline]
5730    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::R_PAREN)
5732    }
5733    #[inline]
5734    pub fn day_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::DAY_KW)
5736    }
5737    #[inline]
5738    pub fn hour_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::HOUR_KW)
5740    }
5741    #[inline]
5742    pub fn interval_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
5744    }
5745    #[inline]
5746    pub fn minute_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
5748    }
5749    #[inline]
5750    pub fn month_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::MONTH_KW)
5752    }
5753    #[inline]
5754    pub fn second_token(&self) -> Option<SyntaxToken> {
5755        support::token(&self.syntax, SyntaxKind::SECOND_KW)
5756    }
5757    #[inline]
5758    pub fn to_token(&self) -> Option<SyntaxToken> {
5759        support::token(&self.syntax, SyntaxKind::TO_KW)
5760    }
5761    #[inline]
5762    pub fn year_token(&self) -> Option<SyntaxToken> {
5763        support::token(&self.syntax, SyntaxKind::YEAR_KW)
5764    }
5765}
5766
5767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5768pub struct IntoClause {
5769    pub(crate) syntax: SyntaxNode,
5770}
5771impl IntoClause {
5772    #[inline]
5773    pub fn into_token(&self) -> Option<SyntaxToken> {
5774        support::token(&self.syntax, SyntaxKind::INTO_KW)
5775    }
5776}
5777
5778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5779pub struct IsDistinctFrom {
5780    pub(crate) syntax: SyntaxNode,
5781}
5782impl IsDistinctFrom {
5783    #[inline]
5784    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5785        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5786    }
5787    #[inline]
5788    pub fn from_token(&self) -> Option<SyntaxToken> {
5789        support::token(&self.syntax, SyntaxKind::FROM_KW)
5790    }
5791    #[inline]
5792    pub fn is_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::IS_KW)
5794    }
5795}
5796
5797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5798pub struct IsJson {
5799    pub(crate) syntax: SyntaxNode,
5800}
5801impl IsJson {
5802    #[inline]
5803    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5804        support::child(&self.syntax)
5805    }
5806    #[inline]
5807    pub fn is_token(&self) -> Option<SyntaxToken> {
5808        support::token(&self.syntax, SyntaxKind::IS_KW)
5809    }
5810    #[inline]
5811    pub fn json_token(&self) -> Option<SyntaxToken> {
5812        support::token(&self.syntax, SyntaxKind::JSON_KW)
5813    }
5814}
5815
5816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5817pub struct IsJsonArray {
5818    pub(crate) syntax: SyntaxNode,
5819}
5820impl IsJsonArray {
5821    #[inline]
5822    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5823        support::child(&self.syntax)
5824    }
5825    #[inline]
5826    pub fn array_token(&self) -> Option<SyntaxToken> {
5827        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
5828    }
5829    #[inline]
5830    pub fn is_token(&self) -> Option<SyntaxToken> {
5831        support::token(&self.syntax, SyntaxKind::IS_KW)
5832    }
5833    #[inline]
5834    pub fn json_token(&self) -> Option<SyntaxToken> {
5835        support::token(&self.syntax, SyntaxKind::JSON_KW)
5836    }
5837}
5838
5839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5840pub struct IsJsonObject {
5841    pub(crate) syntax: SyntaxNode,
5842}
5843impl IsJsonObject {
5844    #[inline]
5845    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5846        support::child(&self.syntax)
5847    }
5848    #[inline]
5849    pub fn is_token(&self) -> Option<SyntaxToken> {
5850        support::token(&self.syntax, SyntaxKind::IS_KW)
5851    }
5852    #[inline]
5853    pub fn json_token(&self) -> Option<SyntaxToken> {
5854        support::token(&self.syntax, SyntaxKind::JSON_KW)
5855    }
5856    #[inline]
5857    pub fn object_token(&self) -> Option<SyntaxToken> {
5858        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
5859    }
5860}
5861
5862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5863pub struct IsJsonScalar {
5864    pub(crate) syntax: SyntaxNode,
5865}
5866impl IsJsonScalar {
5867    #[inline]
5868    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5869        support::child(&self.syntax)
5870    }
5871    #[inline]
5872    pub fn is_token(&self) -> Option<SyntaxToken> {
5873        support::token(&self.syntax, SyntaxKind::IS_KW)
5874    }
5875    #[inline]
5876    pub fn json_token(&self) -> Option<SyntaxToken> {
5877        support::token(&self.syntax, SyntaxKind::JSON_KW)
5878    }
5879    #[inline]
5880    pub fn scalar_token(&self) -> Option<SyntaxToken> {
5881        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
5882    }
5883}
5884
5885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5886pub struct IsJsonValue {
5887    pub(crate) syntax: SyntaxNode,
5888}
5889impl IsJsonValue {
5890    #[inline]
5891    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5892        support::child(&self.syntax)
5893    }
5894    #[inline]
5895    pub fn is_token(&self) -> Option<SyntaxToken> {
5896        support::token(&self.syntax, SyntaxKind::IS_KW)
5897    }
5898    #[inline]
5899    pub fn json_token(&self) -> Option<SyntaxToken> {
5900        support::token(&self.syntax, SyntaxKind::JSON_KW)
5901    }
5902    #[inline]
5903    pub fn value_token(&self) -> Option<SyntaxToken> {
5904        support::token(&self.syntax, SyntaxKind::VALUE_KW)
5905    }
5906}
5907
5908#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5909pub struct IsNormalized {
5910    pub(crate) syntax: SyntaxNode,
5911}
5912impl IsNormalized {
5913    #[inline]
5914    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
5915        support::child(&self.syntax)
5916    }
5917    #[inline]
5918    pub fn is_token(&self) -> Option<SyntaxToken> {
5919        support::token(&self.syntax, SyntaxKind::IS_KW)
5920    }
5921    #[inline]
5922    pub fn normalized_token(&self) -> Option<SyntaxToken> {
5923        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
5924    }
5925}
5926
5927#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5928pub struct IsNot {
5929    pub(crate) syntax: SyntaxNode,
5930}
5931impl IsNot {
5932    #[inline]
5933    pub fn is_token(&self) -> Option<SyntaxToken> {
5934        support::token(&self.syntax, SyntaxKind::IS_KW)
5935    }
5936    #[inline]
5937    pub fn not_token(&self) -> Option<SyntaxToken> {
5938        support::token(&self.syntax, SyntaxKind::NOT_KW)
5939    }
5940}
5941
5942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5943pub struct IsNotDistinctFrom {
5944    pub(crate) syntax: SyntaxNode,
5945}
5946impl IsNotDistinctFrom {
5947    #[inline]
5948    pub fn distinct_token(&self) -> Option<SyntaxToken> {
5949        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
5950    }
5951    #[inline]
5952    pub fn from_token(&self) -> Option<SyntaxToken> {
5953        support::token(&self.syntax, SyntaxKind::FROM_KW)
5954    }
5955    #[inline]
5956    pub fn is_token(&self) -> Option<SyntaxToken> {
5957        support::token(&self.syntax, SyntaxKind::IS_KW)
5958    }
5959    #[inline]
5960    pub fn not_token(&self) -> Option<SyntaxToken> {
5961        support::token(&self.syntax, SyntaxKind::NOT_KW)
5962    }
5963}
5964
5965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5966pub struct IsNotJson {
5967    pub(crate) syntax: SyntaxNode,
5968}
5969impl IsNotJson {
5970    #[inline]
5971    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5972        support::child(&self.syntax)
5973    }
5974    #[inline]
5975    pub fn is_token(&self) -> Option<SyntaxToken> {
5976        support::token(&self.syntax, SyntaxKind::IS_KW)
5977    }
5978    #[inline]
5979    pub fn json_token(&self) -> Option<SyntaxToken> {
5980        support::token(&self.syntax, SyntaxKind::JSON_KW)
5981    }
5982    #[inline]
5983    pub fn not_token(&self) -> Option<SyntaxToken> {
5984        support::token(&self.syntax, SyntaxKind::NOT_KW)
5985    }
5986}
5987
5988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5989pub struct IsNotJsonArray {
5990    pub(crate) syntax: SyntaxNode,
5991}
5992impl IsNotJsonArray {
5993    #[inline]
5994    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
5995        support::child(&self.syntax)
5996    }
5997    #[inline]
5998    pub fn array_token(&self) -> Option<SyntaxToken> {
5999        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
6000    }
6001    #[inline]
6002    pub fn is_token(&self) -> Option<SyntaxToken> {
6003        support::token(&self.syntax, SyntaxKind::IS_KW)
6004    }
6005    #[inline]
6006    pub fn json_token(&self) -> Option<SyntaxToken> {
6007        support::token(&self.syntax, SyntaxKind::JSON_KW)
6008    }
6009    #[inline]
6010    pub fn not_token(&self) -> Option<SyntaxToken> {
6011        support::token(&self.syntax, SyntaxKind::NOT_KW)
6012    }
6013}
6014
6015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6016pub struct IsNotJsonObject {
6017    pub(crate) syntax: SyntaxNode,
6018}
6019impl IsNotJsonObject {
6020    #[inline]
6021    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
6022        support::child(&self.syntax)
6023    }
6024    #[inline]
6025    pub fn is_token(&self) -> Option<SyntaxToken> {
6026        support::token(&self.syntax, SyntaxKind::IS_KW)
6027    }
6028    #[inline]
6029    pub fn json_token(&self) -> Option<SyntaxToken> {
6030        support::token(&self.syntax, SyntaxKind::JSON_KW)
6031    }
6032    #[inline]
6033    pub fn not_token(&self) -> Option<SyntaxToken> {
6034        support::token(&self.syntax, SyntaxKind::NOT_KW)
6035    }
6036    #[inline]
6037    pub fn object_token(&self) -> Option<SyntaxToken> {
6038        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
6039    }
6040}
6041
6042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6043pub struct IsNotJsonScalar {
6044    pub(crate) syntax: SyntaxNode,
6045}
6046impl IsNotJsonScalar {
6047    #[inline]
6048    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
6049        support::child(&self.syntax)
6050    }
6051    #[inline]
6052    pub fn is_token(&self) -> Option<SyntaxToken> {
6053        support::token(&self.syntax, SyntaxKind::IS_KW)
6054    }
6055    #[inline]
6056    pub fn json_token(&self) -> Option<SyntaxToken> {
6057        support::token(&self.syntax, SyntaxKind::JSON_KW)
6058    }
6059    #[inline]
6060    pub fn not_token(&self) -> Option<SyntaxToken> {
6061        support::token(&self.syntax, SyntaxKind::NOT_KW)
6062    }
6063    #[inline]
6064    pub fn scalar_token(&self) -> Option<SyntaxToken> {
6065        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
6066    }
6067}
6068
6069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6070pub struct IsNotJsonValue {
6071    pub(crate) syntax: SyntaxNode,
6072}
6073impl IsNotJsonValue {
6074    #[inline]
6075    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
6076        support::child(&self.syntax)
6077    }
6078    #[inline]
6079    pub fn is_token(&self) -> Option<SyntaxToken> {
6080        support::token(&self.syntax, SyntaxKind::IS_KW)
6081    }
6082    #[inline]
6083    pub fn json_token(&self) -> Option<SyntaxToken> {
6084        support::token(&self.syntax, SyntaxKind::JSON_KW)
6085    }
6086    #[inline]
6087    pub fn not_token(&self) -> Option<SyntaxToken> {
6088        support::token(&self.syntax, SyntaxKind::NOT_KW)
6089    }
6090    #[inline]
6091    pub fn value_token(&self) -> Option<SyntaxToken> {
6092        support::token(&self.syntax, SyntaxKind::VALUE_KW)
6093    }
6094}
6095
6096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6097pub struct IsNotNormalized {
6098    pub(crate) syntax: SyntaxNode,
6099}
6100impl IsNotNormalized {
6101    #[inline]
6102    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
6103        support::child(&self.syntax)
6104    }
6105    #[inline]
6106    pub fn is_token(&self) -> Option<SyntaxToken> {
6107        support::token(&self.syntax, SyntaxKind::IS_KW)
6108    }
6109    #[inline]
6110    pub fn normalized_token(&self) -> Option<SyntaxToken> {
6111        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
6112    }
6113    #[inline]
6114    pub fn not_token(&self) -> Option<SyntaxToken> {
6115        support::token(&self.syntax, SyntaxKind::NOT_KW)
6116    }
6117}
6118
6119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6120pub struct Join {
6121    pub(crate) syntax: SyntaxNode,
6122}
6123impl Join {
6124    #[inline]
6125    pub fn from_item(&self) -> Option<FromItem> {
6126        support::child(&self.syntax)
6127    }
6128    #[inline]
6129    pub fn join_type(&self) -> Option<JoinType> {
6130        support::child(&self.syntax)
6131    }
6132    #[inline]
6133    pub fn on_clause(&self) -> Option<OnClause> {
6134        support::child(&self.syntax)
6135    }
6136    #[inline]
6137    pub fn using_clause(&self) -> Option<JoinUsingClause> {
6138        support::child(&self.syntax)
6139    }
6140    #[inline]
6141    pub fn natural_token(&self) -> Option<SyntaxToken> {
6142        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
6143    }
6144}
6145
6146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6147pub struct JoinCross {
6148    pub(crate) syntax: SyntaxNode,
6149}
6150impl JoinCross {
6151    #[inline]
6152    pub fn cross_token(&self) -> Option<SyntaxToken> {
6153        support::token(&self.syntax, SyntaxKind::CROSS_KW)
6154    }
6155    #[inline]
6156    pub fn join_token(&self) -> Option<SyntaxToken> {
6157        support::token(&self.syntax, SyntaxKind::JOIN_KW)
6158    }
6159}
6160
6161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6162pub struct JoinExpr {
6163    pub(crate) syntax: SyntaxNode,
6164}
6165impl JoinExpr {
6166    #[inline]
6167    pub fn from_item(&self) -> Option<FromItem> {
6168        support::child(&self.syntax)
6169    }
6170    #[inline]
6171    pub fn join(&self) -> Option<Join> {
6172        support::child(&self.syntax)
6173    }
6174    #[inline]
6175    pub fn join_expr(&self) -> Option<JoinExpr> {
6176        support::child(&self.syntax)
6177    }
6178}
6179
6180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6181pub struct JoinFull {
6182    pub(crate) syntax: SyntaxNode,
6183}
6184impl JoinFull {
6185    #[inline]
6186    pub fn full_token(&self) -> Option<SyntaxToken> {
6187        support::token(&self.syntax, SyntaxKind::FULL_KW)
6188    }
6189    #[inline]
6190    pub fn join_token(&self) -> Option<SyntaxToken> {
6191        support::token(&self.syntax, SyntaxKind::JOIN_KW)
6192    }
6193    #[inline]
6194    pub fn outer_token(&self) -> Option<SyntaxToken> {
6195        support::token(&self.syntax, SyntaxKind::OUTER_KW)
6196    }
6197}
6198
6199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6200pub struct JoinInner {
6201    pub(crate) syntax: SyntaxNode,
6202}
6203impl JoinInner {
6204    #[inline]
6205    pub fn inner_token(&self) -> Option<SyntaxToken> {
6206        support::token(&self.syntax, SyntaxKind::INNER_KW)
6207    }
6208    #[inline]
6209    pub fn join_token(&self) -> Option<SyntaxToken> {
6210        support::token(&self.syntax, SyntaxKind::JOIN_KW)
6211    }
6212}
6213
6214#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6215pub struct JoinLeft {
6216    pub(crate) syntax: SyntaxNode,
6217}
6218impl JoinLeft {
6219    #[inline]
6220    pub fn join_token(&self) -> Option<SyntaxToken> {
6221        support::token(&self.syntax, SyntaxKind::JOIN_KW)
6222    }
6223    #[inline]
6224    pub fn left_token(&self) -> Option<SyntaxToken> {
6225        support::token(&self.syntax, SyntaxKind::LEFT_KW)
6226    }
6227    #[inline]
6228    pub fn outer_token(&self) -> Option<SyntaxToken> {
6229        support::token(&self.syntax, SyntaxKind::OUTER_KW)
6230    }
6231}
6232
6233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6234pub struct JoinRight {
6235    pub(crate) syntax: SyntaxNode,
6236}
6237impl JoinRight {
6238    #[inline]
6239    pub fn join_token(&self) -> Option<SyntaxToken> {
6240        support::token(&self.syntax, SyntaxKind::JOIN_KW)
6241    }
6242    #[inline]
6243    pub fn outer_token(&self) -> Option<SyntaxToken> {
6244        support::token(&self.syntax, SyntaxKind::OUTER_KW)
6245    }
6246    #[inline]
6247    pub fn right_token(&self) -> Option<SyntaxToken> {
6248        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
6249    }
6250}
6251
6252#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6253pub struct JoinUsingClause {
6254    pub(crate) syntax: SyntaxNode,
6255}
6256impl JoinUsingClause {
6257    #[inline]
6258    pub fn alias(&self) -> Option<Alias> {
6259        support::child(&self.syntax)
6260    }
6261    #[inline]
6262    pub fn column_list(&self) -> Option<ColumnList> {
6263        support::child(&self.syntax)
6264    }
6265    #[inline]
6266    pub fn using_token(&self) -> Option<SyntaxToken> {
6267        support::token(&self.syntax, SyntaxKind::USING_KW)
6268    }
6269}
6270
6271#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6272pub struct JsonBehaviorDefault {
6273    pub(crate) syntax: SyntaxNode,
6274}
6275impl JsonBehaviorDefault {
6276    #[inline]
6277    pub fn expr(&self) -> Option<Expr> {
6278        support::child(&self.syntax)
6279    }
6280    #[inline]
6281    pub fn default_token(&self) -> Option<SyntaxToken> {
6282        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6283    }
6284}
6285
6286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6287pub struct JsonBehaviorEmptyArray {
6288    pub(crate) syntax: SyntaxNode,
6289}
6290impl JsonBehaviorEmptyArray {
6291    #[inline]
6292    pub fn array_token(&self) -> Option<SyntaxToken> {
6293        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
6294    }
6295    #[inline]
6296    pub fn empty_token(&self) -> Option<SyntaxToken> {
6297        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6298    }
6299}
6300
6301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6302pub struct JsonBehaviorEmptyObject {
6303    pub(crate) syntax: SyntaxNode,
6304}
6305impl JsonBehaviorEmptyObject {
6306    #[inline]
6307    pub fn empty_token(&self) -> Option<SyntaxToken> {
6308        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6309    }
6310    #[inline]
6311    pub fn object_token(&self) -> Option<SyntaxToken> {
6312        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
6313    }
6314}
6315
6316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6317pub struct JsonBehaviorError {
6318    pub(crate) syntax: SyntaxNode,
6319}
6320impl JsonBehaviorError {
6321    #[inline]
6322    pub fn error_token(&self) -> Option<SyntaxToken> {
6323        support::token(&self.syntax, SyntaxKind::ERROR_KW)
6324    }
6325}
6326
6327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6328pub struct JsonBehaviorFalse {
6329    pub(crate) syntax: SyntaxNode,
6330}
6331impl JsonBehaviorFalse {
6332    #[inline]
6333    pub fn false_token(&self) -> Option<SyntaxToken> {
6334        support::token(&self.syntax, SyntaxKind::FALSE_KW)
6335    }
6336}
6337
6338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6339pub struct JsonBehaviorNull {
6340    pub(crate) syntax: SyntaxNode,
6341}
6342impl JsonBehaviorNull {
6343    #[inline]
6344    pub fn null_token(&self) -> Option<SyntaxToken> {
6345        support::token(&self.syntax, SyntaxKind::NULL_KW)
6346    }
6347}
6348
6349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6350pub struct JsonBehaviorTrue {
6351    pub(crate) syntax: SyntaxNode,
6352}
6353impl JsonBehaviorTrue {
6354    #[inline]
6355    pub fn true_token(&self) -> Option<SyntaxToken> {
6356        support::token(&self.syntax, SyntaxKind::TRUE_KW)
6357    }
6358}
6359
6360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6361pub struct JsonBehaviorUnknown {
6362    pub(crate) syntax: SyntaxNode,
6363}
6364impl JsonBehaviorUnknown {
6365    #[inline]
6366    pub fn unknown_token(&self) -> Option<SyntaxToken> {
6367        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
6368    }
6369}
6370
6371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6372pub struct JsonFormatClause {
6373    pub(crate) syntax: SyntaxNode,
6374}
6375impl JsonFormatClause {
6376    #[inline]
6377    pub fn name(&self) -> Option<Name> {
6378        support::child(&self.syntax)
6379    }
6380    #[inline]
6381    pub fn encoding_token(&self) -> Option<SyntaxToken> {
6382        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
6383    }
6384    #[inline]
6385    pub fn format_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
6387    }
6388    #[inline]
6389    pub fn json_token(&self) -> Option<SyntaxToken> {
6390        support::token(&self.syntax, SyntaxKind::JSON_KW)
6391    }
6392}
6393
6394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6395pub struct JsonKeyValue {
6396    pub(crate) syntax: SyntaxNode,
6397}
6398impl JsonKeyValue {
6399    #[inline]
6400    pub fn expr(&self) -> Option<Expr> {
6401        support::child(&self.syntax)
6402    }
6403    #[inline]
6404    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
6405        support::child(&self.syntax)
6406    }
6407    #[inline]
6408    pub fn colon_token(&self) -> Option<SyntaxToken> {
6409        support::token(&self.syntax, SyntaxKind::COLON)
6410    }
6411}
6412
6413#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6414pub struct JsonKeysUniqueClause {
6415    pub(crate) syntax: SyntaxNode,
6416}
6417impl JsonKeysUniqueClause {
6418    #[inline]
6419    pub fn keys_token(&self) -> Option<SyntaxToken> {
6420        support::token(&self.syntax, SyntaxKind::KEYS_KW)
6421    }
6422    #[inline]
6423    pub fn unique_token(&self) -> Option<SyntaxToken> {
6424        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
6425    }
6426    #[inline]
6427    pub fn with_token(&self) -> Option<SyntaxToken> {
6428        support::token(&self.syntax, SyntaxKind::WITH_KW)
6429    }
6430    #[inline]
6431    pub fn without_token(&self) -> Option<SyntaxToken> {
6432        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6433    }
6434}
6435
6436#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6437pub struct JsonNullClause {
6438    pub(crate) syntax: SyntaxNode,
6439}
6440impl JsonNullClause {
6441    #[inline]
6442    pub fn absent_token(&self) -> Option<SyntaxToken> {
6443        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
6444    }
6445    #[inline]
6446    pub fn null_token(&self) -> Option<SyntaxToken> {
6447        support::token(&self.syntax, SyntaxKind::NULL_KW)
6448    }
6449    #[inline]
6450    pub fn on_token(&self) -> Option<SyntaxToken> {
6451        support::token(&self.syntax, SyntaxKind::ON_KW)
6452    }
6453}
6454
6455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6456pub struct JsonOnEmptyClause {
6457    pub(crate) syntax: SyntaxNode,
6458}
6459impl JsonOnEmptyClause {
6460    #[inline]
6461    pub fn json_behavior(&self) -> Option<JsonBehavior> {
6462        support::child(&self.syntax)
6463    }
6464    #[inline]
6465    pub fn empty_token(&self) -> Option<SyntaxToken> {
6466        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
6467    }
6468    #[inline]
6469    pub fn on_token(&self) -> Option<SyntaxToken> {
6470        support::token(&self.syntax, SyntaxKind::ON_KW)
6471    }
6472}
6473
6474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6475pub struct JsonOnErrorClause {
6476    pub(crate) syntax: SyntaxNode,
6477}
6478impl JsonOnErrorClause {
6479    #[inline]
6480    pub fn json_behavior(&self) -> Option<JsonBehavior> {
6481        support::child(&self.syntax)
6482    }
6483    #[inline]
6484    pub fn error_token(&self) -> Option<SyntaxToken> {
6485        support::token(&self.syntax, SyntaxKind::ERROR_KW)
6486    }
6487    #[inline]
6488    pub fn on_token(&self) -> Option<SyntaxToken> {
6489        support::token(&self.syntax, SyntaxKind::ON_KW)
6490    }
6491}
6492
6493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6494pub struct JsonPassingArg {
6495    pub(crate) syntax: SyntaxNode,
6496}
6497impl JsonPassingArg {
6498    #[inline]
6499    pub fn expr(&self) -> Option<Expr> {
6500        support::child(&self.syntax)
6501    }
6502    #[inline]
6503    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6504        support::child(&self.syntax)
6505    }
6506    #[inline]
6507    pub fn name(&self) -> Option<Name> {
6508        support::child(&self.syntax)
6509    }
6510    #[inline]
6511    pub fn as_token(&self) -> Option<SyntaxToken> {
6512        support::token(&self.syntax, SyntaxKind::AS_KW)
6513    }
6514}
6515
6516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6517pub struct JsonPassingClause {
6518    pub(crate) syntax: SyntaxNode,
6519}
6520impl JsonPassingClause {
6521    #[inline]
6522    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
6523        support::children(&self.syntax)
6524    }
6525    #[inline]
6526    pub fn passing_token(&self) -> Option<SyntaxToken> {
6527        support::token(&self.syntax, SyntaxKind::PASSING_KW)
6528    }
6529}
6530
6531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6532pub struct JsonQuotesClause {
6533    pub(crate) syntax: SyntaxNode,
6534}
6535impl JsonQuotesClause {
6536    #[inline]
6537    pub fn keep_token(&self) -> Option<SyntaxToken> {
6538        support::token(&self.syntax, SyntaxKind::KEEP_KW)
6539    }
6540    #[inline]
6541    pub fn omit_token(&self) -> Option<SyntaxToken> {
6542        support::token(&self.syntax, SyntaxKind::OMIT_KW)
6543    }
6544    #[inline]
6545    pub fn quotes_token(&self) -> Option<SyntaxToken> {
6546        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
6547    }
6548}
6549
6550#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6551pub struct JsonReturningClause {
6552    pub(crate) syntax: SyntaxNode,
6553}
6554impl JsonReturningClause {
6555    #[inline]
6556    pub fn ty(&self) -> Option<Type> {
6557        support::child(&self.syntax)
6558    }
6559    #[inline]
6560    pub fn returning_token(&self) -> Option<SyntaxToken> {
6561        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
6562    }
6563}
6564
6565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6566pub struct JsonTableColumn {
6567    pub(crate) syntax: SyntaxNode,
6568}
6569impl JsonTableColumn {
6570    #[inline]
6571    pub fn expr(&self) -> Option<Expr> {
6572        support::child(&self.syntax)
6573    }
6574    #[inline]
6575    pub fn name(&self) -> Option<Name> {
6576        support::child(&self.syntax)
6577    }
6578    #[inline]
6579    pub fn ty(&self) -> Option<Type> {
6580        support::child(&self.syntax)
6581    }
6582    #[inline]
6583    pub fn for_token(&self) -> Option<SyntaxToken> {
6584        support::token(&self.syntax, SyntaxKind::FOR_KW)
6585    }
6586    #[inline]
6587    pub fn nested_token(&self) -> Option<SyntaxToken> {
6588        support::token(&self.syntax, SyntaxKind::NESTED_KW)
6589    }
6590    #[inline]
6591    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
6592        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
6593    }
6594    #[inline]
6595    pub fn path_token(&self) -> Option<SyntaxToken> {
6596        support::token(&self.syntax, SyntaxKind::PATH_KW)
6597    }
6598}
6599
6600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6601pub struct JsonTableColumnList {
6602    pub(crate) syntax: SyntaxNode,
6603}
6604impl JsonTableColumnList {
6605    #[inline]
6606    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
6607        support::children(&self.syntax)
6608    }
6609    #[inline]
6610    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6611        support::token(&self.syntax, SyntaxKind::L_PAREN)
6612    }
6613    #[inline]
6614    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6615        support::token(&self.syntax, SyntaxKind::R_PAREN)
6616    }
6617    #[inline]
6618    pub fn columns_token(&self) -> Option<SyntaxToken> {
6619        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
6620    }
6621}
6622
6623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6624pub struct JsonValueExpr {
6625    pub(crate) syntax: SyntaxNode,
6626}
6627impl JsonValueExpr {
6628    #[inline]
6629    pub fn expr(&self) -> Option<Expr> {
6630        support::child(&self.syntax)
6631    }
6632    #[inline]
6633    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
6634        support::child(&self.syntax)
6635    }
6636}
6637
6638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6639pub struct JsonWrapperBehaviorClause {
6640    pub(crate) syntax: SyntaxNode,
6641}
6642impl JsonWrapperBehaviorClause {
6643    #[inline]
6644    pub fn conditional_token(&self) -> Option<SyntaxToken> {
6645        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
6646    }
6647    #[inline]
6648    pub fn with_token(&self) -> Option<SyntaxToken> {
6649        support::token(&self.syntax, SyntaxKind::WITH_KW)
6650    }
6651    #[inline]
6652    pub fn without_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
6654    }
6655    #[inline]
6656    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6657        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6658    }
6659}
6660
6661#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6662pub struct LanguageFuncOption {
6663    pub(crate) syntax: SyntaxNode,
6664}
6665impl LanguageFuncOption {
6666    #[inline]
6667    pub fn name_ref(&self) -> Option<NameRef> {
6668        support::child(&self.syntax)
6669    }
6670    #[inline]
6671    pub fn language_token(&self) -> Option<SyntaxToken> {
6672        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6673    }
6674}
6675
6676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6677pub struct LeakproofFuncOption {
6678    pub(crate) syntax: SyntaxNode,
6679}
6680impl LeakproofFuncOption {
6681    #[inline]
6682    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
6683        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
6684    }
6685    #[inline]
6686    pub fn not_token(&self) -> Option<SyntaxToken> {
6687        support::token(&self.syntax, SyntaxKind::NOT_KW)
6688    }
6689}
6690
6691#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6692pub struct LikeClause {
6693    pub(crate) syntax: SyntaxNode,
6694}
6695impl LikeClause {
6696    #[inline]
6697    pub fn like_options(&self) -> AstChildren<LikeOption> {
6698        support::children(&self.syntax)
6699    }
6700    #[inline]
6701    pub fn like_token(&self) -> Option<SyntaxToken> {
6702        support::token(&self.syntax, SyntaxKind::LIKE_KW)
6703    }
6704}
6705
6706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6707pub struct LikeOption {
6708    pub(crate) syntax: SyntaxNode,
6709}
6710impl LikeOption {
6711    #[inline]
6712    pub fn comments_token(&self) -> Option<SyntaxToken> {
6713        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
6714    }
6715    #[inline]
6716    pub fn compression_token(&self) -> Option<SyntaxToken> {
6717        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
6718    }
6719    #[inline]
6720    pub fn constraints_token(&self) -> Option<SyntaxToken> {
6721        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
6722    }
6723    #[inline]
6724    pub fn defaults_token(&self) -> Option<SyntaxToken> {
6725        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
6726    }
6727    #[inline]
6728    pub fn excluding_token(&self) -> Option<SyntaxToken> {
6729        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
6730    }
6731    #[inline]
6732    pub fn generated_token(&self) -> Option<SyntaxToken> {
6733        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
6734    }
6735    #[inline]
6736    pub fn identity_token(&self) -> Option<SyntaxToken> {
6737        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6738    }
6739    #[inline]
6740    pub fn including_token(&self) -> Option<SyntaxToken> {
6741        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
6742    }
6743    #[inline]
6744    pub fn indexes_token(&self) -> Option<SyntaxToken> {
6745        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
6746    }
6747}
6748
6749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6750pub struct LimitClause {
6751    pub(crate) syntax: SyntaxNode,
6752}
6753impl LimitClause {
6754    #[inline]
6755    pub fn expr(&self) -> Option<Expr> {
6756        support::child(&self.syntax)
6757    }
6758    #[inline]
6759    pub fn all_token(&self) -> Option<SyntaxToken> {
6760        support::token(&self.syntax, SyntaxKind::ALL_KW)
6761    }
6762    #[inline]
6763    pub fn limit_token(&self) -> Option<SyntaxToken> {
6764        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
6765    }
6766}
6767
6768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6769pub struct Listen {
6770    pub(crate) syntax: SyntaxNode,
6771}
6772impl Listen {
6773    #[inline]
6774    pub fn name_ref(&self) -> Option<NameRef> {
6775        support::child(&self.syntax)
6776    }
6777    #[inline]
6778    pub fn listen_token(&self) -> Option<SyntaxToken> {
6779        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
6780    }
6781}
6782
6783#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6784pub struct Literal {
6785    pub(crate) syntax: SyntaxNode,
6786}
6787impl Literal {}
6788
6789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6790pub struct Load {
6791    pub(crate) syntax: SyntaxNode,
6792}
6793impl Load {
6794    #[inline]
6795    pub fn load_token(&self) -> Option<SyntaxToken> {
6796        support::token(&self.syntax, SyntaxKind::LOAD_KW)
6797    }
6798}
6799
6800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6801pub struct Lock {
6802    pub(crate) syntax: SyntaxNode,
6803}
6804impl Lock {
6805    #[inline]
6806    pub fn lock_token(&self) -> Option<SyntaxToken> {
6807        support::token(&self.syntax, SyntaxKind::LOCK_KW)
6808    }
6809    #[inline]
6810    pub fn table_token(&self) -> Option<SyntaxToken> {
6811        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6812    }
6813}
6814
6815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6816pub struct LockingClause {
6817    pub(crate) syntax: SyntaxNode,
6818}
6819impl LockingClause {
6820    #[inline]
6821    pub fn for_token(&self) -> Option<SyntaxToken> {
6822        support::token(&self.syntax, SyntaxKind::FOR_KW)
6823    }
6824}
6825
6826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6827pub struct Lteq {
6828    pub(crate) syntax: SyntaxNode,
6829}
6830impl Lteq {
6831    #[inline]
6832    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
6833        support::token(&self.syntax, SyntaxKind::L_ANGLE)
6834    }
6835    #[inline]
6836    pub fn eq_token(&self) -> Option<SyntaxToken> {
6837        support::token(&self.syntax, SyntaxKind::EQ)
6838    }
6839}
6840
6841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6842pub struct MatchFull {
6843    pub(crate) syntax: SyntaxNode,
6844}
6845impl MatchFull {
6846    #[inline]
6847    pub fn full_token(&self) -> Option<SyntaxToken> {
6848        support::token(&self.syntax, SyntaxKind::FULL_KW)
6849    }
6850    #[inline]
6851    pub fn match_token(&self) -> Option<SyntaxToken> {
6852        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6853    }
6854}
6855
6856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6857pub struct MatchPartial {
6858    pub(crate) syntax: SyntaxNode,
6859}
6860impl MatchPartial {
6861    #[inline]
6862    pub fn match_token(&self) -> Option<SyntaxToken> {
6863        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6864    }
6865    #[inline]
6866    pub fn partial_token(&self) -> Option<SyntaxToken> {
6867        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
6868    }
6869}
6870
6871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6872pub struct MatchSimple {
6873    pub(crate) syntax: SyntaxNode,
6874}
6875impl MatchSimple {
6876    #[inline]
6877    pub fn match_token(&self) -> Option<SyntaxToken> {
6878        support::token(&self.syntax, SyntaxKind::MATCH_KW)
6879    }
6880    #[inline]
6881    pub fn simple_token(&self) -> Option<SyntaxToken> {
6882        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
6883    }
6884}
6885
6886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6887pub struct Materialized {
6888    pub(crate) syntax: SyntaxNode,
6889}
6890impl Materialized {
6891    #[inline]
6892    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6894    }
6895}
6896
6897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6898pub struct Merge {
6899    pub(crate) syntax: SyntaxNode,
6900}
6901impl Merge {
6902    #[inline]
6903    pub fn alias(&self) -> Option<Alias> {
6904        support::child(&self.syntax)
6905    }
6906    #[inline]
6907    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
6908        support::children(&self.syntax)
6909    }
6910    #[inline]
6911    pub fn relation_name(&self) -> Option<RelationName> {
6912        support::child(&self.syntax)
6913    }
6914    #[inline]
6915    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
6916        support::child(&self.syntax)
6917    }
6918    #[inline]
6919    pub fn into_token(&self) -> Option<SyntaxToken> {
6920        support::token(&self.syntax, SyntaxKind::INTO_KW)
6921    }
6922    #[inline]
6923    pub fn merge_token(&self) -> Option<SyntaxToken> {
6924        support::token(&self.syntax, SyntaxKind::MERGE_KW)
6925    }
6926}
6927
6928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6929pub struct MergeDelete {
6930    pub(crate) syntax: SyntaxNode,
6931}
6932impl MergeDelete {
6933    #[inline]
6934    pub fn delete_token(&self) -> Option<SyntaxToken> {
6935        support::token(&self.syntax, SyntaxKind::DELETE_KW)
6936    }
6937}
6938
6939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6940pub struct MergeDoNothing {
6941    pub(crate) syntax: SyntaxNode,
6942}
6943impl MergeDoNothing {
6944    #[inline]
6945    pub fn do_token(&self) -> Option<SyntaxToken> {
6946        support::token(&self.syntax, SyntaxKind::DO_KW)
6947    }
6948    #[inline]
6949    pub fn nothing_token(&self) -> Option<SyntaxToken> {
6950        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
6951    }
6952}
6953
6954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6955pub struct MergeInsert {
6956    pub(crate) syntax: SyntaxNode,
6957}
6958impl MergeInsert {
6959    #[inline]
6960    pub fn column_list(&self) -> Option<ColumnList> {
6961        support::child(&self.syntax)
6962    }
6963    #[inline]
6964    pub fn values(&self) -> Option<Values> {
6965        support::child(&self.syntax)
6966    }
6967    #[inline]
6968    pub fn default_token(&self) -> Option<SyntaxToken> {
6969        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6970    }
6971    #[inline]
6972    pub fn insert_token(&self) -> Option<SyntaxToken> {
6973        support::token(&self.syntax, SyntaxKind::INSERT_KW)
6974    }
6975    #[inline]
6976    pub fn overriding_token(&self) -> Option<SyntaxToken> {
6977        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
6978    }
6979    #[inline]
6980    pub fn system_token(&self) -> Option<SyntaxToken> {
6981        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
6982    }
6983    #[inline]
6984    pub fn user_token(&self) -> Option<SyntaxToken> {
6985        support::token(&self.syntax, SyntaxKind::USER_KW)
6986    }
6987    #[inline]
6988    pub fn values_token(&self) -> Option<SyntaxToken> {
6989        support::token(&self.syntax, SyntaxKind::VALUES_KW)
6990    }
6991}
6992
6993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6994pub struct MergeUpdate {
6995    pub(crate) syntax: SyntaxNode,
6996}
6997impl MergeUpdate {
6998    #[inline]
6999    pub fn set_clause(&self) -> Option<SetClause> {
7000        support::child(&self.syntax)
7001    }
7002    #[inline]
7003    pub fn set_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::SET_KW)
7005    }
7006    #[inline]
7007    pub fn update_token(&self) -> Option<SyntaxToken> {
7008        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
7009    }
7010}
7011
7012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7013pub struct MergeWhenMatched {
7014    pub(crate) syntax: SyntaxNode,
7015}
7016impl MergeWhenMatched {
7017    #[inline]
7018    pub fn expr(&self) -> Option<Expr> {
7019        support::child(&self.syntax)
7020    }
7021    #[inline]
7022    pub fn merge_action(&self) -> Option<MergeAction> {
7023        support::child(&self.syntax)
7024    }
7025    #[inline]
7026    pub fn and_token(&self) -> Option<SyntaxToken> {
7027        support::token(&self.syntax, SyntaxKind::AND_KW)
7028    }
7029    #[inline]
7030    pub fn matched_token(&self) -> Option<SyntaxToken> {
7031        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
7032    }
7033    #[inline]
7034    pub fn then_token(&self) -> Option<SyntaxToken> {
7035        support::token(&self.syntax, SyntaxKind::THEN_KW)
7036    }
7037    #[inline]
7038    pub fn when_token(&self) -> Option<SyntaxToken> {
7039        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7040    }
7041}
7042
7043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7044pub struct MergeWhenNotMatchedSource {
7045    pub(crate) syntax: SyntaxNode,
7046}
7047impl MergeWhenNotMatchedSource {
7048    #[inline]
7049    pub fn expr(&self) -> Option<Expr> {
7050        support::child(&self.syntax)
7051    }
7052    #[inline]
7053    pub fn merge_action(&self) -> Option<MergeAction> {
7054        support::child(&self.syntax)
7055    }
7056    #[inline]
7057    pub fn and_token(&self) -> Option<SyntaxToken> {
7058        support::token(&self.syntax, SyntaxKind::AND_KW)
7059    }
7060    #[inline]
7061    pub fn by_token(&self) -> Option<SyntaxToken> {
7062        support::token(&self.syntax, SyntaxKind::BY_KW)
7063    }
7064    #[inline]
7065    pub fn matched_token(&self) -> Option<SyntaxToken> {
7066        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
7067    }
7068    #[inline]
7069    pub fn not_token(&self) -> Option<SyntaxToken> {
7070        support::token(&self.syntax, SyntaxKind::NOT_KW)
7071    }
7072    #[inline]
7073    pub fn source_token(&self) -> Option<SyntaxToken> {
7074        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
7075    }
7076    #[inline]
7077    pub fn then_token(&self) -> Option<SyntaxToken> {
7078        support::token(&self.syntax, SyntaxKind::THEN_KW)
7079    }
7080    #[inline]
7081    pub fn when_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7083    }
7084}
7085
7086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7087pub struct MergeWhenNotMatchedTarget {
7088    pub(crate) syntax: SyntaxNode,
7089}
7090impl MergeWhenNotMatchedTarget {
7091    #[inline]
7092    pub fn expr(&self) -> Option<Expr> {
7093        support::child(&self.syntax)
7094    }
7095    #[inline]
7096    pub fn merge_action(&self) -> Option<MergeAction> {
7097        support::child(&self.syntax)
7098    }
7099    #[inline]
7100    pub fn and_token(&self) -> Option<SyntaxToken> {
7101        support::token(&self.syntax, SyntaxKind::AND_KW)
7102    }
7103    #[inline]
7104    pub fn by_token(&self) -> Option<SyntaxToken> {
7105        support::token(&self.syntax, SyntaxKind::BY_KW)
7106    }
7107    #[inline]
7108    pub fn matched_token(&self) -> Option<SyntaxToken> {
7109        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
7110    }
7111    #[inline]
7112    pub fn not_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::NOT_KW)
7114    }
7115    #[inline]
7116    pub fn target_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::TARGET_KW)
7118    }
7119    #[inline]
7120    pub fn then_token(&self) -> Option<SyntaxToken> {
7121        support::token(&self.syntax, SyntaxKind::THEN_KW)
7122    }
7123    #[inline]
7124    pub fn when_token(&self) -> Option<SyntaxToken> {
7125        support::token(&self.syntax, SyntaxKind::WHEN_KW)
7126    }
7127}
7128
7129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7130pub struct Move {
7131    pub(crate) syntax: SyntaxNode,
7132}
7133impl Move {
7134    #[inline]
7135    pub fn move_token(&self) -> Option<SyntaxToken> {
7136        support::token(&self.syntax, SyntaxKind::MOVE_KW)
7137    }
7138}
7139
7140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7141pub struct Name {
7142    pub(crate) syntax: SyntaxNode,
7143}
7144impl Name {
7145    #[inline]
7146    pub fn ident_token(&self) -> Option<SyntaxToken> {
7147        support::token(&self.syntax, SyntaxKind::IDENT)
7148    }
7149}
7150
7151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7152pub struct NameRef {
7153    pub(crate) syntax: SyntaxNode,
7154}
7155impl NameRef {
7156    #[inline]
7157    pub fn ident_token(&self) -> Option<SyntaxToken> {
7158        support::token(&self.syntax, SyntaxKind::IDENT)
7159    }
7160}
7161
7162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7163pub struct NamedArg {
7164    pub(crate) syntax: SyntaxNode,
7165}
7166impl NamedArg {
7167    #[inline]
7168    pub fn expr(&self) -> Option<Expr> {
7169        support::child(&self.syntax)
7170    }
7171    #[inline]
7172    pub fn fat_arrow(&self) -> Option<FatArrow> {
7173        support::child(&self.syntax)
7174    }
7175    #[inline]
7176    pub fn name_ref(&self) -> Option<NameRef> {
7177        support::child(&self.syntax)
7178    }
7179}
7180
7181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7182pub struct Neq {
7183    pub(crate) syntax: SyntaxNode,
7184}
7185impl Neq {
7186    #[inline]
7187    pub fn bang_token(&self) -> Option<SyntaxToken> {
7188        support::token(&self.syntax, SyntaxKind::BANG)
7189    }
7190    #[inline]
7191    pub fn eq_token(&self) -> Option<SyntaxToken> {
7192        support::token(&self.syntax, SyntaxKind::EQ)
7193    }
7194}
7195
7196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7197pub struct Neqb {
7198    pub(crate) syntax: SyntaxNode,
7199}
7200impl Neqb {
7201    #[inline]
7202    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
7203        support::token(&self.syntax, SyntaxKind::L_ANGLE)
7204    }
7205    #[inline]
7206    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7207        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7208    }
7209}
7210
7211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7212pub struct NoAction {
7213    pub(crate) syntax: SyntaxNode,
7214}
7215impl NoAction {
7216    #[inline]
7217    pub fn action_token(&self) -> Option<SyntaxToken> {
7218        support::token(&self.syntax, SyntaxKind::ACTION_KW)
7219    }
7220    #[inline]
7221    pub fn no_token(&self) -> Option<SyntaxToken> {
7222        support::token(&self.syntax, SyntaxKind::NO_KW)
7223    }
7224}
7225
7226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7227pub struct NoForceRls {
7228    pub(crate) syntax: SyntaxNode,
7229}
7230impl NoForceRls {
7231    #[inline]
7232    pub fn force_token(&self) -> Option<SyntaxToken> {
7233        support::token(&self.syntax, SyntaxKind::FORCE_KW)
7234    }
7235    #[inline]
7236    pub fn level_token(&self) -> Option<SyntaxToken> {
7237        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
7238    }
7239    #[inline]
7240    pub fn no_token(&self) -> Option<SyntaxToken> {
7241        support::token(&self.syntax, SyntaxKind::NO_KW)
7242    }
7243    #[inline]
7244    pub fn row_token(&self) -> Option<SyntaxToken> {
7245        support::token(&self.syntax, SyntaxKind::ROW_KW)
7246    }
7247    #[inline]
7248    pub fn security_token(&self) -> Option<SyntaxToken> {
7249        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
7250    }
7251}
7252
7253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7254pub struct NoInherit {
7255    pub(crate) syntax: SyntaxNode,
7256}
7257impl NoInherit {
7258    #[inline]
7259    pub fn path(&self) -> Option<Path> {
7260        support::child(&self.syntax)
7261    }
7262    #[inline]
7263    pub fn inherit_token(&self) -> Option<SyntaxToken> {
7264        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
7265    }
7266    #[inline]
7267    pub fn no_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::NO_KW)
7269    }
7270}
7271
7272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7273pub struct NoInheritTable {
7274    pub(crate) syntax: SyntaxNode,
7275}
7276impl NoInheritTable {
7277    #[inline]
7278    pub fn path(&self) -> Option<Path> {
7279        support::child(&self.syntax)
7280    }
7281    #[inline]
7282    pub fn inherit_token(&self) -> Option<SyntaxToken> {
7283        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
7284    }
7285    #[inline]
7286    pub fn no_token(&self) -> Option<SyntaxToken> {
7287        support::token(&self.syntax, SyntaxKind::NO_KW)
7288    }
7289}
7290
7291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7292pub struct NonStandardParam {
7293    pub(crate) syntax: SyntaxNode,
7294}
7295impl NonStandardParam {
7296    #[inline]
7297    pub fn name_ref(&self) -> Option<NameRef> {
7298        support::child(&self.syntax)
7299    }
7300    #[inline]
7301    pub fn colon_token(&self) -> Option<SyntaxToken> {
7302        support::token(&self.syntax, SyntaxKind::COLON)
7303    }
7304}
7305
7306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7307pub struct NotDeferrable {
7308    pub(crate) syntax: SyntaxNode,
7309}
7310impl NotDeferrable {
7311    #[inline]
7312    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
7313        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
7314    }
7315    #[inline]
7316    pub fn not_token(&self) -> Option<SyntaxToken> {
7317        support::token(&self.syntax, SyntaxKind::NOT_KW)
7318    }
7319}
7320
7321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7322pub struct NotDeferrableConstraintOption {
7323    pub(crate) syntax: SyntaxNode,
7324}
7325impl NotDeferrableConstraintOption {
7326    #[inline]
7327    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
7328        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
7329    }
7330    #[inline]
7331    pub fn not_token(&self) -> Option<SyntaxToken> {
7332        support::token(&self.syntax, SyntaxKind::NOT_KW)
7333    }
7334}
7335
7336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7337pub struct NotEnforced {
7338    pub(crate) syntax: SyntaxNode,
7339}
7340impl NotEnforced {
7341    #[inline]
7342    pub fn enforced_token(&self) -> Option<SyntaxToken> {
7343        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
7344    }
7345    #[inline]
7346    pub fn not_token(&self) -> Option<SyntaxToken> {
7347        support::token(&self.syntax, SyntaxKind::NOT_KW)
7348    }
7349}
7350
7351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7352pub struct NotIlike {
7353    pub(crate) syntax: SyntaxNode,
7354}
7355impl NotIlike {
7356    #[inline]
7357    pub fn ilike_token(&self) -> Option<SyntaxToken> {
7358        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
7359    }
7360    #[inline]
7361    pub fn not_token(&self) -> Option<SyntaxToken> {
7362        support::token(&self.syntax, SyntaxKind::NOT_KW)
7363    }
7364}
7365
7366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7367pub struct NotIn {
7368    pub(crate) syntax: SyntaxNode,
7369}
7370impl NotIn {
7371    #[inline]
7372    pub fn in_token(&self) -> Option<SyntaxToken> {
7373        support::token(&self.syntax, SyntaxKind::IN_KW)
7374    }
7375    #[inline]
7376    pub fn not_token(&self) -> Option<SyntaxToken> {
7377        support::token(&self.syntax, SyntaxKind::NOT_KW)
7378    }
7379}
7380
7381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7382pub struct NotLike {
7383    pub(crate) syntax: SyntaxNode,
7384}
7385impl NotLike {
7386    #[inline]
7387    pub fn like_token(&self) -> Option<SyntaxToken> {
7388        support::token(&self.syntax, SyntaxKind::LIKE_KW)
7389    }
7390    #[inline]
7391    pub fn not_token(&self) -> Option<SyntaxToken> {
7392        support::token(&self.syntax, SyntaxKind::NOT_KW)
7393    }
7394}
7395
7396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7397pub struct NotMaterialized {
7398    pub(crate) syntax: SyntaxNode,
7399}
7400impl NotMaterialized {
7401    #[inline]
7402    pub fn materialized_token(&self) -> Option<SyntaxToken> {
7403        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
7404    }
7405    #[inline]
7406    pub fn not_token(&self) -> Option<SyntaxToken> {
7407        support::token(&self.syntax, SyntaxKind::NOT_KW)
7408    }
7409}
7410
7411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7412pub struct NotNullConstraint {
7413    pub(crate) syntax: SyntaxNode,
7414}
7415impl NotNullConstraint {
7416    #[inline]
7417    pub fn name_ref(&self) -> Option<NameRef> {
7418        support::child(&self.syntax)
7419    }
7420    #[inline]
7421    pub fn no_inherit(&self) -> Option<NoInherit> {
7422        support::child(&self.syntax)
7423    }
7424    #[inline]
7425    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7426        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7427    }
7428    #[inline]
7429    pub fn not_token(&self) -> Option<SyntaxToken> {
7430        support::token(&self.syntax, SyntaxKind::NOT_KW)
7431    }
7432    #[inline]
7433    pub fn null_token(&self) -> Option<SyntaxToken> {
7434        support::token(&self.syntax, SyntaxKind::NULL_KW)
7435    }
7436}
7437
7438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7439pub struct NotOf {
7440    pub(crate) syntax: SyntaxNode,
7441}
7442impl NotOf {
7443    #[inline]
7444    pub fn not_token(&self) -> Option<SyntaxToken> {
7445        support::token(&self.syntax, SyntaxKind::NOT_KW)
7446    }
7447    #[inline]
7448    pub fn of_token(&self) -> Option<SyntaxToken> {
7449        support::token(&self.syntax, SyntaxKind::OF_KW)
7450    }
7451}
7452
7453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7454pub struct NotSimilarTo {
7455    pub(crate) syntax: SyntaxNode,
7456}
7457impl NotSimilarTo {
7458    #[inline]
7459    pub fn not_token(&self) -> Option<SyntaxToken> {
7460        support::token(&self.syntax, SyntaxKind::NOT_KW)
7461    }
7462    #[inline]
7463    pub fn similar_token(&self) -> Option<SyntaxToken> {
7464        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
7465    }
7466    #[inline]
7467    pub fn to_token(&self) -> Option<SyntaxToken> {
7468        support::token(&self.syntax, SyntaxKind::TO_KW)
7469    }
7470}
7471
7472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7473pub struct NotValid {
7474    pub(crate) syntax: SyntaxNode,
7475}
7476impl NotValid {
7477    #[inline]
7478    pub fn not_token(&self) -> Option<SyntaxToken> {
7479        support::token(&self.syntax, SyntaxKind::NOT_KW)
7480    }
7481    #[inline]
7482    pub fn valid_token(&self) -> Option<SyntaxToken> {
7483        support::token(&self.syntax, SyntaxKind::VALID_KW)
7484    }
7485}
7486
7487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7488pub struct Notify {
7489    pub(crate) syntax: SyntaxNode,
7490}
7491impl Notify {
7492    #[inline]
7493    pub fn notify_token(&self) -> Option<SyntaxToken> {
7494        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
7495    }
7496}
7497
7498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7499pub struct NullConstraint {
7500    pub(crate) syntax: SyntaxNode,
7501}
7502impl NullConstraint {
7503    #[inline]
7504    pub fn name_ref(&self) -> Option<NameRef> {
7505        support::child(&self.syntax)
7506    }
7507    #[inline]
7508    pub fn constraint_token(&self) -> Option<SyntaxToken> {
7509        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
7510    }
7511    #[inline]
7512    pub fn null_token(&self) -> Option<SyntaxToken> {
7513        support::token(&self.syntax, SyntaxKind::NULL_KW)
7514    }
7515}
7516
7517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7518pub struct NullsDistinct {
7519    pub(crate) syntax: SyntaxNode,
7520}
7521impl NullsDistinct {
7522    #[inline]
7523    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7524        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7525    }
7526    #[inline]
7527    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7528        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7529    }
7530}
7531
7532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7533pub struct NullsFirst {
7534    pub(crate) syntax: SyntaxNode,
7535}
7536impl NullsFirst {
7537    #[inline]
7538    pub fn first_token(&self) -> Option<SyntaxToken> {
7539        support::token(&self.syntax, SyntaxKind::FIRST_KW)
7540    }
7541    #[inline]
7542    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7543        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7544    }
7545}
7546
7547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7548pub struct NullsLast {
7549    pub(crate) syntax: SyntaxNode,
7550}
7551impl NullsLast {
7552    #[inline]
7553    pub fn last_token(&self) -> Option<SyntaxToken> {
7554        support::token(&self.syntax, SyntaxKind::LAST_KW)
7555    }
7556    #[inline]
7557    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7558        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7559    }
7560}
7561
7562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7563pub struct NullsNotDistinct {
7564    pub(crate) syntax: SyntaxNode,
7565}
7566impl NullsNotDistinct {
7567    #[inline]
7568    pub fn distinct_token(&self) -> Option<SyntaxToken> {
7569        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
7570    }
7571    #[inline]
7572    pub fn not_token(&self) -> Option<SyntaxToken> {
7573        support::token(&self.syntax, SyntaxKind::NOT_KW)
7574    }
7575    #[inline]
7576    pub fn nulls_token(&self) -> Option<SyntaxToken> {
7577        support::token(&self.syntax, SyntaxKind::NULLS_KW)
7578    }
7579}
7580
7581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7582pub struct OfType {
7583    pub(crate) syntax: SyntaxNode,
7584}
7585impl OfType {
7586    #[inline]
7587    pub fn ty(&self) -> Option<Type> {
7588        support::child(&self.syntax)
7589    }
7590    #[inline]
7591    pub fn of_token(&self) -> Option<SyntaxToken> {
7592        support::token(&self.syntax, SyntaxKind::OF_KW)
7593    }
7594}
7595
7596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7597pub struct OffsetClause {
7598    pub(crate) syntax: SyntaxNode,
7599}
7600impl OffsetClause {
7601    #[inline]
7602    pub fn expr(&self) -> Option<Expr> {
7603        support::child(&self.syntax)
7604    }
7605    #[inline]
7606    pub fn offset_token(&self) -> Option<SyntaxToken> {
7607        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
7608    }
7609    #[inline]
7610    pub fn row_token(&self) -> Option<SyntaxToken> {
7611        support::token(&self.syntax, SyntaxKind::ROW_KW)
7612    }
7613    #[inline]
7614    pub fn rows_token(&self) -> Option<SyntaxToken> {
7615        support::token(&self.syntax, SyntaxKind::ROWS_KW)
7616    }
7617}
7618
7619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7620pub struct OnClause {
7621    pub(crate) syntax: SyntaxNode,
7622}
7623impl OnClause {
7624    #[inline]
7625    pub fn expr(&self) -> Option<Expr> {
7626        support::child(&self.syntax)
7627    }
7628    #[inline]
7629    pub fn on_token(&self) -> Option<SyntaxToken> {
7630        support::token(&self.syntax, SyntaxKind::ON_KW)
7631    }
7632}
7633
7634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7635pub struct OnCommit {
7636    pub(crate) syntax: SyntaxNode,
7637}
7638impl OnCommit {
7639    #[inline]
7640    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
7641        support::child(&self.syntax)
7642    }
7643    #[inline]
7644    pub fn commit_token(&self) -> Option<SyntaxToken> {
7645        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
7646    }
7647    #[inline]
7648    pub fn on_token(&self) -> Option<SyntaxToken> {
7649        support::token(&self.syntax, SyntaxKind::ON_KW)
7650    }
7651}
7652
7653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7654pub struct OnConflictClause {
7655    pub(crate) syntax: SyntaxNode,
7656}
7657impl OnConflictClause {
7658    #[inline]
7659    pub fn conflict_action(&self) -> Option<ConflictAction> {
7660        support::child(&self.syntax)
7661    }
7662    #[inline]
7663    pub fn conflict_target(&self) -> Option<ConflictTarget> {
7664        support::child(&self.syntax)
7665    }
7666    #[inline]
7667    pub fn conflict_token(&self) -> Option<SyntaxToken> {
7668        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
7669    }
7670    #[inline]
7671    pub fn on_token(&self) -> Option<SyntaxToken> {
7672        support::token(&self.syntax, SyntaxKind::ON_KW)
7673    }
7674}
7675
7676#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7677pub struct OnDeleteAction {
7678    pub(crate) syntax: SyntaxNode,
7679}
7680impl OnDeleteAction {
7681    #[inline]
7682    pub fn ref_action(&self) -> Option<RefAction> {
7683        support::child(&self.syntax)
7684    }
7685    #[inline]
7686    pub fn delete_token(&self) -> Option<SyntaxToken> {
7687        support::token(&self.syntax, SyntaxKind::DELETE_KW)
7688    }
7689    #[inline]
7690    pub fn on_token(&self) -> Option<SyntaxToken> {
7691        support::token(&self.syntax, SyntaxKind::ON_KW)
7692    }
7693}
7694
7695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7696pub struct OnUpdateAction {
7697    pub(crate) syntax: SyntaxNode,
7698}
7699impl OnUpdateAction {
7700    #[inline]
7701    pub fn ref_action(&self) -> Option<RefAction> {
7702        support::child(&self.syntax)
7703    }
7704    #[inline]
7705    pub fn on_token(&self) -> Option<SyntaxToken> {
7706        support::token(&self.syntax, SyntaxKind::ON_KW)
7707    }
7708    #[inline]
7709    pub fn update_token(&self) -> Option<SyntaxToken> {
7710        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
7711    }
7712}
7713
7714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7715pub struct Op {
7716    pub(crate) syntax: SyntaxNode,
7717}
7718impl Op {
7719    #[inline]
7720    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
7721        support::child(&self.syntax)
7722    }
7723    #[inline]
7724    pub fn colon_colon(&self) -> Option<ColonColon> {
7725        support::child(&self.syntax)
7726    }
7727    #[inline]
7728    pub fn colon_eq(&self) -> Option<ColonEq> {
7729        support::child(&self.syntax)
7730    }
7731    #[inline]
7732    pub fn custom_op(&self) -> Option<CustomOp> {
7733        support::child(&self.syntax)
7734    }
7735    #[inline]
7736    pub fn fat_arrow(&self) -> Option<FatArrow> {
7737        support::child(&self.syntax)
7738    }
7739    #[inline]
7740    pub fn gteq(&self) -> Option<Gteq> {
7741        support::child(&self.syntax)
7742    }
7743    #[inline]
7744    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
7745        support::child(&self.syntax)
7746    }
7747    #[inline]
7748    pub fn is_json(&self) -> Option<IsJson> {
7749        support::child(&self.syntax)
7750    }
7751    #[inline]
7752    pub fn is_json_array(&self) -> Option<IsJsonArray> {
7753        support::child(&self.syntax)
7754    }
7755    #[inline]
7756    pub fn is_json_object(&self) -> Option<IsJsonObject> {
7757        support::child(&self.syntax)
7758    }
7759    #[inline]
7760    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
7761        support::child(&self.syntax)
7762    }
7763    #[inline]
7764    pub fn is_json_value(&self) -> Option<IsJsonValue> {
7765        support::child(&self.syntax)
7766    }
7767    #[inline]
7768    pub fn is_not(&self) -> Option<IsNot> {
7769        support::child(&self.syntax)
7770    }
7771    #[inline]
7772    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
7773        support::child(&self.syntax)
7774    }
7775    #[inline]
7776    pub fn is_not_json(&self) -> Option<IsNotJson> {
7777        support::child(&self.syntax)
7778    }
7779    #[inline]
7780    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
7781        support::child(&self.syntax)
7782    }
7783    #[inline]
7784    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
7785        support::child(&self.syntax)
7786    }
7787    #[inline]
7788    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
7789        support::child(&self.syntax)
7790    }
7791    #[inline]
7792    pub fn lteq(&self) -> Option<Lteq> {
7793        support::child(&self.syntax)
7794    }
7795    #[inline]
7796    pub fn neq(&self) -> Option<Neq> {
7797        support::child(&self.syntax)
7798    }
7799    #[inline]
7800    pub fn neqb(&self) -> Option<Neqb> {
7801        support::child(&self.syntax)
7802    }
7803    #[inline]
7804    pub fn not_ilike(&self) -> Option<NotIlike> {
7805        support::child(&self.syntax)
7806    }
7807    #[inline]
7808    pub fn not_in(&self) -> Option<NotIn> {
7809        support::child(&self.syntax)
7810    }
7811    #[inline]
7812    pub fn not_like(&self) -> Option<NotLike> {
7813        support::child(&self.syntax)
7814    }
7815    #[inline]
7816    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
7817        support::child(&self.syntax)
7818    }
7819    #[inline]
7820    pub fn operator_call(&self) -> Option<OperatorCall> {
7821        support::child(&self.syntax)
7822    }
7823    #[inline]
7824    pub fn similar_to(&self) -> Option<SimilarTo> {
7825        support::child(&self.syntax)
7826    }
7827    #[inline]
7828    pub fn percent_token(&self) -> Option<SyntaxToken> {
7829        support::token(&self.syntax, SyntaxKind::PERCENT)
7830    }
7831    #[inline]
7832    pub fn plus_token(&self) -> Option<SyntaxToken> {
7833        support::token(&self.syntax, SyntaxKind::PLUS)
7834    }
7835    #[inline]
7836    pub fn minus_token(&self) -> Option<SyntaxToken> {
7837        support::token(&self.syntax, SyntaxKind::MINUS)
7838    }
7839    #[inline]
7840    pub fn slash_token(&self) -> Option<SyntaxToken> {
7841        support::token(&self.syntax, SyntaxKind::SLASH)
7842    }
7843    #[inline]
7844    pub fn colon_token(&self) -> Option<SyntaxToken> {
7845        support::token(&self.syntax, SyntaxKind::COLON)
7846    }
7847    #[inline]
7848    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
7849        support::token(&self.syntax, SyntaxKind::L_ANGLE)
7850    }
7851    #[inline]
7852    pub fn eq_token(&self) -> Option<SyntaxToken> {
7853        support::token(&self.syntax, SyntaxKind::EQ)
7854    }
7855    #[inline]
7856    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
7857        support::token(&self.syntax, SyntaxKind::R_ANGLE)
7858    }
7859    #[inline]
7860    pub fn caret_token(&self) -> Option<SyntaxToken> {
7861        support::token(&self.syntax, SyntaxKind::CARET)
7862    }
7863    #[inline]
7864    pub fn and_token(&self) -> Option<SyntaxToken> {
7865        support::token(&self.syntax, SyntaxKind::AND_KW)
7866    }
7867    #[inline]
7868    pub fn collate_token(&self) -> Option<SyntaxToken> {
7869        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
7870    }
7871    #[inline]
7872    pub fn ilike_token(&self) -> Option<SyntaxToken> {
7873        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
7874    }
7875    #[inline]
7876    pub fn in_token(&self) -> Option<SyntaxToken> {
7877        support::token(&self.syntax, SyntaxKind::IN_KW)
7878    }
7879    #[inline]
7880    pub fn is_token(&self) -> Option<SyntaxToken> {
7881        support::token(&self.syntax, SyntaxKind::IS_KW)
7882    }
7883    #[inline]
7884    pub fn like_token(&self) -> Option<SyntaxToken> {
7885        support::token(&self.syntax, SyntaxKind::LIKE_KW)
7886    }
7887    #[inline]
7888    pub fn or_token(&self) -> Option<SyntaxToken> {
7889        support::token(&self.syntax, SyntaxKind::OR_KW)
7890    }
7891    #[inline]
7892    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
7893        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
7894    }
7895    #[inline]
7896    pub fn value_token(&self) -> Option<SyntaxToken> {
7897        support::token(&self.syntax, SyntaxKind::VALUE_KW)
7898    }
7899}
7900
7901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7902pub struct OperatorCall {
7903    pub(crate) syntax: SyntaxNode,
7904}
7905impl OperatorCall {
7906    #[inline]
7907    pub fn op(&self) -> Option<Op> {
7908        support::child(&self.syntax)
7909    }
7910    #[inline]
7911    pub fn path(&self) -> Option<Path> {
7912        support::child(&self.syntax)
7913    }
7914    #[inline]
7915    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7916        support::token(&self.syntax, SyntaxKind::L_PAREN)
7917    }
7918    #[inline]
7919    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7920        support::token(&self.syntax, SyntaxKind::R_PAREN)
7921    }
7922    #[inline]
7923    pub fn dot_token(&self) -> Option<SyntaxToken> {
7924        support::token(&self.syntax, SyntaxKind::DOT)
7925    }
7926    #[inline]
7927    pub fn operator_token(&self) -> Option<SyntaxToken> {
7928        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7929    }
7930}
7931
7932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7933pub struct OptionItem {
7934    pub(crate) syntax: SyntaxNode,
7935}
7936impl OptionItem {
7937    #[inline]
7938    pub fn expr(&self) -> Option<Expr> {
7939        support::child(&self.syntax)
7940    }
7941    #[inline]
7942    pub fn default_token(&self) -> Option<SyntaxToken> {
7943        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
7944    }
7945}
7946
7947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7948pub struct OptionItemList {
7949    pub(crate) syntax: SyntaxNode,
7950}
7951impl OptionItemList {
7952    #[inline]
7953    pub fn option_items(&self) -> AstChildren<OptionItem> {
7954        support::children(&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}
7965
7966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7967pub struct OrReplace {
7968    pub(crate) syntax: SyntaxNode,
7969}
7970impl OrReplace {
7971    #[inline]
7972    pub fn or_token(&self) -> Option<SyntaxToken> {
7973        support::token(&self.syntax, SyntaxKind::OR_KW)
7974    }
7975    #[inline]
7976    pub fn replace_token(&self) -> Option<SyntaxToken> {
7977        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
7978    }
7979}
7980
7981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7982pub struct OrderByClause {
7983    pub(crate) syntax: SyntaxNode,
7984}
7985impl OrderByClause {
7986    #[inline]
7987    pub fn sort_by_list(&self) -> Option<SortByList> {
7988        support::child(&self.syntax)
7989    }
7990    #[inline]
7991    pub fn by_token(&self) -> Option<SyntaxToken> {
7992        support::token(&self.syntax, SyntaxKind::BY_KW)
7993    }
7994    #[inline]
7995    pub fn order_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::ORDER_KW)
7997    }
7998}
7999
8000#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8001pub struct OverClause {
8002    pub(crate) syntax: SyntaxNode,
8003}
8004impl OverClause {
8005    #[inline]
8006    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8007        support::token(&self.syntax, SyntaxKind::L_PAREN)
8008    }
8009    #[inline]
8010    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8011        support::token(&self.syntax, SyntaxKind::R_PAREN)
8012    }
8013    #[inline]
8014    pub fn over_token(&self) -> Option<SyntaxToken> {
8015        support::token(&self.syntax, SyntaxKind::OVER_KW)
8016    }
8017}
8018
8019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8020pub struct OwnerTo {
8021    pub(crate) syntax: SyntaxNode,
8022}
8023impl OwnerTo {
8024    #[inline]
8025    pub fn role(&self) -> Option<Role> {
8026        support::child(&self.syntax)
8027    }
8028    #[inline]
8029    pub fn owner_token(&self) -> Option<SyntaxToken> {
8030        support::token(&self.syntax, SyntaxKind::OWNER_KW)
8031    }
8032    #[inline]
8033    pub fn to_token(&self) -> Option<SyntaxToken> {
8034        support::token(&self.syntax, SyntaxKind::TO_KW)
8035    }
8036}
8037
8038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8039pub struct ParallelFuncOption {
8040    pub(crate) syntax: SyntaxNode,
8041}
8042impl ParallelFuncOption {
8043    #[inline]
8044    pub fn ident_token(&self) -> Option<SyntaxToken> {
8045        support::token(&self.syntax, SyntaxKind::IDENT)
8046    }
8047    #[inline]
8048    pub fn parallel_token(&self) -> Option<SyntaxToken> {
8049        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
8050    }
8051}
8052
8053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8054pub struct Param {
8055    pub(crate) syntax: SyntaxNode,
8056}
8057impl Param {
8058    #[inline]
8059    pub fn mode(&self) -> Option<ParamMode> {
8060        support::child(&self.syntax)
8061    }
8062    #[inline]
8063    pub fn name(&self) -> Option<Name> {
8064        support::child(&self.syntax)
8065    }
8066    #[inline]
8067    pub fn param_default(&self) -> Option<ParamDefault> {
8068        support::child(&self.syntax)
8069    }
8070    #[inline]
8071    pub fn ty(&self) -> Option<Type> {
8072        support::child(&self.syntax)
8073    }
8074}
8075
8076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8077pub struct ParamDefault {
8078    pub(crate) syntax: SyntaxNode,
8079}
8080impl ParamDefault {
8081    #[inline]
8082    pub fn expr(&self) -> Option<Expr> {
8083        support::child(&self.syntax)
8084    }
8085    #[inline]
8086    pub fn eq_token(&self) -> Option<SyntaxToken> {
8087        support::token(&self.syntax, SyntaxKind::EQ)
8088    }
8089    #[inline]
8090    pub fn default_token(&self) -> Option<SyntaxToken> {
8091        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8092    }
8093}
8094
8095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8096pub struct ParamIn {
8097    pub(crate) syntax: SyntaxNode,
8098}
8099impl ParamIn {
8100    #[inline]
8101    pub fn in_token(&self) -> Option<SyntaxToken> {
8102        support::token(&self.syntax, SyntaxKind::IN_KW)
8103    }
8104}
8105
8106#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8107pub struct ParamInOut {
8108    pub(crate) syntax: SyntaxNode,
8109}
8110impl ParamInOut {
8111    #[inline]
8112    pub fn in_token(&self) -> Option<SyntaxToken> {
8113        support::token(&self.syntax, SyntaxKind::IN_KW)
8114    }
8115    #[inline]
8116    pub fn inout_token(&self) -> Option<SyntaxToken> {
8117        support::token(&self.syntax, SyntaxKind::INOUT_KW)
8118    }
8119    #[inline]
8120    pub fn out_token(&self) -> Option<SyntaxToken> {
8121        support::token(&self.syntax, SyntaxKind::OUT_KW)
8122    }
8123}
8124
8125#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8126pub struct ParamList {
8127    pub(crate) syntax: SyntaxNode,
8128}
8129impl ParamList {
8130    #[inline]
8131    pub fn params(&self) -> AstChildren<Param> {
8132        support::children(&self.syntax)
8133    }
8134}
8135
8136#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8137pub struct ParamOut {
8138    pub(crate) syntax: SyntaxNode,
8139}
8140impl ParamOut {
8141    #[inline]
8142    pub fn out_token(&self) -> Option<SyntaxToken> {
8143        support::token(&self.syntax, SyntaxKind::OUT_KW)
8144    }
8145}
8146
8147#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8148pub struct ParamVariadic {
8149    pub(crate) syntax: SyntaxNode,
8150}
8151impl ParamVariadic {
8152    #[inline]
8153    pub fn variadic_token(&self) -> Option<SyntaxToken> {
8154        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
8155    }
8156}
8157
8158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8159pub struct ParenExpr {
8160    pub(crate) syntax: SyntaxNode,
8161}
8162impl ParenExpr {
8163    #[inline]
8164    pub fn expr(&self) -> Option<Expr> {
8165        support::child(&self.syntax)
8166    }
8167    #[inline]
8168    pub fn select(&self) -> Option<Select> {
8169        support::child(&self.syntax)
8170    }
8171    #[inline]
8172    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8173        support::token(&self.syntax, SyntaxKind::L_PAREN)
8174    }
8175    #[inline]
8176    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8177        support::token(&self.syntax, SyntaxKind::R_PAREN)
8178    }
8179}
8180
8181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8182pub struct ParenSelect {
8183    pub(crate) syntax: SyntaxNode,
8184}
8185impl ParenSelect {
8186    #[inline]
8187    pub fn select(&self) -> Option<SelectVariant> {
8188        support::child(&self.syntax)
8189    }
8190    #[inline]
8191    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8192        support::token(&self.syntax, SyntaxKind::L_PAREN)
8193    }
8194    #[inline]
8195    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8196        support::token(&self.syntax, SyntaxKind::R_PAREN)
8197    }
8198}
8199
8200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8201pub struct PartitionBy {
8202    pub(crate) syntax: SyntaxNode,
8203}
8204impl PartitionBy {
8205    #[inline]
8206    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
8207        support::child(&self.syntax)
8208    }
8209    #[inline]
8210    pub fn by_token(&self) -> Option<SyntaxToken> {
8211        support::token(&self.syntax, SyntaxKind::BY_KW)
8212    }
8213    #[inline]
8214    pub fn ident_token(&self) -> Option<SyntaxToken> {
8215        support::token(&self.syntax, SyntaxKind::IDENT)
8216    }
8217    #[inline]
8218    pub fn partition_token(&self) -> Option<SyntaxToken> {
8219        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
8220    }
8221    #[inline]
8222    pub fn range_token(&self) -> Option<SyntaxToken> {
8223        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8224    }
8225}
8226
8227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8228pub struct PartitionDefault {
8229    pub(crate) syntax: SyntaxNode,
8230}
8231impl PartitionDefault {
8232    #[inline]
8233    pub fn default_token(&self) -> Option<SyntaxToken> {
8234        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
8235    }
8236}
8237
8238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8239pub struct PartitionForValuesFrom {
8240    pub(crate) syntax: SyntaxNode,
8241}
8242impl PartitionForValuesFrom {
8243    #[inline]
8244    pub fn exprs(&self) -> AstChildren<Expr> {
8245        support::children(&self.syntax)
8246    }
8247    #[inline]
8248    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8249        support::token(&self.syntax, SyntaxKind::L_PAREN)
8250    }
8251    #[inline]
8252    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8253        support::token(&self.syntax, SyntaxKind::R_PAREN)
8254    }
8255    #[inline]
8256    pub fn for_token(&self) -> Option<SyntaxToken> {
8257        support::token(&self.syntax, SyntaxKind::FOR_KW)
8258    }
8259    #[inline]
8260    pub fn from_token(&self) -> Option<SyntaxToken> {
8261        support::token(&self.syntax, SyntaxKind::FROM_KW)
8262    }
8263    #[inline]
8264    pub fn to_token(&self) -> Option<SyntaxToken> {
8265        support::token(&self.syntax, SyntaxKind::TO_KW)
8266    }
8267    #[inline]
8268    pub fn values_token(&self) -> Option<SyntaxToken> {
8269        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8270    }
8271}
8272
8273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8274pub struct PartitionForValuesIn {
8275    pub(crate) syntax: SyntaxNode,
8276}
8277impl PartitionForValuesIn {
8278    #[inline]
8279    pub fn exprs(&self) -> AstChildren<Expr> {
8280        support::children(&self.syntax)
8281    }
8282    #[inline]
8283    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8284        support::token(&self.syntax, SyntaxKind::L_PAREN)
8285    }
8286    #[inline]
8287    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8288        support::token(&self.syntax, SyntaxKind::R_PAREN)
8289    }
8290    #[inline]
8291    pub fn for_token(&self) -> Option<SyntaxToken> {
8292        support::token(&self.syntax, SyntaxKind::FOR_KW)
8293    }
8294    #[inline]
8295    pub fn in_token(&self) -> Option<SyntaxToken> {
8296        support::token(&self.syntax, SyntaxKind::IN_KW)
8297    }
8298    #[inline]
8299    pub fn values_token(&self) -> Option<SyntaxToken> {
8300        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8301    }
8302}
8303
8304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8305pub struct PartitionForValuesWith {
8306    pub(crate) syntax: SyntaxNode,
8307}
8308impl PartitionForValuesWith {
8309    #[inline]
8310    pub fn literal(&self) -> Option<Literal> {
8311        support::child(&self.syntax)
8312    }
8313    #[inline]
8314    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8315        support::token(&self.syntax, SyntaxKind::L_PAREN)
8316    }
8317    #[inline]
8318    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8319        support::token(&self.syntax, SyntaxKind::R_PAREN)
8320    }
8321    #[inline]
8322    pub fn comma_token(&self) -> Option<SyntaxToken> {
8323        support::token(&self.syntax, SyntaxKind::COMMA)
8324    }
8325    #[inline]
8326    pub fn for_token(&self) -> Option<SyntaxToken> {
8327        support::token(&self.syntax, SyntaxKind::FOR_KW)
8328    }
8329    #[inline]
8330    pub fn ident_token(&self) -> Option<SyntaxToken> {
8331        support::token(&self.syntax, SyntaxKind::IDENT)
8332    }
8333    #[inline]
8334    pub fn values_token(&self) -> Option<SyntaxToken> {
8335        support::token(&self.syntax, SyntaxKind::VALUES_KW)
8336    }
8337    #[inline]
8338    pub fn with_token(&self) -> Option<SyntaxToken> {
8339        support::token(&self.syntax, SyntaxKind::WITH_KW)
8340    }
8341}
8342
8343#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8344pub struct PartitionItem {
8345    pub(crate) syntax: SyntaxNode,
8346}
8347impl PartitionItem {
8348    #[inline]
8349    pub fn collate(&self) -> Option<Collate> {
8350        support::child(&self.syntax)
8351    }
8352    #[inline]
8353    pub fn expr(&self) -> Option<Expr> {
8354        support::child(&self.syntax)
8355    }
8356}
8357
8358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8359pub struct PartitionItemList {
8360    pub(crate) syntax: SyntaxNode,
8361}
8362impl PartitionItemList {
8363    #[inline]
8364    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
8365        support::children(&self.syntax)
8366    }
8367    #[inline]
8368    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8369        support::token(&self.syntax, SyntaxKind::L_PAREN)
8370    }
8371    #[inline]
8372    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8373        support::token(&self.syntax, SyntaxKind::R_PAREN)
8374    }
8375}
8376
8377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8378pub struct PartitionOf {
8379    pub(crate) syntax: SyntaxNode,
8380}
8381impl PartitionOf {
8382    #[inline]
8383    pub fn ty(&self) -> Option<Type> {
8384        support::child(&self.syntax)
8385    }
8386    #[inline]
8387    pub fn of_token(&self) -> Option<SyntaxToken> {
8388        support::token(&self.syntax, SyntaxKind::OF_KW)
8389    }
8390    #[inline]
8391    pub fn partition_token(&self) -> Option<SyntaxToken> {
8392        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
8393    }
8394}
8395
8396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8397pub struct Path {
8398    pub(crate) syntax: SyntaxNode,
8399}
8400impl Path {
8401    #[inline]
8402    pub fn qualifier(&self) -> Option<Path> {
8403        support::child(&self.syntax)
8404    }
8405    #[inline]
8406    pub fn segment(&self) -> Option<PathSegment> {
8407        support::child(&self.syntax)
8408    }
8409    #[inline]
8410    pub fn dot_token(&self) -> Option<SyntaxToken> {
8411        support::token(&self.syntax, SyntaxKind::DOT)
8412    }
8413}
8414
8415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8416pub struct PathSegment {
8417    pub(crate) syntax: SyntaxNode,
8418}
8419impl PathSegment {
8420    #[inline]
8421    pub fn name(&self) -> Option<Name> {
8422        support::child(&self.syntax)
8423    }
8424    #[inline]
8425    pub fn name_ref(&self) -> Option<NameRef> {
8426        support::child(&self.syntax)
8427    }
8428}
8429
8430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8431pub struct PathType {
8432    pub(crate) syntax: SyntaxNode,
8433}
8434impl PathType {
8435    #[inline]
8436    pub fn arg_list(&self) -> Option<ArgList> {
8437        support::child(&self.syntax)
8438    }
8439    #[inline]
8440    pub fn path(&self) -> Option<Path> {
8441        support::child(&self.syntax)
8442    }
8443}
8444
8445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8446pub struct PercentType {
8447    pub(crate) syntax: SyntaxNode,
8448}
8449impl PercentType {
8450    #[inline]
8451    pub fn percent_token(&self) -> Option<SyntaxToken> {
8452        support::token(&self.syntax, SyntaxKind::PERCENT)
8453    }
8454    #[inline]
8455    pub fn type_token(&self) -> Option<SyntaxToken> {
8456        support::token(&self.syntax, SyntaxKind::TYPE_KW)
8457    }
8458}
8459
8460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8461pub struct PercentTypeClause {
8462    pub(crate) syntax: SyntaxNode,
8463}
8464impl PercentTypeClause {
8465    #[inline]
8466    pub fn path(&self) -> Option<Path> {
8467        support::child(&self.syntax)
8468    }
8469    #[inline]
8470    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
8471        support::child(&self.syntax)
8472    }
8473}
8474
8475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8476pub struct PostfixExpr {
8477    pub(crate) syntax: SyntaxNode,
8478}
8479impl PostfixExpr {
8480    #[inline]
8481    pub fn expr(&self) -> Option<Expr> {
8482        support::child(&self.syntax)
8483    }
8484}
8485
8486#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8487pub struct PrefixExpr {
8488    pub(crate) syntax: SyntaxNode,
8489}
8490impl PrefixExpr {
8491    #[inline]
8492    pub fn expr(&self) -> Option<Expr> {
8493        support::child(&self.syntax)
8494    }
8495}
8496
8497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8498pub struct Prepare {
8499    pub(crate) syntax: SyntaxNode,
8500}
8501impl Prepare {
8502    #[inline]
8503    pub fn name_ref(&self) -> Option<NameRef> {
8504        support::child(&self.syntax)
8505    }
8506    #[inline]
8507    pub fn prepare_token(&self) -> Option<SyntaxToken> {
8508        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
8509    }
8510}
8511
8512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8513pub struct PrepareTransaction {
8514    pub(crate) syntax: SyntaxNode,
8515}
8516impl PrepareTransaction {
8517    #[inline]
8518    pub fn literal(&self) -> Option<Literal> {
8519        support::child(&self.syntax)
8520    }
8521    #[inline]
8522    pub fn prepare_token(&self) -> Option<SyntaxToken> {
8523        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
8524    }
8525    #[inline]
8526    pub fn transaction_token(&self) -> Option<SyntaxToken> {
8527        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
8528    }
8529}
8530
8531#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8532pub struct PreserveRows {
8533    pub(crate) syntax: SyntaxNode,
8534}
8535impl PreserveRows {
8536    #[inline]
8537    pub fn preserve_token(&self) -> Option<SyntaxToken> {
8538        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
8539    }
8540    #[inline]
8541    pub fn rows_token(&self) -> Option<SyntaxToken> {
8542        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8543    }
8544}
8545
8546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8547pub struct PrimaryKeyConstraint {
8548    pub(crate) syntax: SyntaxNode,
8549}
8550impl PrimaryKeyConstraint {
8551    #[inline]
8552    pub fn column_list(&self) -> Option<ColumnList> {
8553        support::child(&self.syntax)
8554    }
8555    #[inline]
8556    pub fn name_ref(&self) -> Option<NameRef> {
8557        support::child(&self.syntax)
8558    }
8559    #[inline]
8560    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
8561        support::child(&self.syntax)
8562    }
8563    #[inline]
8564    pub fn using_index(&self) -> Option<UsingIndex> {
8565        support::child(&self.syntax)
8566    }
8567    #[inline]
8568    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8569        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8570    }
8571    #[inline]
8572    pub fn key_token(&self) -> Option<SyntaxToken> {
8573        support::token(&self.syntax, SyntaxKind::KEY_KW)
8574    }
8575    #[inline]
8576    pub fn primary_token(&self) -> Option<SyntaxToken> {
8577        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
8578    }
8579}
8580
8581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8582pub struct ReadCommitted {
8583    pub(crate) syntax: SyntaxNode,
8584}
8585impl ReadCommitted {
8586    #[inline]
8587    pub fn committed_token(&self) -> Option<SyntaxToken> {
8588        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
8589    }
8590    #[inline]
8591    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8592        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8593    }
8594    #[inline]
8595    pub fn level_token(&self) -> Option<SyntaxToken> {
8596        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8597    }
8598    #[inline]
8599    pub fn read_token(&self) -> Option<SyntaxToken> {
8600        support::token(&self.syntax, SyntaxKind::READ_KW)
8601    }
8602}
8603
8604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8605pub struct ReadOnly {
8606    pub(crate) syntax: SyntaxNode,
8607}
8608impl ReadOnly {
8609    #[inline]
8610    pub fn only_token(&self) -> Option<SyntaxToken> {
8611        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8612    }
8613    #[inline]
8614    pub fn read_token(&self) -> Option<SyntaxToken> {
8615        support::token(&self.syntax, SyntaxKind::READ_KW)
8616    }
8617}
8618
8619#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8620pub struct ReadUncommitted {
8621    pub(crate) syntax: SyntaxNode,
8622}
8623impl ReadUncommitted {
8624    #[inline]
8625    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8626        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8627    }
8628    #[inline]
8629    pub fn level_token(&self) -> Option<SyntaxToken> {
8630        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8631    }
8632    #[inline]
8633    pub fn read_token(&self) -> Option<SyntaxToken> {
8634        support::token(&self.syntax, SyntaxKind::READ_KW)
8635    }
8636    #[inline]
8637    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
8638        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
8639    }
8640}
8641
8642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8643pub struct ReadWrite {
8644    pub(crate) syntax: SyntaxNode,
8645}
8646impl ReadWrite {
8647    #[inline]
8648    pub fn read_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::READ_KW)
8650    }
8651    #[inline]
8652    pub fn write_token(&self) -> Option<SyntaxToken> {
8653        support::token(&self.syntax, SyntaxKind::WRITE_KW)
8654    }
8655}
8656
8657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8658pub struct Reassign {
8659    pub(crate) syntax: SyntaxNode,
8660}
8661impl Reassign {
8662    #[inline]
8663    pub fn reassign_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
8665    }
8666}
8667
8668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8669pub struct ReferencesConstraint {
8670    pub(crate) syntax: SyntaxNode,
8671}
8672impl ReferencesConstraint {
8673    #[inline]
8674    pub fn match_type(&self) -> Option<MatchType> {
8675        support::child(&self.syntax)
8676    }
8677    #[inline]
8678    pub fn name_ref(&self) -> Option<NameRef> {
8679        support::child(&self.syntax)
8680    }
8681    #[inline]
8682    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8683        support::child(&self.syntax)
8684    }
8685    #[inline]
8686    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8687        support::child(&self.syntax)
8688    }
8689    #[inline]
8690    pub fn path(&self) -> Option<Path> {
8691        support::child(&self.syntax)
8692    }
8693    #[inline]
8694    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8695        support::token(&self.syntax, SyntaxKind::L_PAREN)
8696    }
8697    #[inline]
8698    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8699        support::token(&self.syntax, SyntaxKind::R_PAREN)
8700    }
8701    #[inline]
8702    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8703        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8704    }
8705    #[inline]
8706    pub fn references_token(&self) -> Option<SyntaxToken> {
8707        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8708    }
8709}
8710
8711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8712pub struct Refresh {
8713    pub(crate) syntax: SyntaxNode,
8714}
8715impl Refresh {
8716    #[inline]
8717    pub fn name_ref(&self) -> Option<NameRef> {
8718        support::child(&self.syntax)
8719    }
8720    #[inline]
8721    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
8722        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
8723    }
8724    #[inline]
8725    pub fn data_token(&self) -> Option<SyntaxToken> {
8726        support::token(&self.syntax, SyntaxKind::DATA_KW)
8727    }
8728    #[inline]
8729    pub fn materialized_token(&self) -> Option<SyntaxToken> {
8730        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
8731    }
8732    #[inline]
8733    pub fn refresh_token(&self) -> Option<SyntaxToken> {
8734        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
8735    }
8736    #[inline]
8737    pub fn view_token(&self) -> Option<SyntaxToken> {
8738        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8739    }
8740    #[inline]
8741    pub fn with_token(&self) -> Option<SyntaxToken> {
8742        support::token(&self.syntax, SyntaxKind::WITH_KW)
8743    }
8744}
8745
8746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8747pub struct Reindex {
8748    pub(crate) syntax: SyntaxNode,
8749}
8750impl Reindex {
8751    #[inline]
8752    pub fn reindex_token(&self) -> Option<SyntaxToken> {
8753        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
8754    }
8755}
8756
8757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8758pub struct RelationName {
8759    pub(crate) syntax: SyntaxNode,
8760}
8761impl RelationName {
8762    #[inline]
8763    pub fn path(&self) -> Option<Path> {
8764        support::child(&self.syntax)
8765    }
8766    #[inline]
8767    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::L_PAREN)
8769    }
8770    #[inline]
8771    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8772        support::token(&self.syntax, SyntaxKind::R_PAREN)
8773    }
8774    #[inline]
8775    pub fn star_token(&self) -> Option<SyntaxToken> {
8776        support::token(&self.syntax, SyntaxKind::STAR)
8777    }
8778    #[inline]
8779    pub fn only_token(&self) -> Option<SyntaxToken> {
8780        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8781    }
8782}
8783
8784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8785pub struct ReleaseSavepoint {
8786    pub(crate) syntax: SyntaxNode,
8787}
8788impl ReleaseSavepoint {
8789    #[inline]
8790    pub fn name_ref(&self) -> Option<NameRef> {
8791        support::child(&self.syntax)
8792    }
8793    #[inline]
8794    pub fn release_token(&self) -> Option<SyntaxToken> {
8795        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
8796    }
8797    #[inline]
8798    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
8799        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
8800    }
8801}
8802
8803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8804pub struct RenameColumn {
8805    pub(crate) syntax: SyntaxNode,
8806}
8807impl RenameColumn {
8808    #[inline]
8809    pub fn column_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
8811    }
8812    #[inline]
8813    pub fn rename_token(&self) -> Option<SyntaxToken> {
8814        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8815    }
8816    #[inline]
8817    pub fn to_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::TO_KW)
8819    }
8820}
8821
8822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8823pub struct RenameConstraint {
8824    pub(crate) syntax: SyntaxNode,
8825}
8826impl RenameConstraint {
8827    #[inline]
8828    pub fn name(&self) -> Option<Name> {
8829        support::child(&self.syntax)
8830    }
8831    #[inline]
8832    pub fn name_ref(&self) -> Option<NameRef> {
8833        support::child(&self.syntax)
8834    }
8835    #[inline]
8836    pub fn constraint_token(&self) -> Option<SyntaxToken> {
8837        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
8838    }
8839    #[inline]
8840    pub fn rename_token(&self) -> Option<SyntaxToken> {
8841        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8842    }
8843    #[inline]
8844    pub fn to_token(&self) -> Option<SyntaxToken> {
8845        support::token(&self.syntax, SyntaxKind::TO_KW)
8846    }
8847}
8848
8849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8850pub struct RenameTable {
8851    pub(crate) syntax: SyntaxNode,
8852}
8853impl RenameTable {
8854    #[inline]
8855    pub fn name_ref(&self) -> Option<NameRef> {
8856        support::child(&self.syntax)
8857    }
8858    #[inline]
8859    pub fn rename_token(&self) -> Option<SyntaxToken> {
8860        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8861    }
8862    #[inline]
8863    pub fn to_token(&self) -> Option<SyntaxToken> {
8864        support::token(&self.syntax, SyntaxKind::TO_KW)
8865    }
8866}
8867
8868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8869pub struct RenameTo {
8870    pub(crate) syntax: SyntaxNode,
8871}
8872impl RenameTo {
8873    #[inline]
8874    pub fn name(&self) -> Option<Name> {
8875        support::child(&self.syntax)
8876    }
8877    #[inline]
8878    pub fn rename_token(&self) -> Option<SyntaxToken> {
8879        support::token(&self.syntax, SyntaxKind::RENAME_KW)
8880    }
8881    #[inline]
8882    pub fn to_token(&self) -> Option<SyntaxToken> {
8883        support::token(&self.syntax, SyntaxKind::TO_KW)
8884    }
8885}
8886
8887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8888pub struct RepeatableRead {
8889    pub(crate) syntax: SyntaxNode,
8890}
8891impl RepeatableRead {
8892    #[inline]
8893    pub fn isolation_token(&self) -> Option<SyntaxToken> {
8894        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
8895    }
8896    #[inline]
8897    pub fn level_token(&self) -> Option<SyntaxToken> {
8898        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8899    }
8900    #[inline]
8901    pub fn read_token(&self) -> Option<SyntaxToken> {
8902        support::token(&self.syntax, SyntaxKind::READ_KW)
8903    }
8904    #[inline]
8905    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
8906        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
8907    }
8908}
8909
8910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8911pub struct ReplicaIdentity {
8912    pub(crate) syntax: SyntaxNode,
8913}
8914impl ReplicaIdentity {
8915    #[inline]
8916    pub fn identity_token(&self) -> Option<SyntaxToken> {
8917        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
8918    }
8919    #[inline]
8920    pub fn replica_token(&self) -> Option<SyntaxToken> {
8921        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8922    }
8923}
8924
8925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8926pub struct Reset {
8927    pub(crate) syntax: SyntaxNode,
8928}
8929impl Reset {
8930    #[inline]
8931    pub fn name_ref(&self) -> Option<NameRef> {
8932        support::child(&self.syntax)
8933    }
8934    #[inline]
8935    pub fn all_token(&self) -> Option<SyntaxToken> {
8936        support::token(&self.syntax, SyntaxKind::ALL_KW)
8937    }
8938    #[inline]
8939    pub fn reset_token(&self) -> Option<SyntaxToken> {
8940        support::token(&self.syntax, SyntaxKind::RESET_KW)
8941    }
8942}
8943
8944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8945pub struct ResetFuncOption {
8946    pub(crate) syntax: SyntaxNode,
8947}
8948impl ResetFuncOption {
8949    #[inline]
8950    pub fn name_ref(&self) -> Option<NameRef> {
8951        support::child(&self.syntax)
8952    }
8953    #[inline]
8954    pub fn reset_token(&self) -> Option<SyntaxToken> {
8955        support::token(&self.syntax, SyntaxKind::RESET_KW)
8956    }
8957}
8958
8959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8960pub struct ResetOptions {
8961    pub(crate) syntax: SyntaxNode,
8962}
8963impl ResetOptions {
8964    #[inline]
8965    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8966        support::token(&self.syntax, SyntaxKind::L_PAREN)
8967    }
8968    #[inline]
8969    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8970        support::token(&self.syntax, SyntaxKind::R_PAREN)
8971    }
8972    #[inline]
8973    pub fn reset_token(&self) -> Option<SyntaxToken> {
8974        support::token(&self.syntax, SyntaxKind::RESET_KW)
8975    }
8976}
8977
8978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8979pub struct ResetStorageParams {
8980    pub(crate) syntax: SyntaxNode,
8981}
8982impl ResetStorageParams {
8983    #[inline]
8984    pub fn attribute_list(&self) -> Option<AttributeList> {
8985        support::child(&self.syntax)
8986    }
8987    #[inline]
8988    pub fn reset_token(&self) -> Option<SyntaxToken> {
8989        support::token(&self.syntax, SyntaxKind::RESET_KW)
8990    }
8991}
8992
8993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8994pub struct Restart {
8995    pub(crate) syntax: SyntaxNode,
8996}
8997impl Restart {
8998    #[inline]
8999    pub fn restart_token(&self) -> Option<SyntaxToken> {
9000        support::token(&self.syntax, SyntaxKind::RESTART_KW)
9001    }
9002    #[inline]
9003    pub fn with_token(&self) -> Option<SyntaxToken> {
9004        support::token(&self.syntax, SyntaxKind::WITH_KW)
9005    }
9006}
9007
9008#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9009pub struct Restrict {
9010    pub(crate) syntax: SyntaxNode,
9011}
9012impl Restrict {
9013    #[inline]
9014    pub fn restrict_token(&self) -> Option<SyntaxToken> {
9015        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
9016    }
9017}
9018
9019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9020pub struct RetType {
9021    pub(crate) syntax: SyntaxNode,
9022}
9023impl RetType {
9024    #[inline]
9025    pub fn ty(&self) -> Option<Type> {
9026        support::child(&self.syntax)
9027    }
9028    #[inline]
9029    pub fn returns_token(&self) -> Option<SyntaxToken> {
9030        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
9031    }
9032}
9033
9034#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9035pub struct ReturnFuncOption {
9036    pub(crate) syntax: SyntaxNode,
9037}
9038impl ReturnFuncOption {
9039    #[inline]
9040    pub fn expr(&self) -> Option<Expr> {
9041        support::child(&self.syntax)
9042    }
9043    #[inline]
9044    pub fn return_token(&self) -> Option<SyntaxToken> {
9045        support::token(&self.syntax, SyntaxKind::RETURN_KW)
9046    }
9047}
9048
9049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9050pub struct ReturningClause {
9051    pub(crate) syntax: SyntaxNode,
9052}
9053impl ReturningClause {
9054    #[inline]
9055    pub fn target_list(&self) -> Option<TargetList> {
9056        support::child(&self.syntax)
9057    }
9058    #[inline]
9059    pub fn returning_token(&self) -> Option<SyntaxToken> {
9060        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
9061    }
9062}
9063
9064#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9065pub struct Revoke {
9066    pub(crate) syntax: SyntaxNode,
9067}
9068impl Revoke {
9069    #[inline]
9070    pub fn revoke_token(&self) -> Option<SyntaxToken> {
9071        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
9072    }
9073}
9074
9075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9076pub struct Role {
9077    pub(crate) syntax: SyntaxNode,
9078}
9079impl Role {
9080    #[inline]
9081    pub fn current_role_token(&self) -> Option<SyntaxToken> {
9082        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
9083    }
9084    #[inline]
9085    pub fn current_user_token(&self) -> Option<SyntaxToken> {
9086        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
9087    }
9088    #[inline]
9089    pub fn group_token(&self) -> Option<SyntaxToken> {
9090        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9091    }
9092    #[inline]
9093    pub fn ident_token(&self) -> Option<SyntaxToken> {
9094        support::token(&self.syntax, SyntaxKind::IDENT)
9095    }
9096    #[inline]
9097    pub fn session_user_token(&self) -> Option<SyntaxToken> {
9098        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
9099    }
9100}
9101
9102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9103pub struct RoleOption {
9104    pub(crate) syntax: SyntaxNode,
9105}
9106impl RoleOption {
9107    #[inline]
9108    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9109        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9110    }
9111}
9112
9113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9114pub struct RoleOptionList {
9115    pub(crate) syntax: SyntaxNode,
9116}
9117impl RoleOptionList {
9118    #[inline]
9119    pub fn role_options(&self) -> AstChildren<RoleOption> {
9120        support::children(&self.syntax)
9121    }
9122    #[inline]
9123    pub fn with_token(&self) -> Option<SyntaxToken> {
9124        support::token(&self.syntax, SyntaxKind::WITH_KW)
9125    }
9126}
9127
9128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9129pub struct Rollback {
9130    pub(crate) syntax: SyntaxNode,
9131}
9132impl Rollback {
9133    #[inline]
9134    pub fn abort_token(&self) -> Option<SyntaxToken> {
9135        support::token(&self.syntax, SyntaxKind::ABORT_KW)
9136    }
9137    #[inline]
9138    pub fn rollback_token(&self) -> Option<SyntaxToken> {
9139        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
9140    }
9141}
9142
9143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9144pub struct Row {
9145    pub(crate) syntax: SyntaxNode,
9146}
9147impl Row {
9148    #[inline]
9149    pub fn exprs(&self) -> AstChildren<Expr> {
9150        support::children(&self.syntax)
9151    }
9152}
9153
9154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9155pub struct RowList {
9156    pub(crate) syntax: SyntaxNode,
9157}
9158impl RowList {
9159    #[inline]
9160    pub fn rows(&self) -> AstChildren<Row> {
9161        support::children(&self.syntax)
9162    }
9163}
9164
9165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9166pub struct RowsFuncOption {
9167    pub(crate) syntax: SyntaxNode,
9168}
9169impl RowsFuncOption {
9170    #[inline]
9171    pub fn rows_token(&self) -> Option<SyntaxToken> {
9172        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9173    }
9174}
9175
9176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9177pub struct Savepoint {
9178    pub(crate) syntax: SyntaxNode,
9179}
9180impl Savepoint {
9181    #[inline]
9182    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
9183        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
9184    }
9185}
9186
9187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9188pub struct SecurityFuncOption {
9189    pub(crate) syntax: SyntaxNode,
9190}
9191impl SecurityFuncOption {
9192    #[inline]
9193    pub fn definer_token(&self) -> Option<SyntaxToken> {
9194        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
9195    }
9196    #[inline]
9197    pub fn invoker_token(&self) -> Option<SyntaxToken> {
9198        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
9199    }
9200    #[inline]
9201    pub fn security_token(&self) -> Option<SyntaxToken> {
9202        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
9203    }
9204}
9205
9206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9207pub struct SecurityLabel {
9208    pub(crate) syntax: SyntaxNode,
9209}
9210impl SecurityLabel {
9211    #[inline]
9212    pub fn label_token(&self) -> Option<SyntaxToken> {
9213        support::token(&self.syntax, SyntaxKind::LABEL_KW)
9214    }
9215    #[inline]
9216    pub fn security_token(&self) -> Option<SyntaxToken> {
9217        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
9218    }
9219}
9220
9221#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9222pub struct Select {
9223    pub(crate) syntax: SyntaxNode,
9224}
9225impl Select {
9226    #[inline]
9227    pub fn fetch_clause(&self) -> Option<FetchClause> {
9228        support::child(&self.syntax)
9229    }
9230    #[inline]
9231    pub fn filter_clause(&self) -> Option<FilterClause> {
9232        support::child(&self.syntax)
9233    }
9234    #[inline]
9235    pub fn from_clause(&self) -> Option<FromClause> {
9236        support::child(&self.syntax)
9237    }
9238    #[inline]
9239    pub fn group_by_clause(&self) -> Option<GroupByClause> {
9240        support::child(&self.syntax)
9241    }
9242    #[inline]
9243    pub fn having_clause(&self) -> Option<HavingClause> {
9244        support::child(&self.syntax)
9245    }
9246    #[inline]
9247    pub fn limit_clause(&self) -> Option<LimitClause> {
9248        support::child(&self.syntax)
9249    }
9250    #[inline]
9251    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
9252        support::children(&self.syntax)
9253    }
9254    #[inline]
9255    pub fn offset_clause(&self) -> Option<OffsetClause> {
9256        support::child(&self.syntax)
9257    }
9258    #[inline]
9259    pub fn order_by_clause(&self) -> Option<OrderByClause> {
9260        support::child(&self.syntax)
9261    }
9262    #[inline]
9263    pub fn select_clause(&self) -> Option<SelectClause> {
9264        support::child(&self.syntax)
9265    }
9266    #[inline]
9267    pub fn where_clause(&self) -> Option<WhereClause> {
9268        support::child(&self.syntax)
9269    }
9270    #[inline]
9271    pub fn window_clause(&self) -> Option<WindowClause> {
9272        support::child(&self.syntax)
9273    }
9274    #[inline]
9275    pub fn with_clause(&self) -> Option<WithClause> {
9276        support::child(&self.syntax)
9277    }
9278}
9279
9280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9281pub struct SelectClause {
9282    pub(crate) syntax: SyntaxNode,
9283}
9284impl SelectClause {
9285    #[inline]
9286    pub fn distinct_clause(&self) -> Option<DistinctClause> {
9287        support::child(&self.syntax)
9288    }
9289    #[inline]
9290    pub fn target_list(&self) -> Option<TargetList> {
9291        support::child(&self.syntax)
9292    }
9293    #[inline]
9294    pub fn all_token(&self) -> Option<SyntaxToken> {
9295        support::token(&self.syntax, SyntaxKind::ALL_KW)
9296    }
9297    #[inline]
9298    pub fn select_token(&self) -> Option<SyntaxToken> {
9299        support::token(&self.syntax, SyntaxKind::SELECT_KW)
9300    }
9301}
9302
9303#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9304pub struct SelectInto {
9305    pub(crate) syntax: SyntaxNode,
9306}
9307impl SelectInto {
9308    #[inline]
9309    pub fn filter_clause(&self) -> Option<FilterClause> {
9310        support::child(&self.syntax)
9311    }
9312    #[inline]
9313    pub fn from_clause(&self) -> Option<FromClause> {
9314        support::child(&self.syntax)
9315    }
9316    #[inline]
9317    pub fn group_by_clause(&self) -> Option<GroupByClause> {
9318        support::child(&self.syntax)
9319    }
9320    #[inline]
9321    pub fn having_clause(&self) -> Option<HavingClause> {
9322        support::child(&self.syntax)
9323    }
9324    #[inline]
9325    pub fn into_clause(&self) -> Option<IntoClause> {
9326        support::child(&self.syntax)
9327    }
9328    #[inline]
9329    pub fn limit_clause(&self) -> Option<LimitClause> {
9330        support::child(&self.syntax)
9331    }
9332    #[inline]
9333    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
9334        support::children(&self.syntax)
9335    }
9336    #[inline]
9337    pub fn offset_clause(&self) -> Option<OffsetClause> {
9338        support::child(&self.syntax)
9339    }
9340    #[inline]
9341    pub fn order_by_clause(&self) -> Option<OrderByClause> {
9342        support::child(&self.syntax)
9343    }
9344    #[inline]
9345    pub fn select_clause(&self) -> Option<SelectClause> {
9346        support::child(&self.syntax)
9347    }
9348    #[inline]
9349    pub fn where_clause(&self) -> Option<WhereClause> {
9350        support::child(&self.syntax)
9351    }
9352    #[inline]
9353    pub fn window_clause(&self) -> Option<WindowClause> {
9354        support::child(&self.syntax)
9355    }
9356}
9357
9358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9359pub struct SequenceOption {
9360    pub(crate) syntax: SyntaxNode,
9361}
9362impl SequenceOption {
9363    #[inline]
9364    pub fn cycle_token(&self) -> Option<SyntaxToken> {
9365        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
9366    }
9367    #[inline]
9368    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
9369        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
9370    }
9371    #[inline]
9372    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
9374    }
9375    #[inline]
9376    pub fn no_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::NO_KW)
9378    }
9379}
9380
9381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9382pub struct SequenceOptionList {
9383    pub(crate) syntax: SyntaxNode,
9384}
9385impl SequenceOptionList {
9386    #[inline]
9387    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
9388        support::children(&self.syntax)
9389    }
9390    #[inline]
9391    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9392        support::token(&self.syntax, SyntaxKind::L_PAREN)
9393    }
9394    #[inline]
9395    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9396        support::token(&self.syntax, SyntaxKind::R_PAREN)
9397    }
9398}
9399
9400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9401pub struct Serializable {
9402    pub(crate) syntax: SyntaxNode,
9403}
9404impl Serializable {
9405    #[inline]
9406    pub fn isolation_token(&self) -> Option<SyntaxToken> {
9407        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
9408    }
9409    #[inline]
9410    pub fn level_token(&self) -> Option<SyntaxToken> {
9411        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
9412    }
9413    #[inline]
9414    pub fn serializable_token(&self) -> Option<SyntaxToken> {
9415        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
9416    }
9417}
9418
9419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9420pub struct Set {
9421    pub(crate) syntax: SyntaxNode,
9422}
9423impl Set {
9424    #[inline]
9425    pub fn expr(&self) -> Option<Expr> {
9426        support::child(&self.syntax)
9427    }
9428    #[inline]
9429    pub fn path(&self) -> Option<Path> {
9430        support::child(&self.syntax)
9431    }
9432    #[inline]
9433    pub fn eq_token(&self) -> Option<SyntaxToken> {
9434        support::token(&self.syntax, SyntaxKind::EQ)
9435    }
9436    #[inline]
9437    pub fn default_token(&self) -> Option<SyntaxToken> {
9438        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9439    }
9440    #[inline]
9441    pub fn local_token(&self) -> Option<SyntaxToken> {
9442        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
9443    }
9444    #[inline]
9445    pub fn session_token(&self) -> Option<SyntaxToken> {
9446        support::token(&self.syntax, SyntaxKind::SESSION_KW)
9447    }
9448    #[inline]
9449    pub fn set_token(&self) -> Option<SyntaxToken> {
9450        support::token(&self.syntax, SyntaxKind::SET_KW)
9451    }
9452    #[inline]
9453    pub fn time_token(&self) -> Option<SyntaxToken> {
9454        support::token(&self.syntax, SyntaxKind::TIME_KW)
9455    }
9456    #[inline]
9457    pub fn to_token(&self) -> Option<SyntaxToken> {
9458        support::token(&self.syntax, SyntaxKind::TO_KW)
9459    }
9460    #[inline]
9461    pub fn zone_token(&self) -> Option<SyntaxToken> {
9462        support::token(&self.syntax, SyntaxKind::ZONE_KW)
9463    }
9464}
9465
9466#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9467pub struct SetAccessMethod {
9468    pub(crate) syntax: SyntaxNode,
9469}
9470impl SetAccessMethod {
9471    #[inline]
9472    pub fn name_ref(&self) -> Option<NameRef> {
9473        support::child(&self.syntax)
9474    }
9475    #[inline]
9476    pub fn access_token(&self) -> Option<SyntaxToken> {
9477        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
9478    }
9479    #[inline]
9480    pub fn method_token(&self) -> Option<SyntaxToken> {
9481        support::token(&self.syntax, SyntaxKind::METHOD_KW)
9482    }
9483    #[inline]
9484    pub fn set_token(&self) -> Option<SyntaxToken> {
9485        support::token(&self.syntax, SyntaxKind::SET_KW)
9486    }
9487}
9488
9489#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9490pub struct SetClause {
9491    pub(crate) syntax: SyntaxNode,
9492}
9493impl SetClause {
9494    #[inline]
9495    pub fn set_column_list(&self) -> Option<SetColumnList> {
9496        support::child(&self.syntax)
9497    }
9498    #[inline]
9499    pub fn set_token(&self) -> Option<SyntaxToken> {
9500        support::token(&self.syntax, SyntaxKind::SET_KW)
9501    }
9502}
9503
9504#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9505pub struct SetColumnList {
9506    pub(crate) syntax: SyntaxNode,
9507}
9508impl SetColumnList {
9509    #[inline]
9510    pub fn set_columns(&self) -> AstChildren<SetColumn> {
9511        support::children(&self.syntax)
9512    }
9513}
9514
9515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9516pub struct SetCompression {
9517    pub(crate) syntax: SyntaxNode,
9518}
9519impl SetCompression {
9520    #[inline]
9521    pub fn compression_token(&self) -> Option<SyntaxToken> {
9522        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
9523    }
9524    #[inline]
9525    pub fn set_token(&self) -> Option<SyntaxToken> {
9526        support::token(&self.syntax, SyntaxKind::SET_KW)
9527    }
9528}
9529
9530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9531pub struct SetConstraints {
9532    pub(crate) syntax: SyntaxNode,
9533}
9534impl SetConstraints {
9535    #[inline]
9536    pub fn constraints_token(&self) -> Option<SyntaxToken> {
9537        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
9538    }
9539    #[inline]
9540    pub fn set_token(&self) -> Option<SyntaxToken> {
9541        support::token(&self.syntax, SyntaxKind::SET_KW)
9542    }
9543}
9544
9545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9546pub struct SetDefault {
9547    pub(crate) syntax: SyntaxNode,
9548}
9549impl SetDefault {
9550    #[inline]
9551    pub fn expr(&self) -> Option<Expr> {
9552        support::child(&self.syntax)
9553    }
9554    #[inline]
9555    pub fn default_token(&self) -> Option<SyntaxToken> {
9556        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9557    }
9558    #[inline]
9559    pub fn set_token(&self) -> Option<SyntaxToken> {
9560        support::token(&self.syntax, SyntaxKind::SET_KW)
9561    }
9562}
9563
9564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9565pub struct SetDefaultColumns {
9566    pub(crate) syntax: SyntaxNode,
9567}
9568impl SetDefaultColumns {
9569    #[inline]
9570    pub fn column_list(&self) -> Option<ColumnList> {
9571        support::child(&self.syntax)
9572    }
9573    #[inline]
9574    pub fn default_token(&self) -> Option<SyntaxToken> {
9575        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9576    }
9577    #[inline]
9578    pub fn set_token(&self) -> Option<SyntaxToken> {
9579        support::token(&self.syntax, SyntaxKind::SET_KW)
9580    }
9581}
9582
9583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9584pub struct SetExpr {
9585    pub(crate) syntax: SyntaxNode,
9586}
9587impl SetExpr {
9588    #[inline]
9589    pub fn expr(&self) -> Option<Expr> {
9590        support::child(&self.syntax)
9591    }
9592    #[inline]
9593    pub fn default_token(&self) -> Option<SyntaxToken> {
9594        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9595    }
9596}
9597
9598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9599pub struct SetExprList {
9600    pub(crate) syntax: SyntaxNode,
9601}
9602impl SetExprList {
9603    #[inline]
9604    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
9605        support::children(&self.syntax)
9606    }
9607    #[inline]
9608    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9609        support::token(&self.syntax, SyntaxKind::L_PAREN)
9610    }
9611    #[inline]
9612    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9613        support::token(&self.syntax, SyntaxKind::R_PAREN)
9614    }
9615    #[inline]
9616    pub fn row_token(&self) -> Option<SyntaxToken> {
9617        support::token(&self.syntax, SyntaxKind::ROW_KW)
9618    }
9619}
9620
9621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9622pub struct SetExpression {
9623    pub(crate) syntax: SyntaxNode,
9624}
9625impl SetExpression {
9626    #[inline]
9627    pub fn expr(&self) -> Option<Expr> {
9628        support::child(&self.syntax)
9629    }
9630    #[inline]
9631    pub fn expression_token(&self) -> Option<SyntaxToken> {
9632        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
9633    }
9634    #[inline]
9635    pub fn set_token(&self) -> Option<SyntaxToken> {
9636        support::token(&self.syntax, SyntaxKind::SET_KW)
9637    }
9638}
9639
9640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9641pub struct SetFuncOption {
9642    pub(crate) syntax: SyntaxNode,
9643}
9644impl SetFuncOption {
9645    #[inline]
9646    pub fn set_token(&self) -> Option<SyntaxToken> {
9647        support::token(&self.syntax, SyntaxKind::SET_KW)
9648    }
9649}
9650
9651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9652pub struct SetGenerated {
9653    pub(crate) syntax: SyntaxNode,
9654}
9655impl SetGenerated {
9656    #[inline]
9657    pub fn set_token(&self) -> Option<SyntaxToken> {
9658        support::token(&self.syntax, SyntaxKind::SET_KW)
9659    }
9660}
9661
9662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9663pub struct SetGeneratedOptions {
9664    pub(crate) syntax: SyntaxNode,
9665}
9666impl SetGeneratedOptions {
9667    #[inline]
9668    pub fn generated_token(&self) -> Option<SyntaxToken> {
9669        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9670    }
9671    #[inline]
9672    pub fn set_token(&self) -> Option<SyntaxToken> {
9673        support::token(&self.syntax, SyntaxKind::SET_KW)
9674    }
9675}
9676
9677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9678pub struct SetLogged {
9679    pub(crate) syntax: SyntaxNode,
9680}
9681impl SetLogged {
9682    #[inline]
9683    pub fn logged_token(&self) -> Option<SyntaxToken> {
9684        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
9685    }
9686    #[inline]
9687    pub fn set_token(&self) -> Option<SyntaxToken> {
9688        support::token(&self.syntax, SyntaxKind::SET_KW)
9689    }
9690}
9691
9692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9693pub struct SetMultipleColumns {
9694    pub(crate) syntax: SyntaxNode,
9695}
9696impl SetMultipleColumns {
9697    #[inline]
9698    pub fn column_list(&self) -> Option<ColumnList> {
9699        support::child(&self.syntax)
9700    }
9701    #[inline]
9702    pub fn paren_select(&self) -> Option<ParenSelect> {
9703        support::child(&self.syntax)
9704    }
9705    #[inline]
9706    pub fn set_expr_list(&self) -> Option<SetExprList> {
9707        support::child(&self.syntax)
9708    }
9709    #[inline]
9710    pub fn eq_token(&self) -> Option<SyntaxToken> {
9711        support::token(&self.syntax, SyntaxKind::EQ)
9712    }
9713}
9714
9715#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9716pub struct SetNotNull {
9717    pub(crate) syntax: SyntaxNode,
9718}
9719impl SetNotNull {
9720    #[inline]
9721    pub fn not_token(&self) -> Option<SyntaxToken> {
9722        support::token(&self.syntax, SyntaxKind::NOT_KW)
9723    }
9724    #[inline]
9725    pub fn null_token(&self) -> Option<SyntaxToken> {
9726        support::token(&self.syntax, SyntaxKind::NULL_KW)
9727    }
9728    #[inline]
9729    pub fn set_token(&self) -> Option<SyntaxToken> {
9730        support::token(&self.syntax, SyntaxKind::SET_KW)
9731    }
9732}
9733
9734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9735pub struct SetNullColumns {
9736    pub(crate) syntax: SyntaxNode,
9737}
9738impl SetNullColumns {
9739    #[inline]
9740    pub fn column_list(&self) -> Option<ColumnList> {
9741        support::child(&self.syntax)
9742    }
9743    #[inline]
9744    pub fn null_token(&self) -> Option<SyntaxToken> {
9745        support::token(&self.syntax, SyntaxKind::NULL_KW)
9746    }
9747    #[inline]
9748    pub fn set_token(&self) -> Option<SyntaxToken> {
9749        support::token(&self.syntax, SyntaxKind::SET_KW)
9750    }
9751}
9752
9753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9754pub struct SetOptions {
9755    pub(crate) syntax: SyntaxNode,
9756}
9757impl SetOptions {
9758    #[inline]
9759    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9760        support::token(&self.syntax, SyntaxKind::L_PAREN)
9761    }
9762    #[inline]
9763    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9764        support::token(&self.syntax, SyntaxKind::R_PAREN)
9765    }
9766    #[inline]
9767    pub fn set_token(&self) -> Option<SyntaxToken> {
9768        support::token(&self.syntax, SyntaxKind::SET_KW)
9769    }
9770}
9771
9772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9773pub struct SetOptionsList {
9774    pub(crate) syntax: SyntaxNode,
9775}
9776impl SetOptionsList {
9777    #[inline]
9778    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9779        support::child(&self.syntax)
9780    }
9781    #[inline]
9782    pub fn options_token(&self) -> Option<SyntaxToken> {
9783        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
9784    }
9785    #[inline]
9786    pub fn set_token(&self) -> Option<SyntaxToken> {
9787        support::token(&self.syntax, SyntaxKind::SET_KW)
9788    }
9789}
9790
9791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9792pub struct SetRole {
9793    pub(crate) syntax: SyntaxNode,
9794}
9795impl SetRole {
9796    #[inline]
9797    pub fn role_token(&self) -> Option<SyntaxToken> {
9798        support::token(&self.syntax, SyntaxKind::ROLE_KW)
9799    }
9800    #[inline]
9801    pub fn set_token(&self) -> Option<SyntaxToken> {
9802        support::token(&self.syntax, SyntaxKind::SET_KW)
9803    }
9804}
9805
9806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9807pub struct SetSchema {
9808    pub(crate) syntax: SyntaxNode,
9809}
9810impl SetSchema {
9811    #[inline]
9812    pub fn name_ref(&self) -> Option<NameRef> {
9813        support::child(&self.syntax)
9814    }
9815    #[inline]
9816    pub fn schema_token(&self) -> Option<SyntaxToken> {
9817        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9818    }
9819    #[inline]
9820    pub fn set_token(&self) -> Option<SyntaxToken> {
9821        support::token(&self.syntax, SyntaxKind::SET_KW)
9822    }
9823}
9824
9825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9826pub struct SetSequenceOption {
9827    pub(crate) syntax: SyntaxNode,
9828}
9829impl SetSequenceOption {
9830    #[inline]
9831    pub fn set_token(&self) -> Option<SyntaxToken> {
9832        support::token(&self.syntax, SyntaxKind::SET_KW)
9833    }
9834}
9835
9836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9837pub struct SetSessionAuth {
9838    pub(crate) syntax: SyntaxNode,
9839}
9840impl SetSessionAuth {
9841    #[inline]
9842    pub fn authorization_token(&self) -> Option<SyntaxToken> {
9843        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
9844    }
9845    #[inline]
9846    pub fn session_token(&self) -> Option<SyntaxToken> {
9847        support::token(&self.syntax, SyntaxKind::SESSION_KW)
9848    }
9849    #[inline]
9850    pub fn set_token(&self) -> Option<SyntaxToken> {
9851        support::token(&self.syntax, SyntaxKind::SET_KW)
9852    }
9853}
9854
9855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9856pub struct SetSingleColumn {
9857    pub(crate) syntax: SyntaxNode,
9858}
9859impl SetSingleColumn {
9860    #[inline]
9861    pub fn column(&self) -> Option<Column> {
9862        support::child(&self.syntax)
9863    }
9864    #[inline]
9865    pub fn set_expr(&self) -> Option<SetExpr> {
9866        support::child(&self.syntax)
9867    }
9868    #[inline]
9869    pub fn eq_token(&self) -> Option<SyntaxToken> {
9870        support::token(&self.syntax, SyntaxKind::EQ)
9871    }
9872}
9873
9874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9875pub struct SetStatistics {
9876    pub(crate) syntax: SyntaxNode,
9877}
9878impl SetStatistics {
9879    #[inline]
9880    pub fn set_token(&self) -> Option<SyntaxToken> {
9881        support::token(&self.syntax, SyntaxKind::SET_KW)
9882    }
9883    #[inline]
9884    pub fn statistics_token(&self) -> Option<SyntaxToken> {
9885        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
9886    }
9887}
9888
9889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9890pub struct SetStorage {
9891    pub(crate) syntax: SyntaxNode,
9892}
9893impl SetStorage {
9894    #[inline]
9895    pub fn set_token(&self) -> Option<SyntaxToken> {
9896        support::token(&self.syntax, SyntaxKind::SET_KW)
9897    }
9898    #[inline]
9899    pub fn storage_token(&self) -> Option<SyntaxToken> {
9900        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
9901    }
9902}
9903
9904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9905pub struct SetStorageParams {
9906    pub(crate) syntax: SyntaxNode,
9907}
9908impl SetStorageParams {
9909    #[inline]
9910    pub fn attribute_list(&self) -> Option<AttributeList> {
9911        support::child(&self.syntax)
9912    }
9913    #[inline]
9914    pub fn set_token(&self) -> Option<SyntaxToken> {
9915        support::token(&self.syntax, SyntaxKind::SET_KW)
9916    }
9917}
9918
9919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9920pub struct SetTablespace {
9921    pub(crate) syntax: SyntaxNode,
9922}
9923impl SetTablespace {
9924    #[inline]
9925    pub fn name_ref(&self) -> Option<NameRef> {
9926        support::child(&self.syntax)
9927    }
9928    #[inline]
9929    pub fn set_token(&self) -> Option<SyntaxToken> {
9930        support::token(&self.syntax, SyntaxKind::SET_KW)
9931    }
9932    #[inline]
9933    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
9934        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
9935    }
9936}
9937
9938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9939pub struct SetTransaction {
9940    pub(crate) syntax: SyntaxNode,
9941}
9942impl SetTransaction {
9943    #[inline]
9944    pub fn set_token(&self) -> Option<SyntaxToken> {
9945        support::token(&self.syntax, SyntaxKind::SET_KW)
9946    }
9947    #[inline]
9948    pub fn transaction_token(&self) -> Option<SyntaxToken> {
9949        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
9950    }
9951}
9952
9953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9954pub struct SetType {
9955    pub(crate) syntax: SyntaxNode,
9956}
9957impl SetType {
9958    #[inline]
9959    pub fn collate(&self) -> Option<Collate> {
9960        support::child(&self.syntax)
9961    }
9962    #[inline]
9963    pub fn ty(&self) -> Option<Type> {
9964        support::child(&self.syntax)
9965    }
9966    #[inline]
9967    pub fn set_token(&self) -> Option<SyntaxToken> {
9968        support::token(&self.syntax, SyntaxKind::SET_KW)
9969    }
9970    #[inline]
9971    pub fn type_token(&self) -> Option<SyntaxToken> {
9972        support::token(&self.syntax, SyntaxKind::TYPE_KW)
9973    }
9974}
9975
9976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9977pub struct SetUnlogged {
9978    pub(crate) syntax: SyntaxNode,
9979}
9980impl SetUnlogged {
9981    #[inline]
9982    pub fn set_token(&self) -> Option<SyntaxToken> {
9983        support::token(&self.syntax, SyntaxKind::SET_KW)
9984    }
9985    #[inline]
9986    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
9987        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
9988    }
9989}
9990
9991#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9992pub struct SetWithoutCluster {
9993    pub(crate) syntax: SyntaxNode,
9994}
9995impl SetWithoutCluster {
9996    #[inline]
9997    pub fn cluster_token(&self) -> Option<SyntaxToken> {
9998        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
9999    }
10000    #[inline]
10001    pub fn set_token(&self) -> Option<SyntaxToken> {
10002        support::token(&self.syntax, SyntaxKind::SET_KW)
10003    }
10004    #[inline]
10005    pub fn without_token(&self) -> Option<SyntaxToken> {
10006        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10007    }
10008}
10009
10010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10011pub struct SetWithoutOids {
10012    pub(crate) syntax: SyntaxNode,
10013}
10014impl SetWithoutOids {
10015    #[inline]
10016    pub fn oids_token(&self) -> Option<SyntaxToken> {
10017        support::token(&self.syntax, SyntaxKind::OIDS_KW)
10018    }
10019    #[inline]
10020    pub fn set_token(&self) -> Option<SyntaxToken> {
10021        support::token(&self.syntax, SyntaxKind::SET_KW)
10022    }
10023    #[inline]
10024    pub fn without_token(&self) -> Option<SyntaxToken> {
10025        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10026    }
10027}
10028
10029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10030pub struct Show {
10031    pub(crate) syntax: SyntaxNode,
10032}
10033impl Show {
10034    #[inline]
10035    pub fn show_token(&self) -> Option<SyntaxToken> {
10036        support::token(&self.syntax, SyntaxKind::SHOW_KW)
10037    }
10038}
10039
10040#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10041pub struct SimilarTo {
10042    pub(crate) syntax: SyntaxNode,
10043}
10044impl SimilarTo {
10045    #[inline]
10046    pub fn similar_token(&self) -> Option<SyntaxToken> {
10047        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
10048    }
10049    #[inline]
10050    pub fn to_token(&self) -> Option<SyntaxToken> {
10051        support::token(&self.syntax, SyntaxKind::TO_KW)
10052    }
10053}
10054
10055#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10056pub struct SliceExpr {
10057    pub(crate) syntax: SyntaxNode,
10058}
10059impl SliceExpr {
10060    #[inline]
10061    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
10062        support::token(&self.syntax, SyntaxKind::L_BRACK)
10063    }
10064    #[inline]
10065    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
10066        support::token(&self.syntax, SyntaxKind::R_BRACK)
10067    }
10068    #[inline]
10069    pub fn colon_token(&self) -> Option<SyntaxToken> {
10070        support::token(&self.syntax, SyntaxKind::COLON)
10071    }
10072}
10073
10074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10075pub struct SortAsc {
10076    pub(crate) syntax: SyntaxNode,
10077}
10078impl SortAsc {
10079    #[inline]
10080    pub fn asc_token(&self) -> Option<SyntaxToken> {
10081        support::token(&self.syntax, SyntaxKind::ASC_KW)
10082    }
10083}
10084
10085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10086pub struct SortBy {
10087    pub(crate) syntax: SyntaxNode,
10088}
10089impl SortBy {
10090    #[inline]
10091    pub fn expr(&self) -> Option<Expr> {
10092        support::child(&self.syntax)
10093    }
10094    #[inline]
10095    pub fn nulls_first(&self) -> Option<NullsFirst> {
10096        support::child(&self.syntax)
10097    }
10098    #[inline]
10099    pub fn nulls_last(&self) -> Option<NullsLast> {
10100        support::child(&self.syntax)
10101    }
10102    #[inline]
10103    pub fn sort_asc(&self) -> Option<SortAsc> {
10104        support::child(&self.syntax)
10105    }
10106    #[inline]
10107    pub fn sort_desc(&self) -> Option<SortDesc> {
10108        support::child(&self.syntax)
10109    }
10110    #[inline]
10111    pub fn sort_using(&self) -> Option<SortUsing> {
10112        support::child(&self.syntax)
10113    }
10114}
10115
10116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10117pub struct SortByList {
10118    pub(crate) syntax: SyntaxNode,
10119}
10120impl SortByList {
10121    #[inline]
10122    pub fn sort_bys(&self) -> AstChildren<SortBy> {
10123        support::children(&self.syntax)
10124    }
10125}
10126
10127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10128pub struct SortDesc {
10129    pub(crate) syntax: SyntaxNode,
10130}
10131impl SortDesc {
10132    #[inline]
10133    pub fn desc_token(&self) -> Option<SyntaxToken> {
10134        support::token(&self.syntax, SyntaxKind::DESC_KW)
10135    }
10136}
10137
10138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10139pub struct SortUsing {
10140    pub(crate) syntax: SyntaxNode,
10141}
10142impl SortUsing {
10143    #[inline]
10144    pub fn op(&self) -> Option<Op> {
10145        support::child(&self.syntax)
10146    }
10147    #[inline]
10148    pub fn using_token(&self) -> Option<SyntaxToken> {
10149        support::token(&self.syntax, SyntaxKind::USING_KW)
10150    }
10151}
10152
10153#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10154pub struct SourceFile {
10155    pub(crate) syntax: SyntaxNode,
10156}
10157impl SourceFile {
10158    #[inline]
10159    pub fn stmts(&self) -> AstChildren<Stmt> {
10160        support::children(&self.syntax)
10161    }
10162}
10163
10164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10165pub struct Storage {
10166    pub(crate) syntax: SyntaxNode,
10167}
10168impl Storage {
10169    #[inline]
10170    pub fn default_token(&self) -> Option<SyntaxToken> {
10171        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10172    }
10173    #[inline]
10174    pub fn external_token(&self) -> Option<SyntaxToken> {
10175        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
10176    }
10177    #[inline]
10178    pub fn ident_token(&self) -> Option<SyntaxToken> {
10179        support::token(&self.syntax, SyntaxKind::IDENT)
10180    }
10181    #[inline]
10182    pub fn storage_token(&self) -> Option<SyntaxToken> {
10183        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
10184    }
10185}
10186
10187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10188pub struct StrictFuncOption {
10189    pub(crate) syntax: SyntaxNode,
10190}
10191impl StrictFuncOption {
10192    #[inline]
10193    pub fn called_token(&self) -> Option<SyntaxToken> {
10194        support::token(&self.syntax, SyntaxKind::CALLED_KW)
10195    }
10196    #[inline]
10197    pub fn input_token(&self) -> Option<SyntaxToken> {
10198        support::token(&self.syntax, SyntaxKind::INPUT_KW)
10199    }
10200    #[inline]
10201    pub fn null_token(&self) -> Option<SyntaxToken> {
10202        support::token(&self.syntax, SyntaxKind::NULL_KW)
10203    }
10204    #[inline]
10205    pub fn on_token(&self) -> Option<SyntaxToken> {
10206        support::token(&self.syntax, SyntaxKind::ON_KW)
10207    }
10208    #[inline]
10209    pub fn returns_token(&self) -> Option<SyntaxToken> {
10210        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
10211    }
10212    #[inline]
10213    pub fn strict_token(&self) -> Option<SyntaxToken> {
10214        support::token(&self.syntax, SyntaxKind::STRICT_KW)
10215    }
10216}
10217
10218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10219pub struct SupportFuncOption {
10220    pub(crate) syntax: SyntaxNode,
10221}
10222impl SupportFuncOption {
10223    #[inline]
10224    pub fn support_token(&self) -> Option<SyntaxToken> {
10225        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
10226    }
10227}
10228
10229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10230pub struct Table {
10231    pub(crate) syntax: SyntaxNode,
10232}
10233impl Table {
10234    #[inline]
10235    pub fn relation_name(&self) -> Option<RelationName> {
10236        support::child(&self.syntax)
10237    }
10238    #[inline]
10239    pub fn table_token(&self) -> Option<SyntaxToken> {
10240        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10241    }
10242}
10243
10244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10245pub struct TableArgList {
10246    pub(crate) syntax: SyntaxNode,
10247}
10248impl TableArgList {
10249    #[inline]
10250    pub fn args(&self) -> AstChildren<TableArg> {
10251        support::children(&self.syntax)
10252    }
10253    #[inline]
10254    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10255        support::token(&self.syntax, SyntaxKind::L_PAREN)
10256    }
10257    #[inline]
10258    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10259        support::token(&self.syntax, SyntaxKind::R_PAREN)
10260    }
10261}
10262
10263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10264pub struct TableList {
10265    pub(crate) syntax: SyntaxNode,
10266}
10267impl TableList {
10268    #[inline]
10269    pub fn relation_names(&self) -> AstChildren<RelationName> {
10270        support::children(&self.syntax)
10271    }
10272}
10273
10274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10275pub struct Tablespace {
10276    pub(crate) syntax: SyntaxNode,
10277}
10278impl Tablespace {
10279    #[inline]
10280    pub fn name_ref(&self) -> Option<NameRef> {
10281        support::child(&self.syntax)
10282    }
10283    #[inline]
10284    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
10285        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
10286    }
10287}
10288
10289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10290pub struct Target {
10291    pub(crate) syntax: SyntaxNode,
10292}
10293impl Target {
10294    #[inline]
10295    pub fn as_name(&self) -> Option<AsName> {
10296        support::child(&self.syntax)
10297    }
10298    #[inline]
10299    pub fn expr(&self) -> Option<Expr> {
10300        support::child(&self.syntax)
10301    }
10302    #[inline]
10303    pub fn star_token(&self) -> Option<SyntaxToken> {
10304        support::token(&self.syntax, SyntaxKind::STAR)
10305    }
10306}
10307
10308#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10309pub struct TargetList {
10310    pub(crate) syntax: SyntaxNode,
10311}
10312impl TargetList {
10313    #[inline]
10314    pub fn targets(&self) -> AstChildren<Target> {
10315        support::children(&self.syntax)
10316    }
10317}
10318
10319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10320pub struct TimeType {
10321    pub(crate) syntax: SyntaxNode,
10322}
10323impl TimeType {
10324    #[inline]
10325    pub fn literal(&self) -> Option<Literal> {
10326        support::child(&self.syntax)
10327    }
10328    #[inline]
10329    pub fn timezone(&self) -> Option<Timezone> {
10330        support::child(&self.syntax)
10331    }
10332    #[inline]
10333    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10334        support::token(&self.syntax, SyntaxKind::L_PAREN)
10335    }
10336    #[inline]
10337    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10338        support::token(&self.syntax, SyntaxKind::R_PAREN)
10339    }
10340    #[inline]
10341    pub fn time_token(&self) -> Option<SyntaxToken> {
10342        support::token(&self.syntax, SyntaxKind::TIME_KW)
10343    }
10344    #[inline]
10345    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
10346        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
10347    }
10348}
10349
10350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10351pub struct TransactionModeList {
10352    pub(crate) syntax: SyntaxNode,
10353}
10354impl TransactionModeList {
10355    #[inline]
10356    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
10357        support::children(&self.syntax)
10358    }
10359}
10360
10361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10362pub struct TransformFuncOption {
10363    pub(crate) syntax: SyntaxNode,
10364}
10365impl TransformFuncOption {
10366    #[inline]
10367    pub fn transform_token(&self) -> Option<SyntaxToken> {
10368        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
10369    }
10370}
10371
10372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10373pub struct Truncate {
10374    pub(crate) syntax: SyntaxNode,
10375}
10376impl Truncate {
10377    #[inline]
10378    pub fn table_list(&self) -> Option<TableList> {
10379        support::child(&self.syntax)
10380    }
10381    #[inline]
10382    pub fn cascade_token(&self) -> Option<SyntaxToken> {
10383        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
10384    }
10385    #[inline]
10386    pub fn continue_token(&self) -> Option<SyntaxToken> {
10387        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
10388    }
10389    #[inline]
10390    pub fn identity_token(&self) -> Option<SyntaxToken> {
10391        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
10392    }
10393    #[inline]
10394    pub fn restart_token(&self) -> Option<SyntaxToken> {
10395        support::token(&self.syntax, SyntaxKind::RESTART_KW)
10396    }
10397    #[inline]
10398    pub fn restrict_token(&self) -> Option<SyntaxToken> {
10399        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
10400    }
10401    #[inline]
10402    pub fn table_token(&self) -> Option<SyntaxToken> {
10403        support::token(&self.syntax, SyntaxKind::TABLE_KW)
10404    }
10405    #[inline]
10406    pub fn truncate_token(&self) -> Option<SyntaxToken> {
10407        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
10408    }
10409}
10410
10411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10412pub struct TupleExpr {
10413    pub(crate) syntax: SyntaxNode,
10414}
10415impl TupleExpr {
10416    #[inline]
10417    pub fn exprs(&self) -> AstChildren<Expr> {
10418        support::children(&self.syntax)
10419    }
10420    #[inline]
10421    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10422        support::token(&self.syntax, SyntaxKind::L_PAREN)
10423    }
10424    #[inline]
10425    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10426        support::token(&self.syntax, SyntaxKind::R_PAREN)
10427    }
10428}
10429
10430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10431pub struct UnicodeNormalForm {
10432    pub(crate) syntax: SyntaxNode,
10433}
10434impl UnicodeNormalForm {
10435    #[inline]
10436    pub fn nfc_token(&self) -> Option<SyntaxToken> {
10437        support::token(&self.syntax, SyntaxKind::NFC_KW)
10438    }
10439    #[inline]
10440    pub fn nfd_token(&self) -> Option<SyntaxToken> {
10441        support::token(&self.syntax, SyntaxKind::NFD_KW)
10442    }
10443    #[inline]
10444    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
10445        support::token(&self.syntax, SyntaxKind::NFKC_KW)
10446    }
10447    #[inline]
10448    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
10449        support::token(&self.syntax, SyntaxKind::NFKD_KW)
10450    }
10451}
10452
10453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10454pub struct UniqueConstraint {
10455    pub(crate) syntax: SyntaxNode,
10456}
10457impl UniqueConstraint {
10458    #[inline]
10459    pub fn column_list(&self) -> Option<ColumnList> {
10460        support::child(&self.syntax)
10461    }
10462    #[inline]
10463    pub fn name_ref(&self) -> Option<NameRef> {
10464        support::child(&self.syntax)
10465    }
10466    #[inline]
10467    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
10468        support::child(&self.syntax)
10469    }
10470    #[inline]
10471    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
10472        support::child(&self.syntax)
10473    }
10474    #[inline]
10475    pub fn using_index(&self) -> Option<UsingIndex> {
10476        support::child(&self.syntax)
10477    }
10478    #[inline]
10479    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10480        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10481    }
10482    #[inline]
10483    pub fn unique_token(&self) -> Option<SyntaxToken> {
10484        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
10485    }
10486}
10487
10488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10489pub struct Unlisten {
10490    pub(crate) syntax: SyntaxNode,
10491}
10492impl Unlisten {
10493    #[inline]
10494    pub fn name_ref(&self) -> Option<NameRef> {
10495        support::child(&self.syntax)
10496    }
10497    #[inline]
10498    pub fn star_token(&self) -> Option<SyntaxToken> {
10499        support::token(&self.syntax, SyntaxKind::STAR)
10500    }
10501    #[inline]
10502    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
10503        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
10504    }
10505}
10506
10507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10508pub struct Update {
10509    pub(crate) syntax: SyntaxNode,
10510}
10511impl Update {
10512    #[inline]
10513    pub fn alias(&self) -> Option<Alias> {
10514        support::child(&self.syntax)
10515    }
10516    #[inline]
10517    pub fn from_clause(&self) -> Option<FromClause> {
10518        support::child(&self.syntax)
10519    }
10520    #[inline]
10521    pub fn relation_name(&self) -> Option<RelationName> {
10522        support::child(&self.syntax)
10523    }
10524    #[inline]
10525    pub fn returning_clause(&self) -> Option<ReturningClause> {
10526        support::child(&self.syntax)
10527    }
10528    #[inline]
10529    pub fn set_clause(&self) -> Option<SetClause> {
10530        support::child(&self.syntax)
10531    }
10532    #[inline]
10533    pub fn where_clause(&self) -> Option<WhereClause> {
10534        support::child(&self.syntax)
10535    }
10536    #[inline]
10537    pub fn update_token(&self) -> Option<SyntaxToken> {
10538        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
10539    }
10540}
10541
10542#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10543pub struct UsingClause {
10544    pub(crate) syntax: SyntaxNode,
10545}
10546impl UsingClause {
10547    #[inline]
10548    pub fn from_items(&self) -> AstChildren<FromItem> {
10549        support::children(&self.syntax)
10550    }
10551    #[inline]
10552    pub fn using_token(&self) -> Option<SyntaxToken> {
10553        support::token(&self.syntax, SyntaxKind::USING_KW)
10554    }
10555}
10556
10557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10558pub struct UsingIndex {
10559    pub(crate) syntax: SyntaxNode,
10560}
10561impl UsingIndex {
10562    #[inline]
10563    pub fn name_ref(&self) -> Option<NameRef> {
10564        support::child(&self.syntax)
10565    }
10566    #[inline]
10567    pub fn index_token(&self) -> Option<SyntaxToken> {
10568        support::token(&self.syntax, SyntaxKind::INDEX_KW)
10569    }
10570    #[inline]
10571    pub fn using_token(&self) -> Option<SyntaxToken> {
10572        support::token(&self.syntax, SyntaxKind::USING_KW)
10573    }
10574}
10575
10576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10577pub struct UsingMethod {
10578    pub(crate) syntax: SyntaxNode,
10579}
10580impl UsingMethod {
10581    #[inline]
10582    pub fn name_ref(&self) -> Option<NameRef> {
10583        support::child(&self.syntax)
10584    }
10585    #[inline]
10586    pub fn using_token(&self) -> Option<SyntaxToken> {
10587        support::token(&self.syntax, SyntaxKind::USING_KW)
10588    }
10589}
10590
10591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10592pub struct UsingOnClause {
10593    pub(crate) syntax: SyntaxNode,
10594}
10595impl UsingOnClause {
10596    #[inline]
10597    pub fn expr(&self) -> Option<Expr> {
10598        support::child(&self.syntax)
10599    }
10600    #[inline]
10601    pub fn from_item(&self) -> Option<FromItem> {
10602        support::child(&self.syntax)
10603    }
10604    #[inline]
10605    pub fn on_token(&self) -> Option<SyntaxToken> {
10606        support::token(&self.syntax, SyntaxKind::ON_KW)
10607    }
10608    #[inline]
10609    pub fn using_token(&self) -> Option<SyntaxToken> {
10610        support::token(&self.syntax, SyntaxKind::USING_KW)
10611    }
10612}
10613
10614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10615pub struct Vacuum {
10616    pub(crate) syntax: SyntaxNode,
10617}
10618impl Vacuum {
10619    #[inline]
10620    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
10621        support::child(&self.syntax)
10622    }
10623    #[inline]
10624    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
10625        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
10626    }
10627}
10628
10629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10630pub struct VacuumOption {
10631    pub(crate) syntax: SyntaxNode,
10632}
10633impl VacuumOption {
10634    #[inline]
10635    pub fn full_token(&self) -> Option<SyntaxToken> {
10636        support::token(&self.syntax, SyntaxKind::FULL_KW)
10637    }
10638}
10639
10640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10641pub struct VacuumOptionList {
10642    pub(crate) syntax: SyntaxNode,
10643}
10644impl VacuumOptionList {
10645    #[inline]
10646    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
10647        support::children(&self.syntax)
10648    }
10649    #[inline]
10650    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10651        support::token(&self.syntax, SyntaxKind::L_PAREN)
10652    }
10653    #[inline]
10654    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10655        support::token(&self.syntax, SyntaxKind::R_PAREN)
10656    }
10657}
10658
10659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10660pub struct ValidateConstraint {
10661    pub(crate) syntax: SyntaxNode,
10662}
10663impl ValidateConstraint {
10664    #[inline]
10665    pub fn name_ref(&self) -> Option<NameRef> {
10666        support::child(&self.syntax)
10667    }
10668    #[inline]
10669    pub fn constraint_token(&self) -> Option<SyntaxToken> {
10670        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
10671    }
10672    #[inline]
10673    pub fn validate_token(&self) -> Option<SyntaxToken> {
10674        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
10675    }
10676}
10677
10678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10679pub struct Values {
10680    pub(crate) syntax: SyntaxNode,
10681}
10682impl Values {
10683    #[inline]
10684    pub fn row_list(&self) -> Option<RowList> {
10685        support::child(&self.syntax)
10686    }
10687    #[inline]
10688    pub fn values_token(&self) -> Option<SyntaxToken> {
10689        support::token(&self.syntax, SyntaxKind::VALUES_KW)
10690    }
10691}
10692
10693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10694pub struct Variant {
10695    pub(crate) syntax: SyntaxNode,
10696}
10697impl Variant {
10698    #[inline]
10699    pub fn literal(&self) -> Option<Literal> {
10700        support::child(&self.syntax)
10701    }
10702}
10703
10704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10705pub struct VariantList {
10706    pub(crate) syntax: SyntaxNode,
10707}
10708impl VariantList {
10709    #[inline]
10710    pub fn variants(&self) -> AstChildren<Variant> {
10711        support::children(&self.syntax)
10712    }
10713    #[inline]
10714    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10715        support::token(&self.syntax, SyntaxKind::L_PAREN)
10716    }
10717    #[inline]
10718    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10719        support::token(&self.syntax, SyntaxKind::R_PAREN)
10720    }
10721}
10722
10723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10724pub struct VolatilityFuncOption {
10725    pub(crate) syntax: SyntaxNode,
10726}
10727impl VolatilityFuncOption {
10728    #[inline]
10729    pub fn immutable_token(&self) -> Option<SyntaxToken> {
10730        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
10731    }
10732    #[inline]
10733    pub fn stable_token(&self) -> Option<SyntaxToken> {
10734        support::token(&self.syntax, SyntaxKind::STABLE_KW)
10735    }
10736    #[inline]
10737    pub fn volatile_token(&self) -> Option<SyntaxToken> {
10738        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
10739    }
10740}
10741
10742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10743pub struct WhenClause {
10744    pub(crate) syntax: SyntaxNode,
10745}
10746impl WhenClause {
10747    #[inline]
10748    pub fn then_token(&self) -> Option<SyntaxToken> {
10749        support::token(&self.syntax, SyntaxKind::THEN_KW)
10750    }
10751    #[inline]
10752    pub fn when_token(&self) -> Option<SyntaxToken> {
10753        support::token(&self.syntax, SyntaxKind::WHEN_KW)
10754    }
10755}
10756
10757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10758pub struct WhenClauseList {
10759    pub(crate) syntax: SyntaxNode,
10760}
10761impl WhenClauseList {
10762    #[inline]
10763    pub fn when_clause(&self) -> Option<WhenClause> {
10764        support::child(&self.syntax)
10765    }
10766    #[inline]
10767    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
10768        support::children(&self.syntax)
10769    }
10770}
10771
10772#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10773pub struct WhereClause {
10774    pub(crate) syntax: SyntaxNode,
10775}
10776impl WhereClause {
10777    #[inline]
10778    pub fn expr(&self) -> Option<Expr> {
10779        support::child(&self.syntax)
10780    }
10781    #[inline]
10782    pub fn where_token(&self) -> Option<SyntaxToken> {
10783        support::token(&self.syntax, SyntaxKind::WHERE_KW)
10784    }
10785}
10786
10787#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10788pub struct WhereCurrentOf {
10789    pub(crate) syntax: SyntaxNode,
10790}
10791impl WhereCurrentOf {
10792    #[inline]
10793    pub fn name_ref(&self) -> Option<NameRef> {
10794        support::child(&self.syntax)
10795    }
10796    #[inline]
10797    pub fn current_token(&self) -> Option<SyntaxToken> {
10798        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
10799    }
10800    #[inline]
10801    pub fn of_token(&self) -> Option<SyntaxToken> {
10802        support::token(&self.syntax, SyntaxKind::OF_KW)
10803    }
10804    #[inline]
10805    pub fn where_token(&self) -> Option<SyntaxToken> {
10806        support::token(&self.syntax, SyntaxKind::WHERE_KW)
10807    }
10808}
10809
10810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10811pub struct WindowClause {
10812    pub(crate) syntax: SyntaxNode,
10813}
10814impl WindowClause {
10815    #[inline]
10816    pub fn window_defs(&self) -> AstChildren<WindowDef> {
10817        support::children(&self.syntax)
10818    }
10819    #[inline]
10820    pub fn window_token(&self) -> Option<SyntaxToken> {
10821        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
10822    }
10823}
10824
10825#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10826pub struct WindowDef {
10827    pub(crate) syntax: SyntaxNode,
10828}
10829impl WindowDef {
10830    #[inline]
10831    pub fn name(&self) -> Option<Name> {
10832        support::child(&self.syntax)
10833    }
10834    #[inline]
10835    pub fn window_spec(&self) -> Option<WindowSpec> {
10836        support::child(&self.syntax)
10837    }
10838    #[inline]
10839    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10840        support::token(&self.syntax, SyntaxKind::L_PAREN)
10841    }
10842    #[inline]
10843    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10844        support::token(&self.syntax, SyntaxKind::R_PAREN)
10845    }
10846    #[inline]
10847    pub fn as_token(&self) -> Option<SyntaxToken> {
10848        support::token(&self.syntax, SyntaxKind::AS_KW)
10849    }
10850}
10851
10852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10853pub struct WindowFuncOption {
10854    pub(crate) syntax: SyntaxNode,
10855}
10856impl WindowFuncOption {
10857    #[inline]
10858    pub fn window_token(&self) -> Option<SyntaxToken> {
10859        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
10860    }
10861}
10862
10863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10864pub struct WindowSpec {
10865    pub(crate) syntax: SyntaxNode,
10866}
10867impl WindowSpec {
10868    #[inline]
10869    pub fn exprs(&self) -> AstChildren<Expr> {
10870        support::children(&self.syntax)
10871    }
10872    #[inline]
10873    pub fn frame_clause(&self) -> Option<FrameClause> {
10874        support::child(&self.syntax)
10875    }
10876    #[inline]
10877    pub fn order_by_clause(&self) -> Option<OrderByClause> {
10878        support::child(&self.syntax)
10879    }
10880    #[inline]
10881    pub fn by_token(&self) -> Option<SyntaxToken> {
10882        support::token(&self.syntax, SyntaxKind::BY_KW)
10883    }
10884    #[inline]
10885    pub fn ident_token(&self) -> Option<SyntaxToken> {
10886        support::token(&self.syntax, SyntaxKind::IDENT)
10887    }
10888    #[inline]
10889    pub fn partition_token(&self) -> Option<SyntaxToken> {
10890        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
10891    }
10892}
10893
10894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10895pub struct WithClause {
10896    pub(crate) syntax: SyntaxNode,
10897}
10898impl WithClause {
10899    #[inline]
10900    pub fn with_tables(&self) -> AstChildren<WithTable> {
10901        support::children(&self.syntax)
10902    }
10903    #[inline]
10904    pub fn recursive_token(&self) -> Option<SyntaxToken> {
10905        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
10906    }
10907    #[inline]
10908    pub fn with_token(&self) -> Option<SyntaxToken> {
10909        support::token(&self.syntax, SyntaxKind::WITH_KW)
10910    }
10911}
10912
10913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10914pub struct WithData {
10915    pub(crate) syntax: SyntaxNode,
10916}
10917impl WithData {
10918    #[inline]
10919    pub fn data_token(&self) -> Option<SyntaxToken> {
10920        support::token(&self.syntax, SyntaxKind::DATA_KW)
10921    }
10922    #[inline]
10923    pub fn with_token(&self) -> Option<SyntaxToken> {
10924        support::token(&self.syntax, SyntaxKind::WITH_KW)
10925    }
10926}
10927
10928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10929pub struct WithNoData {
10930    pub(crate) syntax: SyntaxNode,
10931}
10932impl WithNoData {
10933    #[inline]
10934    pub fn data_token(&self) -> Option<SyntaxToken> {
10935        support::token(&self.syntax, SyntaxKind::DATA_KW)
10936    }
10937    #[inline]
10938    pub fn no_token(&self) -> Option<SyntaxToken> {
10939        support::token(&self.syntax, SyntaxKind::NO_KW)
10940    }
10941    #[inline]
10942    pub fn with_token(&self) -> Option<SyntaxToken> {
10943        support::token(&self.syntax, SyntaxKind::WITH_KW)
10944    }
10945}
10946
10947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10948pub struct WithOptions {
10949    pub(crate) syntax: SyntaxNode,
10950}
10951impl WithOptions {
10952    #[inline]
10953    pub fn options_token(&self) -> Option<SyntaxToken> {
10954        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
10955    }
10956    #[inline]
10957    pub fn with_token(&self) -> Option<SyntaxToken> {
10958        support::token(&self.syntax, SyntaxKind::WITH_KW)
10959    }
10960}
10961
10962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10963pub struct WithParams {
10964    pub(crate) syntax: SyntaxNode,
10965}
10966impl WithParams {
10967    #[inline]
10968    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10969        support::token(&self.syntax, SyntaxKind::L_PAREN)
10970    }
10971    #[inline]
10972    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10973        support::token(&self.syntax, SyntaxKind::R_PAREN)
10974    }
10975    #[inline]
10976    pub fn with_token(&self) -> Option<SyntaxToken> {
10977        support::token(&self.syntax, SyntaxKind::WITH_KW)
10978    }
10979}
10980
10981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10982pub struct WithTable {
10983    pub(crate) syntax: SyntaxNode,
10984}
10985impl WithTable {
10986    #[inline]
10987    pub fn column_list(&self) -> Option<ColumnList> {
10988        support::child(&self.syntax)
10989    }
10990    #[inline]
10991    pub fn materialized(&self) -> Option<Materialized> {
10992        support::child(&self.syntax)
10993    }
10994    #[inline]
10995    pub fn name(&self) -> Option<Name> {
10996        support::child(&self.syntax)
10997    }
10998    #[inline]
10999    pub fn not_materialized(&self) -> Option<NotMaterialized> {
11000        support::child(&self.syntax)
11001    }
11002    #[inline]
11003    pub fn query(&self) -> Option<WithQuery> {
11004        support::child(&self.syntax)
11005    }
11006    #[inline]
11007    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11008        support::token(&self.syntax, SyntaxKind::L_PAREN)
11009    }
11010    #[inline]
11011    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11012        support::token(&self.syntax, SyntaxKind::R_PAREN)
11013    }
11014    #[inline]
11015    pub fn as_token(&self) -> Option<SyntaxToken> {
11016        support::token(&self.syntax, SyntaxKind::AS_KW)
11017    }
11018}
11019
11020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11021pub struct WithTimezone {
11022    pub(crate) syntax: SyntaxNode,
11023}
11024impl WithTimezone {
11025    #[inline]
11026    pub fn time_token(&self) -> Option<SyntaxToken> {
11027        support::token(&self.syntax, SyntaxKind::TIME_KW)
11028    }
11029    #[inline]
11030    pub fn with_token(&self) -> Option<SyntaxToken> {
11031        support::token(&self.syntax, SyntaxKind::WITH_KW)
11032    }
11033    #[inline]
11034    pub fn zone_token(&self) -> Option<SyntaxToken> {
11035        support::token(&self.syntax, SyntaxKind::ZONE_KW)
11036    }
11037}
11038
11039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11040pub struct WithinClause {
11041    pub(crate) syntax: SyntaxNode,
11042}
11043impl WithinClause {
11044    #[inline]
11045    pub fn order_by_clause(&self) -> Option<OrderByClause> {
11046        support::child(&self.syntax)
11047    }
11048    #[inline]
11049    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11050        support::token(&self.syntax, SyntaxKind::L_PAREN)
11051    }
11052    #[inline]
11053    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11054        support::token(&self.syntax, SyntaxKind::R_PAREN)
11055    }
11056    #[inline]
11057    pub fn group_token(&self) -> Option<SyntaxToken> {
11058        support::token(&self.syntax, SyntaxKind::GROUP_KW)
11059    }
11060    #[inline]
11061    pub fn within_token(&self) -> Option<SyntaxToken> {
11062        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
11063    }
11064}
11065
11066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11067pub struct WithoutOids {
11068    pub(crate) syntax: SyntaxNode,
11069}
11070impl WithoutOids {
11071    #[inline]
11072    pub fn oids_token(&self) -> Option<SyntaxToken> {
11073        support::token(&self.syntax, SyntaxKind::OIDS_KW)
11074    }
11075    #[inline]
11076    pub fn without_token(&self) -> Option<SyntaxToken> {
11077        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11078    }
11079}
11080
11081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11082pub struct WithoutTimezone {
11083    pub(crate) syntax: SyntaxNode,
11084}
11085impl WithoutTimezone {
11086    #[inline]
11087    pub fn time_token(&self) -> Option<SyntaxToken> {
11088        support::token(&self.syntax, SyntaxKind::TIME_KW)
11089    }
11090    #[inline]
11091    pub fn without_token(&self) -> Option<SyntaxToken> {
11092        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11093    }
11094    #[inline]
11095    pub fn zone_token(&self) -> Option<SyntaxToken> {
11096        support::token(&self.syntax, SyntaxKind::ZONE_KW)
11097    }
11098}
11099
11100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11101pub struct XmlColumnOption {
11102    pub(crate) syntax: SyntaxNode,
11103}
11104impl XmlColumnOption {
11105    #[inline]
11106    pub fn expr(&self) -> Option<Expr> {
11107        support::child(&self.syntax)
11108    }
11109    #[inline]
11110    pub fn default_token(&self) -> Option<SyntaxToken> {
11111        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11112    }
11113    #[inline]
11114    pub fn ident_token(&self) -> Option<SyntaxToken> {
11115        support::token(&self.syntax, SyntaxKind::IDENT)
11116    }
11117    #[inline]
11118    pub fn not_token(&self) -> Option<SyntaxToken> {
11119        support::token(&self.syntax, SyntaxKind::NOT_KW)
11120    }
11121    #[inline]
11122    pub fn null_token(&self) -> Option<SyntaxToken> {
11123        support::token(&self.syntax, SyntaxKind::NULL_KW)
11124    }
11125    #[inline]
11126    pub fn path_token(&self) -> Option<SyntaxToken> {
11127        support::token(&self.syntax, SyntaxKind::PATH_KW)
11128    }
11129}
11130
11131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11132pub struct XmlColumnOptionList {
11133    pub(crate) syntax: SyntaxNode,
11134}
11135impl XmlColumnOptionList {
11136    #[inline]
11137    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
11138        support::child(&self.syntax)
11139    }
11140    #[inline]
11141    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
11142        support::children(&self.syntax)
11143    }
11144}
11145
11146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11147pub struct XmlTableColumn {
11148    pub(crate) syntax: SyntaxNode,
11149}
11150impl XmlTableColumn {
11151    #[inline]
11152    pub fn name(&self) -> Option<Name> {
11153        support::child(&self.syntax)
11154    }
11155    #[inline]
11156    pub fn ty(&self) -> Option<Type> {
11157        support::child(&self.syntax)
11158    }
11159    #[inline]
11160    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
11161        support::child(&self.syntax)
11162    }
11163    #[inline]
11164    pub fn for_token(&self) -> Option<SyntaxToken> {
11165        support::token(&self.syntax, SyntaxKind::FOR_KW)
11166    }
11167    #[inline]
11168    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11169        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11170    }
11171}
11172
11173#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11174pub struct XmlTableColumnList {
11175    pub(crate) syntax: SyntaxNode,
11176}
11177impl XmlTableColumnList {
11178    #[inline]
11179    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
11180        support::children(&self.syntax)
11181    }
11182}
11183
11184#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11185pub enum AlterColumnOption {
11186    AddGenerated(AddGenerated),
11187    DropDefault(DropDefault),
11188    DropExpression(DropExpression),
11189    DropIdentity(DropIdentity),
11190    DropNotNull(DropNotNull),
11191    ResetOptions(ResetOptions),
11192    Restart(Restart),
11193    SetCompression(SetCompression),
11194    SetDefault(SetDefault),
11195    SetExpression(SetExpression),
11196    SetGenerated(SetGenerated),
11197    SetGeneratedOptions(SetGeneratedOptions),
11198    SetNotNull(SetNotNull),
11199    SetOptions(SetOptions),
11200    SetOptionsList(SetOptionsList),
11201    SetSequenceOption(SetSequenceOption),
11202    SetStatistics(SetStatistics),
11203    SetStorage(SetStorage),
11204    SetType(SetType),
11205}
11206
11207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11208pub enum AlterDomainAction {
11209    AddConstraint(AddConstraint),
11210    DropConstraint(DropConstraint),
11211    DropDefault(DropDefault),
11212    DropNotNull(DropNotNull),
11213    OwnerTo(OwnerTo),
11214    RenameConstraint(RenameConstraint),
11215    RenameTo(RenameTo),
11216    SetDefault(SetDefault),
11217    SetNotNull(SetNotNull),
11218    SetSchema(SetSchema),
11219    ValidateConstraint(ValidateConstraint),
11220}
11221
11222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11223pub enum AlterTableAction {
11224    AddColumn(AddColumn),
11225    AddConstraint(AddConstraint),
11226    AlterColumn(AlterColumn),
11227    AlterConstraint(AlterConstraint),
11228    AttachPartition(AttachPartition),
11229    ClusterOn(ClusterOn),
11230    DetachPartition(DetachPartition),
11231    DisableRls(DisableRls),
11232    DisableRule(DisableRule),
11233    DisableTrigger(DisableTrigger),
11234    DropColumn(DropColumn),
11235    DropConstraint(DropConstraint),
11236    EnableAlwaysRule(EnableAlwaysRule),
11237    EnableAlwaysTrigger(EnableAlwaysTrigger),
11238    EnableReplicaRule(EnableReplicaRule),
11239    EnableReplicaTrigger(EnableReplicaTrigger),
11240    EnableRls(EnableRls),
11241    EnableRule(EnableRule),
11242    EnableTrigger(EnableTrigger),
11243    ForceRls(ForceRls),
11244    InheritTable(InheritTable),
11245    NoForceRls(NoForceRls),
11246    NoInheritTable(NoInheritTable),
11247    NotOf(NotOf),
11248    OfType(OfType),
11249    OptionItemList(OptionItemList),
11250    OwnerTo(OwnerTo),
11251    RenameColumn(RenameColumn),
11252    RenameConstraint(RenameConstraint),
11253    RenameTable(RenameTable),
11254    ReplicaIdentity(ReplicaIdentity),
11255    ResetStorageParams(ResetStorageParams),
11256    SetAccessMethod(SetAccessMethod),
11257    SetLogged(SetLogged),
11258    SetSchema(SetSchema),
11259    SetStorageParams(SetStorageParams),
11260    SetTablespace(SetTablespace),
11261    SetUnlogged(SetUnlogged),
11262    SetWithoutCluster(SetWithoutCluster),
11263    SetWithoutOids(SetWithoutOids),
11264    ValidateConstraint(ValidateConstraint),
11265}
11266
11267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11268pub enum ColumnConstraint {
11269    CheckConstraint(CheckConstraint),
11270    ExcludeConstraint(ExcludeConstraint),
11271    NotNullConstraint(NotNullConstraint),
11272    PrimaryKeyConstraint(PrimaryKeyConstraint),
11273    ReferencesConstraint(ReferencesConstraint),
11274    UniqueConstraint(UniqueConstraint),
11275}
11276
11277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11278pub enum ConflictAction {
11279    ConflictDoNothing(ConflictDoNothing),
11280    ConflictDoUpdateSet(ConflictDoUpdateSet),
11281}
11282
11283#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11284pub enum ConflictTarget {
11285    ConflictOnConstraint(ConflictOnConstraint),
11286    ConflictOnIndex(ConflictOnIndex),
11287}
11288
11289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11290pub enum Constraint {
11291    CheckConstraint(CheckConstraint),
11292    DefaultConstraint(DefaultConstraint),
11293    ForeignKeyConstraint(ForeignKeyConstraint),
11294    GeneratedConstraint(GeneratedConstraint),
11295    NotNullConstraint(NotNullConstraint),
11296    NullConstraint(NullConstraint),
11297    PrimaryKeyConstraint(PrimaryKeyConstraint),
11298    ReferencesConstraint(ReferencesConstraint),
11299    UniqueConstraint(UniqueConstraint),
11300}
11301
11302#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11303pub enum ExplainStmt {
11304    CompoundSelect(CompoundSelect),
11305    CreateMaterializedView(CreateMaterializedView),
11306    CreateTableAs(CreateTableAs),
11307    Declare(Declare),
11308    Delete(Delete),
11309    Execute(Execute),
11310    Insert(Insert),
11311    Merge(Merge),
11312    ParenSelect(ParenSelect),
11313    Select(Select),
11314    SelectInto(SelectInto),
11315    Table(Table),
11316    Update(Update),
11317    Values(Values),
11318}
11319
11320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11321pub enum Expr {
11322    ArrayExpr(ArrayExpr),
11323    BetweenExpr(BetweenExpr),
11324    BinExpr(BinExpr),
11325    CallExpr(CallExpr),
11326    CaseExpr(CaseExpr),
11327    CastExpr(CastExpr),
11328    FieldExpr(FieldExpr),
11329    IndexExpr(IndexExpr),
11330    Literal(Literal),
11331    NameRef(NameRef),
11332    ParenExpr(ParenExpr),
11333    PostfixExpr(PostfixExpr),
11334    PrefixExpr(PrefixExpr),
11335    SliceExpr(SliceExpr),
11336    TupleExpr(TupleExpr),
11337}
11338
11339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11340pub enum FuncOption {
11341    AsFuncOption(AsFuncOption),
11342    BeginFuncOption(BeginFuncOption),
11343    CostFuncOption(CostFuncOption),
11344    LanguageFuncOption(LanguageFuncOption),
11345    LeakproofFuncOption(LeakproofFuncOption),
11346    ParallelFuncOption(ParallelFuncOption),
11347    ResetFuncOption(ResetFuncOption),
11348    ReturnFuncOption(ReturnFuncOption),
11349    RowsFuncOption(RowsFuncOption),
11350    SecurityFuncOption(SecurityFuncOption),
11351    SetFuncOption(SetFuncOption),
11352    StrictFuncOption(StrictFuncOption),
11353    SupportFuncOption(SupportFuncOption),
11354    TransformFuncOption(TransformFuncOption),
11355    VolatilityFuncOption(VolatilityFuncOption),
11356    WindowFuncOption(WindowFuncOption),
11357}
11358
11359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11360pub enum GroupBy {
11361    GroupingCube(GroupingCube),
11362    GroupingExpr(GroupingExpr),
11363    GroupingRollup(GroupingRollup),
11364    GroupingSets(GroupingSets),
11365}
11366
11367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11368pub enum JoinType {
11369    JoinCross(JoinCross),
11370    JoinFull(JoinFull),
11371    JoinInner(JoinInner),
11372    JoinLeft(JoinLeft),
11373    JoinRight(JoinRight),
11374}
11375
11376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11377pub enum JsonBehavior {
11378    JsonBehaviorDefault(JsonBehaviorDefault),
11379    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
11380    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
11381    JsonBehaviorError(JsonBehaviorError),
11382    JsonBehaviorFalse(JsonBehaviorFalse),
11383    JsonBehaviorNull(JsonBehaviorNull),
11384    JsonBehaviorTrue(JsonBehaviorTrue),
11385    JsonBehaviorUnknown(JsonBehaviorUnknown),
11386}
11387
11388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11389pub enum MatchType {
11390    MatchFull(MatchFull),
11391    MatchPartial(MatchPartial),
11392    MatchSimple(MatchSimple),
11393}
11394
11395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11396pub enum MergeAction {
11397    MergeDelete(MergeDelete),
11398    MergeDoNothing(MergeDoNothing),
11399    MergeInsert(MergeInsert),
11400    MergeUpdate(MergeUpdate),
11401}
11402
11403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11404pub enum MergeWhenClause {
11405    MergeWhenMatched(MergeWhenMatched),
11406    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
11407    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
11408}
11409
11410#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11411pub enum OnCommitAction {
11412    DeleteRows(DeleteRows),
11413    Drop(Drop),
11414    PreserveRows(PreserveRows),
11415}
11416
11417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11418pub enum ParamMode {
11419    ParamIn(ParamIn),
11420    ParamInOut(ParamInOut),
11421    ParamOut(ParamOut),
11422    ParamVariadic(ParamVariadic),
11423}
11424
11425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11426pub enum PartitionType {
11427    PartitionDefault(PartitionDefault),
11428    PartitionForValuesFrom(PartitionForValuesFrom),
11429    PartitionForValuesIn(PartitionForValuesIn),
11430    PartitionForValuesWith(PartitionForValuesWith),
11431}
11432
11433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11434pub enum RefAction {
11435    Cascade(Cascade),
11436    NoAction(NoAction),
11437    Restrict(Restrict),
11438    SetDefaultColumns(SetDefaultColumns),
11439    SetNullColumns(SetNullColumns),
11440}
11441
11442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11443pub enum SelectVariant {
11444    CompoundSelect(CompoundSelect),
11445    ParenSelect(ParenSelect),
11446    Select(Select),
11447    SelectInto(SelectInto),
11448    Table(Table),
11449    Values(Values),
11450}
11451
11452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11453pub enum SetColumn {
11454    SetMultipleColumns(SetMultipleColumns),
11455    SetSingleColumn(SetSingleColumn),
11456}
11457
11458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11459pub enum Stmt {
11460    AlterAggregate(AlterAggregate),
11461    AlterCollation(AlterCollation),
11462    AlterConversion(AlterConversion),
11463    AlterDatabase(AlterDatabase),
11464    AlterDefaultPrivileges(AlterDefaultPrivileges),
11465    AlterDomain(AlterDomain),
11466    AlterEventTrigger(AlterEventTrigger),
11467    AlterExtension(AlterExtension),
11468    AlterForeignDataWrapper(AlterForeignDataWrapper),
11469    AlterForeignTable(AlterForeignTable),
11470    AlterFunction(AlterFunction),
11471    AlterGroup(AlterGroup),
11472    AlterIndex(AlterIndex),
11473    AlterLanguage(AlterLanguage),
11474    AlterLargeObject(AlterLargeObject),
11475    AlterMaterializedView(AlterMaterializedView),
11476    AlterOperator(AlterOperator),
11477    AlterOperatorClass(AlterOperatorClass),
11478    AlterOperatorFamily(AlterOperatorFamily),
11479    AlterPolicy(AlterPolicy),
11480    AlterProcedure(AlterProcedure),
11481    AlterPublication(AlterPublication),
11482    AlterRole(AlterRole),
11483    AlterRoutine(AlterRoutine),
11484    AlterRule(AlterRule),
11485    AlterSchema(AlterSchema),
11486    AlterSequence(AlterSequence),
11487    AlterServer(AlterServer),
11488    AlterStatistics(AlterStatistics),
11489    AlterSubscription(AlterSubscription),
11490    AlterSystem(AlterSystem),
11491    AlterTable(AlterTable),
11492    AlterTablespace(AlterTablespace),
11493    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
11494    AlterTextSearchDictionary(AlterTextSearchDictionary),
11495    AlterTextSearchParser(AlterTextSearchParser),
11496    AlterTextSearchTemplate(AlterTextSearchTemplate),
11497    AlterTrigger(AlterTrigger),
11498    AlterType(AlterType),
11499    AlterUser(AlterUser),
11500    AlterUserMapping(AlterUserMapping),
11501    AlterView(AlterView),
11502    Analyze(Analyze),
11503    Begin(Begin),
11504    Call(Call),
11505    Checkpoint(Checkpoint),
11506    Close(Close),
11507    Cluster(Cluster),
11508    CommentOn(CommentOn),
11509    Commit(Commit),
11510    Copy(Copy),
11511    CreateAccessMethod(CreateAccessMethod),
11512    CreateAggregate(CreateAggregate),
11513    CreateCast(CreateCast),
11514    CreateCollation(CreateCollation),
11515    CreateConversion(CreateConversion),
11516    CreateDatabase(CreateDatabase),
11517    CreateDomain(CreateDomain),
11518    CreateEventTrigger(CreateEventTrigger),
11519    CreateExtension(CreateExtension),
11520    CreateForeignDataWrapper(CreateForeignDataWrapper),
11521    CreateForeignTable(CreateForeignTable),
11522    CreateFunction(CreateFunction),
11523    CreateGroup(CreateGroup),
11524    CreateIndex(CreateIndex),
11525    CreateLanguage(CreateLanguage),
11526    CreateMaterializedView(CreateMaterializedView),
11527    CreateOperator(CreateOperator),
11528    CreateOperatorClass(CreateOperatorClass),
11529    CreateOperatorFamily(CreateOperatorFamily),
11530    CreatePolicy(CreatePolicy),
11531    CreateProcedure(CreateProcedure),
11532    CreatePublication(CreatePublication),
11533    CreateRole(CreateRole),
11534    CreateRule(CreateRule),
11535    CreateSchema(CreateSchema),
11536    CreateSequence(CreateSequence),
11537    CreateServer(CreateServer),
11538    CreateStatistics(CreateStatistics),
11539    CreateSubscription(CreateSubscription),
11540    CreateTable(CreateTable),
11541    CreateTableAs(CreateTableAs),
11542    CreateTablespace(CreateTablespace),
11543    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
11544    CreateTextSearchDictionary(CreateTextSearchDictionary),
11545    CreateTextSearchParser(CreateTextSearchParser),
11546    CreateTextSearchTemplate(CreateTextSearchTemplate),
11547    CreateTransform(CreateTransform),
11548    CreateTrigger(CreateTrigger),
11549    CreateType(CreateType),
11550    CreateUser(CreateUser),
11551    CreateUserMapping(CreateUserMapping),
11552    CreateView(CreateView),
11553    Deallocate(Deallocate),
11554    Declare(Declare),
11555    Delete(Delete),
11556    Discard(Discard),
11557    Do(Do),
11558    DropAccessMethod(DropAccessMethod),
11559    DropAggregate(DropAggregate),
11560    DropCast(DropCast),
11561    DropCollation(DropCollation),
11562    DropConversion(DropConversion),
11563    DropDatabase(DropDatabase),
11564    DropDomain(DropDomain),
11565    DropEventTrigger(DropEventTrigger),
11566    DropExtension(DropExtension),
11567    DropForeignDataWrapper(DropForeignDataWrapper),
11568    DropForeignTable(DropForeignTable),
11569    DropFunction(DropFunction),
11570    DropGroup(DropGroup),
11571    DropIndex(DropIndex),
11572    DropLanguage(DropLanguage),
11573    DropMaterializedView(DropMaterializedView),
11574    DropOperator(DropOperator),
11575    DropOperatorClass(DropOperatorClass),
11576    DropOperatorFamily(DropOperatorFamily),
11577    DropOwned(DropOwned),
11578    DropPolicy(DropPolicy),
11579    DropProcedure(DropProcedure),
11580    DropPublication(DropPublication),
11581    DropRole(DropRole),
11582    DropRoutine(DropRoutine),
11583    DropRule(DropRule),
11584    DropSchema(DropSchema),
11585    DropSequence(DropSequence),
11586    DropServer(DropServer),
11587    DropStatistics(DropStatistics),
11588    DropSubscription(DropSubscription),
11589    DropTable(DropTable),
11590    DropTablespace(DropTablespace),
11591    DropTextSearchConfig(DropTextSearchConfig),
11592    DropTextSearchDict(DropTextSearchDict),
11593    DropTextSearchParser(DropTextSearchParser),
11594    DropTextSearchTemplate(DropTextSearchTemplate),
11595    DropTransform(DropTransform),
11596    DropTrigger(DropTrigger),
11597    DropType(DropType),
11598    DropUser(DropUser),
11599    DropUserMapping(DropUserMapping),
11600    DropView(DropView),
11601    Execute(Execute),
11602    Explain(Explain),
11603    Fetch(Fetch),
11604    Grant(Grant),
11605    ImportForeignSchema(ImportForeignSchema),
11606    Insert(Insert),
11607    Listen(Listen),
11608    Load(Load),
11609    Lock(Lock),
11610    Merge(Merge),
11611    Move(Move),
11612    Notify(Notify),
11613    ParenSelect(ParenSelect),
11614    Prepare(Prepare),
11615    PrepareTransaction(PrepareTransaction),
11616    Reassign(Reassign),
11617    Refresh(Refresh),
11618    Reindex(Reindex),
11619    ReleaseSavepoint(ReleaseSavepoint),
11620    Reset(Reset),
11621    Revoke(Revoke),
11622    Rollback(Rollback),
11623    Savepoint(Savepoint),
11624    SecurityLabel(SecurityLabel),
11625    Select(Select),
11626    SelectInto(SelectInto),
11627    Set(Set),
11628    SetConstraints(SetConstraints),
11629    SetRole(SetRole),
11630    SetSessionAuth(SetSessionAuth),
11631    SetTransaction(SetTransaction),
11632    Show(Show),
11633    Table(Table),
11634    Truncate(Truncate),
11635    Unlisten(Unlisten),
11636    Update(Update),
11637    Vacuum(Vacuum),
11638    Values(Values),
11639}
11640
11641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11642pub enum TableArg {
11643    Column(Column),
11644    LikeClause(LikeClause),
11645    TableConstraint(TableConstraint),
11646}
11647
11648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11649pub enum TableConstraint {
11650    CheckConstraint(CheckConstraint),
11651    ExcludeConstraint(ExcludeConstraint),
11652    ForeignKeyConstraint(ForeignKeyConstraint),
11653    PrimaryKeyConstraint(PrimaryKeyConstraint),
11654    UniqueConstraint(UniqueConstraint),
11655}
11656
11657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11658pub enum Timezone {
11659    WithTimezone(WithTimezone),
11660    WithoutTimezone(WithoutTimezone),
11661}
11662
11663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11664pub enum TransactionMode {
11665    Deferrable(Deferrable),
11666    NotDeferrable(NotDeferrable),
11667    ReadCommitted(ReadCommitted),
11668    ReadOnly(ReadOnly),
11669    ReadUncommitted(ReadUncommitted),
11670    ReadWrite(ReadWrite),
11671    RepeatableRead(RepeatableRead),
11672    Serializable(Serializable),
11673}
11674
11675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11676pub enum Type {
11677    ArrayType(ArrayType),
11678    BitType(BitType),
11679    CharType(CharType),
11680    DoubleType(DoubleType),
11681    ExprType(ExprType),
11682    IntervalType(IntervalType),
11683    PathType(PathType),
11684    PercentType(PercentType),
11685    TimeType(TimeType),
11686}
11687
11688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11689pub enum WithQuery {
11690    Delete(Delete),
11691    Insert(Insert),
11692    Merge(Merge),
11693    Select(Select),
11694    Update(Update),
11695    Values(Values),
11696}
11697impl AstNode for AddColumn {
11698    #[inline]
11699    fn can_cast(kind: SyntaxKind) -> bool {
11700        kind == SyntaxKind::ADD_COLUMN
11701    }
11702    #[inline]
11703    fn cast(syntax: SyntaxNode) -> Option<Self> {
11704        if Self::can_cast(syntax.kind()) {
11705            Some(Self { syntax })
11706        } else {
11707            None
11708        }
11709    }
11710    #[inline]
11711    fn syntax(&self) -> &SyntaxNode {
11712        &self.syntax
11713    }
11714}
11715impl AstNode for AddConstraint {
11716    #[inline]
11717    fn can_cast(kind: SyntaxKind) -> bool {
11718        kind == SyntaxKind::ADD_CONSTRAINT
11719    }
11720    #[inline]
11721    fn cast(syntax: SyntaxNode) -> Option<Self> {
11722        if Self::can_cast(syntax.kind()) {
11723            Some(Self { syntax })
11724        } else {
11725            None
11726        }
11727    }
11728    #[inline]
11729    fn syntax(&self) -> &SyntaxNode {
11730        &self.syntax
11731    }
11732}
11733impl AstNode for AddGenerated {
11734    #[inline]
11735    fn can_cast(kind: SyntaxKind) -> bool {
11736        kind == SyntaxKind::ADD_GENERATED
11737    }
11738    #[inline]
11739    fn cast(syntax: SyntaxNode) -> Option<Self> {
11740        if Self::can_cast(syntax.kind()) {
11741            Some(Self { syntax })
11742        } else {
11743            None
11744        }
11745    }
11746    #[inline]
11747    fn syntax(&self) -> &SyntaxNode {
11748        &self.syntax
11749    }
11750}
11751impl AstNode for Aggregate {
11752    #[inline]
11753    fn can_cast(kind: SyntaxKind) -> bool {
11754        kind == SyntaxKind::AGGREGATE
11755    }
11756    #[inline]
11757    fn cast(syntax: SyntaxNode) -> Option<Self> {
11758        if Self::can_cast(syntax.kind()) {
11759            Some(Self { syntax })
11760        } else {
11761            None
11762        }
11763    }
11764    #[inline]
11765    fn syntax(&self) -> &SyntaxNode {
11766        &self.syntax
11767    }
11768}
11769impl AstNode for Alias {
11770    #[inline]
11771    fn can_cast(kind: SyntaxKind) -> bool {
11772        kind == SyntaxKind::ALIAS
11773    }
11774    #[inline]
11775    fn cast(syntax: SyntaxNode) -> Option<Self> {
11776        if Self::can_cast(syntax.kind()) {
11777            Some(Self { syntax })
11778        } else {
11779            None
11780        }
11781    }
11782    #[inline]
11783    fn syntax(&self) -> &SyntaxNode {
11784        &self.syntax
11785    }
11786}
11787impl AstNode for AlterAggregate {
11788    #[inline]
11789    fn can_cast(kind: SyntaxKind) -> bool {
11790        kind == SyntaxKind::ALTER_AGGREGATE
11791    }
11792    #[inline]
11793    fn cast(syntax: SyntaxNode) -> Option<Self> {
11794        if Self::can_cast(syntax.kind()) {
11795            Some(Self { syntax })
11796        } else {
11797            None
11798        }
11799    }
11800    #[inline]
11801    fn syntax(&self) -> &SyntaxNode {
11802        &self.syntax
11803    }
11804}
11805impl AstNode for AlterCollation {
11806    #[inline]
11807    fn can_cast(kind: SyntaxKind) -> bool {
11808        kind == SyntaxKind::ALTER_COLLATION
11809    }
11810    #[inline]
11811    fn cast(syntax: SyntaxNode) -> Option<Self> {
11812        if Self::can_cast(syntax.kind()) {
11813            Some(Self { syntax })
11814        } else {
11815            None
11816        }
11817    }
11818    #[inline]
11819    fn syntax(&self) -> &SyntaxNode {
11820        &self.syntax
11821    }
11822}
11823impl AstNode for AlterColumn {
11824    #[inline]
11825    fn can_cast(kind: SyntaxKind) -> bool {
11826        kind == SyntaxKind::ALTER_COLUMN
11827    }
11828    #[inline]
11829    fn cast(syntax: SyntaxNode) -> Option<Self> {
11830        if Self::can_cast(syntax.kind()) {
11831            Some(Self { syntax })
11832        } else {
11833            None
11834        }
11835    }
11836    #[inline]
11837    fn syntax(&self) -> &SyntaxNode {
11838        &self.syntax
11839    }
11840}
11841impl AstNode for AlterConstraint {
11842    #[inline]
11843    fn can_cast(kind: SyntaxKind) -> bool {
11844        kind == SyntaxKind::ALTER_CONSTRAINT
11845    }
11846    #[inline]
11847    fn cast(syntax: SyntaxNode) -> Option<Self> {
11848        if Self::can_cast(syntax.kind()) {
11849            Some(Self { syntax })
11850        } else {
11851            None
11852        }
11853    }
11854    #[inline]
11855    fn syntax(&self) -> &SyntaxNode {
11856        &self.syntax
11857    }
11858}
11859impl AstNode for AlterConversion {
11860    #[inline]
11861    fn can_cast(kind: SyntaxKind) -> bool {
11862        kind == SyntaxKind::ALTER_CONVERSION
11863    }
11864    #[inline]
11865    fn cast(syntax: SyntaxNode) -> Option<Self> {
11866        if Self::can_cast(syntax.kind()) {
11867            Some(Self { syntax })
11868        } else {
11869            None
11870        }
11871    }
11872    #[inline]
11873    fn syntax(&self) -> &SyntaxNode {
11874        &self.syntax
11875    }
11876}
11877impl AstNode for AlterDatabase {
11878    #[inline]
11879    fn can_cast(kind: SyntaxKind) -> bool {
11880        kind == SyntaxKind::ALTER_DATABASE
11881    }
11882    #[inline]
11883    fn cast(syntax: SyntaxNode) -> Option<Self> {
11884        if Self::can_cast(syntax.kind()) {
11885            Some(Self { syntax })
11886        } else {
11887            None
11888        }
11889    }
11890    #[inline]
11891    fn syntax(&self) -> &SyntaxNode {
11892        &self.syntax
11893    }
11894}
11895impl AstNode for AlterDefaultPrivileges {
11896    #[inline]
11897    fn can_cast(kind: SyntaxKind) -> bool {
11898        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
11899    }
11900    #[inline]
11901    fn cast(syntax: SyntaxNode) -> Option<Self> {
11902        if Self::can_cast(syntax.kind()) {
11903            Some(Self { syntax })
11904        } else {
11905            None
11906        }
11907    }
11908    #[inline]
11909    fn syntax(&self) -> &SyntaxNode {
11910        &self.syntax
11911    }
11912}
11913impl AstNode for AlterDomain {
11914    #[inline]
11915    fn can_cast(kind: SyntaxKind) -> bool {
11916        kind == SyntaxKind::ALTER_DOMAIN
11917    }
11918    #[inline]
11919    fn cast(syntax: SyntaxNode) -> Option<Self> {
11920        if Self::can_cast(syntax.kind()) {
11921            Some(Self { syntax })
11922        } else {
11923            None
11924        }
11925    }
11926    #[inline]
11927    fn syntax(&self) -> &SyntaxNode {
11928        &self.syntax
11929    }
11930}
11931impl AstNode for AlterEventTrigger {
11932    #[inline]
11933    fn can_cast(kind: SyntaxKind) -> bool {
11934        kind == SyntaxKind::ALTER_EVENT_TRIGGER
11935    }
11936    #[inline]
11937    fn cast(syntax: SyntaxNode) -> Option<Self> {
11938        if Self::can_cast(syntax.kind()) {
11939            Some(Self { syntax })
11940        } else {
11941            None
11942        }
11943    }
11944    #[inline]
11945    fn syntax(&self) -> &SyntaxNode {
11946        &self.syntax
11947    }
11948}
11949impl AstNode for AlterExtension {
11950    #[inline]
11951    fn can_cast(kind: SyntaxKind) -> bool {
11952        kind == SyntaxKind::ALTER_EXTENSION
11953    }
11954    #[inline]
11955    fn cast(syntax: SyntaxNode) -> Option<Self> {
11956        if Self::can_cast(syntax.kind()) {
11957            Some(Self { syntax })
11958        } else {
11959            None
11960        }
11961    }
11962    #[inline]
11963    fn syntax(&self) -> &SyntaxNode {
11964        &self.syntax
11965    }
11966}
11967impl AstNode for AlterForeignDataWrapper {
11968    #[inline]
11969    fn can_cast(kind: SyntaxKind) -> bool {
11970        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
11971    }
11972    #[inline]
11973    fn cast(syntax: SyntaxNode) -> Option<Self> {
11974        if Self::can_cast(syntax.kind()) {
11975            Some(Self { syntax })
11976        } else {
11977            None
11978        }
11979    }
11980    #[inline]
11981    fn syntax(&self) -> &SyntaxNode {
11982        &self.syntax
11983    }
11984}
11985impl AstNode for AlterForeignTable {
11986    #[inline]
11987    fn can_cast(kind: SyntaxKind) -> bool {
11988        kind == SyntaxKind::ALTER_FOREIGN_TABLE
11989    }
11990    #[inline]
11991    fn cast(syntax: SyntaxNode) -> Option<Self> {
11992        if Self::can_cast(syntax.kind()) {
11993            Some(Self { syntax })
11994        } else {
11995            None
11996        }
11997    }
11998    #[inline]
11999    fn syntax(&self) -> &SyntaxNode {
12000        &self.syntax
12001    }
12002}
12003impl AstNode for AlterFunction {
12004    #[inline]
12005    fn can_cast(kind: SyntaxKind) -> bool {
12006        kind == SyntaxKind::ALTER_FUNCTION
12007    }
12008    #[inline]
12009    fn cast(syntax: SyntaxNode) -> Option<Self> {
12010        if Self::can_cast(syntax.kind()) {
12011            Some(Self { syntax })
12012        } else {
12013            None
12014        }
12015    }
12016    #[inline]
12017    fn syntax(&self) -> &SyntaxNode {
12018        &self.syntax
12019    }
12020}
12021impl AstNode for AlterGroup {
12022    #[inline]
12023    fn can_cast(kind: SyntaxKind) -> bool {
12024        kind == SyntaxKind::ALTER_GROUP
12025    }
12026    #[inline]
12027    fn cast(syntax: SyntaxNode) -> Option<Self> {
12028        if Self::can_cast(syntax.kind()) {
12029            Some(Self { syntax })
12030        } else {
12031            None
12032        }
12033    }
12034    #[inline]
12035    fn syntax(&self) -> &SyntaxNode {
12036        &self.syntax
12037    }
12038}
12039impl AstNode for AlterIndex {
12040    #[inline]
12041    fn can_cast(kind: SyntaxKind) -> bool {
12042        kind == SyntaxKind::ALTER_INDEX
12043    }
12044    #[inline]
12045    fn cast(syntax: SyntaxNode) -> Option<Self> {
12046        if Self::can_cast(syntax.kind()) {
12047            Some(Self { syntax })
12048        } else {
12049            None
12050        }
12051    }
12052    #[inline]
12053    fn syntax(&self) -> &SyntaxNode {
12054        &self.syntax
12055    }
12056}
12057impl AstNode for AlterLanguage {
12058    #[inline]
12059    fn can_cast(kind: SyntaxKind) -> bool {
12060        kind == SyntaxKind::ALTER_LANGUAGE
12061    }
12062    #[inline]
12063    fn cast(syntax: SyntaxNode) -> Option<Self> {
12064        if Self::can_cast(syntax.kind()) {
12065            Some(Self { syntax })
12066        } else {
12067            None
12068        }
12069    }
12070    #[inline]
12071    fn syntax(&self) -> &SyntaxNode {
12072        &self.syntax
12073    }
12074}
12075impl AstNode for AlterLargeObject {
12076    #[inline]
12077    fn can_cast(kind: SyntaxKind) -> bool {
12078        kind == SyntaxKind::ALTER_LARGE_OBJECT
12079    }
12080    #[inline]
12081    fn cast(syntax: SyntaxNode) -> Option<Self> {
12082        if Self::can_cast(syntax.kind()) {
12083            Some(Self { syntax })
12084        } else {
12085            None
12086        }
12087    }
12088    #[inline]
12089    fn syntax(&self) -> &SyntaxNode {
12090        &self.syntax
12091    }
12092}
12093impl AstNode for AlterMaterializedView {
12094    #[inline]
12095    fn can_cast(kind: SyntaxKind) -> bool {
12096        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
12097    }
12098    #[inline]
12099    fn cast(syntax: SyntaxNode) -> Option<Self> {
12100        if Self::can_cast(syntax.kind()) {
12101            Some(Self { syntax })
12102        } else {
12103            None
12104        }
12105    }
12106    #[inline]
12107    fn syntax(&self) -> &SyntaxNode {
12108        &self.syntax
12109    }
12110}
12111impl AstNode for AlterOperator {
12112    #[inline]
12113    fn can_cast(kind: SyntaxKind) -> bool {
12114        kind == SyntaxKind::ALTER_OPERATOR
12115    }
12116    #[inline]
12117    fn cast(syntax: SyntaxNode) -> Option<Self> {
12118        if Self::can_cast(syntax.kind()) {
12119            Some(Self { syntax })
12120        } else {
12121            None
12122        }
12123    }
12124    #[inline]
12125    fn syntax(&self) -> &SyntaxNode {
12126        &self.syntax
12127    }
12128}
12129impl AstNode for AlterOperatorClass {
12130    #[inline]
12131    fn can_cast(kind: SyntaxKind) -> bool {
12132        kind == SyntaxKind::ALTER_OPERATOR_CLASS
12133    }
12134    #[inline]
12135    fn cast(syntax: SyntaxNode) -> Option<Self> {
12136        if Self::can_cast(syntax.kind()) {
12137            Some(Self { syntax })
12138        } else {
12139            None
12140        }
12141    }
12142    #[inline]
12143    fn syntax(&self) -> &SyntaxNode {
12144        &self.syntax
12145    }
12146}
12147impl AstNode for AlterOperatorFamily {
12148    #[inline]
12149    fn can_cast(kind: SyntaxKind) -> bool {
12150        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
12151    }
12152    #[inline]
12153    fn cast(syntax: SyntaxNode) -> Option<Self> {
12154        if Self::can_cast(syntax.kind()) {
12155            Some(Self { syntax })
12156        } else {
12157            None
12158        }
12159    }
12160    #[inline]
12161    fn syntax(&self) -> &SyntaxNode {
12162        &self.syntax
12163    }
12164}
12165impl AstNode for AlterOption {
12166    #[inline]
12167    fn can_cast(kind: SyntaxKind) -> bool {
12168        kind == SyntaxKind::ALTER_OPTION
12169    }
12170    #[inline]
12171    fn cast(syntax: SyntaxNode) -> Option<Self> {
12172        if Self::can_cast(syntax.kind()) {
12173            Some(Self { syntax })
12174        } else {
12175            None
12176        }
12177    }
12178    #[inline]
12179    fn syntax(&self) -> &SyntaxNode {
12180        &self.syntax
12181    }
12182}
12183impl AstNode for AlterOptionList {
12184    #[inline]
12185    fn can_cast(kind: SyntaxKind) -> bool {
12186        kind == SyntaxKind::ALTER_OPTION_LIST
12187    }
12188    #[inline]
12189    fn cast(syntax: SyntaxNode) -> Option<Self> {
12190        if Self::can_cast(syntax.kind()) {
12191            Some(Self { syntax })
12192        } else {
12193            None
12194        }
12195    }
12196    #[inline]
12197    fn syntax(&self) -> &SyntaxNode {
12198        &self.syntax
12199    }
12200}
12201impl AstNode for AlterPolicy {
12202    #[inline]
12203    fn can_cast(kind: SyntaxKind) -> bool {
12204        kind == SyntaxKind::ALTER_POLICY
12205    }
12206    #[inline]
12207    fn cast(syntax: SyntaxNode) -> Option<Self> {
12208        if Self::can_cast(syntax.kind()) {
12209            Some(Self { syntax })
12210        } else {
12211            None
12212        }
12213    }
12214    #[inline]
12215    fn syntax(&self) -> &SyntaxNode {
12216        &self.syntax
12217    }
12218}
12219impl AstNode for AlterProcedure {
12220    #[inline]
12221    fn can_cast(kind: SyntaxKind) -> bool {
12222        kind == SyntaxKind::ALTER_PROCEDURE
12223    }
12224    #[inline]
12225    fn cast(syntax: SyntaxNode) -> Option<Self> {
12226        if Self::can_cast(syntax.kind()) {
12227            Some(Self { syntax })
12228        } else {
12229            None
12230        }
12231    }
12232    #[inline]
12233    fn syntax(&self) -> &SyntaxNode {
12234        &self.syntax
12235    }
12236}
12237impl AstNode for AlterPublication {
12238    #[inline]
12239    fn can_cast(kind: SyntaxKind) -> bool {
12240        kind == SyntaxKind::ALTER_PUBLICATION
12241    }
12242    #[inline]
12243    fn cast(syntax: SyntaxNode) -> Option<Self> {
12244        if Self::can_cast(syntax.kind()) {
12245            Some(Self { syntax })
12246        } else {
12247            None
12248        }
12249    }
12250    #[inline]
12251    fn syntax(&self) -> &SyntaxNode {
12252        &self.syntax
12253    }
12254}
12255impl AstNode for AlterRole {
12256    #[inline]
12257    fn can_cast(kind: SyntaxKind) -> bool {
12258        kind == SyntaxKind::ALTER_ROLE
12259    }
12260    #[inline]
12261    fn cast(syntax: SyntaxNode) -> Option<Self> {
12262        if Self::can_cast(syntax.kind()) {
12263            Some(Self { syntax })
12264        } else {
12265            None
12266        }
12267    }
12268    #[inline]
12269    fn syntax(&self) -> &SyntaxNode {
12270        &self.syntax
12271    }
12272}
12273impl AstNode for AlterRoutine {
12274    #[inline]
12275    fn can_cast(kind: SyntaxKind) -> bool {
12276        kind == SyntaxKind::ALTER_ROUTINE
12277    }
12278    #[inline]
12279    fn cast(syntax: SyntaxNode) -> Option<Self> {
12280        if Self::can_cast(syntax.kind()) {
12281            Some(Self { syntax })
12282        } else {
12283            None
12284        }
12285    }
12286    #[inline]
12287    fn syntax(&self) -> &SyntaxNode {
12288        &self.syntax
12289    }
12290}
12291impl AstNode for AlterRule {
12292    #[inline]
12293    fn can_cast(kind: SyntaxKind) -> bool {
12294        kind == SyntaxKind::ALTER_RULE
12295    }
12296    #[inline]
12297    fn cast(syntax: SyntaxNode) -> Option<Self> {
12298        if Self::can_cast(syntax.kind()) {
12299            Some(Self { syntax })
12300        } else {
12301            None
12302        }
12303    }
12304    #[inline]
12305    fn syntax(&self) -> &SyntaxNode {
12306        &self.syntax
12307    }
12308}
12309impl AstNode for AlterSchema {
12310    #[inline]
12311    fn can_cast(kind: SyntaxKind) -> bool {
12312        kind == SyntaxKind::ALTER_SCHEMA
12313    }
12314    #[inline]
12315    fn cast(syntax: SyntaxNode) -> Option<Self> {
12316        if Self::can_cast(syntax.kind()) {
12317            Some(Self { syntax })
12318        } else {
12319            None
12320        }
12321    }
12322    #[inline]
12323    fn syntax(&self) -> &SyntaxNode {
12324        &self.syntax
12325    }
12326}
12327impl AstNode for AlterSequence {
12328    #[inline]
12329    fn can_cast(kind: SyntaxKind) -> bool {
12330        kind == SyntaxKind::ALTER_SEQUENCE
12331    }
12332    #[inline]
12333    fn cast(syntax: SyntaxNode) -> Option<Self> {
12334        if Self::can_cast(syntax.kind()) {
12335            Some(Self { syntax })
12336        } else {
12337            None
12338        }
12339    }
12340    #[inline]
12341    fn syntax(&self) -> &SyntaxNode {
12342        &self.syntax
12343    }
12344}
12345impl AstNode for AlterServer {
12346    #[inline]
12347    fn can_cast(kind: SyntaxKind) -> bool {
12348        kind == SyntaxKind::ALTER_SERVER
12349    }
12350    #[inline]
12351    fn cast(syntax: SyntaxNode) -> Option<Self> {
12352        if Self::can_cast(syntax.kind()) {
12353            Some(Self { syntax })
12354        } else {
12355            None
12356        }
12357    }
12358    #[inline]
12359    fn syntax(&self) -> &SyntaxNode {
12360        &self.syntax
12361    }
12362}
12363impl AstNode for AlterStatistics {
12364    #[inline]
12365    fn can_cast(kind: SyntaxKind) -> bool {
12366        kind == SyntaxKind::ALTER_STATISTICS
12367    }
12368    #[inline]
12369    fn cast(syntax: SyntaxNode) -> Option<Self> {
12370        if Self::can_cast(syntax.kind()) {
12371            Some(Self { syntax })
12372        } else {
12373            None
12374        }
12375    }
12376    #[inline]
12377    fn syntax(&self) -> &SyntaxNode {
12378        &self.syntax
12379    }
12380}
12381impl AstNode for AlterSubscription {
12382    #[inline]
12383    fn can_cast(kind: SyntaxKind) -> bool {
12384        kind == SyntaxKind::ALTER_SUBSCRIPTION
12385    }
12386    #[inline]
12387    fn cast(syntax: SyntaxNode) -> Option<Self> {
12388        if Self::can_cast(syntax.kind()) {
12389            Some(Self { syntax })
12390        } else {
12391            None
12392        }
12393    }
12394    #[inline]
12395    fn syntax(&self) -> &SyntaxNode {
12396        &self.syntax
12397    }
12398}
12399impl AstNode for AlterSystem {
12400    #[inline]
12401    fn can_cast(kind: SyntaxKind) -> bool {
12402        kind == SyntaxKind::ALTER_SYSTEM
12403    }
12404    #[inline]
12405    fn cast(syntax: SyntaxNode) -> Option<Self> {
12406        if Self::can_cast(syntax.kind()) {
12407            Some(Self { syntax })
12408        } else {
12409            None
12410        }
12411    }
12412    #[inline]
12413    fn syntax(&self) -> &SyntaxNode {
12414        &self.syntax
12415    }
12416}
12417impl AstNode for AlterTable {
12418    #[inline]
12419    fn can_cast(kind: SyntaxKind) -> bool {
12420        kind == SyntaxKind::ALTER_TABLE
12421    }
12422    #[inline]
12423    fn cast(syntax: SyntaxNode) -> Option<Self> {
12424        if Self::can_cast(syntax.kind()) {
12425            Some(Self { syntax })
12426        } else {
12427            None
12428        }
12429    }
12430    #[inline]
12431    fn syntax(&self) -> &SyntaxNode {
12432        &self.syntax
12433    }
12434}
12435impl AstNode for AlterTablespace {
12436    #[inline]
12437    fn can_cast(kind: SyntaxKind) -> bool {
12438        kind == SyntaxKind::ALTER_TABLESPACE
12439    }
12440    #[inline]
12441    fn cast(syntax: SyntaxNode) -> Option<Self> {
12442        if Self::can_cast(syntax.kind()) {
12443            Some(Self { syntax })
12444        } else {
12445            None
12446        }
12447    }
12448    #[inline]
12449    fn syntax(&self) -> &SyntaxNode {
12450        &self.syntax
12451    }
12452}
12453impl AstNode for AlterTextSearchConfiguration {
12454    #[inline]
12455    fn can_cast(kind: SyntaxKind) -> bool {
12456        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
12457    }
12458    #[inline]
12459    fn cast(syntax: SyntaxNode) -> Option<Self> {
12460        if Self::can_cast(syntax.kind()) {
12461            Some(Self { syntax })
12462        } else {
12463            None
12464        }
12465    }
12466    #[inline]
12467    fn syntax(&self) -> &SyntaxNode {
12468        &self.syntax
12469    }
12470}
12471impl AstNode for AlterTextSearchDictionary {
12472    #[inline]
12473    fn can_cast(kind: SyntaxKind) -> bool {
12474        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
12475    }
12476    #[inline]
12477    fn cast(syntax: SyntaxNode) -> Option<Self> {
12478        if Self::can_cast(syntax.kind()) {
12479            Some(Self { syntax })
12480        } else {
12481            None
12482        }
12483    }
12484    #[inline]
12485    fn syntax(&self) -> &SyntaxNode {
12486        &self.syntax
12487    }
12488}
12489impl AstNode for AlterTextSearchParser {
12490    #[inline]
12491    fn can_cast(kind: SyntaxKind) -> bool {
12492        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
12493    }
12494    #[inline]
12495    fn cast(syntax: SyntaxNode) -> Option<Self> {
12496        if Self::can_cast(syntax.kind()) {
12497            Some(Self { syntax })
12498        } else {
12499            None
12500        }
12501    }
12502    #[inline]
12503    fn syntax(&self) -> &SyntaxNode {
12504        &self.syntax
12505    }
12506}
12507impl AstNode for AlterTextSearchTemplate {
12508    #[inline]
12509    fn can_cast(kind: SyntaxKind) -> bool {
12510        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
12511    }
12512    #[inline]
12513    fn cast(syntax: SyntaxNode) -> Option<Self> {
12514        if Self::can_cast(syntax.kind()) {
12515            Some(Self { syntax })
12516        } else {
12517            None
12518        }
12519    }
12520    #[inline]
12521    fn syntax(&self) -> &SyntaxNode {
12522        &self.syntax
12523    }
12524}
12525impl AstNode for AlterTrigger {
12526    #[inline]
12527    fn can_cast(kind: SyntaxKind) -> bool {
12528        kind == SyntaxKind::ALTER_TRIGGER
12529    }
12530    #[inline]
12531    fn cast(syntax: SyntaxNode) -> Option<Self> {
12532        if Self::can_cast(syntax.kind()) {
12533            Some(Self { syntax })
12534        } else {
12535            None
12536        }
12537    }
12538    #[inline]
12539    fn syntax(&self) -> &SyntaxNode {
12540        &self.syntax
12541    }
12542}
12543impl AstNode for AlterType {
12544    #[inline]
12545    fn can_cast(kind: SyntaxKind) -> bool {
12546        kind == SyntaxKind::ALTER_TYPE
12547    }
12548    #[inline]
12549    fn cast(syntax: SyntaxNode) -> Option<Self> {
12550        if Self::can_cast(syntax.kind()) {
12551            Some(Self { syntax })
12552        } else {
12553            None
12554        }
12555    }
12556    #[inline]
12557    fn syntax(&self) -> &SyntaxNode {
12558        &self.syntax
12559    }
12560}
12561impl AstNode for AlterUser {
12562    #[inline]
12563    fn can_cast(kind: SyntaxKind) -> bool {
12564        kind == SyntaxKind::ALTER_USER
12565    }
12566    #[inline]
12567    fn cast(syntax: SyntaxNode) -> Option<Self> {
12568        if Self::can_cast(syntax.kind()) {
12569            Some(Self { syntax })
12570        } else {
12571            None
12572        }
12573    }
12574    #[inline]
12575    fn syntax(&self) -> &SyntaxNode {
12576        &self.syntax
12577    }
12578}
12579impl AstNode for AlterUserMapping {
12580    #[inline]
12581    fn can_cast(kind: SyntaxKind) -> bool {
12582        kind == SyntaxKind::ALTER_USER_MAPPING
12583    }
12584    #[inline]
12585    fn cast(syntax: SyntaxNode) -> Option<Self> {
12586        if Self::can_cast(syntax.kind()) {
12587            Some(Self { syntax })
12588        } else {
12589            None
12590        }
12591    }
12592    #[inline]
12593    fn syntax(&self) -> &SyntaxNode {
12594        &self.syntax
12595    }
12596}
12597impl AstNode for AlterView {
12598    #[inline]
12599    fn can_cast(kind: SyntaxKind) -> bool {
12600        kind == SyntaxKind::ALTER_VIEW
12601    }
12602    #[inline]
12603    fn cast(syntax: SyntaxNode) -> Option<Self> {
12604        if Self::can_cast(syntax.kind()) {
12605            Some(Self { syntax })
12606        } else {
12607            None
12608        }
12609    }
12610    #[inline]
12611    fn syntax(&self) -> &SyntaxNode {
12612        &self.syntax
12613    }
12614}
12615impl AstNode for Analyze {
12616    #[inline]
12617    fn can_cast(kind: SyntaxKind) -> bool {
12618        kind == SyntaxKind::ANALYZE
12619    }
12620    #[inline]
12621    fn cast(syntax: SyntaxNode) -> Option<Self> {
12622        if Self::can_cast(syntax.kind()) {
12623            Some(Self { syntax })
12624        } else {
12625            None
12626        }
12627    }
12628    #[inline]
12629    fn syntax(&self) -> &SyntaxNode {
12630        &self.syntax
12631    }
12632}
12633impl AstNode for Arg {
12634    #[inline]
12635    fn can_cast(kind: SyntaxKind) -> bool {
12636        kind == SyntaxKind::ARG
12637    }
12638    #[inline]
12639    fn cast(syntax: SyntaxNode) -> Option<Self> {
12640        if Self::can_cast(syntax.kind()) {
12641            Some(Self { syntax })
12642        } else {
12643            None
12644        }
12645    }
12646    #[inline]
12647    fn syntax(&self) -> &SyntaxNode {
12648        &self.syntax
12649    }
12650}
12651impl AstNode for ArgList {
12652    #[inline]
12653    fn can_cast(kind: SyntaxKind) -> bool {
12654        kind == SyntaxKind::ARG_LIST
12655    }
12656    #[inline]
12657    fn cast(syntax: SyntaxNode) -> Option<Self> {
12658        if Self::can_cast(syntax.kind()) {
12659            Some(Self { syntax })
12660        } else {
12661            None
12662        }
12663    }
12664    #[inline]
12665    fn syntax(&self) -> &SyntaxNode {
12666        &self.syntax
12667    }
12668}
12669impl AstNode for ArrayExpr {
12670    #[inline]
12671    fn can_cast(kind: SyntaxKind) -> bool {
12672        kind == SyntaxKind::ARRAY_EXPR
12673    }
12674    #[inline]
12675    fn cast(syntax: SyntaxNode) -> Option<Self> {
12676        if Self::can_cast(syntax.kind()) {
12677            Some(Self { syntax })
12678        } else {
12679            None
12680        }
12681    }
12682    #[inline]
12683    fn syntax(&self) -> &SyntaxNode {
12684        &self.syntax
12685    }
12686}
12687impl AstNode for ArrayType {
12688    #[inline]
12689    fn can_cast(kind: SyntaxKind) -> bool {
12690        kind == SyntaxKind::ARRAY_TYPE
12691    }
12692    #[inline]
12693    fn cast(syntax: SyntaxNode) -> Option<Self> {
12694        if Self::can_cast(syntax.kind()) {
12695            Some(Self { syntax })
12696        } else {
12697            None
12698        }
12699    }
12700    #[inline]
12701    fn syntax(&self) -> &SyntaxNode {
12702        &self.syntax
12703    }
12704}
12705impl AstNode for AsFuncOption {
12706    #[inline]
12707    fn can_cast(kind: SyntaxKind) -> bool {
12708        kind == SyntaxKind::AS_FUNC_OPTION
12709    }
12710    #[inline]
12711    fn cast(syntax: SyntaxNode) -> Option<Self> {
12712        if Self::can_cast(syntax.kind()) {
12713            Some(Self { syntax })
12714        } else {
12715            None
12716        }
12717    }
12718    #[inline]
12719    fn syntax(&self) -> &SyntaxNode {
12720        &self.syntax
12721    }
12722}
12723impl AstNode for AsName {
12724    #[inline]
12725    fn can_cast(kind: SyntaxKind) -> bool {
12726        kind == SyntaxKind::AS_NAME
12727    }
12728    #[inline]
12729    fn cast(syntax: SyntaxNode) -> Option<Self> {
12730        if Self::can_cast(syntax.kind()) {
12731            Some(Self { syntax })
12732        } else {
12733            None
12734        }
12735    }
12736    #[inline]
12737    fn syntax(&self) -> &SyntaxNode {
12738        &self.syntax
12739    }
12740}
12741impl AstNode for AtTimeZone {
12742    #[inline]
12743    fn can_cast(kind: SyntaxKind) -> bool {
12744        kind == SyntaxKind::AT_TIME_ZONE
12745    }
12746    #[inline]
12747    fn cast(syntax: SyntaxNode) -> Option<Self> {
12748        if Self::can_cast(syntax.kind()) {
12749            Some(Self { syntax })
12750        } else {
12751            None
12752        }
12753    }
12754    #[inline]
12755    fn syntax(&self) -> &SyntaxNode {
12756        &self.syntax
12757    }
12758}
12759impl AstNode for AttachPartition {
12760    #[inline]
12761    fn can_cast(kind: SyntaxKind) -> bool {
12762        kind == SyntaxKind::ATTACH_PARTITION
12763    }
12764    #[inline]
12765    fn cast(syntax: SyntaxNode) -> Option<Self> {
12766        if Self::can_cast(syntax.kind()) {
12767            Some(Self { syntax })
12768        } else {
12769            None
12770        }
12771    }
12772    #[inline]
12773    fn syntax(&self) -> &SyntaxNode {
12774        &self.syntax
12775    }
12776}
12777impl AstNode for AttributeList {
12778    #[inline]
12779    fn can_cast(kind: SyntaxKind) -> bool {
12780        kind == SyntaxKind::ATTRIBUTE_LIST
12781    }
12782    #[inline]
12783    fn cast(syntax: SyntaxNode) -> Option<Self> {
12784        if Self::can_cast(syntax.kind()) {
12785            Some(Self { syntax })
12786        } else {
12787            None
12788        }
12789    }
12790    #[inline]
12791    fn syntax(&self) -> &SyntaxNode {
12792        &self.syntax
12793    }
12794}
12795impl AstNode for AttributeOption {
12796    #[inline]
12797    fn can_cast(kind: SyntaxKind) -> bool {
12798        kind == SyntaxKind::ATTRIBUTE_OPTION
12799    }
12800    #[inline]
12801    fn cast(syntax: SyntaxNode) -> Option<Self> {
12802        if Self::can_cast(syntax.kind()) {
12803            Some(Self { syntax })
12804        } else {
12805            None
12806        }
12807    }
12808    #[inline]
12809    fn syntax(&self) -> &SyntaxNode {
12810        &self.syntax
12811    }
12812}
12813impl AstNode for Begin {
12814    #[inline]
12815    fn can_cast(kind: SyntaxKind) -> bool {
12816        kind == SyntaxKind::BEGIN
12817    }
12818    #[inline]
12819    fn cast(syntax: SyntaxNode) -> Option<Self> {
12820        if Self::can_cast(syntax.kind()) {
12821            Some(Self { syntax })
12822        } else {
12823            None
12824        }
12825    }
12826    #[inline]
12827    fn syntax(&self) -> &SyntaxNode {
12828        &self.syntax
12829    }
12830}
12831impl AstNode for BeginFuncOption {
12832    #[inline]
12833    fn can_cast(kind: SyntaxKind) -> bool {
12834        kind == SyntaxKind::BEGIN_FUNC_OPTION
12835    }
12836    #[inline]
12837    fn cast(syntax: SyntaxNode) -> Option<Self> {
12838        if Self::can_cast(syntax.kind()) {
12839            Some(Self { syntax })
12840        } else {
12841            None
12842        }
12843    }
12844    #[inline]
12845    fn syntax(&self) -> &SyntaxNode {
12846        &self.syntax
12847    }
12848}
12849impl AstNode for BetweenExpr {
12850    #[inline]
12851    fn can_cast(kind: SyntaxKind) -> bool {
12852        kind == SyntaxKind::BETWEEN_EXPR
12853    }
12854    #[inline]
12855    fn cast(syntax: SyntaxNode) -> Option<Self> {
12856        if Self::can_cast(syntax.kind()) {
12857            Some(Self { syntax })
12858        } else {
12859            None
12860        }
12861    }
12862    #[inline]
12863    fn syntax(&self) -> &SyntaxNode {
12864        &self.syntax
12865    }
12866}
12867impl AstNode for BinExpr {
12868    #[inline]
12869    fn can_cast(kind: SyntaxKind) -> bool {
12870        kind == SyntaxKind::BIN_EXPR
12871    }
12872    #[inline]
12873    fn cast(syntax: SyntaxNode) -> Option<Self> {
12874        if Self::can_cast(syntax.kind()) {
12875            Some(Self { syntax })
12876        } else {
12877            None
12878        }
12879    }
12880    #[inline]
12881    fn syntax(&self) -> &SyntaxNode {
12882        &self.syntax
12883    }
12884}
12885impl AstNode for BitType {
12886    #[inline]
12887    fn can_cast(kind: SyntaxKind) -> bool {
12888        kind == SyntaxKind::BIT_TYPE
12889    }
12890    #[inline]
12891    fn cast(syntax: SyntaxNode) -> Option<Self> {
12892        if Self::can_cast(syntax.kind()) {
12893            Some(Self { syntax })
12894        } else {
12895            None
12896        }
12897    }
12898    #[inline]
12899    fn syntax(&self) -> &SyntaxNode {
12900        &self.syntax
12901    }
12902}
12903impl AstNode for Call {
12904    #[inline]
12905    fn can_cast(kind: SyntaxKind) -> bool {
12906        kind == SyntaxKind::CALL
12907    }
12908    #[inline]
12909    fn cast(syntax: SyntaxNode) -> Option<Self> {
12910        if Self::can_cast(syntax.kind()) {
12911            Some(Self { syntax })
12912        } else {
12913            None
12914        }
12915    }
12916    #[inline]
12917    fn syntax(&self) -> &SyntaxNode {
12918        &self.syntax
12919    }
12920}
12921impl AstNode for CallExpr {
12922    #[inline]
12923    fn can_cast(kind: SyntaxKind) -> bool {
12924        kind == SyntaxKind::CALL_EXPR
12925    }
12926    #[inline]
12927    fn cast(syntax: SyntaxNode) -> Option<Self> {
12928        if Self::can_cast(syntax.kind()) {
12929            Some(Self { syntax })
12930        } else {
12931            None
12932        }
12933    }
12934    #[inline]
12935    fn syntax(&self) -> &SyntaxNode {
12936        &self.syntax
12937    }
12938}
12939impl AstNode for Cascade {
12940    #[inline]
12941    fn can_cast(kind: SyntaxKind) -> bool {
12942        kind == SyntaxKind::CASCADE
12943    }
12944    #[inline]
12945    fn cast(syntax: SyntaxNode) -> Option<Self> {
12946        if Self::can_cast(syntax.kind()) {
12947            Some(Self { syntax })
12948        } else {
12949            None
12950        }
12951    }
12952    #[inline]
12953    fn syntax(&self) -> &SyntaxNode {
12954        &self.syntax
12955    }
12956}
12957impl AstNode for CaseExpr {
12958    #[inline]
12959    fn can_cast(kind: SyntaxKind) -> bool {
12960        kind == SyntaxKind::CASE_EXPR
12961    }
12962    #[inline]
12963    fn cast(syntax: SyntaxNode) -> Option<Self> {
12964        if Self::can_cast(syntax.kind()) {
12965            Some(Self { syntax })
12966        } else {
12967            None
12968        }
12969    }
12970    #[inline]
12971    fn syntax(&self) -> &SyntaxNode {
12972        &self.syntax
12973    }
12974}
12975impl AstNode for CastExpr {
12976    #[inline]
12977    fn can_cast(kind: SyntaxKind) -> bool {
12978        kind == SyntaxKind::CAST_EXPR
12979    }
12980    #[inline]
12981    fn cast(syntax: SyntaxNode) -> Option<Self> {
12982        if Self::can_cast(syntax.kind()) {
12983            Some(Self { syntax })
12984        } else {
12985            None
12986        }
12987    }
12988    #[inline]
12989    fn syntax(&self) -> &SyntaxNode {
12990        &self.syntax
12991    }
12992}
12993impl AstNode for CharType {
12994    #[inline]
12995    fn can_cast(kind: SyntaxKind) -> bool {
12996        kind == SyntaxKind::CHAR_TYPE
12997    }
12998    #[inline]
12999    fn cast(syntax: SyntaxNode) -> Option<Self> {
13000        if Self::can_cast(syntax.kind()) {
13001            Some(Self { syntax })
13002        } else {
13003            None
13004        }
13005    }
13006    #[inline]
13007    fn syntax(&self) -> &SyntaxNode {
13008        &self.syntax
13009    }
13010}
13011impl AstNode for CheckConstraint {
13012    #[inline]
13013    fn can_cast(kind: SyntaxKind) -> bool {
13014        kind == SyntaxKind::CHECK_CONSTRAINT
13015    }
13016    #[inline]
13017    fn cast(syntax: SyntaxNode) -> Option<Self> {
13018        if Self::can_cast(syntax.kind()) {
13019            Some(Self { syntax })
13020        } else {
13021            None
13022        }
13023    }
13024    #[inline]
13025    fn syntax(&self) -> &SyntaxNode {
13026        &self.syntax
13027    }
13028}
13029impl AstNode for Checkpoint {
13030    #[inline]
13031    fn can_cast(kind: SyntaxKind) -> bool {
13032        kind == SyntaxKind::CHECKPOINT
13033    }
13034    #[inline]
13035    fn cast(syntax: SyntaxNode) -> Option<Self> {
13036        if Self::can_cast(syntax.kind()) {
13037            Some(Self { syntax })
13038        } else {
13039            None
13040        }
13041    }
13042    #[inline]
13043    fn syntax(&self) -> &SyntaxNode {
13044        &self.syntax
13045    }
13046}
13047impl AstNode for Close {
13048    #[inline]
13049    fn can_cast(kind: SyntaxKind) -> bool {
13050        kind == SyntaxKind::CLOSE
13051    }
13052    #[inline]
13053    fn cast(syntax: SyntaxNode) -> Option<Self> {
13054        if Self::can_cast(syntax.kind()) {
13055            Some(Self { syntax })
13056        } else {
13057            None
13058        }
13059    }
13060    #[inline]
13061    fn syntax(&self) -> &SyntaxNode {
13062        &self.syntax
13063    }
13064}
13065impl AstNode for Cluster {
13066    #[inline]
13067    fn can_cast(kind: SyntaxKind) -> bool {
13068        kind == SyntaxKind::CLUSTER
13069    }
13070    #[inline]
13071    fn cast(syntax: SyntaxNode) -> Option<Self> {
13072        if Self::can_cast(syntax.kind()) {
13073            Some(Self { syntax })
13074        } else {
13075            None
13076        }
13077    }
13078    #[inline]
13079    fn syntax(&self) -> &SyntaxNode {
13080        &self.syntax
13081    }
13082}
13083impl AstNode for ClusterOn {
13084    #[inline]
13085    fn can_cast(kind: SyntaxKind) -> bool {
13086        kind == SyntaxKind::CLUSTER_ON
13087    }
13088    #[inline]
13089    fn cast(syntax: SyntaxNode) -> Option<Self> {
13090        if Self::can_cast(syntax.kind()) {
13091            Some(Self { syntax })
13092        } else {
13093            None
13094        }
13095    }
13096    #[inline]
13097    fn syntax(&self) -> &SyntaxNode {
13098        &self.syntax
13099    }
13100}
13101impl AstNode for Collate {
13102    #[inline]
13103    fn can_cast(kind: SyntaxKind) -> bool {
13104        kind == SyntaxKind::COLLATE
13105    }
13106    #[inline]
13107    fn cast(syntax: SyntaxNode) -> Option<Self> {
13108        if Self::can_cast(syntax.kind()) {
13109            Some(Self { syntax })
13110        } else {
13111            None
13112        }
13113    }
13114    #[inline]
13115    fn syntax(&self) -> &SyntaxNode {
13116        &self.syntax
13117    }
13118}
13119impl AstNode for ColonColon {
13120    #[inline]
13121    fn can_cast(kind: SyntaxKind) -> bool {
13122        kind == SyntaxKind::COLON_COLON
13123    }
13124    #[inline]
13125    fn cast(syntax: SyntaxNode) -> Option<Self> {
13126        if Self::can_cast(syntax.kind()) {
13127            Some(Self { syntax })
13128        } else {
13129            None
13130        }
13131    }
13132    #[inline]
13133    fn syntax(&self) -> &SyntaxNode {
13134        &self.syntax
13135    }
13136}
13137impl AstNode for ColonEq {
13138    #[inline]
13139    fn can_cast(kind: SyntaxKind) -> bool {
13140        kind == SyntaxKind::COLON_EQ
13141    }
13142    #[inline]
13143    fn cast(syntax: SyntaxNode) -> Option<Self> {
13144        if Self::can_cast(syntax.kind()) {
13145            Some(Self { syntax })
13146        } else {
13147            None
13148        }
13149    }
13150    #[inline]
13151    fn syntax(&self) -> &SyntaxNode {
13152        &self.syntax
13153    }
13154}
13155impl AstNode for Column {
13156    #[inline]
13157    fn can_cast(kind: SyntaxKind) -> bool {
13158        kind == SyntaxKind::COLUMN
13159    }
13160    #[inline]
13161    fn cast(syntax: SyntaxNode) -> Option<Self> {
13162        if Self::can_cast(syntax.kind()) {
13163            Some(Self { syntax })
13164        } else {
13165            None
13166        }
13167    }
13168    #[inline]
13169    fn syntax(&self) -> &SyntaxNode {
13170        &self.syntax
13171    }
13172}
13173impl AstNode for ColumnList {
13174    #[inline]
13175    fn can_cast(kind: SyntaxKind) -> bool {
13176        kind == SyntaxKind::COLUMN_LIST
13177    }
13178    #[inline]
13179    fn cast(syntax: SyntaxNode) -> Option<Self> {
13180        if Self::can_cast(syntax.kind()) {
13181            Some(Self { syntax })
13182        } else {
13183            None
13184        }
13185    }
13186    #[inline]
13187    fn syntax(&self) -> &SyntaxNode {
13188        &self.syntax
13189    }
13190}
13191impl AstNode for CommentOn {
13192    #[inline]
13193    fn can_cast(kind: SyntaxKind) -> bool {
13194        kind == SyntaxKind::COMMENT_ON
13195    }
13196    #[inline]
13197    fn cast(syntax: SyntaxNode) -> Option<Self> {
13198        if Self::can_cast(syntax.kind()) {
13199            Some(Self { syntax })
13200        } else {
13201            None
13202        }
13203    }
13204    #[inline]
13205    fn syntax(&self) -> &SyntaxNode {
13206        &self.syntax
13207    }
13208}
13209impl AstNode for Commit {
13210    #[inline]
13211    fn can_cast(kind: SyntaxKind) -> bool {
13212        kind == SyntaxKind::COMMIT
13213    }
13214    #[inline]
13215    fn cast(syntax: SyntaxNode) -> Option<Self> {
13216        if Self::can_cast(syntax.kind()) {
13217            Some(Self { syntax })
13218        } else {
13219            None
13220        }
13221    }
13222    #[inline]
13223    fn syntax(&self) -> &SyntaxNode {
13224        &self.syntax
13225    }
13226}
13227impl AstNode for CompoundSelect {
13228    #[inline]
13229    fn can_cast(kind: SyntaxKind) -> bool {
13230        kind == SyntaxKind::COMPOUND_SELECT
13231    }
13232    #[inline]
13233    fn cast(syntax: SyntaxNode) -> Option<Self> {
13234        if Self::can_cast(syntax.kind()) {
13235            Some(Self { syntax })
13236        } else {
13237            None
13238        }
13239    }
13240    #[inline]
13241    fn syntax(&self) -> &SyntaxNode {
13242        &self.syntax
13243    }
13244}
13245impl AstNode for CompressionMethod {
13246    #[inline]
13247    fn can_cast(kind: SyntaxKind) -> bool {
13248        kind == SyntaxKind::COMPRESSION_METHOD
13249    }
13250    #[inline]
13251    fn cast(syntax: SyntaxNode) -> Option<Self> {
13252        if Self::can_cast(syntax.kind()) {
13253            Some(Self { syntax })
13254        } else {
13255            None
13256        }
13257    }
13258    #[inline]
13259    fn syntax(&self) -> &SyntaxNode {
13260        &self.syntax
13261    }
13262}
13263impl AstNode for ConflictDoNothing {
13264    #[inline]
13265    fn can_cast(kind: SyntaxKind) -> bool {
13266        kind == SyntaxKind::CONFLICT_DO_NOTHING
13267    }
13268    #[inline]
13269    fn cast(syntax: SyntaxNode) -> Option<Self> {
13270        if Self::can_cast(syntax.kind()) {
13271            Some(Self { syntax })
13272        } else {
13273            None
13274        }
13275    }
13276    #[inline]
13277    fn syntax(&self) -> &SyntaxNode {
13278        &self.syntax
13279    }
13280}
13281impl AstNode for ConflictDoUpdateSet {
13282    #[inline]
13283    fn can_cast(kind: SyntaxKind) -> bool {
13284        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
13285    }
13286    #[inline]
13287    fn cast(syntax: SyntaxNode) -> Option<Self> {
13288        if Self::can_cast(syntax.kind()) {
13289            Some(Self { syntax })
13290        } else {
13291            None
13292        }
13293    }
13294    #[inline]
13295    fn syntax(&self) -> &SyntaxNode {
13296        &self.syntax
13297    }
13298}
13299impl AstNode for ConflictIndexItem {
13300    #[inline]
13301    fn can_cast(kind: SyntaxKind) -> bool {
13302        kind == SyntaxKind::CONFLICT_INDEX_ITEM
13303    }
13304    #[inline]
13305    fn cast(syntax: SyntaxNode) -> Option<Self> {
13306        if Self::can_cast(syntax.kind()) {
13307            Some(Self { syntax })
13308        } else {
13309            None
13310        }
13311    }
13312    #[inline]
13313    fn syntax(&self) -> &SyntaxNode {
13314        &self.syntax
13315    }
13316}
13317impl AstNode for ConflictIndexItemList {
13318    #[inline]
13319    fn can_cast(kind: SyntaxKind) -> bool {
13320        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
13321    }
13322    #[inline]
13323    fn cast(syntax: SyntaxNode) -> Option<Self> {
13324        if Self::can_cast(syntax.kind()) {
13325            Some(Self { syntax })
13326        } else {
13327            None
13328        }
13329    }
13330    #[inline]
13331    fn syntax(&self) -> &SyntaxNode {
13332        &self.syntax
13333    }
13334}
13335impl AstNode for ConflictOnConstraint {
13336    #[inline]
13337    fn can_cast(kind: SyntaxKind) -> bool {
13338        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
13339    }
13340    #[inline]
13341    fn cast(syntax: SyntaxNode) -> Option<Self> {
13342        if Self::can_cast(syntax.kind()) {
13343            Some(Self { syntax })
13344        } else {
13345            None
13346        }
13347    }
13348    #[inline]
13349    fn syntax(&self) -> &SyntaxNode {
13350        &self.syntax
13351    }
13352}
13353impl AstNode for ConflictOnIndex {
13354    #[inline]
13355    fn can_cast(kind: SyntaxKind) -> bool {
13356        kind == SyntaxKind::CONFLICT_ON_INDEX
13357    }
13358    #[inline]
13359    fn cast(syntax: SyntaxNode) -> Option<Self> {
13360        if Self::can_cast(syntax.kind()) {
13361            Some(Self { syntax })
13362        } else {
13363            None
13364        }
13365    }
13366    #[inline]
13367    fn syntax(&self) -> &SyntaxNode {
13368        &self.syntax
13369    }
13370}
13371impl AstNode for ConstraintExclusion {
13372    #[inline]
13373    fn can_cast(kind: SyntaxKind) -> bool {
13374        kind == SyntaxKind::CONSTRAINT_EXCLUSION
13375    }
13376    #[inline]
13377    fn cast(syntax: SyntaxNode) -> Option<Self> {
13378        if Self::can_cast(syntax.kind()) {
13379            Some(Self { syntax })
13380        } else {
13381            None
13382        }
13383    }
13384    #[inline]
13385    fn syntax(&self) -> &SyntaxNode {
13386        &self.syntax
13387    }
13388}
13389impl AstNode for ConstraintExclusionList {
13390    #[inline]
13391    fn can_cast(kind: SyntaxKind) -> bool {
13392        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
13393    }
13394    #[inline]
13395    fn cast(syntax: SyntaxNode) -> Option<Self> {
13396        if Self::can_cast(syntax.kind()) {
13397            Some(Self { syntax })
13398        } else {
13399            None
13400        }
13401    }
13402    #[inline]
13403    fn syntax(&self) -> &SyntaxNode {
13404        &self.syntax
13405    }
13406}
13407impl AstNode for ConstraintIncludeClause {
13408    #[inline]
13409    fn can_cast(kind: SyntaxKind) -> bool {
13410        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
13411    }
13412    #[inline]
13413    fn cast(syntax: SyntaxNode) -> Option<Self> {
13414        if Self::can_cast(syntax.kind()) {
13415            Some(Self { syntax })
13416        } else {
13417            None
13418        }
13419    }
13420    #[inline]
13421    fn syntax(&self) -> &SyntaxNode {
13422        &self.syntax
13423    }
13424}
13425impl AstNode for ConstraintIndexMethod {
13426    #[inline]
13427    fn can_cast(kind: SyntaxKind) -> bool {
13428        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
13429    }
13430    #[inline]
13431    fn cast(syntax: SyntaxNode) -> Option<Self> {
13432        if Self::can_cast(syntax.kind()) {
13433            Some(Self { syntax })
13434        } else {
13435            None
13436        }
13437    }
13438    #[inline]
13439    fn syntax(&self) -> &SyntaxNode {
13440        &self.syntax
13441    }
13442}
13443impl AstNode for ConstraintIndexTablespace {
13444    #[inline]
13445    fn can_cast(kind: SyntaxKind) -> bool {
13446        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
13447    }
13448    #[inline]
13449    fn cast(syntax: SyntaxNode) -> Option<Self> {
13450        if Self::can_cast(syntax.kind()) {
13451            Some(Self { syntax })
13452        } else {
13453            None
13454        }
13455    }
13456    #[inline]
13457    fn syntax(&self) -> &SyntaxNode {
13458        &self.syntax
13459    }
13460}
13461impl AstNode for ConstraintWhereClause {
13462    #[inline]
13463    fn can_cast(kind: SyntaxKind) -> bool {
13464        kind == SyntaxKind::CONSTRAINT_WHERE_CLAUSE
13465    }
13466    #[inline]
13467    fn cast(syntax: SyntaxNode) -> Option<Self> {
13468        if Self::can_cast(syntax.kind()) {
13469            Some(Self { syntax })
13470        } else {
13471            None
13472        }
13473    }
13474    #[inline]
13475    fn syntax(&self) -> &SyntaxNode {
13476        &self.syntax
13477    }
13478}
13479impl AstNode for Copy {
13480    #[inline]
13481    fn can_cast(kind: SyntaxKind) -> bool {
13482        kind == SyntaxKind::COPY
13483    }
13484    #[inline]
13485    fn cast(syntax: SyntaxNode) -> Option<Self> {
13486        if Self::can_cast(syntax.kind()) {
13487            Some(Self { syntax })
13488        } else {
13489            None
13490        }
13491    }
13492    #[inline]
13493    fn syntax(&self) -> &SyntaxNode {
13494        &self.syntax
13495    }
13496}
13497impl AstNode for CostFuncOption {
13498    #[inline]
13499    fn can_cast(kind: SyntaxKind) -> bool {
13500        kind == SyntaxKind::COST_FUNC_OPTION
13501    }
13502    #[inline]
13503    fn cast(syntax: SyntaxNode) -> Option<Self> {
13504        if Self::can_cast(syntax.kind()) {
13505            Some(Self { syntax })
13506        } else {
13507            None
13508        }
13509    }
13510    #[inline]
13511    fn syntax(&self) -> &SyntaxNode {
13512        &self.syntax
13513    }
13514}
13515impl AstNode for CreateAccessMethod {
13516    #[inline]
13517    fn can_cast(kind: SyntaxKind) -> bool {
13518        kind == SyntaxKind::CREATE_ACCESS_METHOD
13519    }
13520    #[inline]
13521    fn cast(syntax: SyntaxNode) -> Option<Self> {
13522        if Self::can_cast(syntax.kind()) {
13523            Some(Self { syntax })
13524        } else {
13525            None
13526        }
13527    }
13528    #[inline]
13529    fn syntax(&self) -> &SyntaxNode {
13530        &self.syntax
13531    }
13532}
13533impl AstNode for CreateAggregate {
13534    #[inline]
13535    fn can_cast(kind: SyntaxKind) -> bool {
13536        kind == SyntaxKind::CREATE_AGGREGATE
13537    }
13538    #[inline]
13539    fn cast(syntax: SyntaxNode) -> Option<Self> {
13540        if Self::can_cast(syntax.kind()) {
13541            Some(Self { syntax })
13542        } else {
13543            None
13544        }
13545    }
13546    #[inline]
13547    fn syntax(&self) -> &SyntaxNode {
13548        &self.syntax
13549    }
13550}
13551impl AstNode for CreateCast {
13552    #[inline]
13553    fn can_cast(kind: SyntaxKind) -> bool {
13554        kind == SyntaxKind::CREATE_CAST
13555    }
13556    #[inline]
13557    fn cast(syntax: SyntaxNode) -> Option<Self> {
13558        if Self::can_cast(syntax.kind()) {
13559            Some(Self { syntax })
13560        } else {
13561            None
13562        }
13563    }
13564    #[inline]
13565    fn syntax(&self) -> &SyntaxNode {
13566        &self.syntax
13567    }
13568}
13569impl AstNode for CreateCollation {
13570    #[inline]
13571    fn can_cast(kind: SyntaxKind) -> bool {
13572        kind == SyntaxKind::CREATE_COLLATION
13573    }
13574    #[inline]
13575    fn cast(syntax: SyntaxNode) -> Option<Self> {
13576        if Self::can_cast(syntax.kind()) {
13577            Some(Self { syntax })
13578        } else {
13579            None
13580        }
13581    }
13582    #[inline]
13583    fn syntax(&self) -> &SyntaxNode {
13584        &self.syntax
13585    }
13586}
13587impl AstNode for CreateConversion {
13588    #[inline]
13589    fn can_cast(kind: SyntaxKind) -> bool {
13590        kind == SyntaxKind::CREATE_CONVERSION
13591    }
13592    #[inline]
13593    fn cast(syntax: SyntaxNode) -> Option<Self> {
13594        if Self::can_cast(syntax.kind()) {
13595            Some(Self { syntax })
13596        } else {
13597            None
13598        }
13599    }
13600    #[inline]
13601    fn syntax(&self) -> &SyntaxNode {
13602        &self.syntax
13603    }
13604}
13605impl AstNode for CreateDatabase {
13606    #[inline]
13607    fn can_cast(kind: SyntaxKind) -> bool {
13608        kind == SyntaxKind::CREATE_DATABASE
13609    }
13610    #[inline]
13611    fn cast(syntax: SyntaxNode) -> Option<Self> {
13612        if Self::can_cast(syntax.kind()) {
13613            Some(Self { syntax })
13614        } else {
13615            None
13616        }
13617    }
13618    #[inline]
13619    fn syntax(&self) -> &SyntaxNode {
13620        &self.syntax
13621    }
13622}
13623impl AstNode for CreateDomain {
13624    #[inline]
13625    fn can_cast(kind: SyntaxKind) -> bool {
13626        kind == SyntaxKind::CREATE_DOMAIN
13627    }
13628    #[inline]
13629    fn cast(syntax: SyntaxNode) -> Option<Self> {
13630        if Self::can_cast(syntax.kind()) {
13631            Some(Self { syntax })
13632        } else {
13633            None
13634        }
13635    }
13636    #[inline]
13637    fn syntax(&self) -> &SyntaxNode {
13638        &self.syntax
13639    }
13640}
13641impl AstNode for CreateEventTrigger {
13642    #[inline]
13643    fn can_cast(kind: SyntaxKind) -> bool {
13644        kind == SyntaxKind::CREATE_EVENT_TRIGGER
13645    }
13646    #[inline]
13647    fn cast(syntax: SyntaxNode) -> Option<Self> {
13648        if Self::can_cast(syntax.kind()) {
13649            Some(Self { syntax })
13650        } else {
13651            None
13652        }
13653    }
13654    #[inline]
13655    fn syntax(&self) -> &SyntaxNode {
13656        &self.syntax
13657    }
13658}
13659impl AstNode for CreateExtension {
13660    #[inline]
13661    fn can_cast(kind: SyntaxKind) -> bool {
13662        kind == SyntaxKind::CREATE_EXTENSION
13663    }
13664    #[inline]
13665    fn cast(syntax: SyntaxNode) -> Option<Self> {
13666        if Self::can_cast(syntax.kind()) {
13667            Some(Self { syntax })
13668        } else {
13669            None
13670        }
13671    }
13672    #[inline]
13673    fn syntax(&self) -> &SyntaxNode {
13674        &self.syntax
13675    }
13676}
13677impl AstNode for CreateForeignDataWrapper {
13678    #[inline]
13679    fn can_cast(kind: SyntaxKind) -> bool {
13680        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
13681    }
13682    #[inline]
13683    fn cast(syntax: SyntaxNode) -> Option<Self> {
13684        if Self::can_cast(syntax.kind()) {
13685            Some(Self { syntax })
13686        } else {
13687            None
13688        }
13689    }
13690    #[inline]
13691    fn syntax(&self) -> &SyntaxNode {
13692        &self.syntax
13693    }
13694}
13695impl AstNode for CreateForeignTable {
13696    #[inline]
13697    fn can_cast(kind: SyntaxKind) -> bool {
13698        kind == SyntaxKind::CREATE_FOREIGN_TABLE
13699    }
13700    #[inline]
13701    fn cast(syntax: SyntaxNode) -> Option<Self> {
13702        if Self::can_cast(syntax.kind()) {
13703            Some(Self { syntax })
13704        } else {
13705            None
13706        }
13707    }
13708    #[inline]
13709    fn syntax(&self) -> &SyntaxNode {
13710        &self.syntax
13711    }
13712}
13713impl AstNode for CreateFunction {
13714    #[inline]
13715    fn can_cast(kind: SyntaxKind) -> bool {
13716        kind == SyntaxKind::CREATE_FUNCTION
13717    }
13718    #[inline]
13719    fn cast(syntax: SyntaxNode) -> Option<Self> {
13720        if Self::can_cast(syntax.kind()) {
13721            Some(Self { syntax })
13722        } else {
13723            None
13724        }
13725    }
13726    #[inline]
13727    fn syntax(&self) -> &SyntaxNode {
13728        &self.syntax
13729    }
13730}
13731impl AstNode for CreateGroup {
13732    #[inline]
13733    fn can_cast(kind: SyntaxKind) -> bool {
13734        kind == SyntaxKind::CREATE_GROUP
13735    }
13736    #[inline]
13737    fn cast(syntax: SyntaxNode) -> Option<Self> {
13738        if Self::can_cast(syntax.kind()) {
13739            Some(Self { syntax })
13740        } else {
13741            None
13742        }
13743    }
13744    #[inline]
13745    fn syntax(&self) -> &SyntaxNode {
13746        &self.syntax
13747    }
13748}
13749impl AstNode for CreateIndex {
13750    #[inline]
13751    fn can_cast(kind: SyntaxKind) -> bool {
13752        kind == SyntaxKind::CREATE_INDEX
13753    }
13754    #[inline]
13755    fn cast(syntax: SyntaxNode) -> Option<Self> {
13756        if Self::can_cast(syntax.kind()) {
13757            Some(Self { syntax })
13758        } else {
13759            None
13760        }
13761    }
13762    #[inline]
13763    fn syntax(&self) -> &SyntaxNode {
13764        &self.syntax
13765    }
13766}
13767impl AstNode for CreateLanguage {
13768    #[inline]
13769    fn can_cast(kind: SyntaxKind) -> bool {
13770        kind == SyntaxKind::CREATE_LANGUAGE
13771    }
13772    #[inline]
13773    fn cast(syntax: SyntaxNode) -> Option<Self> {
13774        if Self::can_cast(syntax.kind()) {
13775            Some(Self { syntax })
13776        } else {
13777            None
13778        }
13779    }
13780    #[inline]
13781    fn syntax(&self) -> &SyntaxNode {
13782        &self.syntax
13783    }
13784}
13785impl AstNode for CreateMaterializedView {
13786    #[inline]
13787    fn can_cast(kind: SyntaxKind) -> bool {
13788        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
13789    }
13790    #[inline]
13791    fn cast(syntax: SyntaxNode) -> Option<Self> {
13792        if Self::can_cast(syntax.kind()) {
13793            Some(Self { syntax })
13794        } else {
13795            None
13796        }
13797    }
13798    #[inline]
13799    fn syntax(&self) -> &SyntaxNode {
13800        &self.syntax
13801    }
13802}
13803impl AstNode for CreateOperator {
13804    #[inline]
13805    fn can_cast(kind: SyntaxKind) -> bool {
13806        kind == SyntaxKind::CREATE_OPERATOR
13807    }
13808    #[inline]
13809    fn cast(syntax: SyntaxNode) -> Option<Self> {
13810        if Self::can_cast(syntax.kind()) {
13811            Some(Self { syntax })
13812        } else {
13813            None
13814        }
13815    }
13816    #[inline]
13817    fn syntax(&self) -> &SyntaxNode {
13818        &self.syntax
13819    }
13820}
13821impl AstNode for CreateOperatorClass {
13822    #[inline]
13823    fn can_cast(kind: SyntaxKind) -> bool {
13824        kind == SyntaxKind::CREATE_OPERATOR_CLASS
13825    }
13826    #[inline]
13827    fn cast(syntax: SyntaxNode) -> Option<Self> {
13828        if Self::can_cast(syntax.kind()) {
13829            Some(Self { syntax })
13830        } else {
13831            None
13832        }
13833    }
13834    #[inline]
13835    fn syntax(&self) -> &SyntaxNode {
13836        &self.syntax
13837    }
13838}
13839impl AstNode for CreateOperatorFamily {
13840    #[inline]
13841    fn can_cast(kind: SyntaxKind) -> bool {
13842        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
13843    }
13844    #[inline]
13845    fn cast(syntax: SyntaxNode) -> Option<Self> {
13846        if Self::can_cast(syntax.kind()) {
13847            Some(Self { syntax })
13848        } else {
13849            None
13850        }
13851    }
13852    #[inline]
13853    fn syntax(&self) -> &SyntaxNode {
13854        &self.syntax
13855    }
13856}
13857impl AstNode for CreatePolicy {
13858    #[inline]
13859    fn can_cast(kind: SyntaxKind) -> bool {
13860        kind == SyntaxKind::CREATE_POLICY
13861    }
13862    #[inline]
13863    fn cast(syntax: SyntaxNode) -> Option<Self> {
13864        if Self::can_cast(syntax.kind()) {
13865            Some(Self { syntax })
13866        } else {
13867            None
13868        }
13869    }
13870    #[inline]
13871    fn syntax(&self) -> &SyntaxNode {
13872        &self.syntax
13873    }
13874}
13875impl AstNode for CreateProcedure {
13876    #[inline]
13877    fn can_cast(kind: SyntaxKind) -> bool {
13878        kind == SyntaxKind::CREATE_PROCEDURE
13879    }
13880    #[inline]
13881    fn cast(syntax: SyntaxNode) -> Option<Self> {
13882        if Self::can_cast(syntax.kind()) {
13883            Some(Self { syntax })
13884        } else {
13885            None
13886        }
13887    }
13888    #[inline]
13889    fn syntax(&self) -> &SyntaxNode {
13890        &self.syntax
13891    }
13892}
13893impl AstNode for CreatePublication {
13894    #[inline]
13895    fn can_cast(kind: SyntaxKind) -> bool {
13896        kind == SyntaxKind::CREATE_PUBLICATION
13897    }
13898    #[inline]
13899    fn cast(syntax: SyntaxNode) -> Option<Self> {
13900        if Self::can_cast(syntax.kind()) {
13901            Some(Self { syntax })
13902        } else {
13903            None
13904        }
13905    }
13906    #[inline]
13907    fn syntax(&self) -> &SyntaxNode {
13908        &self.syntax
13909    }
13910}
13911impl AstNode for CreateRole {
13912    #[inline]
13913    fn can_cast(kind: SyntaxKind) -> bool {
13914        kind == SyntaxKind::CREATE_ROLE
13915    }
13916    #[inline]
13917    fn cast(syntax: SyntaxNode) -> Option<Self> {
13918        if Self::can_cast(syntax.kind()) {
13919            Some(Self { syntax })
13920        } else {
13921            None
13922        }
13923    }
13924    #[inline]
13925    fn syntax(&self) -> &SyntaxNode {
13926        &self.syntax
13927    }
13928}
13929impl AstNode for CreateRule {
13930    #[inline]
13931    fn can_cast(kind: SyntaxKind) -> bool {
13932        kind == SyntaxKind::CREATE_RULE
13933    }
13934    #[inline]
13935    fn cast(syntax: SyntaxNode) -> Option<Self> {
13936        if Self::can_cast(syntax.kind()) {
13937            Some(Self { syntax })
13938        } else {
13939            None
13940        }
13941    }
13942    #[inline]
13943    fn syntax(&self) -> &SyntaxNode {
13944        &self.syntax
13945    }
13946}
13947impl AstNode for CreateSchema {
13948    #[inline]
13949    fn can_cast(kind: SyntaxKind) -> bool {
13950        kind == SyntaxKind::CREATE_SCHEMA
13951    }
13952    #[inline]
13953    fn cast(syntax: SyntaxNode) -> Option<Self> {
13954        if Self::can_cast(syntax.kind()) {
13955            Some(Self { syntax })
13956        } else {
13957            None
13958        }
13959    }
13960    #[inline]
13961    fn syntax(&self) -> &SyntaxNode {
13962        &self.syntax
13963    }
13964}
13965impl AstNode for CreateSequence {
13966    #[inline]
13967    fn can_cast(kind: SyntaxKind) -> bool {
13968        kind == SyntaxKind::CREATE_SEQUENCE
13969    }
13970    #[inline]
13971    fn cast(syntax: SyntaxNode) -> Option<Self> {
13972        if Self::can_cast(syntax.kind()) {
13973            Some(Self { syntax })
13974        } else {
13975            None
13976        }
13977    }
13978    #[inline]
13979    fn syntax(&self) -> &SyntaxNode {
13980        &self.syntax
13981    }
13982}
13983impl AstNode for CreateServer {
13984    #[inline]
13985    fn can_cast(kind: SyntaxKind) -> bool {
13986        kind == SyntaxKind::CREATE_SERVER
13987    }
13988    #[inline]
13989    fn cast(syntax: SyntaxNode) -> Option<Self> {
13990        if Self::can_cast(syntax.kind()) {
13991            Some(Self { syntax })
13992        } else {
13993            None
13994        }
13995    }
13996    #[inline]
13997    fn syntax(&self) -> &SyntaxNode {
13998        &self.syntax
13999    }
14000}
14001impl AstNode for CreateStatistics {
14002    #[inline]
14003    fn can_cast(kind: SyntaxKind) -> bool {
14004        kind == SyntaxKind::CREATE_STATISTICS
14005    }
14006    #[inline]
14007    fn cast(syntax: SyntaxNode) -> Option<Self> {
14008        if Self::can_cast(syntax.kind()) {
14009            Some(Self { syntax })
14010        } else {
14011            None
14012        }
14013    }
14014    #[inline]
14015    fn syntax(&self) -> &SyntaxNode {
14016        &self.syntax
14017    }
14018}
14019impl AstNode for CreateSubscription {
14020    #[inline]
14021    fn can_cast(kind: SyntaxKind) -> bool {
14022        kind == SyntaxKind::CREATE_SUBSCRIPTION
14023    }
14024    #[inline]
14025    fn cast(syntax: SyntaxNode) -> Option<Self> {
14026        if Self::can_cast(syntax.kind()) {
14027            Some(Self { syntax })
14028        } else {
14029            None
14030        }
14031    }
14032    #[inline]
14033    fn syntax(&self) -> &SyntaxNode {
14034        &self.syntax
14035    }
14036}
14037impl AstNode for CreateTable {
14038    #[inline]
14039    fn can_cast(kind: SyntaxKind) -> bool {
14040        kind == SyntaxKind::CREATE_TABLE
14041    }
14042    #[inline]
14043    fn cast(syntax: SyntaxNode) -> Option<Self> {
14044        if Self::can_cast(syntax.kind()) {
14045            Some(Self { syntax })
14046        } else {
14047            None
14048        }
14049    }
14050    #[inline]
14051    fn syntax(&self) -> &SyntaxNode {
14052        &self.syntax
14053    }
14054}
14055impl AstNode for CreateTableAs {
14056    #[inline]
14057    fn can_cast(kind: SyntaxKind) -> bool {
14058        kind == SyntaxKind::CREATE_TABLE_AS
14059    }
14060    #[inline]
14061    fn cast(syntax: SyntaxNode) -> Option<Self> {
14062        if Self::can_cast(syntax.kind()) {
14063            Some(Self { syntax })
14064        } else {
14065            None
14066        }
14067    }
14068    #[inline]
14069    fn syntax(&self) -> &SyntaxNode {
14070        &self.syntax
14071    }
14072}
14073impl AstNode for CreateTablespace {
14074    #[inline]
14075    fn can_cast(kind: SyntaxKind) -> bool {
14076        kind == SyntaxKind::CREATE_TABLESPACE
14077    }
14078    #[inline]
14079    fn cast(syntax: SyntaxNode) -> Option<Self> {
14080        if Self::can_cast(syntax.kind()) {
14081            Some(Self { syntax })
14082        } else {
14083            None
14084        }
14085    }
14086    #[inline]
14087    fn syntax(&self) -> &SyntaxNode {
14088        &self.syntax
14089    }
14090}
14091impl AstNode for CreateTextSearchConfiguration {
14092    #[inline]
14093    fn can_cast(kind: SyntaxKind) -> bool {
14094        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
14095    }
14096    #[inline]
14097    fn cast(syntax: SyntaxNode) -> Option<Self> {
14098        if Self::can_cast(syntax.kind()) {
14099            Some(Self { syntax })
14100        } else {
14101            None
14102        }
14103    }
14104    #[inline]
14105    fn syntax(&self) -> &SyntaxNode {
14106        &self.syntax
14107    }
14108}
14109impl AstNode for CreateTextSearchDictionary {
14110    #[inline]
14111    fn can_cast(kind: SyntaxKind) -> bool {
14112        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
14113    }
14114    #[inline]
14115    fn cast(syntax: SyntaxNode) -> Option<Self> {
14116        if Self::can_cast(syntax.kind()) {
14117            Some(Self { syntax })
14118        } else {
14119            None
14120        }
14121    }
14122    #[inline]
14123    fn syntax(&self) -> &SyntaxNode {
14124        &self.syntax
14125    }
14126}
14127impl AstNode for CreateTextSearchParser {
14128    #[inline]
14129    fn can_cast(kind: SyntaxKind) -> bool {
14130        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
14131    }
14132    #[inline]
14133    fn cast(syntax: SyntaxNode) -> Option<Self> {
14134        if Self::can_cast(syntax.kind()) {
14135            Some(Self { syntax })
14136        } else {
14137            None
14138        }
14139    }
14140    #[inline]
14141    fn syntax(&self) -> &SyntaxNode {
14142        &self.syntax
14143    }
14144}
14145impl AstNode for CreateTextSearchTemplate {
14146    #[inline]
14147    fn can_cast(kind: SyntaxKind) -> bool {
14148        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
14149    }
14150    #[inline]
14151    fn cast(syntax: SyntaxNode) -> Option<Self> {
14152        if Self::can_cast(syntax.kind()) {
14153            Some(Self { syntax })
14154        } else {
14155            None
14156        }
14157    }
14158    #[inline]
14159    fn syntax(&self) -> &SyntaxNode {
14160        &self.syntax
14161    }
14162}
14163impl AstNode for CreateTransform {
14164    #[inline]
14165    fn can_cast(kind: SyntaxKind) -> bool {
14166        kind == SyntaxKind::CREATE_TRANSFORM
14167    }
14168    #[inline]
14169    fn cast(syntax: SyntaxNode) -> Option<Self> {
14170        if Self::can_cast(syntax.kind()) {
14171            Some(Self { syntax })
14172        } else {
14173            None
14174        }
14175    }
14176    #[inline]
14177    fn syntax(&self) -> &SyntaxNode {
14178        &self.syntax
14179    }
14180}
14181impl AstNode for CreateTrigger {
14182    #[inline]
14183    fn can_cast(kind: SyntaxKind) -> bool {
14184        kind == SyntaxKind::CREATE_TRIGGER
14185    }
14186    #[inline]
14187    fn cast(syntax: SyntaxNode) -> Option<Self> {
14188        if Self::can_cast(syntax.kind()) {
14189            Some(Self { syntax })
14190        } else {
14191            None
14192        }
14193    }
14194    #[inline]
14195    fn syntax(&self) -> &SyntaxNode {
14196        &self.syntax
14197    }
14198}
14199impl AstNode for CreateType {
14200    #[inline]
14201    fn can_cast(kind: SyntaxKind) -> bool {
14202        kind == SyntaxKind::CREATE_TYPE
14203    }
14204    #[inline]
14205    fn cast(syntax: SyntaxNode) -> Option<Self> {
14206        if Self::can_cast(syntax.kind()) {
14207            Some(Self { syntax })
14208        } else {
14209            None
14210        }
14211    }
14212    #[inline]
14213    fn syntax(&self) -> &SyntaxNode {
14214        &self.syntax
14215    }
14216}
14217impl AstNode for CreateUser {
14218    #[inline]
14219    fn can_cast(kind: SyntaxKind) -> bool {
14220        kind == SyntaxKind::CREATE_USER
14221    }
14222    #[inline]
14223    fn cast(syntax: SyntaxNode) -> Option<Self> {
14224        if Self::can_cast(syntax.kind()) {
14225            Some(Self { syntax })
14226        } else {
14227            None
14228        }
14229    }
14230    #[inline]
14231    fn syntax(&self) -> &SyntaxNode {
14232        &self.syntax
14233    }
14234}
14235impl AstNode for CreateUserMapping {
14236    #[inline]
14237    fn can_cast(kind: SyntaxKind) -> bool {
14238        kind == SyntaxKind::CREATE_USER_MAPPING
14239    }
14240    #[inline]
14241    fn cast(syntax: SyntaxNode) -> Option<Self> {
14242        if Self::can_cast(syntax.kind()) {
14243            Some(Self { syntax })
14244        } else {
14245            None
14246        }
14247    }
14248    #[inline]
14249    fn syntax(&self) -> &SyntaxNode {
14250        &self.syntax
14251    }
14252}
14253impl AstNode for CreateView {
14254    #[inline]
14255    fn can_cast(kind: SyntaxKind) -> bool {
14256        kind == SyntaxKind::CREATE_VIEW
14257    }
14258    #[inline]
14259    fn cast(syntax: SyntaxNode) -> Option<Self> {
14260        if Self::can_cast(syntax.kind()) {
14261            Some(Self { syntax })
14262        } else {
14263            None
14264        }
14265    }
14266    #[inline]
14267    fn syntax(&self) -> &SyntaxNode {
14268        &self.syntax
14269    }
14270}
14271impl AstNode for CustomOp {
14272    #[inline]
14273    fn can_cast(kind: SyntaxKind) -> bool {
14274        kind == SyntaxKind::CUSTOM_OP
14275    }
14276    #[inline]
14277    fn cast(syntax: SyntaxNode) -> Option<Self> {
14278        if Self::can_cast(syntax.kind()) {
14279            Some(Self { syntax })
14280        } else {
14281            None
14282        }
14283    }
14284    #[inline]
14285    fn syntax(&self) -> &SyntaxNode {
14286        &self.syntax
14287    }
14288}
14289impl AstNode for Deallocate {
14290    #[inline]
14291    fn can_cast(kind: SyntaxKind) -> bool {
14292        kind == SyntaxKind::DEALLOCATE
14293    }
14294    #[inline]
14295    fn cast(syntax: SyntaxNode) -> Option<Self> {
14296        if Self::can_cast(syntax.kind()) {
14297            Some(Self { syntax })
14298        } else {
14299            None
14300        }
14301    }
14302    #[inline]
14303    fn syntax(&self) -> &SyntaxNode {
14304        &self.syntax
14305    }
14306}
14307impl AstNode for Declare {
14308    #[inline]
14309    fn can_cast(kind: SyntaxKind) -> bool {
14310        kind == SyntaxKind::DECLARE
14311    }
14312    #[inline]
14313    fn cast(syntax: SyntaxNode) -> Option<Self> {
14314        if Self::can_cast(syntax.kind()) {
14315            Some(Self { syntax })
14316        } else {
14317            None
14318        }
14319    }
14320    #[inline]
14321    fn syntax(&self) -> &SyntaxNode {
14322        &self.syntax
14323    }
14324}
14325impl AstNode for DefaultConstraint {
14326    #[inline]
14327    fn can_cast(kind: SyntaxKind) -> bool {
14328        kind == SyntaxKind::DEFAULT_CONSTRAINT
14329    }
14330    #[inline]
14331    fn cast(syntax: SyntaxNode) -> Option<Self> {
14332        if Self::can_cast(syntax.kind()) {
14333            Some(Self { syntax })
14334        } else {
14335            None
14336        }
14337    }
14338    #[inline]
14339    fn syntax(&self) -> &SyntaxNode {
14340        &self.syntax
14341    }
14342}
14343impl AstNode for Deferrable {
14344    #[inline]
14345    fn can_cast(kind: SyntaxKind) -> bool {
14346        kind == SyntaxKind::DEFERRABLE
14347    }
14348    #[inline]
14349    fn cast(syntax: SyntaxNode) -> Option<Self> {
14350        if Self::can_cast(syntax.kind()) {
14351            Some(Self { syntax })
14352        } else {
14353            None
14354        }
14355    }
14356    #[inline]
14357    fn syntax(&self) -> &SyntaxNode {
14358        &self.syntax
14359    }
14360}
14361impl AstNode for DeferrableConstraintOption {
14362    #[inline]
14363    fn can_cast(kind: SyntaxKind) -> bool {
14364        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
14365    }
14366    #[inline]
14367    fn cast(syntax: SyntaxNode) -> Option<Self> {
14368        if Self::can_cast(syntax.kind()) {
14369            Some(Self { syntax })
14370        } else {
14371            None
14372        }
14373    }
14374    #[inline]
14375    fn syntax(&self) -> &SyntaxNode {
14376        &self.syntax
14377    }
14378}
14379impl AstNode for Delete {
14380    #[inline]
14381    fn can_cast(kind: SyntaxKind) -> bool {
14382        kind == SyntaxKind::DELETE
14383    }
14384    #[inline]
14385    fn cast(syntax: SyntaxNode) -> Option<Self> {
14386        if Self::can_cast(syntax.kind()) {
14387            Some(Self { syntax })
14388        } else {
14389            None
14390        }
14391    }
14392    #[inline]
14393    fn syntax(&self) -> &SyntaxNode {
14394        &self.syntax
14395    }
14396}
14397impl AstNode for DeleteRows {
14398    #[inline]
14399    fn can_cast(kind: SyntaxKind) -> bool {
14400        kind == SyntaxKind::DELETE_ROWS
14401    }
14402    #[inline]
14403    fn cast(syntax: SyntaxNode) -> Option<Self> {
14404        if Self::can_cast(syntax.kind()) {
14405            Some(Self { syntax })
14406        } else {
14407            None
14408        }
14409    }
14410    #[inline]
14411    fn syntax(&self) -> &SyntaxNode {
14412        &self.syntax
14413    }
14414}
14415impl AstNode for DetachPartition {
14416    #[inline]
14417    fn can_cast(kind: SyntaxKind) -> bool {
14418        kind == SyntaxKind::DETACH_PARTITION
14419    }
14420    #[inline]
14421    fn cast(syntax: SyntaxNode) -> Option<Self> {
14422        if Self::can_cast(syntax.kind()) {
14423            Some(Self { syntax })
14424        } else {
14425            None
14426        }
14427    }
14428    #[inline]
14429    fn syntax(&self) -> &SyntaxNode {
14430        &self.syntax
14431    }
14432}
14433impl AstNode for DisableRls {
14434    #[inline]
14435    fn can_cast(kind: SyntaxKind) -> bool {
14436        kind == SyntaxKind::DISABLE_RLS
14437    }
14438    #[inline]
14439    fn cast(syntax: SyntaxNode) -> Option<Self> {
14440        if Self::can_cast(syntax.kind()) {
14441            Some(Self { syntax })
14442        } else {
14443            None
14444        }
14445    }
14446    #[inline]
14447    fn syntax(&self) -> &SyntaxNode {
14448        &self.syntax
14449    }
14450}
14451impl AstNode for DisableRule {
14452    #[inline]
14453    fn can_cast(kind: SyntaxKind) -> bool {
14454        kind == SyntaxKind::DISABLE_RULE
14455    }
14456    #[inline]
14457    fn cast(syntax: SyntaxNode) -> Option<Self> {
14458        if Self::can_cast(syntax.kind()) {
14459            Some(Self { syntax })
14460        } else {
14461            None
14462        }
14463    }
14464    #[inline]
14465    fn syntax(&self) -> &SyntaxNode {
14466        &self.syntax
14467    }
14468}
14469impl AstNode for DisableTrigger {
14470    #[inline]
14471    fn can_cast(kind: SyntaxKind) -> bool {
14472        kind == SyntaxKind::DISABLE_TRIGGER
14473    }
14474    #[inline]
14475    fn cast(syntax: SyntaxNode) -> Option<Self> {
14476        if Self::can_cast(syntax.kind()) {
14477            Some(Self { syntax })
14478        } else {
14479            None
14480        }
14481    }
14482    #[inline]
14483    fn syntax(&self) -> &SyntaxNode {
14484        &self.syntax
14485    }
14486}
14487impl AstNode for Discard {
14488    #[inline]
14489    fn can_cast(kind: SyntaxKind) -> bool {
14490        kind == SyntaxKind::DISCARD
14491    }
14492    #[inline]
14493    fn cast(syntax: SyntaxNode) -> Option<Self> {
14494        if Self::can_cast(syntax.kind()) {
14495            Some(Self { syntax })
14496        } else {
14497            None
14498        }
14499    }
14500    #[inline]
14501    fn syntax(&self) -> &SyntaxNode {
14502        &self.syntax
14503    }
14504}
14505impl AstNode for DistinctClause {
14506    #[inline]
14507    fn can_cast(kind: SyntaxKind) -> bool {
14508        kind == SyntaxKind::DISTINCT_CLAUSE
14509    }
14510    #[inline]
14511    fn cast(syntax: SyntaxNode) -> Option<Self> {
14512        if Self::can_cast(syntax.kind()) {
14513            Some(Self { syntax })
14514        } else {
14515            None
14516        }
14517    }
14518    #[inline]
14519    fn syntax(&self) -> &SyntaxNode {
14520        &self.syntax
14521    }
14522}
14523impl AstNode for Do {
14524    #[inline]
14525    fn can_cast(kind: SyntaxKind) -> bool {
14526        kind == SyntaxKind::DO
14527    }
14528    #[inline]
14529    fn cast(syntax: SyntaxNode) -> Option<Self> {
14530        if Self::can_cast(syntax.kind()) {
14531            Some(Self { syntax })
14532        } else {
14533            None
14534        }
14535    }
14536    #[inline]
14537    fn syntax(&self) -> &SyntaxNode {
14538        &self.syntax
14539    }
14540}
14541impl AstNode for DoubleType {
14542    #[inline]
14543    fn can_cast(kind: SyntaxKind) -> bool {
14544        kind == SyntaxKind::DOUBLE_TYPE
14545    }
14546    #[inline]
14547    fn cast(syntax: SyntaxNode) -> Option<Self> {
14548        if Self::can_cast(syntax.kind()) {
14549            Some(Self { syntax })
14550        } else {
14551            None
14552        }
14553    }
14554    #[inline]
14555    fn syntax(&self) -> &SyntaxNode {
14556        &self.syntax
14557    }
14558}
14559impl AstNode for Drop {
14560    #[inline]
14561    fn can_cast(kind: SyntaxKind) -> bool {
14562        kind == SyntaxKind::DROP
14563    }
14564    #[inline]
14565    fn cast(syntax: SyntaxNode) -> Option<Self> {
14566        if Self::can_cast(syntax.kind()) {
14567            Some(Self { syntax })
14568        } else {
14569            None
14570        }
14571    }
14572    #[inline]
14573    fn syntax(&self) -> &SyntaxNode {
14574        &self.syntax
14575    }
14576}
14577impl AstNode for DropAccessMethod {
14578    #[inline]
14579    fn can_cast(kind: SyntaxKind) -> bool {
14580        kind == SyntaxKind::DROP_ACCESS_METHOD
14581    }
14582    #[inline]
14583    fn cast(syntax: SyntaxNode) -> Option<Self> {
14584        if Self::can_cast(syntax.kind()) {
14585            Some(Self { syntax })
14586        } else {
14587            None
14588        }
14589    }
14590    #[inline]
14591    fn syntax(&self) -> &SyntaxNode {
14592        &self.syntax
14593    }
14594}
14595impl AstNode for DropAggregate {
14596    #[inline]
14597    fn can_cast(kind: SyntaxKind) -> bool {
14598        kind == SyntaxKind::DROP_AGGREGATE
14599    }
14600    #[inline]
14601    fn cast(syntax: SyntaxNode) -> Option<Self> {
14602        if Self::can_cast(syntax.kind()) {
14603            Some(Self { syntax })
14604        } else {
14605            None
14606        }
14607    }
14608    #[inline]
14609    fn syntax(&self) -> &SyntaxNode {
14610        &self.syntax
14611    }
14612}
14613impl AstNode for DropCast {
14614    #[inline]
14615    fn can_cast(kind: SyntaxKind) -> bool {
14616        kind == SyntaxKind::DROP_CAST
14617    }
14618    #[inline]
14619    fn cast(syntax: SyntaxNode) -> Option<Self> {
14620        if Self::can_cast(syntax.kind()) {
14621            Some(Self { syntax })
14622        } else {
14623            None
14624        }
14625    }
14626    #[inline]
14627    fn syntax(&self) -> &SyntaxNode {
14628        &self.syntax
14629    }
14630}
14631impl AstNode for DropCollation {
14632    #[inline]
14633    fn can_cast(kind: SyntaxKind) -> bool {
14634        kind == SyntaxKind::DROP_COLLATION
14635    }
14636    #[inline]
14637    fn cast(syntax: SyntaxNode) -> Option<Self> {
14638        if Self::can_cast(syntax.kind()) {
14639            Some(Self { syntax })
14640        } else {
14641            None
14642        }
14643    }
14644    #[inline]
14645    fn syntax(&self) -> &SyntaxNode {
14646        &self.syntax
14647    }
14648}
14649impl AstNode for DropColumn {
14650    #[inline]
14651    fn can_cast(kind: SyntaxKind) -> bool {
14652        kind == SyntaxKind::DROP_COLUMN
14653    }
14654    #[inline]
14655    fn cast(syntax: SyntaxNode) -> Option<Self> {
14656        if Self::can_cast(syntax.kind()) {
14657            Some(Self { syntax })
14658        } else {
14659            None
14660        }
14661    }
14662    #[inline]
14663    fn syntax(&self) -> &SyntaxNode {
14664        &self.syntax
14665    }
14666}
14667impl AstNode for DropConstraint {
14668    #[inline]
14669    fn can_cast(kind: SyntaxKind) -> bool {
14670        kind == SyntaxKind::DROP_CONSTRAINT
14671    }
14672    #[inline]
14673    fn cast(syntax: SyntaxNode) -> Option<Self> {
14674        if Self::can_cast(syntax.kind()) {
14675            Some(Self { syntax })
14676        } else {
14677            None
14678        }
14679    }
14680    #[inline]
14681    fn syntax(&self) -> &SyntaxNode {
14682        &self.syntax
14683    }
14684}
14685impl AstNode for DropConversion {
14686    #[inline]
14687    fn can_cast(kind: SyntaxKind) -> bool {
14688        kind == SyntaxKind::DROP_CONVERSION
14689    }
14690    #[inline]
14691    fn cast(syntax: SyntaxNode) -> Option<Self> {
14692        if Self::can_cast(syntax.kind()) {
14693            Some(Self { syntax })
14694        } else {
14695            None
14696        }
14697    }
14698    #[inline]
14699    fn syntax(&self) -> &SyntaxNode {
14700        &self.syntax
14701    }
14702}
14703impl AstNode for DropDatabase {
14704    #[inline]
14705    fn can_cast(kind: SyntaxKind) -> bool {
14706        kind == SyntaxKind::DROP_DATABASE
14707    }
14708    #[inline]
14709    fn cast(syntax: SyntaxNode) -> Option<Self> {
14710        if Self::can_cast(syntax.kind()) {
14711            Some(Self { syntax })
14712        } else {
14713            None
14714        }
14715    }
14716    #[inline]
14717    fn syntax(&self) -> &SyntaxNode {
14718        &self.syntax
14719    }
14720}
14721impl AstNode for DropDefault {
14722    #[inline]
14723    fn can_cast(kind: SyntaxKind) -> bool {
14724        kind == SyntaxKind::DROP_DEFAULT
14725    }
14726    #[inline]
14727    fn cast(syntax: SyntaxNode) -> Option<Self> {
14728        if Self::can_cast(syntax.kind()) {
14729            Some(Self { syntax })
14730        } else {
14731            None
14732        }
14733    }
14734    #[inline]
14735    fn syntax(&self) -> &SyntaxNode {
14736        &self.syntax
14737    }
14738}
14739impl AstNode for DropDomain {
14740    #[inline]
14741    fn can_cast(kind: SyntaxKind) -> bool {
14742        kind == SyntaxKind::DROP_DOMAIN
14743    }
14744    #[inline]
14745    fn cast(syntax: SyntaxNode) -> Option<Self> {
14746        if Self::can_cast(syntax.kind()) {
14747            Some(Self { syntax })
14748        } else {
14749            None
14750        }
14751    }
14752    #[inline]
14753    fn syntax(&self) -> &SyntaxNode {
14754        &self.syntax
14755    }
14756}
14757impl AstNode for DropEventTrigger {
14758    #[inline]
14759    fn can_cast(kind: SyntaxKind) -> bool {
14760        kind == SyntaxKind::DROP_EVENT_TRIGGER
14761    }
14762    #[inline]
14763    fn cast(syntax: SyntaxNode) -> Option<Self> {
14764        if Self::can_cast(syntax.kind()) {
14765            Some(Self { syntax })
14766        } else {
14767            None
14768        }
14769    }
14770    #[inline]
14771    fn syntax(&self) -> &SyntaxNode {
14772        &self.syntax
14773    }
14774}
14775impl AstNode for DropExpression {
14776    #[inline]
14777    fn can_cast(kind: SyntaxKind) -> bool {
14778        kind == SyntaxKind::DROP_EXPRESSION
14779    }
14780    #[inline]
14781    fn cast(syntax: SyntaxNode) -> Option<Self> {
14782        if Self::can_cast(syntax.kind()) {
14783            Some(Self { syntax })
14784        } else {
14785            None
14786        }
14787    }
14788    #[inline]
14789    fn syntax(&self) -> &SyntaxNode {
14790        &self.syntax
14791    }
14792}
14793impl AstNode for DropExtension {
14794    #[inline]
14795    fn can_cast(kind: SyntaxKind) -> bool {
14796        kind == SyntaxKind::DROP_EXTENSION
14797    }
14798    #[inline]
14799    fn cast(syntax: SyntaxNode) -> Option<Self> {
14800        if Self::can_cast(syntax.kind()) {
14801            Some(Self { syntax })
14802        } else {
14803            None
14804        }
14805    }
14806    #[inline]
14807    fn syntax(&self) -> &SyntaxNode {
14808        &self.syntax
14809    }
14810}
14811impl AstNode for DropForeignDataWrapper {
14812    #[inline]
14813    fn can_cast(kind: SyntaxKind) -> bool {
14814        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
14815    }
14816    #[inline]
14817    fn cast(syntax: SyntaxNode) -> Option<Self> {
14818        if Self::can_cast(syntax.kind()) {
14819            Some(Self { syntax })
14820        } else {
14821            None
14822        }
14823    }
14824    #[inline]
14825    fn syntax(&self) -> &SyntaxNode {
14826        &self.syntax
14827    }
14828}
14829impl AstNode for DropForeignTable {
14830    #[inline]
14831    fn can_cast(kind: SyntaxKind) -> bool {
14832        kind == SyntaxKind::DROP_FOREIGN_TABLE
14833    }
14834    #[inline]
14835    fn cast(syntax: SyntaxNode) -> Option<Self> {
14836        if Self::can_cast(syntax.kind()) {
14837            Some(Self { syntax })
14838        } else {
14839            None
14840        }
14841    }
14842    #[inline]
14843    fn syntax(&self) -> &SyntaxNode {
14844        &self.syntax
14845    }
14846}
14847impl AstNode for DropFunction {
14848    #[inline]
14849    fn can_cast(kind: SyntaxKind) -> bool {
14850        kind == SyntaxKind::DROP_FUNCTION
14851    }
14852    #[inline]
14853    fn cast(syntax: SyntaxNode) -> Option<Self> {
14854        if Self::can_cast(syntax.kind()) {
14855            Some(Self { syntax })
14856        } else {
14857            None
14858        }
14859    }
14860    #[inline]
14861    fn syntax(&self) -> &SyntaxNode {
14862        &self.syntax
14863    }
14864}
14865impl AstNode for DropGroup {
14866    #[inline]
14867    fn can_cast(kind: SyntaxKind) -> bool {
14868        kind == SyntaxKind::DROP_GROUP
14869    }
14870    #[inline]
14871    fn cast(syntax: SyntaxNode) -> Option<Self> {
14872        if Self::can_cast(syntax.kind()) {
14873            Some(Self { syntax })
14874        } else {
14875            None
14876        }
14877    }
14878    #[inline]
14879    fn syntax(&self) -> &SyntaxNode {
14880        &self.syntax
14881    }
14882}
14883impl AstNode for DropIdentity {
14884    #[inline]
14885    fn can_cast(kind: SyntaxKind) -> bool {
14886        kind == SyntaxKind::DROP_IDENTITY
14887    }
14888    #[inline]
14889    fn cast(syntax: SyntaxNode) -> Option<Self> {
14890        if Self::can_cast(syntax.kind()) {
14891            Some(Self { syntax })
14892        } else {
14893            None
14894        }
14895    }
14896    #[inline]
14897    fn syntax(&self) -> &SyntaxNode {
14898        &self.syntax
14899    }
14900}
14901impl AstNode for DropIndex {
14902    #[inline]
14903    fn can_cast(kind: SyntaxKind) -> bool {
14904        kind == SyntaxKind::DROP_INDEX
14905    }
14906    #[inline]
14907    fn cast(syntax: SyntaxNode) -> Option<Self> {
14908        if Self::can_cast(syntax.kind()) {
14909            Some(Self { syntax })
14910        } else {
14911            None
14912        }
14913    }
14914    #[inline]
14915    fn syntax(&self) -> &SyntaxNode {
14916        &self.syntax
14917    }
14918}
14919impl AstNode for DropLanguage {
14920    #[inline]
14921    fn can_cast(kind: SyntaxKind) -> bool {
14922        kind == SyntaxKind::DROP_LANGUAGE
14923    }
14924    #[inline]
14925    fn cast(syntax: SyntaxNode) -> Option<Self> {
14926        if Self::can_cast(syntax.kind()) {
14927            Some(Self { syntax })
14928        } else {
14929            None
14930        }
14931    }
14932    #[inline]
14933    fn syntax(&self) -> &SyntaxNode {
14934        &self.syntax
14935    }
14936}
14937impl AstNode for DropMaterializedView {
14938    #[inline]
14939    fn can_cast(kind: SyntaxKind) -> bool {
14940        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
14941    }
14942    #[inline]
14943    fn cast(syntax: SyntaxNode) -> Option<Self> {
14944        if Self::can_cast(syntax.kind()) {
14945            Some(Self { syntax })
14946        } else {
14947            None
14948        }
14949    }
14950    #[inline]
14951    fn syntax(&self) -> &SyntaxNode {
14952        &self.syntax
14953    }
14954}
14955impl AstNode for DropNotNull {
14956    #[inline]
14957    fn can_cast(kind: SyntaxKind) -> bool {
14958        kind == SyntaxKind::DROP_NOT_NULL
14959    }
14960    #[inline]
14961    fn cast(syntax: SyntaxNode) -> Option<Self> {
14962        if Self::can_cast(syntax.kind()) {
14963            Some(Self { syntax })
14964        } else {
14965            None
14966        }
14967    }
14968    #[inline]
14969    fn syntax(&self) -> &SyntaxNode {
14970        &self.syntax
14971    }
14972}
14973impl AstNode for DropOperator {
14974    #[inline]
14975    fn can_cast(kind: SyntaxKind) -> bool {
14976        kind == SyntaxKind::DROP_OPERATOR
14977    }
14978    #[inline]
14979    fn cast(syntax: SyntaxNode) -> Option<Self> {
14980        if Self::can_cast(syntax.kind()) {
14981            Some(Self { syntax })
14982        } else {
14983            None
14984        }
14985    }
14986    #[inline]
14987    fn syntax(&self) -> &SyntaxNode {
14988        &self.syntax
14989    }
14990}
14991impl AstNode for DropOperatorClass {
14992    #[inline]
14993    fn can_cast(kind: SyntaxKind) -> bool {
14994        kind == SyntaxKind::DROP_OPERATOR_CLASS
14995    }
14996    #[inline]
14997    fn cast(syntax: SyntaxNode) -> Option<Self> {
14998        if Self::can_cast(syntax.kind()) {
14999            Some(Self { syntax })
15000        } else {
15001            None
15002        }
15003    }
15004    #[inline]
15005    fn syntax(&self) -> &SyntaxNode {
15006        &self.syntax
15007    }
15008}
15009impl AstNode for DropOperatorFamily {
15010    #[inline]
15011    fn can_cast(kind: SyntaxKind) -> bool {
15012        kind == SyntaxKind::DROP_OPERATOR_FAMILY
15013    }
15014    #[inline]
15015    fn cast(syntax: SyntaxNode) -> Option<Self> {
15016        if Self::can_cast(syntax.kind()) {
15017            Some(Self { syntax })
15018        } else {
15019            None
15020        }
15021    }
15022    #[inline]
15023    fn syntax(&self) -> &SyntaxNode {
15024        &self.syntax
15025    }
15026}
15027impl AstNode for DropOwned {
15028    #[inline]
15029    fn can_cast(kind: SyntaxKind) -> bool {
15030        kind == SyntaxKind::DROP_OWNED
15031    }
15032    #[inline]
15033    fn cast(syntax: SyntaxNode) -> Option<Self> {
15034        if Self::can_cast(syntax.kind()) {
15035            Some(Self { syntax })
15036        } else {
15037            None
15038        }
15039    }
15040    #[inline]
15041    fn syntax(&self) -> &SyntaxNode {
15042        &self.syntax
15043    }
15044}
15045impl AstNode for DropPolicy {
15046    #[inline]
15047    fn can_cast(kind: SyntaxKind) -> bool {
15048        kind == SyntaxKind::DROP_POLICY
15049    }
15050    #[inline]
15051    fn cast(syntax: SyntaxNode) -> Option<Self> {
15052        if Self::can_cast(syntax.kind()) {
15053            Some(Self { syntax })
15054        } else {
15055            None
15056        }
15057    }
15058    #[inline]
15059    fn syntax(&self) -> &SyntaxNode {
15060        &self.syntax
15061    }
15062}
15063impl AstNode for DropProcedure {
15064    #[inline]
15065    fn can_cast(kind: SyntaxKind) -> bool {
15066        kind == SyntaxKind::DROP_PROCEDURE
15067    }
15068    #[inline]
15069    fn cast(syntax: SyntaxNode) -> Option<Self> {
15070        if Self::can_cast(syntax.kind()) {
15071            Some(Self { syntax })
15072        } else {
15073            None
15074        }
15075    }
15076    #[inline]
15077    fn syntax(&self) -> &SyntaxNode {
15078        &self.syntax
15079    }
15080}
15081impl AstNode for DropPublication {
15082    #[inline]
15083    fn can_cast(kind: SyntaxKind) -> bool {
15084        kind == SyntaxKind::DROP_PUBLICATION
15085    }
15086    #[inline]
15087    fn cast(syntax: SyntaxNode) -> Option<Self> {
15088        if Self::can_cast(syntax.kind()) {
15089            Some(Self { syntax })
15090        } else {
15091            None
15092        }
15093    }
15094    #[inline]
15095    fn syntax(&self) -> &SyntaxNode {
15096        &self.syntax
15097    }
15098}
15099impl AstNode for DropRole {
15100    #[inline]
15101    fn can_cast(kind: SyntaxKind) -> bool {
15102        kind == SyntaxKind::DROP_ROLE
15103    }
15104    #[inline]
15105    fn cast(syntax: SyntaxNode) -> Option<Self> {
15106        if Self::can_cast(syntax.kind()) {
15107            Some(Self { syntax })
15108        } else {
15109            None
15110        }
15111    }
15112    #[inline]
15113    fn syntax(&self) -> &SyntaxNode {
15114        &self.syntax
15115    }
15116}
15117impl AstNode for DropRoutine {
15118    #[inline]
15119    fn can_cast(kind: SyntaxKind) -> bool {
15120        kind == SyntaxKind::DROP_ROUTINE
15121    }
15122    #[inline]
15123    fn cast(syntax: SyntaxNode) -> Option<Self> {
15124        if Self::can_cast(syntax.kind()) {
15125            Some(Self { syntax })
15126        } else {
15127            None
15128        }
15129    }
15130    #[inline]
15131    fn syntax(&self) -> &SyntaxNode {
15132        &self.syntax
15133    }
15134}
15135impl AstNode for DropRule {
15136    #[inline]
15137    fn can_cast(kind: SyntaxKind) -> bool {
15138        kind == SyntaxKind::DROP_RULE
15139    }
15140    #[inline]
15141    fn cast(syntax: SyntaxNode) -> Option<Self> {
15142        if Self::can_cast(syntax.kind()) {
15143            Some(Self { syntax })
15144        } else {
15145            None
15146        }
15147    }
15148    #[inline]
15149    fn syntax(&self) -> &SyntaxNode {
15150        &self.syntax
15151    }
15152}
15153impl AstNode for DropSchema {
15154    #[inline]
15155    fn can_cast(kind: SyntaxKind) -> bool {
15156        kind == SyntaxKind::DROP_SCHEMA
15157    }
15158    #[inline]
15159    fn cast(syntax: SyntaxNode) -> Option<Self> {
15160        if Self::can_cast(syntax.kind()) {
15161            Some(Self { syntax })
15162        } else {
15163            None
15164        }
15165    }
15166    #[inline]
15167    fn syntax(&self) -> &SyntaxNode {
15168        &self.syntax
15169    }
15170}
15171impl AstNode for DropSequence {
15172    #[inline]
15173    fn can_cast(kind: SyntaxKind) -> bool {
15174        kind == SyntaxKind::DROP_SEQUENCE
15175    }
15176    #[inline]
15177    fn cast(syntax: SyntaxNode) -> Option<Self> {
15178        if Self::can_cast(syntax.kind()) {
15179            Some(Self { syntax })
15180        } else {
15181            None
15182        }
15183    }
15184    #[inline]
15185    fn syntax(&self) -> &SyntaxNode {
15186        &self.syntax
15187    }
15188}
15189impl AstNode for DropServer {
15190    #[inline]
15191    fn can_cast(kind: SyntaxKind) -> bool {
15192        kind == SyntaxKind::DROP_SERVER
15193    }
15194    #[inline]
15195    fn cast(syntax: SyntaxNode) -> Option<Self> {
15196        if Self::can_cast(syntax.kind()) {
15197            Some(Self { syntax })
15198        } else {
15199            None
15200        }
15201    }
15202    #[inline]
15203    fn syntax(&self) -> &SyntaxNode {
15204        &self.syntax
15205    }
15206}
15207impl AstNode for DropStatistics {
15208    #[inline]
15209    fn can_cast(kind: SyntaxKind) -> bool {
15210        kind == SyntaxKind::DROP_STATISTICS
15211    }
15212    #[inline]
15213    fn cast(syntax: SyntaxNode) -> Option<Self> {
15214        if Self::can_cast(syntax.kind()) {
15215            Some(Self { syntax })
15216        } else {
15217            None
15218        }
15219    }
15220    #[inline]
15221    fn syntax(&self) -> &SyntaxNode {
15222        &self.syntax
15223    }
15224}
15225impl AstNode for DropSubscription {
15226    #[inline]
15227    fn can_cast(kind: SyntaxKind) -> bool {
15228        kind == SyntaxKind::DROP_SUBSCRIPTION
15229    }
15230    #[inline]
15231    fn cast(syntax: SyntaxNode) -> Option<Self> {
15232        if Self::can_cast(syntax.kind()) {
15233            Some(Self { syntax })
15234        } else {
15235            None
15236        }
15237    }
15238    #[inline]
15239    fn syntax(&self) -> &SyntaxNode {
15240        &self.syntax
15241    }
15242}
15243impl AstNode for DropTable {
15244    #[inline]
15245    fn can_cast(kind: SyntaxKind) -> bool {
15246        kind == SyntaxKind::DROP_TABLE
15247    }
15248    #[inline]
15249    fn cast(syntax: SyntaxNode) -> Option<Self> {
15250        if Self::can_cast(syntax.kind()) {
15251            Some(Self { syntax })
15252        } else {
15253            None
15254        }
15255    }
15256    #[inline]
15257    fn syntax(&self) -> &SyntaxNode {
15258        &self.syntax
15259    }
15260}
15261impl AstNode for DropTablespace {
15262    #[inline]
15263    fn can_cast(kind: SyntaxKind) -> bool {
15264        kind == SyntaxKind::DROP_TABLESPACE
15265    }
15266    #[inline]
15267    fn cast(syntax: SyntaxNode) -> Option<Self> {
15268        if Self::can_cast(syntax.kind()) {
15269            Some(Self { syntax })
15270        } else {
15271            None
15272        }
15273    }
15274    #[inline]
15275    fn syntax(&self) -> &SyntaxNode {
15276        &self.syntax
15277    }
15278}
15279impl AstNode for DropTextSearchConfig {
15280    #[inline]
15281    fn can_cast(kind: SyntaxKind) -> bool {
15282        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
15283    }
15284    #[inline]
15285    fn cast(syntax: SyntaxNode) -> Option<Self> {
15286        if Self::can_cast(syntax.kind()) {
15287            Some(Self { syntax })
15288        } else {
15289            None
15290        }
15291    }
15292    #[inline]
15293    fn syntax(&self) -> &SyntaxNode {
15294        &self.syntax
15295    }
15296}
15297impl AstNode for DropTextSearchDict {
15298    #[inline]
15299    fn can_cast(kind: SyntaxKind) -> bool {
15300        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
15301    }
15302    #[inline]
15303    fn cast(syntax: SyntaxNode) -> Option<Self> {
15304        if Self::can_cast(syntax.kind()) {
15305            Some(Self { syntax })
15306        } else {
15307            None
15308        }
15309    }
15310    #[inline]
15311    fn syntax(&self) -> &SyntaxNode {
15312        &self.syntax
15313    }
15314}
15315impl AstNode for DropTextSearchParser {
15316    #[inline]
15317    fn can_cast(kind: SyntaxKind) -> bool {
15318        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
15319    }
15320    #[inline]
15321    fn cast(syntax: SyntaxNode) -> Option<Self> {
15322        if Self::can_cast(syntax.kind()) {
15323            Some(Self { syntax })
15324        } else {
15325            None
15326        }
15327    }
15328    #[inline]
15329    fn syntax(&self) -> &SyntaxNode {
15330        &self.syntax
15331    }
15332}
15333impl AstNode for DropTextSearchTemplate {
15334    #[inline]
15335    fn can_cast(kind: SyntaxKind) -> bool {
15336        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
15337    }
15338    #[inline]
15339    fn cast(syntax: SyntaxNode) -> Option<Self> {
15340        if Self::can_cast(syntax.kind()) {
15341            Some(Self { syntax })
15342        } else {
15343            None
15344        }
15345    }
15346    #[inline]
15347    fn syntax(&self) -> &SyntaxNode {
15348        &self.syntax
15349    }
15350}
15351impl AstNode for DropTransform {
15352    #[inline]
15353    fn can_cast(kind: SyntaxKind) -> bool {
15354        kind == SyntaxKind::DROP_TRANSFORM
15355    }
15356    #[inline]
15357    fn cast(syntax: SyntaxNode) -> Option<Self> {
15358        if Self::can_cast(syntax.kind()) {
15359            Some(Self { syntax })
15360        } else {
15361            None
15362        }
15363    }
15364    #[inline]
15365    fn syntax(&self) -> &SyntaxNode {
15366        &self.syntax
15367    }
15368}
15369impl AstNode for DropTrigger {
15370    #[inline]
15371    fn can_cast(kind: SyntaxKind) -> bool {
15372        kind == SyntaxKind::DROP_TRIGGER
15373    }
15374    #[inline]
15375    fn cast(syntax: SyntaxNode) -> Option<Self> {
15376        if Self::can_cast(syntax.kind()) {
15377            Some(Self { syntax })
15378        } else {
15379            None
15380        }
15381    }
15382    #[inline]
15383    fn syntax(&self) -> &SyntaxNode {
15384        &self.syntax
15385    }
15386}
15387impl AstNode for DropType {
15388    #[inline]
15389    fn can_cast(kind: SyntaxKind) -> bool {
15390        kind == SyntaxKind::DROP_TYPE
15391    }
15392    #[inline]
15393    fn cast(syntax: SyntaxNode) -> Option<Self> {
15394        if Self::can_cast(syntax.kind()) {
15395            Some(Self { syntax })
15396        } else {
15397            None
15398        }
15399    }
15400    #[inline]
15401    fn syntax(&self) -> &SyntaxNode {
15402        &self.syntax
15403    }
15404}
15405impl AstNode for DropUser {
15406    #[inline]
15407    fn can_cast(kind: SyntaxKind) -> bool {
15408        kind == SyntaxKind::DROP_USER
15409    }
15410    #[inline]
15411    fn cast(syntax: SyntaxNode) -> Option<Self> {
15412        if Self::can_cast(syntax.kind()) {
15413            Some(Self { syntax })
15414        } else {
15415            None
15416        }
15417    }
15418    #[inline]
15419    fn syntax(&self) -> &SyntaxNode {
15420        &self.syntax
15421    }
15422}
15423impl AstNode for DropUserMapping {
15424    #[inline]
15425    fn can_cast(kind: SyntaxKind) -> bool {
15426        kind == SyntaxKind::DROP_USER_MAPPING
15427    }
15428    #[inline]
15429    fn cast(syntax: SyntaxNode) -> Option<Self> {
15430        if Self::can_cast(syntax.kind()) {
15431            Some(Self { syntax })
15432        } else {
15433            None
15434        }
15435    }
15436    #[inline]
15437    fn syntax(&self) -> &SyntaxNode {
15438        &self.syntax
15439    }
15440}
15441impl AstNode for DropView {
15442    #[inline]
15443    fn can_cast(kind: SyntaxKind) -> bool {
15444        kind == SyntaxKind::DROP_VIEW
15445    }
15446    #[inline]
15447    fn cast(syntax: SyntaxNode) -> Option<Self> {
15448        if Self::can_cast(syntax.kind()) {
15449            Some(Self { syntax })
15450        } else {
15451            None
15452        }
15453    }
15454    #[inline]
15455    fn syntax(&self) -> &SyntaxNode {
15456        &self.syntax
15457    }
15458}
15459impl AstNode for ElseClause {
15460    #[inline]
15461    fn can_cast(kind: SyntaxKind) -> bool {
15462        kind == SyntaxKind::ELSE_CLAUSE
15463    }
15464    #[inline]
15465    fn cast(syntax: SyntaxNode) -> Option<Self> {
15466        if Self::can_cast(syntax.kind()) {
15467            Some(Self { syntax })
15468        } else {
15469            None
15470        }
15471    }
15472    #[inline]
15473    fn syntax(&self) -> &SyntaxNode {
15474        &self.syntax
15475    }
15476}
15477impl AstNode for EnableAlwaysRule {
15478    #[inline]
15479    fn can_cast(kind: SyntaxKind) -> bool {
15480        kind == SyntaxKind::ENABLE_ALWAYS_RULE
15481    }
15482    #[inline]
15483    fn cast(syntax: SyntaxNode) -> Option<Self> {
15484        if Self::can_cast(syntax.kind()) {
15485            Some(Self { syntax })
15486        } else {
15487            None
15488        }
15489    }
15490    #[inline]
15491    fn syntax(&self) -> &SyntaxNode {
15492        &self.syntax
15493    }
15494}
15495impl AstNode for EnableAlwaysTrigger {
15496    #[inline]
15497    fn can_cast(kind: SyntaxKind) -> bool {
15498        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
15499    }
15500    #[inline]
15501    fn cast(syntax: SyntaxNode) -> Option<Self> {
15502        if Self::can_cast(syntax.kind()) {
15503            Some(Self { syntax })
15504        } else {
15505            None
15506        }
15507    }
15508    #[inline]
15509    fn syntax(&self) -> &SyntaxNode {
15510        &self.syntax
15511    }
15512}
15513impl AstNode for EnableReplicaRule {
15514    #[inline]
15515    fn can_cast(kind: SyntaxKind) -> bool {
15516        kind == SyntaxKind::ENABLE_REPLICA_RULE
15517    }
15518    #[inline]
15519    fn cast(syntax: SyntaxNode) -> Option<Self> {
15520        if Self::can_cast(syntax.kind()) {
15521            Some(Self { syntax })
15522        } else {
15523            None
15524        }
15525    }
15526    #[inline]
15527    fn syntax(&self) -> &SyntaxNode {
15528        &self.syntax
15529    }
15530}
15531impl AstNode for EnableReplicaTrigger {
15532    #[inline]
15533    fn can_cast(kind: SyntaxKind) -> bool {
15534        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
15535    }
15536    #[inline]
15537    fn cast(syntax: SyntaxNode) -> Option<Self> {
15538        if Self::can_cast(syntax.kind()) {
15539            Some(Self { syntax })
15540        } else {
15541            None
15542        }
15543    }
15544    #[inline]
15545    fn syntax(&self) -> &SyntaxNode {
15546        &self.syntax
15547    }
15548}
15549impl AstNode for EnableRls {
15550    #[inline]
15551    fn can_cast(kind: SyntaxKind) -> bool {
15552        kind == SyntaxKind::ENABLE_RLS
15553    }
15554    #[inline]
15555    fn cast(syntax: SyntaxNode) -> Option<Self> {
15556        if Self::can_cast(syntax.kind()) {
15557            Some(Self { syntax })
15558        } else {
15559            None
15560        }
15561    }
15562    #[inline]
15563    fn syntax(&self) -> &SyntaxNode {
15564        &self.syntax
15565    }
15566}
15567impl AstNode for EnableRule {
15568    #[inline]
15569    fn can_cast(kind: SyntaxKind) -> bool {
15570        kind == SyntaxKind::ENABLE_RULE
15571    }
15572    #[inline]
15573    fn cast(syntax: SyntaxNode) -> Option<Self> {
15574        if Self::can_cast(syntax.kind()) {
15575            Some(Self { syntax })
15576        } else {
15577            None
15578        }
15579    }
15580    #[inline]
15581    fn syntax(&self) -> &SyntaxNode {
15582        &self.syntax
15583    }
15584}
15585impl AstNode for EnableTrigger {
15586    #[inline]
15587    fn can_cast(kind: SyntaxKind) -> bool {
15588        kind == SyntaxKind::ENABLE_TRIGGER
15589    }
15590    #[inline]
15591    fn cast(syntax: SyntaxNode) -> Option<Self> {
15592        if Self::can_cast(syntax.kind()) {
15593            Some(Self { syntax })
15594        } else {
15595            None
15596        }
15597    }
15598    #[inline]
15599    fn syntax(&self) -> &SyntaxNode {
15600        &self.syntax
15601    }
15602}
15603impl AstNode for Enforced {
15604    #[inline]
15605    fn can_cast(kind: SyntaxKind) -> bool {
15606        kind == SyntaxKind::ENFORCED
15607    }
15608    #[inline]
15609    fn cast(syntax: SyntaxNode) -> Option<Self> {
15610        if Self::can_cast(syntax.kind()) {
15611            Some(Self { syntax })
15612        } else {
15613            None
15614        }
15615    }
15616    #[inline]
15617    fn syntax(&self) -> &SyntaxNode {
15618        &self.syntax
15619    }
15620}
15621impl AstNode for ExcludeConstraint {
15622    #[inline]
15623    fn can_cast(kind: SyntaxKind) -> bool {
15624        kind == SyntaxKind::EXCLUDE_CONSTRAINT
15625    }
15626    #[inline]
15627    fn cast(syntax: SyntaxNode) -> Option<Self> {
15628        if Self::can_cast(syntax.kind()) {
15629            Some(Self { syntax })
15630        } else {
15631            None
15632        }
15633    }
15634    #[inline]
15635    fn syntax(&self) -> &SyntaxNode {
15636        &self.syntax
15637    }
15638}
15639impl AstNode for Execute {
15640    #[inline]
15641    fn can_cast(kind: SyntaxKind) -> bool {
15642        kind == SyntaxKind::EXECUTE
15643    }
15644    #[inline]
15645    fn cast(syntax: SyntaxNode) -> Option<Self> {
15646        if Self::can_cast(syntax.kind()) {
15647            Some(Self { syntax })
15648        } else {
15649            None
15650        }
15651    }
15652    #[inline]
15653    fn syntax(&self) -> &SyntaxNode {
15654        &self.syntax
15655    }
15656}
15657impl AstNode for Explain {
15658    #[inline]
15659    fn can_cast(kind: SyntaxKind) -> bool {
15660        kind == SyntaxKind::EXPLAIN
15661    }
15662    #[inline]
15663    fn cast(syntax: SyntaxNode) -> Option<Self> {
15664        if Self::can_cast(syntax.kind()) {
15665            Some(Self { syntax })
15666        } else {
15667            None
15668        }
15669    }
15670    #[inline]
15671    fn syntax(&self) -> &SyntaxNode {
15672        &self.syntax
15673    }
15674}
15675impl AstNode for ExprType {
15676    #[inline]
15677    fn can_cast(kind: SyntaxKind) -> bool {
15678        kind == SyntaxKind::EXPR_TYPE
15679    }
15680    #[inline]
15681    fn cast(syntax: SyntaxNode) -> Option<Self> {
15682        if Self::can_cast(syntax.kind()) {
15683            Some(Self { syntax })
15684        } else {
15685            None
15686        }
15687    }
15688    #[inline]
15689    fn syntax(&self) -> &SyntaxNode {
15690        &self.syntax
15691    }
15692}
15693impl AstNode for FatArrow {
15694    #[inline]
15695    fn can_cast(kind: SyntaxKind) -> bool {
15696        kind == SyntaxKind::FAT_ARROW
15697    }
15698    #[inline]
15699    fn cast(syntax: SyntaxNode) -> Option<Self> {
15700        if Self::can_cast(syntax.kind()) {
15701            Some(Self { syntax })
15702        } else {
15703            None
15704        }
15705    }
15706    #[inline]
15707    fn syntax(&self) -> &SyntaxNode {
15708        &self.syntax
15709    }
15710}
15711impl AstNode for Fetch {
15712    #[inline]
15713    fn can_cast(kind: SyntaxKind) -> bool {
15714        kind == SyntaxKind::FETCH
15715    }
15716    #[inline]
15717    fn cast(syntax: SyntaxNode) -> Option<Self> {
15718        if Self::can_cast(syntax.kind()) {
15719            Some(Self { syntax })
15720        } else {
15721            None
15722        }
15723    }
15724    #[inline]
15725    fn syntax(&self) -> &SyntaxNode {
15726        &self.syntax
15727    }
15728}
15729impl AstNode for FetchClause {
15730    #[inline]
15731    fn can_cast(kind: SyntaxKind) -> bool {
15732        kind == SyntaxKind::FETCH_CLAUSE
15733    }
15734    #[inline]
15735    fn cast(syntax: SyntaxNode) -> Option<Self> {
15736        if Self::can_cast(syntax.kind()) {
15737            Some(Self { syntax })
15738        } else {
15739            None
15740        }
15741    }
15742    #[inline]
15743    fn syntax(&self) -> &SyntaxNode {
15744        &self.syntax
15745    }
15746}
15747impl AstNode for FieldExpr {
15748    #[inline]
15749    fn can_cast(kind: SyntaxKind) -> bool {
15750        kind == SyntaxKind::FIELD_EXPR
15751    }
15752    #[inline]
15753    fn cast(syntax: SyntaxNode) -> Option<Self> {
15754        if Self::can_cast(syntax.kind()) {
15755            Some(Self { syntax })
15756        } else {
15757            None
15758        }
15759    }
15760    #[inline]
15761    fn syntax(&self) -> &SyntaxNode {
15762        &self.syntax
15763    }
15764}
15765impl AstNode for FilterClause {
15766    #[inline]
15767    fn can_cast(kind: SyntaxKind) -> bool {
15768        kind == SyntaxKind::FILTER_CLAUSE
15769    }
15770    #[inline]
15771    fn cast(syntax: SyntaxNode) -> Option<Self> {
15772        if Self::can_cast(syntax.kind()) {
15773            Some(Self { syntax })
15774        } else {
15775            None
15776        }
15777    }
15778    #[inline]
15779    fn syntax(&self) -> &SyntaxNode {
15780        &self.syntax
15781    }
15782}
15783impl AstNode for ForceRls {
15784    #[inline]
15785    fn can_cast(kind: SyntaxKind) -> bool {
15786        kind == SyntaxKind::FORCE_RLS
15787    }
15788    #[inline]
15789    fn cast(syntax: SyntaxNode) -> Option<Self> {
15790        if Self::can_cast(syntax.kind()) {
15791            Some(Self { syntax })
15792        } else {
15793            None
15794        }
15795    }
15796    #[inline]
15797    fn syntax(&self) -> &SyntaxNode {
15798        &self.syntax
15799    }
15800}
15801impl AstNode for ForeignKeyConstraint {
15802    #[inline]
15803    fn can_cast(kind: SyntaxKind) -> bool {
15804        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
15805    }
15806    #[inline]
15807    fn cast(syntax: SyntaxNode) -> Option<Self> {
15808        if Self::can_cast(syntax.kind()) {
15809            Some(Self { syntax })
15810        } else {
15811            None
15812        }
15813    }
15814    #[inline]
15815    fn syntax(&self) -> &SyntaxNode {
15816        &self.syntax
15817    }
15818}
15819impl AstNode for FrameClause {
15820    #[inline]
15821    fn can_cast(kind: SyntaxKind) -> bool {
15822        kind == SyntaxKind::FRAME_CLAUSE
15823    }
15824    #[inline]
15825    fn cast(syntax: SyntaxNode) -> Option<Self> {
15826        if Self::can_cast(syntax.kind()) {
15827            Some(Self { syntax })
15828        } else {
15829            None
15830        }
15831    }
15832    #[inline]
15833    fn syntax(&self) -> &SyntaxNode {
15834        &self.syntax
15835    }
15836}
15837impl AstNode for FromClause {
15838    #[inline]
15839    fn can_cast(kind: SyntaxKind) -> bool {
15840        kind == SyntaxKind::FROM_CLAUSE
15841    }
15842    #[inline]
15843    fn cast(syntax: SyntaxNode) -> Option<Self> {
15844        if Self::can_cast(syntax.kind()) {
15845            Some(Self { syntax })
15846        } else {
15847            None
15848        }
15849    }
15850    #[inline]
15851    fn syntax(&self) -> &SyntaxNode {
15852        &self.syntax
15853    }
15854}
15855impl AstNode for FromItem {
15856    #[inline]
15857    fn can_cast(kind: SyntaxKind) -> bool {
15858        kind == SyntaxKind::FROM_ITEM
15859    }
15860    #[inline]
15861    fn cast(syntax: SyntaxNode) -> Option<Self> {
15862        if Self::can_cast(syntax.kind()) {
15863            Some(Self { syntax })
15864        } else {
15865            None
15866        }
15867    }
15868    #[inline]
15869    fn syntax(&self) -> &SyntaxNode {
15870        &self.syntax
15871    }
15872}
15873impl AstNode for FuncOptionList {
15874    #[inline]
15875    fn can_cast(kind: SyntaxKind) -> bool {
15876        kind == SyntaxKind::FUNC_OPTION_LIST
15877    }
15878    #[inline]
15879    fn cast(syntax: SyntaxNode) -> Option<Self> {
15880        if Self::can_cast(syntax.kind()) {
15881            Some(Self { syntax })
15882        } else {
15883            None
15884        }
15885    }
15886    #[inline]
15887    fn syntax(&self) -> &SyntaxNode {
15888        &self.syntax
15889    }
15890}
15891impl AstNode for FunctionSig {
15892    #[inline]
15893    fn can_cast(kind: SyntaxKind) -> bool {
15894        kind == SyntaxKind::FUNCTION_SIG
15895    }
15896    #[inline]
15897    fn cast(syntax: SyntaxNode) -> Option<Self> {
15898        if Self::can_cast(syntax.kind()) {
15899            Some(Self { syntax })
15900        } else {
15901            None
15902        }
15903    }
15904    #[inline]
15905    fn syntax(&self) -> &SyntaxNode {
15906        &self.syntax
15907    }
15908}
15909impl AstNode for FunctionSigList {
15910    #[inline]
15911    fn can_cast(kind: SyntaxKind) -> bool {
15912        kind == SyntaxKind::FUNCTION_SIG_LIST
15913    }
15914    #[inline]
15915    fn cast(syntax: SyntaxNode) -> Option<Self> {
15916        if Self::can_cast(syntax.kind()) {
15917            Some(Self { syntax })
15918        } else {
15919            None
15920        }
15921    }
15922    #[inline]
15923    fn syntax(&self) -> &SyntaxNode {
15924        &self.syntax
15925    }
15926}
15927impl AstNode for GeneratedConstraint {
15928    #[inline]
15929    fn can_cast(kind: SyntaxKind) -> bool {
15930        kind == SyntaxKind::GENERATED_CONSTRAINT
15931    }
15932    #[inline]
15933    fn cast(syntax: SyntaxNode) -> Option<Self> {
15934        if Self::can_cast(syntax.kind()) {
15935            Some(Self { syntax })
15936        } else {
15937            None
15938        }
15939    }
15940    #[inline]
15941    fn syntax(&self) -> &SyntaxNode {
15942        &self.syntax
15943    }
15944}
15945impl AstNode for Grant {
15946    #[inline]
15947    fn can_cast(kind: SyntaxKind) -> bool {
15948        kind == SyntaxKind::GRANT
15949    }
15950    #[inline]
15951    fn cast(syntax: SyntaxNode) -> Option<Self> {
15952        if Self::can_cast(syntax.kind()) {
15953            Some(Self { syntax })
15954        } else {
15955            None
15956        }
15957    }
15958    #[inline]
15959    fn syntax(&self) -> &SyntaxNode {
15960        &self.syntax
15961    }
15962}
15963impl AstNode for GroupByClause {
15964    #[inline]
15965    fn can_cast(kind: SyntaxKind) -> bool {
15966        kind == SyntaxKind::GROUP_BY_CLAUSE
15967    }
15968    #[inline]
15969    fn cast(syntax: SyntaxNode) -> Option<Self> {
15970        if Self::can_cast(syntax.kind()) {
15971            Some(Self { syntax })
15972        } else {
15973            None
15974        }
15975    }
15976    #[inline]
15977    fn syntax(&self) -> &SyntaxNode {
15978        &self.syntax
15979    }
15980}
15981impl AstNode for GroupByList {
15982    #[inline]
15983    fn can_cast(kind: SyntaxKind) -> bool {
15984        kind == SyntaxKind::GROUP_BY_LIST
15985    }
15986    #[inline]
15987    fn cast(syntax: SyntaxNode) -> Option<Self> {
15988        if Self::can_cast(syntax.kind()) {
15989            Some(Self { syntax })
15990        } else {
15991            None
15992        }
15993    }
15994    #[inline]
15995    fn syntax(&self) -> &SyntaxNode {
15996        &self.syntax
15997    }
15998}
15999impl AstNode for GroupingCube {
16000    #[inline]
16001    fn can_cast(kind: SyntaxKind) -> bool {
16002        kind == SyntaxKind::GROUPING_CUBE
16003    }
16004    #[inline]
16005    fn cast(syntax: SyntaxNode) -> Option<Self> {
16006        if Self::can_cast(syntax.kind()) {
16007            Some(Self { syntax })
16008        } else {
16009            None
16010        }
16011    }
16012    #[inline]
16013    fn syntax(&self) -> &SyntaxNode {
16014        &self.syntax
16015    }
16016}
16017impl AstNode for GroupingExpr {
16018    #[inline]
16019    fn can_cast(kind: SyntaxKind) -> bool {
16020        kind == SyntaxKind::GROUPING_EXPR
16021    }
16022    #[inline]
16023    fn cast(syntax: SyntaxNode) -> Option<Self> {
16024        if Self::can_cast(syntax.kind()) {
16025            Some(Self { syntax })
16026        } else {
16027            None
16028        }
16029    }
16030    #[inline]
16031    fn syntax(&self) -> &SyntaxNode {
16032        &self.syntax
16033    }
16034}
16035impl AstNode for GroupingRollup {
16036    #[inline]
16037    fn can_cast(kind: SyntaxKind) -> bool {
16038        kind == SyntaxKind::GROUPING_ROLLUP
16039    }
16040    #[inline]
16041    fn cast(syntax: SyntaxNode) -> Option<Self> {
16042        if Self::can_cast(syntax.kind()) {
16043            Some(Self { syntax })
16044        } else {
16045            None
16046        }
16047    }
16048    #[inline]
16049    fn syntax(&self) -> &SyntaxNode {
16050        &self.syntax
16051    }
16052}
16053impl AstNode for GroupingSets {
16054    #[inline]
16055    fn can_cast(kind: SyntaxKind) -> bool {
16056        kind == SyntaxKind::GROUPING_SETS
16057    }
16058    #[inline]
16059    fn cast(syntax: SyntaxNode) -> Option<Self> {
16060        if Self::can_cast(syntax.kind()) {
16061            Some(Self { syntax })
16062        } else {
16063            None
16064        }
16065    }
16066    #[inline]
16067    fn syntax(&self) -> &SyntaxNode {
16068        &self.syntax
16069    }
16070}
16071impl AstNode for Gteq {
16072    #[inline]
16073    fn can_cast(kind: SyntaxKind) -> bool {
16074        kind == SyntaxKind::GTEQ
16075    }
16076    #[inline]
16077    fn cast(syntax: SyntaxNode) -> Option<Self> {
16078        if Self::can_cast(syntax.kind()) {
16079            Some(Self { syntax })
16080        } else {
16081            None
16082        }
16083    }
16084    #[inline]
16085    fn syntax(&self) -> &SyntaxNode {
16086        &self.syntax
16087    }
16088}
16089impl AstNode for HavingClause {
16090    #[inline]
16091    fn can_cast(kind: SyntaxKind) -> bool {
16092        kind == SyntaxKind::HAVING_CLAUSE
16093    }
16094    #[inline]
16095    fn cast(syntax: SyntaxNode) -> Option<Self> {
16096        if Self::can_cast(syntax.kind()) {
16097            Some(Self { syntax })
16098        } else {
16099            None
16100        }
16101    }
16102    #[inline]
16103    fn syntax(&self) -> &SyntaxNode {
16104        &self.syntax
16105    }
16106}
16107impl AstNode for IfExists {
16108    #[inline]
16109    fn can_cast(kind: SyntaxKind) -> bool {
16110        kind == SyntaxKind::IF_EXISTS
16111    }
16112    #[inline]
16113    fn cast(syntax: SyntaxNode) -> Option<Self> {
16114        if Self::can_cast(syntax.kind()) {
16115            Some(Self { syntax })
16116        } else {
16117            None
16118        }
16119    }
16120    #[inline]
16121    fn syntax(&self) -> &SyntaxNode {
16122        &self.syntax
16123    }
16124}
16125impl AstNode for IfNotExists {
16126    #[inline]
16127    fn can_cast(kind: SyntaxKind) -> bool {
16128        kind == SyntaxKind::IF_NOT_EXISTS
16129    }
16130    #[inline]
16131    fn cast(syntax: SyntaxNode) -> Option<Self> {
16132        if Self::can_cast(syntax.kind()) {
16133            Some(Self { syntax })
16134        } else {
16135            None
16136        }
16137    }
16138    #[inline]
16139    fn syntax(&self) -> &SyntaxNode {
16140        &self.syntax
16141    }
16142}
16143impl AstNode for ImportForeignSchema {
16144    #[inline]
16145    fn can_cast(kind: SyntaxKind) -> bool {
16146        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
16147    }
16148    #[inline]
16149    fn cast(syntax: SyntaxNode) -> Option<Self> {
16150        if Self::can_cast(syntax.kind()) {
16151            Some(Self { syntax })
16152        } else {
16153            None
16154        }
16155    }
16156    #[inline]
16157    fn syntax(&self) -> &SyntaxNode {
16158        &self.syntax
16159    }
16160}
16161impl AstNode for IndexExpr {
16162    #[inline]
16163    fn can_cast(kind: SyntaxKind) -> bool {
16164        kind == SyntaxKind::INDEX_EXPR
16165    }
16166    #[inline]
16167    fn cast(syntax: SyntaxNode) -> Option<Self> {
16168        if Self::can_cast(syntax.kind()) {
16169            Some(Self { syntax })
16170        } else {
16171            None
16172        }
16173    }
16174    #[inline]
16175    fn syntax(&self) -> &SyntaxNode {
16176        &self.syntax
16177    }
16178}
16179impl AstNode for Inherit {
16180    #[inline]
16181    fn can_cast(kind: SyntaxKind) -> bool {
16182        kind == SyntaxKind::INHERIT
16183    }
16184    #[inline]
16185    fn cast(syntax: SyntaxNode) -> Option<Self> {
16186        if Self::can_cast(syntax.kind()) {
16187            Some(Self { syntax })
16188        } else {
16189            None
16190        }
16191    }
16192    #[inline]
16193    fn syntax(&self) -> &SyntaxNode {
16194        &self.syntax
16195    }
16196}
16197impl AstNode for InheritTable {
16198    #[inline]
16199    fn can_cast(kind: SyntaxKind) -> bool {
16200        kind == SyntaxKind::INHERIT_TABLE
16201    }
16202    #[inline]
16203    fn cast(syntax: SyntaxNode) -> Option<Self> {
16204        if Self::can_cast(syntax.kind()) {
16205            Some(Self { syntax })
16206        } else {
16207            None
16208        }
16209    }
16210    #[inline]
16211    fn syntax(&self) -> &SyntaxNode {
16212        &self.syntax
16213    }
16214}
16215impl AstNode for Inherits {
16216    #[inline]
16217    fn can_cast(kind: SyntaxKind) -> bool {
16218        kind == SyntaxKind::INHERITS
16219    }
16220    #[inline]
16221    fn cast(syntax: SyntaxNode) -> Option<Self> {
16222        if Self::can_cast(syntax.kind()) {
16223            Some(Self { syntax })
16224        } else {
16225            None
16226        }
16227    }
16228    #[inline]
16229    fn syntax(&self) -> &SyntaxNode {
16230        &self.syntax
16231    }
16232}
16233impl AstNode for InitiallyDeferredConstraintOption {
16234    #[inline]
16235    fn can_cast(kind: SyntaxKind) -> bool {
16236        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
16237    }
16238    #[inline]
16239    fn cast(syntax: SyntaxNode) -> Option<Self> {
16240        if Self::can_cast(syntax.kind()) {
16241            Some(Self { syntax })
16242        } else {
16243            None
16244        }
16245    }
16246    #[inline]
16247    fn syntax(&self) -> &SyntaxNode {
16248        &self.syntax
16249    }
16250}
16251impl AstNode for InitiallyImmediateConstraintOption {
16252    #[inline]
16253    fn can_cast(kind: SyntaxKind) -> bool {
16254        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
16255    }
16256    #[inline]
16257    fn cast(syntax: SyntaxNode) -> Option<Self> {
16258        if Self::can_cast(syntax.kind()) {
16259            Some(Self { syntax })
16260        } else {
16261            None
16262        }
16263    }
16264    #[inline]
16265    fn syntax(&self) -> &SyntaxNode {
16266        &self.syntax
16267    }
16268}
16269impl AstNode for Insert {
16270    #[inline]
16271    fn can_cast(kind: SyntaxKind) -> bool {
16272        kind == SyntaxKind::INSERT
16273    }
16274    #[inline]
16275    fn cast(syntax: SyntaxNode) -> Option<Self> {
16276        if Self::can_cast(syntax.kind()) {
16277            Some(Self { syntax })
16278        } else {
16279            None
16280        }
16281    }
16282    #[inline]
16283    fn syntax(&self) -> &SyntaxNode {
16284        &self.syntax
16285    }
16286}
16287impl AstNode for IntervalType {
16288    #[inline]
16289    fn can_cast(kind: SyntaxKind) -> bool {
16290        kind == SyntaxKind::INTERVAL_TYPE
16291    }
16292    #[inline]
16293    fn cast(syntax: SyntaxNode) -> Option<Self> {
16294        if Self::can_cast(syntax.kind()) {
16295            Some(Self { syntax })
16296        } else {
16297            None
16298        }
16299    }
16300    #[inline]
16301    fn syntax(&self) -> &SyntaxNode {
16302        &self.syntax
16303    }
16304}
16305impl AstNode for IntoClause {
16306    #[inline]
16307    fn can_cast(kind: SyntaxKind) -> bool {
16308        kind == SyntaxKind::INTO_CLAUSE
16309    }
16310    #[inline]
16311    fn cast(syntax: SyntaxNode) -> Option<Self> {
16312        if Self::can_cast(syntax.kind()) {
16313            Some(Self { syntax })
16314        } else {
16315            None
16316        }
16317    }
16318    #[inline]
16319    fn syntax(&self) -> &SyntaxNode {
16320        &self.syntax
16321    }
16322}
16323impl AstNode for IsDistinctFrom {
16324    #[inline]
16325    fn can_cast(kind: SyntaxKind) -> bool {
16326        kind == SyntaxKind::IS_DISTINCT_FROM
16327    }
16328    #[inline]
16329    fn cast(syntax: SyntaxNode) -> Option<Self> {
16330        if Self::can_cast(syntax.kind()) {
16331            Some(Self { syntax })
16332        } else {
16333            None
16334        }
16335    }
16336    #[inline]
16337    fn syntax(&self) -> &SyntaxNode {
16338        &self.syntax
16339    }
16340}
16341impl AstNode for IsJson {
16342    #[inline]
16343    fn can_cast(kind: SyntaxKind) -> bool {
16344        kind == SyntaxKind::IS_JSON
16345    }
16346    #[inline]
16347    fn cast(syntax: SyntaxNode) -> Option<Self> {
16348        if Self::can_cast(syntax.kind()) {
16349            Some(Self { syntax })
16350        } else {
16351            None
16352        }
16353    }
16354    #[inline]
16355    fn syntax(&self) -> &SyntaxNode {
16356        &self.syntax
16357    }
16358}
16359impl AstNode for IsJsonArray {
16360    #[inline]
16361    fn can_cast(kind: SyntaxKind) -> bool {
16362        kind == SyntaxKind::IS_JSON_ARRAY
16363    }
16364    #[inline]
16365    fn cast(syntax: SyntaxNode) -> Option<Self> {
16366        if Self::can_cast(syntax.kind()) {
16367            Some(Self { syntax })
16368        } else {
16369            None
16370        }
16371    }
16372    #[inline]
16373    fn syntax(&self) -> &SyntaxNode {
16374        &self.syntax
16375    }
16376}
16377impl AstNode for IsJsonObject {
16378    #[inline]
16379    fn can_cast(kind: SyntaxKind) -> bool {
16380        kind == SyntaxKind::IS_JSON_OBJECT
16381    }
16382    #[inline]
16383    fn cast(syntax: SyntaxNode) -> Option<Self> {
16384        if Self::can_cast(syntax.kind()) {
16385            Some(Self { syntax })
16386        } else {
16387            None
16388        }
16389    }
16390    #[inline]
16391    fn syntax(&self) -> &SyntaxNode {
16392        &self.syntax
16393    }
16394}
16395impl AstNode for IsJsonScalar {
16396    #[inline]
16397    fn can_cast(kind: SyntaxKind) -> bool {
16398        kind == SyntaxKind::IS_JSON_SCALAR
16399    }
16400    #[inline]
16401    fn cast(syntax: SyntaxNode) -> Option<Self> {
16402        if Self::can_cast(syntax.kind()) {
16403            Some(Self { syntax })
16404        } else {
16405            None
16406        }
16407    }
16408    #[inline]
16409    fn syntax(&self) -> &SyntaxNode {
16410        &self.syntax
16411    }
16412}
16413impl AstNode for IsJsonValue {
16414    #[inline]
16415    fn can_cast(kind: SyntaxKind) -> bool {
16416        kind == SyntaxKind::IS_JSON_VALUE
16417    }
16418    #[inline]
16419    fn cast(syntax: SyntaxNode) -> Option<Self> {
16420        if Self::can_cast(syntax.kind()) {
16421            Some(Self { syntax })
16422        } else {
16423            None
16424        }
16425    }
16426    #[inline]
16427    fn syntax(&self) -> &SyntaxNode {
16428        &self.syntax
16429    }
16430}
16431impl AstNode for IsNormalized {
16432    #[inline]
16433    fn can_cast(kind: SyntaxKind) -> bool {
16434        kind == SyntaxKind::IS_NORMALIZED
16435    }
16436    #[inline]
16437    fn cast(syntax: SyntaxNode) -> Option<Self> {
16438        if Self::can_cast(syntax.kind()) {
16439            Some(Self { syntax })
16440        } else {
16441            None
16442        }
16443    }
16444    #[inline]
16445    fn syntax(&self) -> &SyntaxNode {
16446        &self.syntax
16447    }
16448}
16449impl AstNode for IsNot {
16450    #[inline]
16451    fn can_cast(kind: SyntaxKind) -> bool {
16452        kind == SyntaxKind::IS_NOT
16453    }
16454    #[inline]
16455    fn cast(syntax: SyntaxNode) -> Option<Self> {
16456        if Self::can_cast(syntax.kind()) {
16457            Some(Self { syntax })
16458        } else {
16459            None
16460        }
16461    }
16462    #[inline]
16463    fn syntax(&self) -> &SyntaxNode {
16464        &self.syntax
16465    }
16466}
16467impl AstNode for IsNotDistinctFrom {
16468    #[inline]
16469    fn can_cast(kind: SyntaxKind) -> bool {
16470        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
16471    }
16472    #[inline]
16473    fn cast(syntax: SyntaxNode) -> Option<Self> {
16474        if Self::can_cast(syntax.kind()) {
16475            Some(Self { syntax })
16476        } else {
16477            None
16478        }
16479    }
16480    #[inline]
16481    fn syntax(&self) -> &SyntaxNode {
16482        &self.syntax
16483    }
16484}
16485impl AstNode for IsNotJson {
16486    #[inline]
16487    fn can_cast(kind: SyntaxKind) -> bool {
16488        kind == SyntaxKind::IS_NOT_JSON
16489    }
16490    #[inline]
16491    fn cast(syntax: SyntaxNode) -> Option<Self> {
16492        if Self::can_cast(syntax.kind()) {
16493            Some(Self { syntax })
16494        } else {
16495            None
16496        }
16497    }
16498    #[inline]
16499    fn syntax(&self) -> &SyntaxNode {
16500        &self.syntax
16501    }
16502}
16503impl AstNode for IsNotJsonArray {
16504    #[inline]
16505    fn can_cast(kind: SyntaxKind) -> bool {
16506        kind == SyntaxKind::IS_NOT_JSON_ARRAY
16507    }
16508    #[inline]
16509    fn cast(syntax: SyntaxNode) -> Option<Self> {
16510        if Self::can_cast(syntax.kind()) {
16511            Some(Self { syntax })
16512        } else {
16513            None
16514        }
16515    }
16516    #[inline]
16517    fn syntax(&self) -> &SyntaxNode {
16518        &self.syntax
16519    }
16520}
16521impl AstNode for IsNotJsonObject {
16522    #[inline]
16523    fn can_cast(kind: SyntaxKind) -> bool {
16524        kind == SyntaxKind::IS_NOT_JSON_OBJECT
16525    }
16526    #[inline]
16527    fn cast(syntax: SyntaxNode) -> Option<Self> {
16528        if Self::can_cast(syntax.kind()) {
16529            Some(Self { syntax })
16530        } else {
16531            None
16532        }
16533    }
16534    #[inline]
16535    fn syntax(&self) -> &SyntaxNode {
16536        &self.syntax
16537    }
16538}
16539impl AstNode for IsNotJsonScalar {
16540    #[inline]
16541    fn can_cast(kind: SyntaxKind) -> bool {
16542        kind == SyntaxKind::IS_NOT_JSON_SCALAR
16543    }
16544    #[inline]
16545    fn cast(syntax: SyntaxNode) -> Option<Self> {
16546        if Self::can_cast(syntax.kind()) {
16547            Some(Self { syntax })
16548        } else {
16549            None
16550        }
16551    }
16552    #[inline]
16553    fn syntax(&self) -> &SyntaxNode {
16554        &self.syntax
16555    }
16556}
16557impl AstNode for IsNotJsonValue {
16558    #[inline]
16559    fn can_cast(kind: SyntaxKind) -> bool {
16560        kind == SyntaxKind::IS_NOT_JSON_VALUE
16561    }
16562    #[inline]
16563    fn cast(syntax: SyntaxNode) -> Option<Self> {
16564        if Self::can_cast(syntax.kind()) {
16565            Some(Self { syntax })
16566        } else {
16567            None
16568        }
16569    }
16570    #[inline]
16571    fn syntax(&self) -> &SyntaxNode {
16572        &self.syntax
16573    }
16574}
16575impl AstNode for IsNotNormalized {
16576    #[inline]
16577    fn can_cast(kind: SyntaxKind) -> bool {
16578        kind == SyntaxKind::IS_NOT_NORMALIZED
16579    }
16580    #[inline]
16581    fn cast(syntax: SyntaxNode) -> Option<Self> {
16582        if Self::can_cast(syntax.kind()) {
16583            Some(Self { syntax })
16584        } else {
16585            None
16586        }
16587    }
16588    #[inline]
16589    fn syntax(&self) -> &SyntaxNode {
16590        &self.syntax
16591    }
16592}
16593impl AstNode for Join {
16594    #[inline]
16595    fn can_cast(kind: SyntaxKind) -> bool {
16596        kind == SyntaxKind::JOIN
16597    }
16598    #[inline]
16599    fn cast(syntax: SyntaxNode) -> Option<Self> {
16600        if Self::can_cast(syntax.kind()) {
16601            Some(Self { syntax })
16602        } else {
16603            None
16604        }
16605    }
16606    #[inline]
16607    fn syntax(&self) -> &SyntaxNode {
16608        &self.syntax
16609    }
16610}
16611impl AstNode for JoinCross {
16612    #[inline]
16613    fn can_cast(kind: SyntaxKind) -> bool {
16614        kind == SyntaxKind::JOIN_CROSS
16615    }
16616    #[inline]
16617    fn cast(syntax: SyntaxNode) -> Option<Self> {
16618        if Self::can_cast(syntax.kind()) {
16619            Some(Self { syntax })
16620        } else {
16621            None
16622        }
16623    }
16624    #[inline]
16625    fn syntax(&self) -> &SyntaxNode {
16626        &self.syntax
16627    }
16628}
16629impl AstNode for JoinExpr {
16630    #[inline]
16631    fn can_cast(kind: SyntaxKind) -> bool {
16632        kind == SyntaxKind::JOIN_EXPR
16633    }
16634    #[inline]
16635    fn cast(syntax: SyntaxNode) -> Option<Self> {
16636        if Self::can_cast(syntax.kind()) {
16637            Some(Self { syntax })
16638        } else {
16639            None
16640        }
16641    }
16642    #[inline]
16643    fn syntax(&self) -> &SyntaxNode {
16644        &self.syntax
16645    }
16646}
16647impl AstNode for JoinFull {
16648    #[inline]
16649    fn can_cast(kind: SyntaxKind) -> bool {
16650        kind == SyntaxKind::JOIN_FULL
16651    }
16652    #[inline]
16653    fn cast(syntax: SyntaxNode) -> Option<Self> {
16654        if Self::can_cast(syntax.kind()) {
16655            Some(Self { syntax })
16656        } else {
16657            None
16658        }
16659    }
16660    #[inline]
16661    fn syntax(&self) -> &SyntaxNode {
16662        &self.syntax
16663    }
16664}
16665impl AstNode for JoinInner {
16666    #[inline]
16667    fn can_cast(kind: SyntaxKind) -> bool {
16668        kind == SyntaxKind::JOIN_INNER
16669    }
16670    #[inline]
16671    fn cast(syntax: SyntaxNode) -> Option<Self> {
16672        if Self::can_cast(syntax.kind()) {
16673            Some(Self { syntax })
16674        } else {
16675            None
16676        }
16677    }
16678    #[inline]
16679    fn syntax(&self) -> &SyntaxNode {
16680        &self.syntax
16681    }
16682}
16683impl AstNode for JoinLeft {
16684    #[inline]
16685    fn can_cast(kind: SyntaxKind) -> bool {
16686        kind == SyntaxKind::JOIN_LEFT
16687    }
16688    #[inline]
16689    fn cast(syntax: SyntaxNode) -> Option<Self> {
16690        if Self::can_cast(syntax.kind()) {
16691            Some(Self { syntax })
16692        } else {
16693            None
16694        }
16695    }
16696    #[inline]
16697    fn syntax(&self) -> &SyntaxNode {
16698        &self.syntax
16699    }
16700}
16701impl AstNode for JoinRight {
16702    #[inline]
16703    fn can_cast(kind: SyntaxKind) -> bool {
16704        kind == SyntaxKind::JOIN_RIGHT
16705    }
16706    #[inline]
16707    fn cast(syntax: SyntaxNode) -> Option<Self> {
16708        if Self::can_cast(syntax.kind()) {
16709            Some(Self { syntax })
16710        } else {
16711            None
16712        }
16713    }
16714    #[inline]
16715    fn syntax(&self) -> &SyntaxNode {
16716        &self.syntax
16717    }
16718}
16719impl AstNode for JoinUsingClause {
16720    #[inline]
16721    fn can_cast(kind: SyntaxKind) -> bool {
16722        kind == SyntaxKind::JOIN_USING_CLAUSE
16723    }
16724    #[inline]
16725    fn cast(syntax: SyntaxNode) -> Option<Self> {
16726        if Self::can_cast(syntax.kind()) {
16727            Some(Self { syntax })
16728        } else {
16729            None
16730        }
16731    }
16732    #[inline]
16733    fn syntax(&self) -> &SyntaxNode {
16734        &self.syntax
16735    }
16736}
16737impl AstNode for JsonBehaviorDefault {
16738    #[inline]
16739    fn can_cast(kind: SyntaxKind) -> bool {
16740        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
16741    }
16742    #[inline]
16743    fn cast(syntax: SyntaxNode) -> Option<Self> {
16744        if Self::can_cast(syntax.kind()) {
16745            Some(Self { syntax })
16746        } else {
16747            None
16748        }
16749    }
16750    #[inline]
16751    fn syntax(&self) -> &SyntaxNode {
16752        &self.syntax
16753    }
16754}
16755impl AstNode for JsonBehaviorEmptyArray {
16756    #[inline]
16757    fn can_cast(kind: SyntaxKind) -> bool {
16758        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
16759    }
16760    #[inline]
16761    fn cast(syntax: SyntaxNode) -> Option<Self> {
16762        if Self::can_cast(syntax.kind()) {
16763            Some(Self { syntax })
16764        } else {
16765            None
16766        }
16767    }
16768    #[inline]
16769    fn syntax(&self) -> &SyntaxNode {
16770        &self.syntax
16771    }
16772}
16773impl AstNode for JsonBehaviorEmptyObject {
16774    #[inline]
16775    fn can_cast(kind: SyntaxKind) -> bool {
16776        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
16777    }
16778    #[inline]
16779    fn cast(syntax: SyntaxNode) -> Option<Self> {
16780        if Self::can_cast(syntax.kind()) {
16781            Some(Self { syntax })
16782        } else {
16783            None
16784        }
16785    }
16786    #[inline]
16787    fn syntax(&self) -> &SyntaxNode {
16788        &self.syntax
16789    }
16790}
16791impl AstNode for JsonBehaviorError {
16792    #[inline]
16793    fn can_cast(kind: SyntaxKind) -> bool {
16794        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
16795    }
16796    #[inline]
16797    fn cast(syntax: SyntaxNode) -> Option<Self> {
16798        if Self::can_cast(syntax.kind()) {
16799            Some(Self { syntax })
16800        } else {
16801            None
16802        }
16803    }
16804    #[inline]
16805    fn syntax(&self) -> &SyntaxNode {
16806        &self.syntax
16807    }
16808}
16809impl AstNode for JsonBehaviorFalse {
16810    #[inline]
16811    fn can_cast(kind: SyntaxKind) -> bool {
16812        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
16813    }
16814    #[inline]
16815    fn cast(syntax: SyntaxNode) -> Option<Self> {
16816        if Self::can_cast(syntax.kind()) {
16817            Some(Self { syntax })
16818        } else {
16819            None
16820        }
16821    }
16822    #[inline]
16823    fn syntax(&self) -> &SyntaxNode {
16824        &self.syntax
16825    }
16826}
16827impl AstNode for JsonBehaviorNull {
16828    #[inline]
16829    fn can_cast(kind: SyntaxKind) -> bool {
16830        kind == SyntaxKind::JSON_BEHAVIOR_NULL
16831    }
16832    #[inline]
16833    fn cast(syntax: SyntaxNode) -> Option<Self> {
16834        if Self::can_cast(syntax.kind()) {
16835            Some(Self { syntax })
16836        } else {
16837            None
16838        }
16839    }
16840    #[inline]
16841    fn syntax(&self) -> &SyntaxNode {
16842        &self.syntax
16843    }
16844}
16845impl AstNode for JsonBehaviorTrue {
16846    #[inline]
16847    fn can_cast(kind: SyntaxKind) -> bool {
16848        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
16849    }
16850    #[inline]
16851    fn cast(syntax: SyntaxNode) -> Option<Self> {
16852        if Self::can_cast(syntax.kind()) {
16853            Some(Self { syntax })
16854        } else {
16855            None
16856        }
16857    }
16858    #[inline]
16859    fn syntax(&self) -> &SyntaxNode {
16860        &self.syntax
16861    }
16862}
16863impl AstNode for JsonBehaviorUnknown {
16864    #[inline]
16865    fn can_cast(kind: SyntaxKind) -> bool {
16866        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
16867    }
16868    #[inline]
16869    fn cast(syntax: SyntaxNode) -> Option<Self> {
16870        if Self::can_cast(syntax.kind()) {
16871            Some(Self { syntax })
16872        } else {
16873            None
16874        }
16875    }
16876    #[inline]
16877    fn syntax(&self) -> &SyntaxNode {
16878        &self.syntax
16879    }
16880}
16881impl AstNode for JsonFormatClause {
16882    #[inline]
16883    fn can_cast(kind: SyntaxKind) -> bool {
16884        kind == SyntaxKind::JSON_FORMAT_CLAUSE
16885    }
16886    #[inline]
16887    fn cast(syntax: SyntaxNode) -> Option<Self> {
16888        if Self::can_cast(syntax.kind()) {
16889            Some(Self { syntax })
16890        } else {
16891            None
16892        }
16893    }
16894    #[inline]
16895    fn syntax(&self) -> &SyntaxNode {
16896        &self.syntax
16897    }
16898}
16899impl AstNode for JsonKeyValue {
16900    #[inline]
16901    fn can_cast(kind: SyntaxKind) -> bool {
16902        kind == SyntaxKind::JSON_KEY_VALUE
16903    }
16904    #[inline]
16905    fn cast(syntax: SyntaxNode) -> Option<Self> {
16906        if Self::can_cast(syntax.kind()) {
16907            Some(Self { syntax })
16908        } else {
16909            None
16910        }
16911    }
16912    #[inline]
16913    fn syntax(&self) -> &SyntaxNode {
16914        &self.syntax
16915    }
16916}
16917impl AstNode for JsonKeysUniqueClause {
16918    #[inline]
16919    fn can_cast(kind: SyntaxKind) -> bool {
16920        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
16921    }
16922    #[inline]
16923    fn cast(syntax: SyntaxNode) -> Option<Self> {
16924        if Self::can_cast(syntax.kind()) {
16925            Some(Self { syntax })
16926        } else {
16927            None
16928        }
16929    }
16930    #[inline]
16931    fn syntax(&self) -> &SyntaxNode {
16932        &self.syntax
16933    }
16934}
16935impl AstNode for JsonNullClause {
16936    #[inline]
16937    fn can_cast(kind: SyntaxKind) -> bool {
16938        kind == SyntaxKind::JSON_NULL_CLAUSE
16939    }
16940    #[inline]
16941    fn cast(syntax: SyntaxNode) -> Option<Self> {
16942        if Self::can_cast(syntax.kind()) {
16943            Some(Self { syntax })
16944        } else {
16945            None
16946        }
16947    }
16948    #[inline]
16949    fn syntax(&self) -> &SyntaxNode {
16950        &self.syntax
16951    }
16952}
16953impl AstNode for JsonOnEmptyClause {
16954    #[inline]
16955    fn can_cast(kind: SyntaxKind) -> bool {
16956        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
16957    }
16958    #[inline]
16959    fn cast(syntax: SyntaxNode) -> Option<Self> {
16960        if Self::can_cast(syntax.kind()) {
16961            Some(Self { syntax })
16962        } else {
16963            None
16964        }
16965    }
16966    #[inline]
16967    fn syntax(&self) -> &SyntaxNode {
16968        &self.syntax
16969    }
16970}
16971impl AstNode for JsonOnErrorClause {
16972    #[inline]
16973    fn can_cast(kind: SyntaxKind) -> bool {
16974        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
16975    }
16976    #[inline]
16977    fn cast(syntax: SyntaxNode) -> Option<Self> {
16978        if Self::can_cast(syntax.kind()) {
16979            Some(Self { syntax })
16980        } else {
16981            None
16982        }
16983    }
16984    #[inline]
16985    fn syntax(&self) -> &SyntaxNode {
16986        &self.syntax
16987    }
16988}
16989impl AstNode for JsonPassingArg {
16990    #[inline]
16991    fn can_cast(kind: SyntaxKind) -> bool {
16992        kind == SyntaxKind::JSON_PASSING_ARG
16993    }
16994    #[inline]
16995    fn cast(syntax: SyntaxNode) -> Option<Self> {
16996        if Self::can_cast(syntax.kind()) {
16997            Some(Self { syntax })
16998        } else {
16999            None
17000        }
17001    }
17002    #[inline]
17003    fn syntax(&self) -> &SyntaxNode {
17004        &self.syntax
17005    }
17006}
17007impl AstNode for JsonPassingClause {
17008    #[inline]
17009    fn can_cast(kind: SyntaxKind) -> bool {
17010        kind == SyntaxKind::JSON_PASSING_CLAUSE
17011    }
17012    #[inline]
17013    fn cast(syntax: SyntaxNode) -> Option<Self> {
17014        if Self::can_cast(syntax.kind()) {
17015            Some(Self { syntax })
17016        } else {
17017            None
17018        }
17019    }
17020    #[inline]
17021    fn syntax(&self) -> &SyntaxNode {
17022        &self.syntax
17023    }
17024}
17025impl AstNode for JsonQuotesClause {
17026    #[inline]
17027    fn can_cast(kind: SyntaxKind) -> bool {
17028        kind == SyntaxKind::JSON_QUOTES_CLAUSE
17029    }
17030    #[inline]
17031    fn cast(syntax: SyntaxNode) -> Option<Self> {
17032        if Self::can_cast(syntax.kind()) {
17033            Some(Self { syntax })
17034        } else {
17035            None
17036        }
17037    }
17038    #[inline]
17039    fn syntax(&self) -> &SyntaxNode {
17040        &self.syntax
17041    }
17042}
17043impl AstNode for JsonReturningClause {
17044    #[inline]
17045    fn can_cast(kind: SyntaxKind) -> bool {
17046        kind == SyntaxKind::JSON_RETURNING_CLAUSE
17047    }
17048    #[inline]
17049    fn cast(syntax: SyntaxNode) -> Option<Self> {
17050        if Self::can_cast(syntax.kind()) {
17051            Some(Self { syntax })
17052        } else {
17053            None
17054        }
17055    }
17056    #[inline]
17057    fn syntax(&self) -> &SyntaxNode {
17058        &self.syntax
17059    }
17060}
17061impl AstNode for JsonTableColumn {
17062    #[inline]
17063    fn can_cast(kind: SyntaxKind) -> bool {
17064        kind == SyntaxKind::JSON_TABLE_COLUMN
17065    }
17066    #[inline]
17067    fn cast(syntax: SyntaxNode) -> Option<Self> {
17068        if Self::can_cast(syntax.kind()) {
17069            Some(Self { syntax })
17070        } else {
17071            None
17072        }
17073    }
17074    #[inline]
17075    fn syntax(&self) -> &SyntaxNode {
17076        &self.syntax
17077    }
17078}
17079impl AstNode for JsonTableColumnList {
17080    #[inline]
17081    fn can_cast(kind: SyntaxKind) -> bool {
17082        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
17083    }
17084    #[inline]
17085    fn cast(syntax: SyntaxNode) -> Option<Self> {
17086        if Self::can_cast(syntax.kind()) {
17087            Some(Self { syntax })
17088        } else {
17089            None
17090        }
17091    }
17092    #[inline]
17093    fn syntax(&self) -> &SyntaxNode {
17094        &self.syntax
17095    }
17096}
17097impl AstNode for JsonValueExpr {
17098    #[inline]
17099    fn can_cast(kind: SyntaxKind) -> bool {
17100        kind == SyntaxKind::JSON_VALUE_EXPR
17101    }
17102    #[inline]
17103    fn cast(syntax: SyntaxNode) -> Option<Self> {
17104        if Self::can_cast(syntax.kind()) {
17105            Some(Self { syntax })
17106        } else {
17107            None
17108        }
17109    }
17110    #[inline]
17111    fn syntax(&self) -> &SyntaxNode {
17112        &self.syntax
17113    }
17114}
17115impl AstNode for JsonWrapperBehaviorClause {
17116    #[inline]
17117    fn can_cast(kind: SyntaxKind) -> bool {
17118        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
17119    }
17120    #[inline]
17121    fn cast(syntax: SyntaxNode) -> Option<Self> {
17122        if Self::can_cast(syntax.kind()) {
17123            Some(Self { syntax })
17124        } else {
17125            None
17126        }
17127    }
17128    #[inline]
17129    fn syntax(&self) -> &SyntaxNode {
17130        &self.syntax
17131    }
17132}
17133impl AstNode for LanguageFuncOption {
17134    #[inline]
17135    fn can_cast(kind: SyntaxKind) -> bool {
17136        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
17137    }
17138    #[inline]
17139    fn cast(syntax: SyntaxNode) -> Option<Self> {
17140        if Self::can_cast(syntax.kind()) {
17141            Some(Self { syntax })
17142        } else {
17143            None
17144        }
17145    }
17146    #[inline]
17147    fn syntax(&self) -> &SyntaxNode {
17148        &self.syntax
17149    }
17150}
17151impl AstNode for LeakproofFuncOption {
17152    #[inline]
17153    fn can_cast(kind: SyntaxKind) -> bool {
17154        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
17155    }
17156    #[inline]
17157    fn cast(syntax: SyntaxNode) -> Option<Self> {
17158        if Self::can_cast(syntax.kind()) {
17159            Some(Self { syntax })
17160        } else {
17161            None
17162        }
17163    }
17164    #[inline]
17165    fn syntax(&self) -> &SyntaxNode {
17166        &self.syntax
17167    }
17168}
17169impl AstNode for LikeClause {
17170    #[inline]
17171    fn can_cast(kind: SyntaxKind) -> bool {
17172        kind == SyntaxKind::LIKE_CLAUSE
17173    }
17174    #[inline]
17175    fn cast(syntax: SyntaxNode) -> Option<Self> {
17176        if Self::can_cast(syntax.kind()) {
17177            Some(Self { syntax })
17178        } else {
17179            None
17180        }
17181    }
17182    #[inline]
17183    fn syntax(&self) -> &SyntaxNode {
17184        &self.syntax
17185    }
17186}
17187impl AstNode for LikeOption {
17188    #[inline]
17189    fn can_cast(kind: SyntaxKind) -> bool {
17190        kind == SyntaxKind::LIKE_OPTION
17191    }
17192    #[inline]
17193    fn cast(syntax: SyntaxNode) -> Option<Self> {
17194        if Self::can_cast(syntax.kind()) {
17195            Some(Self { syntax })
17196        } else {
17197            None
17198        }
17199    }
17200    #[inline]
17201    fn syntax(&self) -> &SyntaxNode {
17202        &self.syntax
17203    }
17204}
17205impl AstNode for LimitClause {
17206    #[inline]
17207    fn can_cast(kind: SyntaxKind) -> bool {
17208        kind == SyntaxKind::LIMIT_CLAUSE
17209    }
17210    #[inline]
17211    fn cast(syntax: SyntaxNode) -> Option<Self> {
17212        if Self::can_cast(syntax.kind()) {
17213            Some(Self { syntax })
17214        } else {
17215            None
17216        }
17217    }
17218    #[inline]
17219    fn syntax(&self) -> &SyntaxNode {
17220        &self.syntax
17221    }
17222}
17223impl AstNode for Listen {
17224    #[inline]
17225    fn can_cast(kind: SyntaxKind) -> bool {
17226        kind == SyntaxKind::LISTEN
17227    }
17228    #[inline]
17229    fn cast(syntax: SyntaxNode) -> Option<Self> {
17230        if Self::can_cast(syntax.kind()) {
17231            Some(Self { syntax })
17232        } else {
17233            None
17234        }
17235    }
17236    #[inline]
17237    fn syntax(&self) -> &SyntaxNode {
17238        &self.syntax
17239    }
17240}
17241impl AstNode for Literal {
17242    #[inline]
17243    fn can_cast(kind: SyntaxKind) -> bool {
17244        kind == SyntaxKind::LITERAL
17245    }
17246    #[inline]
17247    fn cast(syntax: SyntaxNode) -> Option<Self> {
17248        if Self::can_cast(syntax.kind()) {
17249            Some(Self { syntax })
17250        } else {
17251            None
17252        }
17253    }
17254    #[inline]
17255    fn syntax(&self) -> &SyntaxNode {
17256        &self.syntax
17257    }
17258}
17259impl AstNode for Load {
17260    #[inline]
17261    fn can_cast(kind: SyntaxKind) -> bool {
17262        kind == SyntaxKind::LOAD
17263    }
17264    #[inline]
17265    fn cast(syntax: SyntaxNode) -> Option<Self> {
17266        if Self::can_cast(syntax.kind()) {
17267            Some(Self { syntax })
17268        } else {
17269            None
17270        }
17271    }
17272    #[inline]
17273    fn syntax(&self) -> &SyntaxNode {
17274        &self.syntax
17275    }
17276}
17277impl AstNode for Lock {
17278    #[inline]
17279    fn can_cast(kind: SyntaxKind) -> bool {
17280        kind == SyntaxKind::LOCK
17281    }
17282    #[inline]
17283    fn cast(syntax: SyntaxNode) -> Option<Self> {
17284        if Self::can_cast(syntax.kind()) {
17285            Some(Self { syntax })
17286        } else {
17287            None
17288        }
17289    }
17290    #[inline]
17291    fn syntax(&self) -> &SyntaxNode {
17292        &self.syntax
17293    }
17294}
17295impl AstNode for LockingClause {
17296    #[inline]
17297    fn can_cast(kind: SyntaxKind) -> bool {
17298        kind == SyntaxKind::LOCKING_CLAUSE
17299    }
17300    #[inline]
17301    fn cast(syntax: SyntaxNode) -> Option<Self> {
17302        if Self::can_cast(syntax.kind()) {
17303            Some(Self { syntax })
17304        } else {
17305            None
17306        }
17307    }
17308    #[inline]
17309    fn syntax(&self) -> &SyntaxNode {
17310        &self.syntax
17311    }
17312}
17313impl AstNode for Lteq {
17314    #[inline]
17315    fn can_cast(kind: SyntaxKind) -> bool {
17316        kind == SyntaxKind::LTEQ
17317    }
17318    #[inline]
17319    fn cast(syntax: SyntaxNode) -> Option<Self> {
17320        if Self::can_cast(syntax.kind()) {
17321            Some(Self { syntax })
17322        } else {
17323            None
17324        }
17325    }
17326    #[inline]
17327    fn syntax(&self) -> &SyntaxNode {
17328        &self.syntax
17329    }
17330}
17331impl AstNode for MatchFull {
17332    #[inline]
17333    fn can_cast(kind: SyntaxKind) -> bool {
17334        kind == SyntaxKind::MATCH_FULL
17335    }
17336    #[inline]
17337    fn cast(syntax: SyntaxNode) -> Option<Self> {
17338        if Self::can_cast(syntax.kind()) {
17339            Some(Self { syntax })
17340        } else {
17341            None
17342        }
17343    }
17344    #[inline]
17345    fn syntax(&self) -> &SyntaxNode {
17346        &self.syntax
17347    }
17348}
17349impl AstNode for MatchPartial {
17350    #[inline]
17351    fn can_cast(kind: SyntaxKind) -> bool {
17352        kind == SyntaxKind::MATCH_PARTIAL
17353    }
17354    #[inline]
17355    fn cast(syntax: SyntaxNode) -> Option<Self> {
17356        if Self::can_cast(syntax.kind()) {
17357            Some(Self { syntax })
17358        } else {
17359            None
17360        }
17361    }
17362    #[inline]
17363    fn syntax(&self) -> &SyntaxNode {
17364        &self.syntax
17365    }
17366}
17367impl AstNode for MatchSimple {
17368    #[inline]
17369    fn can_cast(kind: SyntaxKind) -> bool {
17370        kind == SyntaxKind::MATCH_SIMPLE
17371    }
17372    #[inline]
17373    fn cast(syntax: SyntaxNode) -> Option<Self> {
17374        if Self::can_cast(syntax.kind()) {
17375            Some(Self { syntax })
17376        } else {
17377            None
17378        }
17379    }
17380    #[inline]
17381    fn syntax(&self) -> &SyntaxNode {
17382        &self.syntax
17383    }
17384}
17385impl AstNode for Materialized {
17386    #[inline]
17387    fn can_cast(kind: SyntaxKind) -> bool {
17388        kind == SyntaxKind::MATERIALIZED
17389    }
17390    #[inline]
17391    fn cast(syntax: SyntaxNode) -> Option<Self> {
17392        if Self::can_cast(syntax.kind()) {
17393            Some(Self { syntax })
17394        } else {
17395            None
17396        }
17397    }
17398    #[inline]
17399    fn syntax(&self) -> &SyntaxNode {
17400        &self.syntax
17401    }
17402}
17403impl AstNode for Merge {
17404    #[inline]
17405    fn can_cast(kind: SyntaxKind) -> bool {
17406        kind == SyntaxKind::MERGE
17407    }
17408    #[inline]
17409    fn cast(syntax: SyntaxNode) -> Option<Self> {
17410        if Self::can_cast(syntax.kind()) {
17411            Some(Self { syntax })
17412        } else {
17413            None
17414        }
17415    }
17416    #[inline]
17417    fn syntax(&self) -> &SyntaxNode {
17418        &self.syntax
17419    }
17420}
17421impl AstNode for MergeDelete {
17422    #[inline]
17423    fn can_cast(kind: SyntaxKind) -> bool {
17424        kind == SyntaxKind::MERGE_DELETE
17425    }
17426    #[inline]
17427    fn cast(syntax: SyntaxNode) -> Option<Self> {
17428        if Self::can_cast(syntax.kind()) {
17429            Some(Self { syntax })
17430        } else {
17431            None
17432        }
17433    }
17434    #[inline]
17435    fn syntax(&self) -> &SyntaxNode {
17436        &self.syntax
17437    }
17438}
17439impl AstNode for MergeDoNothing {
17440    #[inline]
17441    fn can_cast(kind: SyntaxKind) -> bool {
17442        kind == SyntaxKind::MERGE_DO_NOTHING
17443    }
17444    #[inline]
17445    fn cast(syntax: SyntaxNode) -> Option<Self> {
17446        if Self::can_cast(syntax.kind()) {
17447            Some(Self { syntax })
17448        } else {
17449            None
17450        }
17451    }
17452    #[inline]
17453    fn syntax(&self) -> &SyntaxNode {
17454        &self.syntax
17455    }
17456}
17457impl AstNode for MergeInsert {
17458    #[inline]
17459    fn can_cast(kind: SyntaxKind) -> bool {
17460        kind == SyntaxKind::MERGE_INSERT
17461    }
17462    #[inline]
17463    fn cast(syntax: SyntaxNode) -> Option<Self> {
17464        if Self::can_cast(syntax.kind()) {
17465            Some(Self { syntax })
17466        } else {
17467            None
17468        }
17469    }
17470    #[inline]
17471    fn syntax(&self) -> &SyntaxNode {
17472        &self.syntax
17473    }
17474}
17475impl AstNode for MergeUpdate {
17476    #[inline]
17477    fn can_cast(kind: SyntaxKind) -> bool {
17478        kind == SyntaxKind::MERGE_UPDATE
17479    }
17480    #[inline]
17481    fn cast(syntax: SyntaxNode) -> Option<Self> {
17482        if Self::can_cast(syntax.kind()) {
17483            Some(Self { syntax })
17484        } else {
17485            None
17486        }
17487    }
17488    #[inline]
17489    fn syntax(&self) -> &SyntaxNode {
17490        &self.syntax
17491    }
17492}
17493impl AstNode for MergeWhenMatched {
17494    #[inline]
17495    fn can_cast(kind: SyntaxKind) -> bool {
17496        kind == SyntaxKind::MERGE_WHEN_MATCHED
17497    }
17498    #[inline]
17499    fn cast(syntax: SyntaxNode) -> Option<Self> {
17500        if Self::can_cast(syntax.kind()) {
17501            Some(Self { syntax })
17502        } else {
17503            None
17504        }
17505    }
17506    #[inline]
17507    fn syntax(&self) -> &SyntaxNode {
17508        &self.syntax
17509    }
17510}
17511impl AstNode for MergeWhenNotMatchedSource {
17512    #[inline]
17513    fn can_cast(kind: SyntaxKind) -> bool {
17514        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
17515    }
17516    #[inline]
17517    fn cast(syntax: SyntaxNode) -> Option<Self> {
17518        if Self::can_cast(syntax.kind()) {
17519            Some(Self { syntax })
17520        } else {
17521            None
17522        }
17523    }
17524    #[inline]
17525    fn syntax(&self) -> &SyntaxNode {
17526        &self.syntax
17527    }
17528}
17529impl AstNode for MergeWhenNotMatchedTarget {
17530    #[inline]
17531    fn can_cast(kind: SyntaxKind) -> bool {
17532        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
17533    }
17534    #[inline]
17535    fn cast(syntax: SyntaxNode) -> Option<Self> {
17536        if Self::can_cast(syntax.kind()) {
17537            Some(Self { syntax })
17538        } else {
17539            None
17540        }
17541    }
17542    #[inline]
17543    fn syntax(&self) -> &SyntaxNode {
17544        &self.syntax
17545    }
17546}
17547impl AstNode for Move {
17548    #[inline]
17549    fn can_cast(kind: SyntaxKind) -> bool {
17550        kind == SyntaxKind::MOVE
17551    }
17552    #[inline]
17553    fn cast(syntax: SyntaxNode) -> Option<Self> {
17554        if Self::can_cast(syntax.kind()) {
17555            Some(Self { syntax })
17556        } else {
17557            None
17558        }
17559    }
17560    #[inline]
17561    fn syntax(&self) -> &SyntaxNode {
17562        &self.syntax
17563    }
17564}
17565impl AstNode for Name {
17566    #[inline]
17567    fn can_cast(kind: SyntaxKind) -> bool {
17568        kind == SyntaxKind::NAME
17569    }
17570    #[inline]
17571    fn cast(syntax: SyntaxNode) -> Option<Self> {
17572        if Self::can_cast(syntax.kind()) {
17573            Some(Self { syntax })
17574        } else {
17575            None
17576        }
17577    }
17578    #[inline]
17579    fn syntax(&self) -> &SyntaxNode {
17580        &self.syntax
17581    }
17582}
17583impl AstNode for NameRef {
17584    #[inline]
17585    fn can_cast(kind: SyntaxKind) -> bool {
17586        kind == SyntaxKind::NAME_REF
17587    }
17588    #[inline]
17589    fn cast(syntax: SyntaxNode) -> Option<Self> {
17590        if Self::can_cast(syntax.kind()) {
17591            Some(Self { syntax })
17592        } else {
17593            None
17594        }
17595    }
17596    #[inline]
17597    fn syntax(&self) -> &SyntaxNode {
17598        &self.syntax
17599    }
17600}
17601impl AstNode for NamedArg {
17602    #[inline]
17603    fn can_cast(kind: SyntaxKind) -> bool {
17604        kind == SyntaxKind::NAMED_ARG
17605    }
17606    #[inline]
17607    fn cast(syntax: SyntaxNode) -> Option<Self> {
17608        if Self::can_cast(syntax.kind()) {
17609            Some(Self { syntax })
17610        } else {
17611            None
17612        }
17613    }
17614    #[inline]
17615    fn syntax(&self) -> &SyntaxNode {
17616        &self.syntax
17617    }
17618}
17619impl AstNode for Neq {
17620    #[inline]
17621    fn can_cast(kind: SyntaxKind) -> bool {
17622        kind == SyntaxKind::NEQ
17623    }
17624    #[inline]
17625    fn cast(syntax: SyntaxNode) -> Option<Self> {
17626        if Self::can_cast(syntax.kind()) {
17627            Some(Self { syntax })
17628        } else {
17629            None
17630        }
17631    }
17632    #[inline]
17633    fn syntax(&self) -> &SyntaxNode {
17634        &self.syntax
17635    }
17636}
17637impl AstNode for Neqb {
17638    #[inline]
17639    fn can_cast(kind: SyntaxKind) -> bool {
17640        kind == SyntaxKind::NEQB
17641    }
17642    #[inline]
17643    fn cast(syntax: SyntaxNode) -> Option<Self> {
17644        if Self::can_cast(syntax.kind()) {
17645            Some(Self { syntax })
17646        } else {
17647            None
17648        }
17649    }
17650    #[inline]
17651    fn syntax(&self) -> &SyntaxNode {
17652        &self.syntax
17653    }
17654}
17655impl AstNode for NoAction {
17656    #[inline]
17657    fn can_cast(kind: SyntaxKind) -> bool {
17658        kind == SyntaxKind::NO_ACTION
17659    }
17660    #[inline]
17661    fn cast(syntax: SyntaxNode) -> Option<Self> {
17662        if Self::can_cast(syntax.kind()) {
17663            Some(Self { syntax })
17664        } else {
17665            None
17666        }
17667    }
17668    #[inline]
17669    fn syntax(&self) -> &SyntaxNode {
17670        &self.syntax
17671    }
17672}
17673impl AstNode for NoForceRls {
17674    #[inline]
17675    fn can_cast(kind: SyntaxKind) -> bool {
17676        kind == SyntaxKind::NO_FORCE_RLS
17677    }
17678    #[inline]
17679    fn cast(syntax: SyntaxNode) -> Option<Self> {
17680        if Self::can_cast(syntax.kind()) {
17681            Some(Self { syntax })
17682        } else {
17683            None
17684        }
17685    }
17686    #[inline]
17687    fn syntax(&self) -> &SyntaxNode {
17688        &self.syntax
17689    }
17690}
17691impl AstNode for NoInherit {
17692    #[inline]
17693    fn can_cast(kind: SyntaxKind) -> bool {
17694        kind == SyntaxKind::NO_INHERIT
17695    }
17696    #[inline]
17697    fn cast(syntax: SyntaxNode) -> Option<Self> {
17698        if Self::can_cast(syntax.kind()) {
17699            Some(Self { syntax })
17700        } else {
17701            None
17702        }
17703    }
17704    #[inline]
17705    fn syntax(&self) -> &SyntaxNode {
17706        &self.syntax
17707    }
17708}
17709impl AstNode for NoInheritTable {
17710    #[inline]
17711    fn can_cast(kind: SyntaxKind) -> bool {
17712        kind == SyntaxKind::NO_INHERIT_TABLE
17713    }
17714    #[inline]
17715    fn cast(syntax: SyntaxNode) -> Option<Self> {
17716        if Self::can_cast(syntax.kind()) {
17717            Some(Self { syntax })
17718        } else {
17719            None
17720        }
17721    }
17722    #[inline]
17723    fn syntax(&self) -> &SyntaxNode {
17724        &self.syntax
17725    }
17726}
17727impl AstNode for NonStandardParam {
17728    #[inline]
17729    fn can_cast(kind: SyntaxKind) -> bool {
17730        kind == SyntaxKind::NON_STANDARD_PARAM
17731    }
17732    #[inline]
17733    fn cast(syntax: SyntaxNode) -> Option<Self> {
17734        if Self::can_cast(syntax.kind()) {
17735            Some(Self { syntax })
17736        } else {
17737            None
17738        }
17739    }
17740    #[inline]
17741    fn syntax(&self) -> &SyntaxNode {
17742        &self.syntax
17743    }
17744}
17745impl AstNode for NotDeferrable {
17746    #[inline]
17747    fn can_cast(kind: SyntaxKind) -> bool {
17748        kind == SyntaxKind::NOT_DEFERRABLE
17749    }
17750    #[inline]
17751    fn cast(syntax: SyntaxNode) -> Option<Self> {
17752        if Self::can_cast(syntax.kind()) {
17753            Some(Self { syntax })
17754        } else {
17755            None
17756        }
17757    }
17758    #[inline]
17759    fn syntax(&self) -> &SyntaxNode {
17760        &self.syntax
17761    }
17762}
17763impl AstNode for NotDeferrableConstraintOption {
17764    #[inline]
17765    fn can_cast(kind: SyntaxKind) -> bool {
17766        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
17767    }
17768    #[inline]
17769    fn cast(syntax: SyntaxNode) -> Option<Self> {
17770        if Self::can_cast(syntax.kind()) {
17771            Some(Self { syntax })
17772        } else {
17773            None
17774        }
17775    }
17776    #[inline]
17777    fn syntax(&self) -> &SyntaxNode {
17778        &self.syntax
17779    }
17780}
17781impl AstNode for NotEnforced {
17782    #[inline]
17783    fn can_cast(kind: SyntaxKind) -> bool {
17784        kind == SyntaxKind::NOT_ENFORCED
17785    }
17786    #[inline]
17787    fn cast(syntax: SyntaxNode) -> Option<Self> {
17788        if Self::can_cast(syntax.kind()) {
17789            Some(Self { syntax })
17790        } else {
17791            None
17792        }
17793    }
17794    #[inline]
17795    fn syntax(&self) -> &SyntaxNode {
17796        &self.syntax
17797    }
17798}
17799impl AstNode for NotIlike {
17800    #[inline]
17801    fn can_cast(kind: SyntaxKind) -> bool {
17802        kind == SyntaxKind::NOT_ILIKE
17803    }
17804    #[inline]
17805    fn cast(syntax: SyntaxNode) -> Option<Self> {
17806        if Self::can_cast(syntax.kind()) {
17807            Some(Self { syntax })
17808        } else {
17809            None
17810        }
17811    }
17812    #[inline]
17813    fn syntax(&self) -> &SyntaxNode {
17814        &self.syntax
17815    }
17816}
17817impl AstNode for NotIn {
17818    #[inline]
17819    fn can_cast(kind: SyntaxKind) -> bool {
17820        kind == SyntaxKind::NOT_IN
17821    }
17822    #[inline]
17823    fn cast(syntax: SyntaxNode) -> Option<Self> {
17824        if Self::can_cast(syntax.kind()) {
17825            Some(Self { syntax })
17826        } else {
17827            None
17828        }
17829    }
17830    #[inline]
17831    fn syntax(&self) -> &SyntaxNode {
17832        &self.syntax
17833    }
17834}
17835impl AstNode for NotLike {
17836    #[inline]
17837    fn can_cast(kind: SyntaxKind) -> bool {
17838        kind == SyntaxKind::NOT_LIKE
17839    }
17840    #[inline]
17841    fn cast(syntax: SyntaxNode) -> Option<Self> {
17842        if Self::can_cast(syntax.kind()) {
17843            Some(Self { syntax })
17844        } else {
17845            None
17846        }
17847    }
17848    #[inline]
17849    fn syntax(&self) -> &SyntaxNode {
17850        &self.syntax
17851    }
17852}
17853impl AstNode for NotMaterialized {
17854    #[inline]
17855    fn can_cast(kind: SyntaxKind) -> bool {
17856        kind == SyntaxKind::NOT_MATERIALIZED
17857    }
17858    #[inline]
17859    fn cast(syntax: SyntaxNode) -> Option<Self> {
17860        if Self::can_cast(syntax.kind()) {
17861            Some(Self { syntax })
17862        } else {
17863            None
17864        }
17865    }
17866    #[inline]
17867    fn syntax(&self) -> &SyntaxNode {
17868        &self.syntax
17869    }
17870}
17871impl AstNode for NotNullConstraint {
17872    #[inline]
17873    fn can_cast(kind: SyntaxKind) -> bool {
17874        kind == SyntaxKind::NOT_NULL_CONSTRAINT
17875    }
17876    #[inline]
17877    fn cast(syntax: SyntaxNode) -> Option<Self> {
17878        if Self::can_cast(syntax.kind()) {
17879            Some(Self { syntax })
17880        } else {
17881            None
17882        }
17883    }
17884    #[inline]
17885    fn syntax(&self) -> &SyntaxNode {
17886        &self.syntax
17887    }
17888}
17889impl AstNode for NotOf {
17890    #[inline]
17891    fn can_cast(kind: SyntaxKind) -> bool {
17892        kind == SyntaxKind::NOT_OF
17893    }
17894    #[inline]
17895    fn cast(syntax: SyntaxNode) -> Option<Self> {
17896        if Self::can_cast(syntax.kind()) {
17897            Some(Self { syntax })
17898        } else {
17899            None
17900        }
17901    }
17902    #[inline]
17903    fn syntax(&self) -> &SyntaxNode {
17904        &self.syntax
17905    }
17906}
17907impl AstNode for NotSimilarTo {
17908    #[inline]
17909    fn can_cast(kind: SyntaxKind) -> bool {
17910        kind == SyntaxKind::NOT_SIMILAR_TO
17911    }
17912    #[inline]
17913    fn cast(syntax: SyntaxNode) -> Option<Self> {
17914        if Self::can_cast(syntax.kind()) {
17915            Some(Self { syntax })
17916        } else {
17917            None
17918        }
17919    }
17920    #[inline]
17921    fn syntax(&self) -> &SyntaxNode {
17922        &self.syntax
17923    }
17924}
17925impl AstNode for NotValid {
17926    #[inline]
17927    fn can_cast(kind: SyntaxKind) -> bool {
17928        kind == SyntaxKind::NOT_VALID
17929    }
17930    #[inline]
17931    fn cast(syntax: SyntaxNode) -> Option<Self> {
17932        if Self::can_cast(syntax.kind()) {
17933            Some(Self { syntax })
17934        } else {
17935            None
17936        }
17937    }
17938    #[inline]
17939    fn syntax(&self) -> &SyntaxNode {
17940        &self.syntax
17941    }
17942}
17943impl AstNode for Notify {
17944    #[inline]
17945    fn can_cast(kind: SyntaxKind) -> bool {
17946        kind == SyntaxKind::NOTIFY
17947    }
17948    #[inline]
17949    fn cast(syntax: SyntaxNode) -> Option<Self> {
17950        if Self::can_cast(syntax.kind()) {
17951            Some(Self { syntax })
17952        } else {
17953            None
17954        }
17955    }
17956    #[inline]
17957    fn syntax(&self) -> &SyntaxNode {
17958        &self.syntax
17959    }
17960}
17961impl AstNode for NullConstraint {
17962    #[inline]
17963    fn can_cast(kind: SyntaxKind) -> bool {
17964        kind == SyntaxKind::NULL_CONSTRAINT
17965    }
17966    #[inline]
17967    fn cast(syntax: SyntaxNode) -> Option<Self> {
17968        if Self::can_cast(syntax.kind()) {
17969            Some(Self { syntax })
17970        } else {
17971            None
17972        }
17973    }
17974    #[inline]
17975    fn syntax(&self) -> &SyntaxNode {
17976        &self.syntax
17977    }
17978}
17979impl AstNode for NullsDistinct {
17980    #[inline]
17981    fn can_cast(kind: SyntaxKind) -> bool {
17982        kind == SyntaxKind::NULLS_DISTINCT
17983    }
17984    #[inline]
17985    fn cast(syntax: SyntaxNode) -> Option<Self> {
17986        if Self::can_cast(syntax.kind()) {
17987            Some(Self { syntax })
17988        } else {
17989            None
17990        }
17991    }
17992    #[inline]
17993    fn syntax(&self) -> &SyntaxNode {
17994        &self.syntax
17995    }
17996}
17997impl AstNode for NullsFirst {
17998    #[inline]
17999    fn can_cast(kind: SyntaxKind) -> bool {
18000        kind == SyntaxKind::NULLS_FIRST
18001    }
18002    #[inline]
18003    fn cast(syntax: SyntaxNode) -> Option<Self> {
18004        if Self::can_cast(syntax.kind()) {
18005            Some(Self { syntax })
18006        } else {
18007            None
18008        }
18009    }
18010    #[inline]
18011    fn syntax(&self) -> &SyntaxNode {
18012        &self.syntax
18013    }
18014}
18015impl AstNode for NullsLast {
18016    #[inline]
18017    fn can_cast(kind: SyntaxKind) -> bool {
18018        kind == SyntaxKind::NULLS_LAST
18019    }
18020    #[inline]
18021    fn cast(syntax: SyntaxNode) -> Option<Self> {
18022        if Self::can_cast(syntax.kind()) {
18023            Some(Self { syntax })
18024        } else {
18025            None
18026        }
18027    }
18028    #[inline]
18029    fn syntax(&self) -> &SyntaxNode {
18030        &self.syntax
18031    }
18032}
18033impl AstNode for NullsNotDistinct {
18034    #[inline]
18035    fn can_cast(kind: SyntaxKind) -> bool {
18036        kind == SyntaxKind::NULLS_NOT_DISTINCT
18037    }
18038    #[inline]
18039    fn cast(syntax: SyntaxNode) -> Option<Self> {
18040        if Self::can_cast(syntax.kind()) {
18041            Some(Self { syntax })
18042        } else {
18043            None
18044        }
18045    }
18046    #[inline]
18047    fn syntax(&self) -> &SyntaxNode {
18048        &self.syntax
18049    }
18050}
18051impl AstNode for OfType {
18052    #[inline]
18053    fn can_cast(kind: SyntaxKind) -> bool {
18054        kind == SyntaxKind::OF_TYPE
18055    }
18056    #[inline]
18057    fn cast(syntax: SyntaxNode) -> Option<Self> {
18058        if Self::can_cast(syntax.kind()) {
18059            Some(Self { syntax })
18060        } else {
18061            None
18062        }
18063    }
18064    #[inline]
18065    fn syntax(&self) -> &SyntaxNode {
18066        &self.syntax
18067    }
18068}
18069impl AstNode for OffsetClause {
18070    #[inline]
18071    fn can_cast(kind: SyntaxKind) -> bool {
18072        kind == SyntaxKind::OFFSET_CLAUSE
18073    }
18074    #[inline]
18075    fn cast(syntax: SyntaxNode) -> Option<Self> {
18076        if Self::can_cast(syntax.kind()) {
18077            Some(Self { syntax })
18078        } else {
18079            None
18080        }
18081    }
18082    #[inline]
18083    fn syntax(&self) -> &SyntaxNode {
18084        &self.syntax
18085    }
18086}
18087impl AstNode for OnClause {
18088    #[inline]
18089    fn can_cast(kind: SyntaxKind) -> bool {
18090        kind == SyntaxKind::ON_CLAUSE
18091    }
18092    #[inline]
18093    fn cast(syntax: SyntaxNode) -> Option<Self> {
18094        if Self::can_cast(syntax.kind()) {
18095            Some(Self { syntax })
18096        } else {
18097            None
18098        }
18099    }
18100    #[inline]
18101    fn syntax(&self) -> &SyntaxNode {
18102        &self.syntax
18103    }
18104}
18105impl AstNode for OnCommit {
18106    #[inline]
18107    fn can_cast(kind: SyntaxKind) -> bool {
18108        kind == SyntaxKind::ON_COMMIT
18109    }
18110    #[inline]
18111    fn cast(syntax: SyntaxNode) -> Option<Self> {
18112        if Self::can_cast(syntax.kind()) {
18113            Some(Self { syntax })
18114        } else {
18115            None
18116        }
18117    }
18118    #[inline]
18119    fn syntax(&self) -> &SyntaxNode {
18120        &self.syntax
18121    }
18122}
18123impl AstNode for OnConflictClause {
18124    #[inline]
18125    fn can_cast(kind: SyntaxKind) -> bool {
18126        kind == SyntaxKind::ON_CONFLICT_CLAUSE
18127    }
18128    #[inline]
18129    fn cast(syntax: SyntaxNode) -> Option<Self> {
18130        if Self::can_cast(syntax.kind()) {
18131            Some(Self { syntax })
18132        } else {
18133            None
18134        }
18135    }
18136    #[inline]
18137    fn syntax(&self) -> &SyntaxNode {
18138        &self.syntax
18139    }
18140}
18141impl AstNode for OnDeleteAction {
18142    #[inline]
18143    fn can_cast(kind: SyntaxKind) -> bool {
18144        kind == SyntaxKind::ON_DELETE_ACTION
18145    }
18146    #[inline]
18147    fn cast(syntax: SyntaxNode) -> Option<Self> {
18148        if Self::can_cast(syntax.kind()) {
18149            Some(Self { syntax })
18150        } else {
18151            None
18152        }
18153    }
18154    #[inline]
18155    fn syntax(&self) -> &SyntaxNode {
18156        &self.syntax
18157    }
18158}
18159impl AstNode for OnUpdateAction {
18160    #[inline]
18161    fn can_cast(kind: SyntaxKind) -> bool {
18162        kind == SyntaxKind::ON_UPDATE_ACTION
18163    }
18164    #[inline]
18165    fn cast(syntax: SyntaxNode) -> Option<Self> {
18166        if Self::can_cast(syntax.kind()) {
18167            Some(Self { syntax })
18168        } else {
18169            None
18170        }
18171    }
18172    #[inline]
18173    fn syntax(&self) -> &SyntaxNode {
18174        &self.syntax
18175    }
18176}
18177impl AstNode for Op {
18178    #[inline]
18179    fn can_cast(kind: SyntaxKind) -> bool {
18180        kind == SyntaxKind::OP
18181    }
18182    #[inline]
18183    fn cast(syntax: SyntaxNode) -> Option<Self> {
18184        if Self::can_cast(syntax.kind()) {
18185            Some(Self { syntax })
18186        } else {
18187            None
18188        }
18189    }
18190    #[inline]
18191    fn syntax(&self) -> &SyntaxNode {
18192        &self.syntax
18193    }
18194}
18195impl AstNode for OperatorCall {
18196    #[inline]
18197    fn can_cast(kind: SyntaxKind) -> bool {
18198        kind == SyntaxKind::OPERATOR_CALL
18199    }
18200    #[inline]
18201    fn cast(syntax: SyntaxNode) -> Option<Self> {
18202        if Self::can_cast(syntax.kind()) {
18203            Some(Self { syntax })
18204        } else {
18205            None
18206        }
18207    }
18208    #[inline]
18209    fn syntax(&self) -> &SyntaxNode {
18210        &self.syntax
18211    }
18212}
18213impl AstNode for OptionItem {
18214    #[inline]
18215    fn can_cast(kind: SyntaxKind) -> bool {
18216        kind == SyntaxKind::OPTION_ITEM
18217    }
18218    #[inline]
18219    fn cast(syntax: SyntaxNode) -> Option<Self> {
18220        if Self::can_cast(syntax.kind()) {
18221            Some(Self { syntax })
18222        } else {
18223            None
18224        }
18225    }
18226    #[inline]
18227    fn syntax(&self) -> &SyntaxNode {
18228        &self.syntax
18229    }
18230}
18231impl AstNode for OptionItemList {
18232    #[inline]
18233    fn can_cast(kind: SyntaxKind) -> bool {
18234        kind == SyntaxKind::OPTION_ITEM_LIST
18235    }
18236    #[inline]
18237    fn cast(syntax: SyntaxNode) -> Option<Self> {
18238        if Self::can_cast(syntax.kind()) {
18239            Some(Self { syntax })
18240        } else {
18241            None
18242        }
18243    }
18244    #[inline]
18245    fn syntax(&self) -> &SyntaxNode {
18246        &self.syntax
18247    }
18248}
18249impl AstNode for OrReplace {
18250    #[inline]
18251    fn can_cast(kind: SyntaxKind) -> bool {
18252        kind == SyntaxKind::OR_REPLACE
18253    }
18254    #[inline]
18255    fn cast(syntax: SyntaxNode) -> Option<Self> {
18256        if Self::can_cast(syntax.kind()) {
18257            Some(Self { syntax })
18258        } else {
18259            None
18260        }
18261    }
18262    #[inline]
18263    fn syntax(&self) -> &SyntaxNode {
18264        &self.syntax
18265    }
18266}
18267impl AstNode for OrderByClause {
18268    #[inline]
18269    fn can_cast(kind: SyntaxKind) -> bool {
18270        kind == SyntaxKind::ORDER_BY_CLAUSE
18271    }
18272    #[inline]
18273    fn cast(syntax: SyntaxNode) -> Option<Self> {
18274        if Self::can_cast(syntax.kind()) {
18275            Some(Self { syntax })
18276        } else {
18277            None
18278        }
18279    }
18280    #[inline]
18281    fn syntax(&self) -> &SyntaxNode {
18282        &self.syntax
18283    }
18284}
18285impl AstNode for OverClause {
18286    #[inline]
18287    fn can_cast(kind: SyntaxKind) -> bool {
18288        kind == SyntaxKind::OVER_CLAUSE
18289    }
18290    #[inline]
18291    fn cast(syntax: SyntaxNode) -> Option<Self> {
18292        if Self::can_cast(syntax.kind()) {
18293            Some(Self { syntax })
18294        } else {
18295            None
18296        }
18297    }
18298    #[inline]
18299    fn syntax(&self) -> &SyntaxNode {
18300        &self.syntax
18301    }
18302}
18303impl AstNode for OwnerTo {
18304    #[inline]
18305    fn can_cast(kind: SyntaxKind) -> bool {
18306        kind == SyntaxKind::OWNER_TO
18307    }
18308    #[inline]
18309    fn cast(syntax: SyntaxNode) -> Option<Self> {
18310        if Self::can_cast(syntax.kind()) {
18311            Some(Self { syntax })
18312        } else {
18313            None
18314        }
18315    }
18316    #[inline]
18317    fn syntax(&self) -> &SyntaxNode {
18318        &self.syntax
18319    }
18320}
18321impl AstNode for ParallelFuncOption {
18322    #[inline]
18323    fn can_cast(kind: SyntaxKind) -> bool {
18324        kind == SyntaxKind::PARALLEL_FUNC_OPTION
18325    }
18326    #[inline]
18327    fn cast(syntax: SyntaxNode) -> Option<Self> {
18328        if Self::can_cast(syntax.kind()) {
18329            Some(Self { syntax })
18330        } else {
18331            None
18332        }
18333    }
18334    #[inline]
18335    fn syntax(&self) -> &SyntaxNode {
18336        &self.syntax
18337    }
18338}
18339impl AstNode for Param {
18340    #[inline]
18341    fn can_cast(kind: SyntaxKind) -> bool {
18342        kind == SyntaxKind::PARAM
18343    }
18344    #[inline]
18345    fn cast(syntax: SyntaxNode) -> Option<Self> {
18346        if Self::can_cast(syntax.kind()) {
18347            Some(Self { syntax })
18348        } else {
18349            None
18350        }
18351    }
18352    #[inline]
18353    fn syntax(&self) -> &SyntaxNode {
18354        &self.syntax
18355    }
18356}
18357impl AstNode for ParamDefault {
18358    #[inline]
18359    fn can_cast(kind: SyntaxKind) -> bool {
18360        kind == SyntaxKind::PARAM_DEFAULT
18361    }
18362    #[inline]
18363    fn cast(syntax: SyntaxNode) -> Option<Self> {
18364        if Self::can_cast(syntax.kind()) {
18365            Some(Self { syntax })
18366        } else {
18367            None
18368        }
18369    }
18370    #[inline]
18371    fn syntax(&self) -> &SyntaxNode {
18372        &self.syntax
18373    }
18374}
18375impl AstNode for ParamIn {
18376    #[inline]
18377    fn can_cast(kind: SyntaxKind) -> bool {
18378        kind == SyntaxKind::PARAM_IN
18379    }
18380    #[inline]
18381    fn cast(syntax: SyntaxNode) -> Option<Self> {
18382        if Self::can_cast(syntax.kind()) {
18383            Some(Self { syntax })
18384        } else {
18385            None
18386        }
18387    }
18388    #[inline]
18389    fn syntax(&self) -> &SyntaxNode {
18390        &self.syntax
18391    }
18392}
18393impl AstNode for ParamInOut {
18394    #[inline]
18395    fn can_cast(kind: SyntaxKind) -> bool {
18396        kind == SyntaxKind::PARAM_IN_OUT
18397    }
18398    #[inline]
18399    fn cast(syntax: SyntaxNode) -> Option<Self> {
18400        if Self::can_cast(syntax.kind()) {
18401            Some(Self { syntax })
18402        } else {
18403            None
18404        }
18405    }
18406    #[inline]
18407    fn syntax(&self) -> &SyntaxNode {
18408        &self.syntax
18409    }
18410}
18411impl AstNode for ParamList {
18412    #[inline]
18413    fn can_cast(kind: SyntaxKind) -> bool {
18414        kind == SyntaxKind::PARAM_LIST
18415    }
18416    #[inline]
18417    fn cast(syntax: SyntaxNode) -> Option<Self> {
18418        if Self::can_cast(syntax.kind()) {
18419            Some(Self { syntax })
18420        } else {
18421            None
18422        }
18423    }
18424    #[inline]
18425    fn syntax(&self) -> &SyntaxNode {
18426        &self.syntax
18427    }
18428}
18429impl AstNode for ParamOut {
18430    #[inline]
18431    fn can_cast(kind: SyntaxKind) -> bool {
18432        kind == SyntaxKind::PARAM_OUT
18433    }
18434    #[inline]
18435    fn cast(syntax: SyntaxNode) -> Option<Self> {
18436        if Self::can_cast(syntax.kind()) {
18437            Some(Self { syntax })
18438        } else {
18439            None
18440        }
18441    }
18442    #[inline]
18443    fn syntax(&self) -> &SyntaxNode {
18444        &self.syntax
18445    }
18446}
18447impl AstNode for ParamVariadic {
18448    #[inline]
18449    fn can_cast(kind: SyntaxKind) -> bool {
18450        kind == SyntaxKind::PARAM_VARIADIC
18451    }
18452    #[inline]
18453    fn cast(syntax: SyntaxNode) -> Option<Self> {
18454        if Self::can_cast(syntax.kind()) {
18455            Some(Self { syntax })
18456        } else {
18457            None
18458        }
18459    }
18460    #[inline]
18461    fn syntax(&self) -> &SyntaxNode {
18462        &self.syntax
18463    }
18464}
18465impl AstNode for ParenExpr {
18466    #[inline]
18467    fn can_cast(kind: SyntaxKind) -> bool {
18468        kind == SyntaxKind::PAREN_EXPR
18469    }
18470    #[inline]
18471    fn cast(syntax: SyntaxNode) -> Option<Self> {
18472        if Self::can_cast(syntax.kind()) {
18473            Some(Self { syntax })
18474        } else {
18475            None
18476        }
18477    }
18478    #[inline]
18479    fn syntax(&self) -> &SyntaxNode {
18480        &self.syntax
18481    }
18482}
18483impl AstNode for ParenSelect {
18484    #[inline]
18485    fn can_cast(kind: SyntaxKind) -> bool {
18486        kind == SyntaxKind::PAREN_SELECT
18487    }
18488    #[inline]
18489    fn cast(syntax: SyntaxNode) -> Option<Self> {
18490        if Self::can_cast(syntax.kind()) {
18491            Some(Self { syntax })
18492        } else {
18493            None
18494        }
18495    }
18496    #[inline]
18497    fn syntax(&self) -> &SyntaxNode {
18498        &self.syntax
18499    }
18500}
18501impl AstNode for PartitionBy {
18502    #[inline]
18503    fn can_cast(kind: SyntaxKind) -> bool {
18504        kind == SyntaxKind::PARTITION_BY
18505    }
18506    #[inline]
18507    fn cast(syntax: SyntaxNode) -> Option<Self> {
18508        if Self::can_cast(syntax.kind()) {
18509            Some(Self { syntax })
18510        } else {
18511            None
18512        }
18513    }
18514    #[inline]
18515    fn syntax(&self) -> &SyntaxNode {
18516        &self.syntax
18517    }
18518}
18519impl AstNode for PartitionDefault {
18520    #[inline]
18521    fn can_cast(kind: SyntaxKind) -> bool {
18522        kind == SyntaxKind::PARTITION_DEFAULT
18523    }
18524    #[inline]
18525    fn cast(syntax: SyntaxNode) -> Option<Self> {
18526        if Self::can_cast(syntax.kind()) {
18527            Some(Self { syntax })
18528        } else {
18529            None
18530        }
18531    }
18532    #[inline]
18533    fn syntax(&self) -> &SyntaxNode {
18534        &self.syntax
18535    }
18536}
18537impl AstNode for PartitionForValuesFrom {
18538    #[inline]
18539    fn can_cast(kind: SyntaxKind) -> bool {
18540        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
18541    }
18542    #[inline]
18543    fn cast(syntax: SyntaxNode) -> Option<Self> {
18544        if Self::can_cast(syntax.kind()) {
18545            Some(Self { syntax })
18546        } else {
18547            None
18548        }
18549    }
18550    #[inline]
18551    fn syntax(&self) -> &SyntaxNode {
18552        &self.syntax
18553    }
18554}
18555impl AstNode for PartitionForValuesIn {
18556    #[inline]
18557    fn can_cast(kind: SyntaxKind) -> bool {
18558        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
18559    }
18560    #[inline]
18561    fn cast(syntax: SyntaxNode) -> Option<Self> {
18562        if Self::can_cast(syntax.kind()) {
18563            Some(Self { syntax })
18564        } else {
18565            None
18566        }
18567    }
18568    #[inline]
18569    fn syntax(&self) -> &SyntaxNode {
18570        &self.syntax
18571    }
18572}
18573impl AstNode for PartitionForValuesWith {
18574    #[inline]
18575    fn can_cast(kind: SyntaxKind) -> bool {
18576        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
18577    }
18578    #[inline]
18579    fn cast(syntax: SyntaxNode) -> Option<Self> {
18580        if Self::can_cast(syntax.kind()) {
18581            Some(Self { syntax })
18582        } else {
18583            None
18584        }
18585    }
18586    #[inline]
18587    fn syntax(&self) -> &SyntaxNode {
18588        &self.syntax
18589    }
18590}
18591impl AstNode for PartitionItem {
18592    #[inline]
18593    fn can_cast(kind: SyntaxKind) -> bool {
18594        kind == SyntaxKind::PARTITION_ITEM
18595    }
18596    #[inline]
18597    fn cast(syntax: SyntaxNode) -> Option<Self> {
18598        if Self::can_cast(syntax.kind()) {
18599            Some(Self { syntax })
18600        } else {
18601            None
18602        }
18603    }
18604    #[inline]
18605    fn syntax(&self) -> &SyntaxNode {
18606        &self.syntax
18607    }
18608}
18609impl AstNode for PartitionItemList {
18610    #[inline]
18611    fn can_cast(kind: SyntaxKind) -> bool {
18612        kind == SyntaxKind::PARTITION_ITEM_LIST
18613    }
18614    #[inline]
18615    fn cast(syntax: SyntaxNode) -> Option<Self> {
18616        if Self::can_cast(syntax.kind()) {
18617            Some(Self { syntax })
18618        } else {
18619            None
18620        }
18621    }
18622    #[inline]
18623    fn syntax(&self) -> &SyntaxNode {
18624        &self.syntax
18625    }
18626}
18627impl AstNode for PartitionOf {
18628    #[inline]
18629    fn can_cast(kind: SyntaxKind) -> bool {
18630        kind == SyntaxKind::PARTITION_OF
18631    }
18632    #[inline]
18633    fn cast(syntax: SyntaxNode) -> Option<Self> {
18634        if Self::can_cast(syntax.kind()) {
18635            Some(Self { syntax })
18636        } else {
18637            None
18638        }
18639    }
18640    #[inline]
18641    fn syntax(&self) -> &SyntaxNode {
18642        &self.syntax
18643    }
18644}
18645impl AstNode for Path {
18646    #[inline]
18647    fn can_cast(kind: SyntaxKind) -> bool {
18648        kind == SyntaxKind::PATH
18649    }
18650    #[inline]
18651    fn cast(syntax: SyntaxNode) -> Option<Self> {
18652        if Self::can_cast(syntax.kind()) {
18653            Some(Self { syntax })
18654        } else {
18655            None
18656        }
18657    }
18658    #[inline]
18659    fn syntax(&self) -> &SyntaxNode {
18660        &self.syntax
18661    }
18662}
18663impl AstNode for PathSegment {
18664    #[inline]
18665    fn can_cast(kind: SyntaxKind) -> bool {
18666        kind == SyntaxKind::PATH_SEGMENT
18667    }
18668    #[inline]
18669    fn cast(syntax: SyntaxNode) -> Option<Self> {
18670        if Self::can_cast(syntax.kind()) {
18671            Some(Self { syntax })
18672        } else {
18673            None
18674        }
18675    }
18676    #[inline]
18677    fn syntax(&self) -> &SyntaxNode {
18678        &self.syntax
18679    }
18680}
18681impl AstNode for PathType {
18682    #[inline]
18683    fn can_cast(kind: SyntaxKind) -> bool {
18684        kind == SyntaxKind::PATH_TYPE
18685    }
18686    #[inline]
18687    fn cast(syntax: SyntaxNode) -> Option<Self> {
18688        if Self::can_cast(syntax.kind()) {
18689            Some(Self { syntax })
18690        } else {
18691            None
18692        }
18693    }
18694    #[inline]
18695    fn syntax(&self) -> &SyntaxNode {
18696        &self.syntax
18697    }
18698}
18699impl AstNode for PercentType {
18700    #[inline]
18701    fn can_cast(kind: SyntaxKind) -> bool {
18702        kind == SyntaxKind::PERCENT_TYPE
18703    }
18704    #[inline]
18705    fn cast(syntax: SyntaxNode) -> Option<Self> {
18706        if Self::can_cast(syntax.kind()) {
18707            Some(Self { syntax })
18708        } else {
18709            None
18710        }
18711    }
18712    #[inline]
18713    fn syntax(&self) -> &SyntaxNode {
18714        &self.syntax
18715    }
18716}
18717impl AstNode for PercentTypeClause {
18718    #[inline]
18719    fn can_cast(kind: SyntaxKind) -> bool {
18720        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
18721    }
18722    #[inline]
18723    fn cast(syntax: SyntaxNode) -> Option<Self> {
18724        if Self::can_cast(syntax.kind()) {
18725            Some(Self { syntax })
18726        } else {
18727            None
18728        }
18729    }
18730    #[inline]
18731    fn syntax(&self) -> &SyntaxNode {
18732        &self.syntax
18733    }
18734}
18735impl AstNode for PostfixExpr {
18736    #[inline]
18737    fn can_cast(kind: SyntaxKind) -> bool {
18738        kind == SyntaxKind::POSTFIX_EXPR
18739    }
18740    #[inline]
18741    fn cast(syntax: SyntaxNode) -> Option<Self> {
18742        if Self::can_cast(syntax.kind()) {
18743            Some(Self { syntax })
18744        } else {
18745            None
18746        }
18747    }
18748    #[inline]
18749    fn syntax(&self) -> &SyntaxNode {
18750        &self.syntax
18751    }
18752}
18753impl AstNode for PrefixExpr {
18754    #[inline]
18755    fn can_cast(kind: SyntaxKind) -> bool {
18756        kind == SyntaxKind::PREFIX_EXPR
18757    }
18758    #[inline]
18759    fn cast(syntax: SyntaxNode) -> Option<Self> {
18760        if Self::can_cast(syntax.kind()) {
18761            Some(Self { syntax })
18762        } else {
18763            None
18764        }
18765    }
18766    #[inline]
18767    fn syntax(&self) -> &SyntaxNode {
18768        &self.syntax
18769    }
18770}
18771impl AstNode for Prepare {
18772    #[inline]
18773    fn can_cast(kind: SyntaxKind) -> bool {
18774        kind == SyntaxKind::PREPARE
18775    }
18776    #[inline]
18777    fn cast(syntax: SyntaxNode) -> Option<Self> {
18778        if Self::can_cast(syntax.kind()) {
18779            Some(Self { syntax })
18780        } else {
18781            None
18782        }
18783    }
18784    #[inline]
18785    fn syntax(&self) -> &SyntaxNode {
18786        &self.syntax
18787    }
18788}
18789impl AstNode for PrepareTransaction {
18790    #[inline]
18791    fn can_cast(kind: SyntaxKind) -> bool {
18792        kind == SyntaxKind::PREPARE_TRANSACTION
18793    }
18794    #[inline]
18795    fn cast(syntax: SyntaxNode) -> Option<Self> {
18796        if Self::can_cast(syntax.kind()) {
18797            Some(Self { syntax })
18798        } else {
18799            None
18800        }
18801    }
18802    #[inline]
18803    fn syntax(&self) -> &SyntaxNode {
18804        &self.syntax
18805    }
18806}
18807impl AstNode for PreserveRows {
18808    #[inline]
18809    fn can_cast(kind: SyntaxKind) -> bool {
18810        kind == SyntaxKind::PRESERVE_ROWS
18811    }
18812    #[inline]
18813    fn cast(syntax: SyntaxNode) -> Option<Self> {
18814        if Self::can_cast(syntax.kind()) {
18815            Some(Self { syntax })
18816        } else {
18817            None
18818        }
18819    }
18820    #[inline]
18821    fn syntax(&self) -> &SyntaxNode {
18822        &self.syntax
18823    }
18824}
18825impl AstNode for PrimaryKeyConstraint {
18826    #[inline]
18827    fn can_cast(kind: SyntaxKind) -> bool {
18828        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
18829    }
18830    #[inline]
18831    fn cast(syntax: SyntaxNode) -> Option<Self> {
18832        if Self::can_cast(syntax.kind()) {
18833            Some(Self { syntax })
18834        } else {
18835            None
18836        }
18837    }
18838    #[inline]
18839    fn syntax(&self) -> &SyntaxNode {
18840        &self.syntax
18841    }
18842}
18843impl AstNode for ReadCommitted {
18844    #[inline]
18845    fn can_cast(kind: SyntaxKind) -> bool {
18846        kind == SyntaxKind::READ_COMMITTED
18847    }
18848    #[inline]
18849    fn cast(syntax: SyntaxNode) -> Option<Self> {
18850        if Self::can_cast(syntax.kind()) {
18851            Some(Self { syntax })
18852        } else {
18853            None
18854        }
18855    }
18856    #[inline]
18857    fn syntax(&self) -> &SyntaxNode {
18858        &self.syntax
18859    }
18860}
18861impl AstNode for ReadOnly {
18862    #[inline]
18863    fn can_cast(kind: SyntaxKind) -> bool {
18864        kind == SyntaxKind::READ_ONLY
18865    }
18866    #[inline]
18867    fn cast(syntax: SyntaxNode) -> Option<Self> {
18868        if Self::can_cast(syntax.kind()) {
18869            Some(Self { syntax })
18870        } else {
18871            None
18872        }
18873    }
18874    #[inline]
18875    fn syntax(&self) -> &SyntaxNode {
18876        &self.syntax
18877    }
18878}
18879impl AstNode for ReadUncommitted {
18880    #[inline]
18881    fn can_cast(kind: SyntaxKind) -> bool {
18882        kind == SyntaxKind::READ_UNCOMMITTED
18883    }
18884    #[inline]
18885    fn cast(syntax: SyntaxNode) -> Option<Self> {
18886        if Self::can_cast(syntax.kind()) {
18887            Some(Self { syntax })
18888        } else {
18889            None
18890        }
18891    }
18892    #[inline]
18893    fn syntax(&self) -> &SyntaxNode {
18894        &self.syntax
18895    }
18896}
18897impl AstNode for ReadWrite {
18898    #[inline]
18899    fn can_cast(kind: SyntaxKind) -> bool {
18900        kind == SyntaxKind::READ_WRITE
18901    }
18902    #[inline]
18903    fn cast(syntax: SyntaxNode) -> Option<Self> {
18904        if Self::can_cast(syntax.kind()) {
18905            Some(Self { syntax })
18906        } else {
18907            None
18908        }
18909    }
18910    #[inline]
18911    fn syntax(&self) -> &SyntaxNode {
18912        &self.syntax
18913    }
18914}
18915impl AstNode for Reassign {
18916    #[inline]
18917    fn can_cast(kind: SyntaxKind) -> bool {
18918        kind == SyntaxKind::REASSIGN
18919    }
18920    #[inline]
18921    fn cast(syntax: SyntaxNode) -> Option<Self> {
18922        if Self::can_cast(syntax.kind()) {
18923            Some(Self { syntax })
18924        } else {
18925            None
18926        }
18927    }
18928    #[inline]
18929    fn syntax(&self) -> &SyntaxNode {
18930        &self.syntax
18931    }
18932}
18933impl AstNode for ReferencesConstraint {
18934    #[inline]
18935    fn can_cast(kind: SyntaxKind) -> bool {
18936        kind == SyntaxKind::REFERENCES_CONSTRAINT
18937    }
18938    #[inline]
18939    fn cast(syntax: SyntaxNode) -> Option<Self> {
18940        if Self::can_cast(syntax.kind()) {
18941            Some(Self { syntax })
18942        } else {
18943            None
18944        }
18945    }
18946    #[inline]
18947    fn syntax(&self) -> &SyntaxNode {
18948        &self.syntax
18949    }
18950}
18951impl AstNode for Refresh {
18952    #[inline]
18953    fn can_cast(kind: SyntaxKind) -> bool {
18954        kind == SyntaxKind::REFRESH
18955    }
18956    #[inline]
18957    fn cast(syntax: SyntaxNode) -> Option<Self> {
18958        if Self::can_cast(syntax.kind()) {
18959            Some(Self { syntax })
18960        } else {
18961            None
18962        }
18963    }
18964    #[inline]
18965    fn syntax(&self) -> &SyntaxNode {
18966        &self.syntax
18967    }
18968}
18969impl AstNode for Reindex {
18970    #[inline]
18971    fn can_cast(kind: SyntaxKind) -> bool {
18972        kind == SyntaxKind::REINDEX
18973    }
18974    #[inline]
18975    fn cast(syntax: SyntaxNode) -> Option<Self> {
18976        if Self::can_cast(syntax.kind()) {
18977            Some(Self { syntax })
18978        } else {
18979            None
18980        }
18981    }
18982    #[inline]
18983    fn syntax(&self) -> &SyntaxNode {
18984        &self.syntax
18985    }
18986}
18987impl AstNode for RelationName {
18988    #[inline]
18989    fn can_cast(kind: SyntaxKind) -> bool {
18990        kind == SyntaxKind::RELATION_NAME
18991    }
18992    #[inline]
18993    fn cast(syntax: SyntaxNode) -> Option<Self> {
18994        if Self::can_cast(syntax.kind()) {
18995            Some(Self { syntax })
18996        } else {
18997            None
18998        }
18999    }
19000    #[inline]
19001    fn syntax(&self) -> &SyntaxNode {
19002        &self.syntax
19003    }
19004}
19005impl AstNode for ReleaseSavepoint {
19006    #[inline]
19007    fn can_cast(kind: SyntaxKind) -> bool {
19008        kind == SyntaxKind::RELEASE_SAVEPOINT
19009    }
19010    #[inline]
19011    fn cast(syntax: SyntaxNode) -> Option<Self> {
19012        if Self::can_cast(syntax.kind()) {
19013            Some(Self { syntax })
19014        } else {
19015            None
19016        }
19017    }
19018    #[inline]
19019    fn syntax(&self) -> &SyntaxNode {
19020        &self.syntax
19021    }
19022}
19023impl AstNode for RenameColumn {
19024    #[inline]
19025    fn can_cast(kind: SyntaxKind) -> bool {
19026        kind == SyntaxKind::RENAME_COLUMN
19027    }
19028    #[inline]
19029    fn cast(syntax: SyntaxNode) -> Option<Self> {
19030        if Self::can_cast(syntax.kind()) {
19031            Some(Self { syntax })
19032        } else {
19033            None
19034        }
19035    }
19036    #[inline]
19037    fn syntax(&self) -> &SyntaxNode {
19038        &self.syntax
19039    }
19040}
19041impl AstNode for RenameConstraint {
19042    #[inline]
19043    fn can_cast(kind: SyntaxKind) -> bool {
19044        kind == SyntaxKind::RENAME_CONSTRAINT
19045    }
19046    #[inline]
19047    fn cast(syntax: SyntaxNode) -> Option<Self> {
19048        if Self::can_cast(syntax.kind()) {
19049            Some(Self { syntax })
19050        } else {
19051            None
19052        }
19053    }
19054    #[inline]
19055    fn syntax(&self) -> &SyntaxNode {
19056        &self.syntax
19057    }
19058}
19059impl AstNode for RenameTable {
19060    #[inline]
19061    fn can_cast(kind: SyntaxKind) -> bool {
19062        kind == SyntaxKind::RENAME_TABLE
19063    }
19064    #[inline]
19065    fn cast(syntax: SyntaxNode) -> Option<Self> {
19066        if Self::can_cast(syntax.kind()) {
19067            Some(Self { syntax })
19068        } else {
19069            None
19070        }
19071    }
19072    #[inline]
19073    fn syntax(&self) -> &SyntaxNode {
19074        &self.syntax
19075    }
19076}
19077impl AstNode for RenameTo {
19078    #[inline]
19079    fn can_cast(kind: SyntaxKind) -> bool {
19080        kind == SyntaxKind::RENAME_TO
19081    }
19082    #[inline]
19083    fn cast(syntax: SyntaxNode) -> Option<Self> {
19084        if Self::can_cast(syntax.kind()) {
19085            Some(Self { syntax })
19086        } else {
19087            None
19088        }
19089    }
19090    #[inline]
19091    fn syntax(&self) -> &SyntaxNode {
19092        &self.syntax
19093    }
19094}
19095impl AstNode for RepeatableRead {
19096    #[inline]
19097    fn can_cast(kind: SyntaxKind) -> bool {
19098        kind == SyntaxKind::REPEATABLE_READ
19099    }
19100    #[inline]
19101    fn cast(syntax: SyntaxNode) -> Option<Self> {
19102        if Self::can_cast(syntax.kind()) {
19103            Some(Self { syntax })
19104        } else {
19105            None
19106        }
19107    }
19108    #[inline]
19109    fn syntax(&self) -> &SyntaxNode {
19110        &self.syntax
19111    }
19112}
19113impl AstNode for ReplicaIdentity {
19114    #[inline]
19115    fn can_cast(kind: SyntaxKind) -> bool {
19116        kind == SyntaxKind::REPLICA_IDENTITY
19117    }
19118    #[inline]
19119    fn cast(syntax: SyntaxNode) -> Option<Self> {
19120        if Self::can_cast(syntax.kind()) {
19121            Some(Self { syntax })
19122        } else {
19123            None
19124        }
19125    }
19126    #[inline]
19127    fn syntax(&self) -> &SyntaxNode {
19128        &self.syntax
19129    }
19130}
19131impl AstNode for Reset {
19132    #[inline]
19133    fn can_cast(kind: SyntaxKind) -> bool {
19134        kind == SyntaxKind::RESET
19135    }
19136    #[inline]
19137    fn cast(syntax: SyntaxNode) -> Option<Self> {
19138        if Self::can_cast(syntax.kind()) {
19139            Some(Self { syntax })
19140        } else {
19141            None
19142        }
19143    }
19144    #[inline]
19145    fn syntax(&self) -> &SyntaxNode {
19146        &self.syntax
19147    }
19148}
19149impl AstNode for ResetFuncOption {
19150    #[inline]
19151    fn can_cast(kind: SyntaxKind) -> bool {
19152        kind == SyntaxKind::RESET_FUNC_OPTION
19153    }
19154    #[inline]
19155    fn cast(syntax: SyntaxNode) -> Option<Self> {
19156        if Self::can_cast(syntax.kind()) {
19157            Some(Self { syntax })
19158        } else {
19159            None
19160        }
19161    }
19162    #[inline]
19163    fn syntax(&self) -> &SyntaxNode {
19164        &self.syntax
19165    }
19166}
19167impl AstNode for ResetOptions {
19168    #[inline]
19169    fn can_cast(kind: SyntaxKind) -> bool {
19170        kind == SyntaxKind::RESET_OPTIONS
19171    }
19172    #[inline]
19173    fn cast(syntax: SyntaxNode) -> Option<Self> {
19174        if Self::can_cast(syntax.kind()) {
19175            Some(Self { syntax })
19176        } else {
19177            None
19178        }
19179    }
19180    #[inline]
19181    fn syntax(&self) -> &SyntaxNode {
19182        &self.syntax
19183    }
19184}
19185impl AstNode for ResetStorageParams {
19186    #[inline]
19187    fn can_cast(kind: SyntaxKind) -> bool {
19188        kind == SyntaxKind::RESET_STORAGE_PARAMS
19189    }
19190    #[inline]
19191    fn cast(syntax: SyntaxNode) -> Option<Self> {
19192        if Self::can_cast(syntax.kind()) {
19193            Some(Self { syntax })
19194        } else {
19195            None
19196        }
19197    }
19198    #[inline]
19199    fn syntax(&self) -> &SyntaxNode {
19200        &self.syntax
19201    }
19202}
19203impl AstNode for Restart {
19204    #[inline]
19205    fn can_cast(kind: SyntaxKind) -> bool {
19206        kind == SyntaxKind::RESTART
19207    }
19208    #[inline]
19209    fn cast(syntax: SyntaxNode) -> Option<Self> {
19210        if Self::can_cast(syntax.kind()) {
19211            Some(Self { syntax })
19212        } else {
19213            None
19214        }
19215    }
19216    #[inline]
19217    fn syntax(&self) -> &SyntaxNode {
19218        &self.syntax
19219    }
19220}
19221impl AstNode for Restrict {
19222    #[inline]
19223    fn can_cast(kind: SyntaxKind) -> bool {
19224        kind == SyntaxKind::RESTRICT
19225    }
19226    #[inline]
19227    fn cast(syntax: SyntaxNode) -> Option<Self> {
19228        if Self::can_cast(syntax.kind()) {
19229            Some(Self { syntax })
19230        } else {
19231            None
19232        }
19233    }
19234    #[inline]
19235    fn syntax(&self) -> &SyntaxNode {
19236        &self.syntax
19237    }
19238}
19239impl AstNode for RetType {
19240    #[inline]
19241    fn can_cast(kind: SyntaxKind) -> bool {
19242        kind == SyntaxKind::RET_TYPE
19243    }
19244    #[inline]
19245    fn cast(syntax: SyntaxNode) -> Option<Self> {
19246        if Self::can_cast(syntax.kind()) {
19247            Some(Self { syntax })
19248        } else {
19249            None
19250        }
19251    }
19252    #[inline]
19253    fn syntax(&self) -> &SyntaxNode {
19254        &self.syntax
19255    }
19256}
19257impl AstNode for ReturnFuncOption {
19258    #[inline]
19259    fn can_cast(kind: SyntaxKind) -> bool {
19260        kind == SyntaxKind::RETURN_FUNC_OPTION
19261    }
19262    #[inline]
19263    fn cast(syntax: SyntaxNode) -> Option<Self> {
19264        if Self::can_cast(syntax.kind()) {
19265            Some(Self { syntax })
19266        } else {
19267            None
19268        }
19269    }
19270    #[inline]
19271    fn syntax(&self) -> &SyntaxNode {
19272        &self.syntax
19273    }
19274}
19275impl AstNode for ReturningClause {
19276    #[inline]
19277    fn can_cast(kind: SyntaxKind) -> bool {
19278        kind == SyntaxKind::RETURNING_CLAUSE
19279    }
19280    #[inline]
19281    fn cast(syntax: SyntaxNode) -> Option<Self> {
19282        if Self::can_cast(syntax.kind()) {
19283            Some(Self { syntax })
19284        } else {
19285            None
19286        }
19287    }
19288    #[inline]
19289    fn syntax(&self) -> &SyntaxNode {
19290        &self.syntax
19291    }
19292}
19293impl AstNode for Revoke {
19294    #[inline]
19295    fn can_cast(kind: SyntaxKind) -> bool {
19296        kind == SyntaxKind::REVOKE
19297    }
19298    #[inline]
19299    fn cast(syntax: SyntaxNode) -> Option<Self> {
19300        if Self::can_cast(syntax.kind()) {
19301            Some(Self { syntax })
19302        } else {
19303            None
19304        }
19305    }
19306    #[inline]
19307    fn syntax(&self) -> &SyntaxNode {
19308        &self.syntax
19309    }
19310}
19311impl AstNode for Role {
19312    #[inline]
19313    fn can_cast(kind: SyntaxKind) -> bool {
19314        kind == SyntaxKind::ROLE
19315    }
19316    #[inline]
19317    fn cast(syntax: SyntaxNode) -> Option<Self> {
19318        if Self::can_cast(syntax.kind()) {
19319            Some(Self { syntax })
19320        } else {
19321            None
19322        }
19323    }
19324    #[inline]
19325    fn syntax(&self) -> &SyntaxNode {
19326        &self.syntax
19327    }
19328}
19329impl AstNode for RoleOption {
19330    #[inline]
19331    fn can_cast(kind: SyntaxKind) -> bool {
19332        kind == SyntaxKind::ROLE_OPTION
19333    }
19334    #[inline]
19335    fn cast(syntax: SyntaxNode) -> Option<Self> {
19336        if Self::can_cast(syntax.kind()) {
19337            Some(Self { syntax })
19338        } else {
19339            None
19340        }
19341    }
19342    #[inline]
19343    fn syntax(&self) -> &SyntaxNode {
19344        &self.syntax
19345    }
19346}
19347impl AstNode for RoleOptionList {
19348    #[inline]
19349    fn can_cast(kind: SyntaxKind) -> bool {
19350        kind == SyntaxKind::ROLE_OPTION_LIST
19351    }
19352    #[inline]
19353    fn cast(syntax: SyntaxNode) -> Option<Self> {
19354        if Self::can_cast(syntax.kind()) {
19355            Some(Self { syntax })
19356        } else {
19357            None
19358        }
19359    }
19360    #[inline]
19361    fn syntax(&self) -> &SyntaxNode {
19362        &self.syntax
19363    }
19364}
19365impl AstNode for Rollback {
19366    #[inline]
19367    fn can_cast(kind: SyntaxKind) -> bool {
19368        kind == SyntaxKind::ROLLBACK
19369    }
19370    #[inline]
19371    fn cast(syntax: SyntaxNode) -> Option<Self> {
19372        if Self::can_cast(syntax.kind()) {
19373            Some(Self { syntax })
19374        } else {
19375            None
19376        }
19377    }
19378    #[inline]
19379    fn syntax(&self) -> &SyntaxNode {
19380        &self.syntax
19381    }
19382}
19383impl AstNode for Row {
19384    #[inline]
19385    fn can_cast(kind: SyntaxKind) -> bool {
19386        kind == SyntaxKind::ROW
19387    }
19388    #[inline]
19389    fn cast(syntax: SyntaxNode) -> Option<Self> {
19390        if Self::can_cast(syntax.kind()) {
19391            Some(Self { syntax })
19392        } else {
19393            None
19394        }
19395    }
19396    #[inline]
19397    fn syntax(&self) -> &SyntaxNode {
19398        &self.syntax
19399    }
19400}
19401impl AstNode for RowList {
19402    #[inline]
19403    fn can_cast(kind: SyntaxKind) -> bool {
19404        kind == SyntaxKind::ROW_LIST
19405    }
19406    #[inline]
19407    fn cast(syntax: SyntaxNode) -> Option<Self> {
19408        if Self::can_cast(syntax.kind()) {
19409            Some(Self { syntax })
19410        } else {
19411            None
19412        }
19413    }
19414    #[inline]
19415    fn syntax(&self) -> &SyntaxNode {
19416        &self.syntax
19417    }
19418}
19419impl AstNode for RowsFuncOption {
19420    #[inline]
19421    fn can_cast(kind: SyntaxKind) -> bool {
19422        kind == SyntaxKind::ROWS_FUNC_OPTION
19423    }
19424    #[inline]
19425    fn cast(syntax: SyntaxNode) -> Option<Self> {
19426        if Self::can_cast(syntax.kind()) {
19427            Some(Self { syntax })
19428        } else {
19429            None
19430        }
19431    }
19432    #[inline]
19433    fn syntax(&self) -> &SyntaxNode {
19434        &self.syntax
19435    }
19436}
19437impl AstNode for Savepoint {
19438    #[inline]
19439    fn can_cast(kind: SyntaxKind) -> bool {
19440        kind == SyntaxKind::SAVEPOINT
19441    }
19442    #[inline]
19443    fn cast(syntax: SyntaxNode) -> Option<Self> {
19444        if Self::can_cast(syntax.kind()) {
19445            Some(Self { syntax })
19446        } else {
19447            None
19448        }
19449    }
19450    #[inline]
19451    fn syntax(&self) -> &SyntaxNode {
19452        &self.syntax
19453    }
19454}
19455impl AstNode for SecurityFuncOption {
19456    #[inline]
19457    fn can_cast(kind: SyntaxKind) -> bool {
19458        kind == SyntaxKind::SECURITY_FUNC_OPTION
19459    }
19460    #[inline]
19461    fn cast(syntax: SyntaxNode) -> Option<Self> {
19462        if Self::can_cast(syntax.kind()) {
19463            Some(Self { syntax })
19464        } else {
19465            None
19466        }
19467    }
19468    #[inline]
19469    fn syntax(&self) -> &SyntaxNode {
19470        &self.syntax
19471    }
19472}
19473impl AstNode for SecurityLabel {
19474    #[inline]
19475    fn can_cast(kind: SyntaxKind) -> bool {
19476        kind == SyntaxKind::SECURITY_LABEL
19477    }
19478    #[inline]
19479    fn cast(syntax: SyntaxNode) -> Option<Self> {
19480        if Self::can_cast(syntax.kind()) {
19481            Some(Self { syntax })
19482        } else {
19483            None
19484        }
19485    }
19486    #[inline]
19487    fn syntax(&self) -> &SyntaxNode {
19488        &self.syntax
19489    }
19490}
19491impl AstNode for Select {
19492    #[inline]
19493    fn can_cast(kind: SyntaxKind) -> bool {
19494        kind == SyntaxKind::SELECT
19495    }
19496    #[inline]
19497    fn cast(syntax: SyntaxNode) -> Option<Self> {
19498        if Self::can_cast(syntax.kind()) {
19499            Some(Self { syntax })
19500        } else {
19501            None
19502        }
19503    }
19504    #[inline]
19505    fn syntax(&self) -> &SyntaxNode {
19506        &self.syntax
19507    }
19508}
19509impl AstNode for SelectClause {
19510    #[inline]
19511    fn can_cast(kind: SyntaxKind) -> bool {
19512        kind == SyntaxKind::SELECT_CLAUSE
19513    }
19514    #[inline]
19515    fn cast(syntax: SyntaxNode) -> Option<Self> {
19516        if Self::can_cast(syntax.kind()) {
19517            Some(Self { syntax })
19518        } else {
19519            None
19520        }
19521    }
19522    #[inline]
19523    fn syntax(&self) -> &SyntaxNode {
19524        &self.syntax
19525    }
19526}
19527impl AstNode for SelectInto {
19528    #[inline]
19529    fn can_cast(kind: SyntaxKind) -> bool {
19530        kind == SyntaxKind::SELECT_INTO
19531    }
19532    #[inline]
19533    fn cast(syntax: SyntaxNode) -> Option<Self> {
19534        if Self::can_cast(syntax.kind()) {
19535            Some(Self { syntax })
19536        } else {
19537            None
19538        }
19539    }
19540    #[inline]
19541    fn syntax(&self) -> &SyntaxNode {
19542        &self.syntax
19543    }
19544}
19545impl AstNode for SequenceOption {
19546    #[inline]
19547    fn can_cast(kind: SyntaxKind) -> bool {
19548        kind == SyntaxKind::SEQUENCE_OPTION
19549    }
19550    #[inline]
19551    fn cast(syntax: SyntaxNode) -> Option<Self> {
19552        if Self::can_cast(syntax.kind()) {
19553            Some(Self { syntax })
19554        } else {
19555            None
19556        }
19557    }
19558    #[inline]
19559    fn syntax(&self) -> &SyntaxNode {
19560        &self.syntax
19561    }
19562}
19563impl AstNode for SequenceOptionList {
19564    #[inline]
19565    fn can_cast(kind: SyntaxKind) -> bool {
19566        kind == SyntaxKind::SEQUENCE_OPTION_LIST
19567    }
19568    #[inline]
19569    fn cast(syntax: SyntaxNode) -> Option<Self> {
19570        if Self::can_cast(syntax.kind()) {
19571            Some(Self { syntax })
19572        } else {
19573            None
19574        }
19575    }
19576    #[inline]
19577    fn syntax(&self) -> &SyntaxNode {
19578        &self.syntax
19579    }
19580}
19581impl AstNode for Serializable {
19582    #[inline]
19583    fn can_cast(kind: SyntaxKind) -> bool {
19584        kind == SyntaxKind::SERIALIZABLE
19585    }
19586    #[inline]
19587    fn cast(syntax: SyntaxNode) -> Option<Self> {
19588        if Self::can_cast(syntax.kind()) {
19589            Some(Self { syntax })
19590        } else {
19591            None
19592        }
19593    }
19594    #[inline]
19595    fn syntax(&self) -> &SyntaxNode {
19596        &self.syntax
19597    }
19598}
19599impl AstNode for Set {
19600    #[inline]
19601    fn can_cast(kind: SyntaxKind) -> bool {
19602        kind == SyntaxKind::SET
19603    }
19604    #[inline]
19605    fn cast(syntax: SyntaxNode) -> Option<Self> {
19606        if Self::can_cast(syntax.kind()) {
19607            Some(Self { syntax })
19608        } else {
19609            None
19610        }
19611    }
19612    #[inline]
19613    fn syntax(&self) -> &SyntaxNode {
19614        &self.syntax
19615    }
19616}
19617impl AstNode for SetAccessMethod {
19618    #[inline]
19619    fn can_cast(kind: SyntaxKind) -> bool {
19620        kind == SyntaxKind::SET_ACCESS_METHOD
19621    }
19622    #[inline]
19623    fn cast(syntax: SyntaxNode) -> Option<Self> {
19624        if Self::can_cast(syntax.kind()) {
19625            Some(Self { syntax })
19626        } else {
19627            None
19628        }
19629    }
19630    #[inline]
19631    fn syntax(&self) -> &SyntaxNode {
19632        &self.syntax
19633    }
19634}
19635impl AstNode for SetClause {
19636    #[inline]
19637    fn can_cast(kind: SyntaxKind) -> bool {
19638        kind == SyntaxKind::SET_CLAUSE
19639    }
19640    #[inline]
19641    fn cast(syntax: SyntaxNode) -> Option<Self> {
19642        if Self::can_cast(syntax.kind()) {
19643            Some(Self { syntax })
19644        } else {
19645            None
19646        }
19647    }
19648    #[inline]
19649    fn syntax(&self) -> &SyntaxNode {
19650        &self.syntax
19651    }
19652}
19653impl AstNode for SetColumnList {
19654    #[inline]
19655    fn can_cast(kind: SyntaxKind) -> bool {
19656        kind == SyntaxKind::SET_COLUMN_LIST
19657    }
19658    #[inline]
19659    fn cast(syntax: SyntaxNode) -> Option<Self> {
19660        if Self::can_cast(syntax.kind()) {
19661            Some(Self { syntax })
19662        } else {
19663            None
19664        }
19665    }
19666    #[inline]
19667    fn syntax(&self) -> &SyntaxNode {
19668        &self.syntax
19669    }
19670}
19671impl AstNode for SetCompression {
19672    #[inline]
19673    fn can_cast(kind: SyntaxKind) -> bool {
19674        kind == SyntaxKind::SET_COMPRESSION
19675    }
19676    #[inline]
19677    fn cast(syntax: SyntaxNode) -> Option<Self> {
19678        if Self::can_cast(syntax.kind()) {
19679            Some(Self { syntax })
19680        } else {
19681            None
19682        }
19683    }
19684    #[inline]
19685    fn syntax(&self) -> &SyntaxNode {
19686        &self.syntax
19687    }
19688}
19689impl AstNode for SetConstraints {
19690    #[inline]
19691    fn can_cast(kind: SyntaxKind) -> bool {
19692        kind == SyntaxKind::SET_CONSTRAINTS
19693    }
19694    #[inline]
19695    fn cast(syntax: SyntaxNode) -> Option<Self> {
19696        if Self::can_cast(syntax.kind()) {
19697            Some(Self { syntax })
19698        } else {
19699            None
19700        }
19701    }
19702    #[inline]
19703    fn syntax(&self) -> &SyntaxNode {
19704        &self.syntax
19705    }
19706}
19707impl AstNode for SetDefault {
19708    #[inline]
19709    fn can_cast(kind: SyntaxKind) -> bool {
19710        kind == SyntaxKind::SET_DEFAULT
19711    }
19712    #[inline]
19713    fn cast(syntax: SyntaxNode) -> Option<Self> {
19714        if Self::can_cast(syntax.kind()) {
19715            Some(Self { syntax })
19716        } else {
19717            None
19718        }
19719    }
19720    #[inline]
19721    fn syntax(&self) -> &SyntaxNode {
19722        &self.syntax
19723    }
19724}
19725impl AstNode for SetDefaultColumns {
19726    #[inline]
19727    fn can_cast(kind: SyntaxKind) -> bool {
19728        kind == SyntaxKind::SET_DEFAULT_COLUMNS
19729    }
19730    #[inline]
19731    fn cast(syntax: SyntaxNode) -> Option<Self> {
19732        if Self::can_cast(syntax.kind()) {
19733            Some(Self { syntax })
19734        } else {
19735            None
19736        }
19737    }
19738    #[inline]
19739    fn syntax(&self) -> &SyntaxNode {
19740        &self.syntax
19741    }
19742}
19743impl AstNode for SetExpr {
19744    #[inline]
19745    fn can_cast(kind: SyntaxKind) -> bool {
19746        kind == SyntaxKind::SET_EXPR
19747    }
19748    #[inline]
19749    fn cast(syntax: SyntaxNode) -> Option<Self> {
19750        if Self::can_cast(syntax.kind()) {
19751            Some(Self { syntax })
19752        } else {
19753            None
19754        }
19755    }
19756    #[inline]
19757    fn syntax(&self) -> &SyntaxNode {
19758        &self.syntax
19759    }
19760}
19761impl AstNode for SetExprList {
19762    #[inline]
19763    fn can_cast(kind: SyntaxKind) -> bool {
19764        kind == SyntaxKind::SET_EXPR_LIST
19765    }
19766    #[inline]
19767    fn cast(syntax: SyntaxNode) -> Option<Self> {
19768        if Self::can_cast(syntax.kind()) {
19769            Some(Self { syntax })
19770        } else {
19771            None
19772        }
19773    }
19774    #[inline]
19775    fn syntax(&self) -> &SyntaxNode {
19776        &self.syntax
19777    }
19778}
19779impl AstNode for SetExpression {
19780    #[inline]
19781    fn can_cast(kind: SyntaxKind) -> bool {
19782        kind == SyntaxKind::SET_EXPRESSION
19783    }
19784    #[inline]
19785    fn cast(syntax: SyntaxNode) -> Option<Self> {
19786        if Self::can_cast(syntax.kind()) {
19787            Some(Self { syntax })
19788        } else {
19789            None
19790        }
19791    }
19792    #[inline]
19793    fn syntax(&self) -> &SyntaxNode {
19794        &self.syntax
19795    }
19796}
19797impl AstNode for SetFuncOption {
19798    #[inline]
19799    fn can_cast(kind: SyntaxKind) -> bool {
19800        kind == SyntaxKind::SET_FUNC_OPTION
19801    }
19802    #[inline]
19803    fn cast(syntax: SyntaxNode) -> Option<Self> {
19804        if Self::can_cast(syntax.kind()) {
19805            Some(Self { syntax })
19806        } else {
19807            None
19808        }
19809    }
19810    #[inline]
19811    fn syntax(&self) -> &SyntaxNode {
19812        &self.syntax
19813    }
19814}
19815impl AstNode for SetGenerated {
19816    #[inline]
19817    fn can_cast(kind: SyntaxKind) -> bool {
19818        kind == SyntaxKind::SET_GENERATED
19819    }
19820    #[inline]
19821    fn cast(syntax: SyntaxNode) -> Option<Self> {
19822        if Self::can_cast(syntax.kind()) {
19823            Some(Self { syntax })
19824        } else {
19825            None
19826        }
19827    }
19828    #[inline]
19829    fn syntax(&self) -> &SyntaxNode {
19830        &self.syntax
19831    }
19832}
19833impl AstNode for SetGeneratedOptions {
19834    #[inline]
19835    fn can_cast(kind: SyntaxKind) -> bool {
19836        kind == SyntaxKind::SET_GENERATED_OPTIONS
19837    }
19838    #[inline]
19839    fn cast(syntax: SyntaxNode) -> Option<Self> {
19840        if Self::can_cast(syntax.kind()) {
19841            Some(Self { syntax })
19842        } else {
19843            None
19844        }
19845    }
19846    #[inline]
19847    fn syntax(&self) -> &SyntaxNode {
19848        &self.syntax
19849    }
19850}
19851impl AstNode for SetLogged {
19852    #[inline]
19853    fn can_cast(kind: SyntaxKind) -> bool {
19854        kind == SyntaxKind::SET_LOGGED
19855    }
19856    #[inline]
19857    fn cast(syntax: SyntaxNode) -> Option<Self> {
19858        if Self::can_cast(syntax.kind()) {
19859            Some(Self { syntax })
19860        } else {
19861            None
19862        }
19863    }
19864    #[inline]
19865    fn syntax(&self) -> &SyntaxNode {
19866        &self.syntax
19867    }
19868}
19869impl AstNode for SetMultipleColumns {
19870    #[inline]
19871    fn can_cast(kind: SyntaxKind) -> bool {
19872        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
19873    }
19874    #[inline]
19875    fn cast(syntax: SyntaxNode) -> Option<Self> {
19876        if Self::can_cast(syntax.kind()) {
19877            Some(Self { syntax })
19878        } else {
19879            None
19880        }
19881    }
19882    #[inline]
19883    fn syntax(&self) -> &SyntaxNode {
19884        &self.syntax
19885    }
19886}
19887impl AstNode for SetNotNull {
19888    #[inline]
19889    fn can_cast(kind: SyntaxKind) -> bool {
19890        kind == SyntaxKind::SET_NOT_NULL
19891    }
19892    #[inline]
19893    fn cast(syntax: SyntaxNode) -> Option<Self> {
19894        if Self::can_cast(syntax.kind()) {
19895            Some(Self { syntax })
19896        } else {
19897            None
19898        }
19899    }
19900    #[inline]
19901    fn syntax(&self) -> &SyntaxNode {
19902        &self.syntax
19903    }
19904}
19905impl AstNode for SetNullColumns {
19906    #[inline]
19907    fn can_cast(kind: SyntaxKind) -> bool {
19908        kind == SyntaxKind::SET_NULL_COLUMNS
19909    }
19910    #[inline]
19911    fn cast(syntax: SyntaxNode) -> Option<Self> {
19912        if Self::can_cast(syntax.kind()) {
19913            Some(Self { syntax })
19914        } else {
19915            None
19916        }
19917    }
19918    #[inline]
19919    fn syntax(&self) -> &SyntaxNode {
19920        &self.syntax
19921    }
19922}
19923impl AstNode for SetOptions {
19924    #[inline]
19925    fn can_cast(kind: SyntaxKind) -> bool {
19926        kind == SyntaxKind::SET_OPTIONS
19927    }
19928    #[inline]
19929    fn cast(syntax: SyntaxNode) -> Option<Self> {
19930        if Self::can_cast(syntax.kind()) {
19931            Some(Self { syntax })
19932        } else {
19933            None
19934        }
19935    }
19936    #[inline]
19937    fn syntax(&self) -> &SyntaxNode {
19938        &self.syntax
19939    }
19940}
19941impl AstNode for SetOptionsList {
19942    #[inline]
19943    fn can_cast(kind: SyntaxKind) -> bool {
19944        kind == SyntaxKind::SET_OPTIONS_LIST
19945    }
19946    #[inline]
19947    fn cast(syntax: SyntaxNode) -> Option<Self> {
19948        if Self::can_cast(syntax.kind()) {
19949            Some(Self { syntax })
19950        } else {
19951            None
19952        }
19953    }
19954    #[inline]
19955    fn syntax(&self) -> &SyntaxNode {
19956        &self.syntax
19957    }
19958}
19959impl AstNode for SetRole {
19960    #[inline]
19961    fn can_cast(kind: SyntaxKind) -> bool {
19962        kind == SyntaxKind::SET_ROLE
19963    }
19964    #[inline]
19965    fn cast(syntax: SyntaxNode) -> Option<Self> {
19966        if Self::can_cast(syntax.kind()) {
19967            Some(Self { syntax })
19968        } else {
19969            None
19970        }
19971    }
19972    #[inline]
19973    fn syntax(&self) -> &SyntaxNode {
19974        &self.syntax
19975    }
19976}
19977impl AstNode for SetSchema {
19978    #[inline]
19979    fn can_cast(kind: SyntaxKind) -> bool {
19980        kind == SyntaxKind::SET_SCHEMA
19981    }
19982    #[inline]
19983    fn cast(syntax: SyntaxNode) -> Option<Self> {
19984        if Self::can_cast(syntax.kind()) {
19985            Some(Self { syntax })
19986        } else {
19987            None
19988        }
19989    }
19990    #[inline]
19991    fn syntax(&self) -> &SyntaxNode {
19992        &self.syntax
19993    }
19994}
19995impl AstNode for SetSequenceOption {
19996    #[inline]
19997    fn can_cast(kind: SyntaxKind) -> bool {
19998        kind == SyntaxKind::SET_SEQUENCE_OPTION
19999    }
20000    #[inline]
20001    fn cast(syntax: SyntaxNode) -> Option<Self> {
20002        if Self::can_cast(syntax.kind()) {
20003            Some(Self { syntax })
20004        } else {
20005            None
20006        }
20007    }
20008    #[inline]
20009    fn syntax(&self) -> &SyntaxNode {
20010        &self.syntax
20011    }
20012}
20013impl AstNode for SetSessionAuth {
20014    #[inline]
20015    fn can_cast(kind: SyntaxKind) -> bool {
20016        kind == SyntaxKind::SET_SESSION_AUTH
20017    }
20018    #[inline]
20019    fn cast(syntax: SyntaxNode) -> Option<Self> {
20020        if Self::can_cast(syntax.kind()) {
20021            Some(Self { syntax })
20022        } else {
20023            None
20024        }
20025    }
20026    #[inline]
20027    fn syntax(&self) -> &SyntaxNode {
20028        &self.syntax
20029    }
20030}
20031impl AstNode for SetSingleColumn {
20032    #[inline]
20033    fn can_cast(kind: SyntaxKind) -> bool {
20034        kind == SyntaxKind::SET_SINGLE_COLUMN
20035    }
20036    #[inline]
20037    fn cast(syntax: SyntaxNode) -> Option<Self> {
20038        if Self::can_cast(syntax.kind()) {
20039            Some(Self { syntax })
20040        } else {
20041            None
20042        }
20043    }
20044    #[inline]
20045    fn syntax(&self) -> &SyntaxNode {
20046        &self.syntax
20047    }
20048}
20049impl AstNode for SetStatistics {
20050    #[inline]
20051    fn can_cast(kind: SyntaxKind) -> bool {
20052        kind == SyntaxKind::SET_STATISTICS
20053    }
20054    #[inline]
20055    fn cast(syntax: SyntaxNode) -> Option<Self> {
20056        if Self::can_cast(syntax.kind()) {
20057            Some(Self { syntax })
20058        } else {
20059            None
20060        }
20061    }
20062    #[inline]
20063    fn syntax(&self) -> &SyntaxNode {
20064        &self.syntax
20065    }
20066}
20067impl AstNode for SetStorage {
20068    #[inline]
20069    fn can_cast(kind: SyntaxKind) -> bool {
20070        kind == SyntaxKind::SET_STORAGE
20071    }
20072    #[inline]
20073    fn cast(syntax: SyntaxNode) -> Option<Self> {
20074        if Self::can_cast(syntax.kind()) {
20075            Some(Self { syntax })
20076        } else {
20077            None
20078        }
20079    }
20080    #[inline]
20081    fn syntax(&self) -> &SyntaxNode {
20082        &self.syntax
20083    }
20084}
20085impl AstNode for SetStorageParams {
20086    #[inline]
20087    fn can_cast(kind: SyntaxKind) -> bool {
20088        kind == SyntaxKind::SET_STORAGE_PARAMS
20089    }
20090    #[inline]
20091    fn cast(syntax: SyntaxNode) -> Option<Self> {
20092        if Self::can_cast(syntax.kind()) {
20093            Some(Self { syntax })
20094        } else {
20095            None
20096        }
20097    }
20098    #[inline]
20099    fn syntax(&self) -> &SyntaxNode {
20100        &self.syntax
20101    }
20102}
20103impl AstNode for SetTablespace {
20104    #[inline]
20105    fn can_cast(kind: SyntaxKind) -> bool {
20106        kind == SyntaxKind::SET_TABLESPACE
20107    }
20108    #[inline]
20109    fn cast(syntax: SyntaxNode) -> Option<Self> {
20110        if Self::can_cast(syntax.kind()) {
20111            Some(Self { syntax })
20112        } else {
20113            None
20114        }
20115    }
20116    #[inline]
20117    fn syntax(&self) -> &SyntaxNode {
20118        &self.syntax
20119    }
20120}
20121impl AstNode for SetTransaction {
20122    #[inline]
20123    fn can_cast(kind: SyntaxKind) -> bool {
20124        kind == SyntaxKind::SET_TRANSACTION
20125    }
20126    #[inline]
20127    fn cast(syntax: SyntaxNode) -> Option<Self> {
20128        if Self::can_cast(syntax.kind()) {
20129            Some(Self { syntax })
20130        } else {
20131            None
20132        }
20133    }
20134    #[inline]
20135    fn syntax(&self) -> &SyntaxNode {
20136        &self.syntax
20137    }
20138}
20139impl AstNode for SetType {
20140    #[inline]
20141    fn can_cast(kind: SyntaxKind) -> bool {
20142        kind == SyntaxKind::SET_TYPE
20143    }
20144    #[inline]
20145    fn cast(syntax: SyntaxNode) -> Option<Self> {
20146        if Self::can_cast(syntax.kind()) {
20147            Some(Self { syntax })
20148        } else {
20149            None
20150        }
20151    }
20152    #[inline]
20153    fn syntax(&self) -> &SyntaxNode {
20154        &self.syntax
20155    }
20156}
20157impl AstNode for SetUnlogged {
20158    #[inline]
20159    fn can_cast(kind: SyntaxKind) -> bool {
20160        kind == SyntaxKind::SET_UNLOGGED
20161    }
20162    #[inline]
20163    fn cast(syntax: SyntaxNode) -> Option<Self> {
20164        if Self::can_cast(syntax.kind()) {
20165            Some(Self { syntax })
20166        } else {
20167            None
20168        }
20169    }
20170    #[inline]
20171    fn syntax(&self) -> &SyntaxNode {
20172        &self.syntax
20173    }
20174}
20175impl AstNode for SetWithoutCluster {
20176    #[inline]
20177    fn can_cast(kind: SyntaxKind) -> bool {
20178        kind == SyntaxKind::SET_WITHOUT_CLUSTER
20179    }
20180    #[inline]
20181    fn cast(syntax: SyntaxNode) -> Option<Self> {
20182        if Self::can_cast(syntax.kind()) {
20183            Some(Self { syntax })
20184        } else {
20185            None
20186        }
20187    }
20188    #[inline]
20189    fn syntax(&self) -> &SyntaxNode {
20190        &self.syntax
20191    }
20192}
20193impl AstNode for SetWithoutOids {
20194    #[inline]
20195    fn can_cast(kind: SyntaxKind) -> bool {
20196        kind == SyntaxKind::SET_WITHOUT_OIDS
20197    }
20198    #[inline]
20199    fn cast(syntax: SyntaxNode) -> Option<Self> {
20200        if Self::can_cast(syntax.kind()) {
20201            Some(Self { syntax })
20202        } else {
20203            None
20204        }
20205    }
20206    #[inline]
20207    fn syntax(&self) -> &SyntaxNode {
20208        &self.syntax
20209    }
20210}
20211impl AstNode for Show {
20212    #[inline]
20213    fn can_cast(kind: SyntaxKind) -> bool {
20214        kind == SyntaxKind::SHOW
20215    }
20216    #[inline]
20217    fn cast(syntax: SyntaxNode) -> Option<Self> {
20218        if Self::can_cast(syntax.kind()) {
20219            Some(Self { syntax })
20220        } else {
20221            None
20222        }
20223    }
20224    #[inline]
20225    fn syntax(&self) -> &SyntaxNode {
20226        &self.syntax
20227    }
20228}
20229impl AstNode for SimilarTo {
20230    #[inline]
20231    fn can_cast(kind: SyntaxKind) -> bool {
20232        kind == SyntaxKind::SIMILAR_TO
20233    }
20234    #[inline]
20235    fn cast(syntax: SyntaxNode) -> Option<Self> {
20236        if Self::can_cast(syntax.kind()) {
20237            Some(Self { syntax })
20238        } else {
20239            None
20240        }
20241    }
20242    #[inline]
20243    fn syntax(&self) -> &SyntaxNode {
20244        &self.syntax
20245    }
20246}
20247impl AstNode for SliceExpr {
20248    #[inline]
20249    fn can_cast(kind: SyntaxKind) -> bool {
20250        kind == SyntaxKind::SLICE_EXPR
20251    }
20252    #[inline]
20253    fn cast(syntax: SyntaxNode) -> Option<Self> {
20254        if Self::can_cast(syntax.kind()) {
20255            Some(Self { syntax })
20256        } else {
20257            None
20258        }
20259    }
20260    #[inline]
20261    fn syntax(&self) -> &SyntaxNode {
20262        &self.syntax
20263    }
20264}
20265impl AstNode for SortAsc {
20266    #[inline]
20267    fn can_cast(kind: SyntaxKind) -> bool {
20268        kind == SyntaxKind::SORT_ASC
20269    }
20270    #[inline]
20271    fn cast(syntax: SyntaxNode) -> Option<Self> {
20272        if Self::can_cast(syntax.kind()) {
20273            Some(Self { syntax })
20274        } else {
20275            None
20276        }
20277    }
20278    #[inline]
20279    fn syntax(&self) -> &SyntaxNode {
20280        &self.syntax
20281    }
20282}
20283impl AstNode for SortBy {
20284    #[inline]
20285    fn can_cast(kind: SyntaxKind) -> bool {
20286        kind == SyntaxKind::SORT_BY
20287    }
20288    #[inline]
20289    fn cast(syntax: SyntaxNode) -> Option<Self> {
20290        if Self::can_cast(syntax.kind()) {
20291            Some(Self { syntax })
20292        } else {
20293            None
20294        }
20295    }
20296    #[inline]
20297    fn syntax(&self) -> &SyntaxNode {
20298        &self.syntax
20299    }
20300}
20301impl AstNode for SortByList {
20302    #[inline]
20303    fn can_cast(kind: SyntaxKind) -> bool {
20304        kind == SyntaxKind::SORT_BY_LIST
20305    }
20306    #[inline]
20307    fn cast(syntax: SyntaxNode) -> Option<Self> {
20308        if Self::can_cast(syntax.kind()) {
20309            Some(Self { syntax })
20310        } else {
20311            None
20312        }
20313    }
20314    #[inline]
20315    fn syntax(&self) -> &SyntaxNode {
20316        &self.syntax
20317    }
20318}
20319impl AstNode for SortDesc {
20320    #[inline]
20321    fn can_cast(kind: SyntaxKind) -> bool {
20322        kind == SyntaxKind::SORT_DESC
20323    }
20324    #[inline]
20325    fn cast(syntax: SyntaxNode) -> Option<Self> {
20326        if Self::can_cast(syntax.kind()) {
20327            Some(Self { syntax })
20328        } else {
20329            None
20330        }
20331    }
20332    #[inline]
20333    fn syntax(&self) -> &SyntaxNode {
20334        &self.syntax
20335    }
20336}
20337impl AstNode for SortUsing {
20338    #[inline]
20339    fn can_cast(kind: SyntaxKind) -> bool {
20340        kind == SyntaxKind::SORT_USING
20341    }
20342    #[inline]
20343    fn cast(syntax: SyntaxNode) -> Option<Self> {
20344        if Self::can_cast(syntax.kind()) {
20345            Some(Self { syntax })
20346        } else {
20347            None
20348        }
20349    }
20350    #[inline]
20351    fn syntax(&self) -> &SyntaxNode {
20352        &self.syntax
20353    }
20354}
20355impl AstNode for SourceFile {
20356    #[inline]
20357    fn can_cast(kind: SyntaxKind) -> bool {
20358        kind == SyntaxKind::SOURCE_FILE
20359    }
20360    #[inline]
20361    fn cast(syntax: SyntaxNode) -> Option<Self> {
20362        if Self::can_cast(syntax.kind()) {
20363            Some(Self { syntax })
20364        } else {
20365            None
20366        }
20367    }
20368    #[inline]
20369    fn syntax(&self) -> &SyntaxNode {
20370        &self.syntax
20371    }
20372}
20373impl AstNode for Storage {
20374    #[inline]
20375    fn can_cast(kind: SyntaxKind) -> bool {
20376        kind == SyntaxKind::STORAGE
20377    }
20378    #[inline]
20379    fn cast(syntax: SyntaxNode) -> Option<Self> {
20380        if Self::can_cast(syntax.kind()) {
20381            Some(Self { syntax })
20382        } else {
20383            None
20384        }
20385    }
20386    #[inline]
20387    fn syntax(&self) -> &SyntaxNode {
20388        &self.syntax
20389    }
20390}
20391impl AstNode for StrictFuncOption {
20392    #[inline]
20393    fn can_cast(kind: SyntaxKind) -> bool {
20394        kind == SyntaxKind::STRICT_FUNC_OPTION
20395    }
20396    #[inline]
20397    fn cast(syntax: SyntaxNode) -> Option<Self> {
20398        if Self::can_cast(syntax.kind()) {
20399            Some(Self { syntax })
20400        } else {
20401            None
20402        }
20403    }
20404    #[inline]
20405    fn syntax(&self) -> &SyntaxNode {
20406        &self.syntax
20407    }
20408}
20409impl AstNode for SupportFuncOption {
20410    #[inline]
20411    fn can_cast(kind: SyntaxKind) -> bool {
20412        kind == SyntaxKind::SUPPORT_FUNC_OPTION
20413    }
20414    #[inline]
20415    fn cast(syntax: SyntaxNode) -> Option<Self> {
20416        if Self::can_cast(syntax.kind()) {
20417            Some(Self { syntax })
20418        } else {
20419            None
20420        }
20421    }
20422    #[inline]
20423    fn syntax(&self) -> &SyntaxNode {
20424        &self.syntax
20425    }
20426}
20427impl AstNode for Table {
20428    #[inline]
20429    fn can_cast(kind: SyntaxKind) -> bool {
20430        kind == SyntaxKind::TABLE
20431    }
20432    #[inline]
20433    fn cast(syntax: SyntaxNode) -> Option<Self> {
20434        if Self::can_cast(syntax.kind()) {
20435            Some(Self { syntax })
20436        } else {
20437            None
20438        }
20439    }
20440    #[inline]
20441    fn syntax(&self) -> &SyntaxNode {
20442        &self.syntax
20443    }
20444}
20445impl AstNode for TableArgList {
20446    #[inline]
20447    fn can_cast(kind: SyntaxKind) -> bool {
20448        kind == SyntaxKind::TABLE_ARG_LIST
20449    }
20450    #[inline]
20451    fn cast(syntax: SyntaxNode) -> Option<Self> {
20452        if Self::can_cast(syntax.kind()) {
20453            Some(Self { syntax })
20454        } else {
20455            None
20456        }
20457    }
20458    #[inline]
20459    fn syntax(&self) -> &SyntaxNode {
20460        &self.syntax
20461    }
20462}
20463impl AstNode for TableList {
20464    #[inline]
20465    fn can_cast(kind: SyntaxKind) -> bool {
20466        kind == SyntaxKind::TABLE_LIST
20467    }
20468    #[inline]
20469    fn cast(syntax: SyntaxNode) -> Option<Self> {
20470        if Self::can_cast(syntax.kind()) {
20471            Some(Self { syntax })
20472        } else {
20473            None
20474        }
20475    }
20476    #[inline]
20477    fn syntax(&self) -> &SyntaxNode {
20478        &self.syntax
20479    }
20480}
20481impl AstNode for Tablespace {
20482    #[inline]
20483    fn can_cast(kind: SyntaxKind) -> bool {
20484        kind == SyntaxKind::TABLESPACE
20485    }
20486    #[inline]
20487    fn cast(syntax: SyntaxNode) -> Option<Self> {
20488        if Self::can_cast(syntax.kind()) {
20489            Some(Self { syntax })
20490        } else {
20491            None
20492        }
20493    }
20494    #[inline]
20495    fn syntax(&self) -> &SyntaxNode {
20496        &self.syntax
20497    }
20498}
20499impl AstNode for Target {
20500    #[inline]
20501    fn can_cast(kind: SyntaxKind) -> bool {
20502        kind == SyntaxKind::TARGET
20503    }
20504    #[inline]
20505    fn cast(syntax: SyntaxNode) -> Option<Self> {
20506        if Self::can_cast(syntax.kind()) {
20507            Some(Self { syntax })
20508        } else {
20509            None
20510        }
20511    }
20512    #[inline]
20513    fn syntax(&self) -> &SyntaxNode {
20514        &self.syntax
20515    }
20516}
20517impl AstNode for TargetList {
20518    #[inline]
20519    fn can_cast(kind: SyntaxKind) -> bool {
20520        kind == SyntaxKind::TARGET_LIST
20521    }
20522    #[inline]
20523    fn cast(syntax: SyntaxNode) -> Option<Self> {
20524        if Self::can_cast(syntax.kind()) {
20525            Some(Self { syntax })
20526        } else {
20527            None
20528        }
20529    }
20530    #[inline]
20531    fn syntax(&self) -> &SyntaxNode {
20532        &self.syntax
20533    }
20534}
20535impl AstNode for TimeType {
20536    #[inline]
20537    fn can_cast(kind: SyntaxKind) -> bool {
20538        kind == SyntaxKind::TIME_TYPE
20539    }
20540    #[inline]
20541    fn cast(syntax: SyntaxNode) -> Option<Self> {
20542        if Self::can_cast(syntax.kind()) {
20543            Some(Self { syntax })
20544        } else {
20545            None
20546        }
20547    }
20548    #[inline]
20549    fn syntax(&self) -> &SyntaxNode {
20550        &self.syntax
20551    }
20552}
20553impl AstNode for TransactionModeList {
20554    #[inline]
20555    fn can_cast(kind: SyntaxKind) -> bool {
20556        kind == SyntaxKind::TRANSACTION_MODE_LIST
20557    }
20558    #[inline]
20559    fn cast(syntax: SyntaxNode) -> Option<Self> {
20560        if Self::can_cast(syntax.kind()) {
20561            Some(Self { syntax })
20562        } else {
20563            None
20564        }
20565    }
20566    #[inline]
20567    fn syntax(&self) -> &SyntaxNode {
20568        &self.syntax
20569    }
20570}
20571impl AstNode for TransformFuncOption {
20572    #[inline]
20573    fn can_cast(kind: SyntaxKind) -> bool {
20574        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
20575    }
20576    #[inline]
20577    fn cast(syntax: SyntaxNode) -> Option<Self> {
20578        if Self::can_cast(syntax.kind()) {
20579            Some(Self { syntax })
20580        } else {
20581            None
20582        }
20583    }
20584    #[inline]
20585    fn syntax(&self) -> &SyntaxNode {
20586        &self.syntax
20587    }
20588}
20589impl AstNode for Truncate {
20590    #[inline]
20591    fn can_cast(kind: SyntaxKind) -> bool {
20592        kind == SyntaxKind::TRUNCATE
20593    }
20594    #[inline]
20595    fn cast(syntax: SyntaxNode) -> Option<Self> {
20596        if Self::can_cast(syntax.kind()) {
20597            Some(Self { syntax })
20598        } else {
20599            None
20600        }
20601    }
20602    #[inline]
20603    fn syntax(&self) -> &SyntaxNode {
20604        &self.syntax
20605    }
20606}
20607impl AstNode for TupleExpr {
20608    #[inline]
20609    fn can_cast(kind: SyntaxKind) -> bool {
20610        kind == SyntaxKind::TUPLE_EXPR
20611    }
20612    #[inline]
20613    fn cast(syntax: SyntaxNode) -> Option<Self> {
20614        if Self::can_cast(syntax.kind()) {
20615            Some(Self { syntax })
20616        } else {
20617            None
20618        }
20619    }
20620    #[inline]
20621    fn syntax(&self) -> &SyntaxNode {
20622        &self.syntax
20623    }
20624}
20625impl AstNode for UnicodeNormalForm {
20626    #[inline]
20627    fn can_cast(kind: SyntaxKind) -> bool {
20628        kind == SyntaxKind::UNICODE_NORMAL_FORM
20629    }
20630    #[inline]
20631    fn cast(syntax: SyntaxNode) -> Option<Self> {
20632        if Self::can_cast(syntax.kind()) {
20633            Some(Self { syntax })
20634        } else {
20635            None
20636        }
20637    }
20638    #[inline]
20639    fn syntax(&self) -> &SyntaxNode {
20640        &self.syntax
20641    }
20642}
20643impl AstNode for UniqueConstraint {
20644    #[inline]
20645    fn can_cast(kind: SyntaxKind) -> bool {
20646        kind == SyntaxKind::UNIQUE_CONSTRAINT
20647    }
20648    #[inline]
20649    fn cast(syntax: SyntaxNode) -> Option<Self> {
20650        if Self::can_cast(syntax.kind()) {
20651            Some(Self { syntax })
20652        } else {
20653            None
20654        }
20655    }
20656    #[inline]
20657    fn syntax(&self) -> &SyntaxNode {
20658        &self.syntax
20659    }
20660}
20661impl AstNode for Unlisten {
20662    #[inline]
20663    fn can_cast(kind: SyntaxKind) -> bool {
20664        kind == SyntaxKind::UNLISTEN
20665    }
20666    #[inline]
20667    fn cast(syntax: SyntaxNode) -> Option<Self> {
20668        if Self::can_cast(syntax.kind()) {
20669            Some(Self { syntax })
20670        } else {
20671            None
20672        }
20673    }
20674    #[inline]
20675    fn syntax(&self) -> &SyntaxNode {
20676        &self.syntax
20677    }
20678}
20679impl AstNode for Update {
20680    #[inline]
20681    fn can_cast(kind: SyntaxKind) -> bool {
20682        kind == SyntaxKind::UPDATE
20683    }
20684    #[inline]
20685    fn cast(syntax: SyntaxNode) -> Option<Self> {
20686        if Self::can_cast(syntax.kind()) {
20687            Some(Self { syntax })
20688        } else {
20689            None
20690        }
20691    }
20692    #[inline]
20693    fn syntax(&self) -> &SyntaxNode {
20694        &self.syntax
20695    }
20696}
20697impl AstNode for UsingClause {
20698    #[inline]
20699    fn can_cast(kind: SyntaxKind) -> bool {
20700        kind == SyntaxKind::USING_CLAUSE
20701    }
20702    #[inline]
20703    fn cast(syntax: SyntaxNode) -> Option<Self> {
20704        if Self::can_cast(syntax.kind()) {
20705            Some(Self { syntax })
20706        } else {
20707            None
20708        }
20709    }
20710    #[inline]
20711    fn syntax(&self) -> &SyntaxNode {
20712        &self.syntax
20713    }
20714}
20715impl AstNode for UsingIndex {
20716    #[inline]
20717    fn can_cast(kind: SyntaxKind) -> bool {
20718        kind == SyntaxKind::USING_INDEX
20719    }
20720    #[inline]
20721    fn cast(syntax: SyntaxNode) -> Option<Self> {
20722        if Self::can_cast(syntax.kind()) {
20723            Some(Self { syntax })
20724        } else {
20725            None
20726        }
20727    }
20728    #[inline]
20729    fn syntax(&self) -> &SyntaxNode {
20730        &self.syntax
20731    }
20732}
20733impl AstNode for UsingMethod {
20734    #[inline]
20735    fn can_cast(kind: SyntaxKind) -> bool {
20736        kind == SyntaxKind::USING_METHOD
20737    }
20738    #[inline]
20739    fn cast(syntax: SyntaxNode) -> Option<Self> {
20740        if Self::can_cast(syntax.kind()) {
20741            Some(Self { syntax })
20742        } else {
20743            None
20744        }
20745    }
20746    #[inline]
20747    fn syntax(&self) -> &SyntaxNode {
20748        &self.syntax
20749    }
20750}
20751impl AstNode for UsingOnClause {
20752    #[inline]
20753    fn can_cast(kind: SyntaxKind) -> bool {
20754        kind == SyntaxKind::USING_ON_CLAUSE
20755    }
20756    #[inline]
20757    fn cast(syntax: SyntaxNode) -> Option<Self> {
20758        if Self::can_cast(syntax.kind()) {
20759            Some(Self { syntax })
20760        } else {
20761            None
20762        }
20763    }
20764    #[inline]
20765    fn syntax(&self) -> &SyntaxNode {
20766        &self.syntax
20767    }
20768}
20769impl AstNode for Vacuum {
20770    #[inline]
20771    fn can_cast(kind: SyntaxKind) -> bool {
20772        kind == SyntaxKind::VACUUM
20773    }
20774    #[inline]
20775    fn cast(syntax: SyntaxNode) -> Option<Self> {
20776        if Self::can_cast(syntax.kind()) {
20777            Some(Self { syntax })
20778        } else {
20779            None
20780        }
20781    }
20782    #[inline]
20783    fn syntax(&self) -> &SyntaxNode {
20784        &self.syntax
20785    }
20786}
20787impl AstNode for VacuumOption {
20788    #[inline]
20789    fn can_cast(kind: SyntaxKind) -> bool {
20790        kind == SyntaxKind::VACUUM_OPTION
20791    }
20792    #[inline]
20793    fn cast(syntax: SyntaxNode) -> Option<Self> {
20794        if Self::can_cast(syntax.kind()) {
20795            Some(Self { syntax })
20796        } else {
20797            None
20798        }
20799    }
20800    #[inline]
20801    fn syntax(&self) -> &SyntaxNode {
20802        &self.syntax
20803    }
20804}
20805impl AstNode for VacuumOptionList {
20806    #[inline]
20807    fn can_cast(kind: SyntaxKind) -> bool {
20808        kind == SyntaxKind::VACUUM_OPTION_LIST
20809    }
20810    #[inline]
20811    fn cast(syntax: SyntaxNode) -> Option<Self> {
20812        if Self::can_cast(syntax.kind()) {
20813            Some(Self { syntax })
20814        } else {
20815            None
20816        }
20817    }
20818    #[inline]
20819    fn syntax(&self) -> &SyntaxNode {
20820        &self.syntax
20821    }
20822}
20823impl AstNode for ValidateConstraint {
20824    #[inline]
20825    fn can_cast(kind: SyntaxKind) -> bool {
20826        kind == SyntaxKind::VALIDATE_CONSTRAINT
20827    }
20828    #[inline]
20829    fn cast(syntax: SyntaxNode) -> Option<Self> {
20830        if Self::can_cast(syntax.kind()) {
20831            Some(Self { syntax })
20832        } else {
20833            None
20834        }
20835    }
20836    #[inline]
20837    fn syntax(&self) -> &SyntaxNode {
20838        &self.syntax
20839    }
20840}
20841impl AstNode for Values {
20842    #[inline]
20843    fn can_cast(kind: SyntaxKind) -> bool {
20844        kind == SyntaxKind::VALUES
20845    }
20846    #[inline]
20847    fn cast(syntax: SyntaxNode) -> Option<Self> {
20848        if Self::can_cast(syntax.kind()) {
20849            Some(Self { syntax })
20850        } else {
20851            None
20852        }
20853    }
20854    #[inline]
20855    fn syntax(&self) -> &SyntaxNode {
20856        &self.syntax
20857    }
20858}
20859impl AstNode for Variant {
20860    #[inline]
20861    fn can_cast(kind: SyntaxKind) -> bool {
20862        kind == SyntaxKind::VARIANT
20863    }
20864    #[inline]
20865    fn cast(syntax: SyntaxNode) -> Option<Self> {
20866        if Self::can_cast(syntax.kind()) {
20867            Some(Self { syntax })
20868        } else {
20869            None
20870        }
20871    }
20872    #[inline]
20873    fn syntax(&self) -> &SyntaxNode {
20874        &self.syntax
20875    }
20876}
20877impl AstNode for VariantList {
20878    #[inline]
20879    fn can_cast(kind: SyntaxKind) -> bool {
20880        kind == SyntaxKind::VARIANT_LIST
20881    }
20882    #[inline]
20883    fn cast(syntax: SyntaxNode) -> Option<Self> {
20884        if Self::can_cast(syntax.kind()) {
20885            Some(Self { syntax })
20886        } else {
20887            None
20888        }
20889    }
20890    #[inline]
20891    fn syntax(&self) -> &SyntaxNode {
20892        &self.syntax
20893    }
20894}
20895impl AstNode for VolatilityFuncOption {
20896    #[inline]
20897    fn can_cast(kind: SyntaxKind) -> bool {
20898        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
20899    }
20900    #[inline]
20901    fn cast(syntax: SyntaxNode) -> Option<Self> {
20902        if Self::can_cast(syntax.kind()) {
20903            Some(Self { syntax })
20904        } else {
20905            None
20906        }
20907    }
20908    #[inline]
20909    fn syntax(&self) -> &SyntaxNode {
20910        &self.syntax
20911    }
20912}
20913impl AstNode for WhenClause {
20914    #[inline]
20915    fn can_cast(kind: SyntaxKind) -> bool {
20916        kind == SyntaxKind::WHEN_CLAUSE
20917    }
20918    #[inline]
20919    fn cast(syntax: SyntaxNode) -> Option<Self> {
20920        if Self::can_cast(syntax.kind()) {
20921            Some(Self { syntax })
20922        } else {
20923            None
20924        }
20925    }
20926    #[inline]
20927    fn syntax(&self) -> &SyntaxNode {
20928        &self.syntax
20929    }
20930}
20931impl AstNode for WhenClauseList {
20932    #[inline]
20933    fn can_cast(kind: SyntaxKind) -> bool {
20934        kind == SyntaxKind::WHEN_CLAUSE_LIST
20935    }
20936    #[inline]
20937    fn cast(syntax: SyntaxNode) -> Option<Self> {
20938        if Self::can_cast(syntax.kind()) {
20939            Some(Self { syntax })
20940        } else {
20941            None
20942        }
20943    }
20944    #[inline]
20945    fn syntax(&self) -> &SyntaxNode {
20946        &self.syntax
20947    }
20948}
20949impl AstNode for WhereClause {
20950    #[inline]
20951    fn can_cast(kind: SyntaxKind) -> bool {
20952        kind == SyntaxKind::WHERE_CLAUSE
20953    }
20954    #[inline]
20955    fn cast(syntax: SyntaxNode) -> Option<Self> {
20956        if Self::can_cast(syntax.kind()) {
20957            Some(Self { syntax })
20958        } else {
20959            None
20960        }
20961    }
20962    #[inline]
20963    fn syntax(&self) -> &SyntaxNode {
20964        &self.syntax
20965    }
20966}
20967impl AstNode for WhereCurrentOf {
20968    #[inline]
20969    fn can_cast(kind: SyntaxKind) -> bool {
20970        kind == SyntaxKind::WHERE_CURRENT_OF
20971    }
20972    #[inline]
20973    fn cast(syntax: SyntaxNode) -> Option<Self> {
20974        if Self::can_cast(syntax.kind()) {
20975            Some(Self { syntax })
20976        } else {
20977            None
20978        }
20979    }
20980    #[inline]
20981    fn syntax(&self) -> &SyntaxNode {
20982        &self.syntax
20983    }
20984}
20985impl AstNode for WindowClause {
20986    #[inline]
20987    fn can_cast(kind: SyntaxKind) -> bool {
20988        kind == SyntaxKind::WINDOW_CLAUSE
20989    }
20990    #[inline]
20991    fn cast(syntax: SyntaxNode) -> Option<Self> {
20992        if Self::can_cast(syntax.kind()) {
20993            Some(Self { syntax })
20994        } else {
20995            None
20996        }
20997    }
20998    #[inline]
20999    fn syntax(&self) -> &SyntaxNode {
21000        &self.syntax
21001    }
21002}
21003impl AstNode for WindowDef {
21004    #[inline]
21005    fn can_cast(kind: SyntaxKind) -> bool {
21006        kind == SyntaxKind::WINDOW_DEF
21007    }
21008    #[inline]
21009    fn cast(syntax: SyntaxNode) -> Option<Self> {
21010        if Self::can_cast(syntax.kind()) {
21011            Some(Self { syntax })
21012        } else {
21013            None
21014        }
21015    }
21016    #[inline]
21017    fn syntax(&self) -> &SyntaxNode {
21018        &self.syntax
21019    }
21020}
21021impl AstNode for WindowFuncOption {
21022    #[inline]
21023    fn can_cast(kind: SyntaxKind) -> bool {
21024        kind == SyntaxKind::WINDOW_FUNC_OPTION
21025    }
21026    #[inline]
21027    fn cast(syntax: SyntaxNode) -> Option<Self> {
21028        if Self::can_cast(syntax.kind()) {
21029            Some(Self { syntax })
21030        } else {
21031            None
21032        }
21033    }
21034    #[inline]
21035    fn syntax(&self) -> &SyntaxNode {
21036        &self.syntax
21037    }
21038}
21039impl AstNode for WindowSpec {
21040    #[inline]
21041    fn can_cast(kind: SyntaxKind) -> bool {
21042        kind == SyntaxKind::WINDOW_SPEC
21043    }
21044    #[inline]
21045    fn cast(syntax: SyntaxNode) -> Option<Self> {
21046        if Self::can_cast(syntax.kind()) {
21047            Some(Self { syntax })
21048        } else {
21049            None
21050        }
21051    }
21052    #[inline]
21053    fn syntax(&self) -> &SyntaxNode {
21054        &self.syntax
21055    }
21056}
21057impl AstNode for WithClause {
21058    #[inline]
21059    fn can_cast(kind: SyntaxKind) -> bool {
21060        kind == SyntaxKind::WITH_CLAUSE
21061    }
21062    #[inline]
21063    fn cast(syntax: SyntaxNode) -> Option<Self> {
21064        if Self::can_cast(syntax.kind()) {
21065            Some(Self { syntax })
21066        } else {
21067            None
21068        }
21069    }
21070    #[inline]
21071    fn syntax(&self) -> &SyntaxNode {
21072        &self.syntax
21073    }
21074}
21075impl AstNode for WithData {
21076    #[inline]
21077    fn can_cast(kind: SyntaxKind) -> bool {
21078        kind == SyntaxKind::WITH_DATA
21079    }
21080    #[inline]
21081    fn cast(syntax: SyntaxNode) -> Option<Self> {
21082        if Self::can_cast(syntax.kind()) {
21083            Some(Self { syntax })
21084        } else {
21085            None
21086        }
21087    }
21088    #[inline]
21089    fn syntax(&self) -> &SyntaxNode {
21090        &self.syntax
21091    }
21092}
21093impl AstNode for WithNoData {
21094    #[inline]
21095    fn can_cast(kind: SyntaxKind) -> bool {
21096        kind == SyntaxKind::WITH_NO_DATA
21097    }
21098    #[inline]
21099    fn cast(syntax: SyntaxNode) -> Option<Self> {
21100        if Self::can_cast(syntax.kind()) {
21101            Some(Self { syntax })
21102        } else {
21103            None
21104        }
21105    }
21106    #[inline]
21107    fn syntax(&self) -> &SyntaxNode {
21108        &self.syntax
21109    }
21110}
21111impl AstNode for WithOptions {
21112    #[inline]
21113    fn can_cast(kind: SyntaxKind) -> bool {
21114        kind == SyntaxKind::WITH_OPTIONS
21115    }
21116    #[inline]
21117    fn cast(syntax: SyntaxNode) -> Option<Self> {
21118        if Self::can_cast(syntax.kind()) {
21119            Some(Self { syntax })
21120        } else {
21121            None
21122        }
21123    }
21124    #[inline]
21125    fn syntax(&self) -> &SyntaxNode {
21126        &self.syntax
21127    }
21128}
21129impl AstNode for WithParams {
21130    #[inline]
21131    fn can_cast(kind: SyntaxKind) -> bool {
21132        kind == SyntaxKind::WITH_PARAMS
21133    }
21134    #[inline]
21135    fn cast(syntax: SyntaxNode) -> Option<Self> {
21136        if Self::can_cast(syntax.kind()) {
21137            Some(Self { syntax })
21138        } else {
21139            None
21140        }
21141    }
21142    #[inline]
21143    fn syntax(&self) -> &SyntaxNode {
21144        &self.syntax
21145    }
21146}
21147impl AstNode for WithTable {
21148    #[inline]
21149    fn can_cast(kind: SyntaxKind) -> bool {
21150        kind == SyntaxKind::WITH_TABLE
21151    }
21152    #[inline]
21153    fn cast(syntax: SyntaxNode) -> Option<Self> {
21154        if Self::can_cast(syntax.kind()) {
21155            Some(Self { syntax })
21156        } else {
21157            None
21158        }
21159    }
21160    #[inline]
21161    fn syntax(&self) -> &SyntaxNode {
21162        &self.syntax
21163    }
21164}
21165impl AstNode for WithTimezone {
21166    #[inline]
21167    fn can_cast(kind: SyntaxKind) -> bool {
21168        kind == SyntaxKind::WITH_TIMEZONE
21169    }
21170    #[inline]
21171    fn cast(syntax: SyntaxNode) -> Option<Self> {
21172        if Self::can_cast(syntax.kind()) {
21173            Some(Self { syntax })
21174        } else {
21175            None
21176        }
21177    }
21178    #[inline]
21179    fn syntax(&self) -> &SyntaxNode {
21180        &self.syntax
21181    }
21182}
21183impl AstNode for WithinClause {
21184    #[inline]
21185    fn can_cast(kind: SyntaxKind) -> bool {
21186        kind == SyntaxKind::WITHIN_CLAUSE
21187    }
21188    #[inline]
21189    fn cast(syntax: SyntaxNode) -> Option<Self> {
21190        if Self::can_cast(syntax.kind()) {
21191            Some(Self { syntax })
21192        } else {
21193            None
21194        }
21195    }
21196    #[inline]
21197    fn syntax(&self) -> &SyntaxNode {
21198        &self.syntax
21199    }
21200}
21201impl AstNode for WithoutOids {
21202    #[inline]
21203    fn can_cast(kind: SyntaxKind) -> bool {
21204        kind == SyntaxKind::WITHOUT_OIDS
21205    }
21206    #[inline]
21207    fn cast(syntax: SyntaxNode) -> Option<Self> {
21208        if Self::can_cast(syntax.kind()) {
21209            Some(Self { syntax })
21210        } else {
21211            None
21212        }
21213    }
21214    #[inline]
21215    fn syntax(&self) -> &SyntaxNode {
21216        &self.syntax
21217    }
21218}
21219impl AstNode for WithoutTimezone {
21220    #[inline]
21221    fn can_cast(kind: SyntaxKind) -> bool {
21222        kind == SyntaxKind::WITHOUT_TIMEZONE
21223    }
21224    #[inline]
21225    fn cast(syntax: SyntaxNode) -> Option<Self> {
21226        if Self::can_cast(syntax.kind()) {
21227            Some(Self { syntax })
21228        } else {
21229            None
21230        }
21231    }
21232    #[inline]
21233    fn syntax(&self) -> &SyntaxNode {
21234        &self.syntax
21235    }
21236}
21237impl AstNode for XmlColumnOption {
21238    #[inline]
21239    fn can_cast(kind: SyntaxKind) -> bool {
21240        kind == SyntaxKind::XML_COLUMN_OPTION
21241    }
21242    #[inline]
21243    fn cast(syntax: SyntaxNode) -> Option<Self> {
21244        if Self::can_cast(syntax.kind()) {
21245            Some(Self { syntax })
21246        } else {
21247            None
21248        }
21249    }
21250    #[inline]
21251    fn syntax(&self) -> &SyntaxNode {
21252        &self.syntax
21253    }
21254}
21255impl AstNode for XmlColumnOptionList {
21256    #[inline]
21257    fn can_cast(kind: SyntaxKind) -> bool {
21258        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
21259    }
21260    #[inline]
21261    fn cast(syntax: SyntaxNode) -> Option<Self> {
21262        if Self::can_cast(syntax.kind()) {
21263            Some(Self { syntax })
21264        } else {
21265            None
21266        }
21267    }
21268    #[inline]
21269    fn syntax(&self) -> &SyntaxNode {
21270        &self.syntax
21271    }
21272}
21273impl AstNode for XmlTableColumn {
21274    #[inline]
21275    fn can_cast(kind: SyntaxKind) -> bool {
21276        kind == SyntaxKind::XML_TABLE_COLUMN
21277    }
21278    #[inline]
21279    fn cast(syntax: SyntaxNode) -> Option<Self> {
21280        if Self::can_cast(syntax.kind()) {
21281            Some(Self { syntax })
21282        } else {
21283            None
21284        }
21285    }
21286    #[inline]
21287    fn syntax(&self) -> &SyntaxNode {
21288        &self.syntax
21289    }
21290}
21291impl AstNode for XmlTableColumnList {
21292    #[inline]
21293    fn can_cast(kind: SyntaxKind) -> bool {
21294        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
21295    }
21296    #[inline]
21297    fn cast(syntax: SyntaxNode) -> Option<Self> {
21298        if Self::can_cast(syntax.kind()) {
21299            Some(Self { syntax })
21300        } else {
21301            None
21302        }
21303    }
21304    #[inline]
21305    fn syntax(&self) -> &SyntaxNode {
21306        &self.syntax
21307    }
21308}
21309impl AstNode for AlterColumnOption {
21310    #[inline]
21311    fn can_cast(kind: SyntaxKind) -> bool {
21312        matches!(
21313            kind,
21314            SyntaxKind::ADD_GENERATED
21315                | SyntaxKind::DROP_DEFAULT
21316                | SyntaxKind::DROP_EXPRESSION
21317                | SyntaxKind::DROP_IDENTITY
21318                | SyntaxKind::DROP_NOT_NULL
21319                | SyntaxKind::RESET_OPTIONS
21320                | SyntaxKind::RESTART
21321                | SyntaxKind::SET_COMPRESSION
21322                | SyntaxKind::SET_DEFAULT
21323                | SyntaxKind::SET_EXPRESSION
21324                | SyntaxKind::SET_GENERATED
21325                | SyntaxKind::SET_GENERATED_OPTIONS
21326                | SyntaxKind::SET_NOT_NULL
21327                | SyntaxKind::SET_OPTIONS
21328                | SyntaxKind::SET_OPTIONS_LIST
21329                | SyntaxKind::SET_SEQUENCE_OPTION
21330                | SyntaxKind::SET_STATISTICS
21331                | SyntaxKind::SET_STORAGE
21332                | SyntaxKind::SET_TYPE
21333        )
21334    }
21335    #[inline]
21336    fn cast(syntax: SyntaxNode) -> Option<Self> {
21337        let res = match syntax.kind() {
21338            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
21339            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
21340            SyntaxKind::DROP_EXPRESSION => {
21341                AlterColumnOption::DropExpression(DropExpression { syntax })
21342            }
21343            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
21344            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
21345            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
21346            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
21347            SyntaxKind::SET_COMPRESSION => {
21348                AlterColumnOption::SetCompression(SetCompression { syntax })
21349            }
21350            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
21351            SyntaxKind::SET_EXPRESSION => {
21352                AlterColumnOption::SetExpression(SetExpression { syntax })
21353            }
21354            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
21355            SyntaxKind::SET_GENERATED_OPTIONS => {
21356                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
21357            }
21358            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
21359            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
21360            SyntaxKind::SET_OPTIONS_LIST => {
21361                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
21362            }
21363            SyntaxKind::SET_SEQUENCE_OPTION => {
21364                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
21365            }
21366            SyntaxKind::SET_STATISTICS => {
21367                AlterColumnOption::SetStatistics(SetStatistics { syntax })
21368            }
21369            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
21370            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
21371            _ => {
21372                return None;
21373            }
21374        };
21375        Some(res)
21376    }
21377    #[inline]
21378    fn syntax(&self) -> &SyntaxNode {
21379        match self {
21380            AlterColumnOption::AddGenerated(it) => &it.syntax,
21381            AlterColumnOption::DropDefault(it) => &it.syntax,
21382            AlterColumnOption::DropExpression(it) => &it.syntax,
21383            AlterColumnOption::DropIdentity(it) => &it.syntax,
21384            AlterColumnOption::DropNotNull(it) => &it.syntax,
21385            AlterColumnOption::ResetOptions(it) => &it.syntax,
21386            AlterColumnOption::Restart(it) => &it.syntax,
21387            AlterColumnOption::SetCompression(it) => &it.syntax,
21388            AlterColumnOption::SetDefault(it) => &it.syntax,
21389            AlterColumnOption::SetExpression(it) => &it.syntax,
21390            AlterColumnOption::SetGenerated(it) => &it.syntax,
21391            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
21392            AlterColumnOption::SetNotNull(it) => &it.syntax,
21393            AlterColumnOption::SetOptions(it) => &it.syntax,
21394            AlterColumnOption::SetOptionsList(it) => &it.syntax,
21395            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
21396            AlterColumnOption::SetStatistics(it) => &it.syntax,
21397            AlterColumnOption::SetStorage(it) => &it.syntax,
21398            AlterColumnOption::SetType(it) => &it.syntax,
21399        }
21400    }
21401}
21402impl From<AddGenerated> for AlterColumnOption {
21403    #[inline]
21404    fn from(node: AddGenerated) -> AlterColumnOption {
21405        AlterColumnOption::AddGenerated(node)
21406    }
21407}
21408impl From<DropDefault> for AlterColumnOption {
21409    #[inline]
21410    fn from(node: DropDefault) -> AlterColumnOption {
21411        AlterColumnOption::DropDefault(node)
21412    }
21413}
21414impl From<DropExpression> for AlterColumnOption {
21415    #[inline]
21416    fn from(node: DropExpression) -> AlterColumnOption {
21417        AlterColumnOption::DropExpression(node)
21418    }
21419}
21420impl From<DropIdentity> for AlterColumnOption {
21421    #[inline]
21422    fn from(node: DropIdentity) -> AlterColumnOption {
21423        AlterColumnOption::DropIdentity(node)
21424    }
21425}
21426impl From<DropNotNull> for AlterColumnOption {
21427    #[inline]
21428    fn from(node: DropNotNull) -> AlterColumnOption {
21429        AlterColumnOption::DropNotNull(node)
21430    }
21431}
21432impl From<ResetOptions> for AlterColumnOption {
21433    #[inline]
21434    fn from(node: ResetOptions) -> AlterColumnOption {
21435        AlterColumnOption::ResetOptions(node)
21436    }
21437}
21438impl From<Restart> for AlterColumnOption {
21439    #[inline]
21440    fn from(node: Restart) -> AlterColumnOption {
21441        AlterColumnOption::Restart(node)
21442    }
21443}
21444impl From<SetCompression> for AlterColumnOption {
21445    #[inline]
21446    fn from(node: SetCompression) -> AlterColumnOption {
21447        AlterColumnOption::SetCompression(node)
21448    }
21449}
21450impl From<SetDefault> for AlterColumnOption {
21451    #[inline]
21452    fn from(node: SetDefault) -> AlterColumnOption {
21453        AlterColumnOption::SetDefault(node)
21454    }
21455}
21456impl From<SetExpression> for AlterColumnOption {
21457    #[inline]
21458    fn from(node: SetExpression) -> AlterColumnOption {
21459        AlterColumnOption::SetExpression(node)
21460    }
21461}
21462impl From<SetGenerated> for AlterColumnOption {
21463    #[inline]
21464    fn from(node: SetGenerated) -> AlterColumnOption {
21465        AlterColumnOption::SetGenerated(node)
21466    }
21467}
21468impl From<SetGeneratedOptions> for AlterColumnOption {
21469    #[inline]
21470    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
21471        AlterColumnOption::SetGeneratedOptions(node)
21472    }
21473}
21474impl From<SetNotNull> for AlterColumnOption {
21475    #[inline]
21476    fn from(node: SetNotNull) -> AlterColumnOption {
21477        AlterColumnOption::SetNotNull(node)
21478    }
21479}
21480impl From<SetOptions> for AlterColumnOption {
21481    #[inline]
21482    fn from(node: SetOptions) -> AlterColumnOption {
21483        AlterColumnOption::SetOptions(node)
21484    }
21485}
21486impl From<SetOptionsList> for AlterColumnOption {
21487    #[inline]
21488    fn from(node: SetOptionsList) -> AlterColumnOption {
21489        AlterColumnOption::SetOptionsList(node)
21490    }
21491}
21492impl From<SetSequenceOption> for AlterColumnOption {
21493    #[inline]
21494    fn from(node: SetSequenceOption) -> AlterColumnOption {
21495        AlterColumnOption::SetSequenceOption(node)
21496    }
21497}
21498impl From<SetStatistics> for AlterColumnOption {
21499    #[inline]
21500    fn from(node: SetStatistics) -> AlterColumnOption {
21501        AlterColumnOption::SetStatistics(node)
21502    }
21503}
21504impl From<SetStorage> for AlterColumnOption {
21505    #[inline]
21506    fn from(node: SetStorage) -> AlterColumnOption {
21507        AlterColumnOption::SetStorage(node)
21508    }
21509}
21510impl From<SetType> for AlterColumnOption {
21511    #[inline]
21512    fn from(node: SetType) -> AlterColumnOption {
21513        AlterColumnOption::SetType(node)
21514    }
21515}
21516impl AstNode for AlterDomainAction {
21517    #[inline]
21518    fn can_cast(kind: SyntaxKind) -> bool {
21519        matches!(
21520            kind,
21521            SyntaxKind::ADD_CONSTRAINT
21522                | SyntaxKind::DROP_CONSTRAINT
21523                | SyntaxKind::DROP_DEFAULT
21524                | SyntaxKind::DROP_NOT_NULL
21525                | SyntaxKind::OWNER_TO
21526                | SyntaxKind::RENAME_CONSTRAINT
21527                | SyntaxKind::RENAME_TO
21528                | SyntaxKind::SET_DEFAULT
21529                | SyntaxKind::SET_NOT_NULL
21530                | SyntaxKind::SET_SCHEMA
21531                | SyntaxKind::VALIDATE_CONSTRAINT
21532        )
21533    }
21534    #[inline]
21535    fn cast(syntax: SyntaxNode) -> Option<Self> {
21536        let res = match syntax.kind() {
21537            SyntaxKind::ADD_CONSTRAINT => {
21538                AlterDomainAction::AddConstraint(AddConstraint { syntax })
21539            }
21540            SyntaxKind::DROP_CONSTRAINT => {
21541                AlterDomainAction::DropConstraint(DropConstraint { syntax })
21542            }
21543            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
21544            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
21545            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
21546            SyntaxKind::RENAME_CONSTRAINT => {
21547                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
21548            }
21549            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
21550            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
21551            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
21552            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
21553            SyntaxKind::VALIDATE_CONSTRAINT => {
21554                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
21555            }
21556            _ => {
21557                return None;
21558            }
21559        };
21560        Some(res)
21561    }
21562    #[inline]
21563    fn syntax(&self) -> &SyntaxNode {
21564        match self {
21565            AlterDomainAction::AddConstraint(it) => &it.syntax,
21566            AlterDomainAction::DropConstraint(it) => &it.syntax,
21567            AlterDomainAction::DropDefault(it) => &it.syntax,
21568            AlterDomainAction::DropNotNull(it) => &it.syntax,
21569            AlterDomainAction::OwnerTo(it) => &it.syntax,
21570            AlterDomainAction::RenameConstraint(it) => &it.syntax,
21571            AlterDomainAction::RenameTo(it) => &it.syntax,
21572            AlterDomainAction::SetDefault(it) => &it.syntax,
21573            AlterDomainAction::SetNotNull(it) => &it.syntax,
21574            AlterDomainAction::SetSchema(it) => &it.syntax,
21575            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
21576        }
21577    }
21578}
21579impl From<AddConstraint> for AlterDomainAction {
21580    #[inline]
21581    fn from(node: AddConstraint) -> AlterDomainAction {
21582        AlterDomainAction::AddConstraint(node)
21583    }
21584}
21585impl From<DropConstraint> for AlterDomainAction {
21586    #[inline]
21587    fn from(node: DropConstraint) -> AlterDomainAction {
21588        AlterDomainAction::DropConstraint(node)
21589    }
21590}
21591impl From<DropDefault> for AlterDomainAction {
21592    #[inline]
21593    fn from(node: DropDefault) -> AlterDomainAction {
21594        AlterDomainAction::DropDefault(node)
21595    }
21596}
21597impl From<DropNotNull> for AlterDomainAction {
21598    #[inline]
21599    fn from(node: DropNotNull) -> AlterDomainAction {
21600        AlterDomainAction::DropNotNull(node)
21601    }
21602}
21603impl From<OwnerTo> for AlterDomainAction {
21604    #[inline]
21605    fn from(node: OwnerTo) -> AlterDomainAction {
21606        AlterDomainAction::OwnerTo(node)
21607    }
21608}
21609impl From<RenameConstraint> for AlterDomainAction {
21610    #[inline]
21611    fn from(node: RenameConstraint) -> AlterDomainAction {
21612        AlterDomainAction::RenameConstraint(node)
21613    }
21614}
21615impl From<RenameTo> for AlterDomainAction {
21616    #[inline]
21617    fn from(node: RenameTo) -> AlterDomainAction {
21618        AlterDomainAction::RenameTo(node)
21619    }
21620}
21621impl From<SetDefault> for AlterDomainAction {
21622    #[inline]
21623    fn from(node: SetDefault) -> AlterDomainAction {
21624        AlterDomainAction::SetDefault(node)
21625    }
21626}
21627impl From<SetNotNull> for AlterDomainAction {
21628    #[inline]
21629    fn from(node: SetNotNull) -> AlterDomainAction {
21630        AlterDomainAction::SetNotNull(node)
21631    }
21632}
21633impl From<SetSchema> for AlterDomainAction {
21634    #[inline]
21635    fn from(node: SetSchema) -> AlterDomainAction {
21636        AlterDomainAction::SetSchema(node)
21637    }
21638}
21639impl From<ValidateConstraint> for AlterDomainAction {
21640    #[inline]
21641    fn from(node: ValidateConstraint) -> AlterDomainAction {
21642        AlterDomainAction::ValidateConstraint(node)
21643    }
21644}
21645impl AstNode for AlterTableAction {
21646    #[inline]
21647    fn can_cast(kind: SyntaxKind) -> bool {
21648        matches!(
21649            kind,
21650            SyntaxKind::ADD_COLUMN
21651                | SyntaxKind::ADD_CONSTRAINT
21652                | SyntaxKind::ALTER_COLUMN
21653                | SyntaxKind::ALTER_CONSTRAINT
21654                | SyntaxKind::ATTACH_PARTITION
21655                | SyntaxKind::CLUSTER_ON
21656                | SyntaxKind::DETACH_PARTITION
21657                | SyntaxKind::DISABLE_RLS
21658                | SyntaxKind::DISABLE_RULE
21659                | SyntaxKind::DISABLE_TRIGGER
21660                | SyntaxKind::DROP_COLUMN
21661                | SyntaxKind::DROP_CONSTRAINT
21662                | SyntaxKind::ENABLE_ALWAYS_RULE
21663                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
21664                | SyntaxKind::ENABLE_REPLICA_RULE
21665                | SyntaxKind::ENABLE_REPLICA_TRIGGER
21666                | SyntaxKind::ENABLE_RLS
21667                | SyntaxKind::ENABLE_RULE
21668                | SyntaxKind::ENABLE_TRIGGER
21669                | SyntaxKind::FORCE_RLS
21670                | SyntaxKind::INHERIT_TABLE
21671                | SyntaxKind::NO_FORCE_RLS
21672                | SyntaxKind::NO_INHERIT_TABLE
21673                | SyntaxKind::NOT_OF
21674                | SyntaxKind::OF_TYPE
21675                | SyntaxKind::OPTION_ITEM_LIST
21676                | SyntaxKind::OWNER_TO
21677                | SyntaxKind::RENAME_COLUMN
21678                | SyntaxKind::RENAME_CONSTRAINT
21679                | SyntaxKind::RENAME_TABLE
21680                | SyntaxKind::REPLICA_IDENTITY
21681                | SyntaxKind::RESET_STORAGE_PARAMS
21682                | SyntaxKind::SET_ACCESS_METHOD
21683                | SyntaxKind::SET_LOGGED
21684                | SyntaxKind::SET_SCHEMA
21685                | SyntaxKind::SET_STORAGE_PARAMS
21686                | SyntaxKind::SET_TABLESPACE
21687                | SyntaxKind::SET_UNLOGGED
21688                | SyntaxKind::SET_WITHOUT_CLUSTER
21689                | SyntaxKind::SET_WITHOUT_OIDS
21690                | SyntaxKind::VALIDATE_CONSTRAINT
21691        )
21692    }
21693    #[inline]
21694    fn cast(syntax: SyntaxNode) -> Option<Self> {
21695        let res = match syntax.kind() {
21696            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
21697            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
21698            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
21699            SyntaxKind::ALTER_CONSTRAINT => {
21700                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
21701            }
21702            SyntaxKind::ATTACH_PARTITION => {
21703                AlterTableAction::AttachPartition(AttachPartition { syntax })
21704            }
21705            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
21706            SyntaxKind::DETACH_PARTITION => {
21707                AlterTableAction::DetachPartition(DetachPartition { syntax })
21708            }
21709            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
21710            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
21711            SyntaxKind::DISABLE_TRIGGER => {
21712                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
21713            }
21714            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
21715            SyntaxKind::DROP_CONSTRAINT => {
21716                AlterTableAction::DropConstraint(DropConstraint { syntax })
21717            }
21718            SyntaxKind::ENABLE_ALWAYS_RULE => {
21719                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
21720            }
21721            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
21722                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
21723            }
21724            SyntaxKind::ENABLE_REPLICA_RULE => {
21725                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
21726            }
21727            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
21728                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
21729            }
21730            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
21731            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
21732            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
21733            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
21734            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
21735            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
21736            SyntaxKind::NO_INHERIT_TABLE => {
21737                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
21738            }
21739            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
21740            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
21741            SyntaxKind::OPTION_ITEM_LIST => {
21742                AlterTableAction::OptionItemList(OptionItemList { syntax })
21743            }
21744            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
21745            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
21746            SyntaxKind::RENAME_CONSTRAINT => {
21747                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
21748            }
21749            SyntaxKind::RENAME_TABLE => AlterTableAction::RenameTable(RenameTable { syntax }),
21750            SyntaxKind::REPLICA_IDENTITY => {
21751                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
21752            }
21753            SyntaxKind::RESET_STORAGE_PARAMS => {
21754                AlterTableAction::ResetStorageParams(ResetStorageParams { syntax })
21755            }
21756            SyntaxKind::SET_ACCESS_METHOD => {
21757                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
21758            }
21759            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
21760            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
21761            SyntaxKind::SET_STORAGE_PARAMS => {
21762                AlterTableAction::SetStorageParams(SetStorageParams { syntax })
21763            }
21764            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
21765            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
21766            SyntaxKind::SET_WITHOUT_CLUSTER => {
21767                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
21768            }
21769            SyntaxKind::SET_WITHOUT_OIDS => {
21770                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
21771            }
21772            SyntaxKind::VALIDATE_CONSTRAINT => {
21773                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
21774            }
21775            _ => {
21776                return None;
21777            }
21778        };
21779        Some(res)
21780    }
21781    #[inline]
21782    fn syntax(&self) -> &SyntaxNode {
21783        match self {
21784            AlterTableAction::AddColumn(it) => &it.syntax,
21785            AlterTableAction::AddConstraint(it) => &it.syntax,
21786            AlterTableAction::AlterColumn(it) => &it.syntax,
21787            AlterTableAction::AlterConstraint(it) => &it.syntax,
21788            AlterTableAction::AttachPartition(it) => &it.syntax,
21789            AlterTableAction::ClusterOn(it) => &it.syntax,
21790            AlterTableAction::DetachPartition(it) => &it.syntax,
21791            AlterTableAction::DisableRls(it) => &it.syntax,
21792            AlterTableAction::DisableRule(it) => &it.syntax,
21793            AlterTableAction::DisableTrigger(it) => &it.syntax,
21794            AlterTableAction::DropColumn(it) => &it.syntax,
21795            AlterTableAction::DropConstraint(it) => &it.syntax,
21796            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
21797            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
21798            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
21799            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
21800            AlterTableAction::EnableRls(it) => &it.syntax,
21801            AlterTableAction::EnableRule(it) => &it.syntax,
21802            AlterTableAction::EnableTrigger(it) => &it.syntax,
21803            AlterTableAction::ForceRls(it) => &it.syntax,
21804            AlterTableAction::InheritTable(it) => &it.syntax,
21805            AlterTableAction::NoForceRls(it) => &it.syntax,
21806            AlterTableAction::NoInheritTable(it) => &it.syntax,
21807            AlterTableAction::NotOf(it) => &it.syntax,
21808            AlterTableAction::OfType(it) => &it.syntax,
21809            AlterTableAction::OptionItemList(it) => &it.syntax,
21810            AlterTableAction::OwnerTo(it) => &it.syntax,
21811            AlterTableAction::RenameColumn(it) => &it.syntax,
21812            AlterTableAction::RenameConstraint(it) => &it.syntax,
21813            AlterTableAction::RenameTable(it) => &it.syntax,
21814            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
21815            AlterTableAction::ResetStorageParams(it) => &it.syntax,
21816            AlterTableAction::SetAccessMethod(it) => &it.syntax,
21817            AlterTableAction::SetLogged(it) => &it.syntax,
21818            AlterTableAction::SetSchema(it) => &it.syntax,
21819            AlterTableAction::SetStorageParams(it) => &it.syntax,
21820            AlterTableAction::SetTablespace(it) => &it.syntax,
21821            AlterTableAction::SetUnlogged(it) => &it.syntax,
21822            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
21823            AlterTableAction::SetWithoutOids(it) => &it.syntax,
21824            AlterTableAction::ValidateConstraint(it) => &it.syntax,
21825        }
21826    }
21827}
21828impl From<AddColumn> for AlterTableAction {
21829    #[inline]
21830    fn from(node: AddColumn) -> AlterTableAction {
21831        AlterTableAction::AddColumn(node)
21832    }
21833}
21834impl From<AddConstraint> for AlterTableAction {
21835    #[inline]
21836    fn from(node: AddConstraint) -> AlterTableAction {
21837        AlterTableAction::AddConstraint(node)
21838    }
21839}
21840impl From<AlterColumn> for AlterTableAction {
21841    #[inline]
21842    fn from(node: AlterColumn) -> AlterTableAction {
21843        AlterTableAction::AlterColumn(node)
21844    }
21845}
21846impl From<AlterConstraint> for AlterTableAction {
21847    #[inline]
21848    fn from(node: AlterConstraint) -> AlterTableAction {
21849        AlterTableAction::AlterConstraint(node)
21850    }
21851}
21852impl From<AttachPartition> for AlterTableAction {
21853    #[inline]
21854    fn from(node: AttachPartition) -> AlterTableAction {
21855        AlterTableAction::AttachPartition(node)
21856    }
21857}
21858impl From<ClusterOn> for AlterTableAction {
21859    #[inline]
21860    fn from(node: ClusterOn) -> AlterTableAction {
21861        AlterTableAction::ClusterOn(node)
21862    }
21863}
21864impl From<DetachPartition> for AlterTableAction {
21865    #[inline]
21866    fn from(node: DetachPartition) -> AlterTableAction {
21867        AlterTableAction::DetachPartition(node)
21868    }
21869}
21870impl From<DisableRls> for AlterTableAction {
21871    #[inline]
21872    fn from(node: DisableRls) -> AlterTableAction {
21873        AlterTableAction::DisableRls(node)
21874    }
21875}
21876impl From<DisableRule> for AlterTableAction {
21877    #[inline]
21878    fn from(node: DisableRule) -> AlterTableAction {
21879        AlterTableAction::DisableRule(node)
21880    }
21881}
21882impl From<DisableTrigger> for AlterTableAction {
21883    #[inline]
21884    fn from(node: DisableTrigger) -> AlterTableAction {
21885        AlterTableAction::DisableTrigger(node)
21886    }
21887}
21888impl From<DropColumn> for AlterTableAction {
21889    #[inline]
21890    fn from(node: DropColumn) -> AlterTableAction {
21891        AlterTableAction::DropColumn(node)
21892    }
21893}
21894impl From<DropConstraint> for AlterTableAction {
21895    #[inline]
21896    fn from(node: DropConstraint) -> AlterTableAction {
21897        AlterTableAction::DropConstraint(node)
21898    }
21899}
21900impl From<EnableAlwaysRule> for AlterTableAction {
21901    #[inline]
21902    fn from(node: EnableAlwaysRule) -> AlterTableAction {
21903        AlterTableAction::EnableAlwaysRule(node)
21904    }
21905}
21906impl From<EnableAlwaysTrigger> for AlterTableAction {
21907    #[inline]
21908    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
21909        AlterTableAction::EnableAlwaysTrigger(node)
21910    }
21911}
21912impl From<EnableReplicaRule> for AlterTableAction {
21913    #[inline]
21914    fn from(node: EnableReplicaRule) -> AlterTableAction {
21915        AlterTableAction::EnableReplicaRule(node)
21916    }
21917}
21918impl From<EnableReplicaTrigger> for AlterTableAction {
21919    #[inline]
21920    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
21921        AlterTableAction::EnableReplicaTrigger(node)
21922    }
21923}
21924impl From<EnableRls> for AlterTableAction {
21925    #[inline]
21926    fn from(node: EnableRls) -> AlterTableAction {
21927        AlterTableAction::EnableRls(node)
21928    }
21929}
21930impl From<EnableRule> for AlterTableAction {
21931    #[inline]
21932    fn from(node: EnableRule) -> AlterTableAction {
21933        AlterTableAction::EnableRule(node)
21934    }
21935}
21936impl From<EnableTrigger> for AlterTableAction {
21937    #[inline]
21938    fn from(node: EnableTrigger) -> AlterTableAction {
21939        AlterTableAction::EnableTrigger(node)
21940    }
21941}
21942impl From<ForceRls> for AlterTableAction {
21943    #[inline]
21944    fn from(node: ForceRls) -> AlterTableAction {
21945        AlterTableAction::ForceRls(node)
21946    }
21947}
21948impl From<InheritTable> for AlterTableAction {
21949    #[inline]
21950    fn from(node: InheritTable) -> AlterTableAction {
21951        AlterTableAction::InheritTable(node)
21952    }
21953}
21954impl From<NoForceRls> for AlterTableAction {
21955    #[inline]
21956    fn from(node: NoForceRls) -> AlterTableAction {
21957        AlterTableAction::NoForceRls(node)
21958    }
21959}
21960impl From<NoInheritTable> for AlterTableAction {
21961    #[inline]
21962    fn from(node: NoInheritTable) -> AlterTableAction {
21963        AlterTableAction::NoInheritTable(node)
21964    }
21965}
21966impl From<NotOf> for AlterTableAction {
21967    #[inline]
21968    fn from(node: NotOf) -> AlterTableAction {
21969        AlterTableAction::NotOf(node)
21970    }
21971}
21972impl From<OfType> for AlterTableAction {
21973    #[inline]
21974    fn from(node: OfType) -> AlterTableAction {
21975        AlterTableAction::OfType(node)
21976    }
21977}
21978impl From<OptionItemList> for AlterTableAction {
21979    #[inline]
21980    fn from(node: OptionItemList) -> AlterTableAction {
21981        AlterTableAction::OptionItemList(node)
21982    }
21983}
21984impl From<OwnerTo> for AlterTableAction {
21985    #[inline]
21986    fn from(node: OwnerTo) -> AlterTableAction {
21987        AlterTableAction::OwnerTo(node)
21988    }
21989}
21990impl From<RenameColumn> for AlterTableAction {
21991    #[inline]
21992    fn from(node: RenameColumn) -> AlterTableAction {
21993        AlterTableAction::RenameColumn(node)
21994    }
21995}
21996impl From<RenameConstraint> for AlterTableAction {
21997    #[inline]
21998    fn from(node: RenameConstraint) -> AlterTableAction {
21999        AlterTableAction::RenameConstraint(node)
22000    }
22001}
22002impl From<RenameTable> for AlterTableAction {
22003    #[inline]
22004    fn from(node: RenameTable) -> AlterTableAction {
22005        AlterTableAction::RenameTable(node)
22006    }
22007}
22008impl From<ReplicaIdentity> for AlterTableAction {
22009    #[inline]
22010    fn from(node: ReplicaIdentity) -> AlterTableAction {
22011        AlterTableAction::ReplicaIdentity(node)
22012    }
22013}
22014impl From<ResetStorageParams> for AlterTableAction {
22015    #[inline]
22016    fn from(node: ResetStorageParams) -> AlterTableAction {
22017        AlterTableAction::ResetStorageParams(node)
22018    }
22019}
22020impl From<SetAccessMethod> for AlterTableAction {
22021    #[inline]
22022    fn from(node: SetAccessMethod) -> AlterTableAction {
22023        AlterTableAction::SetAccessMethod(node)
22024    }
22025}
22026impl From<SetLogged> for AlterTableAction {
22027    #[inline]
22028    fn from(node: SetLogged) -> AlterTableAction {
22029        AlterTableAction::SetLogged(node)
22030    }
22031}
22032impl From<SetSchema> for AlterTableAction {
22033    #[inline]
22034    fn from(node: SetSchema) -> AlterTableAction {
22035        AlterTableAction::SetSchema(node)
22036    }
22037}
22038impl From<SetStorageParams> for AlterTableAction {
22039    #[inline]
22040    fn from(node: SetStorageParams) -> AlterTableAction {
22041        AlterTableAction::SetStorageParams(node)
22042    }
22043}
22044impl From<SetTablespace> for AlterTableAction {
22045    #[inline]
22046    fn from(node: SetTablespace) -> AlterTableAction {
22047        AlterTableAction::SetTablespace(node)
22048    }
22049}
22050impl From<SetUnlogged> for AlterTableAction {
22051    #[inline]
22052    fn from(node: SetUnlogged) -> AlterTableAction {
22053        AlterTableAction::SetUnlogged(node)
22054    }
22055}
22056impl From<SetWithoutCluster> for AlterTableAction {
22057    #[inline]
22058    fn from(node: SetWithoutCluster) -> AlterTableAction {
22059        AlterTableAction::SetWithoutCluster(node)
22060    }
22061}
22062impl From<SetWithoutOids> for AlterTableAction {
22063    #[inline]
22064    fn from(node: SetWithoutOids) -> AlterTableAction {
22065        AlterTableAction::SetWithoutOids(node)
22066    }
22067}
22068impl From<ValidateConstraint> for AlterTableAction {
22069    #[inline]
22070    fn from(node: ValidateConstraint) -> AlterTableAction {
22071        AlterTableAction::ValidateConstraint(node)
22072    }
22073}
22074impl AstNode for ColumnConstraint {
22075    #[inline]
22076    fn can_cast(kind: SyntaxKind) -> bool {
22077        matches!(
22078            kind,
22079            SyntaxKind::CHECK_CONSTRAINT
22080                | SyntaxKind::EXCLUDE_CONSTRAINT
22081                | SyntaxKind::NOT_NULL_CONSTRAINT
22082                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
22083                | SyntaxKind::REFERENCES_CONSTRAINT
22084                | SyntaxKind::UNIQUE_CONSTRAINT
22085        )
22086    }
22087    #[inline]
22088    fn cast(syntax: SyntaxNode) -> Option<Self> {
22089        let res = match syntax.kind() {
22090            SyntaxKind::CHECK_CONSTRAINT => {
22091                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
22092            }
22093            SyntaxKind::EXCLUDE_CONSTRAINT => {
22094                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
22095            }
22096            SyntaxKind::NOT_NULL_CONSTRAINT => {
22097                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
22098            }
22099            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
22100                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
22101            }
22102            SyntaxKind::REFERENCES_CONSTRAINT => {
22103                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
22104            }
22105            SyntaxKind::UNIQUE_CONSTRAINT => {
22106                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
22107            }
22108            _ => {
22109                return None;
22110            }
22111        };
22112        Some(res)
22113    }
22114    #[inline]
22115    fn syntax(&self) -> &SyntaxNode {
22116        match self {
22117            ColumnConstraint::CheckConstraint(it) => &it.syntax,
22118            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
22119            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
22120            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
22121            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
22122            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
22123        }
22124    }
22125}
22126impl From<CheckConstraint> for ColumnConstraint {
22127    #[inline]
22128    fn from(node: CheckConstraint) -> ColumnConstraint {
22129        ColumnConstraint::CheckConstraint(node)
22130    }
22131}
22132impl From<ExcludeConstraint> for ColumnConstraint {
22133    #[inline]
22134    fn from(node: ExcludeConstraint) -> ColumnConstraint {
22135        ColumnConstraint::ExcludeConstraint(node)
22136    }
22137}
22138impl From<NotNullConstraint> for ColumnConstraint {
22139    #[inline]
22140    fn from(node: NotNullConstraint) -> ColumnConstraint {
22141        ColumnConstraint::NotNullConstraint(node)
22142    }
22143}
22144impl From<PrimaryKeyConstraint> for ColumnConstraint {
22145    #[inline]
22146    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
22147        ColumnConstraint::PrimaryKeyConstraint(node)
22148    }
22149}
22150impl From<ReferencesConstraint> for ColumnConstraint {
22151    #[inline]
22152    fn from(node: ReferencesConstraint) -> ColumnConstraint {
22153        ColumnConstraint::ReferencesConstraint(node)
22154    }
22155}
22156impl From<UniqueConstraint> for ColumnConstraint {
22157    #[inline]
22158    fn from(node: UniqueConstraint) -> ColumnConstraint {
22159        ColumnConstraint::UniqueConstraint(node)
22160    }
22161}
22162impl AstNode for ConflictAction {
22163    #[inline]
22164    fn can_cast(kind: SyntaxKind) -> bool {
22165        matches!(
22166            kind,
22167            SyntaxKind::CONFLICT_DO_NOTHING | SyntaxKind::CONFLICT_DO_UPDATE_SET
22168        )
22169    }
22170    #[inline]
22171    fn cast(syntax: SyntaxNode) -> Option<Self> {
22172        let res = match syntax.kind() {
22173            SyntaxKind::CONFLICT_DO_NOTHING => {
22174                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
22175            }
22176            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
22177                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
22178            }
22179            _ => {
22180                return None;
22181            }
22182        };
22183        Some(res)
22184    }
22185    #[inline]
22186    fn syntax(&self) -> &SyntaxNode {
22187        match self {
22188            ConflictAction::ConflictDoNothing(it) => &it.syntax,
22189            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
22190        }
22191    }
22192}
22193impl From<ConflictDoNothing> for ConflictAction {
22194    #[inline]
22195    fn from(node: ConflictDoNothing) -> ConflictAction {
22196        ConflictAction::ConflictDoNothing(node)
22197    }
22198}
22199impl From<ConflictDoUpdateSet> for ConflictAction {
22200    #[inline]
22201    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
22202        ConflictAction::ConflictDoUpdateSet(node)
22203    }
22204}
22205impl AstNode for ConflictTarget {
22206    #[inline]
22207    fn can_cast(kind: SyntaxKind) -> bool {
22208        matches!(
22209            kind,
22210            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
22211        )
22212    }
22213    #[inline]
22214    fn cast(syntax: SyntaxNode) -> Option<Self> {
22215        let res = match syntax.kind() {
22216            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
22217                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
22218            }
22219            SyntaxKind::CONFLICT_ON_INDEX => {
22220                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
22221            }
22222            _ => {
22223                return None;
22224            }
22225        };
22226        Some(res)
22227    }
22228    #[inline]
22229    fn syntax(&self) -> &SyntaxNode {
22230        match self {
22231            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
22232            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
22233        }
22234    }
22235}
22236impl From<ConflictOnConstraint> for ConflictTarget {
22237    #[inline]
22238    fn from(node: ConflictOnConstraint) -> ConflictTarget {
22239        ConflictTarget::ConflictOnConstraint(node)
22240    }
22241}
22242impl From<ConflictOnIndex> for ConflictTarget {
22243    #[inline]
22244    fn from(node: ConflictOnIndex) -> ConflictTarget {
22245        ConflictTarget::ConflictOnIndex(node)
22246    }
22247}
22248impl AstNode for Constraint {
22249    #[inline]
22250    fn can_cast(kind: SyntaxKind) -> bool {
22251        matches!(
22252            kind,
22253            SyntaxKind::CHECK_CONSTRAINT
22254                | SyntaxKind::DEFAULT_CONSTRAINT
22255                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
22256                | SyntaxKind::GENERATED_CONSTRAINT
22257                | SyntaxKind::NOT_NULL_CONSTRAINT
22258                | SyntaxKind::NULL_CONSTRAINT
22259                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
22260                | SyntaxKind::REFERENCES_CONSTRAINT
22261                | SyntaxKind::UNIQUE_CONSTRAINT
22262        )
22263    }
22264    #[inline]
22265    fn cast(syntax: SyntaxNode) -> Option<Self> {
22266        let res = match syntax.kind() {
22267            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
22268            SyntaxKind::DEFAULT_CONSTRAINT => {
22269                Constraint::DefaultConstraint(DefaultConstraint { syntax })
22270            }
22271            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
22272                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
22273            }
22274            SyntaxKind::GENERATED_CONSTRAINT => {
22275                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
22276            }
22277            SyntaxKind::NOT_NULL_CONSTRAINT => {
22278                Constraint::NotNullConstraint(NotNullConstraint { syntax })
22279            }
22280            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
22281            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
22282                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
22283            }
22284            SyntaxKind::REFERENCES_CONSTRAINT => {
22285                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
22286            }
22287            SyntaxKind::UNIQUE_CONSTRAINT => {
22288                Constraint::UniqueConstraint(UniqueConstraint { syntax })
22289            }
22290            _ => {
22291                return None;
22292            }
22293        };
22294        Some(res)
22295    }
22296    #[inline]
22297    fn syntax(&self) -> &SyntaxNode {
22298        match self {
22299            Constraint::CheckConstraint(it) => &it.syntax,
22300            Constraint::DefaultConstraint(it) => &it.syntax,
22301            Constraint::ForeignKeyConstraint(it) => &it.syntax,
22302            Constraint::GeneratedConstraint(it) => &it.syntax,
22303            Constraint::NotNullConstraint(it) => &it.syntax,
22304            Constraint::NullConstraint(it) => &it.syntax,
22305            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
22306            Constraint::ReferencesConstraint(it) => &it.syntax,
22307            Constraint::UniqueConstraint(it) => &it.syntax,
22308        }
22309    }
22310}
22311impl From<CheckConstraint> for Constraint {
22312    #[inline]
22313    fn from(node: CheckConstraint) -> Constraint {
22314        Constraint::CheckConstraint(node)
22315    }
22316}
22317impl From<DefaultConstraint> for Constraint {
22318    #[inline]
22319    fn from(node: DefaultConstraint) -> Constraint {
22320        Constraint::DefaultConstraint(node)
22321    }
22322}
22323impl From<ForeignKeyConstraint> for Constraint {
22324    #[inline]
22325    fn from(node: ForeignKeyConstraint) -> Constraint {
22326        Constraint::ForeignKeyConstraint(node)
22327    }
22328}
22329impl From<GeneratedConstraint> for Constraint {
22330    #[inline]
22331    fn from(node: GeneratedConstraint) -> Constraint {
22332        Constraint::GeneratedConstraint(node)
22333    }
22334}
22335impl From<NotNullConstraint> for Constraint {
22336    #[inline]
22337    fn from(node: NotNullConstraint) -> Constraint {
22338        Constraint::NotNullConstraint(node)
22339    }
22340}
22341impl From<NullConstraint> for Constraint {
22342    #[inline]
22343    fn from(node: NullConstraint) -> Constraint {
22344        Constraint::NullConstraint(node)
22345    }
22346}
22347impl From<PrimaryKeyConstraint> for Constraint {
22348    #[inline]
22349    fn from(node: PrimaryKeyConstraint) -> Constraint {
22350        Constraint::PrimaryKeyConstraint(node)
22351    }
22352}
22353impl From<ReferencesConstraint> for Constraint {
22354    #[inline]
22355    fn from(node: ReferencesConstraint) -> Constraint {
22356        Constraint::ReferencesConstraint(node)
22357    }
22358}
22359impl From<UniqueConstraint> for Constraint {
22360    #[inline]
22361    fn from(node: UniqueConstraint) -> Constraint {
22362        Constraint::UniqueConstraint(node)
22363    }
22364}
22365impl AstNode for ExplainStmt {
22366    #[inline]
22367    fn can_cast(kind: SyntaxKind) -> bool {
22368        matches!(
22369            kind,
22370            SyntaxKind::COMPOUND_SELECT
22371                | SyntaxKind::CREATE_MATERIALIZED_VIEW
22372                | SyntaxKind::CREATE_TABLE_AS
22373                | SyntaxKind::DECLARE
22374                | SyntaxKind::DELETE
22375                | SyntaxKind::EXECUTE
22376                | SyntaxKind::INSERT
22377                | SyntaxKind::MERGE
22378                | SyntaxKind::PAREN_SELECT
22379                | SyntaxKind::SELECT
22380                | SyntaxKind::SELECT_INTO
22381                | SyntaxKind::TABLE
22382                | SyntaxKind::UPDATE
22383                | SyntaxKind::VALUES
22384        )
22385    }
22386    #[inline]
22387    fn cast(syntax: SyntaxNode) -> Option<Self> {
22388        let res = match syntax.kind() {
22389            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
22390            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
22391                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
22392            }
22393            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
22394            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
22395            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
22396            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
22397            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
22398            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
22399            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
22400            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
22401            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
22402            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
22403            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
22404            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
22405            _ => {
22406                return None;
22407            }
22408        };
22409        Some(res)
22410    }
22411    #[inline]
22412    fn syntax(&self) -> &SyntaxNode {
22413        match self {
22414            ExplainStmt::CompoundSelect(it) => &it.syntax,
22415            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
22416            ExplainStmt::CreateTableAs(it) => &it.syntax,
22417            ExplainStmt::Declare(it) => &it.syntax,
22418            ExplainStmt::Delete(it) => &it.syntax,
22419            ExplainStmt::Execute(it) => &it.syntax,
22420            ExplainStmt::Insert(it) => &it.syntax,
22421            ExplainStmt::Merge(it) => &it.syntax,
22422            ExplainStmt::ParenSelect(it) => &it.syntax,
22423            ExplainStmt::Select(it) => &it.syntax,
22424            ExplainStmt::SelectInto(it) => &it.syntax,
22425            ExplainStmt::Table(it) => &it.syntax,
22426            ExplainStmt::Update(it) => &it.syntax,
22427            ExplainStmt::Values(it) => &it.syntax,
22428        }
22429    }
22430}
22431impl From<CompoundSelect> for ExplainStmt {
22432    #[inline]
22433    fn from(node: CompoundSelect) -> ExplainStmt {
22434        ExplainStmt::CompoundSelect(node)
22435    }
22436}
22437impl From<CreateMaterializedView> for ExplainStmt {
22438    #[inline]
22439    fn from(node: CreateMaterializedView) -> ExplainStmt {
22440        ExplainStmt::CreateMaterializedView(node)
22441    }
22442}
22443impl From<CreateTableAs> for ExplainStmt {
22444    #[inline]
22445    fn from(node: CreateTableAs) -> ExplainStmt {
22446        ExplainStmt::CreateTableAs(node)
22447    }
22448}
22449impl From<Declare> for ExplainStmt {
22450    #[inline]
22451    fn from(node: Declare) -> ExplainStmt {
22452        ExplainStmt::Declare(node)
22453    }
22454}
22455impl From<Delete> for ExplainStmt {
22456    #[inline]
22457    fn from(node: Delete) -> ExplainStmt {
22458        ExplainStmt::Delete(node)
22459    }
22460}
22461impl From<Execute> for ExplainStmt {
22462    #[inline]
22463    fn from(node: Execute) -> ExplainStmt {
22464        ExplainStmt::Execute(node)
22465    }
22466}
22467impl From<Insert> for ExplainStmt {
22468    #[inline]
22469    fn from(node: Insert) -> ExplainStmt {
22470        ExplainStmt::Insert(node)
22471    }
22472}
22473impl From<Merge> for ExplainStmt {
22474    #[inline]
22475    fn from(node: Merge) -> ExplainStmt {
22476        ExplainStmt::Merge(node)
22477    }
22478}
22479impl From<ParenSelect> for ExplainStmt {
22480    #[inline]
22481    fn from(node: ParenSelect) -> ExplainStmt {
22482        ExplainStmt::ParenSelect(node)
22483    }
22484}
22485impl From<Select> for ExplainStmt {
22486    #[inline]
22487    fn from(node: Select) -> ExplainStmt {
22488        ExplainStmt::Select(node)
22489    }
22490}
22491impl From<SelectInto> for ExplainStmt {
22492    #[inline]
22493    fn from(node: SelectInto) -> ExplainStmt {
22494        ExplainStmt::SelectInto(node)
22495    }
22496}
22497impl From<Table> for ExplainStmt {
22498    #[inline]
22499    fn from(node: Table) -> ExplainStmt {
22500        ExplainStmt::Table(node)
22501    }
22502}
22503impl From<Update> for ExplainStmt {
22504    #[inline]
22505    fn from(node: Update) -> ExplainStmt {
22506        ExplainStmt::Update(node)
22507    }
22508}
22509impl From<Values> for ExplainStmt {
22510    #[inline]
22511    fn from(node: Values) -> ExplainStmt {
22512        ExplainStmt::Values(node)
22513    }
22514}
22515impl AstNode for Expr {
22516    #[inline]
22517    fn can_cast(kind: SyntaxKind) -> bool {
22518        matches!(
22519            kind,
22520            SyntaxKind::ARRAY_EXPR
22521                | SyntaxKind::BETWEEN_EXPR
22522                | SyntaxKind::BIN_EXPR
22523                | SyntaxKind::CALL_EXPR
22524                | SyntaxKind::CASE_EXPR
22525                | SyntaxKind::CAST_EXPR
22526                | SyntaxKind::FIELD_EXPR
22527                | SyntaxKind::INDEX_EXPR
22528                | SyntaxKind::LITERAL
22529                | SyntaxKind::NAME_REF
22530                | SyntaxKind::PAREN_EXPR
22531                | SyntaxKind::POSTFIX_EXPR
22532                | SyntaxKind::PREFIX_EXPR
22533                | SyntaxKind::SLICE_EXPR
22534                | SyntaxKind::TUPLE_EXPR
22535        )
22536    }
22537    #[inline]
22538    fn cast(syntax: SyntaxNode) -> Option<Self> {
22539        let res = match syntax.kind() {
22540            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
22541            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
22542            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
22543            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
22544            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
22545            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
22546            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
22547            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
22548            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
22549            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
22550            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
22551            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
22552            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
22553            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
22554            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
22555            _ => {
22556                return None;
22557            }
22558        };
22559        Some(res)
22560    }
22561    #[inline]
22562    fn syntax(&self) -> &SyntaxNode {
22563        match self {
22564            Expr::ArrayExpr(it) => &it.syntax,
22565            Expr::BetweenExpr(it) => &it.syntax,
22566            Expr::BinExpr(it) => &it.syntax,
22567            Expr::CallExpr(it) => &it.syntax,
22568            Expr::CaseExpr(it) => &it.syntax,
22569            Expr::CastExpr(it) => &it.syntax,
22570            Expr::FieldExpr(it) => &it.syntax,
22571            Expr::IndexExpr(it) => &it.syntax,
22572            Expr::Literal(it) => &it.syntax,
22573            Expr::NameRef(it) => &it.syntax,
22574            Expr::ParenExpr(it) => &it.syntax,
22575            Expr::PostfixExpr(it) => &it.syntax,
22576            Expr::PrefixExpr(it) => &it.syntax,
22577            Expr::SliceExpr(it) => &it.syntax,
22578            Expr::TupleExpr(it) => &it.syntax,
22579        }
22580    }
22581}
22582impl From<ArrayExpr> for Expr {
22583    #[inline]
22584    fn from(node: ArrayExpr) -> Expr {
22585        Expr::ArrayExpr(node)
22586    }
22587}
22588impl From<BetweenExpr> for Expr {
22589    #[inline]
22590    fn from(node: BetweenExpr) -> Expr {
22591        Expr::BetweenExpr(node)
22592    }
22593}
22594impl From<BinExpr> for Expr {
22595    #[inline]
22596    fn from(node: BinExpr) -> Expr {
22597        Expr::BinExpr(node)
22598    }
22599}
22600impl From<CallExpr> for Expr {
22601    #[inline]
22602    fn from(node: CallExpr) -> Expr {
22603        Expr::CallExpr(node)
22604    }
22605}
22606impl From<CaseExpr> for Expr {
22607    #[inline]
22608    fn from(node: CaseExpr) -> Expr {
22609        Expr::CaseExpr(node)
22610    }
22611}
22612impl From<CastExpr> for Expr {
22613    #[inline]
22614    fn from(node: CastExpr) -> Expr {
22615        Expr::CastExpr(node)
22616    }
22617}
22618impl From<FieldExpr> for Expr {
22619    #[inline]
22620    fn from(node: FieldExpr) -> Expr {
22621        Expr::FieldExpr(node)
22622    }
22623}
22624impl From<IndexExpr> for Expr {
22625    #[inline]
22626    fn from(node: IndexExpr) -> Expr {
22627        Expr::IndexExpr(node)
22628    }
22629}
22630impl From<Literal> for Expr {
22631    #[inline]
22632    fn from(node: Literal) -> Expr {
22633        Expr::Literal(node)
22634    }
22635}
22636impl From<NameRef> for Expr {
22637    #[inline]
22638    fn from(node: NameRef) -> Expr {
22639        Expr::NameRef(node)
22640    }
22641}
22642impl From<ParenExpr> for Expr {
22643    #[inline]
22644    fn from(node: ParenExpr) -> Expr {
22645        Expr::ParenExpr(node)
22646    }
22647}
22648impl From<PostfixExpr> for Expr {
22649    #[inline]
22650    fn from(node: PostfixExpr) -> Expr {
22651        Expr::PostfixExpr(node)
22652    }
22653}
22654impl From<PrefixExpr> for Expr {
22655    #[inline]
22656    fn from(node: PrefixExpr) -> Expr {
22657        Expr::PrefixExpr(node)
22658    }
22659}
22660impl From<SliceExpr> for Expr {
22661    #[inline]
22662    fn from(node: SliceExpr) -> Expr {
22663        Expr::SliceExpr(node)
22664    }
22665}
22666impl From<TupleExpr> for Expr {
22667    #[inline]
22668    fn from(node: TupleExpr) -> Expr {
22669        Expr::TupleExpr(node)
22670    }
22671}
22672impl AstNode for FuncOption {
22673    #[inline]
22674    fn can_cast(kind: SyntaxKind) -> bool {
22675        matches!(
22676            kind,
22677            SyntaxKind::AS_FUNC_OPTION
22678                | SyntaxKind::BEGIN_FUNC_OPTION
22679                | SyntaxKind::COST_FUNC_OPTION
22680                | SyntaxKind::LANGUAGE_FUNC_OPTION
22681                | SyntaxKind::LEAKPROOF_FUNC_OPTION
22682                | SyntaxKind::PARALLEL_FUNC_OPTION
22683                | SyntaxKind::RESET_FUNC_OPTION
22684                | SyntaxKind::RETURN_FUNC_OPTION
22685                | SyntaxKind::ROWS_FUNC_OPTION
22686                | SyntaxKind::SECURITY_FUNC_OPTION
22687                | SyntaxKind::SET_FUNC_OPTION
22688                | SyntaxKind::STRICT_FUNC_OPTION
22689                | SyntaxKind::SUPPORT_FUNC_OPTION
22690                | SyntaxKind::TRANSFORM_FUNC_OPTION
22691                | SyntaxKind::VOLATILITY_FUNC_OPTION
22692                | SyntaxKind::WINDOW_FUNC_OPTION
22693        )
22694    }
22695    #[inline]
22696    fn cast(syntax: SyntaxNode) -> Option<Self> {
22697        let res = match syntax.kind() {
22698            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
22699            SyntaxKind::BEGIN_FUNC_OPTION => {
22700                FuncOption::BeginFuncOption(BeginFuncOption { syntax })
22701            }
22702            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
22703            SyntaxKind::LANGUAGE_FUNC_OPTION => {
22704                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
22705            }
22706            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
22707                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
22708            }
22709            SyntaxKind::PARALLEL_FUNC_OPTION => {
22710                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
22711            }
22712            SyntaxKind::RESET_FUNC_OPTION => {
22713                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
22714            }
22715            SyntaxKind::RETURN_FUNC_OPTION => {
22716                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
22717            }
22718            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
22719            SyntaxKind::SECURITY_FUNC_OPTION => {
22720                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
22721            }
22722            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
22723            SyntaxKind::STRICT_FUNC_OPTION => {
22724                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
22725            }
22726            SyntaxKind::SUPPORT_FUNC_OPTION => {
22727                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
22728            }
22729            SyntaxKind::TRANSFORM_FUNC_OPTION => {
22730                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
22731            }
22732            SyntaxKind::VOLATILITY_FUNC_OPTION => {
22733                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
22734            }
22735            SyntaxKind::WINDOW_FUNC_OPTION => {
22736                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
22737            }
22738            _ => {
22739                return None;
22740            }
22741        };
22742        Some(res)
22743    }
22744    #[inline]
22745    fn syntax(&self) -> &SyntaxNode {
22746        match self {
22747            FuncOption::AsFuncOption(it) => &it.syntax,
22748            FuncOption::BeginFuncOption(it) => &it.syntax,
22749            FuncOption::CostFuncOption(it) => &it.syntax,
22750            FuncOption::LanguageFuncOption(it) => &it.syntax,
22751            FuncOption::LeakproofFuncOption(it) => &it.syntax,
22752            FuncOption::ParallelFuncOption(it) => &it.syntax,
22753            FuncOption::ResetFuncOption(it) => &it.syntax,
22754            FuncOption::ReturnFuncOption(it) => &it.syntax,
22755            FuncOption::RowsFuncOption(it) => &it.syntax,
22756            FuncOption::SecurityFuncOption(it) => &it.syntax,
22757            FuncOption::SetFuncOption(it) => &it.syntax,
22758            FuncOption::StrictFuncOption(it) => &it.syntax,
22759            FuncOption::SupportFuncOption(it) => &it.syntax,
22760            FuncOption::TransformFuncOption(it) => &it.syntax,
22761            FuncOption::VolatilityFuncOption(it) => &it.syntax,
22762            FuncOption::WindowFuncOption(it) => &it.syntax,
22763        }
22764    }
22765}
22766impl From<AsFuncOption> for FuncOption {
22767    #[inline]
22768    fn from(node: AsFuncOption) -> FuncOption {
22769        FuncOption::AsFuncOption(node)
22770    }
22771}
22772impl From<BeginFuncOption> for FuncOption {
22773    #[inline]
22774    fn from(node: BeginFuncOption) -> FuncOption {
22775        FuncOption::BeginFuncOption(node)
22776    }
22777}
22778impl From<CostFuncOption> for FuncOption {
22779    #[inline]
22780    fn from(node: CostFuncOption) -> FuncOption {
22781        FuncOption::CostFuncOption(node)
22782    }
22783}
22784impl From<LanguageFuncOption> for FuncOption {
22785    #[inline]
22786    fn from(node: LanguageFuncOption) -> FuncOption {
22787        FuncOption::LanguageFuncOption(node)
22788    }
22789}
22790impl From<LeakproofFuncOption> for FuncOption {
22791    #[inline]
22792    fn from(node: LeakproofFuncOption) -> FuncOption {
22793        FuncOption::LeakproofFuncOption(node)
22794    }
22795}
22796impl From<ParallelFuncOption> for FuncOption {
22797    #[inline]
22798    fn from(node: ParallelFuncOption) -> FuncOption {
22799        FuncOption::ParallelFuncOption(node)
22800    }
22801}
22802impl From<ResetFuncOption> for FuncOption {
22803    #[inline]
22804    fn from(node: ResetFuncOption) -> FuncOption {
22805        FuncOption::ResetFuncOption(node)
22806    }
22807}
22808impl From<ReturnFuncOption> for FuncOption {
22809    #[inline]
22810    fn from(node: ReturnFuncOption) -> FuncOption {
22811        FuncOption::ReturnFuncOption(node)
22812    }
22813}
22814impl From<RowsFuncOption> for FuncOption {
22815    #[inline]
22816    fn from(node: RowsFuncOption) -> FuncOption {
22817        FuncOption::RowsFuncOption(node)
22818    }
22819}
22820impl From<SecurityFuncOption> for FuncOption {
22821    #[inline]
22822    fn from(node: SecurityFuncOption) -> FuncOption {
22823        FuncOption::SecurityFuncOption(node)
22824    }
22825}
22826impl From<SetFuncOption> for FuncOption {
22827    #[inline]
22828    fn from(node: SetFuncOption) -> FuncOption {
22829        FuncOption::SetFuncOption(node)
22830    }
22831}
22832impl From<StrictFuncOption> for FuncOption {
22833    #[inline]
22834    fn from(node: StrictFuncOption) -> FuncOption {
22835        FuncOption::StrictFuncOption(node)
22836    }
22837}
22838impl From<SupportFuncOption> for FuncOption {
22839    #[inline]
22840    fn from(node: SupportFuncOption) -> FuncOption {
22841        FuncOption::SupportFuncOption(node)
22842    }
22843}
22844impl From<TransformFuncOption> for FuncOption {
22845    #[inline]
22846    fn from(node: TransformFuncOption) -> FuncOption {
22847        FuncOption::TransformFuncOption(node)
22848    }
22849}
22850impl From<VolatilityFuncOption> for FuncOption {
22851    #[inline]
22852    fn from(node: VolatilityFuncOption) -> FuncOption {
22853        FuncOption::VolatilityFuncOption(node)
22854    }
22855}
22856impl From<WindowFuncOption> for FuncOption {
22857    #[inline]
22858    fn from(node: WindowFuncOption) -> FuncOption {
22859        FuncOption::WindowFuncOption(node)
22860    }
22861}
22862impl AstNode for GroupBy {
22863    #[inline]
22864    fn can_cast(kind: SyntaxKind) -> bool {
22865        matches!(
22866            kind,
22867            SyntaxKind::GROUPING_CUBE
22868                | SyntaxKind::GROUPING_EXPR
22869                | SyntaxKind::GROUPING_ROLLUP
22870                | SyntaxKind::GROUPING_SETS
22871        )
22872    }
22873    #[inline]
22874    fn cast(syntax: SyntaxNode) -> Option<Self> {
22875        let res = match syntax.kind() {
22876            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
22877            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
22878            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
22879            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
22880            _ => {
22881                return None;
22882            }
22883        };
22884        Some(res)
22885    }
22886    #[inline]
22887    fn syntax(&self) -> &SyntaxNode {
22888        match self {
22889            GroupBy::GroupingCube(it) => &it.syntax,
22890            GroupBy::GroupingExpr(it) => &it.syntax,
22891            GroupBy::GroupingRollup(it) => &it.syntax,
22892            GroupBy::GroupingSets(it) => &it.syntax,
22893        }
22894    }
22895}
22896impl From<GroupingCube> for GroupBy {
22897    #[inline]
22898    fn from(node: GroupingCube) -> GroupBy {
22899        GroupBy::GroupingCube(node)
22900    }
22901}
22902impl From<GroupingExpr> for GroupBy {
22903    #[inline]
22904    fn from(node: GroupingExpr) -> GroupBy {
22905        GroupBy::GroupingExpr(node)
22906    }
22907}
22908impl From<GroupingRollup> for GroupBy {
22909    #[inline]
22910    fn from(node: GroupingRollup) -> GroupBy {
22911        GroupBy::GroupingRollup(node)
22912    }
22913}
22914impl From<GroupingSets> for GroupBy {
22915    #[inline]
22916    fn from(node: GroupingSets) -> GroupBy {
22917        GroupBy::GroupingSets(node)
22918    }
22919}
22920impl AstNode for JoinType {
22921    #[inline]
22922    fn can_cast(kind: SyntaxKind) -> bool {
22923        matches!(
22924            kind,
22925            SyntaxKind::JOIN_CROSS
22926                | SyntaxKind::JOIN_FULL
22927                | SyntaxKind::JOIN_INNER
22928                | SyntaxKind::JOIN_LEFT
22929                | SyntaxKind::JOIN_RIGHT
22930        )
22931    }
22932    #[inline]
22933    fn cast(syntax: SyntaxNode) -> Option<Self> {
22934        let res = match syntax.kind() {
22935            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
22936            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
22937            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
22938            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
22939            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
22940            _ => {
22941                return None;
22942            }
22943        };
22944        Some(res)
22945    }
22946    #[inline]
22947    fn syntax(&self) -> &SyntaxNode {
22948        match self {
22949            JoinType::JoinCross(it) => &it.syntax,
22950            JoinType::JoinFull(it) => &it.syntax,
22951            JoinType::JoinInner(it) => &it.syntax,
22952            JoinType::JoinLeft(it) => &it.syntax,
22953            JoinType::JoinRight(it) => &it.syntax,
22954        }
22955    }
22956}
22957impl From<JoinCross> for JoinType {
22958    #[inline]
22959    fn from(node: JoinCross) -> JoinType {
22960        JoinType::JoinCross(node)
22961    }
22962}
22963impl From<JoinFull> for JoinType {
22964    #[inline]
22965    fn from(node: JoinFull) -> JoinType {
22966        JoinType::JoinFull(node)
22967    }
22968}
22969impl From<JoinInner> for JoinType {
22970    #[inline]
22971    fn from(node: JoinInner) -> JoinType {
22972        JoinType::JoinInner(node)
22973    }
22974}
22975impl From<JoinLeft> for JoinType {
22976    #[inline]
22977    fn from(node: JoinLeft) -> JoinType {
22978        JoinType::JoinLeft(node)
22979    }
22980}
22981impl From<JoinRight> for JoinType {
22982    #[inline]
22983    fn from(node: JoinRight) -> JoinType {
22984        JoinType::JoinRight(node)
22985    }
22986}
22987impl AstNode for JsonBehavior {
22988    #[inline]
22989    fn can_cast(kind: SyntaxKind) -> bool {
22990        matches!(
22991            kind,
22992            SyntaxKind::JSON_BEHAVIOR_DEFAULT
22993                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
22994                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
22995                | SyntaxKind::JSON_BEHAVIOR_ERROR
22996                | SyntaxKind::JSON_BEHAVIOR_FALSE
22997                | SyntaxKind::JSON_BEHAVIOR_NULL
22998                | SyntaxKind::JSON_BEHAVIOR_TRUE
22999                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
23000        )
23001    }
23002    #[inline]
23003    fn cast(syntax: SyntaxNode) -> Option<Self> {
23004        let res = match syntax.kind() {
23005            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
23006                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
23007            }
23008            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
23009                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
23010            }
23011            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
23012                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
23013            }
23014            SyntaxKind::JSON_BEHAVIOR_ERROR => {
23015                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
23016            }
23017            SyntaxKind::JSON_BEHAVIOR_FALSE => {
23018                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
23019            }
23020            SyntaxKind::JSON_BEHAVIOR_NULL => {
23021                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
23022            }
23023            SyntaxKind::JSON_BEHAVIOR_TRUE => {
23024                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
23025            }
23026            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
23027                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
23028            }
23029            _ => {
23030                return None;
23031            }
23032        };
23033        Some(res)
23034    }
23035    #[inline]
23036    fn syntax(&self) -> &SyntaxNode {
23037        match self {
23038            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
23039            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
23040            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
23041            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
23042            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
23043            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
23044            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
23045            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
23046        }
23047    }
23048}
23049impl From<JsonBehaviorDefault> for JsonBehavior {
23050    #[inline]
23051    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
23052        JsonBehavior::JsonBehaviorDefault(node)
23053    }
23054}
23055impl From<JsonBehaviorEmptyArray> for JsonBehavior {
23056    #[inline]
23057    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
23058        JsonBehavior::JsonBehaviorEmptyArray(node)
23059    }
23060}
23061impl From<JsonBehaviorEmptyObject> for JsonBehavior {
23062    #[inline]
23063    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
23064        JsonBehavior::JsonBehaviorEmptyObject(node)
23065    }
23066}
23067impl From<JsonBehaviorError> for JsonBehavior {
23068    #[inline]
23069    fn from(node: JsonBehaviorError) -> JsonBehavior {
23070        JsonBehavior::JsonBehaviorError(node)
23071    }
23072}
23073impl From<JsonBehaviorFalse> for JsonBehavior {
23074    #[inline]
23075    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
23076        JsonBehavior::JsonBehaviorFalse(node)
23077    }
23078}
23079impl From<JsonBehaviorNull> for JsonBehavior {
23080    #[inline]
23081    fn from(node: JsonBehaviorNull) -> JsonBehavior {
23082        JsonBehavior::JsonBehaviorNull(node)
23083    }
23084}
23085impl From<JsonBehaviorTrue> for JsonBehavior {
23086    #[inline]
23087    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
23088        JsonBehavior::JsonBehaviorTrue(node)
23089    }
23090}
23091impl From<JsonBehaviorUnknown> for JsonBehavior {
23092    #[inline]
23093    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
23094        JsonBehavior::JsonBehaviorUnknown(node)
23095    }
23096}
23097impl AstNode for MatchType {
23098    #[inline]
23099    fn can_cast(kind: SyntaxKind) -> bool {
23100        matches!(
23101            kind,
23102            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
23103        )
23104    }
23105    #[inline]
23106    fn cast(syntax: SyntaxNode) -> Option<Self> {
23107        let res = match syntax.kind() {
23108            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
23109            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
23110            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
23111            _ => {
23112                return None;
23113            }
23114        };
23115        Some(res)
23116    }
23117    #[inline]
23118    fn syntax(&self) -> &SyntaxNode {
23119        match self {
23120            MatchType::MatchFull(it) => &it.syntax,
23121            MatchType::MatchPartial(it) => &it.syntax,
23122            MatchType::MatchSimple(it) => &it.syntax,
23123        }
23124    }
23125}
23126impl From<MatchFull> for MatchType {
23127    #[inline]
23128    fn from(node: MatchFull) -> MatchType {
23129        MatchType::MatchFull(node)
23130    }
23131}
23132impl From<MatchPartial> for MatchType {
23133    #[inline]
23134    fn from(node: MatchPartial) -> MatchType {
23135        MatchType::MatchPartial(node)
23136    }
23137}
23138impl From<MatchSimple> for MatchType {
23139    #[inline]
23140    fn from(node: MatchSimple) -> MatchType {
23141        MatchType::MatchSimple(node)
23142    }
23143}
23144impl AstNode for MergeAction {
23145    #[inline]
23146    fn can_cast(kind: SyntaxKind) -> bool {
23147        matches!(
23148            kind,
23149            SyntaxKind::MERGE_DELETE
23150                | SyntaxKind::MERGE_DO_NOTHING
23151                | SyntaxKind::MERGE_INSERT
23152                | SyntaxKind::MERGE_UPDATE
23153        )
23154    }
23155    #[inline]
23156    fn cast(syntax: SyntaxNode) -> Option<Self> {
23157        let res = match syntax.kind() {
23158            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
23159            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
23160            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
23161            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
23162            _ => {
23163                return None;
23164            }
23165        };
23166        Some(res)
23167    }
23168    #[inline]
23169    fn syntax(&self) -> &SyntaxNode {
23170        match self {
23171            MergeAction::MergeDelete(it) => &it.syntax,
23172            MergeAction::MergeDoNothing(it) => &it.syntax,
23173            MergeAction::MergeInsert(it) => &it.syntax,
23174            MergeAction::MergeUpdate(it) => &it.syntax,
23175        }
23176    }
23177}
23178impl From<MergeDelete> for MergeAction {
23179    #[inline]
23180    fn from(node: MergeDelete) -> MergeAction {
23181        MergeAction::MergeDelete(node)
23182    }
23183}
23184impl From<MergeDoNothing> for MergeAction {
23185    #[inline]
23186    fn from(node: MergeDoNothing) -> MergeAction {
23187        MergeAction::MergeDoNothing(node)
23188    }
23189}
23190impl From<MergeInsert> for MergeAction {
23191    #[inline]
23192    fn from(node: MergeInsert) -> MergeAction {
23193        MergeAction::MergeInsert(node)
23194    }
23195}
23196impl From<MergeUpdate> for MergeAction {
23197    #[inline]
23198    fn from(node: MergeUpdate) -> MergeAction {
23199        MergeAction::MergeUpdate(node)
23200    }
23201}
23202impl AstNode for MergeWhenClause {
23203    #[inline]
23204    fn can_cast(kind: SyntaxKind) -> bool {
23205        matches!(
23206            kind,
23207            SyntaxKind::MERGE_WHEN_MATCHED
23208                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
23209                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
23210        )
23211    }
23212    #[inline]
23213    fn cast(syntax: SyntaxNode) -> Option<Self> {
23214        let res = match syntax.kind() {
23215            SyntaxKind::MERGE_WHEN_MATCHED => {
23216                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
23217            }
23218            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
23219                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
23220            }
23221            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
23222                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
23223            }
23224            _ => {
23225                return None;
23226            }
23227        };
23228        Some(res)
23229    }
23230    #[inline]
23231    fn syntax(&self) -> &SyntaxNode {
23232        match self {
23233            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
23234            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
23235            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
23236        }
23237    }
23238}
23239impl From<MergeWhenMatched> for MergeWhenClause {
23240    #[inline]
23241    fn from(node: MergeWhenMatched) -> MergeWhenClause {
23242        MergeWhenClause::MergeWhenMatched(node)
23243    }
23244}
23245impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
23246    #[inline]
23247    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
23248        MergeWhenClause::MergeWhenNotMatchedSource(node)
23249    }
23250}
23251impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
23252    #[inline]
23253    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
23254        MergeWhenClause::MergeWhenNotMatchedTarget(node)
23255    }
23256}
23257impl AstNode for OnCommitAction {
23258    #[inline]
23259    fn can_cast(kind: SyntaxKind) -> bool {
23260        matches!(
23261            kind,
23262            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
23263        )
23264    }
23265    #[inline]
23266    fn cast(syntax: SyntaxNode) -> Option<Self> {
23267        let res = match syntax.kind() {
23268            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
23269            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
23270            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
23271            _ => {
23272                return None;
23273            }
23274        };
23275        Some(res)
23276    }
23277    #[inline]
23278    fn syntax(&self) -> &SyntaxNode {
23279        match self {
23280            OnCommitAction::DeleteRows(it) => &it.syntax,
23281            OnCommitAction::Drop(it) => &it.syntax,
23282            OnCommitAction::PreserveRows(it) => &it.syntax,
23283        }
23284    }
23285}
23286impl From<DeleteRows> for OnCommitAction {
23287    #[inline]
23288    fn from(node: DeleteRows) -> OnCommitAction {
23289        OnCommitAction::DeleteRows(node)
23290    }
23291}
23292impl From<Drop> for OnCommitAction {
23293    #[inline]
23294    fn from(node: Drop) -> OnCommitAction {
23295        OnCommitAction::Drop(node)
23296    }
23297}
23298impl From<PreserveRows> for OnCommitAction {
23299    #[inline]
23300    fn from(node: PreserveRows) -> OnCommitAction {
23301        OnCommitAction::PreserveRows(node)
23302    }
23303}
23304impl AstNode for ParamMode {
23305    #[inline]
23306    fn can_cast(kind: SyntaxKind) -> bool {
23307        matches!(
23308            kind,
23309            SyntaxKind::PARAM_IN
23310                | SyntaxKind::PARAM_IN_OUT
23311                | SyntaxKind::PARAM_OUT
23312                | SyntaxKind::PARAM_VARIADIC
23313        )
23314    }
23315    #[inline]
23316    fn cast(syntax: SyntaxNode) -> Option<Self> {
23317        let res = match syntax.kind() {
23318            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
23319            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
23320            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
23321            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
23322            _ => {
23323                return None;
23324            }
23325        };
23326        Some(res)
23327    }
23328    #[inline]
23329    fn syntax(&self) -> &SyntaxNode {
23330        match self {
23331            ParamMode::ParamIn(it) => &it.syntax,
23332            ParamMode::ParamInOut(it) => &it.syntax,
23333            ParamMode::ParamOut(it) => &it.syntax,
23334            ParamMode::ParamVariadic(it) => &it.syntax,
23335        }
23336    }
23337}
23338impl From<ParamIn> for ParamMode {
23339    #[inline]
23340    fn from(node: ParamIn) -> ParamMode {
23341        ParamMode::ParamIn(node)
23342    }
23343}
23344impl From<ParamInOut> for ParamMode {
23345    #[inline]
23346    fn from(node: ParamInOut) -> ParamMode {
23347        ParamMode::ParamInOut(node)
23348    }
23349}
23350impl From<ParamOut> for ParamMode {
23351    #[inline]
23352    fn from(node: ParamOut) -> ParamMode {
23353        ParamMode::ParamOut(node)
23354    }
23355}
23356impl From<ParamVariadic> for ParamMode {
23357    #[inline]
23358    fn from(node: ParamVariadic) -> ParamMode {
23359        ParamMode::ParamVariadic(node)
23360    }
23361}
23362impl AstNode for PartitionType {
23363    #[inline]
23364    fn can_cast(kind: SyntaxKind) -> bool {
23365        matches!(
23366            kind,
23367            SyntaxKind::PARTITION_DEFAULT
23368                | SyntaxKind::PARTITION_FOR_VALUES_FROM
23369                | SyntaxKind::PARTITION_FOR_VALUES_IN
23370                | SyntaxKind::PARTITION_FOR_VALUES_WITH
23371        )
23372    }
23373    #[inline]
23374    fn cast(syntax: SyntaxNode) -> Option<Self> {
23375        let res = match syntax.kind() {
23376            SyntaxKind::PARTITION_DEFAULT => {
23377                PartitionType::PartitionDefault(PartitionDefault { syntax })
23378            }
23379            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
23380                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
23381            }
23382            SyntaxKind::PARTITION_FOR_VALUES_IN => {
23383                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
23384            }
23385            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
23386                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
23387            }
23388            _ => {
23389                return None;
23390            }
23391        };
23392        Some(res)
23393    }
23394    #[inline]
23395    fn syntax(&self) -> &SyntaxNode {
23396        match self {
23397            PartitionType::PartitionDefault(it) => &it.syntax,
23398            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
23399            PartitionType::PartitionForValuesIn(it) => &it.syntax,
23400            PartitionType::PartitionForValuesWith(it) => &it.syntax,
23401        }
23402    }
23403}
23404impl From<PartitionDefault> for PartitionType {
23405    #[inline]
23406    fn from(node: PartitionDefault) -> PartitionType {
23407        PartitionType::PartitionDefault(node)
23408    }
23409}
23410impl From<PartitionForValuesFrom> for PartitionType {
23411    #[inline]
23412    fn from(node: PartitionForValuesFrom) -> PartitionType {
23413        PartitionType::PartitionForValuesFrom(node)
23414    }
23415}
23416impl From<PartitionForValuesIn> for PartitionType {
23417    #[inline]
23418    fn from(node: PartitionForValuesIn) -> PartitionType {
23419        PartitionType::PartitionForValuesIn(node)
23420    }
23421}
23422impl From<PartitionForValuesWith> for PartitionType {
23423    #[inline]
23424    fn from(node: PartitionForValuesWith) -> PartitionType {
23425        PartitionType::PartitionForValuesWith(node)
23426    }
23427}
23428impl AstNode for RefAction {
23429    #[inline]
23430    fn can_cast(kind: SyntaxKind) -> bool {
23431        matches!(
23432            kind,
23433            SyntaxKind::CASCADE
23434                | SyntaxKind::NO_ACTION
23435                | SyntaxKind::RESTRICT
23436                | SyntaxKind::SET_DEFAULT_COLUMNS
23437                | SyntaxKind::SET_NULL_COLUMNS
23438        )
23439    }
23440    #[inline]
23441    fn cast(syntax: SyntaxNode) -> Option<Self> {
23442        let res = match syntax.kind() {
23443            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
23444            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
23445            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
23446            SyntaxKind::SET_DEFAULT_COLUMNS => {
23447                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
23448            }
23449            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
23450            _ => {
23451                return None;
23452            }
23453        };
23454        Some(res)
23455    }
23456    #[inline]
23457    fn syntax(&self) -> &SyntaxNode {
23458        match self {
23459            RefAction::Cascade(it) => &it.syntax,
23460            RefAction::NoAction(it) => &it.syntax,
23461            RefAction::Restrict(it) => &it.syntax,
23462            RefAction::SetDefaultColumns(it) => &it.syntax,
23463            RefAction::SetNullColumns(it) => &it.syntax,
23464        }
23465    }
23466}
23467impl From<Cascade> for RefAction {
23468    #[inline]
23469    fn from(node: Cascade) -> RefAction {
23470        RefAction::Cascade(node)
23471    }
23472}
23473impl From<NoAction> for RefAction {
23474    #[inline]
23475    fn from(node: NoAction) -> RefAction {
23476        RefAction::NoAction(node)
23477    }
23478}
23479impl From<Restrict> for RefAction {
23480    #[inline]
23481    fn from(node: Restrict) -> RefAction {
23482        RefAction::Restrict(node)
23483    }
23484}
23485impl From<SetDefaultColumns> for RefAction {
23486    #[inline]
23487    fn from(node: SetDefaultColumns) -> RefAction {
23488        RefAction::SetDefaultColumns(node)
23489    }
23490}
23491impl From<SetNullColumns> for RefAction {
23492    #[inline]
23493    fn from(node: SetNullColumns) -> RefAction {
23494        RefAction::SetNullColumns(node)
23495    }
23496}
23497impl AstNode for SelectVariant {
23498    #[inline]
23499    fn can_cast(kind: SyntaxKind) -> bool {
23500        matches!(
23501            kind,
23502            SyntaxKind::COMPOUND_SELECT
23503                | SyntaxKind::PAREN_SELECT
23504                | SyntaxKind::SELECT
23505                | SyntaxKind::SELECT_INTO
23506                | SyntaxKind::TABLE
23507                | SyntaxKind::VALUES
23508        )
23509    }
23510    #[inline]
23511    fn cast(syntax: SyntaxNode) -> Option<Self> {
23512        let res = match syntax.kind() {
23513            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
23514            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
23515            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
23516            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
23517            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
23518            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
23519            _ => {
23520                return None;
23521            }
23522        };
23523        Some(res)
23524    }
23525    #[inline]
23526    fn syntax(&self) -> &SyntaxNode {
23527        match self {
23528            SelectVariant::CompoundSelect(it) => &it.syntax,
23529            SelectVariant::ParenSelect(it) => &it.syntax,
23530            SelectVariant::Select(it) => &it.syntax,
23531            SelectVariant::SelectInto(it) => &it.syntax,
23532            SelectVariant::Table(it) => &it.syntax,
23533            SelectVariant::Values(it) => &it.syntax,
23534        }
23535    }
23536}
23537impl From<CompoundSelect> for SelectVariant {
23538    #[inline]
23539    fn from(node: CompoundSelect) -> SelectVariant {
23540        SelectVariant::CompoundSelect(node)
23541    }
23542}
23543impl From<ParenSelect> for SelectVariant {
23544    #[inline]
23545    fn from(node: ParenSelect) -> SelectVariant {
23546        SelectVariant::ParenSelect(node)
23547    }
23548}
23549impl From<Select> for SelectVariant {
23550    #[inline]
23551    fn from(node: Select) -> SelectVariant {
23552        SelectVariant::Select(node)
23553    }
23554}
23555impl From<SelectInto> for SelectVariant {
23556    #[inline]
23557    fn from(node: SelectInto) -> SelectVariant {
23558        SelectVariant::SelectInto(node)
23559    }
23560}
23561impl From<Table> for SelectVariant {
23562    #[inline]
23563    fn from(node: Table) -> SelectVariant {
23564        SelectVariant::Table(node)
23565    }
23566}
23567impl From<Values> for SelectVariant {
23568    #[inline]
23569    fn from(node: Values) -> SelectVariant {
23570        SelectVariant::Values(node)
23571    }
23572}
23573impl AstNode for SetColumn {
23574    #[inline]
23575    fn can_cast(kind: SyntaxKind) -> bool {
23576        matches!(
23577            kind,
23578            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
23579        )
23580    }
23581    #[inline]
23582    fn cast(syntax: SyntaxNode) -> Option<Self> {
23583        let res = match syntax.kind() {
23584            SyntaxKind::SET_MULTIPLE_COLUMNS => {
23585                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
23586            }
23587            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
23588            _ => {
23589                return None;
23590            }
23591        };
23592        Some(res)
23593    }
23594    #[inline]
23595    fn syntax(&self) -> &SyntaxNode {
23596        match self {
23597            SetColumn::SetMultipleColumns(it) => &it.syntax,
23598            SetColumn::SetSingleColumn(it) => &it.syntax,
23599        }
23600    }
23601}
23602impl From<SetMultipleColumns> for SetColumn {
23603    #[inline]
23604    fn from(node: SetMultipleColumns) -> SetColumn {
23605        SetColumn::SetMultipleColumns(node)
23606    }
23607}
23608impl From<SetSingleColumn> for SetColumn {
23609    #[inline]
23610    fn from(node: SetSingleColumn) -> SetColumn {
23611        SetColumn::SetSingleColumn(node)
23612    }
23613}
23614impl AstNode for Stmt {
23615    #[inline]
23616    fn can_cast(kind: SyntaxKind) -> bool {
23617        matches!(
23618            kind,
23619            SyntaxKind::ALTER_AGGREGATE
23620                | SyntaxKind::ALTER_COLLATION
23621                | SyntaxKind::ALTER_CONVERSION
23622                | SyntaxKind::ALTER_DATABASE
23623                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
23624                | SyntaxKind::ALTER_DOMAIN
23625                | SyntaxKind::ALTER_EVENT_TRIGGER
23626                | SyntaxKind::ALTER_EXTENSION
23627                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
23628                | SyntaxKind::ALTER_FOREIGN_TABLE
23629                | SyntaxKind::ALTER_FUNCTION
23630                | SyntaxKind::ALTER_GROUP
23631                | SyntaxKind::ALTER_INDEX
23632                | SyntaxKind::ALTER_LANGUAGE
23633                | SyntaxKind::ALTER_LARGE_OBJECT
23634                | SyntaxKind::ALTER_MATERIALIZED_VIEW
23635                | SyntaxKind::ALTER_OPERATOR
23636                | SyntaxKind::ALTER_OPERATOR_CLASS
23637                | SyntaxKind::ALTER_OPERATOR_FAMILY
23638                | SyntaxKind::ALTER_POLICY
23639                | SyntaxKind::ALTER_PROCEDURE
23640                | SyntaxKind::ALTER_PUBLICATION
23641                | SyntaxKind::ALTER_ROLE
23642                | SyntaxKind::ALTER_ROUTINE
23643                | SyntaxKind::ALTER_RULE
23644                | SyntaxKind::ALTER_SCHEMA
23645                | SyntaxKind::ALTER_SEQUENCE
23646                | SyntaxKind::ALTER_SERVER
23647                | SyntaxKind::ALTER_STATISTICS
23648                | SyntaxKind::ALTER_SUBSCRIPTION
23649                | SyntaxKind::ALTER_SYSTEM
23650                | SyntaxKind::ALTER_TABLE
23651                | SyntaxKind::ALTER_TABLESPACE
23652                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
23653                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
23654                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
23655                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
23656                | SyntaxKind::ALTER_TRIGGER
23657                | SyntaxKind::ALTER_TYPE
23658                | SyntaxKind::ALTER_USER
23659                | SyntaxKind::ALTER_USER_MAPPING
23660                | SyntaxKind::ALTER_VIEW
23661                | SyntaxKind::ANALYZE
23662                | SyntaxKind::BEGIN
23663                | SyntaxKind::CALL
23664                | SyntaxKind::CHECKPOINT
23665                | SyntaxKind::CLOSE
23666                | SyntaxKind::CLUSTER
23667                | SyntaxKind::COMMENT_ON
23668                | SyntaxKind::COMMIT
23669                | SyntaxKind::COPY
23670                | SyntaxKind::CREATE_ACCESS_METHOD
23671                | SyntaxKind::CREATE_AGGREGATE
23672                | SyntaxKind::CREATE_CAST
23673                | SyntaxKind::CREATE_COLLATION
23674                | SyntaxKind::CREATE_CONVERSION
23675                | SyntaxKind::CREATE_DATABASE
23676                | SyntaxKind::CREATE_DOMAIN
23677                | SyntaxKind::CREATE_EVENT_TRIGGER
23678                | SyntaxKind::CREATE_EXTENSION
23679                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
23680                | SyntaxKind::CREATE_FOREIGN_TABLE
23681                | SyntaxKind::CREATE_FUNCTION
23682                | SyntaxKind::CREATE_GROUP
23683                | SyntaxKind::CREATE_INDEX
23684                | SyntaxKind::CREATE_LANGUAGE
23685                | SyntaxKind::CREATE_MATERIALIZED_VIEW
23686                | SyntaxKind::CREATE_OPERATOR
23687                | SyntaxKind::CREATE_OPERATOR_CLASS
23688                | SyntaxKind::CREATE_OPERATOR_FAMILY
23689                | SyntaxKind::CREATE_POLICY
23690                | SyntaxKind::CREATE_PROCEDURE
23691                | SyntaxKind::CREATE_PUBLICATION
23692                | SyntaxKind::CREATE_ROLE
23693                | SyntaxKind::CREATE_RULE
23694                | SyntaxKind::CREATE_SCHEMA
23695                | SyntaxKind::CREATE_SEQUENCE
23696                | SyntaxKind::CREATE_SERVER
23697                | SyntaxKind::CREATE_STATISTICS
23698                | SyntaxKind::CREATE_SUBSCRIPTION
23699                | SyntaxKind::CREATE_TABLE
23700                | SyntaxKind::CREATE_TABLE_AS
23701                | SyntaxKind::CREATE_TABLESPACE
23702                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
23703                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
23704                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
23705                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
23706                | SyntaxKind::CREATE_TRANSFORM
23707                | SyntaxKind::CREATE_TRIGGER
23708                | SyntaxKind::CREATE_TYPE
23709                | SyntaxKind::CREATE_USER
23710                | SyntaxKind::CREATE_USER_MAPPING
23711                | SyntaxKind::CREATE_VIEW
23712                | SyntaxKind::DEALLOCATE
23713                | SyntaxKind::DECLARE
23714                | SyntaxKind::DELETE
23715                | SyntaxKind::DISCARD
23716                | SyntaxKind::DO
23717                | SyntaxKind::DROP_ACCESS_METHOD
23718                | SyntaxKind::DROP_AGGREGATE
23719                | SyntaxKind::DROP_CAST
23720                | SyntaxKind::DROP_COLLATION
23721                | SyntaxKind::DROP_CONVERSION
23722                | SyntaxKind::DROP_DATABASE
23723                | SyntaxKind::DROP_DOMAIN
23724                | SyntaxKind::DROP_EVENT_TRIGGER
23725                | SyntaxKind::DROP_EXTENSION
23726                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
23727                | SyntaxKind::DROP_FOREIGN_TABLE
23728                | SyntaxKind::DROP_FUNCTION
23729                | SyntaxKind::DROP_GROUP
23730                | SyntaxKind::DROP_INDEX
23731                | SyntaxKind::DROP_LANGUAGE
23732                | SyntaxKind::DROP_MATERIALIZED_VIEW
23733                | SyntaxKind::DROP_OPERATOR
23734                | SyntaxKind::DROP_OPERATOR_CLASS
23735                | SyntaxKind::DROP_OPERATOR_FAMILY
23736                | SyntaxKind::DROP_OWNED
23737                | SyntaxKind::DROP_POLICY
23738                | SyntaxKind::DROP_PROCEDURE
23739                | SyntaxKind::DROP_PUBLICATION
23740                | SyntaxKind::DROP_ROLE
23741                | SyntaxKind::DROP_ROUTINE
23742                | SyntaxKind::DROP_RULE
23743                | SyntaxKind::DROP_SCHEMA
23744                | SyntaxKind::DROP_SEQUENCE
23745                | SyntaxKind::DROP_SERVER
23746                | SyntaxKind::DROP_STATISTICS
23747                | SyntaxKind::DROP_SUBSCRIPTION
23748                | SyntaxKind::DROP_TABLE
23749                | SyntaxKind::DROP_TABLESPACE
23750                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
23751                | SyntaxKind::DROP_TEXT_SEARCH_DICT
23752                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
23753                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
23754                | SyntaxKind::DROP_TRANSFORM
23755                | SyntaxKind::DROP_TRIGGER
23756                | SyntaxKind::DROP_TYPE
23757                | SyntaxKind::DROP_USER
23758                | SyntaxKind::DROP_USER_MAPPING
23759                | SyntaxKind::DROP_VIEW
23760                | SyntaxKind::EXECUTE
23761                | SyntaxKind::EXPLAIN
23762                | SyntaxKind::FETCH
23763                | SyntaxKind::GRANT
23764                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
23765                | SyntaxKind::INSERT
23766                | SyntaxKind::LISTEN
23767                | SyntaxKind::LOAD
23768                | SyntaxKind::LOCK
23769                | SyntaxKind::MERGE
23770                | SyntaxKind::MOVE
23771                | SyntaxKind::NOTIFY
23772                | SyntaxKind::PAREN_SELECT
23773                | SyntaxKind::PREPARE
23774                | SyntaxKind::PREPARE_TRANSACTION
23775                | SyntaxKind::REASSIGN
23776                | SyntaxKind::REFRESH
23777                | SyntaxKind::REINDEX
23778                | SyntaxKind::RELEASE_SAVEPOINT
23779                | SyntaxKind::RESET
23780                | SyntaxKind::REVOKE
23781                | SyntaxKind::ROLLBACK
23782                | SyntaxKind::SAVEPOINT
23783                | SyntaxKind::SECURITY_LABEL
23784                | SyntaxKind::SELECT
23785                | SyntaxKind::SELECT_INTO
23786                | SyntaxKind::SET
23787                | SyntaxKind::SET_CONSTRAINTS
23788                | SyntaxKind::SET_ROLE
23789                | SyntaxKind::SET_SESSION_AUTH
23790                | SyntaxKind::SET_TRANSACTION
23791                | SyntaxKind::SHOW
23792                | SyntaxKind::TABLE
23793                | SyntaxKind::TRUNCATE
23794                | SyntaxKind::UNLISTEN
23795                | SyntaxKind::UPDATE
23796                | SyntaxKind::VACUUM
23797                | SyntaxKind::VALUES
23798        )
23799    }
23800    #[inline]
23801    fn cast(syntax: SyntaxNode) -> Option<Self> {
23802        let res = match syntax.kind() {
23803            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
23804            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
23805            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
23806            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
23807            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
23808                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
23809            }
23810            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
23811            SyntaxKind::ALTER_EVENT_TRIGGER => {
23812                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
23813            }
23814            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
23815            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
23816                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
23817            }
23818            SyntaxKind::ALTER_FOREIGN_TABLE => {
23819                Stmt::AlterForeignTable(AlterForeignTable { syntax })
23820            }
23821            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
23822            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
23823            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
23824            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
23825            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
23826            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
23827                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
23828            }
23829            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
23830            SyntaxKind::ALTER_OPERATOR_CLASS => {
23831                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
23832            }
23833            SyntaxKind::ALTER_OPERATOR_FAMILY => {
23834                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
23835            }
23836            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
23837            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
23838            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
23839            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
23840            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
23841            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
23842            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
23843            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
23844            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
23845            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
23846            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
23847            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
23848            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
23849            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
23850            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
23851                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
23852            }
23853            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
23854                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
23855            }
23856            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
23857                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
23858            }
23859            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
23860                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
23861            }
23862            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
23863            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
23864            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
23865            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
23866            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
23867            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
23868            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
23869            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
23870            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
23871            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
23872            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
23873            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
23874            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
23875            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
23876            SyntaxKind::CREATE_ACCESS_METHOD => {
23877                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
23878            }
23879            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
23880            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
23881            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
23882            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
23883            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
23884            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
23885            SyntaxKind::CREATE_EVENT_TRIGGER => {
23886                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
23887            }
23888            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
23889            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
23890                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
23891            }
23892            SyntaxKind::CREATE_FOREIGN_TABLE => {
23893                Stmt::CreateForeignTable(CreateForeignTable { syntax })
23894            }
23895            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
23896            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
23897            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
23898            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
23899            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
23900                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
23901            }
23902            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
23903            SyntaxKind::CREATE_OPERATOR_CLASS => {
23904                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
23905            }
23906            SyntaxKind::CREATE_OPERATOR_FAMILY => {
23907                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
23908            }
23909            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
23910            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
23911            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
23912            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
23913            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
23914            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
23915            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
23916            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
23917            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
23918            SyntaxKind::CREATE_SUBSCRIPTION => {
23919                Stmt::CreateSubscription(CreateSubscription { syntax })
23920            }
23921            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
23922            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
23923            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
23924            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
23925                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
23926            }
23927            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
23928                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
23929            }
23930            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
23931                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
23932            }
23933            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
23934                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
23935            }
23936            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
23937            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
23938            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
23939            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
23940            SyntaxKind::CREATE_USER_MAPPING => {
23941                Stmt::CreateUserMapping(CreateUserMapping { syntax })
23942            }
23943            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
23944            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
23945            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
23946            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
23947            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
23948            SyntaxKind::DO => Stmt::Do(Do { syntax }),
23949            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
23950            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
23951            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
23952            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
23953            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
23954            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
23955            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
23956            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
23957            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
23958            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
23959                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
23960            }
23961            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
23962            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
23963            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
23964            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
23965            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
23966            SyntaxKind::DROP_MATERIALIZED_VIEW => {
23967                Stmt::DropMaterializedView(DropMaterializedView { syntax })
23968            }
23969            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
23970            SyntaxKind::DROP_OPERATOR_CLASS => {
23971                Stmt::DropOperatorClass(DropOperatorClass { syntax })
23972            }
23973            SyntaxKind::DROP_OPERATOR_FAMILY => {
23974                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
23975            }
23976            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
23977            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
23978            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
23979            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
23980            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
23981            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
23982            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
23983            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
23984            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
23985            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
23986            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
23987            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
23988            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
23989            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
23990            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
23991                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
23992            }
23993            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
23994                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
23995            }
23996            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
23997                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
23998            }
23999            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
24000                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
24001            }
24002            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
24003            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
24004            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
24005            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
24006            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
24007            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
24008            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
24009            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
24010            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
24011            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
24012            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
24013                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
24014            }
24015            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
24016            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
24017            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
24018            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
24019            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
24020            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
24021            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
24022            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
24023            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
24024            SyntaxKind::PREPARE_TRANSACTION => {
24025                Stmt::PrepareTransaction(PrepareTransaction { syntax })
24026            }
24027            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
24028            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
24029            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
24030            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
24031            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
24032            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
24033            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
24034            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
24035            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
24036            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
24037            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
24038            SyntaxKind::SET => Stmt::Set(Set { syntax }),
24039            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
24040            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
24041            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
24042            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
24043            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
24044            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
24045            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
24046            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
24047            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
24048            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
24049            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
24050            _ => {
24051                return None;
24052            }
24053        };
24054        Some(res)
24055    }
24056    #[inline]
24057    fn syntax(&self) -> &SyntaxNode {
24058        match self {
24059            Stmt::AlterAggregate(it) => &it.syntax,
24060            Stmt::AlterCollation(it) => &it.syntax,
24061            Stmt::AlterConversion(it) => &it.syntax,
24062            Stmt::AlterDatabase(it) => &it.syntax,
24063            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
24064            Stmt::AlterDomain(it) => &it.syntax,
24065            Stmt::AlterEventTrigger(it) => &it.syntax,
24066            Stmt::AlterExtension(it) => &it.syntax,
24067            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
24068            Stmt::AlterForeignTable(it) => &it.syntax,
24069            Stmt::AlterFunction(it) => &it.syntax,
24070            Stmt::AlterGroup(it) => &it.syntax,
24071            Stmt::AlterIndex(it) => &it.syntax,
24072            Stmt::AlterLanguage(it) => &it.syntax,
24073            Stmt::AlterLargeObject(it) => &it.syntax,
24074            Stmt::AlterMaterializedView(it) => &it.syntax,
24075            Stmt::AlterOperator(it) => &it.syntax,
24076            Stmt::AlterOperatorClass(it) => &it.syntax,
24077            Stmt::AlterOperatorFamily(it) => &it.syntax,
24078            Stmt::AlterPolicy(it) => &it.syntax,
24079            Stmt::AlterProcedure(it) => &it.syntax,
24080            Stmt::AlterPublication(it) => &it.syntax,
24081            Stmt::AlterRole(it) => &it.syntax,
24082            Stmt::AlterRoutine(it) => &it.syntax,
24083            Stmt::AlterRule(it) => &it.syntax,
24084            Stmt::AlterSchema(it) => &it.syntax,
24085            Stmt::AlterSequence(it) => &it.syntax,
24086            Stmt::AlterServer(it) => &it.syntax,
24087            Stmt::AlterStatistics(it) => &it.syntax,
24088            Stmt::AlterSubscription(it) => &it.syntax,
24089            Stmt::AlterSystem(it) => &it.syntax,
24090            Stmt::AlterTable(it) => &it.syntax,
24091            Stmt::AlterTablespace(it) => &it.syntax,
24092            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
24093            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
24094            Stmt::AlterTextSearchParser(it) => &it.syntax,
24095            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
24096            Stmt::AlterTrigger(it) => &it.syntax,
24097            Stmt::AlterType(it) => &it.syntax,
24098            Stmt::AlterUser(it) => &it.syntax,
24099            Stmt::AlterUserMapping(it) => &it.syntax,
24100            Stmt::AlterView(it) => &it.syntax,
24101            Stmt::Analyze(it) => &it.syntax,
24102            Stmt::Begin(it) => &it.syntax,
24103            Stmt::Call(it) => &it.syntax,
24104            Stmt::Checkpoint(it) => &it.syntax,
24105            Stmt::Close(it) => &it.syntax,
24106            Stmt::Cluster(it) => &it.syntax,
24107            Stmt::CommentOn(it) => &it.syntax,
24108            Stmt::Commit(it) => &it.syntax,
24109            Stmt::Copy(it) => &it.syntax,
24110            Stmt::CreateAccessMethod(it) => &it.syntax,
24111            Stmt::CreateAggregate(it) => &it.syntax,
24112            Stmt::CreateCast(it) => &it.syntax,
24113            Stmt::CreateCollation(it) => &it.syntax,
24114            Stmt::CreateConversion(it) => &it.syntax,
24115            Stmt::CreateDatabase(it) => &it.syntax,
24116            Stmt::CreateDomain(it) => &it.syntax,
24117            Stmt::CreateEventTrigger(it) => &it.syntax,
24118            Stmt::CreateExtension(it) => &it.syntax,
24119            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
24120            Stmt::CreateForeignTable(it) => &it.syntax,
24121            Stmt::CreateFunction(it) => &it.syntax,
24122            Stmt::CreateGroup(it) => &it.syntax,
24123            Stmt::CreateIndex(it) => &it.syntax,
24124            Stmt::CreateLanguage(it) => &it.syntax,
24125            Stmt::CreateMaterializedView(it) => &it.syntax,
24126            Stmt::CreateOperator(it) => &it.syntax,
24127            Stmt::CreateOperatorClass(it) => &it.syntax,
24128            Stmt::CreateOperatorFamily(it) => &it.syntax,
24129            Stmt::CreatePolicy(it) => &it.syntax,
24130            Stmt::CreateProcedure(it) => &it.syntax,
24131            Stmt::CreatePublication(it) => &it.syntax,
24132            Stmt::CreateRole(it) => &it.syntax,
24133            Stmt::CreateRule(it) => &it.syntax,
24134            Stmt::CreateSchema(it) => &it.syntax,
24135            Stmt::CreateSequence(it) => &it.syntax,
24136            Stmt::CreateServer(it) => &it.syntax,
24137            Stmt::CreateStatistics(it) => &it.syntax,
24138            Stmt::CreateSubscription(it) => &it.syntax,
24139            Stmt::CreateTable(it) => &it.syntax,
24140            Stmt::CreateTableAs(it) => &it.syntax,
24141            Stmt::CreateTablespace(it) => &it.syntax,
24142            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
24143            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
24144            Stmt::CreateTextSearchParser(it) => &it.syntax,
24145            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
24146            Stmt::CreateTransform(it) => &it.syntax,
24147            Stmt::CreateTrigger(it) => &it.syntax,
24148            Stmt::CreateType(it) => &it.syntax,
24149            Stmt::CreateUser(it) => &it.syntax,
24150            Stmt::CreateUserMapping(it) => &it.syntax,
24151            Stmt::CreateView(it) => &it.syntax,
24152            Stmt::Deallocate(it) => &it.syntax,
24153            Stmt::Declare(it) => &it.syntax,
24154            Stmt::Delete(it) => &it.syntax,
24155            Stmt::Discard(it) => &it.syntax,
24156            Stmt::Do(it) => &it.syntax,
24157            Stmt::DropAccessMethod(it) => &it.syntax,
24158            Stmt::DropAggregate(it) => &it.syntax,
24159            Stmt::DropCast(it) => &it.syntax,
24160            Stmt::DropCollation(it) => &it.syntax,
24161            Stmt::DropConversion(it) => &it.syntax,
24162            Stmt::DropDatabase(it) => &it.syntax,
24163            Stmt::DropDomain(it) => &it.syntax,
24164            Stmt::DropEventTrigger(it) => &it.syntax,
24165            Stmt::DropExtension(it) => &it.syntax,
24166            Stmt::DropForeignDataWrapper(it) => &it.syntax,
24167            Stmt::DropForeignTable(it) => &it.syntax,
24168            Stmt::DropFunction(it) => &it.syntax,
24169            Stmt::DropGroup(it) => &it.syntax,
24170            Stmt::DropIndex(it) => &it.syntax,
24171            Stmt::DropLanguage(it) => &it.syntax,
24172            Stmt::DropMaterializedView(it) => &it.syntax,
24173            Stmt::DropOperator(it) => &it.syntax,
24174            Stmt::DropOperatorClass(it) => &it.syntax,
24175            Stmt::DropOperatorFamily(it) => &it.syntax,
24176            Stmt::DropOwned(it) => &it.syntax,
24177            Stmt::DropPolicy(it) => &it.syntax,
24178            Stmt::DropProcedure(it) => &it.syntax,
24179            Stmt::DropPublication(it) => &it.syntax,
24180            Stmt::DropRole(it) => &it.syntax,
24181            Stmt::DropRoutine(it) => &it.syntax,
24182            Stmt::DropRule(it) => &it.syntax,
24183            Stmt::DropSchema(it) => &it.syntax,
24184            Stmt::DropSequence(it) => &it.syntax,
24185            Stmt::DropServer(it) => &it.syntax,
24186            Stmt::DropStatistics(it) => &it.syntax,
24187            Stmt::DropSubscription(it) => &it.syntax,
24188            Stmt::DropTable(it) => &it.syntax,
24189            Stmt::DropTablespace(it) => &it.syntax,
24190            Stmt::DropTextSearchConfig(it) => &it.syntax,
24191            Stmt::DropTextSearchDict(it) => &it.syntax,
24192            Stmt::DropTextSearchParser(it) => &it.syntax,
24193            Stmt::DropTextSearchTemplate(it) => &it.syntax,
24194            Stmt::DropTransform(it) => &it.syntax,
24195            Stmt::DropTrigger(it) => &it.syntax,
24196            Stmt::DropType(it) => &it.syntax,
24197            Stmt::DropUser(it) => &it.syntax,
24198            Stmt::DropUserMapping(it) => &it.syntax,
24199            Stmt::DropView(it) => &it.syntax,
24200            Stmt::Execute(it) => &it.syntax,
24201            Stmt::Explain(it) => &it.syntax,
24202            Stmt::Fetch(it) => &it.syntax,
24203            Stmt::Grant(it) => &it.syntax,
24204            Stmt::ImportForeignSchema(it) => &it.syntax,
24205            Stmt::Insert(it) => &it.syntax,
24206            Stmt::Listen(it) => &it.syntax,
24207            Stmt::Load(it) => &it.syntax,
24208            Stmt::Lock(it) => &it.syntax,
24209            Stmt::Merge(it) => &it.syntax,
24210            Stmt::Move(it) => &it.syntax,
24211            Stmt::Notify(it) => &it.syntax,
24212            Stmt::ParenSelect(it) => &it.syntax,
24213            Stmt::Prepare(it) => &it.syntax,
24214            Stmt::PrepareTransaction(it) => &it.syntax,
24215            Stmt::Reassign(it) => &it.syntax,
24216            Stmt::Refresh(it) => &it.syntax,
24217            Stmt::Reindex(it) => &it.syntax,
24218            Stmt::ReleaseSavepoint(it) => &it.syntax,
24219            Stmt::Reset(it) => &it.syntax,
24220            Stmt::Revoke(it) => &it.syntax,
24221            Stmt::Rollback(it) => &it.syntax,
24222            Stmt::Savepoint(it) => &it.syntax,
24223            Stmt::SecurityLabel(it) => &it.syntax,
24224            Stmt::Select(it) => &it.syntax,
24225            Stmt::SelectInto(it) => &it.syntax,
24226            Stmt::Set(it) => &it.syntax,
24227            Stmt::SetConstraints(it) => &it.syntax,
24228            Stmt::SetRole(it) => &it.syntax,
24229            Stmt::SetSessionAuth(it) => &it.syntax,
24230            Stmt::SetTransaction(it) => &it.syntax,
24231            Stmt::Show(it) => &it.syntax,
24232            Stmt::Table(it) => &it.syntax,
24233            Stmt::Truncate(it) => &it.syntax,
24234            Stmt::Unlisten(it) => &it.syntax,
24235            Stmt::Update(it) => &it.syntax,
24236            Stmt::Vacuum(it) => &it.syntax,
24237            Stmt::Values(it) => &it.syntax,
24238        }
24239    }
24240}
24241impl From<AlterAggregate> for Stmt {
24242    #[inline]
24243    fn from(node: AlterAggregate) -> Stmt {
24244        Stmt::AlterAggregate(node)
24245    }
24246}
24247impl From<AlterCollation> for Stmt {
24248    #[inline]
24249    fn from(node: AlterCollation) -> Stmt {
24250        Stmt::AlterCollation(node)
24251    }
24252}
24253impl From<AlterConversion> for Stmt {
24254    #[inline]
24255    fn from(node: AlterConversion) -> Stmt {
24256        Stmt::AlterConversion(node)
24257    }
24258}
24259impl From<AlterDatabase> for Stmt {
24260    #[inline]
24261    fn from(node: AlterDatabase) -> Stmt {
24262        Stmt::AlterDatabase(node)
24263    }
24264}
24265impl From<AlterDefaultPrivileges> for Stmt {
24266    #[inline]
24267    fn from(node: AlterDefaultPrivileges) -> Stmt {
24268        Stmt::AlterDefaultPrivileges(node)
24269    }
24270}
24271impl From<AlterDomain> for Stmt {
24272    #[inline]
24273    fn from(node: AlterDomain) -> Stmt {
24274        Stmt::AlterDomain(node)
24275    }
24276}
24277impl From<AlterEventTrigger> for Stmt {
24278    #[inline]
24279    fn from(node: AlterEventTrigger) -> Stmt {
24280        Stmt::AlterEventTrigger(node)
24281    }
24282}
24283impl From<AlterExtension> for Stmt {
24284    #[inline]
24285    fn from(node: AlterExtension) -> Stmt {
24286        Stmt::AlterExtension(node)
24287    }
24288}
24289impl From<AlterForeignDataWrapper> for Stmt {
24290    #[inline]
24291    fn from(node: AlterForeignDataWrapper) -> Stmt {
24292        Stmt::AlterForeignDataWrapper(node)
24293    }
24294}
24295impl From<AlterForeignTable> for Stmt {
24296    #[inline]
24297    fn from(node: AlterForeignTable) -> Stmt {
24298        Stmt::AlterForeignTable(node)
24299    }
24300}
24301impl From<AlterFunction> for Stmt {
24302    #[inline]
24303    fn from(node: AlterFunction) -> Stmt {
24304        Stmt::AlterFunction(node)
24305    }
24306}
24307impl From<AlterGroup> for Stmt {
24308    #[inline]
24309    fn from(node: AlterGroup) -> Stmt {
24310        Stmt::AlterGroup(node)
24311    }
24312}
24313impl From<AlterIndex> for Stmt {
24314    #[inline]
24315    fn from(node: AlterIndex) -> Stmt {
24316        Stmt::AlterIndex(node)
24317    }
24318}
24319impl From<AlterLanguage> for Stmt {
24320    #[inline]
24321    fn from(node: AlterLanguage) -> Stmt {
24322        Stmt::AlterLanguage(node)
24323    }
24324}
24325impl From<AlterLargeObject> for Stmt {
24326    #[inline]
24327    fn from(node: AlterLargeObject) -> Stmt {
24328        Stmt::AlterLargeObject(node)
24329    }
24330}
24331impl From<AlterMaterializedView> for Stmt {
24332    #[inline]
24333    fn from(node: AlterMaterializedView) -> Stmt {
24334        Stmt::AlterMaterializedView(node)
24335    }
24336}
24337impl From<AlterOperator> for Stmt {
24338    #[inline]
24339    fn from(node: AlterOperator) -> Stmt {
24340        Stmt::AlterOperator(node)
24341    }
24342}
24343impl From<AlterOperatorClass> for Stmt {
24344    #[inline]
24345    fn from(node: AlterOperatorClass) -> Stmt {
24346        Stmt::AlterOperatorClass(node)
24347    }
24348}
24349impl From<AlterOperatorFamily> for Stmt {
24350    #[inline]
24351    fn from(node: AlterOperatorFamily) -> Stmt {
24352        Stmt::AlterOperatorFamily(node)
24353    }
24354}
24355impl From<AlterPolicy> for Stmt {
24356    #[inline]
24357    fn from(node: AlterPolicy) -> Stmt {
24358        Stmt::AlterPolicy(node)
24359    }
24360}
24361impl From<AlterProcedure> for Stmt {
24362    #[inline]
24363    fn from(node: AlterProcedure) -> Stmt {
24364        Stmt::AlterProcedure(node)
24365    }
24366}
24367impl From<AlterPublication> for Stmt {
24368    #[inline]
24369    fn from(node: AlterPublication) -> Stmt {
24370        Stmt::AlterPublication(node)
24371    }
24372}
24373impl From<AlterRole> for Stmt {
24374    #[inline]
24375    fn from(node: AlterRole) -> Stmt {
24376        Stmt::AlterRole(node)
24377    }
24378}
24379impl From<AlterRoutine> for Stmt {
24380    #[inline]
24381    fn from(node: AlterRoutine) -> Stmt {
24382        Stmt::AlterRoutine(node)
24383    }
24384}
24385impl From<AlterRule> for Stmt {
24386    #[inline]
24387    fn from(node: AlterRule) -> Stmt {
24388        Stmt::AlterRule(node)
24389    }
24390}
24391impl From<AlterSchema> for Stmt {
24392    #[inline]
24393    fn from(node: AlterSchema) -> Stmt {
24394        Stmt::AlterSchema(node)
24395    }
24396}
24397impl From<AlterSequence> for Stmt {
24398    #[inline]
24399    fn from(node: AlterSequence) -> Stmt {
24400        Stmt::AlterSequence(node)
24401    }
24402}
24403impl From<AlterServer> for Stmt {
24404    #[inline]
24405    fn from(node: AlterServer) -> Stmt {
24406        Stmt::AlterServer(node)
24407    }
24408}
24409impl From<AlterStatistics> for Stmt {
24410    #[inline]
24411    fn from(node: AlterStatistics) -> Stmt {
24412        Stmt::AlterStatistics(node)
24413    }
24414}
24415impl From<AlterSubscription> for Stmt {
24416    #[inline]
24417    fn from(node: AlterSubscription) -> Stmt {
24418        Stmt::AlterSubscription(node)
24419    }
24420}
24421impl From<AlterSystem> for Stmt {
24422    #[inline]
24423    fn from(node: AlterSystem) -> Stmt {
24424        Stmt::AlterSystem(node)
24425    }
24426}
24427impl From<AlterTable> for Stmt {
24428    #[inline]
24429    fn from(node: AlterTable) -> Stmt {
24430        Stmt::AlterTable(node)
24431    }
24432}
24433impl From<AlterTablespace> for Stmt {
24434    #[inline]
24435    fn from(node: AlterTablespace) -> Stmt {
24436        Stmt::AlterTablespace(node)
24437    }
24438}
24439impl From<AlterTextSearchConfiguration> for Stmt {
24440    #[inline]
24441    fn from(node: AlterTextSearchConfiguration) -> Stmt {
24442        Stmt::AlterTextSearchConfiguration(node)
24443    }
24444}
24445impl From<AlterTextSearchDictionary> for Stmt {
24446    #[inline]
24447    fn from(node: AlterTextSearchDictionary) -> Stmt {
24448        Stmt::AlterTextSearchDictionary(node)
24449    }
24450}
24451impl From<AlterTextSearchParser> for Stmt {
24452    #[inline]
24453    fn from(node: AlterTextSearchParser) -> Stmt {
24454        Stmt::AlterTextSearchParser(node)
24455    }
24456}
24457impl From<AlterTextSearchTemplate> for Stmt {
24458    #[inline]
24459    fn from(node: AlterTextSearchTemplate) -> Stmt {
24460        Stmt::AlterTextSearchTemplate(node)
24461    }
24462}
24463impl From<AlterTrigger> for Stmt {
24464    #[inline]
24465    fn from(node: AlterTrigger) -> Stmt {
24466        Stmt::AlterTrigger(node)
24467    }
24468}
24469impl From<AlterType> for Stmt {
24470    #[inline]
24471    fn from(node: AlterType) -> Stmt {
24472        Stmt::AlterType(node)
24473    }
24474}
24475impl From<AlterUser> for Stmt {
24476    #[inline]
24477    fn from(node: AlterUser) -> Stmt {
24478        Stmt::AlterUser(node)
24479    }
24480}
24481impl From<AlterUserMapping> for Stmt {
24482    #[inline]
24483    fn from(node: AlterUserMapping) -> Stmt {
24484        Stmt::AlterUserMapping(node)
24485    }
24486}
24487impl From<AlterView> for Stmt {
24488    #[inline]
24489    fn from(node: AlterView) -> Stmt {
24490        Stmt::AlterView(node)
24491    }
24492}
24493impl From<Analyze> for Stmt {
24494    #[inline]
24495    fn from(node: Analyze) -> Stmt {
24496        Stmt::Analyze(node)
24497    }
24498}
24499impl From<Begin> for Stmt {
24500    #[inline]
24501    fn from(node: Begin) -> Stmt {
24502        Stmt::Begin(node)
24503    }
24504}
24505impl From<Call> for Stmt {
24506    #[inline]
24507    fn from(node: Call) -> Stmt {
24508        Stmt::Call(node)
24509    }
24510}
24511impl From<Checkpoint> for Stmt {
24512    #[inline]
24513    fn from(node: Checkpoint) -> Stmt {
24514        Stmt::Checkpoint(node)
24515    }
24516}
24517impl From<Close> for Stmt {
24518    #[inline]
24519    fn from(node: Close) -> Stmt {
24520        Stmt::Close(node)
24521    }
24522}
24523impl From<Cluster> for Stmt {
24524    #[inline]
24525    fn from(node: Cluster) -> Stmt {
24526        Stmt::Cluster(node)
24527    }
24528}
24529impl From<CommentOn> for Stmt {
24530    #[inline]
24531    fn from(node: CommentOn) -> Stmt {
24532        Stmt::CommentOn(node)
24533    }
24534}
24535impl From<Commit> for Stmt {
24536    #[inline]
24537    fn from(node: Commit) -> Stmt {
24538        Stmt::Commit(node)
24539    }
24540}
24541impl From<Copy> for Stmt {
24542    #[inline]
24543    fn from(node: Copy) -> Stmt {
24544        Stmt::Copy(node)
24545    }
24546}
24547impl From<CreateAccessMethod> for Stmt {
24548    #[inline]
24549    fn from(node: CreateAccessMethod) -> Stmt {
24550        Stmt::CreateAccessMethod(node)
24551    }
24552}
24553impl From<CreateAggregate> for Stmt {
24554    #[inline]
24555    fn from(node: CreateAggregate) -> Stmt {
24556        Stmt::CreateAggregate(node)
24557    }
24558}
24559impl From<CreateCast> for Stmt {
24560    #[inline]
24561    fn from(node: CreateCast) -> Stmt {
24562        Stmt::CreateCast(node)
24563    }
24564}
24565impl From<CreateCollation> for Stmt {
24566    #[inline]
24567    fn from(node: CreateCollation) -> Stmt {
24568        Stmt::CreateCollation(node)
24569    }
24570}
24571impl From<CreateConversion> for Stmt {
24572    #[inline]
24573    fn from(node: CreateConversion) -> Stmt {
24574        Stmt::CreateConversion(node)
24575    }
24576}
24577impl From<CreateDatabase> for Stmt {
24578    #[inline]
24579    fn from(node: CreateDatabase) -> Stmt {
24580        Stmt::CreateDatabase(node)
24581    }
24582}
24583impl From<CreateDomain> for Stmt {
24584    #[inline]
24585    fn from(node: CreateDomain) -> Stmt {
24586        Stmt::CreateDomain(node)
24587    }
24588}
24589impl From<CreateEventTrigger> for Stmt {
24590    #[inline]
24591    fn from(node: CreateEventTrigger) -> Stmt {
24592        Stmt::CreateEventTrigger(node)
24593    }
24594}
24595impl From<CreateExtension> for Stmt {
24596    #[inline]
24597    fn from(node: CreateExtension) -> Stmt {
24598        Stmt::CreateExtension(node)
24599    }
24600}
24601impl From<CreateForeignDataWrapper> for Stmt {
24602    #[inline]
24603    fn from(node: CreateForeignDataWrapper) -> Stmt {
24604        Stmt::CreateForeignDataWrapper(node)
24605    }
24606}
24607impl From<CreateForeignTable> for Stmt {
24608    #[inline]
24609    fn from(node: CreateForeignTable) -> Stmt {
24610        Stmt::CreateForeignTable(node)
24611    }
24612}
24613impl From<CreateFunction> for Stmt {
24614    #[inline]
24615    fn from(node: CreateFunction) -> Stmt {
24616        Stmt::CreateFunction(node)
24617    }
24618}
24619impl From<CreateGroup> for Stmt {
24620    #[inline]
24621    fn from(node: CreateGroup) -> Stmt {
24622        Stmt::CreateGroup(node)
24623    }
24624}
24625impl From<CreateIndex> for Stmt {
24626    #[inline]
24627    fn from(node: CreateIndex) -> Stmt {
24628        Stmt::CreateIndex(node)
24629    }
24630}
24631impl From<CreateLanguage> for Stmt {
24632    #[inline]
24633    fn from(node: CreateLanguage) -> Stmt {
24634        Stmt::CreateLanguage(node)
24635    }
24636}
24637impl From<CreateMaterializedView> for Stmt {
24638    #[inline]
24639    fn from(node: CreateMaterializedView) -> Stmt {
24640        Stmt::CreateMaterializedView(node)
24641    }
24642}
24643impl From<CreateOperator> for Stmt {
24644    #[inline]
24645    fn from(node: CreateOperator) -> Stmt {
24646        Stmt::CreateOperator(node)
24647    }
24648}
24649impl From<CreateOperatorClass> for Stmt {
24650    #[inline]
24651    fn from(node: CreateOperatorClass) -> Stmt {
24652        Stmt::CreateOperatorClass(node)
24653    }
24654}
24655impl From<CreateOperatorFamily> for Stmt {
24656    #[inline]
24657    fn from(node: CreateOperatorFamily) -> Stmt {
24658        Stmt::CreateOperatorFamily(node)
24659    }
24660}
24661impl From<CreatePolicy> for Stmt {
24662    #[inline]
24663    fn from(node: CreatePolicy) -> Stmt {
24664        Stmt::CreatePolicy(node)
24665    }
24666}
24667impl From<CreateProcedure> for Stmt {
24668    #[inline]
24669    fn from(node: CreateProcedure) -> Stmt {
24670        Stmt::CreateProcedure(node)
24671    }
24672}
24673impl From<CreatePublication> for Stmt {
24674    #[inline]
24675    fn from(node: CreatePublication) -> Stmt {
24676        Stmt::CreatePublication(node)
24677    }
24678}
24679impl From<CreateRole> for Stmt {
24680    #[inline]
24681    fn from(node: CreateRole) -> Stmt {
24682        Stmt::CreateRole(node)
24683    }
24684}
24685impl From<CreateRule> for Stmt {
24686    #[inline]
24687    fn from(node: CreateRule) -> Stmt {
24688        Stmt::CreateRule(node)
24689    }
24690}
24691impl From<CreateSchema> for Stmt {
24692    #[inline]
24693    fn from(node: CreateSchema) -> Stmt {
24694        Stmt::CreateSchema(node)
24695    }
24696}
24697impl From<CreateSequence> for Stmt {
24698    #[inline]
24699    fn from(node: CreateSequence) -> Stmt {
24700        Stmt::CreateSequence(node)
24701    }
24702}
24703impl From<CreateServer> for Stmt {
24704    #[inline]
24705    fn from(node: CreateServer) -> Stmt {
24706        Stmt::CreateServer(node)
24707    }
24708}
24709impl From<CreateStatistics> for Stmt {
24710    #[inline]
24711    fn from(node: CreateStatistics) -> Stmt {
24712        Stmt::CreateStatistics(node)
24713    }
24714}
24715impl From<CreateSubscription> for Stmt {
24716    #[inline]
24717    fn from(node: CreateSubscription) -> Stmt {
24718        Stmt::CreateSubscription(node)
24719    }
24720}
24721impl From<CreateTable> for Stmt {
24722    #[inline]
24723    fn from(node: CreateTable) -> Stmt {
24724        Stmt::CreateTable(node)
24725    }
24726}
24727impl From<CreateTableAs> for Stmt {
24728    #[inline]
24729    fn from(node: CreateTableAs) -> Stmt {
24730        Stmt::CreateTableAs(node)
24731    }
24732}
24733impl From<CreateTablespace> for Stmt {
24734    #[inline]
24735    fn from(node: CreateTablespace) -> Stmt {
24736        Stmt::CreateTablespace(node)
24737    }
24738}
24739impl From<CreateTextSearchConfiguration> for Stmt {
24740    #[inline]
24741    fn from(node: CreateTextSearchConfiguration) -> Stmt {
24742        Stmt::CreateTextSearchConfiguration(node)
24743    }
24744}
24745impl From<CreateTextSearchDictionary> for Stmt {
24746    #[inline]
24747    fn from(node: CreateTextSearchDictionary) -> Stmt {
24748        Stmt::CreateTextSearchDictionary(node)
24749    }
24750}
24751impl From<CreateTextSearchParser> for Stmt {
24752    #[inline]
24753    fn from(node: CreateTextSearchParser) -> Stmt {
24754        Stmt::CreateTextSearchParser(node)
24755    }
24756}
24757impl From<CreateTextSearchTemplate> for Stmt {
24758    #[inline]
24759    fn from(node: CreateTextSearchTemplate) -> Stmt {
24760        Stmt::CreateTextSearchTemplate(node)
24761    }
24762}
24763impl From<CreateTransform> for Stmt {
24764    #[inline]
24765    fn from(node: CreateTransform) -> Stmt {
24766        Stmt::CreateTransform(node)
24767    }
24768}
24769impl From<CreateTrigger> for Stmt {
24770    #[inline]
24771    fn from(node: CreateTrigger) -> Stmt {
24772        Stmt::CreateTrigger(node)
24773    }
24774}
24775impl From<CreateType> for Stmt {
24776    #[inline]
24777    fn from(node: CreateType) -> Stmt {
24778        Stmt::CreateType(node)
24779    }
24780}
24781impl From<CreateUser> for Stmt {
24782    #[inline]
24783    fn from(node: CreateUser) -> Stmt {
24784        Stmt::CreateUser(node)
24785    }
24786}
24787impl From<CreateUserMapping> for Stmt {
24788    #[inline]
24789    fn from(node: CreateUserMapping) -> Stmt {
24790        Stmt::CreateUserMapping(node)
24791    }
24792}
24793impl From<CreateView> for Stmt {
24794    #[inline]
24795    fn from(node: CreateView) -> Stmt {
24796        Stmt::CreateView(node)
24797    }
24798}
24799impl From<Deallocate> for Stmt {
24800    #[inline]
24801    fn from(node: Deallocate) -> Stmt {
24802        Stmt::Deallocate(node)
24803    }
24804}
24805impl From<Declare> for Stmt {
24806    #[inline]
24807    fn from(node: Declare) -> Stmt {
24808        Stmt::Declare(node)
24809    }
24810}
24811impl From<Delete> for Stmt {
24812    #[inline]
24813    fn from(node: Delete) -> Stmt {
24814        Stmt::Delete(node)
24815    }
24816}
24817impl From<Discard> for Stmt {
24818    #[inline]
24819    fn from(node: Discard) -> Stmt {
24820        Stmt::Discard(node)
24821    }
24822}
24823impl From<Do> for Stmt {
24824    #[inline]
24825    fn from(node: Do) -> Stmt {
24826        Stmt::Do(node)
24827    }
24828}
24829impl From<DropAccessMethod> for Stmt {
24830    #[inline]
24831    fn from(node: DropAccessMethod) -> Stmt {
24832        Stmt::DropAccessMethod(node)
24833    }
24834}
24835impl From<DropAggregate> for Stmt {
24836    #[inline]
24837    fn from(node: DropAggregate) -> Stmt {
24838        Stmt::DropAggregate(node)
24839    }
24840}
24841impl From<DropCast> for Stmt {
24842    #[inline]
24843    fn from(node: DropCast) -> Stmt {
24844        Stmt::DropCast(node)
24845    }
24846}
24847impl From<DropCollation> for Stmt {
24848    #[inline]
24849    fn from(node: DropCollation) -> Stmt {
24850        Stmt::DropCollation(node)
24851    }
24852}
24853impl From<DropConversion> for Stmt {
24854    #[inline]
24855    fn from(node: DropConversion) -> Stmt {
24856        Stmt::DropConversion(node)
24857    }
24858}
24859impl From<DropDatabase> for Stmt {
24860    #[inline]
24861    fn from(node: DropDatabase) -> Stmt {
24862        Stmt::DropDatabase(node)
24863    }
24864}
24865impl From<DropDomain> for Stmt {
24866    #[inline]
24867    fn from(node: DropDomain) -> Stmt {
24868        Stmt::DropDomain(node)
24869    }
24870}
24871impl From<DropEventTrigger> for Stmt {
24872    #[inline]
24873    fn from(node: DropEventTrigger) -> Stmt {
24874        Stmt::DropEventTrigger(node)
24875    }
24876}
24877impl From<DropExtension> for Stmt {
24878    #[inline]
24879    fn from(node: DropExtension) -> Stmt {
24880        Stmt::DropExtension(node)
24881    }
24882}
24883impl From<DropForeignDataWrapper> for Stmt {
24884    #[inline]
24885    fn from(node: DropForeignDataWrapper) -> Stmt {
24886        Stmt::DropForeignDataWrapper(node)
24887    }
24888}
24889impl From<DropForeignTable> for Stmt {
24890    #[inline]
24891    fn from(node: DropForeignTable) -> Stmt {
24892        Stmt::DropForeignTable(node)
24893    }
24894}
24895impl From<DropFunction> for Stmt {
24896    #[inline]
24897    fn from(node: DropFunction) -> Stmt {
24898        Stmt::DropFunction(node)
24899    }
24900}
24901impl From<DropGroup> for Stmt {
24902    #[inline]
24903    fn from(node: DropGroup) -> Stmt {
24904        Stmt::DropGroup(node)
24905    }
24906}
24907impl From<DropIndex> for Stmt {
24908    #[inline]
24909    fn from(node: DropIndex) -> Stmt {
24910        Stmt::DropIndex(node)
24911    }
24912}
24913impl From<DropLanguage> for Stmt {
24914    #[inline]
24915    fn from(node: DropLanguage) -> Stmt {
24916        Stmt::DropLanguage(node)
24917    }
24918}
24919impl From<DropMaterializedView> for Stmt {
24920    #[inline]
24921    fn from(node: DropMaterializedView) -> Stmt {
24922        Stmt::DropMaterializedView(node)
24923    }
24924}
24925impl From<DropOperator> for Stmt {
24926    #[inline]
24927    fn from(node: DropOperator) -> Stmt {
24928        Stmt::DropOperator(node)
24929    }
24930}
24931impl From<DropOperatorClass> for Stmt {
24932    #[inline]
24933    fn from(node: DropOperatorClass) -> Stmt {
24934        Stmt::DropOperatorClass(node)
24935    }
24936}
24937impl From<DropOperatorFamily> for Stmt {
24938    #[inline]
24939    fn from(node: DropOperatorFamily) -> Stmt {
24940        Stmt::DropOperatorFamily(node)
24941    }
24942}
24943impl From<DropOwned> for Stmt {
24944    #[inline]
24945    fn from(node: DropOwned) -> Stmt {
24946        Stmt::DropOwned(node)
24947    }
24948}
24949impl From<DropPolicy> for Stmt {
24950    #[inline]
24951    fn from(node: DropPolicy) -> Stmt {
24952        Stmt::DropPolicy(node)
24953    }
24954}
24955impl From<DropProcedure> for Stmt {
24956    #[inline]
24957    fn from(node: DropProcedure) -> Stmt {
24958        Stmt::DropProcedure(node)
24959    }
24960}
24961impl From<DropPublication> for Stmt {
24962    #[inline]
24963    fn from(node: DropPublication) -> Stmt {
24964        Stmt::DropPublication(node)
24965    }
24966}
24967impl From<DropRole> for Stmt {
24968    #[inline]
24969    fn from(node: DropRole) -> Stmt {
24970        Stmt::DropRole(node)
24971    }
24972}
24973impl From<DropRoutine> for Stmt {
24974    #[inline]
24975    fn from(node: DropRoutine) -> Stmt {
24976        Stmt::DropRoutine(node)
24977    }
24978}
24979impl From<DropRule> for Stmt {
24980    #[inline]
24981    fn from(node: DropRule) -> Stmt {
24982        Stmt::DropRule(node)
24983    }
24984}
24985impl From<DropSchema> for Stmt {
24986    #[inline]
24987    fn from(node: DropSchema) -> Stmt {
24988        Stmt::DropSchema(node)
24989    }
24990}
24991impl From<DropSequence> for Stmt {
24992    #[inline]
24993    fn from(node: DropSequence) -> Stmt {
24994        Stmt::DropSequence(node)
24995    }
24996}
24997impl From<DropServer> for Stmt {
24998    #[inline]
24999    fn from(node: DropServer) -> Stmt {
25000        Stmt::DropServer(node)
25001    }
25002}
25003impl From<DropStatistics> for Stmt {
25004    #[inline]
25005    fn from(node: DropStatistics) -> Stmt {
25006        Stmt::DropStatistics(node)
25007    }
25008}
25009impl From<DropSubscription> for Stmt {
25010    #[inline]
25011    fn from(node: DropSubscription) -> Stmt {
25012        Stmt::DropSubscription(node)
25013    }
25014}
25015impl From<DropTable> for Stmt {
25016    #[inline]
25017    fn from(node: DropTable) -> Stmt {
25018        Stmt::DropTable(node)
25019    }
25020}
25021impl From<DropTablespace> for Stmt {
25022    #[inline]
25023    fn from(node: DropTablespace) -> Stmt {
25024        Stmt::DropTablespace(node)
25025    }
25026}
25027impl From<DropTextSearchConfig> for Stmt {
25028    #[inline]
25029    fn from(node: DropTextSearchConfig) -> Stmt {
25030        Stmt::DropTextSearchConfig(node)
25031    }
25032}
25033impl From<DropTextSearchDict> for Stmt {
25034    #[inline]
25035    fn from(node: DropTextSearchDict) -> Stmt {
25036        Stmt::DropTextSearchDict(node)
25037    }
25038}
25039impl From<DropTextSearchParser> for Stmt {
25040    #[inline]
25041    fn from(node: DropTextSearchParser) -> Stmt {
25042        Stmt::DropTextSearchParser(node)
25043    }
25044}
25045impl From<DropTextSearchTemplate> for Stmt {
25046    #[inline]
25047    fn from(node: DropTextSearchTemplate) -> Stmt {
25048        Stmt::DropTextSearchTemplate(node)
25049    }
25050}
25051impl From<DropTransform> for Stmt {
25052    #[inline]
25053    fn from(node: DropTransform) -> Stmt {
25054        Stmt::DropTransform(node)
25055    }
25056}
25057impl From<DropTrigger> for Stmt {
25058    #[inline]
25059    fn from(node: DropTrigger) -> Stmt {
25060        Stmt::DropTrigger(node)
25061    }
25062}
25063impl From<DropType> for Stmt {
25064    #[inline]
25065    fn from(node: DropType) -> Stmt {
25066        Stmt::DropType(node)
25067    }
25068}
25069impl From<DropUser> for Stmt {
25070    #[inline]
25071    fn from(node: DropUser) -> Stmt {
25072        Stmt::DropUser(node)
25073    }
25074}
25075impl From<DropUserMapping> for Stmt {
25076    #[inline]
25077    fn from(node: DropUserMapping) -> Stmt {
25078        Stmt::DropUserMapping(node)
25079    }
25080}
25081impl From<DropView> for Stmt {
25082    #[inline]
25083    fn from(node: DropView) -> Stmt {
25084        Stmt::DropView(node)
25085    }
25086}
25087impl From<Execute> for Stmt {
25088    #[inline]
25089    fn from(node: Execute) -> Stmt {
25090        Stmt::Execute(node)
25091    }
25092}
25093impl From<Explain> for Stmt {
25094    #[inline]
25095    fn from(node: Explain) -> Stmt {
25096        Stmt::Explain(node)
25097    }
25098}
25099impl From<Fetch> for Stmt {
25100    #[inline]
25101    fn from(node: Fetch) -> Stmt {
25102        Stmt::Fetch(node)
25103    }
25104}
25105impl From<Grant> for Stmt {
25106    #[inline]
25107    fn from(node: Grant) -> Stmt {
25108        Stmt::Grant(node)
25109    }
25110}
25111impl From<ImportForeignSchema> for Stmt {
25112    #[inline]
25113    fn from(node: ImportForeignSchema) -> Stmt {
25114        Stmt::ImportForeignSchema(node)
25115    }
25116}
25117impl From<Insert> for Stmt {
25118    #[inline]
25119    fn from(node: Insert) -> Stmt {
25120        Stmt::Insert(node)
25121    }
25122}
25123impl From<Listen> for Stmt {
25124    #[inline]
25125    fn from(node: Listen) -> Stmt {
25126        Stmt::Listen(node)
25127    }
25128}
25129impl From<Load> for Stmt {
25130    #[inline]
25131    fn from(node: Load) -> Stmt {
25132        Stmt::Load(node)
25133    }
25134}
25135impl From<Lock> for Stmt {
25136    #[inline]
25137    fn from(node: Lock) -> Stmt {
25138        Stmt::Lock(node)
25139    }
25140}
25141impl From<Merge> for Stmt {
25142    #[inline]
25143    fn from(node: Merge) -> Stmt {
25144        Stmt::Merge(node)
25145    }
25146}
25147impl From<Move> for Stmt {
25148    #[inline]
25149    fn from(node: Move) -> Stmt {
25150        Stmt::Move(node)
25151    }
25152}
25153impl From<Notify> for Stmt {
25154    #[inline]
25155    fn from(node: Notify) -> Stmt {
25156        Stmt::Notify(node)
25157    }
25158}
25159impl From<ParenSelect> for Stmt {
25160    #[inline]
25161    fn from(node: ParenSelect) -> Stmt {
25162        Stmt::ParenSelect(node)
25163    }
25164}
25165impl From<Prepare> for Stmt {
25166    #[inline]
25167    fn from(node: Prepare) -> Stmt {
25168        Stmt::Prepare(node)
25169    }
25170}
25171impl From<PrepareTransaction> for Stmt {
25172    #[inline]
25173    fn from(node: PrepareTransaction) -> Stmt {
25174        Stmt::PrepareTransaction(node)
25175    }
25176}
25177impl From<Reassign> for Stmt {
25178    #[inline]
25179    fn from(node: Reassign) -> Stmt {
25180        Stmt::Reassign(node)
25181    }
25182}
25183impl From<Refresh> for Stmt {
25184    #[inline]
25185    fn from(node: Refresh) -> Stmt {
25186        Stmt::Refresh(node)
25187    }
25188}
25189impl From<Reindex> for Stmt {
25190    #[inline]
25191    fn from(node: Reindex) -> Stmt {
25192        Stmt::Reindex(node)
25193    }
25194}
25195impl From<ReleaseSavepoint> for Stmt {
25196    #[inline]
25197    fn from(node: ReleaseSavepoint) -> Stmt {
25198        Stmt::ReleaseSavepoint(node)
25199    }
25200}
25201impl From<Reset> for Stmt {
25202    #[inline]
25203    fn from(node: Reset) -> Stmt {
25204        Stmt::Reset(node)
25205    }
25206}
25207impl From<Revoke> for Stmt {
25208    #[inline]
25209    fn from(node: Revoke) -> Stmt {
25210        Stmt::Revoke(node)
25211    }
25212}
25213impl From<Rollback> for Stmt {
25214    #[inline]
25215    fn from(node: Rollback) -> Stmt {
25216        Stmt::Rollback(node)
25217    }
25218}
25219impl From<Savepoint> for Stmt {
25220    #[inline]
25221    fn from(node: Savepoint) -> Stmt {
25222        Stmt::Savepoint(node)
25223    }
25224}
25225impl From<SecurityLabel> for Stmt {
25226    #[inline]
25227    fn from(node: SecurityLabel) -> Stmt {
25228        Stmt::SecurityLabel(node)
25229    }
25230}
25231impl From<Select> for Stmt {
25232    #[inline]
25233    fn from(node: Select) -> Stmt {
25234        Stmt::Select(node)
25235    }
25236}
25237impl From<SelectInto> for Stmt {
25238    #[inline]
25239    fn from(node: SelectInto) -> Stmt {
25240        Stmt::SelectInto(node)
25241    }
25242}
25243impl From<Set> for Stmt {
25244    #[inline]
25245    fn from(node: Set) -> Stmt {
25246        Stmt::Set(node)
25247    }
25248}
25249impl From<SetConstraints> for Stmt {
25250    #[inline]
25251    fn from(node: SetConstraints) -> Stmt {
25252        Stmt::SetConstraints(node)
25253    }
25254}
25255impl From<SetRole> for Stmt {
25256    #[inline]
25257    fn from(node: SetRole) -> Stmt {
25258        Stmt::SetRole(node)
25259    }
25260}
25261impl From<SetSessionAuth> for Stmt {
25262    #[inline]
25263    fn from(node: SetSessionAuth) -> Stmt {
25264        Stmt::SetSessionAuth(node)
25265    }
25266}
25267impl From<SetTransaction> for Stmt {
25268    #[inline]
25269    fn from(node: SetTransaction) -> Stmt {
25270        Stmt::SetTransaction(node)
25271    }
25272}
25273impl From<Show> for Stmt {
25274    #[inline]
25275    fn from(node: Show) -> Stmt {
25276        Stmt::Show(node)
25277    }
25278}
25279impl From<Table> for Stmt {
25280    #[inline]
25281    fn from(node: Table) -> Stmt {
25282        Stmt::Table(node)
25283    }
25284}
25285impl From<Truncate> for Stmt {
25286    #[inline]
25287    fn from(node: Truncate) -> Stmt {
25288        Stmt::Truncate(node)
25289    }
25290}
25291impl From<Unlisten> for Stmt {
25292    #[inline]
25293    fn from(node: Unlisten) -> Stmt {
25294        Stmt::Unlisten(node)
25295    }
25296}
25297impl From<Update> for Stmt {
25298    #[inline]
25299    fn from(node: Update) -> Stmt {
25300        Stmt::Update(node)
25301    }
25302}
25303impl From<Vacuum> for Stmt {
25304    #[inline]
25305    fn from(node: Vacuum) -> Stmt {
25306        Stmt::Vacuum(node)
25307    }
25308}
25309impl From<Values> for Stmt {
25310    #[inline]
25311    fn from(node: Values) -> Stmt {
25312        Stmt::Values(node)
25313    }
25314}
25315impl AstNode for TableArg {
25316    #[inline]
25317    fn can_cast(kind: SyntaxKind) -> bool {
25318        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
25319    }
25320    #[inline]
25321    fn cast(syntax: SyntaxNode) -> Option<Self> {
25322        let res = match syntax.kind() {
25323            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
25324            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
25325            _ => {
25326                if let Some(result) = TableConstraint::cast(syntax) {
25327                    return Some(TableArg::TableConstraint(result));
25328                }
25329                return None;
25330            }
25331        };
25332        Some(res)
25333    }
25334    #[inline]
25335    fn syntax(&self) -> &SyntaxNode {
25336        match self {
25337            TableArg::Column(it) => &it.syntax,
25338            TableArg::LikeClause(it) => &it.syntax,
25339            TableArg::TableConstraint(it) => it.syntax(),
25340        }
25341    }
25342}
25343impl From<Column> for TableArg {
25344    #[inline]
25345    fn from(node: Column) -> TableArg {
25346        TableArg::Column(node)
25347    }
25348}
25349impl From<LikeClause> for TableArg {
25350    #[inline]
25351    fn from(node: LikeClause) -> TableArg {
25352        TableArg::LikeClause(node)
25353    }
25354}
25355impl AstNode for TableConstraint {
25356    #[inline]
25357    fn can_cast(kind: SyntaxKind) -> bool {
25358        matches!(
25359            kind,
25360            SyntaxKind::CHECK_CONSTRAINT
25361                | SyntaxKind::EXCLUDE_CONSTRAINT
25362                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
25363                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
25364                | SyntaxKind::UNIQUE_CONSTRAINT
25365        )
25366    }
25367    #[inline]
25368    fn cast(syntax: SyntaxNode) -> Option<Self> {
25369        let res = match syntax.kind() {
25370            SyntaxKind::CHECK_CONSTRAINT => {
25371                TableConstraint::CheckConstraint(CheckConstraint { syntax })
25372            }
25373            SyntaxKind::EXCLUDE_CONSTRAINT => {
25374                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
25375            }
25376            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
25377                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
25378            }
25379            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
25380                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
25381            }
25382            SyntaxKind::UNIQUE_CONSTRAINT => {
25383                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
25384            }
25385            _ => {
25386                return None;
25387            }
25388        };
25389        Some(res)
25390    }
25391    #[inline]
25392    fn syntax(&self) -> &SyntaxNode {
25393        match self {
25394            TableConstraint::CheckConstraint(it) => &it.syntax,
25395            TableConstraint::ExcludeConstraint(it) => &it.syntax,
25396            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
25397            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
25398            TableConstraint::UniqueConstraint(it) => &it.syntax,
25399        }
25400    }
25401}
25402impl From<CheckConstraint> for TableConstraint {
25403    #[inline]
25404    fn from(node: CheckConstraint) -> TableConstraint {
25405        TableConstraint::CheckConstraint(node)
25406    }
25407}
25408impl From<ExcludeConstraint> for TableConstraint {
25409    #[inline]
25410    fn from(node: ExcludeConstraint) -> TableConstraint {
25411        TableConstraint::ExcludeConstraint(node)
25412    }
25413}
25414impl From<ForeignKeyConstraint> for TableConstraint {
25415    #[inline]
25416    fn from(node: ForeignKeyConstraint) -> TableConstraint {
25417        TableConstraint::ForeignKeyConstraint(node)
25418    }
25419}
25420impl From<PrimaryKeyConstraint> for TableConstraint {
25421    #[inline]
25422    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
25423        TableConstraint::PrimaryKeyConstraint(node)
25424    }
25425}
25426impl From<UniqueConstraint> for TableConstraint {
25427    #[inline]
25428    fn from(node: UniqueConstraint) -> TableConstraint {
25429        TableConstraint::UniqueConstraint(node)
25430    }
25431}
25432impl AstNode for Timezone {
25433    #[inline]
25434    fn can_cast(kind: SyntaxKind) -> bool {
25435        matches!(
25436            kind,
25437            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
25438        )
25439    }
25440    #[inline]
25441    fn cast(syntax: SyntaxNode) -> Option<Self> {
25442        let res = match syntax.kind() {
25443            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
25444            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
25445            _ => {
25446                return None;
25447            }
25448        };
25449        Some(res)
25450    }
25451    #[inline]
25452    fn syntax(&self) -> &SyntaxNode {
25453        match self {
25454            Timezone::WithTimezone(it) => &it.syntax,
25455            Timezone::WithoutTimezone(it) => &it.syntax,
25456        }
25457    }
25458}
25459impl From<WithTimezone> for Timezone {
25460    #[inline]
25461    fn from(node: WithTimezone) -> Timezone {
25462        Timezone::WithTimezone(node)
25463    }
25464}
25465impl From<WithoutTimezone> for Timezone {
25466    #[inline]
25467    fn from(node: WithoutTimezone) -> Timezone {
25468        Timezone::WithoutTimezone(node)
25469    }
25470}
25471impl AstNode for TransactionMode {
25472    #[inline]
25473    fn can_cast(kind: SyntaxKind) -> bool {
25474        matches!(
25475            kind,
25476            SyntaxKind::DEFERRABLE
25477                | SyntaxKind::NOT_DEFERRABLE
25478                | SyntaxKind::READ_COMMITTED
25479                | SyntaxKind::READ_ONLY
25480                | SyntaxKind::READ_UNCOMMITTED
25481                | SyntaxKind::READ_WRITE
25482                | SyntaxKind::REPEATABLE_READ
25483                | SyntaxKind::SERIALIZABLE
25484        )
25485    }
25486    #[inline]
25487    fn cast(syntax: SyntaxNode) -> Option<Self> {
25488        let res = match syntax.kind() {
25489            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
25490            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
25491            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
25492            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
25493            SyntaxKind::READ_UNCOMMITTED => {
25494                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
25495            }
25496            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
25497            SyntaxKind::REPEATABLE_READ => {
25498                TransactionMode::RepeatableRead(RepeatableRead { syntax })
25499            }
25500            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
25501            _ => {
25502                return None;
25503            }
25504        };
25505        Some(res)
25506    }
25507    #[inline]
25508    fn syntax(&self) -> &SyntaxNode {
25509        match self {
25510            TransactionMode::Deferrable(it) => &it.syntax,
25511            TransactionMode::NotDeferrable(it) => &it.syntax,
25512            TransactionMode::ReadCommitted(it) => &it.syntax,
25513            TransactionMode::ReadOnly(it) => &it.syntax,
25514            TransactionMode::ReadUncommitted(it) => &it.syntax,
25515            TransactionMode::ReadWrite(it) => &it.syntax,
25516            TransactionMode::RepeatableRead(it) => &it.syntax,
25517            TransactionMode::Serializable(it) => &it.syntax,
25518        }
25519    }
25520}
25521impl From<Deferrable> for TransactionMode {
25522    #[inline]
25523    fn from(node: Deferrable) -> TransactionMode {
25524        TransactionMode::Deferrable(node)
25525    }
25526}
25527impl From<NotDeferrable> for TransactionMode {
25528    #[inline]
25529    fn from(node: NotDeferrable) -> TransactionMode {
25530        TransactionMode::NotDeferrable(node)
25531    }
25532}
25533impl From<ReadCommitted> for TransactionMode {
25534    #[inline]
25535    fn from(node: ReadCommitted) -> TransactionMode {
25536        TransactionMode::ReadCommitted(node)
25537    }
25538}
25539impl From<ReadOnly> for TransactionMode {
25540    #[inline]
25541    fn from(node: ReadOnly) -> TransactionMode {
25542        TransactionMode::ReadOnly(node)
25543    }
25544}
25545impl From<ReadUncommitted> for TransactionMode {
25546    #[inline]
25547    fn from(node: ReadUncommitted) -> TransactionMode {
25548        TransactionMode::ReadUncommitted(node)
25549    }
25550}
25551impl From<ReadWrite> for TransactionMode {
25552    #[inline]
25553    fn from(node: ReadWrite) -> TransactionMode {
25554        TransactionMode::ReadWrite(node)
25555    }
25556}
25557impl From<RepeatableRead> for TransactionMode {
25558    #[inline]
25559    fn from(node: RepeatableRead) -> TransactionMode {
25560        TransactionMode::RepeatableRead(node)
25561    }
25562}
25563impl From<Serializable> for TransactionMode {
25564    #[inline]
25565    fn from(node: Serializable) -> TransactionMode {
25566        TransactionMode::Serializable(node)
25567    }
25568}
25569impl AstNode for Type {
25570    #[inline]
25571    fn can_cast(kind: SyntaxKind) -> bool {
25572        matches!(
25573            kind,
25574            SyntaxKind::ARRAY_TYPE
25575                | SyntaxKind::BIT_TYPE
25576                | SyntaxKind::CHAR_TYPE
25577                | SyntaxKind::DOUBLE_TYPE
25578                | SyntaxKind::EXPR_TYPE
25579                | SyntaxKind::INTERVAL_TYPE
25580                | SyntaxKind::PATH_TYPE
25581                | SyntaxKind::PERCENT_TYPE
25582                | SyntaxKind::TIME_TYPE
25583        )
25584    }
25585    #[inline]
25586    fn cast(syntax: SyntaxNode) -> Option<Self> {
25587        let res = match syntax.kind() {
25588            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
25589            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
25590            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
25591            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
25592            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
25593            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
25594            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
25595            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
25596            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
25597            _ => {
25598                return None;
25599            }
25600        };
25601        Some(res)
25602    }
25603    #[inline]
25604    fn syntax(&self) -> &SyntaxNode {
25605        match self {
25606            Type::ArrayType(it) => &it.syntax,
25607            Type::BitType(it) => &it.syntax,
25608            Type::CharType(it) => &it.syntax,
25609            Type::DoubleType(it) => &it.syntax,
25610            Type::ExprType(it) => &it.syntax,
25611            Type::IntervalType(it) => &it.syntax,
25612            Type::PathType(it) => &it.syntax,
25613            Type::PercentType(it) => &it.syntax,
25614            Type::TimeType(it) => &it.syntax,
25615        }
25616    }
25617}
25618impl From<ArrayType> for Type {
25619    #[inline]
25620    fn from(node: ArrayType) -> Type {
25621        Type::ArrayType(node)
25622    }
25623}
25624impl From<BitType> for Type {
25625    #[inline]
25626    fn from(node: BitType) -> Type {
25627        Type::BitType(node)
25628    }
25629}
25630impl From<CharType> for Type {
25631    #[inline]
25632    fn from(node: CharType) -> Type {
25633        Type::CharType(node)
25634    }
25635}
25636impl From<DoubleType> for Type {
25637    #[inline]
25638    fn from(node: DoubleType) -> Type {
25639        Type::DoubleType(node)
25640    }
25641}
25642impl From<ExprType> for Type {
25643    #[inline]
25644    fn from(node: ExprType) -> Type {
25645        Type::ExprType(node)
25646    }
25647}
25648impl From<IntervalType> for Type {
25649    #[inline]
25650    fn from(node: IntervalType) -> Type {
25651        Type::IntervalType(node)
25652    }
25653}
25654impl From<PathType> for Type {
25655    #[inline]
25656    fn from(node: PathType) -> Type {
25657        Type::PathType(node)
25658    }
25659}
25660impl From<PercentType> for Type {
25661    #[inline]
25662    fn from(node: PercentType) -> Type {
25663        Type::PercentType(node)
25664    }
25665}
25666impl From<TimeType> for Type {
25667    #[inline]
25668    fn from(node: TimeType) -> Type {
25669        Type::TimeType(node)
25670    }
25671}
25672impl AstNode for WithQuery {
25673    #[inline]
25674    fn can_cast(kind: SyntaxKind) -> bool {
25675        matches!(
25676            kind,
25677            SyntaxKind::DELETE
25678                | SyntaxKind::INSERT
25679                | SyntaxKind::MERGE
25680                | SyntaxKind::SELECT
25681                | SyntaxKind::UPDATE
25682                | SyntaxKind::VALUES
25683        )
25684    }
25685    #[inline]
25686    fn cast(syntax: SyntaxNode) -> Option<Self> {
25687        let res = match syntax.kind() {
25688            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
25689            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
25690            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
25691            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
25692            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
25693            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
25694            _ => {
25695                return None;
25696            }
25697        };
25698        Some(res)
25699    }
25700    #[inline]
25701    fn syntax(&self) -> &SyntaxNode {
25702        match self {
25703            WithQuery::Delete(it) => &it.syntax,
25704            WithQuery::Insert(it) => &it.syntax,
25705            WithQuery::Merge(it) => &it.syntax,
25706            WithQuery::Select(it) => &it.syntax,
25707            WithQuery::Update(it) => &it.syntax,
25708            WithQuery::Values(it) => &it.syntax,
25709        }
25710    }
25711}
25712impl From<Delete> for WithQuery {
25713    #[inline]
25714    fn from(node: Delete) -> WithQuery {
25715        WithQuery::Delete(node)
25716    }
25717}
25718impl From<Insert> for WithQuery {
25719    #[inline]
25720    fn from(node: Insert) -> WithQuery {
25721        WithQuery::Insert(node)
25722    }
25723}
25724impl From<Merge> for WithQuery {
25725    #[inline]
25726    fn from(node: Merge) -> WithQuery {
25727        WithQuery::Merge(node)
25728    }
25729}
25730impl From<Select> for WithQuery {
25731    #[inline]
25732    fn from(node: Select) -> WithQuery {
25733        WithQuery::Select(node)
25734    }
25735}
25736impl From<Update> for WithQuery {
25737    #[inline]
25738    fn from(node: Update) -> WithQuery {
25739        WithQuery::Update(node)
25740    }
25741}
25742impl From<Values> for WithQuery {
25743    #[inline]
25744    fn from(node: Values) -> WithQuery {
25745        WithQuery::Values(node)
25746    }
25747}