Skip to main content

squawk_syntax/ast/generated/
nodes.rs

1// Generated via:
2//   cargo xtask codegen
3
4use crate::SyntaxKind;
5use crate::ast::AstNode;
6use crate::ast::{AstChildren, support};
7use crate::syntax_node::SyntaxNode;
8use crate::syntax_node::SyntaxToken;
9
10#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11pub struct AddAttribute {
12    pub(crate) syntax: SyntaxNode,
13}
14impl AddAttribute {
15    #[inline]
16    pub fn cascade(&self) -> Option<Cascade> {
17        support::child(&self.syntax)
18    }
19    #[inline]
20    pub fn collate(&self) -> Option<Collate> {
21        support::child(&self.syntax)
22    }
23    #[inline]
24    pub fn name(&self) -> Option<Name> {
25        support::child(&self.syntax)
26    }
27    #[inline]
28    pub fn restrict(&self) -> Option<Restrict> {
29        support::child(&self.syntax)
30    }
31    #[inline]
32    pub fn ty(&self) -> Option<Type> {
33        support::child(&self.syntax)
34    }
35    #[inline]
36    pub fn add_token(&self) -> Option<SyntaxToken> {
37        support::token(&self.syntax, SyntaxKind::ADD_KW)
38    }
39    #[inline]
40    pub fn attribute_token(&self) -> Option<SyntaxToken> {
41        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
42    }
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Hash)]
46pub struct AddColumn {
47    pub(crate) syntax: SyntaxNode,
48}
49impl AddColumn {
50    #[inline]
51    pub fn collate(&self) -> Option<Collate> {
52        support::child(&self.syntax)
53    }
54    #[inline]
55    pub fn constraints(&self) -> AstChildren<Constraint> {
56        support::children(&self.syntax)
57    }
58    #[inline]
59    pub fn if_not_exists(&self) -> Option<IfNotExists> {
60        support::child(&self.syntax)
61    }
62    #[inline]
63    pub fn name(&self) -> Option<Name> {
64        support::child(&self.syntax)
65    }
66    #[inline]
67    pub fn ty(&self) -> Option<Type> {
68        support::child(&self.syntax)
69    }
70    #[inline]
71    pub fn add_token(&self) -> Option<SyntaxToken> {
72        support::token(&self.syntax, SyntaxKind::ADD_KW)
73    }
74    #[inline]
75    pub fn column_token(&self) -> Option<SyntaxToken> {
76        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
77    }
78}
79
80#[derive(Debug, Clone, PartialEq, Eq, Hash)]
81pub struct AddConstraint {
82    pub(crate) syntax: SyntaxNode,
83}
84impl AddConstraint {
85    #[inline]
86    pub fn constraint(&self) -> Option<Constraint> {
87        support::child(&self.syntax)
88    }
89    #[inline]
90    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
91        support::child(&self.syntax)
92    }
93    #[inline]
94    pub fn enforced(&self) -> Option<Enforced> {
95        support::child(&self.syntax)
96    }
97    #[inline]
98    pub fn initially_deferred_constraint_option(
99        &self,
100    ) -> Option<InitiallyDeferredConstraintOption> {
101        support::child(&self.syntax)
102    }
103    #[inline]
104    pub fn initially_immediate_constraint_option(
105        &self,
106    ) -> Option<InitiallyImmediateConstraintOption> {
107        support::child(&self.syntax)
108    }
109    #[inline]
110    pub fn no_inherit(&self) -> Option<NoInherit> {
111        support::child(&self.syntax)
112    }
113    #[inline]
114    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
115        support::child(&self.syntax)
116    }
117    #[inline]
118    pub fn not_enforced(&self) -> Option<NotEnforced> {
119        support::child(&self.syntax)
120    }
121    #[inline]
122    pub fn not_valid(&self) -> Option<NotValid> {
123        support::child(&self.syntax)
124    }
125    #[inline]
126    pub fn add_token(&self) -> Option<SyntaxToken> {
127        support::token(&self.syntax, SyntaxKind::ADD_KW)
128    }
129}
130
131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
132pub struct AddGenerated {
133    pub(crate) syntax: SyntaxNode,
134}
135impl AddGenerated {
136    #[inline]
137    pub fn add_token(&self) -> Option<SyntaxToken> {
138        support::token(&self.syntax, SyntaxKind::ADD_KW)
139    }
140}
141
142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
143pub struct AddLabel {
144    pub(crate) syntax: SyntaxNode,
145}
146impl AddLabel {
147    #[inline]
148    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
149        support::child(&self.syntax)
150    }
151    #[inline]
152    pub fn name(&self) -> Option<Name> {
153        support::child(&self.syntax)
154    }
155    #[inline]
156    pub fn add_token(&self) -> Option<SyntaxToken> {
157        support::token(&self.syntax, SyntaxKind::ADD_KW)
158    }
159    #[inline]
160    pub fn label_token(&self) -> Option<SyntaxToken> {
161        support::token(&self.syntax, SyntaxKind::LABEL_KW)
162    }
163}
164
165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
166pub struct AddOpClassOptions {
167    pub(crate) syntax: SyntaxNode,
168}
169impl AddOpClassOptions {
170    #[inline]
171    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
172        support::child(&self.syntax)
173    }
174    #[inline]
175    pub fn add_token(&self) -> Option<SyntaxToken> {
176        support::token(&self.syntax, SyntaxKind::ADD_KW)
177    }
178}
179
180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
181pub struct AddValue {
182    pub(crate) syntax: SyntaxNode,
183}
184impl AddValue {
185    #[inline]
186    pub fn if_not_exists(&self) -> Option<IfNotExists> {
187        support::child(&self.syntax)
188    }
189    #[inline]
190    pub fn literal(&self) -> Option<Literal> {
191        support::child(&self.syntax)
192    }
193    #[inline]
194    pub fn value_position(&self) -> Option<ValuePosition> {
195        support::child(&self.syntax)
196    }
197    #[inline]
198    pub fn add_token(&self) -> Option<SyntaxToken> {
199        support::token(&self.syntax, SyntaxKind::ADD_KW)
200    }
201    #[inline]
202    pub fn value_token(&self) -> Option<SyntaxToken> {
203        support::token(&self.syntax, SyntaxKind::VALUE_KW)
204    }
205}
206
207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
208pub struct AddVertexEdgeLabelProperties {
209    pub(crate) syntax: SyntaxNode,
210}
211impl AddVertexEdgeLabelProperties {
212    #[inline]
213    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
214        support::child(&self.syntax)
215    }
216    #[inline]
217    pub fn name_ref(&self) -> Option<NameRef> {
218        support::child(&self.syntax)
219    }
220    #[inline]
221    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
222        support::token(&self.syntax, SyntaxKind::L_PAREN)
223    }
224    #[inline]
225    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
226        support::token(&self.syntax, SyntaxKind::R_PAREN)
227    }
228    #[inline]
229    pub fn add_token(&self) -> Option<SyntaxToken> {
230        support::token(&self.syntax, SyntaxKind::ADD_KW)
231    }
232    #[inline]
233    pub fn alter_token(&self) -> Option<SyntaxToken> {
234        support::token(&self.syntax, SyntaxKind::ALTER_KW)
235    }
236    #[inline]
237    pub fn edge_token(&self) -> Option<SyntaxToken> {
238        support::token(&self.syntax, SyntaxKind::EDGE_KW)
239    }
240    #[inline]
241    pub fn label_token(&self) -> Option<SyntaxToken> {
242        support::token(&self.syntax, SyntaxKind::LABEL_KW)
243    }
244    #[inline]
245    pub fn node_token(&self) -> Option<SyntaxToken> {
246        support::token(&self.syntax, SyntaxKind::NODE_KW)
247    }
248    #[inline]
249    pub fn properties_token(&self) -> Option<SyntaxToken> {
250        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
251    }
252    #[inline]
253    pub fn relationship_token(&self) -> Option<SyntaxToken> {
254        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
255    }
256    #[inline]
257    pub fn table_token(&self) -> Option<SyntaxToken> {
258        support::token(&self.syntax, SyntaxKind::TABLE_KW)
259    }
260    #[inline]
261    pub fn vertex_token(&self) -> Option<SyntaxToken> {
262        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
263    }
264}
265
266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
267pub struct AddVertexEdgeTables {
268    pub(crate) syntax: SyntaxNode,
269}
270impl AddVertexEdgeTables {
271    #[inline]
272    pub fn edge_tables(&self) -> Option<EdgeTables> {
273        support::child(&self.syntax)
274    }
275    #[inline]
276    pub fn vertex_tables(&self) -> Option<VertexTables> {
277        support::child(&self.syntax)
278    }
279    #[inline]
280    pub fn add_token(&self) -> Option<SyntaxToken> {
281        support::token(&self.syntax, SyntaxKind::ADD_KW)
282    }
283}
284
285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
286pub struct AfterValue {
287    pub(crate) syntax: SyntaxNode,
288}
289impl AfterValue {
290    #[inline]
291    pub fn literal(&self) -> Option<Literal> {
292        support::child(&self.syntax)
293    }
294    #[inline]
295    pub fn after_token(&self) -> Option<SyntaxToken> {
296        support::token(&self.syntax, SyntaxKind::AFTER_KW)
297    }
298}
299
300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
301pub struct Aggregate {
302    pub(crate) syntax: SyntaxNode,
303}
304impl Aggregate {
305    #[inline]
306    pub fn param_list(&self) -> Option<ParamList> {
307        support::child(&self.syntax)
308    }
309    #[inline]
310    pub fn path(&self) -> Option<Path> {
311        support::child(&self.syntax)
312    }
313}
314
315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
316pub struct Alias {
317    pub(crate) syntax: SyntaxNode,
318}
319impl Alias {
320    #[inline]
321    pub fn column_list(&self) -> Option<ColumnList> {
322        support::child(&self.syntax)
323    }
324    #[inline]
325    pub fn name(&self) -> Option<Name> {
326        support::child(&self.syntax)
327    }
328    #[inline]
329    pub fn as_token(&self) -> Option<SyntaxToken> {
330        support::token(&self.syntax, SyntaxKind::AS_KW)
331    }
332}
333
334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
335pub struct AllFn {
336    pub(crate) syntax: SyntaxNode,
337}
338impl AllFn {
339    #[inline]
340    pub fn expr(&self) -> Option<Expr> {
341        support::child(&self.syntax)
342    }
343    #[inline]
344    pub fn select_variant(&self) -> Option<SelectVariant> {
345        support::child(&self.syntax)
346    }
347    #[inline]
348    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
349        support::token(&self.syntax, SyntaxKind::L_PAREN)
350    }
351    #[inline]
352    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
353        support::token(&self.syntax, SyntaxKind::R_PAREN)
354    }
355    #[inline]
356    pub fn all_token(&self) -> Option<SyntaxToken> {
357        support::token(&self.syntax, SyntaxKind::ALL_KW)
358    }
359}
360
361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
362pub struct AllProperties {
363    pub(crate) syntax: SyntaxNode,
364}
365impl AllProperties {
366    #[inline]
367    pub fn all_token(&self) -> Option<SyntaxToken> {
368        support::token(&self.syntax, SyntaxKind::ALL_KW)
369    }
370    #[inline]
371    pub fn columns_token(&self) -> Option<SyntaxToken> {
372        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
373    }
374    #[inline]
375    pub fn properties_token(&self) -> Option<SyntaxToken> {
376        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
377    }
378}
379
380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
381pub struct AlterAggregate {
382    pub(crate) syntax: SyntaxNode,
383}
384impl AlterAggregate {
385    #[inline]
386    pub fn aggregate(&self) -> Option<Aggregate> {
387        support::child(&self.syntax)
388    }
389    #[inline]
390    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
391        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
392    }
393    #[inline]
394    pub fn alter_token(&self) -> Option<SyntaxToken> {
395        support::token(&self.syntax, SyntaxKind::ALTER_KW)
396    }
397}
398
399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
400pub struct AlterAttribute {
401    pub(crate) syntax: SyntaxNode,
402}
403impl AlterAttribute {
404    #[inline]
405    pub fn cascade(&self) -> Option<Cascade> {
406        support::child(&self.syntax)
407    }
408    #[inline]
409    pub fn restrict(&self) -> Option<Restrict> {
410        support::child(&self.syntax)
411    }
412    #[inline]
413    pub fn alter_token(&self) -> Option<SyntaxToken> {
414        support::token(&self.syntax, SyntaxKind::ALTER_KW)
415    }
416    #[inline]
417    pub fn attribute_token(&self) -> Option<SyntaxToken> {
418        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
419    }
420}
421
422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
423pub struct AlterCollation {
424    pub(crate) syntax: SyntaxNode,
425}
426impl AlterCollation {
427    #[inline]
428    pub fn owner_to(&self) -> Option<OwnerTo> {
429        support::child(&self.syntax)
430    }
431    #[inline]
432    pub fn path(&self) -> Option<Path> {
433        support::child(&self.syntax)
434    }
435    #[inline]
436    pub fn refresh_version(&self) -> Option<RefreshVersion> {
437        support::child(&self.syntax)
438    }
439    #[inline]
440    pub fn rename_to(&self) -> Option<RenameTo> {
441        support::child(&self.syntax)
442    }
443    #[inline]
444    pub fn set_schema(&self) -> Option<SetSchema> {
445        support::child(&self.syntax)
446    }
447    #[inline]
448    pub fn alter_token(&self) -> Option<SyntaxToken> {
449        support::token(&self.syntax, SyntaxKind::ALTER_KW)
450    }
451    #[inline]
452    pub fn collation_token(&self) -> Option<SyntaxToken> {
453        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
454    }
455}
456
457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
458pub struct AlterColumn {
459    pub(crate) syntax: SyntaxNode,
460}
461impl AlterColumn {
462    #[inline]
463    pub fn name_ref(&self) -> Option<NameRef> {
464        support::child(&self.syntax)
465    }
466    #[inline]
467    pub fn option(&self) -> Option<AlterColumnOption> {
468        support::child(&self.syntax)
469    }
470    #[inline]
471    pub fn alter_token(&self) -> Option<SyntaxToken> {
472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
473    }
474    #[inline]
475    pub fn column_token(&self) -> Option<SyntaxToken> {
476        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
477    }
478}
479
480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
481pub struct AlterConstraint {
482    pub(crate) syntax: SyntaxNode,
483}
484impl AlterConstraint {
485    #[inline]
486    pub fn option(&self) -> Option<AlterColumnOption> {
487        support::child(&self.syntax)
488    }
489    #[inline]
490    pub fn alter_token(&self) -> Option<SyntaxToken> {
491        support::token(&self.syntax, SyntaxKind::ALTER_KW)
492    }
493    #[inline]
494    pub fn constraint_token(&self) -> Option<SyntaxToken> {
495        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
496    }
497}
498
499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
500pub struct AlterConversion {
501    pub(crate) syntax: SyntaxNode,
502}
503impl AlterConversion {
504    #[inline]
505    pub fn owner_to(&self) -> Option<OwnerTo> {
506        support::child(&self.syntax)
507    }
508    #[inline]
509    pub fn path(&self) -> Option<Path> {
510        support::child(&self.syntax)
511    }
512    #[inline]
513    pub fn rename_to(&self) -> Option<RenameTo> {
514        support::child(&self.syntax)
515    }
516    #[inline]
517    pub fn set_schema(&self) -> Option<SetSchema> {
518        support::child(&self.syntax)
519    }
520    #[inline]
521    pub fn alter_token(&self) -> Option<SyntaxToken> {
522        support::token(&self.syntax, SyntaxKind::ALTER_KW)
523    }
524    #[inline]
525    pub fn conversion_token(&self) -> Option<SyntaxToken> {
526        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
527    }
528}
529
530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
531pub struct AlterDatabase {
532    pub(crate) syntax: SyntaxNode,
533}
534impl AlterDatabase {
535    #[inline]
536    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
537        support::child(&self.syntax)
538    }
539    #[inline]
540    pub fn name_ref(&self) -> Option<NameRef> {
541        support::child(&self.syntax)
542    }
543    #[inline]
544    pub fn owner_to(&self) -> Option<OwnerTo> {
545        support::child(&self.syntax)
546    }
547    #[inline]
548    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
549        support::child(&self.syntax)
550    }
551    #[inline]
552    pub fn rename_to(&self) -> Option<RenameTo> {
553        support::child(&self.syntax)
554    }
555    #[inline]
556    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
557        support::child(&self.syntax)
558    }
559    #[inline]
560    pub fn set_config_param(&self) -> Option<SetConfigParam> {
561        support::child(&self.syntax)
562    }
563    #[inline]
564    pub fn set_tablespace(&self) -> Option<SetTablespace> {
565        support::child(&self.syntax)
566    }
567    #[inline]
568    pub fn alter_token(&self) -> Option<SyntaxToken> {
569        support::token(&self.syntax, SyntaxKind::ALTER_KW)
570    }
571    #[inline]
572    pub fn database_token(&self) -> Option<SyntaxToken> {
573        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
574    }
575}
576
577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
578pub struct AlterDefaultPrivileges {
579    pub(crate) syntax: SyntaxNode,
580}
581impl AlterDefaultPrivileges {
582    #[inline]
583    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
584        support::child(&self.syntax)
585    }
586    #[inline]
587    pub fn name_refs(&self) -> AstChildren<NameRef> {
588        support::children(&self.syntax)
589    }
590    #[inline]
591    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
592        support::child(&self.syntax)
593    }
594    #[inline]
595    pub fn role_ref_list(&self) -> Option<RoleRefList> {
596        support::child(&self.syntax)
597    }
598    #[inline]
599    pub fn alter_token(&self) -> Option<SyntaxToken> {
600        support::token(&self.syntax, SyntaxKind::ALTER_KW)
601    }
602    #[inline]
603    pub fn default_token(&self) -> Option<SyntaxToken> {
604        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
605    }
606    #[inline]
607    pub fn for_token(&self) -> Option<SyntaxToken> {
608        support::token(&self.syntax, SyntaxKind::FOR_KW)
609    }
610    #[inline]
611    pub fn in_token(&self) -> Option<SyntaxToken> {
612        support::token(&self.syntax, SyntaxKind::IN_KW)
613    }
614    #[inline]
615    pub fn privileges_token(&self) -> Option<SyntaxToken> {
616        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
617    }
618    #[inline]
619    pub fn role_token(&self) -> Option<SyntaxToken> {
620        support::token(&self.syntax, SyntaxKind::ROLE_KW)
621    }
622    #[inline]
623    pub fn schema_token(&self) -> Option<SyntaxToken> {
624        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
625    }
626    #[inline]
627    pub fn user_token(&self) -> Option<SyntaxToken> {
628        support::token(&self.syntax, SyntaxKind::USER_KW)
629    }
630}
631
632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
633pub struct AlterDomain {
634    pub(crate) syntax: SyntaxNode,
635}
636impl AlterDomain {
637    #[inline]
638    pub fn action(&self) -> Option<AlterDomainAction> {
639        support::child(&self.syntax)
640    }
641    #[inline]
642    pub fn path(&self) -> Option<Path> {
643        support::child(&self.syntax)
644    }
645    #[inline]
646    pub fn alter_token(&self) -> Option<SyntaxToken> {
647        support::token(&self.syntax, SyntaxKind::ALTER_KW)
648    }
649    #[inline]
650    pub fn domain_token(&self) -> Option<SyntaxToken> {
651        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
652    }
653}
654
655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
656pub struct AlterEventTrigger {
657    pub(crate) syntax: SyntaxNode,
658}
659impl AlterEventTrigger {
660    #[inline]
661    pub fn name_ref(&self) -> Option<NameRef> {
662        support::child(&self.syntax)
663    }
664    #[inline]
665    pub fn owner_to(&self) -> Option<OwnerTo> {
666        support::child(&self.syntax)
667    }
668    #[inline]
669    pub fn rename_to(&self) -> Option<RenameTo> {
670        support::child(&self.syntax)
671    }
672    #[inline]
673    pub fn alter_token(&self) -> Option<SyntaxToken> {
674        support::token(&self.syntax, SyntaxKind::ALTER_KW)
675    }
676    #[inline]
677    pub fn always_token(&self) -> Option<SyntaxToken> {
678        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
679    }
680    #[inline]
681    pub fn disable_token(&self) -> Option<SyntaxToken> {
682        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
683    }
684    #[inline]
685    pub fn enable_token(&self) -> Option<SyntaxToken> {
686        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
687    }
688    #[inline]
689    pub fn event_token(&self) -> Option<SyntaxToken> {
690        support::token(&self.syntax, SyntaxKind::EVENT_KW)
691    }
692    #[inline]
693    pub fn replica_token(&self) -> Option<SyntaxToken> {
694        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
695    }
696    #[inline]
697    pub fn trigger_token(&self) -> Option<SyntaxToken> {
698        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
699    }
700}
701
702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
703pub struct AlterExtension {
704    pub(crate) syntax: SyntaxNode,
705}
706impl AlterExtension {
707    #[inline]
708    pub fn name_ref(&self) -> Option<NameRef> {
709        support::child(&self.syntax)
710    }
711    #[inline]
712    pub fn alter_token(&self) -> Option<SyntaxToken> {
713        support::token(&self.syntax, SyntaxKind::ALTER_KW)
714    }
715    #[inline]
716    pub fn extension_token(&self) -> Option<SyntaxToken> {
717        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
718    }
719}
720
721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
722pub struct AlterForeignDataWrapper {
723    pub(crate) syntax: SyntaxNode,
724}
725impl AlterForeignDataWrapper {
726    #[inline]
727    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
728        support::child(&self.syntax)
729    }
730    #[inline]
731    pub fn name_ref(&self) -> Option<NameRef> {
732        support::child(&self.syntax)
733    }
734    #[inline]
735    pub fn owner_to(&self) -> Option<OwnerTo> {
736        support::child(&self.syntax)
737    }
738    #[inline]
739    pub fn rename_to(&self) -> Option<RenameTo> {
740        support::child(&self.syntax)
741    }
742    #[inline]
743    pub fn alter_token(&self) -> Option<SyntaxToken> {
744        support::token(&self.syntax, SyntaxKind::ALTER_KW)
745    }
746    #[inline]
747    pub fn data_token(&self) -> Option<SyntaxToken> {
748        support::token(&self.syntax, SyntaxKind::DATA_KW)
749    }
750    #[inline]
751    pub fn foreign_token(&self) -> Option<SyntaxToken> {
752        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
753    }
754    #[inline]
755    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
756        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
757    }
758}
759
760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
761pub struct AlterForeignTable {
762    pub(crate) syntax: SyntaxNode,
763}
764impl AlterForeignTable {
765    #[inline]
766    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
767        support::children(&self.syntax)
768    }
769    #[inline]
770    pub fn if_exists(&self) -> Option<IfExists> {
771        support::child(&self.syntax)
772    }
773    #[inline]
774    pub fn relation_name(&self) -> Option<RelationName> {
775        support::child(&self.syntax)
776    }
777    #[inline]
778    pub fn rename_column(&self) -> Option<RenameColumn> {
779        support::child(&self.syntax)
780    }
781    #[inline]
782    pub fn rename_to(&self) -> Option<RenameTo> {
783        support::child(&self.syntax)
784    }
785    #[inline]
786    pub fn set_schema(&self) -> Option<SetSchema> {
787        support::child(&self.syntax)
788    }
789    #[inline]
790    pub fn alter_token(&self) -> Option<SyntaxToken> {
791        support::token(&self.syntax, SyntaxKind::ALTER_KW)
792    }
793    #[inline]
794    pub fn foreign_token(&self) -> Option<SyntaxToken> {
795        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
796    }
797    #[inline]
798    pub fn table_token(&self) -> Option<SyntaxToken> {
799        support::token(&self.syntax, SyntaxKind::TABLE_KW)
800    }
801}
802
803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
804pub struct AlterFunction {
805    pub(crate) syntax: SyntaxNode,
806}
807impl AlterFunction {
808    #[inline]
809    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
810        support::child(&self.syntax)
811    }
812    #[inline]
813    pub fn func_option_list(&self) -> Option<FuncOptionList> {
814        support::child(&self.syntax)
815    }
816    #[inline]
817    pub fn function_sig(&self) -> Option<FunctionSig> {
818        support::child(&self.syntax)
819    }
820    #[inline]
821    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
822        support::child(&self.syntax)
823    }
824    #[inline]
825    pub fn owner_to(&self) -> Option<OwnerTo> {
826        support::child(&self.syntax)
827    }
828    #[inline]
829    pub fn rename_to(&self) -> Option<RenameTo> {
830        support::child(&self.syntax)
831    }
832    #[inline]
833    pub fn set_schema(&self) -> Option<SetSchema> {
834        support::child(&self.syntax)
835    }
836    #[inline]
837    pub fn alter_token(&self) -> Option<SyntaxToken> {
838        support::token(&self.syntax, SyntaxKind::ALTER_KW)
839    }
840    #[inline]
841    pub fn function_token(&self) -> Option<SyntaxToken> {
842        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
843    }
844    #[inline]
845    pub fn restrict_token(&self) -> Option<SyntaxToken> {
846        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
847    }
848}
849
850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
851pub struct AlterGroup {
852    pub(crate) syntax: SyntaxNode,
853}
854impl AlterGroup {
855    #[inline]
856    pub fn name_refs(&self) -> AstChildren<NameRef> {
857        support::children(&self.syntax)
858    }
859    #[inline]
860    pub fn rename_to(&self) -> Option<RenameTo> {
861        support::child(&self.syntax)
862    }
863    #[inline]
864    pub fn role_ref(&self) -> Option<RoleRef> {
865        support::child(&self.syntax)
866    }
867    #[inline]
868    pub fn add_token(&self) -> Option<SyntaxToken> {
869        support::token(&self.syntax, SyntaxKind::ADD_KW)
870    }
871    #[inline]
872    pub fn alter_token(&self) -> Option<SyntaxToken> {
873        support::token(&self.syntax, SyntaxKind::ALTER_KW)
874    }
875    #[inline]
876    pub fn drop_token(&self) -> Option<SyntaxToken> {
877        support::token(&self.syntax, SyntaxKind::DROP_KW)
878    }
879    #[inline]
880    pub fn group_token(&self) -> Option<SyntaxToken> {
881        support::token(&self.syntax, SyntaxKind::GROUP_KW)
882    }
883    #[inline]
884    pub fn user_token(&self) -> Option<SyntaxToken> {
885        support::token(&self.syntax, SyntaxKind::USER_KW)
886    }
887}
888
889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
890pub struct AlterIndex {
891    pub(crate) syntax: SyntaxNode,
892}
893impl AlterIndex {
894    #[inline]
895    pub fn alter_index_action(&self) -> Option<AlterIndexAction> {
896        support::child(&self.syntax)
897    }
898    #[inline]
899    pub fn if_exists(&self) -> Option<IfExists> {
900        support::child(&self.syntax)
901    }
902    #[inline]
903    pub fn name_ref(&self) -> Option<NameRef> {
904        support::child(&self.syntax)
905    }
906    #[inline]
907    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
908        support::child(&self.syntax)
909    }
910    #[inline]
911    pub fn path(&self) -> Option<Path> {
912        support::child(&self.syntax)
913    }
914    #[inline]
915    pub fn all_token(&self) -> Option<SyntaxToken> {
916        support::token(&self.syntax, SyntaxKind::ALL_KW)
917    }
918    #[inline]
919    pub fn alter_token(&self) -> Option<SyntaxToken> {
920        support::token(&self.syntax, SyntaxKind::ALTER_KW)
921    }
922    #[inline]
923    pub fn in_token(&self) -> Option<SyntaxToken> {
924        support::token(&self.syntax, SyntaxKind::IN_KW)
925    }
926    #[inline]
927    pub fn index_token(&self) -> Option<SyntaxToken> {
928        support::token(&self.syntax, SyntaxKind::INDEX_KW)
929    }
930    #[inline]
931    pub fn nowait_token(&self) -> Option<SyntaxToken> {
932        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
933    }
934    #[inline]
935    pub fn set_token(&self) -> Option<SyntaxToken> {
936        support::token(&self.syntax, SyntaxKind::SET_KW)
937    }
938    #[inline]
939    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
940        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
941    }
942}
943
944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
945pub struct AlterLanguage {
946    pub(crate) syntax: SyntaxNode,
947}
948impl AlterLanguage {
949    #[inline]
950    pub fn name_ref(&self) -> Option<NameRef> {
951        support::child(&self.syntax)
952    }
953    #[inline]
954    pub fn owner_to(&self) -> Option<OwnerTo> {
955        support::child(&self.syntax)
956    }
957    #[inline]
958    pub fn rename_to(&self) -> Option<RenameTo> {
959        support::child(&self.syntax)
960    }
961    #[inline]
962    pub fn alter_token(&self) -> Option<SyntaxToken> {
963        support::token(&self.syntax, SyntaxKind::ALTER_KW)
964    }
965    #[inline]
966    pub fn language_token(&self) -> Option<SyntaxToken> {
967        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
968    }
969}
970
971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
972pub struct AlterLargeObject {
973    pub(crate) syntax: SyntaxNode,
974}
975impl AlterLargeObject {
976    #[inline]
977    pub fn alter_token(&self) -> Option<SyntaxToken> {
978        support::token(&self.syntax, SyntaxKind::ALTER_KW)
979    }
980    #[inline]
981    pub fn large_token(&self) -> Option<SyntaxToken> {
982        support::token(&self.syntax, SyntaxKind::LARGE_KW)
983    }
984    #[inline]
985    pub fn object_token(&self) -> Option<SyntaxToken> {
986        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
987    }
988}
989
990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
991pub struct AlterMaterializedView {
992    pub(crate) syntax: SyntaxNode,
993}
994impl AlterMaterializedView {
995    #[inline]
996    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
997        support::children(&self.syntax)
998    }
999    #[inline]
1000    pub fn if_exists(&self) -> Option<IfExists> {
1001        support::child(&self.syntax)
1002    }
1003    #[inline]
1004    pub fn name(&self) -> Option<Name> {
1005        support::child(&self.syntax)
1006    }
1007    #[inline]
1008    pub fn name_ref(&self) -> Option<NameRef> {
1009        support::child(&self.syntax)
1010    }
1011    #[inline]
1012    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
1013        support::child(&self.syntax)
1014    }
1015    #[inline]
1016    pub fn path(&self) -> Option<Path> {
1017        support::child(&self.syntax)
1018    }
1019    #[inline]
1020    pub fn all_token(&self) -> Option<SyntaxToken> {
1021        support::token(&self.syntax, SyntaxKind::ALL_KW)
1022    }
1023    #[inline]
1024    pub fn alter_token(&self) -> Option<SyntaxToken> {
1025        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1026    }
1027    #[inline]
1028    pub fn in_token(&self) -> Option<SyntaxToken> {
1029        support::token(&self.syntax, SyntaxKind::IN_KW)
1030    }
1031    #[inline]
1032    pub fn materialized_token(&self) -> Option<SyntaxToken> {
1033        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
1034    }
1035    #[inline]
1036    pub fn nowait_token(&self) -> Option<SyntaxToken> {
1037        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
1038    }
1039    #[inline]
1040    pub fn set_token(&self) -> Option<SyntaxToken> {
1041        support::token(&self.syntax, SyntaxKind::SET_KW)
1042    }
1043    #[inline]
1044    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1045        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1046    }
1047    #[inline]
1048    pub fn view_token(&self) -> Option<SyntaxToken> {
1049        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1050    }
1051}
1052
1053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1054pub struct AlterOperator {
1055    pub(crate) syntax: SyntaxNode,
1056}
1057impl AlterOperator {
1058    #[inline]
1059    pub fn op_sig(&self) -> Option<OpSig> {
1060        support::child(&self.syntax)
1061    }
1062    #[inline]
1063    pub fn owner_to(&self) -> Option<OwnerTo> {
1064        support::child(&self.syntax)
1065    }
1066    #[inline]
1067    pub fn set_options(&self) -> Option<SetOptions> {
1068        support::child(&self.syntax)
1069    }
1070    #[inline]
1071    pub fn set_schema(&self) -> Option<SetSchema> {
1072        support::child(&self.syntax)
1073    }
1074    #[inline]
1075    pub fn alter_token(&self) -> Option<SyntaxToken> {
1076        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1077    }
1078    #[inline]
1079    pub fn operator_token(&self) -> Option<SyntaxToken> {
1080        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1081    }
1082}
1083
1084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1085pub struct AlterOperatorClass {
1086    pub(crate) syntax: SyntaxNode,
1087}
1088impl AlterOperatorClass {
1089    #[inline]
1090    pub fn name_ref(&self) -> Option<NameRef> {
1091        support::child(&self.syntax)
1092    }
1093    #[inline]
1094    pub fn owner_to(&self) -> Option<OwnerTo> {
1095        support::child(&self.syntax)
1096    }
1097    #[inline]
1098    pub fn path(&self) -> Option<Path> {
1099        support::child(&self.syntax)
1100    }
1101    #[inline]
1102    pub fn rename_to(&self) -> Option<RenameTo> {
1103        support::child(&self.syntax)
1104    }
1105    #[inline]
1106    pub fn set_schema(&self) -> Option<SetSchema> {
1107        support::child(&self.syntax)
1108    }
1109    #[inline]
1110    pub fn alter_token(&self) -> Option<SyntaxToken> {
1111        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1112    }
1113    #[inline]
1114    pub fn class_token(&self) -> Option<SyntaxToken> {
1115        support::token(&self.syntax, SyntaxKind::CLASS_KW)
1116    }
1117    #[inline]
1118    pub fn operator_token(&self) -> Option<SyntaxToken> {
1119        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1120    }
1121    #[inline]
1122    pub fn using_token(&self) -> Option<SyntaxToken> {
1123        support::token(&self.syntax, SyntaxKind::USING_KW)
1124    }
1125}
1126
1127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1128pub struct AlterOperatorFamily {
1129    pub(crate) syntax: SyntaxNode,
1130}
1131impl AlterOperatorFamily {
1132    #[inline]
1133    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
1134        support::child(&self.syntax)
1135    }
1136    #[inline]
1137    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
1138        support::child(&self.syntax)
1139    }
1140    #[inline]
1141    pub fn name_ref(&self) -> Option<NameRef> {
1142        support::child(&self.syntax)
1143    }
1144    #[inline]
1145    pub fn owner_to(&self) -> Option<OwnerTo> {
1146        support::child(&self.syntax)
1147    }
1148    #[inline]
1149    pub fn path(&self) -> Option<Path> {
1150        support::child(&self.syntax)
1151    }
1152    #[inline]
1153    pub fn rename_to(&self) -> Option<RenameTo> {
1154        support::child(&self.syntax)
1155    }
1156    #[inline]
1157    pub fn set_schema(&self) -> Option<SetSchema> {
1158        support::child(&self.syntax)
1159    }
1160    #[inline]
1161    pub fn alter_token(&self) -> Option<SyntaxToken> {
1162        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1163    }
1164    #[inline]
1165    pub fn family_token(&self) -> Option<SyntaxToken> {
1166        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
1167    }
1168    #[inline]
1169    pub fn operator_token(&self) -> Option<SyntaxToken> {
1170        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1171    }
1172    #[inline]
1173    pub fn using_token(&self) -> Option<SyntaxToken> {
1174        support::token(&self.syntax, SyntaxKind::USING_KW)
1175    }
1176}
1177
1178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1179pub struct AlterOption {
1180    pub(crate) syntax: SyntaxNode,
1181}
1182impl AlterOption {
1183    #[inline]
1184    pub fn literal(&self) -> Option<Literal> {
1185        support::child(&self.syntax)
1186    }
1187    #[inline]
1188    pub fn name_ref(&self) -> Option<NameRef> {
1189        support::child(&self.syntax)
1190    }
1191    #[inline]
1192    pub fn add_token(&self) -> Option<SyntaxToken> {
1193        support::token(&self.syntax, SyntaxKind::ADD_KW)
1194    }
1195    #[inline]
1196    pub fn drop_token(&self) -> Option<SyntaxToken> {
1197        support::token(&self.syntax, SyntaxKind::DROP_KW)
1198    }
1199    #[inline]
1200    pub fn set_token(&self) -> Option<SyntaxToken> {
1201        support::token(&self.syntax, SyntaxKind::SET_KW)
1202    }
1203}
1204
1205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1206pub struct AlterOptionList {
1207    pub(crate) syntax: SyntaxNode,
1208}
1209impl AlterOptionList {
1210    #[inline]
1211    pub fn alter_options(&self) -> AstChildren<AlterOption> {
1212        support::children(&self.syntax)
1213    }
1214}
1215
1216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1217pub struct AlterPolicy {
1218    pub(crate) syntax: SyntaxNode,
1219}
1220impl AlterPolicy {
1221    #[inline]
1222    pub fn name_ref(&self) -> Option<NameRef> {
1223        support::child(&self.syntax)
1224    }
1225    #[inline]
1226    pub fn on_table(&self) -> Option<OnTable> {
1227        support::child(&self.syntax)
1228    }
1229    #[inline]
1230    pub fn rename_to(&self) -> Option<RenameTo> {
1231        support::child(&self.syntax)
1232    }
1233    #[inline]
1234    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1235        support::child(&self.syntax)
1236    }
1237    #[inline]
1238    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
1239        support::child(&self.syntax)
1240    }
1241    #[inline]
1242    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
1243        support::child(&self.syntax)
1244    }
1245    #[inline]
1246    pub fn alter_token(&self) -> Option<SyntaxToken> {
1247        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1248    }
1249    #[inline]
1250    pub fn policy_token(&self) -> Option<SyntaxToken> {
1251        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1252    }
1253    #[inline]
1254    pub fn to_token(&self) -> Option<SyntaxToken> {
1255        support::token(&self.syntax, SyntaxKind::TO_KW)
1256    }
1257}
1258
1259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1260pub struct AlterProcedure {
1261    pub(crate) syntax: SyntaxNode,
1262}
1263impl AlterProcedure {
1264    #[inline]
1265    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1266        support::child(&self.syntax)
1267    }
1268    #[inline]
1269    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1270        support::child(&self.syntax)
1271    }
1272    #[inline]
1273    pub fn function_sig(&self) -> Option<FunctionSig> {
1274        support::child(&self.syntax)
1275    }
1276    #[inline]
1277    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1278        support::child(&self.syntax)
1279    }
1280    #[inline]
1281    pub fn owner_to(&self) -> Option<OwnerTo> {
1282        support::child(&self.syntax)
1283    }
1284    #[inline]
1285    pub fn rename_to(&self) -> Option<RenameTo> {
1286        support::child(&self.syntax)
1287    }
1288    #[inline]
1289    pub fn set_schema(&self) -> Option<SetSchema> {
1290        support::child(&self.syntax)
1291    }
1292    #[inline]
1293    pub fn alter_token(&self) -> Option<SyntaxToken> {
1294        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1295    }
1296    #[inline]
1297    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1298        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1299    }
1300    #[inline]
1301    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1302        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1303    }
1304}
1305
1306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1307pub struct AlterPropertyGraph {
1308    pub(crate) syntax: SyntaxNode,
1309}
1310impl AlterPropertyGraph {
1311    #[inline]
1312    pub fn alter_property_graph_action(&self) -> Option<AlterPropertyGraphAction> {
1313        support::child(&self.syntax)
1314    }
1315    #[inline]
1316    pub fn if_exists(&self) -> Option<IfExists> {
1317        support::child(&self.syntax)
1318    }
1319    #[inline]
1320    pub fn path(&self) -> Option<Path> {
1321        support::child(&self.syntax)
1322    }
1323    #[inline]
1324    pub fn alter_token(&self) -> Option<SyntaxToken> {
1325        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1326    }
1327    #[inline]
1328    pub fn graph_token(&self) -> Option<SyntaxToken> {
1329        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
1330    }
1331    #[inline]
1332    pub fn property_token(&self) -> Option<SyntaxToken> {
1333        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
1334    }
1335}
1336
1337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1338pub struct AlterPublication {
1339    pub(crate) syntax: SyntaxNode,
1340}
1341impl AlterPublication {
1342    #[inline]
1343    pub fn name_ref(&self) -> Option<NameRef> {
1344        support::child(&self.syntax)
1345    }
1346    #[inline]
1347    pub fn alter_token(&self) -> Option<SyntaxToken> {
1348        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1349    }
1350    #[inline]
1351    pub fn publication_token(&self) -> Option<SyntaxToken> {
1352        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1353    }
1354}
1355
1356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1357pub struct AlterRole {
1358    pub(crate) syntax: SyntaxNode,
1359}
1360impl AlterRole {
1361    #[inline]
1362    pub fn role_ref(&self) -> Option<RoleRef> {
1363        support::child(&self.syntax)
1364    }
1365    #[inline]
1366    pub fn alter_token(&self) -> Option<SyntaxToken> {
1367        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1368    }
1369    #[inline]
1370    pub fn role_token(&self) -> Option<SyntaxToken> {
1371        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1372    }
1373}
1374
1375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1376pub struct AlterRoutine {
1377    pub(crate) syntax: SyntaxNode,
1378}
1379impl AlterRoutine {
1380    #[inline]
1381    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1382        support::child(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1386        support::child(&self.syntax)
1387    }
1388    #[inline]
1389    pub fn function_sig(&self) -> Option<FunctionSig> {
1390        support::child(&self.syntax)
1391    }
1392    #[inline]
1393    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1394        support::child(&self.syntax)
1395    }
1396    #[inline]
1397    pub fn owner_to(&self) -> Option<OwnerTo> {
1398        support::child(&self.syntax)
1399    }
1400    #[inline]
1401    pub fn rename_to(&self) -> Option<RenameTo> {
1402        support::child(&self.syntax)
1403    }
1404    #[inline]
1405    pub fn set_schema(&self) -> Option<SetSchema> {
1406        support::child(&self.syntax)
1407    }
1408    #[inline]
1409    pub fn alter_token(&self) -> Option<SyntaxToken> {
1410        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1411    }
1412    #[inline]
1413    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1414        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1415    }
1416    #[inline]
1417    pub fn routine_token(&self) -> Option<SyntaxToken> {
1418        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1419    }
1420}
1421
1422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1423pub struct AlterRule {
1424    pub(crate) syntax: SyntaxNode,
1425}
1426impl AlterRule {
1427    #[inline]
1428    pub fn name_ref(&self) -> Option<NameRef> {
1429        support::child(&self.syntax)
1430    }
1431    #[inline]
1432    pub fn on_table(&self) -> Option<OnTable> {
1433        support::child(&self.syntax)
1434    }
1435    #[inline]
1436    pub fn rename_to(&self) -> Option<RenameTo> {
1437        support::child(&self.syntax)
1438    }
1439    #[inline]
1440    pub fn alter_token(&self) -> Option<SyntaxToken> {
1441        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1442    }
1443    #[inline]
1444    pub fn on_token(&self) -> Option<SyntaxToken> {
1445        support::token(&self.syntax, SyntaxKind::ON_KW)
1446    }
1447    #[inline]
1448    pub fn rule_token(&self) -> Option<SyntaxToken> {
1449        support::token(&self.syntax, SyntaxKind::RULE_KW)
1450    }
1451}
1452
1453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1454pub struct AlterSchema {
1455    pub(crate) syntax: SyntaxNode,
1456}
1457impl AlterSchema {
1458    #[inline]
1459    pub fn name_ref(&self) -> Option<NameRef> {
1460        support::child(&self.syntax)
1461    }
1462    #[inline]
1463    pub fn owner_to(&self) -> Option<OwnerTo> {
1464        support::child(&self.syntax)
1465    }
1466    #[inline]
1467    pub fn rename_to(&self) -> Option<RenameTo> {
1468        support::child(&self.syntax)
1469    }
1470    #[inline]
1471    pub fn alter_token(&self) -> Option<SyntaxToken> {
1472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1473    }
1474    #[inline]
1475    pub fn schema_token(&self) -> Option<SyntaxToken> {
1476        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1477    }
1478}
1479
1480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1481pub struct AlterSequence {
1482    pub(crate) syntax: SyntaxNode,
1483}
1484impl AlterSequence {
1485    #[inline]
1486    pub fn if_exists(&self) -> Option<IfExists> {
1487        support::child(&self.syntax)
1488    }
1489    #[inline]
1490    pub fn path(&self) -> Option<Path> {
1491        support::child(&self.syntax)
1492    }
1493    #[inline]
1494    pub fn alter_token(&self) -> Option<SyntaxToken> {
1495        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1496    }
1497    #[inline]
1498    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1499        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1500    }
1501}
1502
1503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1504pub struct AlterServer {
1505    pub(crate) syntax: SyntaxNode,
1506}
1507impl AlterServer {
1508    #[inline]
1509    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1510        support::child(&self.syntax)
1511    }
1512    #[inline]
1513    pub fn name_ref(&self) -> Option<NameRef> {
1514        support::child(&self.syntax)
1515    }
1516    #[inline]
1517    pub fn alter_token(&self) -> Option<SyntaxToken> {
1518        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1519    }
1520    #[inline]
1521    pub fn server_token(&self) -> Option<SyntaxToken> {
1522        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1523    }
1524}
1525
1526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1527pub struct AlterSetStatistics {
1528    pub(crate) syntax: SyntaxNode,
1529}
1530impl AlterSetStatistics {
1531    #[inline]
1532    pub fn literal(&self) -> Option<Literal> {
1533        support::child(&self.syntax)
1534    }
1535    #[inline]
1536    pub fn name_ref(&self) -> Option<NameRef> {
1537        support::child(&self.syntax)
1538    }
1539    #[inline]
1540    pub fn column_token(&self) -> Option<SyntaxToken> {
1541        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1542    }
1543    #[inline]
1544    pub fn set_token(&self) -> Option<SyntaxToken> {
1545        support::token(&self.syntax, SyntaxKind::SET_KW)
1546    }
1547    #[inline]
1548    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1549        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1550    }
1551}
1552
1553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1554pub struct AlterStatistics {
1555    pub(crate) syntax: SyntaxNode,
1556}
1557impl AlterStatistics {
1558    #[inline]
1559    pub fn path(&self) -> Option<Path> {
1560        support::child(&self.syntax)
1561    }
1562    #[inline]
1563    pub fn alter_token(&self) -> Option<SyntaxToken> {
1564        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1565    }
1566    #[inline]
1567    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1568        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1569    }
1570}
1571
1572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1573pub struct AlterSubscription {
1574    pub(crate) syntax: SyntaxNode,
1575}
1576impl AlterSubscription {
1577    #[inline]
1578    pub fn name_ref(&self) -> Option<NameRef> {
1579        support::child(&self.syntax)
1580    }
1581    #[inline]
1582    pub fn alter_token(&self) -> Option<SyntaxToken> {
1583        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1584    }
1585    #[inline]
1586    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1587        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1588    }
1589}
1590
1591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1592pub struct AlterSystem {
1593    pub(crate) syntax: SyntaxNode,
1594}
1595impl AlterSystem {
1596    #[inline]
1597    pub fn alter_token(&self) -> Option<SyntaxToken> {
1598        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1599    }
1600    #[inline]
1601    pub fn set_token(&self) -> Option<SyntaxToken> {
1602        support::token(&self.syntax, SyntaxKind::SET_KW)
1603    }
1604    #[inline]
1605    pub fn system_token(&self) -> Option<SyntaxToken> {
1606        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1607    }
1608}
1609
1610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1611pub struct AlterTable {
1612    pub(crate) syntax: SyntaxNode,
1613}
1614impl AlterTable {
1615    #[inline]
1616    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1617        support::children(&self.syntax)
1618    }
1619    #[inline]
1620    pub fn relation_name(&self) -> Option<RelationName> {
1621        support::child(&self.syntax)
1622    }
1623    #[inline]
1624    pub fn alter_token(&self) -> Option<SyntaxToken> {
1625        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1626    }
1627    #[inline]
1628    pub fn table_token(&self) -> Option<SyntaxToken> {
1629        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1630    }
1631}
1632
1633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1634pub struct AlterTablespace {
1635    pub(crate) syntax: SyntaxNode,
1636}
1637impl AlterTablespace {
1638    #[inline]
1639    pub fn owner_to(&self) -> Option<OwnerTo> {
1640        support::child(&self.syntax)
1641    }
1642    #[inline]
1643    pub fn path(&self) -> Option<Path> {
1644        support::child(&self.syntax)
1645    }
1646    #[inline]
1647    pub fn rename_to(&self) -> Option<RenameTo> {
1648        support::child(&self.syntax)
1649    }
1650    #[inline]
1651    pub fn reset_options(&self) -> Option<ResetOptions> {
1652        support::child(&self.syntax)
1653    }
1654    #[inline]
1655    pub fn set_options(&self) -> Option<SetOptions> {
1656        support::child(&self.syntax)
1657    }
1658    #[inline]
1659    pub fn alter_token(&self) -> Option<SyntaxToken> {
1660        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1661    }
1662    #[inline]
1663    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1664        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1665    }
1666}
1667
1668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1669pub struct AlterTextSearchConfiguration {
1670    pub(crate) syntax: SyntaxNode,
1671}
1672impl AlterTextSearchConfiguration {
1673    #[inline]
1674    pub fn owner_to(&self) -> Option<OwnerTo> {
1675        support::child(&self.syntax)
1676    }
1677    #[inline]
1678    pub fn path(&self) -> Option<Path> {
1679        support::child(&self.syntax)
1680    }
1681    #[inline]
1682    pub fn rename_to(&self) -> Option<RenameTo> {
1683        support::child(&self.syntax)
1684    }
1685    #[inline]
1686    pub fn set_schema(&self) -> Option<SetSchema> {
1687        support::child(&self.syntax)
1688    }
1689    #[inline]
1690    pub fn alter_token(&self) -> Option<SyntaxToken> {
1691        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1692    }
1693    #[inline]
1694    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1695        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1696    }
1697    #[inline]
1698    pub fn search_token(&self) -> Option<SyntaxToken> {
1699        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1700    }
1701    #[inline]
1702    pub fn text_token(&self) -> Option<SyntaxToken> {
1703        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1704    }
1705}
1706
1707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1708pub struct AlterTextSearchDictionary {
1709    pub(crate) syntax: SyntaxNode,
1710}
1711impl AlterTextSearchDictionary {
1712    #[inline]
1713    pub fn attribute_list(&self) -> Option<AttributeList> {
1714        support::child(&self.syntax)
1715    }
1716    #[inline]
1717    pub fn owner_to(&self) -> Option<OwnerTo> {
1718        support::child(&self.syntax)
1719    }
1720    #[inline]
1721    pub fn path(&self) -> Option<Path> {
1722        support::child(&self.syntax)
1723    }
1724    #[inline]
1725    pub fn rename_to(&self) -> Option<RenameTo> {
1726        support::child(&self.syntax)
1727    }
1728    #[inline]
1729    pub fn set_schema(&self) -> Option<SetSchema> {
1730        support::child(&self.syntax)
1731    }
1732    #[inline]
1733    pub fn alter_token(&self) -> Option<SyntaxToken> {
1734        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1735    }
1736    #[inline]
1737    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1738        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1739    }
1740    #[inline]
1741    pub fn search_token(&self) -> Option<SyntaxToken> {
1742        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1743    }
1744    #[inline]
1745    pub fn text_token(&self) -> Option<SyntaxToken> {
1746        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1747    }
1748}
1749
1750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1751pub struct AlterTextSearchParser {
1752    pub(crate) syntax: SyntaxNode,
1753}
1754impl AlterTextSearchParser {
1755    #[inline]
1756    pub fn path(&self) -> Option<Path> {
1757        support::child(&self.syntax)
1758    }
1759    #[inline]
1760    pub fn rename_to(&self) -> Option<RenameTo> {
1761        support::child(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn set_schema(&self) -> Option<SetSchema> {
1765        support::child(&self.syntax)
1766    }
1767    #[inline]
1768    pub fn alter_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1770    }
1771    #[inline]
1772    pub fn parser_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1774    }
1775    #[inline]
1776    pub fn search_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1778    }
1779    #[inline]
1780    pub fn text_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1782    }
1783}
1784
1785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1786pub struct AlterTextSearchTemplate {
1787    pub(crate) syntax: SyntaxNode,
1788}
1789impl AlterTextSearchTemplate {
1790    #[inline]
1791    pub fn path(&self) -> Option<Path> {
1792        support::child(&self.syntax)
1793    }
1794    #[inline]
1795    pub fn rename_to(&self) -> Option<RenameTo> {
1796        support::child(&self.syntax)
1797    }
1798    #[inline]
1799    pub fn set_schema(&self) -> Option<SetSchema> {
1800        support::child(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn alter_token(&self) -> Option<SyntaxToken> {
1804        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1805    }
1806    #[inline]
1807    pub fn search_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1809    }
1810    #[inline]
1811    pub fn template_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1813    }
1814    #[inline]
1815    pub fn text_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1817    }
1818}
1819
1820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1821pub struct AlterTrigger {
1822    pub(crate) syntax: SyntaxNode,
1823}
1824impl AlterTrigger {
1825    #[inline]
1826    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1827        support::child(&self.syntax)
1828    }
1829    #[inline]
1830    pub fn name_ref(&self) -> Option<NameRef> {
1831        support::child(&self.syntax)
1832    }
1833    #[inline]
1834    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn on_table(&self) -> Option<OnTable> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn rename_to(&self) -> Option<RenameTo> {
1843        support::child(&self.syntax)
1844    }
1845    #[inline]
1846    pub fn alter_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1848    }
1849    #[inline]
1850    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1852    }
1853}
1854
1855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1856pub struct AlterType {
1857    pub(crate) syntax: SyntaxNode,
1858}
1859impl AlterType {
1860    #[inline]
1861    pub fn add_value(&self) -> Option<AddValue> {
1862        support::child(&self.syntax)
1863    }
1864    #[inline]
1865    pub fn alter_type_actions(&self) -> AstChildren<AlterTypeAction> {
1866        support::children(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn owner_to(&self) -> Option<OwnerTo> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn path(&self) -> Option<Path> {
1874        support::child(&self.syntax)
1875    }
1876    #[inline]
1877    pub fn rename_attribute(&self) -> Option<RenameAttribute> {
1878        support::child(&self.syntax)
1879    }
1880    #[inline]
1881    pub fn rename_to(&self) -> Option<RenameTo> {
1882        support::child(&self.syntax)
1883    }
1884    #[inline]
1885    pub fn rename_value(&self) -> Option<RenameValue> {
1886        support::child(&self.syntax)
1887    }
1888    #[inline]
1889    pub fn set_options(&self) -> Option<SetOptions> {
1890        support::child(&self.syntax)
1891    }
1892    #[inline]
1893    pub fn set_schema(&self) -> Option<SetSchema> {
1894        support::child(&self.syntax)
1895    }
1896    #[inline]
1897    pub fn alter_token(&self) -> Option<SyntaxToken> {
1898        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1899    }
1900    #[inline]
1901    pub fn type_token(&self) -> Option<SyntaxToken> {
1902        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1903    }
1904}
1905
1906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1907pub struct AlterUser {
1908    pub(crate) syntax: SyntaxNode,
1909}
1910impl AlterUser {
1911    #[inline]
1912    pub fn role_ref(&self) -> Option<RoleRef> {
1913        support::child(&self.syntax)
1914    }
1915    #[inline]
1916    pub fn alter_token(&self) -> Option<SyntaxToken> {
1917        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1918    }
1919    #[inline]
1920    pub fn user_token(&self) -> Option<SyntaxToken> {
1921        support::token(&self.syntax, SyntaxKind::USER_KW)
1922    }
1923}
1924
1925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1926pub struct AlterUserMapping {
1927    pub(crate) syntax: SyntaxNode,
1928}
1929impl AlterUserMapping {
1930    #[inline]
1931    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1932        support::child(&self.syntax)
1933    }
1934    #[inline]
1935    pub fn role_ref(&self) -> Option<RoleRef> {
1936        support::child(&self.syntax)
1937    }
1938    #[inline]
1939    pub fn server_name(&self) -> Option<ServerName> {
1940        support::child(&self.syntax)
1941    }
1942    #[inline]
1943    pub fn alter_token(&self) -> Option<SyntaxToken> {
1944        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1945    }
1946    #[inline]
1947    pub fn for_token(&self) -> Option<SyntaxToken> {
1948        support::token(&self.syntax, SyntaxKind::FOR_KW)
1949    }
1950    #[inline]
1951    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1952        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1953    }
1954    #[inline]
1955    pub fn user_token(&self) -> Option<SyntaxToken> {
1956        support::token(&self.syntax, SyntaxKind::USER_KW)
1957    }
1958}
1959
1960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1961pub struct AlterVertexEdgeLabels {
1962    pub(crate) syntax: SyntaxNode,
1963}
1964impl AlterVertexEdgeLabels {
1965    #[inline]
1966    pub fn add_label(&self) -> Option<AddLabel> {
1967        support::child(&self.syntax)
1968    }
1969    #[inline]
1970    pub fn add_labels(&self) -> AstChildren<AddLabel> {
1971        support::children(&self.syntax)
1972    }
1973    #[inline]
1974    pub fn name(&self) -> Option<Name> {
1975        support::child(&self.syntax)
1976    }
1977    #[inline]
1978    pub fn alter_token(&self) -> Option<SyntaxToken> {
1979        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1980    }
1981    #[inline]
1982    pub fn edge_token(&self) -> Option<SyntaxToken> {
1983        support::token(&self.syntax, SyntaxKind::EDGE_KW)
1984    }
1985    #[inline]
1986    pub fn node_token(&self) -> Option<SyntaxToken> {
1987        support::token(&self.syntax, SyntaxKind::NODE_KW)
1988    }
1989    #[inline]
1990    pub fn relationship_token(&self) -> Option<SyntaxToken> {
1991        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
1992    }
1993    #[inline]
1994    pub fn table_token(&self) -> Option<SyntaxToken> {
1995        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1996    }
1997    #[inline]
1998    pub fn vertex_token(&self) -> Option<SyntaxToken> {
1999        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
2000    }
2001}
2002
2003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2004pub struct AlterView {
2005    pub(crate) syntax: SyntaxNode,
2006}
2007impl AlterView {
2008    #[inline]
2009    pub fn path(&self) -> Option<Path> {
2010        support::child(&self.syntax)
2011    }
2012    #[inline]
2013    pub fn alter_token(&self) -> Option<SyntaxToken> {
2014        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2015    }
2016    #[inline]
2017    pub fn view_token(&self) -> Option<SyntaxToken> {
2018        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2019    }
2020}
2021
2022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2023pub struct Analyze {
2024    pub(crate) syntax: SyntaxNode,
2025}
2026impl Analyze {
2027    #[inline]
2028    pub fn option_item_list(&self) -> Option<OptionItemList> {
2029        support::child(&self.syntax)
2030    }
2031    #[inline]
2032    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
2033        support::child(&self.syntax)
2034    }
2035    #[inline]
2036    pub fn analyse_token(&self) -> Option<SyntaxToken> {
2037        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
2038    }
2039    #[inline]
2040    pub fn analyze_token(&self) -> Option<SyntaxToken> {
2041        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
2042    }
2043    #[inline]
2044    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2045        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2046    }
2047}
2048
2049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2050pub struct AnyFn {
2051    pub(crate) syntax: SyntaxNode,
2052}
2053impl AnyFn {
2054    #[inline]
2055    pub fn expr(&self) -> Option<Expr> {
2056        support::child(&self.syntax)
2057    }
2058    #[inline]
2059    pub fn select_variant(&self) -> Option<SelectVariant> {
2060        support::child(&self.syntax)
2061    }
2062    #[inline]
2063    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2064        support::token(&self.syntax, SyntaxKind::L_PAREN)
2065    }
2066    #[inline]
2067    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2068        support::token(&self.syntax, SyntaxKind::R_PAREN)
2069    }
2070    #[inline]
2071    pub fn any_token(&self) -> Option<SyntaxToken> {
2072        support::token(&self.syntax, SyntaxKind::ANY_KW)
2073    }
2074}
2075
2076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2077pub struct Arg {
2078    pub(crate) syntax: SyntaxNode,
2079}
2080impl Arg {
2081    #[inline]
2082    pub fn expr(&self) -> Option<Expr> {
2083        support::child(&self.syntax)
2084    }
2085}
2086
2087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2088pub struct ArgList {
2089    pub(crate) syntax: SyntaxNode,
2090}
2091impl ArgList {
2092    #[inline]
2093    pub fn args(&self) -> AstChildren<Expr> {
2094        support::children(&self.syntax)
2095    }
2096    #[inline]
2097    pub fn args_(&self) -> AstChildren<Arg> {
2098        support::children(&self.syntax)
2099    }
2100    #[inline]
2101    pub fn expr(&self) -> Option<Expr> {
2102        support::child(&self.syntax)
2103    }
2104    #[inline]
2105    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2106        support::token(&self.syntax, SyntaxKind::L_PAREN)
2107    }
2108    #[inline]
2109    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2110        support::token(&self.syntax, SyntaxKind::R_PAREN)
2111    }
2112    #[inline]
2113    pub fn star_token(&self) -> Option<SyntaxToken> {
2114        support::token(&self.syntax, SyntaxKind::STAR)
2115    }
2116    #[inline]
2117    pub fn all_token(&self) -> Option<SyntaxToken> {
2118        support::token(&self.syntax, SyntaxKind::ALL_KW)
2119    }
2120    #[inline]
2121    pub fn distinct_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
2123    }
2124    #[inline]
2125    pub fn variadic_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
2127    }
2128}
2129
2130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2131pub struct ArrayExpr {
2132    pub(crate) syntax: SyntaxNode,
2133}
2134impl ArrayExpr {
2135    #[inline]
2136    pub fn exprs(&self) -> AstChildren<Expr> {
2137        support::children(&self.syntax)
2138    }
2139    #[inline]
2140    pub fn select(&self) -> Option<Select> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2145        support::token(&self.syntax, SyntaxKind::L_PAREN)
2146    }
2147    #[inline]
2148    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::R_PAREN)
2150    }
2151    #[inline]
2152    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2153        support::token(&self.syntax, SyntaxKind::L_BRACK)
2154    }
2155    #[inline]
2156    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2157        support::token(&self.syntax, SyntaxKind::R_BRACK)
2158    }
2159    #[inline]
2160    pub fn array_token(&self) -> Option<SyntaxToken> {
2161        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2162    }
2163}
2164
2165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2166pub struct ArrayType {
2167    pub(crate) syntax: SyntaxNode,
2168}
2169impl ArrayType {
2170    #[inline]
2171    pub fn expr(&self) -> Option<Expr> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn name_ref(&self) -> Option<NameRef> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn ty(&self) -> Option<Type> {
2180        support::child(&self.syntax)
2181    }
2182    #[inline]
2183    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2184        support::token(&self.syntax, SyntaxKind::L_BRACK)
2185    }
2186    #[inline]
2187    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2188        support::token(&self.syntax, SyntaxKind::R_BRACK)
2189    }
2190    #[inline]
2191    pub fn array_token(&self) -> Option<SyntaxToken> {
2192        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2193    }
2194}
2195
2196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2197pub struct AsFuncOption {
2198    pub(crate) syntax: SyntaxNode,
2199}
2200impl AsFuncOption {
2201    #[inline]
2202    pub fn definition(&self) -> Option<Literal> {
2203        support::child(&self.syntax)
2204    }
2205    #[inline]
2206    pub fn link_symbol(&self) -> Option<Literal> {
2207        support::child(&self.syntax)
2208    }
2209    #[inline]
2210    pub fn obj_file(&self) -> Option<Literal> {
2211        support::child(&self.syntax)
2212    }
2213    #[inline]
2214    pub fn comma_token(&self) -> Option<SyntaxToken> {
2215        support::token(&self.syntax, SyntaxKind::COMMA)
2216    }
2217    #[inline]
2218    pub fn as_token(&self) -> Option<SyntaxToken> {
2219        support::token(&self.syntax, SyntaxKind::AS_KW)
2220    }
2221}
2222
2223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2224pub struct AsName {
2225    pub(crate) syntax: SyntaxNode,
2226}
2227impl AsName {
2228    #[inline]
2229    pub fn name(&self) -> Option<Name> {
2230        support::child(&self.syntax)
2231    }
2232    #[inline]
2233    pub fn as_token(&self) -> Option<SyntaxToken> {
2234        support::token(&self.syntax, SyntaxKind::AS_KW)
2235    }
2236}
2237
2238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2239pub struct AsPolicyType {
2240    pub(crate) syntax: SyntaxNode,
2241}
2242impl AsPolicyType {
2243    #[inline]
2244    pub fn as_token(&self) -> Option<SyntaxToken> {
2245        support::token(&self.syntax, SyntaxKind::AS_KW)
2246    }
2247    #[inline]
2248    pub fn ident_token(&self) -> Option<SyntaxToken> {
2249        support::token(&self.syntax, SyntaxKind::IDENT)
2250    }
2251}
2252
2253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2254pub struct AtTimeZone {
2255    pub(crate) syntax: SyntaxNode,
2256}
2257impl AtTimeZone {
2258    #[inline]
2259    pub fn at_token(&self) -> Option<SyntaxToken> {
2260        support::token(&self.syntax, SyntaxKind::AT_KW)
2261    }
2262    #[inline]
2263    pub fn time_token(&self) -> Option<SyntaxToken> {
2264        support::token(&self.syntax, SyntaxKind::TIME_KW)
2265    }
2266    #[inline]
2267    pub fn zone_token(&self) -> Option<SyntaxToken> {
2268        support::token(&self.syntax, SyntaxKind::ZONE_KW)
2269    }
2270}
2271
2272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2273pub struct AttachPartition {
2274    pub(crate) syntax: SyntaxNode,
2275}
2276impl AttachPartition {
2277    #[inline]
2278    pub fn partition_type(&self) -> Option<PartitionType> {
2279        support::child(&self.syntax)
2280    }
2281    #[inline]
2282    pub fn path(&self) -> Option<Path> {
2283        support::child(&self.syntax)
2284    }
2285    #[inline]
2286    pub fn attach_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
2288    }
2289    #[inline]
2290    pub fn partition_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
2292    }
2293}
2294
2295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2296pub struct AttributeList {
2297    pub(crate) syntax: SyntaxNode,
2298}
2299impl AttributeList {
2300    #[inline]
2301    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
2302        support::children(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2306        support::token(&self.syntax, SyntaxKind::L_PAREN)
2307    }
2308    #[inline]
2309    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2310        support::token(&self.syntax, SyntaxKind::R_PAREN)
2311    }
2312}
2313
2314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2315pub struct AttributeOption {
2316    pub(crate) syntax: SyntaxNode,
2317}
2318impl AttributeOption {
2319    #[inline]
2320    pub fn attribute_value(&self) -> Option<AttributeValue> {
2321        support::child(&self.syntax)
2322    }
2323    #[inline]
2324    pub fn name(&self) -> Option<Name> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn dot_token(&self) -> Option<SyntaxToken> {
2329        support::token(&self.syntax, SyntaxKind::DOT)
2330    }
2331    #[inline]
2332    pub fn eq_token(&self) -> Option<SyntaxToken> {
2333        support::token(&self.syntax, SyntaxKind::EQ)
2334    }
2335}
2336
2337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2338pub struct AttributeValue {
2339    pub(crate) syntax: SyntaxNode,
2340}
2341impl AttributeValue {
2342    #[inline]
2343    pub fn literal(&self) -> Option<Literal> {
2344        support::child(&self.syntax)
2345    }
2346    #[inline]
2347    pub fn op(&self) -> Option<Op> {
2348        support::child(&self.syntax)
2349    }
2350    #[inline]
2351    pub fn ty(&self) -> Option<Type> {
2352        support::child(&self.syntax)
2353    }
2354    #[inline]
2355    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2356        support::token(&self.syntax, SyntaxKind::L_PAREN)
2357    }
2358    #[inline]
2359    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2360        support::token(&self.syntax, SyntaxKind::R_PAREN)
2361    }
2362    #[inline]
2363    pub fn none_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::NONE_KW)
2365    }
2366    #[inline]
2367    pub fn operator_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2369    }
2370}
2371
2372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2373pub struct BeforeValue {
2374    pub(crate) syntax: SyntaxNode,
2375}
2376impl BeforeValue {
2377    #[inline]
2378    pub fn literal(&self) -> Option<Literal> {
2379        support::child(&self.syntax)
2380    }
2381    #[inline]
2382    pub fn before_token(&self) -> Option<SyntaxToken> {
2383        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
2384    }
2385}
2386
2387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2388pub struct Begin {
2389    pub(crate) syntax: SyntaxNode,
2390}
2391impl Begin {
2392    #[inline]
2393    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2394        support::child(&self.syntax)
2395    }
2396    #[inline]
2397    pub fn begin_token(&self) -> Option<SyntaxToken> {
2398        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2399    }
2400    #[inline]
2401    pub fn start_token(&self) -> Option<SyntaxToken> {
2402        support::token(&self.syntax, SyntaxKind::START_KW)
2403    }
2404    #[inline]
2405    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2406        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2407    }
2408    #[inline]
2409    pub fn work_token(&self) -> Option<SyntaxToken> {
2410        support::token(&self.syntax, SyntaxKind::WORK_KW)
2411    }
2412}
2413
2414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2415pub struct BeginFuncOption {
2416    pub(crate) syntax: SyntaxNode,
2417}
2418impl BeginFuncOption {
2419    #[inline]
2420    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2421        support::child(&self.syntax)
2422    }
2423    #[inline]
2424    pub fn stmt(&self) -> Option<Stmt> {
2425        support::child(&self.syntax)
2426    }
2427    #[inline]
2428    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2429        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2430    }
2431}
2432
2433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2434pub struct BeginFuncOptionList {
2435    pub(crate) syntax: SyntaxNode,
2436}
2437impl BeginFuncOptionList {
2438    #[inline]
2439    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2440        support::children(&self.syntax)
2441    }
2442    #[inline]
2443    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2444        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2445    }
2446    #[inline]
2447    pub fn begin_token(&self) -> Option<SyntaxToken> {
2448        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2449    }
2450    #[inline]
2451    pub fn end_token(&self) -> Option<SyntaxToken> {
2452        support::token(&self.syntax, SyntaxKind::END_KW)
2453    }
2454}
2455
2456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2457pub struct BetweenExpr {
2458    pub(crate) syntax: SyntaxNode,
2459}
2460impl BetweenExpr {
2461    #[inline]
2462    pub fn and_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::AND_KW)
2464    }
2465    #[inline]
2466    pub fn between_token(&self) -> Option<SyntaxToken> {
2467        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2468    }
2469    #[inline]
2470    pub fn not_token(&self) -> Option<SyntaxToken> {
2471        support::token(&self.syntax, SyntaxKind::NOT_KW)
2472    }
2473    #[inline]
2474    pub fn symmetric_token(&self) -> Option<SyntaxToken> {
2475        support::token(&self.syntax, SyntaxKind::SYMMETRIC_KW)
2476    }
2477}
2478
2479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2480pub struct BinExpr {
2481    pub(crate) syntax: SyntaxNode,
2482}
2483impl BinExpr {}
2484
2485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2486pub struct BitType {
2487    pub(crate) syntax: SyntaxNode,
2488}
2489impl BitType {
2490    #[inline]
2491    pub fn arg_list(&self) -> Option<ArgList> {
2492        support::child(&self.syntax)
2493    }
2494    #[inline]
2495    pub fn bit_token(&self) -> Option<SyntaxToken> {
2496        support::token(&self.syntax, SyntaxKind::BIT_KW)
2497    }
2498    #[inline]
2499    pub fn setof_token(&self) -> Option<SyntaxToken> {
2500        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2501    }
2502    #[inline]
2503    pub fn varying_token(&self) -> Option<SyntaxToken> {
2504        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2505    }
2506}
2507
2508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2509pub struct Call {
2510    pub(crate) syntax: SyntaxNode,
2511}
2512impl Call {
2513    #[inline]
2514    pub fn arg_list(&self) -> Option<ArgList> {
2515        support::child(&self.syntax)
2516    }
2517    #[inline]
2518    pub fn path(&self) -> Option<Path> {
2519        support::child(&self.syntax)
2520    }
2521    #[inline]
2522    pub fn call_token(&self) -> Option<SyntaxToken> {
2523        support::token(&self.syntax, SyntaxKind::CALL_KW)
2524    }
2525}
2526
2527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2528pub struct CallExpr {
2529    pub(crate) syntax: SyntaxNode,
2530}
2531impl CallExpr {
2532    #[inline]
2533    pub fn all_fn(&self) -> Option<AllFn> {
2534        support::child(&self.syntax)
2535    }
2536    #[inline]
2537    pub fn any_fn(&self) -> Option<AnyFn> {
2538        support::child(&self.syntax)
2539    }
2540    #[inline]
2541    pub fn arg_list(&self) -> Option<ArgList> {
2542        support::child(&self.syntax)
2543    }
2544    #[inline]
2545    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
2546        support::child(&self.syntax)
2547    }
2548    #[inline]
2549    pub fn exists_fn(&self) -> Option<ExistsFn> {
2550        support::child(&self.syntax)
2551    }
2552    #[inline]
2553    pub fn expr(&self) -> Option<Expr> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn extract_fn(&self) -> Option<ExtractFn> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn filter_clause(&self) -> Option<FilterClause> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn graph_table_fn(&self) -> Option<GraphTableFn> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn json_fn(&self) -> Option<JsonFn> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2586        support::child(&self.syntax)
2587    }
2588    #[inline]
2589    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2590        support::child(&self.syntax)
2591    }
2592    #[inline]
2593    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn over_clause(&self) -> Option<OverClause> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn position_fn(&self) -> Option<PositionFn> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn some_fn(&self) -> Option<SomeFn> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn substring_fn(&self) -> Option<SubstringFn> {
2626        support::child(&self.syntax)
2627    }
2628    #[inline]
2629    pub fn trim_fn(&self) -> Option<TrimFn> {
2630        support::child(&self.syntax)
2631    }
2632    #[inline]
2633    pub fn within_clause(&self) -> Option<WithinClause> {
2634        support::child(&self.syntax)
2635    }
2636    #[inline]
2637    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2638        support::child(&self.syntax)
2639    }
2640    #[inline]
2641    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2642        support::child(&self.syntax)
2643    }
2644    #[inline]
2645    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2646        support::child(&self.syntax)
2647    }
2648    #[inline]
2649    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2650        support::child(&self.syntax)
2651    }
2652    #[inline]
2653    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2654        support::child(&self.syntax)
2655    }
2656    #[inline]
2657    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2658        support::child(&self.syntax)
2659    }
2660    #[inline]
2661    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2662        support::child(&self.syntax)
2663    }
2664}
2665
2666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2667pub struct Cascade {
2668    pub(crate) syntax: SyntaxNode,
2669}
2670impl Cascade {
2671    #[inline]
2672    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2673        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2674    }
2675}
2676
2677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2678pub struct CaseExpr {
2679    pub(crate) syntax: SyntaxNode,
2680}
2681impl CaseExpr {
2682    #[inline]
2683    pub fn else_clause(&self) -> Option<ElseClause> {
2684        support::child(&self.syntax)
2685    }
2686    #[inline]
2687    pub fn expr(&self) -> Option<Expr> {
2688        support::child(&self.syntax)
2689    }
2690    #[inline]
2691    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2692        support::child(&self.syntax)
2693    }
2694    #[inline]
2695    pub fn case_token(&self) -> Option<SyntaxToken> {
2696        support::token(&self.syntax, SyntaxKind::CASE_KW)
2697    }
2698}
2699
2700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2701pub struct CastExpr {
2702    pub(crate) syntax: SyntaxNode,
2703}
2704impl CastExpr {
2705    #[inline]
2706    pub fn colon_colon(&self) -> Option<ColonColon> {
2707        support::child(&self.syntax)
2708    }
2709    #[inline]
2710    pub fn expr(&self) -> Option<Expr> {
2711        support::child(&self.syntax)
2712    }
2713    #[inline]
2714    pub fn literal(&self) -> Option<Literal> {
2715        support::child(&self.syntax)
2716    }
2717    #[inline]
2718    pub fn ty(&self) -> Option<Type> {
2719        support::child(&self.syntax)
2720    }
2721    #[inline]
2722    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::L_PAREN)
2724    }
2725    #[inline]
2726    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::R_PAREN)
2728    }
2729    #[inline]
2730    pub fn as_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::AS_KW)
2732    }
2733    #[inline]
2734    pub fn cast_token(&self) -> Option<SyntaxToken> {
2735        support::token(&self.syntax, SyntaxKind::CAST_KW)
2736    }
2737    #[inline]
2738    pub fn treat_token(&self) -> Option<SyntaxToken> {
2739        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2740    }
2741}
2742
2743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2744pub struct CastSig {
2745    pub(crate) syntax: SyntaxNode,
2746}
2747impl CastSig {
2748    #[inline]
2749    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::L_PAREN)
2751    }
2752    #[inline]
2753    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2754        support::token(&self.syntax, SyntaxKind::R_PAREN)
2755    }
2756    #[inline]
2757    pub fn as_token(&self) -> Option<SyntaxToken> {
2758        support::token(&self.syntax, SyntaxKind::AS_KW)
2759    }
2760}
2761
2762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2763pub struct CharType {
2764    pub(crate) syntax: SyntaxNode,
2765}
2766impl CharType {
2767    #[inline]
2768    pub fn arg_list(&self) -> Option<ArgList> {
2769        support::child(&self.syntax)
2770    }
2771    #[inline]
2772    pub fn char_token(&self) -> Option<SyntaxToken> {
2773        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2774    }
2775    #[inline]
2776    pub fn character_token(&self) -> Option<SyntaxToken> {
2777        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2778    }
2779    #[inline]
2780    pub fn national_token(&self) -> Option<SyntaxToken> {
2781        support::token(&self.syntax, SyntaxKind::NATIONAL_KW)
2782    }
2783    #[inline]
2784    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2785        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2786    }
2787    #[inline]
2788    pub fn setof_token(&self) -> Option<SyntaxToken> {
2789        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2790    }
2791    #[inline]
2792    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2793        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2794    }
2795    #[inline]
2796    pub fn varying_token(&self) -> Option<SyntaxToken> {
2797        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2798    }
2799}
2800
2801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2802pub struct CheckConstraint {
2803    pub(crate) syntax: SyntaxNode,
2804}
2805impl CheckConstraint {
2806    #[inline]
2807    pub fn constraint_name(&self) -> Option<ConstraintName> {
2808        support::child(&self.syntax)
2809    }
2810    #[inline]
2811    pub fn expr(&self) -> Option<Expr> {
2812        support::child(&self.syntax)
2813    }
2814    #[inline]
2815    pub fn no_inherit(&self) -> Option<NoInherit> {
2816        support::child(&self.syntax)
2817    }
2818    #[inline]
2819    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2820        support::token(&self.syntax, SyntaxKind::L_PAREN)
2821    }
2822    #[inline]
2823    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2824        support::token(&self.syntax, SyntaxKind::R_PAREN)
2825    }
2826    #[inline]
2827    pub fn check_token(&self) -> Option<SyntaxToken> {
2828        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2829    }
2830}
2831
2832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2833pub struct Checkpoint {
2834    pub(crate) syntax: SyntaxNode,
2835}
2836impl Checkpoint {
2837    #[inline]
2838    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2839        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2840    }
2841}
2842
2843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2844pub struct Close {
2845    pub(crate) syntax: SyntaxNode,
2846}
2847impl Close {
2848    #[inline]
2849    pub fn name_ref(&self) -> Option<NameRef> {
2850        support::child(&self.syntax)
2851    }
2852    #[inline]
2853    pub fn close_token(&self) -> Option<SyntaxToken> {
2854        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2855    }
2856}
2857
2858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2859pub struct Cluster {
2860    pub(crate) syntax: SyntaxNode,
2861}
2862impl Cluster {
2863    #[inline]
2864    pub fn option_item_list(&self) -> Option<OptionItemList> {
2865        support::child(&self.syntax)
2866    }
2867    #[inline]
2868    pub fn path(&self) -> Option<Path> {
2869        support::child(&self.syntax)
2870    }
2871    #[inline]
2872    pub fn using_method(&self) -> Option<UsingMethod> {
2873        support::child(&self.syntax)
2874    }
2875    #[inline]
2876    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2877        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2878    }
2879    #[inline]
2880    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2881        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2882    }
2883}
2884
2885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2886pub struct ClusterOn {
2887    pub(crate) syntax: SyntaxNode,
2888}
2889impl ClusterOn {
2890    #[inline]
2891    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2892        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2893    }
2894    #[inline]
2895    pub fn on_token(&self) -> Option<SyntaxToken> {
2896        support::token(&self.syntax, SyntaxKind::ON_KW)
2897    }
2898}
2899
2900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2901pub struct Collate {
2902    pub(crate) syntax: SyntaxNode,
2903}
2904impl Collate {
2905    #[inline]
2906    pub fn path(&self) -> Option<Path> {
2907        support::child(&self.syntax)
2908    }
2909    #[inline]
2910    pub fn collate_token(&self) -> Option<SyntaxToken> {
2911        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2912    }
2913}
2914
2915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2916pub struct CollationForFn {
2917    pub(crate) syntax: SyntaxNode,
2918}
2919impl CollationForFn {
2920    #[inline]
2921    pub fn expr(&self) -> Option<Expr> {
2922        support::child(&self.syntax)
2923    }
2924    #[inline]
2925    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2926        support::token(&self.syntax, SyntaxKind::L_PAREN)
2927    }
2928    #[inline]
2929    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2930        support::token(&self.syntax, SyntaxKind::R_PAREN)
2931    }
2932    #[inline]
2933    pub fn collation_token(&self) -> Option<SyntaxToken> {
2934        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2935    }
2936    #[inline]
2937    pub fn for_token(&self) -> Option<SyntaxToken> {
2938        support::token(&self.syntax, SyntaxKind::FOR_KW)
2939    }
2940}
2941
2942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2943pub struct ColonColon {
2944    pub(crate) syntax: SyntaxNode,
2945}
2946impl ColonColon {
2947    #[inline]
2948    pub fn colon_token(&self) -> Option<SyntaxToken> {
2949        support::token(&self.syntax, SyntaxKind::COLON)
2950    }
2951}
2952
2953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2954pub struct ColonEq {
2955    pub(crate) syntax: SyntaxNode,
2956}
2957impl ColonEq {
2958    #[inline]
2959    pub fn colon_token(&self) -> Option<SyntaxToken> {
2960        support::token(&self.syntax, SyntaxKind::COLON)
2961    }
2962    #[inline]
2963    pub fn eq_token(&self) -> Option<SyntaxToken> {
2964        support::token(&self.syntax, SyntaxKind::EQ)
2965    }
2966}
2967
2968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2969pub struct Column {
2970    pub(crate) syntax: SyntaxNode,
2971}
2972impl Column {
2973    #[inline]
2974    pub fn collate(&self) -> Option<Collate> {
2975        support::child(&self.syntax)
2976    }
2977    #[inline]
2978    pub fn compression_method(&self) -> Option<CompressionMethod> {
2979        support::child(&self.syntax)
2980    }
2981    #[inline]
2982    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2983        support::children(&self.syntax)
2984    }
2985    #[inline]
2986    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2987        support::child(&self.syntax)
2988    }
2989    #[inline]
2990    pub fn enforced(&self) -> Option<Enforced> {
2991        support::child(&self.syntax)
2992    }
2993    #[inline]
2994    pub fn index_expr(&self) -> Option<IndexExpr> {
2995        support::child(&self.syntax)
2996    }
2997    #[inline]
2998    pub fn initially_deferred_constraint_option(
2999        &self,
3000    ) -> Option<InitiallyDeferredConstraintOption> {
3001        support::child(&self.syntax)
3002    }
3003    #[inline]
3004    pub fn initially_immediate_constraint_option(
3005        &self,
3006    ) -> Option<InitiallyImmediateConstraintOption> {
3007        support::child(&self.syntax)
3008    }
3009    #[inline]
3010    pub fn name(&self) -> Option<Name> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn name_ref(&self) -> Option<NameRef> {
3015        support::child(&self.syntax)
3016    }
3017    #[inline]
3018    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn not_enforced(&self) -> Option<NotEnforced> {
3023        support::child(&self.syntax)
3024    }
3025    #[inline]
3026    pub fn storage(&self) -> Option<Storage> {
3027        support::child(&self.syntax)
3028    }
3029    #[inline]
3030    pub fn ty(&self) -> Option<Type> {
3031        support::child(&self.syntax)
3032    }
3033    #[inline]
3034    pub fn with_options(&self) -> Option<WithOptions> {
3035        support::child(&self.syntax)
3036    }
3037    #[inline]
3038    pub fn period_token(&self) -> Option<SyntaxToken> {
3039        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3040    }
3041}
3042
3043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3044pub struct ColumnList {
3045    pub(crate) syntax: SyntaxNode,
3046}
3047impl ColumnList {
3048    #[inline]
3049    pub fn columns(&self) -> AstChildren<Column> {
3050        support::children(&self.syntax)
3051    }
3052    #[inline]
3053    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3054        support::token(&self.syntax, SyntaxKind::L_PAREN)
3055    }
3056    #[inline]
3057    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3058        support::token(&self.syntax, SyntaxKind::R_PAREN)
3059    }
3060}
3061
3062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3063pub struct CommentOn {
3064    pub(crate) syntax: SyntaxNode,
3065}
3066impl CommentOn {
3067    #[inline]
3068    pub fn aggregate(&self) -> Option<Aggregate> {
3069        support::child(&self.syntax)
3070    }
3071    #[inline]
3072    pub fn cast_sig(&self) -> Option<CastSig> {
3073        support::child(&self.syntax)
3074    }
3075    #[inline]
3076    pub fn function_sig(&self) -> Option<FunctionSig> {
3077        support::child(&self.syntax)
3078    }
3079    #[inline]
3080    pub fn literal(&self) -> Option<Literal> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn name_ref(&self) -> Option<NameRef> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn op(&self) -> Option<Op> {
3089        support::child(&self.syntax)
3090    }
3091    #[inline]
3092    pub fn path(&self) -> Option<Path> {
3093        support::child(&self.syntax)
3094    }
3095    #[inline]
3096    pub fn ty(&self) -> Option<Type> {
3097        support::child(&self.syntax)
3098    }
3099    #[inline]
3100    pub fn using_method(&self) -> Option<UsingMethod> {
3101        support::child(&self.syntax)
3102    }
3103    #[inline]
3104    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::L_PAREN)
3106    }
3107    #[inline]
3108    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::R_PAREN)
3110    }
3111    #[inline]
3112    pub fn comma_token(&self) -> Option<SyntaxToken> {
3113        support::token(&self.syntax, SyntaxKind::COMMA)
3114    }
3115    #[inline]
3116    pub fn access_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3118    }
3119    #[inline]
3120    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3121        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3122    }
3123    #[inline]
3124    pub fn cast_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::CAST_KW)
3126    }
3127    #[inline]
3128    pub fn class_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3130    }
3131    #[inline]
3132    pub fn collation_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3134    }
3135    #[inline]
3136    pub fn column_token(&self) -> Option<SyntaxToken> {
3137        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3138    }
3139    #[inline]
3140    pub fn comment_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3142    }
3143    #[inline]
3144    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3146    }
3147    #[inline]
3148    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3149        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3150    }
3151    #[inline]
3152    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3153        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3154    }
3155    #[inline]
3156    pub fn data_token(&self) -> Option<SyntaxToken> {
3157        support::token(&self.syntax, SyntaxKind::DATA_KW)
3158    }
3159    #[inline]
3160    pub fn database_token(&self) -> Option<SyntaxToken> {
3161        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3162    }
3163    #[inline]
3164    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3165        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3166    }
3167    #[inline]
3168    pub fn domain_token(&self) -> Option<SyntaxToken> {
3169        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3170    }
3171    #[inline]
3172    pub fn event_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3174    }
3175    #[inline]
3176    pub fn extension_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3178    }
3179    #[inline]
3180    pub fn family_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3182    }
3183    #[inline]
3184    pub fn for_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::FOR_KW)
3186    }
3187    #[inline]
3188    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3190    }
3191    #[inline]
3192    pub fn function_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3194    }
3195    #[inline]
3196    pub fn graph_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3198    }
3199    #[inline]
3200    pub fn index_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3202    }
3203    #[inline]
3204    pub fn is_token(&self) -> Option<SyntaxToken> {
3205        support::token(&self.syntax, SyntaxKind::IS_KW)
3206    }
3207    #[inline]
3208    pub fn language_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3210    }
3211    #[inline]
3212    pub fn large_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3214    }
3215    #[inline]
3216    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3218    }
3219    #[inline]
3220    pub fn method_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3222    }
3223    #[inline]
3224    pub fn null_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::NULL_KW)
3226    }
3227    #[inline]
3228    pub fn object_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3230    }
3231    #[inline]
3232    pub fn on_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::ON_KW)
3234    }
3235    #[inline]
3236    pub fn operator_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3238    }
3239    #[inline]
3240    pub fn parser_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3242    }
3243    #[inline]
3244    pub fn policy_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3246    }
3247    #[inline]
3248    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3249        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3250    }
3251    #[inline]
3252    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3254    }
3255    #[inline]
3256    pub fn property_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3258    }
3259    #[inline]
3260    pub fn publication_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3262    }
3263    #[inline]
3264    pub fn role_token(&self) -> Option<SyntaxToken> {
3265        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3266    }
3267    #[inline]
3268    pub fn routine_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3270    }
3271    #[inline]
3272    pub fn rule_token(&self) -> Option<SyntaxToken> {
3273        support::token(&self.syntax, SyntaxKind::RULE_KW)
3274    }
3275    #[inline]
3276    pub fn schema_token(&self) -> Option<SyntaxToken> {
3277        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3278    }
3279    #[inline]
3280    pub fn search_token(&self) -> Option<SyntaxToken> {
3281        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3282    }
3283    #[inline]
3284    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3285        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3286    }
3287    #[inline]
3288    pub fn server_token(&self) -> Option<SyntaxToken> {
3289        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3290    }
3291    #[inline]
3292    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3293        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3294    }
3295    #[inline]
3296    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3297        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3298    }
3299    #[inline]
3300    pub fn table_token(&self) -> Option<SyntaxToken> {
3301        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3302    }
3303    #[inline]
3304    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3305        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3306    }
3307    #[inline]
3308    pub fn template_token(&self) -> Option<SyntaxToken> {
3309        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3310    }
3311    #[inline]
3312    pub fn text_token(&self) -> Option<SyntaxToken> {
3313        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3314    }
3315    #[inline]
3316    pub fn transform_token(&self) -> Option<SyntaxToken> {
3317        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3318    }
3319    #[inline]
3320    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3321        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3322    }
3323    #[inline]
3324    pub fn type_token(&self) -> Option<SyntaxToken> {
3325        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3326    }
3327    #[inline]
3328    pub fn view_token(&self) -> Option<SyntaxToken> {
3329        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3330    }
3331    #[inline]
3332    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3333        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3334    }
3335}
3336
3337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3338pub struct Commit {
3339    pub(crate) syntax: SyntaxNode,
3340}
3341impl Commit {
3342    #[inline]
3343    pub fn literal(&self) -> Option<Literal> {
3344        support::child(&self.syntax)
3345    }
3346    #[inline]
3347    pub fn and_token(&self) -> Option<SyntaxToken> {
3348        support::token(&self.syntax, SyntaxKind::AND_KW)
3349    }
3350    #[inline]
3351    pub fn chain_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3353    }
3354    #[inline]
3355    pub fn commit_token(&self) -> Option<SyntaxToken> {
3356        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3357    }
3358    #[inline]
3359    pub fn no_token(&self) -> Option<SyntaxToken> {
3360        support::token(&self.syntax, SyntaxKind::NO_KW)
3361    }
3362    #[inline]
3363    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3364        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3365    }
3366    #[inline]
3367    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3368        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3369    }
3370    #[inline]
3371    pub fn work_token(&self) -> Option<SyntaxToken> {
3372        support::token(&self.syntax, SyntaxKind::WORK_KW)
3373    }
3374}
3375
3376#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3377pub struct CompoundSelect {
3378    pub(crate) syntax: SyntaxNode,
3379}
3380impl CompoundSelect {
3381    #[inline]
3382    pub fn all_token(&self) -> Option<SyntaxToken> {
3383        support::token(&self.syntax, SyntaxKind::ALL_KW)
3384    }
3385    #[inline]
3386    pub fn except_token(&self) -> Option<SyntaxToken> {
3387        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3388    }
3389    #[inline]
3390    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3391        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3392    }
3393    #[inline]
3394    pub fn union_token(&self) -> Option<SyntaxToken> {
3395        support::token(&self.syntax, SyntaxKind::UNION_KW)
3396    }
3397}
3398
3399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3400pub struct CompressionMethod {
3401    pub(crate) syntax: SyntaxNode,
3402}
3403impl CompressionMethod {
3404    #[inline]
3405    pub fn compression_token(&self) -> Option<SyntaxToken> {
3406        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3407    }
3408    #[inline]
3409    pub fn default_token(&self) -> Option<SyntaxToken> {
3410        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3411    }
3412    #[inline]
3413    pub fn ident_token(&self) -> Option<SyntaxToken> {
3414        support::token(&self.syntax, SyntaxKind::IDENT)
3415    }
3416}
3417
3418#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3419pub struct ConflictDoNothing {
3420    pub(crate) syntax: SyntaxNode,
3421}
3422impl ConflictDoNothing {
3423    #[inline]
3424    pub fn do_token(&self) -> Option<SyntaxToken> {
3425        support::token(&self.syntax, SyntaxKind::DO_KW)
3426    }
3427    #[inline]
3428    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3429        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3430    }
3431}
3432
3433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3434pub struct ConflictDoSelect {
3435    pub(crate) syntax: SyntaxNode,
3436}
3437impl ConflictDoSelect {
3438    #[inline]
3439    pub fn locking_clause(&self) -> Option<LockingClause> {
3440        support::child(&self.syntax)
3441    }
3442    #[inline]
3443    pub fn where_clause(&self) -> Option<WhereClause> {
3444        support::child(&self.syntax)
3445    }
3446    #[inline]
3447    pub fn do_token(&self) -> Option<SyntaxToken> {
3448        support::token(&self.syntax, SyntaxKind::DO_KW)
3449    }
3450    #[inline]
3451    pub fn select_token(&self) -> Option<SyntaxToken> {
3452        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3453    }
3454}
3455
3456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3457pub struct ConflictDoUpdateSet {
3458    pub(crate) syntax: SyntaxNode,
3459}
3460impl ConflictDoUpdateSet {
3461    #[inline]
3462    pub fn set_clause(&self) -> Option<SetClause> {
3463        support::child(&self.syntax)
3464    }
3465    #[inline]
3466    pub fn where_clause(&self) -> Option<WhereClause> {
3467        support::child(&self.syntax)
3468    }
3469    #[inline]
3470    pub fn do_token(&self) -> Option<SyntaxToken> {
3471        support::token(&self.syntax, SyntaxKind::DO_KW)
3472    }
3473    #[inline]
3474    pub fn update_token(&self) -> Option<SyntaxToken> {
3475        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3476    }
3477}
3478
3479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3480pub struct ConflictIndexItem {
3481    pub(crate) syntax: SyntaxNode,
3482}
3483impl ConflictIndexItem {
3484    #[inline]
3485    pub fn collate(&self) -> Option<Collate> {
3486        support::child(&self.syntax)
3487    }
3488    #[inline]
3489    pub fn expr(&self) -> Option<Expr> {
3490        support::child(&self.syntax)
3491    }
3492    #[inline]
3493    pub fn ident_token(&self) -> Option<SyntaxToken> {
3494        support::token(&self.syntax, SyntaxKind::IDENT)
3495    }
3496}
3497
3498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3499pub struct ConflictIndexItemList {
3500    pub(crate) syntax: SyntaxNode,
3501}
3502impl ConflictIndexItemList {
3503    #[inline]
3504    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3505        support::children(&self.syntax)
3506    }
3507    #[inline]
3508    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3509        support::token(&self.syntax, SyntaxKind::L_PAREN)
3510    }
3511    #[inline]
3512    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3513        support::token(&self.syntax, SyntaxKind::R_PAREN)
3514    }
3515}
3516
3517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3518pub struct ConflictOnConstraint {
3519    pub(crate) syntax: SyntaxNode,
3520}
3521impl ConflictOnConstraint {
3522    #[inline]
3523    pub fn name_ref(&self) -> Option<NameRef> {
3524        support::child(&self.syntax)
3525    }
3526    #[inline]
3527    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3528        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3529    }
3530    #[inline]
3531    pub fn on_token(&self) -> Option<SyntaxToken> {
3532        support::token(&self.syntax, SyntaxKind::ON_KW)
3533    }
3534}
3535
3536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3537pub struct ConflictOnIndex {
3538    pub(crate) syntax: SyntaxNode,
3539}
3540impl ConflictOnIndex {
3541    #[inline]
3542    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3543        support::child(&self.syntax)
3544    }
3545    #[inline]
3546    pub fn where_clause(&self) -> Option<WhereClause> {
3547        support::child(&self.syntax)
3548    }
3549}
3550
3551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3552pub struct ConstraintExclusion {
3553    pub(crate) syntax: SyntaxNode,
3554}
3555impl ConstraintExclusion {
3556    #[inline]
3557    pub fn expr(&self) -> Option<Expr> {
3558        support::child(&self.syntax)
3559    }
3560    #[inline]
3561    pub fn op(&self) -> Option<Op> {
3562        support::child(&self.syntax)
3563    }
3564    #[inline]
3565    pub fn with_token(&self) -> Option<SyntaxToken> {
3566        support::token(&self.syntax, SyntaxKind::WITH_KW)
3567    }
3568}
3569
3570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3571pub struct ConstraintExclusionList {
3572    pub(crate) syntax: SyntaxNode,
3573}
3574impl ConstraintExclusionList {
3575    #[inline]
3576    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3577        support::children(&self.syntax)
3578    }
3579    #[inline]
3580    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3581        support::token(&self.syntax, SyntaxKind::L_PAREN)
3582    }
3583    #[inline]
3584    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3585        support::token(&self.syntax, SyntaxKind::R_PAREN)
3586    }
3587}
3588
3589#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3590pub struct ConstraintIncludeClause {
3591    pub(crate) syntax: SyntaxNode,
3592}
3593impl ConstraintIncludeClause {
3594    #[inline]
3595    pub fn include_token(&self) -> Option<SyntaxToken> {
3596        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3597    }
3598}
3599
3600#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3601pub struct ConstraintIndexMethod {
3602    pub(crate) syntax: SyntaxNode,
3603}
3604impl ConstraintIndexMethod {
3605    #[inline]
3606    pub fn using_token(&self) -> Option<SyntaxToken> {
3607        support::token(&self.syntax, SyntaxKind::USING_KW)
3608    }
3609}
3610
3611#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3612pub struct ConstraintIndexTablespace {
3613    pub(crate) syntax: SyntaxNode,
3614}
3615impl ConstraintIndexTablespace {
3616    #[inline]
3617    pub fn name_ref(&self) -> Option<NameRef> {
3618        support::child(&self.syntax)
3619    }
3620    #[inline]
3621    pub fn index_token(&self) -> Option<SyntaxToken> {
3622        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3623    }
3624    #[inline]
3625    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3626        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3627    }
3628    #[inline]
3629    pub fn using_token(&self) -> Option<SyntaxToken> {
3630        support::token(&self.syntax, SyntaxKind::USING_KW)
3631    }
3632}
3633
3634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3635pub struct ConstraintName {
3636    pub(crate) syntax: SyntaxNode,
3637}
3638impl ConstraintName {
3639    #[inline]
3640    pub fn name(&self) -> Option<Name> {
3641        support::child(&self.syntax)
3642    }
3643    #[inline]
3644    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3645        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3646    }
3647}
3648
3649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3650pub struct Copy {
3651    pub(crate) syntax: SyntaxNode,
3652}
3653impl Copy {
3654    #[inline]
3655    pub fn column_list(&self) -> Option<ColumnList> {
3656        support::child(&self.syntax)
3657    }
3658    #[inline]
3659    pub fn literal(&self) -> Option<Literal> {
3660        support::child(&self.syntax)
3661    }
3662    #[inline]
3663    pub fn path(&self) -> Option<Path> {
3664        support::child(&self.syntax)
3665    }
3666    #[inline]
3667    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3668        support::child(&self.syntax)
3669    }
3670    #[inline]
3671    pub fn where_clause(&self) -> Option<WhereClause> {
3672        support::child(&self.syntax)
3673    }
3674    #[inline]
3675    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3676        support::token(&self.syntax, SyntaxKind::L_PAREN)
3677    }
3678    #[inline]
3679    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3680        support::token(&self.syntax, SyntaxKind::R_PAREN)
3681    }
3682    #[inline]
3683    pub fn binary_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3685    }
3686    #[inline]
3687    pub fn copy_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::COPY_KW)
3689    }
3690    #[inline]
3691    pub fn from_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::FROM_KW)
3693    }
3694    #[inline]
3695    pub fn program_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3697    }
3698    #[inline]
3699    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3700        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3701    }
3702    #[inline]
3703    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3704        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3705    }
3706    #[inline]
3707    pub fn to_token(&self) -> Option<SyntaxToken> {
3708        support::token(&self.syntax, SyntaxKind::TO_KW)
3709    }
3710    #[inline]
3711    pub fn with_token(&self) -> Option<SyntaxToken> {
3712        support::token(&self.syntax, SyntaxKind::WITH_KW)
3713    }
3714}
3715
3716#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3717pub struct CopyOption {
3718    pub(crate) syntax: SyntaxNode,
3719}
3720impl CopyOption {
3721    #[inline]
3722    pub fn name(&self) -> Option<Name> {
3723        support::child(&self.syntax)
3724    }
3725}
3726
3727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3728pub struct CopyOptionList {
3729    pub(crate) syntax: SyntaxNode,
3730}
3731impl CopyOptionList {
3732    #[inline]
3733    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3734        support::children(&self.syntax)
3735    }
3736    #[inline]
3737    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3738        support::token(&self.syntax, SyntaxKind::L_PAREN)
3739    }
3740    #[inline]
3741    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3742        support::token(&self.syntax, SyntaxKind::R_PAREN)
3743    }
3744}
3745
3746#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3747pub struct CostFuncOption {
3748    pub(crate) syntax: SyntaxNode,
3749}
3750impl CostFuncOption {
3751    #[inline]
3752    pub fn cost_token(&self) -> Option<SyntaxToken> {
3753        support::token(&self.syntax, SyntaxKind::COST_KW)
3754    }
3755}
3756
3757#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3758pub struct CreateAccessMethod {
3759    pub(crate) syntax: SyntaxNode,
3760}
3761impl CreateAccessMethod {
3762    #[inline]
3763    pub fn handler_clause(&self) -> Option<HandlerClause> {
3764        support::child(&self.syntax)
3765    }
3766    #[inline]
3767    pub fn name(&self) -> Option<Path> {
3768        support::child(&self.syntax)
3769    }
3770    #[inline]
3771    pub fn access_token(&self) -> Option<SyntaxToken> {
3772        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3773    }
3774    #[inline]
3775    pub fn create_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3777    }
3778    #[inline]
3779    pub fn index_token(&self) -> Option<SyntaxToken> {
3780        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3781    }
3782    #[inline]
3783    pub fn method_token(&self) -> Option<SyntaxToken> {
3784        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3785    }
3786    #[inline]
3787    pub fn table_token(&self) -> Option<SyntaxToken> {
3788        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3789    }
3790    #[inline]
3791    pub fn type_token(&self) -> Option<SyntaxToken> {
3792        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3793    }
3794}
3795
3796#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3797pub struct CreateAggregate {
3798    pub(crate) syntax: SyntaxNode,
3799}
3800impl CreateAggregate {
3801    #[inline]
3802    pub fn or_replace(&self) -> Option<OrReplace> {
3803        support::child(&self.syntax)
3804    }
3805    #[inline]
3806    pub fn param_list(&self) -> Option<ParamList> {
3807        support::child(&self.syntax)
3808    }
3809    #[inline]
3810    pub fn path(&self) -> Option<Path> {
3811        support::child(&self.syntax)
3812    }
3813    #[inline]
3814    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3815        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3816    }
3817    #[inline]
3818    pub fn create_token(&self) -> Option<SyntaxToken> {
3819        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3820    }
3821}
3822
3823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3824pub struct CreateCast {
3825    pub(crate) syntax: SyntaxNode,
3826}
3827impl CreateCast {
3828    #[inline]
3829    pub fn cast_sig(&self) -> Option<CastSig> {
3830        support::child(&self.syntax)
3831    }
3832    #[inline]
3833    pub fn function_sig(&self) -> Option<FunctionSig> {
3834        support::child(&self.syntax)
3835    }
3836    #[inline]
3837    pub fn as_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::AS_KW)
3839    }
3840    #[inline]
3841    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3843    }
3844    #[inline]
3845    pub fn cast_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::CAST_KW)
3847    }
3848    #[inline]
3849    pub fn create_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3851    }
3852    #[inline]
3853    pub fn function_token(&self) -> Option<SyntaxToken> {
3854        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3855    }
3856    #[inline]
3857    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3858        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3859    }
3860    #[inline]
3861    pub fn inout_token(&self) -> Option<SyntaxToken> {
3862        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3863    }
3864    #[inline]
3865    pub fn with_token(&self) -> Option<SyntaxToken> {
3866        support::token(&self.syntax, SyntaxKind::WITH_KW)
3867    }
3868    #[inline]
3869    pub fn without_token(&self) -> Option<SyntaxToken> {
3870        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3871    }
3872}
3873
3874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3875pub struct CreateCollation {
3876    pub(crate) syntax: SyntaxNode,
3877}
3878impl CreateCollation {
3879    #[inline]
3880    pub fn path(&self) -> Option<Path> {
3881        support::child(&self.syntax)
3882    }
3883    #[inline]
3884    pub fn collation_token(&self) -> Option<SyntaxToken> {
3885        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3886    }
3887    #[inline]
3888    pub fn create_token(&self) -> Option<SyntaxToken> {
3889        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3890    }
3891}
3892
3893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3894pub struct CreateConversion {
3895    pub(crate) syntax: SyntaxNode,
3896}
3897impl CreateConversion {
3898    #[inline]
3899    pub fn literal(&self) -> Option<Literal> {
3900        support::child(&self.syntax)
3901    }
3902    #[inline]
3903    pub fn path(&self) -> Option<Path> {
3904        support::child(&self.syntax)
3905    }
3906    #[inline]
3907    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3908        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3909    }
3910    #[inline]
3911    pub fn create_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3913    }
3914    #[inline]
3915    pub fn default_token(&self) -> Option<SyntaxToken> {
3916        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3917    }
3918    #[inline]
3919    pub fn for_token(&self) -> Option<SyntaxToken> {
3920        support::token(&self.syntax, SyntaxKind::FOR_KW)
3921    }
3922    #[inline]
3923    pub fn from_token(&self) -> Option<SyntaxToken> {
3924        support::token(&self.syntax, SyntaxKind::FROM_KW)
3925    }
3926    #[inline]
3927    pub fn to_token(&self) -> Option<SyntaxToken> {
3928        support::token(&self.syntax, SyntaxKind::TO_KW)
3929    }
3930}
3931
3932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3933pub struct CreateDatabase {
3934    pub(crate) syntax: SyntaxNode,
3935}
3936impl CreateDatabase {
3937    #[inline]
3938    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3939        support::child(&self.syntax)
3940    }
3941    #[inline]
3942    pub fn name(&self) -> Option<Name> {
3943        support::child(&self.syntax)
3944    }
3945    #[inline]
3946    pub fn create_token(&self) -> Option<SyntaxToken> {
3947        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3948    }
3949    #[inline]
3950    pub fn database_token(&self) -> Option<SyntaxToken> {
3951        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3952    }
3953}
3954
3955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3956pub struct CreateDatabaseOption {
3957    pub(crate) syntax: SyntaxNode,
3958}
3959impl CreateDatabaseOption {
3960    #[inline]
3961    pub fn literal(&self) -> Option<Literal> {
3962        support::child(&self.syntax)
3963    }
3964    #[inline]
3965    pub fn eq_token(&self) -> Option<SyntaxToken> {
3966        support::token(&self.syntax, SyntaxKind::EQ)
3967    }
3968    #[inline]
3969    pub fn connection_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3971    }
3972    #[inline]
3973    pub fn default_token(&self) -> Option<SyntaxToken> {
3974        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3975    }
3976    #[inline]
3977    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3978        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3979    }
3980    #[inline]
3981    pub fn ident_token(&self) -> Option<SyntaxToken> {
3982        support::token(&self.syntax, SyntaxKind::IDENT)
3983    }
3984    #[inline]
3985    pub fn limit_token(&self) -> Option<SyntaxToken> {
3986        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3987    }
3988    #[inline]
3989    pub fn owner_token(&self) -> Option<SyntaxToken> {
3990        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3991    }
3992    #[inline]
3993    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3994        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3995    }
3996    #[inline]
3997    pub fn template_token(&self) -> Option<SyntaxToken> {
3998        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3999    }
4000}
4001
4002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4003pub struct CreateDatabaseOptionList {
4004    pub(crate) syntax: SyntaxNode,
4005}
4006impl CreateDatabaseOptionList {
4007    #[inline]
4008    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
4009        support::children(&self.syntax)
4010    }
4011    #[inline]
4012    pub fn with_token(&self) -> Option<SyntaxToken> {
4013        support::token(&self.syntax, SyntaxKind::WITH_KW)
4014    }
4015}
4016
4017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4018pub struct CreateDomain {
4019    pub(crate) syntax: SyntaxNode,
4020}
4021impl CreateDomain {
4022    #[inline]
4023    pub fn collate(&self) -> Option<Collate> {
4024        support::child(&self.syntax)
4025    }
4026    #[inline]
4027    pub fn constraints(&self) -> AstChildren<Constraint> {
4028        support::children(&self.syntax)
4029    }
4030    #[inline]
4031    pub fn path(&self) -> Option<Path> {
4032        support::child(&self.syntax)
4033    }
4034    #[inline]
4035    pub fn ty(&self) -> Option<Type> {
4036        support::child(&self.syntax)
4037    }
4038    #[inline]
4039    pub fn as_token(&self) -> Option<SyntaxToken> {
4040        support::token(&self.syntax, SyntaxKind::AS_KW)
4041    }
4042    #[inline]
4043    pub fn create_token(&self) -> Option<SyntaxToken> {
4044        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4045    }
4046    #[inline]
4047    pub fn domain_token(&self) -> Option<SyntaxToken> {
4048        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4049    }
4050}
4051
4052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4053pub struct CreateEventTrigger {
4054    pub(crate) syntax: SyntaxNode,
4055}
4056impl CreateEventTrigger {
4057    #[inline]
4058    pub fn call_expr(&self) -> Option<CallExpr> {
4059        support::child(&self.syntax)
4060    }
4061    #[inline]
4062    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4063        support::child(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn name(&self) -> Option<Name> {
4067        support::child(&self.syntax)
4068    }
4069    #[inline]
4070    pub fn name_ref(&self) -> Option<NameRef> {
4071        support::child(&self.syntax)
4072    }
4073    #[inline]
4074    pub fn create_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4076    }
4077    #[inline]
4078    pub fn event_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4080    }
4081    #[inline]
4082    pub fn execute_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4084    }
4085    #[inline]
4086    pub fn function_token(&self) -> Option<SyntaxToken> {
4087        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4088    }
4089    #[inline]
4090    pub fn on_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::ON_KW)
4092    }
4093    #[inline]
4094    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4095        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4096    }
4097    #[inline]
4098    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4099        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4100    }
4101}
4102
4103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4104pub struct CreateExtension {
4105    pub(crate) syntax: SyntaxNode,
4106}
4107impl CreateExtension {
4108    #[inline]
4109    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4110        support::child(&self.syntax)
4111    }
4112    #[inline]
4113    pub fn name(&self) -> Option<Name> {
4114        support::child(&self.syntax)
4115    }
4116    #[inline]
4117    pub fn create_token(&self) -> Option<SyntaxToken> {
4118        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4119    }
4120    #[inline]
4121    pub fn extension_token(&self) -> Option<SyntaxToken> {
4122        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4123    }
4124}
4125
4126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4127pub struct CreateForeignDataWrapper {
4128    pub(crate) syntax: SyntaxNode,
4129}
4130impl CreateForeignDataWrapper {
4131    #[inline]
4132    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4133        support::child(&self.syntax)
4134    }
4135    #[inline]
4136    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4137        support::child(&self.syntax)
4138    }
4139    #[inline]
4140    pub fn name(&self) -> Option<Name> {
4141        support::child(&self.syntax)
4142    }
4143    #[inline]
4144    pub fn create_token(&self) -> Option<SyntaxToken> {
4145        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4146    }
4147    #[inline]
4148    pub fn data_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::DATA_KW)
4150    }
4151    #[inline]
4152    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4154    }
4155    #[inline]
4156    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4157        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4158    }
4159}
4160
4161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4162pub struct CreateForeignTable {
4163    pub(crate) syntax: SyntaxNode,
4164}
4165impl CreateForeignTable {
4166    #[inline]
4167    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4168        support::child(&self.syntax)
4169    }
4170    #[inline]
4171    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn inherits(&self) -> Option<Inherits> {
4176        support::child(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn partition_of(&self) -> Option<PartitionOf> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn partition_type(&self) -> Option<PartitionType> {
4184        support::child(&self.syntax)
4185    }
4186    #[inline]
4187    pub fn path(&self) -> Option<Path> {
4188        support::child(&self.syntax)
4189    }
4190    #[inline]
4191    pub fn server_name(&self) -> Option<ServerName> {
4192        support::child(&self.syntax)
4193    }
4194    #[inline]
4195    pub fn table_arg_list(&self) -> Option<TableArgList> {
4196        support::child(&self.syntax)
4197    }
4198    #[inline]
4199    pub fn create_token(&self) -> Option<SyntaxToken> {
4200        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4201    }
4202    #[inline]
4203    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4204        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4205    }
4206    #[inline]
4207    pub fn table_token(&self) -> Option<SyntaxToken> {
4208        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4209    }
4210}
4211
4212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4213pub struct CreateFunction {
4214    pub(crate) syntax: SyntaxNode,
4215}
4216impl CreateFunction {
4217    #[inline]
4218    pub fn option_list(&self) -> Option<FuncOptionList> {
4219        support::child(&self.syntax)
4220    }
4221    #[inline]
4222    pub fn or_replace(&self) -> Option<OrReplace> {
4223        support::child(&self.syntax)
4224    }
4225    #[inline]
4226    pub fn param_list(&self) -> Option<ParamList> {
4227        support::child(&self.syntax)
4228    }
4229    #[inline]
4230    pub fn path(&self) -> Option<Path> {
4231        support::child(&self.syntax)
4232    }
4233    #[inline]
4234    pub fn ret_type(&self) -> Option<RetType> {
4235        support::child(&self.syntax)
4236    }
4237    #[inline]
4238    pub fn create_token(&self) -> Option<SyntaxToken> {
4239        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4240    }
4241    #[inline]
4242    pub fn function_token(&self) -> Option<SyntaxToken> {
4243        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4244    }
4245}
4246
4247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4248pub struct CreateGroup {
4249    pub(crate) syntax: SyntaxNode,
4250}
4251impl CreateGroup {
4252    #[inline]
4253    pub fn name(&self) -> Option<Name> {
4254        support::child(&self.syntax)
4255    }
4256    #[inline]
4257    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4258        support::child(&self.syntax)
4259    }
4260    #[inline]
4261    pub fn create_token(&self) -> Option<SyntaxToken> {
4262        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4263    }
4264    #[inline]
4265    pub fn group_token(&self) -> Option<SyntaxToken> {
4266        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4267    }
4268}
4269
4270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4271pub struct CreateIndex {
4272    pub(crate) syntax: SyntaxNode,
4273}
4274impl CreateIndex {
4275    #[inline]
4276    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4277        support::child(&self.syntax)
4278    }
4279    #[inline]
4280    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4281        support::child(&self.syntax)
4282    }
4283    #[inline]
4284    pub fn name(&self) -> Option<Name> {
4285        support::child(&self.syntax)
4286    }
4287    #[inline]
4288    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4289        support::child(&self.syntax)
4290    }
4291    #[inline]
4292    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4293        support::child(&self.syntax)
4294    }
4295    #[inline]
4296    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4297        support::child(&self.syntax)
4298    }
4299    #[inline]
4300    pub fn relation_name(&self) -> Option<RelationName> {
4301        support::child(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn tablespace(&self) -> Option<Tablespace> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn using_method(&self) -> Option<UsingMethod> {
4309        support::child(&self.syntax)
4310    }
4311    #[inline]
4312    pub fn where_clause(&self) -> Option<WhereClause> {
4313        support::child(&self.syntax)
4314    }
4315    #[inline]
4316    pub fn with_params(&self) -> Option<WithParams> {
4317        support::child(&self.syntax)
4318    }
4319    #[inline]
4320    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4321        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4322    }
4323    #[inline]
4324    pub fn create_token(&self) -> Option<SyntaxToken> {
4325        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4326    }
4327    #[inline]
4328    pub fn index_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4330    }
4331    #[inline]
4332    pub fn on_token(&self) -> Option<SyntaxToken> {
4333        support::token(&self.syntax, SyntaxKind::ON_KW)
4334    }
4335    #[inline]
4336    pub fn unique_token(&self) -> Option<SyntaxToken> {
4337        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4338    }
4339}
4340
4341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4342pub struct CreateLanguage {
4343    pub(crate) syntax: SyntaxNode,
4344}
4345impl CreateLanguage {
4346    #[inline]
4347    pub fn name(&self) -> Option<Name> {
4348        support::child(&self.syntax)
4349    }
4350    #[inline]
4351    pub fn or_replace(&self) -> Option<OrReplace> {
4352        support::child(&self.syntax)
4353    }
4354    #[inline]
4355    pub fn path(&self) -> Option<Path> {
4356        support::child(&self.syntax)
4357    }
4358    #[inline]
4359    pub fn create_token(&self) -> Option<SyntaxToken> {
4360        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4361    }
4362    #[inline]
4363    pub fn handler_token(&self) -> Option<SyntaxToken> {
4364        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4365    }
4366    #[inline]
4367    pub fn inline_token(&self) -> Option<SyntaxToken> {
4368        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4369    }
4370    #[inline]
4371    pub fn language_token(&self) -> Option<SyntaxToken> {
4372        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4373    }
4374    #[inline]
4375    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4376        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4377    }
4378    #[inline]
4379    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4380        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4381    }
4382    #[inline]
4383    pub fn validator_token(&self) -> Option<SyntaxToken> {
4384        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4385    }
4386}
4387
4388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4389pub struct CreateMaterializedView {
4390    pub(crate) syntax: SyntaxNode,
4391}
4392impl CreateMaterializedView {
4393    #[inline]
4394    pub fn column_list(&self) -> Option<ColumnList> {
4395        support::child(&self.syntax)
4396    }
4397    #[inline]
4398    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4399        support::child(&self.syntax)
4400    }
4401    #[inline]
4402    pub fn path(&self) -> Option<Path> {
4403        support::child(&self.syntax)
4404    }
4405    #[inline]
4406    pub fn query(&self) -> Option<SelectVariant> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn tablespace(&self) -> Option<Tablespace> {
4411        support::child(&self.syntax)
4412    }
4413    #[inline]
4414    pub fn using_method(&self) -> Option<UsingMethod> {
4415        support::child(&self.syntax)
4416    }
4417    #[inline]
4418    pub fn with_data(&self) -> Option<WithData> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn with_no_data(&self) -> Option<WithNoData> {
4423        support::child(&self.syntax)
4424    }
4425    #[inline]
4426    pub fn with_params(&self) -> Option<WithParams> {
4427        support::child(&self.syntax)
4428    }
4429    #[inline]
4430    pub fn as_token(&self) -> Option<SyntaxToken> {
4431        support::token(&self.syntax, SyntaxKind::AS_KW)
4432    }
4433    #[inline]
4434    pub fn create_token(&self) -> Option<SyntaxToken> {
4435        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4436    }
4437    #[inline]
4438    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4439        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4440    }
4441    #[inline]
4442    pub fn view_token(&self) -> Option<SyntaxToken> {
4443        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4444    }
4445}
4446
4447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4448pub struct CreateOperator {
4449    pub(crate) syntax: SyntaxNode,
4450}
4451impl CreateOperator {
4452    #[inline]
4453    pub fn attribute_list(&self) -> Option<AttributeList> {
4454        support::child(&self.syntax)
4455    }
4456    #[inline]
4457    pub fn op(&self) -> Option<Op> {
4458        support::child(&self.syntax)
4459    }
4460    #[inline]
4461    pub fn path(&self) -> Option<Path> {
4462        support::child(&self.syntax)
4463    }
4464    #[inline]
4465    pub fn create_token(&self) -> Option<SyntaxToken> {
4466        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4467    }
4468    #[inline]
4469    pub fn operator_token(&self) -> Option<SyntaxToken> {
4470        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4471    }
4472}
4473
4474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4475pub struct CreateOperatorClass {
4476    pub(crate) syntax: SyntaxNode,
4477}
4478impl CreateOperatorClass {
4479    #[inline]
4480    pub fn name_ref(&self) -> Option<NameRef> {
4481        support::child(&self.syntax)
4482    }
4483    #[inline]
4484    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4485        support::child(&self.syntax)
4486    }
4487    #[inline]
4488    pub fn path(&self) -> Option<Path> {
4489        support::child(&self.syntax)
4490    }
4491    #[inline]
4492    pub fn ty(&self) -> Option<Type> {
4493        support::child(&self.syntax)
4494    }
4495    #[inline]
4496    pub fn as_token(&self) -> Option<SyntaxToken> {
4497        support::token(&self.syntax, SyntaxKind::AS_KW)
4498    }
4499    #[inline]
4500    pub fn class_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4502    }
4503    #[inline]
4504    pub fn create_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4506    }
4507    #[inline]
4508    pub fn default_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4510    }
4511    #[inline]
4512    pub fn family_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4514    }
4515    #[inline]
4516    pub fn for_token(&self) -> Option<SyntaxToken> {
4517        support::token(&self.syntax, SyntaxKind::FOR_KW)
4518    }
4519    #[inline]
4520    pub fn operator_token(&self) -> Option<SyntaxToken> {
4521        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4522    }
4523    #[inline]
4524    pub fn type_token(&self) -> Option<SyntaxToken> {
4525        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4526    }
4527    #[inline]
4528    pub fn using_token(&self) -> Option<SyntaxToken> {
4529        support::token(&self.syntax, SyntaxKind::USING_KW)
4530    }
4531}
4532
4533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4534pub struct CreateOperatorFamily {
4535    pub(crate) syntax: SyntaxNode,
4536}
4537impl CreateOperatorFamily {
4538    #[inline]
4539    pub fn name_ref(&self) -> Option<NameRef> {
4540        support::child(&self.syntax)
4541    }
4542    #[inline]
4543    pub fn path(&self) -> Option<Path> {
4544        support::child(&self.syntax)
4545    }
4546    #[inline]
4547    pub fn create_token(&self) -> Option<SyntaxToken> {
4548        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4549    }
4550    #[inline]
4551    pub fn family_token(&self) -> Option<SyntaxToken> {
4552        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4553    }
4554    #[inline]
4555    pub fn operator_token(&self) -> Option<SyntaxToken> {
4556        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4557    }
4558    #[inline]
4559    pub fn using_token(&self) -> Option<SyntaxToken> {
4560        support::token(&self.syntax, SyntaxKind::USING_KW)
4561    }
4562}
4563
4564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4565pub struct CreatePolicy {
4566    pub(crate) syntax: SyntaxNode,
4567}
4568impl CreatePolicy {
4569    #[inline]
4570    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4571        support::child(&self.syntax)
4572    }
4573    #[inline]
4574    pub fn name(&self) -> Option<Name> {
4575        support::child(&self.syntax)
4576    }
4577    #[inline]
4578    pub fn on_table(&self) -> Option<OnTable> {
4579        support::child(&self.syntax)
4580    }
4581    #[inline]
4582    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4583        support::child(&self.syntax)
4584    }
4585    #[inline]
4586    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4587        support::child(&self.syntax)
4588    }
4589    #[inline]
4590    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4591        support::child(&self.syntax)
4592    }
4593    #[inline]
4594    pub fn all_token(&self) -> Option<SyntaxToken> {
4595        support::token(&self.syntax, SyntaxKind::ALL_KW)
4596    }
4597    #[inline]
4598    pub fn create_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4600    }
4601    #[inline]
4602    pub fn delete_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4604    }
4605    #[inline]
4606    pub fn for_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::FOR_KW)
4608    }
4609    #[inline]
4610    pub fn insert_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4612    }
4613    #[inline]
4614    pub fn policy_token(&self) -> Option<SyntaxToken> {
4615        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4616    }
4617    #[inline]
4618    pub fn select_token(&self) -> Option<SyntaxToken> {
4619        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4620    }
4621    #[inline]
4622    pub fn to_token(&self) -> Option<SyntaxToken> {
4623        support::token(&self.syntax, SyntaxKind::TO_KW)
4624    }
4625    #[inline]
4626    pub fn update_token(&self) -> Option<SyntaxToken> {
4627        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4628    }
4629}
4630
4631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4632pub struct CreateProcedure {
4633    pub(crate) syntax: SyntaxNode,
4634}
4635impl CreateProcedure {
4636    #[inline]
4637    pub fn option_list(&self) -> Option<FuncOptionList> {
4638        support::child(&self.syntax)
4639    }
4640    #[inline]
4641    pub fn or_replace(&self) -> Option<OrReplace> {
4642        support::child(&self.syntax)
4643    }
4644    #[inline]
4645    pub fn param_list(&self) -> Option<ParamList> {
4646        support::child(&self.syntax)
4647    }
4648    #[inline]
4649    pub fn path(&self) -> Option<Path> {
4650        support::child(&self.syntax)
4651    }
4652    #[inline]
4653    pub fn create_token(&self) -> Option<SyntaxToken> {
4654        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4655    }
4656    #[inline]
4657    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4658        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4659    }
4660}
4661
4662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4663pub struct CreatePropertyGraph {
4664    pub(crate) syntax: SyntaxNode,
4665}
4666impl CreatePropertyGraph {
4667    #[inline]
4668    pub fn edge_tables(&self) -> Option<EdgeTables> {
4669        support::child(&self.syntax)
4670    }
4671    #[inline]
4672    pub fn path(&self) -> Option<Path> {
4673        support::child(&self.syntax)
4674    }
4675    #[inline]
4676    pub fn persistence(&self) -> Option<Persistence> {
4677        support::child(&self.syntax)
4678    }
4679    #[inline]
4680    pub fn vertex_tables(&self) -> Option<VertexTables> {
4681        support::child(&self.syntax)
4682    }
4683    #[inline]
4684    pub fn create_token(&self) -> Option<SyntaxToken> {
4685        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4686    }
4687    #[inline]
4688    pub fn graph_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4690    }
4691    #[inline]
4692    pub fn property_token(&self) -> Option<SyntaxToken> {
4693        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4694    }
4695}
4696
4697#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4698pub struct CreatePublication {
4699    pub(crate) syntax: SyntaxNode,
4700}
4701impl CreatePublication {
4702    #[inline]
4703    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4704        support::child(&self.syntax)
4705    }
4706    #[inline]
4707    pub fn name(&self) -> Option<Name> {
4708        support::child(&self.syntax)
4709    }
4710    #[inline]
4711    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4712        support::children(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn with_params(&self) -> Option<WithParams> {
4716        support::child(&self.syntax)
4717    }
4718    #[inline]
4719    pub fn all_token(&self) -> Option<SyntaxToken> {
4720        support::token(&self.syntax, SyntaxKind::ALL_KW)
4721    }
4722    #[inline]
4723    pub fn create_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4725    }
4726    #[inline]
4727    pub fn for_token(&self) -> Option<SyntaxToken> {
4728        support::token(&self.syntax, SyntaxKind::FOR_KW)
4729    }
4730    #[inline]
4731    pub fn publication_token(&self) -> Option<SyntaxToken> {
4732        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4733    }
4734    #[inline]
4735    pub fn tables_token(&self) -> Option<SyntaxToken> {
4736        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4737    }
4738}
4739
4740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4741pub struct CreateRole {
4742    pub(crate) syntax: SyntaxNode,
4743}
4744impl CreateRole {
4745    #[inline]
4746    pub fn name(&self) -> Option<Name> {
4747        support::child(&self.syntax)
4748    }
4749    #[inline]
4750    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4751        support::child(&self.syntax)
4752    }
4753    #[inline]
4754    pub fn create_token(&self) -> Option<SyntaxToken> {
4755        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4756    }
4757    #[inline]
4758    pub fn role_token(&self) -> Option<SyntaxToken> {
4759        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4760    }
4761}
4762
4763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4764pub struct CreateRule {
4765    pub(crate) syntax: SyntaxNode,
4766}
4767impl CreateRule {
4768    #[inline]
4769    pub fn name(&self) -> Option<Name> {
4770        support::child(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn or_replace(&self) -> Option<OrReplace> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn path(&self) -> Option<Path> {
4778        support::child(&self.syntax)
4779    }
4780    #[inline]
4781    pub fn stmt(&self) -> Option<Stmt> {
4782        support::child(&self.syntax)
4783    }
4784    #[inline]
4785    pub fn stmts(&self) -> AstChildren<Stmt> {
4786        support::children(&self.syntax)
4787    }
4788    #[inline]
4789    pub fn where_clause(&self) -> Option<WhereClause> {
4790        support::child(&self.syntax)
4791    }
4792    #[inline]
4793    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4794        support::token(&self.syntax, SyntaxKind::L_PAREN)
4795    }
4796    #[inline]
4797    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::R_PAREN)
4799    }
4800    #[inline]
4801    pub fn also_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4803    }
4804    #[inline]
4805    pub fn as_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::AS_KW)
4807    }
4808    #[inline]
4809    pub fn create_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4811    }
4812    #[inline]
4813    pub fn delete_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4815    }
4816    #[inline]
4817    pub fn do_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::DO_KW)
4819    }
4820    #[inline]
4821    pub fn ident_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::IDENT)
4823    }
4824    #[inline]
4825    pub fn insert_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4827    }
4828    #[inline]
4829    pub fn instead_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4831    }
4832    #[inline]
4833    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4835    }
4836    #[inline]
4837    pub fn on_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::ON_KW)
4839    }
4840    #[inline]
4841    pub fn rule_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::RULE_KW)
4843    }
4844    #[inline]
4845    pub fn select_token(&self) -> Option<SyntaxToken> {
4846        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4847    }
4848    #[inline]
4849    pub fn to_token(&self) -> Option<SyntaxToken> {
4850        support::token(&self.syntax, SyntaxKind::TO_KW)
4851    }
4852    #[inline]
4853    pub fn update_token(&self) -> Option<SyntaxToken> {
4854        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4855    }
4856}
4857
4858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4859pub struct CreateSchema {
4860    pub(crate) syntax: SyntaxNode,
4861}
4862impl CreateSchema {
4863    #[inline]
4864    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4865        support::child(&self.syntax)
4866    }
4867    #[inline]
4868    pub fn name(&self) -> Option<Name> {
4869        support::child(&self.syntax)
4870    }
4871    #[inline]
4872    pub fn role(&self) -> Option<Role> {
4873        support::child(&self.syntax)
4874    }
4875    #[inline]
4876    pub fn role_ref(&self) -> Option<RoleRef> {
4877        support::child(&self.syntax)
4878    }
4879    #[inline]
4880    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4881        support::children(&self.syntax)
4882    }
4883    #[inline]
4884    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4885        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4886    }
4887    #[inline]
4888    pub fn create_token(&self) -> Option<SyntaxToken> {
4889        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4890    }
4891    #[inline]
4892    pub fn schema_token(&self) -> Option<SyntaxToken> {
4893        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4894    }
4895}
4896
4897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4898pub struct CreateSequence {
4899    pub(crate) syntax: SyntaxNode,
4900}
4901impl CreateSequence {
4902    #[inline]
4903    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4904        support::child(&self.syntax)
4905    }
4906    #[inline]
4907    pub fn path(&self) -> Option<Path> {
4908        support::child(&self.syntax)
4909    }
4910    #[inline]
4911    pub fn persistence(&self) -> Option<Persistence> {
4912        support::child(&self.syntax)
4913    }
4914    #[inline]
4915    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4916        support::children(&self.syntax)
4917    }
4918    #[inline]
4919    pub fn create_token(&self) -> Option<SyntaxToken> {
4920        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4921    }
4922    #[inline]
4923    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4924        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4925    }
4926}
4927
4928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4929pub struct CreateServer {
4930    pub(crate) syntax: SyntaxNode,
4931}
4932impl CreateServer {
4933    #[inline]
4934    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4935        support::child(&self.syntax)
4936    }
4937    #[inline]
4938    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4939        support::child(&self.syntax)
4940    }
4941    #[inline]
4942    pub fn literal(&self) -> Option<Literal> {
4943        support::child(&self.syntax)
4944    }
4945    #[inline]
4946    pub fn name(&self) -> Option<Name> {
4947        support::child(&self.syntax)
4948    }
4949    #[inline]
4950    pub fn name_ref(&self) -> Option<NameRef> {
4951        support::child(&self.syntax)
4952    }
4953    #[inline]
4954    pub fn create_token(&self) -> Option<SyntaxToken> {
4955        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4956    }
4957    #[inline]
4958    pub fn data_token(&self) -> Option<SyntaxToken> {
4959        support::token(&self.syntax, SyntaxKind::DATA_KW)
4960    }
4961    #[inline]
4962    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4963        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4964    }
4965    #[inline]
4966    pub fn server_token(&self) -> Option<SyntaxToken> {
4967        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4968    }
4969    #[inline]
4970    pub fn type_token(&self) -> Option<SyntaxToken> {
4971        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4972    }
4973    #[inline]
4974    pub fn version_token(&self) -> Option<SyntaxToken> {
4975        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4976    }
4977    #[inline]
4978    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4979        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4980    }
4981}
4982
4983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4984pub struct CreateStatistics {
4985    pub(crate) syntax: SyntaxNode,
4986}
4987impl CreateStatistics {
4988    #[inline]
4989    pub fn from_table(&self) -> Option<FromTable> {
4990        support::child(&self.syntax)
4991    }
4992    #[inline]
4993    pub fn name_refs(&self) -> AstChildren<NameRef> {
4994        support::children(&self.syntax)
4995    }
4996    #[inline]
4997    pub fn path(&self) -> Option<Path> {
4998        support::child(&self.syntax)
4999    }
5000    #[inline]
5001    pub fn create_token(&self) -> Option<SyntaxToken> {
5002        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5003    }
5004    #[inline]
5005    pub fn on_token(&self) -> Option<SyntaxToken> {
5006        support::token(&self.syntax, SyntaxKind::ON_KW)
5007    }
5008    #[inline]
5009    pub fn statistics_token(&self) -> Option<SyntaxToken> {
5010        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
5011    }
5012}
5013
5014#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5015pub struct CreateSubscription {
5016    pub(crate) syntax: SyntaxNode,
5017}
5018impl CreateSubscription {
5019    #[inline]
5020    pub fn literal(&self) -> Option<Literal> {
5021        support::child(&self.syntax)
5022    }
5023    #[inline]
5024    pub fn name(&self) -> Option<Name> {
5025        support::child(&self.syntax)
5026    }
5027    #[inline]
5028    pub fn name_ref(&self) -> Option<NameRef> {
5029        support::child(&self.syntax)
5030    }
5031    #[inline]
5032    pub fn name_refs(&self) -> AstChildren<NameRef> {
5033        support::children(&self.syntax)
5034    }
5035    #[inline]
5036    pub fn with_params(&self) -> Option<WithParams> {
5037        support::child(&self.syntax)
5038    }
5039    #[inline]
5040    pub fn connection_token(&self) -> Option<SyntaxToken> {
5041        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
5042    }
5043    #[inline]
5044    pub fn create_token(&self) -> Option<SyntaxToken> {
5045        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5046    }
5047    #[inline]
5048    pub fn publication_token(&self) -> Option<SyntaxToken> {
5049        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5050    }
5051    #[inline]
5052    pub fn server_token(&self) -> Option<SyntaxToken> {
5053        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5054    }
5055    #[inline]
5056    pub fn subscription_token(&self) -> Option<SyntaxToken> {
5057        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
5058    }
5059}
5060
5061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5062pub struct CreateTable {
5063    pub(crate) syntax: SyntaxNode,
5064}
5065impl CreateTable {
5066    #[inline]
5067    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5068        support::child(&self.syntax)
5069    }
5070    #[inline]
5071    pub fn inherits(&self) -> Option<Inherits> {
5072        support::child(&self.syntax)
5073    }
5074    #[inline]
5075    pub fn of_type(&self) -> Option<OfType> {
5076        support::child(&self.syntax)
5077    }
5078    #[inline]
5079    pub fn on_commit(&self) -> Option<OnCommit> {
5080        support::child(&self.syntax)
5081    }
5082    #[inline]
5083    pub fn partition_by(&self) -> Option<PartitionBy> {
5084        support::child(&self.syntax)
5085    }
5086    #[inline]
5087    pub fn partition_of(&self) -> Option<PartitionOf> {
5088        support::child(&self.syntax)
5089    }
5090    #[inline]
5091    pub fn path(&self) -> Option<Path> {
5092        support::child(&self.syntax)
5093    }
5094    #[inline]
5095    pub fn persistence(&self) -> Option<Persistence> {
5096        support::child(&self.syntax)
5097    }
5098    #[inline]
5099    pub fn table_arg_list(&self) -> Option<TableArgList> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn tablespace(&self) -> Option<Tablespace> {
5104        support::child(&self.syntax)
5105    }
5106    #[inline]
5107    pub fn using_method(&self) -> Option<UsingMethod> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn with_params(&self) -> Option<WithParams> {
5112        support::child(&self.syntax)
5113    }
5114    #[inline]
5115    pub fn without_oids(&self) -> Option<WithoutOids> {
5116        support::child(&self.syntax)
5117    }
5118    #[inline]
5119    pub fn create_token(&self) -> Option<SyntaxToken> {
5120        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5121    }
5122    #[inline]
5123    pub fn table_token(&self) -> Option<SyntaxToken> {
5124        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5125    }
5126}
5127
5128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5129pub struct CreateTableAs {
5130    pub(crate) syntax: SyntaxNode,
5131}
5132impl CreateTableAs {
5133    #[inline]
5134    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5135        support::child(&self.syntax)
5136    }
5137    #[inline]
5138    pub fn on_commit(&self) -> Option<OnCommit> {
5139        support::child(&self.syntax)
5140    }
5141    #[inline]
5142    pub fn path(&self) -> Option<Path> {
5143        support::child(&self.syntax)
5144    }
5145    #[inline]
5146    pub fn persistence(&self) -> Option<Persistence> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn query(&self) -> Option<SelectVariant> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn tablespace(&self) -> Option<Tablespace> {
5155        support::child(&self.syntax)
5156    }
5157    #[inline]
5158    pub fn using_method(&self) -> Option<UsingMethod> {
5159        support::child(&self.syntax)
5160    }
5161    #[inline]
5162    pub fn with_data(&self) -> Option<WithData> {
5163        support::child(&self.syntax)
5164    }
5165    #[inline]
5166    pub fn with_no_data(&self) -> Option<WithNoData> {
5167        support::child(&self.syntax)
5168    }
5169    #[inline]
5170    pub fn with_params(&self) -> Option<WithParams> {
5171        support::child(&self.syntax)
5172    }
5173    #[inline]
5174    pub fn without_oids(&self) -> Option<WithoutOids> {
5175        support::child(&self.syntax)
5176    }
5177    #[inline]
5178    pub fn as_token(&self) -> Option<SyntaxToken> {
5179        support::token(&self.syntax, SyntaxKind::AS_KW)
5180    }
5181    #[inline]
5182    pub fn create_token(&self) -> Option<SyntaxToken> {
5183        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5184    }
5185    #[inline]
5186    pub fn table_token(&self) -> Option<SyntaxToken> {
5187        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5188    }
5189}
5190
5191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5192pub struct CreateTablespace {
5193    pub(crate) syntax: SyntaxNode,
5194}
5195impl CreateTablespace {
5196    #[inline]
5197    pub fn literal(&self) -> Option<Literal> {
5198        support::child(&self.syntax)
5199    }
5200    #[inline]
5201    pub fn name(&self) -> Option<Name> {
5202        support::child(&self.syntax)
5203    }
5204    #[inline]
5205    pub fn role_ref(&self) -> Option<RoleRef> {
5206        support::child(&self.syntax)
5207    }
5208    #[inline]
5209    pub fn with_params(&self) -> Option<WithParams> {
5210        support::child(&self.syntax)
5211    }
5212    #[inline]
5213    pub fn create_token(&self) -> Option<SyntaxToken> {
5214        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5215    }
5216    #[inline]
5217    pub fn location_token(&self) -> Option<SyntaxToken> {
5218        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5219    }
5220    #[inline]
5221    pub fn owner_token(&self) -> Option<SyntaxToken> {
5222        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5223    }
5224    #[inline]
5225    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5226        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5227    }
5228}
5229
5230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5231pub struct CreateTextSearchConfiguration {
5232    pub(crate) syntax: SyntaxNode,
5233}
5234impl CreateTextSearchConfiguration {
5235    #[inline]
5236    pub fn attribute_list(&self) -> Option<AttributeList> {
5237        support::child(&self.syntax)
5238    }
5239    #[inline]
5240    pub fn path(&self) -> Option<Path> {
5241        support::child(&self.syntax)
5242    }
5243    #[inline]
5244    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5245        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5246    }
5247    #[inline]
5248    pub fn create_token(&self) -> Option<SyntaxToken> {
5249        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5250    }
5251    #[inline]
5252    pub fn search_token(&self) -> Option<SyntaxToken> {
5253        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5254    }
5255    #[inline]
5256    pub fn text_token(&self) -> Option<SyntaxToken> {
5257        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5258    }
5259}
5260
5261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5262pub struct CreateTextSearchDictionary {
5263    pub(crate) syntax: SyntaxNode,
5264}
5265impl CreateTextSearchDictionary {
5266    #[inline]
5267    pub fn attribute_list(&self) -> Option<AttributeList> {
5268        support::child(&self.syntax)
5269    }
5270    #[inline]
5271    pub fn path(&self) -> Option<Path> {
5272        support::child(&self.syntax)
5273    }
5274    #[inline]
5275    pub fn create_token(&self) -> Option<SyntaxToken> {
5276        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5277    }
5278    #[inline]
5279    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5280        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5281    }
5282    #[inline]
5283    pub fn search_token(&self) -> Option<SyntaxToken> {
5284        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5285    }
5286    #[inline]
5287    pub fn text_token(&self) -> Option<SyntaxToken> {
5288        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5289    }
5290}
5291
5292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5293pub struct CreateTextSearchParser {
5294    pub(crate) syntax: SyntaxNode,
5295}
5296impl CreateTextSearchParser {
5297    #[inline]
5298    pub fn attribute_list(&self) -> Option<AttributeList> {
5299        support::child(&self.syntax)
5300    }
5301    #[inline]
5302    pub fn path(&self) -> Option<Path> {
5303        support::child(&self.syntax)
5304    }
5305    #[inline]
5306    pub fn create_token(&self) -> Option<SyntaxToken> {
5307        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5308    }
5309    #[inline]
5310    pub fn parser_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5312    }
5313    #[inline]
5314    pub fn search_token(&self) -> Option<SyntaxToken> {
5315        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5316    }
5317    #[inline]
5318    pub fn text_token(&self) -> Option<SyntaxToken> {
5319        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5320    }
5321}
5322
5323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5324pub struct CreateTextSearchTemplate {
5325    pub(crate) syntax: SyntaxNode,
5326}
5327impl CreateTextSearchTemplate {
5328    #[inline]
5329    pub fn attribute_list(&self) -> Option<AttributeList> {
5330        support::child(&self.syntax)
5331    }
5332    #[inline]
5333    pub fn path(&self) -> Option<Path> {
5334        support::child(&self.syntax)
5335    }
5336    #[inline]
5337    pub fn create_token(&self) -> Option<SyntaxToken> {
5338        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5339    }
5340    #[inline]
5341    pub fn search_token(&self) -> Option<SyntaxToken> {
5342        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5343    }
5344    #[inline]
5345    pub fn template_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5347    }
5348    #[inline]
5349    pub fn text_token(&self) -> Option<SyntaxToken> {
5350        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5351    }
5352}
5353
5354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5355pub struct CreateTransform {
5356    pub(crate) syntax: SyntaxNode,
5357}
5358impl CreateTransform {
5359    #[inline]
5360    pub fn from_func(&self) -> Option<TransformFromFunc> {
5361        support::child(&self.syntax)
5362    }
5363    #[inline]
5364    pub fn language(&self) -> Option<NameRef> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn or_replace(&self) -> Option<OrReplace> {
5369        support::child(&self.syntax)
5370    }
5371    #[inline]
5372    pub fn to_func(&self) -> Option<TransformToFunc> {
5373        support::child(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn ty(&self) -> Option<Type> {
5377        support::child(&self.syntax)
5378    }
5379    #[inline]
5380    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::L_PAREN)
5382    }
5383    #[inline]
5384    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::R_PAREN)
5386    }
5387    #[inline]
5388    pub fn comma_token(&self) -> Option<SyntaxToken> {
5389        support::token(&self.syntax, SyntaxKind::COMMA)
5390    }
5391    #[inline]
5392    pub fn create_token(&self) -> Option<SyntaxToken> {
5393        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5394    }
5395    #[inline]
5396    pub fn for_token(&self) -> Option<SyntaxToken> {
5397        support::token(&self.syntax, SyntaxKind::FOR_KW)
5398    }
5399    #[inline]
5400    pub fn language_token(&self) -> Option<SyntaxToken> {
5401        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5402    }
5403    #[inline]
5404    pub fn transform_token(&self) -> Option<SyntaxToken> {
5405        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5406    }
5407}
5408
5409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5410pub struct CreateTrigger {
5411    pub(crate) syntax: SyntaxNode,
5412}
5413impl CreateTrigger {
5414    #[inline]
5415    pub fn call_expr(&self) -> Option<CallExpr> {
5416        support::child(&self.syntax)
5417    }
5418    #[inline]
5419    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5420        support::child(&self.syntax)
5421    }
5422    #[inline]
5423    pub fn from_table(&self) -> Option<FromTable> {
5424        support::child(&self.syntax)
5425    }
5426    #[inline]
5427    pub fn initially_deferred_constraint_option(
5428        &self,
5429    ) -> Option<InitiallyDeferredConstraintOption> {
5430        support::child(&self.syntax)
5431    }
5432    #[inline]
5433    pub fn initially_immediate_constraint_option(
5434        &self,
5435    ) -> Option<InitiallyImmediateConstraintOption> {
5436        support::child(&self.syntax)
5437    }
5438    #[inline]
5439    pub fn name(&self) -> Option<Name> {
5440        support::child(&self.syntax)
5441    }
5442    #[inline]
5443    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5444        support::child(&self.syntax)
5445    }
5446    #[inline]
5447    pub fn on_table(&self) -> Option<OnTable> {
5448        support::child(&self.syntax)
5449    }
5450    #[inline]
5451    pub fn or_replace(&self) -> Option<OrReplace> {
5452        support::child(&self.syntax)
5453    }
5454    #[inline]
5455    pub fn referencing(&self) -> Option<Referencing> {
5456        support::child(&self.syntax)
5457    }
5458    #[inline]
5459    pub fn timing(&self) -> Option<Timing> {
5460        support::child(&self.syntax)
5461    }
5462    #[inline]
5463    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5464        support::child(&self.syntax)
5465    }
5466    #[inline]
5467    pub fn when_condition(&self) -> Option<WhenCondition> {
5468        support::child(&self.syntax)
5469    }
5470    #[inline]
5471    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5472        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5473    }
5474    #[inline]
5475    pub fn create_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5477    }
5478    #[inline]
5479    pub fn each_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::EACH_KW)
5481    }
5482    #[inline]
5483    pub fn execute_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5485    }
5486    #[inline]
5487    pub fn for_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::FOR_KW)
5489    }
5490    #[inline]
5491    pub fn function_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5493    }
5494    #[inline]
5495    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5497    }
5498    #[inline]
5499    pub fn row_token(&self) -> Option<SyntaxToken> {
5500        support::token(&self.syntax, SyntaxKind::ROW_KW)
5501    }
5502    #[inline]
5503    pub fn statement_token(&self) -> Option<SyntaxToken> {
5504        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5505    }
5506    #[inline]
5507    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5508        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5509    }
5510}
5511
5512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5513pub struct CreateType {
5514    pub(crate) syntax: SyntaxNode,
5515}
5516impl CreateType {
5517    #[inline]
5518    pub fn attribute_list(&self) -> Option<AttributeList> {
5519        support::child(&self.syntax)
5520    }
5521    #[inline]
5522    pub fn column_list(&self) -> Option<ColumnList> {
5523        support::child(&self.syntax)
5524    }
5525    #[inline]
5526    pub fn path(&self) -> Option<Path> {
5527        support::child(&self.syntax)
5528    }
5529    #[inline]
5530    pub fn variant_list(&self) -> Option<VariantList> {
5531        support::child(&self.syntax)
5532    }
5533    #[inline]
5534    pub fn as_token(&self) -> Option<SyntaxToken> {
5535        support::token(&self.syntax, SyntaxKind::AS_KW)
5536    }
5537    #[inline]
5538    pub fn create_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5540    }
5541    #[inline]
5542    pub fn enum_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5544    }
5545    #[inline]
5546    pub fn range_token(&self) -> Option<SyntaxToken> {
5547        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5548    }
5549    #[inline]
5550    pub fn type_token(&self) -> Option<SyntaxToken> {
5551        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5552    }
5553}
5554
5555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5556pub struct CreateUser {
5557    pub(crate) syntax: SyntaxNode,
5558}
5559impl CreateUser {
5560    #[inline]
5561    pub fn name(&self) -> Option<Name> {
5562        support::child(&self.syntax)
5563    }
5564    #[inline]
5565    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5566        support::child(&self.syntax)
5567    }
5568    #[inline]
5569    pub fn create_token(&self) -> Option<SyntaxToken> {
5570        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5571    }
5572    #[inline]
5573    pub fn user_token(&self) -> Option<SyntaxToken> {
5574        support::token(&self.syntax, SyntaxKind::USER_KW)
5575    }
5576}
5577
5578#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5579pub struct CreateUserMapping {
5580    pub(crate) syntax: SyntaxNode,
5581}
5582impl CreateUserMapping {
5583    #[inline]
5584    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5585        support::child(&self.syntax)
5586    }
5587    #[inline]
5588    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5589        support::child(&self.syntax)
5590    }
5591    #[inline]
5592    pub fn role_ref(&self) -> Option<RoleRef> {
5593        support::child(&self.syntax)
5594    }
5595    #[inline]
5596    pub fn server_name(&self) -> Option<ServerName> {
5597        support::child(&self.syntax)
5598    }
5599    #[inline]
5600    pub fn create_token(&self) -> Option<SyntaxToken> {
5601        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5602    }
5603    #[inline]
5604    pub fn for_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::FOR_KW)
5606    }
5607    #[inline]
5608    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5609        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5610    }
5611    #[inline]
5612    pub fn user_token(&self) -> Option<SyntaxToken> {
5613        support::token(&self.syntax, SyntaxKind::USER_KW)
5614    }
5615}
5616
5617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5618pub struct CreateView {
5619    pub(crate) syntax: SyntaxNode,
5620}
5621impl CreateView {
5622    #[inline]
5623    pub fn column_list(&self) -> Option<ColumnList> {
5624        support::child(&self.syntax)
5625    }
5626    #[inline]
5627    pub fn or_replace(&self) -> Option<OrReplace> {
5628        support::child(&self.syntax)
5629    }
5630    #[inline]
5631    pub fn path(&self) -> Option<Path> {
5632        support::child(&self.syntax)
5633    }
5634    #[inline]
5635    pub fn persistence(&self) -> Option<Persistence> {
5636        support::child(&self.syntax)
5637    }
5638    #[inline]
5639    pub fn query(&self) -> Option<SelectVariant> {
5640        support::child(&self.syntax)
5641    }
5642    #[inline]
5643    pub fn with_params(&self) -> Option<WithParams> {
5644        support::child(&self.syntax)
5645    }
5646    #[inline]
5647    pub fn as_token(&self) -> Option<SyntaxToken> {
5648        support::token(&self.syntax, SyntaxKind::AS_KW)
5649    }
5650    #[inline]
5651    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5653    }
5654    #[inline]
5655    pub fn check_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5657    }
5658    #[inline]
5659    pub fn create_token(&self) -> Option<SyntaxToken> {
5660        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5661    }
5662    #[inline]
5663    pub fn local_token(&self) -> Option<SyntaxToken> {
5664        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5665    }
5666    #[inline]
5667    pub fn option_token(&self) -> Option<SyntaxToken> {
5668        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5669    }
5670    #[inline]
5671    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5672        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5673    }
5674    #[inline]
5675    pub fn view_token(&self) -> Option<SyntaxToken> {
5676        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5677    }
5678    #[inline]
5679    pub fn with_token(&self) -> Option<SyntaxToken> {
5680        support::token(&self.syntax, SyntaxKind::WITH_KW)
5681    }
5682}
5683
5684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5685pub struct CustomOp {
5686    pub(crate) syntax: SyntaxNode,
5687}
5688impl CustomOp {
5689    #[inline]
5690    pub fn bang_token(&self) -> Option<SyntaxToken> {
5691        support::token(&self.syntax, SyntaxKind::BANG)
5692    }
5693    #[inline]
5694    pub fn pound_token(&self) -> Option<SyntaxToken> {
5695        support::token(&self.syntax, SyntaxKind::POUND)
5696    }
5697    #[inline]
5698    pub fn percent_token(&self) -> Option<SyntaxToken> {
5699        support::token(&self.syntax, SyntaxKind::PERCENT)
5700    }
5701    #[inline]
5702    pub fn amp_token(&self) -> Option<SyntaxToken> {
5703        support::token(&self.syntax, SyntaxKind::AMP)
5704    }
5705    #[inline]
5706    pub fn star_token(&self) -> Option<SyntaxToken> {
5707        support::token(&self.syntax, SyntaxKind::STAR)
5708    }
5709    #[inline]
5710    pub fn plus_token(&self) -> Option<SyntaxToken> {
5711        support::token(&self.syntax, SyntaxKind::PLUS)
5712    }
5713    #[inline]
5714    pub fn minus_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::MINUS)
5716    }
5717    #[inline]
5718    pub fn slash_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::SLASH)
5720    }
5721    #[inline]
5722    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5723        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5724    }
5725    #[inline]
5726    pub fn eq_token(&self) -> Option<SyntaxToken> {
5727        support::token(&self.syntax, SyntaxKind::EQ)
5728    }
5729    #[inline]
5730    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5732    }
5733    #[inline]
5734    pub fn question_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::QUESTION)
5736    }
5737    #[inline]
5738    pub fn at_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::AT)
5740    }
5741    #[inline]
5742    pub fn caret_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::CARET)
5744    }
5745    #[inline]
5746    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::BACKTICK)
5748    }
5749    #[inline]
5750    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::PIPE)
5752    }
5753    #[inline]
5754    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5755        support::token(&self.syntax, SyntaxKind::TILDE)
5756    }
5757}
5758
5759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5760pub struct Deallocate {
5761    pub(crate) syntax: SyntaxNode,
5762}
5763impl Deallocate {
5764    #[inline]
5765    pub fn name_ref(&self) -> Option<NameRef> {
5766        support::child(&self.syntax)
5767    }
5768    #[inline]
5769    pub fn all_token(&self) -> Option<SyntaxToken> {
5770        support::token(&self.syntax, SyntaxKind::ALL_KW)
5771    }
5772    #[inline]
5773    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5774        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5775    }
5776    #[inline]
5777    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5778        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5779    }
5780}
5781
5782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5783pub struct Declare {
5784    pub(crate) syntax: SyntaxNode,
5785}
5786impl Declare {
5787    #[inline]
5788    pub fn name(&self) -> Option<Name> {
5789        support::child(&self.syntax)
5790    }
5791    #[inline]
5792    pub fn query(&self) -> Option<SelectVariant> {
5793        support::child(&self.syntax)
5794    }
5795    #[inline]
5796    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5798    }
5799    #[inline]
5800    pub fn binary_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5802    }
5803    #[inline]
5804    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5805        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5806    }
5807    #[inline]
5808    pub fn declare_token(&self) -> Option<SyntaxToken> {
5809        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5810    }
5811    #[inline]
5812    pub fn for_token(&self) -> Option<SyntaxToken> {
5813        support::token(&self.syntax, SyntaxKind::FOR_KW)
5814    }
5815    #[inline]
5816    pub fn hold_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5818    }
5819    #[inline]
5820    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5822    }
5823    #[inline]
5824    pub fn no_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::NO_KW)
5826    }
5827    #[inline]
5828    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5829        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5830    }
5831    #[inline]
5832    pub fn with_token(&self) -> Option<SyntaxToken> {
5833        support::token(&self.syntax, SyntaxKind::WITH_KW)
5834    }
5835    #[inline]
5836    pub fn without_token(&self) -> Option<SyntaxToken> {
5837        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5838    }
5839}
5840
5841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5842pub struct DefaultConstraint {
5843    pub(crate) syntax: SyntaxNode,
5844}
5845impl DefaultConstraint {
5846    #[inline]
5847    pub fn expr(&self) -> Option<Expr> {
5848        support::child(&self.syntax)
5849    }
5850    #[inline]
5851    pub fn name_ref(&self) -> Option<NameRef> {
5852        support::child(&self.syntax)
5853    }
5854    #[inline]
5855    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5856        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5857    }
5858    #[inline]
5859    pub fn default_token(&self) -> Option<SyntaxToken> {
5860        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5861    }
5862}
5863
5864#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5865pub struct Deferrable {
5866    pub(crate) syntax: SyntaxNode,
5867}
5868impl Deferrable {
5869    #[inline]
5870    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5871        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5872    }
5873}
5874
5875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5876pub struct DeferrableConstraintOption {
5877    pub(crate) syntax: SyntaxNode,
5878}
5879impl DeferrableConstraintOption {
5880    #[inline]
5881    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5882        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5883    }
5884}
5885
5886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5887pub struct Delete {
5888    pub(crate) syntax: SyntaxNode,
5889}
5890impl Delete {
5891    #[inline]
5892    pub fn alias(&self) -> Option<Alias> {
5893        support::child(&self.syntax)
5894    }
5895    #[inline]
5896    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
5897        support::child(&self.syntax)
5898    }
5899    #[inline]
5900    pub fn relation_name(&self) -> Option<RelationName> {
5901        support::child(&self.syntax)
5902    }
5903    #[inline]
5904    pub fn returning_clause(&self) -> Option<ReturningClause> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn using_clause(&self) -> Option<UsingClause> {
5909        support::child(&self.syntax)
5910    }
5911    #[inline]
5912    pub fn where_clause(&self) -> Option<WhereClause> {
5913        support::child(&self.syntax)
5914    }
5915    #[inline]
5916    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5917        support::child(&self.syntax)
5918    }
5919    #[inline]
5920    pub fn with_clause(&self) -> Option<WithClause> {
5921        support::child(&self.syntax)
5922    }
5923    #[inline]
5924    pub fn delete_token(&self) -> Option<SyntaxToken> {
5925        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5926    }
5927    #[inline]
5928    pub fn from_token(&self) -> Option<SyntaxToken> {
5929        support::token(&self.syntax, SyntaxKind::FROM_KW)
5930    }
5931}
5932
5933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5934pub struct DeleteRows {
5935    pub(crate) syntax: SyntaxNode,
5936}
5937impl DeleteRows {
5938    #[inline]
5939    pub fn delete_token(&self) -> Option<SyntaxToken> {
5940        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5941    }
5942    #[inline]
5943    pub fn rows_token(&self) -> Option<SyntaxToken> {
5944        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5945    }
5946}
5947
5948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5949pub struct DependsOnExtension {
5950    pub(crate) syntax: SyntaxNode,
5951}
5952impl DependsOnExtension {
5953    #[inline]
5954    pub fn name_ref(&self) -> Option<NameRef> {
5955        support::child(&self.syntax)
5956    }
5957    #[inline]
5958    pub fn depends_token(&self) -> Option<SyntaxToken> {
5959        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5960    }
5961    #[inline]
5962    pub fn extension_token(&self) -> Option<SyntaxToken> {
5963        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5964    }
5965    #[inline]
5966    pub fn on_token(&self) -> Option<SyntaxToken> {
5967        support::token(&self.syntax, SyntaxKind::ON_KW)
5968    }
5969}
5970
5971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5972pub struct DestVertexTable {
5973    pub(crate) syntax: SyntaxNode,
5974}
5975impl DestVertexTable {
5976    #[inline]
5977    pub fn column_list(&self) -> Option<ColumnList> {
5978        support::child(&self.syntax)
5979    }
5980    #[inline]
5981    pub fn name_ref(&self) -> Option<NameRef> {
5982        support::child(&self.syntax)
5983    }
5984    #[inline]
5985    pub fn references_table(&self) -> Option<ReferencesTable> {
5986        support::child(&self.syntax)
5987    }
5988    #[inline]
5989    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5990        support::token(&self.syntax, SyntaxKind::L_PAREN)
5991    }
5992    #[inline]
5993    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5994        support::token(&self.syntax, SyntaxKind::R_PAREN)
5995    }
5996    #[inline]
5997    pub fn destination_token(&self) -> Option<SyntaxToken> {
5998        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
5999    }
6000    #[inline]
6001    pub fn key_token(&self) -> Option<SyntaxToken> {
6002        support::token(&self.syntax, SyntaxKind::KEY_KW)
6003    }
6004}
6005
6006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6007pub struct DetachPartition {
6008    pub(crate) syntax: SyntaxNode,
6009}
6010impl DetachPartition {
6011    #[inline]
6012    pub fn path(&self) -> Option<Path> {
6013        support::child(&self.syntax)
6014    }
6015    #[inline]
6016    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6017        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6018    }
6019    #[inline]
6020    pub fn detach_token(&self) -> Option<SyntaxToken> {
6021        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6022    }
6023    #[inline]
6024    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6025        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6026    }
6027    #[inline]
6028    pub fn partition_token(&self) -> Option<SyntaxToken> {
6029        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6030    }
6031}
6032
6033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6034pub struct DisableRls {
6035    pub(crate) syntax: SyntaxNode,
6036}
6037impl DisableRls {
6038    #[inline]
6039    pub fn disable_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6041    }
6042    #[inline]
6043    pub fn level_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6045    }
6046    #[inline]
6047    pub fn row_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::ROW_KW)
6049    }
6050    #[inline]
6051    pub fn security_token(&self) -> Option<SyntaxToken> {
6052        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6053    }
6054}
6055
6056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6057pub struct DisableRule {
6058    pub(crate) syntax: SyntaxNode,
6059}
6060impl DisableRule {
6061    #[inline]
6062    pub fn disable_token(&self) -> Option<SyntaxToken> {
6063        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6064    }
6065    #[inline]
6066    pub fn rule_token(&self) -> Option<SyntaxToken> {
6067        support::token(&self.syntax, SyntaxKind::RULE_KW)
6068    }
6069}
6070
6071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6072pub struct DisableTrigger {
6073    pub(crate) syntax: SyntaxNode,
6074}
6075impl DisableTrigger {
6076    #[inline]
6077    pub fn disable_token(&self) -> Option<SyntaxToken> {
6078        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6079    }
6080    #[inline]
6081    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6082        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6083    }
6084}
6085
6086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6087pub struct Discard {
6088    pub(crate) syntax: SyntaxNode,
6089}
6090impl Discard {
6091    #[inline]
6092    pub fn all_token(&self) -> Option<SyntaxToken> {
6093        support::token(&self.syntax, SyntaxKind::ALL_KW)
6094    }
6095    #[inline]
6096    pub fn discard_token(&self) -> Option<SyntaxToken> {
6097        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6098    }
6099    #[inline]
6100    pub fn plans_token(&self) -> Option<SyntaxToken> {
6101        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6102    }
6103    #[inline]
6104    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6105        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6106    }
6107    #[inline]
6108    pub fn temp_token(&self) -> Option<SyntaxToken> {
6109        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6110    }
6111    #[inline]
6112    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6113        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6114    }
6115}
6116
6117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6118pub struct DistinctClause {
6119    pub(crate) syntax: SyntaxNode,
6120}
6121impl DistinctClause {
6122    #[inline]
6123    pub fn exprs(&self) -> AstChildren<Expr> {
6124        support::children(&self.syntax)
6125    }
6126    #[inline]
6127    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6128        support::token(&self.syntax, SyntaxKind::L_PAREN)
6129    }
6130    #[inline]
6131    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6132        support::token(&self.syntax, SyntaxKind::R_PAREN)
6133    }
6134    #[inline]
6135    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6136        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6137    }
6138    #[inline]
6139    pub fn on_token(&self) -> Option<SyntaxToken> {
6140        support::token(&self.syntax, SyntaxKind::ON_KW)
6141    }
6142}
6143
6144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6145pub struct Do {
6146    pub(crate) syntax: SyntaxNode,
6147}
6148impl Do {
6149    #[inline]
6150    pub fn do_token(&self) -> Option<SyntaxToken> {
6151        support::token(&self.syntax, SyntaxKind::DO_KW)
6152    }
6153}
6154
6155#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6156pub struct DoubleType {
6157    pub(crate) syntax: SyntaxNode,
6158}
6159impl DoubleType {
6160    #[inline]
6161    pub fn double_token(&self) -> Option<SyntaxToken> {
6162        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6163    }
6164    #[inline]
6165    pub fn precision_token(&self) -> Option<SyntaxToken> {
6166        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6167    }
6168    #[inline]
6169    pub fn setof_token(&self) -> Option<SyntaxToken> {
6170        support::token(&self.syntax, SyntaxKind::SETOF_KW)
6171    }
6172}
6173
6174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6175pub struct Drop {
6176    pub(crate) syntax: SyntaxNode,
6177}
6178impl Drop {
6179    #[inline]
6180    pub fn drop_token(&self) -> Option<SyntaxToken> {
6181        support::token(&self.syntax, SyntaxKind::DROP_KW)
6182    }
6183}
6184
6185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6186pub struct DropAccessMethod {
6187    pub(crate) syntax: SyntaxNode,
6188}
6189impl DropAccessMethod {
6190    #[inline]
6191    pub fn if_exists(&self) -> Option<IfExists> {
6192        support::child(&self.syntax)
6193    }
6194    #[inline]
6195    pub fn name_ref(&self) -> Option<NameRef> {
6196        support::child(&self.syntax)
6197    }
6198    #[inline]
6199    pub fn access_token(&self) -> Option<SyntaxToken> {
6200        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6201    }
6202    #[inline]
6203    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6204        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6205    }
6206    #[inline]
6207    pub fn drop_token(&self) -> Option<SyntaxToken> {
6208        support::token(&self.syntax, SyntaxKind::DROP_KW)
6209    }
6210    #[inline]
6211    pub fn method_token(&self) -> Option<SyntaxToken> {
6212        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6213    }
6214    #[inline]
6215    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6216        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6217    }
6218}
6219
6220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6221pub struct DropAggregate {
6222    pub(crate) syntax: SyntaxNode,
6223}
6224impl DropAggregate {
6225    #[inline]
6226    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6227        support::children(&self.syntax)
6228    }
6229    #[inline]
6230    pub fn if_exists(&self) -> Option<IfExists> {
6231        support::child(&self.syntax)
6232    }
6233    #[inline]
6234    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6235        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6236    }
6237    #[inline]
6238    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6239        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6240    }
6241    #[inline]
6242    pub fn drop_token(&self) -> Option<SyntaxToken> {
6243        support::token(&self.syntax, SyntaxKind::DROP_KW)
6244    }
6245    #[inline]
6246    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6247        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6248    }
6249}
6250
6251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6252pub struct DropAttribute {
6253    pub(crate) syntax: SyntaxNode,
6254}
6255impl DropAttribute {
6256    #[inline]
6257    pub fn cascade(&self) -> Option<Cascade> {
6258        support::child(&self.syntax)
6259    }
6260    #[inline]
6261    pub fn if_exists(&self) -> Option<IfExists> {
6262        support::child(&self.syntax)
6263    }
6264    #[inline]
6265    pub fn restrict(&self) -> Option<Restrict> {
6266        support::child(&self.syntax)
6267    }
6268    #[inline]
6269    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6270        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6271    }
6272    #[inline]
6273    pub fn drop_token(&self) -> Option<SyntaxToken> {
6274        support::token(&self.syntax, SyntaxKind::DROP_KW)
6275    }
6276}
6277
6278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6279pub struct DropCast {
6280    pub(crate) syntax: SyntaxNode,
6281}
6282impl DropCast {
6283    #[inline]
6284    pub fn cast_sig(&self) -> Option<CastSig> {
6285        support::child(&self.syntax)
6286    }
6287    #[inline]
6288    pub fn if_exists(&self) -> Option<IfExists> {
6289        support::child(&self.syntax)
6290    }
6291    #[inline]
6292    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6293        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6294    }
6295    #[inline]
6296    pub fn cast_token(&self) -> Option<SyntaxToken> {
6297        support::token(&self.syntax, SyntaxKind::CAST_KW)
6298    }
6299    #[inline]
6300    pub fn drop_token(&self) -> Option<SyntaxToken> {
6301        support::token(&self.syntax, SyntaxKind::DROP_KW)
6302    }
6303    #[inline]
6304    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6305        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6306    }
6307}
6308
6309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6310pub struct DropCollation {
6311    pub(crate) syntax: SyntaxNode,
6312}
6313impl DropCollation {
6314    #[inline]
6315    pub fn if_exists(&self) -> Option<IfExists> {
6316        support::child(&self.syntax)
6317    }
6318    #[inline]
6319    pub fn paths(&self) -> AstChildren<Path> {
6320        support::children(&self.syntax)
6321    }
6322    #[inline]
6323    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6324        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6325    }
6326    #[inline]
6327    pub fn collation_token(&self) -> Option<SyntaxToken> {
6328        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6329    }
6330    #[inline]
6331    pub fn drop_token(&self) -> Option<SyntaxToken> {
6332        support::token(&self.syntax, SyntaxKind::DROP_KW)
6333    }
6334    #[inline]
6335    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6336        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6337    }
6338}
6339
6340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6341pub struct DropColumn {
6342    pub(crate) syntax: SyntaxNode,
6343}
6344impl DropColumn {
6345    #[inline]
6346    pub fn if_exists(&self) -> Option<IfExists> {
6347        support::child(&self.syntax)
6348    }
6349    #[inline]
6350    pub fn name_ref(&self) -> Option<NameRef> {
6351        support::child(&self.syntax)
6352    }
6353    #[inline]
6354    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6355        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6356    }
6357    #[inline]
6358    pub fn column_token(&self) -> Option<SyntaxToken> {
6359        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6360    }
6361    #[inline]
6362    pub fn drop_token(&self) -> Option<SyntaxToken> {
6363        support::token(&self.syntax, SyntaxKind::DROP_KW)
6364    }
6365    #[inline]
6366    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6367        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6368    }
6369}
6370
6371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6372pub struct DropConstraint {
6373    pub(crate) syntax: SyntaxNode,
6374}
6375impl DropConstraint {
6376    #[inline]
6377    pub fn if_exists(&self) -> Option<IfExists> {
6378        support::child(&self.syntax)
6379    }
6380    #[inline]
6381    pub fn name_ref(&self) -> Option<NameRef> {
6382        support::child(&self.syntax)
6383    }
6384    #[inline]
6385    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6387    }
6388    #[inline]
6389    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6390        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6391    }
6392    #[inline]
6393    pub fn drop_token(&self) -> Option<SyntaxToken> {
6394        support::token(&self.syntax, SyntaxKind::DROP_KW)
6395    }
6396    #[inline]
6397    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6398        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6399    }
6400}
6401
6402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6403pub struct DropConversion {
6404    pub(crate) syntax: SyntaxNode,
6405}
6406impl DropConversion {
6407    #[inline]
6408    pub fn if_exists(&self) -> Option<IfExists> {
6409        support::child(&self.syntax)
6410    }
6411    #[inline]
6412    pub fn path(&self) -> Option<Path> {
6413        support::child(&self.syntax)
6414    }
6415    #[inline]
6416    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6417        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6418    }
6419    #[inline]
6420    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6421        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6422    }
6423    #[inline]
6424    pub fn drop_token(&self) -> Option<SyntaxToken> {
6425        support::token(&self.syntax, SyntaxKind::DROP_KW)
6426    }
6427    #[inline]
6428    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6429        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6430    }
6431}
6432
6433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6434pub struct DropDatabase {
6435    pub(crate) syntax: SyntaxNode,
6436}
6437impl DropDatabase {
6438    #[inline]
6439    pub fn if_exists(&self) -> Option<IfExists> {
6440        support::child(&self.syntax)
6441    }
6442    #[inline]
6443    pub fn name_ref(&self) -> Option<NameRef> {
6444        support::child(&self.syntax)
6445    }
6446    #[inline]
6447    pub fn database_token(&self) -> Option<SyntaxToken> {
6448        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6449    }
6450    #[inline]
6451    pub fn drop_token(&self) -> Option<SyntaxToken> {
6452        support::token(&self.syntax, SyntaxKind::DROP_KW)
6453    }
6454}
6455
6456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6457pub struct DropDefault {
6458    pub(crate) syntax: SyntaxNode,
6459}
6460impl DropDefault {
6461    #[inline]
6462    pub fn default_token(&self) -> Option<SyntaxToken> {
6463        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6464    }
6465    #[inline]
6466    pub fn drop_token(&self) -> Option<SyntaxToken> {
6467        support::token(&self.syntax, SyntaxKind::DROP_KW)
6468    }
6469}
6470
6471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6472pub struct DropDomain {
6473    pub(crate) syntax: SyntaxNode,
6474}
6475impl DropDomain {
6476    #[inline]
6477    pub fn if_exists(&self) -> Option<IfExists> {
6478        support::child(&self.syntax)
6479    }
6480    #[inline]
6481    pub fn paths(&self) -> AstChildren<Path> {
6482        support::children(&self.syntax)
6483    }
6484    #[inline]
6485    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6486        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6487    }
6488    #[inline]
6489    pub fn domain_token(&self) -> Option<SyntaxToken> {
6490        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6491    }
6492    #[inline]
6493    pub fn drop_token(&self) -> Option<SyntaxToken> {
6494        support::token(&self.syntax, SyntaxKind::DROP_KW)
6495    }
6496    #[inline]
6497    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6498        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6499    }
6500}
6501
6502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6503pub struct DropEdgeTables {
6504    pub(crate) syntax: SyntaxNode,
6505}
6506impl DropEdgeTables {
6507    #[inline]
6508    pub fn names(&self) -> AstChildren<Name> {
6509        support::children(&self.syntax)
6510    }
6511    #[inline]
6512    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6513        support::token(&self.syntax, SyntaxKind::L_PAREN)
6514    }
6515    #[inline]
6516    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6517        support::token(&self.syntax, SyntaxKind::R_PAREN)
6518    }
6519    #[inline]
6520    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6521        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6522    }
6523    #[inline]
6524    pub fn drop_token(&self) -> Option<SyntaxToken> {
6525        support::token(&self.syntax, SyntaxKind::DROP_KW)
6526    }
6527    #[inline]
6528    pub fn edge_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6530    }
6531    #[inline]
6532    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6533        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6534    }
6535    #[inline]
6536    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6538    }
6539    #[inline]
6540    pub fn tables_token(&self) -> Option<SyntaxToken> {
6541        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6542    }
6543}
6544
6545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6546pub struct DropEventTrigger {
6547    pub(crate) syntax: SyntaxNode,
6548}
6549impl DropEventTrigger {
6550    #[inline]
6551    pub fn if_exists(&self) -> Option<IfExists> {
6552        support::child(&self.syntax)
6553    }
6554    #[inline]
6555    pub fn name_ref(&self) -> Option<NameRef> {
6556        support::child(&self.syntax)
6557    }
6558    #[inline]
6559    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6560        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6561    }
6562    #[inline]
6563    pub fn drop_token(&self) -> Option<SyntaxToken> {
6564        support::token(&self.syntax, SyntaxKind::DROP_KW)
6565    }
6566    #[inline]
6567    pub fn event_token(&self) -> Option<SyntaxToken> {
6568        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6569    }
6570    #[inline]
6571    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6572        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6573    }
6574    #[inline]
6575    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6576        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6577    }
6578}
6579
6580#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6581pub struct DropExpression {
6582    pub(crate) syntax: SyntaxNode,
6583}
6584impl DropExpression {
6585    #[inline]
6586    pub fn if_exists(&self) -> Option<IfExists> {
6587        support::child(&self.syntax)
6588    }
6589    #[inline]
6590    pub fn drop_token(&self) -> Option<SyntaxToken> {
6591        support::token(&self.syntax, SyntaxKind::DROP_KW)
6592    }
6593    #[inline]
6594    pub fn expression_token(&self) -> Option<SyntaxToken> {
6595        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6596    }
6597}
6598
6599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6600pub struct DropExtension {
6601    pub(crate) syntax: SyntaxNode,
6602}
6603impl DropExtension {
6604    #[inline]
6605    pub fn if_exists(&self) -> Option<IfExists> {
6606        support::child(&self.syntax)
6607    }
6608    #[inline]
6609    pub fn name_refs(&self) -> AstChildren<NameRef> {
6610        support::children(&self.syntax)
6611    }
6612    #[inline]
6613    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6614        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6615    }
6616    #[inline]
6617    pub fn drop_token(&self) -> Option<SyntaxToken> {
6618        support::token(&self.syntax, SyntaxKind::DROP_KW)
6619    }
6620    #[inline]
6621    pub fn extension_token(&self) -> Option<SyntaxToken> {
6622        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6623    }
6624    #[inline]
6625    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6626        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6627    }
6628}
6629
6630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6631pub struct DropForeignDataWrapper {
6632    pub(crate) syntax: SyntaxNode,
6633}
6634impl DropForeignDataWrapper {
6635    #[inline]
6636    pub fn if_exists(&self) -> Option<IfExists> {
6637        support::child(&self.syntax)
6638    }
6639    #[inline]
6640    pub fn name_refs(&self) -> AstChildren<NameRef> {
6641        support::children(&self.syntax)
6642    }
6643    #[inline]
6644    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6645        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6646    }
6647    #[inline]
6648    pub fn data_token(&self) -> Option<SyntaxToken> {
6649        support::token(&self.syntax, SyntaxKind::DATA_KW)
6650    }
6651    #[inline]
6652    pub fn drop_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::DROP_KW)
6654    }
6655    #[inline]
6656    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6657        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6658    }
6659    #[inline]
6660    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6661        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6662    }
6663    #[inline]
6664    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6665        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6666    }
6667}
6668
6669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6670pub struct DropForeignTable {
6671    pub(crate) syntax: SyntaxNode,
6672}
6673impl DropForeignTable {
6674    #[inline]
6675    pub fn if_exists(&self) -> Option<IfExists> {
6676        support::child(&self.syntax)
6677    }
6678    #[inline]
6679    pub fn path(&self) -> Option<Path> {
6680        support::child(&self.syntax)
6681    }
6682    #[inline]
6683    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6684        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6685    }
6686    #[inline]
6687    pub fn drop_token(&self) -> Option<SyntaxToken> {
6688        support::token(&self.syntax, SyntaxKind::DROP_KW)
6689    }
6690    #[inline]
6691    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6692        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6693    }
6694    #[inline]
6695    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6696        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6697    }
6698    #[inline]
6699    pub fn table_token(&self) -> Option<SyntaxToken> {
6700        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6701    }
6702}
6703
6704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6705pub struct DropFunction {
6706    pub(crate) syntax: SyntaxNode,
6707}
6708impl DropFunction {
6709    #[inline]
6710    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6711        support::child(&self.syntax)
6712    }
6713    #[inline]
6714    pub fn if_exists(&self) -> Option<IfExists> {
6715        support::child(&self.syntax)
6716    }
6717    #[inline]
6718    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6719        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6720    }
6721    #[inline]
6722    pub fn drop_token(&self) -> Option<SyntaxToken> {
6723        support::token(&self.syntax, SyntaxKind::DROP_KW)
6724    }
6725    #[inline]
6726    pub fn function_token(&self) -> Option<SyntaxToken> {
6727        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6728    }
6729    #[inline]
6730    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6731        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6732    }
6733}
6734
6735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6736pub struct DropGroup {
6737    pub(crate) syntax: SyntaxNode,
6738}
6739impl DropGroup {
6740    #[inline]
6741    pub fn if_exists(&self) -> Option<IfExists> {
6742        support::child(&self.syntax)
6743    }
6744    #[inline]
6745    pub fn name_refs(&self) -> AstChildren<NameRef> {
6746        support::children(&self.syntax)
6747    }
6748    #[inline]
6749    pub fn drop_token(&self) -> Option<SyntaxToken> {
6750        support::token(&self.syntax, SyntaxKind::DROP_KW)
6751    }
6752    #[inline]
6753    pub fn group_token(&self) -> Option<SyntaxToken> {
6754        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6755    }
6756}
6757
6758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6759pub struct DropIdentity {
6760    pub(crate) syntax: SyntaxNode,
6761}
6762impl DropIdentity {
6763    #[inline]
6764    pub fn if_exists(&self) -> Option<IfExists> {
6765        support::child(&self.syntax)
6766    }
6767    #[inline]
6768    pub fn drop_token(&self) -> Option<SyntaxToken> {
6769        support::token(&self.syntax, SyntaxKind::DROP_KW)
6770    }
6771    #[inline]
6772    pub fn identity_token(&self) -> Option<SyntaxToken> {
6773        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6774    }
6775}
6776
6777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6778pub struct DropIndex {
6779    pub(crate) syntax: SyntaxNode,
6780}
6781impl DropIndex {
6782    #[inline]
6783    pub fn if_exists(&self) -> Option<IfExists> {
6784        support::child(&self.syntax)
6785    }
6786    #[inline]
6787    pub fn paths(&self) -> AstChildren<Path> {
6788        support::children(&self.syntax)
6789    }
6790    #[inline]
6791    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6792        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6793    }
6794    #[inline]
6795    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6796        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6797    }
6798    #[inline]
6799    pub fn drop_token(&self) -> Option<SyntaxToken> {
6800        support::token(&self.syntax, SyntaxKind::DROP_KW)
6801    }
6802    #[inline]
6803    pub fn index_token(&self) -> Option<SyntaxToken> {
6804        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6805    }
6806    #[inline]
6807    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6808        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6809    }
6810}
6811
6812#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6813pub struct DropLanguage {
6814    pub(crate) syntax: SyntaxNode,
6815}
6816impl DropLanguage {
6817    #[inline]
6818    pub fn if_exists(&self) -> Option<IfExists> {
6819        support::child(&self.syntax)
6820    }
6821    #[inline]
6822    pub fn name_ref(&self) -> Option<NameRef> {
6823        support::child(&self.syntax)
6824    }
6825    #[inline]
6826    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6827        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6828    }
6829    #[inline]
6830    pub fn drop_token(&self) -> Option<SyntaxToken> {
6831        support::token(&self.syntax, SyntaxKind::DROP_KW)
6832    }
6833    #[inline]
6834    pub fn language_token(&self) -> Option<SyntaxToken> {
6835        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6836    }
6837    #[inline]
6838    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6839        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6840    }
6841    #[inline]
6842    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6843        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6844    }
6845}
6846
6847#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6848pub struct DropMaterializedView {
6849    pub(crate) syntax: SyntaxNode,
6850}
6851impl DropMaterializedView {
6852    #[inline]
6853    pub fn if_exists(&self) -> Option<IfExists> {
6854        support::child(&self.syntax)
6855    }
6856    #[inline]
6857    pub fn paths(&self) -> AstChildren<Path> {
6858        support::children(&self.syntax)
6859    }
6860    #[inline]
6861    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6862        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6863    }
6864    #[inline]
6865    pub fn drop_token(&self) -> Option<SyntaxToken> {
6866        support::token(&self.syntax, SyntaxKind::DROP_KW)
6867    }
6868    #[inline]
6869    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6870        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6871    }
6872    #[inline]
6873    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6874        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6875    }
6876    #[inline]
6877    pub fn view_token(&self) -> Option<SyntaxToken> {
6878        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6879    }
6880}
6881
6882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6883pub struct DropNotNull {
6884    pub(crate) syntax: SyntaxNode,
6885}
6886impl DropNotNull {
6887    #[inline]
6888    pub fn drop_token(&self) -> Option<SyntaxToken> {
6889        support::token(&self.syntax, SyntaxKind::DROP_KW)
6890    }
6891    #[inline]
6892    pub fn not_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::NOT_KW)
6894    }
6895    #[inline]
6896    pub fn null_token(&self) -> Option<SyntaxToken> {
6897        support::token(&self.syntax, SyntaxKind::NULL_KW)
6898    }
6899}
6900
6901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6902pub struct DropOpClassOption {
6903    pub(crate) syntax: SyntaxNode,
6904}
6905impl DropOpClassOption {
6906    #[inline]
6907    pub fn literal(&self) -> Option<Literal> {
6908        support::child(&self.syntax)
6909    }
6910    #[inline]
6911    pub fn param_list(&self) -> Option<ParamList> {
6912        support::child(&self.syntax)
6913    }
6914    #[inline]
6915    pub fn function_token(&self) -> Option<SyntaxToken> {
6916        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6917    }
6918    #[inline]
6919    pub fn operator_token(&self) -> Option<SyntaxToken> {
6920        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6921    }
6922}
6923
6924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6925pub struct DropOpClassOptionList {
6926    pub(crate) syntax: SyntaxNode,
6927}
6928impl DropOpClassOptionList {
6929    #[inline]
6930    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6931        support::children(&self.syntax)
6932    }
6933}
6934
6935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6936pub struct DropOpClassOptions {
6937    pub(crate) syntax: SyntaxNode,
6938}
6939impl DropOpClassOptions {
6940    #[inline]
6941    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6942        support::child(&self.syntax)
6943    }
6944    #[inline]
6945    pub fn drop_token(&self) -> Option<SyntaxToken> {
6946        support::token(&self.syntax, SyntaxKind::DROP_KW)
6947    }
6948}
6949
6950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6951pub struct DropOperator {
6952    pub(crate) syntax: SyntaxNode,
6953}
6954impl DropOperator {
6955    #[inline]
6956    pub fn if_exists(&self) -> Option<IfExists> {
6957        support::child(&self.syntax)
6958    }
6959    #[inline]
6960    pub fn op_sig_list(&self) -> Option<OpSigList> {
6961        support::child(&self.syntax)
6962    }
6963    #[inline]
6964    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6965        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6966    }
6967    #[inline]
6968    pub fn drop_token(&self) -> Option<SyntaxToken> {
6969        support::token(&self.syntax, SyntaxKind::DROP_KW)
6970    }
6971    #[inline]
6972    pub fn operator_token(&self) -> Option<SyntaxToken> {
6973        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6974    }
6975    #[inline]
6976    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6977        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6978    }
6979}
6980
6981#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6982pub struct DropOperatorClass {
6983    pub(crate) syntax: SyntaxNode,
6984}
6985impl DropOperatorClass {
6986    #[inline]
6987    pub fn if_exists(&self) -> Option<IfExists> {
6988        support::child(&self.syntax)
6989    }
6990    #[inline]
6991    pub fn name_ref(&self) -> Option<NameRef> {
6992        support::child(&self.syntax)
6993    }
6994    #[inline]
6995    pub fn path(&self) -> Option<Path> {
6996        support::child(&self.syntax)
6997    }
6998    #[inline]
6999    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7000        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7001    }
7002    #[inline]
7003    pub fn class_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::CLASS_KW)
7005    }
7006    #[inline]
7007    pub fn drop_token(&self) -> Option<SyntaxToken> {
7008        support::token(&self.syntax, SyntaxKind::DROP_KW)
7009    }
7010    #[inline]
7011    pub fn operator_token(&self) -> Option<SyntaxToken> {
7012        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7013    }
7014    #[inline]
7015    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7016        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7017    }
7018    #[inline]
7019    pub fn using_token(&self) -> Option<SyntaxToken> {
7020        support::token(&self.syntax, SyntaxKind::USING_KW)
7021    }
7022}
7023
7024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7025pub struct DropOperatorFamily {
7026    pub(crate) syntax: SyntaxNode,
7027}
7028impl DropOperatorFamily {
7029    #[inline]
7030    pub fn if_exists(&self) -> Option<IfExists> {
7031        support::child(&self.syntax)
7032    }
7033    #[inline]
7034    pub fn name_ref(&self) -> Option<NameRef> {
7035        support::child(&self.syntax)
7036    }
7037    #[inline]
7038    pub fn path(&self) -> Option<Path> {
7039        support::child(&self.syntax)
7040    }
7041    #[inline]
7042    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7043        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7044    }
7045    #[inline]
7046    pub fn drop_token(&self) -> Option<SyntaxToken> {
7047        support::token(&self.syntax, SyntaxKind::DROP_KW)
7048    }
7049    #[inline]
7050    pub fn family_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7052    }
7053    #[inline]
7054    pub fn operator_token(&self) -> Option<SyntaxToken> {
7055        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7056    }
7057    #[inline]
7058    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7059        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7060    }
7061    #[inline]
7062    pub fn using_token(&self) -> Option<SyntaxToken> {
7063        support::token(&self.syntax, SyntaxKind::USING_KW)
7064    }
7065}
7066
7067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7068pub struct DropOwned {
7069    pub(crate) syntax: SyntaxNode,
7070}
7071impl DropOwned {
7072    #[inline]
7073    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7074        support::child(&self.syntax)
7075    }
7076    #[inline]
7077    pub fn by_token(&self) -> Option<SyntaxToken> {
7078        support::token(&self.syntax, SyntaxKind::BY_KW)
7079    }
7080    #[inline]
7081    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7083    }
7084    #[inline]
7085    pub fn drop_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::DROP_KW)
7087    }
7088    #[inline]
7089    pub fn owned_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7091    }
7092    #[inline]
7093    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7094        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7095    }
7096}
7097
7098#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7099pub struct DropPolicy {
7100    pub(crate) syntax: SyntaxNode,
7101}
7102impl DropPolicy {
7103    #[inline]
7104    pub fn if_exists(&self) -> Option<IfExists> {
7105        support::child(&self.syntax)
7106    }
7107    #[inline]
7108    pub fn name_ref(&self) -> Option<NameRef> {
7109        support::child(&self.syntax)
7110    }
7111    #[inline]
7112    pub fn on_table(&self) -> Option<OnTable> {
7113        support::child(&self.syntax)
7114    }
7115    #[inline]
7116    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7118    }
7119    #[inline]
7120    pub fn drop_token(&self) -> Option<SyntaxToken> {
7121        support::token(&self.syntax, SyntaxKind::DROP_KW)
7122    }
7123    #[inline]
7124    pub fn policy_token(&self) -> Option<SyntaxToken> {
7125        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7126    }
7127    #[inline]
7128    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7129        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7130    }
7131}
7132
7133#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7134pub struct DropProcedure {
7135    pub(crate) syntax: SyntaxNode,
7136}
7137impl DropProcedure {
7138    #[inline]
7139    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7140        support::child(&self.syntax)
7141    }
7142    #[inline]
7143    pub fn if_exists(&self) -> Option<IfExists> {
7144        support::child(&self.syntax)
7145    }
7146    #[inline]
7147    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7148        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7149    }
7150    #[inline]
7151    pub fn drop_token(&self) -> Option<SyntaxToken> {
7152        support::token(&self.syntax, SyntaxKind::DROP_KW)
7153    }
7154    #[inline]
7155    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7157    }
7158    #[inline]
7159    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7160        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7161    }
7162}
7163
7164#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7165pub struct DropPropertyGraph {
7166    pub(crate) syntax: SyntaxNode,
7167}
7168impl DropPropertyGraph {
7169    #[inline]
7170    pub fn if_exists(&self) -> Option<IfExists> {
7171        support::child(&self.syntax)
7172    }
7173    #[inline]
7174    pub fn path(&self) -> Option<Path> {
7175        support::child(&self.syntax)
7176    }
7177    #[inline]
7178    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7179        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7180    }
7181    #[inline]
7182    pub fn drop_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::DROP_KW)
7184    }
7185    #[inline]
7186    pub fn graph_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7188    }
7189    #[inline]
7190    pub fn property_token(&self) -> Option<SyntaxToken> {
7191        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7192    }
7193    #[inline]
7194    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7195        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7196    }
7197}
7198
7199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7200pub struct DropPublication {
7201    pub(crate) syntax: SyntaxNode,
7202}
7203impl DropPublication {
7204    #[inline]
7205    pub fn if_exists(&self) -> Option<IfExists> {
7206        support::child(&self.syntax)
7207    }
7208    #[inline]
7209    pub fn name_refs(&self) -> AstChildren<NameRef> {
7210        support::children(&self.syntax)
7211    }
7212    #[inline]
7213    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7214        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7215    }
7216    #[inline]
7217    pub fn drop_token(&self) -> Option<SyntaxToken> {
7218        support::token(&self.syntax, SyntaxKind::DROP_KW)
7219    }
7220    #[inline]
7221    pub fn publication_token(&self) -> Option<SyntaxToken> {
7222        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7223    }
7224    #[inline]
7225    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7226        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7227    }
7228}
7229
7230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7231pub struct DropRole {
7232    pub(crate) syntax: SyntaxNode,
7233}
7234impl DropRole {
7235    #[inline]
7236    pub fn if_exists(&self) -> Option<IfExists> {
7237        support::child(&self.syntax)
7238    }
7239    #[inline]
7240    pub fn name_refs(&self) -> AstChildren<NameRef> {
7241        support::children(&self.syntax)
7242    }
7243    #[inline]
7244    pub fn drop_token(&self) -> Option<SyntaxToken> {
7245        support::token(&self.syntax, SyntaxKind::DROP_KW)
7246    }
7247    #[inline]
7248    pub fn role_token(&self) -> Option<SyntaxToken> {
7249        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7250    }
7251}
7252
7253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7254pub struct DropRoutine {
7255    pub(crate) syntax: SyntaxNode,
7256}
7257impl DropRoutine {
7258    #[inline]
7259    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7260        support::child(&self.syntax)
7261    }
7262    #[inline]
7263    pub fn if_exists(&self) -> Option<IfExists> {
7264        support::child(&self.syntax)
7265    }
7266    #[inline]
7267    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7269    }
7270    #[inline]
7271    pub fn drop_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::DROP_KW)
7273    }
7274    #[inline]
7275    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7276        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7277    }
7278    #[inline]
7279    pub fn routine_token(&self) -> Option<SyntaxToken> {
7280        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7281    }
7282}
7283
7284#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7285pub struct DropRule {
7286    pub(crate) syntax: SyntaxNode,
7287}
7288impl DropRule {
7289    #[inline]
7290    pub fn if_exists(&self) -> Option<IfExists> {
7291        support::child(&self.syntax)
7292    }
7293    #[inline]
7294    pub fn name_ref(&self) -> Option<NameRef> {
7295        support::child(&self.syntax)
7296    }
7297    #[inline]
7298    pub fn on_table(&self) -> Option<OnTable> {
7299        support::child(&self.syntax)
7300    }
7301    #[inline]
7302    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7304    }
7305    #[inline]
7306    pub fn drop_token(&self) -> Option<SyntaxToken> {
7307        support::token(&self.syntax, SyntaxKind::DROP_KW)
7308    }
7309    #[inline]
7310    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7311        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7312    }
7313    #[inline]
7314    pub fn rule_token(&self) -> Option<SyntaxToken> {
7315        support::token(&self.syntax, SyntaxKind::RULE_KW)
7316    }
7317}
7318
7319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7320pub struct DropSchema {
7321    pub(crate) syntax: SyntaxNode,
7322}
7323impl DropSchema {
7324    #[inline]
7325    pub fn if_exists(&self) -> Option<IfExists> {
7326        support::child(&self.syntax)
7327    }
7328    #[inline]
7329    pub fn name_refs(&self) -> AstChildren<NameRef> {
7330        support::children(&self.syntax)
7331    }
7332    #[inline]
7333    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7334        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7335    }
7336    #[inline]
7337    pub fn drop_token(&self) -> Option<SyntaxToken> {
7338        support::token(&self.syntax, SyntaxKind::DROP_KW)
7339    }
7340    #[inline]
7341    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7342        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7343    }
7344    #[inline]
7345    pub fn schema_token(&self) -> Option<SyntaxToken> {
7346        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7347    }
7348}
7349
7350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7351pub struct DropSequence {
7352    pub(crate) syntax: SyntaxNode,
7353}
7354impl DropSequence {
7355    #[inline]
7356    pub fn if_exists(&self) -> Option<IfExists> {
7357        support::child(&self.syntax)
7358    }
7359    #[inline]
7360    pub fn paths(&self) -> AstChildren<Path> {
7361        support::children(&self.syntax)
7362    }
7363    #[inline]
7364    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7365        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7366    }
7367    #[inline]
7368    pub fn drop_token(&self) -> Option<SyntaxToken> {
7369        support::token(&self.syntax, SyntaxKind::DROP_KW)
7370    }
7371    #[inline]
7372    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7373        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7374    }
7375    #[inline]
7376    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7377        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7378    }
7379}
7380
7381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7382pub struct DropServer {
7383    pub(crate) syntax: SyntaxNode,
7384}
7385impl DropServer {
7386    #[inline]
7387    pub fn if_exists(&self) -> Option<IfExists> {
7388        support::child(&self.syntax)
7389    }
7390    #[inline]
7391    pub fn name_ref(&self) -> Option<NameRef> {
7392        support::child(&self.syntax)
7393    }
7394    #[inline]
7395    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7396        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7397    }
7398    #[inline]
7399    pub fn drop_token(&self) -> Option<SyntaxToken> {
7400        support::token(&self.syntax, SyntaxKind::DROP_KW)
7401    }
7402    #[inline]
7403    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7404        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7405    }
7406    #[inline]
7407    pub fn server_token(&self) -> Option<SyntaxToken> {
7408        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7409    }
7410}
7411
7412#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7413pub struct DropStatistics {
7414    pub(crate) syntax: SyntaxNode,
7415}
7416impl DropStatistics {
7417    #[inline]
7418    pub fn if_exists(&self) -> Option<IfExists> {
7419        support::child(&self.syntax)
7420    }
7421    #[inline]
7422    pub fn paths(&self) -> AstChildren<Path> {
7423        support::children(&self.syntax)
7424    }
7425    #[inline]
7426    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7427        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7428    }
7429    #[inline]
7430    pub fn drop_token(&self) -> Option<SyntaxToken> {
7431        support::token(&self.syntax, SyntaxKind::DROP_KW)
7432    }
7433    #[inline]
7434    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7435        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7436    }
7437    #[inline]
7438    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7439        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7440    }
7441}
7442
7443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7444pub struct DropSubscription {
7445    pub(crate) syntax: SyntaxNode,
7446}
7447impl DropSubscription {
7448    #[inline]
7449    pub fn if_exists(&self) -> Option<IfExists> {
7450        support::child(&self.syntax)
7451    }
7452    #[inline]
7453    pub fn name_ref(&self) -> Option<NameRef> {
7454        support::child(&self.syntax)
7455    }
7456    #[inline]
7457    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7458        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7459    }
7460    #[inline]
7461    pub fn drop_token(&self) -> Option<SyntaxToken> {
7462        support::token(&self.syntax, SyntaxKind::DROP_KW)
7463    }
7464    #[inline]
7465    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7466        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7467    }
7468    #[inline]
7469    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7470        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7471    }
7472}
7473
7474#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7475pub struct DropTable {
7476    pub(crate) syntax: SyntaxNode,
7477}
7478impl DropTable {
7479    #[inline]
7480    pub fn if_exists(&self) -> Option<IfExists> {
7481        support::child(&self.syntax)
7482    }
7483    #[inline]
7484    pub fn path(&self) -> Option<Path> {
7485        support::child(&self.syntax)
7486    }
7487    #[inline]
7488    pub fn comma_token(&self) -> Option<SyntaxToken> {
7489        support::token(&self.syntax, SyntaxKind::COMMA)
7490    }
7491    #[inline]
7492    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7493        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7494    }
7495    #[inline]
7496    pub fn drop_token(&self) -> Option<SyntaxToken> {
7497        support::token(&self.syntax, SyntaxKind::DROP_KW)
7498    }
7499    #[inline]
7500    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7501        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7502    }
7503    #[inline]
7504    pub fn table_token(&self) -> Option<SyntaxToken> {
7505        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7506    }
7507}
7508
7509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7510pub struct DropTablespace {
7511    pub(crate) syntax: SyntaxNode,
7512}
7513impl DropTablespace {
7514    #[inline]
7515    pub fn if_exists(&self) -> Option<IfExists> {
7516        support::child(&self.syntax)
7517    }
7518    #[inline]
7519    pub fn name_ref(&self) -> Option<NameRef> {
7520        support::child(&self.syntax)
7521    }
7522    #[inline]
7523    pub fn drop_token(&self) -> Option<SyntaxToken> {
7524        support::token(&self.syntax, SyntaxKind::DROP_KW)
7525    }
7526    #[inline]
7527    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7528        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7529    }
7530}
7531
7532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7533pub struct DropTextSearchConfig {
7534    pub(crate) syntax: SyntaxNode,
7535}
7536impl DropTextSearchConfig {
7537    #[inline]
7538    pub fn if_exists(&self) -> Option<IfExists> {
7539        support::child(&self.syntax)
7540    }
7541    #[inline]
7542    pub fn path(&self) -> Option<Path> {
7543        support::child(&self.syntax)
7544    }
7545    #[inline]
7546    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7547        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7548    }
7549    #[inline]
7550    pub fn configuration_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
7552    }
7553    #[inline]
7554    pub fn drop_token(&self) -> Option<SyntaxToken> {
7555        support::token(&self.syntax, SyntaxKind::DROP_KW)
7556    }
7557    #[inline]
7558    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7559        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7560    }
7561    #[inline]
7562    pub fn search_token(&self) -> Option<SyntaxToken> {
7563        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7564    }
7565    #[inline]
7566    pub fn text_token(&self) -> Option<SyntaxToken> {
7567        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7568    }
7569}
7570
7571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7572pub struct DropTextSearchDict {
7573    pub(crate) syntax: SyntaxNode,
7574}
7575impl DropTextSearchDict {
7576    #[inline]
7577    pub fn if_exists(&self) -> Option<IfExists> {
7578        support::child(&self.syntax)
7579    }
7580    #[inline]
7581    pub fn path(&self) -> Option<Path> {
7582        support::child(&self.syntax)
7583    }
7584    #[inline]
7585    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7586        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7587    }
7588    #[inline]
7589    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7590        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7591    }
7592    #[inline]
7593    pub fn drop_token(&self) -> Option<SyntaxToken> {
7594        support::token(&self.syntax, SyntaxKind::DROP_KW)
7595    }
7596    #[inline]
7597    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7598        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7599    }
7600    #[inline]
7601    pub fn search_token(&self) -> Option<SyntaxToken> {
7602        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7603    }
7604    #[inline]
7605    pub fn text_token(&self) -> Option<SyntaxToken> {
7606        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7607    }
7608}
7609
7610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7611pub struct DropTextSearchParser {
7612    pub(crate) syntax: SyntaxNode,
7613}
7614impl DropTextSearchParser {
7615    #[inline]
7616    pub fn if_exists(&self) -> Option<IfExists> {
7617        support::child(&self.syntax)
7618    }
7619    #[inline]
7620    pub fn path(&self) -> Option<Path> {
7621        support::child(&self.syntax)
7622    }
7623    #[inline]
7624    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7625        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7626    }
7627    #[inline]
7628    pub fn drop_token(&self) -> Option<SyntaxToken> {
7629        support::token(&self.syntax, SyntaxKind::DROP_KW)
7630    }
7631    #[inline]
7632    pub fn parser_token(&self) -> Option<SyntaxToken> {
7633        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7634    }
7635    #[inline]
7636    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7637        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7638    }
7639    #[inline]
7640    pub fn search_token(&self) -> Option<SyntaxToken> {
7641        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7642    }
7643    #[inline]
7644    pub fn text_token(&self) -> Option<SyntaxToken> {
7645        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7646    }
7647}
7648
7649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7650pub struct DropTextSearchTemplate {
7651    pub(crate) syntax: SyntaxNode,
7652}
7653impl DropTextSearchTemplate {
7654    #[inline]
7655    pub fn if_exists(&self) -> Option<IfExists> {
7656        support::child(&self.syntax)
7657    }
7658    #[inline]
7659    pub fn path(&self) -> Option<Path> {
7660        support::child(&self.syntax)
7661    }
7662    #[inline]
7663    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7664        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7665    }
7666    #[inline]
7667    pub fn drop_token(&self) -> Option<SyntaxToken> {
7668        support::token(&self.syntax, SyntaxKind::DROP_KW)
7669    }
7670    #[inline]
7671    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7672        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7673    }
7674    #[inline]
7675    pub fn search_token(&self) -> Option<SyntaxToken> {
7676        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7677    }
7678    #[inline]
7679    pub fn template_token(&self) -> Option<SyntaxToken> {
7680        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7681    }
7682    #[inline]
7683    pub fn text_token(&self) -> Option<SyntaxToken> {
7684        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7685    }
7686}
7687
7688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7689pub struct DropTransform {
7690    pub(crate) syntax: SyntaxNode,
7691}
7692impl DropTransform {
7693    #[inline]
7694    pub fn if_exists(&self) -> Option<IfExists> {
7695        support::child(&self.syntax)
7696    }
7697    #[inline]
7698    pub fn language(&self) -> Option<NameRef> {
7699        support::child(&self.syntax)
7700    }
7701    #[inline]
7702    pub fn ty(&self) -> Option<Type> {
7703        support::child(&self.syntax)
7704    }
7705    #[inline]
7706    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7707        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7708    }
7709    #[inline]
7710    pub fn drop_token(&self) -> Option<SyntaxToken> {
7711        support::token(&self.syntax, SyntaxKind::DROP_KW)
7712    }
7713    #[inline]
7714    pub fn for_token(&self) -> Option<SyntaxToken> {
7715        support::token(&self.syntax, SyntaxKind::FOR_KW)
7716    }
7717    #[inline]
7718    pub fn language_token(&self) -> Option<SyntaxToken> {
7719        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7720    }
7721    #[inline]
7722    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7723        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7724    }
7725    #[inline]
7726    pub fn transform_token(&self) -> Option<SyntaxToken> {
7727        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7728    }
7729}
7730
7731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7732pub struct DropTrigger {
7733    pub(crate) syntax: SyntaxNode,
7734}
7735impl DropTrigger {
7736    #[inline]
7737    pub fn if_exists(&self) -> Option<IfExists> {
7738        support::child(&self.syntax)
7739    }
7740    #[inline]
7741    pub fn on_table(&self) -> Option<OnTable> {
7742        support::child(&self.syntax)
7743    }
7744    #[inline]
7745    pub fn path(&self) -> Option<Path> {
7746        support::child(&self.syntax)
7747    }
7748    #[inline]
7749    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7750        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7751    }
7752    #[inline]
7753    pub fn drop_token(&self) -> Option<SyntaxToken> {
7754        support::token(&self.syntax, SyntaxKind::DROP_KW)
7755    }
7756    #[inline]
7757    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7758        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7759    }
7760    #[inline]
7761    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7762        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7763    }
7764}
7765
7766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7767pub struct DropType {
7768    pub(crate) syntax: SyntaxNode,
7769}
7770impl DropType {
7771    #[inline]
7772    pub fn if_exists(&self) -> Option<IfExists> {
7773        support::child(&self.syntax)
7774    }
7775    #[inline]
7776    pub fn paths(&self) -> AstChildren<Path> {
7777        support::children(&self.syntax)
7778    }
7779    #[inline]
7780    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7781        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7782    }
7783    #[inline]
7784    pub fn drop_token(&self) -> Option<SyntaxToken> {
7785        support::token(&self.syntax, SyntaxKind::DROP_KW)
7786    }
7787    #[inline]
7788    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7789        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7790    }
7791    #[inline]
7792    pub fn type_token(&self) -> Option<SyntaxToken> {
7793        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7794    }
7795}
7796
7797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7798pub struct DropUser {
7799    pub(crate) syntax: SyntaxNode,
7800}
7801impl DropUser {
7802    #[inline]
7803    pub fn if_exists(&self) -> Option<IfExists> {
7804        support::child(&self.syntax)
7805    }
7806    #[inline]
7807    pub fn name_refs(&self) -> AstChildren<NameRef> {
7808        support::children(&self.syntax)
7809    }
7810    #[inline]
7811    pub fn drop_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::DROP_KW)
7813    }
7814    #[inline]
7815    pub fn user_token(&self) -> Option<SyntaxToken> {
7816        support::token(&self.syntax, SyntaxKind::USER_KW)
7817    }
7818}
7819
7820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7821pub struct DropUserMapping {
7822    pub(crate) syntax: SyntaxNode,
7823}
7824impl DropUserMapping {
7825    #[inline]
7826    pub fn if_exists(&self) -> Option<IfExists> {
7827        support::child(&self.syntax)
7828    }
7829    #[inline]
7830    pub fn role_ref(&self) -> Option<RoleRef> {
7831        support::child(&self.syntax)
7832    }
7833    #[inline]
7834    pub fn server_name(&self) -> Option<ServerName> {
7835        support::child(&self.syntax)
7836    }
7837    #[inline]
7838    pub fn drop_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::DROP_KW)
7840    }
7841    #[inline]
7842    pub fn for_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::FOR_KW)
7844    }
7845    #[inline]
7846    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7848    }
7849    #[inline]
7850    pub fn user_token(&self) -> Option<SyntaxToken> {
7851        support::token(&self.syntax, SyntaxKind::USER_KW)
7852    }
7853}
7854
7855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7856pub struct DropVertexEdgeLabel {
7857    pub(crate) syntax: SyntaxNode,
7858}
7859impl DropVertexEdgeLabel {
7860    #[inline]
7861    pub fn name_ref(&self) -> Option<NameRef> {
7862        support::child(&self.syntax)
7863    }
7864    #[inline]
7865    pub fn alter_token(&self) -> Option<SyntaxToken> {
7866        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7867    }
7868    #[inline]
7869    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7870        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7871    }
7872    #[inline]
7873    pub fn drop_token(&self) -> Option<SyntaxToken> {
7874        support::token(&self.syntax, SyntaxKind::DROP_KW)
7875    }
7876    #[inline]
7877    pub fn edge_token(&self) -> Option<SyntaxToken> {
7878        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7879    }
7880    #[inline]
7881    pub fn label_token(&self) -> Option<SyntaxToken> {
7882        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7883    }
7884    #[inline]
7885    pub fn node_token(&self) -> Option<SyntaxToken> {
7886        support::token(&self.syntax, SyntaxKind::NODE_KW)
7887    }
7888    #[inline]
7889    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7891    }
7892    #[inline]
7893    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7894        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7895    }
7896    #[inline]
7897    pub fn table_token(&self) -> Option<SyntaxToken> {
7898        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7899    }
7900    #[inline]
7901    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7902        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7903    }
7904}
7905
7906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7907pub struct DropVertexEdgeLabelProperties {
7908    pub(crate) syntax: SyntaxNode,
7909}
7910impl DropVertexEdgeLabelProperties {
7911    #[inline]
7912    pub fn name_ref(&self) -> Option<NameRef> {
7913        support::child(&self.syntax)
7914    }
7915    #[inline]
7916    pub fn names(&self) -> AstChildren<Name> {
7917        support::children(&self.syntax)
7918    }
7919    #[inline]
7920    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7921        support::token(&self.syntax, SyntaxKind::L_PAREN)
7922    }
7923    #[inline]
7924    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7925        support::token(&self.syntax, SyntaxKind::R_PAREN)
7926    }
7927    #[inline]
7928    pub fn alter_token(&self) -> Option<SyntaxToken> {
7929        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7930    }
7931    #[inline]
7932    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7933        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7934    }
7935    #[inline]
7936    pub fn drop_token(&self) -> Option<SyntaxToken> {
7937        support::token(&self.syntax, SyntaxKind::DROP_KW)
7938    }
7939    #[inline]
7940    pub fn edge_token(&self) -> Option<SyntaxToken> {
7941        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7942    }
7943    #[inline]
7944    pub fn label_token(&self) -> Option<SyntaxToken> {
7945        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7946    }
7947    #[inline]
7948    pub fn node_token(&self) -> Option<SyntaxToken> {
7949        support::token(&self.syntax, SyntaxKind::NODE_KW)
7950    }
7951    #[inline]
7952    pub fn properties_token(&self) -> Option<SyntaxToken> {
7953        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
7954    }
7955    #[inline]
7956    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7958    }
7959    #[inline]
7960    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7962    }
7963    #[inline]
7964    pub fn table_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7966    }
7967    #[inline]
7968    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7969        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7970    }
7971}
7972
7973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7974pub struct DropVertexTables {
7975    pub(crate) syntax: SyntaxNode,
7976}
7977impl DropVertexTables {
7978    #[inline]
7979    pub fn names(&self) -> AstChildren<Name> {
7980        support::children(&self.syntax)
7981    }
7982    #[inline]
7983    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7984        support::token(&self.syntax, SyntaxKind::L_PAREN)
7985    }
7986    #[inline]
7987    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7988        support::token(&self.syntax, SyntaxKind::R_PAREN)
7989    }
7990    #[inline]
7991    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7992        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7993    }
7994    #[inline]
7995    pub fn drop_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::DROP_KW)
7997    }
7998    #[inline]
7999    pub fn node_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::NODE_KW)
8001    }
8002    #[inline]
8003    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8004        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8005    }
8006    #[inline]
8007    pub fn tables_token(&self) -> Option<SyntaxToken> {
8008        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8009    }
8010    #[inline]
8011    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8012        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8013    }
8014}
8015
8016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8017pub struct DropView {
8018    pub(crate) syntax: SyntaxNode,
8019}
8020impl DropView {
8021    #[inline]
8022    pub fn if_exists(&self) -> Option<IfExists> {
8023        support::child(&self.syntax)
8024    }
8025    #[inline]
8026    pub fn path(&self) -> Option<Path> {
8027        support::child(&self.syntax)
8028    }
8029    #[inline]
8030    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8031        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8032    }
8033    #[inline]
8034    pub fn drop_token(&self) -> Option<SyntaxToken> {
8035        support::token(&self.syntax, SyntaxKind::DROP_KW)
8036    }
8037    #[inline]
8038    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8039        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8040    }
8041    #[inline]
8042    pub fn view_token(&self) -> Option<SyntaxToken> {
8043        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8044    }
8045}
8046
8047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8048pub struct EdgeAny {
8049    pub(crate) syntax: SyntaxNode,
8050}
8051impl EdgeAny {
8052    #[inline]
8053    pub fn is_label(&self) -> Option<IsLabel> {
8054        support::child(&self.syntax)
8055    }
8056    #[inline]
8057    pub fn name(&self) -> Option<Name> {
8058        support::child(&self.syntax)
8059    }
8060    #[inline]
8061    pub fn where_clause(&self) -> Option<WhereClause> {
8062        support::child(&self.syntax)
8063    }
8064    #[inline]
8065    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8066        support::token(&self.syntax, SyntaxKind::L_BRACK)
8067    }
8068    #[inline]
8069    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8070        support::token(&self.syntax, SyntaxKind::R_BRACK)
8071    }
8072    #[inline]
8073    pub fn minus_token(&self) -> Option<SyntaxToken> {
8074        support::token(&self.syntax, SyntaxKind::MINUS)
8075    }
8076}
8077
8078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8079pub struct EdgeLeft {
8080    pub(crate) syntax: SyntaxNode,
8081}
8082impl EdgeLeft {
8083    #[inline]
8084    pub fn is_label(&self) -> Option<IsLabel> {
8085        support::child(&self.syntax)
8086    }
8087    #[inline]
8088    pub fn name(&self) -> Option<Name> {
8089        support::child(&self.syntax)
8090    }
8091    #[inline]
8092    pub fn where_clause(&self) -> Option<WhereClause> {
8093        support::child(&self.syntax)
8094    }
8095    #[inline]
8096    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8097        support::token(&self.syntax, SyntaxKind::L_BRACK)
8098    }
8099    #[inline]
8100    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8101        support::token(&self.syntax, SyntaxKind::R_BRACK)
8102    }
8103    #[inline]
8104    pub fn minus_token(&self) -> Option<SyntaxToken> {
8105        support::token(&self.syntax, SyntaxKind::MINUS)
8106    }
8107    #[inline]
8108    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8109        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8110    }
8111}
8112
8113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8114pub struct EdgeRight {
8115    pub(crate) syntax: SyntaxNode,
8116}
8117impl EdgeRight {
8118    #[inline]
8119    pub fn is_label(&self) -> Option<IsLabel> {
8120        support::child(&self.syntax)
8121    }
8122    #[inline]
8123    pub fn name(&self) -> Option<Name> {
8124        support::child(&self.syntax)
8125    }
8126    #[inline]
8127    pub fn where_clause(&self) -> Option<WhereClause> {
8128        support::child(&self.syntax)
8129    }
8130    #[inline]
8131    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8132        support::token(&self.syntax, SyntaxKind::L_BRACK)
8133    }
8134    #[inline]
8135    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::R_BRACK)
8137    }
8138    #[inline]
8139    pub fn minus_token(&self) -> Option<SyntaxToken> {
8140        support::token(&self.syntax, SyntaxKind::MINUS)
8141    }
8142    #[inline]
8143    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8144        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8145    }
8146}
8147
8148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8149pub struct EdgeTableDef {
8150    pub(crate) syntax: SyntaxNode,
8151}
8152impl EdgeTableDef {
8153    #[inline]
8154    pub fn column_list(&self) -> Option<ColumnList> {
8155        support::child(&self.syntax)
8156    }
8157    #[inline]
8158    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8159        support::child(&self.syntax)
8160    }
8161    #[inline]
8162    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8163        support::child(&self.syntax)
8164    }
8165    #[inline]
8166    pub fn name(&self) -> Option<Name> {
8167        support::child(&self.syntax)
8168    }
8169    #[inline]
8170    pub fn path(&self) -> Option<Path> {
8171        support::child(&self.syntax)
8172    }
8173    #[inline]
8174    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8175        support::child(&self.syntax)
8176    }
8177    #[inline]
8178    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8179        support::token(&self.syntax, SyntaxKind::L_PAREN)
8180    }
8181    #[inline]
8182    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8183        support::token(&self.syntax, SyntaxKind::R_PAREN)
8184    }
8185    #[inline]
8186    pub fn as_token(&self) -> Option<SyntaxToken> {
8187        support::token(&self.syntax, SyntaxKind::AS_KW)
8188    }
8189    #[inline]
8190    pub fn key_token(&self) -> Option<SyntaxToken> {
8191        support::token(&self.syntax, SyntaxKind::KEY_KW)
8192    }
8193}
8194
8195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8196pub struct EdgeTables {
8197    pub(crate) syntax: SyntaxNode,
8198}
8199impl EdgeTables {
8200    #[inline]
8201    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8202        support::children(&self.syntax)
8203    }
8204    #[inline]
8205    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8206        support::token(&self.syntax, SyntaxKind::L_PAREN)
8207    }
8208    #[inline]
8209    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8210        support::token(&self.syntax, SyntaxKind::R_PAREN)
8211    }
8212    #[inline]
8213    pub fn edge_token(&self) -> Option<SyntaxToken> {
8214        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8215    }
8216    #[inline]
8217    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8218        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8219    }
8220    #[inline]
8221    pub fn tables_token(&self) -> Option<SyntaxToken> {
8222        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8223    }
8224}
8225
8226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8227pub struct ElseClause {
8228    pub(crate) syntax: SyntaxNode,
8229}
8230impl ElseClause {
8231    #[inline]
8232    pub fn expr(&self) -> Option<Expr> {
8233        support::child(&self.syntax)
8234    }
8235    #[inline]
8236    pub fn else_token(&self) -> Option<SyntaxToken> {
8237        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8238    }
8239}
8240
8241#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8242pub struct EnableAlwaysRule {
8243    pub(crate) syntax: SyntaxNode,
8244}
8245impl EnableAlwaysRule {
8246    #[inline]
8247    pub fn always_token(&self) -> Option<SyntaxToken> {
8248        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8249    }
8250    #[inline]
8251    pub fn enable_token(&self) -> Option<SyntaxToken> {
8252        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8253    }
8254    #[inline]
8255    pub fn rule_token(&self) -> Option<SyntaxToken> {
8256        support::token(&self.syntax, SyntaxKind::RULE_KW)
8257    }
8258}
8259
8260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8261pub struct EnableAlwaysTrigger {
8262    pub(crate) syntax: SyntaxNode,
8263}
8264impl EnableAlwaysTrigger {
8265    #[inline]
8266    pub fn always_token(&self) -> Option<SyntaxToken> {
8267        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8268    }
8269    #[inline]
8270    pub fn enable_token(&self) -> Option<SyntaxToken> {
8271        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8272    }
8273    #[inline]
8274    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8275        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8276    }
8277}
8278
8279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8280pub struct EnableReplicaRule {
8281    pub(crate) syntax: SyntaxNode,
8282}
8283impl EnableReplicaRule {
8284    #[inline]
8285    pub fn enable_token(&self) -> Option<SyntaxToken> {
8286        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8287    }
8288    #[inline]
8289    pub fn replica_token(&self) -> Option<SyntaxToken> {
8290        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8291    }
8292    #[inline]
8293    pub fn rule_token(&self) -> Option<SyntaxToken> {
8294        support::token(&self.syntax, SyntaxKind::RULE_KW)
8295    }
8296}
8297
8298#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8299pub struct EnableReplicaTrigger {
8300    pub(crate) syntax: SyntaxNode,
8301}
8302impl EnableReplicaTrigger {
8303    #[inline]
8304    pub fn enable_token(&self) -> Option<SyntaxToken> {
8305        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8306    }
8307    #[inline]
8308    pub fn replica_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8310    }
8311    #[inline]
8312    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8313        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8314    }
8315}
8316
8317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8318pub struct EnableRls {
8319    pub(crate) syntax: SyntaxNode,
8320}
8321impl EnableRls {
8322    #[inline]
8323    pub fn enable_token(&self) -> Option<SyntaxToken> {
8324        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8325    }
8326    #[inline]
8327    pub fn level_token(&self) -> Option<SyntaxToken> {
8328        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8329    }
8330    #[inline]
8331    pub fn row_token(&self) -> Option<SyntaxToken> {
8332        support::token(&self.syntax, SyntaxKind::ROW_KW)
8333    }
8334    #[inline]
8335    pub fn security_token(&self) -> Option<SyntaxToken> {
8336        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8337    }
8338}
8339
8340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8341pub struct EnableRule {
8342    pub(crate) syntax: SyntaxNode,
8343}
8344impl EnableRule {
8345    #[inline]
8346    pub fn enable_token(&self) -> Option<SyntaxToken> {
8347        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8348    }
8349    #[inline]
8350    pub fn rule_token(&self) -> Option<SyntaxToken> {
8351        support::token(&self.syntax, SyntaxKind::RULE_KW)
8352    }
8353}
8354
8355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8356pub struct EnableTrigger {
8357    pub(crate) syntax: SyntaxNode,
8358}
8359impl EnableTrigger {
8360    #[inline]
8361    pub fn enable_token(&self) -> Option<SyntaxToken> {
8362        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8363    }
8364    #[inline]
8365    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8366        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8367    }
8368}
8369
8370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8371pub struct Enforced {
8372    pub(crate) syntax: SyntaxNode,
8373}
8374impl Enforced {
8375    #[inline]
8376    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8377        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8378    }
8379}
8380
8381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8382pub struct EventTriggerWhen {
8383    pub(crate) syntax: SyntaxNode,
8384}
8385impl EventTriggerWhen {
8386    #[inline]
8387    pub fn literals(&self) -> AstChildren<Literal> {
8388        support::children(&self.syntax)
8389    }
8390    #[inline]
8391    pub fn name_ref(&self) -> Option<NameRef> {
8392        support::child(&self.syntax)
8393    }
8394    #[inline]
8395    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8396        support::token(&self.syntax, SyntaxKind::L_PAREN)
8397    }
8398    #[inline]
8399    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8400        support::token(&self.syntax, SyntaxKind::R_PAREN)
8401    }
8402    #[inline]
8403    pub fn in_token(&self) -> Option<SyntaxToken> {
8404        support::token(&self.syntax, SyntaxKind::IN_KW)
8405    }
8406}
8407
8408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8409pub struct EventTriggerWhenClause {
8410    pub(crate) syntax: SyntaxNode,
8411}
8412impl EventTriggerWhenClause {
8413    #[inline]
8414    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8415        support::children(&self.syntax)
8416    }
8417    #[inline]
8418    pub fn when_token(&self) -> Option<SyntaxToken> {
8419        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8420    }
8421}
8422
8423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8424pub struct ExceptTableClause {
8425    pub(crate) syntax: SyntaxNode,
8426}
8427impl ExceptTableClause {
8428    #[inline]
8429    pub fn relation_names(&self) -> AstChildren<RelationName> {
8430        support::children(&self.syntax)
8431    }
8432    #[inline]
8433    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8434        support::token(&self.syntax, SyntaxKind::L_PAREN)
8435    }
8436    #[inline]
8437    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8438        support::token(&self.syntax, SyntaxKind::R_PAREN)
8439    }
8440    #[inline]
8441    pub fn except_token(&self) -> Option<SyntaxToken> {
8442        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8443    }
8444    #[inline]
8445    pub fn table_token(&self) -> Option<SyntaxToken> {
8446        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8447    }
8448}
8449
8450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8451pub struct ExceptTables {
8452    pub(crate) syntax: SyntaxNode,
8453}
8454impl ExceptTables {
8455    #[inline]
8456    pub fn name_refs(&self) -> AstChildren<NameRef> {
8457        support::children(&self.syntax)
8458    }
8459    #[inline]
8460    pub fn except_token(&self) -> Option<SyntaxToken> {
8461        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8462    }
8463}
8464
8465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8466pub struct ExcludeConstraint {
8467    pub(crate) syntax: SyntaxNode,
8468}
8469impl ExcludeConstraint {
8470    #[inline]
8471    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8472        support::child(&self.syntax)
8473    }
8474    #[inline]
8475    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8476        support::child(&self.syntax)
8477    }
8478    #[inline]
8479    pub fn constraint_name(&self) -> Option<ConstraintName> {
8480        support::child(&self.syntax)
8481    }
8482    #[inline]
8483    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
8484        support::child(&self.syntax)
8485    }
8486    #[inline]
8487    pub fn exclude_token(&self) -> Option<SyntaxToken> {
8488        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
8489    }
8490}
8491
8492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8493pub struct Execute {
8494    pub(crate) syntax: SyntaxNode,
8495}
8496impl Execute {
8497    #[inline]
8498    pub fn arg_list(&self) -> Option<ArgList> {
8499        support::child(&self.syntax)
8500    }
8501    #[inline]
8502    pub fn name_ref(&self) -> Option<NameRef> {
8503        support::child(&self.syntax)
8504    }
8505    #[inline]
8506    pub fn execute_token(&self) -> Option<SyntaxToken> {
8507        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
8508    }
8509}
8510
8511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8512pub struct ExistsFn {
8513    pub(crate) syntax: SyntaxNode,
8514}
8515impl ExistsFn {
8516    #[inline]
8517    pub fn select_variant(&self) -> Option<SelectVariant> {
8518        support::child(&self.syntax)
8519    }
8520    #[inline]
8521    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8522        support::token(&self.syntax, SyntaxKind::L_PAREN)
8523    }
8524    #[inline]
8525    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8526        support::token(&self.syntax, SyntaxKind::R_PAREN)
8527    }
8528    #[inline]
8529    pub fn exists_token(&self) -> Option<SyntaxToken> {
8530        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8531    }
8532}
8533
8534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8535pub struct Explain {
8536    pub(crate) syntax: SyntaxNode,
8537}
8538impl Explain {
8539    #[inline]
8540    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
8541        support::child(&self.syntax)
8542    }
8543    #[inline]
8544    pub fn analyse_token(&self) -> Option<SyntaxToken> {
8545        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
8546    }
8547    #[inline]
8548    pub fn analyze_token(&self) -> Option<SyntaxToken> {
8549        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
8550    }
8551    #[inline]
8552    pub fn explain_token(&self) -> Option<SyntaxToken> {
8553        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
8554    }
8555    #[inline]
8556    pub fn verbose_token(&self) -> Option<SyntaxToken> {
8557        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
8558    }
8559}
8560
8561#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8562pub struct ExprAsName {
8563    pub(crate) syntax: SyntaxNode,
8564}
8565impl ExprAsName {
8566    #[inline]
8567    pub fn as_name(&self) -> Option<AsName> {
8568        support::child(&self.syntax)
8569    }
8570    #[inline]
8571    pub fn expr(&self) -> Option<Expr> {
8572        support::child(&self.syntax)
8573    }
8574}
8575
8576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8577pub struct ExprAsNameList {
8578    pub(crate) syntax: SyntaxNode,
8579}
8580impl ExprAsNameList {
8581    #[inline]
8582    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
8583        support::children(&self.syntax)
8584    }
8585}
8586
8587#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8588pub struct ExprType {
8589    pub(crate) syntax: SyntaxNode,
8590}
8591impl ExprType {
8592    #[inline]
8593    pub fn expr(&self) -> Option<Expr> {
8594        support::child(&self.syntax)
8595    }
8596}
8597
8598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8599pub struct ExtractFn {
8600    pub(crate) syntax: SyntaxNode,
8601}
8602impl ExtractFn {
8603    #[inline]
8604    pub fn expr(&self) -> Option<Expr> {
8605        support::child(&self.syntax)
8606    }
8607    #[inline]
8608    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8609        support::token(&self.syntax, SyntaxKind::L_PAREN)
8610    }
8611    #[inline]
8612    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8613        support::token(&self.syntax, SyntaxKind::R_PAREN)
8614    }
8615    #[inline]
8616    pub fn day_token(&self) -> Option<SyntaxToken> {
8617        support::token(&self.syntax, SyntaxKind::DAY_KW)
8618    }
8619    #[inline]
8620    pub fn extract_token(&self) -> Option<SyntaxToken> {
8621        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
8622    }
8623    #[inline]
8624    pub fn from_token(&self) -> Option<SyntaxToken> {
8625        support::token(&self.syntax, SyntaxKind::FROM_KW)
8626    }
8627    #[inline]
8628    pub fn hour_token(&self) -> Option<SyntaxToken> {
8629        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8630    }
8631    #[inline]
8632    pub fn ident_token(&self) -> Option<SyntaxToken> {
8633        support::token(&self.syntax, SyntaxKind::IDENT)
8634    }
8635    #[inline]
8636    pub fn minute_token(&self) -> Option<SyntaxToken> {
8637        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8638    }
8639    #[inline]
8640    pub fn month_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8642    }
8643    #[inline]
8644    pub fn second_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8646    }
8647    #[inline]
8648    pub fn string_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::STRING_KW)
8650    }
8651    #[inline]
8652    pub fn year_token(&self) -> Option<SyntaxToken> {
8653        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8654    }
8655}
8656
8657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8658pub struct FatArrow {
8659    pub(crate) syntax: SyntaxNode,
8660}
8661impl FatArrow {
8662    #[inline]
8663    pub fn eq_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::EQ)
8665    }
8666    #[inline]
8667    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8668        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8669    }
8670}
8671
8672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8673pub struct FdwOption {
8674    pub(crate) syntax: SyntaxNode,
8675}
8676impl FdwOption {
8677    #[inline]
8678    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8679        support::child(&self.syntax)
8680    }
8681    #[inline]
8682    pub fn path(&self) -> Option<Path> {
8683        support::child(&self.syntax)
8684    }
8685    #[inline]
8686    pub fn connection_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
8688    }
8689    #[inline]
8690    pub fn handler_token(&self) -> Option<SyntaxToken> {
8691        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8692    }
8693    #[inline]
8694    pub fn no_token(&self) -> Option<SyntaxToken> {
8695        support::token(&self.syntax, SyntaxKind::NO_KW)
8696    }
8697    #[inline]
8698    pub fn options_token(&self) -> Option<SyntaxToken> {
8699        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
8700    }
8701    #[inline]
8702    pub fn validator_token(&self) -> Option<SyntaxToken> {
8703        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
8704    }
8705}
8706
8707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8708pub struct FdwOptionList {
8709    pub(crate) syntax: SyntaxNode,
8710}
8711impl FdwOptionList {
8712    #[inline]
8713    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
8714        support::children(&self.syntax)
8715    }
8716}
8717
8718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8719pub struct Fetch {
8720    pub(crate) syntax: SyntaxNode,
8721}
8722impl Fetch {
8723    #[inline]
8724    pub fn name_ref(&self) -> Option<NameRef> {
8725        support::child(&self.syntax)
8726    }
8727    #[inline]
8728    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8729        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8730    }
8731    #[inline]
8732    pub fn from_token(&self) -> Option<SyntaxToken> {
8733        support::token(&self.syntax, SyntaxKind::FROM_KW)
8734    }
8735    #[inline]
8736    pub fn in_token(&self) -> Option<SyntaxToken> {
8737        support::token(&self.syntax, SyntaxKind::IN_KW)
8738    }
8739}
8740
8741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8742pub struct FetchClause {
8743    pub(crate) syntax: SyntaxNode,
8744}
8745impl FetchClause {
8746    #[inline]
8747    pub fn expr(&self) -> Option<Expr> {
8748        support::child(&self.syntax)
8749    }
8750    #[inline]
8751    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8753    }
8754    #[inline]
8755    pub fn first_token(&self) -> Option<SyntaxToken> {
8756        support::token(&self.syntax, SyntaxKind::FIRST_KW)
8757    }
8758    #[inline]
8759    pub fn next_token(&self) -> Option<SyntaxToken> {
8760        support::token(&self.syntax, SyntaxKind::NEXT_KW)
8761    }
8762    #[inline]
8763    pub fn only_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8765    }
8766    #[inline]
8767    pub fn row_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::ROW_KW)
8769    }
8770    #[inline]
8771    pub fn rows_token(&self) -> Option<SyntaxToken> {
8772        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8773    }
8774    #[inline]
8775    pub fn ties_token(&self) -> Option<SyntaxToken> {
8776        support::token(&self.syntax, SyntaxKind::TIES_KW)
8777    }
8778    #[inline]
8779    pub fn with_token(&self) -> Option<SyntaxToken> {
8780        support::token(&self.syntax, SyntaxKind::WITH_KW)
8781    }
8782}
8783
8784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8785pub struct FieldExpr {
8786    pub(crate) syntax: SyntaxNode,
8787}
8788impl FieldExpr {
8789    #[inline]
8790    pub fn star_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::STAR)
8792    }
8793    #[inline]
8794    pub fn dot_token(&self) -> Option<SyntaxToken> {
8795        support::token(&self.syntax, SyntaxKind::DOT)
8796    }
8797}
8798
8799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8800pub struct FilterClause {
8801    pub(crate) syntax: SyntaxNode,
8802}
8803impl FilterClause {
8804    #[inline]
8805    pub fn expr(&self) -> Option<Expr> {
8806        support::child(&self.syntax)
8807    }
8808    #[inline]
8809    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::L_PAREN)
8811    }
8812    #[inline]
8813    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8814        support::token(&self.syntax, SyntaxKind::R_PAREN)
8815    }
8816    #[inline]
8817    pub fn filter_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::FILTER_KW)
8819    }
8820    #[inline]
8821    pub fn where_token(&self) -> Option<SyntaxToken> {
8822        support::token(&self.syntax, SyntaxKind::WHERE_KW)
8823    }
8824}
8825
8826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8827pub struct ForPortionOf {
8828    pub(crate) syntax: SyntaxNode,
8829}
8830impl ForPortionOf {
8831    #[inline]
8832    pub fn expr(&self) -> Option<Expr> {
8833        support::child(&self.syntax)
8834    }
8835    #[inline]
8836    pub fn name_ref(&self) -> Option<NameRef> {
8837        support::child(&self.syntax)
8838    }
8839    #[inline]
8840    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8841        support::token(&self.syntax, SyntaxKind::L_PAREN)
8842    }
8843    #[inline]
8844    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8845        support::token(&self.syntax, SyntaxKind::R_PAREN)
8846    }
8847    #[inline]
8848    pub fn for_token(&self) -> Option<SyntaxToken> {
8849        support::token(&self.syntax, SyntaxKind::FOR_KW)
8850    }
8851    #[inline]
8852    pub fn from_token(&self) -> Option<SyntaxToken> {
8853        support::token(&self.syntax, SyntaxKind::FROM_KW)
8854    }
8855    #[inline]
8856    pub fn of_token(&self) -> Option<SyntaxToken> {
8857        support::token(&self.syntax, SyntaxKind::OF_KW)
8858    }
8859    #[inline]
8860    pub fn portion_token(&self) -> Option<SyntaxToken> {
8861        support::token(&self.syntax, SyntaxKind::PORTION_KW)
8862    }
8863    #[inline]
8864    pub fn to_token(&self) -> Option<SyntaxToken> {
8865        support::token(&self.syntax, SyntaxKind::TO_KW)
8866    }
8867}
8868
8869#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8870pub struct ForProvider {
8871    pub(crate) syntax: SyntaxNode,
8872}
8873impl ForProvider {
8874    #[inline]
8875    pub fn literal(&self) -> Option<Literal> {
8876        support::child(&self.syntax)
8877    }
8878    #[inline]
8879    pub fn name_ref(&self) -> Option<NameRef> {
8880        support::child(&self.syntax)
8881    }
8882    #[inline]
8883    pub fn for_token(&self) -> Option<SyntaxToken> {
8884        support::token(&self.syntax, SyntaxKind::FOR_KW)
8885    }
8886}
8887
8888#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8889pub struct ForceRls {
8890    pub(crate) syntax: SyntaxNode,
8891}
8892impl ForceRls {
8893    #[inline]
8894    pub fn force_token(&self) -> Option<SyntaxToken> {
8895        support::token(&self.syntax, SyntaxKind::FORCE_KW)
8896    }
8897    #[inline]
8898    pub fn level_token(&self) -> Option<SyntaxToken> {
8899        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8900    }
8901    #[inline]
8902    pub fn row_token(&self) -> Option<SyntaxToken> {
8903        support::token(&self.syntax, SyntaxKind::ROW_KW)
8904    }
8905    #[inline]
8906    pub fn security_token(&self) -> Option<SyntaxToken> {
8907        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8908    }
8909}
8910
8911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8912pub struct ForeignKeyConstraint {
8913    pub(crate) syntax: SyntaxNode,
8914}
8915impl ForeignKeyConstraint {
8916    #[inline]
8917    pub fn constraint_name(&self) -> Option<ConstraintName> {
8918        support::child(&self.syntax)
8919    }
8920    #[inline]
8921    pub fn match_type(&self) -> Option<MatchType> {
8922        support::child(&self.syntax)
8923    }
8924    #[inline]
8925    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8926        support::child(&self.syntax)
8927    }
8928    #[inline]
8929    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8930        support::child(&self.syntax)
8931    }
8932    #[inline]
8933    pub fn path(&self) -> Option<Path> {
8934        support::child(&self.syntax)
8935    }
8936    #[inline]
8937    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8938        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8939    }
8940    #[inline]
8941    pub fn key_token(&self) -> Option<SyntaxToken> {
8942        support::token(&self.syntax, SyntaxKind::KEY_KW)
8943    }
8944    #[inline]
8945    pub fn references_token(&self) -> Option<SyntaxToken> {
8946        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8947    }
8948}
8949
8950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8951pub struct FrameClause {
8952    pub(crate) syntax: SyntaxNode,
8953}
8954impl FrameClause {
8955    #[inline]
8956    pub fn groups_token(&self) -> Option<SyntaxToken> {
8957        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
8958    }
8959    #[inline]
8960    pub fn range_token(&self) -> Option<SyntaxToken> {
8961        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8962    }
8963    #[inline]
8964    pub fn rows_token(&self) -> Option<SyntaxToken> {
8965        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8966    }
8967}
8968
8969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8970pub struct FromClause {
8971    pub(crate) syntax: SyntaxNode,
8972}
8973impl FromClause {
8974    #[inline]
8975    pub fn from_items(&self) -> AstChildren<FromItem> {
8976        support::children(&self.syntax)
8977    }
8978    #[inline]
8979    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
8980        support::children(&self.syntax)
8981    }
8982    #[inline]
8983    pub fn from_token(&self) -> Option<SyntaxToken> {
8984        support::token(&self.syntax, SyntaxKind::FROM_KW)
8985    }
8986}
8987
8988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8989pub struct FromItem {
8990    pub(crate) syntax: SyntaxNode,
8991}
8992impl FromItem {
8993    #[inline]
8994    pub fn alias(&self) -> Option<Alias> {
8995        support::child(&self.syntax)
8996    }
8997    #[inline]
8998    pub fn call_expr(&self) -> Option<CallExpr> {
8999        support::child(&self.syntax)
9000    }
9001    #[inline]
9002    pub fn cast_expr(&self) -> Option<CastExpr> {
9003        support::child(&self.syntax)
9004    }
9005    #[inline]
9006    pub fn field_expr(&self) -> Option<FieldExpr> {
9007        support::child(&self.syntax)
9008    }
9009    #[inline]
9010    pub fn json_table(&self) -> Option<JsonTable> {
9011        support::child(&self.syntax)
9012    }
9013    #[inline]
9014    pub fn name_ref(&self) -> Option<NameRef> {
9015        support::child(&self.syntax)
9016    }
9017    #[inline]
9018    pub fn paren_expr(&self) -> Option<ParenExpr> {
9019        support::child(&self.syntax)
9020    }
9021    #[inline]
9022    pub fn paren_select(&self) -> Option<ParenSelect> {
9023        support::child(&self.syntax)
9024    }
9025    #[inline]
9026    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
9027        support::child(&self.syntax)
9028    }
9029    #[inline]
9030    pub fn xml_table(&self) -> Option<XmlTable> {
9031        support::child(&self.syntax)
9032    }
9033    #[inline]
9034    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9035        support::token(&self.syntax, SyntaxKind::L_PAREN)
9036    }
9037    #[inline]
9038    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9039        support::token(&self.syntax, SyntaxKind::R_PAREN)
9040    }
9041    #[inline]
9042    pub fn star_token(&self) -> Option<SyntaxToken> {
9043        support::token(&self.syntax, SyntaxKind::STAR)
9044    }
9045    #[inline]
9046    pub fn from_token(&self) -> Option<SyntaxToken> {
9047        support::token(&self.syntax, SyntaxKind::FROM_KW)
9048    }
9049    #[inline]
9050    pub fn lateral_token(&self) -> Option<SyntaxToken> {
9051        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
9052    }
9053    #[inline]
9054    pub fn only_token(&self) -> Option<SyntaxToken> {
9055        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9056    }
9057    #[inline]
9058    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9059        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9060    }
9061    #[inline]
9062    pub fn rows_token(&self) -> Option<SyntaxToken> {
9063        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9064    }
9065    #[inline]
9066    pub fn with_token(&self) -> Option<SyntaxToken> {
9067        support::token(&self.syntax, SyntaxKind::WITH_KW)
9068    }
9069}
9070
9071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9072pub struct FromTable {
9073    pub(crate) syntax: SyntaxNode,
9074}
9075impl FromTable {
9076    #[inline]
9077    pub fn path(&self) -> Option<Path> {
9078        support::child(&self.syntax)
9079    }
9080    #[inline]
9081    pub fn from_token(&self) -> Option<SyntaxToken> {
9082        support::token(&self.syntax, SyntaxKind::FROM_KW)
9083    }
9084}
9085
9086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9087pub struct FuncOptionList {
9088    pub(crate) syntax: SyntaxNode,
9089}
9090impl FuncOptionList {
9091    #[inline]
9092    pub fn options(&self) -> AstChildren<FuncOption> {
9093        support::children(&self.syntax)
9094    }
9095}
9096
9097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9098pub struct FunctionSig {
9099    pub(crate) syntax: SyntaxNode,
9100}
9101impl FunctionSig {
9102    #[inline]
9103    pub fn param_list(&self) -> Option<ParamList> {
9104        support::child(&self.syntax)
9105    }
9106    #[inline]
9107    pub fn path(&self) -> Option<Path> {
9108        support::child(&self.syntax)
9109    }
9110}
9111
9112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9113pub struct FunctionSigList {
9114    pub(crate) syntax: SyntaxNode,
9115}
9116impl FunctionSigList {
9117    #[inline]
9118    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9119        support::children(&self.syntax)
9120    }
9121}
9122
9123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9124pub struct GeneratedConstraint {
9125    pub(crate) syntax: SyntaxNode,
9126}
9127impl GeneratedConstraint {
9128    #[inline]
9129    pub fn expr(&self) -> Option<Expr> {
9130        support::child(&self.syntax)
9131    }
9132    #[inline]
9133    pub fn name_ref(&self) -> Option<NameRef> {
9134        support::child(&self.syntax)
9135    }
9136    #[inline]
9137    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9138        support::child(&self.syntax)
9139    }
9140    #[inline]
9141    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9142        support::token(&self.syntax, SyntaxKind::L_PAREN)
9143    }
9144    #[inline]
9145    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9146        support::token(&self.syntax, SyntaxKind::R_PAREN)
9147    }
9148    #[inline]
9149    pub fn always_token(&self) -> Option<SyntaxToken> {
9150        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9151    }
9152    #[inline]
9153    pub fn as_token(&self) -> Option<SyntaxToken> {
9154        support::token(&self.syntax, SyntaxKind::AS_KW)
9155    }
9156    #[inline]
9157    pub fn by_token(&self) -> Option<SyntaxToken> {
9158        support::token(&self.syntax, SyntaxKind::BY_KW)
9159    }
9160    #[inline]
9161    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9162        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9163    }
9164    #[inline]
9165    pub fn default_token(&self) -> Option<SyntaxToken> {
9166        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9167    }
9168    #[inline]
9169    pub fn generated_token(&self) -> Option<SyntaxToken> {
9170        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9171    }
9172    #[inline]
9173    pub fn identity_token(&self) -> Option<SyntaxToken> {
9174        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9175    }
9176    #[inline]
9177    pub fn stored_token(&self) -> Option<SyntaxToken> {
9178        support::token(&self.syntax, SyntaxKind::STORED_KW)
9179    }
9180}
9181
9182#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9183pub struct Grant {
9184    pub(crate) syntax: SyntaxNode,
9185}
9186impl Grant {
9187    #[inline]
9188    pub fn name_refs(&self) -> AstChildren<NameRef> {
9189        support::children(&self.syntax)
9190    }
9191    #[inline]
9192    pub fn paths(&self) -> AstChildren<Path> {
9193        support::children(&self.syntax)
9194    }
9195    #[inline]
9196    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9197        support::child(&self.syntax)
9198    }
9199    #[inline]
9200    pub fn role_ref(&self) -> Option<RoleRef> {
9201        support::child(&self.syntax)
9202    }
9203    #[inline]
9204    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9205        support::child(&self.syntax)
9206    }
9207    #[inline]
9208    pub fn all_token(&self) -> Option<SyntaxToken> {
9209        support::token(&self.syntax, SyntaxKind::ALL_KW)
9210    }
9211    #[inline]
9212    pub fn by_token(&self) -> Option<SyntaxToken> {
9213        support::token(&self.syntax, SyntaxKind::BY_KW)
9214    }
9215    #[inline]
9216    pub fn grant_token(&self) -> Option<SyntaxToken> {
9217        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9218    }
9219    #[inline]
9220    pub fn granted_token(&self) -> Option<SyntaxToken> {
9221        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9222    }
9223    #[inline]
9224    pub fn in_token(&self) -> Option<SyntaxToken> {
9225        support::token(&self.syntax, SyntaxKind::IN_KW)
9226    }
9227    #[inline]
9228    pub fn on_token(&self) -> Option<SyntaxToken> {
9229        support::token(&self.syntax, SyntaxKind::ON_KW)
9230    }
9231    #[inline]
9232    pub fn option_token(&self) -> Option<SyntaxToken> {
9233        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9234    }
9235    #[inline]
9236    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9237        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9238    }
9239    #[inline]
9240    pub fn schema_token(&self) -> Option<SyntaxToken> {
9241        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9242    }
9243    #[inline]
9244    pub fn table_token(&self) -> Option<SyntaxToken> {
9245        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9246    }
9247    #[inline]
9248    pub fn tables_token(&self) -> Option<SyntaxToken> {
9249        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9250    }
9251    #[inline]
9252    pub fn to_token(&self) -> Option<SyntaxToken> {
9253        support::token(&self.syntax, SyntaxKind::TO_KW)
9254    }
9255    #[inline]
9256    pub fn with_token(&self) -> Option<SyntaxToken> {
9257        support::token(&self.syntax, SyntaxKind::WITH_KW)
9258    }
9259}
9260
9261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9262pub struct GrantDefaultPrivileges {
9263    pub(crate) syntax: SyntaxNode,
9264}
9265impl GrantDefaultPrivileges {
9266    #[inline]
9267    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9268        support::child(&self.syntax)
9269    }
9270    #[inline]
9271    pub fn privileges(&self) -> Option<Privileges> {
9272        support::child(&self.syntax)
9273    }
9274    #[inline]
9275    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9276        support::child(&self.syntax)
9277    }
9278    #[inline]
9279    pub fn grant_token(&self) -> Option<SyntaxToken> {
9280        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9281    }
9282    #[inline]
9283    pub fn on_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::ON_KW)
9285    }
9286    #[inline]
9287    pub fn option_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9289    }
9290    #[inline]
9291    pub fn to_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::TO_KW)
9293    }
9294    #[inline]
9295    pub fn with_token(&self) -> Option<SyntaxToken> {
9296        support::token(&self.syntax, SyntaxKind::WITH_KW)
9297    }
9298}
9299
9300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9301pub struct GraphPatternQualifier {
9302    pub(crate) syntax: SyntaxNode,
9303}
9304impl GraphPatternQualifier {
9305    #[inline]
9306    pub fn literal(&self) -> Option<Literal> {
9307        support::child(&self.syntax)
9308    }
9309    #[inline]
9310    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9311        support::token(&self.syntax, SyntaxKind::L_CURLY)
9312    }
9313    #[inline]
9314    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9315        support::token(&self.syntax, SyntaxKind::R_CURLY)
9316    }
9317    #[inline]
9318    pub fn comma_token(&self) -> Option<SyntaxToken> {
9319        support::token(&self.syntax, SyntaxKind::COMMA)
9320    }
9321}
9322
9323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9324pub struct GraphTableFn {
9325    pub(crate) syntax: SyntaxNode,
9326}
9327impl GraphTableFn {
9328    #[inline]
9329    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9330        support::child(&self.syntax)
9331    }
9332    #[inline]
9333    pub fn path(&self) -> Option<Path> {
9334        support::child(&self.syntax)
9335    }
9336    #[inline]
9337    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9338        support::child(&self.syntax)
9339    }
9340    #[inline]
9341    pub fn where_clause(&self) -> Option<WhereClause> {
9342        support::child(&self.syntax)
9343    }
9344    #[inline]
9345    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9346        support::token(&self.syntax, SyntaxKind::L_PAREN)
9347    }
9348    #[inline]
9349    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::R_PAREN)
9351    }
9352    #[inline]
9353    pub fn columns_token(&self) -> Option<SyntaxToken> {
9354        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9355    }
9356    #[inline]
9357    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9358        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9359    }
9360    #[inline]
9361    pub fn match_token(&self) -> Option<SyntaxToken> {
9362        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9363    }
9364}
9365
9366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9367pub struct GroupByClause {
9368    pub(crate) syntax: SyntaxNode,
9369}
9370impl GroupByClause {
9371    #[inline]
9372    pub fn group_by_list(&self) -> Option<GroupByList> {
9373        support::child(&self.syntax)
9374    }
9375    #[inline]
9376    pub fn all_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::ALL_KW)
9378    }
9379    #[inline]
9380    pub fn by_token(&self) -> Option<SyntaxToken> {
9381        support::token(&self.syntax, SyntaxKind::BY_KW)
9382    }
9383    #[inline]
9384    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9385        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9386    }
9387    #[inline]
9388    pub fn group_token(&self) -> Option<SyntaxToken> {
9389        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9390    }
9391}
9392
9393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9394pub struct GroupByList {
9395    pub(crate) syntax: SyntaxNode,
9396}
9397impl GroupByList {
9398    #[inline]
9399    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9400        support::children(&self.syntax)
9401    }
9402}
9403
9404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9405pub struct GroupingCube {
9406    pub(crate) syntax: SyntaxNode,
9407}
9408impl GroupingCube {
9409    #[inline]
9410    pub fn expr(&self) -> Option<Expr> {
9411        support::child(&self.syntax)
9412    }
9413    #[inline]
9414    pub fn cube_token(&self) -> Option<SyntaxToken> {
9415        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9416    }
9417}
9418
9419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9420pub struct GroupingExpr {
9421    pub(crate) syntax: SyntaxNode,
9422}
9423impl GroupingExpr {
9424    #[inline]
9425    pub fn expr(&self) -> Option<Expr> {
9426        support::child(&self.syntax)
9427    }
9428}
9429
9430#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9431pub struct GroupingRollup {
9432    pub(crate) syntax: SyntaxNode,
9433}
9434impl GroupingRollup {
9435    #[inline]
9436    pub fn expr(&self) -> Option<Expr> {
9437        support::child(&self.syntax)
9438    }
9439    #[inline]
9440    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9441        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9442    }
9443}
9444
9445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9446pub struct GroupingSets {
9447    pub(crate) syntax: SyntaxNode,
9448}
9449impl GroupingSets {
9450    #[inline]
9451    pub fn expr(&self) -> Option<Expr> {
9452        support::child(&self.syntax)
9453    }
9454    #[inline]
9455    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9456        support::token(&self.syntax, SyntaxKind::L_PAREN)
9457    }
9458    #[inline]
9459    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9460        support::token(&self.syntax, SyntaxKind::R_PAREN)
9461    }
9462    #[inline]
9463    pub fn grouping_token(&self) -> Option<SyntaxToken> {
9464        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
9465    }
9466    #[inline]
9467    pub fn sets_token(&self) -> Option<SyntaxToken> {
9468        support::token(&self.syntax, SyntaxKind::SETS_KW)
9469    }
9470}
9471
9472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9473pub struct Gteq {
9474    pub(crate) syntax: SyntaxNode,
9475}
9476impl Gteq {
9477    #[inline]
9478    pub fn eq_token(&self) -> Option<SyntaxToken> {
9479        support::token(&self.syntax, SyntaxKind::EQ)
9480    }
9481    #[inline]
9482    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9483        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9484    }
9485}
9486
9487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9488pub struct HandlerClause {
9489    pub(crate) syntax: SyntaxNode,
9490}
9491impl HandlerClause {
9492    #[inline]
9493    pub fn path(&self) -> Option<Path> {
9494        support::child(&self.syntax)
9495    }
9496    #[inline]
9497    pub fn handler_token(&self) -> Option<SyntaxToken> {
9498        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9499    }
9500}
9501
9502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9503pub struct HavingClause {
9504    pub(crate) syntax: SyntaxNode,
9505}
9506impl HavingClause {
9507    #[inline]
9508    pub fn expr(&self) -> Option<Expr> {
9509        support::child(&self.syntax)
9510    }
9511    #[inline]
9512    pub fn having_token(&self) -> Option<SyntaxToken> {
9513        support::token(&self.syntax, SyntaxKind::HAVING_KW)
9514    }
9515}
9516
9517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9518pub struct IfExists {
9519    pub(crate) syntax: SyntaxNode,
9520}
9521impl IfExists {
9522    #[inline]
9523    pub fn exists_token(&self) -> Option<SyntaxToken> {
9524        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9525    }
9526    #[inline]
9527    pub fn if_token(&self) -> Option<SyntaxToken> {
9528        support::token(&self.syntax, SyntaxKind::IF_KW)
9529    }
9530}
9531
9532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9533pub struct IfNotExists {
9534    pub(crate) syntax: SyntaxNode,
9535}
9536impl IfNotExists {
9537    #[inline]
9538    pub fn exists_token(&self) -> Option<SyntaxToken> {
9539        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9540    }
9541    #[inline]
9542    pub fn if_token(&self) -> Option<SyntaxToken> {
9543        support::token(&self.syntax, SyntaxKind::IF_KW)
9544    }
9545    #[inline]
9546    pub fn not_token(&self) -> Option<SyntaxToken> {
9547        support::token(&self.syntax, SyntaxKind::NOT_KW)
9548    }
9549}
9550
9551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9552pub struct ImportForeignSchema {
9553    pub(crate) syntax: SyntaxNode,
9554}
9555impl ImportForeignSchema {
9556    #[inline]
9557    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9558        support::child(&self.syntax)
9559    }
9560    #[inline]
9561    pub fn except_tables(&self) -> Option<ExceptTables> {
9562        support::child(&self.syntax)
9563    }
9564    #[inline]
9565    pub fn into_schema(&self) -> Option<IntoSchema> {
9566        support::child(&self.syntax)
9567    }
9568    #[inline]
9569    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
9570        support::child(&self.syntax)
9571    }
9572    #[inline]
9573    pub fn name_ref(&self) -> Option<NameRef> {
9574        support::child(&self.syntax)
9575    }
9576    #[inline]
9577    pub fn server_name(&self) -> Option<ServerName> {
9578        support::child(&self.syntax)
9579    }
9580    #[inline]
9581    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9582        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9583    }
9584    #[inline]
9585    pub fn from_token(&self) -> Option<SyntaxToken> {
9586        support::token(&self.syntax, SyntaxKind::FROM_KW)
9587    }
9588    #[inline]
9589    pub fn import_token(&self) -> Option<SyntaxToken> {
9590        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
9591    }
9592    #[inline]
9593    pub fn schema_token(&self) -> Option<SyntaxToken> {
9594        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9595    }
9596}
9597
9598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9599pub struct IndexExpr {
9600    pub(crate) syntax: SyntaxNode,
9601}
9602impl IndexExpr {
9603    #[inline]
9604    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9605        support::token(&self.syntax, SyntaxKind::L_BRACK)
9606    }
9607    #[inline]
9608    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9609        support::token(&self.syntax, SyntaxKind::R_BRACK)
9610    }
9611}
9612
9613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9614pub struct Inherit {
9615    pub(crate) syntax: SyntaxNode,
9616}
9617impl Inherit {
9618    #[inline]
9619    pub fn path(&self) -> Option<Path> {
9620        support::child(&self.syntax)
9621    }
9622    #[inline]
9623    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9624        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9625    }
9626}
9627
9628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9629pub struct InheritTable {
9630    pub(crate) syntax: SyntaxNode,
9631}
9632impl InheritTable {
9633    #[inline]
9634    pub fn path(&self) -> Option<Path> {
9635        support::child(&self.syntax)
9636    }
9637    #[inline]
9638    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9639        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9640    }
9641}
9642
9643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9644pub struct Inherits {
9645    pub(crate) syntax: SyntaxNode,
9646}
9647impl Inherits {
9648    #[inline]
9649    pub fn paths(&self) -> AstChildren<Path> {
9650        support::children(&self.syntax)
9651    }
9652    #[inline]
9653    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9654        support::token(&self.syntax, SyntaxKind::L_PAREN)
9655    }
9656    #[inline]
9657    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9658        support::token(&self.syntax, SyntaxKind::R_PAREN)
9659    }
9660    #[inline]
9661    pub fn inherits_token(&self) -> Option<SyntaxToken> {
9662        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
9663    }
9664}
9665
9666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9667pub struct InitiallyDeferredConstraintOption {
9668    pub(crate) syntax: SyntaxNode,
9669}
9670impl InitiallyDeferredConstraintOption {
9671    #[inline]
9672    pub fn deferred_token(&self) -> Option<SyntaxToken> {
9673        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
9674    }
9675    #[inline]
9676    pub fn initially_token(&self) -> Option<SyntaxToken> {
9677        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9678    }
9679}
9680
9681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9682pub struct InitiallyImmediateConstraintOption {
9683    pub(crate) syntax: SyntaxNode,
9684}
9685impl InitiallyImmediateConstraintOption {
9686    #[inline]
9687    pub fn immediate_token(&self) -> Option<SyntaxToken> {
9688        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
9689    }
9690    #[inline]
9691    pub fn initially_token(&self) -> Option<SyntaxToken> {
9692        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9693    }
9694}
9695
9696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9697pub struct Insert {
9698    pub(crate) syntax: SyntaxNode,
9699}
9700impl Insert {
9701    #[inline]
9702    pub fn alias(&self) -> Option<Alias> {
9703        support::child(&self.syntax)
9704    }
9705    #[inline]
9706    pub fn column_list(&self) -> Option<ColumnList> {
9707        support::child(&self.syntax)
9708    }
9709    #[inline]
9710    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
9711        support::child(&self.syntax)
9712    }
9713    #[inline]
9714    pub fn path(&self) -> Option<Path> {
9715        support::child(&self.syntax)
9716    }
9717    #[inline]
9718    pub fn returning_clause(&self) -> Option<ReturningClause> {
9719        support::child(&self.syntax)
9720    }
9721    #[inline]
9722    pub fn stmt(&self) -> Option<Stmt> {
9723        support::child(&self.syntax)
9724    }
9725    #[inline]
9726    pub fn values(&self) -> Option<Values> {
9727        support::child(&self.syntax)
9728    }
9729    #[inline]
9730    pub fn with_clause(&self) -> Option<WithClause> {
9731        support::child(&self.syntax)
9732    }
9733    #[inline]
9734    pub fn default_token(&self) -> Option<SyntaxToken> {
9735        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9736    }
9737    #[inline]
9738    pub fn insert_token(&self) -> Option<SyntaxToken> {
9739        support::token(&self.syntax, SyntaxKind::INSERT_KW)
9740    }
9741    #[inline]
9742    pub fn into_token(&self) -> Option<SyntaxToken> {
9743        support::token(&self.syntax, SyntaxKind::INTO_KW)
9744    }
9745    #[inline]
9746    pub fn overriding_token(&self) -> Option<SyntaxToken> {
9747        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
9748    }
9749    #[inline]
9750    pub fn system_token(&self) -> Option<SyntaxToken> {
9751        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
9752    }
9753    #[inline]
9754    pub fn user_token(&self) -> Option<SyntaxToken> {
9755        support::token(&self.syntax, SyntaxKind::USER_KW)
9756    }
9757    #[inline]
9758    pub fn value_token(&self) -> Option<SyntaxToken> {
9759        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9760    }
9761    #[inline]
9762    pub fn values_token(&self) -> Option<SyntaxToken> {
9763        support::token(&self.syntax, SyntaxKind::VALUES_KW)
9764    }
9765}
9766
9767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9768pub struct IntervalType {
9769    pub(crate) syntax: SyntaxNode,
9770}
9771impl IntervalType {
9772    #[inline]
9773    pub fn literal(&self) -> Option<Literal> {
9774        support::child(&self.syntax)
9775    }
9776    #[inline]
9777    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9778        support::token(&self.syntax, SyntaxKind::L_PAREN)
9779    }
9780    #[inline]
9781    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9782        support::token(&self.syntax, SyntaxKind::R_PAREN)
9783    }
9784    #[inline]
9785    pub fn day_token(&self) -> Option<SyntaxToken> {
9786        support::token(&self.syntax, SyntaxKind::DAY_KW)
9787    }
9788    #[inline]
9789    pub fn hour_token(&self) -> Option<SyntaxToken> {
9790        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9791    }
9792    #[inline]
9793    pub fn interval_token(&self) -> Option<SyntaxToken> {
9794        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
9795    }
9796    #[inline]
9797    pub fn minute_token(&self) -> Option<SyntaxToken> {
9798        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9799    }
9800    #[inline]
9801    pub fn month_token(&self) -> Option<SyntaxToken> {
9802        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9803    }
9804    #[inline]
9805    pub fn second_token(&self) -> Option<SyntaxToken> {
9806        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9807    }
9808    #[inline]
9809    pub fn setof_token(&self) -> Option<SyntaxToken> {
9810        support::token(&self.syntax, SyntaxKind::SETOF_KW)
9811    }
9812    #[inline]
9813    pub fn to_token(&self) -> Option<SyntaxToken> {
9814        support::token(&self.syntax, SyntaxKind::TO_KW)
9815    }
9816    #[inline]
9817    pub fn year_token(&self) -> Option<SyntaxToken> {
9818        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9819    }
9820}
9821
9822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9823pub struct IntoClause {
9824    pub(crate) syntax: SyntaxNode,
9825}
9826impl IntoClause {
9827    #[inline]
9828    pub fn path(&self) -> Option<Path> {
9829        support::child(&self.syntax)
9830    }
9831    #[inline]
9832    pub fn persistence(&self) -> Option<Persistence> {
9833        support::child(&self.syntax)
9834    }
9835    #[inline]
9836    pub fn into_token(&self) -> Option<SyntaxToken> {
9837        support::token(&self.syntax, SyntaxKind::INTO_KW)
9838    }
9839    #[inline]
9840    pub fn table_token(&self) -> Option<SyntaxToken> {
9841        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9842    }
9843}
9844
9845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9846pub struct IntoSchema {
9847    pub(crate) syntax: SyntaxNode,
9848}
9849impl IntoSchema {
9850    #[inline]
9851    pub fn name_ref(&self) -> Option<NameRef> {
9852        support::child(&self.syntax)
9853    }
9854    #[inline]
9855    pub fn into_token(&self) -> Option<SyntaxToken> {
9856        support::token(&self.syntax, SyntaxKind::INTO_KW)
9857    }
9858}
9859
9860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9861pub struct IsDistinctFrom {
9862    pub(crate) syntax: SyntaxNode,
9863}
9864impl IsDistinctFrom {
9865    #[inline]
9866    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9867        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9868    }
9869    #[inline]
9870    pub fn from_token(&self) -> Option<SyntaxToken> {
9871        support::token(&self.syntax, SyntaxKind::FROM_KW)
9872    }
9873    #[inline]
9874    pub fn is_token(&self) -> Option<SyntaxToken> {
9875        support::token(&self.syntax, SyntaxKind::IS_KW)
9876    }
9877}
9878
9879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9880pub struct IsJson {
9881    pub(crate) syntax: SyntaxNode,
9882}
9883impl IsJson {
9884    #[inline]
9885    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9886        support::child(&self.syntax)
9887    }
9888    #[inline]
9889    pub fn is_token(&self) -> Option<SyntaxToken> {
9890        support::token(&self.syntax, SyntaxKind::IS_KW)
9891    }
9892    #[inline]
9893    pub fn json_token(&self) -> Option<SyntaxToken> {
9894        support::token(&self.syntax, SyntaxKind::JSON_KW)
9895    }
9896}
9897
9898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9899pub struct IsJsonArray {
9900    pub(crate) syntax: SyntaxNode,
9901}
9902impl IsJsonArray {
9903    #[inline]
9904    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9905        support::child(&self.syntax)
9906    }
9907    #[inline]
9908    pub fn array_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9910    }
9911    #[inline]
9912    pub fn is_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::IS_KW)
9914    }
9915    #[inline]
9916    pub fn json_token(&self) -> Option<SyntaxToken> {
9917        support::token(&self.syntax, SyntaxKind::JSON_KW)
9918    }
9919}
9920
9921#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9922pub struct IsJsonObject {
9923    pub(crate) syntax: SyntaxNode,
9924}
9925impl IsJsonObject {
9926    #[inline]
9927    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9928        support::child(&self.syntax)
9929    }
9930    #[inline]
9931    pub fn is_token(&self) -> Option<SyntaxToken> {
9932        support::token(&self.syntax, SyntaxKind::IS_KW)
9933    }
9934    #[inline]
9935    pub fn json_token(&self) -> Option<SyntaxToken> {
9936        support::token(&self.syntax, SyntaxKind::JSON_KW)
9937    }
9938    #[inline]
9939    pub fn object_token(&self) -> Option<SyntaxToken> {
9940        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9941    }
9942}
9943
9944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9945pub struct IsJsonScalar {
9946    pub(crate) syntax: SyntaxNode,
9947}
9948impl IsJsonScalar {
9949    #[inline]
9950    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9951        support::child(&self.syntax)
9952    }
9953    #[inline]
9954    pub fn is_token(&self) -> Option<SyntaxToken> {
9955        support::token(&self.syntax, SyntaxKind::IS_KW)
9956    }
9957    #[inline]
9958    pub fn json_token(&self) -> Option<SyntaxToken> {
9959        support::token(&self.syntax, SyntaxKind::JSON_KW)
9960    }
9961    #[inline]
9962    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9963        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9964    }
9965}
9966
9967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9968pub struct IsJsonValue {
9969    pub(crate) syntax: SyntaxNode,
9970}
9971impl IsJsonValue {
9972    #[inline]
9973    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9974        support::child(&self.syntax)
9975    }
9976    #[inline]
9977    pub fn is_token(&self) -> Option<SyntaxToken> {
9978        support::token(&self.syntax, SyntaxKind::IS_KW)
9979    }
9980    #[inline]
9981    pub fn json_token(&self) -> Option<SyntaxToken> {
9982        support::token(&self.syntax, SyntaxKind::JSON_KW)
9983    }
9984    #[inline]
9985    pub fn value_token(&self) -> Option<SyntaxToken> {
9986        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9987    }
9988}
9989
9990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9991pub struct IsLabel {
9992    pub(crate) syntax: SyntaxNode,
9993}
9994impl IsLabel {
9995    #[inline]
9996    pub fn expr(&self) -> Option<Expr> {
9997        support::child(&self.syntax)
9998    }
9999    #[inline]
10000    pub fn is_token(&self) -> Option<SyntaxToken> {
10001        support::token(&self.syntax, SyntaxKind::IS_KW)
10002    }
10003}
10004
10005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10006pub struct IsNormalized {
10007    pub(crate) syntax: SyntaxNode,
10008}
10009impl IsNormalized {
10010    #[inline]
10011    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10012        support::child(&self.syntax)
10013    }
10014    #[inline]
10015    pub fn is_token(&self) -> Option<SyntaxToken> {
10016        support::token(&self.syntax, SyntaxKind::IS_KW)
10017    }
10018    #[inline]
10019    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10020        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10021    }
10022}
10023
10024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10025pub struct IsNot {
10026    pub(crate) syntax: SyntaxNode,
10027}
10028impl IsNot {
10029    #[inline]
10030    pub fn is_token(&self) -> Option<SyntaxToken> {
10031        support::token(&self.syntax, SyntaxKind::IS_KW)
10032    }
10033    #[inline]
10034    pub fn not_token(&self) -> Option<SyntaxToken> {
10035        support::token(&self.syntax, SyntaxKind::NOT_KW)
10036    }
10037}
10038
10039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10040pub struct IsNotDistinctFrom {
10041    pub(crate) syntax: SyntaxNode,
10042}
10043impl IsNotDistinctFrom {
10044    #[inline]
10045    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10046        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10047    }
10048    #[inline]
10049    pub fn from_token(&self) -> Option<SyntaxToken> {
10050        support::token(&self.syntax, SyntaxKind::FROM_KW)
10051    }
10052    #[inline]
10053    pub fn is_token(&self) -> Option<SyntaxToken> {
10054        support::token(&self.syntax, SyntaxKind::IS_KW)
10055    }
10056    #[inline]
10057    pub fn not_token(&self) -> Option<SyntaxToken> {
10058        support::token(&self.syntax, SyntaxKind::NOT_KW)
10059    }
10060}
10061
10062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10063pub struct IsNotJson {
10064    pub(crate) syntax: SyntaxNode,
10065}
10066impl IsNotJson {
10067    #[inline]
10068    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10069        support::child(&self.syntax)
10070    }
10071    #[inline]
10072    pub fn is_token(&self) -> Option<SyntaxToken> {
10073        support::token(&self.syntax, SyntaxKind::IS_KW)
10074    }
10075    #[inline]
10076    pub fn json_token(&self) -> Option<SyntaxToken> {
10077        support::token(&self.syntax, SyntaxKind::JSON_KW)
10078    }
10079    #[inline]
10080    pub fn not_token(&self) -> Option<SyntaxToken> {
10081        support::token(&self.syntax, SyntaxKind::NOT_KW)
10082    }
10083}
10084
10085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10086pub struct IsNotJsonArray {
10087    pub(crate) syntax: SyntaxNode,
10088}
10089impl IsNotJsonArray {
10090    #[inline]
10091    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10092        support::child(&self.syntax)
10093    }
10094    #[inline]
10095    pub fn array_token(&self) -> Option<SyntaxToken> {
10096        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10097    }
10098    #[inline]
10099    pub fn is_token(&self) -> Option<SyntaxToken> {
10100        support::token(&self.syntax, SyntaxKind::IS_KW)
10101    }
10102    #[inline]
10103    pub fn json_token(&self) -> Option<SyntaxToken> {
10104        support::token(&self.syntax, SyntaxKind::JSON_KW)
10105    }
10106    #[inline]
10107    pub fn not_token(&self) -> Option<SyntaxToken> {
10108        support::token(&self.syntax, SyntaxKind::NOT_KW)
10109    }
10110}
10111
10112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10113pub struct IsNotJsonObject {
10114    pub(crate) syntax: SyntaxNode,
10115}
10116impl IsNotJsonObject {
10117    #[inline]
10118    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10119        support::child(&self.syntax)
10120    }
10121    #[inline]
10122    pub fn is_token(&self) -> Option<SyntaxToken> {
10123        support::token(&self.syntax, SyntaxKind::IS_KW)
10124    }
10125    #[inline]
10126    pub fn json_token(&self) -> Option<SyntaxToken> {
10127        support::token(&self.syntax, SyntaxKind::JSON_KW)
10128    }
10129    #[inline]
10130    pub fn not_token(&self) -> Option<SyntaxToken> {
10131        support::token(&self.syntax, SyntaxKind::NOT_KW)
10132    }
10133    #[inline]
10134    pub fn object_token(&self) -> Option<SyntaxToken> {
10135        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10136    }
10137}
10138
10139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10140pub struct IsNotJsonScalar {
10141    pub(crate) syntax: SyntaxNode,
10142}
10143impl IsNotJsonScalar {
10144    #[inline]
10145    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10146        support::child(&self.syntax)
10147    }
10148    #[inline]
10149    pub fn is_token(&self) -> Option<SyntaxToken> {
10150        support::token(&self.syntax, SyntaxKind::IS_KW)
10151    }
10152    #[inline]
10153    pub fn json_token(&self) -> Option<SyntaxToken> {
10154        support::token(&self.syntax, SyntaxKind::JSON_KW)
10155    }
10156    #[inline]
10157    pub fn not_token(&self) -> Option<SyntaxToken> {
10158        support::token(&self.syntax, SyntaxKind::NOT_KW)
10159    }
10160    #[inline]
10161    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10162        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10163    }
10164}
10165
10166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10167pub struct IsNotJsonValue {
10168    pub(crate) syntax: SyntaxNode,
10169}
10170impl IsNotJsonValue {
10171    #[inline]
10172    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10173        support::child(&self.syntax)
10174    }
10175    #[inline]
10176    pub fn is_token(&self) -> Option<SyntaxToken> {
10177        support::token(&self.syntax, SyntaxKind::IS_KW)
10178    }
10179    #[inline]
10180    pub fn json_token(&self) -> Option<SyntaxToken> {
10181        support::token(&self.syntax, SyntaxKind::JSON_KW)
10182    }
10183    #[inline]
10184    pub fn not_token(&self) -> Option<SyntaxToken> {
10185        support::token(&self.syntax, SyntaxKind::NOT_KW)
10186    }
10187    #[inline]
10188    pub fn value_token(&self) -> Option<SyntaxToken> {
10189        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10190    }
10191}
10192
10193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10194pub struct IsNotNormalized {
10195    pub(crate) syntax: SyntaxNode,
10196}
10197impl IsNotNormalized {
10198    #[inline]
10199    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10200        support::child(&self.syntax)
10201    }
10202    #[inline]
10203    pub fn is_token(&self) -> Option<SyntaxToken> {
10204        support::token(&self.syntax, SyntaxKind::IS_KW)
10205    }
10206    #[inline]
10207    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10208        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10209    }
10210    #[inline]
10211    pub fn not_token(&self) -> Option<SyntaxToken> {
10212        support::token(&self.syntax, SyntaxKind::NOT_KW)
10213    }
10214}
10215
10216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10217pub struct Join {
10218    pub(crate) syntax: SyntaxNode,
10219}
10220impl Join {
10221    #[inline]
10222    pub fn from_item(&self) -> Option<FromItem> {
10223        support::child(&self.syntax)
10224    }
10225    #[inline]
10226    pub fn join_type(&self) -> Option<JoinType> {
10227        support::child(&self.syntax)
10228    }
10229    #[inline]
10230    pub fn on_clause(&self) -> Option<OnClause> {
10231        support::child(&self.syntax)
10232    }
10233    #[inline]
10234    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10235        support::child(&self.syntax)
10236    }
10237    #[inline]
10238    pub fn natural_token(&self) -> Option<SyntaxToken> {
10239        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10240    }
10241}
10242
10243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10244pub struct JoinCross {
10245    pub(crate) syntax: SyntaxNode,
10246}
10247impl JoinCross {
10248    #[inline]
10249    pub fn cross_token(&self) -> Option<SyntaxToken> {
10250        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10251    }
10252    #[inline]
10253    pub fn join_token(&self) -> Option<SyntaxToken> {
10254        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10255    }
10256}
10257
10258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10259pub struct JoinExpr {
10260    pub(crate) syntax: SyntaxNode,
10261}
10262impl JoinExpr {
10263    #[inline]
10264    pub fn from_item(&self) -> Option<FromItem> {
10265        support::child(&self.syntax)
10266    }
10267    #[inline]
10268    pub fn join(&self) -> Option<Join> {
10269        support::child(&self.syntax)
10270    }
10271    #[inline]
10272    pub fn join_expr(&self) -> Option<JoinExpr> {
10273        support::child(&self.syntax)
10274    }
10275}
10276
10277#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10278pub struct JoinFull {
10279    pub(crate) syntax: SyntaxNode,
10280}
10281impl JoinFull {
10282    #[inline]
10283    pub fn full_token(&self) -> Option<SyntaxToken> {
10284        support::token(&self.syntax, SyntaxKind::FULL_KW)
10285    }
10286    #[inline]
10287    pub fn join_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10289    }
10290    #[inline]
10291    pub fn outer_token(&self) -> Option<SyntaxToken> {
10292        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10293    }
10294}
10295
10296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10297pub struct JoinInner {
10298    pub(crate) syntax: SyntaxNode,
10299}
10300impl JoinInner {
10301    #[inline]
10302    pub fn inner_token(&self) -> Option<SyntaxToken> {
10303        support::token(&self.syntax, SyntaxKind::INNER_KW)
10304    }
10305    #[inline]
10306    pub fn join_token(&self) -> Option<SyntaxToken> {
10307        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10308    }
10309}
10310
10311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10312pub struct JoinLeft {
10313    pub(crate) syntax: SyntaxNode,
10314}
10315impl JoinLeft {
10316    #[inline]
10317    pub fn join_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10319    }
10320    #[inline]
10321    pub fn left_token(&self) -> Option<SyntaxToken> {
10322        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10323    }
10324    #[inline]
10325    pub fn outer_token(&self) -> Option<SyntaxToken> {
10326        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10327    }
10328}
10329
10330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10331pub struct JoinRight {
10332    pub(crate) syntax: SyntaxNode,
10333}
10334impl JoinRight {
10335    #[inline]
10336    pub fn join_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10338    }
10339    #[inline]
10340    pub fn outer_token(&self) -> Option<SyntaxToken> {
10341        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10342    }
10343    #[inline]
10344    pub fn right_token(&self) -> Option<SyntaxToken> {
10345        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10346    }
10347}
10348
10349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10350pub struct JoinUsingClause {
10351    pub(crate) syntax: SyntaxNode,
10352}
10353impl JoinUsingClause {
10354    #[inline]
10355    pub fn alias(&self) -> Option<Alias> {
10356        support::child(&self.syntax)
10357    }
10358    #[inline]
10359    pub fn column_list(&self) -> Option<ColumnList> {
10360        support::child(&self.syntax)
10361    }
10362    #[inline]
10363    pub fn using_token(&self) -> Option<SyntaxToken> {
10364        support::token(&self.syntax, SyntaxKind::USING_KW)
10365    }
10366}
10367
10368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10369pub struct JsonArrayAggFn {
10370    pub(crate) syntax: SyntaxNode,
10371}
10372impl JsonArrayAggFn {
10373    #[inline]
10374    pub fn expr(&self) -> Option<Expr> {
10375        support::child(&self.syntax)
10376    }
10377    #[inline]
10378    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10379        support::child(&self.syntax)
10380    }
10381    #[inline]
10382    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10383        support::child(&self.syntax)
10384    }
10385    #[inline]
10386    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10387        support::children(&self.syntax)
10388    }
10389    #[inline]
10390    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10391        support::token(&self.syntax, SyntaxKind::L_PAREN)
10392    }
10393    #[inline]
10394    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10395        support::token(&self.syntax, SyntaxKind::R_PAREN)
10396    }
10397    #[inline]
10398    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10399        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10400    }
10401}
10402
10403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10404pub struct JsonArrayFn {
10405    pub(crate) syntax: SyntaxNode,
10406}
10407impl JsonArrayFn {
10408    #[inline]
10409    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10410        support::children(&self.syntax)
10411    }
10412    #[inline]
10413    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10414        support::child(&self.syntax)
10415    }
10416    #[inline]
10417    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10418        support::child(&self.syntax)
10419    }
10420    #[inline]
10421    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10422        support::children(&self.syntax)
10423    }
10424    #[inline]
10425    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10426        support::token(&self.syntax, SyntaxKind::L_PAREN)
10427    }
10428    #[inline]
10429    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10430        support::token(&self.syntax, SyntaxKind::R_PAREN)
10431    }
10432    #[inline]
10433    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10434        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10435    }
10436}
10437
10438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10439pub struct JsonBehaviorClause {
10440    pub(crate) syntax: SyntaxNode,
10441}
10442impl JsonBehaviorClause {
10443    #[inline]
10444    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10445        support::child(&self.syntax)
10446    }
10447}
10448
10449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10450pub struct JsonBehaviorDefault {
10451    pub(crate) syntax: SyntaxNode,
10452}
10453impl JsonBehaviorDefault {
10454    #[inline]
10455    pub fn expr(&self) -> Option<Expr> {
10456        support::child(&self.syntax)
10457    }
10458    #[inline]
10459    pub fn default_token(&self) -> Option<SyntaxToken> {
10460        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10461    }
10462}
10463
10464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10465pub struct JsonBehaviorEmptyArray {
10466    pub(crate) syntax: SyntaxNode,
10467}
10468impl JsonBehaviorEmptyArray {
10469    #[inline]
10470    pub fn array_token(&self) -> Option<SyntaxToken> {
10471        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10472    }
10473    #[inline]
10474    pub fn empty_token(&self) -> Option<SyntaxToken> {
10475        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10476    }
10477}
10478
10479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10480pub struct JsonBehaviorEmptyObject {
10481    pub(crate) syntax: SyntaxNode,
10482}
10483impl JsonBehaviorEmptyObject {
10484    #[inline]
10485    pub fn empty_token(&self) -> Option<SyntaxToken> {
10486        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10487    }
10488    #[inline]
10489    pub fn object_token(&self) -> Option<SyntaxToken> {
10490        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10491    }
10492}
10493
10494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10495pub struct JsonBehaviorError {
10496    pub(crate) syntax: SyntaxNode,
10497}
10498impl JsonBehaviorError {
10499    #[inline]
10500    pub fn error_token(&self) -> Option<SyntaxToken> {
10501        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10502    }
10503}
10504
10505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10506pub struct JsonBehaviorFalse {
10507    pub(crate) syntax: SyntaxNode,
10508}
10509impl JsonBehaviorFalse {
10510    #[inline]
10511    pub fn false_token(&self) -> Option<SyntaxToken> {
10512        support::token(&self.syntax, SyntaxKind::FALSE_KW)
10513    }
10514}
10515
10516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10517pub struct JsonBehaviorNull {
10518    pub(crate) syntax: SyntaxNode,
10519}
10520impl JsonBehaviorNull {
10521    #[inline]
10522    pub fn null_token(&self) -> Option<SyntaxToken> {
10523        support::token(&self.syntax, SyntaxKind::NULL_KW)
10524    }
10525}
10526
10527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10528pub struct JsonBehaviorTrue {
10529    pub(crate) syntax: SyntaxNode,
10530}
10531impl JsonBehaviorTrue {
10532    #[inline]
10533    pub fn true_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::TRUE_KW)
10535    }
10536}
10537
10538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10539pub struct JsonBehaviorUnknown {
10540    pub(crate) syntax: SyntaxNode,
10541}
10542impl JsonBehaviorUnknown {
10543    #[inline]
10544    pub fn unknown_token(&self) -> Option<SyntaxToken> {
10545        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
10546    }
10547}
10548
10549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10550pub struct JsonEncodingClause {
10551    pub(crate) syntax: SyntaxNode,
10552}
10553impl JsonEncodingClause {
10554    #[inline]
10555    pub fn name_ref(&self) -> Option<NameRef> {
10556        support::child(&self.syntax)
10557    }
10558    #[inline]
10559    pub fn encoding_token(&self) -> Option<SyntaxToken> {
10560        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
10561    }
10562}
10563
10564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10565pub struct JsonExistsFn {
10566    pub(crate) syntax: SyntaxNode,
10567}
10568impl JsonExistsFn {
10569    #[inline]
10570    pub fn expr(&self) -> Option<Expr> {
10571        support::child(&self.syntax)
10572    }
10573    #[inline]
10574    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10575        support::child(&self.syntax)
10576    }
10577    #[inline]
10578    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10579        support::child(&self.syntax)
10580    }
10581    #[inline]
10582    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10583        support::child(&self.syntax)
10584    }
10585    #[inline]
10586    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10587        support::token(&self.syntax, SyntaxKind::L_PAREN)
10588    }
10589    #[inline]
10590    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10591        support::token(&self.syntax, SyntaxKind::R_PAREN)
10592    }
10593    #[inline]
10594    pub fn comma_token(&self) -> Option<SyntaxToken> {
10595        support::token(&self.syntax, SyntaxKind::COMMA)
10596    }
10597    #[inline]
10598    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
10599        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
10600    }
10601}
10602
10603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10604pub struct JsonExprFormat {
10605    pub(crate) syntax: SyntaxNode,
10606}
10607impl JsonExprFormat {
10608    #[inline]
10609    pub fn expr(&self) -> Option<Expr> {
10610        support::child(&self.syntax)
10611    }
10612    #[inline]
10613    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10614        support::child(&self.syntax)
10615    }
10616}
10617
10618#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10619pub struct JsonFn {
10620    pub(crate) syntax: SyntaxNode,
10621}
10622impl JsonFn {
10623    #[inline]
10624    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
10625        support::child(&self.syntax)
10626    }
10627    #[inline]
10628    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10629        support::child(&self.syntax)
10630    }
10631    #[inline]
10632    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10633        support::token(&self.syntax, SyntaxKind::L_PAREN)
10634    }
10635    #[inline]
10636    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10637        support::token(&self.syntax, SyntaxKind::R_PAREN)
10638    }
10639    #[inline]
10640    pub fn json_token(&self) -> Option<SyntaxToken> {
10641        support::token(&self.syntax, SyntaxKind::JSON_KW)
10642    }
10643}
10644
10645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10646pub struct JsonFormatClause {
10647    pub(crate) syntax: SyntaxNode,
10648}
10649impl JsonFormatClause {
10650    #[inline]
10651    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
10652        support::child(&self.syntax)
10653    }
10654    #[inline]
10655    pub fn format_token(&self) -> Option<SyntaxToken> {
10656        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
10657    }
10658    #[inline]
10659    pub fn json_token(&self) -> Option<SyntaxToken> {
10660        support::token(&self.syntax, SyntaxKind::JSON_KW)
10661    }
10662}
10663
10664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10665pub struct JsonKeyValue {
10666    pub(crate) syntax: SyntaxNode,
10667}
10668impl JsonKeyValue {
10669    #[inline]
10670    pub fn expr(&self) -> Option<Expr> {
10671        support::child(&self.syntax)
10672    }
10673    #[inline]
10674    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
10675        support::child(&self.syntax)
10676    }
10677    #[inline]
10678    pub fn colon_token(&self) -> Option<SyntaxToken> {
10679        support::token(&self.syntax, SyntaxKind::COLON)
10680    }
10681    #[inline]
10682    pub fn value_token(&self) -> Option<SyntaxToken> {
10683        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10684    }
10685}
10686
10687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10688pub struct JsonKeysUniqueClause {
10689    pub(crate) syntax: SyntaxNode,
10690}
10691impl JsonKeysUniqueClause {
10692    #[inline]
10693    pub fn keys_token(&self) -> Option<SyntaxToken> {
10694        support::token(&self.syntax, SyntaxKind::KEYS_KW)
10695    }
10696    #[inline]
10697    pub fn unique_token(&self) -> Option<SyntaxToken> {
10698        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
10699    }
10700    #[inline]
10701    pub fn with_token(&self) -> Option<SyntaxToken> {
10702        support::token(&self.syntax, SyntaxKind::WITH_KW)
10703    }
10704    #[inline]
10705    pub fn without_token(&self) -> Option<SyntaxToken> {
10706        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10707    }
10708}
10709
10710#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10711pub struct JsonNullClause {
10712    pub(crate) syntax: SyntaxNode,
10713}
10714impl JsonNullClause {
10715    #[inline]
10716    pub fn absent_token(&self) -> Option<SyntaxToken> {
10717        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
10718    }
10719    #[inline]
10720    pub fn null_token(&self) -> Option<SyntaxToken> {
10721        support::token(&self.syntax, SyntaxKind::NULL_KW)
10722    }
10723    #[inline]
10724    pub fn on_token(&self) -> Option<SyntaxToken> {
10725        support::token(&self.syntax, SyntaxKind::ON_KW)
10726    }
10727}
10728
10729#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10730pub struct JsonObjectAggFn {
10731    pub(crate) syntax: SyntaxNode,
10732}
10733impl JsonObjectAggFn {
10734    #[inline]
10735    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
10736        support::child(&self.syntax)
10737    }
10738    #[inline]
10739    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10740        support::child(&self.syntax)
10741    }
10742    #[inline]
10743    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10744        support::child(&self.syntax)
10745    }
10746    #[inline]
10747    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10748        support::child(&self.syntax)
10749    }
10750    #[inline]
10751    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10752        support::token(&self.syntax, SyntaxKind::L_PAREN)
10753    }
10754    #[inline]
10755    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10756        support::token(&self.syntax, SyntaxKind::R_PAREN)
10757    }
10758    #[inline]
10759    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
10760        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
10761    }
10762}
10763
10764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10765pub struct JsonObjectFn {
10766    pub(crate) syntax: SyntaxNode,
10767}
10768impl JsonObjectFn {
10769    #[inline]
10770    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
10771        support::children(&self.syntax)
10772    }
10773    #[inline]
10774    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10775        support::child(&self.syntax)
10776    }
10777    #[inline]
10778    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10779        support::child(&self.syntax)
10780    }
10781    #[inline]
10782    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10783        support::child(&self.syntax)
10784    }
10785    #[inline]
10786    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10787        support::token(&self.syntax, SyntaxKind::L_PAREN)
10788    }
10789    #[inline]
10790    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10791        support::token(&self.syntax, SyntaxKind::R_PAREN)
10792    }
10793    #[inline]
10794    pub fn json_object_token(&self) -> Option<SyntaxToken> {
10795        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
10796    }
10797}
10798
10799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10800pub struct JsonOnEmptyClause {
10801    pub(crate) syntax: SyntaxNode,
10802}
10803impl JsonOnEmptyClause {
10804    #[inline]
10805    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10806        support::child(&self.syntax)
10807    }
10808    #[inline]
10809    pub fn empty_token(&self) -> Option<SyntaxToken> {
10810        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10811    }
10812    #[inline]
10813    pub fn on_token(&self) -> Option<SyntaxToken> {
10814        support::token(&self.syntax, SyntaxKind::ON_KW)
10815    }
10816}
10817
10818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10819pub struct JsonOnErrorClause {
10820    pub(crate) syntax: SyntaxNode,
10821}
10822impl JsonOnErrorClause {
10823    #[inline]
10824    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10825        support::child(&self.syntax)
10826    }
10827    #[inline]
10828    pub fn error_token(&self) -> Option<SyntaxToken> {
10829        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10830    }
10831    #[inline]
10832    pub fn on_token(&self) -> Option<SyntaxToken> {
10833        support::token(&self.syntax, SyntaxKind::ON_KW)
10834    }
10835}
10836
10837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10838pub struct JsonPassingArg {
10839    pub(crate) syntax: SyntaxNode,
10840}
10841impl JsonPassingArg {
10842    #[inline]
10843    pub fn expr(&self) -> Option<Expr> {
10844        support::child(&self.syntax)
10845    }
10846    #[inline]
10847    pub fn name(&self) -> Option<Name> {
10848        support::child(&self.syntax)
10849    }
10850    #[inline]
10851    pub fn as_token(&self) -> Option<SyntaxToken> {
10852        support::token(&self.syntax, SyntaxKind::AS_KW)
10853    }
10854}
10855
10856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10857pub struct JsonPassingClause {
10858    pub(crate) syntax: SyntaxNode,
10859}
10860impl JsonPassingClause {
10861    #[inline]
10862    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
10863        support::children(&self.syntax)
10864    }
10865    #[inline]
10866    pub fn passing_token(&self) -> Option<SyntaxToken> {
10867        support::token(&self.syntax, SyntaxKind::PASSING_KW)
10868    }
10869}
10870
10871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10872pub struct JsonPathClause {
10873    pub(crate) syntax: SyntaxNode,
10874}
10875impl JsonPathClause {
10876    #[inline]
10877    pub fn expr(&self) -> Option<Expr> {
10878        support::child(&self.syntax)
10879    }
10880    #[inline]
10881    pub fn path_token(&self) -> Option<SyntaxToken> {
10882        support::token(&self.syntax, SyntaxKind::PATH_KW)
10883    }
10884}
10885
10886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10887pub struct JsonQueryFn {
10888    pub(crate) syntax: SyntaxNode,
10889}
10890impl JsonQueryFn {
10891    #[inline]
10892    pub fn expr(&self) -> Option<Expr> {
10893        support::child(&self.syntax)
10894    }
10895    #[inline]
10896    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10897        support::child(&self.syntax)
10898    }
10899    #[inline]
10900    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10901        support::child(&self.syntax)
10902    }
10903    #[inline]
10904    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10905        support::child(&self.syntax)
10906    }
10907    #[inline]
10908    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10909        support::child(&self.syntax)
10910    }
10911    #[inline]
10912    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10913        support::child(&self.syntax)
10914    }
10915    #[inline]
10916    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10917        support::child(&self.syntax)
10918    }
10919    #[inline]
10920    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10921        support::token(&self.syntax, SyntaxKind::L_PAREN)
10922    }
10923    #[inline]
10924    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10925        support::token(&self.syntax, SyntaxKind::R_PAREN)
10926    }
10927    #[inline]
10928    pub fn comma_token(&self) -> Option<SyntaxToken> {
10929        support::token(&self.syntax, SyntaxKind::COMMA)
10930    }
10931    #[inline]
10932    pub fn json_query_token(&self) -> Option<SyntaxToken> {
10933        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
10934    }
10935}
10936
10937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10938pub struct JsonQuotesClause {
10939    pub(crate) syntax: SyntaxNode,
10940}
10941impl JsonQuotesClause {
10942    #[inline]
10943    pub fn keep_token(&self) -> Option<SyntaxToken> {
10944        support::token(&self.syntax, SyntaxKind::KEEP_KW)
10945    }
10946    #[inline]
10947    pub fn omit_token(&self) -> Option<SyntaxToken> {
10948        support::token(&self.syntax, SyntaxKind::OMIT_KW)
10949    }
10950    #[inline]
10951    pub fn on_token(&self) -> Option<SyntaxToken> {
10952        support::token(&self.syntax, SyntaxKind::ON_KW)
10953    }
10954    #[inline]
10955    pub fn quotes_token(&self) -> Option<SyntaxToken> {
10956        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
10957    }
10958    #[inline]
10959    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10960        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10961    }
10962    #[inline]
10963    pub fn string_token(&self) -> Option<SyntaxToken> {
10964        support::token(&self.syntax, SyntaxKind::STRING_KW)
10965    }
10966}
10967
10968#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10969pub struct JsonReturningClause {
10970    pub(crate) syntax: SyntaxNode,
10971}
10972impl JsonReturningClause {
10973    #[inline]
10974    pub fn ty(&self) -> Option<Type> {
10975        support::child(&self.syntax)
10976    }
10977    #[inline]
10978    pub fn returning_token(&self) -> Option<SyntaxToken> {
10979        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
10980    }
10981}
10982
10983#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10984pub struct JsonScalarFn {
10985    pub(crate) syntax: SyntaxNode,
10986}
10987impl JsonScalarFn {
10988    #[inline]
10989    pub fn expr(&self) -> Option<Expr> {
10990        support::child(&self.syntax)
10991    }
10992    #[inline]
10993    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10994        support::token(&self.syntax, SyntaxKind::L_PAREN)
10995    }
10996    #[inline]
10997    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10998        support::token(&self.syntax, SyntaxKind::R_PAREN)
10999    }
11000    #[inline]
11001    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
11002        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
11003    }
11004}
11005
11006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11007pub struct JsonSelectFormat {
11008    pub(crate) syntax: SyntaxNode,
11009}
11010impl JsonSelectFormat {
11011    #[inline]
11012    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11013        support::child(&self.syntax)
11014    }
11015    #[inline]
11016    pub fn select_variant(&self) -> Option<SelectVariant> {
11017        support::child(&self.syntax)
11018    }
11019}
11020
11021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11022pub struct JsonSerializeFn {
11023    pub(crate) syntax: SyntaxNode,
11024}
11025impl JsonSerializeFn {
11026    #[inline]
11027    pub fn expr(&self) -> Option<Expr> {
11028        support::child(&self.syntax)
11029    }
11030    #[inline]
11031    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11032        support::child(&self.syntax)
11033    }
11034    #[inline]
11035    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11036        support::child(&self.syntax)
11037    }
11038    #[inline]
11039    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11040        support::token(&self.syntax, SyntaxKind::L_PAREN)
11041    }
11042    #[inline]
11043    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11044        support::token(&self.syntax, SyntaxKind::R_PAREN)
11045    }
11046    #[inline]
11047    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
11048        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
11049    }
11050}
11051
11052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11053pub struct JsonTable {
11054    pub(crate) syntax: SyntaxNode,
11055}
11056impl JsonTable {
11057    #[inline]
11058    pub fn expr(&self) -> Option<Expr> {
11059        support::child(&self.syntax)
11060    }
11061    #[inline]
11062    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11063        support::child(&self.syntax)
11064    }
11065    #[inline]
11066    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11067        support::child(&self.syntax)
11068    }
11069    #[inline]
11070    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11071        support::child(&self.syntax)
11072    }
11073    #[inline]
11074    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11075        support::child(&self.syntax)
11076    }
11077    #[inline]
11078    pub fn name(&self) -> Option<Name> {
11079        support::child(&self.syntax)
11080    }
11081    #[inline]
11082    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11083        support::token(&self.syntax, SyntaxKind::L_PAREN)
11084    }
11085    #[inline]
11086    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11087        support::token(&self.syntax, SyntaxKind::R_PAREN)
11088    }
11089    #[inline]
11090    pub fn comma_token(&self) -> Option<SyntaxToken> {
11091        support::token(&self.syntax, SyntaxKind::COMMA)
11092    }
11093    #[inline]
11094    pub fn as_token(&self) -> Option<SyntaxToken> {
11095        support::token(&self.syntax, SyntaxKind::AS_KW)
11096    }
11097    #[inline]
11098    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11099        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11100    }
11101}
11102
11103#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11104pub struct JsonTableColumn {
11105    pub(crate) syntax: SyntaxNode,
11106}
11107impl JsonTableColumn {
11108    #[inline]
11109    pub fn expr(&self) -> Option<Expr> {
11110        support::child(&self.syntax)
11111    }
11112    #[inline]
11113    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11114        support::child(&self.syntax)
11115    }
11116    #[inline]
11117    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11118        support::child(&self.syntax)
11119    }
11120    #[inline]
11121    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11122        support::child(&self.syntax)
11123    }
11124    #[inline]
11125    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11126        support::child(&self.syntax)
11127    }
11128    #[inline]
11129    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11130        support::child(&self.syntax)
11131    }
11132    #[inline]
11133    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11134        support::child(&self.syntax)
11135    }
11136    #[inline]
11137    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11138        support::child(&self.syntax)
11139    }
11140    #[inline]
11141    pub fn name(&self) -> Option<Name> {
11142        support::child(&self.syntax)
11143    }
11144    #[inline]
11145    pub fn ty(&self) -> Option<Type> {
11146        support::child(&self.syntax)
11147    }
11148    #[inline]
11149    pub fn as_token(&self) -> Option<SyntaxToken> {
11150        support::token(&self.syntax, SyntaxKind::AS_KW)
11151    }
11152    #[inline]
11153    pub fn exists_token(&self) -> Option<SyntaxToken> {
11154        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11155    }
11156    #[inline]
11157    pub fn for_token(&self) -> Option<SyntaxToken> {
11158        support::token(&self.syntax, SyntaxKind::FOR_KW)
11159    }
11160    #[inline]
11161    pub fn nested_token(&self) -> Option<SyntaxToken> {
11162        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11163    }
11164    #[inline]
11165    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11166        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11167    }
11168    #[inline]
11169    pub fn path_token(&self) -> Option<SyntaxToken> {
11170        support::token(&self.syntax, SyntaxKind::PATH_KW)
11171    }
11172}
11173
11174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11175pub struct JsonTableColumnList {
11176    pub(crate) syntax: SyntaxNode,
11177}
11178impl JsonTableColumnList {
11179    #[inline]
11180    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11181        support::children(&self.syntax)
11182    }
11183    #[inline]
11184    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11185        support::token(&self.syntax, SyntaxKind::L_PAREN)
11186    }
11187    #[inline]
11188    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11189        support::token(&self.syntax, SyntaxKind::R_PAREN)
11190    }
11191    #[inline]
11192    pub fn columns_token(&self) -> Option<SyntaxToken> {
11193        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11194    }
11195}
11196
11197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11198pub struct JsonValueExpr {
11199    pub(crate) syntax: SyntaxNode,
11200}
11201impl JsonValueExpr {
11202    #[inline]
11203    pub fn expr(&self) -> Option<Expr> {
11204        support::child(&self.syntax)
11205    }
11206    #[inline]
11207    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11208        support::child(&self.syntax)
11209    }
11210}
11211
11212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11213pub struct JsonValueFn {
11214    pub(crate) syntax: SyntaxNode,
11215}
11216impl JsonValueFn {
11217    #[inline]
11218    pub fn expr(&self) -> Option<Expr> {
11219        support::child(&self.syntax)
11220    }
11221    #[inline]
11222    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11223        support::child(&self.syntax)
11224    }
11225    #[inline]
11226    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11227        support::child(&self.syntax)
11228    }
11229    #[inline]
11230    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11231        support::child(&self.syntax)
11232    }
11233    #[inline]
11234    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11235        support::child(&self.syntax)
11236    }
11237    #[inline]
11238    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11239        support::token(&self.syntax, SyntaxKind::L_PAREN)
11240    }
11241    #[inline]
11242    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11243        support::token(&self.syntax, SyntaxKind::R_PAREN)
11244    }
11245    #[inline]
11246    pub fn comma_token(&self) -> Option<SyntaxToken> {
11247        support::token(&self.syntax, SyntaxKind::COMMA)
11248    }
11249    #[inline]
11250    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11251        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11252    }
11253}
11254
11255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11256pub struct JsonWrapperBehaviorClause {
11257    pub(crate) syntax: SyntaxNode,
11258}
11259impl JsonWrapperBehaviorClause {
11260    #[inline]
11261    pub fn array_token(&self) -> Option<SyntaxToken> {
11262        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11263    }
11264    #[inline]
11265    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11266        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11267    }
11268    #[inline]
11269    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11270        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11271    }
11272    #[inline]
11273    pub fn with_token(&self) -> Option<SyntaxToken> {
11274        support::token(&self.syntax, SyntaxKind::WITH_KW)
11275    }
11276    #[inline]
11277    pub fn without_token(&self) -> Option<SyntaxToken> {
11278        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11279    }
11280    #[inline]
11281    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11282        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11283    }
11284}
11285
11286#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11287pub struct LabelAndProperties {
11288    pub(crate) syntax: SyntaxNode,
11289}
11290impl LabelAndProperties {
11291    #[inline]
11292    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11293        support::child(&self.syntax)
11294    }
11295    #[inline]
11296    pub fn name(&self) -> Option<Name> {
11297        support::child(&self.syntax)
11298    }
11299    #[inline]
11300    pub fn default_token(&self) -> Option<SyntaxToken> {
11301        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11302    }
11303    #[inline]
11304    pub fn label_token(&self) -> Option<SyntaxToken> {
11305        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11306    }
11307}
11308
11309#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11310pub struct LabelAndPropertiesList {
11311    pub(crate) syntax: SyntaxNode,
11312}
11313impl LabelAndPropertiesList {
11314    #[inline]
11315    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11316        support::children(&self.syntax)
11317    }
11318}
11319
11320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11321pub struct LanguageFuncOption {
11322    pub(crate) syntax: SyntaxNode,
11323}
11324impl LanguageFuncOption {
11325    #[inline]
11326    pub fn name_ref(&self) -> Option<NameRef> {
11327        support::child(&self.syntax)
11328    }
11329    #[inline]
11330    pub fn language_token(&self) -> Option<SyntaxToken> {
11331        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11332    }
11333}
11334
11335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11336pub struct LeakproofFuncOption {
11337    pub(crate) syntax: SyntaxNode,
11338}
11339impl LeakproofFuncOption {
11340    #[inline]
11341    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11342        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11343    }
11344    #[inline]
11345    pub fn not_token(&self) -> Option<SyntaxToken> {
11346        support::token(&self.syntax, SyntaxKind::NOT_KW)
11347    }
11348}
11349
11350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11351pub struct LikeClause {
11352    pub(crate) syntax: SyntaxNode,
11353}
11354impl LikeClause {
11355    #[inline]
11356    pub fn like_options(&self) -> AstChildren<LikeOption> {
11357        support::children(&self.syntax)
11358    }
11359    #[inline]
11360    pub fn path(&self) -> Option<Path> {
11361        support::child(&self.syntax)
11362    }
11363    #[inline]
11364    pub fn like_token(&self) -> Option<SyntaxToken> {
11365        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11366    }
11367}
11368
11369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11370pub struct LikeOption {
11371    pub(crate) syntax: SyntaxNode,
11372}
11373impl LikeOption {
11374    #[inline]
11375    pub fn all_token(&self) -> Option<SyntaxToken> {
11376        support::token(&self.syntax, SyntaxKind::ALL_KW)
11377    }
11378    #[inline]
11379    pub fn comments_token(&self) -> Option<SyntaxToken> {
11380        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11381    }
11382    #[inline]
11383    pub fn compression_token(&self) -> Option<SyntaxToken> {
11384        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11385    }
11386    #[inline]
11387    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11389    }
11390    #[inline]
11391    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11392        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11393    }
11394    #[inline]
11395    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11396        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11397    }
11398    #[inline]
11399    pub fn generated_token(&self) -> Option<SyntaxToken> {
11400        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11401    }
11402    #[inline]
11403    pub fn identity_token(&self) -> Option<SyntaxToken> {
11404        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11405    }
11406    #[inline]
11407    pub fn including_token(&self) -> Option<SyntaxToken> {
11408        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11409    }
11410    #[inline]
11411    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11412        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11413    }
11414    #[inline]
11415    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11416        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11417    }
11418    #[inline]
11419    pub fn storage_token(&self) -> Option<SyntaxToken> {
11420        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11421    }
11422}
11423
11424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11425pub struct LimitClause {
11426    pub(crate) syntax: SyntaxNode,
11427}
11428impl LimitClause {
11429    #[inline]
11430    pub fn expr(&self) -> Option<Expr> {
11431        support::child(&self.syntax)
11432    }
11433    #[inline]
11434    pub fn all_token(&self) -> Option<SyntaxToken> {
11435        support::token(&self.syntax, SyntaxKind::ALL_KW)
11436    }
11437    #[inline]
11438    pub fn limit_token(&self) -> Option<SyntaxToken> {
11439        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11440    }
11441}
11442
11443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11444pub struct LimitToTables {
11445    pub(crate) syntax: SyntaxNode,
11446}
11447impl LimitToTables {
11448    #[inline]
11449    pub fn name_refs(&self) -> AstChildren<NameRef> {
11450        support::children(&self.syntax)
11451    }
11452    #[inline]
11453    pub fn limit_token(&self) -> Option<SyntaxToken> {
11454        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11455    }
11456    #[inline]
11457    pub fn to_token(&self) -> Option<SyntaxToken> {
11458        support::token(&self.syntax, SyntaxKind::TO_KW)
11459    }
11460}
11461
11462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11463pub struct Listen {
11464    pub(crate) syntax: SyntaxNode,
11465}
11466impl Listen {
11467    #[inline]
11468    pub fn name(&self) -> Option<Name> {
11469        support::child(&self.syntax)
11470    }
11471    #[inline]
11472    pub fn listen_token(&self) -> Option<SyntaxToken> {
11473        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
11474    }
11475}
11476
11477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11478pub struct Literal {
11479    pub(crate) syntax: SyntaxNode,
11480}
11481impl Literal {}
11482
11483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11484pub struct Load {
11485    pub(crate) syntax: SyntaxNode,
11486}
11487impl Load {
11488    #[inline]
11489    pub fn literal(&self) -> Option<Literal> {
11490        support::child(&self.syntax)
11491    }
11492    #[inline]
11493    pub fn load_token(&self) -> Option<SyntaxToken> {
11494        support::token(&self.syntax, SyntaxKind::LOAD_KW)
11495    }
11496}
11497
11498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11499pub struct Lock {
11500    pub(crate) syntax: SyntaxNode,
11501}
11502impl Lock {
11503    #[inline]
11504    pub fn table_list(&self) -> Option<TableList> {
11505        support::child(&self.syntax)
11506    }
11507    #[inline]
11508    pub fn lock_token(&self) -> Option<SyntaxToken> {
11509        support::token(&self.syntax, SyntaxKind::LOCK_KW)
11510    }
11511    #[inline]
11512    pub fn table_token(&self) -> Option<SyntaxToken> {
11513        support::token(&self.syntax, SyntaxKind::TABLE_KW)
11514    }
11515}
11516
11517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11518pub struct LockingClause {
11519    pub(crate) syntax: SyntaxNode,
11520}
11521impl LockingClause {
11522    #[inline]
11523    pub fn for_token(&self) -> Option<SyntaxToken> {
11524        support::token(&self.syntax, SyntaxKind::FOR_KW)
11525    }
11526}
11527
11528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11529pub struct Lteq {
11530    pub(crate) syntax: SyntaxNode,
11531}
11532impl Lteq {
11533    #[inline]
11534    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11536    }
11537    #[inline]
11538    pub fn eq_token(&self) -> Option<SyntaxToken> {
11539        support::token(&self.syntax, SyntaxKind::EQ)
11540    }
11541}
11542
11543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11544pub struct MatchFull {
11545    pub(crate) syntax: SyntaxNode,
11546}
11547impl MatchFull {
11548    #[inline]
11549    pub fn full_token(&self) -> Option<SyntaxToken> {
11550        support::token(&self.syntax, SyntaxKind::FULL_KW)
11551    }
11552    #[inline]
11553    pub fn match_token(&self) -> Option<SyntaxToken> {
11554        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11555    }
11556}
11557
11558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11559pub struct MatchPartial {
11560    pub(crate) syntax: SyntaxNode,
11561}
11562impl MatchPartial {
11563    #[inline]
11564    pub fn match_token(&self) -> Option<SyntaxToken> {
11565        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11566    }
11567    #[inline]
11568    pub fn partial_token(&self) -> Option<SyntaxToken> {
11569        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
11570    }
11571}
11572
11573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11574pub struct MatchSimple {
11575    pub(crate) syntax: SyntaxNode,
11576}
11577impl MatchSimple {
11578    #[inline]
11579    pub fn match_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11581    }
11582    #[inline]
11583    pub fn simple_token(&self) -> Option<SyntaxToken> {
11584        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
11585    }
11586}
11587
11588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11589pub struct Materialized {
11590    pub(crate) syntax: SyntaxNode,
11591}
11592impl Materialized {
11593    #[inline]
11594    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11595        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11596    }
11597}
11598
11599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11600pub struct Merge {
11601    pub(crate) syntax: SyntaxNode,
11602}
11603impl Merge {
11604    #[inline]
11605    pub fn alias(&self) -> Option<Alias> {
11606        support::child(&self.syntax)
11607    }
11608    #[inline]
11609    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
11610        support::children(&self.syntax)
11611    }
11612    #[inline]
11613    pub fn relation_name(&self) -> Option<RelationName> {
11614        support::child(&self.syntax)
11615    }
11616    #[inline]
11617    pub fn returning_clause(&self) -> Option<ReturningClause> {
11618        support::child(&self.syntax)
11619    }
11620    #[inline]
11621    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
11622        support::child(&self.syntax)
11623    }
11624    #[inline]
11625    pub fn with_clause(&self) -> Option<WithClause> {
11626        support::child(&self.syntax)
11627    }
11628    #[inline]
11629    pub fn into_token(&self) -> Option<SyntaxToken> {
11630        support::token(&self.syntax, SyntaxKind::INTO_KW)
11631    }
11632    #[inline]
11633    pub fn merge_token(&self) -> Option<SyntaxToken> {
11634        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11635    }
11636}
11637
11638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11639pub struct MergeDelete {
11640    pub(crate) syntax: SyntaxNode,
11641}
11642impl MergeDelete {
11643    #[inline]
11644    pub fn delete_token(&self) -> Option<SyntaxToken> {
11645        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11646    }
11647}
11648
11649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11650pub struct MergeDoNothing {
11651    pub(crate) syntax: SyntaxNode,
11652}
11653impl MergeDoNothing {
11654    #[inline]
11655    pub fn do_token(&self) -> Option<SyntaxToken> {
11656        support::token(&self.syntax, SyntaxKind::DO_KW)
11657    }
11658    #[inline]
11659    pub fn nothing_token(&self) -> Option<SyntaxToken> {
11660        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
11661    }
11662}
11663
11664#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11665pub struct MergeInsert {
11666    pub(crate) syntax: SyntaxNode,
11667}
11668impl MergeInsert {
11669    #[inline]
11670    pub fn column_list(&self) -> Option<ColumnList> {
11671        support::child(&self.syntax)
11672    }
11673    #[inline]
11674    pub fn values(&self) -> Option<Values> {
11675        support::child(&self.syntax)
11676    }
11677    #[inline]
11678    pub fn default_token(&self) -> Option<SyntaxToken> {
11679        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11680    }
11681    #[inline]
11682    pub fn insert_token(&self) -> Option<SyntaxToken> {
11683        support::token(&self.syntax, SyntaxKind::INSERT_KW)
11684    }
11685    #[inline]
11686    pub fn overriding_token(&self) -> Option<SyntaxToken> {
11687        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
11688    }
11689    #[inline]
11690    pub fn system_token(&self) -> Option<SyntaxToken> {
11691        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
11692    }
11693    #[inline]
11694    pub fn user_token(&self) -> Option<SyntaxToken> {
11695        support::token(&self.syntax, SyntaxKind::USER_KW)
11696    }
11697    #[inline]
11698    pub fn values_token(&self) -> Option<SyntaxToken> {
11699        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11700    }
11701}
11702
11703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11704pub struct MergePartitions {
11705    pub(crate) syntax: SyntaxNode,
11706}
11707impl MergePartitions {
11708    #[inline]
11709    pub fn path(&self) -> Option<Path> {
11710        support::child(&self.syntax)
11711    }
11712    #[inline]
11713    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11714        support::token(&self.syntax, SyntaxKind::L_PAREN)
11715    }
11716    #[inline]
11717    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11718        support::token(&self.syntax, SyntaxKind::R_PAREN)
11719    }
11720    #[inline]
11721    pub fn into_token(&self) -> Option<SyntaxToken> {
11722        support::token(&self.syntax, SyntaxKind::INTO_KW)
11723    }
11724    #[inline]
11725    pub fn merge_token(&self) -> Option<SyntaxToken> {
11726        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11727    }
11728    #[inline]
11729    pub fn partitions_token(&self) -> Option<SyntaxToken> {
11730        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
11731    }
11732}
11733
11734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11735pub struct MergeUpdate {
11736    pub(crate) syntax: SyntaxNode,
11737}
11738impl MergeUpdate {
11739    #[inline]
11740    pub fn set_clause(&self) -> Option<SetClause> {
11741        support::child(&self.syntax)
11742    }
11743    #[inline]
11744    pub fn set_token(&self) -> Option<SyntaxToken> {
11745        support::token(&self.syntax, SyntaxKind::SET_KW)
11746    }
11747    #[inline]
11748    pub fn update_token(&self) -> Option<SyntaxToken> {
11749        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11750    }
11751}
11752
11753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11754pub struct MergeWhenMatched {
11755    pub(crate) syntax: SyntaxNode,
11756}
11757impl MergeWhenMatched {
11758    #[inline]
11759    pub fn expr(&self) -> Option<Expr> {
11760        support::child(&self.syntax)
11761    }
11762    #[inline]
11763    pub fn merge_action(&self) -> Option<MergeAction> {
11764        support::child(&self.syntax)
11765    }
11766    #[inline]
11767    pub fn and_token(&self) -> Option<SyntaxToken> {
11768        support::token(&self.syntax, SyntaxKind::AND_KW)
11769    }
11770    #[inline]
11771    pub fn matched_token(&self) -> Option<SyntaxToken> {
11772        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11773    }
11774    #[inline]
11775    pub fn then_token(&self) -> Option<SyntaxToken> {
11776        support::token(&self.syntax, SyntaxKind::THEN_KW)
11777    }
11778    #[inline]
11779    pub fn when_token(&self) -> Option<SyntaxToken> {
11780        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11781    }
11782}
11783
11784#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11785pub struct MergeWhenNotMatchedSource {
11786    pub(crate) syntax: SyntaxNode,
11787}
11788impl MergeWhenNotMatchedSource {
11789    #[inline]
11790    pub fn expr(&self) -> Option<Expr> {
11791        support::child(&self.syntax)
11792    }
11793    #[inline]
11794    pub fn merge_action(&self) -> Option<MergeAction> {
11795        support::child(&self.syntax)
11796    }
11797    #[inline]
11798    pub fn and_token(&self) -> Option<SyntaxToken> {
11799        support::token(&self.syntax, SyntaxKind::AND_KW)
11800    }
11801    #[inline]
11802    pub fn by_token(&self) -> Option<SyntaxToken> {
11803        support::token(&self.syntax, SyntaxKind::BY_KW)
11804    }
11805    #[inline]
11806    pub fn matched_token(&self) -> Option<SyntaxToken> {
11807        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11808    }
11809    #[inline]
11810    pub fn not_token(&self) -> Option<SyntaxToken> {
11811        support::token(&self.syntax, SyntaxKind::NOT_KW)
11812    }
11813    #[inline]
11814    pub fn source_token(&self) -> Option<SyntaxToken> {
11815        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
11816    }
11817    #[inline]
11818    pub fn then_token(&self) -> Option<SyntaxToken> {
11819        support::token(&self.syntax, SyntaxKind::THEN_KW)
11820    }
11821    #[inline]
11822    pub fn when_token(&self) -> Option<SyntaxToken> {
11823        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11824    }
11825}
11826
11827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11828pub struct MergeWhenNotMatchedTarget {
11829    pub(crate) syntax: SyntaxNode,
11830}
11831impl MergeWhenNotMatchedTarget {
11832    #[inline]
11833    pub fn expr(&self) -> Option<Expr> {
11834        support::child(&self.syntax)
11835    }
11836    #[inline]
11837    pub fn merge_action(&self) -> Option<MergeAction> {
11838        support::child(&self.syntax)
11839    }
11840    #[inline]
11841    pub fn and_token(&self) -> Option<SyntaxToken> {
11842        support::token(&self.syntax, SyntaxKind::AND_KW)
11843    }
11844    #[inline]
11845    pub fn by_token(&self) -> Option<SyntaxToken> {
11846        support::token(&self.syntax, SyntaxKind::BY_KW)
11847    }
11848    #[inline]
11849    pub fn matched_token(&self) -> Option<SyntaxToken> {
11850        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11851    }
11852    #[inline]
11853    pub fn not_token(&self) -> Option<SyntaxToken> {
11854        support::token(&self.syntax, SyntaxKind::NOT_KW)
11855    }
11856    #[inline]
11857    pub fn target_token(&self) -> Option<SyntaxToken> {
11858        support::token(&self.syntax, SyntaxKind::TARGET_KW)
11859    }
11860    #[inline]
11861    pub fn then_token(&self) -> Option<SyntaxToken> {
11862        support::token(&self.syntax, SyntaxKind::THEN_KW)
11863    }
11864    #[inline]
11865    pub fn when_token(&self) -> Option<SyntaxToken> {
11866        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11867    }
11868}
11869
11870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11871pub struct Move {
11872    pub(crate) syntax: SyntaxNode,
11873}
11874impl Move {
11875    #[inline]
11876    pub fn name_ref(&self) -> Option<NameRef> {
11877        support::child(&self.syntax)
11878    }
11879    #[inline]
11880    pub fn from_token(&self) -> Option<SyntaxToken> {
11881        support::token(&self.syntax, SyntaxKind::FROM_KW)
11882    }
11883    #[inline]
11884    pub fn in_token(&self) -> Option<SyntaxToken> {
11885        support::token(&self.syntax, SyntaxKind::IN_KW)
11886    }
11887    #[inline]
11888    pub fn move_token(&self) -> Option<SyntaxToken> {
11889        support::token(&self.syntax, SyntaxKind::MOVE_KW)
11890    }
11891}
11892
11893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11894pub struct Name {
11895    pub(crate) syntax: SyntaxNode,
11896}
11897impl Name {
11898    #[inline]
11899    pub fn ident_token(&self) -> Option<SyntaxToken> {
11900        support::token(&self.syntax, SyntaxKind::IDENT)
11901    }
11902}
11903
11904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11905pub struct NameRef {
11906    pub(crate) syntax: SyntaxNode,
11907}
11908impl NameRef {
11909    #[inline]
11910    pub fn ident_token(&self) -> Option<SyntaxToken> {
11911        support::token(&self.syntax, SyntaxKind::IDENT)
11912    }
11913}
11914
11915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11916pub struct NamedArg {
11917    pub(crate) syntax: SyntaxNode,
11918}
11919impl NamedArg {
11920    #[inline]
11921    pub fn expr(&self) -> Option<Expr> {
11922        support::child(&self.syntax)
11923    }
11924    #[inline]
11925    pub fn fat_arrow(&self) -> Option<FatArrow> {
11926        support::child(&self.syntax)
11927    }
11928    #[inline]
11929    pub fn name_ref(&self) -> Option<NameRef> {
11930        support::child(&self.syntax)
11931    }
11932}
11933
11934#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11935pub struct Neq {
11936    pub(crate) syntax: SyntaxNode,
11937}
11938impl Neq {
11939    #[inline]
11940    pub fn bang_token(&self) -> Option<SyntaxToken> {
11941        support::token(&self.syntax, SyntaxKind::BANG)
11942    }
11943    #[inline]
11944    pub fn eq_token(&self) -> Option<SyntaxToken> {
11945        support::token(&self.syntax, SyntaxKind::EQ)
11946    }
11947}
11948
11949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11950pub struct Neqb {
11951    pub(crate) syntax: SyntaxNode,
11952}
11953impl Neqb {
11954    #[inline]
11955    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11956        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11957    }
11958    #[inline]
11959    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11960        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11961    }
11962}
11963
11964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11965pub struct NoAction {
11966    pub(crate) syntax: SyntaxNode,
11967}
11968impl NoAction {
11969    #[inline]
11970    pub fn action_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::ACTION_KW)
11972    }
11973    #[inline]
11974    pub fn no_token(&self) -> Option<SyntaxToken> {
11975        support::token(&self.syntax, SyntaxKind::NO_KW)
11976    }
11977}
11978
11979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11980pub struct NoDependsOnExtension {
11981    pub(crate) syntax: SyntaxNode,
11982}
11983impl NoDependsOnExtension {
11984    #[inline]
11985    pub fn name_ref(&self) -> Option<NameRef> {
11986        support::child(&self.syntax)
11987    }
11988    #[inline]
11989    pub fn depends_token(&self) -> Option<SyntaxToken> {
11990        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
11991    }
11992    #[inline]
11993    pub fn extension_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
11995    }
11996    #[inline]
11997    pub fn no_token(&self) -> Option<SyntaxToken> {
11998        support::token(&self.syntax, SyntaxKind::NO_KW)
11999    }
12000    #[inline]
12001    pub fn on_token(&self) -> Option<SyntaxToken> {
12002        support::token(&self.syntax, SyntaxKind::ON_KW)
12003    }
12004}
12005
12006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12007pub struct NoForceRls {
12008    pub(crate) syntax: SyntaxNode,
12009}
12010impl NoForceRls {
12011    #[inline]
12012    pub fn force_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::FORCE_KW)
12014    }
12015    #[inline]
12016    pub fn level_token(&self) -> Option<SyntaxToken> {
12017        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12018    }
12019    #[inline]
12020    pub fn no_token(&self) -> Option<SyntaxToken> {
12021        support::token(&self.syntax, SyntaxKind::NO_KW)
12022    }
12023    #[inline]
12024    pub fn row_token(&self) -> Option<SyntaxToken> {
12025        support::token(&self.syntax, SyntaxKind::ROW_KW)
12026    }
12027    #[inline]
12028    pub fn security_token(&self) -> Option<SyntaxToken> {
12029        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
12030    }
12031}
12032
12033#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12034pub struct NoInherit {
12035    pub(crate) syntax: SyntaxNode,
12036}
12037impl NoInherit {
12038    #[inline]
12039    pub fn path(&self) -> Option<Path> {
12040        support::child(&self.syntax)
12041    }
12042    #[inline]
12043    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12044        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12045    }
12046    #[inline]
12047    pub fn no_token(&self) -> Option<SyntaxToken> {
12048        support::token(&self.syntax, SyntaxKind::NO_KW)
12049    }
12050}
12051
12052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12053pub struct NoInheritTable {
12054    pub(crate) syntax: SyntaxNode,
12055}
12056impl NoInheritTable {
12057    #[inline]
12058    pub fn path(&self) -> Option<Path> {
12059        support::child(&self.syntax)
12060    }
12061    #[inline]
12062    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12063        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12064    }
12065    #[inline]
12066    pub fn no_token(&self) -> Option<SyntaxToken> {
12067        support::token(&self.syntax, SyntaxKind::NO_KW)
12068    }
12069}
12070
12071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12072pub struct NoProperties {
12073    pub(crate) syntax: SyntaxNode,
12074}
12075impl NoProperties {
12076    #[inline]
12077    pub fn no_token(&self) -> Option<SyntaxToken> {
12078        support::token(&self.syntax, SyntaxKind::NO_KW)
12079    }
12080    #[inline]
12081    pub fn properties_token(&self) -> Option<SyntaxToken> {
12082        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12083    }
12084}
12085
12086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12087pub struct NonStandardParam {
12088    pub(crate) syntax: SyntaxNode,
12089}
12090impl NonStandardParam {
12091    #[inline]
12092    pub fn name_ref(&self) -> Option<NameRef> {
12093        support::child(&self.syntax)
12094    }
12095    #[inline]
12096    pub fn colon_token(&self) -> Option<SyntaxToken> {
12097        support::token(&self.syntax, SyntaxKind::COLON)
12098    }
12099}
12100
12101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12102pub struct NotDeferrable {
12103    pub(crate) syntax: SyntaxNode,
12104}
12105impl NotDeferrable {
12106    #[inline]
12107    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12108        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12109    }
12110    #[inline]
12111    pub fn not_token(&self) -> Option<SyntaxToken> {
12112        support::token(&self.syntax, SyntaxKind::NOT_KW)
12113    }
12114}
12115
12116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12117pub struct NotDeferrableConstraintOption {
12118    pub(crate) syntax: SyntaxNode,
12119}
12120impl NotDeferrableConstraintOption {
12121    #[inline]
12122    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12123        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12124    }
12125    #[inline]
12126    pub fn not_token(&self) -> Option<SyntaxToken> {
12127        support::token(&self.syntax, SyntaxKind::NOT_KW)
12128    }
12129}
12130
12131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12132pub struct NotEnforced {
12133    pub(crate) syntax: SyntaxNode,
12134}
12135impl NotEnforced {
12136    #[inline]
12137    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12138        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
12139    }
12140    #[inline]
12141    pub fn not_token(&self) -> Option<SyntaxToken> {
12142        support::token(&self.syntax, SyntaxKind::NOT_KW)
12143    }
12144}
12145
12146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12147pub struct NotIlike {
12148    pub(crate) syntax: SyntaxNode,
12149}
12150impl NotIlike {
12151    #[inline]
12152    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12153        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12154    }
12155    #[inline]
12156    pub fn not_token(&self) -> Option<SyntaxToken> {
12157        support::token(&self.syntax, SyntaxKind::NOT_KW)
12158    }
12159}
12160
12161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12162pub struct NotIn {
12163    pub(crate) syntax: SyntaxNode,
12164}
12165impl NotIn {
12166    #[inline]
12167    pub fn in_token(&self) -> Option<SyntaxToken> {
12168        support::token(&self.syntax, SyntaxKind::IN_KW)
12169    }
12170    #[inline]
12171    pub fn not_token(&self) -> Option<SyntaxToken> {
12172        support::token(&self.syntax, SyntaxKind::NOT_KW)
12173    }
12174}
12175
12176#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12177pub struct NotLike {
12178    pub(crate) syntax: SyntaxNode,
12179}
12180impl NotLike {
12181    #[inline]
12182    pub fn like_token(&self) -> Option<SyntaxToken> {
12183        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12184    }
12185    #[inline]
12186    pub fn not_token(&self) -> Option<SyntaxToken> {
12187        support::token(&self.syntax, SyntaxKind::NOT_KW)
12188    }
12189}
12190
12191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12192pub struct NotMaterialized {
12193    pub(crate) syntax: SyntaxNode,
12194}
12195impl NotMaterialized {
12196    #[inline]
12197    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12198        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12199    }
12200    #[inline]
12201    pub fn not_token(&self) -> Option<SyntaxToken> {
12202        support::token(&self.syntax, SyntaxKind::NOT_KW)
12203    }
12204}
12205
12206#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12207pub struct NotNullConstraint {
12208    pub(crate) syntax: SyntaxNode,
12209}
12210impl NotNullConstraint {
12211    #[inline]
12212    pub fn name_ref(&self) -> Option<NameRef> {
12213        support::child(&self.syntax)
12214    }
12215    #[inline]
12216    pub fn no_inherit(&self) -> Option<NoInherit> {
12217        support::child(&self.syntax)
12218    }
12219    #[inline]
12220    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12221        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12222    }
12223    #[inline]
12224    pub fn not_token(&self) -> Option<SyntaxToken> {
12225        support::token(&self.syntax, SyntaxKind::NOT_KW)
12226    }
12227    #[inline]
12228    pub fn null_token(&self) -> Option<SyntaxToken> {
12229        support::token(&self.syntax, SyntaxKind::NULL_KW)
12230    }
12231}
12232
12233#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12234pub struct NotOf {
12235    pub(crate) syntax: SyntaxNode,
12236}
12237impl NotOf {
12238    #[inline]
12239    pub fn not_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::NOT_KW)
12241    }
12242    #[inline]
12243    pub fn of_token(&self) -> Option<SyntaxToken> {
12244        support::token(&self.syntax, SyntaxKind::OF_KW)
12245    }
12246}
12247
12248#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12249pub struct NotSimilarTo {
12250    pub(crate) syntax: SyntaxNode,
12251}
12252impl NotSimilarTo {
12253    #[inline]
12254    pub fn not_token(&self) -> Option<SyntaxToken> {
12255        support::token(&self.syntax, SyntaxKind::NOT_KW)
12256    }
12257    #[inline]
12258    pub fn similar_token(&self) -> Option<SyntaxToken> {
12259        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12260    }
12261    #[inline]
12262    pub fn to_token(&self) -> Option<SyntaxToken> {
12263        support::token(&self.syntax, SyntaxKind::TO_KW)
12264    }
12265}
12266
12267#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12268pub struct NotValid {
12269    pub(crate) syntax: SyntaxNode,
12270}
12271impl NotValid {
12272    #[inline]
12273    pub fn not_token(&self) -> Option<SyntaxToken> {
12274        support::token(&self.syntax, SyntaxKind::NOT_KW)
12275    }
12276    #[inline]
12277    pub fn valid_token(&self) -> Option<SyntaxToken> {
12278        support::token(&self.syntax, SyntaxKind::VALID_KW)
12279    }
12280}
12281
12282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12283pub struct Notify {
12284    pub(crate) syntax: SyntaxNode,
12285}
12286impl Notify {
12287    #[inline]
12288    pub fn literal(&self) -> Option<Literal> {
12289        support::child(&self.syntax)
12290    }
12291    #[inline]
12292    pub fn name_ref(&self) -> Option<NameRef> {
12293        support::child(&self.syntax)
12294    }
12295    #[inline]
12296    pub fn comma_token(&self) -> Option<SyntaxToken> {
12297        support::token(&self.syntax, SyntaxKind::COMMA)
12298    }
12299    #[inline]
12300    pub fn notify_token(&self) -> Option<SyntaxToken> {
12301        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12302    }
12303}
12304
12305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12306pub struct NullConstraint {
12307    pub(crate) syntax: SyntaxNode,
12308}
12309impl NullConstraint {
12310    #[inline]
12311    pub fn name_ref(&self) -> Option<NameRef> {
12312        support::child(&self.syntax)
12313    }
12314    #[inline]
12315    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12316        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12317    }
12318    #[inline]
12319    pub fn null_token(&self) -> Option<SyntaxToken> {
12320        support::token(&self.syntax, SyntaxKind::NULL_KW)
12321    }
12322}
12323
12324#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12325pub struct NullsDistinct {
12326    pub(crate) syntax: SyntaxNode,
12327}
12328impl NullsDistinct {
12329    #[inline]
12330    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12331        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12332    }
12333    #[inline]
12334    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12335        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12336    }
12337}
12338
12339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12340pub struct NullsFirst {
12341    pub(crate) syntax: SyntaxNode,
12342}
12343impl NullsFirst {
12344    #[inline]
12345    pub fn first_token(&self) -> Option<SyntaxToken> {
12346        support::token(&self.syntax, SyntaxKind::FIRST_KW)
12347    }
12348    #[inline]
12349    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12350        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12351    }
12352}
12353
12354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12355pub struct NullsLast {
12356    pub(crate) syntax: SyntaxNode,
12357}
12358impl NullsLast {
12359    #[inline]
12360    pub fn last_token(&self) -> Option<SyntaxToken> {
12361        support::token(&self.syntax, SyntaxKind::LAST_KW)
12362    }
12363    #[inline]
12364    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12365        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12366    }
12367}
12368
12369#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12370pub struct NullsNotDistinct {
12371    pub(crate) syntax: SyntaxNode,
12372}
12373impl NullsNotDistinct {
12374    #[inline]
12375    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12376        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12377    }
12378    #[inline]
12379    pub fn not_token(&self) -> Option<SyntaxToken> {
12380        support::token(&self.syntax, SyntaxKind::NOT_KW)
12381    }
12382    #[inline]
12383    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12384        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12385    }
12386}
12387
12388#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12389pub struct OfType {
12390    pub(crate) syntax: SyntaxNode,
12391}
12392impl OfType {
12393    #[inline]
12394    pub fn ty(&self) -> Option<Type> {
12395        support::child(&self.syntax)
12396    }
12397    #[inline]
12398    pub fn of_token(&self) -> Option<SyntaxToken> {
12399        support::token(&self.syntax, SyntaxKind::OF_KW)
12400    }
12401}
12402
12403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12404pub struct OffsetClause {
12405    pub(crate) syntax: SyntaxNode,
12406}
12407impl OffsetClause {
12408    #[inline]
12409    pub fn expr(&self) -> Option<Expr> {
12410        support::child(&self.syntax)
12411    }
12412    #[inline]
12413    pub fn offset_token(&self) -> Option<SyntaxToken> {
12414        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12415    }
12416    #[inline]
12417    pub fn row_token(&self) -> Option<SyntaxToken> {
12418        support::token(&self.syntax, SyntaxKind::ROW_KW)
12419    }
12420    #[inline]
12421    pub fn rows_token(&self) -> Option<SyntaxToken> {
12422        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12423    }
12424}
12425
12426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12427pub struct OnClause {
12428    pub(crate) syntax: SyntaxNode,
12429}
12430impl OnClause {
12431    #[inline]
12432    pub fn expr(&self) -> Option<Expr> {
12433        support::child(&self.syntax)
12434    }
12435    #[inline]
12436    pub fn on_token(&self) -> Option<SyntaxToken> {
12437        support::token(&self.syntax, SyntaxKind::ON_KW)
12438    }
12439}
12440
12441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12442pub struct OnCommit {
12443    pub(crate) syntax: SyntaxNode,
12444}
12445impl OnCommit {
12446    #[inline]
12447    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
12448        support::child(&self.syntax)
12449    }
12450    #[inline]
12451    pub fn commit_token(&self) -> Option<SyntaxToken> {
12452        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
12453    }
12454    #[inline]
12455    pub fn on_token(&self) -> Option<SyntaxToken> {
12456        support::token(&self.syntax, SyntaxKind::ON_KW)
12457    }
12458}
12459
12460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12461pub struct OnConflictClause {
12462    pub(crate) syntax: SyntaxNode,
12463}
12464impl OnConflictClause {
12465    #[inline]
12466    pub fn conflict_action(&self) -> Option<ConflictAction> {
12467        support::child(&self.syntax)
12468    }
12469    #[inline]
12470    pub fn conflict_target(&self) -> Option<ConflictTarget> {
12471        support::child(&self.syntax)
12472    }
12473    #[inline]
12474    pub fn conflict_token(&self) -> Option<SyntaxToken> {
12475        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
12476    }
12477    #[inline]
12478    pub fn on_token(&self) -> Option<SyntaxToken> {
12479        support::token(&self.syntax, SyntaxKind::ON_KW)
12480    }
12481}
12482
12483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12484pub struct OnDeleteAction {
12485    pub(crate) syntax: SyntaxNode,
12486}
12487impl OnDeleteAction {
12488    #[inline]
12489    pub fn ref_action(&self) -> Option<RefAction> {
12490        support::child(&self.syntax)
12491    }
12492    #[inline]
12493    pub fn delete_token(&self) -> Option<SyntaxToken> {
12494        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12495    }
12496    #[inline]
12497    pub fn on_token(&self) -> Option<SyntaxToken> {
12498        support::token(&self.syntax, SyntaxKind::ON_KW)
12499    }
12500}
12501
12502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12503pub struct OnTable {
12504    pub(crate) syntax: SyntaxNode,
12505}
12506impl OnTable {
12507    #[inline]
12508    pub fn path(&self) -> Option<Path> {
12509        support::child(&self.syntax)
12510    }
12511    #[inline]
12512    pub fn on_token(&self) -> Option<SyntaxToken> {
12513        support::token(&self.syntax, SyntaxKind::ON_KW)
12514    }
12515}
12516
12517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12518pub struct OnUpdateAction {
12519    pub(crate) syntax: SyntaxNode,
12520}
12521impl OnUpdateAction {
12522    #[inline]
12523    pub fn ref_action(&self) -> Option<RefAction> {
12524        support::child(&self.syntax)
12525    }
12526    #[inline]
12527    pub fn on_token(&self) -> Option<SyntaxToken> {
12528        support::token(&self.syntax, SyntaxKind::ON_KW)
12529    }
12530    #[inline]
12531    pub fn update_token(&self) -> Option<SyntaxToken> {
12532        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12533    }
12534}
12535
12536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12537pub struct Op {
12538    pub(crate) syntax: SyntaxNode,
12539}
12540impl Op {
12541    #[inline]
12542    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
12543        support::child(&self.syntax)
12544    }
12545    #[inline]
12546    pub fn colon_colon(&self) -> Option<ColonColon> {
12547        support::child(&self.syntax)
12548    }
12549    #[inline]
12550    pub fn colon_eq(&self) -> Option<ColonEq> {
12551        support::child(&self.syntax)
12552    }
12553    #[inline]
12554    pub fn custom_op(&self) -> Option<CustomOp> {
12555        support::child(&self.syntax)
12556    }
12557    #[inline]
12558    pub fn fat_arrow(&self) -> Option<FatArrow> {
12559        support::child(&self.syntax)
12560    }
12561    #[inline]
12562    pub fn gteq(&self) -> Option<Gteq> {
12563        support::child(&self.syntax)
12564    }
12565    #[inline]
12566    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
12567        support::child(&self.syntax)
12568    }
12569    #[inline]
12570    pub fn is_json(&self) -> Option<IsJson> {
12571        support::child(&self.syntax)
12572    }
12573    #[inline]
12574    pub fn is_json_array(&self) -> Option<IsJsonArray> {
12575        support::child(&self.syntax)
12576    }
12577    #[inline]
12578    pub fn is_json_object(&self) -> Option<IsJsonObject> {
12579        support::child(&self.syntax)
12580    }
12581    #[inline]
12582    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
12583        support::child(&self.syntax)
12584    }
12585    #[inline]
12586    pub fn is_json_value(&self) -> Option<IsJsonValue> {
12587        support::child(&self.syntax)
12588    }
12589    #[inline]
12590    pub fn is_normalized(&self) -> Option<IsNormalized> {
12591        support::child(&self.syntax)
12592    }
12593    #[inline]
12594    pub fn is_not(&self) -> Option<IsNot> {
12595        support::child(&self.syntax)
12596    }
12597    #[inline]
12598    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
12599        support::child(&self.syntax)
12600    }
12601    #[inline]
12602    pub fn is_not_json(&self) -> Option<IsNotJson> {
12603        support::child(&self.syntax)
12604    }
12605    #[inline]
12606    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
12607        support::child(&self.syntax)
12608    }
12609    #[inline]
12610    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
12611        support::child(&self.syntax)
12612    }
12613    #[inline]
12614    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
12615        support::child(&self.syntax)
12616    }
12617    #[inline]
12618    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
12619        support::child(&self.syntax)
12620    }
12621    #[inline]
12622    pub fn is_not_normalized(&self) -> Option<IsNotNormalized> {
12623        support::child(&self.syntax)
12624    }
12625    #[inline]
12626    pub fn lteq(&self) -> Option<Lteq> {
12627        support::child(&self.syntax)
12628    }
12629    #[inline]
12630    pub fn neq(&self) -> Option<Neq> {
12631        support::child(&self.syntax)
12632    }
12633    #[inline]
12634    pub fn neqb(&self) -> Option<Neqb> {
12635        support::child(&self.syntax)
12636    }
12637    #[inline]
12638    pub fn not_ilike(&self) -> Option<NotIlike> {
12639        support::child(&self.syntax)
12640    }
12641    #[inline]
12642    pub fn not_in(&self) -> Option<NotIn> {
12643        support::child(&self.syntax)
12644    }
12645    #[inline]
12646    pub fn not_like(&self) -> Option<NotLike> {
12647        support::child(&self.syntax)
12648    }
12649    #[inline]
12650    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
12651        support::child(&self.syntax)
12652    }
12653    #[inline]
12654    pub fn operator_call(&self) -> Option<OperatorCall> {
12655        support::child(&self.syntax)
12656    }
12657    #[inline]
12658    pub fn similar_to(&self) -> Option<SimilarTo> {
12659        support::child(&self.syntax)
12660    }
12661    #[inline]
12662    pub fn percent_token(&self) -> Option<SyntaxToken> {
12663        support::token(&self.syntax, SyntaxKind::PERCENT)
12664    }
12665    #[inline]
12666    pub fn plus_token(&self) -> Option<SyntaxToken> {
12667        support::token(&self.syntax, SyntaxKind::PLUS)
12668    }
12669    #[inline]
12670    pub fn minus_token(&self) -> Option<SyntaxToken> {
12671        support::token(&self.syntax, SyntaxKind::MINUS)
12672    }
12673    #[inline]
12674    pub fn slash_token(&self) -> Option<SyntaxToken> {
12675        support::token(&self.syntax, SyntaxKind::SLASH)
12676    }
12677    #[inline]
12678    pub fn colon_token(&self) -> Option<SyntaxToken> {
12679        support::token(&self.syntax, SyntaxKind::COLON)
12680    }
12681    #[inline]
12682    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12683        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12684    }
12685    #[inline]
12686    pub fn eq_token(&self) -> Option<SyntaxToken> {
12687        support::token(&self.syntax, SyntaxKind::EQ)
12688    }
12689    #[inline]
12690    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12691        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12692    }
12693    #[inline]
12694    pub fn caret_token(&self) -> Option<SyntaxToken> {
12695        support::token(&self.syntax, SyntaxKind::CARET)
12696    }
12697    #[inline]
12698    pub fn and_token(&self) -> Option<SyntaxToken> {
12699        support::token(&self.syntax, SyntaxKind::AND_KW)
12700    }
12701    #[inline]
12702    pub fn collate_token(&self) -> Option<SyntaxToken> {
12703        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
12704    }
12705    #[inline]
12706    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12707        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12708    }
12709    #[inline]
12710    pub fn in_token(&self) -> Option<SyntaxToken> {
12711        support::token(&self.syntax, SyntaxKind::IN_KW)
12712    }
12713    #[inline]
12714    pub fn is_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::IS_KW)
12716    }
12717    #[inline]
12718    pub fn isnull_token(&self) -> Option<SyntaxToken> {
12719        support::token(&self.syntax, SyntaxKind::ISNULL_KW)
12720    }
12721    #[inline]
12722    pub fn like_token(&self) -> Option<SyntaxToken> {
12723        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12724    }
12725    #[inline]
12726    pub fn or_token(&self) -> Option<SyntaxToken> {
12727        support::token(&self.syntax, SyntaxKind::OR_KW)
12728    }
12729    #[inline]
12730    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
12731        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
12732    }
12733    #[inline]
12734    pub fn value_token(&self) -> Option<SyntaxToken> {
12735        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12736    }
12737}
12738
12739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12740pub struct OpClassOption {
12741    pub(crate) syntax: SyntaxNode,
12742}
12743impl OpClassOption {
12744    #[inline]
12745    pub fn function_sig(&self) -> Option<FunctionSig> {
12746        support::child(&self.syntax)
12747    }
12748    #[inline]
12749    pub fn literal(&self) -> Option<Literal> {
12750        support::child(&self.syntax)
12751    }
12752    #[inline]
12753    pub fn op(&self) -> Option<Op> {
12754        support::child(&self.syntax)
12755    }
12756    #[inline]
12757    pub fn param_list(&self) -> Option<ParamList> {
12758        support::child(&self.syntax)
12759    }
12760    #[inline]
12761    pub fn path(&self) -> Option<Path> {
12762        support::child(&self.syntax)
12763    }
12764    #[inline]
12765    pub fn ty(&self) -> Option<Type> {
12766        support::child(&self.syntax)
12767    }
12768    #[inline]
12769    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12770        support::token(&self.syntax, SyntaxKind::L_PAREN)
12771    }
12772    #[inline]
12773    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12774        support::token(&self.syntax, SyntaxKind::R_PAREN)
12775    }
12776    #[inline]
12777    pub fn comma_token(&self) -> Option<SyntaxToken> {
12778        support::token(&self.syntax, SyntaxKind::COMMA)
12779    }
12780    #[inline]
12781    pub fn by_token(&self) -> Option<SyntaxToken> {
12782        support::token(&self.syntax, SyntaxKind::BY_KW)
12783    }
12784    #[inline]
12785    pub fn for_token(&self) -> Option<SyntaxToken> {
12786        support::token(&self.syntax, SyntaxKind::FOR_KW)
12787    }
12788    #[inline]
12789    pub fn function_token(&self) -> Option<SyntaxToken> {
12790        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
12791    }
12792    #[inline]
12793    pub fn operator_token(&self) -> Option<SyntaxToken> {
12794        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12795    }
12796    #[inline]
12797    pub fn order_token(&self) -> Option<SyntaxToken> {
12798        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12799    }
12800    #[inline]
12801    pub fn search_token(&self) -> Option<SyntaxToken> {
12802        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
12803    }
12804    #[inline]
12805    pub fn storage_token(&self) -> Option<SyntaxToken> {
12806        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
12807    }
12808}
12809
12810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12811pub struct OpSig {
12812    pub(crate) syntax: SyntaxNode,
12813}
12814impl OpSig {
12815    #[inline]
12816    pub fn op(&self) -> Option<Op> {
12817        support::child(&self.syntax)
12818    }
12819    #[inline]
12820    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12821        support::token(&self.syntax, SyntaxKind::L_PAREN)
12822    }
12823    #[inline]
12824    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12825        support::token(&self.syntax, SyntaxKind::R_PAREN)
12826    }
12827    #[inline]
12828    pub fn comma_token(&self) -> Option<SyntaxToken> {
12829        support::token(&self.syntax, SyntaxKind::COMMA)
12830    }
12831    #[inline]
12832    pub fn none_token(&self) -> Option<SyntaxToken> {
12833        support::token(&self.syntax, SyntaxKind::NONE_KW)
12834    }
12835}
12836
12837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12838pub struct OpSigList {
12839    pub(crate) syntax: SyntaxNode,
12840}
12841impl OpSigList {
12842    #[inline]
12843    pub fn op_sigs(&self) -> AstChildren<OpSig> {
12844        support::children(&self.syntax)
12845    }
12846}
12847
12848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12849pub struct OperatorCall {
12850    pub(crate) syntax: SyntaxNode,
12851}
12852impl OperatorCall {
12853    #[inline]
12854    pub fn op(&self) -> Option<Op> {
12855        support::child(&self.syntax)
12856    }
12857    #[inline]
12858    pub fn path(&self) -> Option<Path> {
12859        support::child(&self.syntax)
12860    }
12861    #[inline]
12862    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12863        support::token(&self.syntax, SyntaxKind::L_PAREN)
12864    }
12865    #[inline]
12866    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12867        support::token(&self.syntax, SyntaxKind::R_PAREN)
12868    }
12869    #[inline]
12870    pub fn dot_token(&self) -> Option<SyntaxToken> {
12871        support::token(&self.syntax, SyntaxKind::DOT)
12872    }
12873    #[inline]
12874    pub fn operator_token(&self) -> Option<SyntaxToken> {
12875        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12876    }
12877}
12878
12879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12880pub struct OperatorClassOptionList {
12881    pub(crate) syntax: SyntaxNode,
12882}
12883impl OperatorClassOptionList {
12884    #[inline]
12885    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
12886        support::children(&self.syntax)
12887    }
12888}
12889
12890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12891pub struct OptionItem {
12892    pub(crate) syntax: SyntaxNode,
12893}
12894impl OptionItem {
12895    #[inline]
12896    pub fn expr(&self) -> Option<Expr> {
12897        support::child(&self.syntax)
12898    }
12899    #[inline]
12900    pub fn default_token(&self) -> Option<SyntaxToken> {
12901        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12902    }
12903}
12904
12905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12906pub struct OptionItemList {
12907    pub(crate) syntax: SyntaxNode,
12908}
12909impl OptionItemList {
12910    #[inline]
12911    pub fn option_items(&self) -> AstChildren<OptionItem> {
12912        support::children(&self.syntax)
12913    }
12914    #[inline]
12915    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12916        support::token(&self.syntax, SyntaxKind::L_PAREN)
12917    }
12918    #[inline]
12919    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12920        support::token(&self.syntax, SyntaxKind::R_PAREN)
12921    }
12922}
12923
12924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12925pub struct OrReplace {
12926    pub(crate) syntax: SyntaxNode,
12927}
12928impl OrReplace {
12929    #[inline]
12930    pub fn or_token(&self) -> Option<SyntaxToken> {
12931        support::token(&self.syntax, SyntaxKind::OR_KW)
12932    }
12933    #[inline]
12934    pub fn replace_token(&self) -> Option<SyntaxToken> {
12935        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
12936    }
12937}
12938
12939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12940pub struct OrderByClause {
12941    pub(crate) syntax: SyntaxNode,
12942}
12943impl OrderByClause {
12944    #[inline]
12945    pub fn sort_by_list(&self) -> Option<SortByList> {
12946        support::child(&self.syntax)
12947    }
12948    #[inline]
12949    pub fn by_token(&self) -> Option<SyntaxToken> {
12950        support::token(&self.syntax, SyntaxKind::BY_KW)
12951    }
12952    #[inline]
12953    pub fn order_token(&self) -> Option<SyntaxToken> {
12954        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12955    }
12956}
12957
12958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12959pub struct OverClause {
12960    pub(crate) syntax: SyntaxNode,
12961}
12962impl OverClause {
12963    #[inline]
12964    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12965        support::token(&self.syntax, SyntaxKind::L_PAREN)
12966    }
12967    #[inline]
12968    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12969        support::token(&self.syntax, SyntaxKind::R_PAREN)
12970    }
12971    #[inline]
12972    pub fn over_token(&self) -> Option<SyntaxToken> {
12973        support::token(&self.syntax, SyntaxKind::OVER_KW)
12974    }
12975}
12976
12977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12978pub struct OverlayFn {
12979    pub(crate) syntax: SyntaxNode,
12980}
12981impl OverlayFn {
12982    #[inline]
12983    pub fn expr(&self) -> Option<Expr> {
12984        support::child(&self.syntax)
12985    }
12986    #[inline]
12987    pub fn exprs(&self) -> AstChildren<Expr> {
12988        support::children(&self.syntax)
12989    }
12990    #[inline]
12991    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12992        support::token(&self.syntax, SyntaxKind::L_PAREN)
12993    }
12994    #[inline]
12995    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12996        support::token(&self.syntax, SyntaxKind::R_PAREN)
12997    }
12998    #[inline]
12999    pub fn for_token(&self) -> Option<SyntaxToken> {
13000        support::token(&self.syntax, SyntaxKind::FOR_KW)
13001    }
13002    #[inline]
13003    pub fn from_token(&self) -> Option<SyntaxToken> {
13004        support::token(&self.syntax, SyntaxKind::FROM_KW)
13005    }
13006    #[inline]
13007    pub fn overlay_token(&self) -> Option<SyntaxToken> {
13008        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
13009    }
13010    #[inline]
13011    pub fn placing_token(&self) -> Option<SyntaxToken> {
13012        support::token(&self.syntax, SyntaxKind::PLACING_KW)
13013    }
13014}
13015
13016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13017pub struct OwnedByRoles {
13018    pub(crate) syntax: SyntaxNode,
13019}
13020impl OwnedByRoles {
13021    #[inline]
13022    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13023        support::child(&self.syntax)
13024    }
13025    #[inline]
13026    pub fn by_token(&self) -> Option<SyntaxToken> {
13027        support::token(&self.syntax, SyntaxKind::BY_KW)
13028    }
13029    #[inline]
13030    pub fn owned_token(&self) -> Option<SyntaxToken> {
13031        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13032    }
13033}
13034
13035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13036pub struct OwnerTo {
13037    pub(crate) syntax: SyntaxNode,
13038}
13039impl OwnerTo {
13040    #[inline]
13041    pub fn role_ref(&self) -> Option<RoleRef> {
13042        support::child(&self.syntax)
13043    }
13044    #[inline]
13045    pub fn owner_token(&self) -> Option<SyntaxToken> {
13046        support::token(&self.syntax, SyntaxKind::OWNER_KW)
13047    }
13048    #[inline]
13049    pub fn to_token(&self) -> Option<SyntaxToken> {
13050        support::token(&self.syntax, SyntaxKind::TO_KW)
13051    }
13052}
13053
13054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13055pub struct ParallelFuncOption {
13056    pub(crate) syntax: SyntaxNode,
13057}
13058impl ParallelFuncOption {
13059    #[inline]
13060    pub fn ident_token(&self) -> Option<SyntaxToken> {
13061        support::token(&self.syntax, SyntaxKind::IDENT)
13062    }
13063    #[inline]
13064    pub fn parallel_token(&self) -> Option<SyntaxToken> {
13065        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
13066    }
13067}
13068
13069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13070pub struct Param {
13071    pub(crate) syntax: SyntaxNode,
13072}
13073impl Param {
13074    #[inline]
13075    pub fn mode(&self) -> Option<ParamMode> {
13076        support::child(&self.syntax)
13077    }
13078    #[inline]
13079    pub fn name(&self) -> Option<Name> {
13080        support::child(&self.syntax)
13081    }
13082    #[inline]
13083    pub fn param_default(&self) -> Option<ParamDefault> {
13084        support::child(&self.syntax)
13085    }
13086    #[inline]
13087    pub fn ty(&self) -> Option<Type> {
13088        support::child(&self.syntax)
13089    }
13090}
13091
13092#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13093pub struct ParamDefault {
13094    pub(crate) syntax: SyntaxNode,
13095}
13096impl ParamDefault {
13097    #[inline]
13098    pub fn expr(&self) -> Option<Expr> {
13099        support::child(&self.syntax)
13100    }
13101    #[inline]
13102    pub fn eq_token(&self) -> Option<SyntaxToken> {
13103        support::token(&self.syntax, SyntaxKind::EQ)
13104    }
13105    #[inline]
13106    pub fn default_token(&self) -> Option<SyntaxToken> {
13107        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13108    }
13109}
13110
13111#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13112pub struct ParamIn {
13113    pub(crate) syntax: SyntaxNode,
13114}
13115impl ParamIn {
13116    #[inline]
13117    pub fn in_token(&self) -> Option<SyntaxToken> {
13118        support::token(&self.syntax, SyntaxKind::IN_KW)
13119    }
13120}
13121
13122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13123pub struct ParamInOut {
13124    pub(crate) syntax: SyntaxNode,
13125}
13126impl ParamInOut {
13127    #[inline]
13128    pub fn in_token(&self) -> Option<SyntaxToken> {
13129        support::token(&self.syntax, SyntaxKind::IN_KW)
13130    }
13131    #[inline]
13132    pub fn inout_token(&self) -> Option<SyntaxToken> {
13133        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13134    }
13135    #[inline]
13136    pub fn out_token(&self) -> Option<SyntaxToken> {
13137        support::token(&self.syntax, SyntaxKind::OUT_KW)
13138    }
13139}
13140
13141#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13142pub struct ParamList {
13143    pub(crate) syntax: SyntaxNode,
13144}
13145impl ParamList {
13146    #[inline]
13147    pub fn params(&self) -> AstChildren<Param> {
13148        support::children(&self.syntax)
13149    }
13150}
13151
13152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13153pub struct ParamOut {
13154    pub(crate) syntax: SyntaxNode,
13155}
13156impl ParamOut {
13157    #[inline]
13158    pub fn out_token(&self) -> Option<SyntaxToken> {
13159        support::token(&self.syntax, SyntaxKind::OUT_KW)
13160    }
13161}
13162
13163#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13164pub struct ParamVariadic {
13165    pub(crate) syntax: SyntaxNode,
13166}
13167impl ParamVariadic {
13168    #[inline]
13169    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13170        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13171    }
13172}
13173
13174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13175pub struct ParenExpr {
13176    pub(crate) syntax: SyntaxNode,
13177}
13178impl ParenExpr {
13179    #[inline]
13180    pub fn expr(&self) -> Option<Expr> {
13181        support::child(&self.syntax)
13182    }
13183    #[inline]
13184    pub fn from_item(&self) -> Option<FromItem> {
13185        support::child(&self.syntax)
13186    }
13187    #[inline]
13188    pub fn select(&self) -> Option<Select> {
13189        support::child(&self.syntax)
13190    }
13191    #[inline]
13192    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13193        support::token(&self.syntax, SyntaxKind::L_PAREN)
13194    }
13195    #[inline]
13196    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13197        support::token(&self.syntax, SyntaxKind::R_PAREN)
13198    }
13199}
13200
13201#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13202pub struct ParenGraphPattern {
13203    pub(crate) syntax: SyntaxNode,
13204}
13205impl ParenGraphPattern {
13206    #[inline]
13207    pub fn path_pattern(&self) -> Option<PathPattern> {
13208        support::child(&self.syntax)
13209    }
13210    #[inline]
13211    pub fn where_clause(&self) -> Option<WhereClause> {
13212        support::child(&self.syntax)
13213    }
13214    #[inline]
13215    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13216        support::token(&self.syntax, SyntaxKind::L_PAREN)
13217    }
13218    #[inline]
13219    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13220        support::token(&self.syntax, SyntaxKind::R_PAREN)
13221    }
13222}
13223
13224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13225pub struct ParenSelect {
13226    pub(crate) syntax: SyntaxNode,
13227}
13228impl ParenSelect {
13229    #[inline]
13230    pub fn select(&self) -> Option<SelectVariant> {
13231        support::child(&self.syntax)
13232    }
13233    #[inline]
13234    pub fn with_clause(&self) -> Option<WithClause> {
13235        support::child(&self.syntax)
13236    }
13237    #[inline]
13238    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13239        support::token(&self.syntax, SyntaxKind::L_PAREN)
13240    }
13241    #[inline]
13242    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13243        support::token(&self.syntax, SyntaxKind::R_PAREN)
13244    }
13245}
13246
13247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13248pub struct Partition {
13249    pub(crate) syntax: SyntaxNode,
13250}
13251impl Partition {
13252    #[inline]
13253    pub fn partition_type(&self) -> Option<PartitionType> {
13254        support::child(&self.syntax)
13255    }
13256    #[inline]
13257    pub fn path(&self) -> Option<Path> {
13258        support::child(&self.syntax)
13259    }
13260    #[inline]
13261    pub fn partition_token(&self) -> Option<SyntaxToken> {
13262        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13263    }
13264}
13265
13266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13267pub struct PartitionBy {
13268    pub(crate) syntax: SyntaxNode,
13269}
13270impl PartitionBy {
13271    #[inline]
13272    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13273        support::child(&self.syntax)
13274    }
13275    #[inline]
13276    pub fn by_token(&self) -> Option<SyntaxToken> {
13277        support::token(&self.syntax, SyntaxKind::BY_KW)
13278    }
13279    #[inline]
13280    pub fn ident_token(&self) -> Option<SyntaxToken> {
13281        support::token(&self.syntax, SyntaxKind::IDENT)
13282    }
13283    #[inline]
13284    pub fn partition_token(&self) -> Option<SyntaxToken> {
13285        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13286    }
13287    #[inline]
13288    pub fn range_token(&self) -> Option<SyntaxToken> {
13289        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13290    }
13291}
13292
13293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13294pub struct PartitionDefault {
13295    pub(crate) syntax: SyntaxNode,
13296}
13297impl PartitionDefault {
13298    #[inline]
13299    pub fn default_token(&self) -> Option<SyntaxToken> {
13300        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13301    }
13302}
13303
13304#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13305pub struct PartitionForValuesFrom {
13306    pub(crate) syntax: SyntaxNode,
13307}
13308impl PartitionForValuesFrom {
13309    #[inline]
13310    pub fn exprs(&self) -> AstChildren<Expr> {
13311        support::children(&self.syntax)
13312    }
13313    #[inline]
13314    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::L_PAREN)
13316    }
13317    #[inline]
13318    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13319        support::token(&self.syntax, SyntaxKind::R_PAREN)
13320    }
13321    #[inline]
13322    pub fn for_token(&self) -> Option<SyntaxToken> {
13323        support::token(&self.syntax, SyntaxKind::FOR_KW)
13324    }
13325    #[inline]
13326    pub fn from_token(&self) -> Option<SyntaxToken> {
13327        support::token(&self.syntax, SyntaxKind::FROM_KW)
13328    }
13329    #[inline]
13330    pub fn to_token(&self) -> Option<SyntaxToken> {
13331        support::token(&self.syntax, SyntaxKind::TO_KW)
13332    }
13333    #[inline]
13334    pub fn values_token(&self) -> Option<SyntaxToken> {
13335        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13336    }
13337}
13338
13339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13340pub struct PartitionForValuesIn {
13341    pub(crate) syntax: SyntaxNode,
13342}
13343impl PartitionForValuesIn {
13344    #[inline]
13345    pub fn exprs(&self) -> AstChildren<Expr> {
13346        support::children(&self.syntax)
13347    }
13348    #[inline]
13349    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13350        support::token(&self.syntax, SyntaxKind::L_PAREN)
13351    }
13352    #[inline]
13353    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13354        support::token(&self.syntax, SyntaxKind::R_PAREN)
13355    }
13356    #[inline]
13357    pub fn for_token(&self) -> Option<SyntaxToken> {
13358        support::token(&self.syntax, SyntaxKind::FOR_KW)
13359    }
13360    #[inline]
13361    pub fn in_token(&self) -> Option<SyntaxToken> {
13362        support::token(&self.syntax, SyntaxKind::IN_KW)
13363    }
13364    #[inline]
13365    pub fn values_token(&self) -> Option<SyntaxToken> {
13366        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13367    }
13368}
13369
13370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13371pub struct PartitionForValuesWith {
13372    pub(crate) syntax: SyntaxNode,
13373}
13374impl PartitionForValuesWith {
13375    #[inline]
13376    pub fn literal(&self) -> Option<Literal> {
13377        support::child(&self.syntax)
13378    }
13379    #[inline]
13380    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13381        support::token(&self.syntax, SyntaxKind::L_PAREN)
13382    }
13383    #[inline]
13384    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13385        support::token(&self.syntax, SyntaxKind::R_PAREN)
13386    }
13387    #[inline]
13388    pub fn comma_token(&self) -> Option<SyntaxToken> {
13389        support::token(&self.syntax, SyntaxKind::COMMA)
13390    }
13391    #[inline]
13392    pub fn for_token(&self) -> Option<SyntaxToken> {
13393        support::token(&self.syntax, SyntaxKind::FOR_KW)
13394    }
13395    #[inline]
13396    pub fn ident_token(&self) -> Option<SyntaxToken> {
13397        support::token(&self.syntax, SyntaxKind::IDENT)
13398    }
13399    #[inline]
13400    pub fn values_token(&self) -> Option<SyntaxToken> {
13401        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13402    }
13403    #[inline]
13404    pub fn with_token(&self) -> Option<SyntaxToken> {
13405        support::token(&self.syntax, SyntaxKind::WITH_KW)
13406    }
13407}
13408
13409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13410pub struct PartitionItem {
13411    pub(crate) syntax: SyntaxNode,
13412}
13413impl PartitionItem {
13414    #[inline]
13415    pub fn collate(&self) -> Option<Collate> {
13416        support::child(&self.syntax)
13417    }
13418    #[inline]
13419    pub fn expr(&self) -> Option<Expr> {
13420        support::child(&self.syntax)
13421    }
13422}
13423
13424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13425pub struct PartitionItemList {
13426    pub(crate) syntax: SyntaxNode,
13427}
13428impl PartitionItemList {
13429    #[inline]
13430    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
13431        support::children(&self.syntax)
13432    }
13433    #[inline]
13434    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13435        support::token(&self.syntax, SyntaxKind::L_PAREN)
13436    }
13437    #[inline]
13438    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13439        support::token(&self.syntax, SyntaxKind::R_PAREN)
13440    }
13441}
13442
13443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13444pub struct PartitionList {
13445    pub(crate) syntax: SyntaxNode,
13446}
13447impl PartitionList {
13448    #[inline]
13449    pub fn partitions(&self) -> AstChildren<Partition> {
13450        support::children(&self.syntax)
13451    }
13452    #[inline]
13453    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13454        support::token(&self.syntax, SyntaxKind::L_PAREN)
13455    }
13456    #[inline]
13457    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13458        support::token(&self.syntax, SyntaxKind::R_PAREN)
13459    }
13460}
13461
13462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13463pub struct PartitionOf {
13464    pub(crate) syntax: SyntaxNode,
13465}
13466impl PartitionOf {
13467    #[inline]
13468    pub fn path(&self) -> Option<Path> {
13469        support::child(&self.syntax)
13470    }
13471    #[inline]
13472    pub fn of_token(&self) -> Option<SyntaxToken> {
13473        support::token(&self.syntax, SyntaxKind::OF_KW)
13474    }
13475    #[inline]
13476    pub fn partition_token(&self) -> Option<SyntaxToken> {
13477        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13478    }
13479}
13480
13481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13482pub struct Path {
13483    pub(crate) syntax: SyntaxNode,
13484}
13485impl Path {
13486    #[inline]
13487    pub fn qualifier(&self) -> Option<Path> {
13488        support::child(&self.syntax)
13489    }
13490    #[inline]
13491    pub fn segment(&self) -> Option<PathSegment> {
13492        support::child(&self.syntax)
13493    }
13494    #[inline]
13495    pub fn dot_token(&self) -> Option<SyntaxToken> {
13496        support::token(&self.syntax, SyntaxKind::DOT)
13497    }
13498}
13499
13500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13501pub struct PathFactor {
13502    pub(crate) syntax: SyntaxNode,
13503}
13504impl PathFactor {
13505    #[inline]
13506    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
13507        support::child(&self.syntax)
13508    }
13509    #[inline]
13510    pub fn path_primary(&self) -> Option<PathPrimary> {
13511        support::child(&self.syntax)
13512    }
13513}
13514
13515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13516pub struct PathPattern {
13517    pub(crate) syntax: SyntaxNode,
13518}
13519impl PathPattern {
13520    #[inline]
13521    pub fn path_factor(&self) -> Option<PathFactor> {
13522        support::child(&self.syntax)
13523    }
13524    #[inline]
13525    pub fn path_factors(&self) -> AstChildren<PathFactor> {
13526        support::children(&self.syntax)
13527    }
13528}
13529
13530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13531pub struct PathPatternList {
13532    pub(crate) syntax: SyntaxNode,
13533}
13534impl PathPatternList {
13535    #[inline]
13536    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
13537        support::children(&self.syntax)
13538    }
13539}
13540
13541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13542pub struct PathSegment {
13543    pub(crate) syntax: SyntaxNode,
13544}
13545impl PathSegment {
13546    #[inline]
13547    pub fn name(&self) -> Option<Name> {
13548        support::child(&self.syntax)
13549    }
13550    #[inline]
13551    pub fn name_ref(&self) -> Option<NameRef> {
13552        support::child(&self.syntax)
13553    }
13554}
13555
13556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13557pub struct PathType {
13558    pub(crate) syntax: SyntaxNode,
13559}
13560impl PathType {
13561    #[inline]
13562    pub fn arg_list(&self) -> Option<ArgList> {
13563        support::child(&self.syntax)
13564    }
13565    #[inline]
13566    pub fn path(&self) -> Option<Path> {
13567        support::child(&self.syntax)
13568    }
13569    #[inline]
13570    pub fn setof_token(&self) -> Option<SyntaxToken> {
13571        support::token(&self.syntax, SyntaxKind::SETOF_KW)
13572    }
13573}
13574
13575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13576pub struct PercentType {
13577    pub(crate) syntax: SyntaxNode,
13578}
13579impl PercentType {
13580    #[inline]
13581    pub fn percent_token(&self) -> Option<SyntaxToken> {
13582        support::token(&self.syntax, SyntaxKind::PERCENT)
13583    }
13584    #[inline]
13585    pub fn type_token(&self) -> Option<SyntaxToken> {
13586        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13587    }
13588}
13589
13590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13591pub struct PercentTypeClause {
13592    pub(crate) syntax: SyntaxNode,
13593}
13594impl PercentTypeClause {
13595    #[inline]
13596    pub fn path(&self) -> Option<Path> {
13597        support::child(&self.syntax)
13598    }
13599    #[inline]
13600    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
13601        support::child(&self.syntax)
13602    }
13603}
13604
13605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13606pub struct PositionFn {
13607    pub(crate) syntax: SyntaxNode,
13608}
13609impl PositionFn {
13610    #[inline]
13611    pub fn expr(&self) -> Option<Expr> {
13612        support::child(&self.syntax)
13613    }
13614    #[inline]
13615    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13616        support::token(&self.syntax, SyntaxKind::L_PAREN)
13617    }
13618    #[inline]
13619    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13620        support::token(&self.syntax, SyntaxKind::R_PAREN)
13621    }
13622    #[inline]
13623    pub fn in_token(&self) -> Option<SyntaxToken> {
13624        support::token(&self.syntax, SyntaxKind::IN_KW)
13625    }
13626    #[inline]
13627    pub fn position_token(&self) -> Option<SyntaxToken> {
13628        support::token(&self.syntax, SyntaxKind::POSITION_KW)
13629    }
13630}
13631
13632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13633pub struct PostfixExpr {
13634    pub(crate) syntax: SyntaxNode,
13635}
13636impl PostfixExpr {
13637    #[inline]
13638    pub fn expr(&self) -> Option<Expr> {
13639        support::child(&self.syntax)
13640    }
13641}
13642
13643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13644pub struct PrefixExpr {
13645    pub(crate) syntax: SyntaxNode,
13646}
13647impl PrefixExpr {
13648    #[inline]
13649    pub fn expr(&self) -> Option<Expr> {
13650        support::child(&self.syntax)
13651    }
13652}
13653
13654#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13655pub struct Prepare {
13656    pub(crate) syntax: SyntaxNode,
13657}
13658impl Prepare {
13659    #[inline]
13660    pub fn name(&self) -> Option<Name> {
13661        support::child(&self.syntax)
13662    }
13663    #[inline]
13664    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
13665        support::child(&self.syntax)
13666    }
13667    #[inline]
13668    pub fn as_token(&self) -> Option<SyntaxToken> {
13669        support::token(&self.syntax, SyntaxKind::AS_KW)
13670    }
13671    #[inline]
13672    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13673        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13674    }
13675}
13676
13677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13678pub struct PrepareTransaction {
13679    pub(crate) syntax: SyntaxNode,
13680}
13681impl PrepareTransaction {
13682    #[inline]
13683    pub fn literal(&self) -> Option<Literal> {
13684        support::child(&self.syntax)
13685    }
13686    #[inline]
13687    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13688        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13689    }
13690    #[inline]
13691    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13692        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13693    }
13694}
13695
13696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13697pub struct PreserveRows {
13698    pub(crate) syntax: SyntaxNode,
13699}
13700impl PreserveRows {
13701    #[inline]
13702    pub fn preserve_token(&self) -> Option<SyntaxToken> {
13703        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
13704    }
13705    #[inline]
13706    pub fn rows_token(&self) -> Option<SyntaxToken> {
13707        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13708    }
13709}
13710
13711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13712pub struct PrimaryKeyConstraint {
13713    pub(crate) syntax: SyntaxNode,
13714}
13715impl PrimaryKeyConstraint {
13716    #[inline]
13717    pub fn column_list(&self) -> Option<ColumnList> {
13718        support::child(&self.syntax)
13719    }
13720    #[inline]
13721    pub fn constraint_name(&self) -> Option<ConstraintName> {
13722        support::child(&self.syntax)
13723    }
13724    #[inline]
13725    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13726        support::child(&self.syntax)
13727    }
13728    #[inline]
13729    pub fn using_index(&self) -> Option<UsingIndex> {
13730        support::child(&self.syntax)
13731    }
13732    #[inline]
13733    pub fn key_token(&self) -> Option<SyntaxToken> {
13734        support::token(&self.syntax, SyntaxKind::KEY_KW)
13735    }
13736    #[inline]
13737    pub fn primary_token(&self) -> Option<SyntaxToken> {
13738        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
13739    }
13740}
13741
13742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13743pub struct PrivilegeTarget {
13744    pub(crate) syntax: SyntaxNode,
13745}
13746impl PrivilegeTarget {
13747    #[inline]
13748    pub fn functions_token(&self) -> Option<SyntaxToken> {
13749        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
13750    }
13751    #[inline]
13752    pub fn large_token(&self) -> Option<SyntaxToken> {
13753        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13754    }
13755    #[inline]
13756    pub fn objects_token(&self) -> Option<SyntaxToken> {
13757        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
13758    }
13759    #[inline]
13760    pub fn routines_token(&self) -> Option<SyntaxToken> {
13761        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
13762    }
13763    #[inline]
13764    pub fn schemas_token(&self) -> Option<SyntaxToken> {
13765        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
13766    }
13767    #[inline]
13768    pub fn sequences_token(&self) -> Option<SyntaxToken> {
13769        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
13770    }
13771    #[inline]
13772    pub fn tables_token(&self) -> Option<SyntaxToken> {
13773        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13774    }
13775    #[inline]
13776    pub fn types_token(&self) -> Option<SyntaxToken> {
13777        support::token(&self.syntax, SyntaxKind::TYPES_KW)
13778    }
13779}
13780
13781#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13782pub struct Privileges {
13783    pub(crate) syntax: SyntaxNode,
13784}
13785impl Privileges {
13786    #[inline]
13787    pub fn column_list(&self) -> Option<ColumnList> {
13788        support::child(&self.syntax)
13789    }
13790    #[inline]
13791    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13792        support::child(&self.syntax)
13793    }
13794    #[inline]
13795    pub fn all_token(&self) -> Option<SyntaxToken> {
13796        support::token(&self.syntax, SyntaxKind::ALL_KW)
13797    }
13798    #[inline]
13799    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13800        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13801    }
13802}
13803
13804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13805pub struct Properties {
13806    pub(crate) syntax: SyntaxNode,
13807}
13808impl Properties {
13809    #[inline]
13810    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
13811        support::child(&self.syntax)
13812    }
13813    #[inline]
13814    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13815        support::token(&self.syntax, SyntaxKind::L_PAREN)
13816    }
13817    #[inline]
13818    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13819        support::token(&self.syntax, SyntaxKind::R_PAREN)
13820    }
13821    #[inline]
13822    pub fn properties_token(&self) -> Option<SyntaxToken> {
13823        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
13824    }
13825}
13826
13827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13828pub struct PublicationObject {
13829    pub(crate) syntax: SyntaxNode,
13830}
13831impl PublicationObject {
13832    #[inline]
13833    pub fn column_list(&self) -> Option<ColumnList> {
13834        support::child(&self.syntax)
13835    }
13836    #[inline]
13837    pub fn name_ref(&self) -> Option<NameRef> {
13838        support::child(&self.syntax)
13839    }
13840    #[inline]
13841    pub fn path(&self) -> Option<Path> {
13842        support::child(&self.syntax)
13843    }
13844    #[inline]
13845    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
13846        support::child(&self.syntax)
13847    }
13848    #[inline]
13849    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13850        support::token(&self.syntax, SyntaxKind::L_PAREN)
13851    }
13852    #[inline]
13853    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13854        support::token(&self.syntax, SyntaxKind::R_PAREN)
13855    }
13856    #[inline]
13857    pub fn star_token(&self) -> Option<SyntaxToken> {
13858        support::token(&self.syntax, SyntaxKind::STAR)
13859    }
13860    #[inline]
13861    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
13862        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
13863    }
13864    #[inline]
13865    pub fn in_token(&self) -> Option<SyntaxToken> {
13866        support::token(&self.syntax, SyntaxKind::IN_KW)
13867    }
13868    #[inline]
13869    pub fn only_token(&self) -> Option<SyntaxToken> {
13870        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13871    }
13872    #[inline]
13873    pub fn schema_token(&self) -> Option<SyntaxToken> {
13874        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13875    }
13876    #[inline]
13877    pub fn table_token(&self) -> Option<SyntaxToken> {
13878        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13879    }
13880    #[inline]
13881    pub fn tables_token(&self) -> Option<SyntaxToken> {
13882        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13883    }
13884}
13885
13886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13887pub struct ReadCommitted {
13888    pub(crate) syntax: SyntaxNode,
13889}
13890impl ReadCommitted {
13891    #[inline]
13892    pub fn committed_token(&self) -> Option<SyntaxToken> {
13893        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
13894    }
13895    #[inline]
13896    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13897        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13898    }
13899    #[inline]
13900    pub fn level_token(&self) -> Option<SyntaxToken> {
13901        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13902    }
13903    #[inline]
13904    pub fn read_token(&self) -> Option<SyntaxToken> {
13905        support::token(&self.syntax, SyntaxKind::READ_KW)
13906    }
13907}
13908
13909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13910pub struct ReadOnly {
13911    pub(crate) syntax: SyntaxNode,
13912}
13913impl ReadOnly {
13914    #[inline]
13915    pub fn only_token(&self) -> Option<SyntaxToken> {
13916        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13917    }
13918    #[inline]
13919    pub fn read_token(&self) -> Option<SyntaxToken> {
13920        support::token(&self.syntax, SyntaxKind::READ_KW)
13921    }
13922}
13923
13924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13925pub struct ReadUncommitted {
13926    pub(crate) syntax: SyntaxNode,
13927}
13928impl ReadUncommitted {
13929    #[inline]
13930    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13931        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13932    }
13933    #[inline]
13934    pub fn level_token(&self) -> Option<SyntaxToken> {
13935        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13936    }
13937    #[inline]
13938    pub fn read_token(&self) -> Option<SyntaxToken> {
13939        support::token(&self.syntax, SyntaxKind::READ_KW)
13940    }
13941    #[inline]
13942    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
13943        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
13944    }
13945}
13946
13947#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13948pub struct ReadWrite {
13949    pub(crate) syntax: SyntaxNode,
13950}
13951impl ReadWrite {
13952    #[inline]
13953    pub fn read_token(&self) -> Option<SyntaxToken> {
13954        support::token(&self.syntax, SyntaxKind::READ_KW)
13955    }
13956    #[inline]
13957    pub fn write_token(&self) -> Option<SyntaxToken> {
13958        support::token(&self.syntax, SyntaxKind::WRITE_KW)
13959    }
13960}
13961
13962#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13963pub struct Reassign {
13964    pub(crate) syntax: SyntaxNode,
13965}
13966impl Reassign {
13967    #[inline]
13968    pub fn new_roles(&self) -> Option<RoleRefList> {
13969        support::child(&self.syntax)
13970    }
13971    #[inline]
13972    pub fn old_roles(&self) -> Option<RoleRefList> {
13973        support::child(&self.syntax)
13974    }
13975    #[inline]
13976    pub fn by_token(&self) -> Option<SyntaxToken> {
13977        support::token(&self.syntax, SyntaxKind::BY_KW)
13978    }
13979    #[inline]
13980    pub fn owned_token(&self) -> Option<SyntaxToken> {
13981        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13982    }
13983    #[inline]
13984    pub fn reassign_token(&self) -> Option<SyntaxToken> {
13985        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
13986    }
13987    #[inline]
13988    pub fn to_token(&self) -> Option<SyntaxToken> {
13989        support::token(&self.syntax, SyntaxKind::TO_KW)
13990    }
13991}
13992
13993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13994pub struct ReferencesConstraint {
13995    pub(crate) syntax: SyntaxNode,
13996}
13997impl ReferencesConstraint {
13998    #[inline]
13999    pub fn column(&self) -> Option<NameRef> {
14000        support::child(&self.syntax)
14001    }
14002    #[inline]
14003    pub fn constraint_name(&self) -> Option<ConstraintName> {
14004        support::child(&self.syntax)
14005    }
14006    #[inline]
14007    pub fn match_type(&self) -> Option<MatchType> {
14008        support::child(&self.syntax)
14009    }
14010    #[inline]
14011    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
14012        support::child(&self.syntax)
14013    }
14014    #[inline]
14015    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
14016        support::child(&self.syntax)
14017    }
14018    #[inline]
14019    pub fn table(&self) -> Option<Path> {
14020        support::child(&self.syntax)
14021    }
14022    #[inline]
14023    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14024        support::token(&self.syntax, SyntaxKind::L_PAREN)
14025    }
14026    #[inline]
14027    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14028        support::token(&self.syntax, SyntaxKind::R_PAREN)
14029    }
14030    #[inline]
14031    pub fn references_token(&self) -> Option<SyntaxToken> {
14032        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14033    }
14034}
14035
14036#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14037pub struct ReferencesTable {
14038    pub(crate) syntax: SyntaxNode,
14039}
14040impl ReferencesTable {
14041    #[inline]
14042    pub fn column_list(&self) -> Option<ColumnList> {
14043        support::child(&self.syntax)
14044    }
14045    #[inline]
14046    pub fn name_ref(&self) -> Option<NameRef> {
14047        support::child(&self.syntax)
14048    }
14049    #[inline]
14050    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14051        support::token(&self.syntax, SyntaxKind::L_PAREN)
14052    }
14053    #[inline]
14054    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14055        support::token(&self.syntax, SyntaxKind::R_PAREN)
14056    }
14057    #[inline]
14058    pub fn references_token(&self) -> Option<SyntaxToken> {
14059        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14060    }
14061}
14062
14063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14064pub struct Referencing {
14065    pub(crate) syntax: SyntaxNode,
14066}
14067impl Referencing {
14068    #[inline]
14069    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
14070        support::children(&self.syntax)
14071    }
14072    #[inline]
14073    pub fn referencing_token(&self) -> Option<SyntaxToken> {
14074        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
14075    }
14076}
14077
14078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14079pub struct ReferencingTable {
14080    pub(crate) syntax: SyntaxNode,
14081}
14082impl ReferencingTable {
14083    #[inline]
14084    pub fn name_ref(&self) -> Option<NameRef> {
14085        support::child(&self.syntax)
14086    }
14087    #[inline]
14088    pub fn as_token(&self) -> Option<SyntaxToken> {
14089        support::token(&self.syntax, SyntaxKind::AS_KW)
14090    }
14091    #[inline]
14092    pub fn new_token(&self) -> Option<SyntaxToken> {
14093        support::token(&self.syntax, SyntaxKind::NEW_KW)
14094    }
14095    #[inline]
14096    pub fn old_token(&self) -> Option<SyntaxToken> {
14097        support::token(&self.syntax, SyntaxKind::OLD_KW)
14098    }
14099    #[inline]
14100    pub fn table_token(&self) -> Option<SyntaxToken> {
14101        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14102    }
14103}
14104
14105#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14106pub struct Refresh {
14107    pub(crate) syntax: SyntaxNode,
14108}
14109impl Refresh {
14110    #[inline]
14111    pub fn path(&self) -> Option<Path> {
14112        support::child(&self.syntax)
14113    }
14114    #[inline]
14115    pub fn with_data(&self) -> Option<WithData> {
14116        support::child(&self.syntax)
14117    }
14118    #[inline]
14119    pub fn with_no_data(&self) -> Option<WithNoData> {
14120        support::child(&self.syntax)
14121    }
14122    #[inline]
14123    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14124        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14125    }
14126    #[inline]
14127    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14128        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14129    }
14130    #[inline]
14131    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14132        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14133    }
14134    #[inline]
14135    pub fn view_token(&self) -> Option<SyntaxToken> {
14136        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14137    }
14138}
14139
14140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14141pub struct RefreshCollationVersion {
14142    pub(crate) syntax: SyntaxNode,
14143}
14144impl RefreshCollationVersion {
14145    #[inline]
14146    pub fn collation_token(&self) -> Option<SyntaxToken> {
14147        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14148    }
14149    #[inline]
14150    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14151        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14152    }
14153    #[inline]
14154    pub fn version_token(&self) -> Option<SyntaxToken> {
14155        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14156    }
14157}
14158
14159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14160pub struct RefreshVersion {
14161    pub(crate) syntax: SyntaxNode,
14162}
14163impl RefreshVersion {
14164    #[inline]
14165    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14166        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14167    }
14168    #[inline]
14169    pub fn version_token(&self) -> Option<SyntaxToken> {
14170        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14171    }
14172}
14173
14174#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14175pub struct Reindex {
14176    pub(crate) syntax: SyntaxNode,
14177}
14178impl Reindex {
14179    #[inline]
14180    pub fn path(&self) -> Option<Path> {
14181        support::child(&self.syntax)
14182    }
14183    #[inline]
14184    pub fn database_token(&self) -> Option<SyntaxToken> {
14185        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14186    }
14187    #[inline]
14188    pub fn index_token(&self) -> Option<SyntaxToken> {
14189        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14190    }
14191    #[inline]
14192    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14193        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14194    }
14195    #[inline]
14196    pub fn schema_token(&self) -> Option<SyntaxToken> {
14197        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14198    }
14199    #[inline]
14200    pub fn system_token(&self) -> Option<SyntaxToken> {
14201        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14202    }
14203    #[inline]
14204    pub fn table_token(&self) -> Option<SyntaxToken> {
14205        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14206    }
14207}
14208
14209#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14210pub struct RelationName {
14211    pub(crate) syntax: SyntaxNode,
14212}
14213impl RelationName {
14214    #[inline]
14215    pub fn path(&self) -> Option<Path> {
14216        support::child(&self.syntax)
14217    }
14218    #[inline]
14219    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14220        support::token(&self.syntax, SyntaxKind::L_PAREN)
14221    }
14222    #[inline]
14223    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14224        support::token(&self.syntax, SyntaxKind::R_PAREN)
14225    }
14226    #[inline]
14227    pub fn star_token(&self) -> Option<SyntaxToken> {
14228        support::token(&self.syntax, SyntaxKind::STAR)
14229    }
14230    #[inline]
14231    pub fn only_token(&self) -> Option<SyntaxToken> {
14232        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14233    }
14234}
14235
14236#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14237pub struct ReleaseSavepoint {
14238    pub(crate) syntax: SyntaxNode,
14239}
14240impl ReleaseSavepoint {
14241    #[inline]
14242    pub fn name_ref(&self) -> Option<NameRef> {
14243        support::child(&self.syntax)
14244    }
14245    #[inline]
14246    pub fn release_token(&self) -> Option<SyntaxToken> {
14247        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14248    }
14249    #[inline]
14250    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14251        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14252    }
14253}
14254
14255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14256pub struct RenameAttribute {
14257    pub(crate) syntax: SyntaxNode,
14258}
14259impl RenameAttribute {
14260    #[inline]
14261    pub fn name(&self) -> Option<Name> {
14262        support::child(&self.syntax)
14263    }
14264    #[inline]
14265    pub fn name_ref(&self) -> Option<NameRef> {
14266        support::child(&self.syntax)
14267    }
14268    #[inline]
14269    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14270        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14271    }
14272    #[inline]
14273    pub fn rename_token(&self) -> Option<SyntaxToken> {
14274        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14275    }
14276    #[inline]
14277    pub fn to_token(&self) -> Option<SyntaxToken> {
14278        support::token(&self.syntax, SyntaxKind::TO_KW)
14279    }
14280}
14281
14282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14283pub struct RenameColumn {
14284    pub(crate) syntax: SyntaxNode,
14285}
14286impl RenameColumn {
14287    #[inline]
14288    pub fn column_token(&self) -> Option<SyntaxToken> {
14289        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14290    }
14291    #[inline]
14292    pub fn rename_token(&self) -> Option<SyntaxToken> {
14293        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14294    }
14295    #[inline]
14296    pub fn to_token(&self) -> Option<SyntaxToken> {
14297        support::token(&self.syntax, SyntaxKind::TO_KW)
14298    }
14299}
14300
14301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14302pub struct RenameConstraint {
14303    pub(crate) syntax: SyntaxNode,
14304}
14305impl RenameConstraint {
14306    #[inline]
14307    pub fn name(&self) -> Option<Name> {
14308        support::child(&self.syntax)
14309    }
14310    #[inline]
14311    pub fn name_ref(&self) -> Option<NameRef> {
14312        support::child(&self.syntax)
14313    }
14314    #[inline]
14315    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14316        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14317    }
14318    #[inline]
14319    pub fn rename_token(&self) -> Option<SyntaxToken> {
14320        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14321    }
14322    #[inline]
14323    pub fn to_token(&self) -> Option<SyntaxToken> {
14324        support::token(&self.syntax, SyntaxKind::TO_KW)
14325    }
14326}
14327
14328#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14329pub struct RenameTo {
14330    pub(crate) syntax: SyntaxNode,
14331}
14332impl RenameTo {
14333    #[inline]
14334    pub fn name(&self) -> Option<Name> {
14335        support::child(&self.syntax)
14336    }
14337    #[inline]
14338    pub fn rename_token(&self) -> Option<SyntaxToken> {
14339        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14340    }
14341    #[inline]
14342    pub fn to_token(&self) -> Option<SyntaxToken> {
14343        support::token(&self.syntax, SyntaxKind::TO_KW)
14344    }
14345}
14346
14347#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14348pub struct RenameValue {
14349    pub(crate) syntax: SyntaxNode,
14350}
14351impl RenameValue {
14352    #[inline]
14353    pub fn literal(&self) -> Option<Literal> {
14354        support::child(&self.syntax)
14355    }
14356    #[inline]
14357    pub fn rename_token(&self) -> Option<SyntaxToken> {
14358        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14359    }
14360    #[inline]
14361    pub fn to_token(&self) -> Option<SyntaxToken> {
14362        support::token(&self.syntax, SyntaxKind::TO_KW)
14363    }
14364    #[inline]
14365    pub fn value_token(&self) -> Option<SyntaxToken> {
14366        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14367    }
14368}
14369
14370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14371pub struct Repack {
14372    pub(crate) syntax: SyntaxNode,
14373}
14374impl Repack {
14375    #[inline]
14376    pub fn name_ref(&self) -> Option<NameRef> {
14377        support::child(&self.syntax)
14378    }
14379    #[inline]
14380    pub fn option_item_list(&self) -> Option<OptionItemList> {
14381        support::child(&self.syntax)
14382    }
14383    #[inline]
14384    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
14385        support::child(&self.syntax)
14386    }
14387    #[inline]
14388    pub fn index_token(&self) -> Option<SyntaxToken> {
14389        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14390    }
14391    #[inline]
14392    pub fn repack_token(&self) -> Option<SyntaxToken> {
14393        support::token(&self.syntax, SyntaxKind::REPACK_KW)
14394    }
14395    #[inline]
14396    pub fn using_token(&self) -> Option<SyntaxToken> {
14397        support::token(&self.syntax, SyntaxKind::USING_KW)
14398    }
14399}
14400
14401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14402pub struct RepeatableClause {
14403    pub(crate) syntax: SyntaxNode,
14404}
14405impl RepeatableClause {
14406    #[inline]
14407    pub fn expr(&self) -> Option<Expr> {
14408        support::child(&self.syntax)
14409    }
14410    #[inline]
14411    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14412        support::token(&self.syntax, SyntaxKind::L_PAREN)
14413    }
14414    #[inline]
14415    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14416        support::token(&self.syntax, SyntaxKind::R_PAREN)
14417    }
14418    #[inline]
14419    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14420        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14421    }
14422}
14423
14424#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14425pub struct RepeatableRead {
14426    pub(crate) syntax: SyntaxNode,
14427}
14428impl RepeatableRead {
14429    #[inline]
14430    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14431        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14432    }
14433    #[inline]
14434    pub fn level_token(&self) -> Option<SyntaxToken> {
14435        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14436    }
14437    #[inline]
14438    pub fn read_token(&self) -> Option<SyntaxToken> {
14439        support::token(&self.syntax, SyntaxKind::READ_KW)
14440    }
14441    #[inline]
14442    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14443        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14444    }
14445}
14446
14447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14448pub struct ReplicaIdentity {
14449    pub(crate) syntax: SyntaxNode,
14450}
14451impl ReplicaIdentity {
14452    #[inline]
14453    pub fn identity_token(&self) -> Option<SyntaxToken> {
14454        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
14455    }
14456    #[inline]
14457    pub fn replica_token(&self) -> Option<SyntaxToken> {
14458        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
14459    }
14460}
14461
14462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14463pub struct Reset {
14464    pub(crate) syntax: SyntaxNode,
14465}
14466impl Reset {
14467    #[inline]
14468    pub fn name_ref(&self) -> Option<NameRef> {
14469        support::child(&self.syntax)
14470    }
14471    #[inline]
14472    pub fn all_token(&self) -> Option<SyntaxToken> {
14473        support::token(&self.syntax, SyntaxKind::ALL_KW)
14474    }
14475    #[inline]
14476    pub fn reset_token(&self) -> Option<SyntaxToken> {
14477        support::token(&self.syntax, SyntaxKind::RESET_KW)
14478    }
14479}
14480
14481#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14482pub struct ResetConfigParam {
14483    pub(crate) syntax: SyntaxNode,
14484}
14485impl ResetConfigParam {
14486    #[inline]
14487    pub fn path(&self) -> Option<Path> {
14488        support::child(&self.syntax)
14489    }
14490    #[inline]
14491    pub fn all_token(&self) -> Option<SyntaxToken> {
14492        support::token(&self.syntax, SyntaxKind::ALL_KW)
14493    }
14494    #[inline]
14495    pub fn reset_token(&self) -> Option<SyntaxToken> {
14496        support::token(&self.syntax, SyntaxKind::RESET_KW)
14497    }
14498}
14499
14500#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14501pub struct ResetFuncOption {
14502    pub(crate) syntax: SyntaxNode,
14503}
14504impl ResetFuncOption {
14505    #[inline]
14506    pub fn name_ref(&self) -> Option<NameRef> {
14507        support::child(&self.syntax)
14508    }
14509    #[inline]
14510    pub fn reset_token(&self) -> Option<SyntaxToken> {
14511        support::token(&self.syntax, SyntaxKind::RESET_KW)
14512    }
14513}
14514
14515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14516pub struct ResetOptions {
14517    pub(crate) syntax: SyntaxNode,
14518}
14519impl ResetOptions {
14520    #[inline]
14521    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14522        support::token(&self.syntax, SyntaxKind::L_PAREN)
14523    }
14524    #[inline]
14525    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14526        support::token(&self.syntax, SyntaxKind::R_PAREN)
14527    }
14528    #[inline]
14529    pub fn reset_token(&self) -> Option<SyntaxToken> {
14530        support::token(&self.syntax, SyntaxKind::RESET_KW)
14531    }
14532}
14533
14534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14535pub struct ResetSessionAuth {
14536    pub(crate) syntax: SyntaxNode,
14537}
14538impl ResetSessionAuth {
14539    #[inline]
14540    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14541        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14542    }
14543    #[inline]
14544    pub fn reset_token(&self) -> Option<SyntaxToken> {
14545        support::token(&self.syntax, SyntaxKind::RESET_KW)
14546    }
14547    #[inline]
14548    pub fn session_token(&self) -> Option<SyntaxToken> {
14549        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14550    }
14551}
14552
14553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14554pub struct Restart {
14555    pub(crate) syntax: SyntaxNode,
14556}
14557impl Restart {
14558    #[inline]
14559    pub fn restart_token(&self) -> Option<SyntaxToken> {
14560        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14561    }
14562    #[inline]
14563    pub fn with_token(&self) -> Option<SyntaxToken> {
14564        support::token(&self.syntax, SyntaxKind::WITH_KW)
14565    }
14566}
14567
14568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14569pub struct Restrict {
14570    pub(crate) syntax: SyntaxNode,
14571}
14572impl Restrict {
14573    #[inline]
14574    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14575        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14576    }
14577}
14578
14579#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14580pub struct RetType {
14581    pub(crate) syntax: SyntaxNode,
14582}
14583impl RetType {
14584    #[inline]
14585    pub fn table_arg_list(&self) -> Option<TableArgList> {
14586        support::child(&self.syntax)
14587    }
14588    #[inline]
14589    pub fn ty(&self) -> Option<Type> {
14590        support::child(&self.syntax)
14591    }
14592    #[inline]
14593    pub fn returns_token(&self) -> Option<SyntaxToken> {
14594        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14595    }
14596    #[inline]
14597    pub fn table_token(&self) -> Option<SyntaxToken> {
14598        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14599    }
14600}
14601
14602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14603pub struct ReturnFuncOption {
14604    pub(crate) syntax: SyntaxNode,
14605}
14606impl ReturnFuncOption {
14607    #[inline]
14608    pub fn expr(&self) -> Option<Expr> {
14609        support::child(&self.syntax)
14610    }
14611    #[inline]
14612    pub fn return_token(&self) -> Option<SyntaxToken> {
14613        support::token(&self.syntax, SyntaxKind::RETURN_KW)
14614    }
14615}
14616
14617#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14618pub struct ReturningClause {
14619    pub(crate) syntax: SyntaxNode,
14620}
14621impl ReturningClause {
14622    #[inline]
14623    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
14624        support::child(&self.syntax)
14625    }
14626    #[inline]
14627    pub fn target_list(&self) -> Option<TargetList> {
14628        support::child(&self.syntax)
14629    }
14630    #[inline]
14631    pub fn returning_token(&self) -> Option<SyntaxToken> {
14632        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
14633    }
14634}
14635
14636#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14637pub struct ReturningOption {
14638    pub(crate) syntax: SyntaxNode,
14639}
14640impl ReturningOption {
14641    #[inline]
14642    pub fn name(&self) -> Option<Name> {
14643        support::child(&self.syntax)
14644    }
14645    #[inline]
14646    pub fn as_token(&self) -> Option<SyntaxToken> {
14647        support::token(&self.syntax, SyntaxKind::AS_KW)
14648    }
14649    #[inline]
14650    pub fn new_token(&self) -> Option<SyntaxToken> {
14651        support::token(&self.syntax, SyntaxKind::NEW_KW)
14652    }
14653    #[inline]
14654    pub fn old_token(&self) -> Option<SyntaxToken> {
14655        support::token(&self.syntax, SyntaxKind::OLD_KW)
14656    }
14657}
14658
14659#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14660pub struct ReturningOptionList {
14661    pub(crate) syntax: SyntaxNode,
14662}
14663impl ReturningOptionList {
14664    #[inline]
14665    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
14666        support::children(&self.syntax)
14667    }
14668    #[inline]
14669    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14670        support::token(&self.syntax, SyntaxKind::L_PAREN)
14671    }
14672    #[inline]
14673    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14674        support::token(&self.syntax, SyntaxKind::R_PAREN)
14675    }
14676    #[inline]
14677    pub fn with_token(&self) -> Option<SyntaxToken> {
14678        support::token(&self.syntax, SyntaxKind::WITH_KW)
14679    }
14680}
14681
14682#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14683pub struct Revoke {
14684    pub(crate) syntax: SyntaxNode,
14685}
14686impl Revoke {
14687    #[inline]
14688    pub fn name_refs(&self) -> AstChildren<NameRef> {
14689        support::children(&self.syntax)
14690    }
14691    #[inline]
14692    pub fn paths(&self) -> AstChildren<Path> {
14693        support::children(&self.syntax)
14694    }
14695    #[inline]
14696    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14697        support::child(&self.syntax)
14698    }
14699    #[inline]
14700    pub fn role_ref(&self) -> Option<RoleRef> {
14701        support::child(&self.syntax)
14702    }
14703    #[inline]
14704    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14705        support::child(&self.syntax)
14706    }
14707    #[inline]
14708    pub fn all_token(&self) -> Option<SyntaxToken> {
14709        support::token(&self.syntax, SyntaxKind::ALL_KW)
14710    }
14711    #[inline]
14712    pub fn by_token(&self) -> Option<SyntaxToken> {
14713        support::token(&self.syntax, SyntaxKind::BY_KW)
14714    }
14715    #[inline]
14716    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14717        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14718    }
14719    #[inline]
14720    pub fn for_token(&self) -> Option<SyntaxToken> {
14721        support::token(&self.syntax, SyntaxKind::FOR_KW)
14722    }
14723    #[inline]
14724    pub fn from_token(&self) -> Option<SyntaxToken> {
14725        support::token(&self.syntax, SyntaxKind::FROM_KW)
14726    }
14727    #[inline]
14728    pub fn grant_token(&self) -> Option<SyntaxToken> {
14729        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14730    }
14731    #[inline]
14732    pub fn granted_token(&self) -> Option<SyntaxToken> {
14733        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
14734    }
14735    #[inline]
14736    pub fn in_token(&self) -> Option<SyntaxToken> {
14737        support::token(&self.syntax, SyntaxKind::IN_KW)
14738    }
14739    #[inline]
14740    pub fn on_token(&self) -> Option<SyntaxToken> {
14741        support::token(&self.syntax, SyntaxKind::ON_KW)
14742    }
14743    #[inline]
14744    pub fn option_token(&self) -> Option<SyntaxToken> {
14745        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14746    }
14747    #[inline]
14748    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14749        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14750    }
14751    #[inline]
14752    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14753        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14754    }
14755    #[inline]
14756    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14757        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14758    }
14759    #[inline]
14760    pub fn schema_token(&self) -> Option<SyntaxToken> {
14761        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14762    }
14763    #[inline]
14764    pub fn table_token(&self) -> Option<SyntaxToken> {
14765        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14766    }
14767    #[inline]
14768    pub fn tables_token(&self) -> Option<SyntaxToken> {
14769        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14770    }
14771}
14772
14773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14774pub struct RevokeCommand {
14775    pub(crate) syntax: SyntaxNode,
14776}
14777impl RevokeCommand {
14778    #[inline]
14779    pub fn role_ref(&self) -> Option<RoleRef> {
14780        support::child(&self.syntax)
14781    }
14782    #[inline]
14783    pub fn all_token(&self) -> Option<SyntaxToken> {
14784        support::token(&self.syntax, SyntaxKind::ALL_KW)
14785    }
14786    #[inline]
14787    pub fn alter_token(&self) -> Option<SyntaxToken> {
14788        support::token(&self.syntax, SyntaxKind::ALTER_KW)
14789    }
14790    #[inline]
14791    pub fn create_token(&self) -> Option<SyntaxToken> {
14792        support::token(&self.syntax, SyntaxKind::CREATE_KW)
14793    }
14794    #[inline]
14795    pub fn delete_token(&self) -> Option<SyntaxToken> {
14796        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14797    }
14798    #[inline]
14799    pub fn execute_token(&self) -> Option<SyntaxToken> {
14800        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
14801    }
14802    #[inline]
14803    pub fn ident_token(&self) -> Option<SyntaxToken> {
14804        support::token(&self.syntax, SyntaxKind::IDENT)
14805    }
14806    #[inline]
14807    pub fn insert_token(&self) -> Option<SyntaxToken> {
14808        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14809    }
14810    #[inline]
14811    pub fn references_token(&self) -> Option<SyntaxToken> {
14812        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14813    }
14814    #[inline]
14815    pub fn select_token(&self) -> Option<SyntaxToken> {
14816        support::token(&self.syntax, SyntaxKind::SELECT_KW)
14817    }
14818    #[inline]
14819    pub fn system_token(&self) -> Option<SyntaxToken> {
14820        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14821    }
14822    #[inline]
14823    pub fn temp_token(&self) -> Option<SyntaxToken> {
14824        support::token(&self.syntax, SyntaxKind::TEMP_KW)
14825    }
14826    #[inline]
14827    pub fn temporary_token(&self) -> Option<SyntaxToken> {
14828        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
14829    }
14830    #[inline]
14831    pub fn trigger_token(&self) -> Option<SyntaxToken> {
14832        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
14833    }
14834    #[inline]
14835    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14836        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14837    }
14838    #[inline]
14839    pub fn update_token(&self) -> Option<SyntaxToken> {
14840        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14841    }
14842}
14843
14844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14845pub struct RevokeCommandList {
14846    pub(crate) syntax: SyntaxNode,
14847}
14848impl RevokeCommandList {
14849    #[inline]
14850    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
14851        support::children(&self.syntax)
14852    }
14853}
14854
14855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14856pub struct RevokeDefaultPrivileges {
14857    pub(crate) syntax: SyntaxNode,
14858}
14859impl RevokeDefaultPrivileges {
14860    #[inline]
14861    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
14862        support::child(&self.syntax)
14863    }
14864    #[inline]
14865    pub fn privileges(&self) -> Option<Privileges> {
14866        support::child(&self.syntax)
14867    }
14868    #[inline]
14869    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14870        support::child(&self.syntax)
14871    }
14872    #[inline]
14873    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14874        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14875    }
14876    #[inline]
14877    pub fn for_token(&self) -> Option<SyntaxToken> {
14878        support::token(&self.syntax, SyntaxKind::FOR_KW)
14879    }
14880    #[inline]
14881    pub fn from_token(&self) -> Option<SyntaxToken> {
14882        support::token(&self.syntax, SyntaxKind::FROM_KW)
14883    }
14884    #[inline]
14885    pub fn grant_token(&self) -> Option<SyntaxToken> {
14886        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14887    }
14888    #[inline]
14889    pub fn on_token(&self) -> Option<SyntaxToken> {
14890        support::token(&self.syntax, SyntaxKind::ON_KW)
14891    }
14892    #[inline]
14893    pub fn option_token(&self) -> Option<SyntaxToken> {
14894        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14895    }
14896    #[inline]
14897    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14898        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14899    }
14900    #[inline]
14901    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14902        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14903    }
14904}
14905
14906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14907pub struct Role {
14908    pub(crate) syntax: SyntaxNode,
14909}
14910impl Role {
14911    #[inline]
14912    pub fn name(&self) -> Option<Name> {
14913        support::child(&self.syntax)
14914    }
14915    #[inline]
14916    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14917        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14918    }
14919    #[inline]
14920    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14921        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14922    }
14923    #[inline]
14924    pub fn group_token(&self) -> Option<SyntaxToken> {
14925        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14926    }
14927    #[inline]
14928    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14929        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14930    }
14931}
14932
14933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14934pub struct RoleOption {
14935    pub(crate) syntax: SyntaxNode,
14936}
14937impl RoleOption {
14938    #[inline]
14939    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14940        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14941    }
14942}
14943
14944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14945pub struct RoleOptionList {
14946    pub(crate) syntax: SyntaxNode,
14947}
14948impl RoleOptionList {
14949    #[inline]
14950    pub fn role_options(&self) -> AstChildren<RoleOption> {
14951        support::children(&self.syntax)
14952    }
14953    #[inline]
14954    pub fn with_token(&self) -> Option<SyntaxToken> {
14955        support::token(&self.syntax, SyntaxKind::WITH_KW)
14956    }
14957}
14958
14959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14960pub struct RoleRef {
14961    pub(crate) syntax: SyntaxNode,
14962}
14963impl RoleRef {
14964    #[inline]
14965    pub fn name_ref(&self) -> Option<NameRef> {
14966        support::child(&self.syntax)
14967    }
14968    #[inline]
14969    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14970        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14971    }
14972    #[inline]
14973    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14974        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14975    }
14976    #[inline]
14977    pub fn group_token(&self) -> Option<SyntaxToken> {
14978        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14979    }
14980    #[inline]
14981    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14982        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14983    }
14984}
14985
14986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14987pub struct RoleRefList {
14988    pub(crate) syntax: SyntaxNode,
14989}
14990impl RoleRefList {
14991    #[inline]
14992    pub fn role_refs(&self) -> AstChildren<RoleRef> {
14993        support::children(&self.syntax)
14994    }
14995}
14996
14997#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14998pub struct Rollback {
14999    pub(crate) syntax: SyntaxNode,
15000}
15001impl Rollback {
15002    #[inline]
15003    pub fn literal(&self) -> Option<Literal> {
15004        support::child(&self.syntax)
15005    }
15006    #[inline]
15007    pub fn name_ref(&self) -> Option<NameRef> {
15008        support::child(&self.syntax)
15009    }
15010    #[inline]
15011    pub fn abort_token(&self) -> Option<SyntaxToken> {
15012        support::token(&self.syntax, SyntaxKind::ABORT_KW)
15013    }
15014    #[inline]
15015    pub fn and_token(&self) -> Option<SyntaxToken> {
15016        support::token(&self.syntax, SyntaxKind::AND_KW)
15017    }
15018    #[inline]
15019    pub fn chain_token(&self) -> Option<SyntaxToken> {
15020        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
15021    }
15022    #[inline]
15023    pub fn no_token(&self) -> Option<SyntaxToken> {
15024        support::token(&self.syntax, SyntaxKind::NO_KW)
15025    }
15026    #[inline]
15027    pub fn prepared_token(&self) -> Option<SyntaxToken> {
15028        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
15029    }
15030    #[inline]
15031    pub fn rollback_token(&self) -> Option<SyntaxToken> {
15032        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
15033    }
15034    #[inline]
15035    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15036        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15037    }
15038    #[inline]
15039    pub fn to_token(&self) -> Option<SyntaxToken> {
15040        support::token(&self.syntax, SyntaxKind::TO_KW)
15041    }
15042    #[inline]
15043    pub fn transaction_token(&self) -> Option<SyntaxToken> {
15044        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
15045    }
15046    #[inline]
15047    pub fn work_token(&self) -> Option<SyntaxToken> {
15048        support::token(&self.syntax, SyntaxKind::WORK_KW)
15049    }
15050}
15051
15052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15053pub struct Row {
15054    pub(crate) syntax: SyntaxNode,
15055}
15056impl Row {
15057    #[inline]
15058    pub fn exprs(&self) -> AstChildren<Expr> {
15059        support::children(&self.syntax)
15060    }
15061}
15062
15063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15064pub struct RowList {
15065    pub(crate) syntax: SyntaxNode,
15066}
15067impl RowList {
15068    #[inline]
15069    pub fn rows(&self) -> AstChildren<Row> {
15070        support::children(&self.syntax)
15071    }
15072}
15073
15074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15075pub struct RowsFuncOption {
15076    pub(crate) syntax: SyntaxNode,
15077}
15078impl RowsFuncOption {
15079    #[inline]
15080    pub fn rows_token(&self) -> Option<SyntaxToken> {
15081        support::token(&self.syntax, SyntaxKind::ROWS_KW)
15082    }
15083}
15084
15085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15086pub struct Savepoint {
15087    pub(crate) syntax: SyntaxNode,
15088}
15089impl Savepoint {
15090    #[inline]
15091    pub fn name(&self) -> Option<Name> {
15092        support::child(&self.syntax)
15093    }
15094    #[inline]
15095    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15096        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15097    }
15098}
15099
15100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15101pub struct SecurityFuncOption {
15102    pub(crate) syntax: SyntaxNode,
15103}
15104impl SecurityFuncOption {
15105    #[inline]
15106    pub fn definer_token(&self) -> Option<SyntaxToken> {
15107        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15108    }
15109    #[inline]
15110    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15111        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15112    }
15113    #[inline]
15114    pub fn security_token(&self) -> Option<SyntaxToken> {
15115        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15116    }
15117}
15118
15119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15120pub struct SecurityLabel {
15121    pub(crate) syntax: SyntaxNode,
15122}
15123impl SecurityLabel {
15124    #[inline]
15125    pub fn aggregate(&self) -> Option<Aggregate> {
15126        support::child(&self.syntax)
15127    }
15128    #[inline]
15129    pub fn for_provider(&self) -> Option<ForProvider> {
15130        support::child(&self.syntax)
15131    }
15132    #[inline]
15133    pub fn function_sig(&self) -> Option<FunctionSig> {
15134        support::child(&self.syntax)
15135    }
15136    #[inline]
15137    pub fn literal(&self) -> Option<Literal> {
15138        support::child(&self.syntax)
15139    }
15140    #[inline]
15141    pub fn path(&self) -> Option<Path> {
15142        support::child(&self.syntax)
15143    }
15144    #[inline]
15145    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15146        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15147    }
15148    #[inline]
15149    pub fn column_token(&self) -> Option<SyntaxToken> {
15150        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15151    }
15152    #[inline]
15153    pub fn database_token(&self) -> Option<SyntaxToken> {
15154        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15155    }
15156    #[inline]
15157    pub fn domain_token(&self) -> Option<SyntaxToken> {
15158        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15159    }
15160    #[inline]
15161    pub fn event_token(&self) -> Option<SyntaxToken> {
15162        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15163    }
15164    #[inline]
15165    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15166        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15167    }
15168    #[inline]
15169    pub fn function_token(&self) -> Option<SyntaxToken> {
15170        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15171    }
15172    #[inline]
15173    pub fn is_token(&self) -> Option<SyntaxToken> {
15174        support::token(&self.syntax, SyntaxKind::IS_KW)
15175    }
15176    #[inline]
15177    pub fn label_token(&self) -> Option<SyntaxToken> {
15178        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15179    }
15180    #[inline]
15181    pub fn language_token(&self) -> Option<SyntaxToken> {
15182        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15183    }
15184    #[inline]
15185    pub fn large_token(&self) -> Option<SyntaxToken> {
15186        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15187    }
15188    #[inline]
15189    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15190        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15191    }
15192    #[inline]
15193    pub fn null_token(&self) -> Option<SyntaxToken> {
15194        support::token(&self.syntax, SyntaxKind::NULL_KW)
15195    }
15196    #[inline]
15197    pub fn object_token(&self) -> Option<SyntaxToken> {
15198        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15199    }
15200    #[inline]
15201    pub fn on_token(&self) -> Option<SyntaxToken> {
15202        support::token(&self.syntax, SyntaxKind::ON_KW)
15203    }
15204    #[inline]
15205    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15206        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15207    }
15208    #[inline]
15209    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15210        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15211    }
15212    #[inline]
15213    pub fn publication_token(&self) -> Option<SyntaxToken> {
15214        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15215    }
15216    #[inline]
15217    pub fn role_token(&self) -> Option<SyntaxToken> {
15218        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15219    }
15220    #[inline]
15221    pub fn routine_token(&self) -> Option<SyntaxToken> {
15222        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15223    }
15224    #[inline]
15225    pub fn schema_token(&self) -> Option<SyntaxToken> {
15226        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15227    }
15228    #[inline]
15229    pub fn security_token(&self) -> Option<SyntaxToken> {
15230        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15231    }
15232    #[inline]
15233    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15234        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15235    }
15236    #[inline]
15237    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15238        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15239    }
15240    #[inline]
15241    pub fn table_token(&self) -> Option<SyntaxToken> {
15242        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15243    }
15244    #[inline]
15245    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15246        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15247    }
15248    #[inline]
15249    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15250        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15251    }
15252    #[inline]
15253    pub fn type_token(&self) -> Option<SyntaxToken> {
15254        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15255    }
15256    #[inline]
15257    pub fn view_token(&self) -> Option<SyntaxToken> {
15258        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15259    }
15260}
15261
15262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15263pub struct Select {
15264    pub(crate) syntax: SyntaxNode,
15265}
15266impl Select {
15267    #[inline]
15268    pub fn fetch_clause(&self) -> Option<FetchClause> {
15269        support::child(&self.syntax)
15270    }
15271    #[inline]
15272    pub fn filter_clause(&self) -> Option<FilterClause> {
15273        support::child(&self.syntax)
15274    }
15275    #[inline]
15276    pub fn from_clause(&self) -> Option<FromClause> {
15277        support::child(&self.syntax)
15278    }
15279    #[inline]
15280    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15281        support::child(&self.syntax)
15282    }
15283    #[inline]
15284    pub fn having_clause(&self) -> Option<HavingClause> {
15285        support::child(&self.syntax)
15286    }
15287    #[inline]
15288    pub fn limit_clause(&self) -> Option<LimitClause> {
15289        support::child(&self.syntax)
15290    }
15291    #[inline]
15292    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15293        support::children(&self.syntax)
15294    }
15295    #[inline]
15296    pub fn offset_clause(&self) -> Option<OffsetClause> {
15297        support::child(&self.syntax)
15298    }
15299    #[inline]
15300    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15301        support::child(&self.syntax)
15302    }
15303    #[inline]
15304    pub fn select_clause(&self) -> Option<SelectClause> {
15305        support::child(&self.syntax)
15306    }
15307    #[inline]
15308    pub fn where_clause(&self) -> Option<WhereClause> {
15309        support::child(&self.syntax)
15310    }
15311    #[inline]
15312    pub fn window_clause(&self) -> Option<WindowClause> {
15313        support::child(&self.syntax)
15314    }
15315    #[inline]
15316    pub fn with_clause(&self) -> Option<WithClause> {
15317        support::child(&self.syntax)
15318    }
15319}
15320
15321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15322pub struct SelectClause {
15323    pub(crate) syntax: SyntaxNode,
15324}
15325impl SelectClause {
15326    #[inline]
15327    pub fn distinct_clause(&self) -> Option<DistinctClause> {
15328        support::child(&self.syntax)
15329    }
15330    #[inline]
15331    pub fn target_list(&self) -> Option<TargetList> {
15332        support::child(&self.syntax)
15333    }
15334    #[inline]
15335    pub fn all_token(&self) -> Option<SyntaxToken> {
15336        support::token(&self.syntax, SyntaxKind::ALL_KW)
15337    }
15338    #[inline]
15339    pub fn select_token(&self) -> Option<SyntaxToken> {
15340        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15341    }
15342}
15343
15344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15345pub struct SelectInto {
15346    pub(crate) syntax: SyntaxNode,
15347}
15348impl SelectInto {
15349    #[inline]
15350    pub fn filter_clause(&self) -> Option<FilterClause> {
15351        support::child(&self.syntax)
15352    }
15353    #[inline]
15354    pub fn from_clause(&self) -> Option<FromClause> {
15355        support::child(&self.syntax)
15356    }
15357    #[inline]
15358    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15359        support::child(&self.syntax)
15360    }
15361    #[inline]
15362    pub fn having_clause(&self) -> Option<HavingClause> {
15363        support::child(&self.syntax)
15364    }
15365    #[inline]
15366    pub fn into_clause(&self) -> Option<IntoClause> {
15367        support::child(&self.syntax)
15368    }
15369    #[inline]
15370    pub fn limit_clause(&self) -> Option<LimitClause> {
15371        support::child(&self.syntax)
15372    }
15373    #[inline]
15374    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15375        support::children(&self.syntax)
15376    }
15377    #[inline]
15378    pub fn offset_clause(&self) -> Option<OffsetClause> {
15379        support::child(&self.syntax)
15380    }
15381    #[inline]
15382    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15383        support::child(&self.syntax)
15384    }
15385    #[inline]
15386    pub fn select_clause(&self) -> Option<SelectClause> {
15387        support::child(&self.syntax)
15388    }
15389    #[inline]
15390    pub fn where_clause(&self) -> Option<WhereClause> {
15391        support::child(&self.syntax)
15392    }
15393    #[inline]
15394    pub fn window_clause(&self) -> Option<WindowClause> {
15395        support::child(&self.syntax)
15396    }
15397    #[inline]
15398    pub fn with_clause(&self) -> Option<WithClause> {
15399        support::child(&self.syntax)
15400    }
15401}
15402
15403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15404pub struct SequenceOption {
15405    pub(crate) syntax: SyntaxNode,
15406}
15407impl SequenceOption {
15408    #[inline]
15409    pub fn literal(&self) -> Option<Literal> {
15410        support::child(&self.syntax)
15411    }
15412    #[inline]
15413    pub fn name_ref(&self) -> Option<NameRef> {
15414        support::child(&self.syntax)
15415    }
15416    #[inline]
15417    pub fn path(&self) -> Option<Path> {
15418        support::child(&self.syntax)
15419    }
15420    #[inline]
15421    pub fn ty(&self) -> Option<Type> {
15422        support::child(&self.syntax)
15423    }
15424    #[inline]
15425    pub fn as_token(&self) -> Option<SyntaxToken> {
15426        support::token(&self.syntax, SyntaxKind::AS_KW)
15427    }
15428    #[inline]
15429    pub fn by_token(&self) -> Option<SyntaxToken> {
15430        support::token(&self.syntax, SyntaxKind::BY_KW)
15431    }
15432    #[inline]
15433    pub fn cycle_token(&self) -> Option<SyntaxToken> {
15434        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
15435    }
15436    #[inline]
15437    pub fn increment_token(&self) -> Option<SyntaxToken> {
15438        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
15439    }
15440    #[inline]
15441    pub fn logged_token(&self) -> Option<SyntaxToken> {
15442        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15443    }
15444    #[inline]
15445    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
15446        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
15447    }
15448    #[inline]
15449    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
15450        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
15451    }
15452    #[inline]
15453    pub fn name_token(&self) -> Option<SyntaxToken> {
15454        support::token(&self.syntax, SyntaxKind::NAME_KW)
15455    }
15456    #[inline]
15457    pub fn no_token(&self) -> Option<SyntaxToken> {
15458        support::token(&self.syntax, SyntaxKind::NO_KW)
15459    }
15460    #[inline]
15461    pub fn none_token(&self) -> Option<SyntaxToken> {
15462        support::token(&self.syntax, SyntaxKind::NONE_KW)
15463    }
15464    #[inline]
15465    pub fn owned_token(&self) -> Option<SyntaxToken> {
15466        support::token(&self.syntax, SyntaxKind::OWNED_KW)
15467    }
15468    #[inline]
15469    pub fn restart_token(&self) -> Option<SyntaxToken> {
15470        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15471    }
15472    #[inline]
15473    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15474        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15475    }
15476    #[inline]
15477    pub fn start_token(&self) -> Option<SyntaxToken> {
15478        support::token(&self.syntax, SyntaxKind::START_KW)
15479    }
15480    #[inline]
15481    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
15482        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
15483    }
15484    #[inline]
15485    pub fn with_token(&self) -> Option<SyntaxToken> {
15486        support::token(&self.syntax, SyntaxKind::WITH_KW)
15487    }
15488}
15489
15490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15491pub struct SequenceOptionList {
15492    pub(crate) syntax: SyntaxNode,
15493}
15494impl SequenceOptionList {
15495    #[inline]
15496    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
15497        support::children(&self.syntax)
15498    }
15499    #[inline]
15500    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15501        support::token(&self.syntax, SyntaxKind::L_PAREN)
15502    }
15503    #[inline]
15504    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15505        support::token(&self.syntax, SyntaxKind::R_PAREN)
15506    }
15507}
15508
15509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15510pub struct Serializable {
15511    pub(crate) syntax: SyntaxNode,
15512}
15513impl Serializable {
15514    #[inline]
15515    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15516        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15517    }
15518    #[inline]
15519    pub fn level_token(&self) -> Option<SyntaxToken> {
15520        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15521    }
15522    #[inline]
15523    pub fn serializable_token(&self) -> Option<SyntaxToken> {
15524        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
15525    }
15526}
15527
15528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15529pub struct ServerName {
15530    pub(crate) syntax: SyntaxNode,
15531}
15532impl ServerName {
15533    #[inline]
15534    pub fn name_ref(&self) -> Option<NameRef> {
15535        support::child(&self.syntax)
15536    }
15537    #[inline]
15538    pub fn server_token(&self) -> Option<SyntaxToken> {
15539        support::token(&self.syntax, SyntaxKind::SERVER_KW)
15540    }
15541}
15542
15543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15544pub struct Set {
15545    pub(crate) syntax: SyntaxNode,
15546}
15547impl Set {
15548    #[inline]
15549    pub fn config_value(&self) -> Option<ConfigValue> {
15550        support::child(&self.syntax)
15551    }
15552    #[inline]
15553    pub fn config_values(&self) -> AstChildren<ConfigValue> {
15554        support::children(&self.syntax)
15555    }
15556    #[inline]
15557    pub fn literal(&self) -> Option<Literal> {
15558        support::child(&self.syntax)
15559    }
15560    #[inline]
15561    pub fn path(&self) -> Option<Path> {
15562        support::child(&self.syntax)
15563    }
15564    #[inline]
15565    pub fn eq_token(&self) -> Option<SyntaxToken> {
15566        support::token(&self.syntax, SyntaxKind::EQ)
15567    }
15568    #[inline]
15569    pub fn catalog_token(&self) -> Option<SyntaxToken> {
15570        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
15571    }
15572    #[inline]
15573    pub fn content_token(&self) -> Option<SyntaxToken> {
15574        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
15575    }
15576    #[inline]
15577    pub fn current_token(&self) -> Option<SyntaxToken> {
15578        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15579    }
15580    #[inline]
15581    pub fn default_token(&self) -> Option<SyntaxToken> {
15582        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15583    }
15584    #[inline]
15585    pub fn document_token(&self) -> Option<SyntaxToken> {
15586        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
15587    }
15588    #[inline]
15589    pub fn from_token(&self) -> Option<SyntaxToken> {
15590        support::token(&self.syntax, SyntaxKind::FROM_KW)
15591    }
15592    #[inline]
15593    pub fn local_token(&self) -> Option<SyntaxToken> {
15594        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15595    }
15596    #[inline]
15597    pub fn option_token(&self) -> Option<SyntaxToken> {
15598        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15599    }
15600    #[inline]
15601    pub fn schema_token(&self) -> Option<SyntaxToken> {
15602        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15603    }
15604    #[inline]
15605    pub fn session_token(&self) -> Option<SyntaxToken> {
15606        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15607    }
15608    #[inline]
15609    pub fn set_token(&self) -> Option<SyntaxToken> {
15610        support::token(&self.syntax, SyntaxKind::SET_KW)
15611    }
15612    #[inline]
15613    pub fn time_token(&self) -> Option<SyntaxToken> {
15614        support::token(&self.syntax, SyntaxKind::TIME_KW)
15615    }
15616    #[inline]
15617    pub fn to_token(&self) -> Option<SyntaxToken> {
15618        support::token(&self.syntax, SyntaxKind::TO_KW)
15619    }
15620    #[inline]
15621    pub fn xml_token(&self) -> Option<SyntaxToken> {
15622        support::token(&self.syntax, SyntaxKind::XML_KW)
15623    }
15624    #[inline]
15625    pub fn zone_token(&self) -> Option<SyntaxToken> {
15626        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15627    }
15628}
15629
15630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15631pub struct SetAccessMethod {
15632    pub(crate) syntax: SyntaxNode,
15633}
15634impl SetAccessMethod {
15635    #[inline]
15636    pub fn name_ref(&self) -> Option<NameRef> {
15637        support::child(&self.syntax)
15638    }
15639    #[inline]
15640    pub fn access_token(&self) -> Option<SyntaxToken> {
15641        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
15642    }
15643    #[inline]
15644    pub fn method_token(&self) -> Option<SyntaxToken> {
15645        support::token(&self.syntax, SyntaxKind::METHOD_KW)
15646    }
15647    #[inline]
15648    pub fn set_token(&self) -> Option<SyntaxToken> {
15649        support::token(&self.syntax, SyntaxKind::SET_KW)
15650    }
15651}
15652
15653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15654pub struct SetClause {
15655    pub(crate) syntax: SyntaxNode,
15656}
15657impl SetClause {
15658    #[inline]
15659    pub fn set_column_list(&self) -> Option<SetColumnList> {
15660        support::child(&self.syntax)
15661    }
15662    #[inline]
15663    pub fn set_token(&self) -> Option<SyntaxToken> {
15664        support::token(&self.syntax, SyntaxKind::SET_KW)
15665    }
15666}
15667
15668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15669pub struct SetColumnList {
15670    pub(crate) syntax: SyntaxNode,
15671}
15672impl SetColumnList {
15673    #[inline]
15674    pub fn set_columns(&self) -> AstChildren<SetColumn> {
15675        support::children(&self.syntax)
15676    }
15677}
15678
15679#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15680pub struct SetCompression {
15681    pub(crate) syntax: SyntaxNode,
15682}
15683impl SetCompression {
15684    #[inline]
15685    pub fn compression_token(&self) -> Option<SyntaxToken> {
15686        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
15687    }
15688    #[inline]
15689    pub fn set_token(&self) -> Option<SyntaxToken> {
15690        support::token(&self.syntax, SyntaxKind::SET_KW)
15691    }
15692}
15693
15694#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15695pub struct SetConfigParam {
15696    pub(crate) syntax: SyntaxNode,
15697}
15698impl SetConfigParam {
15699    #[inline]
15700    pub fn path(&self) -> Option<Path> {
15701        support::child(&self.syntax)
15702    }
15703    #[inline]
15704    pub fn set_token(&self) -> Option<SyntaxToken> {
15705        support::token(&self.syntax, SyntaxKind::SET_KW)
15706    }
15707}
15708
15709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15710pub struct SetConstraints {
15711    pub(crate) syntax: SyntaxNode,
15712}
15713impl SetConstraints {
15714    #[inline]
15715    pub fn paths(&self) -> AstChildren<Path> {
15716        support::children(&self.syntax)
15717    }
15718    #[inline]
15719    pub fn all_token(&self) -> Option<SyntaxToken> {
15720        support::token(&self.syntax, SyntaxKind::ALL_KW)
15721    }
15722    #[inline]
15723    pub fn constraints_token(&self) -> Option<SyntaxToken> {
15724        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
15725    }
15726    #[inline]
15727    pub fn deferred_token(&self) -> Option<SyntaxToken> {
15728        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
15729    }
15730    #[inline]
15731    pub fn immediate_token(&self) -> Option<SyntaxToken> {
15732        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
15733    }
15734    #[inline]
15735    pub fn set_token(&self) -> Option<SyntaxToken> {
15736        support::token(&self.syntax, SyntaxKind::SET_KW)
15737    }
15738}
15739
15740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15741pub struct SetDefault {
15742    pub(crate) syntax: SyntaxNode,
15743}
15744impl SetDefault {
15745    #[inline]
15746    pub fn expr(&self) -> Option<Expr> {
15747        support::child(&self.syntax)
15748    }
15749    #[inline]
15750    pub fn default_token(&self) -> Option<SyntaxToken> {
15751        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15752    }
15753    #[inline]
15754    pub fn set_token(&self) -> Option<SyntaxToken> {
15755        support::token(&self.syntax, SyntaxKind::SET_KW)
15756    }
15757}
15758
15759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15760pub struct SetDefaultColumns {
15761    pub(crate) syntax: SyntaxNode,
15762}
15763impl SetDefaultColumns {
15764    #[inline]
15765    pub fn column_list(&self) -> Option<ColumnList> {
15766        support::child(&self.syntax)
15767    }
15768    #[inline]
15769    pub fn default_token(&self) -> Option<SyntaxToken> {
15770        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15771    }
15772    #[inline]
15773    pub fn set_token(&self) -> Option<SyntaxToken> {
15774        support::token(&self.syntax, SyntaxKind::SET_KW)
15775    }
15776}
15777
15778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15779pub struct SetExpr {
15780    pub(crate) syntax: SyntaxNode,
15781}
15782impl SetExpr {
15783    #[inline]
15784    pub fn expr(&self) -> Option<Expr> {
15785        support::child(&self.syntax)
15786    }
15787    #[inline]
15788    pub fn default_token(&self) -> Option<SyntaxToken> {
15789        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15790    }
15791}
15792
15793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15794pub struct SetExprList {
15795    pub(crate) syntax: SyntaxNode,
15796}
15797impl SetExprList {
15798    #[inline]
15799    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
15800        support::children(&self.syntax)
15801    }
15802    #[inline]
15803    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15804        support::token(&self.syntax, SyntaxKind::L_PAREN)
15805    }
15806    #[inline]
15807    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15808        support::token(&self.syntax, SyntaxKind::R_PAREN)
15809    }
15810    #[inline]
15811    pub fn row_token(&self) -> Option<SyntaxToken> {
15812        support::token(&self.syntax, SyntaxKind::ROW_KW)
15813    }
15814}
15815
15816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15817pub struct SetExpression {
15818    pub(crate) syntax: SyntaxNode,
15819}
15820impl SetExpression {
15821    #[inline]
15822    pub fn expr(&self) -> Option<Expr> {
15823        support::child(&self.syntax)
15824    }
15825    #[inline]
15826    pub fn expression_token(&self) -> Option<SyntaxToken> {
15827        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
15828    }
15829    #[inline]
15830    pub fn set_token(&self) -> Option<SyntaxToken> {
15831        support::token(&self.syntax, SyntaxKind::SET_KW)
15832    }
15833}
15834
15835#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15836pub struct SetFuncOption {
15837    pub(crate) syntax: SyntaxNode,
15838}
15839impl SetFuncOption {
15840    #[inline]
15841    pub fn set_token(&self) -> Option<SyntaxToken> {
15842        support::token(&self.syntax, SyntaxKind::SET_KW)
15843    }
15844}
15845
15846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15847pub struct SetGenerated {
15848    pub(crate) syntax: SyntaxNode,
15849}
15850impl SetGenerated {
15851    #[inline]
15852    pub fn set_token(&self) -> Option<SyntaxToken> {
15853        support::token(&self.syntax, SyntaxKind::SET_KW)
15854    }
15855}
15856
15857#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15858pub struct SetGeneratedOptions {
15859    pub(crate) syntax: SyntaxNode,
15860}
15861impl SetGeneratedOptions {
15862    #[inline]
15863    pub fn generated_token(&self) -> Option<SyntaxToken> {
15864        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
15865    }
15866    #[inline]
15867    pub fn set_token(&self) -> Option<SyntaxToken> {
15868        support::token(&self.syntax, SyntaxKind::SET_KW)
15869    }
15870}
15871
15872#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15873pub struct SetLogged {
15874    pub(crate) syntax: SyntaxNode,
15875}
15876impl SetLogged {
15877    #[inline]
15878    pub fn logged_token(&self) -> Option<SyntaxToken> {
15879        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15880    }
15881    #[inline]
15882    pub fn set_token(&self) -> Option<SyntaxToken> {
15883        support::token(&self.syntax, SyntaxKind::SET_KW)
15884    }
15885}
15886
15887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15888pub struct SetMultipleColumns {
15889    pub(crate) syntax: SyntaxNode,
15890}
15891impl SetMultipleColumns {
15892    #[inline]
15893    pub fn column_list(&self) -> Option<ColumnList> {
15894        support::child(&self.syntax)
15895    }
15896    #[inline]
15897    pub fn paren_select(&self) -> Option<ParenSelect> {
15898        support::child(&self.syntax)
15899    }
15900    #[inline]
15901    pub fn set_expr_list(&self) -> Option<SetExprList> {
15902        support::child(&self.syntax)
15903    }
15904    #[inline]
15905    pub fn eq_token(&self) -> Option<SyntaxToken> {
15906        support::token(&self.syntax, SyntaxKind::EQ)
15907    }
15908}
15909
15910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15911pub struct SetNotNull {
15912    pub(crate) syntax: SyntaxNode,
15913}
15914impl SetNotNull {
15915    #[inline]
15916    pub fn not_token(&self) -> Option<SyntaxToken> {
15917        support::token(&self.syntax, SyntaxKind::NOT_KW)
15918    }
15919    #[inline]
15920    pub fn null_token(&self) -> Option<SyntaxToken> {
15921        support::token(&self.syntax, SyntaxKind::NULL_KW)
15922    }
15923    #[inline]
15924    pub fn set_token(&self) -> Option<SyntaxToken> {
15925        support::token(&self.syntax, SyntaxKind::SET_KW)
15926    }
15927}
15928
15929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15930pub struct SetNullColumns {
15931    pub(crate) syntax: SyntaxNode,
15932}
15933impl SetNullColumns {
15934    #[inline]
15935    pub fn column_list(&self) -> Option<ColumnList> {
15936        support::child(&self.syntax)
15937    }
15938    #[inline]
15939    pub fn null_token(&self) -> Option<SyntaxToken> {
15940        support::token(&self.syntax, SyntaxKind::NULL_KW)
15941    }
15942    #[inline]
15943    pub fn set_token(&self) -> Option<SyntaxToken> {
15944        support::token(&self.syntax, SyntaxKind::SET_KW)
15945    }
15946}
15947
15948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15949pub struct SetOptions {
15950    pub(crate) syntax: SyntaxNode,
15951}
15952impl SetOptions {
15953    #[inline]
15954    pub fn attribute_list(&self) -> Option<AttributeList> {
15955        support::child(&self.syntax)
15956    }
15957    #[inline]
15958    pub fn set_token(&self) -> Option<SyntaxToken> {
15959        support::token(&self.syntax, SyntaxKind::SET_KW)
15960    }
15961}
15962
15963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15964pub struct SetOptionsList {
15965    pub(crate) syntax: SyntaxNode,
15966}
15967impl SetOptionsList {
15968    #[inline]
15969    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
15970        support::child(&self.syntax)
15971    }
15972    #[inline]
15973    pub fn options_token(&self) -> Option<SyntaxToken> {
15974        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15975    }
15976    #[inline]
15977    pub fn set_token(&self) -> Option<SyntaxToken> {
15978        support::token(&self.syntax, SyntaxKind::SET_KW)
15979    }
15980}
15981
15982#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15983pub struct SetRole {
15984    pub(crate) syntax: SyntaxNode,
15985}
15986impl SetRole {
15987    #[inline]
15988    pub fn role_ref(&self) -> Option<RoleRef> {
15989        support::child(&self.syntax)
15990    }
15991    #[inline]
15992    pub fn local_token(&self) -> Option<SyntaxToken> {
15993        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15994    }
15995    #[inline]
15996    pub fn none_token(&self) -> Option<SyntaxToken> {
15997        support::token(&self.syntax, SyntaxKind::NONE_KW)
15998    }
15999    #[inline]
16000    pub fn reset_token(&self) -> Option<SyntaxToken> {
16001        support::token(&self.syntax, SyntaxKind::RESET_KW)
16002    }
16003    #[inline]
16004    pub fn role_token(&self) -> Option<SyntaxToken> {
16005        support::token(&self.syntax, SyntaxKind::ROLE_KW)
16006    }
16007    #[inline]
16008    pub fn session_token(&self) -> Option<SyntaxToken> {
16009        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16010    }
16011    #[inline]
16012    pub fn set_token(&self) -> Option<SyntaxToken> {
16013        support::token(&self.syntax, SyntaxKind::SET_KW)
16014    }
16015}
16016
16017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16018pub struct SetSchema {
16019    pub(crate) syntax: SyntaxNode,
16020}
16021impl SetSchema {
16022    #[inline]
16023    pub fn name_ref(&self) -> Option<NameRef> {
16024        support::child(&self.syntax)
16025    }
16026    #[inline]
16027    pub fn schema_token(&self) -> Option<SyntaxToken> {
16028        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16029    }
16030    #[inline]
16031    pub fn set_token(&self) -> Option<SyntaxToken> {
16032        support::token(&self.syntax, SyntaxKind::SET_KW)
16033    }
16034}
16035
16036#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16037pub struct SetSequenceOption {
16038    pub(crate) syntax: SyntaxNode,
16039}
16040impl SetSequenceOption {
16041    #[inline]
16042    pub fn set_token(&self) -> Option<SyntaxToken> {
16043        support::token(&self.syntax, SyntaxKind::SET_KW)
16044    }
16045}
16046
16047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16048pub struct SetSessionAuth {
16049    pub(crate) syntax: SyntaxNode,
16050}
16051impl SetSessionAuth {
16052    #[inline]
16053    pub fn literal(&self) -> Option<Literal> {
16054        support::child(&self.syntax)
16055    }
16056    #[inline]
16057    pub fn role_ref(&self) -> Option<RoleRef> {
16058        support::child(&self.syntax)
16059    }
16060    #[inline]
16061    pub fn authorization_token(&self) -> Option<SyntaxToken> {
16062        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
16063    }
16064    #[inline]
16065    pub fn default_token(&self) -> Option<SyntaxToken> {
16066        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16067    }
16068    #[inline]
16069    pub fn local_token(&self) -> Option<SyntaxToken> {
16070        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16071    }
16072    #[inline]
16073    pub fn session_token(&self) -> Option<SyntaxToken> {
16074        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16075    }
16076    #[inline]
16077    pub fn set_token(&self) -> Option<SyntaxToken> {
16078        support::token(&self.syntax, SyntaxKind::SET_KW)
16079    }
16080}
16081
16082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16083pub struct SetSingleColumn {
16084    pub(crate) syntax: SyntaxNode,
16085}
16086impl SetSingleColumn {
16087    #[inline]
16088    pub fn column(&self) -> Option<Column> {
16089        support::child(&self.syntax)
16090    }
16091    #[inline]
16092    pub fn set_expr(&self) -> Option<SetExpr> {
16093        support::child(&self.syntax)
16094    }
16095    #[inline]
16096    pub fn eq_token(&self) -> Option<SyntaxToken> {
16097        support::token(&self.syntax, SyntaxKind::EQ)
16098    }
16099}
16100
16101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16102pub struct SetStatistics {
16103    pub(crate) syntax: SyntaxNode,
16104}
16105impl SetStatistics {
16106    #[inline]
16107    pub fn set_token(&self) -> Option<SyntaxToken> {
16108        support::token(&self.syntax, SyntaxKind::SET_KW)
16109    }
16110    #[inline]
16111    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16112        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16113    }
16114}
16115
16116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16117pub struct SetStorage {
16118    pub(crate) syntax: SyntaxNode,
16119}
16120impl SetStorage {
16121    #[inline]
16122    pub fn set_token(&self) -> Option<SyntaxToken> {
16123        support::token(&self.syntax, SyntaxKind::SET_KW)
16124    }
16125    #[inline]
16126    pub fn storage_token(&self) -> Option<SyntaxToken> {
16127        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16128    }
16129}
16130
16131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16132pub struct SetTablespace {
16133    pub(crate) syntax: SyntaxNode,
16134}
16135impl SetTablespace {
16136    #[inline]
16137    pub fn path(&self) -> Option<Path> {
16138        support::child(&self.syntax)
16139    }
16140    #[inline]
16141    pub fn set_token(&self) -> Option<SyntaxToken> {
16142        support::token(&self.syntax, SyntaxKind::SET_KW)
16143    }
16144    #[inline]
16145    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16146        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16147    }
16148}
16149
16150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16151pub struct SetTransaction {
16152    pub(crate) syntax: SyntaxNode,
16153}
16154impl SetTransaction {
16155    #[inline]
16156    pub fn literal(&self) -> Option<Literal> {
16157        support::child(&self.syntax)
16158    }
16159    #[inline]
16160    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16161        support::child(&self.syntax)
16162    }
16163    #[inline]
16164    pub fn as_token(&self) -> Option<SyntaxToken> {
16165        support::token(&self.syntax, SyntaxKind::AS_KW)
16166    }
16167    #[inline]
16168    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16169        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16170    }
16171    #[inline]
16172    pub fn session_token(&self) -> Option<SyntaxToken> {
16173        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16174    }
16175    #[inline]
16176    pub fn set_token(&self) -> Option<SyntaxToken> {
16177        support::token(&self.syntax, SyntaxKind::SET_KW)
16178    }
16179    #[inline]
16180    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
16181        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16182    }
16183    #[inline]
16184    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16185        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16186    }
16187}
16188
16189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16190pub struct SetType {
16191    pub(crate) syntax: SyntaxNode,
16192}
16193impl SetType {
16194    #[inline]
16195    pub fn collate(&self) -> Option<Collate> {
16196        support::child(&self.syntax)
16197    }
16198    #[inline]
16199    pub fn ty(&self) -> Option<Type> {
16200        support::child(&self.syntax)
16201    }
16202    #[inline]
16203    pub fn set_token(&self) -> Option<SyntaxToken> {
16204        support::token(&self.syntax, SyntaxKind::SET_KW)
16205    }
16206    #[inline]
16207    pub fn type_token(&self) -> Option<SyntaxToken> {
16208        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16209    }
16210}
16211
16212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16213pub struct SetUnlogged {
16214    pub(crate) syntax: SyntaxNode,
16215}
16216impl SetUnlogged {
16217    #[inline]
16218    pub fn set_token(&self) -> Option<SyntaxToken> {
16219        support::token(&self.syntax, SyntaxKind::SET_KW)
16220    }
16221    #[inline]
16222    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16223        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16224    }
16225}
16226
16227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16228pub struct SetWithoutCluster {
16229    pub(crate) syntax: SyntaxNode,
16230}
16231impl SetWithoutCluster {
16232    #[inline]
16233    pub fn cluster_token(&self) -> Option<SyntaxToken> {
16234        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
16235    }
16236    #[inline]
16237    pub fn set_token(&self) -> Option<SyntaxToken> {
16238        support::token(&self.syntax, SyntaxKind::SET_KW)
16239    }
16240    #[inline]
16241    pub fn without_token(&self) -> Option<SyntaxToken> {
16242        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16243    }
16244}
16245
16246#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16247pub struct SetWithoutOids {
16248    pub(crate) syntax: SyntaxNode,
16249}
16250impl SetWithoutOids {
16251    #[inline]
16252    pub fn oids_token(&self) -> Option<SyntaxToken> {
16253        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16254    }
16255    #[inline]
16256    pub fn set_token(&self) -> Option<SyntaxToken> {
16257        support::token(&self.syntax, SyntaxKind::SET_KW)
16258    }
16259    #[inline]
16260    pub fn without_token(&self) -> Option<SyntaxToken> {
16261        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16262    }
16263}
16264
16265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16266pub struct Show {
16267    pub(crate) syntax: SyntaxNode,
16268}
16269impl Show {
16270    #[inline]
16271    pub fn show_token(&self) -> Option<SyntaxToken> {
16272        support::token(&self.syntax, SyntaxKind::SHOW_KW)
16273    }
16274}
16275
16276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16277pub struct SimilarTo {
16278    pub(crate) syntax: SyntaxNode,
16279}
16280impl SimilarTo {
16281    #[inline]
16282    pub fn similar_token(&self) -> Option<SyntaxToken> {
16283        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16284    }
16285    #[inline]
16286    pub fn to_token(&self) -> Option<SyntaxToken> {
16287        support::token(&self.syntax, SyntaxKind::TO_KW)
16288    }
16289}
16290
16291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16292pub struct SliceExpr {
16293    pub(crate) syntax: SyntaxNode,
16294}
16295impl SliceExpr {
16296    #[inline]
16297    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
16298        support::token(&self.syntax, SyntaxKind::L_BRACK)
16299    }
16300    #[inline]
16301    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
16302        support::token(&self.syntax, SyntaxKind::R_BRACK)
16303    }
16304    #[inline]
16305    pub fn colon_token(&self) -> Option<SyntaxToken> {
16306        support::token(&self.syntax, SyntaxKind::COLON)
16307    }
16308}
16309
16310#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16311pub struct SomeFn {
16312    pub(crate) syntax: SyntaxNode,
16313}
16314impl SomeFn {
16315    #[inline]
16316    pub fn expr(&self) -> Option<Expr> {
16317        support::child(&self.syntax)
16318    }
16319    #[inline]
16320    pub fn select_variant(&self) -> Option<SelectVariant> {
16321        support::child(&self.syntax)
16322    }
16323    #[inline]
16324    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16325        support::token(&self.syntax, SyntaxKind::L_PAREN)
16326    }
16327    #[inline]
16328    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16329        support::token(&self.syntax, SyntaxKind::R_PAREN)
16330    }
16331    #[inline]
16332    pub fn some_token(&self) -> Option<SyntaxToken> {
16333        support::token(&self.syntax, SyntaxKind::SOME_KW)
16334    }
16335}
16336
16337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16338pub struct SortAsc {
16339    pub(crate) syntax: SyntaxNode,
16340}
16341impl SortAsc {
16342    #[inline]
16343    pub fn asc_token(&self) -> Option<SyntaxToken> {
16344        support::token(&self.syntax, SyntaxKind::ASC_KW)
16345    }
16346}
16347
16348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16349pub struct SortBy {
16350    pub(crate) syntax: SyntaxNode,
16351}
16352impl SortBy {
16353    #[inline]
16354    pub fn expr(&self) -> Option<Expr> {
16355        support::child(&self.syntax)
16356    }
16357    #[inline]
16358    pub fn nulls_first(&self) -> Option<NullsFirst> {
16359        support::child(&self.syntax)
16360    }
16361    #[inline]
16362    pub fn nulls_last(&self) -> Option<NullsLast> {
16363        support::child(&self.syntax)
16364    }
16365    #[inline]
16366    pub fn sort_asc(&self) -> Option<SortAsc> {
16367        support::child(&self.syntax)
16368    }
16369    #[inline]
16370    pub fn sort_desc(&self) -> Option<SortDesc> {
16371        support::child(&self.syntax)
16372    }
16373    #[inline]
16374    pub fn sort_using(&self) -> Option<SortUsing> {
16375        support::child(&self.syntax)
16376    }
16377}
16378
16379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16380pub struct SortByList {
16381    pub(crate) syntax: SyntaxNode,
16382}
16383impl SortByList {
16384    #[inline]
16385    pub fn sort_bys(&self) -> AstChildren<SortBy> {
16386        support::children(&self.syntax)
16387    }
16388}
16389
16390#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16391pub struct SortDesc {
16392    pub(crate) syntax: SyntaxNode,
16393}
16394impl SortDesc {
16395    #[inline]
16396    pub fn desc_token(&self) -> Option<SyntaxToken> {
16397        support::token(&self.syntax, SyntaxKind::DESC_KW)
16398    }
16399}
16400
16401#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16402pub struct SortUsing {
16403    pub(crate) syntax: SyntaxNode,
16404}
16405impl SortUsing {
16406    #[inline]
16407    pub fn op(&self) -> Option<Op> {
16408        support::child(&self.syntax)
16409    }
16410    #[inline]
16411    pub fn using_token(&self) -> Option<SyntaxToken> {
16412        support::token(&self.syntax, SyntaxKind::USING_KW)
16413    }
16414}
16415
16416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16417pub struct SourceFile {
16418    pub(crate) syntax: SyntaxNode,
16419}
16420impl SourceFile {
16421    #[inline]
16422    pub fn stmts(&self) -> AstChildren<Stmt> {
16423        support::children(&self.syntax)
16424    }
16425}
16426
16427#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16428pub struct SourceVertexTable {
16429    pub(crate) syntax: SyntaxNode,
16430}
16431impl SourceVertexTable {
16432    #[inline]
16433    pub fn column_list(&self) -> Option<ColumnList> {
16434        support::child(&self.syntax)
16435    }
16436    #[inline]
16437    pub fn name_ref(&self) -> Option<NameRef> {
16438        support::child(&self.syntax)
16439    }
16440    #[inline]
16441    pub fn references_table(&self) -> Option<ReferencesTable> {
16442        support::child(&self.syntax)
16443    }
16444    #[inline]
16445    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16446        support::token(&self.syntax, SyntaxKind::L_PAREN)
16447    }
16448    #[inline]
16449    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16450        support::token(&self.syntax, SyntaxKind::R_PAREN)
16451    }
16452    #[inline]
16453    pub fn key_token(&self) -> Option<SyntaxToken> {
16454        support::token(&self.syntax, SyntaxKind::KEY_KW)
16455    }
16456    #[inline]
16457    pub fn source_token(&self) -> Option<SyntaxToken> {
16458        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
16459    }
16460}
16461
16462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16463pub struct SplitPartition {
16464    pub(crate) syntax: SyntaxNode,
16465}
16466impl SplitPartition {
16467    #[inline]
16468    pub fn partition_list(&self) -> Option<PartitionList> {
16469        support::child(&self.syntax)
16470    }
16471    #[inline]
16472    pub fn into_token(&self) -> Option<SyntaxToken> {
16473        support::token(&self.syntax, SyntaxKind::INTO_KW)
16474    }
16475    #[inline]
16476    pub fn partition_token(&self) -> Option<SyntaxToken> {
16477        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16478    }
16479    #[inline]
16480    pub fn split_token(&self) -> Option<SyntaxToken> {
16481        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
16482    }
16483}
16484
16485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16486pub struct Storage {
16487    pub(crate) syntax: SyntaxNode,
16488}
16489impl Storage {
16490    #[inline]
16491    pub fn default_token(&self) -> Option<SyntaxToken> {
16492        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16493    }
16494    #[inline]
16495    pub fn external_token(&self) -> Option<SyntaxToken> {
16496        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
16497    }
16498    #[inline]
16499    pub fn ident_token(&self) -> Option<SyntaxToken> {
16500        support::token(&self.syntax, SyntaxKind::IDENT)
16501    }
16502    #[inline]
16503    pub fn storage_token(&self) -> Option<SyntaxToken> {
16504        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16505    }
16506}
16507
16508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16509pub struct StrictFuncOption {
16510    pub(crate) syntax: SyntaxNode,
16511}
16512impl StrictFuncOption {
16513    #[inline]
16514    pub fn called_token(&self) -> Option<SyntaxToken> {
16515        support::token(&self.syntax, SyntaxKind::CALLED_KW)
16516    }
16517    #[inline]
16518    pub fn input_token(&self) -> Option<SyntaxToken> {
16519        support::token(&self.syntax, SyntaxKind::INPUT_KW)
16520    }
16521    #[inline]
16522    pub fn null_token(&self) -> Option<SyntaxToken> {
16523        support::token(&self.syntax, SyntaxKind::NULL_KW)
16524    }
16525    #[inline]
16526    pub fn on_token(&self) -> Option<SyntaxToken> {
16527        support::token(&self.syntax, SyntaxKind::ON_KW)
16528    }
16529    #[inline]
16530    pub fn returns_token(&self) -> Option<SyntaxToken> {
16531        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
16532    }
16533    #[inline]
16534    pub fn strict_token(&self) -> Option<SyntaxToken> {
16535        support::token(&self.syntax, SyntaxKind::STRICT_KW)
16536    }
16537}
16538
16539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16540pub struct SubstringFn {
16541    pub(crate) syntax: SyntaxNode,
16542}
16543impl SubstringFn {
16544    #[inline]
16545    pub fn expr(&self) -> Option<Expr> {
16546        support::child(&self.syntax)
16547    }
16548    #[inline]
16549    pub fn exprs(&self) -> AstChildren<Expr> {
16550        support::children(&self.syntax)
16551    }
16552    #[inline]
16553    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16554        support::token(&self.syntax, SyntaxKind::L_PAREN)
16555    }
16556    #[inline]
16557    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16558        support::token(&self.syntax, SyntaxKind::R_PAREN)
16559    }
16560    #[inline]
16561    pub fn escape_token(&self) -> Option<SyntaxToken> {
16562        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
16563    }
16564    #[inline]
16565    pub fn for_token(&self) -> Option<SyntaxToken> {
16566        support::token(&self.syntax, SyntaxKind::FOR_KW)
16567    }
16568    #[inline]
16569    pub fn from_token(&self) -> Option<SyntaxToken> {
16570        support::token(&self.syntax, SyntaxKind::FROM_KW)
16571    }
16572    #[inline]
16573    pub fn similar_token(&self) -> Option<SyntaxToken> {
16574        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16575    }
16576    #[inline]
16577    pub fn substring_token(&self) -> Option<SyntaxToken> {
16578        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
16579    }
16580}
16581
16582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16583pub struct SupportFuncOption {
16584    pub(crate) syntax: SyntaxNode,
16585}
16586impl SupportFuncOption {
16587    #[inline]
16588    pub fn support_token(&self) -> Option<SyntaxToken> {
16589        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
16590    }
16591}
16592
16593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16594pub struct Table {
16595    pub(crate) syntax: SyntaxNode,
16596}
16597impl Table {
16598    #[inline]
16599    pub fn relation_name(&self) -> Option<RelationName> {
16600        support::child(&self.syntax)
16601    }
16602    #[inline]
16603    pub fn with_clause(&self) -> Option<WithClause> {
16604        support::child(&self.syntax)
16605    }
16606    #[inline]
16607    pub fn table_token(&self) -> Option<SyntaxToken> {
16608        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16609    }
16610}
16611
16612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16613pub struct TableAndColumns {
16614    pub(crate) syntax: SyntaxNode,
16615}
16616impl TableAndColumns {
16617    #[inline]
16618    pub fn column_list(&self) -> Option<ColumnList> {
16619        support::child(&self.syntax)
16620    }
16621    #[inline]
16622    pub fn relation_name(&self) -> Option<RelationName> {
16623        support::child(&self.syntax)
16624    }
16625}
16626
16627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16628pub struct TableAndColumnsList {
16629    pub(crate) syntax: SyntaxNode,
16630}
16631impl TableAndColumnsList {
16632    #[inline]
16633    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
16634        support::children(&self.syntax)
16635    }
16636}
16637
16638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16639pub struct TableArgList {
16640    pub(crate) syntax: SyntaxNode,
16641}
16642impl TableArgList {
16643    #[inline]
16644    pub fn args(&self) -> AstChildren<TableArg> {
16645        support::children(&self.syntax)
16646    }
16647    #[inline]
16648    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16649        support::token(&self.syntax, SyntaxKind::L_PAREN)
16650    }
16651    #[inline]
16652    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16653        support::token(&self.syntax, SyntaxKind::R_PAREN)
16654    }
16655}
16656
16657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16658pub struct TableList {
16659    pub(crate) syntax: SyntaxNode,
16660}
16661impl TableList {
16662    #[inline]
16663    pub fn relation_names(&self) -> AstChildren<RelationName> {
16664        support::children(&self.syntax)
16665    }
16666}
16667
16668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16669pub struct TablesampleClause {
16670    pub(crate) syntax: SyntaxNode,
16671}
16672impl TablesampleClause {
16673    #[inline]
16674    pub fn call_expr(&self) -> Option<CallExpr> {
16675        support::child(&self.syntax)
16676    }
16677    #[inline]
16678    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
16679        support::child(&self.syntax)
16680    }
16681    #[inline]
16682    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
16683        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
16684    }
16685}
16686
16687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16688pub struct Tablespace {
16689    pub(crate) syntax: SyntaxNode,
16690}
16691impl Tablespace {
16692    #[inline]
16693    pub fn name_ref(&self) -> Option<NameRef> {
16694        support::child(&self.syntax)
16695    }
16696    #[inline]
16697    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16698        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16699    }
16700}
16701
16702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16703pub struct Target {
16704    pub(crate) syntax: SyntaxNode,
16705}
16706impl Target {
16707    #[inline]
16708    pub fn as_name(&self) -> Option<AsName> {
16709        support::child(&self.syntax)
16710    }
16711    #[inline]
16712    pub fn expr(&self) -> Option<Expr> {
16713        support::child(&self.syntax)
16714    }
16715    #[inline]
16716    pub fn star_token(&self) -> Option<SyntaxToken> {
16717        support::token(&self.syntax, SyntaxKind::STAR)
16718    }
16719}
16720
16721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16722pub struct TargetList {
16723    pub(crate) syntax: SyntaxNode,
16724}
16725impl TargetList {
16726    #[inline]
16727    pub fn targets(&self) -> AstChildren<Target> {
16728        support::children(&self.syntax)
16729    }
16730}
16731
16732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16733pub struct Temp {
16734    pub(crate) syntax: SyntaxNode,
16735}
16736impl Temp {
16737    #[inline]
16738    pub fn global_token(&self) -> Option<SyntaxToken> {
16739        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
16740    }
16741    #[inline]
16742    pub fn local_token(&self) -> Option<SyntaxToken> {
16743        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16744    }
16745    #[inline]
16746    pub fn temp_token(&self) -> Option<SyntaxToken> {
16747        support::token(&self.syntax, SyntaxKind::TEMP_KW)
16748    }
16749    #[inline]
16750    pub fn temporary_token(&self) -> Option<SyntaxToken> {
16751        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
16752    }
16753}
16754
16755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16756pub struct TimeType {
16757    pub(crate) syntax: SyntaxNode,
16758}
16759impl TimeType {
16760    #[inline]
16761    pub fn literal(&self) -> Option<Literal> {
16762        support::child(&self.syntax)
16763    }
16764    #[inline]
16765    pub fn timezone(&self) -> Option<Timezone> {
16766        support::child(&self.syntax)
16767    }
16768    #[inline]
16769    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16770        support::token(&self.syntax, SyntaxKind::L_PAREN)
16771    }
16772    #[inline]
16773    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16774        support::token(&self.syntax, SyntaxKind::R_PAREN)
16775    }
16776    #[inline]
16777    pub fn setof_token(&self) -> Option<SyntaxToken> {
16778        support::token(&self.syntax, SyntaxKind::SETOF_KW)
16779    }
16780    #[inline]
16781    pub fn time_token(&self) -> Option<SyntaxToken> {
16782        support::token(&self.syntax, SyntaxKind::TIME_KW)
16783    }
16784    #[inline]
16785    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
16786        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
16787    }
16788}
16789
16790#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16791pub struct Timing {
16792    pub(crate) syntax: SyntaxNode,
16793}
16794impl Timing {
16795    #[inline]
16796    pub fn after_token(&self) -> Option<SyntaxToken> {
16797        support::token(&self.syntax, SyntaxKind::AFTER_KW)
16798    }
16799    #[inline]
16800    pub fn before_token(&self) -> Option<SyntaxToken> {
16801        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
16802    }
16803    #[inline]
16804    pub fn instead_token(&self) -> Option<SyntaxToken> {
16805        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
16806    }
16807    #[inline]
16808    pub fn of_token(&self) -> Option<SyntaxToken> {
16809        support::token(&self.syntax, SyntaxKind::OF_KW)
16810    }
16811}
16812
16813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16814pub struct TransactionModeList {
16815    pub(crate) syntax: SyntaxNode,
16816}
16817impl TransactionModeList {
16818    #[inline]
16819    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
16820        support::children(&self.syntax)
16821    }
16822}
16823
16824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16825pub struct TransformFromFunc {
16826    pub(crate) syntax: SyntaxNode,
16827}
16828impl TransformFromFunc {
16829    #[inline]
16830    pub fn function_sig(&self) -> Option<FunctionSig> {
16831        support::child(&self.syntax)
16832    }
16833    #[inline]
16834    pub fn from_token(&self) -> Option<SyntaxToken> {
16835        support::token(&self.syntax, SyntaxKind::FROM_KW)
16836    }
16837    #[inline]
16838    pub fn function_token(&self) -> Option<SyntaxToken> {
16839        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16840    }
16841    #[inline]
16842    pub fn sql_token(&self) -> Option<SyntaxToken> {
16843        support::token(&self.syntax, SyntaxKind::SQL_KW)
16844    }
16845    #[inline]
16846    pub fn with_token(&self) -> Option<SyntaxToken> {
16847        support::token(&self.syntax, SyntaxKind::WITH_KW)
16848    }
16849}
16850
16851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16852pub struct TransformFuncOption {
16853    pub(crate) syntax: SyntaxNode,
16854}
16855impl TransformFuncOption {
16856    #[inline]
16857    pub fn transform_token(&self) -> Option<SyntaxToken> {
16858        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
16859    }
16860}
16861
16862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16863pub struct TransformToFunc {
16864    pub(crate) syntax: SyntaxNode,
16865}
16866impl TransformToFunc {
16867    #[inline]
16868    pub fn function_sig(&self) -> Option<FunctionSig> {
16869        support::child(&self.syntax)
16870    }
16871    #[inline]
16872    pub fn function_token(&self) -> Option<SyntaxToken> {
16873        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16874    }
16875    #[inline]
16876    pub fn sql_token(&self) -> Option<SyntaxToken> {
16877        support::token(&self.syntax, SyntaxKind::SQL_KW)
16878    }
16879    #[inline]
16880    pub fn to_token(&self) -> Option<SyntaxToken> {
16881        support::token(&self.syntax, SyntaxKind::TO_KW)
16882    }
16883    #[inline]
16884    pub fn with_token(&self) -> Option<SyntaxToken> {
16885        support::token(&self.syntax, SyntaxKind::WITH_KW)
16886    }
16887}
16888
16889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16890pub struct TriggerEvent {
16891    pub(crate) syntax: SyntaxNode,
16892}
16893impl TriggerEvent {
16894    #[inline]
16895    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
16896        support::child(&self.syntax)
16897    }
16898    #[inline]
16899    pub fn delete_token(&self) -> Option<SyntaxToken> {
16900        support::token(&self.syntax, SyntaxKind::DELETE_KW)
16901    }
16902    #[inline]
16903    pub fn insert_token(&self) -> Option<SyntaxToken> {
16904        support::token(&self.syntax, SyntaxKind::INSERT_KW)
16905    }
16906    #[inline]
16907    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16908        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16909    }
16910}
16911
16912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16913pub struct TriggerEventList {
16914    pub(crate) syntax: SyntaxNode,
16915}
16916impl TriggerEventList {
16917    #[inline]
16918    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
16919        support::children(&self.syntax)
16920    }
16921}
16922
16923#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16924pub struct TriggerEventUpdate {
16925    pub(crate) syntax: SyntaxNode,
16926}
16927impl TriggerEventUpdate {
16928    #[inline]
16929    pub fn name_refs(&self) -> AstChildren<NameRef> {
16930        support::children(&self.syntax)
16931    }
16932    #[inline]
16933    pub fn of_token(&self) -> Option<SyntaxToken> {
16934        support::token(&self.syntax, SyntaxKind::OF_KW)
16935    }
16936    #[inline]
16937    pub fn update_token(&self) -> Option<SyntaxToken> {
16938        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
16939    }
16940}
16941
16942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16943pub struct TrimFn {
16944    pub(crate) syntax: SyntaxNode,
16945}
16946impl TrimFn {
16947    #[inline]
16948    pub fn expr(&self) -> Option<Expr> {
16949        support::child(&self.syntax)
16950    }
16951    #[inline]
16952    pub fn exprs(&self) -> AstChildren<Expr> {
16953        support::children(&self.syntax)
16954    }
16955    #[inline]
16956    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16957        support::token(&self.syntax, SyntaxKind::L_PAREN)
16958    }
16959    #[inline]
16960    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16961        support::token(&self.syntax, SyntaxKind::R_PAREN)
16962    }
16963    #[inline]
16964    pub fn both_token(&self) -> Option<SyntaxToken> {
16965        support::token(&self.syntax, SyntaxKind::BOTH_KW)
16966    }
16967    #[inline]
16968    pub fn from_token(&self) -> Option<SyntaxToken> {
16969        support::token(&self.syntax, SyntaxKind::FROM_KW)
16970    }
16971    #[inline]
16972    pub fn leading_token(&self) -> Option<SyntaxToken> {
16973        support::token(&self.syntax, SyntaxKind::LEADING_KW)
16974    }
16975    #[inline]
16976    pub fn trailing_token(&self) -> Option<SyntaxToken> {
16977        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
16978    }
16979    #[inline]
16980    pub fn trim_token(&self) -> Option<SyntaxToken> {
16981        support::token(&self.syntax, SyntaxKind::TRIM_KW)
16982    }
16983}
16984
16985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16986pub struct Truncate {
16987    pub(crate) syntax: SyntaxNode,
16988}
16989impl Truncate {
16990    #[inline]
16991    pub fn table_list(&self) -> Option<TableList> {
16992        support::child(&self.syntax)
16993    }
16994    #[inline]
16995    pub fn cascade_token(&self) -> Option<SyntaxToken> {
16996        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
16997    }
16998    #[inline]
16999    pub fn continue_token(&self) -> Option<SyntaxToken> {
17000        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
17001    }
17002    #[inline]
17003    pub fn identity_token(&self) -> Option<SyntaxToken> {
17004        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
17005    }
17006    #[inline]
17007    pub fn restart_token(&self) -> Option<SyntaxToken> {
17008        support::token(&self.syntax, SyntaxKind::RESTART_KW)
17009    }
17010    #[inline]
17011    pub fn restrict_token(&self) -> Option<SyntaxToken> {
17012        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
17013    }
17014    #[inline]
17015    pub fn table_token(&self) -> Option<SyntaxToken> {
17016        support::token(&self.syntax, SyntaxKind::TABLE_KW)
17017    }
17018    #[inline]
17019    pub fn truncate_token(&self) -> Option<SyntaxToken> {
17020        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
17021    }
17022}
17023
17024#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17025pub struct TupleExpr {
17026    pub(crate) syntax: SyntaxNode,
17027}
17028impl TupleExpr {
17029    #[inline]
17030    pub fn exprs(&self) -> AstChildren<Expr> {
17031        support::children(&self.syntax)
17032    }
17033    #[inline]
17034    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17035        support::token(&self.syntax, SyntaxKind::L_PAREN)
17036    }
17037    #[inline]
17038    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17039        support::token(&self.syntax, SyntaxKind::R_PAREN)
17040    }
17041}
17042
17043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17044pub struct UnicodeNormalForm {
17045    pub(crate) syntax: SyntaxNode,
17046}
17047impl UnicodeNormalForm {
17048    #[inline]
17049    pub fn nfc_token(&self) -> Option<SyntaxToken> {
17050        support::token(&self.syntax, SyntaxKind::NFC_KW)
17051    }
17052    #[inline]
17053    pub fn nfd_token(&self) -> Option<SyntaxToken> {
17054        support::token(&self.syntax, SyntaxKind::NFD_KW)
17055    }
17056    #[inline]
17057    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
17058        support::token(&self.syntax, SyntaxKind::NFKC_KW)
17059    }
17060    #[inline]
17061    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
17062        support::token(&self.syntax, SyntaxKind::NFKD_KW)
17063    }
17064}
17065
17066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17067pub struct UniqueConstraint {
17068    pub(crate) syntax: SyntaxNode,
17069}
17070impl UniqueConstraint {
17071    #[inline]
17072    pub fn column_list(&self) -> Option<ColumnList> {
17073        support::child(&self.syntax)
17074    }
17075    #[inline]
17076    pub fn constraint_name(&self) -> Option<ConstraintName> {
17077        support::child(&self.syntax)
17078    }
17079    #[inline]
17080    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
17081        support::child(&self.syntax)
17082    }
17083    #[inline]
17084    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
17085        support::child(&self.syntax)
17086    }
17087    #[inline]
17088    pub fn using_index(&self) -> Option<UsingIndex> {
17089        support::child(&self.syntax)
17090    }
17091    #[inline]
17092    pub fn unique_token(&self) -> Option<SyntaxToken> {
17093        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17094    }
17095}
17096
17097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17098pub struct Unlisten {
17099    pub(crate) syntax: SyntaxNode,
17100}
17101impl Unlisten {
17102    #[inline]
17103    pub fn name_ref(&self) -> Option<NameRef> {
17104        support::child(&self.syntax)
17105    }
17106    #[inline]
17107    pub fn star_token(&self) -> Option<SyntaxToken> {
17108        support::token(&self.syntax, SyntaxKind::STAR)
17109    }
17110    #[inline]
17111    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17112        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17113    }
17114}
17115
17116#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17117pub struct Unlogged {
17118    pub(crate) syntax: SyntaxNode,
17119}
17120impl Unlogged {
17121    #[inline]
17122    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
17123        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
17124    }
17125}
17126
17127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17128pub struct Update {
17129    pub(crate) syntax: SyntaxNode,
17130}
17131impl Update {
17132    #[inline]
17133    pub fn alias(&self) -> Option<Alias> {
17134        support::child(&self.syntax)
17135    }
17136    #[inline]
17137    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
17138        support::child(&self.syntax)
17139    }
17140    #[inline]
17141    pub fn from_clause(&self) -> Option<FromClause> {
17142        support::child(&self.syntax)
17143    }
17144    #[inline]
17145    pub fn relation_name(&self) -> Option<RelationName> {
17146        support::child(&self.syntax)
17147    }
17148    #[inline]
17149    pub fn returning_clause(&self) -> Option<ReturningClause> {
17150        support::child(&self.syntax)
17151    }
17152    #[inline]
17153    pub fn set_clause(&self) -> Option<SetClause> {
17154        support::child(&self.syntax)
17155    }
17156    #[inline]
17157    pub fn where_clause(&self) -> Option<WhereClause> {
17158        support::child(&self.syntax)
17159    }
17160    #[inline]
17161    pub fn with_clause(&self) -> Option<WithClause> {
17162        support::child(&self.syntax)
17163    }
17164    #[inline]
17165    pub fn update_token(&self) -> Option<SyntaxToken> {
17166        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17167    }
17168}
17169
17170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17171pub struct UsingClause {
17172    pub(crate) syntax: SyntaxNode,
17173}
17174impl UsingClause {
17175    #[inline]
17176    pub fn from_items(&self) -> AstChildren<FromItem> {
17177        support::children(&self.syntax)
17178    }
17179    #[inline]
17180    pub fn using_token(&self) -> Option<SyntaxToken> {
17181        support::token(&self.syntax, SyntaxKind::USING_KW)
17182    }
17183}
17184
17185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17186pub struct UsingExprClause {
17187    pub(crate) syntax: SyntaxNode,
17188}
17189impl UsingExprClause {
17190    #[inline]
17191    pub fn expr(&self) -> Option<Expr> {
17192        support::child(&self.syntax)
17193    }
17194    #[inline]
17195    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17196        support::token(&self.syntax, SyntaxKind::L_PAREN)
17197    }
17198    #[inline]
17199    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17200        support::token(&self.syntax, SyntaxKind::R_PAREN)
17201    }
17202    #[inline]
17203    pub fn using_token(&self) -> Option<SyntaxToken> {
17204        support::token(&self.syntax, SyntaxKind::USING_KW)
17205    }
17206}
17207
17208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17209pub struct UsingIndex {
17210    pub(crate) syntax: SyntaxNode,
17211}
17212impl UsingIndex {
17213    #[inline]
17214    pub fn name_ref(&self) -> Option<NameRef> {
17215        support::child(&self.syntax)
17216    }
17217    #[inline]
17218    pub fn index_token(&self) -> Option<SyntaxToken> {
17219        support::token(&self.syntax, SyntaxKind::INDEX_KW)
17220    }
17221    #[inline]
17222    pub fn using_token(&self) -> Option<SyntaxToken> {
17223        support::token(&self.syntax, SyntaxKind::USING_KW)
17224    }
17225}
17226
17227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17228pub struct UsingMethod {
17229    pub(crate) syntax: SyntaxNode,
17230}
17231impl UsingMethod {
17232    #[inline]
17233    pub fn name_ref(&self) -> Option<NameRef> {
17234        support::child(&self.syntax)
17235    }
17236    #[inline]
17237    pub fn using_token(&self) -> Option<SyntaxToken> {
17238        support::token(&self.syntax, SyntaxKind::USING_KW)
17239    }
17240}
17241
17242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17243pub struct UsingOnClause {
17244    pub(crate) syntax: SyntaxNode,
17245}
17246impl UsingOnClause {
17247    #[inline]
17248    pub fn from_item(&self) -> Option<FromItem> {
17249        support::child(&self.syntax)
17250    }
17251    #[inline]
17252    pub fn on_clause(&self) -> Option<OnClause> {
17253        support::child(&self.syntax)
17254    }
17255    #[inline]
17256    pub fn using_token(&self) -> Option<SyntaxToken> {
17257        support::token(&self.syntax, SyntaxKind::USING_KW)
17258    }
17259}
17260
17261#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17262pub struct Vacuum {
17263    pub(crate) syntax: SyntaxNode,
17264}
17265impl Vacuum {
17266    #[inline]
17267    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
17268        support::child(&self.syntax)
17269    }
17270    #[inline]
17271    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
17272        support::child(&self.syntax)
17273    }
17274    #[inline]
17275    pub fn analyse_token(&self) -> Option<SyntaxToken> {
17276        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
17277    }
17278    #[inline]
17279    pub fn analyze_token(&self) -> Option<SyntaxToken> {
17280        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
17281    }
17282    #[inline]
17283    pub fn freeze_token(&self) -> Option<SyntaxToken> {
17284        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
17285    }
17286    #[inline]
17287    pub fn full_token(&self) -> Option<SyntaxToken> {
17288        support::token(&self.syntax, SyntaxKind::FULL_KW)
17289    }
17290    #[inline]
17291    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
17292        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
17293    }
17294    #[inline]
17295    pub fn verbose_token(&self) -> Option<SyntaxToken> {
17296        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
17297    }
17298}
17299
17300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17301pub struct VacuumOption {
17302    pub(crate) syntax: SyntaxNode,
17303}
17304impl VacuumOption {
17305    #[inline]
17306    pub fn literal(&self) -> Option<Literal> {
17307        support::child(&self.syntax)
17308    }
17309}
17310
17311#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17312pub struct VacuumOptionList {
17313    pub(crate) syntax: SyntaxNode,
17314}
17315impl VacuumOptionList {
17316    #[inline]
17317    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
17318        support::children(&self.syntax)
17319    }
17320    #[inline]
17321    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17322        support::token(&self.syntax, SyntaxKind::L_PAREN)
17323    }
17324    #[inline]
17325    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17326        support::token(&self.syntax, SyntaxKind::R_PAREN)
17327    }
17328}
17329
17330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17331pub struct ValidateConstraint {
17332    pub(crate) syntax: SyntaxNode,
17333}
17334impl ValidateConstraint {
17335    #[inline]
17336    pub fn name_ref(&self) -> Option<NameRef> {
17337        support::child(&self.syntax)
17338    }
17339    #[inline]
17340    pub fn constraint_token(&self) -> Option<SyntaxToken> {
17341        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
17342    }
17343    #[inline]
17344    pub fn validate_token(&self) -> Option<SyntaxToken> {
17345        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
17346    }
17347}
17348
17349#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17350pub struct Values {
17351    pub(crate) syntax: SyntaxNode,
17352}
17353impl Values {
17354    #[inline]
17355    pub fn row_list(&self) -> Option<RowList> {
17356        support::child(&self.syntax)
17357    }
17358    #[inline]
17359    pub fn with_clause(&self) -> Option<WithClause> {
17360        support::child(&self.syntax)
17361    }
17362    #[inline]
17363    pub fn values_token(&self) -> Option<SyntaxToken> {
17364        support::token(&self.syntax, SyntaxKind::VALUES_KW)
17365    }
17366}
17367
17368#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17369pub struct Variant {
17370    pub(crate) syntax: SyntaxNode,
17371}
17372impl Variant {
17373    #[inline]
17374    pub fn literal(&self) -> Option<Literal> {
17375        support::child(&self.syntax)
17376    }
17377}
17378
17379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17380pub struct VariantList {
17381    pub(crate) syntax: SyntaxNode,
17382}
17383impl VariantList {
17384    #[inline]
17385    pub fn variants(&self) -> AstChildren<Variant> {
17386        support::children(&self.syntax)
17387    }
17388    #[inline]
17389    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17390        support::token(&self.syntax, SyntaxKind::L_PAREN)
17391    }
17392    #[inline]
17393    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17394        support::token(&self.syntax, SyntaxKind::R_PAREN)
17395    }
17396}
17397
17398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17399pub struct VertexPattern {
17400    pub(crate) syntax: SyntaxNode,
17401}
17402impl VertexPattern {
17403    #[inline]
17404    pub fn is_label(&self) -> Option<IsLabel> {
17405        support::child(&self.syntax)
17406    }
17407    #[inline]
17408    pub fn name(&self) -> Option<Name> {
17409        support::child(&self.syntax)
17410    }
17411    #[inline]
17412    pub fn where_clause(&self) -> Option<WhereClause> {
17413        support::child(&self.syntax)
17414    }
17415    #[inline]
17416    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17417        support::token(&self.syntax, SyntaxKind::L_PAREN)
17418    }
17419    #[inline]
17420    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17421        support::token(&self.syntax, SyntaxKind::R_PAREN)
17422    }
17423}
17424
17425#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17426pub struct VertexTableDef {
17427    pub(crate) syntax: SyntaxNode,
17428}
17429impl VertexTableDef {
17430    #[inline]
17431    pub fn column_list(&self) -> Option<ColumnList> {
17432        support::child(&self.syntax)
17433    }
17434    #[inline]
17435    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
17436        support::child(&self.syntax)
17437    }
17438    #[inline]
17439    pub fn name(&self) -> Option<Name> {
17440        support::child(&self.syntax)
17441    }
17442    #[inline]
17443    pub fn path(&self) -> Option<Path> {
17444        support::child(&self.syntax)
17445    }
17446    #[inline]
17447    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17448        support::token(&self.syntax, SyntaxKind::L_PAREN)
17449    }
17450    #[inline]
17451    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17452        support::token(&self.syntax, SyntaxKind::R_PAREN)
17453    }
17454    #[inline]
17455    pub fn as_token(&self) -> Option<SyntaxToken> {
17456        support::token(&self.syntax, SyntaxKind::AS_KW)
17457    }
17458    #[inline]
17459    pub fn key_token(&self) -> Option<SyntaxToken> {
17460        support::token(&self.syntax, SyntaxKind::KEY_KW)
17461    }
17462}
17463
17464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17465pub struct VertexTables {
17466    pub(crate) syntax: SyntaxNode,
17467}
17468impl VertexTables {
17469    #[inline]
17470    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
17471        support::children(&self.syntax)
17472    }
17473    #[inline]
17474    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17475        support::token(&self.syntax, SyntaxKind::L_PAREN)
17476    }
17477    #[inline]
17478    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17479        support::token(&self.syntax, SyntaxKind::R_PAREN)
17480    }
17481    #[inline]
17482    pub fn node_token(&self) -> Option<SyntaxToken> {
17483        support::token(&self.syntax, SyntaxKind::NODE_KW)
17484    }
17485    #[inline]
17486    pub fn tables_token(&self) -> Option<SyntaxToken> {
17487        support::token(&self.syntax, SyntaxKind::TABLES_KW)
17488    }
17489    #[inline]
17490    pub fn vertex_token(&self) -> Option<SyntaxToken> {
17491        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
17492    }
17493}
17494
17495#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17496pub struct VolatilityFuncOption {
17497    pub(crate) syntax: SyntaxNode,
17498}
17499impl VolatilityFuncOption {
17500    #[inline]
17501    pub fn immutable_token(&self) -> Option<SyntaxToken> {
17502        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
17503    }
17504    #[inline]
17505    pub fn stable_token(&self) -> Option<SyntaxToken> {
17506        support::token(&self.syntax, SyntaxKind::STABLE_KW)
17507    }
17508    #[inline]
17509    pub fn volatile_token(&self) -> Option<SyntaxToken> {
17510        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
17511    }
17512}
17513
17514#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17515pub struct WhenClause {
17516    pub(crate) syntax: SyntaxNode,
17517}
17518impl WhenClause {
17519    #[inline]
17520    pub fn then_token(&self) -> Option<SyntaxToken> {
17521        support::token(&self.syntax, SyntaxKind::THEN_KW)
17522    }
17523    #[inline]
17524    pub fn when_token(&self) -> Option<SyntaxToken> {
17525        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17526    }
17527}
17528
17529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17530pub struct WhenClauseList {
17531    pub(crate) syntax: SyntaxNode,
17532}
17533impl WhenClauseList {
17534    #[inline]
17535    pub fn when_clause(&self) -> Option<WhenClause> {
17536        support::child(&self.syntax)
17537    }
17538    #[inline]
17539    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
17540        support::children(&self.syntax)
17541    }
17542}
17543
17544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17545pub struct WhenCondition {
17546    pub(crate) syntax: SyntaxNode,
17547}
17548impl WhenCondition {
17549    #[inline]
17550    pub fn expr(&self) -> Option<Expr> {
17551        support::child(&self.syntax)
17552    }
17553    #[inline]
17554    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17555        support::token(&self.syntax, SyntaxKind::L_PAREN)
17556    }
17557    #[inline]
17558    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17559        support::token(&self.syntax, SyntaxKind::R_PAREN)
17560    }
17561    #[inline]
17562    pub fn when_token(&self) -> Option<SyntaxToken> {
17563        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17564    }
17565}
17566
17567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17568pub struct WhereClause {
17569    pub(crate) syntax: SyntaxNode,
17570}
17571impl WhereClause {
17572    #[inline]
17573    pub fn expr(&self) -> Option<Expr> {
17574        support::child(&self.syntax)
17575    }
17576    #[inline]
17577    pub fn where_token(&self) -> Option<SyntaxToken> {
17578        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17579    }
17580}
17581
17582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17583pub struct WhereConditionClause {
17584    pub(crate) syntax: SyntaxNode,
17585}
17586impl WhereConditionClause {
17587    #[inline]
17588    pub fn expr(&self) -> Option<Expr> {
17589        support::child(&self.syntax)
17590    }
17591    #[inline]
17592    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17593        support::token(&self.syntax, SyntaxKind::L_PAREN)
17594    }
17595    #[inline]
17596    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17597        support::token(&self.syntax, SyntaxKind::R_PAREN)
17598    }
17599    #[inline]
17600    pub fn where_token(&self) -> Option<SyntaxToken> {
17601        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17602    }
17603}
17604
17605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17606pub struct WhereCurrentOf {
17607    pub(crate) syntax: SyntaxNode,
17608}
17609impl WhereCurrentOf {
17610    #[inline]
17611    pub fn name_ref(&self) -> Option<NameRef> {
17612        support::child(&self.syntax)
17613    }
17614    #[inline]
17615    pub fn current_token(&self) -> Option<SyntaxToken> {
17616        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
17617    }
17618    #[inline]
17619    pub fn of_token(&self) -> Option<SyntaxToken> {
17620        support::token(&self.syntax, SyntaxKind::OF_KW)
17621    }
17622    #[inline]
17623    pub fn where_token(&self) -> Option<SyntaxToken> {
17624        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17625    }
17626}
17627
17628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17629pub struct WindowClause {
17630    pub(crate) syntax: SyntaxNode,
17631}
17632impl WindowClause {
17633    #[inline]
17634    pub fn window_defs(&self) -> AstChildren<WindowDef> {
17635        support::children(&self.syntax)
17636    }
17637    #[inline]
17638    pub fn window_token(&self) -> Option<SyntaxToken> {
17639        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17640    }
17641}
17642
17643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17644pub struct WindowDef {
17645    pub(crate) syntax: SyntaxNode,
17646}
17647impl WindowDef {
17648    #[inline]
17649    pub fn name(&self) -> Option<Name> {
17650        support::child(&self.syntax)
17651    }
17652    #[inline]
17653    pub fn window_spec(&self) -> Option<WindowSpec> {
17654        support::child(&self.syntax)
17655    }
17656    #[inline]
17657    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17658        support::token(&self.syntax, SyntaxKind::L_PAREN)
17659    }
17660    #[inline]
17661    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17662        support::token(&self.syntax, SyntaxKind::R_PAREN)
17663    }
17664    #[inline]
17665    pub fn as_token(&self) -> Option<SyntaxToken> {
17666        support::token(&self.syntax, SyntaxKind::AS_KW)
17667    }
17668}
17669
17670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17671pub struct WindowFuncOption {
17672    pub(crate) syntax: SyntaxNode,
17673}
17674impl WindowFuncOption {
17675    #[inline]
17676    pub fn window_token(&self) -> Option<SyntaxToken> {
17677        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17678    }
17679}
17680
17681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17682pub struct WindowSpec {
17683    pub(crate) syntax: SyntaxNode,
17684}
17685impl WindowSpec {
17686    #[inline]
17687    pub fn exprs(&self) -> AstChildren<Expr> {
17688        support::children(&self.syntax)
17689    }
17690    #[inline]
17691    pub fn frame_clause(&self) -> Option<FrameClause> {
17692        support::child(&self.syntax)
17693    }
17694    #[inline]
17695    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17696        support::child(&self.syntax)
17697    }
17698    #[inline]
17699    pub fn by_token(&self) -> Option<SyntaxToken> {
17700        support::token(&self.syntax, SyntaxKind::BY_KW)
17701    }
17702    #[inline]
17703    pub fn ident_token(&self) -> Option<SyntaxToken> {
17704        support::token(&self.syntax, SyntaxKind::IDENT)
17705    }
17706    #[inline]
17707    pub fn partition_token(&self) -> Option<SyntaxToken> {
17708        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17709    }
17710}
17711
17712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17713pub struct WithCheckExprClause {
17714    pub(crate) syntax: SyntaxNode,
17715}
17716impl WithCheckExprClause {
17717    #[inline]
17718    pub fn expr(&self) -> Option<Expr> {
17719        support::child(&self.syntax)
17720    }
17721    #[inline]
17722    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17723        support::token(&self.syntax, SyntaxKind::L_PAREN)
17724    }
17725    #[inline]
17726    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17727        support::token(&self.syntax, SyntaxKind::R_PAREN)
17728    }
17729    #[inline]
17730    pub fn check_token(&self) -> Option<SyntaxToken> {
17731        support::token(&self.syntax, SyntaxKind::CHECK_KW)
17732    }
17733    #[inline]
17734    pub fn with_token(&self) -> Option<SyntaxToken> {
17735        support::token(&self.syntax, SyntaxKind::WITH_KW)
17736    }
17737}
17738
17739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17740pub struct WithClause {
17741    pub(crate) syntax: SyntaxNode,
17742}
17743impl WithClause {
17744    #[inline]
17745    pub fn with_tables(&self) -> AstChildren<WithTable> {
17746        support::children(&self.syntax)
17747    }
17748    #[inline]
17749    pub fn recursive_token(&self) -> Option<SyntaxToken> {
17750        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
17751    }
17752    #[inline]
17753    pub fn with_token(&self) -> Option<SyntaxToken> {
17754        support::token(&self.syntax, SyntaxKind::WITH_KW)
17755    }
17756}
17757
17758#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17759pub struct WithData {
17760    pub(crate) syntax: SyntaxNode,
17761}
17762impl WithData {
17763    #[inline]
17764    pub fn data_token(&self) -> Option<SyntaxToken> {
17765        support::token(&self.syntax, SyntaxKind::DATA_KW)
17766    }
17767    #[inline]
17768    pub fn with_token(&self) -> Option<SyntaxToken> {
17769        support::token(&self.syntax, SyntaxKind::WITH_KW)
17770    }
17771}
17772
17773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17774pub struct WithNoData {
17775    pub(crate) syntax: SyntaxNode,
17776}
17777impl WithNoData {
17778    #[inline]
17779    pub fn data_token(&self) -> Option<SyntaxToken> {
17780        support::token(&self.syntax, SyntaxKind::DATA_KW)
17781    }
17782    #[inline]
17783    pub fn no_token(&self) -> Option<SyntaxToken> {
17784        support::token(&self.syntax, SyntaxKind::NO_KW)
17785    }
17786    #[inline]
17787    pub fn with_token(&self) -> Option<SyntaxToken> {
17788        support::token(&self.syntax, SyntaxKind::WITH_KW)
17789    }
17790}
17791
17792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17793pub struct WithOptions {
17794    pub(crate) syntax: SyntaxNode,
17795}
17796impl WithOptions {
17797    #[inline]
17798    pub fn options_token(&self) -> Option<SyntaxToken> {
17799        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
17800    }
17801    #[inline]
17802    pub fn with_token(&self) -> Option<SyntaxToken> {
17803        support::token(&self.syntax, SyntaxKind::WITH_KW)
17804    }
17805}
17806
17807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17808pub struct WithParams {
17809    pub(crate) syntax: SyntaxNode,
17810}
17811impl WithParams {
17812    #[inline]
17813    pub fn attribute_list(&self) -> Option<AttributeList> {
17814        support::child(&self.syntax)
17815    }
17816    #[inline]
17817    pub fn with_token(&self) -> Option<SyntaxToken> {
17818        support::token(&self.syntax, SyntaxKind::WITH_KW)
17819    }
17820}
17821
17822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17823pub struct WithTable {
17824    pub(crate) syntax: SyntaxNode,
17825}
17826impl WithTable {
17827    #[inline]
17828    pub fn column_list(&self) -> Option<ColumnList> {
17829        support::child(&self.syntax)
17830    }
17831    #[inline]
17832    pub fn materialized(&self) -> Option<Materialized> {
17833        support::child(&self.syntax)
17834    }
17835    #[inline]
17836    pub fn name(&self) -> Option<Name> {
17837        support::child(&self.syntax)
17838    }
17839    #[inline]
17840    pub fn not_materialized(&self) -> Option<NotMaterialized> {
17841        support::child(&self.syntax)
17842    }
17843    #[inline]
17844    pub fn query(&self) -> Option<WithQuery> {
17845        support::child(&self.syntax)
17846    }
17847    #[inline]
17848    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17849        support::token(&self.syntax, SyntaxKind::L_PAREN)
17850    }
17851    #[inline]
17852    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17853        support::token(&self.syntax, SyntaxKind::R_PAREN)
17854    }
17855    #[inline]
17856    pub fn as_token(&self) -> Option<SyntaxToken> {
17857        support::token(&self.syntax, SyntaxKind::AS_KW)
17858    }
17859}
17860
17861#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17862pub struct WithTimezone {
17863    pub(crate) syntax: SyntaxNode,
17864}
17865impl WithTimezone {
17866    #[inline]
17867    pub fn time_token(&self) -> Option<SyntaxToken> {
17868        support::token(&self.syntax, SyntaxKind::TIME_KW)
17869    }
17870    #[inline]
17871    pub fn with_token(&self) -> Option<SyntaxToken> {
17872        support::token(&self.syntax, SyntaxKind::WITH_KW)
17873    }
17874    #[inline]
17875    pub fn zone_token(&self) -> Option<SyntaxToken> {
17876        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17877    }
17878}
17879
17880#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17881pub struct WithinClause {
17882    pub(crate) syntax: SyntaxNode,
17883}
17884impl WithinClause {
17885    #[inline]
17886    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17887        support::child(&self.syntax)
17888    }
17889    #[inline]
17890    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17891        support::token(&self.syntax, SyntaxKind::L_PAREN)
17892    }
17893    #[inline]
17894    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17895        support::token(&self.syntax, SyntaxKind::R_PAREN)
17896    }
17897    #[inline]
17898    pub fn group_token(&self) -> Option<SyntaxToken> {
17899        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17900    }
17901    #[inline]
17902    pub fn within_token(&self) -> Option<SyntaxToken> {
17903        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
17904    }
17905}
17906
17907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17908pub struct WithoutOids {
17909    pub(crate) syntax: SyntaxNode,
17910}
17911impl WithoutOids {
17912    #[inline]
17913    pub fn oids_token(&self) -> Option<SyntaxToken> {
17914        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17915    }
17916    #[inline]
17917    pub fn without_token(&self) -> Option<SyntaxToken> {
17918        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17919    }
17920}
17921
17922#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17923pub struct WithoutTimezone {
17924    pub(crate) syntax: SyntaxNode,
17925}
17926impl WithoutTimezone {
17927    #[inline]
17928    pub fn time_token(&self) -> Option<SyntaxToken> {
17929        support::token(&self.syntax, SyntaxKind::TIME_KW)
17930    }
17931    #[inline]
17932    pub fn without_token(&self) -> Option<SyntaxToken> {
17933        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17934    }
17935    #[inline]
17936    pub fn zone_token(&self) -> Option<SyntaxToken> {
17937        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17938    }
17939}
17940
17941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17942pub struct XmlColumnOption {
17943    pub(crate) syntax: SyntaxNode,
17944}
17945impl XmlColumnOption {
17946    #[inline]
17947    pub fn expr(&self) -> Option<Expr> {
17948        support::child(&self.syntax)
17949    }
17950    #[inline]
17951    pub fn default_token(&self) -> Option<SyntaxToken> {
17952        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17953    }
17954    #[inline]
17955    pub fn ident_token(&self) -> Option<SyntaxToken> {
17956        support::token(&self.syntax, SyntaxKind::IDENT)
17957    }
17958    #[inline]
17959    pub fn not_token(&self) -> Option<SyntaxToken> {
17960        support::token(&self.syntax, SyntaxKind::NOT_KW)
17961    }
17962    #[inline]
17963    pub fn null_token(&self) -> Option<SyntaxToken> {
17964        support::token(&self.syntax, SyntaxKind::NULL_KW)
17965    }
17966    #[inline]
17967    pub fn path_token(&self) -> Option<SyntaxToken> {
17968        support::token(&self.syntax, SyntaxKind::PATH_KW)
17969    }
17970}
17971
17972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17973pub struct XmlColumnOptionList {
17974    pub(crate) syntax: SyntaxNode,
17975}
17976impl XmlColumnOptionList {
17977    #[inline]
17978    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
17979        support::child(&self.syntax)
17980    }
17981    #[inline]
17982    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
17983        support::children(&self.syntax)
17984    }
17985}
17986
17987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17988pub struct XmlElementFn {
17989    pub(crate) syntax: SyntaxNode,
17990}
17991impl XmlElementFn {
17992    #[inline]
17993    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
17994        support::child(&self.syntax)
17995    }
17996    #[inline]
17997    pub fn exprs(&self) -> AstChildren<Expr> {
17998        support::children(&self.syntax)
17999    }
18000    #[inline]
18001    pub fn name(&self) -> Option<Name> {
18002        support::child(&self.syntax)
18003    }
18004    #[inline]
18005    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18006        support::token(&self.syntax, SyntaxKind::L_PAREN)
18007    }
18008    #[inline]
18009    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18010        support::token(&self.syntax, SyntaxKind::R_PAREN)
18011    }
18012    #[inline]
18013    pub fn comma_token(&self) -> Option<SyntaxToken> {
18014        support::token(&self.syntax, SyntaxKind::COMMA)
18015    }
18016    #[inline]
18017    pub fn name_token(&self) -> Option<SyntaxToken> {
18018        support::token(&self.syntax, SyntaxKind::NAME_KW)
18019    }
18020    #[inline]
18021    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
18022        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
18023    }
18024    #[inline]
18025    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
18026        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
18027    }
18028}
18029
18030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18031pub struct XmlExistsFn {
18032    pub(crate) syntax: SyntaxNode,
18033}
18034impl XmlExistsFn {
18035    #[inline]
18036    pub fn expr(&self) -> Option<Expr> {
18037        support::child(&self.syntax)
18038    }
18039    #[inline]
18040    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18041        support::child(&self.syntax)
18042    }
18043    #[inline]
18044    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18045        support::token(&self.syntax, SyntaxKind::L_PAREN)
18046    }
18047    #[inline]
18048    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18049        support::token(&self.syntax, SyntaxKind::R_PAREN)
18050    }
18051    #[inline]
18052    pub fn passing_token(&self) -> Option<SyntaxToken> {
18053        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18054    }
18055    #[inline]
18056    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
18057        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
18058    }
18059}
18060
18061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18062pub struct XmlForestFn {
18063    pub(crate) syntax: SyntaxNode,
18064}
18065impl XmlForestFn {
18066    #[inline]
18067    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18068        support::child(&self.syntax)
18069    }
18070    #[inline]
18071    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18072        support::token(&self.syntax, SyntaxKind::L_PAREN)
18073    }
18074    #[inline]
18075    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18076        support::token(&self.syntax, SyntaxKind::R_PAREN)
18077    }
18078    #[inline]
18079    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
18080        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
18081    }
18082}
18083
18084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18085pub struct XmlNamespace {
18086    pub(crate) syntax: SyntaxNode,
18087}
18088impl XmlNamespace {
18089    #[inline]
18090    pub fn expr(&self) -> Option<Expr> {
18091        support::child(&self.syntax)
18092    }
18093    #[inline]
18094    pub fn name(&self) -> Option<Name> {
18095        support::child(&self.syntax)
18096    }
18097    #[inline]
18098    pub fn as_token(&self) -> Option<SyntaxToken> {
18099        support::token(&self.syntax, SyntaxKind::AS_KW)
18100    }
18101    #[inline]
18102    pub fn default_token(&self) -> Option<SyntaxToken> {
18103        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18104    }
18105}
18106
18107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18108pub struct XmlNamespaceList {
18109    pub(crate) syntax: SyntaxNode,
18110}
18111impl XmlNamespaceList {
18112    #[inline]
18113    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18114        support::children(&self.syntax)
18115    }
18116    #[inline]
18117    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18118        support::token(&self.syntax, SyntaxKind::L_PAREN)
18119    }
18120    #[inline]
18121    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18122        support::token(&self.syntax, SyntaxKind::R_PAREN)
18123    }
18124}
18125
18126#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18127pub struct XmlParseFn {
18128    pub(crate) syntax: SyntaxNode,
18129}
18130impl XmlParseFn {
18131    #[inline]
18132    pub fn expr(&self) -> Option<Expr> {
18133        support::child(&self.syntax)
18134    }
18135    #[inline]
18136    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18137        support::token(&self.syntax, SyntaxKind::L_PAREN)
18138    }
18139    #[inline]
18140    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18141        support::token(&self.syntax, SyntaxKind::R_PAREN)
18142    }
18143    #[inline]
18144    pub fn content_token(&self) -> Option<SyntaxToken> {
18145        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18146    }
18147    #[inline]
18148    pub fn document_token(&self) -> Option<SyntaxToken> {
18149        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18150    }
18151    #[inline]
18152    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18153        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18154    }
18155    #[inline]
18156    pub fn strip_token(&self) -> Option<SyntaxToken> {
18157        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18158    }
18159    #[inline]
18160    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18161        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18162    }
18163    #[inline]
18164    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18165        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18166    }
18167}
18168
18169#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18170pub struct XmlPassingMech {
18171    pub(crate) syntax: SyntaxNode,
18172}
18173impl XmlPassingMech {
18174    #[inline]
18175    pub fn by_token(&self) -> Option<SyntaxToken> {
18176        support::token(&self.syntax, SyntaxKind::BY_KW)
18177    }
18178    #[inline]
18179    pub fn ref_token(&self) -> Option<SyntaxToken> {
18180        support::token(&self.syntax, SyntaxKind::REF_KW)
18181    }
18182    #[inline]
18183    pub fn value_token(&self) -> Option<SyntaxToken> {
18184        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18185    }
18186}
18187
18188#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18189pub struct XmlPiFn {
18190    pub(crate) syntax: SyntaxNode,
18191}
18192impl XmlPiFn {
18193    #[inline]
18194    pub fn expr(&self) -> Option<Expr> {
18195        support::child(&self.syntax)
18196    }
18197    #[inline]
18198    pub fn name(&self) -> Option<Name> {
18199        support::child(&self.syntax)
18200    }
18201    #[inline]
18202    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18203        support::token(&self.syntax, SyntaxKind::L_PAREN)
18204    }
18205    #[inline]
18206    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18207        support::token(&self.syntax, SyntaxKind::R_PAREN)
18208    }
18209    #[inline]
18210    pub fn comma_token(&self) -> Option<SyntaxToken> {
18211        support::token(&self.syntax, SyntaxKind::COMMA)
18212    }
18213    #[inline]
18214    pub fn name_token(&self) -> Option<SyntaxToken> {
18215        support::token(&self.syntax, SyntaxKind::NAME_KW)
18216    }
18217    #[inline]
18218    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
18219        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
18220    }
18221}
18222
18223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18224pub struct XmlRootFn {
18225    pub(crate) syntax: SyntaxNode,
18226}
18227impl XmlRootFn {
18228    #[inline]
18229    pub fn expr(&self) -> Option<Expr> {
18230        support::child(&self.syntax)
18231    }
18232    #[inline]
18233    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18234        support::token(&self.syntax, SyntaxKind::L_PAREN)
18235    }
18236    #[inline]
18237    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18238        support::token(&self.syntax, SyntaxKind::R_PAREN)
18239    }
18240    #[inline]
18241    pub fn comma_token(&self) -> Option<SyntaxToken> {
18242        support::token(&self.syntax, SyntaxKind::COMMA)
18243    }
18244    #[inline]
18245    pub fn no_token(&self) -> Option<SyntaxToken> {
18246        support::token(&self.syntax, SyntaxKind::NO_KW)
18247    }
18248    #[inline]
18249    pub fn standalone_token(&self) -> Option<SyntaxToken> {
18250        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
18251    }
18252    #[inline]
18253    pub fn value_token(&self) -> Option<SyntaxToken> {
18254        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18255    }
18256    #[inline]
18257    pub fn version_token(&self) -> Option<SyntaxToken> {
18258        support::token(&self.syntax, SyntaxKind::VERSION_KW)
18259    }
18260    #[inline]
18261    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
18262        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
18263    }
18264    #[inline]
18265    pub fn yes_token(&self) -> Option<SyntaxToken> {
18266        support::token(&self.syntax, SyntaxKind::YES_KW)
18267    }
18268}
18269
18270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18271pub struct XmlRowPassingClause {
18272    pub(crate) syntax: SyntaxNode,
18273}
18274impl XmlRowPassingClause {
18275    #[inline]
18276    pub fn expr(&self) -> Option<Expr> {
18277        support::child(&self.syntax)
18278    }
18279    #[inline]
18280    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18281        support::child(&self.syntax)
18282    }
18283    #[inline]
18284    pub fn passing_token(&self) -> Option<SyntaxToken> {
18285        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18286    }
18287}
18288
18289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18290pub struct XmlSerializeFn {
18291    pub(crate) syntax: SyntaxNode,
18292}
18293impl XmlSerializeFn {
18294    #[inline]
18295    pub fn expr(&self) -> Option<Expr> {
18296        support::child(&self.syntax)
18297    }
18298    #[inline]
18299    pub fn ty(&self) -> Option<Type> {
18300        support::child(&self.syntax)
18301    }
18302    #[inline]
18303    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18304        support::token(&self.syntax, SyntaxKind::L_PAREN)
18305    }
18306    #[inline]
18307    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18308        support::token(&self.syntax, SyntaxKind::R_PAREN)
18309    }
18310    #[inline]
18311    pub fn as_token(&self) -> Option<SyntaxToken> {
18312        support::token(&self.syntax, SyntaxKind::AS_KW)
18313    }
18314    #[inline]
18315    pub fn content_token(&self) -> Option<SyntaxToken> {
18316        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18317    }
18318    #[inline]
18319    pub fn document_token(&self) -> Option<SyntaxToken> {
18320        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18321    }
18322    #[inline]
18323    pub fn indent_token(&self) -> Option<SyntaxToken> {
18324        support::token(&self.syntax, SyntaxKind::INDENT_KW)
18325    }
18326    #[inline]
18327    pub fn no_token(&self) -> Option<SyntaxToken> {
18328        support::token(&self.syntax, SyntaxKind::NO_KW)
18329    }
18330    #[inline]
18331    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
18332        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
18333    }
18334}
18335
18336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18337pub struct XmlTable {
18338    pub(crate) syntax: SyntaxNode,
18339}
18340impl XmlTable {
18341    #[inline]
18342    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
18343        support::child(&self.syntax)
18344    }
18345    #[inline]
18346    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
18347        support::child(&self.syntax)
18348    }
18349    #[inline]
18350    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
18351        support::child(&self.syntax)
18352    }
18353    #[inline]
18354    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18355        support::token(&self.syntax, SyntaxKind::L_PAREN)
18356    }
18357    #[inline]
18358    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18359        support::token(&self.syntax, SyntaxKind::R_PAREN)
18360    }
18361    #[inline]
18362    pub fn comma_token(&self) -> Option<SyntaxToken> {
18363        support::token(&self.syntax, SyntaxKind::COMMA)
18364    }
18365    #[inline]
18366    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
18367        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
18368    }
18369    #[inline]
18370    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
18371        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
18372    }
18373}
18374
18375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18376pub struct XmlTableColumn {
18377    pub(crate) syntax: SyntaxNode,
18378}
18379impl XmlTableColumn {
18380    #[inline]
18381    pub fn name(&self) -> Option<Name> {
18382        support::child(&self.syntax)
18383    }
18384    #[inline]
18385    pub fn ty(&self) -> Option<Type> {
18386        support::child(&self.syntax)
18387    }
18388    #[inline]
18389    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
18390        support::child(&self.syntax)
18391    }
18392    #[inline]
18393    pub fn for_token(&self) -> Option<SyntaxToken> {
18394        support::token(&self.syntax, SyntaxKind::FOR_KW)
18395    }
18396    #[inline]
18397    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
18398        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
18399    }
18400}
18401
18402#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18403pub struct XmlTableColumnList {
18404    pub(crate) syntax: SyntaxNode,
18405}
18406impl XmlTableColumnList {
18407    #[inline]
18408    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
18409        support::children(&self.syntax)
18410    }
18411    #[inline]
18412    pub fn columns_token(&self) -> Option<SyntaxToken> {
18413        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
18414    }
18415}
18416
18417#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18418pub enum AlterColumnOption {
18419    AddGenerated(AddGenerated),
18420    DropDefault(DropDefault),
18421    DropExpression(DropExpression),
18422    DropIdentity(DropIdentity),
18423    DropNotNull(DropNotNull),
18424    Inherit(Inherit),
18425    NoInherit(NoInherit),
18426    ResetOptions(ResetOptions),
18427    Restart(Restart),
18428    SetCompression(SetCompression),
18429    SetDefault(SetDefault),
18430    SetExpression(SetExpression),
18431    SetGenerated(SetGenerated),
18432    SetGeneratedOptions(SetGeneratedOptions),
18433    SetNotNull(SetNotNull),
18434    SetOptions(SetOptions),
18435    SetOptionsList(SetOptionsList),
18436    SetSequenceOption(SetSequenceOption),
18437    SetStatistics(SetStatistics),
18438    SetStorage(SetStorage),
18439    SetType(SetType),
18440}
18441
18442#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18443pub enum AlterDomainAction {
18444    AddConstraint(AddConstraint),
18445    DropConstraint(DropConstraint),
18446    DropDefault(DropDefault),
18447    DropNotNull(DropNotNull),
18448    OwnerTo(OwnerTo),
18449    RenameConstraint(RenameConstraint),
18450    RenameTo(RenameTo),
18451    SetDefault(SetDefault),
18452    SetNotNull(SetNotNull),
18453    SetSchema(SetSchema),
18454    ValidateConstraint(ValidateConstraint),
18455}
18456
18457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18458pub enum AlterIndexAction {
18459    AlterSetStatistics(AlterSetStatistics),
18460    AttachPartition(AttachPartition),
18461    DependsOnExtension(DependsOnExtension),
18462    NoDependsOnExtension(NoDependsOnExtension),
18463    RenameTo(RenameTo),
18464    ResetOptions(ResetOptions),
18465    SetOptions(SetOptions),
18466    SetTablespace(SetTablespace),
18467}
18468
18469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18470pub enum AlterMaterializedViewAction {
18471    DependsOnExtension(DependsOnExtension),
18472    NoDependsOnExtension(NoDependsOnExtension),
18473    RenameColumn(RenameColumn),
18474    RenameTo(RenameTo),
18475    SetSchema(SetSchema),
18476    AlterTableAction(AlterTableAction),
18477}
18478
18479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18480pub enum AlterPropertyGraphAction {
18481    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
18482    AddVertexEdgeTables(AddVertexEdgeTables),
18483    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
18484    DropEdgeTables(DropEdgeTables),
18485    DropVertexEdgeLabel(DropVertexEdgeLabel),
18486    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
18487    DropVertexTables(DropVertexTables),
18488    OwnerTo(OwnerTo),
18489    RenameTo(RenameTo),
18490    SetSchema(SetSchema),
18491}
18492
18493#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18494pub enum AlterTableAction {
18495    AddColumn(AddColumn),
18496    AddConstraint(AddConstraint),
18497    AlterColumn(AlterColumn),
18498    AlterConstraint(AlterConstraint),
18499    AttachPartition(AttachPartition),
18500    ClusterOn(ClusterOn),
18501    DetachPartition(DetachPartition),
18502    DisableRls(DisableRls),
18503    DisableRule(DisableRule),
18504    DisableTrigger(DisableTrigger),
18505    DropColumn(DropColumn),
18506    DropConstraint(DropConstraint),
18507    EnableAlwaysRule(EnableAlwaysRule),
18508    EnableAlwaysTrigger(EnableAlwaysTrigger),
18509    EnableReplicaRule(EnableReplicaRule),
18510    EnableReplicaTrigger(EnableReplicaTrigger),
18511    EnableRls(EnableRls),
18512    EnableRule(EnableRule),
18513    EnableTrigger(EnableTrigger),
18514    ForceRls(ForceRls),
18515    InheritTable(InheritTable),
18516    MergePartitions(MergePartitions),
18517    NoForceRls(NoForceRls),
18518    NoInheritTable(NoInheritTable),
18519    NotOf(NotOf),
18520    OfType(OfType),
18521    OptionItemList(OptionItemList),
18522    OwnerTo(OwnerTo),
18523    RenameColumn(RenameColumn),
18524    RenameConstraint(RenameConstraint),
18525    RenameTo(RenameTo),
18526    ReplicaIdentity(ReplicaIdentity),
18527    ResetOptions(ResetOptions),
18528    SetAccessMethod(SetAccessMethod),
18529    SetLogged(SetLogged),
18530    SetOptions(SetOptions),
18531    SetSchema(SetSchema),
18532    SetTablespace(SetTablespace),
18533    SetUnlogged(SetUnlogged),
18534    SetWithoutCluster(SetWithoutCluster),
18535    SetWithoutOids(SetWithoutOids),
18536    SplitPartition(SplitPartition),
18537    ValidateConstraint(ValidateConstraint),
18538}
18539
18540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18541pub enum AlterTypeAction {
18542    AddAttribute(AddAttribute),
18543    AlterAttribute(AlterAttribute),
18544    DropAttribute(DropAttribute),
18545}
18546
18547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18548pub enum ColumnConstraint {
18549    CheckConstraint(CheckConstraint),
18550    DefaultConstraint(DefaultConstraint),
18551    ExcludeConstraint(ExcludeConstraint),
18552    NotNullConstraint(NotNullConstraint),
18553    PrimaryKeyConstraint(PrimaryKeyConstraint),
18554    ReferencesConstraint(ReferencesConstraint),
18555    UniqueConstraint(UniqueConstraint),
18556}
18557
18558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18559pub enum ConfigValue {
18560    Literal(Literal),
18561    NameRef(NameRef),
18562}
18563
18564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18565pub enum ConflictAction {
18566    ConflictDoNothing(ConflictDoNothing),
18567    ConflictDoSelect(ConflictDoSelect),
18568    ConflictDoUpdateSet(ConflictDoUpdateSet),
18569}
18570
18571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18572pub enum ConflictTarget {
18573    ConflictOnConstraint(ConflictOnConstraint),
18574    ConflictOnIndex(ConflictOnIndex),
18575}
18576
18577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18578pub enum Constraint {
18579    CheckConstraint(CheckConstraint),
18580    DefaultConstraint(DefaultConstraint),
18581    ForeignKeyConstraint(ForeignKeyConstraint),
18582    GeneratedConstraint(GeneratedConstraint),
18583    NotNullConstraint(NotNullConstraint),
18584    NullConstraint(NullConstraint),
18585    PrimaryKeyConstraint(PrimaryKeyConstraint),
18586    ReferencesConstraint(ReferencesConstraint),
18587    UniqueConstraint(UniqueConstraint),
18588}
18589
18590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18591pub enum ElementTableLabelAndProperties {
18592    LabelAndPropertiesList(LabelAndPropertiesList),
18593    ElementTableProperties(ElementTableProperties),
18594}
18595
18596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18597pub enum ElementTableProperties {
18598    AllProperties(AllProperties),
18599    NoProperties(NoProperties),
18600    Properties(Properties),
18601}
18602
18603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18604pub enum ExplainStmt {
18605    CompoundSelect(CompoundSelect),
18606    CreateMaterializedView(CreateMaterializedView),
18607    CreateTableAs(CreateTableAs),
18608    Declare(Declare),
18609    Delete(Delete),
18610    Execute(Execute),
18611    Insert(Insert),
18612    Merge(Merge),
18613    ParenSelect(ParenSelect),
18614    Select(Select),
18615    SelectInto(SelectInto),
18616    Table(Table),
18617    Update(Update),
18618    Values(Values),
18619}
18620
18621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18622pub enum Expr {
18623    ArrayExpr(ArrayExpr),
18624    BetweenExpr(BetweenExpr),
18625    BinExpr(BinExpr),
18626    CallExpr(CallExpr),
18627    CaseExpr(CaseExpr),
18628    CastExpr(CastExpr),
18629    FieldExpr(FieldExpr),
18630    IndexExpr(IndexExpr),
18631    Literal(Literal),
18632    NameRef(NameRef),
18633    ParenExpr(ParenExpr),
18634    PostfixExpr(PostfixExpr),
18635    PrefixExpr(PrefixExpr),
18636    SliceExpr(SliceExpr),
18637    TupleExpr(TupleExpr),
18638}
18639
18640#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18641pub enum FuncOption {
18642    AsFuncOption(AsFuncOption),
18643    BeginFuncOptionList(BeginFuncOptionList),
18644    CostFuncOption(CostFuncOption),
18645    LanguageFuncOption(LanguageFuncOption),
18646    LeakproofFuncOption(LeakproofFuncOption),
18647    ParallelFuncOption(ParallelFuncOption),
18648    ResetFuncOption(ResetFuncOption),
18649    ReturnFuncOption(ReturnFuncOption),
18650    RowsFuncOption(RowsFuncOption),
18651    SecurityFuncOption(SecurityFuncOption),
18652    SetFuncOption(SetFuncOption),
18653    StrictFuncOption(StrictFuncOption),
18654    SupportFuncOption(SupportFuncOption),
18655    TransformFuncOption(TransformFuncOption),
18656    VolatilityFuncOption(VolatilityFuncOption),
18657    WindowFuncOption(WindowFuncOption),
18658}
18659
18660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18661pub enum GroupBy {
18662    GroupingCube(GroupingCube),
18663    GroupingExpr(GroupingExpr),
18664    GroupingRollup(GroupingRollup),
18665    GroupingSets(GroupingSets),
18666}
18667
18668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18669pub enum JoinType {
18670    JoinCross(JoinCross),
18671    JoinFull(JoinFull),
18672    JoinInner(JoinInner),
18673    JoinLeft(JoinLeft),
18674    JoinRight(JoinRight),
18675}
18676
18677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18678pub enum JsonBehavior {
18679    JsonBehaviorDefault(JsonBehaviorDefault),
18680    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
18681    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
18682    JsonBehaviorError(JsonBehaviorError),
18683    JsonBehaviorFalse(JsonBehaviorFalse),
18684    JsonBehaviorNull(JsonBehaviorNull),
18685    JsonBehaviorTrue(JsonBehaviorTrue),
18686    JsonBehaviorUnknown(JsonBehaviorUnknown),
18687}
18688
18689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18690pub enum MatchType {
18691    MatchFull(MatchFull),
18692    MatchPartial(MatchPartial),
18693    MatchSimple(MatchSimple),
18694}
18695
18696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18697pub enum MergeAction {
18698    MergeDelete(MergeDelete),
18699    MergeDoNothing(MergeDoNothing),
18700    MergeInsert(MergeInsert),
18701    MergeUpdate(MergeUpdate),
18702}
18703
18704#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18705pub enum MergeWhenClause {
18706    MergeWhenMatched(MergeWhenMatched),
18707    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
18708    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
18709}
18710
18711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18712pub enum OnCommitAction {
18713    DeleteRows(DeleteRows),
18714    Drop(Drop),
18715    PreserveRows(PreserveRows),
18716}
18717
18718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18719pub enum ParamMode {
18720    ParamIn(ParamIn),
18721    ParamInOut(ParamInOut),
18722    ParamOut(ParamOut),
18723    ParamVariadic(ParamVariadic),
18724}
18725
18726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18727pub enum PartitionType {
18728    PartitionDefault(PartitionDefault),
18729    PartitionForValuesFrom(PartitionForValuesFrom),
18730    PartitionForValuesIn(PartitionForValuesIn),
18731    PartitionForValuesWith(PartitionForValuesWith),
18732}
18733
18734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18735pub enum PathPrimary {
18736    EdgeAny(EdgeAny),
18737    EdgeLeft(EdgeLeft),
18738    EdgeRight(EdgeRight),
18739    ParenGraphPattern(ParenGraphPattern),
18740    VertexPattern(VertexPattern),
18741}
18742
18743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18744pub enum Persistence {
18745    Temp(Temp),
18746    Unlogged(Unlogged),
18747}
18748
18749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18750pub enum PreparableStmt {
18751    CompoundSelect(CompoundSelect),
18752    Delete(Delete),
18753    Insert(Insert),
18754    Merge(Merge),
18755    Select(Select),
18756    SelectInto(SelectInto),
18757    Table(Table),
18758    Update(Update),
18759    Values(Values),
18760}
18761
18762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18763pub enum RefAction {
18764    Cascade(Cascade),
18765    NoAction(NoAction),
18766    Restrict(Restrict),
18767    SetDefaultColumns(SetDefaultColumns),
18768    SetNullColumns(SetNullColumns),
18769}
18770
18771#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18772pub enum SchemaElement {
18773    CreateIndex(CreateIndex),
18774    CreateSequence(CreateSequence),
18775    CreateTable(CreateTable),
18776    CreateTrigger(CreateTrigger),
18777    CreateView(CreateView),
18778    Grant(Grant),
18779}
18780
18781#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18782pub enum SelectVariant {
18783    CompoundSelect(CompoundSelect),
18784    ParenSelect(ParenSelect),
18785    Select(Select),
18786    SelectInto(SelectInto),
18787    Table(Table),
18788    Values(Values),
18789}
18790
18791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18792pub enum SetColumn {
18793    SetMultipleColumns(SetMultipleColumns),
18794    SetSingleColumn(SetSingleColumn),
18795}
18796
18797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18798pub enum Stmt {
18799    AlterAggregate(AlterAggregate),
18800    AlterCollation(AlterCollation),
18801    AlterConversion(AlterConversion),
18802    AlterDatabase(AlterDatabase),
18803    AlterDefaultPrivileges(AlterDefaultPrivileges),
18804    AlterDomain(AlterDomain),
18805    AlterEventTrigger(AlterEventTrigger),
18806    AlterExtension(AlterExtension),
18807    AlterForeignDataWrapper(AlterForeignDataWrapper),
18808    AlterForeignTable(AlterForeignTable),
18809    AlterFunction(AlterFunction),
18810    AlterGroup(AlterGroup),
18811    AlterIndex(AlterIndex),
18812    AlterLanguage(AlterLanguage),
18813    AlterLargeObject(AlterLargeObject),
18814    AlterMaterializedView(AlterMaterializedView),
18815    AlterOperator(AlterOperator),
18816    AlterOperatorClass(AlterOperatorClass),
18817    AlterOperatorFamily(AlterOperatorFamily),
18818    AlterPolicy(AlterPolicy),
18819    AlterProcedure(AlterProcedure),
18820    AlterPropertyGraph(AlterPropertyGraph),
18821    AlterPublication(AlterPublication),
18822    AlterRole(AlterRole),
18823    AlterRoutine(AlterRoutine),
18824    AlterRule(AlterRule),
18825    AlterSchema(AlterSchema),
18826    AlterSequence(AlterSequence),
18827    AlterServer(AlterServer),
18828    AlterStatistics(AlterStatistics),
18829    AlterSubscription(AlterSubscription),
18830    AlterSystem(AlterSystem),
18831    AlterTable(AlterTable),
18832    AlterTablespace(AlterTablespace),
18833    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
18834    AlterTextSearchDictionary(AlterTextSearchDictionary),
18835    AlterTextSearchParser(AlterTextSearchParser),
18836    AlterTextSearchTemplate(AlterTextSearchTemplate),
18837    AlterTrigger(AlterTrigger),
18838    AlterType(AlterType),
18839    AlterUser(AlterUser),
18840    AlterUserMapping(AlterUserMapping),
18841    AlterView(AlterView),
18842    Analyze(Analyze),
18843    Begin(Begin),
18844    Call(Call),
18845    Checkpoint(Checkpoint),
18846    Close(Close),
18847    Cluster(Cluster),
18848    CommentOn(CommentOn),
18849    Commit(Commit),
18850    Copy(Copy),
18851    CreateAccessMethod(CreateAccessMethod),
18852    CreateAggregate(CreateAggregate),
18853    CreateCast(CreateCast),
18854    CreateCollation(CreateCollation),
18855    CreateConversion(CreateConversion),
18856    CreateDatabase(CreateDatabase),
18857    CreateDomain(CreateDomain),
18858    CreateEventTrigger(CreateEventTrigger),
18859    CreateExtension(CreateExtension),
18860    CreateForeignDataWrapper(CreateForeignDataWrapper),
18861    CreateForeignTable(CreateForeignTable),
18862    CreateFunction(CreateFunction),
18863    CreateGroup(CreateGroup),
18864    CreateIndex(CreateIndex),
18865    CreateLanguage(CreateLanguage),
18866    CreateMaterializedView(CreateMaterializedView),
18867    CreateOperator(CreateOperator),
18868    CreateOperatorClass(CreateOperatorClass),
18869    CreateOperatorFamily(CreateOperatorFamily),
18870    CreatePolicy(CreatePolicy),
18871    CreateProcedure(CreateProcedure),
18872    CreatePropertyGraph(CreatePropertyGraph),
18873    CreatePublication(CreatePublication),
18874    CreateRole(CreateRole),
18875    CreateRule(CreateRule),
18876    CreateSchema(CreateSchema),
18877    CreateSequence(CreateSequence),
18878    CreateServer(CreateServer),
18879    CreateStatistics(CreateStatistics),
18880    CreateSubscription(CreateSubscription),
18881    CreateTable(CreateTable),
18882    CreateTableAs(CreateTableAs),
18883    CreateTablespace(CreateTablespace),
18884    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
18885    CreateTextSearchDictionary(CreateTextSearchDictionary),
18886    CreateTextSearchParser(CreateTextSearchParser),
18887    CreateTextSearchTemplate(CreateTextSearchTemplate),
18888    CreateTransform(CreateTransform),
18889    CreateTrigger(CreateTrigger),
18890    CreateType(CreateType),
18891    CreateUser(CreateUser),
18892    CreateUserMapping(CreateUserMapping),
18893    CreateView(CreateView),
18894    Deallocate(Deallocate),
18895    Declare(Declare),
18896    Delete(Delete),
18897    Discard(Discard),
18898    Do(Do),
18899    DropAccessMethod(DropAccessMethod),
18900    DropAggregate(DropAggregate),
18901    DropCast(DropCast),
18902    DropCollation(DropCollation),
18903    DropConversion(DropConversion),
18904    DropDatabase(DropDatabase),
18905    DropDomain(DropDomain),
18906    DropEventTrigger(DropEventTrigger),
18907    DropExtension(DropExtension),
18908    DropForeignDataWrapper(DropForeignDataWrapper),
18909    DropForeignTable(DropForeignTable),
18910    DropFunction(DropFunction),
18911    DropGroup(DropGroup),
18912    DropIndex(DropIndex),
18913    DropLanguage(DropLanguage),
18914    DropMaterializedView(DropMaterializedView),
18915    DropOperator(DropOperator),
18916    DropOperatorClass(DropOperatorClass),
18917    DropOperatorFamily(DropOperatorFamily),
18918    DropOwned(DropOwned),
18919    DropPolicy(DropPolicy),
18920    DropProcedure(DropProcedure),
18921    DropPropertyGraph(DropPropertyGraph),
18922    DropPublication(DropPublication),
18923    DropRole(DropRole),
18924    DropRoutine(DropRoutine),
18925    DropRule(DropRule),
18926    DropSchema(DropSchema),
18927    DropSequence(DropSequence),
18928    DropServer(DropServer),
18929    DropStatistics(DropStatistics),
18930    DropSubscription(DropSubscription),
18931    DropTable(DropTable),
18932    DropTablespace(DropTablespace),
18933    DropTextSearchConfig(DropTextSearchConfig),
18934    DropTextSearchDict(DropTextSearchDict),
18935    DropTextSearchParser(DropTextSearchParser),
18936    DropTextSearchTemplate(DropTextSearchTemplate),
18937    DropTransform(DropTransform),
18938    DropTrigger(DropTrigger),
18939    DropType(DropType),
18940    DropUser(DropUser),
18941    DropUserMapping(DropUserMapping),
18942    DropView(DropView),
18943    Execute(Execute),
18944    Explain(Explain),
18945    Fetch(Fetch),
18946    Grant(Grant),
18947    ImportForeignSchema(ImportForeignSchema),
18948    Insert(Insert),
18949    Listen(Listen),
18950    Load(Load),
18951    Lock(Lock),
18952    Merge(Merge),
18953    Move(Move),
18954    Notify(Notify),
18955    ParenSelect(ParenSelect),
18956    Prepare(Prepare),
18957    PrepareTransaction(PrepareTransaction),
18958    Reassign(Reassign),
18959    Refresh(Refresh),
18960    Reindex(Reindex),
18961    ReleaseSavepoint(ReleaseSavepoint),
18962    Repack(Repack),
18963    Reset(Reset),
18964    ResetSessionAuth(ResetSessionAuth),
18965    Revoke(Revoke),
18966    Rollback(Rollback),
18967    Savepoint(Savepoint),
18968    SecurityLabel(SecurityLabel),
18969    Select(Select),
18970    SelectInto(SelectInto),
18971    Set(Set),
18972    SetConstraints(SetConstraints),
18973    SetRole(SetRole),
18974    SetSessionAuth(SetSessionAuth),
18975    SetTransaction(SetTransaction),
18976    Show(Show),
18977    Table(Table),
18978    Truncate(Truncate),
18979    Unlisten(Unlisten),
18980    Update(Update),
18981    Vacuum(Vacuum),
18982    Values(Values),
18983}
18984
18985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18986pub enum TableArg {
18987    Column(Column),
18988    LikeClause(LikeClause),
18989    TableConstraint(TableConstraint),
18990}
18991
18992#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18993pub enum TableConstraint {
18994    CheckConstraint(CheckConstraint),
18995    ExcludeConstraint(ExcludeConstraint),
18996    ForeignKeyConstraint(ForeignKeyConstraint),
18997    PrimaryKeyConstraint(PrimaryKeyConstraint),
18998    UniqueConstraint(UniqueConstraint),
18999}
19000
19001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19002pub enum Timezone {
19003    WithTimezone(WithTimezone),
19004    WithoutTimezone(WithoutTimezone),
19005}
19006
19007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19008pub enum TransactionMode {
19009    Deferrable(Deferrable),
19010    NotDeferrable(NotDeferrable),
19011    ReadCommitted(ReadCommitted),
19012    ReadOnly(ReadOnly),
19013    ReadUncommitted(ReadUncommitted),
19014    ReadWrite(ReadWrite),
19015    RepeatableRead(RepeatableRead),
19016    Serializable(Serializable),
19017}
19018
19019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19020pub enum Type {
19021    ArrayType(ArrayType),
19022    BitType(BitType),
19023    CharType(CharType),
19024    DoubleType(DoubleType),
19025    ExprType(ExprType),
19026    IntervalType(IntervalType),
19027    PathType(PathType),
19028    PercentType(PercentType),
19029    TimeType(TimeType),
19030}
19031
19032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19033pub enum ValuePosition {
19034    AfterValue(AfterValue),
19035    BeforeValue(BeforeValue),
19036}
19037
19038#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19039pub enum WithQuery {
19040    CompoundSelect(CompoundSelect),
19041    Delete(Delete),
19042    Insert(Insert),
19043    Merge(Merge),
19044    ParenSelect(ParenSelect),
19045    Select(Select),
19046    Table(Table),
19047    Update(Update),
19048    Values(Values),
19049}
19050impl AstNode for AddAttribute {
19051    #[inline]
19052    fn can_cast(kind: SyntaxKind) -> bool {
19053        kind == SyntaxKind::ADD_ATTRIBUTE
19054    }
19055    #[inline]
19056    fn cast(syntax: SyntaxNode) -> Option<Self> {
19057        if Self::can_cast(syntax.kind()) {
19058            Some(Self { syntax })
19059        } else {
19060            None
19061        }
19062    }
19063    #[inline]
19064    fn syntax(&self) -> &SyntaxNode {
19065        &self.syntax
19066    }
19067}
19068impl AstNode for AddColumn {
19069    #[inline]
19070    fn can_cast(kind: SyntaxKind) -> bool {
19071        kind == SyntaxKind::ADD_COLUMN
19072    }
19073    #[inline]
19074    fn cast(syntax: SyntaxNode) -> Option<Self> {
19075        if Self::can_cast(syntax.kind()) {
19076            Some(Self { syntax })
19077        } else {
19078            None
19079        }
19080    }
19081    #[inline]
19082    fn syntax(&self) -> &SyntaxNode {
19083        &self.syntax
19084    }
19085}
19086impl AstNode for AddConstraint {
19087    #[inline]
19088    fn can_cast(kind: SyntaxKind) -> bool {
19089        kind == SyntaxKind::ADD_CONSTRAINT
19090    }
19091    #[inline]
19092    fn cast(syntax: SyntaxNode) -> Option<Self> {
19093        if Self::can_cast(syntax.kind()) {
19094            Some(Self { syntax })
19095        } else {
19096            None
19097        }
19098    }
19099    #[inline]
19100    fn syntax(&self) -> &SyntaxNode {
19101        &self.syntax
19102    }
19103}
19104impl AstNode for AddGenerated {
19105    #[inline]
19106    fn can_cast(kind: SyntaxKind) -> bool {
19107        kind == SyntaxKind::ADD_GENERATED
19108    }
19109    #[inline]
19110    fn cast(syntax: SyntaxNode) -> Option<Self> {
19111        if Self::can_cast(syntax.kind()) {
19112            Some(Self { syntax })
19113        } else {
19114            None
19115        }
19116    }
19117    #[inline]
19118    fn syntax(&self) -> &SyntaxNode {
19119        &self.syntax
19120    }
19121}
19122impl AstNode for AddLabel {
19123    #[inline]
19124    fn can_cast(kind: SyntaxKind) -> bool {
19125        kind == SyntaxKind::ADD_LABEL
19126    }
19127    #[inline]
19128    fn cast(syntax: SyntaxNode) -> Option<Self> {
19129        if Self::can_cast(syntax.kind()) {
19130            Some(Self { syntax })
19131        } else {
19132            None
19133        }
19134    }
19135    #[inline]
19136    fn syntax(&self) -> &SyntaxNode {
19137        &self.syntax
19138    }
19139}
19140impl AstNode for AddOpClassOptions {
19141    #[inline]
19142    fn can_cast(kind: SyntaxKind) -> bool {
19143        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19144    }
19145    #[inline]
19146    fn cast(syntax: SyntaxNode) -> Option<Self> {
19147        if Self::can_cast(syntax.kind()) {
19148            Some(Self { syntax })
19149        } else {
19150            None
19151        }
19152    }
19153    #[inline]
19154    fn syntax(&self) -> &SyntaxNode {
19155        &self.syntax
19156    }
19157}
19158impl AstNode for AddValue {
19159    #[inline]
19160    fn can_cast(kind: SyntaxKind) -> bool {
19161        kind == SyntaxKind::ADD_VALUE
19162    }
19163    #[inline]
19164    fn cast(syntax: SyntaxNode) -> Option<Self> {
19165        if Self::can_cast(syntax.kind()) {
19166            Some(Self { syntax })
19167        } else {
19168            None
19169        }
19170    }
19171    #[inline]
19172    fn syntax(&self) -> &SyntaxNode {
19173        &self.syntax
19174    }
19175}
19176impl AstNode for AddVertexEdgeLabelProperties {
19177    #[inline]
19178    fn can_cast(kind: SyntaxKind) -> bool {
19179        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19180    }
19181    #[inline]
19182    fn cast(syntax: SyntaxNode) -> Option<Self> {
19183        if Self::can_cast(syntax.kind()) {
19184            Some(Self { syntax })
19185        } else {
19186            None
19187        }
19188    }
19189    #[inline]
19190    fn syntax(&self) -> &SyntaxNode {
19191        &self.syntax
19192    }
19193}
19194impl AstNode for AddVertexEdgeTables {
19195    #[inline]
19196    fn can_cast(kind: SyntaxKind) -> bool {
19197        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
19198    }
19199    #[inline]
19200    fn cast(syntax: SyntaxNode) -> Option<Self> {
19201        if Self::can_cast(syntax.kind()) {
19202            Some(Self { syntax })
19203        } else {
19204            None
19205        }
19206    }
19207    #[inline]
19208    fn syntax(&self) -> &SyntaxNode {
19209        &self.syntax
19210    }
19211}
19212impl AstNode for AfterValue {
19213    #[inline]
19214    fn can_cast(kind: SyntaxKind) -> bool {
19215        kind == SyntaxKind::AFTER_VALUE
19216    }
19217    #[inline]
19218    fn cast(syntax: SyntaxNode) -> Option<Self> {
19219        if Self::can_cast(syntax.kind()) {
19220            Some(Self { syntax })
19221        } else {
19222            None
19223        }
19224    }
19225    #[inline]
19226    fn syntax(&self) -> &SyntaxNode {
19227        &self.syntax
19228    }
19229}
19230impl AstNode for Aggregate {
19231    #[inline]
19232    fn can_cast(kind: SyntaxKind) -> bool {
19233        kind == SyntaxKind::AGGREGATE
19234    }
19235    #[inline]
19236    fn cast(syntax: SyntaxNode) -> Option<Self> {
19237        if Self::can_cast(syntax.kind()) {
19238            Some(Self { syntax })
19239        } else {
19240            None
19241        }
19242    }
19243    #[inline]
19244    fn syntax(&self) -> &SyntaxNode {
19245        &self.syntax
19246    }
19247}
19248impl AstNode for Alias {
19249    #[inline]
19250    fn can_cast(kind: SyntaxKind) -> bool {
19251        kind == SyntaxKind::ALIAS
19252    }
19253    #[inline]
19254    fn cast(syntax: SyntaxNode) -> Option<Self> {
19255        if Self::can_cast(syntax.kind()) {
19256            Some(Self { syntax })
19257        } else {
19258            None
19259        }
19260    }
19261    #[inline]
19262    fn syntax(&self) -> &SyntaxNode {
19263        &self.syntax
19264    }
19265}
19266impl AstNode for AllFn {
19267    #[inline]
19268    fn can_cast(kind: SyntaxKind) -> bool {
19269        kind == SyntaxKind::ALL_FN
19270    }
19271    #[inline]
19272    fn cast(syntax: SyntaxNode) -> Option<Self> {
19273        if Self::can_cast(syntax.kind()) {
19274            Some(Self { syntax })
19275        } else {
19276            None
19277        }
19278    }
19279    #[inline]
19280    fn syntax(&self) -> &SyntaxNode {
19281        &self.syntax
19282    }
19283}
19284impl AstNode for AllProperties {
19285    #[inline]
19286    fn can_cast(kind: SyntaxKind) -> bool {
19287        kind == SyntaxKind::ALL_PROPERTIES
19288    }
19289    #[inline]
19290    fn cast(syntax: SyntaxNode) -> Option<Self> {
19291        if Self::can_cast(syntax.kind()) {
19292            Some(Self { syntax })
19293        } else {
19294            None
19295        }
19296    }
19297    #[inline]
19298    fn syntax(&self) -> &SyntaxNode {
19299        &self.syntax
19300    }
19301}
19302impl AstNode for AlterAggregate {
19303    #[inline]
19304    fn can_cast(kind: SyntaxKind) -> bool {
19305        kind == SyntaxKind::ALTER_AGGREGATE
19306    }
19307    #[inline]
19308    fn cast(syntax: SyntaxNode) -> Option<Self> {
19309        if Self::can_cast(syntax.kind()) {
19310            Some(Self { syntax })
19311        } else {
19312            None
19313        }
19314    }
19315    #[inline]
19316    fn syntax(&self) -> &SyntaxNode {
19317        &self.syntax
19318    }
19319}
19320impl AstNode for AlterAttribute {
19321    #[inline]
19322    fn can_cast(kind: SyntaxKind) -> bool {
19323        kind == SyntaxKind::ALTER_ATTRIBUTE
19324    }
19325    #[inline]
19326    fn cast(syntax: SyntaxNode) -> Option<Self> {
19327        if Self::can_cast(syntax.kind()) {
19328            Some(Self { syntax })
19329        } else {
19330            None
19331        }
19332    }
19333    #[inline]
19334    fn syntax(&self) -> &SyntaxNode {
19335        &self.syntax
19336    }
19337}
19338impl AstNode for AlterCollation {
19339    #[inline]
19340    fn can_cast(kind: SyntaxKind) -> bool {
19341        kind == SyntaxKind::ALTER_COLLATION
19342    }
19343    #[inline]
19344    fn cast(syntax: SyntaxNode) -> Option<Self> {
19345        if Self::can_cast(syntax.kind()) {
19346            Some(Self { syntax })
19347        } else {
19348            None
19349        }
19350    }
19351    #[inline]
19352    fn syntax(&self) -> &SyntaxNode {
19353        &self.syntax
19354    }
19355}
19356impl AstNode for AlterColumn {
19357    #[inline]
19358    fn can_cast(kind: SyntaxKind) -> bool {
19359        kind == SyntaxKind::ALTER_COLUMN
19360    }
19361    #[inline]
19362    fn cast(syntax: SyntaxNode) -> Option<Self> {
19363        if Self::can_cast(syntax.kind()) {
19364            Some(Self { syntax })
19365        } else {
19366            None
19367        }
19368    }
19369    #[inline]
19370    fn syntax(&self) -> &SyntaxNode {
19371        &self.syntax
19372    }
19373}
19374impl AstNode for AlterConstraint {
19375    #[inline]
19376    fn can_cast(kind: SyntaxKind) -> bool {
19377        kind == SyntaxKind::ALTER_CONSTRAINT
19378    }
19379    #[inline]
19380    fn cast(syntax: SyntaxNode) -> Option<Self> {
19381        if Self::can_cast(syntax.kind()) {
19382            Some(Self { syntax })
19383        } else {
19384            None
19385        }
19386    }
19387    #[inline]
19388    fn syntax(&self) -> &SyntaxNode {
19389        &self.syntax
19390    }
19391}
19392impl AstNode for AlterConversion {
19393    #[inline]
19394    fn can_cast(kind: SyntaxKind) -> bool {
19395        kind == SyntaxKind::ALTER_CONVERSION
19396    }
19397    #[inline]
19398    fn cast(syntax: SyntaxNode) -> Option<Self> {
19399        if Self::can_cast(syntax.kind()) {
19400            Some(Self { syntax })
19401        } else {
19402            None
19403        }
19404    }
19405    #[inline]
19406    fn syntax(&self) -> &SyntaxNode {
19407        &self.syntax
19408    }
19409}
19410impl AstNode for AlterDatabase {
19411    #[inline]
19412    fn can_cast(kind: SyntaxKind) -> bool {
19413        kind == SyntaxKind::ALTER_DATABASE
19414    }
19415    #[inline]
19416    fn cast(syntax: SyntaxNode) -> Option<Self> {
19417        if Self::can_cast(syntax.kind()) {
19418            Some(Self { syntax })
19419        } else {
19420            None
19421        }
19422    }
19423    #[inline]
19424    fn syntax(&self) -> &SyntaxNode {
19425        &self.syntax
19426    }
19427}
19428impl AstNode for AlterDefaultPrivileges {
19429    #[inline]
19430    fn can_cast(kind: SyntaxKind) -> bool {
19431        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
19432    }
19433    #[inline]
19434    fn cast(syntax: SyntaxNode) -> Option<Self> {
19435        if Self::can_cast(syntax.kind()) {
19436            Some(Self { syntax })
19437        } else {
19438            None
19439        }
19440    }
19441    #[inline]
19442    fn syntax(&self) -> &SyntaxNode {
19443        &self.syntax
19444    }
19445}
19446impl AstNode for AlterDomain {
19447    #[inline]
19448    fn can_cast(kind: SyntaxKind) -> bool {
19449        kind == SyntaxKind::ALTER_DOMAIN
19450    }
19451    #[inline]
19452    fn cast(syntax: SyntaxNode) -> Option<Self> {
19453        if Self::can_cast(syntax.kind()) {
19454            Some(Self { syntax })
19455        } else {
19456            None
19457        }
19458    }
19459    #[inline]
19460    fn syntax(&self) -> &SyntaxNode {
19461        &self.syntax
19462    }
19463}
19464impl AstNode for AlterEventTrigger {
19465    #[inline]
19466    fn can_cast(kind: SyntaxKind) -> bool {
19467        kind == SyntaxKind::ALTER_EVENT_TRIGGER
19468    }
19469    #[inline]
19470    fn cast(syntax: SyntaxNode) -> Option<Self> {
19471        if Self::can_cast(syntax.kind()) {
19472            Some(Self { syntax })
19473        } else {
19474            None
19475        }
19476    }
19477    #[inline]
19478    fn syntax(&self) -> &SyntaxNode {
19479        &self.syntax
19480    }
19481}
19482impl AstNode for AlterExtension {
19483    #[inline]
19484    fn can_cast(kind: SyntaxKind) -> bool {
19485        kind == SyntaxKind::ALTER_EXTENSION
19486    }
19487    #[inline]
19488    fn cast(syntax: SyntaxNode) -> Option<Self> {
19489        if Self::can_cast(syntax.kind()) {
19490            Some(Self { syntax })
19491        } else {
19492            None
19493        }
19494    }
19495    #[inline]
19496    fn syntax(&self) -> &SyntaxNode {
19497        &self.syntax
19498    }
19499}
19500impl AstNode for AlterForeignDataWrapper {
19501    #[inline]
19502    fn can_cast(kind: SyntaxKind) -> bool {
19503        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
19504    }
19505    #[inline]
19506    fn cast(syntax: SyntaxNode) -> Option<Self> {
19507        if Self::can_cast(syntax.kind()) {
19508            Some(Self { syntax })
19509        } else {
19510            None
19511        }
19512    }
19513    #[inline]
19514    fn syntax(&self) -> &SyntaxNode {
19515        &self.syntax
19516    }
19517}
19518impl AstNode for AlterForeignTable {
19519    #[inline]
19520    fn can_cast(kind: SyntaxKind) -> bool {
19521        kind == SyntaxKind::ALTER_FOREIGN_TABLE
19522    }
19523    #[inline]
19524    fn cast(syntax: SyntaxNode) -> Option<Self> {
19525        if Self::can_cast(syntax.kind()) {
19526            Some(Self { syntax })
19527        } else {
19528            None
19529        }
19530    }
19531    #[inline]
19532    fn syntax(&self) -> &SyntaxNode {
19533        &self.syntax
19534    }
19535}
19536impl AstNode for AlterFunction {
19537    #[inline]
19538    fn can_cast(kind: SyntaxKind) -> bool {
19539        kind == SyntaxKind::ALTER_FUNCTION
19540    }
19541    #[inline]
19542    fn cast(syntax: SyntaxNode) -> Option<Self> {
19543        if Self::can_cast(syntax.kind()) {
19544            Some(Self { syntax })
19545        } else {
19546            None
19547        }
19548    }
19549    #[inline]
19550    fn syntax(&self) -> &SyntaxNode {
19551        &self.syntax
19552    }
19553}
19554impl AstNode for AlterGroup {
19555    #[inline]
19556    fn can_cast(kind: SyntaxKind) -> bool {
19557        kind == SyntaxKind::ALTER_GROUP
19558    }
19559    #[inline]
19560    fn cast(syntax: SyntaxNode) -> Option<Self> {
19561        if Self::can_cast(syntax.kind()) {
19562            Some(Self { syntax })
19563        } else {
19564            None
19565        }
19566    }
19567    #[inline]
19568    fn syntax(&self) -> &SyntaxNode {
19569        &self.syntax
19570    }
19571}
19572impl AstNode for AlterIndex {
19573    #[inline]
19574    fn can_cast(kind: SyntaxKind) -> bool {
19575        kind == SyntaxKind::ALTER_INDEX
19576    }
19577    #[inline]
19578    fn cast(syntax: SyntaxNode) -> Option<Self> {
19579        if Self::can_cast(syntax.kind()) {
19580            Some(Self { syntax })
19581        } else {
19582            None
19583        }
19584    }
19585    #[inline]
19586    fn syntax(&self) -> &SyntaxNode {
19587        &self.syntax
19588    }
19589}
19590impl AstNode for AlterLanguage {
19591    #[inline]
19592    fn can_cast(kind: SyntaxKind) -> bool {
19593        kind == SyntaxKind::ALTER_LANGUAGE
19594    }
19595    #[inline]
19596    fn cast(syntax: SyntaxNode) -> Option<Self> {
19597        if Self::can_cast(syntax.kind()) {
19598            Some(Self { syntax })
19599        } else {
19600            None
19601        }
19602    }
19603    #[inline]
19604    fn syntax(&self) -> &SyntaxNode {
19605        &self.syntax
19606    }
19607}
19608impl AstNode for AlterLargeObject {
19609    #[inline]
19610    fn can_cast(kind: SyntaxKind) -> bool {
19611        kind == SyntaxKind::ALTER_LARGE_OBJECT
19612    }
19613    #[inline]
19614    fn cast(syntax: SyntaxNode) -> Option<Self> {
19615        if Self::can_cast(syntax.kind()) {
19616            Some(Self { syntax })
19617        } else {
19618            None
19619        }
19620    }
19621    #[inline]
19622    fn syntax(&self) -> &SyntaxNode {
19623        &self.syntax
19624    }
19625}
19626impl AstNode for AlterMaterializedView {
19627    #[inline]
19628    fn can_cast(kind: SyntaxKind) -> bool {
19629        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
19630    }
19631    #[inline]
19632    fn cast(syntax: SyntaxNode) -> Option<Self> {
19633        if Self::can_cast(syntax.kind()) {
19634            Some(Self { syntax })
19635        } else {
19636            None
19637        }
19638    }
19639    #[inline]
19640    fn syntax(&self) -> &SyntaxNode {
19641        &self.syntax
19642    }
19643}
19644impl AstNode for AlterOperator {
19645    #[inline]
19646    fn can_cast(kind: SyntaxKind) -> bool {
19647        kind == SyntaxKind::ALTER_OPERATOR
19648    }
19649    #[inline]
19650    fn cast(syntax: SyntaxNode) -> Option<Self> {
19651        if Self::can_cast(syntax.kind()) {
19652            Some(Self { syntax })
19653        } else {
19654            None
19655        }
19656    }
19657    #[inline]
19658    fn syntax(&self) -> &SyntaxNode {
19659        &self.syntax
19660    }
19661}
19662impl AstNode for AlterOperatorClass {
19663    #[inline]
19664    fn can_cast(kind: SyntaxKind) -> bool {
19665        kind == SyntaxKind::ALTER_OPERATOR_CLASS
19666    }
19667    #[inline]
19668    fn cast(syntax: SyntaxNode) -> Option<Self> {
19669        if Self::can_cast(syntax.kind()) {
19670            Some(Self { syntax })
19671        } else {
19672            None
19673        }
19674    }
19675    #[inline]
19676    fn syntax(&self) -> &SyntaxNode {
19677        &self.syntax
19678    }
19679}
19680impl AstNode for AlterOperatorFamily {
19681    #[inline]
19682    fn can_cast(kind: SyntaxKind) -> bool {
19683        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
19684    }
19685    #[inline]
19686    fn cast(syntax: SyntaxNode) -> Option<Self> {
19687        if Self::can_cast(syntax.kind()) {
19688            Some(Self { syntax })
19689        } else {
19690            None
19691        }
19692    }
19693    #[inline]
19694    fn syntax(&self) -> &SyntaxNode {
19695        &self.syntax
19696    }
19697}
19698impl AstNode for AlterOption {
19699    #[inline]
19700    fn can_cast(kind: SyntaxKind) -> bool {
19701        kind == SyntaxKind::ALTER_OPTION
19702    }
19703    #[inline]
19704    fn cast(syntax: SyntaxNode) -> Option<Self> {
19705        if Self::can_cast(syntax.kind()) {
19706            Some(Self { syntax })
19707        } else {
19708            None
19709        }
19710    }
19711    #[inline]
19712    fn syntax(&self) -> &SyntaxNode {
19713        &self.syntax
19714    }
19715}
19716impl AstNode for AlterOptionList {
19717    #[inline]
19718    fn can_cast(kind: SyntaxKind) -> bool {
19719        kind == SyntaxKind::ALTER_OPTION_LIST
19720    }
19721    #[inline]
19722    fn cast(syntax: SyntaxNode) -> Option<Self> {
19723        if Self::can_cast(syntax.kind()) {
19724            Some(Self { syntax })
19725        } else {
19726            None
19727        }
19728    }
19729    #[inline]
19730    fn syntax(&self) -> &SyntaxNode {
19731        &self.syntax
19732    }
19733}
19734impl AstNode for AlterPolicy {
19735    #[inline]
19736    fn can_cast(kind: SyntaxKind) -> bool {
19737        kind == SyntaxKind::ALTER_POLICY
19738    }
19739    #[inline]
19740    fn cast(syntax: SyntaxNode) -> Option<Self> {
19741        if Self::can_cast(syntax.kind()) {
19742            Some(Self { syntax })
19743        } else {
19744            None
19745        }
19746    }
19747    #[inline]
19748    fn syntax(&self) -> &SyntaxNode {
19749        &self.syntax
19750    }
19751}
19752impl AstNode for AlterProcedure {
19753    #[inline]
19754    fn can_cast(kind: SyntaxKind) -> bool {
19755        kind == SyntaxKind::ALTER_PROCEDURE
19756    }
19757    #[inline]
19758    fn cast(syntax: SyntaxNode) -> Option<Self> {
19759        if Self::can_cast(syntax.kind()) {
19760            Some(Self { syntax })
19761        } else {
19762            None
19763        }
19764    }
19765    #[inline]
19766    fn syntax(&self) -> &SyntaxNode {
19767        &self.syntax
19768    }
19769}
19770impl AstNode for AlterPropertyGraph {
19771    #[inline]
19772    fn can_cast(kind: SyntaxKind) -> bool {
19773        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
19774    }
19775    #[inline]
19776    fn cast(syntax: SyntaxNode) -> Option<Self> {
19777        if Self::can_cast(syntax.kind()) {
19778            Some(Self { syntax })
19779        } else {
19780            None
19781        }
19782    }
19783    #[inline]
19784    fn syntax(&self) -> &SyntaxNode {
19785        &self.syntax
19786    }
19787}
19788impl AstNode for AlterPublication {
19789    #[inline]
19790    fn can_cast(kind: SyntaxKind) -> bool {
19791        kind == SyntaxKind::ALTER_PUBLICATION
19792    }
19793    #[inline]
19794    fn cast(syntax: SyntaxNode) -> Option<Self> {
19795        if Self::can_cast(syntax.kind()) {
19796            Some(Self { syntax })
19797        } else {
19798            None
19799        }
19800    }
19801    #[inline]
19802    fn syntax(&self) -> &SyntaxNode {
19803        &self.syntax
19804    }
19805}
19806impl AstNode for AlterRole {
19807    #[inline]
19808    fn can_cast(kind: SyntaxKind) -> bool {
19809        kind == SyntaxKind::ALTER_ROLE
19810    }
19811    #[inline]
19812    fn cast(syntax: SyntaxNode) -> Option<Self> {
19813        if Self::can_cast(syntax.kind()) {
19814            Some(Self { syntax })
19815        } else {
19816            None
19817        }
19818    }
19819    #[inline]
19820    fn syntax(&self) -> &SyntaxNode {
19821        &self.syntax
19822    }
19823}
19824impl AstNode for AlterRoutine {
19825    #[inline]
19826    fn can_cast(kind: SyntaxKind) -> bool {
19827        kind == SyntaxKind::ALTER_ROUTINE
19828    }
19829    #[inline]
19830    fn cast(syntax: SyntaxNode) -> Option<Self> {
19831        if Self::can_cast(syntax.kind()) {
19832            Some(Self { syntax })
19833        } else {
19834            None
19835        }
19836    }
19837    #[inline]
19838    fn syntax(&self) -> &SyntaxNode {
19839        &self.syntax
19840    }
19841}
19842impl AstNode for AlterRule {
19843    #[inline]
19844    fn can_cast(kind: SyntaxKind) -> bool {
19845        kind == SyntaxKind::ALTER_RULE
19846    }
19847    #[inline]
19848    fn cast(syntax: SyntaxNode) -> Option<Self> {
19849        if Self::can_cast(syntax.kind()) {
19850            Some(Self { syntax })
19851        } else {
19852            None
19853        }
19854    }
19855    #[inline]
19856    fn syntax(&self) -> &SyntaxNode {
19857        &self.syntax
19858    }
19859}
19860impl AstNode for AlterSchema {
19861    #[inline]
19862    fn can_cast(kind: SyntaxKind) -> bool {
19863        kind == SyntaxKind::ALTER_SCHEMA
19864    }
19865    #[inline]
19866    fn cast(syntax: SyntaxNode) -> Option<Self> {
19867        if Self::can_cast(syntax.kind()) {
19868            Some(Self { syntax })
19869        } else {
19870            None
19871        }
19872    }
19873    #[inline]
19874    fn syntax(&self) -> &SyntaxNode {
19875        &self.syntax
19876    }
19877}
19878impl AstNode for AlterSequence {
19879    #[inline]
19880    fn can_cast(kind: SyntaxKind) -> bool {
19881        kind == SyntaxKind::ALTER_SEQUENCE
19882    }
19883    #[inline]
19884    fn cast(syntax: SyntaxNode) -> Option<Self> {
19885        if Self::can_cast(syntax.kind()) {
19886            Some(Self { syntax })
19887        } else {
19888            None
19889        }
19890    }
19891    #[inline]
19892    fn syntax(&self) -> &SyntaxNode {
19893        &self.syntax
19894    }
19895}
19896impl AstNode for AlterServer {
19897    #[inline]
19898    fn can_cast(kind: SyntaxKind) -> bool {
19899        kind == SyntaxKind::ALTER_SERVER
19900    }
19901    #[inline]
19902    fn cast(syntax: SyntaxNode) -> Option<Self> {
19903        if Self::can_cast(syntax.kind()) {
19904            Some(Self { syntax })
19905        } else {
19906            None
19907        }
19908    }
19909    #[inline]
19910    fn syntax(&self) -> &SyntaxNode {
19911        &self.syntax
19912    }
19913}
19914impl AstNode for AlterSetStatistics {
19915    #[inline]
19916    fn can_cast(kind: SyntaxKind) -> bool {
19917        kind == SyntaxKind::ALTER_SET_STATISTICS
19918    }
19919    #[inline]
19920    fn cast(syntax: SyntaxNode) -> Option<Self> {
19921        if Self::can_cast(syntax.kind()) {
19922            Some(Self { syntax })
19923        } else {
19924            None
19925        }
19926    }
19927    #[inline]
19928    fn syntax(&self) -> &SyntaxNode {
19929        &self.syntax
19930    }
19931}
19932impl AstNode for AlterStatistics {
19933    #[inline]
19934    fn can_cast(kind: SyntaxKind) -> bool {
19935        kind == SyntaxKind::ALTER_STATISTICS
19936    }
19937    #[inline]
19938    fn cast(syntax: SyntaxNode) -> Option<Self> {
19939        if Self::can_cast(syntax.kind()) {
19940            Some(Self { syntax })
19941        } else {
19942            None
19943        }
19944    }
19945    #[inline]
19946    fn syntax(&self) -> &SyntaxNode {
19947        &self.syntax
19948    }
19949}
19950impl AstNode for AlterSubscription {
19951    #[inline]
19952    fn can_cast(kind: SyntaxKind) -> bool {
19953        kind == SyntaxKind::ALTER_SUBSCRIPTION
19954    }
19955    #[inline]
19956    fn cast(syntax: SyntaxNode) -> Option<Self> {
19957        if Self::can_cast(syntax.kind()) {
19958            Some(Self { syntax })
19959        } else {
19960            None
19961        }
19962    }
19963    #[inline]
19964    fn syntax(&self) -> &SyntaxNode {
19965        &self.syntax
19966    }
19967}
19968impl AstNode for AlterSystem {
19969    #[inline]
19970    fn can_cast(kind: SyntaxKind) -> bool {
19971        kind == SyntaxKind::ALTER_SYSTEM
19972    }
19973    #[inline]
19974    fn cast(syntax: SyntaxNode) -> Option<Self> {
19975        if Self::can_cast(syntax.kind()) {
19976            Some(Self { syntax })
19977        } else {
19978            None
19979        }
19980    }
19981    #[inline]
19982    fn syntax(&self) -> &SyntaxNode {
19983        &self.syntax
19984    }
19985}
19986impl AstNode for AlterTable {
19987    #[inline]
19988    fn can_cast(kind: SyntaxKind) -> bool {
19989        kind == SyntaxKind::ALTER_TABLE
19990    }
19991    #[inline]
19992    fn cast(syntax: SyntaxNode) -> Option<Self> {
19993        if Self::can_cast(syntax.kind()) {
19994            Some(Self { syntax })
19995        } else {
19996            None
19997        }
19998    }
19999    #[inline]
20000    fn syntax(&self) -> &SyntaxNode {
20001        &self.syntax
20002    }
20003}
20004impl AstNode for AlterTablespace {
20005    #[inline]
20006    fn can_cast(kind: SyntaxKind) -> bool {
20007        kind == SyntaxKind::ALTER_TABLESPACE
20008    }
20009    #[inline]
20010    fn cast(syntax: SyntaxNode) -> Option<Self> {
20011        if Self::can_cast(syntax.kind()) {
20012            Some(Self { syntax })
20013        } else {
20014            None
20015        }
20016    }
20017    #[inline]
20018    fn syntax(&self) -> &SyntaxNode {
20019        &self.syntax
20020    }
20021}
20022impl AstNode for AlterTextSearchConfiguration {
20023    #[inline]
20024    fn can_cast(kind: SyntaxKind) -> bool {
20025        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
20026    }
20027    #[inline]
20028    fn cast(syntax: SyntaxNode) -> Option<Self> {
20029        if Self::can_cast(syntax.kind()) {
20030            Some(Self { syntax })
20031        } else {
20032            None
20033        }
20034    }
20035    #[inline]
20036    fn syntax(&self) -> &SyntaxNode {
20037        &self.syntax
20038    }
20039}
20040impl AstNode for AlterTextSearchDictionary {
20041    #[inline]
20042    fn can_cast(kind: SyntaxKind) -> bool {
20043        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
20044    }
20045    #[inline]
20046    fn cast(syntax: SyntaxNode) -> Option<Self> {
20047        if Self::can_cast(syntax.kind()) {
20048            Some(Self { syntax })
20049        } else {
20050            None
20051        }
20052    }
20053    #[inline]
20054    fn syntax(&self) -> &SyntaxNode {
20055        &self.syntax
20056    }
20057}
20058impl AstNode for AlterTextSearchParser {
20059    #[inline]
20060    fn can_cast(kind: SyntaxKind) -> bool {
20061        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
20062    }
20063    #[inline]
20064    fn cast(syntax: SyntaxNode) -> Option<Self> {
20065        if Self::can_cast(syntax.kind()) {
20066            Some(Self { syntax })
20067        } else {
20068            None
20069        }
20070    }
20071    #[inline]
20072    fn syntax(&self) -> &SyntaxNode {
20073        &self.syntax
20074    }
20075}
20076impl AstNode for AlterTextSearchTemplate {
20077    #[inline]
20078    fn can_cast(kind: SyntaxKind) -> bool {
20079        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
20080    }
20081    #[inline]
20082    fn cast(syntax: SyntaxNode) -> Option<Self> {
20083        if Self::can_cast(syntax.kind()) {
20084            Some(Self { syntax })
20085        } else {
20086            None
20087        }
20088    }
20089    #[inline]
20090    fn syntax(&self) -> &SyntaxNode {
20091        &self.syntax
20092    }
20093}
20094impl AstNode for AlterTrigger {
20095    #[inline]
20096    fn can_cast(kind: SyntaxKind) -> bool {
20097        kind == SyntaxKind::ALTER_TRIGGER
20098    }
20099    #[inline]
20100    fn cast(syntax: SyntaxNode) -> Option<Self> {
20101        if Self::can_cast(syntax.kind()) {
20102            Some(Self { syntax })
20103        } else {
20104            None
20105        }
20106    }
20107    #[inline]
20108    fn syntax(&self) -> &SyntaxNode {
20109        &self.syntax
20110    }
20111}
20112impl AstNode for AlterType {
20113    #[inline]
20114    fn can_cast(kind: SyntaxKind) -> bool {
20115        kind == SyntaxKind::ALTER_TYPE
20116    }
20117    #[inline]
20118    fn cast(syntax: SyntaxNode) -> Option<Self> {
20119        if Self::can_cast(syntax.kind()) {
20120            Some(Self { syntax })
20121        } else {
20122            None
20123        }
20124    }
20125    #[inline]
20126    fn syntax(&self) -> &SyntaxNode {
20127        &self.syntax
20128    }
20129}
20130impl AstNode for AlterUser {
20131    #[inline]
20132    fn can_cast(kind: SyntaxKind) -> bool {
20133        kind == SyntaxKind::ALTER_USER
20134    }
20135    #[inline]
20136    fn cast(syntax: SyntaxNode) -> Option<Self> {
20137        if Self::can_cast(syntax.kind()) {
20138            Some(Self { syntax })
20139        } else {
20140            None
20141        }
20142    }
20143    #[inline]
20144    fn syntax(&self) -> &SyntaxNode {
20145        &self.syntax
20146    }
20147}
20148impl AstNode for AlterUserMapping {
20149    #[inline]
20150    fn can_cast(kind: SyntaxKind) -> bool {
20151        kind == SyntaxKind::ALTER_USER_MAPPING
20152    }
20153    #[inline]
20154    fn cast(syntax: SyntaxNode) -> Option<Self> {
20155        if Self::can_cast(syntax.kind()) {
20156            Some(Self { syntax })
20157        } else {
20158            None
20159        }
20160    }
20161    #[inline]
20162    fn syntax(&self) -> &SyntaxNode {
20163        &self.syntax
20164    }
20165}
20166impl AstNode for AlterVertexEdgeLabels {
20167    #[inline]
20168    fn can_cast(kind: SyntaxKind) -> bool {
20169        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20170    }
20171    #[inline]
20172    fn cast(syntax: SyntaxNode) -> Option<Self> {
20173        if Self::can_cast(syntax.kind()) {
20174            Some(Self { syntax })
20175        } else {
20176            None
20177        }
20178    }
20179    #[inline]
20180    fn syntax(&self) -> &SyntaxNode {
20181        &self.syntax
20182    }
20183}
20184impl AstNode for AlterView {
20185    #[inline]
20186    fn can_cast(kind: SyntaxKind) -> bool {
20187        kind == SyntaxKind::ALTER_VIEW
20188    }
20189    #[inline]
20190    fn cast(syntax: SyntaxNode) -> Option<Self> {
20191        if Self::can_cast(syntax.kind()) {
20192            Some(Self { syntax })
20193        } else {
20194            None
20195        }
20196    }
20197    #[inline]
20198    fn syntax(&self) -> &SyntaxNode {
20199        &self.syntax
20200    }
20201}
20202impl AstNode for Analyze {
20203    #[inline]
20204    fn can_cast(kind: SyntaxKind) -> bool {
20205        kind == SyntaxKind::ANALYZE
20206    }
20207    #[inline]
20208    fn cast(syntax: SyntaxNode) -> Option<Self> {
20209        if Self::can_cast(syntax.kind()) {
20210            Some(Self { syntax })
20211        } else {
20212            None
20213        }
20214    }
20215    #[inline]
20216    fn syntax(&self) -> &SyntaxNode {
20217        &self.syntax
20218    }
20219}
20220impl AstNode for AnyFn {
20221    #[inline]
20222    fn can_cast(kind: SyntaxKind) -> bool {
20223        kind == SyntaxKind::ANY_FN
20224    }
20225    #[inline]
20226    fn cast(syntax: SyntaxNode) -> Option<Self> {
20227        if Self::can_cast(syntax.kind()) {
20228            Some(Self { syntax })
20229        } else {
20230            None
20231        }
20232    }
20233    #[inline]
20234    fn syntax(&self) -> &SyntaxNode {
20235        &self.syntax
20236    }
20237}
20238impl AstNode for Arg {
20239    #[inline]
20240    fn can_cast(kind: SyntaxKind) -> bool {
20241        kind == SyntaxKind::ARG
20242    }
20243    #[inline]
20244    fn cast(syntax: SyntaxNode) -> Option<Self> {
20245        if Self::can_cast(syntax.kind()) {
20246            Some(Self { syntax })
20247        } else {
20248            None
20249        }
20250    }
20251    #[inline]
20252    fn syntax(&self) -> &SyntaxNode {
20253        &self.syntax
20254    }
20255}
20256impl AstNode for ArgList {
20257    #[inline]
20258    fn can_cast(kind: SyntaxKind) -> bool {
20259        kind == SyntaxKind::ARG_LIST
20260    }
20261    #[inline]
20262    fn cast(syntax: SyntaxNode) -> Option<Self> {
20263        if Self::can_cast(syntax.kind()) {
20264            Some(Self { syntax })
20265        } else {
20266            None
20267        }
20268    }
20269    #[inline]
20270    fn syntax(&self) -> &SyntaxNode {
20271        &self.syntax
20272    }
20273}
20274impl AstNode for ArrayExpr {
20275    #[inline]
20276    fn can_cast(kind: SyntaxKind) -> bool {
20277        kind == SyntaxKind::ARRAY_EXPR
20278    }
20279    #[inline]
20280    fn cast(syntax: SyntaxNode) -> Option<Self> {
20281        if Self::can_cast(syntax.kind()) {
20282            Some(Self { syntax })
20283        } else {
20284            None
20285        }
20286    }
20287    #[inline]
20288    fn syntax(&self) -> &SyntaxNode {
20289        &self.syntax
20290    }
20291}
20292impl AstNode for ArrayType {
20293    #[inline]
20294    fn can_cast(kind: SyntaxKind) -> bool {
20295        kind == SyntaxKind::ARRAY_TYPE
20296    }
20297    #[inline]
20298    fn cast(syntax: SyntaxNode) -> Option<Self> {
20299        if Self::can_cast(syntax.kind()) {
20300            Some(Self { syntax })
20301        } else {
20302            None
20303        }
20304    }
20305    #[inline]
20306    fn syntax(&self) -> &SyntaxNode {
20307        &self.syntax
20308    }
20309}
20310impl AstNode for AsFuncOption {
20311    #[inline]
20312    fn can_cast(kind: SyntaxKind) -> bool {
20313        kind == SyntaxKind::AS_FUNC_OPTION
20314    }
20315    #[inline]
20316    fn cast(syntax: SyntaxNode) -> Option<Self> {
20317        if Self::can_cast(syntax.kind()) {
20318            Some(Self { syntax })
20319        } else {
20320            None
20321        }
20322    }
20323    #[inline]
20324    fn syntax(&self) -> &SyntaxNode {
20325        &self.syntax
20326    }
20327}
20328impl AstNode for AsName {
20329    #[inline]
20330    fn can_cast(kind: SyntaxKind) -> bool {
20331        kind == SyntaxKind::AS_NAME
20332    }
20333    #[inline]
20334    fn cast(syntax: SyntaxNode) -> Option<Self> {
20335        if Self::can_cast(syntax.kind()) {
20336            Some(Self { syntax })
20337        } else {
20338            None
20339        }
20340    }
20341    #[inline]
20342    fn syntax(&self) -> &SyntaxNode {
20343        &self.syntax
20344    }
20345}
20346impl AstNode for AsPolicyType {
20347    #[inline]
20348    fn can_cast(kind: SyntaxKind) -> bool {
20349        kind == SyntaxKind::AS_POLICY_TYPE
20350    }
20351    #[inline]
20352    fn cast(syntax: SyntaxNode) -> Option<Self> {
20353        if Self::can_cast(syntax.kind()) {
20354            Some(Self { syntax })
20355        } else {
20356            None
20357        }
20358    }
20359    #[inline]
20360    fn syntax(&self) -> &SyntaxNode {
20361        &self.syntax
20362    }
20363}
20364impl AstNode for AtTimeZone {
20365    #[inline]
20366    fn can_cast(kind: SyntaxKind) -> bool {
20367        kind == SyntaxKind::AT_TIME_ZONE
20368    }
20369    #[inline]
20370    fn cast(syntax: SyntaxNode) -> Option<Self> {
20371        if Self::can_cast(syntax.kind()) {
20372            Some(Self { syntax })
20373        } else {
20374            None
20375        }
20376    }
20377    #[inline]
20378    fn syntax(&self) -> &SyntaxNode {
20379        &self.syntax
20380    }
20381}
20382impl AstNode for AttachPartition {
20383    #[inline]
20384    fn can_cast(kind: SyntaxKind) -> bool {
20385        kind == SyntaxKind::ATTACH_PARTITION
20386    }
20387    #[inline]
20388    fn cast(syntax: SyntaxNode) -> Option<Self> {
20389        if Self::can_cast(syntax.kind()) {
20390            Some(Self { syntax })
20391        } else {
20392            None
20393        }
20394    }
20395    #[inline]
20396    fn syntax(&self) -> &SyntaxNode {
20397        &self.syntax
20398    }
20399}
20400impl AstNode for AttributeList {
20401    #[inline]
20402    fn can_cast(kind: SyntaxKind) -> bool {
20403        kind == SyntaxKind::ATTRIBUTE_LIST
20404    }
20405    #[inline]
20406    fn cast(syntax: SyntaxNode) -> Option<Self> {
20407        if Self::can_cast(syntax.kind()) {
20408            Some(Self { syntax })
20409        } else {
20410            None
20411        }
20412    }
20413    #[inline]
20414    fn syntax(&self) -> &SyntaxNode {
20415        &self.syntax
20416    }
20417}
20418impl AstNode for AttributeOption {
20419    #[inline]
20420    fn can_cast(kind: SyntaxKind) -> bool {
20421        kind == SyntaxKind::ATTRIBUTE_OPTION
20422    }
20423    #[inline]
20424    fn cast(syntax: SyntaxNode) -> Option<Self> {
20425        if Self::can_cast(syntax.kind()) {
20426            Some(Self { syntax })
20427        } else {
20428            None
20429        }
20430    }
20431    #[inline]
20432    fn syntax(&self) -> &SyntaxNode {
20433        &self.syntax
20434    }
20435}
20436impl AstNode for AttributeValue {
20437    #[inline]
20438    fn can_cast(kind: SyntaxKind) -> bool {
20439        kind == SyntaxKind::ATTRIBUTE_VALUE
20440    }
20441    #[inline]
20442    fn cast(syntax: SyntaxNode) -> Option<Self> {
20443        if Self::can_cast(syntax.kind()) {
20444            Some(Self { syntax })
20445        } else {
20446            None
20447        }
20448    }
20449    #[inline]
20450    fn syntax(&self) -> &SyntaxNode {
20451        &self.syntax
20452    }
20453}
20454impl AstNode for BeforeValue {
20455    #[inline]
20456    fn can_cast(kind: SyntaxKind) -> bool {
20457        kind == SyntaxKind::BEFORE_VALUE
20458    }
20459    #[inline]
20460    fn cast(syntax: SyntaxNode) -> Option<Self> {
20461        if Self::can_cast(syntax.kind()) {
20462            Some(Self { syntax })
20463        } else {
20464            None
20465        }
20466    }
20467    #[inline]
20468    fn syntax(&self) -> &SyntaxNode {
20469        &self.syntax
20470    }
20471}
20472impl AstNode for Begin {
20473    #[inline]
20474    fn can_cast(kind: SyntaxKind) -> bool {
20475        kind == SyntaxKind::BEGIN
20476    }
20477    #[inline]
20478    fn cast(syntax: SyntaxNode) -> Option<Self> {
20479        if Self::can_cast(syntax.kind()) {
20480            Some(Self { syntax })
20481        } else {
20482            None
20483        }
20484    }
20485    #[inline]
20486    fn syntax(&self) -> &SyntaxNode {
20487        &self.syntax
20488    }
20489}
20490impl AstNode for BeginFuncOption {
20491    #[inline]
20492    fn can_cast(kind: SyntaxKind) -> bool {
20493        kind == SyntaxKind::BEGIN_FUNC_OPTION
20494    }
20495    #[inline]
20496    fn cast(syntax: SyntaxNode) -> Option<Self> {
20497        if Self::can_cast(syntax.kind()) {
20498            Some(Self { syntax })
20499        } else {
20500            None
20501        }
20502    }
20503    #[inline]
20504    fn syntax(&self) -> &SyntaxNode {
20505        &self.syntax
20506    }
20507}
20508impl AstNode for BeginFuncOptionList {
20509    #[inline]
20510    fn can_cast(kind: SyntaxKind) -> bool {
20511        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
20512    }
20513    #[inline]
20514    fn cast(syntax: SyntaxNode) -> Option<Self> {
20515        if Self::can_cast(syntax.kind()) {
20516            Some(Self { syntax })
20517        } else {
20518            None
20519        }
20520    }
20521    #[inline]
20522    fn syntax(&self) -> &SyntaxNode {
20523        &self.syntax
20524    }
20525}
20526impl AstNode for BetweenExpr {
20527    #[inline]
20528    fn can_cast(kind: SyntaxKind) -> bool {
20529        kind == SyntaxKind::BETWEEN_EXPR
20530    }
20531    #[inline]
20532    fn cast(syntax: SyntaxNode) -> Option<Self> {
20533        if Self::can_cast(syntax.kind()) {
20534            Some(Self { syntax })
20535        } else {
20536            None
20537        }
20538    }
20539    #[inline]
20540    fn syntax(&self) -> &SyntaxNode {
20541        &self.syntax
20542    }
20543}
20544impl AstNode for BinExpr {
20545    #[inline]
20546    fn can_cast(kind: SyntaxKind) -> bool {
20547        kind == SyntaxKind::BIN_EXPR
20548    }
20549    #[inline]
20550    fn cast(syntax: SyntaxNode) -> Option<Self> {
20551        if Self::can_cast(syntax.kind()) {
20552            Some(Self { syntax })
20553        } else {
20554            None
20555        }
20556    }
20557    #[inline]
20558    fn syntax(&self) -> &SyntaxNode {
20559        &self.syntax
20560    }
20561}
20562impl AstNode for BitType {
20563    #[inline]
20564    fn can_cast(kind: SyntaxKind) -> bool {
20565        kind == SyntaxKind::BIT_TYPE
20566    }
20567    #[inline]
20568    fn cast(syntax: SyntaxNode) -> Option<Self> {
20569        if Self::can_cast(syntax.kind()) {
20570            Some(Self { syntax })
20571        } else {
20572            None
20573        }
20574    }
20575    #[inline]
20576    fn syntax(&self) -> &SyntaxNode {
20577        &self.syntax
20578    }
20579}
20580impl AstNode for Call {
20581    #[inline]
20582    fn can_cast(kind: SyntaxKind) -> bool {
20583        kind == SyntaxKind::CALL
20584    }
20585    #[inline]
20586    fn cast(syntax: SyntaxNode) -> Option<Self> {
20587        if Self::can_cast(syntax.kind()) {
20588            Some(Self { syntax })
20589        } else {
20590            None
20591        }
20592    }
20593    #[inline]
20594    fn syntax(&self) -> &SyntaxNode {
20595        &self.syntax
20596    }
20597}
20598impl AstNode for CallExpr {
20599    #[inline]
20600    fn can_cast(kind: SyntaxKind) -> bool {
20601        kind == SyntaxKind::CALL_EXPR
20602    }
20603    #[inline]
20604    fn cast(syntax: SyntaxNode) -> Option<Self> {
20605        if Self::can_cast(syntax.kind()) {
20606            Some(Self { syntax })
20607        } else {
20608            None
20609        }
20610    }
20611    #[inline]
20612    fn syntax(&self) -> &SyntaxNode {
20613        &self.syntax
20614    }
20615}
20616impl AstNode for Cascade {
20617    #[inline]
20618    fn can_cast(kind: SyntaxKind) -> bool {
20619        kind == SyntaxKind::CASCADE
20620    }
20621    #[inline]
20622    fn cast(syntax: SyntaxNode) -> Option<Self> {
20623        if Self::can_cast(syntax.kind()) {
20624            Some(Self { syntax })
20625        } else {
20626            None
20627        }
20628    }
20629    #[inline]
20630    fn syntax(&self) -> &SyntaxNode {
20631        &self.syntax
20632    }
20633}
20634impl AstNode for CaseExpr {
20635    #[inline]
20636    fn can_cast(kind: SyntaxKind) -> bool {
20637        kind == SyntaxKind::CASE_EXPR
20638    }
20639    #[inline]
20640    fn cast(syntax: SyntaxNode) -> Option<Self> {
20641        if Self::can_cast(syntax.kind()) {
20642            Some(Self { syntax })
20643        } else {
20644            None
20645        }
20646    }
20647    #[inline]
20648    fn syntax(&self) -> &SyntaxNode {
20649        &self.syntax
20650    }
20651}
20652impl AstNode for CastExpr {
20653    #[inline]
20654    fn can_cast(kind: SyntaxKind) -> bool {
20655        kind == SyntaxKind::CAST_EXPR
20656    }
20657    #[inline]
20658    fn cast(syntax: SyntaxNode) -> Option<Self> {
20659        if Self::can_cast(syntax.kind()) {
20660            Some(Self { syntax })
20661        } else {
20662            None
20663        }
20664    }
20665    #[inline]
20666    fn syntax(&self) -> &SyntaxNode {
20667        &self.syntax
20668    }
20669}
20670impl AstNode for CastSig {
20671    #[inline]
20672    fn can_cast(kind: SyntaxKind) -> bool {
20673        kind == SyntaxKind::CAST_SIG
20674    }
20675    #[inline]
20676    fn cast(syntax: SyntaxNode) -> Option<Self> {
20677        if Self::can_cast(syntax.kind()) {
20678            Some(Self { syntax })
20679        } else {
20680            None
20681        }
20682    }
20683    #[inline]
20684    fn syntax(&self) -> &SyntaxNode {
20685        &self.syntax
20686    }
20687}
20688impl AstNode for CharType {
20689    #[inline]
20690    fn can_cast(kind: SyntaxKind) -> bool {
20691        kind == SyntaxKind::CHAR_TYPE
20692    }
20693    #[inline]
20694    fn cast(syntax: SyntaxNode) -> Option<Self> {
20695        if Self::can_cast(syntax.kind()) {
20696            Some(Self { syntax })
20697        } else {
20698            None
20699        }
20700    }
20701    #[inline]
20702    fn syntax(&self) -> &SyntaxNode {
20703        &self.syntax
20704    }
20705}
20706impl AstNode for CheckConstraint {
20707    #[inline]
20708    fn can_cast(kind: SyntaxKind) -> bool {
20709        kind == SyntaxKind::CHECK_CONSTRAINT
20710    }
20711    #[inline]
20712    fn cast(syntax: SyntaxNode) -> Option<Self> {
20713        if Self::can_cast(syntax.kind()) {
20714            Some(Self { syntax })
20715        } else {
20716            None
20717        }
20718    }
20719    #[inline]
20720    fn syntax(&self) -> &SyntaxNode {
20721        &self.syntax
20722    }
20723}
20724impl AstNode for Checkpoint {
20725    #[inline]
20726    fn can_cast(kind: SyntaxKind) -> bool {
20727        kind == SyntaxKind::CHECKPOINT
20728    }
20729    #[inline]
20730    fn cast(syntax: SyntaxNode) -> Option<Self> {
20731        if Self::can_cast(syntax.kind()) {
20732            Some(Self { syntax })
20733        } else {
20734            None
20735        }
20736    }
20737    #[inline]
20738    fn syntax(&self) -> &SyntaxNode {
20739        &self.syntax
20740    }
20741}
20742impl AstNode for Close {
20743    #[inline]
20744    fn can_cast(kind: SyntaxKind) -> bool {
20745        kind == SyntaxKind::CLOSE
20746    }
20747    #[inline]
20748    fn cast(syntax: SyntaxNode) -> Option<Self> {
20749        if Self::can_cast(syntax.kind()) {
20750            Some(Self { syntax })
20751        } else {
20752            None
20753        }
20754    }
20755    #[inline]
20756    fn syntax(&self) -> &SyntaxNode {
20757        &self.syntax
20758    }
20759}
20760impl AstNode for Cluster {
20761    #[inline]
20762    fn can_cast(kind: SyntaxKind) -> bool {
20763        kind == SyntaxKind::CLUSTER
20764    }
20765    #[inline]
20766    fn cast(syntax: SyntaxNode) -> Option<Self> {
20767        if Self::can_cast(syntax.kind()) {
20768            Some(Self { syntax })
20769        } else {
20770            None
20771        }
20772    }
20773    #[inline]
20774    fn syntax(&self) -> &SyntaxNode {
20775        &self.syntax
20776    }
20777}
20778impl AstNode for ClusterOn {
20779    #[inline]
20780    fn can_cast(kind: SyntaxKind) -> bool {
20781        kind == SyntaxKind::CLUSTER_ON
20782    }
20783    #[inline]
20784    fn cast(syntax: SyntaxNode) -> Option<Self> {
20785        if Self::can_cast(syntax.kind()) {
20786            Some(Self { syntax })
20787        } else {
20788            None
20789        }
20790    }
20791    #[inline]
20792    fn syntax(&self) -> &SyntaxNode {
20793        &self.syntax
20794    }
20795}
20796impl AstNode for Collate {
20797    #[inline]
20798    fn can_cast(kind: SyntaxKind) -> bool {
20799        kind == SyntaxKind::COLLATE
20800    }
20801    #[inline]
20802    fn cast(syntax: SyntaxNode) -> Option<Self> {
20803        if Self::can_cast(syntax.kind()) {
20804            Some(Self { syntax })
20805        } else {
20806            None
20807        }
20808    }
20809    #[inline]
20810    fn syntax(&self) -> &SyntaxNode {
20811        &self.syntax
20812    }
20813}
20814impl AstNode for CollationForFn {
20815    #[inline]
20816    fn can_cast(kind: SyntaxKind) -> bool {
20817        kind == SyntaxKind::COLLATION_FOR_FN
20818    }
20819    #[inline]
20820    fn cast(syntax: SyntaxNode) -> Option<Self> {
20821        if Self::can_cast(syntax.kind()) {
20822            Some(Self { syntax })
20823        } else {
20824            None
20825        }
20826    }
20827    #[inline]
20828    fn syntax(&self) -> &SyntaxNode {
20829        &self.syntax
20830    }
20831}
20832impl AstNode for ColonColon {
20833    #[inline]
20834    fn can_cast(kind: SyntaxKind) -> bool {
20835        kind == SyntaxKind::COLON_COLON
20836    }
20837    #[inline]
20838    fn cast(syntax: SyntaxNode) -> Option<Self> {
20839        if Self::can_cast(syntax.kind()) {
20840            Some(Self { syntax })
20841        } else {
20842            None
20843        }
20844    }
20845    #[inline]
20846    fn syntax(&self) -> &SyntaxNode {
20847        &self.syntax
20848    }
20849}
20850impl AstNode for ColonEq {
20851    #[inline]
20852    fn can_cast(kind: SyntaxKind) -> bool {
20853        kind == SyntaxKind::COLON_EQ
20854    }
20855    #[inline]
20856    fn cast(syntax: SyntaxNode) -> Option<Self> {
20857        if Self::can_cast(syntax.kind()) {
20858            Some(Self { syntax })
20859        } else {
20860            None
20861        }
20862    }
20863    #[inline]
20864    fn syntax(&self) -> &SyntaxNode {
20865        &self.syntax
20866    }
20867}
20868impl AstNode for Column {
20869    #[inline]
20870    fn can_cast(kind: SyntaxKind) -> bool {
20871        kind == SyntaxKind::COLUMN
20872    }
20873    #[inline]
20874    fn cast(syntax: SyntaxNode) -> Option<Self> {
20875        if Self::can_cast(syntax.kind()) {
20876            Some(Self { syntax })
20877        } else {
20878            None
20879        }
20880    }
20881    #[inline]
20882    fn syntax(&self) -> &SyntaxNode {
20883        &self.syntax
20884    }
20885}
20886impl AstNode for ColumnList {
20887    #[inline]
20888    fn can_cast(kind: SyntaxKind) -> bool {
20889        kind == SyntaxKind::COLUMN_LIST
20890    }
20891    #[inline]
20892    fn cast(syntax: SyntaxNode) -> Option<Self> {
20893        if Self::can_cast(syntax.kind()) {
20894            Some(Self { syntax })
20895        } else {
20896            None
20897        }
20898    }
20899    #[inline]
20900    fn syntax(&self) -> &SyntaxNode {
20901        &self.syntax
20902    }
20903}
20904impl AstNode for CommentOn {
20905    #[inline]
20906    fn can_cast(kind: SyntaxKind) -> bool {
20907        kind == SyntaxKind::COMMENT_ON
20908    }
20909    #[inline]
20910    fn cast(syntax: SyntaxNode) -> Option<Self> {
20911        if Self::can_cast(syntax.kind()) {
20912            Some(Self { syntax })
20913        } else {
20914            None
20915        }
20916    }
20917    #[inline]
20918    fn syntax(&self) -> &SyntaxNode {
20919        &self.syntax
20920    }
20921}
20922impl AstNode for Commit {
20923    #[inline]
20924    fn can_cast(kind: SyntaxKind) -> bool {
20925        kind == SyntaxKind::COMMIT
20926    }
20927    #[inline]
20928    fn cast(syntax: SyntaxNode) -> Option<Self> {
20929        if Self::can_cast(syntax.kind()) {
20930            Some(Self { syntax })
20931        } else {
20932            None
20933        }
20934    }
20935    #[inline]
20936    fn syntax(&self) -> &SyntaxNode {
20937        &self.syntax
20938    }
20939}
20940impl AstNode for CompoundSelect {
20941    #[inline]
20942    fn can_cast(kind: SyntaxKind) -> bool {
20943        kind == SyntaxKind::COMPOUND_SELECT
20944    }
20945    #[inline]
20946    fn cast(syntax: SyntaxNode) -> Option<Self> {
20947        if Self::can_cast(syntax.kind()) {
20948            Some(Self { syntax })
20949        } else {
20950            None
20951        }
20952    }
20953    #[inline]
20954    fn syntax(&self) -> &SyntaxNode {
20955        &self.syntax
20956    }
20957}
20958impl AstNode for CompressionMethod {
20959    #[inline]
20960    fn can_cast(kind: SyntaxKind) -> bool {
20961        kind == SyntaxKind::COMPRESSION_METHOD
20962    }
20963    #[inline]
20964    fn cast(syntax: SyntaxNode) -> Option<Self> {
20965        if Self::can_cast(syntax.kind()) {
20966            Some(Self { syntax })
20967        } else {
20968            None
20969        }
20970    }
20971    #[inline]
20972    fn syntax(&self) -> &SyntaxNode {
20973        &self.syntax
20974    }
20975}
20976impl AstNode for ConflictDoNothing {
20977    #[inline]
20978    fn can_cast(kind: SyntaxKind) -> bool {
20979        kind == SyntaxKind::CONFLICT_DO_NOTHING
20980    }
20981    #[inline]
20982    fn cast(syntax: SyntaxNode) -> Option<Self> {
20983        if Self::can_cast(syntax.kind()) {
20984            Some(Self { syntax })
20985        } else {
20986            None
20987        }
20988    }
20989    #[inline]
20990    fn syntax(&self) -> &SyntaxNode {
20991        &self.syntax
20992    }
20993}
20994impl AstNode for ConflictDoSelect {
20995    #[inline]
20996    fn can_cast(kind: SyntaxKind) -> bool {
20997        kind == SyntaxKind::CONFLICT_DO_SELECT
20998    }
20999    #[inline]
21000    fn cast(syntax: SyntaxNode) -> Option<Self> {
21001        if Self::can_cast(syntax.kind()) {
21002            Some(Self { syntax })
21003        } else {
21004            None
21005        }
21006    }
21007    #[inline]
21008    fn syntax(&self) -> &SyntaxNode {
21009        &self.syntax
21010    }
21011}
21012impl AstNode for ConflictDoUpdateSet {
21013    #[inline]
21014    fn can_cast(kind: SyntaxKind) -> bool {
21015        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
21016    }
21017    #[inline]
21018    fn cast(syntax: SyntaxNode) -> Option<Self> {
21019        if Self::can_cast(syntax.kind()) {
21020            Some(Self { syntax })
21021        } else {
21022            None
21023        }
21024    }
21025    #[inline]
21026    fn syntax(&self) -> &SyntaxNode {
21027        &self.syntax
21028    }
21029}
21030impl AstNode for ConflictIndexItem {
21031    #[inline]
21032    fn can_cast(kind: SyntaxKind) -> bool {
21033        kind == SyntaxKind::CONFLICT_INDEX_ITEM
21034    }
21035    #[inline]
21036    fn cast(syntax: SyntaxNode) -> Option<Self> {
21037        if Self::can_cast(syntax.kind()) {
21038            Some(Self { syntax })
21039        } else {
21040            None
21041        }
21042    }
21043    #[inline]
21044    fn syntax(&self) -> &SyntaxNode {
21045        &self.syntax
21046    }
21047}
21048impl AstNode for ConflictIndexItemList {
21049    #[inline]
21050    fn can_cast(kind: SyntaxKind) -> bool {
21051        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
21052    }
21053    #[inline]
21054    fn cast(syntax: SyntaxNode) -> Option<Self> {
21055        if Self::can_cast(syntax.kind()) {
21056            Some(Self { syntax })
21057        } else {
21058            None
21059        }
21060    }
21061    #[inline]
21062    fn syntax(&self) -> &SyntaxNode {
21063        &self.syntax
21064    }
21065}
21066impl AstNode for ConflictOnConstraint {
21067    #[inline]
21068    fn can_cast(kind: SyntaxKind) -> bool {
21069        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
21070    }
21071    #[inline]
21072    fn cast(syntax: SyntaxNode) -> Option<Self> {
21073        if Self::can_cast(syntax.kind()) {
21074            Some(Self { syntax })
21075        } else {
21076            None
21077        }
21078    }
21079    #[inline]
21080    fn syntax(&self) -> &SyntaxNode {
21081        &self.syntax
21082    }
21083}
21084impl AstNode for ConflictOnIndex {
21085    #[inline]
21086    fn can_cast(kind: SyntaxKind) -> bool {
21087        kind == SyntaxKind::CONFLICT_ON_INDEX
21088    }
21089    #[inline]
21090    fn cast(syntax: SyntaxNode) -> Option<Self> {
21091        if Self::can_cast(syntax.kind()) {
21092            Some(Self { syntax })
21093        } else {
21094            None
21095        }
21096    }
21097    #[inline]
21098    fn syntax(&self) -> &SyntaxNode {
21099        &self.syntax
21100    }
21101}
21102impl AstNode for ConstraintExclusion {
21103    #[inline]
21104    fn can_cast(kind: SyntaxKind) -> bool {
21105        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21106    }
21107    #[inline]
21108    fn cast(syntax: SyntaxNode) -> Option<Self> {
21109        if Self::can_cast(syntax.kind()) {
21110            Some(Self { syntax })
21111        } else {
21112            None
21113        }
21114    }
21115    #[inline]
21116    fn syntax(&self) -> &SyntaxNode {
21117        &self.syntax
21118    }
21119}
21120impl AstNode for ConstraintExclusionList {
21121    #[inline]
21122    fn can_cast(kind: SyntaxKind) -> bool {
21123        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21124    }
21125    #[inline]
21126    fn cast(syntax: SyntaxNode) -> Option<Self> {
21127        if Self::can_cast(syntax.kind()) {
21128            Some(Self { syntax })
21129        } else {
21130            None
21131        }
21132    }
21133    #[inline]
21134    fn syntax(&self) -> &SyntaxNode {
21135        &self.syntax
21136    }
21137}
21138impl AstNode for ConstraintIncludeClause {
21139    #[inline]
21140    fn can_cast(kind: SyntaxKind) -> bool {
21141        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21142    }
21143    #[inline]
21144    fn cast(syntax: SyntaxNode) -> Option<Self> {
21145        if Self::can_cast(syntax.kind()) {
21146            Some(Self { syntax })
21147        } else {
21148            None
21149        }
21150    }
21151    #[inline]
21152    fn syntax(&self) -> &SyntaxNode {
21153        &self.syntax
21154    }
21155}
21156impl AstNode for ConstraintIndexMethod {
21157    #[inline]
21158    fn can_cast(kind: SyntaxKind) -> bool {
21159        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21160    }
21161    #[inline]
21162    fn cast(syntax: SyntaxNode) -> Option<Self> {
21163        if Self::can_cast(syntax.kind()) {
21164            Some(Self { syntax })
21165        } else {
21166            None
21167        }
21168    }
21169    #[inline]
21170    fn syntax(&self) -> &SyntaxNode {
21171        &self.syntax
21172    }
21173}
21174impl AstNode for ConstraintIndexTablespace {
21175    #[inline]
21176    fn can_cast(kind: SyntaxKind) -> bool {
21177        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21178    }
21179    #[inline]
21180    fn cast(syntax: SyntaxNode) -> Option<Self> {
21181        if Self::can_cast(syntax.kind()) {
21182            Some(Self { syntax })
21183        } else {
21184            None
21185        }
21186    }
21187    #[inline]
21188    fn syntax(&self) -> &SyntaxNode {
21189        &self.syntax
21190    }
21191}
21192impl AstNode for ConstraintName {
21193    #[inline]
21194    fn can_cast(kind: SyntaxKind) -> bool {
21195        kind == SyntaxKind::CONSTRAINT_NAME
21196    }
21197    #[inline]
21198    fn cast(syntax: SyntaxNode) -> Option<Self> {
21199        if Self::can_cast(syntax.kind()) {
21200            Some(Self { syntax })
21201        } else {
21202            None
21203        }
21204    }
21205    #[inline]
21206    fn syntax(&self) -> &SyntaxNode {
21207        &self.syntax
21208    }
21209}
21210impl AstNode for Copy {
21211    #[inline]
21212    fn can_cast(kind: SyntaxKind) -> bool {
21213        kind == SyntaxKind::COPY
21214    }
21215    #[inline]
21216    fn cast(syntax: SyntaxNode) -> Option<Self> {
21217        if Self::can_cast(syntax.kind()) {
21218            Some(Self { syntax })
21219        } else {
21220            None
21221        }
21222    }
21223    #[inline]
21224    fn syntax(&self) -> &SyntaxNode {
21225        &self.syntax
21226    }
21227}
21228impl AstNode for CopyOption {
21229    #[inline]
21230    fn can_cast(kind: SyntaxKind) -> bool {
21231        kind == SyntaxKind::COPY_OPTION
21232    }
21233    #[inline]
21234    fn cast(syntax: SyntaxNode) -> Option<Self> {
21235        if Self::can_cast(syntax.kind()) {
21236            Some(Self { syntax })
21237        } else {
21238            None
21239        }
21240    }
21241    #[inline]
21242    fn syntax(&self) -> &SyntaxNode {
21243        &self.syntax
21244    }
21245}
21246impl AstNode for CopyOptionList {
21247    #[inline]
21248    fn can_cast(kind: SyntaxKind) -> bool {
21249        kind == SyntaxKind::COPY_OPTION_LIST
21250    }
21251    #[inline]
21252    fn cast(syntax: SyntaxNode) -> Option<Self> {
21253        if Self::can_cast(syntax.kind()) {
21254            Some(Self { syntax })
21255        } else {
21256            None
21257        }
21258    }
21259    #[inline]
21260    fn syntax(&self) -> &SyntaxNode {
21261        &self.syntax
21262    }
21263}
21264impl AstNode for CostFuncOption {
21265    #[inline]
21266    fn can_cast(kind: SyntaxKind) -> bool {
21267        kind == SyntaxKind::COST_FUNC_OPTION
21268    }
21269    #[inline]
21270    fn cast(syntax: SyntaxNode) -> Option<Self> {
21271        if Self::can_cast(syntax.kind()) {
21272            Some(Self { syntax })
21273        } else {
21274            None
21275        }
21276    }
21277    #[inline]
21278    fn syntax(&self) -> &SyntaxNode {
21279        &self.syntax
21280    }
21281}
21282impl AstNode for CreateAccessMethod {
21283    #[inline]
21284    fn can_cast(kind: SyntaxKind) -> bool {
21285        kind == SyntaxKind::CREATE_ACCESS_METHOD
21286    }
21287    #[inline]
21288    fn cast(syntax: SyntaxNode) -> Option<Self> {
21289        if Self::can_cast(syntax.kind()) {
21290            Some(Self { syntax })
21291        } else {
21292            None
21293        }
21294    }
21295    #[inline]
21296    fn syntax(&self) -> &SyntaxNode {
21297        &self.syntax
21298    }
21299}
21300impl AstNode for CreateAggregate {
21301    #[inline]
21302    fn can_cast(kind: SyntaxKind) -> bool {
21303        kind == SyntaxKind::CREATE_AGGREGATE
21304    }
21305    #[inline]
21306    fn cast(syntax: SyntaxNode) -> Option<Self> {
21307        if Self::can_cast(syntax.kind()) {
21308            Some(Self { syntax })
21309        } else {
21310            None
21311        }
21312    }
21313    #[inline]
21314    fn syntax(&self) -> &SyntaxNode {
21315        &self.syntax
21316    }
21317}
21318impl AstNode for CreateCast {
21319    #[inline]
21320    fn can_cast(kind: SyntaxKind) -> bool {
21321        kind == SyntaxKind::CREATE_CAST
21322    }
21323    #[inline]
21324    fn cast(syntax: SyntaxNode) -> Option<Self> {
21325        if Self::can_cast(syntax.kind()) {
21326            Some(Self { syntax })
21327        } else {
21328            None
21329        }
21330    }
21331    #[inline]
21332    fn syntax(&self) -> &SyntaxNode {
21333        &self.syntax
21334    }
21335}
21336impl AstNode for CreateCollation {
21337    #[inline]
21338    fn can_cast(kind: SyntaxKind) -> bool {
21339        kind == SyntaxKind::CREATE_COLLATION
21340    }
21341    #[inline]
21342    fn cast(syntax: SyntaxNode) -> Option<Self> {
21343        if Self::can_cast(syntax.kind()) {
21344            Some(Self { syntax })
21345        } else {
21346            None
21347        }
21348    }
21349    #[inline]
21350    fn syntax(&self) -> &SyntaxNode {
21351        &self.syntax
21352    }
21353}
21354impl AstNode for CreateConversion {
21355    #[inline]
21356    fn can_cast(kind: SyntaxKind) -> bool {
21357        kind == SyntaxKind::CREATE_CONVERSION
21358    }
21359    #[inline]
21360    fn cast(syntax: SyntaxNode) -> Option<Self> {
21361        if Self::can_cast(syntax.kind()) {
21362            Some(Self { syntax })
21363        } else {
21364            None
21365        }
21366    }
21367    #[inline]
21368    fn syntax(&self) -> &SyntaxNode {
21369        &self.syntax
21370    }
21371}
21372impl AstNode for CreateDatabase {
21373    #[inline]
21374    fn can_cast(kind: SyntaxKind) -> bool {
21375        kind == SyntaxKind::CREATE_DATABASE
21376    }
21377    #[inline]
21378    fn cast(syntax: SyntaxNode) -> Option<Self> {
21379        if Self::can_cast(syntax.kind()) {
21380            Some(Self { syntax })
21381        } else {
21382            None
21383        }
21384    }
21385    #[inline]
21386    fn syntax(&self) -> &SyntaxNode {
21387        &self.syntax
21388    }
21389}
21390impl AstNode for CreateDatabaseOption {
21391    #[inline]
21392    fn can_cast(kind: SyntaxKind) -> bool {
21393        kind == SyntaxKind::CREATE_DATABASE_OPTION
21394    }
21395    #[inline]
21396    fn cast(syntax: SyntaxNode) -> Option<Self> {
21397        if Self::can_cast(syntax.kind()) {
21398            Some(Self { syntax })
21399        } else {
21400            None
21401        }
21402    }
21403    #[inline]
21404    fn syntax(&self) -> &SyntaxNode {
21405        &self.syntax
21406    }
21407}
21408impl AstNode for CreateDatabaseOptionList {
21409    #[inline]
21410    fn can_cast(kind: SyntaxKind) -> bool {
21411        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
21412    }
21413    #[inline]
21414    fn cast(syntax: SyntaxNode) -> Option<Self> {
21415        if Self::can_cast(syntax.kind()) {
21416            Some(Self { syntax })
21417        } else {
21418            None
21419        }
21420    }
21421    #[inline]
21422    fn syntax(&self) -> &SyntaxNode {
21423        &self.syntax
21424    }
21425}
21426impl AstNode for CreateDomain {
21427    #[inline]
21428    fn can_cast(kind: SyntaxKind) -> bool {
21429        kind == SyntaxKind::CREATE_DOMAIN
21430    }
21431    #[inline]
21432    fn cast(syntax: SyntaxNode) -> Option<Self> {
21433        if Self::can_cast(syntax.kind()) {
21434            Some(Self { syntax })
21435        } else {
21436            None
21437        }
21438    }
21439    #[inline]
21440    fn syntax(&self) -> &SyntaxNode {
21441        &self.syntax
21442    }
21443}
21444impl AstNode for CreateEventTrigger {
21445    #[inline]
21446    fn can_cast(kind: SyntaxKind) -> bool {
21447        kind == SyntaxKind::CREATE_EVENT_TRIGGER
21448    }
21449    #[inline]
21450    fn cast(syntax: SyntaxNode) -> Option<Self> {
21451        if Self::can_cast(syntax.kind()) {
21452            Some(Self { syntax })
21453        } else {
21454            None
21455        }
21456    }
21457    #[inline]
21458    fn syntax(&self) -> &SyntaxNode {
21459        &self.syntax
21460    }
21461}
21462impl AstNode for CreateExtension {
21463    #[inline]
21464    fn can_cast(kind: SyntaxKind) -> bool {
21465        kind == SyntaxKind::CREATE_EXTENSION
21466    }
21467    #[inline]
21468    fn cast(syntax: SyntaxNode) -> Option<Self> {
21469        if Self::can_cast(syntax.kind()) {
21470            Some(Self { syntax })
21471        } else {
21472            None
21473        }
21474    }
21475    #[inline]
21476    fn syntax(&self) -> &SyntaxNode {
21477        &self.syntax
21478    }
21479}
21480impl AstNode for CreateForeignDataWrapper {
21481    #[inline]
21482    fn can_cast(kind: SyntaxKind) -> bool {
21483        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
21484    }
21485    #[inline]
21486    fn cast(syntax: SyntaxNode) -> Option<Self> {
21487        if Self::can_cast(syntax.kind()) {
21488            Some(Self { syntax })
21489        } else {
21490            None
21491        }
21492    }
21493    #[inline]
21494    fn syntax(&self) -> &SyntaxNode {
21495        &self.syntax
21496    }
21497}
21498impl AstNode for CreateForeignTable {
21499    #[inline]
21500    fn can_cast(kind: SyntaxKind) -> bool {
21501        kind == SyntaxKind::CREATE_FOREIGN_TABLE
21502    }
21503    #[inline]
21504    fn cast(syntax: SyntaxNode) -> Option<Self> {
21505        if Self::can_cast(syntax.kind()) {
21506            Some(Self { syntax })
21507        } else {
21508            None
21509        }
21510    }
21511    #[inline]
21512    fn syntax(&self) -> &SyntaxNode {
21513        &self.syntax
21514    }
21515}
21516impl AstNode for CreateFunction {
21517    #[inline]
21518    fn can_cast(kind: SyntaxKind) -> bool {
21519        kind == SyntaxKind::CREATE_FUNCTION
21520    }
21521    #[inline]
21522    fn cast(syntax: SyntaxNode) -> Option<Self> {
21523        if Self::can_cast(syntax.kind()) {
21524            Some(Self { syntax })
21525        } else {
21526            None
21527        }
21528    }
21529    #[inline]
21530    fn syntax(&self) -> &SyntaxNode {
21531        &self.syntax
21532    }
21533}
21534impl AstNode for CreateGroup {
21535    #[inline]
21536    fn can_cast(kind: SyntaxKind) -> bool {
21537        kind == SyntaxKind::CREATE_GROUP
21538    }
21539    #[inline]
21540    fn cast(syntax: SyntaxNode) -> Option<Self> {
21541        if Self::can_cast(syntax.kind()) {
21542            Some(Self { syntax })
21543        } else {
21544            None
21545        }
21546    }
21547    #[inline]
21548    fn syntax(&self) -> &SyntaxNode {
21549        &self.syntax
21550    }
21551}
21552impl AstNode for CreateIndex {
21553    #[inline]
21554    fn can_cast(kind: SyntaxKind) -> bool {
21555        kind == SyntaxKind::CREATE_INDEX
21556    }
21557    #[inline]
21558    fn cast(syntax: SyntaxNode) -> Option<Self> {
21559        if Self::can_cast(syntax.kind()) {
21560            Some(Self { syntax })
21561        } else {
21562            None
21563        }
21564    }
21565    #[inline]
21566    fn syntax(&self) -> &SyntaxNode {
21567        &self.syntax
21568    }
21569}
21570impl AstNode for CreateLanguage {
21571    #[inline]
21572    fn can_cast(kind: SyntaxKind) -> bool {
21573        kind == SyntaxKind::CREATE_LANGUAGE
21574    }
21575    #[inline]
21576    fn cast(syntax: SyntaxNode) -> Option<Self> {
21577        if Self::can_cast(syntax.kind()) {
21578            Some(Self { syntax })
21579        } else {
21580            None
21581        }
21582    }
21583    #[inline]
21584    fn syntax(&self) -> &SyntaxNode {
21585        &self.syntax
21586    }
21587}
21588impl AstNode for CreateMaterializedView {
21589    #[inline]
21590    fn can_cast(kind: SyntaxKind) -> bool {
21591        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
21592    }
21593    #[inline]
21594    fn cast(syntax: SyntaxNode) -> Option<Self> {
21595        if Self::can_cast(syntax.kind()) {
21596            Some(Self { syntax })
21597        } else {
21598            None
21599        }
21600    }
21601    #[inline]
21602    fn syntax(&self) -> &SyntaxNode {
21603        &self.syntax
21604    }
21605}
21606impl AstNode for CreateOperator {
21607    #[inline]
21608    fn can_cast(kind: SyntaxKind) -> bool {
21609        kind == SyntaxKind::CREATE_OPERATOR
21610    }
21611    #[inline]
21612    fn cast(syntax: SyntaxNode) -> Option<Self> {
21613        if Self::can_cast(syntax.kind()) {
21614            Some(Self { syntax })
21615        } else {
21616            None
21617        }
21618    }
21619    #[inline]
21620    fn syntax(&self) -> &SyntaxNode {
21621        &self.syntax
21622    }
21623}
21624impl AstNode for CreateOperatorClass {
21625    #[inline]
21626    fn can_cast(kind: SyntaxKind) -> bool {
21627        kind == SyntaxKind::CREATE_OPERATOR_CLASS
21628    }
21629    #[inline]
21630    fn cast(syntax: SyntaxNode) -> Option<Self> {
21631        if Self::can_cast(syntax.kind()) {
21632            Some(Self { syntax })
21633        } else {
21634            None
21635        }
21636    }
21637    #[inline]
21638    fn syntax(&self) -> &SyntaxNode {
21639        &self.syntax
21640    }
21641}
21642impl AstNode for CreateOperatorFamily {
21643    #[inline]
21644    fn can_cast(kind: SyntaxKind) -> bool {
21645        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
21646    }
21647    #[inline]
21648    fn cast(syntax: SyntaxNode) -> Option<Self> {
21649        if Self::can_cast(syntax.kind()) {
21650            Some(Self { syntax })
21651        } else {
21652            None
21653        }
21654    }
21655    #[inline]
21656    fn syntax(&self) -> &SyntaxNode {
21657        &self.syntax
21658    }
21659}
21660impl AstNode for CreatePolicy {
21661    #[inline]
21662    fn can_cast(kind: SyntaxKind) -> bool {
21663        kind == SyntaxKind::CREATE_POLICY
21664    }
21665    #[inline]
21666    fn cast(syntax: SyntaxNode) -> Option<Self> {
21667        if Self::can_cast(syntax.kind()) {
21668            Some(Self { syntax })
21669        } else {
21670            None
21671        }
21672    }
21673    #[inline]
21674    fn syntax(&self) -> &SyntaxNode {
21675        &self.syntax
21676    }
21677}
21678impl AstNode for CreateProcedure {
21679    #[inline]
21680    fn can_cast(kind: SyntaxKind) -> bool {
21681        kind == SyntaxKind::CREATE_PROCEDURE
21682    }
21683    #[inline]
21684    fn cast(syntax: SyntaxNode) -> Option<Self> {
21685        if Self::can_cast(syntax.kind()) {
21686            Some(Self { syntax })
21687        } else {
21688            None
21689        }
21690    }
21691    #[inline]
21692    fn syntax(&self) -> &SyntaxNode {
21693        &self.syntax
21694    }
21695}
21696impl AstNode for CreatePropertyGraph {
21697    #[inline]
21698    fn can_cast(kind: SyntaxKind) -> bool {
21699        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
21700    }
21701    #[inline]
21702    fn cast(syntax: SyntaxNode) -> Option<Self> {
21703        if Self::can_cast(syntax.kind()) {
21704            Some(Self { syntax })
21705        } else {
21706            None
21707        }
21708    }
21709    #[inline]
21710    fn syntax(&self) -> &SyntaxNode {
21711        &self.syntax
21712    }
21713}
21714impl AstNode for CreatePublication {
21715    #[inline]
21716    fn can_cast(kind: SyntaxKind) -> bool {
21717        kind == SyntaxKind::CREATE_PUBLICATION
21718    }
21719    #[inline]
21720    fn cast(syntax: SyntaxNode) -> Option<Self> {
21721        if Self::can_cast(syntax.kind()) {
21722            Some(Self { syntax })
21723        } else {
21724            None
21725        }
21726    }
21727    #[inline]
21728    fn syntax(&self) -> &SyntaxNode {
21729        &self.syntax
21730    }
21731}
21732impl AstNode for CreateRole {
21733    #[inline]
21734    fn can_cast(kind: SyntaxKind) -> bool {
21735        kind == SyntaxKind::CREATE_ROLE
21736    }
21737    #[inline]
21738    fn cast(syntax: SyntaxNode) -> Option<Self> {
21739        if Self::can_cast(syntax.kind()) {
21740            Some(Self { syntax })
21741        } else {
21742            None
21743        }
21744    }
21745    #[inline]
21746    fn syntax(&self) -> &SyntaxNode {
21747        &self.syntax
21748    }
21749}
21750impl AstNode for CreateRule {
21751    #[inline]
21752    fn can_cast(kind: SyntaxKind) -> bool {
21753        kind == SyntaxKind::CREATE_RULE
21754    }
21755    #[inline]
21756    fn cast(syntax: SyntaxNode) -> Option<Self> {
21757        if Self::can_cast(syntax.kind()) {
21758            Some(Self { syntax })
21759        } else {
21760            None
21761        }
21762    }
21763    #[inline]
21764    fn syntax(&self) -> &SyntaxNode {
21765        &self.syntax
21766    }
21767}
21768impl AstNode for CreateSchema {
21769    #[inline]
21770    fn can_cast(kind: SyntaxKind) -> bool {
21771        kind == SyntaxKind::CREATE_SCHEMA
21772    }
21773    #[inline]
21774    fn cast(syntax: SyntaxNode) -> Option<Self> {
21775        if Self::can_cast(syntax.kind()) {
21776            Some(Self { syntax })
21777        } else {
21778            None
21779        }
21780    }
21781    #[inline]
21782    fn syntax(&self) -> &SyntaxNode {
21783        &self.syntax
21784    }
21785}
21786impl AstNode for CreateSequence {
21787    #[inline]
21788    fn can_cast(kind: SyntaxKind) -> bool {
21789        kind == SyntaxKind::CREATE_SEQUENCE
21790    }
21791    #[inline]
21792    fn cast(syntax: SyntaxNode) -> Option<Self> {
21793        if Self::can_cast(syntax.kind()) {
21794            Some(Self { syntax })
21795        } else {
21796            None
21797        }
21798    }
21799    #[inline]
21800    fn syntax(&self) -> &SyntaxNode {
21801        &self.syntax
21802    }
21803}
21804impl AstNode for CreateServer {
21805    #[inline]
21806    fn can_cast(kind: SyntaxKind) -> bool {
21807        kind == SyntaxKind::CREATE_SERVER
21808    }
21809    #[inline]
21810    fn cast(syntax: SyntaxNode) -> Option<Self> {
21811        if Self::can_cast(syntax.kind()) {
21812            Some(Self { syntax })
21813        } else {
21814            None
21815        }
21816    }
21817    #[inline]
21818    fn syntax(&self) -> &SyntaxNode {
21819        &self.syntax
21820    }
21821}
21822impl AstNode for CreateStatistics {
21823    #[inline]
21824    fn can_cast(kind: SyntaxKind) -> bool {
21825        kind == SyntaxKind::CREATE_STATISTICS
21826    }
21827    #[inline]
21828    fn cast(syntax: SyntaxNode) -> Option<Self> {
21829        if Self::can_cast(syntax.kind()) {
21830            Some(Self { syntax })
21831        } else {
21832            None
21833        }
21834    }
21835    #[inline]
21836    fn syntax(&self) -> &SyntaxNode {
21837        &self.syntax
21838    }
21839}
21840impl AstNode for CreateSubscription {
21841    #[inline]
21842    fn can_cast(kind: SyntaxKind) -> bool {
21843        kind == SyntaxKind::CREATE_SUBSCRIPTION
21844    }
21845    #[inline]
21846    fn cast(syntax: SyntaxNode) -> Option<Self> {
21847        if Self::can_cast(syntax.kind()) {
21848            Some(Self { syntax })
21849        } else {
21850            None
21851        }
21852    }
21853    #[inline]
21854    fn syntax(&self) -> &SyntaxNode {
21855        &self.syntax
21856    }
21857}
21858impl AstNode for CreateTable {
21859    #[inline]
21860    fn can_cast(kind: SyntaxKind) -> bool {
21861        kind == SyntaxKind::CREATE_TABLE
21862    }
21863    #[inline]
21864    fn cast(syntax: SyntaxNode) -> Option<Self> {
21865        if Self::can_cast(syntax.kind()) {
21866            Some(Self { syntax })
21867        } else {
21868            None
21869        }
21870    }
21871    #[inline]
21872    fn syntax(&self) -> &SyntaxNode {
21873        &self.syntax
21874    }
21875}
21876impl AstNode for CreateTableAs {
21877    #[inline]
21878    fn can_cast(kind: SyntaxKind) -> bool {
21879        kind == SyntaxKind::CREATE_TABLE_AS
21880    }
21881    #[inline]
21882    fn cast(syntax: SyntaxNode) -> Option<Self> {
21883        if Self::can_cast(syntax.kind()) {
21884            Some(Self { syntax })
21885        } else {
21886            None
21887        }
21888    }
21889    #[inline]
21890    fn syntax(&self) -> &SyntaxNode {
21891        &self.syntax
21892    }
21893}
21894impl AstNode for CreateTablespace {
21895    #[inline]
21896    fn can_cast(kind: SyntaxKind) -> bool {
21897        kind == SyntaxKind::CREATE_TABLESPACE
21898    }
21899    #[inline]
21900    fn cast(syntax: SyntaxNode) -> Option<Self> {
21901        if Self::can_cast(syntax.kind()) {
21902            Some(Self { syntax })
21903        } else {
21904            None
21905        }
21906    }
21907    #[inline]
21908    fn syntax(&self) -> &SyntaxNode {
21909        &self.syntax
21910    }
21911}
21912impl AstNode for CreateTextSearchConfiguration {
21913    #[inline]
21914    fn can_cast(kind: SyntaxKind) -> bool {
21915        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
21916    }
21917    #[inline]
21918    fn cast(syntax: SyntaxNode) -> Option<Self> {
21919        if Self::can_cast(syntax.kind()) {
21920            Some(Self { syntax })
21921        } else {
21922            None
21923        }
21924    }
21925    #[inline]
21926    fn syntax(&self) -> &SyntaxNode {
21927        &self.syntax
21928    }
21929}
21930impl AstNode for CreateTextSearchDictionary {
21931    #[inline]
21932    fn can_cast(kind: SyntaxKind) -> bool {
21933        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
21934    }
21935    #[inline]
21936    fn cast(syntax: SyntaxNode) -> Option<Self> {
21937        if Self::can_cast(syntax.kind()) {
21938            Some(Self { syntax })
21939        } else {
21940            None
21941        }
21942    }
21943    #[inline]
21944    fn syntax(&self) -> &SyntaxNode {
21945        &self.syntax
21946    }
21947}
21948impl AstNode for CreateTextSearchParser {
21949    #[inline]
21950    fn can_cast(kind: SyntaxKind) -> bool {
21951        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
21952    }
21953    #[inline]
21954    fn cast(syntax: SyntaxNode) -> Option<Self> {
21955        if Self::can_cast(syntax.kind()) {
21956            Some(Self { syntax })
21957        } else {
21958            None
21959        }
21960    }
21961    #[inline]
21962    fn syntax(&self) -> &SyntaxNode {
21963        &self.syntax
21964    }
21965}
21966impl AstNode for CreateTextSearchTemplate {
21967    #[inline]
21968    fn can_cast(kind: SyntaxKind) -> bool {
21969        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
21970    }
21971    #[inline]
21972    fn cast(syntax: SyntaxNode) -> Option<Self> {
21973        if Self::can_cast(syntax.kind()) {
21974            Some(Self { syntax })
21975        } else {
21976            None
21977        }
21978    }
21979    #[inline]
21980    fn syntax(&self) -> &SyntaxNode {
21981        &self.syntax
21982    }
21983}
21984impl AstNode for CreateTransform {
21985    #[inline]
21986    fn can_cast(kind: SyntaxKind) -> bool {
21987        kind == SyntaxKind::CREATE_TRANSFORM
21988    }
21989    #[inline]
21990    fn cast(syntax: SyntaxNode) -> Option<Self> {
21991        if Self::can_cast(syntax.kind()) {
21992            Some(Self { syntax })
21993        } else {
21994            None
21995        }
21996    }
21997    #[inline]
21998    fn syntax(&self) -> &SyntaxNode {
21999        &self.syntax
22000    }
22001}
22002impl AstNode for CreateTrigger {
22003    #[inline]
22004    fn can_cast(kind: SyntaxKind) -> bool {
22005        kind == SyntaxKind::CREATE_TRIGGER
22006    }
22007    #[inline]
22008    fn cast(syntax: SyntaxNode) -> Option<Self> {
22009        if Self::can_cast(syntax.kind()) {
22010            Some(Self { syntax })
22011        } else {
22012            None
22013        }
22014    }
22015    #[inline]
22016    fn syntax(&self) -> &SyntaxNode {
22017        &self.syntax
22018    }
22019}
22020impl AstNode for CreateType {
22021    #[inline]
22022    fn can_cast(kind: SyntaxKind) -> bool {
22023        kind == SyntaxKind::CREATE_TYPE
22024    }
22025    #[inline]
22026    fn cast(syntax: SyntaxNode) -> Option<Self> {
22027        if Self::can_cast(syntax.kind()) {
22028            Some(Self { syntax })
22029        } else {
22030            None
22031        }
22032    }
22033    #[inline]
22034    fn syntax(&self) -> &SyntaxNode {
22035        &self.syntax
22036    }
22037}
22038impl AstNode for CreateUser {
22039    #[inline]
22040    fn can_cast(kind: SyntaxKind) -> bool {
22041        kind == SyntaxKind::CREATE_USER
22042    }
22043    #[inline]
22044    fn cast(syntax: SyntaxNode) -> Option<Self> {
22045        if Self::can_cast(syntax.kind()) {
22046            Some(Self { syntax })
22047        } else {
22048            None
22049        }
22050    }
22051    #[inline]
22052    fn syntax(&self) -> &SyntaxNode {
22053        &self.syntax
22054    }
22055}
22056impl AstNode for CreateUserMapping {
22057    #[inline]
22058    fn can_cast(kind: SyntaxKind) -> bool {
22059        kind == SyntaxKind::CREATE_USER_MAPPING
22060    }
22061    #[inline]
22062    fn cast(syntax: SyntaxNode) -> Option<Self> {
22063        if Self::can_cast(syntax.kind()) {
22064            Some(Self { syntax })
22065        } else {
22066            None
22067        }
22068    }
22069    #[inline]
22070    fn syntax(&self) -> &SyntaxNode {
22071        &self.syntax
22072    }
22073}
22074impl AstNode for CreateView {
22075    #[inline]
22076    fn can_cast(kind: SyntaxKind) -> bool {
22077        kind == SyntaxKind::CREATE_VIEW
22078    }
22079    #[inline]
22080    fn cast(syntax: SyntaxNode) -> Option<Self> {
22081        if Self::can_cast(syntax.kind()) {
22082            Some(Self { syntax })
22083        } else {
22084            None
22085        }
22086    }
22087    #[inline]
22088    fn syntax(&self) -> &SyntaxNode {
22089        &self.syntax
22090    }
22091}
22092impl AstNode for CustomOp {
22093    #[inline]
22094    fn can_cast(kind: SyntaxKind) -> bool {
22095        kind == SyntaxKind::CUSTOM_OP
22096    }
22097    #[inline]
22098    fn cast(syntax: SyntaxNode) -> Option<Self> {
22099        if Self::can_cast(syntax.kind()) {
22100            Some(Self { syntax })
22101        } else {
22102            None
22103        }
22104    }
22105    #[inline]
22106    fn syntax(&self) -> &SyntaxNode {
22107        &self.syntax
22108    }
22109}
22110impl AstNode for Deallocate {
22111    #[inline]
22112    fn can_cast(kind: SyntaxKind) -> bool {
22113        kind == SyntaxKind::DEALLOCATE
22114    }
22115    #[inline]
22116    fn cast(syntax: SyntaxNode) -> Option<Self> {
22117        if Self::can_cast(syntax.kind()) {
22118            Some(Self { syntax })
22119        } else {
22120            None
22121        }
22122    }
22123    #[inline]
22124    fn syntax(&self) -> &SyntaxNode {
22125        &self.syntax
22126    }
22127}
22128impl AstNode for Declare {
22129    #[inline]
22130    fn can_cast(kind: SyntaxKind) -> bool {
22131        kind == SyntaxKind::DECLARE
22132    }
22133    #[inline]
22134    fn cast(syntax: SyntaxNode) -> Option<Self> {
22135        if Self::can_cast(syntax.kind()) {
22136            Some(Self { syntax })
22137        } else {
22138            None
22139        }
22140    }
22141    #[inline]
22142    fn syntax(&self) -> &SyntaxNode {
22143        &self.syntax
22144    }
22145}
22146impl AstNode for DefaultConstraint {
22147    #[inline]
22148    fn can_cast(kind: SyntaxKind) -> bool {
22149        kind == SyntaxKind::DEFAULT_CONSTRAINT
22150    }
22151    #[inline]
22152    fn cast(syntax: SyntaxNode) -> Option<Self> {
22153        if Self::can_cast(syntax.kind()) {
22154            Some(Self { syntax })
22155        } else {
22156            None
22157        }
22158    }
22159    #[inline]
22160    fn syntax(&self) -> &SyntaxNode {
22161        &self.syntax
22162    }
22163}
22164impl AstNode for Deferrable {
22165    #[inline]
22166    fn can_cast(kind: SyntaxKind) -> bool {
22167        kind == SyntaxKind::DEFERRABLE
22168    }
22169    #[inline]
22170    fn cast(syntax: SyntaxNode) -> Option<Self> {
22171        if Self::can_cast(syntax.kind()) {
22172            Some(Self { syntax })
22173        } else {
22174            None
22175        }
22176    }
22177    #[inline]
22178    fn syntax(&self) -> &SyntaxNode {
22179        &self.syntax
22180    }
22181}
22182impl AstNode for DeferrableConstraintOption {
22183    #[inline]
22184    fn can_cast(kind: SyntaxKind) -> bool {
22185        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22186    }
22187    #[inline]
22188    fn cast(syntax: SyntaxNode) -> Option<Self> {
22189        if Self::can_cast(syntax.kind()) {
22190            Some(Self { syntax })
22191        } else {
22192            None
22193        }
22194    }
22195    #[inline]
22196    fn syntax(&self) -> &SyntaxNode {
22197        &self.syntax
22198    }
22199}
22200impl AstNode for Delete {
22201    #[inline]
22202    fn can_cast(kind: SyntaxKind) -> bool {
22203        kind == SyntaxKind::DELETE
22204    }
22205    #[inline]
22206    fn cast(syntax: SyntaxNode) -> Option<Self> {
22207        if Self::can_cast(syntax.kind()) {
22208            Some(Self { syntax })
22209        } else {
22210            None
22211        }
22212    }
22213    #[inline]
22214    fn syntax(&self) -> &SyntaxNode {
22215        &self.syntax
22216    }
22217}
22218impl AstNode for DeleteRows {
22219    #[inline]
22220    fn can_cast(kind: SyntaxKind) -> bool {
22221        kind == SyntaxKind::DELETE_ROWS
22222    }
22223    #[inline]
22224    fn cast(syntax: SyntaxNode) -> Option<Self> {
22225        if Self::can_cast(syntax.kind()) {
22226            Some(Self { syntax })
22227        } else {
22228            None
22229        }
22230    }
22231    #[inline]
22232    fn syntax(&self) -> &SyntaxNode {
22233        &self.syntax
22234    }
22235}
22236impl AstNode for DependsOnExtension {
22237    #[inline]
22238    fn can_cast(kind: SyntaxKind) -> bool {
22239        kind == SyntaxKind::DEPENDS_ON_EXTENSION
22240    }
22241    #[inline]
22242    fn cast(syntax: SyntaxNode) -> Option<Self> {
22243        if Self::can_cast(syntax.kind()) {
22244            Some(Self { syntax })
22245        } else {
22246            None
22247        }
22248    }
22249    #[inline]
22250    fn syntax(&self) -> &SyntaxNode {
22251        &self.syntax
22252    }
22253}
22254impl AstNode for DestVertexTable {
22255    #[inline]
22256    fn can_cast(kind: SyntaxKind) -> bool {
22257        kind == SyntaxKind::DEST_VERTEX_TABLE
22258    }
22259    #[inline]
22260    fn cast(syntax: SyntaxNode) -> Option<Self> {
22261        if Self::can_cast(syntax.kind()) {
22262            Some(Self { syntax })
22263        } else {
22264            None
22265        }
22266    }
22267    #[inline]
22268    fn syntax(&self) -> &SyntaxNode {
22269        &self.syntax
22270    }
22271}
22272impl AstNode for DetachPartition {
22273    #[inline]
22274    fn can_cast(kind: SyntaxKind) -> bool {
22275        kind == SyntaxKind::DETACH_PARTITION
22276    }
22277    #[inline]
22278    fn cast(syntax: SyntaxNode) -> Option<Self> {
22279        if Self::can_cast(syntax.kind()) {
22280            Some(Self { syntax })
22281        } else {
22282            None
22283        }
22284    }
22285    #[inline]
22286    fn syntax(&self) -> &SyntaxNode {
22287        &self.syntax
22288    }
22289}
22290impl AstNode for DisableRls {
22291    #[inline]
22292    fn can_cast(kind: SyntaxKind) -> bool {
22293        kind == SyntaxKind::DISABLE_RLS
22294    }
22295    #[inline]
22296    fn cast(syntax: SyntaxNode) -> Option<Self> {
22297        if Self::can_cast(syntax.kind()) {
22298            Some(Self { syntax })
22299        } else {
22300            None
22301        }
22302    }
22303    #[inline]
22304    fn syntax(&self) -> &SyntaxNode {
22305        &self.syntax
22306    }
22307}
22308impl AstNode for DisableRule {
22309    #[inline]
22310    fn can_cast(kind: SyntaxKind) -> bool {
22311        kind == SyntaxKind::DISABLE_RULE
22312    }
22313    #[inline]
22314    fn cast(syntax: SyntaxNode) -> Option<Self> {
22315        if Self::can_cast(syntax.kind()) {
22316            Some(Self { syntax })
22317        } else {
22318            None
22319        }
22320    }
22321    #[inline]
22322    fn syntax(&self) -> &SyntaxNode {
22323        &self.syntax
22324    }
22325}
22326impl AstNode for DisableTrigger {
22327    #[inline]
22328    fn can_cast(kind: SyntaxKind) -> bool {
22329        kind == SyntaxKind::DISABLE_TRIGGER
22330    }
22331    #[inline]
22332    fn cast(syntax: SyntaxNode) -> Option<Self> {
22333        if Self::can_cast(syntax.kind()) {
22334            Some(Self { syntax })
22335        } else {
22336            None
22337        }
22338    }
22339    #[inline]
22340    fn syntax(&self) -> &SyntaxNode {
22341        &self.syntax
22342    }
22343}
22344impl AstNode for Discard {
22345    #[inline]
22346    fn can_cast(kind: SyntaxKind) -> bool {
22347        kind == SyntaxKind::DISCARD
22348    }
22349    #[inline]
22350    fn cast(syntax: SyntaxNode) -> Option<Self> {
22351        if Self::can_cast(syntax.kind()) {
22352            Some(Self { syntax })
22353        } else {
22354            None
22355        }
22356    }
22357    #[inline]
22358    fn syntax(&self) -> &SyntaxNode {
22359        &self.syntax
22360    }
22361}
22362impl AstNode for DistinctClause {
22363    #[inline]
22364    fn can_cast(kind: SyntaxKind) -> bool {
22365        kind == SyntaxKind::DISTINCT_CLAUSE
22366    }
22367    #[inline]
22368    fn cast(syntax: SyntaxNode) -> Option<Self> {
22369        if Self::can_cast(syntax.kind()) {
22370            Some(Self { syntax })
22371        } else {
22372            None
22373        }
22374    }
22375    #[inline]
22376    fn syntax(&self) -> &SyntaxNode {
22377        &self.syntax
22378    }
22379}
22380impl AstNode for Do {
22381    #[inline]
22382    fn can_cast(kind: SyntaxKind) -> bool {
22383        kind == SyntaxKind::DO
22384    }
22385    #[inline]
22386    fn cast(syntax: SyntaxNode) -> Option<Self> {
22387        if Self::can_cast(syntax.kind()) {
22388            Some(Self { syntax })
22389        } else {
22390            None
22391        }
22392    }
22393    #[inline]
22394    fn syntax(&self) -> &SyntaxNode {
22395        &self.syntax
22396    }
22397}
22398impl AstNode for DoubleType {
22399    #[inline]
22400    fn can_cast(kind: SyntaxKind) -> bool {
22401        kind == SyntaxKind::DOUBLE_TYPE
22402    }
22403    #[inline]
22404    fn cast(syntax: SyntaxNode) -> Option<Self> {
22405        if Self::can_cast(syntax.kind()) {
22406            Some(Self { syntax })
22407        } else {
22408            None
22409        }
22410    }
22411    #[inline]
22412    fn syntax(&self) -> &SyntaxNode {
22413        &self.syntax
22414    }
22415}
22416impl AstNode for Drop {
22417    #[inline]
22418    fn can_cast(kind: SyntaxKind) -> bool {
22419        kind == SyntaxKind::DROP
22420    }
22421    #[inline]
22422    fn cast(syntax: SyntaxNode) -> Option<Self> {
22423        if Self::can_cast(syntax.kind()) {
22424            Some(Self { syntax })
22425        } else {
22426            None
22427        }
22428    }
22429    #[inline]
22430    fn syntax(&self) -> &SyntaxNode {
22431        &self.syntax
22432    }
22433}
22434impl AstNode for DropAccessMethod {
22435    #[inline]
22436    fn can_cast(kind: SyntaxKind) -> bool {
22437        kind == SyntaxKind::DROP_ACCESS_METHOD
22438    }
22439    #[inline]
22440    fn cast(syntax: SyntaxNode) -> Option<Self> {
22441        if Self::can_cast(syntax.kind()) {
22442            Some(Self { syntax })
22443        } else {
22444            None
22445        }
22446    }
22447    #[inline]
22448    fn syntax(&self) -> &SyntaxNode {
22449        &self.syntax
22450    }
22451}
22452impl AstNode for DropAggregate {
22453    #[inline]
22454    fn can_cast(kind: SyntaxKind) -> bool {
22455        kind == SyntaxKind::DROP_AGGREGATE
22456    }
22457    #[inline]
22458    fn cast(syntax: SyntaxNode) -> Option<Self> {
22459        if Self::can_cast(syntax.kind()) {
22460            Some(Self { syntax })
22461        } else {
22462            None
22463        }
22464    }
22465    #[inline]
22466    fn syntax(&self) -> &SyntaxNode {
22467        &self.syntax
22468    }
22469}
22470impl AstNode for DropAttribute {
22471    #[inline]
22472    fn can_cast(kind: SyntaxKind) -> bool {
22473        kind == SyntaxKind::DROP_ATTRIBUTE
22474    }
22475    #[inline]
22476    fn cast(syntax: SyntaxNode) -> Option<Self> {
22477        if Self::can_cast(syntax.kind()) {
22478            Some(Self { syntax })
22479        } else {
22480            None
22481        }
22482    }
22483    #[inline]
22484    fn syntax(&self) -> &SyntaxNode {
22485        &self.syntax
22486    }
22487}
22488impl AstNode for DropCast {
22489    #[inline]
22490    fn can_cast(kind: SyntaxKind) -> bool {
22491        kind == SyntaxKind::DROP_CAST
22492    }
22493    #[inline]
22494    fn cast(syntax: SyntaxNode) -> Option<Self> {
22495        if Self::can_cast(syntax.kind()) {
22496            Some(Self { syntax })
22497        } else {
22498            None
22499        }
22500    }
22501    #[inline]
22502    fn syntax(&self) -> &SyntaxNode {
22503        &self.syntax
22504    }
22505}
22506impl AstNode for DropCollation {
22507    #[inline]
22508    fn can_cast(kind: SyntaxKind) -> bool {
22509        kind == SyntaxKind::DROP_COLLATION
22510    }
22511    #[inline]
22512    fn cast(syntax: SyntaxNode) -> Option<Self> {
22513        if Self::can_cast(syntax.kind()) {
22514            Some(Self { syntax })
22515        } else {
22516            None
22517        }
22518    }
22519    #[inline]
22520    fn syntax(&self) -> &SyntaxNode {
22521        &self.syntax
22522    }
22523}
22524impl AstNode for DropColumn {
22525    #[inline]
22526    fn can_cast(kind: SyntaxKind) -> bool {
22527        kind == SyntaxKind::DROP_COLUMN
22528    }
22529    #[inline]
22530    fn cast(syntax: SyntaxNode) -> Option<Self> {
22531        if Self::can_cast(syntax.kind()) {
22532            Some(Self { syntax })
22533        } else {
22534            None
22535        }
22536    }
22537    #[inline]
22538    fn syntax(&self) -> &SyntaxNode {
22539        &self.syntax
22540    }
22541}
22542impl AstNode for DropConstraint {
22543    #[inline]
22544    fn can_cast(kind: SyntaxKind) -> bool {
22545        kind == SyntaxKind::DROP_CONSTRAINT
22546    }
22547    #[inline]
22548    fn cast(syntax: SyntaxNode) -> Option<Self> {
22549        if Self::can_cast(syntax.kind()) {
22550            Some(Self { syntax })
22551        } else {
22552            None
22553        }
22554    }
22555    #[inline]
22556    fn syntax(&self) -> &SyntaxNode {
22557        &self.syntax
22558    }
22559}
22560impl AstNode for DropConversion {
22561    #[inline]
22562    fn can_cast(kind: SyntaxKind) -> bool {
22563        kind == SyntaxKind::DROP_CONVERSION
22564    }
22565    #[inline]
22566    fn cast(syntax: SyntaxNode) -> Option<Self> {
22567        if Self::can_cast(syntax.kind()) {
22568            Some(Self { syntax })
22569        } else {
22570            None
22571        }
22572    }
22573    #[inline]
22574    fn syntax(&self) -> &SyntaxNode {
22575        &self.syntax
22576    }
22577}
22578impl AstNode for DropDatabase {
22579    #[inline]
22580    fn can_cast(kind: SyntaxKind) -> bool {
22581        kind == SyntaxKind::DROP_DATABASE
22582    }
22583    #[inline]
22584    fn cast(syntax: SyntaxNode) -> Option<Self> {
22585        if Self::can_cast(syntax.kind()) {
22586            Some(Self { syntax })
22587        } else {
22588            None
22589        }
22590    }
22591    #[inline]
22592    fn syntax(&self) -> &SyntaxNode {
22593        &self.syntax
22594    }
22595}
22596impl AstNode for DropDefault {
22597    #[inline]
22598    fn can_cast(kind: SyntaxKind) -> bool {
22599        kind == SyntaxKind::DROP_DEFAULT
22600    }
22601    #[inline]
22602    fn cast(syntax: SyntaxNode) -> Option<Self> {
22603        if Self::can_cast(syntax.kind()) {
22604            Some(Self { syntax })
22605        } else {
22606            None
22607        }
22608    }
22609    #[inline]
22610    fn syntax(&self) -> &SyntaxNode {
22611        &self.syntax
22612    }
22613}
22614impl AstNode for DropDomain {
22615    #[inline]
22616    fn can_cast(kind: SyntaxKind) -> bool {
22617        kind == SyntaxKind::DROP_DOMAIN
22618    }
22619    #[inline]
22620    fn cast(syntax: SyntaxNode) -> Option<Self> {
22621        if Self::can_cast(syntax.kind()) {
22622            Some(Self { syntax })
22623        } else {
22624            None
22625        }
22626    }
22627    #[inline]
22628    fn syntax(&self) -> &SyntaxNode {
22629        &self.syntax
22630    }
22631}
22632impl AstNode for DropEdgeTables {
22633    #[inline]
22634    fn can_cast(kind: SyntaxKind) -> bool {
22635        kind == SyntaxKind::DROP_EDGE_TABLES
22636    }
22637    #[inline]
22638    fn cast(syntax: SyntaxNode) -> Option<Self> {
22639        if Self::can_cast(syntax.kind()) {
22640            Some(Self { syntax })
22641        } else {
22642            None
22643        }
22644    }
22645    #[inline]
22646    fn syntax(&self) -> &SyntaxNode {
22647        &self.syntax
22648    }
22649}
22650impl AstNode for DropEventTrigger {
22651    #[inline]
22652    fn can_cast(kind: SyntaxKind) -> bool {
22653        kind == SyntaxKind::DROP_EVENT_TRIGGER
22654    }
22655    #[inline]
22656    fn cast(syntax: SyntaxNode) -> Option<Self> {
22657        if Self::can_cast(syntax.kind()) {
22658            Some(Self { syntax })
22659        } else {
22660            None
22661        }
22662    }
22663    #[inline]
22664    fn syntax(&self) -> &SyntaxNode {
22665        &self.syntax
22666    }
22667}
22668impl AstNode for DropExpression {
22669    #[inline]
22670    fn can_cast(kind: SyntaxKind) -> bool {
22671        kind == SyntaxKind::DROP_EXPRESSION
22672    }
22673    #[inline]
22674    fn cast(syntax: SyntaxNode) -> Option<Self> {
22675        if Self::can_cast(syntax.kind()) {
22676            Some(Self { syntax })
22677        } else {
22678            None
22679        }
22680    }
22681    #[inline]
22682    fn syntax(&self) -> &SyntaxNode {
22683        &self.syntax
22684    }
22685}
22686impl AstNode for DropExtension {
22687    #[inline]
22688    fn can_cast(kind: SyntaxKind) -> bool {
22689        kind == SyntaxKind::DROP_EXTENSION
22690    }
22691    #[inline]
22692    fn cast(syntax: SyntaxNode) -> Option<Self> {
22693        if Self::can_cast(syntax.kind()) {
22694            Some(Self { syntax })
22695        } else {
22696            None
22697        }
22698    }
22699    #[inline]
22700    fn syntax(&self) -> &SyntaxNode {
22701        &self.syntax
22702    }
22703}
22704impl AstNode for DropForeignDataWrapper {
22705    #[inline]
22706    fn can_cast(kind: SyntaxKind) -> bool {
22707        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22708    }
22709    #[inline]
22710    fn cast(syntax: SyntaxNode) -> Option<Self> {
22711        if Self::can_cast(syntax.kind()) {
22712            Some(Self { syntax })
22713        } else {
22714            None
22715        }
22716    }
22717    #[inline]
22718    fn syntax(&self) -> &SyntaxNode {
22719        &self.syntax
22720    }
22721}
22722impl AstNode for DropForeignTable {
22723    #[inline]
22724    fn can_cast(kind: SyntaxKind) -> bool {
22725        kind == SyntaxKind::DROP_FOREIGN_TABLE
22726    }
22727    #[inline]
22728    fn cast(syntax: SyntaxNode) -> Option<Self> {
22729        if Self::can_cast(syntax.kind()) {
22730            Some(Self { syntax })
22731        } else {
22732            None
22733        }
22734    }
22735    #[inline]
22736    fn syntax(&self) -> &SyntaxNode {
22737        &self.syntax
22738    }
22739}
22740impl AstNode for DropFunction {
22741    #[inline]
22742    fn can_cast(kind: SyntaxKind) -> bool {
22743        kind == SyntaxKind::DROP_FUNCTION
22744    }
22745    #[inline]
22746    fn cast(syntax: SyntaxNode) -> Option<Self> {
22747        if Self::can_cast(syntax.kind()) {
22748            Some(Self { syntax })
22749        } else {
22750            None
22751        }
22752    }
22753    #[inline]
22754    fn syntax(&self) -> &SyntaxNode {
22755        &self.syntax
22756    }
22757}
22758impl AstNode for DropGroup {
22759    #[inline]
22760    fn can_cast(kind: SyntaxKind) -> bool {
22761        kind == SyntaxKind::DROP_GROUP
22762    }
22763    #[inline]
22764    fn cast(syntax: SyntaxNode) -> Option<Self> {
22765        if Self::can_cast(syntax.kind()) {
22766            Some(Self { syntax })
22767        } else {
22768            None
22769        }
22770    }
22771    #[inline]
22772    fn syntax(&self) -> &SyntaxNode {
22773        &self.syntax
22774    }
22775}
22776impl AstNode for DropIdentity {
22777    #[inline]
22778    fn can_cast(kind: SyntaxKind) -> bool {
22779        kind == SyntaxKind::DROP_IDENTITY
22780    }
22781    #[inline]
22782    fn cast(syntax: SyntaxNode) -> Option<Self> {
22783        if Self::can_cast(syntax.kind()) {
22784            Some(Self { syntax })
22785        } else {
22786            None
22787        }
22788    }
22789    #[inline]
22790    fn syntax(&self) -> &SyntaxNode {
22791        &self.syntax
22792    }
22793}
22794impl AstNode for DropIndex {
22795    #[inline]
22796    fn can_cast(kind: SyntaxKind) -> bool {
22797        kind == SyntaxKind::DROP_INDEX
22798    }
22799    #[inline]
22800    fn cast(syntax: SyntaxNode) -> Option<Self> {
22801        if Self::can_cast(syntax.kind()) {
22802            Some(Self { syntax })
22803        } else {
22804            None
22805        }
22806    }
22807    #[inline]
22808    fn syntax(&self) -> &SyntaxNode {
22809        &self.syntax
22810    }
22811}
22812impl AstNode for DropLanguage {
22813    #[inline]
22814    fn can_cast(kind: SyntaxKind) -> bool {
22815        kind == SyntaxKind::DROP_LANGUAGE
22816    }
22817    #[inline]
22818    fn cast(syntax: SyntaxNode) -> Option<Self> {
22819        if Self::can_cast(syntax.kind()) {
22820            Some(Self { syntax })
22821        } else {
22822            None
22823        }
22824    }
22825    #[inline]
22826    fn syntax(&self) -> &SyntaxNode {
22827        &self.syntax
22828    }
22829}
22830impl AstNode for DropMaterializedView {
22831    #[inline]
22832    fn can_cast(kind: SyntaxKind) -> bool {
22833        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
22834    }
22835    #[inline]
22836    fn cast(syntax: SyntaxNode) -> Option<Self> {
22837        if Self::can_cast(syntax.kind()) {
22838            Some(Self { syntax })
22839        } else {
22840            None
22841        }
22842    }
22843    #[inline]
22844    fn syntax(&self) -> &SyntaxNode {
22845        &self.syntax
22846    }
22847}
22848impl AstNode for DropNotNull {
22849    #[inline]
22850    fn can_cast(kind: SyntaxKind) -> bool {
22851        kind == SyntaxKind::DROP_NOT_NULL
22852    }
22853    #[inline]
22854    fn cast(syntax: SyntaxNode) -> Option<Self> {
22855        if Self::can_cast(syntax.kind()) {
22856            Some(Self { syntax })
22857        } else {
22858            None
22859        }
22860    }
22861    #[inline]
22862    fn syntax(&self) -> &SyntaxNode {
22863        &self.syntax
22864    }
22865}
22866impl AstNode for DropOpClassOption {
22867    #[inline]
22868    fn can_cast(kind: SyntaxKind) -> bool {
22869        kind == SyntaxKind::DROP_OP_CLASS_OPTION
22870    }
22871    #[inline]
22872    fn cast(syntax: SyntaxNode) -> Option<Self> {
22873        if Self::can_cast(syntax.kind()) {
22874            Some(Self { syntax })
22875        } else {
22876            None
22877        }
22878    }
22879    #[inline]
22880    fn syntax(&self) -> &SyntaxNode {
22881        &self.syntax
22882    }
22883}
22884impl AstNode for DropOpClassOptionList {
22885    #[inline]
22886    fn can_cast(kind: SyntaxKind) -> bool {
22887        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
22888    }
22889    #[inline]
22890    fn cast(syntax: SyntaxNode) -> Option<Self> {
22891        if Self::can_cast(syntax.kind()) {
22892            Some(Self { syntax })
22893        } else {
22894            None
22895        }
22896    }
22897    #[inline]
22898    fn syntax(&self) -> &SyntaxNode {
22899        &self.syntax
22900    }
22901}
22902impl AstNode for DropOpClassOptions {
22903    #[inline]
22904    fn can_cast(kind: SyntaxKind) -> bool {
22905        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
22906    }
22907    #[inline]
22908    fn cast(syntax: SyntaxNode) -> Option<Self> {
22909        if Self::can_cast(syntax.kind()) {
22910            Some(Self { syntax })
22911        } else {
22912            None
22913        }
22914    }
22915    #[inline]
22916    fn syntax(&self) -> &SyntaxNode {
22917        &self.syntax
22918    }
22919}
22920impl AstNode for DropOperator {
22921    #[inline]
22922    fn can_cast(kind: SyntaxKind) -> bool {
22923        kind == SyntaxKind::DROP_OPERATOR
22924    }
22925    #[inline]
22926    fn cast(syntax: SyntaxNode) -> Option<Self> {
22927        if Self::can_cast(syntax.kind()) {
22928            Some(Self { syntax })
22929        } else {
22930            None
22931        }
22932    }
22933    #[inline]
22934    fn syntax(&self) -> &SyntaxNode {
22935        &self.syntax
22936    }
22937}
22938impl AstNode for DropOperatorClass {
22939    #[inline]
22940    fn can_cast(kind: SyntaxKind) -> bool {
22941        kind == SyntaxKind::DROP_OPERATOR_CLASS
22942    }
22943    #[inline]
22944    fn cast(syntax: SyntaxNode) -> Option<Self> {
22945        if Self::can_cast(syntax.kind()) {
22946            Some(Self { syntax })
22947        } else {
22948            None
22949        }
22950    }
22951    #[inline]
22952    fn syntax(&self) -> &SyntaxNode {
22953        &self.syntax
22954    }
22955}
22956impl AstNode for DropOperatorFamily {
22957    #[inline]
22958    fn can_cast(kind: SyntaxKind) -> bool {
22959        kind == SyntaxKind::DROP_OPERATOR_FAMILY
22960    }
22961    #[inline]
22962    fn cast(syntax: SyntaxNode) -> Option<Self> {
22963        if Self::can_cast(syntax.kind()) {
22964            Some(Self { syntax })
22965        } else {
22966            None
22967        }
22968    }
22969    #[inline]
22970    fn syntax(&self) -> &SyntaxNode {
22971        &self.syntax
22972    }
22973}
22974impl AstNode for DropOwned {
22975    #[inline]
22976    fn can_cast(kind: SyntaxKind) -> bool {
22977        kind == SyntaxKind::DROP_OWNED
22978    }
22979    #[inline]
22980    fn cast(syntax: SyntaxNode) -> Option<Self> {
22981        if Self::can_cast(syntax.kind()) {
22982            Some(Self { syntax })
22983        } else {
22984            None
22985        }
22986    }
22987    #[inline]
22988    fn syntax(&self) -> &SyntaxNode {
22989        &self.syntax
22990    }
22991}
22992impl AstNode for DropPolicy {
22993    #[inline]
22994    fn can_cast(kind: SyntaxKind) -> bool {
22995        kind == SyntaxKind::DROP_POLICY
22996    }
22997    #[inline]
22998    fn cast(syntax: SyntaxNode) -> Option<Self> {
22999        if Self::can_cast(syntax.kind()) {
23000            Some(Self { syntax })
23001        } else {
23002            None
23003        }
23004    }
23005    #[inline]
23006    fn syntax(&self) -> &SyntaxNode {
23007        &self.syntax
23008    }
23009}
23010impl AstNode for DropProcedure {
23011    #[inline]
23012    fn can_cast(kind: SyntaxKind) -> bool {
23013        kind == SyntaxKind::DROP_PROCEDURE
23014    }
23015    #[inline]
23016    fn cast(syntax: SyntaxNode) -> Option<Self> {
23017        if Self::can_cast(syntax.kind()) {
23018            Some(Self { syntax })
23019        } else {
23020            None
23021        }
23022    }
23023    #[inline]
23024    fn syntax(&self) -> &SyntaxNode {
23025        &self.syntax
23026    }
23027}
23028impl AstNode for DropPropertyGraph {
23029    #[inline]
23030    fn can_cast(kind: SyntaxKind) -> bool {
23031        kind == SyntaxKind::DROP_PROPERTY_GRAPH
23032    }
23033    #[inline]
23034    fn cast(syntax: SyntaxNode) -> Option<Self> {
23035        if Self::can_cast(syntax.kind()) {
23036            Some(Self { syntax })
23037        } else {
23038            None
23039        }
23040    }
23041    #[inline]
23042    fn syntax(&self) -> &SyntaxNode {
23043        &self.syntax
23044    }
23045}
23046impl AstNode for DropPublication {
23047    #[inline]
23048    fn can_cast(kind: SyntaxKind) -> bool {
23049        kind == SyntaxKind::DROP_PUBLICATION
23050    }
23051    #[inline]
23052    fn cast(syntax: SyntaxNode) -> Option<Self> {
23053        if Self::can_cast(syntax.kind()) {
23054            Some(Self { syntax })
23055        } else {
23056            None
23057        }
23058    }
23059    #[inline]
23060    fn syntax(&self) -> &SyntaxNode {
23061        &self.syntax
23062    }
23063}
23064impl AstNode for DropRole {
23065    #[inline]
23066    fn can_cast(kind: SyntaxKind) -> bool {
23067        kind == SyntaxKind::DROP_ROLE
23068    }
23069    #[inline]
23070    fn cast(syntax: SyntaxNode) -> Option<Self> {
23071        if Self::can_cast(syntax.kind()) {
23072            Some(Self { syntax })
23073        } else {
23074            None
23075        }
23076    }
23077    #[inline]
23078    fn syntax(&self) -> &SyntaxNode {
23079        &self.syntax
23080    }
23081}
23082impl AstNode for DropRoutine {
23083    #[inline]
23084    fn can_cast(kind: SyntaxKind) -> bool {
23085        kind == SyntaxKind::DROP_ROUTINE
23086    }
23087    #[inline]
23088    fn cast(syntax: SyntaxNode) -> Option<Self> {
23089        if Self::can_cast(syntax.kind()) {
23090            Some(Self { syntax })
23091        } else {
23092            None
23093        }
23094    }
23095    #[inline]
23096    fn syntax(&self) -> &SyntaxNode {
23097        &self.syntax
23098    }
23099}
23100impl AstNode for DropRule {
23101    #[inline]
23102    fn can_cast(kind: SyntaxKind) -> bool {
23103        kind == SyntaxKind::DROP_RULE
23104    }
23105    #[inline]
23106    fn cast(syntax: SyntaxNode) -> Option<Self> {
23107        if Self::can_cast(syntax.kind()) {
23108            Some(Self { syntax })
23109        } else {
23110            None
23111        }
23112    }
23113    #[inline]
23114    fn syntax(&self) -> &SyntaxNode {
23115        &self.syntax
23116    }
23117}
23118impl AstNode for DropSchema {
23119    #[inline]
23120    fn can_cast(kind: SyntaxKind) -> bool {
23121        kind == SyntaxKind::DROP_SCHEMA
23122    }
23123    #[inline]
23124    fn cast(syntax: SyntaxNode) -> Option<Self> {
23125        if Self::can_cast(syntax.kind()) {
23126            Some(Self { syntax })
23127        } else {
23128            None
23129        }
23130    }
23131    #[inline]
23132    fn syntax(&self) -> &SyntaxNode {
23133        &self.syntax
23134    }
23135}
23136impl AstNode for DropSequence {
23137    #[inline]
23138    fn can_cast(kind: SyntaxKind) -> bool {
23139        kind == SyntaxKind::DROP_SEQUENCE
23140    }
23141    #[inline]
23142    fn cast(syntax: SyntaxNode) -> Option<Self> {
23143        if Self::can_cast(syntax.kind()) {
23144            Some(Self { syntax })
23145        } else {
23146            None
23147        }
23148    }
23149    #[inline]
23150    fn syntax(&self) -> &SyntaxNode {
23151        &self.syntax
23152    }
23153}
23154impl AstNode for DropServer {
23155    #[inline]
23156    fn can_cast(kind: SyntaxKind) -> bool {
23157        kind == SyntaxKind::DROP_SERVER
23158    }
23159    #[inline]
23160    fn cast(syntax: SyntaxNode) -> Option<Self> {
23161        if Self::can_cast(syntax.kind()) {
23162            Some(Self { syntax })
23163        } else {
23164            None
23165        }
23166    }
23167    #[inline]
23168    fn syntax(&self) -> &SyntaxNode {
23169        &self.syntax
23170    }
23171}
23172impl AstNode for DropStatistics {
23173    #[inline]
23174    fn can_cast(kind: SyntaxKind) -> bool {
23175        kind == SyntaxKind::DROP_STATISTICS
23176    }
23177    #[inline]
23178    fn cast(syntax: SyntaxNode) -> Option<Self> {
23179        if Self::can_cast(syntax.kind()) {
23180            Some(Self { syntax })
23181        } else {
23182            None
23183        }
23184    }
23185    #[inline]
23186    fn syntax(&self) -> &SyntaxNode {
23187        &self.syntax
23188    }
23189}
23190impl AstNode for DropSubscription {
23191    #[inline]
23192    fn can_cast(kind: SyntaxKind) -> bool {
23193        kind == SyntaxKind::DROP_SUBSCRIPTION
23194    }
23195    #[inline]
23196    fn cast(syntax: SyntaxNode) -> Option<Self> {
23197        if Self::can_cast(syntax.kind()) {
23198            Some(Self { syntax })
23199        } else {
23200            None
23201        }
23202    }
23203    #[inline]
23204    fn syntax(&self) -> &SyntaxNode {
23205        &self.syntax
23206    }
23207}
23208impl AstNode for DropTable {
23209    #[inline]
23210    fn can_cast(kind: SyntaxKind) -> bool {
23211        kind == SyntaxKind::DROP_TABLE
23212    }
23213    #[inline]
23214    fn cast(syntax: SyntaxNode) -> Option<Self> {
23215        if Self::can_cast(syntax.kind()) {
23216            Some(Self { syntax })
23217        } else {
23218            None
23219        }
23220    }
23221    #[inline]
23222    fn syntax(&self) -> &SyntaxNode {
23223        &self.syntax
23224    }
23225}
23226impl AstNode for DropTablespace {
23227    #[inline]
23228    fn can_cast(kind: SyntaxKind) -> bool {
23229        kind == SyntaxKind::DROP_TABLESPACE
23230    }
23231    #[inline]
23232    fn cast(syntax: SyntaxNode) -> Option<Self> {
23233        if Self::can_cast(syntax.kind()) {
23234            Some(Self { syntax })
23235        } else {
23236            None
23237        }
23238    }
23239    #[inline]
23240    fn syntax(&self) -> &SyntaxNode {
23241        &self.syntax
23242    }
23243}
23244impl AstNode for DropTextSearchConfig {
23245    #[inline]
23246    fn can_cast(kind: SyntaxKind) -> bool {
23247        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
23248    }
23249    #[inline]
23250    fn cast(syntax: SyntaxNode) -> Option<Self> {
23251        if Self::can_cast(syntax.kind()) {
23252            Some(Self { syntax })
23253        } else {
23254            None
23255        }
23256    }
23257    #[inline]
23258    fn syntax(&self) -> &SyntaxNode {
23259        &self.syntax
23260    }
23261}
23262impl AstNode for DropTextSearchDict {
23263    #[inline]
23264    fn can_cast(kind: SyntaxKind) -> bool {
23265        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
23266    }
23267    #[inline]
23268    fn cast(syntax: SyntaxNode) -> Option<Self> {
23269        if Self::can_cast(syntax.kind()) {
23270            Some(Self { syntax })
23271        } else {
23272            None
23273        }
23274    }
23275    #[inline]
23276    fn syntax(&self) -> &SyntaxNode {
23277        &self.syntax
23278    }
23279}
23280impl AstNode for DropTextSearchParser {
23281    #[inline]
23282    fn can_cast(kind: SyntaxKind) -> bool {
23283        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
23284    }
23285    #[inline]
23286    fn cast(syntax: SyntaxNode) -> Option<Self> {
23287        if Self::can_cast(syntax.kind()) {
23288            Some(Self { syntax })
23289        } else {
23290            None
23291        }
23292    }
23293    #[inline]
23294    fn syntax(&self) -> &SyntaxNode {
23295        &self.syntax
23296    }
23297}
23298impl AstNode for DropTextSearchTemplate {
23299    #[inline]
23300    fn can_cast(kind: SyntaxKind) -> bool {
23301        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
23302    }
23303    #[inline]
23304    fn cast(syntax: SyntaxNode) -> Option<Self> {
23305        if Self::can_cast(syntax.kind()) {
23306            Some(Self { syntax })
23307        } else {
23308            None
23309        }
23310    }
23311    #[inline]
23312    fn syntax(&self) -> &SyntaxNode {
23313        &self.syntax
23314    }
23315}
23316impl AstNode for DropTransform {
23317    #[inline]
23318    fn can_cast(kind: SyntaxKind) -> bool {
23319        kind == SyntaxKind::DROP_TRANSFORM
23320    }
23321    #[inline]
23322    fn cast(syntax: SyntaxNode) -> Option<Self> {
23323        if Self::can_cast(syntax.kind()) {
23324            Some(Self { syntax })
23325        } else {
23326            None
23327        }
23328    }
23329    #[inline]
23330    fn syntax(&self) -> &SyntaxNode {
23331        &self.syntax
23332    }
23333}
23334impl AstNode for DropTrigger {
23335    #[inline]
23336    fn can_cast(kind: SyntaxKind) -> bool {
23337        kind == SyntaxKind::DROP_TRIGGER
23338    }
23339    #[inline]
23340    fn cast(syntax: SyntaxNode) -> Option<Self> {
23341        if Self::can_cast(syntax.kind()) {
23342            Some(Self { syntax })
23343        } else {
23344            None
23345        }
23346    }
23347    #[inline]
23348    fn syntax(&self) -> &SyntaxNode {
23349        &self.syntax
23350    }
23351}
23352impl AstNode for DropType {
23353    #[inline]
23354    fn can_cast(kind: SyntaxKind) -> bool {
23355        kind == SyntaxKind::DROP_TYPE
23356    }
23357    #[inline]
23358    fn cast(syntax: SyntaxNode) -> Option<Self> {
23359        if Self::can_cast(syntax.kind()) {
23360            Some(Self { syntax })
23361        } else {
23362            None
23363        }
23364    }
23365    #[inline]
23366    fn syntax(&self) -> &SyntaxNode {
23367        &self.syntax
23368    }
23369}
23370impl AstNode for DropUser {
23371    #[inline]
23372    fn can_cast(kind: SyntaxKind) -> bool {
23373        kind == SyntaxKind::DROP_USER
23374    }
23375    #[inline]
23376    fn cast(syntax: SyntaxNode) -> Option<Self> {
23377        if Self::can_cast(syntax.kind()) {
23378            Some(Self { syntax })
23379        } else {
23380            None
23381        }
23382    }
23383    #[inline]
23384    fn syntax(&self) -> &SyntaxNode {
23385        &self.syntax
23386    }
23387}
23388impl AstNode for DropUserMapping {
23389    #[inline]
23390    fn can_cast(kind: SyntaxKind) -> bool {
23391        kind == SyntaxKind::DROP_USER_MAPPING
23392    }
23393    #[inline]
23394    fn cast(syntax: SyntaxNode) -> Option<Self> {
23395        if Self::can_cast(syntax.kind()) {
23396            Some(Self { syntax })
23397        } else {
23398            None
23399        }
23400    }
23401    #[inline]
23402    fn syntax(&self) -> &SyntaxNode {
23403        &self.syntax
23404    }
23405}
23406impl AstNode for DropVertexEdgeLabel {
23407    #[inline]
23408    fn can_cast(kind: SyntaxKind) -> bool {
23409        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
23410    }
23411    #[inline]
23412    fn cast(syntax: SyntaxNode) -> Option<Self> {
23413        if Self::can_cast(syntax.kind()) {
23414            Some(Self { syntax })
23415        } else {
23416            None
23417        }
23418    }
23419    #[inline]
23420    fn syntax(&self) -> &SyntaxNode {
23421        &self.syntax
23422    }
23423}
23424impl AstNode for DropVertexEdgeLabelProperties {
23425    #[inline]
23426    fn can_cast(kind: SyntaxKind) -> bool {
23427        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
23428    }
23429    #[inline]
23430    fn cast(syntax: SyntaxNode) -> Option<Self> {
23431        if Self::can_cast(syntax.kind()) {
23432            Some(Self { syntax })
23433        } else {
23434            None
23435        }
23436    }
23437    #[inline]
23438    fn syntax(&self) -> &SyntaxNode {
23439        &self.syntax
23440    }
23441}
23442impl AstNode for DropVertexTables {
23443    #[inline]
23444    fn can_cast(kind: SyntaxKind) -> bool {
23445        kind == SyntaxKind::DROP_VERTEX_TABLES
23446    }
23447    #[inline]
23448    fn cast(syntax: SyntaxNode) -> Option<Self> {
23449        if Self::can_cast(syntax.kind()) {
23450            Some(Self { syntax })
23451        } else {
23452            None
23453        }
23454    }
23455    #[inline]
23456    fn syntax(&self) -> &SyntaxNode {
23457        &self.syntax
23458    }
23459}
23460impl AstNode for DropView {
23461    #[inline]
23462    fn can_cast(kind: SyntaxKind) -> bool {
23463        kind == SyntaxKind::DROP_VIEW
23464    }
23465    #[inline]
23466    fn cast(syntax: SyntaxNode) -> Option<Self> {
23467        if Self::can_cast(syntax.kind()) {
23468            Some(Self { syntax })
23469        } else {
23470            None
23471        }
23472    }
23473    #[inline]
23474    fn syntax(&self) -> &SyntaxNode {
23475        &self.syntax
23476    }
23477}
23478impl AstNode for EdgeAny {
23479    #[inline]
23480    fn can_cast(kind: SyntaxKind) -> bool {
23481        kind == SyntaxKind::EDGE_ANY
23482    }
23483    #[inline]
23484    fn cast(syntax: SyntaxNode) -> Option<Self> {
23485        if Self::can_cast(syntax.kind()) {
23486            Some(Self { syntax })
23487        } else {
23488            None
23489        }
23490    }
23491    #[inline]
23492    fn syntax(&self) -> &SyntaxNode {
23493        &self.syntax
23494    }
23495}
23496impl AstNode for EdgeLeft {
23497    #[inline]
23498    fn can_cast(kind: SyntaxKind) -> bool {
23499        kind == SyntaxKind::EDGE_LEFT
23500    }
23501    #[inline]
23502    fn cast(syntax: SyntaxNode) -> Option<Self> {
23503        if Self::can_cast(syntax.kind()) {
23504            Some(Self { syntax })
23505        } else {
23506            None
23507        }
23508    }
23509    #[inline]
23510    fn syntax(&self) -> &SyntaxNode {
23511        &self.syntax
23512    }
23513}
23514impl AstNode for EdgeRight {
23515    #[inline]
23516    fn can_cast(kind: SyntaxKind) -> bool {
23517        kind == SyntaxKind::EDGE_RIGHT
23518    }
23519    #[inline]
23520    fn cast(syntax: SyntaxNode) -> Option<Self> {
23521        if Self::can_cast(syntax.kind()) {
23522            Some(Self { syntax })
23523        } else {
23524            None
23525        }
23526    }
23527    #[inline]
23528    fn syntax(&self) -> &SyntaxNode {
23529        &self.syntax
23530    }
23531}
23532impl AstNode for EdgeTableDef {
23533    #[inline]
23534    fn can_cast(kind: SyntaxKind) -> bool {
23535        kind == SyntaxKind::EDGE_TABLE_DEF
23536    }
23537    #[inline]
23538    fn cast(syntax: SyntaxNode) -> Option<Self> {
23539        if Self::can_cast(syntax.kind()) {
23540            Some(Self { syntax })
23541        } else {
23542            None
23543        }
23544    }
23545    #[inline]
23546    fn syntax(&self) -> &SyntaxNode {
23547        &self.syntax
23548    }
23549}
23550impl AstNode for EdgeTables {
23551    #[inline]
23552    fn can_cast(kind: SyntaxKind) -> bool {
23553        kind == SyntaxKind::EDGE_TABLES
23554    }
23555    #[inline]
23556    fn cast(syntax: SyntaxNode) -> Option<Self> {
23557        if Self::can_cast(syntax.kind()) {
23558            Some(Self { syntax })
23559        } else {
23560            None
23561        }
23562    }
23563    #[inline]
23564    fn syntax(&self) -> &SyntaxNode {
23565        &self.syntax
23566    }
23567}
23568impl AstNode for ElseClause {
23569    #[inline]
23570    fn can_cast(kind: SyntaxKind) -> bool {
23571        kind == SyntaxKind::ELSE_CLAUSE
23572    }
23573    #[inline]
23574    fn cast(syntax: SyntaxNode) -> Option<Self> {
23575        if Self::can_cast(syntax.kind()) {
23576            Some(Self { syntax })
23577        } else {
23578            None
23579        }
23580    }
23581    #[inline]
23582    fn syntax(&self) -> &SyntaxNode {
23583        &self.syntax
23584    }
23585}
23586impl AstNode for EnableAlwaysRule {
23587    #[inline]
23588    fn can_cast(kind: SyntaxKind) -> bool {
23589        kind == SyntaxKind::ENABLE_ALWAYS_RULE
23590    }
23591    #[inline]
23592    fn cast(syntax: SyntaxNode) -> Option<Self> {
23593        if Self::can_cast(syntax.kind()) {
23594            Some(Self { syntax })
23595        } else {
23596            None
23597        }
23598    }
23599    #[inline]
23600    fn syntax(&self) -> &SyntaxNode {
23601        &self.syntax
23602    }
23603}
23604impl AstNode for EnableAlwaysTrigger {
23605    #[inline]
23606    fn can_cast(kind: SyntaxKind) -> bool {
23607        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
23608    }
23609    #[inline]
23610    fn cast(syntax: SyntaxNode) -> Option<Self> {
23611        if Self::can_cast(syntax.kind()) {
23612            Some(Self { syntax })
23613        } else {
23614            None
23615        }
23616    }
23617    #[inline]
23618    fn syntax(&self) -> &SyntaxNode {
23619        &self.syntax
23620    }
23621}
23622impl AstNode for EnableReplicaRule {
23623    #[inline]
23624    fn can_cast(kind: SyntaxKind) -> bool {
23625        kind == SyntaxKind::ENABLE_REPLICA_RULE
23626    }
23627    #[inline]
23628    fn cast(syntax: SyntaxNode) -> Option<Self> {
23629        if Self::can_cast(syntax.kind()) {
23630            Some(Self { syntax })
23631        } else {
23632            None
23633        }
23634    }
23635    #[inline]
23636    fn syntax(&self) -> &SyntaxNode {
23637        &self.syntax
23638    }
23639}
23640impl AstNode for EnableReplicaTrigger {
23641    #[inline]
23642    fn can_cast(kind: SyntaxKind) -> bool {
23643        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
23644    }
23645    #[inline]
23646    fn cast(syntax: SyntaxNode) -> Option<Self> {
23647        if Self::can_cast(syntax.kind()) {
23648            Some(Self { syntax })
23649        } else {
23650            None
23651        }
23652    }
23653    #[inline]
23654    fn syntax(&self) -> &SyntaxNode {
23655        &self.syntax
23656    }
23657}
23658impl AstNode for EnableRls {
23659    #[inline]
23660    fn can_cast(kind: SyntaxKind) -> bool {
23661        kind == SyntaxKind::ENABLE_RLS
23662    }
23663    #[inline]
23664    fn cast(syntax: SyntaxNode) -> Option<Self> {
23665        if Self::can_cast(syntax.kind()) {
23666            Some(Self { syntax })
23667        } else {
23668            None
23669        }
23670    }
23671    #[inline]
23672    fn syntax(&self) -> &SyntaxNode {
23673        &self.syntax
23674    }
23675}
23676impl AstNode for EnableRule {
23677    #[inline]
23678    fn can_cast(kind: SyntaxKind) -> bool {
23679        kind == SyntaxKind::ENABLE_RULE
23680    }
23681    #[inline]
23682    fn cast(syntax: SyntaxNode) -> Option<Self> {
23683        if Self::can_cast(syntax.kind()) {
23684            Some(Self { syntax })
23685        } else {
23686            None
23687        }
23688    }
23689    #[inline]
23690    fn syntax(&self) -> &SyntaxNode {
23691        &self.syntax
23692    }
23693}
23694impl AstNode for EnableTrigger {
23695    #[inline]
23696    fn can_cast(kind: SyntaxKind) -> bool {
23697        kind == SyntaxKind::ENABLE_TRIGGER
23698    }
23699    #[inline]
23700    fn cast(syntax: SyntaxNode) -> Option<Self> {
23701        if Self::can_cast(syntax.kind()) {
23702            Some(Self { syntax })
23703        } else {
23704            None
23705        }
23706    }
23707    #[inline]
23708    fn syntax(&self) -> &SyntaxNode {
23709        &self.syntax
23710    }
23711}
23712impl AstNode for Enforced {
23713    #[inline]
23714    fn can_cast(kind: SyntaxKind) -> bool {
23715        kind == SyntaxKind::ENFORCED
23716    }
23717    #[inline]
23718    fn cast(syntax: SyntaxNode) -> Option<Self> {
23719        if Self::can_cast(syntax.kind()) {
23720            Some(Self { syntax })
23721        } else {
23722            None
23723        }
23724    }
23725    #[inline]
23726    fn syntax(&self) -> &SyntaxNode {
23727        &self.syntax
23728    }
23729}
23730impl AstNode for EventTriggerWhen {
23731    #[inline]
23732    fn can_cast(kind: SyntaxKind) -> bool {
23733        kind == SyntaxKind::EVENT_TRIGGER_WHEN
23734    }
23735    #[inline]
23736    fn cast(syntax: SyntaxNode) -> Option<Self> {
23737        if Self::can_cast(syntax.kind()) {
23738            Some(Self { syntax })
23739        } else {
23740            None
23741        }
23742    }
23743    #[inline]
23744    fn syntax(&self) -> &SyntaxNode {
23745        &self.syntax
23746    }
23747}
23748impl AstNode for EventTriggerWhenClause {
23749    #[inline]
23750    fn can_cast(kind: SyntaxKind) -> bool {
23751        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
23752    }
23753    #[inline]
23754    fn cast(syntax: SyntaxNode) -> Option<Self> {
23755        if Self::can_cast(syntax.kind()) {
23756            Some(Self { syntax })
23757        } else {
23758            None
23759        }
23760    }
23761    #[inline]
23762    fn syntax(&self) -> &SyntaxNode {
23763        &self.syntax
23764    }
23765}
23766impl AstNode for ExceptTableClause {
23767    #[inline]
23768    fn can_cast(kind: SyntaxKind) -> bool {
23769        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
23770    }
23771    #[inline]
23772    fn cast(syntax: SyntaxNode) -> Option<Self> {
23773        if Self::can_cast(syntax.kind()) {
23774            Some(Self { syntax })
23775        } else {
23776            None
23777        }
23778    }
23779    #[inline]
23780    fn syntax(&self) -> &SyntaxNode {
23781        &self.syntax
23782    }
23783}
23784impl AstNode for ExceptTables {
23785    #[inline]
23786    fn can_cast(kind: SyntaxKind) -> bool {
23787        kind == SyntaxKind::EXCEPT_TABLES
23788    }
23789    #[inline]
23790    fn cast(syntax: SyntaxNode) -> Option<Self> {
23791        if Self::can_cast(syntax.kind()) {
23792            Some(Self { syntax })
23793        } else {
23794            None
23795        }
23796    }
23797    #[inline]
23798    fn syntax(&self) -> &SyntaxNode {
23799        &self.syntax
23800    }
23801}
23802impl AstNode for ExcludeConstraint {
23803    #[inline]
23804    fn can_cast(kind: SyntaxKind) -> bool {
23805        kind == SyntaxKind::EXCLUDE_CONSTRAINT
23806    }
23807    #[inline]
23808    fn cast(syntax: SyntaxNode) -> Option<Self> {
23809        if Self::can_cast(syntax.kind()) {
23810            Some(Self { syntax })
23811        } else {
23812            None
23813        }
23814    }
23815    #[inline]
23816    fn syntax(&self) -> &SyntaxNode {
23817        &self.syntax
23818    }
23819}
23820impl AstNode for Execute {
23821    #[inline]
23822    fn can_cast(kind: SyntaxKind) -> bool {
23823        kind == SyntaxKind::EXECUTE
23824    }
23825    #[inline]
23826    fn cast(syntax: SyntaxNode) -> Option<Self> {
23827        if Self::can_cast(syntax.kind()) {
23828            Some(Self { syntax })
23829        } else {
23830            None
23831        }
23832    }
23833    #[inline]
23834    fn syntax(&self) -> &SyntaxNode {
23835        &self.syntax
23836    }
23837}
23838impl AstNode for ExistsFn {
23839    #[inline]
23840    fn can_cast(kind: SyntaxKind) -> bool {
23841        kind == SyntaxKind::EXISTS_FN
23842    }
23843    #[inline]
23844    fn cast(syntax: SyntaxNode) -> Option<Self> {
23845        if Self::can_cast(syntax.kind()) {
23846            Some(Self { syntax })
23847        } else {
23848            None
23849        }
23850    }
23851    #[inline]
23852    fn syntax(&self) -> &SyntaxNode {
23853        &self.syntax
23854    }
23855}
23856impl AstNode for Explain {
23857    #[inline]
23858    fn can_cast(kind: SyntaxKind) -> bool {
23859        kind == SyntaxKind::EXPLAIN
23860    }
23861    #[inline]
23862    fn cast(syntax: SyntaxNode) -> Option<Self> {
23863        if Self::can_cast(syntax.kind()) {
23864            Some(Self { syntax })
23865        } else {
23866            None
23867        }
23868    }
23869    #[inline]
23870    fn syntax(&self) -> &SyntaxNode {
23871        &self.syntax
23872    }
23873}
23874impl AstNode for ExprAsName {
23875    #[inline]
23876    fn can_cast(kind: SyntaxKind) -> bool {
23877        kind == SyntaxKind::EXPR_AS_NAME
23878    }
23879    #[inline]
23880    fn cast(syntax: SyntaxNode) -> Option<Self> {
23881        if Self::can_cast(syntax.kind()) {
23882            Some(Self { syntax })
23883        } else {
23884            None
23885        }
23886    }
23887    #[inline]
23888    fn syntax(&self) -> &SyntaxNode {
23889        &self.syntax
23890    }
23891}
23892impl AstNode for ExprAsNameList {
23893    #[inline]
23894    fn can_cast(kind: SyntaxKind) -> bool {
23895        kind == SyntaxKind::EXPR_AS_NAME_LIST
23896    }
23897    #[inline]
23898    fn cast(syntax: SyntaxNode) -> Option<Self> {
23899        if Self::can_cast(syntax.kind()) {
23900            Some(Self { syntax })
23901        } else {
23902            None
23903        }
23904    }
23905    #[inline]
23906    fn syntax(&self) -> &SyntaxNode {
23907        &self.syntax
23908    }
23909}
23910impl AstNode for ExprType {
23911    #[inline]
23912    fn can_cast(kind: SyntaxKind) -> bool {
23913        kind == SyntaxKind::EXPR_TYPE
23914    }
23915    #[inline]
23916    fn cast(syntax: SyntaxNode) -> Option<Self> {
23917        if Self::can_cast(syntax.kind()) {
23918            Some(Self { syntax })
23919        } else {
23920            None
23921        }
23922    }
23923    #[inline]
23924    fn syntax(&self) -> &SyntaxNode {
23925        &self.syntax
23926    }
23927}
23928impl AstNode for ExtractFn {
23929    #[inline]
23930    fn can_cast(kind: SyntaxKind) -> bool {
23931        kind == SyntaxKind::EXTRACT_FN
23932    }
23933    #[inline]
23934    fn cast(syntax: SyntaxNode) -> Option<Self> {
23935        if Self::can_cast(syntax.kind()) {
23936            Some(Self { syntax })
23937        } else {
23938            None
23939        }
23940    }
23941    #[inline]
23942    fn syntax(&self) -> &SyntaxNode {
23943        &self.syntax
23944    }
23945}
23946impl AstNode for FatArrow {
23947    #[inline]
23948    fn can_cast(kind: SyntaxKind) -> bool {
23949        kind == SyntaxKind::FAT_ARROW
23950    }
23951    #[inline]
23952    fn cast(syntax: SyntaxNode) -> Option<Self> {
23953        if Self::can_cast(syntax.kind()) {
23954            Some(Self { syntax })
23955        } else {
23956            None
23957        }
23958    }
23959    #[inline]
23960    fn syntax(&self) -> &SyntaxNode {
23961        &self.syntax
23962    }
23963}
23964impl AstNode for FdwOption {
23965    #[inline]
23966    fn can_cast(kind: SyntaxKind) -> bool {
23967        kind == SyntaxKind::FDW_OPTION
23968    }
23969    #[inline]
23970    fn cast(syntax: SyntaxNode) -> Option<Self> {
23971        if Self::can_cast(syntax.kind()) {
23972            Some(Self { syntax })
23973        } else {
23974            None
23975        }
23976    }
23977    #[inline]
23978    fn syntax(&self) -> &SyntaxNode {
23979        &self.syntax
23980    }
23981}
23982impl AstNode for FdwOptionList {
23983    #[inline]
23984    fn can_cast(kind: SyntaxKind) -> bool {
23985        kind == SyntaxKind::FDW_OPTION_LIST
23986    }
23987    #[inline]
23988    fn cast(syntax: SyntaxNode) -> Option<Self> {
23989        if Self::can_cast(syntax.kind()) {
23990            Some(Self { syntax })
23991        } else {
23992            None
23993        }
23994    }
23995    #[inline]
23996    fn syntax(&self) -> &SyntaxNode {
23997        &self.syntax
23998    }
23999}
24000impl AstNode for Fetch {
24001    #[inline]
24002    fn can_cast(kind: SyntaxKind) -> bool {
24003        kind == SyntaxKind::FETCH
24004    }
24005    #[inline]
24006    fn cast(syntax: SyntaxNode) -> Option<Self> {
24007        if Self::can_cast(syntax.kind()) {
24008            Some(Self { syntax })
24009        } else {
24010            None
24011        }
24012    }
24013    #[inline]
24014    fn syntax(&self) -> &SyntaxNode {
24015        &self.syntax
24016    }
24017}
24018impl AstNode for FetchClause {
24019    #[inline]
24020    fn can_cast(kind: SyntaxKind) -> bool {
24021        kind == SyntaxKind::FETCH_CLAUSE
24022    }
24023    #[inline]
24024    fn cast(syntax: SyntaxNode) -> Option<Self> {
24025        if Self::can_cast(syntax.kind()) {
24026            Some(Self { syntax })
24027        } else {
24028            None
24029        }
24030    }
24031    #[inline]
24032    fn syntax(&self) -> &SyntaxNode {
24033        &self.syntax
24034    }
24035}
24036impl AstNode for FieldExpr {
24037    #[inline]
24038    fn can_cast(kind: SyntaxKind) -> bool {
24039        kind == SyntaxKind::FIELD_EXPR
24040    }
24041    #[inline]
24042    fn cast(syntax: SyntaxNode) -> Option<Self> {
24043        if Self::can_cast(syntax.kind()) {
24044            Some(Self { syntax })
24045        } else {
24046            None
24047        }
24048    }
24049    #[inline]
24050    fn syntax(&self) -> &SyntaxNode {
24051        &self.syntax
24052    }
24053}
24054impl AstNode for FilterClause {
24055    #[inline]
24056    fn can_cast(kind: SyntaxKind) -> bool {
24057        kind == SyntaxKind::FILTER_CLAUSE
24058    }
24059    #[inline]
24060    fn cast(syntax: SyntaxNode) -> Option<Self> {
24061        if Self::can_cast(syntax.kind()) {
24062            Some(Self { syntax })
24063        } else {
24064            None
24065        }
24066    }
24067    #[inline]
24068    fn syntax(&self) -> &SyntaxNode {
24069        &self.syntax
24070    }
24071}
24072impl AstNode for ForPortionOf {
24073    #[inline]
24074    fn can_cast(kind: SyntaxKind) -> bool {
24075        kind == SyntaxKind::FOR_PORTION_OF
24076    }
24077    #[inline]
24078    fn cast(syntax: SyntaxNode) -> Option<Self> {
24079        if Self::can_cast(syntax.kind()) {
24080            Some(Self { syntax })
24081        } else {
24082            None
24083        }
24084    }
24085    #[inline]
24086    fn syntax(&self) -> &SyntaxNode {
24087        &self.syntax
24088    }
24089}
24090impl AstNode for ForProvider {
24091    #[inline]
24092    fn can_cast(kind: SyntaxKind) -> bool {
24093        kind == SyntaxKind::FOR_PROVIDER
24094    }
24095    #[inline]
24096    fn cast(syntax: SyntaxNode) -> Option<Self> {
24097        if Self::can_cast(syntax.kind()) {
24098            Some(Self { syntax })
24099        } else {
24100            None
24101        }
24102    }
24103    #[inline]
24104    fn syntax(&self) -> &SyntaxNode {
24105        &self.syntax
24106    }
24107}
24108impl AstNode for ForceRls {
24109    #[inline]
24110    fn can_cast(kind: SyntaxKind) -> bool {
24111        kind == SyntaxKind::FORCE_RLS
24112    }
24113    #[inline]
24114    fn cast(syntax: SyntaxNode) -> Option<Self> {
24115        if Self::can_cast(syntax.kind()) {
24116            Some(Self { syntax })
24117        } else {
24118            None
24119        }
24120    }
24121    #[inline]
24122    fn syntax(&self) -> &SyntaxNode {
24123        &self.syntax
24124    }
24125}
24126impl AstNode for ForeignKeyConstraint {
24127    #[inline]
24128    fn can_cast(kind: SyntaxKind) -> bool {
24129        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24130    }
24131    #[inline]
24132    fn cast(syntax: SyntaxNode) -> Option<Self> {
24133        if Self::can_cast(syntax.kind()) {
24134            Some(Self { syntax })
24135        } else {
24136            None
24137        }
24138    }
24139    #[inline]
24140    fn syntax(&self) -> &SyntaxNode {
24141        &self.syntax
24142    }
24143}
24144impl AstNode for FrameClause {
24145    #[inline]
24146    fn can_cast(kind: SyntaxKind) -> bool {
24147        kind == SyntaxKind::FRAME_CLAUSE
24148    }
24149    #[inline]
24150    fn cast(syntax: SyntaxNode) -> Option<Self> {
24151        if Self::can_cast(syntax.kind()) {
24152            Some(Self { syntax })
24153        } else {
24154            None
24155        }
24156    }
24157    #[inline]
24158    fn syntax(&self) -> &SyntaxNode {
24159        &self.syntax
24160    }
24161}
24162impl AstNode for FromClause {
24163    #[inline]
24164    fn can_cast(kind: SyntaxKind) -> bool {
24165        kind == SyntaxKind::FROM_CLAUSE
24166    }
24167    #[inline]
24168    fn cast(syntax: SyntaxNode) -> Option<Self> {
24169        if Self::can_cast(syntax.kind()) {
24170            Some(Self { syntax })
24171        } else {
24172            None
24173        }
24174    }
24175    #[inline]
24176    fn syntax(&self) -> &SyntaxNode {
24177        &self.syntax
24178    }
24179}
24180impl AstNode for FromItem {
24181    #[inline]
24182    fn can_cast(kind: SyntaxKind) -> bool {
24183        kind == SyntaxKind::FROM_ITEM
24184    }
24185    #[inline]
24186    fn cast(syntax: SyntaxNode) -> Option<Self> {
24187        if Self::can_cast(syntax.kind()) {
24188            Some(Self { syntax })
24189        } else {
24190            None
24191        }
24192    }
24193    #[inline]
24194    fn syntax(&self) -> &SyntaxNode {
24195        &self.syntax
24196    }
24197}
24198impl AstNode for FromTable {
24199    #[inline]
24200    fn can_cast(kind: SyntaxKind) -> bool {
24201        kind == SyntaxKind::FROM_TABLE
24202    }
24203    #[inline]
24204    fn cast(syntax: SyntaxNode) -> Option<Self> {
24205        if Self::can_cast(syntax.kind()) {
24206            Some(Self { syntax })
24207        } else {
24208            None
24209        }
24210    }
24211    #[inline]
24212    fn syntax(&self) -> &SyntaxNode {
24213        &self.syntax
24214    }
24215}
24216impl AstNode for FuncOptionList {
24217    #[inline]
24218    fn can_cast(kind: SyntaxKind) -> bool {
24219        kind == SyntaxKind::FUNC_OPTION_LIST
24220    }
24221    #[inline]
24222    fn cast(syntax: SyntaxNode) -> Option<Self> {
24223        if Self::can_cast(syntax.kind()) {
24224            Some(Self { syntax })
24225        } else {
24226            None
24227        }
24228    }
24229    #[inline]
24230    fn syntax(&self) -> &SyntaxNode {
24231        &self.syntax
24232    }
24233}
24234impl AstNode for FunctionSig {
24235    #[inline]
24236    fn can_cast(kind: SyntaxKind) -> bool {
24237        kind == SyntaxKind::FUNCTION_SIG
24238    }
24239    #[inline]
24240    fn cast(syntax: SyntaxNode) -> Option<Self> {
24241        if Self::can_cast(syntax.kind()) {
24242            Some(Self { syntax })
24243        } else {
24244            None
24245        }
24246    }
24247    #[inline]
24248    fn syntax(&self) -> &SyntaxNode {
24249        &self.syntax
24250    }
24251}
24252impl AstNode for FunctionSigList {
24253    #[inline]
24254    fn can_cast(kind: SyntaxKind) -> bool {
24255        kind == SyntaxKind::FUNCTION_SIG_LIST
24256    }
24257    #[inline]
24258    fn cast(syntax: SyntaxNode) -> Option<Self> {
24259        if Self::can_cast(syntax.kind()) {
24260            Some(Self { syntax })
24261        } else {
24262            None
24263        }
24264    }
24265    #[inline]
24266    fn syntax(&self) -> &SyntaxNode {
24267        &self.syntax
24268    }
24269}
24270impl AstNode for GeneratedConstraint {
24271    #[inline]
24272    fn can_cast(kind: SyntaxKind) -> bool {
24273        kind == SyntaxKind::GENERATED_CONSTRAINT
24274    }
24275    #[inline]
24276    fn cast(syntax: SyntaxNode) -> Option<Self> {
24277        if Self::can_cast(syntax.kind()) {
24278            Some(Self { syntax })
24279        } else {
24280            None
24281        }
24282    }
24283    #[inline]
24284    fn syntax(&self) -> &SyntaxNode {
24285        &self.syntax
24286    }
24287}
24288impl AstNode for Grant {
24289    #[inline]
24290    fn can_cast(kind: SyntaxKind) -> bool {
24291        kind == SyntaxKind::GRANT
24292    }
24293    #[inline]
24294    fn cast(syntax: SyntaxNode) -> Option<Self> {
24295        if Self::can_cast(syntax.kind()) {
24296            Some(Self { syntax })
24297        } else {
24298            None
24299        }
24300    }
24301    #[inline]
24302    fn syntax(&self) -> &SyntaxNode {
24303        &self.syntax
24304    }
24305}
24306impl AstNode for GrantDefaultPrivileges {
24307    #[inline]
24308    fn can_cast(kind: SyntaxKind) -> bool {
24309        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
24310    }
24311    #[inline]
24312    fn cast(syntax: SyntaxNode) -> Option<Self> {
24313        if Self::can_cast(syntax.kind()) {
24314            Some(Self { syntax })
24315        } else {
24316            None
24317        }
24318    }
24319    #[inline]
24320    fn syntax(&self) -> &SyntaxNode {
24321        &self.syntax
24322    }
24323}
24324impl AstNode for GraphPatternQualifier {
24325    #[inline]
24326    fn can_cast(kind: SyntaxKind) -> bool {
24327        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
24328    }
24329    #[inline]
24330    fn cast(syntax: SyntaxNode) -> Option<Self> {
24331        if Self::can_cast(syntax.kind()) {
24332            Some(Self { syntax })
24333        } else {
24334            None
24335        }
24336    }
24337    #[inline]
24338    fn syntax(&self) -> &SyntaxNode {
24339        &self.syntax
24340    }
24341}
24342impl AstNode for GraphTableFn {
24343    #[inline]
24344    fn can_cast(kind: SyntaxKind) -> bool {
24345        kind == SyntaxKind::GRAPH_TABLE_FN
24346    }
24347    #[inline]
24348    fn cast(syntax: SyntaxNode) -> Option<Self> {
24349        if Self::can_cast(syntax.kind()) {
24350            Some(Self { syntax })
24351        } else {
24352            None
24353        }
24354    }
24355    #[inline]
24356    fn syntax(&self) -> &SyntaxNode {
24357        &self.syntax
24358    }
24359}
24360impl AstNode for GroupByClause {
24361    #[inline]
24362    fn can_cast(kind: SyntaxKind) -> bool {
24363        kind == SyntaxKind::GROUP_BY_CLAUSE
24364    }
24365    #[inline]
24366    fn cast(syntax: SyntaxNode) -> Option<Self> {
24367        if Self::can_cast(syntax.kind()) {
24368            Some(Self { syntax })
24369        } else {
24370            None
24371        }
24372    }
24373    #[inline]
24374    fn syntax(&self) -> &SyntaxNode {
24375        &self.syntax
24376    }
24377}
24378impl AstNode for GroupByList {
24379    #[inline]
24380    fn can_cast(kind: SyntaxKind) -> bool {
24381        kind == SyntaxKind::GROUP_BY_LIST
24382    }
24383    #[inline]
24384    fn cast(syntax: SyntaxNode) -> Option<Self> {
24385        if Self::can_cast(syntax.kind()) {
24386            Some(Self { syntax })
24387        } else {
24388            None
24389        }
24390    }
24391    #[inline]
24392    fn syntax(&self) -> &SyntaxNode {
24393        &self.syntax
24394    }
24395}
24396impl AstNode for GroupingCube {
24397    #[inline]
24398    fn can_cast(kind: SyntaxKind) -> bool {
24399        kind == SyntaxKind::GROUPING_CUBE
24400    }
24401    #[inline]
24402    fn cast(syntax: SyntaxNode) -> Option<Self> {
24403        if Self::can_cast(syntax.kind()) {
24404            Some(Self { syntax })
24405        } else {
24406            None
24407        }
24408    }
24409    #[inline]
24410    fn syntax(&self) -> &SyntaxNode {
24411        &self.syntax
24412    }
24413}
24414impl AstNode for GroupingExpr {
24415    #[inline]
24416    fn can_cast(kind: SyntaxKind) -> bool {
24417        kind == SyntaxKind::GROUPING_EXPR
24418    }
24419    #[inline]
24420    fn cast(syntax: SyntaxNode) -> Option<Self> {
24421        if Self::can_cast(syntax.kind()) {
24422            Some(Self { syntax })
24423        } else {
24424            None
24425        }
24426    }
24427    #[inline]
24428    fn syntax(&self) -> &SyntaxNode {
24429        &self.syntax
24430    }
24431}
24432impl AstNode for GroupingRollup {
24433    #[inline]
24434    fn can_cast(kind: SyntaxKind) -> bool {
24435        kind == SyntaxKind::GROUPING_ROLLUP
24436    }
24437    #[inline]
24438    fn cast(syntax: SyntaxNode) -> Option<Self> {
24439        if Self::can_cast(syntax.kind()) {
24440            Some(Self { syntax })
24441        } else {
24442            None
24443        }
24444    }
24445    #[inline]
24446    fn syntax(&self) -> &SyntaxNode {
24447        &self.syntax
24448    }
24449}
24450impl AstNode for GroupingSets {
24451    #[inline]
24452    fn can_cast(kind: SyntaxKind) -> bool {
24453        kind == SyntaxKind::GROUPING_SETS
24454    }
24455    #[inline]
24456    fn cast(syntax: SyntaxNode) -> Option<Self> {
24457        if Self::can_cast(syntax.kind()) {
24458            Some(Self { syntax })
24459        } else {
24460            None
24461        }
24462    }
24463    #[inline]
24464    fn syntax(&self) -> &SyntaxNode {
24465        &self.syntax
24466    }
24467}
24468impl AstNode for Gteq {
24469    #[inline]
24470    fn can_cast(kind: SyntaxKind) -> bool {
24471        kind == SyntaxKind::GTEQ
24472    }
24473    #[inline]
24474    fn cast(syntax: SyntaxNode) -> Option<Self> {
24475        if Self::can_cast(syntax.kind()) {
24476            Some(Self { syntax })
24477        } else {
24478            None
24479        }
24480    }
24481    #[inline]
24482    fn syntax(&self) -> &SyntaxNode {
24483        &self.syntax
24484    }
24485}
24486impl AstNode for HandlerClause {
24487    #[inline]
24488    fn can_cast(kind: SyntaxKind) -> bool {
24489        kind == SyntaxKind::HANDLER_CLAUSE
24490    }
24491    #[inline]
24492    fn cast(syntax: SyntaxNode) -> Option<Self> {
24493        if Self::can_cast(syntax.kind()) {
24494            Some(Self { syntax })
24495        } else {
24496            None
24497        }
24498    }
24499    #[inline]
24500    fn syntax(&self) -> &SyntaxNode {
24501        &self.syntax
24502    }
24503}
24504impl AstNode for HavingClause {
24505    #[inline]
24506    fn can_cast(kind: SyntaxKind) -> bool {
24507        kind == SyntaxKind::HAVING_CLAUSE
24508    }
24509    #[inline]
24510    fn cast(syntax: SyntaxNode) -> Option<Self> {
24511        if Self::can_cast(syntax.kind()) {
24512            Some(Self { syntax })
24513        } else {
24514            None
24515        }
24516    }
24517    #[inline]
24518    fn syntax(&self) -> &SyntaxNode {
24519        &self.syntax
24520    }
24521}
24522impl AstNode for IfExists {
24523    #[inline]
24524    fn can_cast(kind: SyntaxKind) -> bool {
24525        kind == SyntaxKind::IF_EXISTS
24526    }
24527    #[inline]
24528    fn cast(syntax: SyntaxNode) -> Option<Self> {
24529        if Self::can_cast(syntax.kind()) {
24530            Some(Self { syntax })
24531        } else {
24532            None
24533        }
24534    }
24535    #[inline]
24536    fn syntax(&self) -> &SyntaxNode {
24537        &self.syntax
24538    }
24539}
24540impl AstNode for IfNotExists {
24541    #[inline]
24542    fn can_cast(kind: SyntaxKind) -> bool {
24543        kind == SyntaxKind::IF_NOT_EXISTS
24544    }
24545    #[inline]
24546    fn cast(syntax: SyntaxNode) -> Option<Self> {
24547        if Self::can_cast(syntax.kind()) {
24548            Some(Self { syntax })
24549        } else {
24550            None
24551        }
24552    }
24553    #[inline]
24554    fn syntax(&self) -> &SyntaxNode {
24555        &self.syntax
24556    }
24557}
24558impl AstNode for ImportForeignSchema {
24559    #[inline]
24560    fn can_cast(kind: SyntaxKind) -> bool {
24561        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
24562    }
24563    #[inline]
24564    fn cast(syntax: SyntaxNode) -> Option<Self> {
24565        if Self::can_cast(syntax.kind()) {
24566            Some(Self { syntax })
24567        } else {
24568            None
24569        }
24570    }
24571    #[inline]
24572    fn syntax(&self) -> &SyntaxNode {
24573        &self.syntax
24574    }
24575}
24576impl AstNode for IndexExpr {
24577    #[inline]
24578    fn can_cast(kind: SyntaxKind) -> bool {
24579        kind == SyntaxKind::INDEX_EXPR
24580    }
24581    #[inline]
24582    fn cast(syntax: SyntaxNode) -> Option<Self> {
24583        if Self::can_cast(syntax.kind()) {
24584            Some(Self { syntax })
24585        } else {
24586            None
24587        }
24588    }
24589    #[inline]
24590    fn syntax(&self) -> &SyntaxNode {
24591        &self.syntax
24592    }
24593}
24594impl AstNode for Inherit {
24595    #[inline]
24596    fn can_cast(kind: SyntaxKind) -> bool {
24597        kind == SyntaxKind::INHERIT
24598    }
24599    #[inline]
24600    fn cast(syntax: SyntaxNode) -> Option<Self> {
24601        if Self::can_cast(syntax.kind()) {
24602            Some(Self { syntax })
24603        } else {
24604            None
24605        }
24606    }
24607    #[inline]
24608    fn syntax(&self) -> &SyntaxNode {
24609        &self.syntax
24610    }
24611}
24612impl AstNode for InheritTable {
24613    #[inline]
24614    fn can_cast(kind: SyntaxKind) -> bool {
24615        kind == SyntaxKind::INHERIT_TABLE
24616    }
24617    #[inline]
24618    fn cast(syntax: SyntaxNode) -> Option<Self> {
24619        if Self::can_cast(syntax.kind()) {
24620            Some(Self { syntax })
24621        } else {
24622            None
24623        }
24624    }
24625    #[inline]
24626    fn syntax(&self) -> &SyntaxNode {
24627        &self.syntax
24628    }
24629}
24630impl AstNode for Inherits {
24631    #[inline]
24632    fn can_cast(kind: SyntaxKind) -> bool {
24633        kind == SyntaxKind::INHERITS
24634    }
24635    #[inline]
24636    fn cast(syntax: SyntaxNode) -> Option<Self> {
24637        if Self::can_cast(syntax.kind()) {
24638            Some(Self { syntax })
24639        } else {
24640            None
24641        }
24642    }
24643    #[inline]
24644    fn syntax(&self) -> &SyntaxNode {
24645        &self.syntax
24646    }
24647}
24648impl AstNode for InitiallyDeferredConstraintOption {
24649    #[inline]
24650    fn can_cast(kind: SyntaxKind) -> bool {
24651        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
24652    }
24653    #[inline]
24654    fn cast(syntax: SyntaxNode) -> Option<Self> {
24655        if Self::can_cast(syntax.kind()) {
24656            Some(Self { syntax })
24657        } else {
24658            None
24659        }
24660    }
24661    #[inline]
24662    fn syntax(&self) -> &SyntaxNode {
24663        &self.syntax
24664    }
24665}
24666impl AstNode for InitiallyImmediateConstraintOption {
24667    #[inline]
24668    fn can_cast(kind: SyntaxKind) -> bool {
24669        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
24670    }
24671    #[inline]
24672    fn cast(syntax: SyntaxNode) -> Option<Self> {
24673        if Self::can_cast(syntax.kind()) {
24674            Some(Self { syntax })
24675        } else {
24676            None
24677        }
24678    }
24679    #[inline]
24680    fn syntax(&self) -> &SyntaxNode {
24681        &self.syntax
24682    }
24683}
24684impl AstNode for Insert {
24685    #[inline]
24686    fn can_cast(kind: SyntaxKind) -> bool {
24687        kind == SyntaxKind::INSERT
24688    }
24689    #[inline]
24690    fn cast(syntax: SyntaxNode) -> Option<Self> {
24691        if Self::can_cast(syntax.kind()) {
24692            Some(Self { syntax })
24693        } else {
24694            None
24695        }
24696    }
24697    #[inline]
24698    fn syntax(&self) -> &SyntaxNode {
24699        &self.syntax
24700    }
24701}
24702impl AstNode for IntervalType {
24703    #[inline]
24704    fn can_cast(kind: SyntaxKind) -> bool {
24705        kind == SyntaxKind::INTERVAL_TYPE
24706    }
24707    #[inline]
24708    fn cast(syntax: SyntaxNode) -> Option<Self> {
24709        if Self::can_cast(syntax.kind()) {
24710            Some(Self { syntax })
24711        } else {
24712            None
24713        }
24714    }
24715    #[inline]
24716    fn syntax(&self) -> &SyntaxNode {
24717        &self.syntax
24718    }
24719}
24720impl AstNode for IntoClause {
24721    #[inline]
24722    fn can_cast(kind: SyntaxKind) -> bool {
24723        kind == SyntaxKind::INTO_CLAUSE
24724    }
24725    #[inline]
24726    fn cast(syntax: SyntaxNode) -> Option<Self> {
24727        if Self::can_cast(syntax.kind()) {
24728            Some(Self { syntax })
24729        } else {
24730            None
24731        }
24732    }
24733    #[inline]
24734    fn syntax(&self) -> &SyntaxNode {
24735        &self.syntax
24736    }
24737}
24738impl AstNode for IntoSchema {
24739    #[inline]
24740    fn can_cast(kind: SyntaxKind) -> bool {
24741        kind == SyntaxKind::INTO_SCHEMA
24742    }
24743    #[inline]
24744    fn cast(syntax: SyntaxNode) -> Option<Self> {
24745        if Self::can_cast(syntax.kind()) {
24746            Some(Self { syntax })
24747        } else {
24748            None
24749        }
24750    }
24751    #[inline]
24752    fn syntax(&self) -> &SyntaxNode {
24753        &self.syntax
24754    }
24755}
24756impl AstNode for IsDistinctFrom {
24757    #[inline]
24758    fn can_cast(kind: SyntaxKind) -> bool {
24759        kind == SyntaxKind::IS_DISTINCT_FROM
24760    }
24761    #[inline]
24762    fn cast(syntax: SyntaxNode) -> Option<Self> {
24763        if Self::can_cast(syntax.kind()) {
24764            Some(Self { syntax })
24765        } else {
24766            None
24767        }
24768    }
24769    #[inline]
24770    fn syntax(&self) -> &SyntaxNode {
24771        &self.syntax
24772    }
24773}
24774impl AstNode for IsJson {
24775    #[inline]
24776    fn can_cast(kind: SyntaxKind) -> bool {
24777        kind == SyntaxKind::IS_JSON
24778    }
24779    #[inline]
24780    fn cast(syntax: SyntaxNode) -> Option<Self> {
24781        if Self::can_cast(syntax.kind()) {
24782            Some(Self { syntax })
24783        } else {
24784            None
24785        }
24786    }
24787    #[inline]
24788    fn syntax(&self) -> &SyntaxNode {
24789        &self.syntax
24790    }
24791}
24792impl AstNode for IsJsonArray {
24793    #[inline]
24794    fn can_cast(kind: SyntaxKind) -> bool {
24795        kind == SyntaxKind::IS_JSON_ARRAY
24796    }
24797    #[inline]
24798    fn cast(syntax: SyntaxNode) -> Option<Self> {
24799        if Self::can_cast(syntax.kind()) {
24800            Some(Self { syntax })
24801        } else {
24802            None
24803        }
24804    }
24805    #[inline]
24806    fn syntax(&self) -> &SyntaxNode {
24807        &self.syntax
24808    }
24809}
24810impl AstNode for IsJsonObject {
24811    #[inline]
24812    fn can_cast(kind: SyntaxKind) -> bool {
24813        kind == SyntaxKind::IS_JSON_OBJECT
24814    }
24815    #[inline]
24816    fn cast(syntax: SyntaxNode) -> Option<Self> {
24817        if Self::can_cast(syntax.kind()) {
24818            Some(Self { syntax })
24819        } else {
24820            None
24821        }
24822    }
24823    #[inline]
24824    fn syntax(&self) -> &SyntaxNode {
24825        &self.syntax
24826    }
24827}
24828impl AstNode for IsJsonScalar {
24829    #[inline]
24830    fn can_cast(kind: SyntaxKind) -> bool {
24831        kind == SyntaxKind::IS_JSON_SCALAR
24832    }
24833    #[inline]
24834    fn cast(syntax: SyntaxNode) -> Option<Self> {
24835        if Self::can_cast(syntax.kind()) {
24836            Some(Self { syntax })
24837        } else {
24838            None
24839        }
24840    }
24841    #[inline]
24842    fn syntax(&self) -> &SyntaxNode {
24843        &self.syntax
24844    }
24845}
24846impl AstNode for IsJsonValue {
24847    #[inline]
24848    fn can_cast(kind: SyntaxKind) -> bool {
24849        kind == SyntaxKind::IS_JSON_VALUE
24850    }
24851    #[inline]
24852    fn cast(syntax: SyntaxNode) -> Option<Self> {
24853        if Self::can_cast(syntax.kind()) {
24854            Some(Self { syntax })
24855        } else {
24856            None
24857        }
24858    }
24859    #[inline]
24860    fn syntax(&self) -> &SyntaxNode {
24861        &self.syntax
24862    }
24863}
24864impl AstNode for IsLabel {
24865    #[inline]
24866    fn can_cast(kind: SyntaxKind) -> bool {
24867        kind == SyntaxKind::IS_LABEL
24868    }
24869    #[inline]
24870    fn cast(syntax: SyntaxNode) -> Option<Self> {
24871        if Self::can_cast(syntax.kind()) {
24872            Some(Self { syntax })
24873        } else {
24874            None
24875        }
24876    }
24877    #[inline]
24878    fn syntax(&self) -> &SyntaxNode {
24879        &self.syntax
24880    }
24881}
24882impl AstNode for IsNormalized {
24883    #[inline]
24884    fn can_cast(kind: SyntaxKind) -> bool {
24885        kind == SyntaxKind::IS_NORMALIZED
24886    }
24887    #[inline]
24888    fn cast(syntax: SyntaxNode) -> Option<Self> {
24889        if Self::can_cast(syntax.kind()) {
24890            Some(Self { syntax })
24891        } else {
24892            None
24893        }
24894    }
24895    #[inline]
24896    fn syntax(&self) -> &SyntaxNode {
24897        &self.syntax
24898    }
24899}
24900impl AstNode for IsNot {
24901    #[inline]
24902    fn can_cast(kind: SyntaxKind) -> bool {
24903        kind == SyntaxKind::IS_NOT
24904    }
24905    #[inline]
24906    fn cast(syntax: SyntaxNode) -> Option<Self> {
24907        if Self::can_cast(syntax.kind()) {
24908            Some(Self { syntax })
24909        } else {
24910            None
24911        }
24912    }
24913    #[inline]
24914    fn syntax(&self) -> &SyntaxNode {
24915        &self.syntax
24916    }
24917}
24918impl AstNode for IsNotDistinctFrom {
24919    #[inline]
24920    fn can_cast(kind: SyntaxKind) -> bool {
24921        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
24922    }
24923    #[inline]
24924    fn cast(syntax: SyntaxNode) -> Option<Self> {
24925        if Self::can_cast(syntax.kind()) {
24926            Some(Self { syntax })
24927        } else {
24928            None
24929        }
24930    }
24931    #[inline]
24932    fn syntax(&self) -> &SyntaxNode {
24933        &self.syntax
24934    }
24935}
24936impl AstNode for IsNotJson {
24937    #[inline]
24938    fn can_cast(kind: SyntaxKind) -> bool {
24939        kind == SyntaxKind::IS_NOT_JSON
24940    }
24941    #[inline]
24942    fn cast(syntax: SyntaxNode) -> Option<Self> {
24943        if Self::can_cast(syntax.kind()) {
24944            Some(Self { syntax })
24945        } else {
24946            None
24947        }
24948    }
24949    #[inline]
24950    fn syntax(&self) -> &SyntaxNode {
24951        &self.syntax
24952    }
24953}
24954impl AstNode for IsNotJsonArray {
24955    #[inline]
24956    fn can_cast(kind: SyntaxKind) -> bool {
24957        kind == SyntaxKind::IS_NOT_JSON_ARRAY
24958    }
24959    #[inline]
24960    fn cast(syntax: SyntaxNode) -> Option<Self> {
24961        if Self::can_cast(syntax.kind()) {
24962            Some(Self { syntax })
24963        } else {
24964            None
24965        }
24966    }
24967    #[inline]
24968    fn syntax(&self) -> &SyntaxNode {
24969        &self.syntax
24970    }
24971}
24972impl AstNode for IsNotJsonObject {
24973    #[inline]
24974    fn can_cast(kind: SyntaxKind) -> bool {
24975        kind == SyntaxKind::IS_NOT_JSON_OBJECT
24976    }
24977    #[inline]
24978    fn cast(syntax: SyntaxNode) -> Option<Self> {
24979        if Self::can_cast(syntax.kind()) {
24980            Some(Self { syntax })
24981        } else {
24982            None
24983        }
24984    }
24985    #[inline]
24986    fn syntax(&self) -> &SyntaxNode {
24987        &self.syntax
24988    }
24989}
24990impl AstNode for IsNotJsonScalar {
24991    #[inline]
24992    fn can_cast(kind: SyntaxKind) -> bool {
24993        kind == SyntaxKind::IS_NOT_JSON_SCALAR
24994    }
24995    #[inline]
24996    fn cast(syntax: SyntaxNode) -> Option<Self> {
24997        if Self::can_cast(syntax.kind()) {
24998            Some(Self { syntax })
24999        } else {
25000            None
25001        }
25002    }
25003    #[inline]
25004    fn syntax(&self) -> &SyntaxNode {
25005        &self.syntax
25006    }
25007}
25008impl AstNode for IsNotJsonValue {
25009    #[inline]
25010    fn can_cast(kind: SyntaxKind) -> bool {
25011        kind == SyntaxKind::IS_NOT_JSON_VALUE
25012    }
25013    #[inline]
25014    fn cast(syntax: SyntaxNode) -> Option<Self> {
25015        if Self::can_cast(syntax.kind()) {
25016            Some(Self { syntax })
25017        } else {
25018            None
25019        }
25020    }
25021    #[inline]
25022    fn syntax(&self) -> &SyntaxNode {
25023        &self.syntax
25024    }
25025}
25026impl AstNode for IsNotNormalized {
25027    #[inline]
25028    fn can_cast(kind: SyntaxKind) -> bool {
25029        kind == SyntaxKind::IS_NOT_NORMALIZED
25030    }
25031    #[inline]
25032    fn cast(syntax: SyntaxNode) -> Option<Self> {
25033        if Self::can_cast(syntax.kind()) {
25034            Some(Self { syntax })
25035        } else {
25036            None
25037        }
25038    }
25039    #[inline]
25040    fn syntax(&self) -> &SyntaxNode {
25041        &self.syntax
25042    }
25043}
25044impl AstNode for Join {
25045    #[inline]
25046    fn can_cast(kind: SyntaxKind) -> bool {
25047        kind == SyntaxKind::JOIN
25048    }
25049    #[inline]
25050    fn cast(syntax: SyntaxNode) -> Option<Self> {
25051        if Self::can_cast(syntax.kind()) {
25052            Some(Self { syntax })
25053        } else {
25054            None
25055        }
25056    }
25057    #[inline]
25058    fn syntax(&self) -> &SyntaxNode {
25059        &self.syntax
25060    }
25061}
25062impl AstNode for JoinCross {
25063    #[inline]
25064    fn can_cast(kind: SyntaxKind) -> bool {
25065        kind == SyntaxKind::JOIN_CROSS
25066    }
25067    #[inline]
25068    fn cast(syntax: SyntaxNode) -> Option<Self> {
25069        if Self::can_cast(syntax.kind()) {
25070            Some(Self { syntax })
25071        } else {
25072            None
25073        }
25074    }
25075    #[inline]
25076    fn syntax(&self) -> &SyntaxNode {
25077        &self.syntax
25078    }
25079}
25080impl AstNode for JoinExpr {
25081    #[inline]
25082    fn can_cast(kind: SyntaxKind) -> bool {
25083        kind == SyntaxKind::JOIN_EXPR
25084    }
25085    #[inline]
25086    fn cast(syntax: SyntaxNode) -> Option<Self> {
25087        if Self::can_cast(syntax.kind()) {
25088            Some(Self { syntax })
25089        } else {
25090            None
25091        }
25092    }
25093    #[inline]
25094    fn syntax(&self) -> &SyntaxNode {
25095        &self.syntax
25096    }
25097}
25098impl AstNode for JoinFull {
25099    #[inline]
25100    fn can_cast(kind: SyntaxKind) -> bool {
25101        kind == SyntaxKind::JOIN_FULL
25102    }
25103    #[inline]
25104    fn cast(syntax: SyntaxNode) -> Option<Self> {
25105        if Self::can_cast(syntax.kind()) {
25106            Some(Self { syntax })
25107        } else {
25108            None
25109        }
25110    }
25111    #[inline]
25112    fn syntax(&self) -> &SyntaxNode {
25113        &self.syntax
25114    }
25115}
25116impl AstNode for JoinInner {
25117    #[inline]
25118    fn can_cast(kind: SyntaxKind) -> bool {
25119        kind == SyntaxKind::JOIN_INNER
25120    }
25121    #[inline]
25122    fn cast(syntax: SyntaxNode) -> Option<Self> {
25123        if Self::can_cast(syntax.kind()) {
25124            Some(Self { syntax })
25125        } else {
25126            None
25127        }
25128    }
25129    #[inline]
25130    fn syntax(&self) -> &SyntaxNode {
25131        &self.syntax
25132    }
25133}
25134impl AstNode for JoinLeft {
25135    #[inline]
25136    fn can_cast(kind: SyntaxKind) -> bool {
25137        kind == SyntaxKind::JOIN_LEFT
25138    }
25139    #[inline]
25140    fn cast(syntax: SyntaxNode) -> Option<Self> {
25141        if Self::can_cast(syntax.kind()) {
25142            Some(Self { syntax })
25143        } else {
25144            None
25145        }
25146    }
25147    #[inline]
25148    fn syntax(&self) -> &SyntaxNode {
25149        &self.syntax
25150    }
25151}
25152impl AstNode for JoinRight {
25153    #[inline]
25154    fn can_cast(kind: SyntaxKind) -> bool {
25155        kind == SyntaxKind::JOIN_RIGHT
25156    }
25157    #[inline]
25158    fn cast(syntax: SyntaxNode) -> Option<Self> {
25159        if Self::can_cast(syntax.kind()) {
25160            Some(Self { syntax })
25161        } else {
25162            None
25163        }
25164    }
25165    #[inline]
25166    fn syntax(&self) -> &SyntaxNode {
25167        &self.syntax
25168    }
25169}
25170impl AstNode for JoinUsingClause {
25171    #[inline]
25172    fn can_cast(kind: SyntaxKind) -> bool {
25173        kind == SyntaxKind::JOIN_USING_CLAUSE
25174    }
25175    #[inline]
25176    fn cast(syntax: SyntaxNode) -> Option<Self> {
25177        if Self::can_cast(syntax.kind()) {
25178            Some(Self { syntax })
25179        } else {
25180            None
25181        }
25182    }
25183    #[inline]
25184    fn syntax(&self) -> &SyntaxNode {
25185        &self.syntax
25186    }
25187}
25188impl AstNode for JsonArrayAggFn {
25189    #[inline]
25190    fn can_cast(kind: SyntaxKind) -> bool {
25191        kind == SyntaxKind::JSON_ARRAY_AGG_FN
25192    }
25193    #[inline]
25194    fn cast(syntax: SyntaxNode) -> Option<Self> {
25195        if Self::can_cast(syntax.kind()) {
25196            Some(Self { syntax })
25197        } else {
25198            None
25199        }
25200    }
25201    #[inline]
25202    fn syntax(&self) -> &SyntaxNode {
25203        &self.syntax
25204    }
25205}
25206impl AstNode for JsonArrayFn {
25207    #[inline]
25208    fn can_cast(kind: SyntaxKind) -> bool {
25209        kind == SyntaxKind::JSON_ARRAY_FN
25210    }
25211    #[inline]
25212    fn cast(syntax: SyntaxNode) -> Option<Self> {
25213        if Self::can_cast(syntax.kind()) {
25214            Some(Self { syntax })
25215        } else {
25216            None
25217        }
25218    }
25219    #[inline]
25220    fn syntax(&self) -> &SyntaxNode {
25221        &self.syntax
25222    }
25223}
25224impl AstNode for JsonBehaviorClause {
25225    #[inline]
25226    fn can_cast(kind: SyntaxKind) -> bool {
25227        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
25228    }
25229    #[inline]
25230    fn cast(syntax: SyntaxNode) -> Option<Self> {
25231        if Self::can_cast(syntax.kind()) {
25232            Some(Self { syntax })
25233        } else {
25234            None
25235        }
25236    }
25237    #[inline]
25238    fn syntax(&self) -> &SyntaxNode {
25239        &self.syntax
25240    }
25241}
25242impl AstNode for JsonBehaviorDefault {
25243    #[inline]
25244    fn can_cast(kind: SyntaxKind) -> bool {
25245        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
25246    }
25247    #[inline]
25248    fn cast(syntax: SyntaxNode) -> Option<Self> {
25249        if Self::can_cast(syntax.kind()) {
25250            Some(Self { syntax })
25251        } else {
25252            None
25253        }
25254    }
25255    #[inline]
25256    fn syntax(&self) -> &SyntaxNode {
25257        &self.syntax
25258    }
25259}
25260impl AstNode for JsonBehaviorEmptyArray {
25261    #[inline]
25262    fn can_cast(kind: SyntaxKind) -> bool {
25263        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
25264    }
25265    #[inline]
25266    fn cast(syntax: SyntaxNode) -> Option<Self> {
25267        if Self::can_cast(syntax.kind()) {
25268            Some(Self { syntax })
25269        } else {
25270            None
25271        }
25272    }
25273    #[inline]
25274    fn syntax(&self) -> &SyntaxNode {
25275        &self.syntax
25276    }
25277}
25278impl AstNode for JsonBehaviorEmptyObject {
25279    #[inline]
25280    fn can_cast(kind: SyntaxKind) -> bool {
25281        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
25282    }
25283    #[inline]
25284    fn cast(syntax: SyntaxNode) -> Option<Self> {
25285        if Self::can_cast(syntax.kind()) {
25286            Some(Self { syntax })
25287        } else {
25288            None
25289        }
25290    }
25291    #[inline]
25292    fn syntax(&self) -> &SyntaxNode {
25293        &self.syntax
25294    }
25295}
25296impl AstNode for JsonBehaviorError {
25297    #[inline]
25298    fn can_cast(kind: SyntaxKind) -> bool {
25299        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
25300    }
25301    #[inline]
25302    fn cast(syntax: SyntaxNode) -> Option<Self> {
25303        if Self::can_cast(syntax.kind()) {
25304            Some(Self { syntax })
25305        } else {
25306            None
25307        }
25308    }
25309    #[inline]
25310    fn syntax(&self) -> &SyntaxNode {
25311        &self.syntax
25312    }
25313}
25314impl AstNode for JsonBehaviorFalse {
25315    #[inline]
25316    fn can_cast(kind: SyntaxKind) -> bool {
25317        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
25318    }
25319    #[inline]
25320    fn cast(syntax: SyntaxNode) -> Option<Self> {
25321        if Self::can_cast(syntax.kind()) {
25322            Some(Self { syntax })
25323        } else {
25324            None
25325        }
25326    }
25327    #[inline]
25328    fn syntax(&self) -> &SyntaxNode {
25329        &self.syntax
25330    }
25331}
25332impl AstNode for JsonBehaviorNull {
25333    #[inline]
25334    fn can_cast(kind: SyntaxKind) -> bool {
25335        kind == SyntaxKind::JSON_BEHAVIOR_NULL
25336    }
25337    #[inline]
25338    fn cast(syntax: SyntaxNode) -> Option<Self> {
25339        if Self::can_cast(syntax.kind()) {
25340            Some(Self { syntax })
25341        } else {
25342            None
25343        }
25344    }
25345    #[inline]
25346    fn syntax(&self) -> &SyntaxNode {
25347        &self.syntax
25348    }
25349}
25350impl AstNode for JsonBehaviorTrue {
25351    #[inline]
25352    fn can_cast(kind: SyntaxKind) -> bool {
25353        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
25354    }
25355    #[inline]
25356    fn cast(syntax: SyntaxNode) -> Option<Self> {
25357        if Self::can_cast(syntax.kind()) {
25358            Some(Self { syntax })
25359        } else {
25360            None
25361        }
25362    }
25363    #[inline]
25364    fn syntax(&self) -> &SyntaxNode {
25365        &self.syntax
25366    }
25367}
25368impl AstNode for JsonBehaviorUnknown {
25369    #[inline]
25370    fn can_cast(kind: SyntaxKind) -> bool {
25371        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
25372    }
25373    #[inline]
25374    fn cast(syntax: SyntaxNode) -> Option<Self> {
25375        if Self::can_cast(syntax.kind()) {
25376            Some(Self { syntax })
25377        } else {
25378            None
25379        }
25380    }
25381    #[inline]
25382    fn syntax(&self) -> &SyntaxNode {
25383        &self.syntax
25384    }
25385}
25386impl AstNode for JsonEncodingClause {
25387    #[inline]
25388    fn can_cast(kind: SyntaxKind) -> bool {
25389        kind == SyntaxKind::JSON_ENCODING_CLAUSE
25390    }
25391    #[inline]
25392    fn cast(syntax: SyntaxNode) -> Option<Self> {
25393        if Self::can_cast(syntax.kind()) {
25394            Some(Self { syntax })
25395        } else {
25396            None
25397        }
25398    }
25399    #[inline]
25400    fn syntax(&self) -> &SyntaxNode {
25401        &self.syntax
25402    }
25403}
25404impl AstNode for JsonExistsFn {
25405    #[inline]
25406    fn can_cast(kind: SyntaxKind) -> bool {
25407        kind == SyntaxKind::JSON_EXISTS_FN
25408    }
25409    #[inline]
25410    fn cast(syntax: SyntaxNode) -> Option<Self> {
25411        if Self::can_cast(syntax.kind()) {
25412            Some(Self { syntax })
25413        } else {
25414            None
25415        }
25416    }
25417    #[inline]
25418    fn syntax(&self) -> &SyntaxNode {
25419        &self.syntax
25420    }
25421}
25422impl AstNode for JsonExprFormat {
25423    #[inline]
25424    fn can_cast(kind: SyntaxKind) -> bool {
25425        kind == SyntaxKind::JSON_EXPR_FORMAT
25426    }
25427    #[inline]
25428    fn cast(syntax: SyntaxNode) -> Option<Self> {
25429        if Self::can_cast(syntax.kind()) {
25430            Some(Self { syntax })
25431        } else {
25432            None
25433        }
25434    }
25435    #[inline]
25436    fn syntax(&self) -> &SyntaxNode {
25437        &self.syntax
25438    }
25439}
25440impl AstNode for JsonFn {
25441    #[inline]
25442    fn can_cast(kind: SyntaxKind) -> bool {
25443        kind == SyntaxKind::JSON_FN
25444    }
25445    #[inline]
25446    fn cast(syntax: SyntaxNode) -> Option<Self> {
25447        if Self::can_cast(syntax.kind()) {
25448            Some(Self { syntax })
25449        } else {
25450            None
25451        }
25452    }
25453    #[inline]
25454    fn syntax(&self) -> &SyntaxNode {
25455        &self.syntax
25456    }
25457}
25458impl AstNode for JsonFormatClause {
25459    #[inline]
25460    fn can_cast(kind: SyntaxKind) -> bool {
25461        kind == SyntaxKind::JSON_FORMAT_CLAUSE
25462    }
25463    #[inline]
25464    fn cast(syntax: SyntaxNode) -> Option<Self> {
25465        if Self::can_cast(syntax.kind()) {
25466            Some(Self { syntax })
25467        } else {
25468            None
25469        }
25470    }
25471    #[inline]
25472    fn syntax(&self) -> &SyntaxNode {
25473        &self.syntax
25474    }
25475}
25476impl AstNode for JsonKeyValue {
25477    #[inline]
25478    fn can_cast(kind: SyntaxKind) -> bool {
25479        kind == SyntaxKind::JSON_KEY_VALUE
25480    }
25481    #[inline]
25482    fn cast(syntax: SyntaxNode) -> Option<Self> {
25483        if Self::can_cast(syntax.kind()) {
25484            Some(Self { syntax })
25485        } else {
25486            None
25487        }
25488    }
25489    #[inline]
25490    fn syntax(&self) -> &SyntaxNode {
25491        &self.syntax
25492    }
25493}
25494impl AstNode for JsonKeysUniqueClause {
25495    #[inline]
25496    fn can_cast(kind: SyntaxKind) -> bool {
25497        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
25498    }
25499    #[inline]
25500    fn cast(syntax: SyntaxNode) -> Option<Self> {
25501        if Self::can_cast(syntax.kind()) {
25502            Some(Self { syntax })
25503        } else {
25504            None
25505        }
25506    }
25507    #[inline]
25508    fn syntax(&self) -> &SyntaxNode {
25509        &self.syntax
25510    }
25511}
25512impl AstNode for JsonNullClause {
25513    #[inline]
25514    fn can_cast(kind: SyntaxKind) -> bool {
25515        kind == SyntaxKind::JSON_NULL_CLAUSE
25516    }
25517    #[inline]
25518    fn cast(syntax: SyntaxNode) -> Option<Self> {
25519        if Self::can_cast(syntax.kind()) {
25520            Some(Self { syntax })
25521        } else {
25522            None
25523        }
25524    }
25525    #[inline]
25526    fn syntax(&self) -> &SyntaxNode {
25527        &self.syntax
25528    }
25529}
25530impl AstNode for JsonObjectAggFn {
25531    #[inline]
25532    fn can_cast(kind: SyntaxKind) -> bool {
25533        kind == SyntaxKind::JSON_OBJECT_AGG_FN
25534    }
25535    #[inline]
25536    fn cast(syntax: SyntaxNode) -> Option<Self> {
25537        if Self::can_cast(syntax.kind()) {
25538            Some(Self { syntax })
25539        } else {
25540            None
25541        }
25542    }
25543    #[inline]
25544    fn syntax(&self) -> &SyntaxNode {
25545        &self.syntax
25546    }
25547}
25548impl AstNode for JsonObjectFn {
25549    #[inline]
25550    fn can_cast(kind: SyntaxKind) -> bool {
25551        kind == SyntaxKind::JSON_OBJECT_FN
25552    }
25553    #[inline]
25554    fn cast(syntax: SyntaxNode) -> Option<Self> {
25555        if Self::can_cast(syntax.kind()) {
25556            Some(Self { syntax })
25557        } else {
25558            None
25559        }
25560    }
25561    #[inline]
25562    fn syntax(&self) -> &SyntaxNode {
25563        &self.syntax
25564    }
25565}
25566impl AstNode for JsonOnEmptyClause {
25567    #[inline]
25568    fn can_cast(kind: SyntaxKind) -> bool {
25569        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
25570    }
25571    #[inline]
25572    fn cast(syntax: SyntaxNode) -> Option<Self> {
25573        if Self::can_cast(syntax.kind()) {
25574            Some(Self { syntax })
25575        } else {
25576            None
25577        }
25578    }
25579    #[inline]
25580    fn syntax(&self) -> &SyntaxNode {
25581        &self.syntax
25582    }
25583}
25584impl AstNode for JsonOnErrorClause {
25585    #[inline]
25586    fn can_cast(kind: SyntaxKind) -> bool {
25587        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
25588    }
25589    #[inline]
25590    fn cast(syntax: SyntaxNode) -> Option<Self> {
25591        if Self::can_cast(syntax.kind()) {
25592            Some(Self { syntax })
25593        } else {
25594            None
25595        }
25596    }
25597    #[inline]
25598    fn syntax(&self) -> &SyntaxNode {
25599        &self.syntax
25600    }
25601}
25602impl AstNode for JsonPassingArg {
25603    #[inline]
25604    fn can_cast(kind: SyntaxKind) -> bool {
25605        kind == SyntaxKind::JSON_PASSING_ARG
25606    }
25607    #[inline]
25608    fn cast(syntax: SyntaxNode) -> Option<Self> {
25609        if Self::can_cast(syntax.kind()) {
25610            Some(Self { syntax })
25611        } else {
25612            None
25613        }
25614    }
25615    #[inline]
25616    fn syntax(&self) -> &SyntaxNode {
25617        &self.syntax
25618    }
25619}
25620impl AstNode for JsonPassingClause {
25621    #[inline]
25622    fn can_cast(kind: SyntaxKind) -> bool {
25623        kind == SyntaxKind::JSON_PASSING_CLAUSE
25624    }
25625    #[inline]
25626    fn cast(syntax: SyntaxNode) -> Option<Self> {
25627        if Self::can_cast(syntax.kind()) {
25628            Some(Self { syntax })
25629        } else {
25630            None
25631        }
25632    }
25633    #[inline]
25634    fn syntax(&self) -> &SyntaxNode {
25635        &self.syntax
25636    }
25637}
25638impl AstNode for JsonPathClause {
25639    #[inline]
25640    fn can_cast(kind: SyntaxKind) -> bool {
25641        kind == SyntaxKind::JSON_PATH_CLAUSE
25642    }
25643    #[inline]
25644    fn cast(syntax: SyntaxNode) -> Option<Self> {
25645        if Self::can_cast(syntax.kind()) {
25646            Some(Self { syntax })
25647        } else {
25648            None
25649        }
25650    }
25651    #[inline]
25652    fn syntax(&self) -> &SyntaxNode {
25653        &self.syntax
25654    }
25655}
25656impl AstNode for JsonQueryFn {
25657    #[inline]
25658    fn can_cast(kind: SyntaxKind) -> bool {
25659        kind == SyntaxKind::JSON_QUERY_FN
25660    }
25661    #[inline]
25662    fn cast(syntax: SyntaxNode) -> Option<Self> {
25663        if Self::can_cast(syntax.kind()) {
25664            Some(Self { syntax })
25665        } else {
25666            None
25667        }
25668    }
25669    #[inline]
25670    fn syntax(&self) -> &SyntaxNode {
25671        &self.syntax
25672    }
25673}
25674impl AstNode for JsonQuotesClause {
25675    #[inline]
25676    fn can_cast(kind: SyntaxKind) -> bool {
25677        kind == SyntaxKind::JSON_QUOTES_CLAUSE
25678    }
25679    #[inline]
25680    fn cast(syntax: SyntaxNode) -> Option<Self> {
25681        if Self::can_cast(syntax.kind()) {
25682            Some(Self { syntax })
25683        } else {
25684            None
25685        }
25686    }
25687    #[inline]
25688    fn syntax(&self) -> &SyntaxNode {
25689        &self.syntax
25690    }
25691}
25692impl AstNode for JsonReturningClause {
25693    #[inline]
25694    fn can_cast(kind: SyntaxKind) -> bool {
25695        kind == SyntaxKind::JSON_RETURNING_CLAUSE
25696    }
25697    #[inline]
25698    fn cast(syntax: SyntaxNode) -> Option<Self> {
25699        if Self::can_cast(syntax.kind()) {
25700            Some(Self { syntax })
25701        } else {
25702            None
25703        }
25704    }
25705    #[inline]
25706    fn syntax(&self) -> &SyntaxNode {
25707        &self.syntax
25708    }
25709}
25710impl AstNode for JsonScalarFn {
25711    #[inline]
25712    fn can_cast(kind: SyntaxKind) -> bool {
25713        kind == SyntaxKind::JSON_SCALAR_FN
25714    }
25715    #[inline]
25716    fn cast(syntax: SyntaxNode) -> Option<Self> {
25717        if Self::can_cast(syntax.kind()) {
25718            Some(Self { syntax })
25719        } else {
25720            None
25721        }
25722    }
25723    #[inline]
25724    fn syntax(&self) -> &SyntaxNode {
25725        &self.syntax
25726    }
25727}
25728impl AstNode for JsonSelectFormat {
25729    #[inline]
25730    fn can_cast(kind: SyntaxKind) -> bool {
25731        kind == SyntaxKind::JSON_SELECT_FORMAT
25732    }
25733    #[inline]
25734    fn cast(syntax: SyntaxNode) -> Option<Self> {
25735        if Self::can_cast(syntax.kind()) {
25736            Some(Self { syntax })
25737        } else {
25738            None
25739        }
25740    }
25741    #[inline]
25742    fn syntax(&self) -> &SyntaxNode {
25743        &self.syntax
25744    }
25745}
25746impl AstNode for JsonSerializeFn {
25747    #[inline]
25748    fn can_cast(kind: SyntaxKind) -> bool {
25749        kind == SyntaxKind::JSON_SERIALIZE_FN
25750    }
25751    #[inline]
25752    fn cast(syntax: SyntaxNode) -> Option<Self> {
25753        if Self::can_cast(syntax.kind()) {
25754            Some(Self { syntax })
25755        } else {
25756            None
25757        }
25758    }
25759    #[inline]
25760    fn syntax(&self) -> &SyntaxNode {
25761        &self.syntax
25762    }
25763}
25764impl AstNode for JsonTable {
25765    #[inline]
25766    fn can_cast(kind: SyntaxKind) -> bool {
25767        kind == SyntaxKind::JSON_TABLE
25768    }
25769    #[inline]
25770    fn cast(syntax: SyntaxNode) -> Option<Self> {
25771        if Self::can_cast(syntax.kind()) {
25772            Some(Self { syntax })
25773        } else {
25774            None
25775        }
25776    }
25777    #[inline]
25778    fn syntax(&self) -> &SyntaxNode {
25779        &self.syntax
25780    }
25781}
25782impl AstNode for JsonTableColumn {
25783    #[inline]
25784    fn can_cast(kind: SyntaxKind) -> bool {
25785        kind == SyntaxKind::JSON_TABLE_COLUMN
25786    }
25787    #[inline]
25788    fn cast(syntax: SyntaxNode) -> Option<Self> {
25789        if Self::can_cast(syntax.kind()) {
25790            Some(Self { syntax })
25791        } else {
25792            None
25793        }
25794    }
25795    #[inline]
25796    fn syntax(&self) -> &SyntaxNode {
25797        &self.syntax
25798    }
25799}
25800impl AstNode for JsonTableColumnList {
25801    #[inline]
25802    fn can_cast(kind: SyntaxKind) -> bool {
25803        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
25804    }
25805    #[inline]
25806    fn cast(syntax: SyntaxNode) -> Option<Self> {
25807        if Self::can_cast(syntax.kind()) {
25808            Some(Self { syntax })
25809        } else {
25810            None
25811        }
25812    }
25813    #[inline]
25814    fn syntax(&self) -> &SyntaxNode {
25815        &self.syntax
25816    }
25817}
25818impl AstNode for JsonValueExpr {
25819    #[inline]
25820    fn can_cast(kind: SyntaxKind) -> bool {
25821        kind == SyntaxKind::JSON_VALUE_EXPR
25822    }
25823    #[inline]
25824    fn cast(syntax: SyntaxNode) -> Option<Self> {
25825        if Self::can_cast(syntax.kind()) {
25826            Some(Self { syntax })
25827        } else {
25828            None
25829        }
25830    }
25831    #[inline]
25832    fn syntax(&self) -> &SyntaxNode {
25833        &self.syntax
25834    }
25835}
25836impl AstNode for JsonValueFn {
25837    #[inline]
25838    fn can_cast(kind: SyntaxKind) -> bool {
25839        kind == SyntaxKind::JSON_VALUE_FN
25840    }
25841    #[inline]
25842    fn cast(syntax: SyntaxNode) -> Option<Self> {
25843        if Self::can_cast(syntax.kind()) {
25844            Some(Self { syntax })
25845        } else {
25846            None
25847        }
25848    }
25849    #[inline]
25850    fn syntax(&self) -> &SyntaxNode {
25851        &self.syntax
25852    }
25853}
25854impl AstNode for JsonWrapperBehaviorClause {
25855    #[inline]
25856    fn can_cast(kind: SyntaxKind) -> bool {
25857        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
25858    }
25859    #[inline]
25860    fn cast(syntax: SyntaxNode) -> Option<Self> {
25861        if Self::can_cast(syntax.kind()) {
25862            Some(Self { syntax })
25863        } else {
25864            None
25865        }
25866    }
25867    #[inline]
25868    fn syntax(&self) -> &SyntaxNode {
25869        &self.syntax
25870    }
25871}
25872impl AstNode for LabelAndProperties {
25873    #[inline]
25874    fn can_cast(kind: SyntaxKind) -> bool {
25875        kind == SyntaxKind::LABEL_AND_PROPERTIES
25876    }
25877    #[inline]
25878    fn cast(syntax: SyntaxNode) -> Option<Self> {
25879        if Self::can_cast(syntax.kind()) {
25880            Some(Self { syntax })
25881        } else {
25882            None
25883        }
25884    }
25885    #[inline]
25886    fn syntax(&self) -> &SyntaxNode {
25887        &self.syntax
25888    }
25889}
25890impl AstNode for LabelAndPropertiesList {
25891    #[inline]
25892    fn can_cast(kind: SyntaxKind) -> bool {
25893        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
25894    }
25895    #[inline]
25896    fn cast(syntax: SyntaxNode) -> Option<Self> {
25897        if Self::can_cast(syntax.kind()) {
25898            Some(Self { syntax })
25899        } else {
25900            None
25901        }
25902    }
25903    #[inline]
25904    fn syntax(&self) -> &SyntaxNode {
25905        &self.syntax
25906    }
25907}
25908impl AstNode for LanguageFuncOption {
25909    #[inline]
25910    fn can_cast(kind: SyntaxKind) -> bool {
25911        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
25912    }
25913    #[inline]
25914    fn cast(syntax: SyntaxNode) -> Option<Self> {
25915        if Self::can_cast(syntax.kind()) {
25916            Some(Self { syntax })
25917        } else {
25918            None
25919        }
25920    }
25921    #[inline]
25922    fn syntax(&self) -> &SyntaxNode {
25923        &self.syntax
25924    }
25925}
25926impl AstNode for LeakproofFuncOption {
25927    #[inline]
25928    fn can_cast(kind: SyntaxKind) -> bool {
25929        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
25930    }
25931    #[inline]
25932    fn cast(syntax: SyntaxNode) -> Option<Self> {
25933        if Self::can_cast(syntax.kind()) {
25934            Some(Self { syntax })
25935        } else {
25936            None
25937        }
25938    }
25939    #[inline]
25940    fn syntax(&self) -> &SyntaxNode {
25941        &self.syntax
25942    }
25943}
25944impl AstNode for LikeClause {
25945    #[inline]
25946    fn can_cast(kind: SyntaxKind) -> bool {
25947        kind == SyntaxKind::LIKE_CLAUSE
25948    }
25949    #[inline]
25950    fn cast(syntax: SyntaxNode) -> Option<Self> {
25951        if Self::can_cast(syntax.kind()) {
25952            Some(Self { syntax })
25953        } else {
25954            None
25955        }
25956    }
25957    #[inline]
25958    fn syntax(&self) -> &SyntaxNode {
25959        &self.syntax
25960    }
25961}
25962impl AstNode for LikeOption {
25963    #[inline]
25964    fn can_cast(kind: SyntaxKind) -> bool {
25965        kind == SyntaxKind::LIKE_OPTION
25966    }
25967    #[inline]
25968    fn cast(syntax: SyntaxNode) -> Option<Self> {
25969        if Self::can_cast(syntax.kind()) {
25970            Some(Self { syntax })
25971        } else {
25972            None
25973        }
25974    }
25975    #[inline]
25976    fn syntax(&self) -> &SyntaxNode {
25977        &self.syntax
25978    }
25979}
25980impl AstNode for LimitClause {
25981    #[inline]
25982    fn can_cast(kind: SyntaxKind) -> bool {
25983        kind == SyntaxKind::LIMIT_CLAUSE
25984    }
25985    #[inline]
25986    fn cast(syntax: SyntaxNode) -> Option<Self> {
25987        if Self::can_cast(syntax.kind()) {
25988            Some(Self { syntax })
25989        } else {
25990            None
25991        }
25992    }
25993    #[inline]
25994    fn syntax(&self) -> &SyntaxNode {
25995        &self.syntax
25996    }
25997}
25998impl AstNode for LimitToTables {
25999    #[inline]
26000    fn can_cast(kind: SyntaxKind) -> bool {
26001        kind == SyntaxKind::LIMIT_TO_TABLES
26002    }
26003    #[inline]
26004    fn cast(syntax: SyntaxNode) -> Option<Self> {
26005        if Self::can_cast(syntax.kind()) {
26006            Some(Self { syntax })
26007        } else {
26008            None
26009        }
26010    }
26011    #[inline]
26012    fn syntax(&self) -> &SyntaxNode {
26013        &self.syntax
26014    }
26015}
26016impl AstNode for Listen {
26017    #[inline]
26018    fn can_cast(kind: SyntaxKind) -> bool {
26019        kind == SyntaxKind::LISTEN
26020    }
26021    #[inline]
26022    fn cast(syntax: SyntaxNode) -> Option<Self> {
26023        if Self::can_cast(syntax.kind()) {
26024            Some(Self { syntax })
26025        } else {
26026            None
26027        }
26028    }
26029    #[inline]
26030    fn syntax(&self) -> &SyntaxNode {
26031        &self.syntax
26032    }
26033}
26034impl AstNode for Literal {
26035    #[inline]
26036    fn can_cast(kind: SyntaxKind) -> bool {
26037        kind == SyntaxKind::LITERAL
26038    }
26039    #[inline]
26040    fn cast(syntax: SyntaxNode) -> Option<Self> {
26041        if Self::can_cast(syntax.kind()) {
26042            Some(Self { syntax })
26043        } else {
26044            None
26045        }
26046    }
26047    #[inline]
26048    fn syntax(&self) -> &SyntaxNode {
26049        &self.syntax
26050    }
26051}
26052impl AstNode for Load {
26053    #[inline]
26054    fn can_cast(kind: SyntaxKind) -> bool {
26055        kind == SyntaxKind::LOAD
26056    }
26057    #[inline]
26058    fn cast(syntax: SyntaxNode) -> Option<Self> {
26059        if Self::can_cast(syntax.kind()) {
26060            Some(Self { syntax })
26061        } else {
26062            None
26063        }
26064    }
26065    #[inline]
26066    fn syntax(&self) -> &SyntaxNode {
26067        &self.syntax
26068    }
26069}
26070impl AstNode for Lock {
26071    #[inline]
26072    fn can_cast(kind: SyntaxKind) -> bool {
26073        kind == SyntaxKind::LOCK
26074    }
26075    #[inline]
26076    fn cast(syntax: SyntaxNode) -> Option<Self> {
26077        if Self::can_cast(syntax.kind()) {
26078            Some(Self { syntax })
26079        } else {
26080            None
26081        }
26082    }
26083    #[inline]
26084    fn syntax(&self) -> &SyntaxNode {
26085        &self.syntax
26086    }
26087}
26088impl AstNode for LockingClause {
26089    #[inline]
26090    fn can_cast(kind: SyntaxKind) -> bool {
26091        kind == SyntaxKind::LOCKING_CLAUSE
26092    }
26093    #[inline]
26094    fn cast(syntax: SyntaxNode) -> Option<Self> {
26095        if Self::can_cast(syntax.kind()) {
26096            Some(Self { syntax })
26097        } else {
26098            None
26099        }
26100    }
26101    #[inline]
26102    fn syntax(&self) -> &SyntaxNode {
26103        &self.syntax
26104    }
26105}
26106impl AstNode for Lteq {
26107    #[inline]
26108    fn can_cast(kind: SyntaxKind) -> bool {
26109        kind == SyntaxKind::LTEQ
26110    }
26111    #[inline]
26112    fn cast(syntax: SyntaxNode) -> Option<Self> {
26113        if Self::can_cast(syntax.kind()) {
26114            Some(Self { syntax })
26115        } else {
26116            None
26117        }
26118    }
26119    #[inline]
26120    fn syntax(&self) -> &SyntaxNode {
26121        &self.syntax
26122    }
26123}
26124impl AstNode for MatchFull {
26125    #[inline]
26126    fn can_cast(kind: SyntaxKind) -> bool {
26127        kind == SyntaxKind::MATCH_FULL
26128    }
26129    #[inline]
26130    fn cast(syntax: SyntaxNode) -> Option<Self> {
26131        if Self::can_cast(syntax.kind()) {
26132            Some(Self { syntax })
26133        } else {
26134            None
26135        }
26136    }
26137    #[inline]
26138    fn syntax(&self) -> &SyntaxNode {
26139        &self.syntax
26140    }
26141}
26142impl AstNode for MatchPartial {
26143    #[inline]
26144    fn can_cast(kind: SyntaxKind) -> bool {
26145        kind == SyntaxKind::MATCH_PARTIAL
26146    }
26147    #[inline]
26148    fn cast(syntax: SyntaxNode) -> Option<Self> {
26149        if Self::can_cast(syntax.kind()) {
26150            Some(Self { syntax })
26151        } else {
26152            None
26153        }
26154    }
26155    #[inline]
26156    fn syntax(&self) -> &SyntaxNode {
26157        &self.syntax
26158    }
26159}
26160impl AstNode for MatchSimple {
26161    #[inline]
26162    fn can_cast(kind: SyntaxKind) -> bool {
26163        kind == SyntaxKind::MATCH_SIMPLE
26164    }
26165    #[inline]
26166    fn cast(syntax: SyntaxNode) -> Option<Self> {
26167        if Self::can_cast(syntax.kind()) {
26168            Some(Self { syntax })
26169        } else {
26170            None
26171        }
26172    }
26173    #[inline]
26174    fn syntax(&self) -> &SyntaxNode {
26175        &self.syntax
26176    }
26177}
26178impl AstNode for Materialized {
26179    #[inline]
26180    fn can_cast(kind: SyntaxKind) -> bool {
26181        kind == SyntaxKind::MATERIALIZED
26182    }
26183    #[inline]
26184    fn cast(syntax: SyntaxNode) -> Option<Self> {
26185        if Self::can_cast(syntax.kind()) {
26186            Some(Self { syntax })
26187        } else {
26188            None
26189        }
26190    }
26191    #[inline]
26192    fn syntax(&self) -> &SyntaxNode {
26193        &self.syntax
26194    }
26195}
26196impl AstNode for Merge {
26197    #[inline]
26198    fn can_cast(kind: SyntaxKind) -> bool {
26199        kind == SyntaxKind::MERGE
26200    }
26201    #[inline]
26202    fn cast(syntax: SyntaxNode) -> Option<Self> {
26203        if Self::can_cast(syntax.kind()) {
26204            Some(Self { syntax })
26205        } else {
26206            None
26207        }
26208    }
26209    #[inline]
26210    fn syntax(&self) -> &SyntaxNode {
26211        &self.syntax
26212    }
26213}
26214impl AstNode for MergeDelete {
26215    #[inline]
26216    fn can_cast(kind: SyntaxKind) -> bool {
26217        kind == SyntaxKind::MERGE_DELETE
26218    }
26219    #[inline]
26220    fn cast(syntax: SyntaxNode) -> Option<Self> {
26221        if Self::can_cast(syntax.kind()) {
26222            Some(Self { syntax })
26223        } else {
26224            None
26225        }
26226    }
26227    #[inline]
26228    fn syntax(&self) -> &SyntaxNode {
26229        &self.syntax
26230    }
26231}
26232impl AstNode for MergeDoNothing {
26233    #[inline]
26234    fn can_cast(kind: SyntaxKind) -> bool {
26235        kind == SyntaxKind::MERGE_DO_NOTHING
26236    }
26237    #[inline]
26238    fn cast(syntax: SyntaxNode) -> Option<Self> {
26239        if Self::can_cast(syntax.kind()) {
26240            Some(Self { syntax })
26241        } else {
26242            None
26243        }
26244    }
26245    #[inline]
26246    fn syntax(&self) -> &SyntaxNode {
26247        &self.syntax
26248    }
26249}
26250impl AstNode for MergeInsert {
26251    #[inline]
26252    fn can_cast(kind: SyntaxKind) -> bool {
26253        kind == SyntaxKind::MERGE_INSERT
26254    }
26255    #[inline]
26256    fn cast(syntax: SyntaxNode) -> Option<Self> {
26257        if Self::can_cast(syntax.kind()) {
26258            Some(Self { syntax })
26259        } else {
26260            None
26261        }
26262    }
26263    #[inline]
26264    fn syntax(&self) -> &SyntaxNode {
26265        &self.syntax
26266    }
26267}
26268impl AstNode for MergePartitions {
26269    #[inline]
26270    fn can_cast(kind: SyntaxKind) -> bool {
26271        kind == SyntaxKind::MERGE_PARTITIONS
26272    }
26273    #[inline]
26274    fn cast(syntax: SyntaxNode) -> Option<Self> {
26275        if Self::can_cast(syntax.kind()) {
26276            Some(Self { syntax })
26277        } else {
26278            None
26279        }
26280    }
26281    #[inline]
26282    fn syntax(&self) -> &SyntaxNode {
26283        &self.syntax
26284    }
26285}
26286impl AstNode for MergeUpdate {
26287    #[inline]
26288    fn can_cast(kind: SyntaxKind) -> bool {
26289        kind == SyntaxKind::MERGE_UPDATE
26290    }
26291    #[inline]
26292    fn cast(syntax: SyntaxNode) -> Option<Self> {
26293        if Self::can_cast(syntax.kind()) {
26294            Some(Self { syntax })
26295        } else {
26296            None
26297        }
26298    }
26299    #[inline]
26300    fn syntax(&self) -> &SyntaxNode {
26301        &self.syntax
26302    }
26303}
26304impl AstNode for MergeWhenMatched {
26305    #[inline]
26306    fn can_cast(kind: SyntaxKind) -> bool {
26307        kind == SyntaxKind::MERGE_WHEN_MATCHED
26308    }
26309    #[inline]
26310    fn cast(syntax: SyntaxNode) -> Option<Self> {
26311        if Self::can_cast(syntax.kind()) {
26312            Some(Self { syntax })
26313        } else {
26314            None
26315        }
26316    }
26317    #[inline]
26318    fn syntax(&self) -> &SyntaxNode {
26319        &self.syntax
26320    }
26321}
26322impl AstNode for MergeWhenNotMatchedSource {
26323    #[inline]
26324    fn can_cast(kind: SyntaxKind) -> bool {
26325        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
26326    }
26327    #[inline]
26328    fn cast(syntax: SyntaxNode) -> Option<Self> {
26329        if Self::can_cast(syntax.kind()) {
26330            Some(Self { syntax })
26331        } else {
26332            None
26333        }
26334    }
26335    #[inline]
26336    fn syntax(&self) -> &SyntaxNode {
26337        &self.syntax
26338    }
26339}
26340impl AstNode for MergeWhenNotMatchedTarget {
26341    #[inline]
26342    fn can_cast(kind: SyntaxKind) -> bool {
26343        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
26344    }
26345    #[inline]
26346    fn cast(syntax: SyntaxNode) -> Option<Self> {
26347        if Self::can_cast(syntax.kind()) {
26348            Some(Self { syntax })
26349        } else {
26350            None
26351        }
26352    }
26353    #[inline]
26354    fn syntax(&self) -> &SyntaxNode {
26355        &self.syntax
26356    }
26357}
26358impl AstNode for Move {
26359    #[inline]
26360    fn can_cast(kind: SyntaxKind) -> bool {
26361        kind == SyntaxKind::MOVE
26362    }
26363    #[inline]
26364    fn cast(syntax: SyntaxNode) -> Option<Self> {
26365        if Self::can_cast(syntax.kind()) {
26366            Some(Self { syntax })
26367        } else {
26368            None
26369        }
26370    }
26371    #[inline]
26372    fn syntax(&self) -> &SyntaxNode {
26373        &self.syntax
26374    }
26375}
26376impl AstNode for Name {
26377    #[inline]
26378    fn can_cast(kind: SyntaxKind) -> bool {
26379        kind == SyntaxKind::NAME
26380    }
26381    #[inline]
26382    fn cast(syntax: SyntaxNode) -> Option<Self> {
26383        if Self::can_cast(syntax.kind()) {
26384            Some(Self { syntax })
26385        } else {
26386            None
26387        }
26388    }
26389    #[inline]
26390    fn syntax(&self) -> &SyntaxNode {
26391        &self.syntax
26392    }
26393}
26394impl AstNode for NameRef {
26395    #[inline]
26396    fn can_cast(kind: SyntaxKind) -> bool {
26397        kind == SyntaxKind::NAME_REF
26398    }
26399    #[inline]
26400    fn cast(syntax: SyntaxNode) -> Option<Self> {
26401        if Self::can_cast(syntax.kind()) {
26402            Some(Self { syntax })
26403        } else {
26404            None
26405        }
26406    }
26407    #[inline]
26408    fn syntax(&self) -> &SyntaxNode {
26409        &self.syntax
26410    }
26411}
26412impl AstNode for NamedArg {
26413    #[inline]
26414    fn can_cast(kind: SyntaxKind) -> bool {
26415        kind == SyntaxKind::NAMED_ARG
26416    }
26417    #[inline]
26418    fn cast(syntax: SyntaxNode) -> Option<Self> {
26419        if Self::can_cast(syntax.kind()) {
26420            Some(Self { syntax })
26421        } else {
26422            None
26423        }
26424    }
26425    #[inline]
26426    fn syntax(&self) -> &SyntaxNode {
26427        &self.syntax
26428    }
26429}
26430impl AstNode for Neq {
26431    #[inline]
26432    fn can_cast(kind: SyntaxKind) -> bool {
26433        kind == SyntaxKind::NEQ
26434    }
26435    #[inline]
26436    fn cast(syntax: SyntaxNode) -> Option<Self> {
26437        if Self::can_cast(syntax.kind()) {
26438            Some(Self { syntax })
26439        } else {
26440            None
26441        }
26442    }
26443    #[inline]
26444    fn syntax(&self) -> &SyntaxNode {
26445        &self.syntax
26446    }
26447}
26448impl AstNode for Neqb {
26449    #[inline]
26450    fn can_cast(kind: SyntaxKind) -> bool {
26451        kind == SyntaxKind::NEQB
26452    }
26453    #[inline]
26454    fn cast(syntax: SyntaxNode) -> Option<Self> {
26455        if Self::can_cast(syntax.kind()) {
26456            Some(Self { syntax })
26457        } else {
26458            None
26459        }
26460    }
26461    #[inline]
26462    fn syntax(&self) -> &SyntaxNode {
26463        &self.syntax
26464    }
26465}
26466impl AstNode for NoAction {
26467    #[inline]
26468    fn can_cast(kind: SyntaxKind) -> bool {
26469        kind == SyntaxKind::NO_ACTION
26470    }
26471    #[inline]
26472    fn cast(syntax: SyntaxNode) -> Option<Self> {
26473        if Self::can_cast(syntax.kind()) {
26474            Some(Self { syntax })
26475        } else {
26476            None
26477        }
26478    }
26479    #[inline]
26480    fn syntax(&self) -> &SyntaxNode {
26481        &self.syntax
26482    }
26483}
26484impl AstNode for NoDependsOnExtension {
26485    #[inline]
26486    fn can_cast(kind: SyntaxKind) -> bool {
26487        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
26488    }
26489    #[inline]
26490    fn cast(syntax: SyntaxNode) -> Option<Self> {
26491        if Self::can_cast(syntax.kind()) {
26492            Some(Self { syntax })
26493        } else {
26494            None
26495        }
26496    }
26497    #[inline]
26498    fn syntax(&self) -> &SyntaxNode {
26499        &self.syntax
26500    }
26501}
26502impl AstNode for NoForceRls {
26503    #[inline]
26504    fn can_cast(kind: SyntaxKind) -> bool {
26505        kind == SyntaxKind::NO_FORCE_RLS
26506    }
26507    #[inline]
26508    fn cast(syntax: SyntaxNode) -> Option<Self> {
26509        if Self::can_cast(syntax.kind()) {
26510            Some(Self { syntax })
26511        } else {
26512            None
26513        }
26514    }
26515    #[inline]
26516    fn syntax(&self) -> &SyntaxNode {
26517        &self.syntax
26518    }
26519}
26520impl AstNode for NoInherit {
26521    #[inline]
26522    fn can_cast(kind: SyntaxKind) -> bool {
26523        kind == SyntaxKind::NO_INHERIT
26524    }
26525    #[inline]
26526    fn cast(syntax: SyntaxNode) -> Option<Self> {
26527        if Self::can_cast(syntax.kind()) {
26528            Some(Self { syntax })
26529        } else {
26530            None
26531        }
26532    }
26533    #[inline]
26534    fn syntax(&self) -> &SyntaxNode {
26535        &self.syntax
26536    }
26537}
26538impl AstNode for NoInheritTable {
26539    #[inline]
26540    fn can_cast(kind: SyntaxKind) -> bool {
26541        kind == SyntaxKind::NO_INHERIT_TABLE
26542    }
26543    #[inline]
26544    fn cast(syntax: SyntaxNode) -> Option<Self> {
26545        if Self::can_cast(syntax.kind()) {
26546            Some(Self { syntax })
26547        } else {
26548            None
26549        }
26550    }
26551    #[inline]
26552    fn syntax(&self) -> &SyntaxNode {
26553        &self.syntax
26554    }
26555}
26556impl AstNode for NoProperties {
26557    #[inline]
26558    fn can_cast(kind: SyntaxKind) -> bool {
26559        kind == SyntaxKind::NO_PROPERTIES
26560    }
26561    #[inline]
26562    fn cast(syntax: SyntaxNode) -> Option<Self> {
26563        if Self::can_cast(syntax.kind()) {
26564            Some(Self { syntax })
26565        } else {
26566            None
26567        }
26568    }
26569    #[inline]
26570    fn syntax(&self) -> &SyntaxNode {
26571        &self.syntax
26572    }
26573}
26574impl AstNode for NonStandardParam {
26575    #[inline]
26576    fn can_cast(kind: SyntaxKind) -> bool {
26577        kind == SyntaxKind::NON_STANDARD_PARAM
26578    }
26579    #[inline]
26580    fn cast(syntax: SyntaxNode) -> Option<Self> {
26581        if Self::can_cast(syntax.kind()) {
26582            Some(Self { syntax })
26583        } else {
26584            None
26585        }
26586    }
26587    #[inline]
26588    fn syntax(&self) -> &SyntaxNode {
26589        &self.syntax
26590    }
26591}
26592impl AstNode for NotDeferrable {
26593    #[inline]
26594    fn can_cast(kind: SyntaxKind) -> bool {
26595        kind == SyntaxKind::NOT_DEFERRABLE
26596    }
26597    #[inline]
26598    fn cast(syntax: SyntaxNode) -> Option<Self> {
26599        if Self::can_cast(syntax.kind()) {
26600            Some(Self { syntax })
26601        } else {
26602            None
26603        }
26604    }
26605    #[inline]
26606    fn syntax(&self) -> &SyntaxNode {
26607        &self.syntax
26608    }
26609}
26610impl AstNode for NotDeferrableConstraintOption {
26611    #[inline]
26612    fn can_cast(kind: SyntaxKind) -> bool {
26613        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
26614    }
26615    #[inline]
26616    fn cast(syntax: SyntaxNode) -> Option<Self> {
26617        if Self::can_cast(syntax.kind()) {
26618            Some(Self { syntax })
26619        } else {
26620            None
26621        }
26622    }
26623    #[inline]
26624    fn syntax(&self) -> &SyntaxNode {
26625        &self.syntax
26626    }
26627}
26628impl AstNode for NotEnforced {
26629    #[inline]
26630    fn can_cast(kind: SyntaxKind) -> bool {
26631        kind == SyntaxKind::NOT_ENFORCED
26632    }
26633    #[inline]
26634    fn cast(syntax: SyntaxNode) -> Option<Self> {
26635        if Self::can_cast(syntax.kind()) {
26636            Some(Self { syntax })
26637        } else {
26638            None
26639        }
26640    }
26641    #[inline]
26642    fn syntax(&self) -> &SyntaxNode {
26643        &self.syntax
26644    }
26645}
26646impl AstNode for NotIlike {
26647    #[inline]
26648    fn can_cast(kind: SyntaxKind) -> bool {
26649        kind == SyntaxKind::NOT_ILIKE
26650    }
26651    #[inline]
26652    fn cast(syntax: SyntaxNode) -> Option<Self> {
26653        if Self::can_cast(syntax.kind()) {
26654            Some(Self { syntax })
26655        } else {
26656            None
26657        }
26658    }
26659    #[inline]
26660    fn syntax(&self) -> &SyntaxNode {
26661        &self.syntax
26662    }
26663}
26664impl AstNode for NotIn {
26665    #[inline]
26666    fn can_cast(kind: SyntaxKind) -> bool {
26667        kind == SyntaxKind::NOT_IN
26668    }
26669    #[inline]
26670    fn cast(syntax: SyntaxNode) -> Option<Self> {
26671        if Self::can_cast(syntax.kind()) {
26672            Some(Self { syntax })
26673        } else {
26674            None
26675        }
26676    }
26677    #[inline]
26678    fn syntax(&self) -> &SyntaxNode {
26679        &self.syntax
26680    }
26681}
26682impl AstNode for NotLike {
26683    #[inline]
26684    fn can_cast(kind: SyntaxKind) -> bool {
26685        kind == SyntaxKind::NOT_LIKE
26686    }
26687    #[inline]
26688    fn cast(syntax: SyntaxNode) -> Option<Self> {
26689        if Self::can_cast(syntax.kind()) {
26690            Some(Self { syntax })
26691        } else {
26692            None
26693        }
26694    }
26695    #[inline]
26696    fn syntax(&self) -> &SyntaxNode {
26697        &self.syntax
26698    }
26699}
26700impl AstNode for NotMaterialized {
26701    #[inline]
26702    fn can_cast(kind: SyntaxKind) -> bool {
26703        kind == SyntaxKind::NOT_MATERIALIZED
26704    }
26705    #[inline]
26706    fn cast(syntax: SyntaxNode) -> Option<Self> {
26707        if Self::can_cast(syntax.kind()) {
26708            Some(Self { syntax })
26709        } else {
26710            None
26711        }
26712    }
26713    #[inline]
26714    fn syntax(&self) -> &SyntaxNode {
26715        &self.syntax
26716    }
26717}
26718impl AstNode for NotNullConstraint {
26719    #[inline]
26720    fn can_cast(kind: SyntaxKind) -> bool {
26721        kind == SyntaxKind::NOT_NULL_CONSTRAINT
26722    }
26723    #[inline]
26724    fn cast(syntax: SyntaxNode) -> Option<Self> {
26725        if Self::can_cast(syntax.kind()) {
26726            Some(Self { syntax })
26727        } else {
26728            None
26729        }
26730    }
26731    #[inline]
26732    fn syntax(&self) -> &SyntaxNode {
26733        &self.syntax
26734    }
26735}
26736impl AstNode for NotOf {
26737    #[inline]
26738    fn can_cast(kind: SyntaxKind) -> bool {
26739        kind == SyntaxKind::NOT_OF
26740    }
26741    #[inline]
26742    fn cast(syntax: SyntaxNode) -> Option<Self> {
26743        if Self::can_cast(syntax.kind()) {
26744            Some(Self { syntax })
26745        } else {
26746            None
26747        }
26748    }
26749    #[inline]
26750    fn syntax(&self) -> &SyntaxNode {
26751        &self.syntax
26752    }
26753}
26754impl AstNode for NotSimilarTo {
26755    #[inline]
26756    fn can_cast(kind: SyntaxKind) -> bool {
26757        kind == SyntaxKind::NOT_SIMILAR_TO
26758    }
26759    #[inline]
26760    fn cast(syntax: SyntaxNode) -> Option<Self> {
26761        if Self::can_cast(syntax.kind()) {
26762            Some(Self { syntax })
26763        } else {
26764            None
26765        }
26766    }
26767    #[inline]
26768    fn syntax(&self) -> &SyntaxNode {
26769        &self.syntax
26770    }
26771}
26772impl AstNode for NotValid {
26773    #[inline]
26774    fn can_cast(kind: SyntaxKind) -> bool {
26775        kind == SyntaxKind::NOT_VALID
26776    }
26777    #[inline]
26778    fn cast(syntax: SyntaxNode) -> Option<Self> {
26779        if Self::can_cast(syntax.kind()) {
26780            Some(Self { syntax })
26781        } else {
26782            None
26783        }
26784    }
26785    #[inline]
26786    fn syntax(&self) -> &SyntaxNode {
26787        &self.syntax
26788    }
26789}
26790impl AstNode for Notify {
26791    #[inline]
26792    fn can_cast(kind: SyntaxKind) -> bool {
26793        kind == SyntaxKind::NOTIFY
26794    }
26795    #[inline]
26796    fn cast(syntax: SyntaxNode) -> Option<Self> {
26797        if Self::can_cast(syntax.kind()) {
26798            Some(Self { syntax })
26799        } else {
26800            None
26801        }
26802    }
26803    #[inline]
26804    fn syntax(&self) -> &SyntaxNode {
26805        &self.syntax
26806    }
26807}
26808impl AstNode for NullConstraint {
26809    #[inline]
26810    fn can_cast(kind: SyntaxKind) -> bool {
26811        kind == SyntaxKind::NULL_CONSTRAINT
26812    }
26813    #[inline]
26814    fn cast(syntax: SyntaxNode) -> Option<Self> {
26815        if Self::can_cast(syntax.kind()) {
26816            Some(Self { syntax })
26817        } else {
26818            None
26819        }
26820    }
26821    #[inline]
26822    fn syntax(&self) -> &SyntaxNode {
26823        &self.syntax
26824    }
26825}
26826impl AstNode for NullsDistinct {
26827    #[inline]
26828    fn can_cast(kind: SyntaxKind) -> bool {
26829        kind == SyntaxKind::NULLS_DISTINCT
26830    }
26831    #[inline]
26832    fn cast(syntax: SyntaxNode) -> Option<Self> {
26833        if Self::can_cast(syntax.kind()) {
26834            Some(Self { syntax })
26835        } else {
26836            None
26837        }
26838    }
26839    #[inline]
26840    fn syntax(&self) -> &SyntaxNode {
26841        &self.syntax
26842    }
26843}
26844impl AstNode for NullsFirst {
26845    #[inline]
26846    fn can_cast(kind: SyntaxKind) -> bool {
26847        kind == SyntaxKind::NULLS_FIRST
26848    }
26849    #[inline]
26850    fn cast(syntax: SyntaxNode) -> Option<Self> {
26851        if Self::can_cast(syntax.kind()) {
26852            Some(Self { syntax })
26853        } else {
26854            None
26855        }
26856    }
26857    #[inline]
26858    fn syntax(&self) -> &SyntaxNode {
26859        &self.syntax
26860    }
26861}
26862impl AstNode for NullsLast {
26863    #[inline]
26864    fn can_cast(kind: SyntaxKind) -> bool {
26865        kind == SyntaxKind::NULLS_LAST
26866    }
26867    #[inline]
26868    fn cast(syntax: SyntaxNode) -> Option<Self> {
26869        if Self::can_cast(syntax.kind()) {
26870            Some(Self { syntax })
26871        } else {
26872            None
26873        }
26874    }
26875    #[inline]
26876    fn syntax(&self) -> &SyntaxNode {
26877        &self.syntax
26878    }
26879}
26880impl AstNode for NullsNotDistinct {
26881    #[inline]
26882    fn can_cast(kind: SyntaxKind) -> bool {
26883        kind == SyntaxKind::NULLS_NOT_DISTINCT
26884    }
26885    #[inline]
26886    fn cast(syntax: SyntaxNode) -> Option<Self> {
26887        if Self::can_cast(syntax.kind()) {
26888            Some(Self { syntax })
26889        } else {
26890            None
26891        }
26892    }
26893    #[inline]
26894    fn syntax(&self) -> &SyntaxNode {
26895        &self.syntax
26896    }
26897}
26898impl AstNode for OfType {
26899    #[inline]
26900    fn can_cast(kind: SyntaxKind) -> bool {
26901        kind == SyntaxKind::OF_TYPE
26902    }
26903    #[inline]
26904    fn cast(syntax: SyntaxNode) -> Option<Self> {
26905        if Self::can_cast(syntax.kind()) {
26906            Some(Self { syntax })
26907        } else {
26908            None
26909        }
26910    }
26911    #[inline]
26912    fn syntax(&self) -> &SyntaxNode {
26913        &self.syntax
26914    }
26915}
26916impl AstNode for OffsetClause {
26917    #[inline]
26918    fn can_cast(kind: SyntaxKind) -> bool {
26919        kind == SyntaxKind::OFFSET_CLAUSE
26920    }
26921    #[inline]
26922    fn cast(syntax: SyntaxNode) -> Option<Self> {
26923        if Self::can_cast(syntax.kind()) {
26924            Some(Self { syntax })
26925        } else {
26926            None
26927        }
26928    }
26929    #[inline]
26930    fn syntax(&self) -> &SyntaxNode {
26931        &self.syntax
26932    }
26933}
26934impl AstNode for OnClause {
26935    #[inline]
26936    fn can_cast(kind: SyntaxKind) -> bool {
26937        kind == SyntaxKind::ON_CLAUSE
26938    }
26939    #[inline]
26940    fn cast(syntax: SyntaxNode) -> Option<Self> {
26941        if Self::can_cast(syntax.kind()) {
26942            Some(Self { syntax })
26943        } else {
26944            None
26945        }
26946    }
26947    #[inline]
26948    fn syntax(&self) -> &SyntaxNode {
26949        &self.syntax
26950    }
26951}
26952impl AstNode for OnCommit {
26953    #[inline]
26954    fn can_cast(kind: SyntaxKind) -> bool {
26955        kind == SyntaxKind::ON_COMMIT
26956    }
26957    #[inline]
26958    fn cast(syntax: SyntaxNode) -> Option<Self> {
26959        if Self::can_cast(syntax.kind()) {
26960            Some(Self { syntax })
26961        } else {
26962            None
26963        }
26964    }
26965    #[inline]
26966    fn syntax(&self) -> &SyntaxNode {
26967        &self.syntax
26968    }
26969}
26970impl AstNode for OnConflictClause {
26971    #[inline]
26972    fn can_cast(kind: SyntaxKind) -> bool {
26973        kind == SyntaxKind::ON_CONFLICT_CLAUSE
26974    }
26975    #[inline]
26976    fn cast(syntax: SyntaxNode) -> Option<Self> {
26977        if Self::can_cast(syntax.kind()) {
26978            Some(Self { syntax })
26979        } else {
26980            None
26981        }
26982    }
26983    #[inline]
26984    fn syntax(&self) -> &SyntaxNode {
26985        &self.syntax
26986    }
26987}
26988impl AstNode for OnDeleteAction {
26989    #[inline]
26990    fn can_cast(kind: SyntaxKind) -> bool {
26991        kind == SyntaxKind::ON_DELETE_ACTION
26992    }
26993    #[inline]
26994    fn cast(syntax: SyntaxNode) -> Option<Self> {
26995        if Self::can_cast(syntax.kind()) {
26996            Some(Self { syntax })
26997        } else {
26998            None
26999        }
27000    }
27001    #[inline]
27002    fn syntax(&self) -> &SyntaxNode {
27003        &self.syntax
27004    }
27005}
27006impl AstNode for OnTable {
27007    #[inline]
27008    fn can_cast(kind: SyntaxKind) -> bool {
27009        kind == SyntaxKind::ON_TABLE
27010    }
27011    #[inline]
27012    fn cast(syntax: SyntaxNode) -> Option<Self> {
27013        if Self::can_cast(syntax.kind()) {
27014            Some(Self { syntax })
27015        } else {
27016            None
27017        }
27018    }
27019    #[inline]
27020    fn syntax(&self) -> &SyntaxNode {
27021        &self.syntax
27022    }
27023}
27024impl AstNode for OnUpdateAction {
27025    #[inline]
27026    fn can_cast(kind: SyntaxKind) -> bool {
27027        kind == SyntaxKind::ON_UPDATE_ACTION
27028    }
27029    #[inline]
27030    fn cast(syntax: SyntaxNode) -> Option<Self> {
27031        if Self::can_cast(syntax.kind()) {
27032            Some(Self { syntax })
27033        } else {
27034            None
27035        }
27036    }
27037    #[inline]
27038    fn syntax(&self) -> &SyntaxNode {
27039        &self.syntax
27040    }
27041}
27042impl AstNode for Op {
27043    #[inline]
27044    fn can_cast(kind: SyntaxKind) -> bool {
27045        kind == SyntaxKind::OP
27046    }
27047    #[inline]
27048    fn cast(syntax: SyntaxNode) -> Option<Self> {
27049        if Self::can_cast(syntax.kind()) {
27050            Some(Self { syntax })
27051        } else {
27052            None
27053        }
27054    }
27055    #[inline]
27056    fn syntax(&self) -> &SyntaxNode {
27057        &self.syntax
27058    }
27059}
27060impl AstNode for OpClassOption {
27061    #[inline]
27062    fn can_cast(kind: SyntaxKind) -> bool {
27063        kind == SyntaxKind::OP_CLASS_OPTION
27064    }
27065    #[inline]
27066    fn cast(syntax: SyntaxNode) -> Option<Self> {
27067        if Self::can_cast(syntax.kind()) {
27068            Some(Self { syntax })
27069        } else {
27070            None
27071        }
27072    }
27073    #[inline]
27074    fn syntax(&self) -> &SyntaxNode {
27075        &self.syntax
27076    }
27077}
27078impl AstNode for OpSig {
27079    #[inline]
27080    fn can_cast(kind: SyntaxKind) -> bool {
27081        kind == SyntaxKind::OP_SIG
27082    }
27083    #[inline]
27084    fn cast(syntax: SyntaxNode) -> Option<Self> {
27085        if Self::can_cast(syntax.kind()) {
27086            Some(Self { syntax })
27087        } else {
27088            None
27089        }
27090    }
27091    #[inline]
27092    fn syntax(&self) -> &SyntaxNode {
27093        &self.syntax
27094    }
27095}
27096impl AstNode for OpSigList {
27097    #[inline]
27098    fn can_cast(kind: SyntaxKind) -> bool {
27099        kind == SyntaxKind::OP_SIG_LIST
27100    }
27101    #[inline]
27102    fn cast(syntax: SyntaxNode) -> Option<Self> {
27103        if Self::can_cast(syntax.kind()) {
27104            Some(Self { syntax })
27105        } else {
27106            None
27107        }
27108    }
27109    #[inline]
27110    fn syntax(&self) -> &SyntaxNode {
27111        &self.syntax
27112    }
27113}
27114impl AstNode for OperatorCall {
27115    #[inline]
27116    fn can_cast(kind: SyntaxKind) -> bool {
27117        kind == SyntaxKind::OPERATOR_CALL
27118    }
27119    #[inline]
27120    fn cast(syntax: SyntaxNode) -> Option<Self> {
27121        if Self::can_cast(syntax.kind()) {
27122            Some(Self { syntax })
27123        } else {
27124            None
27125        }
27126    }
27127    #[inline]
27128    fn syntax(&self) -> &SyntaxNode {
27129        &self.syntax
27130    }
27131}
27132impl AstNode for OperatorClassOptionList {
27133    #[inline]
27134    fn can_cast(kind: SyntaxKind) -> bool {
27135        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27136    }
27137    #[inline]
27138    fn cast(syntax: SyntaxNode) -> Option<Self> {
27139        if Self::can_cast(syntax.kind()) {
27140            Some(Self { syntax })
27141        } else {
27142            None
27143        }
27144    }
27145    #[inline]
27146    fn syntax(&self) -> &SyntaxNode {
27147        &self.syntax
27148    }
27149}
27150impl AstNode for OptionItem {
27151    #[inline]
27152    fn can_cast(kind: SyntaxKind) -> bool {
27153        kind == SyntaxKind::OPTION_ITEM
27154    }
27155    #[inline]
27156    fn cast(syntax: SyntaxNode) -> Option<Self> {
27157        if Self::can_cast(syntax.kind()) {
27158            Some(Self { syntax })
27159        } else {
27160            None
27161        }
27162    }
27163    #[inline]
27164    fn syntax(&self) -> &SyntaxNode {
27165        &self.syntax
27166    }
27167}
27168impl AstNode for OptionItemList {
27169    #[inline]
27170    fn can_cast(kind: SyntaxKind) -> bool {
27171        kind == SyntaxKind::OPTION_ITEM_LIST
27172    }
27173    #[inline]
27174    fn cast(syntax: SyntaxNode) -> Option<Self> {
27175        if Self::can_cast(syntax.kind()) {
27176            Some(Self { syntax })
27177        } else {
27178            None
27179        }
27180    }
27181    #[inline]
27182    fn syntax(&self) -> &SyntaxNode {
27183        &self.syntax
27184    }
27185}
27186impl AstNode for OrReplace {
27187    #[inline]
27188    fn can_cast(kind: SyntaxKind) -> bool {
27189        kind == SyntaxKind::OR_REPLACE
27190    }
27191    #[inline]
27192    fn cast(syntax: SyntaxNode) -> Option<Self> {
27193        if Self::can_cast(syntax.kind()) {
27194            Some(Self { syntax })
27195        } else {
27196            None
27197        }
27198    }
27199    #[inline]
27200    fn syntax(&self) -> &SyntaxNode {
27201        &self.syntax
27202    }
27203}
27204impl AstNode for OrderByClause {
27205    #[inline]
27206    fn can_cast(kind: SyntaxKind) -> bool {
27207        kind == SyntaxKind::ORDER_BY_CLAUSE
27208    }
27209    #[inline]
27210    fn cast(syntax: SyntaxNode) -> Option<Self> {
27211        if Self::can_cast(syntax.kind()) {
27212            Some(Self { syntax })
27213        } else {
27214            None
27215        }
27216    }
27217    #[inline]
27218    fn syntax(&self) -> &SyntaxNode {
27219        &self.syntax
27220    }
27221}
27222impl AstNode for OverClause {
27223    #[inline]
27224    fn can_cast(kind: SyntaxKind) -> bool {
27225        kind == SyntaxKind::OVER_CLAUSE
27226    }
27227    #[inline]
27228    fn cast(syntax: SyntaxNode) -> Option<Self> {
27229        if Self::can_cast(syntax.kind()) {
27230            Some(Self { syntax })
27231        } else {
27232            None
27233        }
27234    }
27235    #[inline]
27236    fn syntax(&self) -> &SyntaxNode {
27237        &self.syntax
27238    }
27239}
27240impl AstNode for OverlayFn {
27241    #[inline]
27242    fn can_cast(kind: SyntaxKind) -> bool {
27243        kind == SyntaxKind::OVERLAY_FN
27244    }
27245    #[inline]
27246    fn cast(syntax: SyntaxNode) -> Option<Self> {
27247        if Self::can_cast(syntax.kind()) {
27248            Some(Self { syntax })
27249        } else {
27250            None
27251        }
27252    }
27253    #[inline]
27254    fn syntax(&self) -> &SyntaxNode {
27255        &self.syntax
27256    }
27257}
27258impl AstNode for OwnedByRoles {
27259    #[inline]
27260    fn can_cast(kind: SyntaxKind) -> bool {
27261        kind == SyntaxKind::OWNED_BY_ROLES
27262    }
27263    #[inline]
27264    fn cast(syntax: SyntaxNode) -> Option<Self> {
27265        if Self::can_cast(syntax.kind()) {
27266            Some(Self { syntax })
27267        } else {
27268            None
27269        }
27270    }
27271    #[inline]
27272    fn syntax(&self) -> &SyntaxNode {
27273        &self.syntax
27274    }
27275}
27276impl AstNode for OwnerTo {
27277    #[inline]
27278    fn can_cast(kind: SyntaxKind) -> bool {
27279        kind == SyntaxKind::OWNER_TO
27280    }
27281    #[inline]
27282    fn cast(syntax: SyntaxNode) -> Option<Self> {
27283        if Self::can_cast(syntax.kind()) {
27284            Some(Self { syntax })
27285        } else {
27286            None
27287        }
27288    }
27289    #[inline]
27290    fn syntax(&self) -> &SyntaxNode {
27291        &self.syntax
27292    }
27293}
27294impl AstNode for ParallelFuncOption {
27295    #[inline]
27296    fn can_cast(kind: SyntaxKind) -> bool {
27297        kind == SyntaxKind::PARALLEL_FUNC_OPTION
27298    }
27299    #[inline]
27300    fn cast(syntax: SyntaxNode) -> Option<Self> {
27301        if Self::can_cast(syntax.kind()) {
27302            Some(Self { syntax })
27303        } else {
27304            None
27305        }
27306    }
27307    #[inline]
27308    fn syntax(&self) -> &SyntaxNode {
27309        &self.syntax
27310    }
27311}
27312impl AstNode for Param {
27313    #[inline]
27314    fn can_cast(kind: SyntaxKind) -> bool {
27315        kind == SyntaxKind::PARAM
27316    }
27317    #[inline]
27318    fn cast(syntax: SyntaxNode) -> Option<Self> {
27319        if Self::can_cast(syntax.kind()) {
27320            Some(Self { syntax })
27321        } else {
27322            None
27323        }
27324    }
27325    #[inline]
27326    fn syntax(&self) -> &SyntaxNode {
27327        &self.syntax
27328    }
27329}
27330impl AstNode for ParamDefault {
27331    #[inline]
27332    fn can_cast(kind: SyntaxKind) -> bool {
27333        kind == SyntaxKind::PARAM_DEFAULT
27334    }
27335    #[inline]
27336    fn cast(syntax: SyntaxNode) -> Option<Self> {
27337        if Self::can_cast(syntax.kind()) {
27338            Some(Self { syntax })
27339        } else {
27340            None
27341        }
27342    }
27343    #[inline]
27344    fn syntax(&self) -> &SyntaxNode {
27345        &self.syntax
27346    }
27347}
27348impl AstNode for ParamIn {
27349    #[inline]
27350    fn can_cast(kind: SyntaxKind) -> bool {
27351        kind == SyntaxKind::PARAM_IN
27352    }
27353    #[inline]
27354    fn cast(syntax: SyntaxNode) -> Option<Self> {
27355        if Self::can_cast(syntax.kind()) {
27356            Some(Self { syntax })
27357        } else {
27358            None
27359        }
27360    }
27361    #[inline]
27362    fn syntax(&self) -> &SyntaxNode {
27363        &self.syntax
27364    }
27365}
27366impl AstNode for ParamInOut {
27367    #[inline]
27368    fn can_cast(kind: SyntaxKind) -> bool {
27369        kind == SyntaxKind::PARAM_IN_OUT
27370    }
27371    #[inline]
27372    fn cast(syntax: SyntaxNode) -> Option<Self> {
27373        if Self::can_cast(syntax.kind()) {
27374            Some(Self { syntax })
27375        } else {
27376            None
27377        }
27378    }
27379    #[inline]
27380    fn syntax(&self) -> &SyntaxNode {
27381        &self.syntax
27382    }
27383}
27384impl AstNode for ParamList {
27385    #[inline]
27386    fn can_cast(kind: SyntaxKind) -> bool {
27387        kind == SyntaxKind::PARAM_LIST
27388    }
27389    #[inline]
27390    fn cast(syntax: SyntaxNode) -> Option<Self> {
27391        if Self::can_cast(syntax.kind()) {
27392            Some(Self { syntax })
27393        } else {
27394            None
27395        }
27396    }
27397    #[inline]
27398    fn syntax(&self) -> &SyntaxNode {
27399        &self.syntax
27400    }
27401}
27402impl AstNode for ParamOut {
27403    #[inline]
27404    fn can_cast(kind: SyntaxKind) -> bool {
27405        kind == SyntaxKind::PARAM_OUT
27406    }
27407    #[inline]
27408    fn cast(syntax: SyntaxNode) -> Option<Self> {
27409        if Self::can_cast(syntax.kind()) {
27410            Some(Self { syntax })
27411        } else {
27412            None
27413        }
27414    }
27415    #[inline]
27416    fn syntax(&self) -> &SyntaxNode {
27417        &self.syntax
27418    }
27419}
27420impl AstNode for ParamVariadic {
27421    #[inline]
27422    fn can_cast(kind: SyntaxKind) -> bool {
27423        kind == SyntaxKind::PARAM_VARIADIC
27424    }
27425    #[inline]
27426    fn cast(syntax: SyntaxNode) -> Option<Self> {
27427        if Self::can_cast(syntax.kind()) {
27428            Some(Self { syntax })
27429        } else {
27430            None
27431        }
27432    }
27433    #[inline]
27434    fn syntax(&self) -> &SyntaxNode {
27435        &self.syntax
27436    }
27437}
27438impl AstNode for ParenExpr {
27439    #[inline]
27440    fn can_cast(kind: SyntaxKind) -> bool {
27441        kind == SyntaxKind::PAREN_EXPR
27442    }
27443    #[inline]
27444    fn cast(syntax: SyntaxNode) -> Option<Self> {
27445        if Self::can_cast(syntax.kind()) {
27446            Some(Self { syntax })
27447        } else {
27448            None
27449        }
27450    }
27451    #[inline]
27452    fn syntax(&self) -> &SyntaxNode {
27453        &self.syntax
27454    }
27455}
27456impl AstNode for ParenGraphPattern {
27457    #[inline]
27458    fn can_cast(kind: SyntaxKind) -> bool {
27459        kind == SyntaxKind::PAREN_GRAPH_PATTERN
27460    }
27461    #[inline]
27462    fn cast(syntax: SyntaxNode) -> Option<Self> {
27463        if Self::can_cast(syntax.kind()) {
27464            Some(Self { syntax })
27465        } else {
27466            None
27467        }
27468    }
27469    #[inline]
27470    fn syntax(&self) -> &SyntaxNode {
27471        &self.syntax
27472    }
27473}
27474impl AstNode for ParenSelect {
27475    #[inline]
27476    fn can_cast(kind: SyntaxKind) -> bool {
27477        kind == SyntaxKind::PAREN_SELECT
27478    }
27479    #[inline]
27480    fn cast(syntax: SyntaxNode) -> Option<Self> {
27481        if Self::can_cast(syntax.kind()) {
27482            Some(Self { syntax })
27483        } else {
27484            None
27485        }
27486    }
27487    #[inline]
27488    fn syntax(&self) -> &SyntaxNode {
27489        &self.syntax
27490    }
27491}
27492impl AstNode for Partition {
27493    #[inline]
27494    fn can_cast(kind: SyntaxKind) -> bool {
27495        kind == SyntaxKind::PARTITION
27496    }
27497    #[inline]
27498    fn cast(syntax: SyntaxNode) -> Option<Self> {
27499        if Self::can_cast(syntax.kind()) {
27500            Some(Self { syntax })
27501        } else {
27502            None
27503        }
27504    }
27505    #[inline]
27506    fn syntax(&self) -> &SyntaxNode {
27507        &self.syntax
27508    }
27509}
27510impl AstNode for PartitionBy {
27511    #[inline]
27512    fn can_cast(kind: SyntaxKind) -> bool {
27513        kind == SyntaxKind::PARTITION_BY
27514    }
27515    #[inline]
27516    fn cast(syntax: SyntaxNode) -> Option<Self> {
27517        if Self::can_cast(syntax.kind()) {
27518            Some(Self { syntax })
27519        } else {
27520            None
27521        }
27522    }
27523    #[inline]
27524    fn syntax(&self) -> &SyntaxNode {
27525        &self.syntax
27526    }
27527}
27528impl AstNode for PartitionDefault {
27529    #[inline]
27530    fn can_cast(kind: SyntaxKind) -> bool {
27531        kind == SyntaxKind::PARTITION_DEFAULT
27532    }
27533    #[inline]
27534    fn cast(syntax: SyntaxNode) -> Option<Self> {
27535        if Self::can_cast(syntax.kind()) {
27536            Some(Self { syntax })
27537        } else {
27538            None
27539        }
27540    }
27541    #[inline]
27542    fn syntax(&self) -> &SyntaxNode {
27543        &self.syntax
27544    }
27545}
27546impl AstNode for PartitionForValuesFrom {
27547    #[inline]
27548    fn can_cast(kind: SyntaxKind) -> bool {
27549        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
27550    }
27551    #[inline]
27552    fn cast(syntax: SyntaxNode) -> Option<Self> {
27553        if Self::can_cast(syntax.kind()) {
27554            Some(Self { syntax })
27555        } else {
27556            None
27557        }
27558    }
27559    #[inline]
27560    fn syntax(&self) -> &SyntaxNode {
27561        &self.syntax
27562    }
27563}
27564impl AstNode for PartitionForValuesIn {
27565    #[inline]
27566    fn can_cast(kind: SyntaxKind) -> bool {
27567        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
27568    }
27569    #[inline]
27570    fn cast(syntax: SyntaxNode) -> Option<Self> {
27571        if Self::can_cast(syntax.kind()) {
27572            Some(Self { syntax })
27573        } else {
27574            None
27575        }
27576    }
27577    #[inline]
27578    fn syntax(&self) -> &SyntaxNode {
27579        &self.syntax
27580    }
27581}
27582impl AstNode for PartitionForValuesWith {
27583    #[inline]
27584    fn can_cast(kind: SyntaxKind) -> bool {
27585        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
27586    }
27587    #[inline]
27588    fn cast(syntax: SyntaxNode) -> Option<Self> {
27589        if Self::can_cast(syntax.kind()) {
27590            Some(Self { syntax })
27591        } else {
27592            None
27593        }
27594    }
27595    #[inline]
27596    fn syntax(&self) -> &SyntaxNode {
27597        &self.syntax
27598    }
27599}
27600impl AstNode for PartitionItem {
27601    #[inline]
27602    fn can_cast(kind: SyntaxKind) -> bool {
27603        kind == SyntaxKind::PARTITION_ITEM
27604    }
27605    #[inline]
27606    fn cast(syntax: SyntaxNode) -> Option<Self> {
27607        if Self::can_cast(syntax.kind()) {
27608            Some(Self { syntax })
27609        } else {
27610            None
27611        }
27612    }
27613    #[inline]
27614    fn syntax(&self) -> &SyntaxNode {
27615        &self.syntax
27616    }
27617}
27618impl AstNode for PartitionItemList {
27619    #[inline]
27620    fn can_cast(kind: SyntaxKind) -> bool {
27621        kind == SyntaxKind::PARTITION_ITEM_LIST
27622    }
27623    #[inline]
27624    fn cast(syntax: SyntaxNode) -> Option<Self> {
27625        if Self::can_cast(syntax.kind()) {
27626            Some(Self { syntax })
27627        } else {
27628            None
27629        }
27630    }
27631    #[inline]
27632    fn syntax(&self) -> &SyntaxNode {
27633        &self.syntax
27634    }
27635}
27636impl AstNode for PartitionList {
27637    #[inline]
27638    fn can_cast(kind: SyntaxKind) -> bool {
27639        kind == SyntaxKind::PARTITION_LIST
27640    }
27641    #[inline]
27642    fn cast(syntax: SyntaxNode) -> Option<Self> {
27643        if Self::can_cast(syntax.kind()) {
27644            Some(Self { syntax })
27645        } else {
27646            None
27647        }
27648    }
27649    #[inline]
27650    fn syntax(&self) -> &SyntaxNode {
27651        &self.syntax
27652    }
27653}
27654impl AstNode for PartitionOf {
27655    #[inline]
27656    fn can_cast(kind: SyntaxKind) -> bool {
27657        kind == SyntaxKind::PARTITION_OF
27658    }
27659    #[inline]
27660    fn cast(syntax: SyntaxNode) -> Option<Self> {
27661        if Self::can_cast(syntax.kind()) {
27662            Some(Self { syntax })
27663        } else {
27664            None
27665        }
27666    }
27667    #[inline]
27668    fn syntax(&self) -> &SyntaxNode {
27669        &self.syntax
27670    }
27671}
27672impl AstNode for Path {
27673    #[inline]
27674    fn can_cast(kind: SyntaxKind) -> bool {
27675        kind == SyntaxKind::PATH
27676    }
27677    #[inline]
27678    fn cast(syntax: SyntaxNode) -> Option<Self> {
27679        if Self::can_cast(syntax.kind()) {
27680            Some(Self { syntax })
27681        } else {
27682            None
27683        }
27684    }
27685    #[inline]
27686    fn syntax(&self) -> &SyntaxNode {
27687        &self.syntax
27688    }
27689}
27690impl AstNode for PathFactor {
27691    #[inline]
27692    fn can_cast(kind: SyntaxKind) -> bool {
27693        kind == SyntaxKind::PATH_FACTOR
27694    }
27695    #[inline]
27696    fn cast(syntax: SyntaxNode) -> Option<Self> {
27697        if Self::can_cast(syntax.kind()) {
27698            Some(Self { syntax })
27699        } else {
27700            None
27701        }
27702    }
27703    #[inline]
27704    fn syntax(&self) -> &SyntaxNode {
27705        &self.syntax
27706    }
27707}
27708impl AstNode for PathPattern {
27709    #[inline]
27710    fn can_cast(kind: SyntaxKind) -> bool {
27711        kind == SyntaxKind::PATH_PATTERN
27712    }
27713    #[inline]
27714    fn cast(syntax: SyntaxNode) -> Option<Self> {
27715        if Self::can_cast(syntax.kind()) {
27716            Some(Self { syntax })
27717        } else {
27718            None
27719        }
27720    }
27721    #[inline]
27722    fn syntax(&self) -> &SyntaxNode {
27723        &self.syntax
27724    }
27725}
27726impl AstNode for PathPatternList {
27727    #[inline]
27728    fn can_cast(kind: SyntaxKind) -> bool {
27729        kind == SyntaxKind::PATH_PATTERN_LIST
27730    }
27731    #[inline]
27732    fn cast(syntax: SyntaxNode) -> Option<Self> {
27733        if Self::can_cast(syntax.kind()) {
27734            Some(Self { syntax })
27735        } else {
27736            None
27737        }
27738    }
27739    #[inline]
27740    fn syntax(&self) -> &SyntaxNode {
27741        &self.syntax
27742    }
27743}
27744impl AstNode for PathSegment {
27745    #[inline]
27746    fn can_cast(kind: SyntaxKind) -> bool {
27747        kind == SyntaxKind::PATH_SEGMENT
27748    }
27749    #[inline]
27750    fn cast(syntax: SyntaxNode) -> Option<Self> {
27751        if Self::can_cast(syntax.kind()) {
27752            Some(Self { syntax })
27753        } else {
27754            None
27755        }
27756    }
27757    #[inline]
27758    fn syntax(&self) -> &SyntaxNode {
27759        &self.syntax
27760    }
27761}
27762impl AstNode for PathType {
27763    #[inline]
27764    fn can_cast(kind: SyntaxKind) -> bool {
27765        kind == SyntaxKind::PATH_TYPE
27766    }
27767    #[inline]
27768    fn cast(syntax: SyntaxNode) -> Option<Self> {
27769        if Self::can_cast(syntax.kind()) {
27770            Some(Self { syntax })
27771        } else {
27772            None
27773        }
27774    }
27775    #[inline]
27776    fn syntax(&self) -> &SyntaxNode {
27777        &self.syntax
27778    }
27779}
27780impl AstNode for PercentType {
27781    #[inline]
27782    fn can_cast(kind: SyntaxKind) -> bool {
27783        kind == SyntaxKind::PERCENT_TYPE
27784    }
27785    #[inline]
27786    fn cast(syntax: SyntaxNode) -> Option<Self> {
27787        if Self::can_cast(syntax.kind()) {
27788            Some(Self { syntax })
27789        } else {
27790            None
27791        }
27792    }
27793    #[inline]
27794    fn syntax(&self) -> &SyntaxNode {
27795        &self.syntax
27796    }
27797}
27798impl AstNode for PercentTypeClause {
27799    #[inline]
27800    fn can_cast(kind: SyntaxKind) -> bool {
27801        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
27802    }
27803    #[inline]
27804    fn cast(syntax: SyntaxNode) -> Option<Self> {
27805        if Self::can_cast(syntax.kind()) {
27806            Some(Self { syntax })
27807        } else {
27808            None
27809        }
27810    }
27811    #[inline]
27812    fn syntax(&self) -> &SyntaxNode {
27813        &self.syntax
27814    }
27815}
27816impl AstNode for PositionFn {
27817    #[inline]
27818    fn can_cast(kind: SyntaxKind) -> bool {
27819        kind == SyntaxKind::POSITION_FN
27820    }
27821    #[inline]
27822    fn cast(syntax: SyntaxNode) -> Option<Self> {
27823        if Self::can_cast(syntax.kind()) {
27824            Some(Self { syntax })
27825        } else {
27826            None
27827        }
27828    }
27829    #[inline]
27830    fn syntax(&self) -> &SyntaxNode {
27831        &self.syntax
27832    }
27833}
27834impl AstNode for PostfixExpr {
27835    #[inline]
27836    fn can_cast(kind: SyntaxKind) -> bool {
27837        kind == SyntaxKind::POSTFIX_EXPR
27838    }
27839    #[inline]
27840    fn cast(syntax: SyntaxNode) -> Option<Self> {
27841        if Self::can_cast(syntax.kind()) {
27842            Some(Self { syntax })
27843        } else {
27844            None
27845        }
27846    }
27847    #[inline]
27848    fn syntax(&self) -> &SyntaxNode {
27849        &self.syntax
27850    }
27851}
27852impl AstNode for PrefixExpr {
27853    #[inline]
27854    fn can_cast(kind: SyntaxKind) -> bool {
27855        kind == SyntaxKind::PREFIX_EXPR
27856    }
27857    #[inline]
27858    fn cast(syntax: SyntaxNode) -> Option<Self> {
27859        if Self::can_cast(syntax.kind()) {
27860            Some(Self { syntax })
27861        } else {
27862            None
27863        }
27864    }
27865    #[inline]
27866    fn syntax(&self) -> &SyntaxNode {
27867        &self.syntax
27868    }
27869}
27870impl AstNode for Prepare {
27871    #[inline]
27872    fn can_cast(kind: SyntaxKind) -> bool {
27873        kind == SyntaxKind::PREPARE
27874    }
27875    #[inline]
27876    fn cast(syntax: SyntaxNode) -> Option<Self> {
27877        if Self::can_cast(syntax.kind()) {
27878            Some(Self { syntax })
27879        } else {
27880            None
27881        }
27882    }
27883    #[inline]
27884    fn syntax(&self) -> &SyntaxNode {
27885        &self.syntax
27886    }
27887}
27888impl AstNode for PrepareTransaction {
27889    #[inline]
27890    fn can_cast(kind: SyntaxKind) -> bool {
27891        kind == SyntaxKind::PREPARE_TRANSACTION
27892    }
27893    #[inline]
27894    fn cast(syntax: SyntaxNode) -> Option<Self> {
27895        if Self::can_cast(syntax.kind()) {
27896            Some(Self { syntax })
27897        } else {
27898            None
27899        }
27900    }
27901    #[inline]
27902    fn syntax(&self) -> &SyntaxNode {
27903        &self.syntax
27904    }
27905}
27906impl AstNode for PreserveRows {
27907    #[inline]
27908    fn can_cast(kind: SyntaxKind) -> bool {
27909        kind == SyntaxKind::PRESERVE_ROWS
27910    }
27911    #[inline]
27912    fn cast(syntax: SyntaxNode) -> Option<Self> {
27913        if Self::can_cast(syntax.kind()) {
27914            Some(Self { syntax })
27915        } else {
27916            None
27917        }
27918    }
27919    #[inline]
27920    fn syntax(&self) -> &SyntaxNode {
27921        &self.syntax
27922    }
27923}
27924impl AstNode for PrimaryKeyConstraint {
27925    #[inline]
27926    fn can_cast(kind: SyntaxKind) -> bool {
27927        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
27928    }
27929    #[inline]
27930    fn cast(syntax: SyntaxNode) -> Option<Self> {
27931        if Self::can_cast(syntax.kind()) {
27932            Some(Self { syntax })
27933        } else {
27934            None
27935        }
27936    }
27937    #[inline]
27938    fn syntax(&self) -> &SyntaxNode {
27939        &self.syntax
27940    }
27941}
27942impl AstNode for PrivilegeTarget {
27943    #[inline]
27944    fn can_cast(kind: SyntaxKind) -> bool {
27945        kind == SyntaxKind::PRIVILEGE_TARGET
27946    }
27947    #[inline]
27948    fn cast(syntax: SyntaxNode) -> Option<Self> {
27949        if Self::can_cast(syntax.kind()) {
27950            Some(Self { syntax })
27951        } else {
27952            None
27953        }
27954    }
27955    #[inline]
27956    fn syntax(&self) -> &SyntaxNode {
27957        &self.syntax
27958    }
27959}
27960impl AstNode for Privileges {
27961    #[inline]
27962    fn can_cast(kind: SyntaxKind) -> bool {
27963        kind == SyntaxKind::PRIVILEGES
27964    }
27965    #[inline]
27966    fn cast(syntax: SyntaxNode) -> Option<Self> {
27967        if Self::can_cast(syntax.kind()) {
27968            Some(Self { syntax })
27969        } else {
27970            None
27971        }
27972    }
27973    #[inline]
27974    fn syntax(&self) -> &SyntaxNode {
27975        &self.syntax
27976    }
27977}
27978impl AstNode for Properties {
27979    #[inline]
27980    fn can_cast(kind: SyntaxKind) -> bool {
27981        kind == SyntaxKind::PROPERTIES
27982    }
27983    #[inline]
27984    fn cast(syntax: SyntaxNode) -> Option<Self> {
27985        if Self::can_cast(syntax.kind()) {
27986            Some(Self { syntax })
27987        } else {
27988            None
27989        }
27990    }
27991    #[inline]
27992    fn syntax(&self) -> &SyntaxNode {
27993        &self.syntax
27994    }
27995}
27996impl AstNode for PublicationObject {
27997    #[inline]
27998    fn can_cast(kind: SyntaxKind) -> bool {
27999        kind == SyntaxKind::PUBLICATION_OBJECT
28000    }
28001    #[inline]
28002    fn cast(syntax: SyntaxNode) -> Option<Self> {
28003        if Self::can_cast(syntax.kind()) {
28004            Some(Self { syntax })
28005        } else {
28006            None
28007        }
28008    }
28009    #[inline]
28010    fn syntax(&self) -> &SyntaxNode {
28011        &self.syntax
28012    }
28013}
28014impl AstNode for ReadCommitted {
28015    #[inline]
28016    fn can_cast(kind: SyntaxKind) -> bool {
28017        kind == SyntaxKind::READ_COMMITTED
28018    }
28019    #[inline]
28020    fn cast(syntax: SyntaxNode) -> Option<Self> {
28021        if Self::can_cast(syntax.kind()) {
28022            Some(Self { syntax })
28023        } else {
28024            None
28025        }
28026    }
28027    #[inline]
28028    fn syntax(&self) -> &SyntaxNode {
28029        &self.syntax
28030    }
28031}
28032impl AstNode for ReadOnly {
28033    #[inline]
28034    fn can_cast(kind: SyntaxKind) -> bool {
28035        kind == SyntaxKind::READ_ONLY
28036    }
28037    #[inline]
28038    fn cast(syntax: SyntaxNode) -> Option<Self> {
28039        if Self::can_cast(syntax.kind()) {
28040            Some(Self { syntax })
28041        } else {
28042            None
28043        }
28044    }
28045    #[inline]
28046    fn syntax(&self) -> &SyntaxNode {
28047        &self.syntax
28048    }
28049}
28050impl AstNode for ReadUncommitted {
28051    #[inline]
28052    fn can_cast(kind: SyntaxKind) -> bool {
28053        kind == SyntaxKind::READ_UNCOMMITTED
28054    }
28055    #[inline]
28056    fn cast(syntax: SyntaxNode) -> Option<Self> {
28057        if Self::can_cast(syntax.kind()) {
28058            Some(Self { syntax })
28059        } else {
28060            None
28061        }
28062    }
28063    #[inline]
28064    fn syntax(&self) -> &SyntaxNode {
28065        &self.syntax
28066    }
28067}
28068impl AstNode for ReadWrite {
28069    #[inline]
28070    fn can_cast(kind: SyntaxKind) -> bool {
28071        kind == SyntaxKind::READ_WRITE
28072    }
28073    #[inline]
28074    fn cast(syntax: SyntaxNode) -> Option<Self> {
28075        if Self::can_cast(syntax.kind()) {
28076            Some(Self { syntax })
28077        } else {
28078            None
28079        }
28080    }
28081    #[inline]
28082    fn syntax(&self) -> &SyntaxNode {
28083        &self.syntax
28084    }
28085}
28086impl AstNode for Reassign {
28087    #[inline]
28088    fn can_cast(kind: SyntaxKind) -> bool {
28089        kind == SyntaxKind::REASSIGN
28090    }
28091    #[inline]
28092    fn cast(syntax: SyntaxNode) -> Option<Self> {
28093        if Self::can_cast(syntax.kind()) {
28094            Some(Self { syntax })
28095        } else {
28096            None
28097        }
28098    }
28099    #[inline]
28100    fn syntax(&self) -> &SyntaxNode {
28101        &self.syntax
28102    }
28103}
28104impl AstNode for ReferencesConstraint {
28105    #[inline]
28106    fn can_cast(kind: SyntaxKind) -> bool {
28107        kind == SyntaxKind::REFERENCES_CONSTRAINT
28108    }
28109    #[inline]
28110    fn cast(syntax: SyntaxNode) -> Option<Self> {
28111        if Self::can_cast(syntax.kind()) {
28112            Some(Self { syntax })
28113        } else {
28114            None
28115        }
28116    }
28117    #[inline]
28118    fn syntax(&self) -> &SyntaxNode {
28119        &self.syntax
28120    }
28121}
28122impl AstNode for ReferencesTable {
28123    #[inline]
28124    fn can_cast(kind: SyntaxKind) -> bool {
28125        kind == SyntaxKind::REFERENCES_TABLE
28126    }
28127    #[inline]
28128    fn cast(syntax: SyntaxNode) -> Option<Self> {
28129        if Self::can_cast(syntax.kind()) {
28130            Some(Self { syntax })
28131        } else {
28132            None
28133        }
28134    }
28135    #[inline]
28136    fn syntax(&self) -> &SyntaxNode {
28137        &self.syntax
28138    }
28139}
28140impl AstNode for Referencing {
28141    #[inline]
28142    fn can_cast(kind: SyntaxKind) -> bool {
28143        kind == SyntaxKind::REFERENCING
28144    }
28145    #[inline]
28146    fn cast(syntax: SyntaxNode) -> Option<Self> {
28147        if Self::can_cast(syntax.kind()) {
28148            Some(Self { syntax })
28149        } else {
28150            None
28151        }
28152    }
28153    #[inline]
28154    fn syntax(&self) -> &SyntaxNode {
28155        &self.syntax
28156    }
28157}
28158impl AstNode for ReferencingTable {
28159    #[inline]
28160    fn can_cast(kind: SyntaxKind) -> bool {
28161        kind == SyntaxKind::REFERENCING_TABLE
28162    }
28163    #[inline]
28164    fn cast(syntax: SyntaxNode) -> Option<Self> {
28165        if Self::can_cast(syntax.kind()) {
28166            Some(Self { syntax })
28167        } else {
28168            None
28169        }
28170    }
28171    #[inline]
28172    fn syntax(&self) -> &SyntaxNode {
28173        &self.syntax
28174    }
28175}
28176impl AstNode for Refresh {
28177    #[inline]
28178    fn can_cast(kind: SyntaxKind) -> bool {
28179        kind == SyntaxKind::REFRESH
28180    }
28181    #[inline]
28182    fn cast(syntax: SyntaxNode) -> Option<Self> {
28183        if Self::can_cast(syntax.kind()) {
28184            Some(Self { syntax })
28185        } else {
28186            None
28187        }
28188    }
28189    #[inline]
28190    fn syntax(&self) -> &SyntaxNode {
28191        &self.syntax
28192    }
28193}
28194impl AstNode for RefreshCollationVersion {
28195    #[inline]
28196    fn can_cast(kind: SyntaxKind) -> bool {
28197        kind == SyntaxKind::REFRESH_COLLATION_VERSION
28198    }
28199    #[inline]
28200    fn cast(syntax: SyntaxNode) -> Option<Self> {
28201        if Self::can_cast(syntax.kind()) {
28202            Some(Self { syntax })
28203        } else {
28204            None
28205        }
28206    }
28207    #[inline]
28208    fn syntax(&self) -> &SyntaxNode {
28209        &self.syntax
28210    }
28211}
28212impl AstNode for RefreshVersion {
28213    #[inline]
28214    fn can_cast(kind: SyntaxKind) -> bool {
28215        kind == SyntaxKind::REFRESH_VERSION
28216    }
28217    #[inline]
28218    fn cast(syntax: SyntaxNode) -> Option<Self> {
28219        if Self::can_cast(syntax.kind()) {
28220            Some(Self { syntax })
28221        } else {
28222            None
28223        }
28224    }
28225    #[inline]
28226    fn syntax(&self) -> &SyntaxNode {
28227        &self.syntax
28228    }
28229}
28230impl AstNode for Reindex {
28231    #[inline]
28232    fn can_cast(kind: SyntaxKind) -> bool {
28233        kind == SyntaxKind::REINDEX
28234    }
28235    #[inline]
28236    fn cast(syntax: SyntaxNode) -> Option<Self> {
28237        if Self::can_cast(syntax.kind()) {
28238            Some(Self { syntax })
28239        } else {
28240            None
28241        }
28242    }
28243    #[inline]
28244    fn syntax(&self) -> &SyntaxNode {
28245        &self.syntax
28246    }
28247}
28248impl AstNode for RelationName {
28249    #[inline]
28250    fn can_cast(kind: SyntaxKind) -> bool {
28251        kind == SyntaxKind::RELATION_NAME
28252    }
28253    #[inline]
28254    fn cast(syntax: SyntaxNode) -> Option<Self> {
28255        if Self::can_cast(syntax.kind()) {
28256            Some(Self { syntax })
28257        } else {
28258            None
28259        }
28260    }
28261    #[inline]
28262    fn syntax(&self) -> &SyntaxNode {
28263        &self.syntax
28264    }
28265}
28266impl AstNode for ReleaseSavepoint {
28267    #[inline]
28268    fn can_cast(kind: SyntaxKind) -> bool {
28269        kind == SyntaxKind::RELEASE_SAVEPOINT
28270    }
28271    #[inline]
28272    fn cast(syntax: SyntaxNode) -> Option<Self> {
28273        if Self::can_cast(syntax.kind()) {
28274            Some(Self { syntax })
28275        } else {
28276            None
28277        }
28278    }
28279    #[inline]
28280    fn syntax(&self) -> &SyntaxNode {
28281        &self.syntax
28282    }
28283}
28284impl AstNode for RenameAttribute {
28285    #[inline]
28286    fn can_cast(kind: SyntaxKind) -> bool {
28287        kind == SyntaxKind::RENAME_ATTRIBUTE
28288    }
28289    #[inline]
28290    fn cast(syntax: SyntaxNode) -> Option<Self> {
28291        if Self::can_cast(syntax.kind()) {
28292            Some(Self { syntax })
28293        } else {
28294            None
28295        }
28296    }
28297    #[inline]
28298    fn syntax(&self) -> &SyntaxNode {
28299        &self.syntax
28300    }
28301}
28302impl AstNode for RenameColumn {
28303    #[inline]
28304    fn can_cast(kind: SyntaxKind) -> bool {
28305        kind == SyntaxKind::RENAME_COLUMN
28306    }
28307    #[inline]
28308    fn cast(syntax: SyntaxNode) -> Option<Self> {
28309        if Self::can_cast(syntax.kind()) {
28310            Some(Self { syntax })
28311        } else {
28312            None
28313        }
28314    }
28315    #[inline]
28316    fn syntax(&self) -> &SyntaxNode {
28317        &self.syntax
28318    }
28319}
28320impl AstNode for RenameConstraint {
28321    #[inline]
28322    fn can_cast(kind: SyntaxKind) -> bool {
28323        kind == SyntaxKind::RENAME_CONSTRAINT
28324    }
28325    #[inline]
28326    fn cast(syntax: SyntaxNode) -> Option<Self> {
28327        if Self::can_cast(syntax.kind()) {
28328            Some(Self { syntax })
28329        } else {
28330            None
28331        }
28332    }
28333    #[inline]
28334    fn syntax(&self) -> &SyntaxNode {
28335        &self.syntax
28336    }
28337}
28338impl AstNode for RenameTo {
28339    #[inline]
28340    fn can_cast(kind: SyntaxKind) -> bool {
28341        kind == SyntaxKind::RENAME_TO
28342    }
28343    #[inline]
28344    fn cast(syntax: SyntaxNode) -> Option<Self> {
28345        if Self::can_cast(syntax.kind()) {
28346            Some(Self { syntax })
28347        } else {
28348            None
28349        }
28350    }
28351    #[inline]
28352    fn syntax(&self) -> &SyntaxNode {
28353        &self.syntax
28354    }
28355}
28356impl AstNode for RenameValue {
28357    #[inline]
28358    fn can_cast(kind: SyntaxKind) -> bool {
28359        kind == SyntaxKind::RENAME_VALUE
28360    }
28361    #[inline]
28362    fn cast(syntax: SyntaxNode) -> Option<Self> {
28363        if Self::can_cast(syntax.kind()) {
28364            Some(Self { syntax })
28365        } else {
28366            None
28367        }
28368    }
28369    #[inline]
28370    fn syntax(&self) -> &SyntaxNode {
28371        &self.syntax
28372    }
28373}
28374impl AstNode for Repack {
28375    #[inline]
28376    fn can_cast(kind: SyntaxKind) -> bool {
28377        kind == SyntaxKind::REPACK
28378    }
28379    #[inline]
28380    fn cast(syntax: SyntaxNode) -> Option<Self> {
28381        if Self::can_cast(syntax.kind()) {
28382            Some(Self { syntax })
28383        } else {
28384            None
28385        }
28386    }
28387    #[inline]
28388    fn syntax(&self) -> &SyntaxNode {
28389        &self.syntax
28390    }
28391}
28392impl AstNode for RepeatableClause {
28393    #[inline]
28394    fn can_cast(kind: SyntaxKind) -> bool {
28395        kind == SyntaxKind::REPEATABLE_CLAUSE
28396    }
28397    #[inline]
28398    fn cast(syntax: SyntaxNode) -> Option<Self> {
28399        if Self::can_cast(syntax.kind()) {
28400            Some(Self { syntax })
28401        } else {
28402            None
28403        }
28404    }
28405    #[inline]
28406    fn syntax(&self) -> &SyntaxNode {
28407        &self.syntax
28408    }
28409}
28410impl AstNode for RepeatableRead {
28411    #[inline]
28412    fn can_cast(kind: SyntaxKind) -> bool {
28413        kind == SyntaxKind::REPEATABLE_READ
28414    }
28415    #[inline]
28416    fn cast(syntax: SyntaxNode) -> Option<Self> {
28417        if Self::can_cast(syntax.kind()) {
28418            Some(Self { syntax })
28419        } else {
28420            None
28421        }
28422    }
28423    #[inline]
28424    fn syntax(&self) -> &SyntaxNode {
28425        &self.syntax
28426    }
28427}
28428impl AstNode for ReplicaIdentity {
28429    #[inline]
28430    fn can_cast(kind: SyntaxKind) -> bool {
28431        kind == SyntaxKind::REPLICA_IDENTITY
28432    }
28433    #[inline]
28434    fn cast(syntax: SyntaxNode) -> Option<Self> {
28435        if Self::can_cast(syntax.kind()) {
28436            Some(Self { syntax })
28437        } else {
28438            None
28439        }
28440    }
28441    #[inline]
28442    fn syntax(&self) -> &SyntaxNode {
28443        &self.syntax
28444    }
28445}
28446impl AstNode for Reset {
28447    #[inline]
28448    fn can_cast(kind: SyntaxKind) -> bool {
28449        kind == SyntaxKind::RESET
28450    }
28451    #[inline]
28452    fn cast(syntax: SyntaxNode) -> Option<Self> {
28453        if Self::can_cast(syntax.kind()) {
28454            Some(Self { syntax })
28455        } else {
28456            None
28457        }
28458    }
28459    #[inline]
28460    fn syntax(&self) -> &SyntaxNode {
28461        &self.syntax
28462    }
28463}
28464impl AstNode for ResetConfigParam {
28465    #[inline]
28466    fn can_cast(kind: SyntaxKind) -> bool {
28467        kind == SyntaxKind::RESET_CONFIG_PARAM
28468    }
28469    #[inline]
28470    fn cast(syntax: SyntaxNode) -> Option<Self> {
28471        if Self::can_cast(syntax.kind()) {
28472            Some(Self { syntax })
28473        } else {
28474            None
28475        }
28476    }
28477    #[inline]
28478    fn syntax(&self) -> &SyntaxNode {
28479        &self.syntax
28480    }
28481}
28482impl AstNode for ResetFuncOption {
28483    #[inline]
28484    fn can_cast(kind: SyntaxKind) -> bool {
28485        kind == SyntaxKind::RESET_FUNC_OPTION
28486    }
28487    #[inline]
28488    fn cast(syntax: SyntaxNode) -> Option<Self> {
28489        if Self::can_cast(syntax.kind()) {
28490            Some(Self { syntax })
28491        } else {
28492            None
28493        }
28494    }
28495    #[inline]
28496    fn syntax(&self) -> &SyntaxNode {
28497        &self.syntax
28498    }
28499}
28500impl AstNode for ResetOptions {
28501    #[inline]
28502    fn can_cast(kind: SyntaxKind) -> bool {
28503        kind == SyntaxKind::RESET_OPTIONS
28504    }
28505    #[inline]
28506    fn cast(syntax: SyntaxNode) -> Option<Self> {
28507        if Self::can_cast(syntax.kind()) {
28508            Some(Self { syntax })
28509        } else {
28510            None
28511        }
28512    }
28513    #[inline]
28514    fn syntax(&self) -> &SyntaxNode {
28515        &self.syntax
28516    }
28517}
28518impl AstNode for ResetSessionAuth {
28519    #[inline]
28520    fn can_cast(kind: SyntaxKind) -> bool {
28521        kind == SyntaxKind::RESET_SESSION_AUTH
28522    }
28523    #[inline]
28524    fn cast(syntax: SyntaxNode) -> Option<Self> {
28525        if Self::can_cast(syntax.kind()) {
28526            Some(Self { syntax })
28527        } else {
28528            None
28529        }
28530    }
28531    #[inline]
28532    fn syntax(&self) -> &SyntaxNode {
28533        &self.syntax
28534    }
28535}
28536impl AstNode for Restart {
28537    #[inline]
28538    fn can_cast(kind: SyntaxKind) -> bool {
28539        kind == SyntaxKind::RESTART
28540    }
28541    #[inline]
28542    fn cast(syntax: SyntaxNode) -> Option<Self> {
28543        if Self::can_cast(syntax.kind()) {
28544            Some(Self { syntax })
28545        } else {
28546            None
28547        }
28548    }
28549    #[inline]
28550    fn syntax(&self) -> &SyntaxNode {
28551        &self.syntax
28552    }
28553}
28554impl AstNode for Restrict {
28555    #[inline]
28556    fn can_cast(kind: SyntaxKind) -> bool {
28557        kind == SyntaxKind::RESTRICT
28558    }
28559    #[inline]
28560    fn cast(syntax: SyntaxNode) -> Option<Self> {
28561        if Self::can_cast(syntax.kind()) {
28562            Some(Self { syntax })
28563        } else {
28564            None
28565        }
28566    }
28567    #[inline]
28568    fn syntax(&self) -> &SyntaxNode {
28569        &self.syntax
28570    }
28571}
28572impl AstNode for RetType {
28573    #[inline]
28574    fn can_cast(kind: SyntaxKind) -> bool {
28575        kind == SyntaxKind::RET_TYPE
28576    }
28577    #[inline]
28578    fn cast(syntax: SyntaxNode) -> Option<Self> {
28579        if Self::can_cast(syntax.kind()) {
28580            Some(Self { syntax })
28581        } else {
28582            None
28583        }
28584    }
28585    #[inline]
28586    fn syntax(&self) -> &SyntaxNode {
28587        &self.syntax
28588    }
28589}
28590impl AstNode for ReturnFuncOption {
28591    #[inline]
28592    fn can_cast(kind: SyntaxKind) -> bool {
28593        kind == SyntaxKind::RETURN_FUNC_OPTION
28594    }
28595    #[inline]
28596    fn cast(syntax: SyntaxNode) -> Option<Self> {
28597        if Self::can_cast(syntax.kind()) {
28598            Some(Self { syntax })
28599        } else {
28600            None
28601        }
28602    }
28603    #[inline]
28604    fn syntax(&self) -> &SyntaxNode {
28605        &self.syntax
28606    }
28607}
28608impl AstNode for ReturningClause {
28609    #[inline]
28610    fn can_cast(kind: SyntaxKind) -> bool {
28611        kind == SyntaxKind::RETURNING_CLAUSE
28612    }
28613    #[inline]
28614    fn cast(syntax: SyntaxNode) -> Option<Self> {
28615        if Self::can_cast(syntax.kind()) {
28616            Some(Self { syntax })
28617        } else {
28618            None
28619        }
28620    }
28621    #[inline]
28622    fn syntax(&self) -> &SyntaxNode {
28623        &self.syntax
28624    }
28625}
28626impl AstNode for ReturningOption {
28627    #[inline]
28628    fn can_cast(kind: SyntaxKind) -> bool {
28629        kind == SyntaxKind::RETURNING_OPTION
28630    }
28631    #[inline]
28632    fn cast(syntax: SyntaxNode) -> Option<Self> {
28633        if Self::can_cast(syntax.kind()) {
28634            Some(Self { syntax })
28635        } else {
28636            None
28637        }
28638    }
28639    #[inline]
28640    fn syntax(&self) -> &SyntaxNode {
28641        &self.syntax
28642    }
28643}
28644impl AstNode for ReturningOptionList {
28645    #[inline]
28646    fn can_cast(kind: SyntaxKind) -> bool {
28647        kind == SyntaxKind::RETURNING_OPTION_LIST
28648    }
28649    #[inline]
28650    fn cast(syntax: SyntaxNode) -> Option<Self> {
28651        if Self::can_cast(syntax.kind()) {
28652            Some(Self { syntax })
28653        } else {
28654            None
28655        }
28656    }
28657    #[inline]
28658    fn syntax(&self) -> &SyntaxNode {
28659        &self.syntax
28660    }
28661}
28662impl AstNode for Revoke {
28663    #[inline]
28664    fn can_cast(kind: SyntaxKind) -> bool {
28665        kind == SyntaxKind::REVOKE
28666    }
28667    #[inline]
28668    fn cast(syntax: SyntaxNode) -> Option<Self> {
28669        if Self::can_cast(syntax.kind()) {
28670            Some(Self { syntax })
28671        } else {
28672            None
28673        }
28674    }
28675    #[inline]
28676    fn syntax(&self) -> &SyntaxNode {
28677        &self.syntax
28678    }
28679}
28680impl AstNode for RevokeCommand {
28681    #[inline]
28682    fn can_cast(kind: SyntaxKind) -> bool {
28683        kind == SyntaxKind::REVOKE_COMMAND
28684    }
28685    #[inline]
28686    fn cast(syntax: SyntaxNode) -> Option<Self> {
28687        if Self::can_cast(syntax.kind()) {
28688            Some(Self { syntax })
28689        } else {
28690            None
28691        }
28692    }
28693    #[inline]
28694    fn syntax(&self) -> &SyntaxNode {
28695        &self.syntax
28696    }
28697}
28698impl AstNode for RevokeCommandList {
28699    #[inline]
28700    fn can_cast(kind: SyntaxKind) -> bool {
28701        kind == SyntaxKind::REVOKE_COMMAND_LIST
28702    }
28703    #[inline]
28704    fn cast(syntax: SyntaxNode) -> Option<Self> {
28705        if Self::can_cast(syntax.kind()) {
28706            Some(Self { syntax })
28707        } else {
28708            None
28709        }
28710    }
28711    #[inline]
28712    fn syntax(&self) -> &SyntaxNode {
28713        &self.syntax
28714    }
28715}
28716impl AstNode for RevokeDefaultPrivileges {
28717    #[inline]
28718    fn can_cast(kind: SyntaxKind) -> bool {
28719        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
28720    }
28721    #[inline]
28722    fn cast(syntax: SyntaxNode) -> Option<Self> {
28723        if Self::can_cast(syntax.kind()) {
28724            Some(Self { syntax })
28725        } else {
28726            None
28727        }
28728    }
28729    #[inline]
28730    fn syntax(&self) -> &SyntaxNode {
28731        &self.syntax
28732    }
28733}
28734impl AstNode for Role {
28735    #[inline]
28736    fn can_cast(kind: SyntaxKind) -> bool {
28737        kind == SyntaxKind::ROLE
28738    }
28739    #[inline]
28740    fn cast(syntax: SyntaxNode) -> Option<Self> {
28741        if Self::can_cast(syntax.kind()) {
28742            Some(Self { syntax })
28743        } else {
28744            None
28745        }
28746    }
28747    #[inline]
28748    fn syntax(&self) -> &SyntaxNode {
28749        &self.syntax
28750    }
28751}
28752impl AstNode for RoleOption {
28753    #[inline]
28754    fn can_cast(kind: SyntaxKind) -> bool {
28755        kind == SyntaxKind::ROLE_OPTION
28756    }
28757    #[inline]
28758    fn cast(syntax: SyntaxNode) -> Option<Self> {
28759        if Self::can_cast(syntax.kind()) {
28760            Some(Self { syntax })
28761        } else {
28762            None
28763        }
28764    }
28765    #[inline]
28766    fn syntax(&self) -> &SyntaxNode {
28767        &self.syntax
28768    }
28769}
28770impl AstNode for RoleOptionList {
28771    #[inline]
28772    fn can_cast(kind: SyntaxKind) -> bool {
28773        kind == SyntaxKind::ROLE_OPTION_LIST
28774    }
28775    #[inline]
28776    fn cast(syntax: SyntaxNode) -> Option<Self> {
28777        if Self::can_cast(syntax.kind()) {
28778            Some(Self { syntax })
28779        } else {
28780            None
28781        }
28782    }
28783    #[inline]
28784    fn syntax(&self) -> &SyntaxNode {
28785        &self.syntax
28786    }
28787}
28788impl AstNode for RoleRef {
28789    #[inline]
28790    fn can_cast(kind: SyntaxKind) -> bool {
28791        kind == SyntaxKind::ROLE_REF
28792    }
28793    #[inline]
28794    fn cast(syntax: SyntaxNode) -> Option<Self> {
28795        if Self::can_cast(syntax.kind()) {
28796            Some(Self { syntax })
28797        } else {
28798            None
28799        }
28800    }
28801    #[inline]
28802    fn syntax(&self) -> &SyntaxNode {
28803        &self.syntax
28804    }
28805}
28806impl AstNode for RoleRefList {
28807    #[inline]
28808    fn can_cast(kind: SyntaxKind) -> bool {
28809        kind == SyntaxKind::ROLE_REF_LIST
28810    }
28811    #[inline]
28812    fn cast(syntax: SyntaxNode) -> Option<Self> {
28813        if Self::can_cast(syntax.kind()) {
28814            Some(Self { syntax })
28815        } else {
28816            None
28817        }
28818    }
28819    #[inline]
28820    fn syntax(&self) -> &SyntaxNode {
28821        &self.syntax
28822    }
28823}
28824impl AstNode for Rollback {
28825    #[inline]
28826    fn can_cast(kind: SyntaxKind) -> bool {
28827        kind == SyntaxKind::ROLLBACK
28828    }
28829    #[inline]
28830    fn cast(syntax: SyntaxNode) -> Option<Self> {
28831        if Self::can_cast(syntax.kind()) {
28832            Some(Self { syntax })
28833        } else {
28834            None
28835        }
28836    }
28837    #[inline]
28838    fn syntax(&self) -> &SyntaxNode {
28839        &self.syntax
28840    }
28841}
28842impl AstNode for Row {
28843    #[inline]
28844    fn can_cast(kind: SyntaxKind) -> bool {
28845        kind == SyntaxKind::ROW
28846    }
28847    #[inline]
28848    fn cast(syntax: SyntaxNode) -> Option<Self> {
28849        if Self::can_cast(syntax.kind()) {
28850            Some(Self { syntax })
28851        } else {
28852            None
28853        }
28854    }
28855    #[inline]
28856    fn syntax(&self) -> &SyntaxNode {
28857        &self.syntax
28858    }
28859}
28860impl AstNode for RowList {
28861    #[inline]
28862    fn can_cast(kind: SyntaxKind) -> bool {
28863        kind == SyntaxKind::ROW_LIST
28864    }
28865    #[inline]
28866    fn cast(syntax: SyntaxNode) -> Option<Self> {
28867        if Self::can_cast(syntax.kind()) {
28868            Some(Self { syntax })
28869        } else {
28870            None
28871        }
28872    }
28873    #[inline]
28874    fn syntax(&self) -> &SyntaxNode {
28875        &self.syntax
28876    }
28877}
28878impl AstNode for RowsFuncOption {
28879    #[inline]
28880    fn can_cast(kind: SyntaxKind) -> bool {
28881        kind == SyntaxKind::ROWS_FUNC_OPTION
28882    }
28883    #[inline]
28884    fn cast(syntax: SyntaxNode) -> Option<Self> {
28885        if Self::can_cast(syntax.kind()) {
28886            Some(Self { syntax })
28887        } else {
28888            None
28889        }
28890    }
28891    #[inline]
28892    fn syntax(&self) -> &SyntaxNode {
28893        &self.syntax
28894    }
28895}
28896impl AstNode for Savepoint {
28897    #[inline]
28898    fn can_cast(kind: SyntaxKind) -> bool {
28899        kind == SyntaxKind::SAVEPOINT
28900    }
28901    #[inline]
28902    fn cast(syntax: SyntaxNode) -> Option<Self> {
28903        if Self::can_cast(syntax.kind()) {
28904            Some(Self { syntax })
28905        } else {
28906            None
28907        }
28908    }
28909    #[inline]
28910    fn syntax(&self) -> &SyntaxNode {
28911        &self.syntax
28912    }
28913}
28914impl AstNode for SecurityFuncOption {
28915    #[inline]
28916    fn can_cast(kind: SyntaxKind) -> bool {
28917        kind == SyntaxKind::SECURITY_FUNC_OPTION
28918    }
28919    #[inline]
28920    fn cast(syntax: SyntaxNode) -> Option<Self> {
28921        if Self::can_cast(syntax.kind()) {
28922            Some(Self { syntax })
28923        } else {
28924            None
28925        }
28926    }
28927    #[inline]
28928    fn syntax(&self) -> &SyntaxNode {
28929        &self.syntax
28930    }
28931}
28932impl AstNode for SecurityLabel {
28933    #[inline]
28934    fn can_cast(kind: SyntaxKind) -> bool {
28935        kind == SyntaxKind::SECURITY_LABEL
28936    }
28937    #[inline]
28938    fn cast(syntax: SyntaxNode) -> Option<Self> {
28939        if Self::can_cast(syntax.kind()) {
28940            Some(Self { syntax })
28941        } else {
28942            None
28943        }
28944    }
28945    #[inline]
28946    fn syntax(&self) -> &SyntaxNode {
28947        &self.syntax
28948    }
28949}
28950impl AstNode for Select {
28951    #[inline]
28952    fn can_cast(kind: SyntaxKind) -> bool {
28953        kind == SyntaxKind::SELECT
28954    }
28955    #[inline]
28956    fn cast(syntax: SyntaxNode) -> Option<Self> {
28957        if Self::can_cast(syntax.kind()) {
28958            Some(Self { syntax })
28959        } else {
28960            None
28961        }
28962    }
28963    #[inline]
28964    fn syntax(&self) -> &SyntaxNode {
28965        &self.syntax
28966    }
28967}
28968impl AstNode for SelectClause {
28969    #[inline]
28970    fn can_cast(kind: SyntaxKind) -> bool {
28971        kind == SyntaxKind::SELECT_CLAUSE
28972    }
28973    #[inline]
28974    fn cast(syntax: SyntaxNode) -> Option<Self> {
28975        if Self::can_cast(syntax.kind()) {
28976            Some(Self { syntax })
28977        } else {
28978            None
28979        }
28980    }
28981    #[inline]
28982    fn syntax(&self) -> &SyntaxNode {
28983        &self.syntax
28984    }
28985}
28986impl AstNode for SelectInto {
28987    #[inline]
28988    fn can_cast(kind: SyntaxKind) -> bool {
28989        kind == SyntaxKind::SELECT_INTO
28990    }
28991    #[inline]
28992    fn cast(syntax: SyntaxNode) -> Option<Self> {
28993        if Self::can_cast(syntax.kind()) {
28994            Some(Self { syntax })
28995        } else {
28996            None
28997        }
28998    }
28999    #[inline]
29000    fn syntax(&self) -> &SyntaxNode {
29001        &self.syntax
29002    }
29003}
29004impl AstNode for SequenceOption {
29005    #[inline]
29006    fn can_cast(kind: SyntaxKind) -> bool {
29007        kind == SyntaxKind::SEQUENCE_OPTION
29008    }
29009    #[inline]
29010    fn cast(syntax: SyntaxNode) -> Option<Self> {
29011        if Self::can_cast(syntax.kind()) {
29012            Some(Self { syntax })
29013        } else {
29014            None
29015        }
29016    }
29017    #[inline]
29018    fn syntax(&self) -> &SyntaxNode {
29019        &self.syntax
29020    }
29021}
29022impl AstNode for SequenceOptionList {
29023    #[inline]
29024    fn can_cast(kind: SyntaxKind) -> bool {
29025        kind == SyntaxKind::SEQUENCE_OPTION_LIST
29026    }
29027    #[inline]
29028    fn cast(syntax: SyntaxNode) -> Option<Self> {
29029        if Self::can_cast(syntax.kind()) {
29030            Some(Self { syntax })
29031        } else {
29032            None
29033        }
29034    }
29035    #[inline]
29036    fn syntax(&self) -> &SyntaxNode {
29037        &self.syntax
29038    }
29039}
29040impl AstNode for Serializable {
29041    #[inline]
29042    fn can_cast(kind: SyntaxKind) -> bool {
29043        kind == SyntaxKind::SERIALIZABLE
29044    }
29045    #[inline]
29046    fn cast(syntax: SyntaxNode) -> Option<Self> {
29047        if Self::can_cast(syntax.kind()) {
29048            Some(Self { syntax })
29049        } else {
29050            None
29051        }
29052    }
29053    #[inline]
29054    fn syntax(&self) -> &SyntaxNode {
29055        &self.syntax
29056    }
29057}
29058impl AstNode for ServerName {
29059    #[inline]
29060    fn can_cast(kind: SyntaxKind) -> bool {
29061        kind == SyntaxKind::SERVER_NAME
29062    }
29063    #[inline]
29064    fn cast(syntax: SyntaxNode) -> Option<Self> {
29065        if Self::can_cast(syntax.kind()) {
29066            Some(Self { syntax })
29067        } else {
29068            None
29069        }
29070    }
29071    #[inline]
29072    fn syntax(&self) -> &SyntaxNode {
29073        &self.syntax
29074    }
29075}
29076impl AstNode for Set {
29077    #[inline]
29078    fn can_cast(kind: SyntaxKind) -> bool {
29079        kind == SyntaxKind::SET
29080    }
29081    #[inline]
29082    fn cast(syntax: SyntaxNode) -> Option<Self> {
29083        if Self::can_cast(syntax.kind()) {
29084            Some(Self { syntax })
29085        } else {
29086            None
29087        }
29088    }
29089    #[inline]
29090    fn syntax(&self) -> &SyntaxNode {
29091        &self.syntax
29092    }
29093}
29094impl AstNode for SetAccessMethod {
29095    #[inline]
29096    fn can_cast(kind: SyntaxKind) -> bool {
29097        kind == SyntaxKind::SET_ACCESS_METHOD
29098    }
29099    #[inline]
29100    fn cast(syntax: SyntaxNode) -> Option<Self> {
29101        if Self::can_cast(syntax.kind()) {
29102            Some(Self { syntax })
29103        } else {
29104            None
29105        }
29106    }
29107    #[inline]
29108    fn syntax(&self) -> &SyntaxNode {
29109        &self.syntax
29110    }
29111}
29112impl AstNode for SetClause {
29113    #[inline]
29114    fn can_cast(kind: SyntaxKind) -> bool {
29115        kind == SyntaxKind::SET_CLAUSE
29116    }
29117    #[inline]
29118    fn cast(syntax: SyntaxNode) -> Option<Self> {
29119        if Self::can_cast(syntax.kind()) {
29120            Some(Self { syntax })
29121        } else {
29122            None
29123        }
29124    }
29125    #[inline]
29126    fn syntax(&self) -> &SyntaxNode {
29127        &self.syntax
29128    }
29129}
29130impl AstNode for SetColumnList {
29131    #[inline]
29132    fn can_cast(kind: SyntaxKind) -> bool {
29133        kind == SyntaxKind::SET_COLUMN_LIST
29134    }
29135    #[inline]
29136    fn cast(syntax: SyntaxNode) -> Option<Self> {
29137        if Self::can_cast(syntax.kind()) {
29138            Some(Self { syntax })
29139        } else {
29140            None
29141        }
29142    }
29143    #[inline]
29144    fn syntax(&self) -> &SyntaxNode {
29145        &self.syntax
29146    }
29147}
29148impl AstNode for SetCompression {
29149    #[inline]
29150    fn can_cast(kind: SyntaxKind) -> bool {
29151        kind == SyntaxKind::SET_COMPRESSION
29152    }
29153    #[inline]
29154    fn cast(syntax: SyntaxNode) -> Option<Self> {
29155        if Self::can_cast(syntax.kind()) {
29156            Some(Self { syntax })
29157        } else {
29158            None
29159        }
29160    }
29161    #[inline]
29162    fn syntax(&self) -> &SyntaxNode {
29163        &self.syntax
29164    }
29165}
29166impl AstNode for SetConfigParam {
29167    #[inline]
29168    fn can_cast(kind: SyntaxKind) -> bool {
29169        kind == SyntaxKind::SET_CONFIG_PARAM
29170    }
29171    #[inline]
29172    fn cast(syntax: SyntaxNode) -> Option<Self> {
29173        if Self::can_cast(syntax.kind()) {
29174            Some(Self { syntax })
29175        } else {
29176            None
29177        }
29178    }
29179    #[inline]
29180    fn syntax(&self) -> &SyntaxNode {
29181        &self.syntax
29182    }
29183}
29184impl AstNode for SetConstraints {
29185    #[inline]
29186    fn can_cast(kind: SyntaxKind) -> bool {
29187        kind == SyntaxKind::SET_CONSTRAINTS
29188    }
29189    #[inline]
29190    fn cast(syntax: SyntaxNode) -> Option<Self> {
29191        if Self::can_cast(syntax.kind()) {
29192            Some(Self { syntax })
29193        } else {
29194            None
29195        }
29196    }
29197    #[inline]
29198    fn syntax(&self) -> &SyntaxNode {
29199        &self.syntax
29200    }
29201}
29202impl AstNode for SetDefault {
29203    #[inline]
29204    fn can_cast(kind: SyntaxKind) -> bool {
29205        kind == SyntaxKind::SET_DEFAULT
29206    }
29207    #[inline]
29208    fn cast(syntax: SyntaxNode) -> Option<Self> {
29209        if Self::can_cast(syntax.kind()) {
29210            Some(Self { syntax })
29211        } else {
29212            None
29213        }
29214    }
29215    #[inline]
29216    fn syntax(&self) -> &SyntaxNode {
29217        &self.syntax
29218    }
29219}
29220impl AstNode for SetDefaultColumns {
29221    #[inline]
29222    fn can_cast(kind: SyntaxKind) -> bool {
29223        kind == SyntaxKind::SET_DEFAULT_COLUMNS
29224    }
29225    #[inline]
29226    fn cast(syntax: SyntaxNode) -> Option<Self> {
29227        if Self::can_cast(syntax.kind()) {
29228            Some(Self { syntax })
29229        } else {
29230            None
29231        }
29232    }
29233    #[inline]
29234    fn syntax(&self) -> &SyntaxNode {
29235        &self.syntax
29236    }
29237}
29238impl AstNode for SetExpr {
29239    #[inline]
29240    fn can_cast(kind: SyntaxKind) -> bool {
29241        kind == SyntaxKind::SET_EXPR
29242    }
29243    #[inline]
29244    fn cast(syntax: SyntaxNode) -> Option<Self> {
29245        if Self::can_cast(syntax.kind()) {
29246            Some(Self { syntax })
29247        } else {
29248            None
29249        }
29250    }
29251    #[inline]
29252    fn syntax(&self) -> &SyntaxNode {
29253        &self.syntax
29254    }
29255}
29256impl AstNode for SetExprList {
29257    #[inline]
29258    fn can_cast(kind: SyntaxKind) -> bool {
29259        kind == SyntaxKind::SET_EXPR_LIST
29260    }
29261    #[inline]
29262    fn cast(syntax: SyntaxNode) -> Option<Self> {
29263        if Self::can_cast(syntax.kind()) {
29264            Some(Self { syntax })
29265        } else {
29266            None
29267        }
29268    }
29269    #[inline]
29270    fn syntax(&self) -> &SyntaxNode {
29271        &self.syntax
29272    }
29273}
29274impl AstNode for SetExpression {
29275    #[inline]
29276    fn can_cast(kind: SyntaxKind) -> bool {
29277        kind == SyntaxKind::SET_EXPRESSION
29278    }
29279    #[inline]
29280    fn cast(syntax: SyntaxNode) -> Option<Self> {
29281        if Self::can_cast(syntax.kind()) {
29282            Some(Self { syntax })
29283        } else {
29284            None
29285        }
29286    }
29287    #[inline]
29288    fn syntax(&self) -> &SyntaxNode {
29289        &self.syntax
29290    }
29291}
29292impl AstNode for SetFuncOption {
29293    #[inline]
29294    fn can_cast(kind: SyntaxKind) -> bool {
29295        kind == SyntaxKind::SET_FUNC_OPTION
29296    }
29297    #[inline]
29298    fn cast(syntax: SyntaxNode) -> Option<Self> {
29299        if Self::can_cast(syntax.kind()) {
29300            Some(Self { syntax })
29301        } else {
29302            None
29303        }
29304    }
29305    #[inline]
29306    fn syntax(&self) -> &SyntaxNode {
29307        &self.syntax
29308    }
29309}
29310impl AstNode for SetGenerated {
29311    #[inline]
29312    fn can_cast(kind: SyntaxKind) -> bool {
29313        kind == SyntaxKind::SET_GENERATED
29314    }
29315    #[inline]
29316    fn cast(syntax: SyntaxNode) -> Option<Self> {
29317        if Self::can_cast(syntax.kind()) {
29318            Some(Self { syntax })
29319        } else {
29320            None
29321        }
29322    }
29323    #[inline]
29324    fn syntax(&self) -> &SyntaxNode {
29325        &self.syntax
29326    }
29327}
29328impl AstNode for SetGeneratedOptions {
29329    #[inline]
29330    fn can_cast(kind: SyntaxKind) -> bool {
29331        kind == SyntaxKind::SET_GENERATED_OPTIONS
29332    }
29333    #[inline]
29334    fn cast(syntax: SyntaxNode) -> Option<Self> {
29335        if Self::can_cast(syntax.kind()) {
29336            Some(Self { syntax })
29337        } else {
29338            None
29339        }
29340    }
29341    #[inline]
29342    fn syntax(&self) -> &SyntaxNode {
29343        &self.syntax
29344    }
29345}
29346impl AstNode for SetLogged {
29347    #[inline]
29348    fn can_cast(kind: SyntaxKind) -> bool {
29349        kind == SyntaxKind::SET_LOGGED
29350    }
29351    #[inline]
29352    fn cast(syntax: SyntaxNode) -> Option<Self> {
29353        if Self::can_cast(syntax.kind()) {
29354            Some(Self { syntax })
29355        } else {
29356            None
29357        }
29358    }
29359    #[inline]
29360    fn syntax(&self) -> &SyntaxNode {
29361        &self.syntax
29362    }
29363}
29364impl AstNode for SetMultipleColumns {
29365    #[inline]
29366    fn can_cast(kind: SyntaxKind) -> bool {
29367        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
29368    }
29369    #[inline]
29370    fn cast(syntax: SyntaxNode) -> Option<Self> {
29371        if Self::can_cast(syntax.kind()) {
29372            Some(Self { syntax })
29373        } else {
29374            None
29375        }
29376    }
29377    #[inline]
29378    fn syntax(&self) -> &SyntaxNode {
29379        &self.syntax
29380    }
29381}
29382impl AstNode for SetNotNull {
29383    #[inline]
29384    fn can_cast(kind: SyntaxKind) -> bool {
29385        kind == SyntaxKind::SET_NOT_NULL
29386    }
29387    #[inline]
29388    fn cast(syntax: SyntaxNode) -> Option<Self> {
29389        if Self::can_cast(syntax.kind()) {
29390            Some(Self { syntax })
29391        } else {
29392            None
29393        }
29394    }
29395    #[inline]
29396    fn syntax(&self) -> &SyntaxNode {
29397        &self.syntax
29398    }
29399}
29400impl AstNode for SetNullColumns {
29401    #[inline]
29402    fn can_cast(kind: SyntaxKind) -> bool {
29403        kind == SyntaxKind::SET_NULL_COLUMNS
29404    }
29405    #[inline]
29406    fn cast(syntax: SyntaxNode) -> Option<Self> {
29407        if Self::can_cast(syntax.kind()) {
29408            Some(Self { syntax })
29409        } else {
29410            None
29411        }
29412    }
29413    #[inline]
29414    fn syntax(&self) -> &SyntaxNode {
29415        &self.syntax
29416    }
29417}
29418impl AstNode for SetOptions {
29419    #[inline]
29420    fn can_cast(kind: SyntaxKind) -> bool {
29421        kind == SyntaxKind::SET_OPTIONS
29422    }
29423    #[inline]
29424    fn cast(syntax: SyntaxNode) -> Option<Self> {
29425        if Self::can_cast(syntax.kind()) {
29426            Some(Self { syntax })
29427        } else {
29428            None
29429        }
29430    }
29431    #[inline]
29432    fn syntax(&self) -> &SyntaxNode {
29433        &self.syntax
29434    }
29435}
29436impl AstNode for SetOptionsList {
29437    #[inline]
29438    fn can_cast(kind: SyntaxKind) -> bool {
29439        kind == SyntaxKind::SET_OPTIONS_LIST
29440    }
29441    #[inline]
29442    fn cast(syntax: SyntaxNode) -> Option<Self> {
29443        if Self::can_cast(syntax.kind()) {
29444            Some(Self { syntax })
29445        } else {
29446            None
29447        }
29448    }
29449    #[inline]
29450    fn syntax(&self) -> &SyntaxNode {
29451        &self.syntax
29452    }
29453}
29454impl AstNode for SetRole {
29455    #[inline]
29456    fn can_cast(kind: SyntaxKind) -> bool {
29457        kind == SyntaxKind::SET_ROLE
29458    }
29459    #[inline]
29460    fn cast(syntax: SyntaxNode) -> Option<Self> {
29461        if Self::can_cast(syntax.kind()) {
29462            Some(Self { syntax })
29463        } else {
29464            None
29465        }
29466    }
29467    #[inline]
29468    fn syntax(&self) -> &SyntaxNode {
29469        &self.syntax
29470    }
29471}
29472impl AstNode for SetSchema {
29473    #[inline]
29474    fn can_cast(kind: SyntaxKind) -> bool {
29475        kind == SyntaxKind::SET_SCHEMA
29476    }
29477    #[inline]
29478    fn cast(syntax: SyntaxNode) -> Option<Self> {
29479        if Self::can_cast(syntax.kind()) {
29480            Some(Self { syntax })
29481        } else {
29482            None
29483        }
29484    }
29485    #[inline]
29486    fn syntax(&self) -> &SyntaxNode {
29487        &self.syntax
29488    }
29489}
29490impl AstNode for SetSequenceOption {
29491    #[inline]
29492    fn can_cast(kind: SyntaxKind) -> bool {
29493        kind == SyntaxKind::SET_SEQUENCE_OPTION
29494    }
29495    #[inline]
29496    fn cast(syntax: SyntaxNode) -> Option<Self> {
29497        if Self::can_cast(syntax.kind()) {
29498            Some(Self { syntax })
29499        } else {
29500            None
29501        }
29502    }
29503    #[inline]
29504    fn syntax(&self) -> &SyntaxNode {
29505        &self.syntax
29506    }
29507}
29508impl AstNode for SetSessionAuth {
29509    #[inline]
29510    fn can_cast(kind: SyntaxKind) -> bool {
29511        kind == SyntaxKind::SET_SESSION_AUTH
29512    }
29513    #[inline]
29514    fn cast(syntax: SyntaxNode) -> Option<Self> {
29515        if Self::can_cast(syntax.kind()) {
29516            Some(Self { syntax })
29517        } else {
29518            None
29519        }
29520    }
29521    #[inline]
29522    fn syntax(&self) -> &SyntaxNode {
29523        &self.syntax
29524    }
29525}
29526impl AstNode for SetSingleColumn {
29527    #[inline]
29528    fn can_cast(kind: SyntaxKind) -> bool {
29529        kind == SyntaxKind::SET_SINGLE_COLUMN
29530    }
29531    #[inline]
29532    fn cast(syntax: SyntaxNode) -> Option<Self> {
29533        if Self::can_cast(syntax.kind()) {
29534            Some(Self { syntax })
29535        } else {
29536            None
29537        }
29538    }
29539    #[inline]
29540    fn syntax(&self) -> &SyntaxNode {
29541        &self.syntax
29542    }
29543}
29544impl AstNode for SetStatistics {
29545    #[inline]
29546    fn can_cast(kind: SyntaxKind) -> bool {
29547        kind == SyntaxKind::SET_STATISTICS
29548    }
29549    #[inline]
29550    fn cast(syntax: SyntaxNode) -> Option<Self> {
29551        if Self::can_cast(syntax.kind()) {
29552            Some(Self { syntax })
29553        } else {
29554            None
29555        }
29556    }
29557    #[inline]
29558    fn syntax(&self) -> &SyntaxNode {
29559        &self.syntax
29560    }
29561}
29562impl AstNode for SetStorage {
29563    #[inline]
29564    fn can_cast(kind: SyntaxKind) -> bool {
29565        kind == SyntaxKind::SET_STORAGE
29566    }
29567    #[inline]
29568    fn cast(syntax: SyntaxNode) -> Option<Self> {
29569        if Self::can_cast(syntax.kind()) {
29570            Some(Self { syntax })
29571        } else {
29572            None
29573        }
29574    }
29575    #[inline]
29576    fn syntax(&self) -> &SyntaxNode {
29577        &self.syntax
29578    }
29579}
29580impl AstNode for SetTablespace {
29581    #[inline]
29582    fn can_cast(kind: SyntaxKind) -> bool {
29583        kind == SyntaxKind::SET_TABLESPACE
29584    }
29585    #[inline]
29586    fn cast(syntax: SyntaxNode) -> Option<Self> {
29587        if Self::can_cast(syntax.kind()) {
29588            Some(Self { syntax })
29589        } else {
29590            None
29591        }
29592    }
29593    #[inline]
29594    fn syntax(&self) -> &SyntaxNode {
29595        &self.syntax
29596    }
29597}
29598impl AstNode for SetTransaction {
29599    #[inline]
29600    fn can_cast(kind: SyntaxKind) -> bool {
29601        kind == SyntaxKind::SET_TRANSACTION
29602    }
29603    #[inline]
29604    fn cast(syntax: SyntaxNode) -> Option<Self> {
29605        if Self::can_cast(syntax.kind()) {
29606            Some(Self { syntax })
29607        } else {
29608            None
29609        }
29610    }
29611    #[inline]
29612    fn syntax(&self) -> &SyntaxNode {
29613        &self.syntax
29614    }
29615}
29616impl AstNode for SetType {
29617    #[inline]
29618    fn can_cast(kind: SyntaxKind) -> bool {
29619        kind == SyntaxKind::SET_TYPE
29620    }
29621    #[inline]
29622    fn cast(syntax: SyntaxNode) -> Option<Self> {
29623        if Self::can_cast(syntax.kind()) {
29624            Some(Self { syntax })
29625        } else {
29626            None
29627        }
29628    }
29629    #[inline]
29630    fn syntax(&self) -> &SyntaxNode {
29631        &self.syntax
29632    }
29633}
29634impl AstNode for SetUnlogged {
29635    #[inline]
29636    fn can_cast(kind: SyntaxKind) -> bool {
29637        kind == SyntaxKind::SET_UNLOGGED
29638    }
29639    #[inline]
29640    fn cast(syntax: SyntaxNode) -> Option<Self> {
29641        if Self::can_cast(syntax.kind()) {
29642            Some(Self { syntax })
29643        } else {
29644            None
29645        }
29646    }
29647    #[inline]
29648    fn syntax(&self) -> &SyntaxNode {
29649        &self.syntax
29650    }
29651}
29652impl AstNode for SetWithoutCluster {
29653    #[inline]
29654    fn can_cast(kind: SyntaxKind) -> bool {
29655        kind == SyntaxKind::SET_WITHOUT_CLUSTER
29656    }
29657    #[inline]
29658    fn cast(syntax: SyntaxNode) -> Option<Self> {
29659        if Self::can_cast(syntax.kind()) {
29660            Some(Self { syntax })
29661        } else {
29662            None
29663        }
29664    }
29665    #[inline]
29666    fn syntax(&self) -> &SyntaxNode {
29667        &self.syntax
29668    }
29669}
29670impl AstNode for SetWithoutOids {
29671    #[inline]
29672    fn can_cast(kind: SyntaxKind) -> bool {
29673        kind == SyntaxKind::SET_WITHOUT_OIDS
29674    }
29675    #[inline]
29676    fn cast(syntax: SyntaxNode) -> Option<Self> {
29677        if Self::can_cast(syntax.kind()) {
29678            Some(Self { syntax })
29679        } else {
29680            None
29681        }
29682    }
29683    #[inline]
29684    fn syntax(&self) -> &SyntaxNode {
29685        &self.syntax
29686    }
29687}
29688impl AstNode for Show {
29689    #[inline]
29690    fn can_cast(kind: SyntaxKind) -> bool {
29691        kind == SyntaxKind::SHOW
29692    }
29693    #[inline]
29694    fn cast(syntax: SyntaxNode) -> Option<Self> {
29695        if Self::can_cast(syntax.kind()) {
29696            Some(Self { syntax })
29697        } else {
29698            None
29699        }
29700    }
29701    #[inline]
29702    fn syntax(&self) -> &SyntaxNode {
29703        &self.syntax
29704    }
29705}
29706impl AstNode for SimilarTo {
29707    #[inline]
29708    fn can_cast(kind: SyntaxKind) -> bool {
29709        kind == SyntaxKind::SIMILAR_TO
29710    }
29711    #[inline]
29712    fn cast(syntax: SyntaxNode) -> Option<Self> {
29713        if Self::can_cast(syntax.kind()) {
29714            Some(Self { syntax })
29715        } else {
29716            None
29717        }
29718    }
29719    #[inline]
29720    fn syntax(&self) -> &SyntaxNode {
29721        &self.syntax
29722    }
29723}
29724impl AstNode for SliceExpr {
29725    #[inline]
29726    fn can_cast(kind: SyntaxKind) -> bool {
29727        kind == SyntaxKind::SLICE_EXPR
29728    }
29729    #[inline]
29730    fn cast(syntax: SyntaxNode) -> Option<Self> {
29731        if Self::can_cast(syntax.kind()) {
29732            Some(Self { syntax })
29733        } else {
29734            None
29735        }
29736    }
29737    #[inline]
29738    fn syntax(&self) -> &SyntaxNode {
29739        &self.syntax
29740    }
29741}
29742impl AstNode for SomeFn {
29743    #[inline]
29744    fn can_cast(kind: SyntaxKind) -> bool {
29745        kind == SyntaxKind::SOME_FN
29746    }
29747    #[inline]
29748    fn cast(syntax: SyntaxNode) -> Option<Self> {
29749        if Self::can_cast(syntax.kind()) {
29750            Some(Self { syntax })
29751        } else {
29752            None
29753        }
29754    }
29755    #[inline]
29756    fn syntax(&self) -> &SyntaxNode {
29757        &self.syntax
29758    }
29759}
29760impl AstNode for SortAsc {
29761    #[inline]
29762    fn can_cast(kind: SyntaxKind) -> bool {
29763        kind == SyntaxKind::SORT_ASC
29764    }
29765    #[inline]
29766    fn cast(syntax: SyntaxNode) -> Option<Self> {
29767        if Self::can_cast(syntax.kind()) {
29768            Some(Self { syntax })
29769        } else {
29770            None
29771        }
29772    }
29773    #[inline]
29774    fn syntax(&self) -> &SyntaxNode {
29775        &self.syntax
29776    }
29777}
29778impl AstNode for SortBy {
29779    #[inline]
29780    fn can_cast(kind: SyntaxKind) -> bool {
29781        kind == SyntaxKind::SORT_BY
29782    }
29783    #[inline]
29784    fn cast(syntax: SyntaxNode) -> Option<Self> {
29785        if Self::can_cast(syntax.kind()) {
29786            Some(Self { syntax })
29787        } else {
29788            None
29789        }
29790    }
29791    #[inline]
29792    fn syntax(&self) -> &SyntaxNode {
29793        &self.syntax
29794    }
29795}
29796impl AstNode for SortByList {
29797    #[inline]
29798    fn can_cast(kind: SyntaxKind) -> bool {
29799        kind == SyntaxKind::SORT_BY_LIST
29800    }
29801    #[inline]
29802    fn cast(syntax: SyntaxNode) -> Option<Self> {
29803        if Self::can_cast(syntax.kind()) {
29804            Some(Self { syntax })
29805        } else {
29806            None
29807        }
29808    }
29809    #[inline]
29810    fn syntax(&self) -> &SyntaxNode {
29811        &self.syntax
29812    }
29813}
29814impl AstNode for SortDesc {
29815    #[inline]
29816    fn can_cast(kind: SyntaxKind) -> bool {
29817        kind == SyntaxKind::SORT_DESC
29818    }
29819    #[inline]
29820    fn cast(syntax: SyntaxNode) -> Option<Self> {
29821        if Self::can_cast(syntax.kind()) {
29822            Some(Self { syntax })
29823        } else {
29824            None
29825        }
29826    }
29827    #[inline]
29828    fn syntax(&self) -> &SyntaxNode {
29829        &self.syntax
29830    }
29831}
29832impl AstNode for SortUsing {
29833    #[inline]
29834    fn can_cast(kind: SyntaxKind) -> bool {
29835        kind == SyntaxKind::SORT_USING
29836    }
29837    #[inline]
29838    fn cast(syntax: SyntaxNode) -> Option<Self> {
29839        if Self::can_cast(syntax.kind()) {
29840            Some(Self { syntax })
29841        } else {
29842            None
29843        }
29844    }
29845    #[inline]
29846    fn syntax(&self) -> &SyntaxNode {
29847        &self.syntax
29848    }
29849}
29850impl AstNode for SourceFile {
29851    #[inline]
29852    fn can_cast(kind: SyntaxKind) -> bool {
29853        kind == SyntaxKind::SOURCE_FILE
29854    }
29855    #[inline]
29856    fn cast(syntax: SyntaxNode) -> Option<Self> {
29857        if Self::can_cast(syntax.kind()) {
29858            Some(Self { syntax })
29859        } else {
29860            None
29861        }
29862    }
29863    #[inline]
29864    fn syntax(&self) -> &SyntaxNode {
29865        &self.syntax
29866    }
29867}
29868impl AstNode for SourceVertexTable {
29869    #[inline]
29870    fn can_cast(kind: SyntaxKind) -> bool {
29871        kind == SyntaxKind::SOURCE_VERTEX_TABLE
29872    }
29873    #[inline]
29874    fn cast(syntax: SyntaxNode) -> Option<Self> {
29875        if Self::can_cast(syntax.kind()) {
29876            Some(Self { syntax })
29877        } else {
29878            None
29879        }
29880    }
29881    #[inline]
29882    fn syntax(&self) -> &SyntaxNode {
29883        &self.syntax
29884    }
29885}
29886impl AstNode for SplitPartition {
29887    #[inline]
29888    fn can_cast(kind: SyntaxKind) -> bool {
29889        kind == SyntaxKind::SPLIT_PARTITION
29890    }
29891    #[inline]
29892    fn cast(syntax: SyntaxNode) -> Option<Self> {
29893        if Self::can_cast(syntax.kind()) {
29894            Some(Self { syntax })
29895        } else {
29896            None
29897        }
29898    }
29899    #[inline]
29900    fn syntax(&self) -> &SyntaxNode {
29901        &self.syntax
29902    }
29903}
29904impl AstNode for Storage {
29905    #[inline]
29906    fn can_cast(kind: SyntaxKind) -> bool {
29907        kind == SyntaxKind::STORAGE
29908    }
29909    #[inline]
29910    fn cast(syntax: SyntaxNode) -> Option<Self> {
29911        if Self::can_cast(syntax.kind()) {
29912            Some(Self { syntax })
29913        } else {
29914            None
29915        }
29916    }
29917    #[inline]
29918    fn syntax(&self) -> &SyntaxNode {
29919        &self.syntax
29920    }
29921}
29922impl AstNode for StrictFuncOption {
29923    #[inline]
29924    fn can_cast(kind: SyntaxKind) -> bool {
29925        kind == SyntaxKind::STRICT_FUNC_OPTION
29926    }
29927    #[inline]
29928    fn cast(syntax: SyntaxNode) -> Option<Self> {
29929        if Self::can_cast(syntax.kind()) {
29930            Some(Self { syntax })
29931        } else {
29932            None
29933        }
29934    }
29935    #[inline]
29936    fn syntax(&self) -> &SyntaxNode {
29937        &self.syntax
29938    }
29939}
29940impl AstNode for SubstringFn {
29941    #[inline]
29942    fn can_cast(kind: SyntaxKind) -> bool {
29943        kind == SyntaxKind::SUBSTRING_FN
29944    }
29945    #[inline]
29946    fn cast(syntax: SyntaxNode) -> Option<Self> {
29947        if Self::can_cast(syntax.kind()) {
29948            Some(Self { syntax })
29949        } else {
29950            None
29951        }
29952    }
29953    #[inline]
29954    fn syntax(&self) -> &SyntaxNode {
29955        &self.syntax
29956    }
29957}
29958impl AstNode for SupportFuncOption {
29959    #[inline]
29960    fn can_cast(kind: SyntaxKind) -> bool {
29961        kind == SyntaxKind::SUPPORT_FUNC_OPTION
29962    }
29963    #[inline]
29964    fn cast(syntax: SyntaxNode) -> Option<Self> {
29965        if Self::can_cast(syntax.kind()) {
29966            Some(Self { syntax })
29967        } else {
29968            None
29969        }
29970    }
29971    #[inline]
29972    fn syntax(&self) -> &SyntaxNode {
29973        &self.syntax
29974    }
29975}
29976impl AstNode for Table {
29977    #[inline]
29978    fn can_cast(kind: SyntaxKind) -> bool {
29979        kind == SyntaxKind::TABLE
29980    }
29981    #[inline]
29982    fn cast(syntax: SyntaxNode) -> Option<Self> {
29983        if Self::can_cast(syntax.kind()) {
29984            Some(Self { syntax })
29985        } else {
29986            None
29987        }
29988    }
29989    #[inline]
29990    fn syntax(&self) -> &SyntaxNode {
29991        &self.syntax
29992    }
29993}
29994impl AstNode for TableAndColumns {
29995    #[inline]
29996    fn can_cast(kind: SyntaxKind) -> bool {
29997        kind == SyntaxKind::TABLE_AND_COLUMNS
29998    }
29999    #[inline]
30000    fn cast(syntax: SyntaxNode) -> Option<Self> {
30001        if Self::can_cast(syntax.kind()) {
30002            Some(Self { syntax })
30003        } else {
30004            None
30005        }
30006    }
30007    #[inline]
30008    fn syntax(&self) -> &SyntaxNode {
30009        &self.syntax
30010    }
30011}
30012impl AstNode for TableAndColumnsList {
30013    #[inline]
30014    fn can_cast(kind: SyntaxKind) -> bool {
30015        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
30016    }
30017    #[inline]
30018    fn cast(syntax: SyntaxNode) -> Option<Self> {
30019        if Self::can_cast(syntax.kind()) {
30020            Some(Self { syntax })
30021        } else {
30022            None
30023        }
30024    }
30025    #[inline]
30026    fn syntax(&self) -> &SyntaxNode {
30027        &self.syntax
30028    }
30029}
30030impl AstNode for TableArgList {
30031    #[inline]
30032    fn can_cast(kind: SyntaxKind) -> bool {
30033        kind == SyntaxKind::TABLE_ARG_LIST
30034    }
30035    #[inline]
30036    fn cast(syntax: SyntaxNode) -> Option<Self> {
30037        if Self::can_cast(syntax.kind()) {
30038            Some(Self { syntax })
30039        } else {
30040            None
30041        }
30042    }
30043    #[inline]
30044    fn syntax(&self) -> &SyntaxNode {
30045        &self.syntax
30046    }
30047}
30048impl AstNode for TableList {
30049    #[inline]
30050    fn can_cast(kind: SyntaxKind) -> bool {
30051        kind == SyntaxKind::TABLE_LIST
30052    }
30053    #[inline]
30054    fn cast(syntax: SyntaxNode) -> Option<Self> {
30055        if Self::can_cast(syntax.kind()) {
30056            Some(Self { syntax })
30057        } else {
30058            None
30059        }
30060    }
30061    #[inline]
30062    fn syntax(&self) -> &SyntaxNode {
30063        &self.syntax
30064    }
30065}
30066impl AstNode for TablesampleClause {
30067    #[inline]
30068    fn can_cast(kind: SyntaxKind) -> bool {
30069        kind == SyntaxKind::TABLESAMPLE_CLAUSE
30070    }
30071    #[inline]
30072    fn cast(syntax: SyntaxNode) -> Option<Self> {
30073        if Self::can_cast(syntax.kind()) {
30074            Some(Self { syntax })
30075        } else {
30076            None
30077        }
30078    }
30079    #[inline]
30080    fn syntax(&self) -> &SyntaxNode {
30081        &self.syntax
30082    }
30083}
30084impl AstNode for Tablespace {
30085    #[inline]
30086    fn can_cast(kind: SyntaxKind) -> bool {
30087        kind == SyntaxKind::TABLESPACE
30088    }
30089    #[inline]
30090    fn cast(syntax: SyntaxNode) -> Option<Self> {
30091        if Self::can_cast(syntax.kind()) {
30092            Some(Self { syntax })
30093        } else {
30094            None
30095        }
30096    }
30097    #[inline]
30098    fn syntax(&self) -> &SyntaxNode {
30099        &self.syntax
30100    }
30101}
30102impl AstNode for Target {
30103    #[inline]
30104    fn can_cast(kind: SyntaxKind) -> bool {
30105        kind == SyntaxKind::TARGET
30106    }
30107    #[inline]
30108    fn cast(syntax: SyntaxNode) -> Option<Self> {
30109        if Self::can_cast(syntax.kind()) {
30110            Some(Self { syntax })
30111        } else {
30112            None
30113        }
30114    }
30115    #[inline]
30116    fn syntax(&self) -> &SyntaxNode {
30117        &self.syntax
30118    }
30119}
30120impl AstNode for TargetList {
30121    #[inline]
30122    fn can_cast(kind: SyntaxKind) -> bool {
30123        kind == SyntaxKind::TARGET_LIST
30124    }
30125    #[inline]
30126    fn cast(syntax: SyntaxNode) -> Option<Self> {
30127        if Self::can_cast(syntax.kind()) {
30128            Some(Self { syntax })
30129        } else {
30130            None
30131        }
30132    }
30133    #[inline]
30134    fn syntax(&self) -> &SyntaxNode {
30135        &self.syntax
30136    }
30137}
30138impl AstNode for Temp {
30139    #[inline]
30140    fn can_cast(kind: SyntaxKind) -> bool {
30141        kind == SyntaxKind::TEMP
30142    }
30143    #[inline]
30144    fn cast(syntax: SyntaxNode) -> Option<Self> {
30145        if Self::can_cast(syntax.kind()) {
30146            Some(Self { syntax })
30147        } else {
30148            None
30149        }
30150    }
30151    #[inline]
30152    fn syntax(&self) -> &SyntaxNode {
30153        &self.syntax
30154    }
30155}
30156impl AstNode for TimeType {
30157    #[inline]
30158    fn can_cast(kind: SyntaxKind) -> bool {
30159        kind == SyntaxKind::TIME_TYPE
30160    }
30161    #[inline]
30162    fn cast(syntax: SyntaxNode) -> Option<Self> {
30163        if Self::can_cast(syntax.kind()) {
30164            Some(Self { syntax })
30165        } else {
30166            None
30167        }
30168    }
30169    #[inline]
30170    fn syntax(&self) -> &SyntaxNode {
30171        &self.syntax
30172    }
30173}
30174impl AstNode for Timing {
30175    #[inline]
30176    fn can_cast(kind: SyntaxKind) -> bool {
30177        kind == SyntaxKind::TIMING
30178    }
30179    #[inline]
30180    fn cast(syntax: SyntaxNode) -> Option<Self> {
30181        if Self::can_cast(syntax.kind()) {
30182            Some(Self { syntax })
30183        } else {
30184            None
30185        }
30186    }
30187    #[inline]
30188    fn syntax(&self) -> &SyntaxNode {
30189        &self.syntax
30190    }
30191}
30192impl AstNode for TransactionModeList {
30193    #[inline]
30194    fn can_cast(kind: SyntaxKind) -> bool {
30195        kind == SyntaxKind::TRANSACTION_MODE_LIST
30196    }
30197    #[inline]
30198    fn cast(syntax: SyntaxNode) -> Option<Self> {
30199        if Self::can_cast(syntax.kind()) {
30200            Some(Self { syntax })
30201        } else {
30202            None
30203        }
30204    }
30205    #[inline]
30206    fn syntax(&self) -> &SyntaxNode {
30207        &self.syntax
30208    }
30209}
30210impl AstNode for TransformFromFunc {
30211    #[inline]
30212    fn can_cast(kind: SyntaxKind) -> bool {
30213        kind == SyntaxKind::TRANSFORM_FROM_FUNC
30214    }
30215    #[inline]
30216    fn cast(syntax: SyntaxNode) -> Option<Self> {
30217        if Self::can_cast(syntax.kind()) {
30218            Some(Self { syntax })
30219        } else {
30220            None
30221        }
30222    }
30223    #[inline]
30224    fn syntax(&self) -> &SyntaxNode {
30225        &self.syntax
30226    }
30227}
30228impl AstNode for TransformFuncOption {
30229    #[inline]
30230    fn can_cast(kind: SyntaxKind) -> bool {
30231        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
30232    }
30233    #[inline]
30234    fn cast(syntax: SyntaxNode) -> Option<Self> {
30235        if Self::can_cast(syntax.kind()) {
30236            Some(Self { syntax })
30237        } else {
30238            None
30239        }
30240    }
30241    #[inline]
30242    fn syntax(&self) -> &SyntaxNode {
30243        &self.syntax
30244    }
30245}
30246impl AstNode for TransformToFunc {
30247    #[inline]
30248    fn can_cast(kind: SyntaxKind) -> bool {
30249        kind == SyntaxKind::TRANSFORM_TO_FUNC
30250    }
30251    #[inline]
30252    fn cast(syntax: SyntaxNode) -> Option<Self> {
30253        if Self::can_cast(syntax.kind()) {
30254            Some(Self { syntax })
30255        } else {
30256            None
30257        }
30258    }
30259    #[inline]
30260    fn syntax(&self) -> &SyntaxNode {
30261        &self.syntax
30262    }
30263}
30264impl AstNode for TriggerEvent {
30265    #[inline]
30266    fn can_cast(kind: SyntaxKind) -> bool {
30267        kind == SyntaxKind::TRIGGER_EVENT
30268    }
30269    #[inline]
30270    fn cast(syntax: SyntaxNode) -> Option<Self> {
30271        if Self::can_cast(syntax.kind()) {
30272            Some(Self { syntax })
30273        } else {
30274            None
30275        }
30276    }
30277    #[inline]
30278    fn syntax(&self) -> &SyntaxNode {
30279        &self.syntax
30280    }
30281}
30282impl AstNode for TriggerEventList {
30283    #[inline]
30284    fn can_cast(kind: SyntaxKind) -> bool {
30285        kind == SyntaxKind::TRIGGER_EVENT_LIST
30286    }
30287    #[inline]
30288    fn cast(syntax: SyntaxNode) -> Option<Self> {
30289        if Self::can_cast(syntax.kind()) {
30290            Some(Self { syntax })
30291        } else {
30292            None
30293        }
30294    }
30295    #[inline]
30296    fn syntax(&self) -> &SyntaxNode {
30297        &self.syntax
30298    }
30299}
30300impl AstNode for TriggerEventUpdate {
30301    #[inline]
30302    fn can_cast(kind: SyntaxKind) -> bool {
30303        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
30304    }
30305    #[inline]
30306    fn cast(syntax: SyntaxNode) -> Option<Self> {
30307        if Self::can_cast(syntax.kind()) {
30308            Some(Self { syntax })
30309        } else {
30310            None
30311        }
30312    }
30313    #[inline]
30314    fn syntax(&self) -> &SyntaxNode {
30315        &self.syntax
30316    }
30317}
30318impl AstNode for TrimFn {
30319    #[inline]
30320    fn can_cast(kind: SyntaxKind) -> bool {
30321        kind == SyntaxKind::TRIM_FN
30322    }
30323    #[inline]
30324    fn cast(syntax: SyntaxNode) -> Option<Self> {
30325        if Self::can_cast(syntax.kind()) {
30326            Some(Self { syntax })
30327        } else {
30328            None
30329        }
30330    }
30331    #[inline]
30332    fn syntax(&self) -> &SyntaxNode {
30333        &self.syntax
30334    }
30335}
30336impl AstNode for Truncate {
30337    #[inline]
30338    fn can_cast(kind: SyntaxKind) -> bool {
30339        kind == SyntaxKind::TRUNCATE
30340    }
30341    #[inline]
30342    fn cast(syntax: SyntaxNode) -> Option<Self> {
30343        if Self::can_cast(syntax.kind()) {
30344            Some(Self { syntax })
30345        } else {
30346            None
30347        }
30348    }
30349    #[inline]
30350    fn syntax(&self) -> &SyntaxNode {
30351        &self.syntax
30352    }
30353}
30354impl AstNode for TupleExpr {
30355    #[inline]
30356    fn can_cast(kind: SyntaxKind) -> bool {
30357        kind == SyntaxKind::TUPLE_EXPR
30358    }
30359    #[inline]
30360    fn cast(syntax: SyntaxNode) -> Option<Self> {
30361        if Self::can_cast(syntax.kind()) {
30362            Some(Self { syntax })
30363        } else {
30364            None
30365        }
30366    }
30367    #[inline]
30368    fn syntax(&self) -> &SyntaxNode {
30369        &self.syntax
30370    }
30371}
30372impl AstNode for UnicodeNormalForm {
30373    #[inline]
30374    fn can_cast(kind: SyntaxKind) -> bool {
30375        kind == SyntaxKind::UNICODE_NORMAL_FORM
30376    }
30377    #[inline]
30378    fn cast(syntax: SyntaxNode) -> Option<Self> {
30379        if Self::can_cast(syntax.kind()) {
30380            Some(Self { syntax })
30381        } else {
30382            None
30383        }
30384    }
30385    #[inline]
30386    fn syntax(&self) -> &SyntaxNode {
30387        &self.syntax
30388    }
30389}
30390impl AstNode for UniqueConstraint {
30391    #[inline]
30392    fn can_cast(kind: SyntaxKind) -> bool {
30393        kind == SyntaxKind::UNIQUE_CONSTRAINT
30394    }
30395    #[inline]
30396    fn cast(syntax: SyntaxNode) -> Option<Self> {
30397        if Self::can_cast(syntax.kind()) {
30398            Some(Self { syntax })
30399        } else {
30400            None
30401        }
30402    }
30403    #[inline]
30404    fn syntax(&self) -> &SyntaxNode {
30405        &self.syntax
30406    }
30407}
30408impl AstNode for Unlisten {
30409    #[inline]
30410    fn can_cast(kind: SyntaxKind) -> bool {
30411        kind == SyntaxKind::UNLISTEN
30412    }
30413    #[inline]
30414    fn cast(syntax: SyntaxNode) -> Option<Self> {
30415        if Self::can_cast(syntax.kind()) {
30416            Some(Self { syntax })
30417        } else {
30418            None
30419        }
30420    }
30421    #[inline]
30422    fn syntax(&self) -> &SyntaxNode {
30423        &self.syntax
30424    }
30425}
30426impl AstNode for Unlogged {
30427    #[inline]
30428    fn can_cast(kind: SyntaxKind) -> bool {
30429        kind == SyntaxKind::UNLOGGED
30430    }
30431    #[inline]
30432    fn cast(syntax: SyntaxNode) -> Option<Self> {
30433        if Self::can_cast(syntax.kind()) {
30434            Some(Self { syntax })
30435        } else {
30436            None
30437        }
30438    }
30439    #[inline]
30440    fn syntax(&self) -> &SyntaxNode {
30441        &self.syntax
30442    }
30443}
30444impl AstNode for Update {
30445    #[inline]
30446    fn can_cast(kind: SyntaxKind) -> bool {
30447        kind == SyntaxKind::UPDATE
30448    }
30449    #[inline]
30450    fn cast(syntax: SyntaxNode) -> Option<Self> {
30451        if Self::can_cast(syntax.kind()) {
30452            Some(Self { syntax })
30453        } else {
30454            None
30455        }
30456    }
30457    #[inline]
30458    fn syntax(&self) -> &SyntaxNode {
30459        &self.syntax
30460    }
30461}
30462impl AstNode for UsingClause {
30463    #[inline]
30464    fn can_cast(kind: SyntaxKind) -> bool {
30465        kind == SyntaxKind::USING_CLAUSE
30466    }
30467    #[inline]
30468    fn cast(syntax: SyntaxNode) -> Option<Self> {
30469        if Self::can_cast(syntax.kind()) {
30470            Some(Self { syntax })
30471        } else {
30472            None
30473        }
30474    }
30475    #[inline]
30476    fn syntax(&self) -> &SyntaxNode {
30477        &self.syntax
30478    }
30479}
30480impl AstNode for UsingExprClause {
30481    #[inline]
30482    fn can_cast(kind: SyntaxKind) -> bool {
30483        kind == SyntaxKind::USING_EXPR_CLAUSE
30484    }
30485    #[inline]
30486    fn cast(syntax: SyntaxNode) -> Option<Self> {
30487        if Self::can_cast(syntax.kind()) {
30488            Some(Self { syntax })
30489        } else {
30490            None
30491        }
30492    }
30493    #[inline]
30494    fn syntax(&self) -> &SyntaxNode {
30495        &self.syntax
30496    }
30497}
30498impl AstNode for UsingIndex {
30499    #[inline]
30500    fn can_cast(kind: SyntaxKind) -> bool {
30501        kind == SyntaxKind::USING_INDEX
30502    }
30503    #[inline]
30504    fn cast(syntax: SyntaxNode) -> Option<Self> {
30505        if Self::can_cast(syntax.kind()) {
30506            Some(Self { syntax })
30507        } else {
30508            None
30509        }
30510    }
30511    #[inline]
30512    fn syntax(&self) -> &SyntaxNode {
30513        &self.syntax
30514    }
30515}
30516impl AstNode for UsingMethod {
30517    #[inline]
30518    fn can_cast(kind: SyntaxKind) -> bool {
30519        kind == SyntaxKind::USING_METHOD
30520    }
30521    #[inline]
30522    fn cast(syntax: SyntaxNode) -> Option<Self> {
30523        if Self::can_cast(syntax.kind()) {
30524            Some(Self { syntax })
30525        } else {
30526            None
30527        }
30528    }
30529    #[inline]
30530    fn syntax(&self) -> &SyntaxNode {
30531        &self.syntax
30532    }
30533}
30534impl AstNode for UsingOnClause {
30535    #[inline]
30536    fn can_cast(kind: SyntaxKind) -> bool {
30537        kind == SyntaxKind::USING_ON_CLAUSE
30538    }
30539    #[inline]
30540    fn cast(syntax: SyntaxNode) -> Option<Self> {
30541        if Self::can_cast(syntax.kind()) {
30542            Some(Self { syntax })
30543        } else {
30544            None
30545        }
30546    }
30547    #[inline]
30548    fn syntax(&self) -> &SyntaxNode {
30549        &self.syntax
30550    }
30551}
30552impl AstNode for Vacuum {
30553    #[inline]
30554    fn can_cast(kind: SyntaxKind) -> bool {
30555        kind == SyntaxKind::VACUUM
30556    }
30557    #[inline]
30558    fn cast(syntax: SyntaxNode) -> Option<Self> {
30559        if Self::can_cast(syntax.kind()) {
30560            Some(Self { syntax })
30561        } else {
30562            None
30563        }
30564    }
30565    #[inline]
30566    fn syntax(&self) -> &SyntaxNode {
30567        &self.syntax
30568    }
30569}
30570impl AstNode for VacuumOption {
30571    #[inline]
30572    fn can_cast(kind: SyntaxKind) -> bool {
30573        kind == SyntaxKind::VACUUM_OPTION
30574    }
30575    #[inline]
30576    fn cast(syntax: SyntaxNode) -> Option<Self> {
30577        if Self::can_cast(syntax.kind()) {
30578            Some(Self { syntax })
30579        } else {
30580            None
30581        }
30582    }
30583    #[inline]
30584    fn syntax(&self) -> &SyntaxNode {
30585        &self.syntax
30586    }
30587}
30588impl AstNode for VacuumOptionList {
30589    #[inline]
30590    fn can_cast(kind: SyntaxKind) -> bool {
30591        kind == SyntaxKind::VACUUM_OPTION_LIST
30592    }
30593    #[inline]
30594    fn cast(syntax: SyntaxNode) -> Option<Self> {
30595        if Self::can_cast(syntax.kind()) {
30596            Some(Self { syntax })
30597        } else {
30598            None
30599        }
30600    }
30601    #[inline]
30602    fn syntax(&self) -> &SyntaxNode {
30603        &self.syntax
30604    }
30605}
30606impl AstNode for ValidateConstraint {
30607    #[inline]
30608    fn can_cast(kind: SyntaxKind) -> bool {
30609        kind == SyntaxKind::VALIDATE_CONSTRAINT
30610    }
30611    #[inline]
30612    fn cast(syntax: SyntaxNode) -> Option<Self> {
30613        if Self::can_cast(syntax.kind()) {
30614            Some(Self { syntax })
30615        } else {
30616            None
30617        }
30618    }
30619    #[inline]
30620    fn syntax(&self) -> &SyntaxNode {
30621        &self.syntax
30622    }
30623}
30624impl AstNode for Values {
30625    #[inline]
30626    fn can_cast(kind: SyntaxKind) -> bool {
30627        kind == SyntaxKind::VALUES
30628    }
30629    #[inline]
30630    fn cast(syntax: SyntaxNode) -> Option<Self> {
30631        if Self::can_cast(syntax.kind()) {
30632            Some(Self { syntax })
30633        } else {
30634            None
30635        }
30636    }
30637    #[inline]
30638    fn syntax(&self) -> &SyntaxNode {
30639        &self.syntax
30640    }
30641}
30642impl AstNode for Variant {
30643    #[inline]
30644    fn can_cast(kind: SyntaxKind) -> bool {
30645        kind == SyntaxKind::VARIANT
30646    }
30647    #[inline]
30648    fn cast(syntax: SyntaxNode) -> Option<Self> {
30649        if Self::can_cast(syntax.kind()) {
30650            Some(Self { syntax })
30651        } else {
30652            None
30653        }
30654    }
30655    #[inline]
30656    fn syntax(&self) -> &SyntaxNode {
30657        &self.syntax
30658    }
30659}
30660impl AstNode for VariantList {
30661    #[inline]
30662    fn can_cast(kind: SyntaxKind) -> bool {
30663        kind == SyntaxKind::VARIANT_LIST
30664    }
30665    #[inline]
30666    fn cast(syntax: SyntaxNode) -> Option<Self> {
30667        if Self::can_cast(syntax.kind()) {
30668            Some(Self { syntax })
30669        } else {
30670            None
30671        }
30672    }
30673    #[inline]
30674    fn syntax(&self) -> &SyntaxNode {
30675        &self.syntax
30676    }
30677}
30678impl AstNode for VertexPattern {
30679    #[inline]
30680    fn can_cast(kind: SyntaxKind) -> bool {
30681        kind == SyntaxKind::VERTEX_PATTERN
30682    }
30683    #[inline]
30684    fn cast(syntax: SyntaxNode) -> Option<Self> {
30685        if Self::can_cast(syntax.kind()) {
30686            Some(Self { syntax })
30687        } else {
30688            None
30689        }
30690    }
30691    #[inline]
30692    fn syntax(&self) -> &SyntaxNode {
30693        &self.syntax
30694    }
30695}
30696impl AstNode for VertexTableDef {
30697    #[inline]
30698    fn can_cast(kind: SyntaxKind) -> bool {
30699        kind == SyntaxKind::VERTEX_TABLE_DEF
30700    }
30701    #[inline]
30702    fn cast(syntax: SyntaxNode) -> Option<Self> {
30703        if Self::can_cast(syntax.kind()) {
30704            Some(Self { syntax })
30705        } else {
30706            None
30707        }
30708    }
30709    #[inline]
30710    fn syntax(&self) -> &SyntaxNode {
30711        &self.syntax
30712    }
30713}
30714impl AstNode for VertexTables {
30715    #[inline]
30716    fn can_cast(kind: SyntaxKind) -> bool {
30717        kind == SyntaxKind::VERTEX_TABLES
30718    }
30719    #[inline]
30720    fn cast(syntax: SyntaxNode) -> Option<Self> {
30721        if Self::can_cast(syntax.kind()) {
30722            Some(Self { syntax })
30723        } else {
30724            None
30725        }
30726    }
30727    #[inline]
30728    fn syntax(&self) -> &SyntaxNode {
30729        &self.syntax
30730    }
30731}
30732impl AstNode for VolatilityFuncOption {
30733    #[inline]
30734    fn can_cast(kind: SyntaxKind) -> bool {
30735        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
30736    }
30737    #[inline]
30738    fn cast(syntax: SyntaxNode) -> Option<Self> {
30739        if Self::can_cast(syntax.kind()) {
30740            Some(Self { syntax })
30741        } else {
30742            None
30743        }
30744    }
30745    #[inline]
30746    fn syntax(&self) -> &SyntaxNode {
30747        &self.syntax
30748    }
30749}
30750impl AstNode for WhenClause {
30751    #[inline]
30752    fn can_cast(kind: SyntaxKind) -> bool {
30753        kind == SyntaxKind::WHEN_CLAUSE
30754    }
30755    #[inline]
30756    fn cast(syntax: SyntaxNode) -> Option<Self> {
30757        if Self::can_cast(syntax.kind()) {
30758            Some(Self { syntax })
30759        } else {
30760            None
30761        }
30762    }
30763    #[inline]
30764    fn syntax(&self) -> &SyntaxNode {
30765        &self.syntax
30766    }
30767}
30768impl AstNode for WhenClauseList {
30769    #[inline]
30770    fn can_cast(kind: SyntaxKind) -> bool {
30771        kind == SyntaxKind::WHEN_CLAUSE_LIST
30772    }
30773    #[inline]
30774    fn cast(syntax: SyntaxNode) -> Option<Self> {
30775        if Self::can_cast(syntax.kind()) {
30776            Some(Self { syntax })
30777        } else {
30778            None
30779        }
30780    }
30781    #[inline]
30782    fn syntax(&self) -> &SyntaxNode {
30783        &self.syntax
30784    }
30785}
30786impl AstNode for WhenCondition {
30787    #[inline]
30788    fn can_cast(kind: SyntaxKind) -> bool {
30789        kind == SyntaxKind::WHEN_CONDITION
30790    }
30791    #[inline]
30792    fn cast(syntax: SyntaxNode) -> Option<Self> {
30793        if Self::can_cast(syntax.kind()) {
30794            Some(Self { syntax })
30795        } else {
30796            None
30797        }
30798    }
30799    #[inline]
30800    fn syntax(&self) -> &SyntaxNode {
30801        &self.syntax
30802    }
30803}
30804impl AstNode for WhereClause {
30805    #[inline]
30806    fn can_cast(kind: SyntaxKind) -> bool {
30807        kind == SyntaxKind::WHERE_CLAUSE
30808    }
30809    #[inline]
30810    fn cast(syntax: SyntaxNode) -> Option<Self> {
30811        if Self::can_cast(syntax.kind()) {
30812            Some(Self { syntax })
30813        } else {
30814            None
30815        }
30816    }
30817    #[inline]
30818    fn syntax(&self) -> &SyntaxNode {
30819        &self.syntax
30820    }
30821}
30822impl AstNode for WhereConditionClause {
30823    #[inline]
30824    fn can_cast(kind: SyntaxKind) -> bool {
30825        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
30826    }
30827    #[inline]
30828    fn cast(syntax: SyntaxNode) -> Option<Self> {
30829        if Self::can_cast(syntax.kind()) {
30830            Some(Self { syntax })
30831        } else {
30832            None
30833        }
30834    }
30835    #[inline]
30836    fn syntax(&self) -> &SyntaxNode {
30837        &self.syntax
30838    }
30839}
30840impl AstNode for WhereCurrentOf {
30841    #[inline]
30842    fn can_cast(kind: SyntaxKind) -> bool {
30843        kind == SyntaxKind::WHERE_CURRENT_OF
30844    }
30845    #[inline]
30846    fn cast(syntax: SyntaxNode) -> Option<Self> {
30847        if Self::can_cast(syntax.kind()) {
30848            Some(Self { syntax })
30849        } else {
30850            None
30851        }
30852    }
30853    #[inline]
30854    fn syntax(&self) -> &SyntaxNode {
30855        &self.syntax
30856    }
30857}
30858impl AstNode for WindowClause {
30859    #[inline]
30860    fn can_cast(kind: SyntaxKind) -> bool {
30861        kind == SyntaxKind::WINDOW_CLAUSE
30862    }
30863    #[inline]
30864    fn cast(syntax: SyntaxNode) -> Option<Self> {
30865        if Self::can_cast(syntax.kind()) {
30866            Some(Self { syntax })
30867        } else {
30868            None
30869        }
30870    }
30871    #[inline]
30872    fn syntax(&self) -> &SyntaxNode {
30873        &self.syntax
30874    }
30875}
30876impl AstNode for WindowDef {
30877    #[inline]
30878    fn can_cast(kind: SyntaxKind) -> bool {
30879        kind == SyntaxKind::WINDOW_DEF
30880    }
30881    #[inline]
30882    fn cast(syntax: SyntaxNode) -> Option<Self> {
30883        if Self::can_cast(syntax.kind()) {
30884            Some(Self { syntax })
30885        } else {
30886            None
30887        }
30888    }
30889    #[inline]
30890    fn syntax(&self) -> &SyntaxNode {
30891        &self.syntax
30892    }
30893}
30894impl AstNode for WindowFuncOption {
30895    #[inline]
30896    fn can_cast(kind: SyntaxKind) -> bool {
30897        kind == SyntaxKind::WINDOW_FUNC_OPTION
30898    }
30899    #[inline]
30900    fn cast(syntax: SyntaxNode) -> Option<Self> {
30901        if Self::can_cast(syntax.kind()) {
30902            Some(Self { syntax })
30903        } else {
30904            None
30905        }
30906    }
30907    #[inline]
30908    fn syntax(&self) -> &SyntaxNode {
30909        &self.syntax
30910    }
30911}
30912impl AstNode for WindowSpec {
30913    #[inline]
30914    fn can_cast(kind: SyntaxKind) -> bool {
30915        kind == SyntaxKind::WINDOW_SPEC
30916    }
30917    #[inline]
30918    fn cast(syntax: SyntaxNode) -> Option<Self> {
30919        if Self::can_cast(syntax.kind()) {
30920            Some(Self { syntax })
30921        } else {
30922            None
30923        }
30924    }
30925    #[inline]
30926    fn syntax(&self) -> &SyntaxNode {
30927        &self.syntax
30928    }
30929}
30930impl AstNode for WithCheckExprClause {
30931    #[inline]
30932    fn can_cast(kind: SyntaxKind) -> bool {
30933        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
30934    }
30935    #[inline]
30936    fn cast(syntax: SyntaxNode) -> Option<Self> {
30937        if Self::can_cast(syntax.kind()) {
30938            Some(Self { syntax })
30939        } else {
30940            None
30941        }
30942    }
30943    #[inline]
30944    fn syntax(&self) -> &SyntaxNode {
30945        &self.syntax
30946    }
30947}
30948impl AstNode for WithClause {
30949    #[inline]
30950    fn can_cast(kind: SyntaxKind) -> bool {
30951        kind == SyntaxKind::WITH_CLAUSE
30952    }
30953    #[inline]
30954    fn cast(syntax: SyntaxNode) -> Option<Self> {
30955        if Self::can_cast(syntax.kind()) {
30956            Some(Self { syntax })
30957        } else {
30958            None
30959        }
30960    }
30961    #[inline]
30962    fn syntax(&self) -> &SyntaxNode {
30963        &self.syntax
30964    }
30965}
30966impl AstNode for WithData {
30967    #[inline]
30968    fn can_cast(kind: SyntaxKind) -> bool {
30969        kind == SyntaxKind::WITH_DATA
30970    }
30971    #[inline]
30972    fn cast(syntax: SyntaxNode) -> Option<Self> {
30973        if Self::can_cast(syntax.kind()) {
30974            Some(Self { syntax })
30975        } else {
30976            None
30977        }
30978    }
30979    #[inline]
30980    fn syntax(&self) -> &SyntaxNode {
30981        &self.syntax
30982    }
30983}
30984impl AstNode for WithNoData {
30985    #[inline]
30986    fn can_cast(kind: SyntaxKind) -> bool {
30987        kind == SyntaxKind::WITH_NO_DATA
30988    }
30989    #[inline]
30990    fn cast(syntax: SyntaxNode) -> Option<Self> {
30991        if Self::can_cast(syntax.kind()) {
30992            Some(Self { syntax })
30993        } else {
30994            None
30995        }
30996    }
30997    #[inline]
30998    fn syntax(&self) -> &SyntaxNode {
30999        &self.syntax
31000    }
31001}
31002impl AstNode for WithOptions {
31003    #[inline]
31004    fn can_cast(kind: SyntaxKind) -> bool {
31005        kind == SyntaxKind::WITH_OPTIONS
31006    }
31007    #[inline]
31008    fn cast(syntax: SyntaxNode) -> Option<Self> {
31009        if Self::can_cast(syntax.kind()) {
31010            Some(Self { syntax })
31011        } else {
31012            None
31013        }
31014    }
31015    #[inline]
31016    fn syntax(&self) -> &SyntaxNode {
31017        &self.syntax
31018    }
31019}
31020impl AstNode for WithParams {
31021    #[inline]
31022    fn can_cast(kind: SyntaxKind) -> bool {
31023        kind == SyntaxKind::WITH_PARAMS
31024    }
31025    #[inline]
31026    fn cast(syntax: SyntaxNode) -> Option<Self> {
31027        if Self::can_cast(syntax.kind()) {
31028            Some(Self { syntax })
31029        } else {
31030            None
31031        }
31032    }
31033    #[inline]
31034    fn syntax(&self) -> &SyntaxNode {
31035        &self.syntax
31036    }
31037}
31038impl AstNode for WithTable {
31039    #[inline]
31040    fn can_cast(kind: SyntaxKind) -> bool {
31041        kind == SyntaxKind::WITH_TABLE
31042    }
31043    #[inline]
31044    fn cast(syntax: SyntaxNode) -> Option<Self> {
31045        if Self::can_cast(syntax.kind()) {
31046            Some(Self { syntax })
31047        } else {
31048            None
31049        }
31050    }
31051    #[inline]
31052    fn syntax(&self) -> &SyntaxNode {
31053        &self.syntax
31054    }
31055}
31056impl AstNode for WithTimezone {
31057    #[inline]
31058    fn can_cast(kind: SyntaxKind) -> bool {
31059        kind == SyntaxKind::WITH_TIMEZONE
31060    }
31061    #[inline]
31062    fn cast(syntax: SyntaxNode) -> Option<Self> {
31063        if Self::can_cast(syntax.kind()) {
31064            Some(Self { syntax })
31065        } else {
31066            None
31067        }
31068    }
31069    #[inline]
31070    fn syntax(&self) -> &SyntaxNode {
31071        &self.syntax
31072    }
31073}
31074impl AstNode for WithinClause {
31075    #[inline]
31076    fn can_cast(kind: SyntaxKind) -> bool {
31077        kind == SyntaxKind::WITHIN_CLAUSE
31078    }
31079    #[inline]
31080    fn cast(syntax: SyntaxNode) -> Option<Self> {
31081        if Self::can_cast(syntax.kind()) {
31082            Some(Self { syntax })
31083        } else {
31084            None
31085        }
31086    }
31087    #[inline]
31088    fn syntax(&self) -> &SyntaxNode {
31089        &self.syntax
31090    }
31091}
31092impl AstNode for WithoutOids {
31093    #[inline]
31094    fn can_cast(kind: SyntaxKind) -> bool {
31095        kind == SyntaxKind::WITHOUT_OIDS
31096    }
31097    #[inline]
31098    fn cast(syntax: SyntaxNode) -> Option<Self> {
31099        if Self::can_cast(syntax.kind()) {
31100            Some(Self { syntax })
31101        } else {
31102            None
31103        }
31104    }
31105    #[inline]
31106    fn syntax(&self) -> &SyntaxNode {
31107        &self.syntax
31108    }
31109}
31110impl AstNode for WithoutTimezone {
31111    #[inline]
31112    fn can_cast(kind: SyntaxKind) -> bool {
31113        kind == SyntaxKind::WITHOUT_TIMEZONE
31114    }
31115    #[inline]
31116    fn cast(syntax: SyntaxNode) -> Option<Self> {
31117        if Self::can_cast(syntax.kind()) {
31118            Some(Self { syntax })
31119        } else {
31120            None
31121        }
31122    }
31123    #[inline]
31124    fn syntax(&self) -> &SyntaxNode {
31125        &self.syntax
31126    }
31127}
31128impl AstNode for XmlColumnOption {
31129    #[inline]
31130    fn can_cast(kind: SyntaxKind) -> bool {
31131        kind == SyntaxKind::XML_COLUMN_OPTION
31132    }
31133    #[inline]
31134    fn cast(syntax: SyntaxNode) -> Option<Self> {
31135        if Self::can_cast(syntax.kind()) {
31136            Some(Self { syntax })
31137        } else {
31138            None
31139        }
31140    }
31141    #[inline]
31142    fn syntax(&self) -> &SyntaxNode {
31143        &self.syntax
31144    }
31145}
31146impl AstNode for XmlColumnOptionList {
31147    #[inline]
31148    fn can_cast(kind: SyntaxKind) -> bool {
31149        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
31150    }
31151    #[inline]
31152    fn cast(syntax: SyntaxNode) -> Option<Self> {
31153        if Self::can_cast(syntax.kind()) {
31154            Some(Self { syntax })
31155        } else {
31156            None
31157        }
31158    }
31159    #[inline]
31160    fn syntax(&self) -> &SyntaxNode {
31161        &self.syntax
31162    }
31163}
31164impl AstNode for XmlElementFn {
31165    #[inline]
31166    fn can_cast(kind: SyntaxKind) -> bool {
31167        kind == SyntaxKind::XML_ELEMENT_FN
31168    }
31169    #[inline]
31170    fn cast(syntax: SyntaxNode) -> Option<Self> {
31171        if Self::can_cast(syntax.kind()) {
31172            Some(Self { syntax })
31173        } else {
31174            None
31175        }
31176    }
31177    #[inline]
31178    fn syntax(&self) -> &SyntaxNode {
31179        &self.syntax
31180    }
31181}
31182impl AstNode for XmlExistsFn {
31183    #[inline]
31184    fn can_cast(kind: SyntaxKind) -> bool {
31185        kind == SyntaxKind::XML_EXISTS_FN
31186    }
31187    #[inline]
31188    fn cast(syntax: SyntaxNode) -> Option<Self> {
31189        if Self::can_cast(syntax.kind()) {
31190            Some(Self { syntax })
31191        } else {
31192            None
31193        }
31194    }
31195    #[inline]
31196    fn syntax(&self) -> &SyntaxNode {
31197        &self.syntax
31198    }
31199}
31200impl AstNode for XmlForestFn {
31201    #[inline]
31202    fn can_cast(kind: SyntaxKind) -> bool {
31203        kind == SyntaxKind::XML_FOREST_FN
31204    }
31205    #[inline]
31206    fn cast(syntax: SyntaxNode) -> Option<Self> {
31207        if Self::can_cast(syntax.kind()) {
31208            Some(Self { syntax })
31209        } else {
31210            None
31211        }
31212    }
31213    #[inline]
31214    fn syntax(&self) -> &SyntaxNode {
31215        &self.syntax
31216    }
31217}
31218impl AstNode for XmlNamespace {
31219    #[inline]
31220    fn can_cast(kind: SyntaxKind) -> bool {
31221        kind == SyntaxKind::XML_NAMESPACE
31222    }
31223    #[inline]
31224    fn cast(syntax: SyntaxNode) -> Option<Self> {
31225        if Self::can_cast(syntax.kind()) {
31226            Some(Self { syntax })
31227        } else {
31228            None
31229        }
31230    }
31231    #[inline]
31232    fn syntax(&self) -> &SyntaxNode {
31233        &self.syntax
31234    }
31235}
31236impl AstNode for XmlNamespaceList {
31237    #[inline]
31238    fn can_cast(kind: SyntaxKind) -> bool {
31239        kind == SyntaxKind::XML_NAMESPACE_LIST
31240    }
31241    #[inline]
31242    fn cast(syntax: SyntaxNode) -> Option<Self> {
31243        if Self::can_cast(syntax.kind()) {
31244            Some(Self { syntax })
31245        } else {
31246            None
31247        }
31248    }
31249    #[inline]
31250    fn syntax(&self) -> &SyntaxNode {
31251        &self.syntax
31252    }
31253}
31254impl AstNode for XmlParseFn {
31255    #[inline]
31256    fn can_cast(kind: SyntaxKind) -> bool {
31257        kind == SyntaxKind::XML_PARSE_FN
31258    }
31259    #[inline]
31260    fn cast(syntax: SyntaxNode) -> Option<Self> {
31261        if Self::can_cast(syntax.kind()) {
31262            Some(Self { syntax })
31263        } else {
31264            None
31265        }
31266    }
31267    #[inline]
31268    fn syntax(&self) -> &SyntaxNode {
31269        &self.syntax
31270    }
31271}
31272impl AstNode for XmlPassingMech {
31273    #[inline]
31274    fn can_cast(kind: SyntaxKind) -> bool {
31275        kind == SyntaxKind::XML_PASSING_MECH
31276    }
31277    #[inline]
31278    fn cast(syntax: SyntaxNode) -> Option<Self> {
31279        if Self::can_cast(syntax.kind()) {
31280            Some(Self { syntax })
31281        } else {
31282            None
31283        }
31284    }
31285    #[inline]
31286    fn syntax(&self) -> &SyntaxNode {
31287        &self.syntax
31288    }
31289}
31290impl AstNode for XmlPiFn {
31291    #[inline]
31292    fn can_cast(kind: SyntaxKind) -> bool {
31293        kind == SyntaxKind::XML_PI_FN
31294    }
31295    #[inline]
31296    fn cast(syntax: SyntaxNode) -> Option<Self> {
31297        if Self::can_cast(syntax.kind()) {
31298            Some(Self { syntax })
31299        } else {
31300            None
31301        }
31302    }
31303    #[inline]
31304    fn syntax(&self) -> &SyntaxNode {
31305        &self.syntax
31306    }
31307}
31308impl AstNode for XmlRootFn {
31309    #[inline]
31310    fn can_cast(kind: SyntaxKind) -> bool {
31311        kind == SyntaxKind::XML_ROOT_FN
31312    }
31313    #[inline]
31314    fn cast(syntax: SyntaxNode) -> Option<Self> {
31315        if Self::can_cast(syntax.kind()) {
31316            Some(Self { syntax })
31317        } else {
31318            None
31319        }
31320    }
31321    #[inline]
31322    fn syntax(&self) -> &SyntaxNode {
31323        &self.syntax
31324    }
31325}
31326impl AstNode for XmlRowPassingClause {
31327    #[inline]
31328    fn can_cast(kind: SyntaxKind) -> bool {
31329        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
31330    }
31331    #[inline]
31332    fn cast(syntax: SyntaxNode) -> Option<Self> {
31333        if Self::can_cast(syntax.kind()) {
31334            Some(Self { syntax })
31335        } else {
31336            None
31337        }
31338    }
31339    #[inline]
31340    fn syntax(&self) -> &SyntaxNode {
31341        &self.syntax
31342    }
31343}
31344impl AstNode for XmlSerializeFn {
31345    #[inline]
31346    fn can_cast(kind: SyntaxKind) -> bool {
31347        kind == SyntaxKind::XML_SERIALIZE_FN
31348    }
31349    #[inline]
31350    fn cast(syntax: SyntaxNode) -> Option<Self> {
31351        if Self::can_cast(syntax.kind()) {
31352            Some(Self { syntax })
31353        } else {
31354            None
31355        }
31356    }
31357    #[inline]
31358    fn syntax(&self) -> &SyntaxNode {
31359        &self.syntax
31360    }
31361}
31362impl AstNode for XmlTable {
31363    #[inline]
31364    fn can_cast(kind: SyntaxKind) -> bool {
31365        kind == SyntaxKind::XML_TABLE
31366    }
31367    #[inline]
31368    fn cast(syntax: SyntaxNode) -> Option<Self> {
31369        if Self::can_cast(syntax.kind()) {
31370            Some(Self { syntax })
31371        } else {
31372            None
31373        }
31374    }
31375    #[inline]
31376    fn syntax(&self) -> &SyntaxNode {
31377        &self.syntax
31378    }
31379}
31380impl AstNode for XmlTableColumn {
31381    #[inline]
31382    fn can_cast(kind: SyntaxKind) -> bool {
31383        kind == SyntaxKind::XML_TABLE_COLUMN
31384    }
31385    #[inline]
31386    fn cast(syntax: SyntaxNode) -> Option<Self> {
31387        if Self::can_cast(syntax.kind()) {
31388            Some(Self { syntax })
31389        } else {
31390            None
31391        }
31392    }
31393    #[inline]
31394    fn syntax(&self) -> &SyntaxNode {
31395        &self.syntax
31396    }
31397}
31398impl AstNode for XmlTableColumnList {
31399    #[inline]
31400    fn can_cast(kind: SyntaxKind) -> bool {
31401        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
31402    }
31403    #[inline]
31404    fn cast(syntax: SyntaxNode) -> Option<Self> {
31405        if Self::can_cast(syntax.kind()) {
31406            Some(Self { syntax })
31407        } else {
31408            None
31409        }
31410    }
31411    #[inline]
31412    fn syntax(&self) -> &SyntaxNode {
31413        &self.syntax
31414    }
31415}
31416impl AstNode for AlterColumnOption {
31417    #[inline]
31418    fn can_cast(kind: SyntaxKind) -> bool {
31419        matches!(
31420            kind,
31421            SyntaxKind::ADD_GENERATED
31422                | SyntaxKind::DROP_DEFAULT
31423                | SyntaxKind::DROP_EXPRESSION
31424                | SyntaxKind::DROP_IDENTITY
31425                | SyntaxKind::DROP_NOT_NULL
31426                | SyntaxKind::INHERIT
31427                | SyntaxKind::NO_INHERIT
31428                | SyntaxKind::RESET_OPTIONS
31429                | SyntaxKind::RESTART
31430                | SyntaxKind::SET_COMPRESSION
31431                | SyntaxKind::SET_DEFAULT
31432                | SyntaxKind::SET_EXPRESSION
31433                | SyntaxKind::SET_GENERATED
31434                | SyntaxKind::SET_GENERATED_OPTIONS
31435                | SyntaxKind::SET_NOT_NULL
31436                | SyntaxKind::SET_OPTIONS
31437                | SyntaxKind::SET_OPTIONS_LIST
31438                | SyntaxKind::SET_SEQUENCE_OPTION
31439                | SyntaxKind::SET_STATISTICS
31440                | SyntaxKind::SET_STORAGE
31441                | SyntaxKind::SET_TYPE
31442        )
31443    }
31444    #[inline]
31445    fn cast(syntax: SyntaxNode) -> Option<Self> {
31446        let res = match syntax.kind() {
31447            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
31448            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
31449            SyntaxKind::DROP_EXPRESSION => {
31450                AlterColumnOption::DropExpression(DropExpression { syntax })
31451            }
31452            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
31453            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
31454            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
31455            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
31456            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
31457            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
31458            SyntaxKind::SET_COMPRESSION => {
31459                AlterColumnOption::SetCompression(SetCompression { syntax })
31460            }
31461            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
31462            SyntaxKind::SET_EXPRESSION => {
31463                AlterColumnOption::SetExpression(SetExpression { syntax })
31464            }
31465            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
31466            SyntaxKind::SET_GENERATED_OPTIONS => {
31467                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
31468            }
31469            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
31470            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
31471            SyntaxKind::SET_OPTIONS_LIST => {
31472                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
31473            }
31474            SyntaxKind::SET_SEQUENCE_OPTION => {
31475                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
31476            }
31477            SyntaxKind::SET_STATISTICS => {
31478                AlterColumnOption::SetStatistics(SetStatistics { syntax })
31479            }
31480            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
31481            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
31482            _ => {
31483                return None;
31484            }
31485        };
31486        Some(res)
31487    }
31488    #[inline]
31489    fn syntax(&self) -> &SyntaxNode {
31490        match self {
31491            AlterColumnOption::AddGenerated(it) => &it.syntax,
31492            AlterColumnOption::DropDefault(it) => &it.syntax,
31493            AlterColumnOption::DropExpression(it) => &it.syntax,
31494            AlterColumnOption::DropIdentity(it) => &it.syntax,
31495            AlterColumnOption::DropNotNull(it) => &it.syntax,
31496            AlterColumnOption::Inherit(it) => &it.syntax,
31497            AlterColumnOption::NoInherit(it) => &it.syntax,
31498            AlterColumnOption::ResetOptions(it) => &it.syntax,
31499            AlterColumnOption::Restart(it) => &it.syntax,
31500            AlterColumnOption::SetCompression(it) => &it.syntax,
31501            AlterColumnOption::SetDefault(it) => &it.syntax,
31502            AlterColumnOption::SetExpression(it) => &it.syntax,
31503            AlterColumnOption::SetGenerated(it) => &it.syntax,
31504            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
31505            AlterColumnOption::SetNotNull(it) => &it.syntax,
31506            AlterColumnOption::SetOptions(it) => &it.syntax,
31507            AlterColumnOption::SetOptionsList(it) => &it.syntax,
31508            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
31509            AlterColumnOption::SetStatistics(it) => &it.syntax,
31510            AlterColumnOption::SetStorage(it) => &it.syntax,
31511            AlterColumnOption::SetType(it) => &it.syntax,
31512        }
31513    }
31514}
31515impl From<AddGenerated> for AlterColumnOption {
31516    #[inline]
31517    fn from(node: AddGenerated) -> AlterColumnOption {
31518        AlterColumnOption::AddGenerated(node)
31519    }
31520}
31521impl From<DropDefault> for AlterColumnOption {
31522    #[inline]
31523    fn from(node: DropDefault) -> AlterColumnOption {
31524        AlterColumnOption::DropDefault(node)
31525    }
31526}
31527impl From<DropExpression> for AlterColumnOption {
31528    #[inline]
31529    fn from(node: DropExpression) -> AlterColumnOption {
31530        AlterColumnOption::DropExpression(node)
31531    }
31532}
31533impl From<DropIdentity> for AlterColumnOption {
31534    #[inline]
31535    fn from(node: DropIdentity) -> AlterColumnOption {
31536        AlterColumnOption::DropIdentity(node)
31537    }
31538}
31539impl From<DropNotNull> for AlterColumnOption {
31540    #[inline]
31541    fn from(node: DropNotNull) -> AlterColumnOption {
31542        AlterColumnOption::DropNotNull(node)
31543    }
31544}
31545impl From<Inherit> for AlterColumnOption {
31546    #[inline]
31547    fn from(node: Inherit) -> AlterColumnOption {
31548        AlterColumnOption::Inherit(node)
31549    }
31550}
31551impl From<NoInherit> for AlterColumnOption {
31552    #[inline]
31553    fn from(node: NoInherit) -> AlterColumnOption {
31554        AlterColumnOption::NoInherit(node)
31555    }
31556}
31557impl From<ResetOptions> for AlterColumnOption {
31558    #[inline]
31559    fn from(node: ResetOptions) -> AlterColumnOption {
31560        AlterColumnOption::ResetOptions(node)
31561    }
31562}
31563impl From<Restart> for AlterColumnOption {
31564    #[inline]
31565    fn from(node: Restart) -> AlterColumnOption {
31566        AlterColumnOption::Restart(node)
31567    }
31568}
31569impl From<SetCompression> for AlterColumnOption {
31570    #[inline]
31571    fn from(node: SetCompression) -> AlterColumnOption {
31572        AlterColumnOption::SetCompression(node)
31573    }
31574}
31575impl From<SetDefault> for AlterColumnOption {
31576    #[inline]
31577    fn from(node: SetDefault) -> AlterColumnOption {
31578        AlterColumnOption::SetDefault(node)
31579    }
31580}
31581impl From<SetExpression> for AlterColumnOption {
31582    #[inline]
31583    fn from(node: SetExpression) -> AlterColumnOption {
31584        AlterColumnOption::SetExpression(node)
31585    }
31586}
31587impl From<SetGenerated> for AlterColumnOption {
31588    #[inline]
31589    fn from(node: SetGenerated) -> AlterColumnOption {
31590        AlterColumnOption::SetGenerated(node)
31591    }
31592}
31593impl From<SetGeneratedOptions> for AlterColumnOption {
31594    #[inline]
31595    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
31596        AlterColumnOption::SetGeneratedOptions(node)
31597    }
31598}
31599impl From<SetNotNull> for AlterColumnOption {
31600    #[inline]
31601    fn from(node: SetNotNull) -> AlterColumnOption {
31602        AlterColumnOption::SetNotNull(node)
31603    }
31604}
31605impl From<SetOptions> for AlterColumnOption {
31606    #[inline]
31607    fn from(node: SetOptions) -> AlterColumnOption {
31608        AlterColumnOption::SetOptions(node)
31609    }
31610}
31611impl From<SetOptionsList> for AlterColumnOption {
31612    #[inline]
31613    fn from(node: SetOptionsList) -> AlterColumnOption {
31614        AlterColumnOption::SetOptionsList(node)
31615    }
31616}
31617impl From<SetSequenceOption> for AlterColumnOption {
31618    #[inline]
31619    fn from(node: SetSequenceOption) -> AlterColumnOption {
31620        AlterColumnOption::SetSequenceOption(node)
31621    }
31622}
31623impl From<SetStatistics> for AlterColumnOption {
31624    #[inline]
31625    fn from(node: SetStatistics) -> AlterColumnOption {
31626        AlterColumnOption::SetStatistics(node)
31627    }
31628}
31629impl From<SetStorage> for AlterColumnOption {
31630    #[inline]
31631    fn from(node: SetStorage) -> AlterColumnOption {
31632        AlterColumnOption::SetStorage(node)
31633    }
31634}
31635impl From<SetType> for AlterColumnOption {
31636    #[inline]
31637    fn from(node: SetType) -> AlterColumnOption {
31638        AlterColumnOption::SetType(node)
31639    }
31640}
31641impl AstNode for AlterDomainAction {
31642    #[inline]
31643    fn can_cast(kind: SyntaxKind) -> bool {
31644        matches!(
31645            kind,
31646            SyntaxKind::ADD_CONSTRAINT
31647                | SyntaxKind::DROP_CONSTRAINT
31648                | SyntaxKind::DROP_DEFAULT
31649                | SyntaxKind::DROP_NOT_NULL
31650                | SyntaxKind::OWNER_TO
31651                | SyntaxKind::RENAME_CONSTRAINT
31652                | SyntaxKind::RENAME_TO
31653                | SyntaxKind::SET_DEFAULT
31654                | SyntaxKind::SET_NOT_NULL
31655                | SyntaxKind::SET_SCHEMA
31656                | SyntaxKind::VALIDATE_CONSTRAINT
31657        )
31658    }
31659    #[inline]
31660    fn cast(syntax: SyntaxNode) -> Option<Self> {
31661        let res = match syntax.kind() {
31662            SyntaxKind::ADD_CONSTRAINT => {
31663                AlterDomainAction::AddConstraint(AddConstraint { syntax })
31664            }
31665            SyntaxKind::DROP_CONSTRAINT => {
31666                AlterDomainAction::DropConstraint(DropConstraint { syntax })
31667            }
31668            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
31669            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
31670            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
31671            SyntaxKind::RENAME_CONSTRAINT => {
31672                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
31673            }
31674            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
31675            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
31676            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
31677            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
31678            SyntaxKind::VALIDATE_CONSTRAINT => {
31679                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
31680            }
31681            _ => {
31682                return None;
31683            }
31684        };
31685        Some(res)
31686    }
31687    #[inline]
31688    fn syntax(&self) -> &SyntaxNode {
31689        match self {
31690            AlterDomainAction::AddConstraint(it) => &it.syntax,
31691            AlterDomainAction::DropConstraint(it) => &it.syntax,
31692            AlterDomainAction::DropDefault(it) => &it.syntax,
31693            AlterDomainAction::DropNotNull(it) => &it.syntax,
31694            AlterDomainAction::OwnerTo(it) => &it.syntax,
31695            AlterDomainAction::RenameConstraint(it) => &it.syntax,
31696            AlterDomainAction::RenameTo(it) => &it.syntax,
31697            AlterDomainAction::SetDefault(it) => &it.syntax,
31698            AlterDomainAction::SetNotNull(it) => &it.syntax,
31699            AlterDomainAction::SetSchema(it) => &it.syntax,
31700            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
31701        }
31702    }
31703}
31704impl From<AddConstraint> for AlterDomainAction {
31705    #[inline]
31706    fn from(node: AddConstraint) -> AlterDomainAction {
31707        AlterDomainAction::AddConstraint(node)
31708    }
31709}
31710impl From<DropConstraint> for AlterDomainAction {
31711    #[inline]
31712    fn from(node: DropConstraint) -> AlterDomainAction {
31713        AlterDomainAction::DropConstraint(node)
31714    }
31715}
31716impl From<DropDefault> for AlterDomainAction {
31717    #[inline]
31718    fn from(node: DropDefault) -> AlterDomainAction {
31719        AlterDomainAction::DropDefault(node)
31720    }
31721}
31722impl From<DropNotNull> for AlterDomainAction {
31723    #[inline]
31724    fn from(node: DropNotNull) -> AlterDomainAction {
31725        AlterDomainAction::DropNotNull(node)
31726    }
31727}
31728impl From<OwnerTo> for AlterDomainAction {
31729    #[inline]
31730    fn from(node: OwnerTo) -> AlterDomainAction {
31731        AlterDomainAction::OwnerTo(node)
31732    }
31733}
31734impl From<RenameConstraint> for AlterDomainAction {
31735    #[inline]
31736    fn from(node: RenameConstraint) -> AlterDomainAction {
31737        AlterDomainAction::RenameConstraint(node)
31738    }
31739}
31740impl From<RenameTo> for AlterDomainAction {
31741    #[inline]
31742    fn from(node: RenameTo) -> AlterDomainAction {
31743        AlterDomainAction::RenameTo(node)
31744    }
31745}
31746impl From<SetDefault> for AlterDomainAction {
31747    #[inline]
31748    fn from(node: SetDefault) -> AlterDomainAction {
31749        AlterDomainAction::SetDefault(node)
31750    }
31751}
31752impl From<SetNotNull> for AlterDomainAction {
31753    #[inline]
31754    fn from(node: SetNotNull) -> AlterDomainAction {
31755        AlterDomainAction::SetNotNull(node)
31756    }
31757}
31758impl From<SetSchema> for AlterDomainAction {
31759    #[inline]
31760    fn from(node: SetSchema) -> AlterDomainAction {
31761        AlterDomainAction::SetSchema(node)
31762    }
31763}
31764impl From<ValidateConstraint> for AlterDomainAction {
31765    #[inline]
31766    fn from(node: ValidateConstraint) -> AlterDomainAction {
31767        AlterDomainAction::ValidateConstraint(node)
31768    }
31769}
31770impl AstNode for AlterIndexAction {
31771    #[inline]
31772    fn can_cast(kind: SyntaxKind) -> bool {
31773        matches!(
31774            kind,
31775            SyntaxKind::ALTER_SET_STATISTICS
31776                | SyntaxKind::ATTACH_PARTITION
31777                | SyntaxKind::DEPENDS_ON_EXTENSION
31778                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31779                | SyntaxKind::RENAME_TO
31780                | SyntaxKind::RESET_OPTIONS
31781                | SyntaxKind::SET_OPTIONS
31782                | SyntaxKind::SET_TABLESPACE
31783        )
31784    }
31785    #[inline]
31786    fn cast(syntax: SyntaxNode) -> Option<Self> {
31787        let res = match syntax.kind() {
31788            SyntaxKind::ALTER_SET_STATISTICS => {
31789                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
31790            }
31791            SyntaxKind::ATTACH_PARTITION => {
31792                AlterIndexAction::AttachPartition(AttachPartition { syntax })
31793            }
31794            SyntaxKind::DEPENDS_ON_EXTENSION => {
31795                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
31796            }
31797            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31798                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31799            }
31800            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
31801            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
31802            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
31803            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
31804            _ => {
31805                return None;
31806            }
31807        };
31808        Some(res)
31809    }
31810    #[inline]
31811    fn syntax(&self) -> &SyntaxNode {
31812        match self {
31813            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
31814            AlterIndexAction::AttachPartition(it) => &it.syntax,
31815            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
31816            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
31817            AlterIndexAction::RenameTo(it) => &it.syntax,
31818            AlterIndexAction::ResetOptions(it) => &it.syntax,
31819            AlterIndexAction::SetOptions(it) => &it.syntax,
31820            AlterIndexAction::SetTablespace(it) => &it.syntax,
31821        }
31822    }
31823}
31824impl From<AlterSetStatistics> for AlterIndexAction {
31825    #[inline]
31826    fn from(node: AlterSetStatistics) -> AlterIndexAction {
31827        AlterIndexAction::AlterSetStatistics(node)
31828    }
31829}
31830impl From<AttachPartition> for AlterIndexAction {
31831    #[inline]
31832    fn from(node: AttachPartition) -> AlterIndexAction {
31833        AlterIndexAction::AttachPartition(node)
31834    }
31835}
31836impl From<DependsOnExtension> for AlterIndexAction {
31837    #[inline]
31838    fn from(node: DependsOnExtension) -> AlterIndexAction {
31839        AlterIndexAction::DependsOnExtension(node)
31840    }
31841}
31842impl From<NoDependsOnExtension> for AlterIndexAction {
31843    #[inline]
31844    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
31845        AlterIndexAction::NoDependsOnExtension(node)
31846    }
31847}
31848impl From<RenameTo> for AlterIndexAction {
31849    #[inline]
31850    fn from(node: RenameTo) -> AlterIndexAction {
31851        AlterIndexAction::RenameTo(node)
31852    }
31853}
31854impl From<ResetOptions> for AlterIndexAction {
31855    #[inline]
31856    fn from(node: ResetOptions) -> AlterIndexAction {
31857        AlterIndexAction::ResetOptions(node)
31858    }
31859}
31860impl From<SetOptions> for AlterIndexAction {
31861    #[inline]
31862    fn from(node: SetOptions) -> AlterIndexAction {
31863        AlterIndexAction::SetOptions(node)
31864    }
31865}
31866impl From<SetTablespace> for AlterIndexAction {
31867    #[inline]
31868    fn from(node: SetTablespace) -> AlterIndexAction {
31869        AlterIndexAction::SetTablespace(node)
31870    }
31871}
31872impl AstNode for AlterMaterializedViewAction {
31873    #[inline]
31874    fn can_cast(kind: SyntaxKind) -> bool {
31875        matches!(
31876            kind,
31877            SyntaxKind::DEPENDS_ON_EXTENSION
31878                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31879                | SyntaxKind::RENAME_COLUMN
31880                | SyntaxKind::RENAME_TO
31881                | SyntaxKind::SET_SCHEMA
31882        )
31883    }
31884    #[inline]
31885    fn cast(syntax: SyntaxNode) -> Option<Self> {
31886        let res = match syntax.kind() {
31887            SyntaxKind::DEPENDS_ON_EXTENSION => {
31888                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
31889            }
31890            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31891                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31892            }
31893            SyntaxKind::RENAME_COLUMN => {
31894                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
31895            }
31896            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
31897            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
31898            _ => {
31899                if let Some(result) = AlterTableAction::cast(syntax) {
31900                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
31901                }
31902                return None;
31903            }
31904        };
31905        Some(res)
31906    }
31907    #[inline]
31908    fn syntax(&self) -> &SyntaxNode {
31909        match self {
31910            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
31911            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
31912            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
31913            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
31914            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
31915            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
31916        }
31917    }
31918}
31919impl From<DependsOnExtension> for AlterMaterializedViewAction {
31920    #[inline]
31921    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
31922        AlterMaterializedViewAction::DependsOnExtension(node)
31923    }
31924}
31925impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
31926    #[inline]
31927    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
31928        AlterMaterializedViewAction::NoDependsOnExtension(node)
31929    }
31930}
31931impl From<RenameColumn> for AlterMaterializedViewAction {
31932    #[inline]
31933    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
31934        AlterMaterializedViewAction::RenameColumn(node)
31935    }
31936}
31937impl From<RenameTo> for AlterMaterializedViewAction {
31938    #[inline]
31939    fn from(node: RenameTo) -> AlterMaterializedViewAction {
31940        AlterMaterializedViewAction::RenameTo(node)
31941    }
31942}
31943impl From<SetSchema> for AlterMaterializedViewAction {
31944    #[inline]
31945    fn from(node: SetSchema) -> AlterMaterializedViewAction {
31946        AlterMaterializedViewAction::SetSchema(node)
31947    }
31948}
31949impl AstNode for AlterPropertyGraphAction {
31950    #[inline]
31951    fn can_cast(kind: SyntaxKind) -> bool {
31952        matches!(
31953            kind,
31954            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
31955                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
31956                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
31957                | SyntaxKind::DROP_EDGE_TABLES
31958                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
31959                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
31960                | SyntaxKind::DROP_VERTEX_TABLES
31961                | SyntaxKind::OWNER_TO
31962                | SyntaxKind::RENAME_TO
31963                | SyntaxKind::SET_SCHEMA
31964        )
31965    }
31966    #[inline]
31967    fn cast(syntax: SyntaxNode) -> Option<Self> {
31968        let res = match syntax.kind() {
31969            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
31970                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
31971                    AddVertexEdgeLabelProperties { syntax },
31972                )
31973            }
31974            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
31975                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
31976            }
31977            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
31978                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
31979            }
31980            SyntaxKind::DROP_EDGE_TABLES => {
31981                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
31982            }
31983            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
31984                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
31985            }
31986            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
31987                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
31988                    DropVertexEdgeLabelProperties { syntax },
31989                )
31990            }
31991            SyntaxKind::DROP_VERTEX_TABLES => {
31992                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
31993            }
31994            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
31995            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
31996            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
31997            _ => {
31998                return None;
31999            }
32000        };
32001        Some(res)
32002    }
32003    #[inline]
32004    fn syntax(&self) -> &SyntaxNode {
32005        match self {
32006            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
32007            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
32008            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
32009            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
32010            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
32011            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
32012            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
32013            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
32014            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
32015            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
32016        }
32017    }
32018}
32019impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32020    #[inline]
32021    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32022        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
32023    }
32024}
32025impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
32026    #[inline]
32027    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
32028        AlterPropertyGraphAction::AddVertexEdgeTables(node)
32029    }
32030}
32031impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
32032    #[inline]
32033    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
32034        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
32035    }
32036}
32037impl From<DropEdgeTables> for AlterPropertyGraphAction {
32038    #[inline]
32039    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
32040        AlterPropertyGraphAction::DropEdgeTables(node)
32041    }
32042}
32043impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
32044    #[inline]
32045    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
32046        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
32047    }
32048}
32049impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32050    #[inline]
32051    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32052        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
32053    }
32054}
32055impl From<DropVertexTables> for AlterPropertyGraphAction {
32056    #[inline]
32057    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
32058        AlterPropertyGraphAction::DropVertexTables(node)
32059    }
32060}
32061impl From<OwnerTo> for AlterPropertyGraphAction {
32062    #[inline]
32063    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
32064        AlterPropertyGraphAction::OwnerTo(node)
32065    }
32066}
32067impl From<RenameTo> for AlterPropertyGraphAction {
32068    #[inline]
32069    fn from(node: RenameTo) -> AlterPropertyGraphAction {
32070        AlterPropertyGraphAction::RenameTo(node)
32071    }
32072}
32073impl From<SetSchema> for AlterPropertyGraphAction {
32074    #[inline]
32075    fn from(node: SetSchema) -> AlterPropertyGraphAction {
32076        AlterPropertyGraphAction::SetSchema(node)
32077    }
32078}
32079impl AstNode for AlterTableAction {
32080    #[inline]
32081    fn can_cast(kind: SyntaxKind) -> bool {
32082        matches!(
32083            kind,
32084            SyntaxKind::ADD_COLUMN
32085                | SyntaxKind::ADD_CONSTRAINT
32086                | SyntaxKind::ALTER_COLUMN
32087                | SyntaxKind::ALTER_CONSTRAINT
32088                | SyntaxKind::ATTACH_PARTITION
32089                | SyntaxKind::CLUSTER_ON
32090                | SyntaxKind::DETACH_PARTITION
32091                | SyntaxKind::DISABLE_RLS
32092                | SyntaxKind::DISABLE_RULE
32093                | SyntaxKind::DISABLE_TRIGGER
32094                | SyntaxKind::DROP_COLUMN
32095                | SyntaxKind::DROP_CONSTRAINT
32096                | SyntaxKind::ENABLE_ALWAYS_RULE
32097                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
32098                | SyntaxKind::ENABLE_REPLICA_RULE
32099                | SyntaxKind::ENABLE_REPLICA_TRIGGER
32100                | SyntaxKind::ENABLE_RLS
32101                | SyntaxKind::ENABLE_RULE
32102                | SyntaxKind::ENABLE_TRIGGER
32103                | SyntaxKind::FORCE_RLS
32104                | SyntaxKind::INHERIT_TABLE
32105                | SyntaxKind::MERGE_PARTITIONS
32106                | SyntaxKind::NO_FORCE_RLS
32107                | SyntaxKind::NO_INHERIT_TABLE
32108                | SyntaxKind::NOT_OF
32109                | SyntaxKind::OF_TYPE
32110                | SyntaxKind::OPTION_ITEM_LIST
32111                | SyntaxKind::OWNER_TO
32112                | SyntaxKind::RENAME_COLUMN
32113                | SyntaxKind::RENAME_CONSTRAINT
32114                | SyntaxKind::RENAME_TO
32115                | SyntaxKind::REPLICA_IDENTITY
32116                | SyntaxKind::RESET_OPTIONS
32117                | SyntaxKind::SET_ACCESS_METHOD
32118                | SyntaxKind::SET_LOGGED
32119                | SyntaxKind::SET_OPTIONS
32120                | SyntaxKind::SET_SCHEMA
32121                | SyntaxKind::SET_TABLESPACE
32122                | SyntaxKind::SET_UNLOGGED
32123                | SyntaxKind::SET_WITHOUT_CLUSTER
32124                | SyntaxKind::SET_WITHOUT_OIDS
32125                | SyntaxKind::SPLIT_PARTITION
32126                | SyntaxKind::VALIDATE_CONSTRAINT
32127        )
32128    }
32129    #[inline]
32130    fn cast(syntax: SyntaxNode) -> Option<Self> {
32131        let res = match syntax.kind() {
32132            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
32133            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
32134            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
32135            SyntaxKind::ALTER_CONSTRAINT => {
32136                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
32137            }
32138            SyntaxKind::ATTACH_PARTITION => {
32139                AlterTableAction::AttachPartition(AttachPartition { syntax })
32140            }
32141            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
32142            SyntaxKind::DETACH_PARTITION => {
32143                AlterTableAction::DetachPartition(DetachPartition { syntax })
32144            }
32145            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
32146            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
32147            SyntaxKind::DISABLE_TRIGGER => {
32148                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
32149            }
32150            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
32151            SyntaxKind::DROP_CONSTRAINT => {
32152                AlterTableAction::DropConstraint(DropConstraint { syntax })
32153            }
32154            SyntaxKind::ENABLE_ALWAYS_RULE => {
32155                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
32156            }
32157            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
32158                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
32159            }
32160            SyntaxKind::ENABLE_REPLICA_RULE => {
32161                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
32162            }
32163            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
32164                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
32165            }
32166            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
32167            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
32168            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
32169            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
32170            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
32171            SyntaxKind::MERGE_PARTITIONS => {
32172                AlterTableAction::MergePartitions(MergePartitions { syntax })
32173            }
32174            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
32175            SyntaxKind::NO_INHERIT_TABLE => {
32176                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
32177            }
32178            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
32179            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
32180            SyntaxKind::OPTION_ITEM_LIST => {
32181                AlterTableAction::OptionItemList(OptionItemList { syntax })
32182            }
32183            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
32184            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
32185            SyntaxKind::RENAME_CONSTRAINT => {
32186                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
32187            }
32188            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
32189            SyntaxKind::REPLICA_IDENTITY => {
32190                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
32191            }
32192            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
32193            SyntaxKind::SET_ACCESS_METHOD => {
32194                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
32195            }
32196            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
32197            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
32198            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
32199            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
32200            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
32201            SyntaxKind::SET_WITHOUT_CLUSTER => {
32202                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
32203            }
32204            SyntaxKind::SET_WITHOUT_OIDS => {
32205                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
32206            }
32207            SyntaxKind::SPLIT_PARTITION => {
32208                AlterTableAction::SplitPartition(SplitPartition { syntax })
32209            }
32210            SyntaxKind::VALIDATE_CONSTRAINT => {
32211                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
32212            }
32213            _ => {
32214                return None;
32215            }
32216        };
32217        Some(res)
32218    }
32219    #[inline]
32220    fn syntax(&self) -> &SyntaxNode {
32221        match self {
32222            AlterTableAction::AddColumn(it) => &it.syntax,
32223            AlterTableAction::AddConstraint(it) => &it.syntax,
32224            AlterTableAction::AlterColumn(it) => &it.syntax,
32225            AlterTableAction::AlterConstraint(it) => &it.syntax,
32226            AlterTableAction::AttachPartition(it) => &it.syntax,
32227            AlterTableAction::ClusterOn(it) => &it.syntax,
32228            AlterTableAction::DetachPartition(it) => &it.syntax,
32229            AlterTableAction::DisableRls(it) => &it.syntax,
32230            AlterTableAction::DisableRule(it) => &it.syntax,
32231            AlterTableAction::DisableTrigger(it) => &it.syntax,
32232            AlterTableAction::DropColumn(it) => &it.syntax,
32233            AlterTableAction::DropConstraint(it) => &it.syntax,
32234            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
32235            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
32236            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
32237            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
32238            AlterTableAction::EnableRls(it) => &it.syntax,
32239            AlterTableAction::EnableRule(it) => &it.syntax,
32240            AlterTableAction::EnableTrigger(it) => &it.syntax,
32241            AlterTableAction::ForceRls(it) => &it.syntax,
32242            AlterTableAction::InheritTable(it) => &it.syntax,
32243            AlterTableAction::MergePartitions(it) => &it.syntax,
32244            AlterTableAction::NoForceRls(it) => &it.syntax,
32245            AlterTableAction::NoInheritTable(it) => &it.syntax,
32246            AlterTableAction::NotOf(it) => &it.syntax,
32247            AlterTableAction::OfType(it) => &it.syntax,
32248            AlterTableAction::OptionItemList(it) => &it.syntax,
32249            AlterTableAction::OwnerTo(it) => &it.syntax,
32250            AlterTableAction::RenameColumn(it) => &it.syntax,
32251            AlterTableAction::RenameConstraint(it) => &it.syntax,
32252            AlterTableAction::RenameTo(it) => &it.syntax,
32253            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
32254            AlterTableAction::ResetOptions(it) => &it.syntax,
32255            AlterTableAction::SetAccessMethod(it) => &it.syntax,
32256            AlterTableAction::SetLogged(it) => &it.syntax,
32257            AlterTableAction::SetOptions(it) => &it.syntax,
32258            AlterTableAction::SetSchema(it) => &it.syntax,
32259            AlterTableAction::SetTablespace(it) => &it.syntax,
32260            AlterTableAction::SetUnlogged(it) => &it.syntax,
32261            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
32262            AlterTableAction::SetWithoutOids(it) => &it.syntax,
32263            AlterTableAction::SplitPartition(it) => &it.syntax,
32264            AlterTableAction::ValidateConstraint(it) => &it.syntax,
32265        }
32266    }
32267}
32268impl From<AddColumn> for AlterTableAction {
32269    #[inline]
32270    fn from(node: AddColumn) -> AlterTableAction {
32271        AlterTableAction::AddColumn(node)
32272    }
32273}
32274impl From<AddConstraint> for AlterTableAction {
32275    #[inline]
32276    fn from(node: AddConstraint) -> AlterTableAction {
32277        AlterTableAction::AddConstraint(node)
32278    }
32279}
32280impl From<AlterColumn> for AlterTableAction {
32281    #[inline]
32282    fn from(node: AlterColumn) -> AlterTableAction {
32283        AlterTableAction::AlterColumn(node)
32284    }
32285}
32286impl From<AlterConstraint> for AlterTableAction {
32287    #[inline]
32288    fn from(node: AlterConstraint) -> AlterTableAction {
32289        AlterTableAction::AlterConstraint(node)
32290    }
32291}
32292impl From<AttachPartition> for AlterTableAction {
32293    #[inline]
32294    fn from(node: AttachPartition) -> AlterTableAction {
32295        AlterTableAction::AttachPartition(node)
32296    }
32297}
32298impl From<ClusterOn> for AlterTableAction {
32299    #[inline]
32300    fn from(node: ClusterOn) -> AlterTableAction {
32301        AlterTableAction::ClusterOn(node)
32302    }
32303}
32304impl From<DetachPartition> for AlterTableAction {
32305    #[inline]
32306    fn from(node: DetachPartition) -> AlterTableAction {
32307        AlterTableAction::DetachPartition(node)
32308    }
32309}
32310impl From<DisableRls> for AlterTableAction {
32311    #[inline]
32312    fn from(node: DisableRls) -> AlterTableAction {
32313        AlterTableAction::DisableRls(node)
32314    }
32315}
32316impl From<DisableRule> for AlterTableAction {
32317    #[inline]
32318    fn from(node: DisableRule) -> AlterTableAction {
32319        AlterTableAction::DisableRule(node)
32320    }
32321}
32322impl From<DisableTrigger> for AlterTableAction {
32323    #[inline]
32324    fn from(node: DisableTrigger) -> AlterTableAction {
32325        AlterTableAction::DisableTrigger(node)
32326    }
32327}
32328impl From<DropColumn> for AlterTableAction {
32329    #[inline]
32330    fn from(node: DropColumn) -> AlterTableAction {
32331        AlterTableAction::DropColumn(node)
32332    }
32333}
32334impl From<DropConstraint> for AlterTableAction {
32335    #[inline]
32336    fn from(node: DropConstraint) -> AlterTableAction {
32337        AlterTableAction::DropConstraint(node)
32338    }
32339}
32340impl From<EnableAlwaysRule> for AlterTableAction {
32341    #[inline]
32342    fn from(node: EnableAlwaysRule) -> AlterTableAction {
32343        AlterTableAction::EnableAlwaysRule(node)
32344    }
32345}
32346impl From<EnableAlwaysTrigger> for AlterTableAction {
32347    #[inline]
32348    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
32349        AlterTableAction::EnableAlwaysTrigger(node)
32350    }
32351}
32352impl From<EnableReplicaRule> for AlterTableAction {
32353    #[inline]
32354    fn from(node: EnableReplicaRule) -> AlterTableAction {
32355        AlterTableAction::EnableReplicaRule(node)
32356    }
32357}
32358impl From<EnableReplicaTrigger> for AlterTableAction {
32359    #[inline]
32360    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
32361        AlterTableAction::EnableReplicaTrigger(node)
32362    }
32363}
32364impl From<EnableRls> for AlterTableAction {
32365    #[inline]
32366    fn from(node: EnableRls) -> AlterTableAction {
32367        AlterTableAction::EnableRls(node)
32368    }
32369}
32370impl From<EnableRule> for AlterTableAction {
32371    #[inline]
32372    fn from(node: EnableRule) -> AlterTableAction {
32373        AlterTableAction::EnableRule(node)
32374    }
32375}
32376impl From<EnableTrigger> for AlterTableAction {
32377    #[inline]
32378    fn from(node: EnableTrigger) -> AlterTableAction {
32379        AlterTableAction::EnableTrigger(node)
32380    }
32381}
32382impl From<ForceRls> for AlterTableAction {
32383    #[inline]
32384    fn from(node: ForceRls) -> AlterTableAction {
32385        AlterTableAction::ForceRls(node)
32386    }
32387}
32388impl From<InheritTable> for AlterTableAction {
32389    #[inline]
32390    fn from(node: InheritTable) -> AlterTableAction {
32391        AlterTableAction::InheritTable(node)
32392    }
32393}
32394impl From<MergePartitions> for AlterTableAction {
32395    #[inline]
32396    fn from(node: MergePartitions) -> AlterTableAction {
32397        AlterTableAction::MergePartitions(node)
32398    }
32399}
32400impl From<NoForceRls> for AlterTableAction {
32401    #[inline]
32402    fn from(node: NoForceRls) -> AlterTableAction {
32403        AlterTableAction::NoForceRls(node)
32404    }
32405}
32406impl From<NoInheritTable> for AlterTableAction {
32407    #[inline]
32408    fn from(node: NoInheritTable) -> AlterTableAction {
32409        AlterTableAction::NoInheritTable(node)
32410    }
32411}
32412impl From<NotOf> for AlterTableAction {
32413    #[inline]
32414    fn from(node: NotOf) -> AlterTableAction {
32415        AlterTableAction::NotOf(node)
32416    }
32417}
32418impl From<OfType> for AlterTableAction {
32419    #[inline]
32420    fn from(node: OfType) -> AlterTableAction {
32421        AlterTableAction::OfType(node)
32422    }
32423}
32424impl From<OptionItemList> for AlterTableAction {
32425    #[inline]
32426    fn from(node: OptionItemList) -> AlterTableAction {
32427        AlterTableAction::OptionItemList(node)
32428    }
32429}
32430impl From<OwnerTo> for AlterTableAction {
32431    #[inline]
32432    fn from(node: OwnerTo) -> AlterTableAction {
32433        AlterTableAction::OwnerTo(node)
32434    }
32435}
32436impl From<RenameColumn> for AlterTableAction {
32437    #[inline]
32438    fn from(node: RenameColumn) -> AlterTableAction {
32439        AlterTableAction::RenameColumn(node)
32440    }
32441}
32442impl From<RenameConstraint> for AlterTableAction {
32443    #[inline]
32444    fn from(node: RenameConstraint) -> AlterTableAction {
32445        AlterTableAction::RenameConstraint(node)
32446    }
32447}
32448impl From<RenameTo> for AlterTableAction {
32449    #[inline]
32450    fn from(node: RenameTo) -> AlterTableAction {
32451        AlterTableAction::RenameTo(node)
32452    }
32453}
32454impl From<ReplicaIdentity> for AlterTableAction {
32455    #[inline]
32456    fn from(node: ReplicaIdentity) -> AlterTableAction {
32457        AlterTableAction::ReplicaIdentity(node)
32458    }
32459}
32460impl From<ResetOptions> for AlterTableAction {
32461    #[inline]
32462    fn from(node: ResetOptions) -> AlterTableAction {
32463        AlterTableAction::ResetOptions(node)
32464    }
32465}
32466impl From<SetAccessMethod> for AlterTableAction {
32467    #[inline]
32468    fn from(node: SetAccessMethod) -> AlterTableAction {
32469        AlterTableAction::SetAccessMethod(node)
32470    }
32471}
32472impl From<SetLogged> for AlterTableAction {
32473    #[inline]
32474    fn from(node: SetLogged) -> AlterTableAction {
32475        AlterTableAction::SetLogged(node)
32476    }
32477}
32478impl From<SetOptions> for AlterTableAction {
32479    #[inline]
32480    fn from(node: SetOptions) -> AlterTableAction {
32481        AlterTableAction::SetOptions(node)
32482    }
32483}
32484impl From<SetSchema> for AlterTableAction {
32485    #[inline]
32486    fn from(node: SetSchema) -> AlterTableAction {
32487        AlterTableAction::SetSchema(node)
32488    }
32489}
32490impl From<SetTablespace> for AlterTableAction {
32491    #[inline]
32492    fn from(node: SetTablespace) -> AlterTableAction {
32493        AlterTableAction::SetTablespace(node)
32494    }
32495}
32496impl From<SetUnlogged> for AlterTableAction {
32497    #[inline]
32498    fn from(node: SetUnlogged) -> AlterTableAction {
32499        AlterTableAction::SetUnlogged(node)
32500    }
32501}
32502impl From<SetWithoutCluster> for AlterTableAction {
32503    #[inline]
32504    fn from(node: SetWithoutCluster) -> AlterTableAction {
32505        AlterTableAction::SetWithoutCluster(node)
32506    }
32507}
32508impl From<SetWithoutOids> for AlterTableAction {
32509    #[inline]
32510    fn from(node: SetWithoutOids) -> AlterTableAction {
32511        AlterTableAction::SetWithoutOids(node)
32512    }
32513}
32514impl From<SplitPartition> for AlterTableAction {
32515    #[inline]
32516    fn from(node: SplitPartition) -> AlterTableAction {
32517        AlterTableAction::SplitPartition(node)
32518    }
32519}
32520impl From<ValidateConstraint> for AlterTableAction {
32521    #[inline]
32522    fn from(node: ValidateConstraint) -> AlterTableAction {
32523        AlterTableAction::ValidateConstraint(node)
32524    }
32525}
32526impl AstNode for AlterTypeAction {
32527    #[inline]
32528    fn can_cast(kind: SyntaxKind) -> bool {
32529        matches!(
32530            kind,
32531            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
32532        )
32533    }
32534    #[inline]
32535    fn cast(syntax: SyntaxNode) -> Option<Self> {
32536        let res = match syntax.kind() {
32537            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
32538            SyntaxKind::ALTER_ATTRIBUTE => {
32539                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
32540            }
32541            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
32542            _ => {
32543                return None;
32544            }
32545        };
32546        Some(res)
32547    }
32548    #[inline]
32549    fn syntax(&self) -> &SyntaxNode {
32550        match self {
32551            AlterTypeAction::AddAttribute(it) => &it.syntax,
32552            AlterTypeAction::AlterAttribute(it) => &it.syntax,
32553            AlterTypeAction::DropAttribute(it) => &it.syntax,
32554        }
32555    }
32556}
32557impl From<AddAttribute> for AlterTypeAction {
32558    #[inline]
32559    fn from(node: AddAttribute) -> AlterTypeAction {
32560        AlterTypeAction::AddAttribute(node)
32561    }
32562}
32563impl From<AlterAttribute> for AlterTypeAction {
32564    #[inline]
32565    fn from(node: AlterAttribute) -> AlterTypeAction {
32566        AlterTypeAction::AlterAttribute(node)
32567    }
32568}
32569impl From<DropAttribute> for AlterTypeAction {
32570    #[inline]
32571    fn from(node: DropAttribute) -> AlterTypeAction {
32572        AlterTypeAction::DropAttribute(node)
32573    }
32574}
32575impl AstNode for ColumnConstraint {
32576    #[inline]
32577    fn can_cast(kind: SyntaxKind) -> bool {
32578        matches!(
32579            kind,
32580            SyntaxKind::CHECK_CONSTRAINT
32581                | SyntaxKind::DEFAULT_CONSTRAINT
32582                | SyntaxKind::EXCLUDE_CONSTRAINT
32583                | SyntaxKind::NOT_NULL_CONSTRAINT
32584                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32585                | SyntaxKind::REFERENCES_CONSTRAINT
32586                | SyntaxKind::UNIQUE_CONSTRAINT
32587        )
32588    }
32589    #[inline]
32590    fn cast(syntax: SyntaxNode) -> Option<Self> {
32591        let res = match syntax.kind() {
32592            SyntaxKind::CHECK_CONSTRAINT => {
32593                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
32594            }
32595            SyntaxKind::DEFAULT_CONSTRAINT => {
32596                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
32597            }
32598            SyntaxKind::EXCLUDE_CONSTRAINT => {
32599                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32600            }
32601            SyntaxKind::NOT_NULL_CONSTRAINT => {
32602                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
32603            }
32604            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32605                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32606            }
32607            SyntaxKind::REFERENCES_CONSTRAINT => {
32608                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
32609            }
32610            SyntaxKind::UNIQUE_CONSTRAINT => {
32611                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
32612            }
32613            _ => {
32614                return None;
32615            }
32616        };
32617        Some(res)
32618    }
32619    #[inline]
32620    fn syntax(&self) -> &SyntaxNode {
32621        match self {
32622            ColumnConstraint::CheckConstraint(it) => &it.syntax,
32623            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
32624            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
32625            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
32626            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32627            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
32628            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
32629        }
32630    }
32631}
32632impl From<CheckConstraint> for ColumnConstraint {
32633    #[inline]
32634    fn from(node: CheckConstraint) -> ColumnConstraint {
32635        ColumnConstraint::CheckConstraint(node)
32636    }
32637}
32638impl From<DefaultConstraint> for ColumnConstraint {
32639    #[inline]
32640    fn from(node: DefaultConstraint) -> ColumnConstraint {
32641        ColumnConstraint::DefaultConstraint(node)
32642    }
32643}
32644impl From<ExcludeConstraint> for ColumnConstraint {
32645    #[inline]
32646    fn from(node: ExcludeConstraint) -> ColumnConstraint {
32647        ColumnConstraint::ExcludeConstraint(node)
32648    }
32649}
32650impl From<NotNullConstraint> for ColumnConstraint {
32651    #[inline]
32652    fn from(node: NotNullConstraint) -> ColumnConstraint {
32653        ColumnConstraint::NotNullConstraint(node)
32654    }
32655}
32656impl From<PrimaryKeyConstraint> for ColumnConstraint {
32657    #[inline]
32658    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
32659        ColumnConstraint::PrimaryKeyConstraint(node)
32660    }
32661}
32662impl From<ReferencesConstraint> for ColumnConstraint {
32663    #[inline]
32664    fn from(node: ReferencesConstraint) -> ColumnConstraint {
32665        ColumnConstraint::ReferencesConstraint(node)
32666    }
32667}
32668impl From<UniqueConstraint> for ColumnConstraint {
32669    #[inline]
32670    fn from(node: UniqueConstraint) -> ColumnConstraint {
32671        ColumnConstraint::UniqueConstraint(node)
32672    }
32673}
32674impl AstNode for ConfigValue {
32675    #[inline]
32676    fn can_cast(kind: SyntaxKind) -> bool {
32677        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
32678    }
32679    #[inline]
32680    fn cast(syntax: SyntaxNode) -> Option<Self> {
32681        let res = match syntax.kind() {
32682            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
32683            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
32684            _ => {
32685                return None;
32686            }
32687        };
32688        Some(res)
32689    }
32690    #[inline]
32691    fn syntax(&self) -> &SyntaxNode {
32692        match self {
32693            ConfigValue::Literal(it) => &it.syntax,
32694            ConfigValue::NameRef(it) => &it.syntax,
32695        }
32696    }
32697}
32698impl From<Literal> for ConfigValue {
32699    #[inline]
32700    fn from(node: Literal) -> ConfigValue {
32701        ConfigValue::Literal(node)
32702    }
32703}
32704impl From<NameRef> for ConfigValue {
32705    #[inline]
32706    fn from(node: NameRef) -> ConfigValue {
32707        ConfigValue::NameRef(node)
32708    }
32709}
32710impl AstNode for ConflictAction {
32711    #[inline]
32712    fn can_cast(kind: SyntaxKind) -> bool {
32713        matches!(
32714            kind,
32715            SyntaxKind::CONFLICT_DO_NOTHING
32716                | SyntaxKind::CONFLICT_DO_SELECT
32717                | SyntaxKind::CONFLICT_DO_UPDATE_SET
32718        )
32719    }
32720    #[inline]
32721    fn cast(syntax: SyntaxNode) -> Option<Self> {
32722        let res = match syntax.kind() {
32723            SyntaxKind::CONFLICT_DO_NOTHING => {
32724                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
32725            }
32726            SyntaxKind::CONFLICT_DO_SELECT => {
32727                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
32728            }
32729            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
32730                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
32731            }
32732            _ => {
32733                return None;
32734            }
32735        };
32736        Some(res)
32737    }
32738    #[inline]
32739    fn syntax(&self) -> &SyntaxNode {
32740        match self {
32741            ConflictAction::ConflictDoNothing(it) => &it.syntax,
32742            ConflictAction::ConflictDoSelect(it) => &it.syntax,
32743            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
32744        }
32745    }
32746}
32747impl From<ConflictDoNothing> for ConflictAction {
32748    #[inline]
32749    fn from(node: ConflictDoNothing) -> ConflictAction {
32750        ConflictAction::ConflictDoNothing(node)
32751    }
32752}
32753impl From<ConflictDoSelect> for ConflictAction {
32754    #[inline]
32755    fn from(node: ConflictDoSelect) -> ConflictAction {
32756        ConflictAction::ConflictDoSelect(node)
32757    }
32758}
32759impl From<ConflictDoUpdateSet> for ConflictAction {
32760    #[inline]
32761    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
32762        ConflictAction::ConflictDoUpdateSet(node)
32763    }
32764}
32765impl AstNode for ConflictTarget {
32766    #[inline]
32767    fn can_cast(kind: SyntaxKind) -> bool {
32768        matches!(
32769            kind,
32770            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
32771        )
32772    }
32773    #[inline]
32774    fn cast(syntax: SyntaxNode) -> Option<Self> {
32775        let res = match syntax.kind() {
32776            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
32777                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
32778            }
32779            SyntaxKind::CONFLICT_ON_INDEX => {
32780                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
32781            }
32782            _ => {
32783                return None;
32784            }
32785        };
32786        Some(res)
32787    }
32788    #[inline]
32789    fn syntax(&self) -> &SyntaxNode {
32790        match self {
32791            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
32792            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
32793        }
32794    }
32795}
32796impl From<ConflictOnConstraint> for ConflictTarget {
32797    #[inline]
32798    fn from(node: ConflictOnConstraint) -> ConflictTarget {
32799        ConflictTarget::ConflictOnConstraint(node)
32800    }
32801}
32802impl From<ConflictOnIndex> for ConflictTarget {
32803    #[inline]
32804    fn from(node: ConflictOnIndex) -> ConflictTarget {
32805        ConflictTarget::ConflictOnIndex(node)
32806    }
32807}
32808impl AstNode for Constraint {
32809    #[inline]
32810    fn can_cast(kind: SyntaxKind) -> bool {
32811        matches!(
32812            kind,
32813            SyntaxKind::CHECK_CONSTRAINT
32814                | SyntaxKind::DEFAULT_CONSTRAINT
32815                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32816                | SyntaxKind::GENERATED_CONSTRAINT
32817                | SyntaxKind::NOT_NULL_CONSTRAINT
32818                | SyntaxKind::NULL_CONSTRAINT
32819                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32820                | SyntaxKind::REFERENCES_CONSTRAINT
32821                | SyntaxKind::UNIQUE_CONSTRAINT
32822        )
32823    }
32824    #[inline]
32825    fn cast(syntax: SyntaxNode) -> Option<Self> {
32826        let res = match syntax.kind() {
32827            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
32828            SyntaxKind::DEFAULT_CONSTRAINT => {
32829                Constraint::DefaultConstraint(DefaultConstraint { syntax })
32830            }
32831            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32832                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32833            }
32834            SyntaxKind::GENERATED_CONSTRAINT => {
32835                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
32836            }
32837            SyntaxKind::NOT_NULL_CONSTRAINT => {
32838                Constraint::NotNullConstraint(NotNullConstraint { syntax })
32839            }
32840            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
32841            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32842                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32843            }
32844            SyntaxKind::REFERENCES_CONSTRAINT => {
32845                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
32846            }
32847            SyntaxKind::UNIQUE_CONSTRAINT => {
32848                Constraint::UniqueConstraint(UniqueConstraint { syntax })
32849            }
32850            _ => {
32851                return None;
32852            }
32853        };
32854        Some(res)
32855    }
32856    #[inline]
32857    fn syntax(&self) -> &SyntaxNode {
32858        match self {
32859            Constraint::CheckConstraint(it) => &it.syntax,
32860            Constraint::DefaultConstraint(it) => &it.syntax,
32861            Constraint::ForeignKeyConstraint(it) => &it.syntax,
32862            Constraint::GeneratedConstraint(it) => &it.syntax,
32863            Constraint::NotNullConstraint(it) => &it.syntax,
32864            Constraint::NullConstraint(it) => &it.syntax,
32865            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
32866            Constraint::ReferencesConstraint(it) => &it.syntax,
32867            Constraint::UniqueConstraint(it) => &it.syntax,
32868        }
32869    }
32870}
32871impl From<CheckConstraint> for Constraint {
32872    #[inline]
32873    fn from(node: CheckConstraint) -> Constraint {
32874        Constraint::CheckConstraint(node)
32875    }
32876}
32877impl From<DefaultConstraint> for Constraint {
32878    #[inline]
32879    fn from(node: DefaultConstraint) -> Constraint {
32880        Constraint::DefaultConstraint(node)
32881    }
32882}
32883impl From<ForeignKeyConstraint> for Constraint {
32884    #[inline]
32885    fn from(node: ForeignKeyConstraint) -> Constraint {
32886        Constraint::ForeignKeyConstraint(node)
32887    }
32888}
32889impl From<GeneratedConstraint> for Constraint {
32890    #[inline]
32891    fn from(node: GeneratedConstraint) -> Constraint {
32892        Constraint::GeneratedConstraint(node)
32893    }
32894}
32895impl From<NotNullConstraint> for Constraint {
32896    #[inline]
32897    fn from(node: NotNullConstraint) -> Constraint {
32898        Constraint::NotNullConstraint(node)
32899    }
32900}
32901impl From<NullConstraint> for Constraint {
32902    #[inline]
32903    fn from(node: NullConstraint) -> Constraint {
32904        Constraint::NullConstraint(node)
32905    }
32906}
32907impl From<PrimaryKeyConstraint> for Constraint {
32908    #[inline]
32909    fn from(node: PrimaryKeyConstraint) -> Constraint {
32910        Constraint::PrimaryKeyConstraint(node)
32911    }
32912}
32913impl From<ReferencesConstraint> for Constraint {
32914    #[inline]
32915    fn from(node: ReferencesConstraint) -> Constraint {
32916        Constraint::ReferencesConstraint(node)
32917    }
32918}
32919impl From<UniqueConstraint> for Constraint {
32920    #[inline]
32921    fn from(node: UniqueConstraint) -> Constraint {
32922        Constraint::UniqueConstraint(node)
32923    }
32924}
32925impl AstNode for ElementTableLabelAndProperties {
32926    #[inline]
32927    fn can_cast(kind: SyntaxKind) -> bool {
32928        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
32929    }
32930    #[inline]
32931    fn cast(syntax: SyntaxNode) -> Option<Self> {
32932        let res = match syntax.kind() {
32933            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
32934                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
32935                    syntax,
32936                })
32937            }
32938            _ => {
32939                if let Some(result) = ElementTableProperties::cast(syntax) {
32940                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
32941                        result,
32942                    ));
32943                }
32944                return None;
32945            }
32946        };
32947        Some(res)
32948    }
32949    #[inline]
32950    fn syntax(&self) -> &SyntaxNode {
32951        match self {
32952            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
32953            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
32954        }
32955    }
32956}
32957impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
32958    #[inline]
32959    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
32960        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
32961    }
32962}
32963impl AstNode for ElementTableProperties {
32964    #[inline]
32965    fn can_cast(kind: SyntaxKind) -> bool {
32966        matches!(
32967            kind,
32968            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES
32969        )
32970    }
32971    #[inline]
32972    fn cast(syntax: SyntaxNode) -> Option<Self> {
32973        let res = match syntax.kind() {
32974            SyntaxKind::ALL_PROPERTIES => {
32975                ElementTableProperties::AllProperties(AllProperties { syntax })
32976            }
32977            SyntaxKind::NO_PROPERTIES => {
32978                ElementTableProperties::NoProperties(NoProperties { syntax })
32979            }
32980            SyntaxKind::PROPERTIES => ElementTableProperties::Properties(Properties { syntax }),
32981            _ => {
32982                return None;
32983            }
32984        };
32985        Some(res)
32986    }
32987    #[inline]
32988    fn syntax(&self) -> &SyntaxNode {
32989        match self {
32990            ElementTableProperties::AllProperties(it) => &it.syntax,
32991            ElementTableProperties::NoProperties(it) => &it.syntax,
32992            ElementTableProperties::Properties(it) => &it.syntax,
32993        }
32994    }
32995}
32996impl From<AllProperties> for ElementTableProperties {
32997    #[inline]
32998    fn from(node: AllProperties) -> ElementTableProperties {
32999        ElementTableProperties::AllProperties(node)
33000    }
33001}
33002impl From<NoProperties> for ElementTableProperties {
33003    #[inline]
33004    fn from(node: NoProperties) -> ElementTableProperties {
33005        ElementTableProperties::NoProperties(node)
33006    }
33007}
33008impl From<Properties> for ElementTableProperties {
33009    #[inline]
33010    fn from(node: Properties) -> ElementTableProperties {
33011        ElementTableProperties::Properties(node)
33012    }
33013}
33014impl AstNode for ExplainStmt {
33015    #[inline]
33016    fn can_cast(kind: SyntaxKind) -> bool {
33017        matches!(
33018            kind,
33019            SyntaxKind::COMPOUND_SELECT
33020                | SyntaxKind::CREATE_MATERIALIZED_VIEW
33021                | SyntaxKind::CREATE_TABLE_AS
33022                | SyntaxKind::DECLARE
33023                | SyntaxKind::DELETE
33024                | SyntaxKind::EXECUTE
33025                | SyntaxKind::INSERT
33026                | SyntaxKind::MERGE
33027                | SyntaxKind::PAREN_SELECT
33028                | SyntaxKind::SELECT
33029                | SyntaxKind::SELECT_INTO
33030                | SyntaxKind::TABLE
33031                | SyntaxKind::UPDATE
33032                | SyntaxKind::VALUES
33033        )
33034    }
33035    #[inline]
33036    fn cast(syntax: SyntaxNode) -> Option<Self> {
33037        let res = match syntax.kind() {
33038            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
33039            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
33040                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
33041            }
33042            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
33043            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
33044            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
33045            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
33046            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
33047            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
33048            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
33049            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
33050            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
33051            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
33052            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
33053            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
33054            _ => {
33055                return None;
33056            }
33057        };
33058        Some(res)
33059    }
33060    #[inline]
33061    fn syntax(&self) -> &SyntaxNode {
33062        match self {
33063            ExplainStmt::CompoundSelect(it) => &it.syntax,
33064            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
33065            ExplainStmt::CreateTableAs(it) => &it.syntax,
33066            ExplainStmt::Declare(it) => &it.syntax,
33067            ExplainStmt::Delete(it) => &it.syntax,
33068            ExplainStmt::Execute(it) => &it.syntax,
33069            ExplainStmt::Insert(it) => &it.syntax,
33070            ExplainStmt::Merge(it) => &it.syntax,
33071            ExplainStmt::ParenSelect(it) => &it.syntax,
33072            ExplainStmt::Select(it) => &it.syntax,
33073            ExplainStmt::SelectInto(it) => &it.syntax,
33074            ExplainStmt::Table(it) => &it.syntax,
33075            ExplainStmt::Update(it) => &it.syntax,
33076            ExplainStmt::Values(it) => &it.syntax,
33077        }
33078    }
33079}
33080impl From<CompoundSelect> for ExplainStmt {
33081    #[inline]
33082    fn from(node: CompoundSelect) -> ExplainStmt {
33083        ExplainStmt::CompoundSelect(node)
33084    }
33085}
33086impl From<CreateMaterializedView> for ExplainStmt {
33087    #[inline]
33088    fn from(node: CreateMaterializedView) -> ExplainStmt {
33089        ExplainStmt::CreateMaterializedView(node)
33090    }
33091}
33092impl From<CreateTableAs> for ExplainStmt {
33093    #[inline]
33094    fn from(node: CreateTableAs) -> ExplainStmt {
33095        ExplainStmt::CreateTableAs(node)
33096    }
33097}
33098impl From<Declare> for ExplainStmt {
33099    #[inline]
33100    fn from(node: Declare) -> ExplainStmt {
33101        ExplainStmt::Declare(node)
33102    }
33103}
33104impl From<Delete> for ExplainStmt {
33105    #[inline]
33106    fn from(node: Delete) -> ExplainStmt {
33107        ExplainStmt::Delete(node)
33108    }
33109}
33110impl From<Execute> for ExplainStmt {
33111    #[inline]
33112    fn from(node: Execute) -> ExplainStmt {
33113        ExplainStmt::Execute(node)
33114    }
33115}
33116impl From<Insert> for ExplainStmt {
33117    #[inline]
33118    fn from(node: Insert) -> ExplainStmt {
33119        ExplainStmt::Insert(node)
33120    }
33121}
33122impl From<Merge> for ExplainStmt {
33123    #[inline]
33124    fn from(node: Merge) -> ExplainStmt {
33125        ExplainStmt::Merge(node)
33126    }
33127}
33128impl From<ParenSelect> for ExplainStmt {
33129    #[inline]
33130    fn from(node: ParenSelect) -> ExplainStmt {
33131        ExplainStmt::ParenSelect(node)
33132    }
33133}
33134impl From<Select> for ExplainStmt {
33135    #[inline]
33136    fn from(node: Select) -> ExplainStmt {
33137        ExplainStmt::Select(node)
33138    }
33139}
33140impl From<SelectInto> for ExplainStmt {
33141    #[inline]
33142    fn from(node: SelectInto) -> ExplainStmt {
33143        ExplainStmt::SelectInto(node)
33144    }
33145}
33146impl From<Table> for ExplainStmt {
33147    #[inline]
33148    fn from(node: Table) -> ExplainStmt {
33149        ExplainStmt::Table(node)
33150    }
33151}
33152impl From<Update> for ExplainStmt {
33153    #[inline]
33154    fn from(node: Update) -> ExplainStmt {
33155        ExplainStmt::Update(node)
33156    }
33157}
33158impl From<Values> for ExplainStmt {
33159    #[inline]
33160    fn from(node: Values) -> ExplainStmt {
33161        ExplainStmt::Values(node)
33162    }
33163}
33164impl AstNode for Expr {
33165    #[inline]
33166    fn can_cast(kind: SyntaxKind) -> bool {
33167        matches!(
33168            kind,
33169            SyntaxKind::ARRAY_EXPR
33170                | SyntaxKind::BETWEEN_EXPR
33171                | SyntaxKind::BIN_EXPR
33172                | SyntaxKind::CALL_EXPR
33173                | SyntaxKind::CASE_EXPR
33174                | SyntaxKind::CAST_EXPR
33175                | SyntaxKind::FIELD_EXPR
33176                | SyntaxKind::INDEX_EXPR
33177                | SyntaxKind::LITERAL
33178                | SyntaxKind::NAME_REF
33179                | SyntaxKind::PAREN_EXPR
33180                | SyntaxKind::POSTFIX_EXPR
33181                | SyntaxKind::PREFIX_EXPR
33182                | SyntaxKind::SLICE_EXPR
33183                | SyntaxKind::TUPLE_EXPR
33184        )
33185    }
33186    #[inline]
33187    fn cast(syntax: SyntaxNode) -> Option<Self> {
33188        let res = match syntax.kind() {
33189            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
33190            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
33191            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
33192            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
33193            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
33194            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
33195            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
33196            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
33197            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
33198            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
33199            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
33200            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
33201            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
33202            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
33203            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
33204            _ => {
33205                return None;
33206            }
33207        };
33208        Some(res)
33209    }
33210    #[inline]
33211    fn syntax(&self) -> &SyntaxNode {
33212        match self {
33213            Expr::ArrayExpr(it) => &it.syntax,
33214            Expr::BetweenExpr(it) => &it.syntax,
33215            Expr::BinExpr(it) => &it.syntax,
33216            Expr::CallExpr(it) => &it.syntax,
33217            Expr::CaseExpr(it) => &it.syntax,
33218            Expr::CastExpr(it) => &it.syntax,
33219            Expr::FieldExpr(it) => &it.syntax,
33220            Expr::IndexExpr(it) => &it.syntax,
33221            Expr::Literal(it) => &it.syntax,
33222            Expr::NameRef(it) => &it.syntax,
33223            Expr::ParenExpr(it) => &it.syntax,
33224            Expr::PostfixExpr(it) => &it.syntax,
33225            Expr::PrefixExpr(it) => &it.syntax,
33226            Expr::SliceExpr(it) => &it.syntax,
33227            Expr::TupleExpr(it) => &it.syntax,
33228        }
33229    }
33230}
33231impl From<ArrayExpr> for Expr {
33232    #[inline]
33233    fn from(node: ArrayExpr) -> Expr {
33234        Expr::ArrayExpr(node)
33235    }
33236}
33237impl From<BetweenExpr> for Expr {
33238    #[inline]
33239    fn from(node: BetweenExpr) -> Expr {
33240        Expr::BetweenExpr(node)
33241    }
33242}
33243impl From<BinExpr> for Expr {
33244    #[inline]
33245    fn from(node: BinExpr) -> Expr {
33246        Expr::BinExpr(node)
33247    }
33248}
33249impl From<CallExpr> for Expr {
33250    #[inline]
33251    fn from(node: CallExpr) -> Expr {
33252        Expr::CallExpr(node)
33253    }
33254}
33255impl From<CaseExpr> for Expr {
33256    #[inline]
33257    fn from(node: CaseExpr) -> Expr {
33258        Expr::CaseExpr(node)
33259    }
33260}
33261impl From<CastExpr> for Expr {
33262    #[inline]
33263    fn from(node: CastExpr) -> Expr {
33264        Expr::CastExpr(node)
33265    }
33266}
33267impl From<FieldExpr> for Expr {
33268    #[inline]
33269    fn from(node: FieldExpr) -> Expr {
33270        Expr::FieldExpr(node)
33271    }
33272}
33273impl From<IndexExpr> for Expr {
33274    #[inline]
33275    fn from(node: IndexExpr) -> Expr {
33276        Expr::IndexExpr(node)
33277    }
33278}
33279impl From<Literal> for Expr {
33280    #[inline]
33281    fn from(node: Literal) -> Expr {
33282        Expr::Literal(node)
33283    }
33284}
33285impl From<NameRef> for Expr {
33286    #[inline]
33287    fn from(node: NameRef) -> Expr {
33288        Expr::NameRef(node)
33289    }
33290}
33291impl From<ParenExpr> for Expr {
33292    #[inline]
33293    fn from(node: ParenExpr) -> Expr {
33294        Expr::ParenExpr(node)
33295    }
33296}
33297impl From<PostfixExpr> for Expr {
33298    #[inline]
33299    fn from(node: PostfixExpr) -> Expr {
33300        Expr::PostfixExpr(node)
33301    }
33302}
33303impl From<PrefixExpr> for Expr {
33304    #[inline]
33305    fn from(node: PrefixExpr) -> Expr {
33306        Expr::PrefixExpr(node)
33307    }
33308}
33309impl From<SliceExpr> for Expr {
33310    #[inline]
33311    fn from(node: SliceExpr) -> Expr {
33312        Expr::SliceExpr(node)
33313    }
33314}
33315impl From<TupleExpr> for Expr {
33316    #[inline]
33317    fn from(node: TupleExpr) -> Expr {
33318        Expr::TupleExpr(node)
33319    }
33320}
33321impl AstNode for FuncOption {
33322    #[inline]
33323    fn can_cast(kind: SyntaxKind) -> bool {
33324        matches!(
33325            kind,
33326            SyntaxKind::AS_FUNC_OPTION
33327                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
33328                | SyntaxKind::COST_FUNC_OPTION
33329                | SyntaxKind::LANGUAGE_FUNC_OPTION
33330                | SyntaxKind::LEAKPROOF_FUNC_OPTION
33331                | SyntaxKind::PARALLEL_FUNC_OPTION
33332                | SyntaxKind::RESET_FUNC_OPTION
33333                | SyntaxKind::RETURN_FUNC_OPTION
33334                | SyntaxKind::ROWS_FUNC_OPTION
33335                | SyntaxKind::SECURITY_FUNC_OPTION
33336                | SyntaxKind::SET_FUNC_OPTION
33337                | SyntaxKind::STRICT_FUNC_OPTION
33338                | SyntaxKind::SUPPORT_FUNC_OPTION
33339                | SyntaxKind::TRANSFORM_FUNC_OPTION
33340                | SyntaxKind::VOLATILITY_FUNC_OPTION
33341                | SyntaxKind::WINDOW_FUNC_OPTION
33342        )
33343    }
33344    #[inline]
33345    fn cast(syntax: SyntaxNode) -> Option<Self> {
33346        let res = match syntax.kind() {
33347            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
33348            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
33349                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
33350            }
33351            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
33352            SyntaxKind::LANGUAGE_FUNC_OPTION => {
33353                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
33354            }
33355            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
33356                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
33357            }
33358            SyntaxKind::PARALLEL_FUNC_OPTION => {
33359                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
33360            }
33361            SyntaxKind::RESET_FUNC_OPTION => {
33362                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
33363            }
33364            SyntaxKind::RETURN_FUNC_OPTION => {
33365                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33366            }
33367            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
33368            SyntaxKind::SECURITY_FUNC_OPTION => {
33369                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
33370            }
33371            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
33372            SyntaxKind::STRICT_FUNC_OPTION => {
33373                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
33374            }
33375            SyntaxKind::SUPPORT_FUNC_OPTION => {
33376                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
33377            }
33378            SyntaxKind::TRANSFORM_FUNC_OPTION => {
33379                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
33380            }
33381            SyntaxKind::VOLATILITY_FUNC_OPTION => {
33382                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
33383            }
33384            SyntaxKind::WINDOW_FUNC_OPTION => {
33385                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
33386            }
33387            _ => {
33388                return None;
33389            }
33390        };
33391        Some(res)
33392    }
33393    #[inline]
33394    fn syntax(&self) -> &SyntaxNode {
33395        match self {
33396            FuncOption::AsFuncOption(it) => &it.syntax,
33397            FuncOption::BeginFuncOptionList(it) => &it.syntax,
33398            FuncOption::CostFuncOption(it) => &it.syntax,
33399            FuncOption::LanguageFuncOption(it) => &it.syntax,
33400            FuncOption::LeakproofFuncOption(it) => &it.syntax,
33401            FuncOption::ParallelFuncOption(it) => &it.syntax,
33402            FuncOption::ResetFuncOption(it) => &it.syntax,
33403            FuncOption::ReturnFuncOption(it) => &it.syntax,
33404            FuncOption::RowsFuncOption(it) => &it.syntax,
33405            FuncOption::SecurityFuncOption(it) => &it.syntax,
33406            FuncOption::SetFuncOption(it) => &it.syntax,
33407            FuncOption::StrictFuncOption(it) => &it.syntax,
33408            FuncOption::SupportFuncOption(it) => &it.syntax,
33409            FuncOption::TransformFuncOption(it) => &it.syntax,
33410            FuncOption::VolatilityFuncOption(it) => &it.syntax,
33411            FuncOption::WindowFuncOption(it) => &it.syntax,
33412        }
33413    }
33414}
33415impl From<AsFuncOption> for FuncOption {
33416    #[inline]
33417    fn from(node: AsFuncOption) -> FuncOption {
33418        FuncOption::AsFuncOption(node)
33419    }
33420}
33421impl From<BeginFuncOptionList> for FuncOption {
33422    #[inline]
33423    fn from(node: BeginFuncOptionList) -> FuncOption {
33424        FuncOption::BeginFuncOptionList(node)
33425    }
33426}
33427impl From<CostFuncOption> for FuncOption {
33428    #[inline]
33429    fn from(node: CostFuncOption) -> FuncOption {
33430        FuncOption::CostFuncOption(node)
33431    }
33432}
33433impl From<LanguageFuncOption> for FuncOption {
33434    #[inline]
33435    fn from(node: LanguageFuncOption) -> FuncOption {
33436        FuncOption::LanguageFuncOption(node)
33437    }
33438}
33439impl From<LeakproofFuncOption> for FuncOption {
33440    #[inline]
33441    fn from(node: LeakproofFuncOption) -> FuncOption {
33442        FuncOption::LeakproofFuncOption(node)
33443    }
33444}
33445impl From<ParallelFuncOption> for FuncOption {
33446    #[inline]
33447    fn from(node: ParallelFuncOption) -> FuncOption {
33448        FuncOption::ParallelFuncOption(node)
33449    }
33450}
33451impl From<ResetFuncOption> for FuncOption {
33452    #[inline]
33453    fn from(node: ResetFuncOption) -> FuncOption {
33454        FuncOption::ResetFuncOption(node)
33455    }
33456}
33457impl From<ReturnFuncOption> for FuncOption {
33458    #[inline]
33459    fn from(node: ReturnFuncOption) -> FuncOption {
33460        FuncOption::ReturnFuncOption(node)
33461    }
33462}
33463impl From<RowsFuncOption> for FuncOption {
33464    #[inline]
33465    fn from(node: RowsFuncOption) -> FuncOption {
33466        FuncOption::RowsFuncOption(node)
33467    }
33468}
33469impl From<SecurityFuncOption> for FuncOption {
33470    #[inline]
33471    fn from(node: SecurityFuncOption) -> FuncOption {
33472        FuncOption::SecurityFuncOption(node)
33473    }
33474}
33475impl From<SetFuncOption> for FuncOption {
33476    #[inline]
33477    fn from(node: SetFuncOption) -> FuncOption {
33478        FuncOption::SetFuncOption(node)
33479    }
33480}
33481impl From<StrictFuncOption> for FuncOption {
33482    #[inline]
33483    fn from(node: StrictFuncOption) -> FuncOption {
33484        FuncOption::StrictFuncOption(node)
33485    }
33486}
33487impl From<SupportFuncOption> for FuncOption {
33488    #[inline]
33489    fn from(node: SupportFuncOption) -> FuncOption {
33490        FuncOption::SupportFuncOption(node)
33491    }
33492}
33493impl From<TransformFuncOption> for FuncOption {
33494    #[inline]
33495    fn from(node: TransformFuncOption) -> FuncOption {
33496        FuncOption::TransformFuncOption(node)
33497    }
33498}
33499impl From<VolatilityFuncOption> for FuncOption {
33500    #[inline]
33501    fn from(node: VolatilityFuncOption) -> FuncOption {
33502        FuncOption::VolatilityFuncOption(node)
33503    }
33504}
33505impl From<WindowFuncOption> for FuncOption {
33506    #[inline]
33507    fn from(node: WindowFuncOption) -> FuncOption {
33508        FuncOption::WindowFuncOption(node)
33509    }
33510}
33511impl AstNode for GroupBy {
33512    #[inline]
33513    fn can_cast(kind: SyntaxKind) -> bool {
33514        matches!(
33515            kind,
33516            SyntaxKind::GROUPING_CUBE
33517                | SyntaxKind::GROUPING_EXPR
33518                | SyntaxKind::GROUPING_ROLLUP
33519                | SyntaxKind::GROUPING_SETS
33520        )
33521    }
33522    #[inline]
33523    fn cast(syntax: SyntaxNode) -> Option<Self> {
33524        let res = match syntax.kind() {
33525            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
33526            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
33527            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
33528            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
33529            _ => {
33530                return None;
33531            }
33532        };
33533        Some(res)
33534    }
33535    #[inline]
33536    fn syntax(&self) -> &SyntaxNode {
33537        match self {
33538            GroupBy::GroupingCube(it) => &it.syntax,
33539            GroupBy::GroupingExpr(it) => &it.syntax,
33540            GroupBy::GroupingRollup(it) => &it.syntax,
33541            GroupBy::GroupingSets(it) => &it.syntax,
33542        }
33543    }
33544}
33545impl From<GroupingCube> for GroupBy {
33546    #[inline]
33547    fn from(node: GroupingCube) -> GroupBy {
33548        GroupBy::GroupingCube(node)
33549    }
33550}
33551impl From<GroupingExpr> for GroupBy {
33552    #[inline]
33553    fn from(node: GroupingExpr) -> GroupBy {
33554        GroupBy::GroupingExpr(node)
33555    }
33556}
33557impl From<GroupingRollup> for GroupBy {
33558    #[inline]
33559    fn from(node: GroupingRollup) -> GroupBy {
33560        GroupBy::GroupingRollup(node)
33561    }
33562}
33563impl From<GroupingSets> for GroupBy {
33564    #[inline]
33565    fn from(node: GroupingSets) -> GroupBy {
33566        GroupBy::GroupingSets(node)
33567    }
33568}
33569impl AstNode for JoinType {
33570    #[inline]
33571    fn can_cast(kind: SyntaxKind) -> bool {
33572        matches!(
33573            kind,
33574            SyntaxKind::JOIN_CROSS
33575                | SyntaxKind::JOIN_FULL
33576                | SyntaxKind::JOIN_INNER
33577                | SyntaxKind::JOIN_LEFT
33578                | SyntaxKind::JOIN_RIGHT
33579        )
33580    }
33581    #[inline]
33582    fn cast(syntax: SyntaxNode) -> Option<Self> {
33583        let res = match syntax.kind() {
33584            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
33585            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
33586            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
33587            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
33588            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
33589            _ => {
33590                return None;
33591            }
33592        };
33593        Some(res)
33594    }
33595    #[inline]
33596    fn syntax(&self) -> &SyntaxNode {
33597        match self {
33598            JoinType::JoinCross(it) => &it.syntax,
33599            JoinType::JoinFull(it) => &it.syntax,
33600            JoinType::JoinInner(it) => &it.syntax,
33601            JoinType::JoinLeft(it) => &it.syntax,
33602            JoinType::JoinRight(it) => &it.syntax,
33603        }
33604    }
33605}
33606impl From<JoinCross> for JoinType {
33607    #[inline]
33608    fn from(node: JoinCross) -> JoinType {
33609        JoinType::JoinCross(node)
33610    }
33611}
33612impl From<JoinFull> for JoinType {
33613    #[inline]
33614    fn from(node: JoinFull) -> JoinType {
33615        JoinType::JoinFull(node)
33616    }
33617}
33618impl From<JoinInner> for JoinType {
33619    #[inline]
33620    fn from(node: JoinInner) -> JoinType {
33621        JoinType::JoinInner(node)
33622    }
33623}
33624impl From<JoinLeft> for JoinType {
33625    #[inline]
33626    fn from(node: JoinLeft) -> JoinType {
33627        JoinType::JoinLeft(node)
33628    }
33629}
33630impl From<JoinRight> for JoinType {
33631    #[inline]
33632    fn from(node: JoinRight) -> JoinType {
33633        JoinType::JoinRight(node)
33634    }
33635}
33636impl AstNode for JsonBehavior {
33637    #[inline]
33638    fn can_cast(kind: SyntaxKind) -> bool {
33639        matches!(
33640            kind,
33641            SyntaxKind::JSON_BEHAVIOR_DEFAULT
33642                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
33643                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
33644                | SyntaxKind::JSON_BEHAVIOR_ERROR
33645                | SyntaxKind::JSON_BEHAVIOR_FALSE
33646                | SyntaxKind::JSON_BEHAVIOR_NULL
33647                | SyntaxKind::JSON_BEHAVIOR_TRUE
33648                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
33649        )
33650    }
33651    #[inline]
33652    fn cast(syntax: SyntaxNode) -> Option<Self> {
33653        let res = match syntax.kind() {
33654            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
33655                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
33656            }
33657            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
33658                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
33659            }
33660            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
33661                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
33662            }
33663            SyntaxKind::JSON_BEHAVIOR_ERROR => {
33664                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
33665            }
33666            SyntaxKind::JSON_BEHAVIOR_FALSE => {
33667                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
33668            }
33669            SyntaxKind::JSON_BEHAVIOR_NULL => {
33670                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
33671            }
33672            SyntaxKind::JSON_BEHAVIOR_TRUE => {
33673                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
33674            }
33675            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
33676                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
33677            }
33678            _ => {
33679                return None;
33680            }
33681        };
33682        Some(res)
33683    }
33684    #[inline]
33685    fn syntax(&self) -> &SyntaxNode {
33686        match self {
33687            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
33688            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
33689            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
33690            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
33691            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
33692            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
33693            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
33694            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
33695        }
33696    }
33697}
33698impl From<JsonBehaviorDefault> for JsonBehavior {
33699    #[inline]
33700    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
33701        JsonBehavior::JsonBehaviorDefault(node)
33702    }
33703}
33704impl From<JsonBehaviorEmptyArray> for JsonBehavior {
33705    #[inline]
33706    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
33707        JsonBehavior::JsonBehaviorEmptyArray(node)
33708    }
33709}
33710impl From<JsonBehaviorEmptyObject> for JsonBehavior {
33711    #[inline]
33712    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
33713        JsonBehavior::JsonBehaviorEmptyObject(node)
33714    }
33715}
33716impl From<JsonBehaviorError> for JsonBehavior {
33717    #[inline]
33718    fn from(node: JsonBehaviorError) -> JsonBehavior {
33719        JsonBehavior::JsonBehaviorError(node)
33720    }
33721}
33722impl From<JsonBehaviorFalse> for JsonBehavior {
33723    #[inline]
33724    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
33725        JsonBehavior::JsonBehaviorFalse(node)
33726    }
33727}
33728impl From<JsonBehaviorNull> for JsonBehavior {
33729    #[inline]
33730    fn from(node: JsonBehaviorNull) -> JsonBehavior {
33731        JsonBehavior::JsonBehaviorNull(node)
33732    }
33733}
33734impl From<JsonBehaviorTrue> for JsonBehavior {
33735    #[inline]
33736    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
33737        JsonBehavior::JsonBehaviorTrue(node)
33738    }
33739}
33740impl From<JsonBehaviorUnknown> for JsonBehavior {
33741    #[inline]
33742    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
33743        JsonBehavior::JsonBehaviorUnknown(node)
33744    }
33745}
33746impl AstNode for MatchType {
33747    #[inline]
33748    fn can_cast(kind: SyntaxKind) -> bool {
33749        matches!(
33750            kind,
33751            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
33752        )
33753    }
33754    #[inline]
33755    fn cast(syntax: SyntaxNode) -> Option<Self> {
33756        let res = match syntax.kind() {
33757            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
33758            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
33759            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
33760            _ => {
33761                return None;
33762            }
33763        };
33764        Some(res)
33765    }
33766    #[inline]
33767    fn syntax(&self) -> &SyntaxNode {
33768        match self {
33769            MatchType::MatchFull(it) => &it.syntax,
33770            MatchType::MatchPartial(it) => &it.syntax,
33771            MatchType::MatchSimple(it) => &it.syntax,
33772        }
33773    }
33774}
33775impl From<MatchFull> for MatchType {
33776    #[inline]
33777    fn from(node: MatchFull) -> MatchType {
33778        MatchType::MatchFull(node)
33779    }
33780}
33781impl From<MatchPartial> for MatchType {
33782    #[inline]
33783    fn from(node: MatchPartial) -> MatchType {
33784        MatchType::MatchPartial(node)
33785    }
33786}
33787impl From<MatchSimple> for MatchType {
33788    #[inline]
33789    fn from(node: MatchSimple) -> MatchType {
33790        MatchType::MatchSimple(node)
33791    }
33792}
33793impl AstNode for MergeAction {
33794    #[inline]
33795    fn can_cast(kind: SyntaxKind) -> bool {
33796        matches!(
33797            kind,
33798            SyntaxKind::MERGE_DELETE
33799                | SyntaxKind::MERGE_DO_NOTHING
33800                | SyntaxKind::MERGE_INSERT
33801                | SyntaxKind::MERGE_UPDATE
33802        )
33803    }
33804    #[inline]
33805    fn cast(syntax: SyntaxNode) -> Option<Self> {
33806        let res = match syntax.kind() {
33807            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
33808            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
33809            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
33810            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
33811            _ => {
33812                return None;
33813            }
33814        };
33815        Some(res)
33816    }
33817    #[inline]
33818    fn syntax(&self) -> &SyntaxNode {
33819        match self {
33820            MergeAction::MergeDelete(it) => &it.syntax,
33821            MergeAction::MergeDoNothing(it) => &it.syntax,
33822            MergeAction::MergeInsert(it) => &it.syntax,
33823            MergeAction::MergeUpdate(it) => &it.syntax,
33824        }
33825    }
33826}
33827impl From<MergeDelete> for MergeAction {
33828    #[inline]
33829    fn from(node: MergeDelete) -> MergeAction {
33830        MergeAction::MergeDelete(node)
33831    }
33832}
33833impl From<MergeDoNothing> for MergeAction {
33834    #[inline]
33835    fn from(node: MergeDoNothing) -> MergeAction {
33836        MergeAction::MergeDoNothing(node)
33837    }
33838}
33839impl From<MergeInsert> for MergeAction {
33840    #[inline]
33841    fn from(node: MergeInsert) -> MergeAction {
33842        MergeAction::MergeInsert(node)
33843    }
33844}
33845impl From<MergeUpdate> for MergeAction {
33846    #[inline]
33847    fn from(node: MergeUpdate) -> MergeAction {
33848        MergeAction::MergeUpdate(node)
33849    }
33850}
33851impl AstNode for MergeWhenClause {
33852    #[inline]
33853    fn can_cast(kind: SyntaxKind) -> bool {
33854        matches!(
33855            kind,
33856            SyntaxKind::MERGE_WHEN_MATCHED
33857                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
33858                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
33859        )
33860    }
33861    #[inline]
33862    fn cast(syntax: SyntaxNode) -> Option<Self> {
33863        let res = match syntax.kind() {
33864            SyntaxKind::MERGE_WHEN_MATCHED => {
33865                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
33866            }
33867            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
33868                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
33869            }
33870            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
33871                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
33872            }
33873            _ => {
33874                return None;
33875            }
33876        };
33877        Some(res)
33878    }
33879    #[inline]
33880    fn syntax(&self) -> &SyntaxNode {
33881        match self {
33882            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
33883            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
33884            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
33885        }
33886    }
33887}
33888impl From<MergeWhenMatched> for MergeWhenClause {
33889    #[inline]
33890    fn from(node: MergeWhenMatched) -> MergeWhenClause {
33891        MergeWhenClause::MergeWhenMatched(node)
33892    }
33893}
33894impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
33895    #[inline]
33896    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
33897        MergeWhenClause::MergeWhenNotMatchedSource(node)
33898    }
33899}
33900impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
33901    #[inline]
33902    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
33903        MergeWhenClause::MergeWhenNotMatchedTarget(node)
33904    }
33905}
33906impl AstNode for OnCommitAction {
33907    #[inline]
33908    fn can_cast(kind: SyntaxKind) -> bool {
33909        matches!(
33910            kind,
33911            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
33912        )
33913    }
33914    #[inline]
33915    fn cast(syntax: SyntaxNode) -> Option<Self> {
33916        let res = match syntax.kind() {
33917            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
33918            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
33919            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
33920            _ => {
33921                return None;
33922            }
33923        };
33924        Some(res)
33925    }
33926    #[inline]
33927    fn syntax(&self) -> &SyntaxNode {
33928        match self {
33929            OnCommitAction::DeleteRows(it) => &it.syntax,
33930            OnCommitAction::Drop(it) => &it.syntax,
33931            OnCommitAction::PreserveRows(it) => &it.syntax,
33932        }
33933    }
33934}
33935impl From<DeleteRows> for OnCommitAction {
33936    #[inline]
33937    fn from(node: DeleteRows) -> OnCommitAction {
33938        OnCommitAction::DeleteRows(node)
33939    }
33940}
33941impl From<Drop> for OnCommitAction {
33942    #[inline]
33943    fn from(node: Drop) -> OnCommitAction {
33944        OnCommitAction::Drop(node)
33945    }
33946}
33947impl From<PreserveRows> for OnCommitAction {
33948    #[inline]
33949    fn from(node: PreserveRows) -> OnCommitAction {
33950        OnCommitAction::PreserveRows(node)
33951    }
33952}
33953impl AstNode for ParamMode {
33954    #[inline]
33955    fn can_cast(kind: SyntaxKind) -> bool {
33956        matches!(
33957            kind,
33958            SyntaxKind::PARAM_IN
33959                | SyntaxKind::PARAM_IN_OUT
33960                | SyntaxKind::PARAM_OUT
33961                | SyntaxKind::PARAM_VARIADIC
33962        )
33963    }
33964    #[inline]
33965    fn cast(syntax: SyntaxNode) -> Option<Self> {
33966        let res = match syntax.kind() {
33967            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
33968            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
33969            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
33970            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
33971            _ => {
33972                return None;
33973            }
33974        };
33975        Some(res)
33976    }
33977    #[inline]
33978    fn syntax(&self) -> &SyntaxNode {
33979        match self {
33980            ParamMode::ParamIn(it) => &it.syntax,
33981            ParamMode::ParamInOut(it) => &it.syntax,
33982            ParamMode::ParamOut(it) => &it.syntax,
33983            ParamMode::ParamVariadic(it) => &it.syntax,
33984        }
33985    }
33986}
33987impl From<ParamIn> for ParamMode {
33988    #[inline]
33989    fn from(node: ParamIn) -> ParamMode {
33990        ParamMode::ParamIn(node)
33991    }
33992}
33993impl From<ParamInOut> for ParamMode {
33994    #[inline]
33995    fn from(node: ParamInOut) -> ParamMode {
33996        ParamMode::ParamInOut(node)
33997    }
33998}
33999impl From<ParamOut> for ParamMode {
34000    #[inline]
34001    fn from(node: ParamOut) -> ParamMode {
34002        ParamMode::ParamOut(node)
34003    }
34004}
34005impl From<ParamVariadic> for ParamMode {
34006    #[inline]
34007    fn from(node: ParamVariadic) -> ParamMode {
34008        ParamMode::ParamVariadic(node)
34009    }
34010}
34011impl AstNode for PartitionType {
34012    #[inline]
34013    fn can_cast(kind: SyntaxKind) -> bool {
34014        matches!(
34015            kind,
34016            SyntaxKind::PARTITION_DEFAULT
34017                | SyntaxKind::PARTITION_FOR_VALUES_FROM
34018                | SyntaxKind::PARTITION_FOR_VALUES_IN
34019                | SyntaxKind::PARTITION_FOR_VALUES_WITH
34020        )
34021    }
34022    #[inline]
34023    fn cast(syntax: SyntaxNode) -> Option<Self> {
34024        let res = match syntax.kind() {
34025            SyntaxKind::PARTITION_DEFAULT => {
34026                PartitionType::PartitionDefault(PartitionDefault { syntax })
34027            }
34028            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
34029                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
34030            }
34031            SyntaxKind::PARTITION_FOR_VALUES_IN => {
34032                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
34033            }
34034            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
34035                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
34036            }
34037            _ => {
34038                return None;
34039            }
34040        };
34041        Some(res)
34042    }
34043    #[inline]
34044    fn syntax(&self) -> &SyntaxNode {
34045        match self {
34046            PartitionType::PartitionDefault(it) => &it.syntax,
34047            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
34048            PartitionType::PartitionForValuesIn(it) => &it.syntax,
34049            PartitionType::PartitionForValuesWith(it) => &it.syntax,
34050        }
34051    }
34052}
34053impl From<PartitionDefault> for PartitionType {
34054    #[inline]
34055    fn from(node: PartitionDefault) -> PartitionType {
34056        PartitionType::PartitionDefault(node)
34057    }
34058}
34059impl From<PartitionForValuesFrom> for PartitionType {
34060    #[inline]
34061    fn from(node: PartitionForValuesFrom) -> PartitionType {
34062        PartitionType::PartitionForValuesFrom(node)
34063    }
34064}
34065impl From<PartitionForValuesIn> for PartitionType {
34066    #[inline]
34067    fn from(node: PartitionForValuesIn) -> PartitionType {
34068        PartitionType::PartitionForValuesIn(node)
34069    }
34070}
34071impl From<PartitionForValuesWith> for PartitionType {
34072    #[inline]
34073    fn from(node: PartitionForValuesWith) -> PartitionType {
34074        PartitionType::PartitionForValuesWith(node)
34075    }
34076}
34077impl AstNode for PathPrimary {
34078    #[inline]
34079    fn can_cast(kind: SyntaxKind) -> bool {
34080        matches!(
34081            kind,
34082            SyntaxKind::EDGE_ANY
34083                | SyntaxKind::EDGE_LEFT
34084                | SyntaxKind::EDGE_RIGHT
34085                | SyntaxKind::PAREN_GRAPH_PATTERN
34086                | SyntaxKind::VERTEX_PATTERN
34087        )
34088    }
34089    #[inline]
34090    fn cast(syntax: SyntaxNode) -> Option<Self> {
34091        let res = match syntax.kind() {
34092            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
34093            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
34094            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
34095            SyntaxKind::PAREN_GRAPH_PATTERN => {
34096                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
34097            }
34098            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
34099            _ => {
34100                return None;
34101            }
34102        };
34103        Some(res)
34104    }
34105    #[inline]
34106    fn syntax(&self) -> &SyntaxNode {
34107        match self {
34108            PathPrimary::EdgeAny(it) => &it.syntax,
34109            PathPrimary::EdgeLeft(it) => &it.syntax,
34110            PathPrimary::EdgeRight(it) => &it.syntax,
34111            PathPrimary::ParenGraphPattern(it) => &it.syntax,
34112            PathPrimary::VertexPattern(it) => &it.syntax,
34113        }
34114    }
34115}
34116impl From<EdgeAny> for PathPrimary {
34117    #[inline]
34118    fn from(node: EdgeAny) -> PathPrimary {
34119        PathPrimary::EdgeAny(node)
34120    }
34121}
34122impl From<EdgeLeft> for PathPrimary {
34123    #[inline]
34124    fn from(node: EdgeLeft) -> PathPrimary {
34125        PathPrimary::EdgeLeft(node)
34126    }
34127}
34128impl From<EdgeRight> for PathPrimary {
34129    #[inline]
34130    fn from(node: EdgeRight) -> PathPrimary {
34131        PathPrimary::EdgeRight(node)
34132    }
34133}
34134impl From<ParenGraphPattern> for PathPrimary {
34135    #[inline]
34136    fn from(node: ParenGraphPattern) -> PathPrimary {
34137        PathPrimary::ParenGraphPattern(node)
34138    }
34139}
34140impl From<VertexPattern> for PathPrimary {
34141    #[inline]
34142    fn from(node: VertexPattern) -> PathPrimary {
34143        PathPrimary::VertexPattern(node)
34144    }
34145}
34146impl AstNode for Persistence {
34147    #[inline]
34148    fn can_cast(kind: SyntaxKind) -> bool {
34149        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
34150    }
34151    #[inline]
34152    fn cast(syntax: SyntaxNode) -> Option<Self> {
34153        let res = match syntax.kind() {
34154            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
34155            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
34156            _ => {
34157                return None;
34158            }
34159        };
34160        Some(res)
34161    }
34162    #[inline]
34163    fn syntax(&self) -> &SyntaxNode {
34164        match self {
34165            Persistence::Temp(it) => &it.syntax,
34166            Persistence::Unlogged(it) => &it.syntax,
34167        }
34168    }
34169}
34170impl From<Temp> for Persistence {
34171    #[inline]
34172    fn from(node: Temp) -> Persistence {
34173        Persistence::Temp(node)
34174    }
34175}
34176impl From<Unlogged> for Persistence {
34177    #[inline]
34178    fn from(node: Unlogged) -> Persistence {
34179        Persistence::Unlogged(node)
34180    }
34181}
34182impl AstNode for PreparableStmt {
34183    #[inline]
34184    fn can_cast(kind: SyntaxKind) -> bool {
34185        matches!(
34186            kind,
34187            SyntaxKind::COMPOUND_SELECT
34188                | SyntaxKind::DELETE
34189                | SyntaxKind::INSERT
34190                | SyntaxKind::MERGE
34191                | SyntaxKind::SELECT
34192                | SyntaxKind::SELECT_INTO
34193                | SyntaxKind::TABLE
34194                | SyntaxKind::UPDATE
34195                | SyntaxKind::VALUES
34196        )
34197    }
34198    #[inline]
34199    fn cast(syntax: SyntaxNode) -> Option<Self> {
34200        let res = match syntax.kind() {
34201            SyntaxKind::COMPOUND_SELECT => {
34202                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
34203            }
34204            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
34205            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
34206            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
34207            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
34208            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
34209            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
34210            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
34211            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
34212            _ => {
34213                return None;
34214            }
34215        };
34216        Some(res)
34217    }
34218    #[inline]
34219    fn syntax(&self) -> &SyntaxNode {
34220        match self {
34221            PreparableStmt::CompoundSelect(it) => &it.syntax,
34222            PreparableStmt::Delete(it) => &it.syntax,
34223            PreparableStmt::Insert(it) => &it.syntax,
34224            PreparableStmt::Merge(it) => &it.syntax,
34225            PreparableStmt::Select(it) => &it.syntax,
34226            PreparableStmt::SelectInto(it) => &it.syntax,
34227            PreparableStmt::Table(it) => &it.syntax,
34228            PreparableStmt::Update(it) => &it.syntax,
34229            PreparableStmt::Values(it) => &it.syntax,
34230        }
34231    }
34232}
34233impl From<CompoundSelect> for PreparableStmt {
34234    #[inline]
34235    fn from(node: CompoundSelect) -> PreparableStmt {
34236        PreparableStmt::CompoundSelect(node)
34237    }
34238}
34239impl From<Delete> for PreparableStmt {
34240    #[inline]
34241    fn from(node: Delete) -> PreparableStmt {
34242        PreparableStmt::Delete(node)
34243    }
34244}
34245impl From<Insert> for PreparableStmt {
34246    #[inline]
34247    fn from(node: Insert) -> PreparableStmt {
34248        PreparableStmt::Insert(node)
34249    }
34250}
34251impl From<Merge> for PreparableStmt {
34252    #[inline]
34253    fn from(node: Merge) -> PreparableStmt {
34254        PreparableStmt::Merge(node)
34255    }
34256}
34257impl From<Select> for PreparableStmt {
34258    #[inline]
34259    fn from(node: Select) -> PreparableStmt {
34260        PreparableStmt::Select(node)
34261    }
34262}
34263impl From<SelectInto> for PreparableStmt {
34264    #[inline]
34265    fn from(node: SelectInto) -> PreparableStmt {
34266        PreparableStmt::SelectInto(node)
34267    }
34268}
34269impl From<Table> for PreparableStmt {
34270    #[inline]
34271    fn from(node: Table) -> PreparableStmt {
34272        PreparableStmt::Table(node)
34273    }
34274}
34275impl From<Update> for PreparableStmt {
34276    #[inline]
34277    fn from(node: Update) -> PreparableStmt {
34278        PreparableStmt::Update(node)
34279    }
34280}
34281impl From<Values> for PreparableStmt {
34282    #[inline]
34283    fn from(node: Values) -> PreparableStmt {
34284        PreparableStmt::Values(node)
34285    }
34286}
34287impl AstNode for RefAction {
34288    #[inline]
34289    fn can_cast(kind: SyntaxKind) -> bool {
34290        matches!(
34291            kind,
34292            SyntaxKind::CASCADE
34293                | SyntaxKind::NO_ACTION
34294                | SyntaxKind::RESTRICT
34295                | SyntaxKind::SET_DEFAULT_COLUMNS
34296                | SyntaxKind::SET_NULL_COLUMNS
34297        )
34298    }
34299    #[inline]
34300    fn cast(syntax: SyntaxNode) -> Option<Self> {
34301        let res = match syntax.kind() {
34302            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
34303            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
34304            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
34305            SyntaxKind::SET_DEFAULT_COLUMNS => {
34306                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
34307            }
34308            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
34309            _ => {
34310                return None;
34311            }
34312        };
34313        Some(res)
34314    }
34315    #[inline]
34316    fn syntax(&self) -> &SyntaxNode {
34317        match self {
34318            RefAction::Cascade(it) => &it.syntax,
34319            RefAction::NoAction(it) => &it.syntax,
34320            RefAction::Restrict(it) => &it.syntax,
34321            RefAction::SetDefaultColumns(it) => &it.syntax,
34322            RefAction::SetNullColumns(it) => &it.syntax,
34323        }
34324    }
34325}
34326impl From<Cascade> for RefAction {
34327    #[inline]
34328    fn from(node: Cascade) -> RefAction {
34329        RefAction::Cascade(node)
34330    }
34331}
34332impl From<NoAction> for RefAction {
34333    #[inline]
34334    fn from(node: NoAction) -> RefAction {
34335        RefAction::NoAction(node)
34336    }
34337}
34338impl From<Restrict> for RefAction {
34339    #[inline]
34340    fn from(node: Restrict) -> RefAction {
34341        RefAction::Restrict(node)
34342    }
34343}
34344impl From<SetDefaultColumns> for RefAction {
34345    #[inline]
34346    fn from(node: SetDefaultColumns) -> RefAction {
34347        RefAction::SetDefaultColumns(node)
34348    }
34349}
34350impl From<SetNullColumns> for RefAction {
34351    #[inline]
34352    fn from(node: SetNullColumns) -> RefAction {
34353        RefAction::SetNullColumns(node)
34354    }
34355}
34356impl AstNode for SchemaElement {
34357    #[inline]
34358    fn can_cast(kind: SyntaxKind) -> bool {
34359        matches!(
34360            kind,
34361            SyntaxKind::CREATE_INDEX
34362                | SyntaxKind::CREATE_SEQUENCE
34363                | SyntaxKind::CREATE_TABLE
34364                | SyntaxKind::CREATE_TRIGGER
34365                | SyntaxKind::CREATE_VIEW
34366                | SyntaxKind::GRANT
34367        )
34368    }
34369    #[inline]
34370    fn cast(syntax: SyntaxNode) -> Option<Self> {
34371        let res = match syntax.kind() {
34372            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
34373            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
34374            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
34375            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
34376            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
34377            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
34378            _ => {
34379                return None;
34380            }
34381        };
34382        Some(res)
34383    }
34384    #[inline]
34385    fn syntax(&self) -> &SyntaxNode {
34386        match self {
34387            SchemaElement::CreateIndex(it) => &it.syntax,
34388            SchemaElement::CreateSequence(it) => &it.syntax,
34389            SchemaElement::CreateTable(it) => &it.syntax,
34390            SchemaElement::CreateTrigger(it) => &it.syntax,
34391            SchemaElement::CreateView(it) => &it.syntax,
34392            SchemaElement::Grant(it) => &it.syntax,
34393        }
34394    }
34395}
34396impl From<CreateIndex> for SchemaElement {
34397    #[inline]
34398    fn from(node: CreateIndex) -> SchemaElement {
34399        SchemaElement::CreateIndex(node)
34400    }
34401}
34402impl From<CreateSequence> for SchemaElement {
34403    #[inline]
34404    fn from(node: CreateSequence) -> SchemaElement {
34405        SchemaElement::CreateSequence(node)
34406    }
34407}
34408impl From<CreateTable> for SchemaElement {
34409    #[inline]
34410    fn from(node: CreateTable) -> SchemaElement {
34411        SchemaElement::CreateTable(node)
34412    }
34413}
34414impl From<CreateTrigger> for SchemaElement {
34415    #[inline]
34416    fn from(node: CreateTrigger) -> SchemaElement {
34417        SchemaElement::CreateTrigger(node)
34418    }
34419}
34420impl From<CreateView> for SchemaElement {
34421    #[inline]
34422    fn from(node: CreateView) -> SchemaElement {
34423        SchemaElement::CreateView(node)
34424    }
34425}
34426impl From<Grant> for SchemaElement {
34427    #[inline]
34428    fn from(node: Grant) -> SchemaElement {
34429        SchemaElement::Grant(node)
34430    }
34431}
34432impl AstNode for SelectVariant {
34433    #[inline]
34434    fn can_cast(kind: SyntaxKind) -> bool {
34435        matches!(
34436            kind,
34437            SyntaxKind::COMPOUND_SELECT
34438                | SyntaxKind::PAREN_SELECT
34439                | SyntaxKind::SELECT
34440                | SyntaxKind::SELECT_INTO
34441                | SyntaxKind::TABLE
34442                | SyntaxKind::VALUES
34443        )
34444    }
34445    #[inline]
34446    fn cast(syntax: SyntaxNode) -> Option<Self> {
34447        let res = match syntax.kind() {
34448            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
34449            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
34450            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
34451            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
34452            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
34453            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
34454            _ => {
34455                return None;
34456            }
34457        };
34458        Some(res)
34459    }
34460    #[inline]
34461    fn syntax(&self) -> &SyntaxNode {
34462        match self {
34463            SelectVariant::CompoundSelect(it) => &it.syntax,
34464            SelectVariant::ParenSelect(it) => &it.syntax,
34465            SelectVariant::Select(it) => &it.syntax,
34466            SelectVariant::SelectInto(it) => &it.syntax,
34467            SelectVariant::Table(it) => &it.syntax,
34468            SelectVariant::Values(it) => &it.syntax,
34469        }
34470    }
34471}
34472impl From<CompoundSelect> for SelectVariant {
34473    #[inline]
34474    fn from(node: CompoundSelect) -> SelectVariant {
34475        SelectVariant::CompoundSelect(node)
34476    }
34477}
34478impl From<ParenSelect> for SelectVariant {
34479    #[inline]
34480    fn from(node: ParenSelect) -> SelectVariant {
34481        SelectVariant::ParenSelect(node)
34482    }
34483}
34484impl From<Select> for SelectVariant {
34485    #[inline]
34486    fn from(node: Select) -> SelectVariant {
34487        SelectVariant::Select(node)
34488    }
34489}
34490impl From<SelectInto> for SelectVariant {
34491    #[inline]
34492    fn from(node: SelectInto) -> SelectVariant {
34493        SelectVariant::SelectInto(node)
34494    }
34495}
34496impl From<Table> for SelectVariant {
34497    #[inline]
34498    fn from(node: Table) -> SelectVariant {
34499        SelectVariant::Table(node)
34500    }
34501}
34502impl From<Values> for SelectVariant {
34503    #[inline]
34504    fn from(node: Values) -> SelectVariant {
34505        SelectVariant::Values(node)
34506    }
34507}
34508impl AstNode for SetColumn {
34509    #[inline]
34510    fn can_cast(kind: SyntaxKind) -> bool {
34511        matches!(
34512            kind,
34513            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
34514        )
34515    }
34516    #[inline]
34517    fn cast(syntax: SyntaxNode) -> Option<Self> {
34518        let res = match syntax.kind() {
34519            SyntaxKind::SET_MULTIPLE_COLUMNS => {
34520                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
34521            }
34522            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
34523            _ => {
34524                return None;
34525            }
34526        };
34527        Some(res)
34528    }
34529    #[inline]
34530    fn syntax(&self) -> &SyntaxNode {
34531        match self {
34532            SetColumn::SetMultipleColumns(it) => &it.syntax,
34533            SetColumn::SetSingleColumn(it) => &it.syntax,
34534        }
34535    }
34536}
34537impl From<SetMultipleColumns> for SetColumn {
34538    #[inline]
34539    fn from(node: SetMultipleColumns) -> SetColumn {
34540        SetColumn::SetMultipleColumns(node)
34541    }
34542}
34543impl From<SetSingleColumn> for SetColumn {
34544    #[inline]
34545    fn from(node: SetSingleColumn) -> SetColumn {
34546        SetColumn::SetSingleColumn(node)
34547    }
34548}
34549impl AstNode for Stmt {
34550    #[inline]
34551    fn can_cast(kind: SyntaxKind) -> bool {
34552        matches!(
34553            kind,
34554            SyntaxKind::ALTER_AGGREGATE
34555                | SyntaxKind::ALTER_COLLATION
34556                | SyntaxKind::ALTER_CONVERSION
34557                | SyntaxKind::ALTER_DATABASE
34558                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
34559                | SyntaxKind::ALTER_DOMAIN
34560                | SyntaxKind::ALTER_EVENT_TRIGGER
34561                | SyntaxKind::ALTER_EXTENSION
34562                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
34563                | SyntaxKind::ALTER_FOREIGN_TABLE
34564                | SyntaxKind::ALTER_FUNCTION
34565                | SyntaxKind::ALTER_GROUP
34566                | SyntaxKind::ALTER_INDEX
34567                | SyntaxKind::ALTER_LANGUAGE
34568                | SyntaxKind::ALTER_LARGE_OBJECT
34569                | SyntaxKind::ALTER_MATERIALIZED_VIEW
34570                | SyntaxKind::ALTER_OPERATOR
34571                | SyntaxKind::ALTER_OPERATOR_CLASS
34572                | SyntaxKind::ALTER_OPERATOR_FAMILY
34573                | SyntaxKind::ALTER_POLICY
34574                | SyntaxKind::ALTER_PROCEDURE
34575                | SyntaxKind::ALTER_PROPERTY_GRAPH
34576                | SyntaxKind::ALTER_PUBLICATION
34577                | SyntaxKind::ALTER_ROLE
34578                | SyntaxKind::ALTER_ROUTINE
34579                | SyntaxKind::ALTER_RULE
34580                | SyntaxKind::ALTER_SCHEMA
34581                | SyntaxKind::ALTER_SEQUENCE
34582                | SyntaxKind::ALTER_SERVER
34583                | SyntaxKind::ALTER_STATISTICS
34584                | SyntaxKind::ALTER_SUBSCRIPTION
34585                | SyntaxKind::ALTER_SYSTEM
34586                | SyntaxKind::ALTER_TABLE
34587                | SyntaxKind::ALTER_TABLESPACE
34588                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
34589                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
34590                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
34591                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
34592                | SyntaxKind::ALTER_TRIGGER
34593                | SyntaxKind::ALTER_TYPE
34594                | SyntaxKind::ALTER_USER
34595                | SyntaxKind::ALTER_USER_MAPPING
34596                | SyntaxKind::ALTER_VIEW
34597                | SyntaxKind::ANALYZE
34598                | SyntaxKind::BEGIN
34599                | SyntaxKind::CALL
34600                | SyntaxKind::CHECKPOINT
34601                | SyntaxKind::CLOSE
34602                | SyntaxKind::CLUSTER
34603                | SyntaxKind::COMMENT_ON
34604                | SyntaxKind::COMMIT
34605                | SyntaxKind::COPY
34606                | SyntaxKind::CREATE_ACCESS_METHOD
34607                | SyntaxKind::CREATE_AGGREGATE
34608                | SyntaxKind::CREATE_CAST
34609                | SyntaxKind::CREATE_COLLATION
34610                | SyntaxKind::CREATE_CONVERSION
34611                | SyntaxKind::CREATE_DATABASE
34612                | SyntaxKind::CREATE_DOMAIN
34613                | SyntaxKind::CREATE_EVENT_TRIGGER
34614                | SyntaxKind::CREATE_EXTENSION
34615                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
34616                | SyntaxKind::CREATE_FOREIGN_TABLE
34617                | SyntaxKind::CREATE_FUNCTION
34618                | SyntaxKind::CREATE_GROUP
34619                | SyntaxKind::CREATE_INDEX
34620                | SyntaxKind::CREATE_LANGUAGE
34621                | SyntaxKind::CREATE_MATERIALIZED_VIEW
34622                | SyntaxKind::CREATE_OPERATOR
34623                | SyntaxKind::CREATE_OPERATOR_CLASS
34624                | SyntaxKind::CREATE_OPERATOR_FAMILY
34625                | SyntaxKind::CREATE_POLICY
34626                | SyntaxKind::CREATE_PROCEDURE
34627                | SyntaxKind::CREATE_PROPERTY_GRAPH
34628                | SyntaxKind::CREATE_PUBLICATION
34629                | SyntaxKind::CREATE_ROLE
34630                | SyntaxKind::CREATE_RULE
34631                | SyntaxKind::CREATE_SCHEMA
34632                | SyntaxKind::CREATE_SEQUENCE
34633                | SyntaxKind::CREATE_SERVER
34634                | SyntaxKind::CREATE_STATISTICS
34635                | SyntaxKind::CREATE_SUBSCRIPTION
34636                | SyntaxKind::CREATE_TABLE
34637                | SyntaxKind::CREATE_TABLE_AS
34638                | SyntaxKind::CREATE_TABLESPACE
34639                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
34640                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
34641                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
34642                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
34643                | SyntaxKind::CREATE_TRANSFORM
34644                | SyntaxKind::CREATE_TRIGGER
34645                | SyntaxKind::CREATE_TYPE
34646                | SyntaxKind::CREATE_USER
34647                | SyntaxKind::CREATE_USER_MAPPING
34648                | SyntaxKind::CREATE_VIEW
34649                | SyntaxKind::DEALLOCATE
34650                | SyntaxKind::DECLARE
34651                | SyntaxKind::DELETE
34652                | SyntaxKind::DISCARD
34653                | SyntaxKind::DO
34654                | SyntaxKind::DROP_ACCESS_METHOD
34655                | SyntaxKind::DROP_AGGREGATE
34656                | SyntaxKind::DROP_CAST
34657                | SyntaxKind::DROP_COLLATION
34658                | SyntaxKind::DROP_CONVERSION
34659                | SyntaxKind::DROP_DATABASE
34660                | SyntaxKind::DROP_DOMAIN
34661                | SyntaxKind::DROP_EVENT_TRIGGER
34662                | SyntaxKind::DROP_EXTENSION
34663                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
34664                | SyntaxKind::DROP_FOREIGN_TABLE
34665                | SyntaxKind::DROP_FUNCTION
34666                | SyntaxKind::DROP_GROUP
34667                | SyntaxKind::DROP_INDEX
34668                | SyntaxKind::DROP_LANGUAGE
34669                | SyntaxKind::DROP_MATERIALIZED_VIEW
34670                | SyntaxKind::DROP_OPERATOR
34671                | SyntaxKind::DROP_OPERATOR_CLASS
34672                | SyntaxKind::DROP_OPERATOR_FAMILY
34673                | SyntaxKind::DROP_OWNED
34674                | SyntaxKind::DROP_POLICY
34675                | SyntaxKind::DROP_PROCEDURE
34676                | SyntaxKind::DROP_PROPERTY_GRAPH
34677                | SyntaxKind::DROP_PUBLICATION
34678                | SyntaxKind::DROP_ROLE
34679                | SyntaxKind::DROP_ROUTINE
34680                | SyntaxKind::DROP_RULE
34681                | SyntaxKind::DROP_SCHEMA
34682                | SyntaxKind::DROP_SEQUENCE
34683                | SyntaxKind::DROP_SERVER
34684                | SyntaxKind::DROP_STATISTICS
34685                | SyntaxKind::DROP_SUBSCRIPTION
34686                | SyntaxKind::DROP_TABLE
34687                | SyntaxKind::DROP_TABLESPACE
34688                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
34689                | SyntaxKind::DROP_TEXT_SEARCH_DICT
34690                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
34691                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
34692                | SyntaxKind::DROP_TRANSFORM
34693                | SyntaxKind::DROP_TRIGGER
34694                | SyntaxKind::DROP_TYPE
34695                | SyntaxKind::DROP_USER
34696                | SyntaxKind::DROP_USER_MAPPING
34697                | SyntaxKind::DROP_VIEW
34698                | SyntaxKind::EXECUTE
34699                | SyntaxKind::EXPLAIN
34700                | SyntaxKind::FETCH
34701                | SyntaxKind::GRANT
34702                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
34703                | SyntaxKind::INSERT
34704                | SyntaxKind::LISTEN
34705                | SyntaxKind::LOAD
34706                | SyntaxKind::LOCK
34707                | SyntaxKind::MERGE
34708                | SyntaxKind::MOVE
34709                | SyntaxKind::NOTIFY
34710                | SyntaxKind::PAREN_SELECT
34711                | SyntaxKind::PREPARE
34712                | SyntaxKind::PREPARE_TRANSACTION
34713                | SyntaxKind::REASSIGN
34714                | SyntaxKind::REFRESH
34715                | SyntaxKind::REINDEX
34716                | SyntaxKind::RELEASE_SAVEPOINT
34717                | SyntaxKind::REPACK
34718                | SyntaxKind::RESET
34719                | SyntaxKind::RESET_SESSION_AUTH
34720                | SyntaxKind::REVOKE
34721                | SyntaxKind::ROLLBACK
34722                | SyntaxKind::SAVEPOINT
34723                | SyntaxKind::SECURITY_LABEL
34724                | SyntaxKind::SELECT
34725                | SyntaxKind::SELECT_INTO
34726                | SyntaxKind::SET
34727                | SyntaxKind::SET_CONSTRAINTS
34728                | SyntaxKind::SET_ROLE
34729                | SyntaxKind::SET_SESSION_AUTH
34730                | SyntaxKind::SET_TRANSACTION
34731                | SyntaxKind::SHOW
34732                | SyntaxKind::TABLE
34733                | SyntaxKind::TRUNCATE
34734                | SyntaxKind::UNLISTEN
34735                | SyntaxKind::UPDATE
34736                | SyntaxKind::VACUUM
34737                | SyntaxKind::VALUES
34738        )
34739    }
34740    #[inline]
34741    fn cast(syntax: SyntaxNode) -> Option<Self> {
34742        let res = match syntax.kind() {
34743            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
34744            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
34745            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
34746            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
34747            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
34748                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
34749            }
34750            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
34751            SyntaxKind::ALTER_EVENT_TRIGGER => {
34752                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
34753            }
34754            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
34755            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
34756                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
34757            }
34758            SyntaxKind::ALTER_FOREIGN_TABLE => {
34759                Stmt::AlterForeignTable(AlterForeignTable { syntax })
34760            }
34761            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
34762            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
34763            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
34764            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
34765            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
34766            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
34767                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
34768            }
34769            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
34770            SyntaxKind::ALTER_OPERATOR_CLASS => {
34771                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
34772            }
34773            SyntaxKind::ALTER_OPERATOR_FAMILY => {
34774                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
34775            }
34776            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
34777            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
34778            SyntaxKind::ALTER_PROPERTY_GRAPH => {
34779                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
34780            }
34781            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
34782            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
34783            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
34784            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
34785            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
34786            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
34787            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
34788            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
34789            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
34790            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
34791            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
34792            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
34793            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
34794                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
34795            }
34796            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
34797                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
34798            }
34799            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
34800                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
34801            }
34802            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
34803                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
34804            }
34805            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
34806            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
34807            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
34808            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
34809            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
34810            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
34811            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
34812            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
34813            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
34814            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
34815            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
34816            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
34817            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
34818            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
34819            SyntaxKind::CREATE_ACCESS_METHOD => {
34820                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
34821            }
34822            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
34823            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
34824            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
34825            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
34826            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
34827            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
34828            SyntaxKind::CREATE_EVENT_TRIGGER => {
34829                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
34830            }
34831            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
34832            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
34833                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
34834            }
34835            SyntaxKind::CREATE_FOREIGN_TABLE => {
34836                Stmt::CreateForeignTable(CreateForeignTable { syntax })
34837            }
34838            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
34839            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
34840            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
34841            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
34842            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
34843                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
34844            }
34845            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
34846            SyntaxKind::CREATE_OPERATOR_CLASS => {
34847                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
34848            }
34849            SyntaxKind::CREATE_OPERATOR_FAMILY => {
34850                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
34851            }
34852            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
34853            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
34854            SyntaxKind::CREATE_PROPERTY_GRAPH => {
34855                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
34856            }
34857            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
34858            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
34859            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
34860            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
34861            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
34862            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
34863            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
34864            SyntaxKind::CREATE_SUBSCRIPTION => {
34865                Stmt::CreateSubscription(CreateSubscription { syntax })
34866            }
34867            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
34868            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
34869            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
34870            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
34871                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
34872            }
34873            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
34874                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
34875            }
34876            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
34877                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
34878            }
34879            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
34880                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
34881            }
34882            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
34883            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
34884            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
34885            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
34886            SyntaxKind::CREATE_USER_MAPPING => {
34887                Stmt::CreateUserMapping(CreateUserMapping { syntax })
34888            }
34889            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
34890            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
34891            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
34892            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
34893            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
34894            SyntaxKind::DO => Stmt::Do(Do { syntax }),
34895            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
34896            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
34897            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
34898            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
34899            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
34900            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
34901            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
34902            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
34903            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
34904            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
34905                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
34906            }
34907            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
34908            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
34909            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
34910            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
34911            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
34912            SyntaxKind::DROP_MATERIALIZED_VIEW => {
34913                Stmt::DropMaterializedView(DropMaterializedView { syntax })
34914            }
34915            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
34916            SyntaxKind::DROP_OPERATOR_CLASS => {
34917                Stmt::DropOperatorClass(DropOperatorClass { syntax })
34918            }
34919            SyntaxKind::DROP_OPERATOR_FAMILY => {
34920                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
34921            }
34922            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
34923            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
34924            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
34925            SyntaxKind::DROP_PROPERTY_GRAPH => {
34926                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
34927            }
34928            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
34929            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
34930            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
34931            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
34932            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
34933            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
34934            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
34935            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
34936            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
34937            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
34938            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
34939            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
34940                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
34941            }
34942            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
34943                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
34944            }
34945            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
34946                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
34947            }
34948            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
34949                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
34950            }
34951            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
34952            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
34953            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
34954            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
34955            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
34956            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
34957            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
34958            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
34959            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
34960            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
34961            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
34962                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
34963            }
34964            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
34965            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
34966            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
34967            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
34968            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
34969            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
34970            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
34971            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
34972            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
34973            SyntaxKind::PREPARE_TRANSACTION => {
34974                Stmt::PrepareTransaction(PrepareTransaction { syntax })
34975            }
34976            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
34977            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
34978            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
34979            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
34980            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
34981            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
34982            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
34983            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
34984            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
34985            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
34986            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
34987            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
34988            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
34989            SyntaxKind::SET => Stmt::Set(Set { syntax }),
34990            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
34991            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
34992            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
34993            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
34994            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
34995            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
34996            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
34997            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
34998            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
34999            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
35000            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
35001            _ => {
35002                return None;
35003            }
35004        };
35005        Some(res)
35006    }
35007    #[inline]
35008    fn syntax(&self) -> &SyntaxNode {
35009        match self {
35010            Stmt::AlterAggregate(it) => &it.syntax,
35011            Stmt::AlterCollation(it) => &it.syntax,
35012            Stmt::AlterConversion(it) => &it.syntax,
35013            Stmt::AlterDatabase(it) => &it.syntax,
35014            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
35015            Stmt::AlterDomain(it) => &it.syntax,
35016            Stmt::AlterEventTrigger(it) => &it.syntax,
35017            Stmt::AlterExtension(it) => &it.syntax,
35018            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
35019            Stmt::AlterForeignTable(it) => &it.syntax,
35020            Stmt::AlterFunction(it) => &it.syntax,
35021            Stmt::AlterGroup(it) => &it.syntax,
35022            Stmt::AlterIndex(it) => &it.syntax,
35023            Stmt::AlterLanguage(it) => &it.syntax,
35024            Stmt::AlterLargeObject(it) => &it.syntax,
35025            Stmt::AlterMaterializedView(it) => &it.syntax,
35026            Stmt::AlterOperator(it) => &it.syntax,
35027            Stmt::AlterOperatorClass(it) => &it.syntax,
35028            Stmt::AlterOperatorFamily(it) => &it.syntax,
35029            Stmt::AlterPolicy(it) => &it.syntax,
35030            Stmt::AlterProcedure(it) => &it.syntax,
35031            Stmt::AlterPropertyGraph(it) => &it.syntax,
35032            Stmt::AlterPublication(it) => &it.syntax,
35033            Stmt::AlterRole(it) => &it.syntax,
35034            Stmt::AlterRoutine(it) => &it.syntax,
35035            Stmt::AlterRule(it) => &it.syntax,
35036            Stmt::AlterSchema(it) => &it.syntax,
35037            Stmt::AlterSequence(it) => &it.syntax,
35038            Stmt::AlterServer(it) => &it.syntax,
35039            Stmt::AlterStatistics(it) => &it.syntax,
35040            Stmt::AlterSubscription(it) => &it.syntax,
35041            Stmt::AlterSystem(it) => &it.syntax,
35042            Stmt::AlterTable(it) => &it.syntax,
35043            Stmt::AlterTablespace(it) => &it.syntax,
35044            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
35045            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
35046            Stmt::AlterTextSearchParser(it) => &it.syntax,
35047            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
35048            Stmt::AlterTrigger(it) => &it.syntax,
35049            Stmt::AlterType(it) => &it.syntax,
35050            Stmt::AlterUser(it) => &it.syntax,
35051            Stmt::AlterUserMapping(it) => &it.syntax,
35052            Stmt::AlterView(it) => &it.syntax,
35053            Stmt::Analyze(it) => &it.syntax,
35054            Stmt::Begin(it) => &it.syntax,
35055            Stmt::Call(it) => &it.syntax,
35056            Stmt::Checkpoint(it) => &it.syntax,
35057            Stmt::Close(it) => &it.syntax,
35058            Stmt::Cluster(it) => &it.syntax,
35059            Stmt::CommentOn(it) => &it.syntax,
35060            Stmt::Commit(it) => &it.syntax,
35061            Stmt::Copy(it) => &it.syntax,
35062            Stmt::CreateAccessMethod(it) => &it.syntax,
35063            Stmt::CreateAggregate(it) => &it.syntax,
35064            Stmt::CreateCast(it) => &it.syntax,
35065            Stmt::CreateCollation(it) => &it.syntax,
35066            Stmt::CreateConversion(it) => &it.syntax,
35067            Stmt::CreateDatabase(it) => &it.syntax,
35068            Stmt::CreateDomain(it) => &it.syntax,
35069            Stmt::CreateEventTrigger(it) => &it.syntax,
35070            Stmt::CreateExtension(it) => &it.syntax,
35071            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
35072            Stmt::CreateForeignTable(it) => &it.syntax,
35073            Stmt::CreateFunction(it) => &it.syntax,
35074            Stmt::CreateGroup(it) => &it.syntax,
35075            Stmt::CreateIndex(it) => &it.syntax,
35076            Stmt::CreateLanguage(it) => &it.syntax,
35077            Stmt::CreateMaterializedView(it) => &it.syntax,
35078            Stmt::CreateOperator(it) => &it.syntax,
35079            Stmt::CreateOperatorClass(it) => &it.syntax,
35080            Stmt::CreateOperatorFamily(it) => &it.syntax,
35081            Stmt::CreatePolicy(it) => &it.syntax,
35082            Stmt::CreateProcedure(it) => &it.syntax,
35083            Stmt::CreatePropertyGraph(it) => &it.syntax,
35084            Stmt::CreatePublication(it) => &it.syntax,
35085            Stmt::CreateRole(it) => &it.syntax,
35086            Stmt::CreateRule(it) => &it.syntax,
35087            Stmt::CreateSchema(it) => &it.syntax,
35088            Stmt::CreateSequence(it) => &it.syntax,
35089            Stmt::CreateServer(it) => &it.syntax,
35090            Stmt::CreateStatistics(it) => &it.syntax,
35091            Stmt::CreateSubscription(it) => &it.syntax,
35092            Stmt::CreateTable(it) => &it.syntax,
35093            Stmt::CreateTableAs(it) => &it.syntax,
35094            Stmt::CreateTablespace(it) => &it.syntax,
35095            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
35096            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
35097            Stmt::CreateTextSearchParser(it) => &it.syntax,
35098            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
35099            Stmt::CreateTransform(it) => &it.syntax,
35100            Stmt::CreateTrigger(it) => &it.syntax,
35101            Stmt::CreateType(it) => &it.syntax,
35102            Stmt::CreateUser(it) => &it.syntax,
35103            Stmt::CreateUserMapping(it) => &it.syntax,
35104            Stmt::CreateView(it) => &it.syntax,
35105            Stmt::Deallocate(it) => &it.syntax,
35106            Stmt::Declare(it) => &it.syntax,
35107            Stmt::Delete(it) => &it.syntax,
35108            Stmt::Discard(it) => &it.syntax,
35109            Stmt::Do(it) => &it.syntax,
35110            Stmt::DropAccessMethod(it) => &it.syntax,
35111            Stmt::DropAggregate(it) => &it.syntax,
35112            Stmt::DropCast(it) => &it.syntax,
35113            Stmt::DropCollation(it) => &it.syntax,
35114            Stmt::DropConversion(it) => &it.syntax,
35115            Stmt::DropDatabase(it) => &it.syntax,
35116            Stmt::DropDomain(it) => &it.syntax,
35117            Stmt::DropEventTrigger(it) => &it.syntax,
35118            Stmt::DropExtension(it) => &it.syntax,
35119            Stmt::DropForeignDataWrapper(it) => &it.syntax,
35120            Stmt::DropForeignTable(it) => &it.syntax,
35121            Stmt::DropFunction(it) => &it.syntax,
35122            Stmt::DropGroup(it) => &it.syntax,
35123            Stmt::DropIndex(it) => &it.syntax,
35124            Stmt::DropLanguage(it) => &it.syntax,
35125            Stmt::DropMaterializedView(it) => &it.syntax,
35126            Stmt::DropOperator(it) => &it.syntax,
35127            Stmt::DropOperatorClass(it) => &it.syntax,
35128            Stmt::DropOperatorFamily(it) => &it.syntax,
35129            Stmt::DropOwned(it) => &it.syntax,
35130            Stmt::DropPolicy(it) => &it.syntax,
35131            Stmt::DropProcedure(it) => &it.syntax,
35132            Stmt::DropPropertyGraph(it) => &it.syntax,
35133            Stmt::DropPublication(it) => &it.syntax,
35134            Stmt::DropRole(it) => &it.syntax,
35135            Stmt::DropRoutine(it) => &it.syntax,
35136            Stmt::DropRule(it) => &it.syntax,
35137            Stmt::DropSchema(it) => &it.syntax,
35138            Stmt::DropSequence(it) => &it.syntax,
35139            Stmt::DropServer(it) => &it.syntax,
35140            Stmt::DropStatistics(it) => &it.syntax,
35141            Stmt::DropSubscription(it) => &it.syntax,
35142            Stmt::DropTable(it) => &it.syntax,
35143            Stmt::DropTablespace(it) => &it.syntax,
35144            Stmt::DropTextSearchConfig(it) => &it.syntax,
35145            Stmt::DropTextSearchDict(it) => &it.syntax,
35146            Stmt::DropTextSearchParser(it) => &it.syntax,
35147            Stmt::DropTextSearchTemplate(it) => &it.syntax,
35148            Stmt::DropTransform(it) => &it.syntax,
35149            Stmt::DropTrigger(it) => &it.syntax,
35150            Stmt::DropType(it) => &it.syntax,
35151            Stmt::DropUser(it) => &it.syntax,
35152            Stmt::DropUserMapping(it) => &it.syntax,
35153            Stmt::DropView(it) => &it.syntax,
35154            Stmt::Execute(it) => &it.syntax,
35155            Stmt::Explain(it) => &it.syntax,
35156            Stmt::Fetch(it) => &it.syntax,
35157            Stmt::Grant(it) => &it.syntax,
35158            Stmt::ImportForeignSchema(it) => &it.syntax,
35159            Stmt::Insert(it) => &it.syntax,
35160            Stmt::Listen(it) => &it.syntax,
35161            Stmt::Load(it) => &it.syntax,
35162            Stmt::Lock(it) => &it.syntax,
35163            Stmt::Merge(it) => &it.syntax,
35164            Stmt::Move(it) => &it.syntax,
35165            Stmt::Notify(it) => &it.syntax,
35166            Stmt::ParenSelect(it) => &it.syntax,
35167            Stmt::Prepare(it) => &it.syntax,
35168            Stmt::PrepareTransaction(it) => &it.syntax,
35169            Stmt::Reassign(it) => &it.syntax,
35170            Stmt::Refresh(it) => &it.syntax,
35171            Stmt::Reindex(it) => &it.syntax,
35172            Stmt::ReleaseSavepoint(it) => &it.syntax,
35173            Stmt::Repack(it) => &it.syntax,
35174            Stmt::Reset(it) => &it.syntax,
35175            Stmt::ResetSessionAuth(it) => &it.syntax,
35176            Stmt::Revoke(it) => &it.syntax,
35177            Stmt::Rollback(it) => &it.syntax,
35178            Stmt::Savepoint(it) => &it.syntax,
35179            Stmt::SecurityLabel(it) => &it.syntax,
35180            Stmt::Select(it) => &it.syntax,
35181            Stmt::SelectInto(it) => &it.syntax,
35182            Stmt::Set(it) => &it.syntax,
35183            Stmt::SetConstraints(it) => &it.syntax,
35184            Stmt::SetRole(it) => &it.syntax,
35185            Stmt::SetSessionAuth(it) => &it.syntax,
35186            Stmt::SetTransaction(it) => &it.syntax,
35187            Stmt::Show(it) => &it.syntax,
35188            Stmt::Table(it) => &it.syntax,
35189            Stmt::Truncate(it) => &it.syntax,
35190            Stmt::Unlisten(it) => &it.syntax,
35191            Stmt::Update(it) => &it.syntax,
35192            Stmt::Vacuum(it) => &it.syntax,
35193            Stmt::Values(it) => &it.syntax,
35194        }
35195    }
35196}
35197impl From<AlterAggregate> for Stmt {
35198    #[inline]
35199    fn from(node: AlterAggregate) -> Stmt {
35200        Stmt::AlterAggregate(node)
35201    }
35202}
35203impl From<AlterCollation> for Stmt {
35204    #[inline]
35205    fn from(node: AlterCollation) -> Stmt {
35206        Stmt::AlterCollation(node)
35207    }
35208}
35209impl From<AlterConversion> for Stmt {
35210    #[inline]
35211    fn from(node: AlterConversion) -> Stmt {
35212        Stmt::AlterConversion(node)
35213    }
35214}
35215impl From<AlterDatabase> for Stmt {
35216    #[inline]
35217    fn from(node: AlterDatabase) -> Stmt {
35218        Stmt::AlterDatabase(node)
35219    }
35220}
35221impl From<AlterDefaultPrivileges> for Stmt {
35222    #[inline]
35223    fn from(node: AlterDefaultPrivileges) -> Stmt {
35224        Stmt::AlterDefaultPrivileges(node)
35225    }
35226}
35227impl From<AlterDomain> for Stmt {
35228    #[inline]
35229    fn from(node: AlterDomain) -> Stmt {
35230        Stmt::AlterDomain(node)
35231    }
35232}
35233impl From<AlterEventTrigger> for Stmt {
35234    #[inline]
35235    fn from(node: AlterEventTrigger) -> Stmt {
35236        Stmt::AlterEventTrigger(node)
35237    }
35238}
35239impl From<AlterExtension> for Stmt {
35240    #[inline]
35241    fn from(node: AlterExtension) -> Stmt {
35242        Stmt::AlterExtension(node)
35243    }
35244}
35245impl From<AlterForeignDataWrapper> for Stmt {
35246    #[inline]
35247    fn from(node: AlterForeignDataWrapper) -> Stmt {
35248        Stmt::AlterForeignDataWrapper(node)
35249    }
35250}
35251impl From<AlterForeignTable> for Stmt {
35252    #[inline]
35253    fn from(node: AlterForeignTable) -> Stmt {
35254        Stmt::AlterForeignTable(node)
35255    }
35256}
35257impl From<AlterFunction> for Stmt {
35258    #[inline]
35259    fn from(node: AlterFunction) -> Stmt {
35260        Stmt::AlterFunction(node)
35261    }
35262}
35263impl From<AlterGroup> for Stmt {
35264    #[inline]
35265    fn from(node: AlterGroup) -> Stmt {
35266        Stmt::AlterGroup(node)
35267    }
35268}
35269impl From<AlterIndex> for Stmt {
35270    #[inline]
35271    fn from(node: AlterIndex) -> Stmt {
35272        Stmt::AlterIndex(node)
35273    }
35274}
35275impl From<AlterLanguage> for Stmt {
35276    #[inline]
35277    fn from(node: AlterLanguage) -> Stmt {
35278        Stmt::AlterLanguage(node)
35279    }
35280}
35281impl From<AlterLargeObject> for Stmt {
35282    #[inline]
35283    fn from(node: AlterLargeObject) -> Stmt {
35284        Stmt::AlterLargeObject(node)
35285    }
35286}
35287impl From<AlterMaterializedView> for Stmt {
35288    #[inline]
35289    fn from(node: AlterMaterializedView) -> Stmt {
35290        Stmt::AlterMaterializedView(node)
35291    }
35292}
35293impl From<AlterOperator> for Stmt {
35294    #[inline]
35295    fn from(node: AlterOperator) -> Stmt {
35296        Stmt::AlterOperator(node)
35297    }
35298}
35299impl From<AlterOperatorClass> for Stmt {
35300    #[inline]
35301    fn from(node: AlterOperatorClass) -> Stmt {
35302        Stmt::AlterOperatorClass(node)
35303    }
35304}
35305impl From<AlterOperatorFamily> for Stmt {
35306    #[inline]
35307    fn from(node: AlterOperatorFamily) -> Stmt {
35308        Stmt::AlterOperatorFamily(node)
35309    }
35310}
35311impl From<AlterPolicy> for Stmt {
35312    #[inline]
35313    fn from(node: AlterPolicy) -> Stmt {
35314        Stmt::AlterPolicy(node)
35315    }
35316}
35317impl From<AlterProcedure> for Stmt {
35318    #[inline]
35319    fn from(node: AlterProcedure) -> Stmt {
35320        Stmt::AlterProcedure(node)
35321    }
35322}
35323impl From<AlterPropertyGraph> for Stmt {
35324    #[inline]
35325    fn from(node: AlterPropertyGraph) -> Stmt {
35326        Stmt::AlterPropertyGraph(node)
35327    }
35328}
35329impl From<AlterPublication> for Stmt {
35330    #[inline]
35331    fn from(node: AlterPublication) -> Stmt {
35332        Stmt::AlterPublication(node)
35333    }
35334}
35335impl From<AlterRole> for Stmt {
35336    #[inline]
35337    fn from(node: AlterRole) -> Stmt {
35338        Stmt::AlterRole(node)
35339    }
35340}
35341impl From<AlterRoutine> for Stmt {
35342    #[inline]
35343    fn from(node: AlterRoutine) -> Stmt {
35344        Stmt::AlterRoutine(node)
35345    }
35346}
35347impl From<AlterRule> for Stmt {
35348    #[inline]
35349    fn from(node: AlterRule) -> Stmt {
35350        Stmt::AlterRule(node)
35351    }
35352}
35353impl From<AlterSchema> for Stmt {
35354    #[inline]
35355    fn from(node: AlterSchema) -> Stmt {
35356        Stmt::AlterSchema(node)
35357    }
35358}
35359impl From<AlterSequence> for Stmt {
35360    #[inline]
35361    fn from(node: AlterSequence) -> Stmt {
35362        Stmt::AlterSequence(node)
35363    }
35364}
35365impl From<AlterServer> for Stmt {
35366    #[inline]
35367    fn from(node: AlterServer) -> Stmt {
35368        Stmt::AlterServer(node)
35369    }
35370}
35371impl From<AlterStatistics> for Stmt {
35372    #[inline]
35373    fn from(node: AlterStatistics) -> Stmt {
35374        Stmt::AlterStatistics(node)
35375    }
35376}
35377impl From<AlterSubscription> for Stmt {
35378    #[inline]
35379    fn from(node: AlterSubscription) -> Stmt {
35380        Stmt::AlterSubscription(node)
35381    }
35382}
35383impl From<AlterSystem> for Stmt {
35384    #[inline]
35385    fn from(node: AlterSystem) -> Stmt {
35386        Stmt::AlterSystem(node)
35387    }
35388}
35389impl From<AlterTable> for Stmt {
35390    #[inline]
35391    fn from(node: AlterTable) -> Stmt {
35392        Stmt::AlterTable(node)
35393    }
35394}
35395impl From<AlterTablespace> for Stmt {
35396    #[inline]
35397    fn from(node: AlterTablespace) -> Stmt {
35398        Stmt::AlterTablespace(node)
35399    }
35400}
35401impl From<AlterTextSearchConfiguration> for Stmt {
35402    #[inline]
35403    fn from(node: AlterTextSearchConfiguration) -> Stmt {
35404        Stmt::AlterTextSearchConfiguration(node)
35405    }
35406}
35407impl From<AlterTextSearchDictionary> for Stmt {
35408    #[inline]
35409    fn from(node: AlterTextSearchDictionary) -> Stmt {
35410        Stmt::AlterTextSearchDictionary(node)
35411    }
35412}
35413impl From<AlterTextSearchParser> for Stmt {
35414    #[inline]
35415    fn from(node: AlterTextSearchParser) -> Stmt {
35416        Stmt::AlterTextSearchParser(node)
35417    }
35418}
35419impl From<AlterTextSearchTemplate> for Stmt {
35420    #[inline]
35421    fn from(node: AlterTextSearchTemplate) -> Stmt {
35422        Stmt::AlterTextSearchTemplate(node)
35423    }
35424}
35425impl From<AlterTrigger> for Stmt {
35426    #[inline]
35427    fn from(node: AlterTrigger) -> Stmt {
35428        Stmt::AlterTrigger(node)
35429    }
35430}
35431impl From<AlterType> for Stmt {
35432    #[inline]
35433    fn from(node: AlterType) -> Stmt {
35434        Stmt::AlterType(node)
35435    }
35436}
35437impl From<AlterUser> for Stmt {
35438    #[inline]
35439    fn from(node: AlterUser) -> Stmt {
35440        Stmt::AlterUser(node)
35441    }
35442}
35443impl From<AlterUserMapping> for Stmt {
35444    #[inline]
35445    fn from(node: AlterUserMapping) -> Stmt {
35446        Stmt::AlterUserMapping(node)
35447    }
35448}
35449impl From<AlterView> for Stmt {
35450    #[inline]
35451    fn from(node: AlterView) -> Stmt {
35452        Stmt::AlterView(node)
35453    }
35454}
35455impl From<Analyze> for Stmt {
35456    #[inline]
35457    fn from(node: Analyze) -> Stmt {
35458        Stmt::Analyze(node)
35459    }
35460}
35461impl From<Begin> for Stmt {
35462    #[inline]
35463    fn from(node: Begin) -> Stmt {
35464        Stmt::Begin(node)
35465    }
35466}
35467impl From<Call> for Stmt {
35468    #[inline]
35469    fn from(node: Call) -> Stmt {
35470        Stmt::Call(node)
35471    }
35472}
35473impl From<Checkpoint> for Stmt {
35474    #[inline]
35475    fn from(node: Checkpoint) -> Stmt {
35476        Stmt::Checkpoint(node)
35477    }
35478}
35479impl From<Close> for Stmt {
35480    #[inline]
35481    fn from(node: Close) -> Stmt {
35482        Stmt::Close(node)
35483    }
35484}
35485impl From<Cluster> for Stmt {
35486    #[inline]
35487    fn from(node: Cluster) -> Stmt {
35488        Stmt::Cluster(node)
35489    }
35490}
35491impl From<CommentOn> for Stmt {
35492    #[inline]
35493    fn from(node: CommentOn) -> Stmt {
35494        Stmt::CommentOn(node)
35495    }
35496}
35497impl From<Commit> for Stmt {
35498    #[inline]
35499    fn from(node: Commit) -> Stmt {
35500        Stmt::Commit(node)
35501    }
35502}
35503impl From<Copy> for Stmt {
35504    #[inline]
35505    fn from(node: Copy) -> Stmt {
35506        Stmt::Copy(node)
35507    }
35508}
35509impl From<CreateAccessMethod> for Stmt {
35510    #[inline]
35511    fn from(node: CreateAccessMethod) -> Stmt {
35512        Stmt::CreateAccessMethod(node)
35513    }
35514}
35515impl From<CreateAggregate> for Stmt {
35516    #[inline]
35517    fn from(node: CreateAggregate) -> Stmt {
35518        Stmt::CreateAggregate(node)
35519    }
35520}
35521impl From<CreateCast> for Stmt {
35522    #[inline]
35523    fn from(node: CreateCast) -> Stmt {
35524        Stmt::CreateCast(node)
35525    }
35526}
35527impl From<CreateCollation> for Stmt {
35528    #[inline]
35529    fn from(node: CreateCollation) -> Stmt {
35530        Stmt::CreateCollation(node)
35531    }
35532}
35533impl From<CreateConversion> for Stmt {
35534    #[inline]
35535    fn from(node: CreateConversion) -> Stmt {
35536        Stmt::CreateConversion(node)
35537    }
35538}
35539impl From<CreateDatabase> for Stmt {
35540    #[inline]
35541    fn from(node: CreateDatabase) -> Stmt {
35542        Stmt::CreateDatabase(node)
35543    }
35544}
35545impl From<CreateDomain> for Stmt {
35546    #[inline]
35547    fn from(node: CreateDomain) -> Stmt {
35548        Stmt::CreateDomain(node)
35549    }
35550}
35551impl From<CreateEventTrigger> for Stmt {
35552    #[inline]
35553    fn from(node: CreateEventTrigger) -> Stmt {
35554        Stmt::CreateEventTrigger(node)
35555    }
35556}
35557impl From<CreateExtension> for Stmt {
35558    #[inline]
35559    fn from(node: CreateExtension) -> Stmt {
35560        Stmt::CreateExtension(node)
35561    }
35562}
35563impl From<CreateForeignDataWrapper> for Stmt {
35564    #[inline]
35565    fn from(node: CreateForeignDataWrapper) -> Stmt {
35566        Stmt::CreateForeignDataWrapper(node)
35567    }
35568}
35569impl From<CreateForeignTable> for Stmt {
35570    #[inline]
35571    fn from(node: CreateForeignTable) -> Stmt {
35572        Stmt::CreateForeignTable(node)
35573    }
35574}
35575impl From<CreateFunction> for Stmt {
35576    #[inline]
35577    fn from(node: CreateFunction) -> Stmt {
35578        Stmt::CreateFunction(node)
35579    }
35580}
35581impl From<CreateGroup> for Stmt {
35582    #[inline]
35583    fn from(node: CreateGroup) -> Stmt {
35584        Stmt::CreateGroup(node)
35585    }
35586}
35587impl From<CreateIndex> for Stmt {
35588    #[inline]
35589    fn from(node: CreateIndex) -> Stmt {
35590        Stmt::CreateIndex(node)
35591    }
35592}
35593impl From<CreateLanguage> for Stmt {
35594    #[inline]
35595    fn from(node: CreateLanguage) -> Stmt {
35596        Stmt::CreateLanguage(node)
35597    }
35598}
35599impl From<CreateMaterializedView> for Stmt {
35600    #[inline]
35601    fn from(node: CreateMaterializedView) -> Stmt {
35602        Stmt::CreateMaterializedView(node)
35603    }
35604}
35605impl From<CreateOperator> for Stmt {
35606    #[inline]
35607    fn from(node: CreateOperator) -> Stmt {
35608        Stmt::CreateOperator(node)
35609    }
35610}
35611impl From<CreateOperatorClass> for Stmt {
35612    #[inline]
35613    fn from(node: CreateOperatorClass) -> Stmt {
35614        Stmt::CreateOperatorClass(node)
35615    }
35616}
35617impl From<CreateOperatorFamily> for Stmt {
35618    #[inline]
35619    fn from(node: CreateOperatorFamily) -> Stmt {
35620        Stmt::CreateOperatorFamily(node)
35621    }
35622}
35623impl From<CreatePolicy> for Stmt {
35624    #[inline]
35625    fn from(node: CreatePolicy) -> Stmt {
35626        Stmt::CreatePolicy(node)
35627    }
35628}
35629impl From<CreateProcedure> for Stmt {
35630    #[inline]
35631    fn from(node: CreateProcedure) -> Stmt {
35632        Stmt::CreateProcedure(node)
35633    }
35634}
35635impl From<CreatePropertyGraph> for Stmt {
35636    #[inline]
35637    fn from(node: CreatePropertyGraph) -> Stmt {
35638        Stmt::CreatePropertyGraph(node)
35639    }
35640}
35641impl From<CreatePublication> for Stmt {
35642    #[inline]
35643    fn from(node: CreatePublication) -> Stmt {
35644        Stmt::CreatePublication(node)
35645    }
35646}
35647impl From<CreateRole> for Stmt {
35648    #[inline]
35649    fn from(node: CreateRole) -> Stmt {
35650        Stmt::CreateRole(node)
35651    }
35652}
35653impl From<CreateRule> for Stmt {
35654    #[inline]
35655    fn from(node: CreateRule) -> Stmt {
35656        Stmt::CreateRule(node)
35657    }
35658}
35659impl From<CreateSchema> for Stmt {
35660    #[inline]
35661    fn from(node: CreateSchema) -> Stmt {
35662        Stmt::CreateSchema(node)
35663    }
35664}
35665impl From<CreateSequence> for Stmt {
35666    #[inline]
35667    fn from(node: CreateSequence) -> Stmt {
35668        Stmt::CreateSequence(node)
35669    }
35670}
35671impl From<CreateServer> for Stmt {
35672    #[inline]
35673    fn from(node: CreateServer) -> Stmt {
35674        Stmt::CreateServer(node)
35675    }
35676}
35677impl From<CreateStatistics> for Stmt {
35678    #[inline]
35679    fn from(node: CreateStatistics) -> Stmt {
35680        Stmt::CreateStatistics(node)
35681    }
35682}
35683impl From<CreateSubscription> for Stmt {
35684    #[inline]
35685    fn from(node: CreateSubscription) -> Stmt {
35686        Stmt::CreateSubscription(node)
35687    }
35688}
35689impl From<CreateTable> for Stmt {
35690    #[inline]
35691    fn from(node: CreateTable) -> Stmt {
35692        Stmt::CreateTable(node)
35693    }
35694}
35695impl From<CreateTableAs> for Stmt {
35696    #[inline]
35697    fn from(node: CreateTableAs) -> Stmt {
35698        Stmt::CreateTableAs(node)
35699    }
35700}
35701impl From<CreateTablespace> for Stmt {
35702    #[inline]
35703    fn from(node: CreateTablespace) -> Stmt {
35704        Stmt::CreateTablespace(node)
35705    }
35706}
35707impl From<CreateTextSearchConfiguration> for Stmt {
35708    #[inline]
35709    fn from(node: CreateTextSearchConfiguration) -> Stmt {
35710        Stmt::CreateTextSearchConfiguration(node)
35711    }
35712}
35713impl From<CreateTextSearchDictionary> for Stmt {
35714    #[inline]
35715    fn from(node: CreateTextSearchDictionary) -> Stmt {
35716        Stmt::CreateTextSearchDictionary(node)
35717    }
35718}
35719impl From<CreateTextSearchParser> for Stmt {
35720    #[inline]
35721    fn from(node: CreateTextSearchParser) -> Stmt {
35722        Stmt::CreateTextSearchParser(node)
35723    }
35724}
35725impl From<CreateTextSearchTemplate> for Stmt {
35726    #[inline]
35727    fn from(node: CreateTextSearchTemplate) -> Stmt {
35728        Stmt::CreateTextSearchTemplate(node)
35729    }
35730}
35731impl From<CreateTransform> for Stmt {
35732    #[inline]
35733    fn from(node: CreateTransform) -> Stmt {
35734        Stmt::CreateTransform(node)
35735    }
35736}
35737impl From<CreateTrigger> for Stmt {
35738    #[inline]
35739    fn from(node: CreateTrigger) -> Stmt {
35740        Stmt::CreateTrigger(node)
35741    }
35742}
35743impl From<CreateType> for Stmt {
35744    #[inline]
35745    fn from(node: CreateType) -> Stmt {
35746        Stmt::CreateType(node)
35747    }
35748}
35749impl From<CreateUser> for Stmt {
35750    #[inline]
35751    fn from(node: CreateUser) -> Stmt {
35752        Stmt::CreateUser(node)
35753    }
35754}
35755impl From<CreateUserMapping> for Stmt {
35756    #[inline]
35757    fn from(node: CreateUserMapping) -> Stmt {
35758        Stmt::CreateUserMapping(node)
35759    }
35760}
35761impl From<CreateView> for Stmt {
35762    #[inline]
35763    fn from(node: CreateView) -> Stmt {
35764        Stmt::CreateView(node)
35765    }
35766}
35767impl From<Deallocate> for Stmt {
35768    #[inline]
35769    fn from(node: Deallocate) -> Stmt {
35770        Stmt::Deallocate(node)
35771    }
35772}
35773impl From<Declare> for Stmt {
35774    #[inline]
35775    fn from(node: Declare) -> Stmt {
35776        Stmt::Declare(node)
35777    }
35778}
35779impl From<Delete> for Stmt {
35780    #[inline]
35781    fn from(node: Delete) -> Stmt {
35782        Stmt::Delete(node)
35783    }
35784}
35785impl From<Discard> for Stmt {
35786    #[inline]
35787    fn from(node: Discard) -> Stmt {
35788        Stmt::Discard(node)
35789    }
35790}
35791impl From<Do> for Stmt {
35792    #[inline]
35793    fn from(node: Do) -> Stmt {
35794        Stmt::Do(node)
35795    }
35796}
35797impl From<DropAccessMethod> for Stmt {
35798    #[inline]
35799    fn from(node: DropAccessMethod) -> Stmt {
35800        Stmt::DropAccessMethod(node)
35801    }
35802}
35803impl From<DropAggregate> for Stmt {
35804    #[inline]
35805    fn from(node: DropAggregate) -> Stmt {
35806        Stmt::DropAggregate(node)
35807    }
35808}
35809impl From<DropCast> for Stmt {
35810    #[inline]
35811    fn from(node: DropCast) -> Stmt {
35812        Stmt::DropCast(node)
35813    }
35814}
35815impl From<DropCollation> for Stmt {
35816    #[inline]
35817    fn from(node: DropCollation) -> Stmt {
35818        Stmt::DropCollation(node)
35819    }
35820}
35821impl From<DropConversion> for Stmt {
35822    #[inline]
35823    fn from(node: DropConversion) -> Stmt {
35824        Stmt::DropConversion(node)
35825    }
35826}
35827impl From<DropDatabase> for Stmt {
35828    #[inline]
35829    fn from(node: DropDatabase) -> Stmt {
35830        Stmt::DropDatabase(node)
35831    }
35832}
35833impl From<DropDomain> for Stmt {
35834    #[inline]
35835    fn from(node: DropDomain) -> Stmt {
35836        Stmt::DropDomain(node)
35837    }
35838}
35839impl From<DropEventTrigger> for Stmt {
35840    #[inline]
35841    fn from(node: DropEventTrigger) -> Stmt {
35842        Stmt::DropEventTrigger(node)
35843    }
35844}
35845impl From<DropExtension> for Stmt {
35846    #[inline]
35847    fn from(node: DropExtension) -> Stmt {
35848        Stmt::DropExtension(node)
35849    }
35850}
35851impl From<DropForeignDataWrapper> for Stmt {
35852    #[inline]
35853    fn from(node: DropForeignDataWrapper) -> Stmt {
35854        Stmt::DropForeignDataWrapper(node)
35855    }
35856}
35857impl From<DropForeignTable> for Stmt {
35858    #[inline]
35859    fn from(node: DropForeignTable) -> Stmt {
35860        Stmt::DropForeignTable(node)
35861    }
35862}
35863impl From<DropFunction> for Stmt {
35864    #[inline]
35865    fn from(node: DropFunction) -> Stmt {
35866        Stmt::DropFunction(node)
35867    }
35868}
35869impl From<DropGroup> for Stmt {
35870    #[inline]
35871    fn from(node: DropGroup) -> Stmt {
35872        Stmt::DropGroup(node)
35873    }
35874}
35875impl From<DropIndex> for Stmt {
35876    #[inline]
35877    fn from(node: DropIndex) -> Stmt {
35878        Stmt::DropIndex(node)
35879    }
35880}
35881impl From<DropLanguage> for Stmt {
35882    #[inline]
35883    fn from(node: DropLanguage) -> Stmt {
35884        Stmt::DropLanguage(node)
35885    }
35886}
35887impl From<DropMaterializedView> for Stmt {
35888    #[inline]
35889    fn from(node: DropMaterializedView) -> Stmt {
35890        Stmt::DropMaterializedView(node)
35891    }
35892}
35893impl From<DropOperator> for Stmt {
35894    #[inline]
35895    fn from(node: DropOperator) -> Stmt {
35896        Stmt::DropOperator(node)
35897    }
35898}
35899impl From<DropOperatorClass> for Stmt {
35900    #[inline]
35901    fn from(node: DropOperatorClass) -> Stmt {
35902        Stmt::DropOperatorClass(node)
35903    }
35904}
35905impl From<DropOperatorFamily> for Stmt {
35906    #[inline]
35907    fn from(node: DropOperatorFamily) -> Stmt {
35908        Stmt::DropOperatorFamily(node)
35909    }
35910}
35911impl From<DropOwned> for Stmt {
35912    #[inline]
35913    fn from(node: DropOwned) -> Stmt {
35914        Stmt::DropOwned(node)
35915    }
35916}
35917impl From<DropPolicy> for Stmt {
35918    #[inline]
35919    fn from(node: DropPolicy) -> Stmt {
35920        Stmt::DropPolicy(node)
35921    }
35922}
35923impl From<DropProcedure> for Stmt {
35924    #[inline]
35925    fn from(node: DropProcedure) -> Stmt {
35926        Stmt::DropProcedure(node)
35927    }
35928}
35929impl From<DropPropertyGraph> for Stmt {
35930    #[inline]
35931    fn from(node: DropPropertyGraph) -> Stmt {
35932        Stmt::DropPropertyGraph(node)
35933    }
35934}
35935impl From<DropPublication> for Stmt {
35936    #[inline]
35937    fn from(node: DropPublication) -> Stmt {
35938        Stmt::DropPublication(node)
35939    }
35940}
35941impl From<DropRole> for Stmt {
35942    #[inline]
35943    fn from(node: DropRole) -> Stmt {
35944        Stmt::DropRole(node)
35945    }
35946}
35947impl From<DropRoutine> for Stmt {
35948    #[inline]
35949    fn from(node: DropRoutine) -> Stmt {
35950        Stmt::DropRoutine(node)
35951    }
35952}
35953impl From<DropRule> for Stmt {
35954    #[inline]
35955    fn from(node: DropRule) -> Stmt {
35956        Stmt::DropRule(node)
35957    }
35958}
35959impl From<DropSchema> for Stmt {
35960    #[inline]
35961    fn from(node: DropSchema) -> Stmt {
35962        Stmt::DropSchema(node)
35963    }
35964}
35965impl From<DropSequence> for Stmt {
35966    #[inline]
35967    fn from(node: DropSequence) -> Stmt {
35968        Stmt::DropSequence(node)
35969    }
35970}
35971impl From<DropServer> for Stmt {
35972    #[inline]
35973    fn from(node: DropServer) -> Stmt {
35974        Stmt::DropServer(node)
35975    }
35976}
35977impl From<DropStatistics> for Stmt {
35978    #[inline]
35979    fn from(node: DropStatistics) -> Stmt {
35980        Stmt::DropStatistics(node)
35981    }
35982}
35983impl From<DropSubscription> for Stmt {
35984    #[inline]
35985    fn from(node: DropSubscription) -> Stmt {
35986        Stmt::DropSubscription(node)
35987    }
35988}
35989impl From<DropTable> for Stmt {
35990    #[inline]
35991    fn from(node: DropTable) -> Stmt {
35992        Stmt::DropTable(node)
35993    }
35994}
35995impl From<DropTablespace> for Stmt {
35996    #[inline]
35997    fn from(node: DropTablespace) -> Stmt {
35998        Stmt::DropTablespace(node)
35999    }
36000}
36001impl From<DropTextSearchConfig> for Stmt {
36002    #[inline]
36003    fn from(node: DropTextSearchConfig) -> Stmt {
36004        Stmt::DropTextSearchConfig(node)
36005    }
36006}
36007impl From<DropTextSearchDict> for Stmt {
36008    #[inline]
36009    fn from(node: DropTextSearchDict) -> Stmt {
36010        Stmt::DropTextSearchDict(node)
36011    }
36012}
36013impl From<DropTextSearchParser> for Stmt {
36014    #[inline]
36015    fn from(node: DropTextSearchParser) -> Stmt {
36016        Stmt::DropTextSearchParser(node)
36017    }
36018}
36019impl From<DropTextSearchTemplate> for Stmt {
36020    #[inline]
36021    fn from(node: DropTextSearchTemplate) -> Stmt {
36022        Stmt::DropTextSearchTemplate(node)
36023    }
36024}
36025impl From<DropTransform> for Stmt {
36026    #[inline]
36027    fn from(node: DropTransform) -> Stmt {
36028        Stmt::DropTransform(node)
36029    }
36030}
36031impl From<DropTrigger> for Stmt {
36032    #[inline]
36033    fn from(node: DropTrigger) -> Stmt {
36034        Stmt::DropTrigger(node)
36035    }
36036}
36037impl From<DropType> for Stmt {
36038    #[inline]
36039    fn from(node: DropType) -> Stmt {
36040        Stmt::DropType(node)
36041    }
36042}
36043impl From<DropUser> for Stmt {
36044    #[inline]
36045    fn from(node: DropUser) -> Stmt {
36046        Stmt::DropUser(node)
36047    }
36048}
36049impl From<DropUserMapping> for Stmt {
36050    #[inline]
36051    fn from(node: DropUserMapping) -> Stmt {
36052        Stmt::DropUserMapping(node)
36053    }
36054}
36055impl From<DropView> for Stmt {
36056    #[inline]
36057    fn from(node: DropView) -> Stmt {
36058        Stmt::DropView(node)
36059    }
36060}
36061impl From<Execute> for Stmt {
36062    #[inline]
36063    fn from(node: Execute) -> Stmt {
36064        Stmt::Execute(node)
36065    }
36066}
36067impl From<Explain> for Stmt {
36068    #[inline]
36069    fn from(node: Explain) -> Stmt {
36070        Stmt::Explain(node)
36071    }
36072}
36073impl From<Fetch> for Stmt {
36074    #[inline]
36075    fn from(node: Fetch) -> Stmt {
36076        Stmt::Fetch(node)
36077    }
36078}
36079impl From<Grant> for Stmt {
36080    #[inline]
36081    fn from(node: Grant) -> Stmt {
36082        Stmt::Grant(node)
36083    }
36084}
36085impl From<ImportForeignSchema> for Stmt {
36086    #[inline]
36087    fn from(node: ImportForeignSchema) -> Stmt {
36088        Stmt::ImportForeignSchema(node)
36089    }
36090}
36091impl From<Insert> for Stmt {
36092    #[inline]
36093    fn from(node: Insert) -> Stmt {
36094        Stmt::Insert(node)
36095    }
36096}
36097impl From<Listen> for Stmt {
36098    #[inline]
36099    fn from(node: Listen) -> Stmt {
36100        Stmt::Listen(node)
36101    }
36102}
36103impl From<Load> for Stmt {
36104    #[inline]
36105    fn from(node: Load) -> Stmt {
36106        Stmt::Load(node)
36107    }
36108}
36109impl From<Lock> for Stmt {
36110    #[inline]
36111    fn from(node: Lock) -> Stmt {
36112        Stmt::Lock(node)
36113    }
36114}
36115impl From<Merge> for Stmt {
36116    #[inline]
36117    fn from(node: Merge) -> Stmt {
36118        Stmt::Merge(node)
36119    }
36120}
36121impl From<Move> for Stmt {
36122    #[inline]
36123    fn from(node: Move) -> Stmt {
36124        Stmt::Move(node)
36125    }
36126}
36127impl From<Notify> for Stmt {
36128    #[inline]
36129    fn from(node: Notify) -> Stmt {
36130        Stmt::Notify(node)
36131    }
36132}
36133impl From<ParenSelect> for Stmt {
36134    #[inline]
36135    fn from(node: ParenSelect) -> Stmt {
36136        Stmt::ParenSelect(node)
36137    }
36138}
36139impl From<Prepare> for Stmt {
36140    #[inline]
36141    fn from(node: Prepare) -> Stmt {
36142        Stmt::Prepare(node)
36143    }
36144}
36145impl From<PrepareTransaction> for Stmt {
36146    #[inline]
36147    fn from(node: PrepareTransaction) -> Stmt {
36148        Stmt::PrepareTransaction(node)
36149    }
36150}
36151impl From<Reassign> for Stmt {
36152    #[inline]
36153    fn from(node: Reassign) -> Stmt {
36154        Stmt::Reassign(node)
36155    }
36156}
36157impl From<Refresh> for Stmt {
36158    #[inline]
36159    fn from(node: Refresh) -> Stmt {
36160        Stmt::Refresh(node)
36161    }
36162}
36163impl From<Reindex> for Stmt {
36164    #[inline]
36165    fn from(node: Reindex) -> Stmt {
36166        Stmt::Reindex(node)
36167    }
36168}
36169impl From<ReleaseSavepoint> for Stmt {
36170    #[inline]
36171    fn from(node: ReleaseSavepoint) -> Stmt {
36172        Stmt::ReleaseSavepoint(node)
36173    }
36174}
36175impl From<Repack> for Stmt {
36176    #[inline]
36177    fn from(node: Repack) -> Stmt {
36178        Stmt::Repack(node)
36179    }
36180}
36181impl From<Reset> for Stmt {
36182    #[inline]
36183    fn from(node: Reset) -> Stmt {
36184        Stmt::Reset(node)
36185    }
36186}
36187impl From<ResetSessionAuth> for Stmt {
36188    #[inline]
36189    fn from(node: ResetSessionAuth) -> Stmt {
36190        Stmt::ResetSessionAuth(node)
36191    }
36192}
36193impl From<Revoke> for Stmt {
36194    #[inline]
36195    fn from(node: Revoke) -> Stmt {
36196        Stmt::Revoke(node)
36197    }
36198}
36199impl From<Rollback> for Stmt {
36200    #[inline]
36201    fn from(node: Rollback) -> Stmt {
36202        Stmt::Rollback(node)
36203    }
36204}
36205impl From<Savepoint> for Stmt {
36206    #[inline]
36207    fn from(node: Savepoint) -> Stmt {
36208        Stmt::Savepoint(node)
36209    }
36210}
36211impl From<SecurityLabel> for Stmt {
36212    #[inline]
36213    fn from(node: SecurityLabel) -> Stmt {
36214        Stmt::SecurityLabel(node)
36215    }
36216}
36217impl From<Select> for Stmt {
36218    #[inline]
36219    fn from(node: Select) -> Stmt {
36220        Stmt::Select(node)
36221    }
36222}
36223impl From<SelectInto> for Stmt {
36224    #[inline]
36225    fn from(node: SelectInto) -> Stmt {
36226        Stmt::SelectInto(node)
36227    }
36228}
36229impl From<Set> for Stmt {
36230    #[inline]
36231    fn from(node: Set) -> Stmt {
36232        Stmt::Set(node)
36233    }
36234}
36235impl From<SetConstraints> for Stmt {
36236    #[inline]
36237    fn from(node: SetConstraints) -> Stmt {
36238        Stmt::SetConstraints(node)
36239    }
36240}
36241impl From<SetRole> for Stmt {
36242    #[inline]
36243    fn from(node: SetRole) -> Stmt {
36244        Stmt::SetRole(node)
36245    }
36246}
36247impl From<SetSessionAuth> for Stmt {
36248    #[inline]
36249    fn from(node: SetSessionAuth) -> Stmt {
36250        Stmt::SetSessionAuth(node)
36251    }
36252}
36253impl From<SetTransaction> for Stmt {
36254    #[inline]
36255    fn from(node: SetTransaction) -> Stmt {
36256        Stmt::SetTransaction(node)
36257    }
36258}
36259impl From<Show> for Stmt {
36260    #[inline]
36261    fn from(node: Show) -> Stmt {
36262        Stmt::Show(node)
36263    }
36264}
36265impl From<Table> for Stmt {
36266    #[inline]
36267    fn from(node: Table) -> Stmt {
36268        Stmt::Table(node)
36269    }
36270}
36271impl From<Truncate> for Stmt {
36272    #[inline]
36273    fn from(node: Truncate) -> Stmt {
36274        Stmt::Truncate(node)
36275    }
36276}
36277impl From<Unlisten> for Stmt {
36278    #[inline]
36279    fn from(node: Unlisten) -> Stmt {
36280        Stmt::Unlisten(node)
36281    }
36282}
36283impl From<Update> for Stmt {
36284    #[inline]
36285    fn from(node: Update) -> Stmt {
36286        Stmt::Update(node)
36287    }
36288}
36289impl From<Vacuum> for Stmt {
36290    #[inline]
36291    fn from(node: Vacuum) -> Stmt {
36292        Stmt::Vacuum(node)
36293    }
36294}
36295impl From<Values> for Stmt {
36296    #[inline]
36297    fn from(node: Values) -> Stmt {
36298        Stmt::Values(node)
36299    }
36300}
36301impl AstNode for TableArg {
36302    #[inline]
36303    fn can_cast(kind: SyntaxKind) -> bool {
36304        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
36305    }
36306    #[inline]
36307    fn cast(syntax: SyntaxNode) -> Option<Self> {
36308        let res = match syntax.kind() {
36309            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
36310            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
36311            _ => {
36312                if let Some(result) = TableConstraint::cast(syntax) {
36313                    return Some(TableArg::TableConstraint(result));
36314                }
36315                return None;
36316            }
36317        };
36318        Some(res)
36319    }
36320    #[inline]
36321    fn syntax(&self) -> &SyntaxNode {
36322        match self {
36323            TableArg::Column(it) => &it.syntax,
36324            TableArg::LikeClause(it) => &it.syntax,
36325            TableArg::TableConstraint(it) => it.syntax(),
36326        }
36327    }
36328}
36329impl From<Column> for TableArg {
36330    #[inline]
36331    fn from(node: Column) -> TableArg {
36332        TableArg::Column(node)
36333    }
36334}
36335impl From<LikeClause> for TableArg {
36336    #[inline]
36337    fn from(node: LikeClause) -> TableArg {
36338        TableArg::LikeClause(node)
36339    }
36340}
36341impl AstNode for TableConstraint {
36342    #[inline]
36343    fn can_cast(kind: SyntaxKind) -> bool {
36344        matches!(
36345            kind,
36346            SyntaxKind::CHECK_CONSTRAINT
36347                | SyntaxKind::EXCLUDE_CONSTRAINT
36348                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
36349                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
36350                | SyntaxKind::UNIQUE_CONSTRAINT
36351        )
36352    }
36353    #[inline]
36354    fn cast(syntax: SyntaxNode) -> Option<Self> {
36355        let res = match syntax.kind() {
36356            SyntaxKind::CHECK_CONSTRAINT => {
36357                TableConstraint::CheckConstraint(CheckConstraint { syntax })
36358            }
36359            SyntaxKind::EXCLUDE_CONSTRAINT => {
36360                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
36361            }
36362            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
36363                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
36364            }
36365            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
36366                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
36367            }
36368            SyntaxKind::UNIQUE_CONSTRAINT => {
36369                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
36370            }
36371            _ => {
36372                return None;
36373            }
36374        };
36375        Some(res)
36376    }
36377    #[inline]
36378    fn syntax(&self) -> &SyntaxNode {
36379        match self {
36380            TableConstraint::CheckConstraint(it) => &it.syntax,
36381            TableConstraint::ExcludeConstraint(it) => &it.syntax,
36382            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
36383            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
36384            TableConstraint::UniqueConstraint(it) => &it.syntax,
36385        }
36386    }
36387}
36388impl From<CheckConstraint> for TableConstraint {
36389    #[inline]
36390    fn from(node: CheckConstraint) -> TableConstraint {
36391        TableConstraint::CheckConstraint(node)
36392    }
36393}
36394impl From<ExcludeConstraint> for TableConstraint {
36395    #[inline]
36396    fn from(node: ExcludeConstraint) -> TableConstraint {
36397        TableConstraint::ExcludeConstraint(node)
36398    }
36399}
36400impl From<ForeignKeyConstraint> for TableConstraint {
36401    #[inline]
36402    fn from(node: ForeignKeyConstraint) -> TableConstraint {
36403        TableConstraint::ForeignKeyConstraint(node)
36404    }
36405}
36406impl From<PrimaryKeyConstraint> for TableConstraint {
36407    #[inline]
36408    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
36409        TableConstraint::PrimaryKeyConstraint(node)
36410    }
36411}
36412impl From<UniqueConstraint> for TableConstraint {
36413    #[inline]
36414    fn from(node: UniqueConstraint) -> TableConstraint {
36415        TableConstraint::UniqueConstraint(node)
36416    }
36417}
36418impl AstNode for Timezone {
36419    #[inline]
36420    fn can_cast(kind: SyntaxKind) -> bool {
36421        matches!(
36422            kind,
36423            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
36424        )
36425    }
36426    #[inline]
36427    fn cast(syntax: SyntaxNode) -> Option<Self> {
36428        let res = match syntax.kind() {
36429            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
36430            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
36431            _ => {
36432                return None;
36433            }
36434        };
36435        Some(res)
36436    }
36437    #[inline]
36438    fn syntax(&self) -> &SyntaxNode {
36439        match self {
36440            Timezone::WithTimezone(it) => &it.syntax,
36441            Timezone::WithoutTimezone(it) => &it.syntax,
36442        }
36443    }
36444}
36445impl From<WithTimezone> for Timezone {
36446    #[inline]
36447    fn from(node: WithTimezone) -> Timezone {
36448        Timezone::WithTimezone(node)
36449    }
36450}
36451impl From<WithoutTimezone> for Timezone {
36452    #[inline]
36453    fn from(node: WithoutTimezone) -> Timezone {
36454        Timezone::WithoutTimezone(node)
36455    }
36456}
36457impl AstNode for TransactionMode {
36458    #[inline]
36459    fn can_cast(kind: SyntaxKind) -> bool {
36460        matches!(
36461            kind,
36462            SyntaxKind::DEFERRABLE
36463                | SyntaxKind::NOT_DEFERRABLE
36464                | SyntaxKind::READ_COMMITTED
36465                | SyntaxKind::READ_ONLY
36466                | SyntaxKind::READ_UNCOMMITTED
36467                | SyntaxKind::READ_WRITE
36468                | SyntaxKind::REPEATABLE_READ
36469                | SyntaxKind::SERIALIZABLE
36470        )
36471    }
36472    #[inline]
36473    fn cast(syntax: SyntaxNode) -> Option<Self> {
36474        let res = match syntax.kind() {
36475            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
36476            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
36477            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
36478            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
36479            SyntaxKind::READ_UNCOMMITTED => {
36480                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
36481            }
36482            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
36483            SyntaxKind::REPEATABLE_READ => {
36484                TransactionMode::RepeatableRead(RepeatableRead { syntax })
36485            }
36486            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
36487            _ => {
36488                return None;
36489            }
36490        };
36491        Some(res)
36492    }
36493    #[inline]
36494    fn syntax(&self) -> &SyntaxNode {
36495        match self {
36496            TransactionMode::Deferrable(it) => &it.syntax,
36497            TransactionMode::NotDeferrable(it) => &it.syntax,
36498            TransactionMode::ReadCommitted(it) => &it.syntax,
36499            TransactionMode::ReadOnly(it) => &it.syntax,
36500            TransactionMode::ReadUncommitted(it) => &it.syntax,
36501            TransactionMode::ReadWrite(it) => &it.syntax,
36502            TransactionMode::RepeatableRead(it) => &it.syntax,
36503            TransactionMode::Serializable(it) => &it.syntax,
36504        }
36505    }
36506}
36507impl From<Deferrable> for TransactionMode {
36508    #[inline]
36509    fn from(node: Deferrable) -> TransactionMode {
36510        TransactionMode::Deferrable(node)
36511    }
36512}
36513impl From<NotDeferrable> for TransactionMode {
36514    #[inline]
36515    fn from(node: NotDeferrable) -> TransactionMode {
36516        TransactionMode::NotDeferrable(node)
36517    }
36518}
36519impl From<ReadCommitted> for TransactionMode {
36520    #[inline]
36521    fn from(node: ReadCommitted) -> TransactionMode {
36522        TransactionMode::ReadCommitted(node)
36523    }
36524}
36525impl From<ReadOnly> for TransactionMode {
36526    #[inline]
36527    fn from(node: ReadOnly) -> TransactionMode {
36528        TransactionMode::ReadOnly(node)
36529    }
36530}
36531impl From<ReadUncommitted> for TransactionMode {
36532    #[inline]
36533    fn from(node: ReadUncommitted) -> TransactionMode {
36534        TransactionMode::ReadUncommitted(node)
36535    }
36536}
36537impl From<ReadWrite> for TransactionMode {
36538    #[inline]
36539    fn from(node: ReadWrite) -> TransactionMode {
36540        TransactionMode::ReadWrite(node)
36541    }
36542}
36543impl From<RepeatableRead> for TransactionMode {
36544    #[inline]
36545    fn from(node: RepeatableRead) -> TransactionMode {
36546        TransactionMode::RepeatableRead(node)
36547    }
36548}
36549impl From<Serializable> for TransactionMode {
36550    #[inline]
36551    fn from(node: Serializable) -> TransactionMode {
36552        TransactionMode::Serializable(node)
36553    }
36554}
36555impl AstNode for Type {
36556    #[inline]
36557    fn can_cast(kind: SyntaxKind) -> bool {
36558        matches!(
36559            kind,
36560            SyntaxKind::ARRAY_TYPE
36561                | SyntaxKind::BIT_TYPE
36562                | SyntaxKind::CHAR_TYPE
36563                | SyntaxKind::DOUBLE_TYPE
36564                | SyntaxKind::EXPR_TYPE
36565                | SyntaxKind::INTERVAL_TYPE
36566                | SyntaxKind::PATH_TYPE
36567                | SyntaxKind::PERCENT_TYPE
36568                | SyntaxKind::TIME_TYPE
36569        )
36570    }
36571    #[inline]
36572    fn cast(syntax: SyntaxNode) -> Option<Self> {
36573        let res = match syntax.kind() {
36574            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
36575            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
36576            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
36577            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
36578            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
36579            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
36580            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
36581            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
36582            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
36583            _ => {
36584                return None;
36585            }
36586        };
36587        Some(res)
36588    }
36589    #[inline]
36590    fn syntax(&self) -> &SyntaxNode {
36591        match self {
36592            Type::ArrayType(it) => &it.syntax,
36593            Type::BitType(it) => &it.syntax,
36594            Type::CharType(it) => &it.syntax,
36595            Type::DoubleType(it) => &it.syntax,
36596            Type::ExprType(it) => &it.syntax,
36597            Type::IntervalType(it) => &it.syntax,
36598            Type::PathType(it) => &it.syntax,
36599            Type::PercentType(it) => &it.syntax,
36600            Type::TimeType(it) => &it.syntax,
36601        }
36602    }
36603}
36604impl From<ArrayType> for Type {
36605    #[inline]
36606    fn from(node: ArrayType) -> Type {
36607        Type::ArrayType(node)
36608    }
36609}
36610impl From<BitType> for Type {
36611    #[inline]
36612    fn from(node: BitType) -> Type {
36613        Type::BitType(node)
36614    }
36615}
36616impl From<CharType> for Type {
36617    #[inline]
36618    fn from(node: CharType) -> Type {
36619        Type::CharType(node)
36620    }
36621}
36622impl From<DoubleType> for Type {
36623    #[inline]
36624    fn from(node: DoubleType) -> Type {
36625        Type::DoubleType(node)
36626    }
36627}
36628impl From<ExprType> for Type {
36629    #[inline]
36630    fn from(node: ExprType) -> Type {
36631        Type::ExprType(node)
36632    }
36633}
36634impl From<IntervalType> for Type {
36635    #[inline]
36636    fn from(node: IntervalType) -> Type {
36637        Type::IntervalType(node)
36638    }
36639}
36640impl From<PathType> for Type {
36641    #[inline]
36642    fn from(node: PathType) -> Type {
36643        Type::PathType(node)
36644    }
36645}
36646impl From<PercentType> for Type {
36647    #[inline]
36648    fn from(node: PercentType) -> Type {
36649        Type::PercentType(node)
36650    }
36651}
36652impl From<TimeType> for Type {
36653    #[inline]
36654    fn from(node: TimeType) -> Type {
36655        Type::TimeType(node)
36656    }
36657}
36658impl AstNode for ValuePosition {
36659    #[inline]
36660    fn can_cast(kind: SyntaxKind) -> bool {
36661        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
36662    }
36663    #[inline]
36664    fn cast(syntax: SyntaxNode) -> Option<Self> {
36665        let res = match syntax.kind() {
36666            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
36667            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
36668            _ => {
36669                return None;
36670            }
36671        };
36672        Some(res)
36673    }
36674    #[inline]
36675    fn syntax(&self) -> &SyntaxNode {
36676        match self {
36677            ValuePosition::AfterValue(it) => &it.syntax,
36678            ValuePosition::BeforeValue(it) => &it.syntax,
36679        }
36680    }
36681}
36682impl From<AfterValue> for ValuePosition {
36683    #[inline]
36684    fn from(node: AfterValue) -> ValuePosition {
36685        ValuePosition::AfterValue(node)
36686    }
36687}
36688impl From<BeforeValue> for ValuePosition {
36689    #[inline]
36690    fn from(node: BeforeValue) -> ValuePosition {
36691        ValuePosition::BeforeValue(node)
36692    }
36693}
36694impl AstNode for WithQuery {
36695    #[inline]
36696    fn can_cast(kind: SyntaxKind) -> bool {
36697        matches!(
36698            kind,
36699            SyntaxKind::COMPOUND_SELECT
36700                | SyntaxKind::DELETE
36701                | SyntaxKind::INSERT
36702                | SyntaxKind::MERGE
36703                | SyntaxKind::PAREN_SELECT
36704                | SyntaxKind::SELECT
36705                | SyntaxKind::TABLE
36706                | SyntaxKind::UPDATE
36707                | SyntaxKind::VALUES
36708        )
36709    }
36710    #[inline]
36711    fn cast(syntax: SyntaxNode) -> Option<Self> {
36712        let res = match syntax.kind() {
36713            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
36714            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
36715            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
36716            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
36717            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
36718            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
36719            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
36720            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
36721            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
36722            _ => {
36723                return None;
36724            }
36725        };
36726        Some(res)
36727    }
36728    #[inline]
36729    fn syntax(&self) -> &SyntaxNode {
36730        match self {
36731            WithQuery::CompoundSelect(it) => &it.syntax,
36732            WithQuery::Delete(it) => &it.syntax,
36733            WithQuery::Insert(it) => &it.syntax,
36734            WithQuery::Merge(it) => &it.syntax,
36735            WithQuery::ParenSelect(it) => &it.syntax,
36736            WithQuery::Select(it) => &it.syntax,
36737            WithQuery::Table(it) => &it.syntax,
36738            WithQuery::Update(it) => &it.syntax,
36739            WithQuery::Values(it) => &it.syntax,
36740        }
36741    }
36742}
36743impl From<CompoundSelect> for WithQuery {
36744    #[inline]
36745    fn from(node: CompoundSelect) -> WithQuery {
36746        WithQuery::CompoundSelect(node)
36747    }
36748}
36749impl From<Delete> for WithQuery {
36750    #[inline]
36751    fn from(node: Delete) -> WithQuery {
36752        WithQuery::Delete(node)
36753    }
36754}
36755impl From<Insert> for WithQuery {
36756    #[inline]
36757    fn from(node: Insert) -> WithQuery {
36758        WithQuery::Insert(node)
36759    }
36760}
36761impl From<Merge> for WithQuery {
36762    #[inline]
36763    fn from(node: Merge) -> WithQuery {
36764        WithQuery::Merge(node)
36765    }
36766}
36767impl From<ParenSelect> for WithQuery {
36768    #[inline]
36769    fn from(node: ParenSelect) -> WithQuery {
36770        WithQuery::ParenSelect(node)
36771    }
36772}
36773impl From<Select> for WithQuery {
36774    #[inline]
36775    fn from(node: Select) -> WithQuery {
36776        WithQuery::Select(node)
36777    }
36778}
36779impl From<Table> for WithQuery {
36780    #[inline]
36781    fn from(node: Table) -> WithQuery {
36782        WithQuery::Table(node)
36783    }
36784}
36785impl From<Update> for WithQuery {
36786    #[inline]
36787    fn from(node: Update) -> WithQuery {
36788        WithQuery::Update(node)
36789    }
36790}
36791impl From<Values> for WithQuery {
36792    #[inline]
36793    fn from(node: Values) -> WithQuery {
36794        WithQuery::Values(node)
36795    }
36796}