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 nchar_token(&self) -> Option<SyntaxToken> {
2781        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2782    }
2783    #[inline]
2784    pub fn setof_token(&self) -> Option<SyntaxToken> {
2785        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2786    }
2787    #[inline]
2788    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2789        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2790    }
2791    #[inline]
2792    pub fn varying_token(&self) -> Option<SyntaxToken> {
2793        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2794    }
2795}
2796
2797#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2798pub struct CheckConstraint {
2799    pub(crate) syntax: SyntaxNode,
2800}
2801impl CheckConstraint {
2802    #[inline]
2803    pub fn constraint_name(&self) -> Option<ConstraintName> {
2804        support::child(&self.syntax)
2805    }
2806    #[inline]
2807    pub fn expr(&self) -> Option<Expr> {
2808        support::child(&self.syntax)
2809    }
2810    #[inline]
2811    pub fn no_inherit(&self) -> Option<NoInherit> {
2812        support::child(&self.syntax)
2813    }
2814    #[inline]
2815    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2816        support::token(&self.syntax, SyntaxKind::L_PAREN)
2817    }
2818    #[inline]
2819    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2820        support::token(&self.syntax, SyntaxKind::R_PAREN)
2821    }
2822    #[inline]
2823    pub fn check_token(&self) -> Option<SyntaxToken> {
2824        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2825    }
2826}
2827
2828#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2829pub struct Checkpoint {
2830    pub(crate) syntax: SyntaxNode,
2831}
2832impl Checkpoint {
2833    #[inline]
2834    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2835        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2836    }
2837}
2838
2839#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2840pub struct Close {
2841    pub(crate) syntax: SyntaxNode,
2842}
2843impl Close {
2844    #[inline]
2845    pub fn name_ref(&self) -> Option<NameRef> {
2846        support::child(&self.syntax)
2847    }
2848    #[inline]
2849    pub fn close_token(&self) -> Option<SyntaxToken> {
2850        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2851    }
2852}
2853
2854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2855pub struct Cluster {
2856    pub(crate) syntax: SyntaxNode,
2857}
2858impl Cluster {
2859    #[inline]
2860    pub fn option_item_list(&self) -> Option<OptionItemList> {
2861        support::child(&self.syntax)
2862    }
2863    #[inline]
2864    pub fn path(&self) -> Option<Path> {
2865        support::child(&self.syntax)
2866    }
2867    #[inline]
2868    pub fn using_method(&self) -> Option<UsingMethod> {
2869        support::child(&self.syntax)
2870    }
2871    #[inline]
2872    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2873        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2874    }
2875    #[inline]
2876    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2877        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2878    }
2879}
2880
2881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2882pub struct ClusterOn {
2883    pub(crate) syntax: SyntaxNode,
2884}
2885impl ClusterOn {
2886    #[inline]
2887    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2888        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2889    }
2890    #[inline]
2891    pub fn on_token(&self) -> Option<SyntaxToken> {
2892        support::token(&self.syntax, SyntaxKind::ON_KW)
2893    }
2894}
2895
2896#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2897pub struct Collate {
2898    pub(crate) syntax: SyntaxNode,
2899}
2900impl Collate {
2901    #[inline]
2902    pub fn path(&self) -> Option<Path> {
2903        support::child(&self.syntax)
2904    }
2905    #[inline]
2906    pub fn collate_token(&self) -> Option<SyntaxToken> {
2907        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2908    }
2909}
2910
2911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2912pub struct CollationForFn {
2913    pub(crate) syntax: SyntaxNode,
2914}
2915impl CollationForFn {
2916    #[inline]
2917    pub fn expr(&self) -> Option<Expr> {
2918        support::child(&self.syntax)
2919    }
2920    #[inline]
2921    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2922        support::token(&self.syntax, SyntaxKind::L_PAREN)
2923    }
2924    #[inline]
2925    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2926        support::token(&self.syntax, SyntaxKind::R_PAREN)
2927    }
2928    #[inline]
2929    pub fn collation_token(&self) -> Option<SyntaxToken> {
2930        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2931    }
2932    #[inline]
2933    pub fn for_token(&self) -> Option<SyntaxToken> {
2934        support::token(&self.syntax, SyntaxKind::FOR_KW)
2935    }
2936}
2937
2938#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2939pub struct ColonColon {
2940    pub(crate) syntax: SyntaxNode,
2941}
2942impl ColonColon {
2943    #[inline]
2944    pub fn colon_token(&self) -> Option<SyntaxToken> {
2945        support::token(&self.syntax, SyntaxKind::COLON)
2946    }
2947}
2948
2949#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2950pub struct ColonEq {
2951    pub(crate) syntax: SyntaxNode,
2952}
2953impl ColonEq {
2954    #[inline]
2955    pub fn colon_token(&self) -> Option<SyntaxToken> {
2956        support::token(&self.syntax, SyntaxKind::COLON)
2957    }
2958    #[inline]
2959    pub fn eq_token(&self) -> Option<SyntaxToken> {
2960        support::token(&self.syntax, SyntaxKind::EQ)
2961    }
2962}
2963
2964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2965pub struct Column {
2966    pub(crate) syntax: SyntaxNode,
2967}
2968impl Column {
2969    #[inline]
2970    pub fn collate(&self) -> Option<Collate> {
2971        support::child(&self.syntax)
2972    }
2973    #[inline]
2974    pub fn compression_method(&self) -> Option<CompressionMethod> {
2975        support::child(&self.syntax)
2976    }
2977    #[inline]
2978    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2979        support::children(&self.syntax)
2980    }
2981    #[inline]
2982    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2983        support::child(&self.syntax)
2984    }
2985    #[inline]
2986    pub fn enforced(&self) -> Option<Enforced> {
2987        support::child(&self.syntax)
2988    }
2989    #[inline]
2990    pub fn index_expr(&self) -> Option<IndexExpr> {
2991        support::child(&self.syntax)
2992    }
2993    #[inline]
2994    pub fn initially_deferred_constraint_option(
2995        &self,
2996    ) -> Option<InitiallyDeferredConstraintOption> {
2997        support::child(&self.syntax)
2998    }
2999    #[inline]
3000    pub fn initially_immediate_constraint_option(
3001        &self,
3002    ) -> Option<InitiallyImmediateConstraintOption> {
3003        support::child(&self.syntax)
3004    }
3005    #[inline]
3006    pub fn name(&self) -> Option<Name> {
3007        support::child(&self.syntax)
3008    }
3009    #[inline]
3010    pub fn name_ref(&self) -> Option<NameRef> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3015        support::child(&self.syntax)
3016    }
3017    #[inline]
3018    pub fn not_enforced(&self) -> Option<NotEnforced> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn storage(&self) -> Option<Storage> {
3023        support::child(&self.syntax)
3024    }
3025    #[inline]
3026    pub fn ty(&self) -> Option<Type> {
3027        support::child(&self.syntax)
3028    }
3029    #[inline]
3030    pub fn with_options(&self) -> Option<WithOptions> {
3031        support::child(&self.syntax)
3032    }
3033    #[inline]
3034    pub fn period_token(&self) -> Option<SyntaxToken> {
3035        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3036    }
3037}
3038
3039#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3040pub struct ColumnList {
3041    pub(crate) syntax: SyntaxNode,
3042}
3043impl ColumnList {
3044    #[inline]
3045    pub fn columns(&self) -> AstChildren<Column> {
3046        support::children(&self.syntax)
3047    }
3048    #[inline]
3049    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3050        support::token(&self.syntax, SyntaxKind::L_PAREN)
3051    }
3052    #[inline]
3053    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3054        support::token(&self.syntax, SyntaxKind::R_PAREN)
3055    }
3056}
3057
3058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3059pub struct CommentOn {
3060    pub(crate) syntax: SyntaxNode,
3061}
3062impl CommentOn {
3063    #[inline]
3064    pub fn aggregate(&self) -> Option<Aggregate> {
3065        support::child(&self.syntax)
3066    }
3067    #[inline]
3068    pub fn cast_sig(&self) -> Option<CastSig> {
3069        support::child(&self.syntax)
3070    }
3071    #[inline]
3072    pub fn function_sig(&self) -> Option<FunctionSig> {
3073        support::child(&self.syntax)
3074    }
3075    #[inline]
3076    pub fn literal(&self) -> Option<Literal> {
3077        support::child(&self.syntax)
3078    }
3079    #[inline]
3080    pub fn name_ref(&self) -> Option<NameRef> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn op(&self) -> Option<Op> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn path(&self) -> Option<Path> {
3089        support::child(&self.syntax)
3090    }
3091    #[inline]
3092    pub fn ty(&self) -> Option<Type> {
3093        support::child(&self.syntax)
3094    }
3095    #[inline]
3096    pub fn using_method(&self) -> Option<UsingMethod> {
3097        support::child(&self.syntax)
3098    }
3099    #[inline]
3100    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3101        support::token(&self.syntax, SyntaxKind::L_PAREN)
3102    }
3103    #[inline]
3104    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3105        support::token(&self.syntax, SyntaxKind::R_PAREN)
3106    }
3107    #[inline]
3108    pub fn comma_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::COMMA)
3110    }
3111    #[inline]
3112    pub fn access_token(&self) -> Option<SyntaxToken> {
3113        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3114    }
3115    #[inline]
3116    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3118    }
3119    #[inline]
3120    pub fn cast_token(&self) -> Option<SyntaxToken> {
3121        support::token(&self.syntax, SyntaxKind::CAST_KW)
3122    }
3123    #[inline]
3124    pub fn class_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3126    }
3127    #[inline]
3128    pub fn collation_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3130    }
3131    #[inline]
3132    pub fn column_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3134    }
3135    #[inline]
3136    pub fn comment_token(&self) -> Option<SyntaxToken> {
3137        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3138    }
3139    #[inline]
3140    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3142    }
3143    #[inline]
3144    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3146    }
3147    #[inline]
3148    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3149        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3150    }
3151    #[inline]
3152    pub fn data_token(&self) -> Option<SyntaxToken> {
3153        support::token(&self.syntax, SyntaxKind::DATA_KW)
3154    }
3155    #[inline]
3156    pub fn database_token(&self) -> Option<SyntaxToken> {
3157        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3158    }
3159    #[inline]
3160    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3161        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3162    }
3163    #[inline]
3164    pub fn domain_token(&self) -> Option<SyntaxToken> {
3165        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3166    }
3167    #[inline]
3168    pub fn event_token(&self) -> Option<SyntaxToken> {
3169        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3170    }
3171    #[inline]
3172    pub fn extension_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3174    }
3175    #[inline]
3176    pub fn family_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3178    }
3179    #[inline]
3180    pub fn for_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::FOR_KW)
3182    }
3183    #[inline]
3184    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3186    }
3187    #[inline]
3188    pub fn function_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3190    }
3191    #[inline]
3192    pub fn graph_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3194    }
3195    #[inline]
3196    pub fn index_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3198    }
3199    #[inline]
3200    pub fn is_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::IS_KW)
3202    }
3203    #[inline]
3204    pub fn language_token(&self) -> Option<SyntaxToken> {
3205        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3206    }
3207    #[inline]
3208    pub fn large_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3210    }
3211    #[inline]
3212    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3214    }
3215    #[inline]
3216    pub fn method_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3218    }
3219    #[inline]
3220    pub fn null_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::NULL_KW)
3222    }
3223    #[inline]
3224    pub fn object_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3226    }
3227    #[inline]
3228    pub fn on_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::ON_KW)
3230    }
3231    #[inline]
3232    pub fn operator_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3234    }
3235    #[inline]
3236    pub fn parser_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3238    }
3239    #[inline]
3240    pub fn policy_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3242    }
3243    #[inline]
3244    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3246    }
3247    #[inline]
3248    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3249        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3250    }
3251    #[inline]
3252    pub fn property_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3254    }
3255    #[inline]
3256    pub fn publication_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3258    }
3259    #[inline]
3260    pub fn role_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3262    }
3263    #[inline]
3264    pub fn routine_token(&self) -> Option<SyntaxToken> {
3265        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3266    }
3267    #[inline]
3268    pub fn rule_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::RULE_KW)
3270    }
3271    #[inline]
3272    pub fn schema_token(&self) -> Option<SyntaxToken> {
3273        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3274    }
3275    #[inline]
3276    pub fn search_token(&self) -> Option<SyntaxToken> {
3277        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3278    }
3279    #[inline]
3280    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3281        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3282    }
3283    #[inline]
3284    pub fn server_token(&self) -> Option<SyntaxToken> {
3285        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3286    }
3287    #[inline]
3288    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3289        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3290    }
3291    #[inline]
3292    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3293        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3294    }
3295    #[inline]
3296    pub fn table_token(&self) -> Option<SyntaxToken> {
3297        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3298    }
3299    #[inline]
3300    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3301        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3302    }
3303    #[inline]
3304    pub fn template_token(&self) -> Option<SyntaxToken> {
3305        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3306    }
3307    #[inline]
3308    pub fn text_token(&self) -> Option<SyntaxToken> {
3309        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3310    }
3311    #[inline]
3312    pub fn transform_token(&self) -> Option<SyntaxToken> {
3313        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3314    }
3315    #[inline]
3316    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3317        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3318    }
3319    #[inline]
3320    pub fn type_token(&self) -> Option<SyntaxToken> {
3321        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3322    }
3323    #[inline]
3324    pub fn view_token(&self) -> Option<SyntaxToken> {
3325        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3326    }
3327    #[inline]
3328    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3329        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3330    }
3331}
3332
3333#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3334pub struct Commit {
3335    pub(crate) syntax: SyntaxNode,
3336}
3337impl Commit {
3338    #[inline]
3339    pub fn literal(&self) -> Option<Literal> {
3340        support::child(&self.syntax)
3341    }
3342    #[inline]
3343    pub fn and_token(&self) -> Option<SyntaxToken> {
3344        support::token(&self.syntax, SyntaxKind::AND_KW)
3345    }
3346    #[inline]
3347    pub fn chain_token(&self) -> Option<SyntaxToken> {
3348        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3349    }
3350    #[inline]
3351    pub fn commit_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3353    }
3354    #[inline]
3355    pub fn no_token(&self) -> Option<SyntaxToken> {
3356        support::token(&self.syntax, SyntaxKind::NO_KW)
3357    }
3358    #[inline]
3359    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3360        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3361    }
3362    #[inline]
3363    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3364        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3365    }
3366    #[inline]
3367    pub fn work_token(&self) -> Option<SyntaxToken> {
3368        support::token(&self.syntax, SyntaxKind::WORK_KW)
3369    }
3370}
3371
3372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3373pub struct CompoundSelect {
3374    pub(crate) syntax: SyntaxNode,
3375}
3376impl CompoundSelect {
3377    #[inline]
3378    pub fn all_token(&self) -> Option<SyntaxToken> {
3379        support::token(&self.syntax, SyntaxKind::ALL_KW)
3380    }
3381    #[inline]
3382    pub fn except_token(&self) -> Option<SyntaxToken> {
3383        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3384    }
3385    #[inline]
3386    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3387        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3388    }
3389    #[inline]
3390    pub fn union_token(&self) -> Option<SyntaxToken> {
3391        support::token(&self.syntax, SyntaxKind::UNION_KW)
3392    }
3393}
3394
3395#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3396pub struct CompressionMethod {
3397    pub(crate) syntax: SyntaxNode,
3398}
3399impl CompressionMethod {
3400    #[inline]
3401    pub fn compression_token(&self) -> Option<SyntaxToken> {
3402        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3403    }
3404    #[inline]
3405    pub fn default_token(&self) -> Option<SyntaxToken> {
3406        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3407    }
3408    #[inline]
3409    pub fn ident_token(&self) -> Option<SyntaxToken> {
3410        support::token(&self.syntax, SyntaxKind::IDENT)
3411    }
3412}
3413
3414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3415pub struct ConflictDoNothing {
3416    pub(crate) syntax: SyntaxNode,
3417}
3418impl ConflictDoNothing {
3419    #[inline]
3420    pub fn do_token(&self) -> Option<SyntaxToken> {
3421        support::token(&self.syntax, SyntaxKind::DO_KW)
3422    }
3423    #[inline]
3424    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3425        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3426    }
3427}
3428
3429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3430pub struct ConflictDoSelect {
3431    pub(crate) syntax: SyntaxNode,
3432}
3433impl ConflictDoSelect {
3434    #[inline]
3435    pub fn locking_clause(&self) -> Option<LockingClause> {
3436        support::child(&self.syntax)
3437    }
3438    #[inline]
3439    pub fn where_clause(&self) -> Option<WhereClause> {
3440        support::child(&self.syntax)
3441    }
3442    #[inline]
3443    pub fn do_token(&self) -> Option<SyntaxToken> {
3444        support::token(&self.syntax, SyntaxKind::DO_KW)
3445    }
3446    #[inline]
3447    pub fn select_token(&self) -> Option<SyntaxToken> {
3448        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3449    }
3450}
3451
3452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3453pub struct ConflictDoUpdateSet {
3454    pub(crate) syntax: SyntaxNode,
3455}
3456impl ConflictDoUpdateSet {
3457    #[inline]
3458    pub fn set_clause(&self) -> Option<SetClause> {
3459        support::child(&self.syntax)
3460    }
3461    #[inline]
3462    pub fn where_clause(&self) -> Option<WhereClause> {
3463        support::child(&self.syntax)
3464    }
3465    #[inline]
3466    pub fn do_token(&self) -> Option<SyntaxToken> {
3467        support::token(&self.syntax, SyntaxKind::DO_KW)
3468    }
3469    #[inline]
3470    pub fn update_token(&self) -> Option<SyntaxToken> {
3471        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3472    }
3473}
3474
3475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3476pub struct ConflictIndexItem {
3477    pub(crate) syntax: SyntaxNode,
3478}
3479impl ConflictIndexItem {
3480    #[inline]
3481    pub fn collate(&self) -> Option<Collate> {
3482        support::child(&self.syntax)
3483    }
3484    #[inline]
3485    pub fn expr(&self) -> Option<Expr> {
3486        support::child(&self.syntax)
3487    }
3488    #[inline]
3489    pub fn ident_token(&self) -> Option<SyntaxToken> {
3490        support::token(&self.syntax, SyntaxKind::IDENT)
3491    }
3492}
3493
3494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3495pub struct ConflictIndexItemList {
3496    pub(crate) syntax: SyntaxNode,
3497}
3498impl ConflictIndexItemList {
3499    #[inline]
3500    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3501        support::children(&self.syntax)
3502    }
3503    #[inline]
3504    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3505        support::token(&self.syntax, SyntaxKind::L_PAREN)
3506    }
3507    #[inline]
3508    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3509        support::token(&self.syntax, SyntaxKind::R_PAREN)
3510    }
3511}
3512
3513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3514pub struct ConflictOnConstraint {
3515    pub(crate) syntax: SyntaxNode,
3516}
3517impl ConflictOnConstraint {
3518    #[inline]
3519    pub fn name_ref(&self) -> Option<NameRef> {
3520        support::child(&self.syntax)
3521    }
3522    #[inline]
3523    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3524        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3525    }
3526    #[inline]
3527    pub fn on_token(&self) -> Option<SyntaxToken> {
3528        support::token(&self.syntax, SyntaxKind::ON_KW)
3529    }
3530}
3531
3532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3533pub struct ConflictOnIndex {
3534    pub(crate) syntax: SyntaxNode,
3535}
3536impl ConflictOnIndex {
3537    #[inline]
3538    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3539        support::child(&self.syntax)
3540    }
3541    #[inline]
3542    pub fn where_clause(&self) -> Option<WhereClause> {
3543        support::child(&self.syntax)
3544    }
3545}
3546
3547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3548pub struct ConstraintExclusion {
3549    pub(crate) syntax: SyntaxNode,
3550}
3551impl ConstraintExclusion {
3552    #[inline]
3553    pub fn expr(&self) -> Option<Expr> {
3554        support::child(&self.syntax)
3555    }
3556    #[inline]
3557    pub fn op(&self) -> Option<Op> {
3558        support::child(&self.syntax)
3559    }
3560    #[inline]
3561    pub fn with_token(&self) -> Option<SyntaxToken> {
3562        support::token(&self.syntax, SyntaxKind::WITH_KW)
3563    }
3564}
3565
3566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3567pub struct ConstraintExclusionList {
3568    pub(crate) syntax: SyntaxNode,
3569}
3570impl ConstraintExclusionList {
3571    #[inline]
3572    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3573        support::children(&self.syntax)
3574    }
3575    #[inline]
3576    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3577        support::token(&self.syntax, SyntaxKind::L_PAREN)
3578    }
3579    #[inline]
3580    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3581        support::token(&self.syntax, SyntaxKind::R_PAREN)
3582    }
3583}
3584
3585#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3586pub struct ConstraintIncludeClause {
3587    pub(crate) syntax: SyntaxNode,
3588}
3589impl ConstraintIncludeClause {
3590    #[inline]
3591    pub fn include_token(&self) -> Option<SyntaxToken> {
3592        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3593    }
3594}
3595
3596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3597pub struct ConstraintIndexMethod {
3598    pub(crate) syntax: SyntaxNode,
3599}
3600impl ConstraintIndexMethod {
3601    #[inline]
3602    pub fn using_token(&self) -> Option<SyntaxToken> {
3603        support::token(&self.syntax, SyntaxKind::USING_KW)
3604    }
3605}
3606
3607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3608pub struct ConstraintIndexTablespace {
3609    pub(crate) syntax: SyntaxNode,
3610}
3611impl ConstraintIndexTablespace {
3612    #[inline]
3613    pub fn name_ref(&self) -> Option<NameRef> {
3614        support::child(&self.syntax)
3615    }
3616    #[inline]
3617    pub fn index_token(&self) -> Option<SyntaxToken> {
3618        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3619    }
3620    #[inline]
3621    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3622        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3623    }
3624    #[inline]
3625    pub fn using_token(&self) -> Option<SyntaxToken> {
3626        support::token(&self.syntax, SyntaxKind::USING_KW)
3627    }
3628}
3629
3630#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3631pub struct ConstraintName {
3632    pub(crate) syntax: SyntaxNode,
3633}
3634impl ConstraintName {
3635    #[inline]
3636    pub fn name(&self) -> Option<Name> {
3637        support::child(&self.syntax)
3638    }
3639    #[inline]
3640    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3641        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3642    }
3643}
3644
3645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3646pub struct Copy {
3647    pub(crate) syntax: SyntaxNode,
3648}
3649impl Copy {
3650    #[inline]
3651    pub fn column_list(&self) -> Option<ColumnList> {
3652        support::child(&self.syntax)
3653    }
3654    #[inline]
3655    pub fn literal(&self) -> Option<Literal> {
3656        support::child(&self.syntax)
3657    }
3658    #[inline]
3659    pub fn path(&self) -> Option<Path> {
3660        support::child(&self.syntax)
3661    }
3662    #[inline]
3663    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3664        support::child(&self.syntax)
3665    }
3666    #[inline]
3667    pub fn where_clause(&self) -> Option<WhereClause> {
3668        support::child(&self.syntax)
3669    }
3670    #[inline]
3671    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3672        support::token(&self.syntax, SyntaxKind::L_PAREN)
3673    }
3674    #[inline]
3675    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3676        support::token(&self.syntax, SyntaxKind::R_PAREN)
3677    }
3678    #[inline]
3679    pub fn binary_token(&self) -> Option<SyntaxToken> {
3680        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3681    }
3682    #[inline]
3683    pub fn copy_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::COPY_KW)
3685    }
3686    #[inline]
3687    pub fn from_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::FROM_KW)
3689    }
3690    #[inline]
3691    pub fn program_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3693    }
3694    #[inline]
3695    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3697    }
3698    #[inline]
3699    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3700        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3701    }
3702    #[inline]
3703    pub fn to_token(&self) -> Option<SyntaxToken> {
3704        support::token(&self.syntax, SyntaxKind::TO_KW)
3705    }
3706    #[inline]
3707    pub fn with_token(&self) -> Option<SyntaxToken> {
3708        support::token(&self.syntax, SyntaxKind::WITH_KW)
3709    }
3710}
3711
3712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3713pub struct CopyOption {
3714    pub(crate) syntax: SyntaxNode,
3715}
3716impl CopyOption {
3717    #[inline]
3718    pub fn name(&self) -> Option<Name> {
3719        support::child(&self.syntax)
3720    }
3721}
3722
3723#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3724pub struct CopyOptionList {
3725    pub(crate) syntax: SyntaxNode,
3726}
3727impl CopyOptionList {
3728    #[inline]
3729    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3730        support::children(&self.syntax)
3731    }
3732    #[inline]
3733    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3734        support::token(&self.syntax, SyntaxKind::L_PAREN)
3735    }
3736    #[inline]
3737    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3738        support::token(&self.syntax, SyntaxKind::R_PAREN)
3739    }
3740}
3741
3742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3743pub struct CostFuncOption {
3744    pub(crate) syntax: SyntaxNode,
3745}
3746impl CostFuncOption {
3747    #[inline]
3748    pub fn cost_token(&self) -> Option<SyntaxToken> {
3749        support::token(&self.syntax, SyntaxKind::COST_KW)
3750    }
3751}
3752
3753#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3754pub struct CreateAccessMethod {
3755    pub(crate) syntax: SyntaxNode,
3756}
3757impl CreateAccessMethod {
3758    #[inline]
3759    pub fn handler_clause(&self) -> Option<HandlerClause> {
3760        support::child(&self.syntax)
3761    }
3762    #[inline]
3763    pub fn name(&self) -> Option<Path> {
3764        support::child(&self.syntax)
3765    }
3766    #[inline]
3767    pub fn access_token(&self) -> Option<SyntaxToken> {
3768        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3769    }
3770    #[inline]
3771    pub fn create_token(&self) -> Option<SyntaxToken> {
3772        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3773    }
3774    #[inline]
3775    pub fn index_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3777    }
3778    #[inline]
3779    pub fn method_token(&self) -> Option<SyntaxToken> {
3780        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3781    }
3782    #[inline]
3783    pub fn table_token(&self) -> Option<SyntaxToken> {
3784        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3785    }
3786    #[inline]
3787    pub fn type_token(&self) -> Option<SyntaxToken> {
3788        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3789    }
3790}
3791
3792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3793pub struct CreateAggregate {
3794    pub(crate) syntax: SyntaxNode,
3795}
3796impl CreateAggregate {
3797    #[inline]
3798    pub fn or_replace(&self) -> Option<OrReplace> {
3799        support::child(&self.syntax)
3800    }
3801    #[inline]
3802    pub fn param_list(&self) -> Option<ParamList> {
3803        support::child(&self.syntax)
3804    }
3805    #[inline]
3806    pub fn path(&self) -> Option<Path> {
3807        support::child(&self.syntax)
3808    }
3809    #[inline]
3810    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3811        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3812    }
3813    #[inline]
3814    pub fn create_token(&self) -> Option<SyntaxToken> {
3815        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3816    }
3817}
3818
3819#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3820pub struct CreateCast {
3821    pub(crate) syntax: SyntaxNode,
3822}
3823impl CreateCast {
3824    #[inline]
3825    pub fn cast_sig(&self) -> Option<CastSig> {
3826        support::child(&self.syntax)
3827    }
3828    #[inline]
3829    pub fn function_sig(&self) -> Option<FunctionSig> {
3830        support::child(&self.syntax)
3831    }
3832    #[inline]
3833    pub fn as_token(&self) -> Option<SyntaxToken> {
3834        support::token(&self.syntax, SyntaxKind::AS_KW)
3835    }
3836    #[inline]
3837    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3838        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3839    }
3840    #[inline]
3841    pub fn cast_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::CAST_KW)
3843    }
3844    #[inline]
3845    pub fn create_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3847    }
3848    #[inline]
3849    pub fn function_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3851    }
3852    #[inline]
3853    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3854        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3855    }
3856    #[inline]
3857    pub fn inout_token(&self) -> Option<SyntaxToken> {
3858        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3859    }
3860    #[inline]
3861    pub fn with_token(&self) -> Option<SyntaxToken> {
3862        support::token(&self.syntax, SyntaxKind::WITH_KW)
3863    }
3864    #[inline]
3865    pub fn without_token(&self) -> Option<SyntaxToken> {
3866        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3867    }
3868}
3869
3870#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3871pub struct CreateCollation {
3872    pub(crate) syntax: SyntaxNode,
3873}
3874impl CreateCollation {
3875    #[inline]
3876    pub fn path(&self) -> Option<Path> {
3877        support::child(&self.syntax)
3878    }
3879    #[inline]
3880    pub fn collation_token(&self) -> Option<SyntaxToken> {
3881        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3882    }
3883    #[inline]
3884    pub fn create_token(&self) -> Option<SyntaxToken> {
3885        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3886    }
3887}
3888
3889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3890pub struct CreateConversion {
3891    pub(crate) syntax: SyntaxNode,
3892}
3893impl CreateConversion {
3894    #[inline]
3895    pub fn literal(&self) -> Option<Literal> {
3896        support::child(&self.syntax)
3897    }
3898    #[inline]
3899    pub fn path(&self) -> Option<Path> {
3900        support::child(&self.syntax)
3901    }
3902    #[inline]
3903    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3904        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3905    }
3906    #[inline]
3907    pub fn create_token(&self) -> Option<SyntaxToken> {
3908        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3909    }
3910    #[inline]
3911    pub fn default_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3913    }
3914    #[inline]
3915    pub fn for_token(&self) -> Option<SyntaxToken> {
3916        support::token(&self.syntax, SyntaxKind::FOR_KW)
3917    }
3918    #[inline]
3919    pub fn from_token(&self) -> Option<SyntaxToken> {
3920        support::token(&self.syntax, SyntaxKind::FROM_KW)
3921    }
3922    #[inline]
3923    pub fn to_token(&self) -> Option<SyntaxToken> {
3924        support::token(&self.syntax, SyntaxKind::TO_KW)
3925    }
3926}
3927
3928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3929pub struct CreateDatabase {
3930    pub(crate) syntax: SyntaxNode,
3931}
3932impl CreateDatabase {
3933    #[inline]
3934    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3935        support::child(&self.syntax)
3936    }
3937    #[inline]
3938    pub fn name(&self) -> Option<Name> {
3939        support::child(&self.syntax)
3940    }
3941    #[inline]
3942    pub fn create_token(&self) -> Option<SyntaxToken> {
3943        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3944    }
3945    #[inline]
3946    pub fn database_token(&self) -> Option<SyntaxToken> {
3947        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3948    }
3949}
3950
3951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3952pub struct CreateDatabaseOption {
3953    pub(crate) syntax: SyntaxNode,
3954}
3955impl CreateDatabaseOption {
3956    #[inline]
3957    pub fn literal(&self) -> Option<Literal> {
3958        support::child(&self.syntax)
3959    }
3960    #[inline]
3961    pub fn eq_token(&self) -> Option<SyntaxToken> {
3962        support::token(&self.syntax, SyntaxKind::EQ)
3963    }
3964    #[inline]
3965    pub fn connection_token(&self) -> Option<SyntaxToken> {
3966        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3967    }
3968    #[inline]
3969    pub fn default_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3971    }
3972    #[inline]
3973    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3974        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3975    }
3976    #[inline]
3977    pub fn ident_token(&self) -> Option<SyntaxToken> {
3978        support::token(&self.syntax, SyntaxKind::IDENT)
3979    }
3980    #[inline]
3981    pub fn limit_token(&self) -> Option<SyntaxToken> {
3982        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3983    }
3984    #[inline]
3985    pub fn owner_token(&self) -> Option<SyntaxToken> {
3986        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3987    }
3988    #[inline]
3989    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3990        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3991    }
3992    #[inline]
3993    pub fn template_token(&self) -> Option<SyntaxToken> {
3994        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3995    }
3996}
3997
3998#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3999pub struct CreateDatabaseOptionList {
4000    pub(crate) syntax: SyntaxNode,
4001}
4002impl CreateDatabaseOptionList {
4003    #[inline]
4004    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
4005        support::children(&self.syntax)
4006    }
4007    #[inline]
4008    pub fn with_token(&self) -> Option<SyntaxToken> {
4009        support::token(&self.syntax, SyntaxKind::WITH_KW)
4010    }
4011}
4012
4013#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4014pub struct CreateDomain {
4015    pub(crate) syntax: SyntaxNode,
4016}
4017impl CreateDomain {
4018    #[inline]
4019    pub fn collate(&self) -> Option<Collate> {
4020        support::child(&self.syntax)
4021    }
4022    #[inline]
4023    pub fn constraints(&self) -> AstChildren<Constraint> {
4024        support::children(&self.syntax)
4025    }
4026    #[inline]
4027    pub fn path(&self) -> Option<Path> {
4028        support::child(&self.syntax)
4029    }
4030    #[inline]
4031    pub fn ty(&self) -> Option<Type> {
4032        support::child(&self.syntax)
4033    }
4034    #[inline]
4035    pub fn as_token(&self) -> Option<SyntaxToken> {
4036        support::token(&self.syntax, SyntaxKind::AS_KW)
4037    }
4038    #[inline]
4039    pub fn create_token(&self) -> Option<SyntaxToken> {
4040        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4041    }
4042    #[inline]
4043    pub fn domain_token(&self) -> Option<SyntaxToken> {
4044        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4045    }
4046}
4047
4048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4049pub struct CreateEventTrigger {
4050    pub(crate) syntax: SyntaxNode,
4051}
4052impl CreateEventTrigger {
4053    #[inline]
4054    pub fn call_expr(&self) -> Option<CallExpr> {
4055        support::child(&self.syntax)
4056    }
4057    #[inline]
4058    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4059        support::child(&self.syntax)
4060    }
4061    #[inline]
4062    pub fn name(&self) -> Option<Name> {
4063        support::child(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn name_ref(&self) -> Option<NameRef> {
4067        support::child(&self.syntax)
4068    }
4069    #[inline]
4070    pub fn create_token(&self) -> Option<SyntaxToken> {
4071        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4072    }
4073    #[inline]
4074    pub fn event_token(&self) -> Option<SyntaxToken> {
4075        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4076    }
4077    #[inline]
4078    pub fn execute_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4080    }
4081    #[inline]
4082    pub fn function_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4084    }
4085    #[inline]
4086    pub fn on_token(&self) -> Option<SyntaxToken> {
4087        support::token(&self.syntax, SyntaxKind::ON_KW)
4088    }
4089    #[inline]
4090    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4092    }
4093    #[inline]
4094    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4095        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4096    }
4097}
4098
4099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4100pub struct CreateExtension {
4101    pub(crate) syntax: SyntaxNode,
4102}
4103impl CreateExtension {
4104    #[inline]
4105    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4106        support::child(&self.syntax)
4107    }
4108    #[inline]
4109    pub fn name(&self) -> Option<Name> {
4110        support::child(&self.syntax)
4111    }
4112    #[inline]
4113    pub fn create_token(&self) -> Option<SyntaxToken> {
4114        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4115    }
4116    #[inline]
4117    pub fn extension_token(&self) -> Option<SyntaxToken> {
4118        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4119    }
4120}
4121
4122#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4123pub struct CreateForeignDataWrapper {
4124    pub(crate) syntax: SyntaxNode,
4125}
4126impl CreateForeignDataWrapper {
4127    #[inline]
4128    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4129        support::child(&self.syntax)
4130    }
4131    #[inline]
4132    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4133        support::child(&self.syntax)
4134    }
4135    #[inline]
4136    pub fn name(&self) -> Option<Name> {
4137        support::child(&self.syntax)
4138    }
4139    #[inline]
4140    pub fn create_token(&self) -> Option<SyntaxToken> {
4141        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4142    }
4143    #[inline]
4144    pub fn data_token(&self) -> Option<SyntaxToken> {
4145        support::token(&self.syntax, SyntaxKind::DATA_KW)
4146    }
4147    #[inline]
4148    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4150    }
4151    #[inline]
4152    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4154    }
4155}
4156
4157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4158pub struct CreateForeignTable {
4159    pub(crate) syntax: SyntaxNode,
4160}
4161impl CreateForeignTable {
4162    #[inline]
4163    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4164        support::child(&self.syntax)
4165    }
4166    #[inline]
4167    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4168        support::child(&self.syntax)
4169    }
4170    #[inline]
4171    pub fn inherits(&self) -> Option<Inherits> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn partition_of(&self) -> Option<PartitionOf> {
4176        support::child(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn partition_type(&self) -> Option<PartitionType> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn path(&self) -> Option<Path> {
4184        support::child(&self.syntax)
4185    }
4186    #[inline]
4187    pub fn server_name(&self) -> Option<ServerName> {
4188        support::child(&self.syntax)
4189    }
4190    #[inline]
4191    pub fn table_arg_list(&self) -> Option<TableArgList> {
4192        support::child(&self.syntax)
4193    }
4194    #[inline]
4195    pub fn create_token(&self) -> Option<SyntaxToken> {
4196        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4197    }
4198    #[inline]
4199    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4200        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4201    }
4202    #[inline]
4203    pub fn table_token(&self) -> Option<SyntaxToken> {
4204        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4205    }
4206}
4207
4208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4209pub struct CreateFunction {
4210    pub(crate) syntax: SyntaxNode,
4211}
4212impl CreateFunction {
4213    #[inline]
4214    pub fn option_list(&self) -> Option<FuncOptionList> {
4215        support::child(&self.syntax)
4216    }
4217    #[inline]
4218    pub fn or_replace(&self) -> Option<OrReplace> {
4219        support::child(&self.syntax)
4220    }
4221    #[inline]
4222    pub fn param_list(&self) -> Option<ParamList> {
4223        support::child(&self.syntax)
4224    }
4225    #[inline]
4226    pub fn path(&self) -> Option<Path> {
4227        support::child(&self.syntax)
4228    }
4229    #[inline]
4230    pub fn ret_type(&self) -> Option<RetType> {
4231        support::child(&self.syntax)
4232    }
4233    #[inline]
4234    pub fn create_token(&self) -> Option<SyntaxToken> {
4235        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4236    }
4237    #[inline]
4238    pub fn function_token(&self) -> Option<SyntaxToken> {
4239        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4240    }
4241}
4242
4243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4244pub struct CreateGroup {
4245    pub(crate) syntax: SyntaxNode,
4246}
4247impl CreateGroup {
4248    #[inline]
4249    pub fn name(&self) -> Option<Name> {
4250        support::child(&self.syntax)
4251    }
4252    #[inline]
4253    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4254        support::child(&self.syntax)
4255    }
4256    #[inline]
4257    pub fn create_token(&self) -> Option<SyntaxToken> {
4258        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4259    }
4260    #[inline]
4261    pub fn group_token(&self) -> Option<SyntaxToken> {
4262        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4263    }
4264}
4265
4266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4267pub struct CreateIndex {
4268    pub(crate) syntax: SyntaxNode,
4269}
4270impl CreateIndex {
4271    #[inline]
4272    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4273        support::child(&self.syntax)
4274    }
4275    #[inline]
4276    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4277        support::child(&self.syntax)
4278    }
4279    #[inline]
4280    pub fn name(&self) -> Option<Name> {
4281        support::child(&self.syntax)
4282    }
4283    #[inline]
4284    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4285        support::child(&self.syntax)
4286    }
4287    #[inline]
4288    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4289        support::child(&self.syntax)
4290    }
4291    #[inline]
4292    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4293        support::child(&self.syntax)
4294    }
4295    #[inline]
4296    pub fn relation_name(&self) -> Option<RelationName> {
4297        support::child(&self.syntax)
4298    }
4299    #[inline]
4300    pub fn tablespace(&self) -> Option<Tablespace> {
4301        support::child(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn using_method(&self) -> Option<UsingMethod> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn where_clause(&self) -> Option<WhereClause> {
4309        support::child(&self.syntax)
4310    }
4311    #[inline]
4312    pub fn with_params(&self) -> Option<WithParams> {
4313        support::child(&self.syntax)
4314    }
4315    #[inline]
4316    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4317        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4318    }
4319    #[inline]
4320    pub fn create_token(&self) -> Option<SyntaxToken> {
4321        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4322    }
4323    #[inline]
4324    pub fn index_token(&self) -> Option<SyntaxToken> {
4325        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4326    }
4327    #[inline]
4328    pub fn on_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::ON_KW)
4330    }
4331    #[inline]
4332    pub fn unique_token(&self) -> Option<SyntaxToken> {
4333        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4334    }
4335}
4336
4337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4338pub struct CreateLanguage {
4339    pub(crate) syntax: SyntaxNode,
4340}
4341impl CreateLanguage {
4342    #[inline]
4343    pub fn name(&self) -> Option<Name> {
4344        support::child(&self.syntax)
4345    }
4346    #[inline]
4347    pub fn or_replace(&self) -> Option<OrReplace> {
4348        support::child(&self.syntax)
4349    }
4350    #[inline]
4351    pub fn path(&self) -> Option<Path> {
4352        support::child(&self.syntax)
4353    }
4354    #[inline]
4355    pub fn create_token(&self) -> Option<SyntaxToken> {
4356        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4357    }
4358    #[inline]
4359    pub fn handler_token(&self) -> Option<SyntaxToken> {
4360        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4361    }
4362    #[inline]
4363    pub fn inline_token(&self) -> Option<SyntaxToken> {
4364        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4365    }
4366    #[inline]
4367    pub fn language_token(&self) -> Option<SyntaxToken> {
4368        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4369    }
4370    #[inline]
4371    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4372        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4373    }
4374    #[inline]
4375    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4376        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4377    }
4378    #[inline]
4379    pub fn validator_token(&self) -> Option<SyntaxToken> {
4380        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4381    }
4382}
4383
4384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4385pub struct CreateMaterializedView {
4386    pub(crate) syntax: SyntaxNode,
4387}
4388impl CreateMaterializedView {
4389    #[inline]
4390    pub fn column_list(&self) -> Option<ColumnList> {
4391        support::child(&self.syntax)
4392    }
4393    #[inline]
4394    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4395        support::child(&self.syntax)
4396    }
4397    #[inline]
4398    pub fn path(&self) -> Option<Path> {
4399        support::child(&self.syntax)
4400    }
4401    #[inline]
4402    pub fn query(&self) -> Option<SelectVariant> {
4403        support::child(&self.syntax)
4404    }
4405    #[inline]
4406    pub fn tablespace(&self) -> Option<Tablespace> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn using_method(&self) -> Option<UsingMethod> {
4411        support::child(&self.syntax)
4412    }
4413    #[inline]
4414    pub fn with_data(&self) -> Option<WithData> {
4415        support::child(&self.syntax)
4416    }
4417    #[inline]
4418    pub fn with_no_data(&self) -> Option<WithNoData> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn with_params(&self) -> Option<WithParams> {
4423        support::child(&self.syntax)
4424    }
4425    #[inline]
4426    pub fn as_token(&self) -> Option<SyntaxToken> {
4427        support::token(&self.syntax, SyntaxKind::AS_KW)
4428    }
4429    #[inline]
4430    pub fn create_token(&self) -> Option<SyntaxToken> {
4431        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4432    }
4433    #[inline]
4434    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4435        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4436    }
4437    #[inline]
4438    pub fn view_token(&self) -> Option<SyntaxToken> {
4439        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4440    }
4441}
4442
4443#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4444pub struct CreateOperator {
4445    pub(crate) syntax: SyntaxNode,
4446}
4447impl CreateOperator {
4448    #[inline]
4449    pub fn attribute_list(&self) -> Option<AttributeList> {
4450        support::child(&self.syntax)
4451    }
4452    #[inline]
4453    pub fn op(&self) -> Option<Op> {
4454        support::child(&self.syntax)
4455    }
4456    #[inline]
4457    pub fn path(&self) -> Option<Path> {
4458        support::child(&self.syntax)
4459    }
4460    #[inline]
4461    pub fn create_token(&self) -> Option<SyntaxToken> {
4462        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4463    }
4464    #[inline]
4465    pub fn operator_token(&self) -> Option<SyntaxToken> {
4466        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4467    }
4468}
4469
4470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4471pub struct CreateOperatorClass {
4472    pub(crate) syntax: SyntaxNode,
4473}
4474impl CreateOperatorClass {
4475    #[inline]
4476    pub fn name_ref(&self) -> Option<NameRef> {
4477        support::child(&self.syntax)
4478    }
4479    #[inline]
4480    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4481        support::child(&self.syntax)
4482    }
4483    #[inline]
4484    pub fn path(&self) -> Option<Path> {
4485        support::child(&self.syntax)
4486    }
4487    #[inline]
4488    pub fn ty(&self) -> Option<Type> {
4489        support::child(&self.syntax)
4490    }
4491    #[inline]
4492    pub fn as_token(&self) -> Option<SyntaxToken> {
4493        support::token(&self.syntax, SyntaxKind::AS_KW)
4494    }
4495    #[inline]
4496    pub fn class_token(&self) -> Option<SyntaxToken> {
4497        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4498    }
4499    #[inline]
4500    pub fn create_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4502    }
4503    #[inline]
4504    pub fn default_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4506    }
4507    #[inline]
4508    pub fn family_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4510    }
4511    #[inline]
4512    pub fn for_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::FOR_KW)
4514    }
4515    #[inline]
4516    pub fn operator_token(&self) -> Option<SyntaxToken> {
4517        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4518    }
4519    #[inline]
4520    pub fn type_token(&self) -> Option<SyntaxToken> {
4521        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4522    }
4523    #[inline]
4524    pub fn using_token(&self) -> Option<SyntaxToken> {
4525        support::token(&self.syntax, SyntaxKind::USING_KW)
4526    }
4527}
4528
4529#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4530pub struct CreateOperatorFamily {
4531    pub(crate) syntax: SyntaxNode,
4532}
4533impl CreateOperatorFamily {
4534    #[inline]
4535    pub fn name_ref(&self) -> Option<NameRef> {
4536        support::child(&self.syntax)
4537    }
4538    #[inline]
4539    pub fn path(&self) -> Option<Path> {
4540        support::child(&self.syntax)
4541    }
4542    #[inline]
4543    pub fn create_token(&self) -> Option<SyntaxToken> {
4544        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4545    }
4546    #[inline]
4547    pub fn family_token(&self) -> Option<SyntaxToken> {
4548        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4549    }
4550    #[inline]
4551    pub fn operator_token(&self) -> Option<SyntaxToken> {
4552        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4553    }
4554    #[inline]
4555    pub fn using_token(&self) -> Option<SyntaxToken> {
4556        support::token(&self.syntax, SyntaxKind::USING_KW)
4557    }
4558}
4559
4560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4561pub struct CreatePolicy {
4562    pub(crate) syntax: SyntaxNode,
4563}
4564impl CreatePolicy {
4565    #[inline]
4566    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4567        support::child(&self.syntax)
4568    }
4569    #[inline]
4570    pub fn name(&self) -> Option<Name> {
4571        support::child(&self.syntax)
4572    }
4573    #[inline]
4574    pub fn on_table(&self) -> Option<OnTable> {
4575        support::child(&self.syntax)
4576    }
4577    #[inline]
4578    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4579        support::child(&self.syntax)
4580    }
4581    #[inline]
4582    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4583        support::child(&self.syntax)
4584    }
4585    #[inline]
4586    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4587        support::child(&self.syntax)
4588    }
4589    #[inline]
4590    pub fn all_token(&self) -> Option<SyntaxToken> {
4591        support::token(&self.syntax, SyntaxKind::ALL_KW)
4592    }
4593    #[inline]
4594    pub fn create_token(&self) -> Option<SyntaxToken> {
4595        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4596    }
4597    #[inline]
4598    pub fn delete_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4600    }
4601    #[inline]
4602    pub fn for_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::FOR_KW)
4604    }
4605    #[inline]
4606    pub fn insert_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4608    }
4609    #[inline]
4610    pub fn policy_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4612    }
4613    #[inline]
4614    pub fn select_token(&self) -> Option<SyntaxToken> {
4615        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4616    }
4617    #[inline]
4618    pub fn to_token(&self) -> Option<SyntaxToken> {
4619        support::token(&self.syntax, SyntaxKind::TO_KW)
4620    }
4621    #[inline]
4622    pub fn update_token(&self) -> Option<SyntaxToken> {
4623        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4624    }
4625}
4626
4627#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4628pub struct CreateProcedure {
4629    pub(crate) syntax: SyntaxNode,
4630}
4631impl CreateProcedure {
4632    #[inline]
4633    pub fn option_list(&self) -> Option<FuncOptionList> {
4634        support::child(&self.syntax)
4635    }
4636    #[inline]
4637    pub fn or_replace(&self) -> Option<OrReplace> {
4638        support::child(&self.syntax)
4639    }
4640    #[inline]
4641    pub fn param_list(&self) -> Option<ParamList> {
4642        support::child(&self.syntax)
4643    }
4644    #[inline]
4645    pub fn path(&self) -> Option<Path> {
4646        support::child(&self.syntax)
4647    }
4648    #[inline]
4649    pub fn create_token(&self) -> Option<SyntaxToken> {
4650        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4651    }
4652    #[inline]
4653    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4654        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4655    }
4656}
4657
4658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4659pub struct CreatePropertyGraph {
4660    pub(crate) syntax: SyntaxNode,
4661}
4662impl CreatePropertyGraph {
4663    #[inline]
4664    pub fn edge_tables(&self) -> Option<EdgeTables> {
4665        support::child(&self.syntax)
4666    }
4667    #[inline]
4668    pub fn path(&self) -> Option<Path> {
4669        support::child(&self.syntax)
4670    }
4671    #[inline]
4672    pub fn persistence(&self) -> Option<Persistence> {
4673        support::child(&self.syntax)
4674    }
4675    #[inline]
4676    pub fn vertex_tables(&self) -> Option<VertexTables> {
4677        support::child(&self.syntax)
4678    }
4679    #[inline]
4680    pub fn create_token(&self) -> Option<SyntaxToken> {
4681        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4682    }
4683    #[inline]
4684    pub fn graph_token(&self) -> Option<SyntaxToken> {
4685        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4686    }
4687    #[inline]
4688    pub fn property_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4690    }
4691}
4692
4693#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4694pub struct CreatePublication {
4695    pub(crate) syntax: SyntaxNode,
4696}
4697impl CreatePublication {
4698    #[inline]
4699    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4700        support::child(&self.syntax)
4701    }
4702    #[inline]
4703    pub fn name(&self) -> Option<Name> {
4704        support::child(&self.syntax)
4705    }
4706    #[inline]
4707    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4708        support::children(&self.syntax)
4709    }
4710    #[inline]
4711    pub fn with_params(&self) -> Option<WithParams> {
4712        support::child(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn all_token(&self) -> Option<SyntaxToken> {
4716        support::token(&self.syntax, SyntaxKind::ALL_KW)
4717    }
4718    #[inline]
4719    pub fn create_token(&self) -> Option<SyntaxToken> {
4720        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4721    }
4722    #[inline]
4723    pub fn for_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::FOR_KW)
4725    }
4726    #[inline]
4727    pub fn publication_token(&self) -> Option<SyntaxToken> {
4728        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4729    }
4730    #[inline]
4731    pub fn tables_token(&self) -> Option<SyntaxToken> {
4732        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4733    }
4734}
4735
4736#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4737pub struct CreateRole {
4738    pub(crate) syntax: SyntaxNode,
4739}
4740impl CreateRole {
4741    #[inline]
4742    pub fn name(&self) -> Option<Name> {
4743        support::child(&self.syntax)
4744    }
4745    #[inline]
4746    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4747        support::child(&self.syntax)
4748    }
4749    #[inline]
4750    pub fn create_token(&self) -> Option<SyntaxToken> {
4751        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4752    }
4753    #[inline]
4754    pub fn role_token(&self) -> Option<SyntaxToken> {
4755        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4756    }
4757}
4758
4759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4760pub struct CreateRule {
4761    pub(crate) syntax: SyntaxNode,
4762}
4763impl CreateRule {
4764    #[inline]
4765    pub fn name(&self) -> Option<Name> {
4766        support::child(&self.syntax)
4767    }
4768    #[inline]
4769    pub fn or_replace(&self) -> Option<OrReplace> {
4770        support::child(&self.syntax)
4771    }
4772    #[inline]
4773    pub fn path(&self) -> Option<Path> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn stmt(&self) -> Option<Stmt> {
4778        support::child(&self.syntax)
4779    }
4780    #[inline]
4781    pub fn stmts(&self) -> AstChildren<Stmt> {
4782        support::children(&self.syntax)
4783    }
4784    #[inline]
4785    pub fn where_clause(&self) -> Option<WhereClause> {
4786        support::child(&self.syntax)
4787    }
4788    #[inline]
4789    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4790        support::token(&self.syntax, SyntaxKind::L_PAREN)
4791    }
4792    #[inline]
4793    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4794        support::token(&self.syntax, SyntaxKind::R_PAREN)
4795    }
4796    #[inline]
4797    pub fn also_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4799    }
4800    #[inline]
4801    pub fn as_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::AS_KW)
4803    }
4804    #[inline]
4805    pub fn create_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4807    }
4808    #[inline]
4809    pub fn delete_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4811    }
4812    #[inline]
4813    pub fn do_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::DO_KW)
4815    }
4816    #[inline]
4817    pub fn ident_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::IDENT)
4819    }
4820    #[inline]
4821    pub fn insert_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4823    }
4824    #[inline]
4825    pub fn instead_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4827    }
4828    #[inline]
4829    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4831    }
4832    #[inline]
4833    pub fn on_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::ON_KW)
4835    }
4836    #[inline]
4837    pub fn rule_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::RULE_KW)
4839    }
4840    #[inline]
4841    pub fn select_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4843    }
4844    #[inline]
4845    pub fn to_token(&self) -> Option<SyntaxToken> {
4846        support::token(&self.syntax, SyntaxKind::TO_KW)
4847    }
4848    #[inline]
4849    pub fn update_token(&self) -> Option<SyntaxToken> {
4850        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4851    }
4852}
4853
4854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4855pub struct CreateSchema {
4856    pub(crate) syntax: SyntaxNode,
4857}
4858impl CreateSchema {
4859    #[inline]
4860    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4861        support::child(&self.syntax)
4862    }
4863    #[inline]
4864    pub fn name(&self) -> Option<Name> {
4865        support::child(&self.syntax)
4866    }
4867    #[inline]
4868    pub fn role(&self) -> Option<Role> {
4869        support::child(&self.syntax)
4870    }
4871    #[inline]
4872    pub fn role_ref(&self) -> Option<RoleRef> {
4873        support::child(&self.syntax)
4874    }
4875    #[inline]
4876    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4877        support::children(&self.syntax)
4878    }
4879    #[inline]
4880    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4881        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4882    }
4883    #[inline]
4884    pub fn create_token(&self) -> Option<SyntaxToken> {
4885        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4886    }
4887    #[inline]
4888    pub fn schema_token(&self) -> Option<SyntaxToken> {
4889        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4890    }
4891}
4892
4893#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4894pub struct CreateSequence {
4895    pub(crate) syntax: SyntaxNode,
4896}
4897impl CreateSequence {
4898    #[inline]
4899    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4900        support::child(&self.syntax)
4901    }
4902    #[inline]
4903    pub fn path(&self) -> Option<Path> {
4904        support::child(&self.syntax)
4905    }
4906    #[inline]
4907    pub fn persistence(&self) -> Option<Persistence> {
4908        support::child(&self.syntax)
4909    }
4910    #[inline]
4911    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4912        support::children(&self.syntax)
4913    }
4914    #[inline]
4915    pub fn create_token(&self) -> Option<SyntaxToken> {
4916        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4917    }
4918    #[inline]
4919    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4920        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4921    }
4922}
4923
4924#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4925pub struct CreateServer {
4926    pub(crate) syntax: SyntaxNode,
4927}
4928impl CreateServer {
4929    #[inline]
4930    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4931        support::child(&self.syntax)
4932    }
4933    #[inline]
4934    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4935        support::child(&self.syntax)
4936    }
4937    #[inline]
4938    pub fn literal(&self) -> Option<Literal> {
4939        support::child(&self.syntax)
4940    }
4941    #[inline]
4942    pub fn name(&self) -> Option<Name> {
4943        support::child(&self.syntax)
4944    }
4945    #[inline]
4946    pub fn name_ref(&self) -> Option<NameRef> {
4947        support::child(&self.syntax)
4948    }
4949    #[inline]
4950    pub fn create_token(&self) -> Option<SyntaxToken> {
4951        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4952    }
4953    #[inline]
4954    pub fn data_token(&self) -> Option<SyntaxToken> {
4955        support::token(&self.syntax, SyntaxKind::DATA_KW)
4956    }
4957    #[inline]
4958    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4959        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4960    }
4961    #[inline]
4962    pub fn server_token(&self) -> Option<SyntaxToken> {
4963        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4964    }
4965    #[inline]
4966    pub fn type_token(&self) -> Option<SyntaxToken> {
4967        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4968    }
4969    #[inline]
4970    pub fn version_token(&self) -> Option<SyntaxToken> {
4971        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4972    }
4973    #[inline]
4974    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4975        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4976    }
4977}
4978
4979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4980pub struct CreateStatistics {
4981    pub(crate) syntax: SyntaxNode,
4982}
4983impl CreateStatistics {
4984    #[inline]
4985    pub fn from_table(&self) -> Option<FromTable> {
4986        support::child(&self.syntax)
4987    }
4988    #[inline]
4989    pub fn name_refs(&self) -> AstChildren<NameRef> {
4990        support::children(&self.syntax)
4991    }
4992    #[inline]
4993    pub fn path(&self) -> Option<Path> {
4994        support::child(&self.syntax)
4995    }
4996    #[inline]
4997    pub fn create_token(&self) -> Option<SyntaxToken> {
4998        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4999    }
5000    #[inline]
5001    pub fn on_token(&self) -> Option<SyntaxToken> {
5002        support::token(&self.syntax, SyntaxKind::ON_KW)
5003    }
5004    #[inline]
5005    pub fn statistics_token(&self) -> Option<SyntaxToken> {
5006        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
5007    }
5008}
5009
5010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5011pub struct CreateSubscription {
5012    pub(crate) syntax: SyntaxNode,
5013}
5014impl CreateSubscription {
5015    #[inline]
5016    pub fn literal(&self) -> Option<Literal> {
5017        support::child(&self.syntax)
5018    }
5019    #[inline]
5020    pub fn name(&self) -> Option<Name> {
5021        support::child(&self.syntax)
5022    }
5023    #[inline]
5024    pub fn name_ref(&self) -> Option<NameRef> {
5025        support::child(&self.syntax)
5026    }
5027    #[inline]
5028    pub fn name_refs(&self) -> AstChildren<NameRef> {
5029        support::children(&self.syntax)
5030    }
5031    #[inline]
5032    pub fn with_params(&self) -> Option<WithParams> {
5033        support::child(&self.syntax)
5034    }
5035    #[inline]
5036    pub fn connection_token(&self) -> Option<SyntaxToken> {
5037        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
5038    }
5039    #[inline]
5040    pub fn create_token(&self) -> Option<SyntaxToken> {
5041        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5042    }
5043    #[inline]
5044    pub fn publication_token(&self) -> Option<SyntaxToken> {
5045        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5046    }
5047    #[inline]
5048    pub fn server_token(&self) -> Option<SyntaxToken> {
5049        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5050    }
5051    #[inline]
5052    pub fn subscription_token(&self) -> Option<SyntaxToken> {
5053        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
5054    }
5055}
5056
5057#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5058pub struct CreateTable {
5059    pub(crate) syntax: SyntaxNode,
5060}
5061impl CreateTable {
5062    #[inline]
5063    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5064        support::child(&self.syntax)
5065    }
5066    #[inline]
5067    pub fn inherits(&self) -> Option<Inherits> {
5068        support::child(&self.syntax)
5069    }
5070    #[inline]
5071    pub fn of_type(&self) -> Option<OfType> {
5072        support::child(&self.syntax)
5073    }
5074    #[inline]
5075    pub fn on_commit(&self) -> Option<OnCommit> {
5076        support::child(&self.syntax)
5077    }
5078    #[inline]
5079    pub fn partition_by(&self) -> Option<PartitionBy> {
5080        support::child(&self.syntax)
5081    }
5082    #[inline]
5083    pub fn partition_of(&self) -> Option<PartitionOf> {
5084        support::child(&self.syntax)
5085    }
5086    #[inline]
5087    pub fn path(&self) -> Option<Path> {
5088        support::child(&self.syntax)
5089    }
5090    #[inline]
5091    pub fn persistence(&self) -> Option<Persistence> {
5092        support::child(&self.syntax)
5093    }
5094    #[inline]
5095    pub fn table_arg_list(&self) -> Option<TableArgList> {
5096        support::child(&self.syntax)
5097    }
5098    #[inline]
5099    pub fn tablespace(&self) -> Option<Tablespace> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn using_method(&self) -> Option<UsingMethod> {
5104        support::child(&self.syntax)
5105    }
5106    #[inline]
5107    pub fn with_params(&self) -> Option<WithParams> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn without_oids(&self) -> Option<WithoutOids> {
5112        support::child(&self.syntax)
5113    }
5114    #[inline]
5115    pub fn create_token(&self) -> Option<SyntaxToken> {
5116        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5117    }
5118    #[inline]
5119    pub fn table_token(&self) -> Option<SyntaxToken> {
5120        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5121    }
5122}
5123
5124#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5125pub struct CreateTableAs {
5126    pub(crate) syntax: SyntaxNode,
5127}
5128impl CreateTableAs {
5129    #[inline]
5130    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5131        support::child(&self.syntax)
5132    }
5133    #[inline]
5134    pub fn on_commit(&self) -> Option<OnCommit> {
5135        support::child(&self.syntax)
5136    }
5137    #[inline]
5138    pub fn path(&self) -> Option<Path> {
5139        support::child(&self.syntax)
5140    }
5141    #[inline]
5142    pub fn persistence(&self) -> Option<Persistence> {
5143        support::child(&self.syntax)
5144    }
5145    #[inline]
5146    pub fn query(&self) -> Option<SelectVariant> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn tablespace(&self) -> Option<Tablespace> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn using_method(&self) -> Option<UsingMethod> {
5155        support::child(&self.syntax)
5156    }
5157    #[inline]
5158    pub fn with_data(&self) -> Option<WithData> {
5159        support::child(&self.syntax)
5160    }
5161    #[inline]
5162    pub fn with_no_data(&self) -> Option<WithNoData> {
5163        support::child(&self.syntax)
5164    }
5165    #[inline]
5166    pub fn with_params(&self) -> Option<WithParams> {
5167        support::child(&self.syntax)
5168    }
5169    #[inline]
5170    pub fn without_oids(&self) -> Option<WithoutOids> {
5171        support::child(&self.syntax)
5172    }
5173    #[inline]
5174    pub fn as_token(&self) -> Option<SyntaxToken> {
5175        support::token(&self.syntax, SyntaxKind::AS_KW)
5176    }
5177    #[inline]
5178    pub fn create_token(&self) -> Option<SyntaxToken> {
5179        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5180    }
5181    #[inline]
5182    pub fn table_token(&self) -> Option<SyntaxToken> {
5183        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5184    }
5185}
5186
5187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5188pub struct CreateTablespace {
5189    pub(crate) syntax: SyntaxNode,
5190}
5191impl CreateTablespace {
5192    #[inline]
5193    pub fn literal(&self) -> Option<Literal> {
5194        support::child(&self.syntax)
5195    }
5196    #[inline]
5197    pub fn name(&self) -> Option<Name> {
5198        support::child(&self.syntax)
5199    }
5200    #[inline]
5201    pub fn role_ref(&self) -> Option<RoleRef> {
5202        support::child(&self.syntax)
5203    }
5204    #[inline]
5205    pub fn with_params(&self) -> Option<WithParams> {
5206        support::child(&self.syntax)
5207    }
5208    #[inline]
5209    pub fn create_token(&self) -> Option<SyntaxToken> {
5210        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5211    }
5212    #[inline]
5213    pub fn location_token(&self) -> Option<SyntaxToken> {
5214        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5215    }
5216    #[inline]
5217    pub fn owner_token(&self) -> Option<SyntaxToken> {
5218        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5219    }
5220    #[inline]
5221    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5222        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5223    }
5224}
5225
5226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5227pub struct CreateTextSearchConfiguration {
5228    pub(crate) syntax: SyntaxNode,
5229}
5230impl CreateTextSearchConfiguration {
5231    #[inline]
5232    pub fn attribute_list(&self) -> Option<AttributeList> {
5233        support::child(&self.syntax)
5234    }
5235    #[inline]
5236    pub fn path(&self) -> Option<Path> {
5237        support::child(&self.syntax)
5238    }
5239    #[inline]
5240    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5241        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5242    }
5243    #[inline]
5244    pub fn create_token(&self) -> Option<SyntaxToken> {
5245        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5246    }
5247    #[inline]
5248    pub fn search_token(&self) -> Option<SyntaxToken> {
5249        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5250    }
5251    #[inline]
5252    pub fn text_token(&self) -> Option<SyntaxToken> {
5253        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5254    }
5255}
5256
5257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5258pub struct CreateTextSearchDictionary {
5259    pub(crate) syntax: SyntaxNode,
5260}
5261impl CreateTextSearchDictionary {
5262    #[inline]
5263    pub fn attribute_list(&self) -> Option<AttributeList> {
5264        support::child(&self.syntax)
5265    }
5266    #[inline]
5267    pub fn path(&self) -> Option<Path> {
5268        support::child(&self.syntax)
5269    }
5270    #[inline]
5271    pub fn create_token(&self) -> Option<SyntaxToken> {
5272        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5273    }
5274    #[inline]
5275    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5276        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5277    }
5278    #[inline]
5279    pub fn search_token(&self) -> Option<SyntaxToken> {
5280        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5281    }
5282    #[inline]
5283    pub fn text_token(&self) -> Option<SyntaxToken> {
5284        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5285    }
5286}
5287
5288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5289pub struct CreateTextSearchParser {
5290    pub(crate) syntax: SyntaxNode,
5291}
5292impl CreateTextSearchParser {
5293    #[inline]
5294    pub fn attribute_list(&self) -> Option<AttributeList> {
5295        support::child(&self.syntax)
5296    }
5297    #[inline]
5298    pub fn path(&self) -> Option<Path> {
5299        support::child(&self.syntax)
5300    }
5301    #[inline]
5302    pub fn create_token(&self) -> Option<SyntaxToken> {
5303        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5304    }
5305    #[inline]
5306    pub fn parser_token(&self) -> Option<SyntaxToken> {
5307        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5308    }
5309    #[inline]
5310    pub fn search_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5312    }
5313    #[inline]
5314    pub fn text_token(&self) -> Option<SyntaxToken> {
5315        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5316    }
5317}
5318
5319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5320pub struct CreateTextSearchTemplate {
5321    pub(crate) syntax: SyntaxNode,
5322}
5323impl CreateTextSearchTemplate {
5324    #[inline]
5325    pub fn attribute_list(&self) -> Option<AttributeList> {
5326        support::child(&self.syntax)
5327    }
5328    #[inline]
5329    pub fn path(&self) -> Option<Path> {
5330        support::child(&self.syntax)
5331    }
5332    #[inline]
5333    pub fn create_token(&self) -> Option<SyntaxToken> {
5334        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5335    }
5336    #[inline]
5337    pub fn search_token(&self) -> Option<SyntaxToken> {
5338        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5339    }
5340    #[inline]
5341    pub fn template_token(&self) -> Option<SyntaxToken> {
5342        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5343    }
5344    #[inline]
5345    pub fn text_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5347    }
5348}
5349
5350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5351pub struct CreateTransform {
5352    pub(crate) syntax: SyntaxNode,
5353}
5354impl CreateTransform {
5355    #[inline]
5356    pub fn from_func(&self) -> Option<TransformFromFunc> {
5357        support::child(&self.syntax)
5358    }
5359    #[inline]
5360    pub fn language(&self) -> Option<NameRef> {
5361        support::child(&self.syntax)
5362    }
5363    #[inline]
5364    pub fn or_replace(&self) -> Option<OrReplace> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn to_func(&self) -> Option<TransformToFunc> {
5369        support::child(&self.syntax)
5370    }
5371    #[inline]
5372    pub fn ty(&self) -> Option<Type> {
5373        support::child(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5377        support::token(&self.syntax, SyntaxKind::L_PAREN)
5378    }
5379    #[inline]
5380    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5381        support::token(&self.syntax, SyntaxKind::R_PAREN)
5382    }
5383    #[inline]
5384    pub fn comma_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::COMMA)
5386    }
5387    #[inline]
5388    pub fn create_token(&self) -> Option<SyntaxToken> {
5389        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5390    }
5391    #[inline]
5392    pub fn for_token(&self) -> Option<SyntaxToken> {
5393        support::token(&self.syntax, SyntaxKind::FOR_KW)
5394    }
5395    #[inline]
5396    pub fn language_token(&self) -> Option<SyntaxToken> {
5397        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5398    }
5399    #[inline]
5400    pub fn transform_token(&self) -> Option<SyntaxToken> {
5401        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5402    }
5403}
5404
5405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5406pub struct CreateTrigger {
5407    pub(crate) syntax: SyntaxNode,
5408}
5409impl CreateTrigger {
5410    #[inline]
5411    pub fn call_expr(&self) -> Option<CallExpr> {
5412        support::child(&self.syntax)
5413    }
5414    #[inline]
5415    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5416        support::child(&self.syntax)
5417    }
5418    #[inline]
5419    pub fn from_table(&self) -> Option<FromTable> {
5420        support::child(&self.syntax)
5421    }
5422    #[inline]
5423    pub fn initially_deferred_constraint_option(
5424        &self,
5425    ) -> Option<InitiallyDeferredConstraintOption> {
5426        support::child(&self.syntax)
5427    }
5428    #[inline]
5429    pub fn initially_immediate_constraint_option(
5430        &self,
5431    ) -> Option<InitiallyImmediateConstraintOption> {
5432        support::child(&self.syntax)
5433    }
5434    #[inline]
5435    pub fn name(&self) -> Option<Name> {
5436        support::child(&self.syntax)
5437    }
5438    #[inline]
5439    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5440        support::child(&self.syntax)
5441    }
5442    #[inline]
5443    pub fn on_table(&self) -> Option<OnTable> {
5444        support::child(&self.syntax)
5445    }
5446    #[inline]
5447    pub fn or_replace(&self) -> Option<OrReplace> {
5448        support::child(&self.syntax)
5449    }
5450    #[inline]
5451    pub fn referencing(&self) -> Option<Referencing> {
5452        support::child(&self.syntax)
5453    }
5454    #[inline]
5455    pub fn timing(&self) -> Option<Timing> {
5456        support::child(&self.syntax)
5457    }
5458    #[inline]
5459    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5460        support::child(&self.syntax)
5461    }
5462    #[inline]
5463    pub fn when_condition(&self) -> Option<WhenCondition> {
5464        support::child(&self.syntax)
5465    }
5466    #[inline]
5467    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5468        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5469    }
5470    #[inline]
5471    pub fn create_token(&self) -> Option<SyntaxToken> {
5472        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5473    }
5474    #[inline]
5475    pub fn each_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::EACH_KW)
5477    }
5478    #[inline]
5479    pub fn execute_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5481    }
5482    #[inline]
5483    pub fn for_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::FOR_KW)
5485    }
5486    #[inline]
5487    pub fn function_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5489    }
5490    #[inline]
5491    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5493    }
5494    #[inline]
5495    pub fn row_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::ROW_KW)
5497    }
5498    #[inline]
5499    pub fn statement_token(&self) -> Option<SyntaxToken> {
5500        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5501    }
5502    #[inline]
5503    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5504        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5505    }
5506}
5507
5508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5509pub struct CreateType {
5510    pub(crate) syntax: SyntaxNode,
5511}
5512impl CreateType {
5513    #[inline]
5514    pub fn attribute_list(&self) -> Option<AttributeList> {
5515        support::child(&self.syntax)
5516    }
5517    #[inline]
5518    pub fn column_list(&self) -> Option<ColumnList> {
5519        support::child(&self.syntax)
5520    }
5521    #[inline]
5522    pub fn path(&self) -> Option<Path> {
5523        support::child(&self.syntax)
5524    }
5525    #[inline]
5526    pub fn variant_list(&self) -> Option<VariantList> {
5527        support::child(&self.syntax)
5528    }
5529    #[inline]
5530    pub fn as_token(&self) -> Option<SyntaxToken> {
5531        support::token(&self.syntax, SyntaxKind::AS_KW)
5532    }
5533    #[inline]
5534    pub fn create_token(&self) -> Option<SyntaxToken> {
5535        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5536    }
5537    #[inline]
5538    pub fn enum_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5540    }
5541    #[inline]
5542    pub fn range_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5544    }
5545    #[inline]
5546    pub fn type_token(&self) -> Option<SyntaxToken> {
5547        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5548    }
5549}
5550
5551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5552pub struct CreateUser {
5553    pub(crate) syntax: SyntaxNode,
5554}
5555impl CreateUser {
5556    #[inline]
5557    pub fn name(&self) -> Option<Name> {
5558        support::child(&self.syntax)
5559    }
5560    #[inline]
5561    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5562        support::child(&self.syntax)
5563    }
5564    #[inline]
5565    pub fn create_token(&self) -> Option<SyntaxToken> {
5566        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5567    }
5568    #[inline]
5569    pub fn user_token(&self) -> Option<SyntaxToken> {
5570        support::token(&self.syntax, SyntaxKind::USER_KW)
5571    }
5572}
5573
5574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5575pub struct CreateUserMapping {
5576    pub(crate) syntax: SyntaxNode,
5577}
5578impl CreateUserMapping {
5579    #[inline]
5580    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5581        support::child(&self.syntax)
5582    }
5583    #[inline]
5584    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5585        support::child(&self.syntax)
5586    }
5587    #[inline]
5588    pub fn role_ref(&self) -> Option<RoleRef> {
5589        support::child(&self.syntax)
5590    }
5591    #[inline]
5592    pub fn server_name(&self) -> Option<ServerName> {
5593        support::child(&self.syntax)
5594    }
5595    #[inline]
5596    pub fn create_token(&self) -> Option<SyntaxToken> {
5597        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5598    }
5599    #[inline]
5600    pub fn for_token(&self) -> Option<SyntaxToken> {
5601        support::token(&self.syntax, SyntaxKind::FOR_KW)
5602    }
5603    #[inline]
5604    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5606    }
5607    #[inline]
5608    pub fn user_token(&self) -> Option<SyntaxToken> {
5609        support::token(&self.syntax, SyntaxKind::USER_KW)
5610    }
5611}
5612
5613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5614pub struct CreateView {
5615    pub(crate) syntax: SyntaxNode,
5616}
5617impl CreateView {
5618    #[inline]
5619    pub fn column_list(&self) -> Option<ColumnList> {
5620        support::child(&self.syntax)
5621    }
5622    #[inline]
5623    pub fn or_replace(&self) -> Option<OrReplace> {
5624        support::child(&self.syntax)
5625    }
5626    #[inline]
5627    pub fn path(&self) -> Option<Path> {
5628        support::child(&self.syntax)
5629    }
5630    #[inline]
5631    pub fn persistence(&self) -> Option<Persistence> {
5632        support::child(&self.syntax)
5633    }
5634    #[inline]
5635    pub fn query(&self) -> Option<SelectVariant> {
5636        support::child(&self.syntax)
5637    }
5638    #[inline]
5639    pub fn with_params(&self) -> Option<WithParams> {
5640        support::child(&self.syntax)
5641    }
5642    #[inline]
5643    pub fn as_token(&self) -> Option<SyntaxToken> {
5644        support::token(&self.syntax, SyntaxKind::AS_KW)
5645    }
5646    #[inline]
5647    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5648        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5649    }
5650    #[inline]
5651    pub fn check_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5653    }
5654    #[inline]
5655    pub fn create_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5657    }
5658    #[inline]
5659    pub fn local_token(&self) -> Option<SyntaxToken> {
5660        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5661    }
5662    #[inline]
5663    pub fn option_token(&self) -> Option<SyntaxToken> {
5664        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5665    }
5666    #[inline]
5667    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5668        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5669    }
5670    #[inline]
5671    pub fn view_token(&self) -> Option<SyntaxToken> {
5672        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5673    }
5674    #[inline]
5675    pub fn with_token(&self) -> Option<SyntaxToken> {
5676        support::token(&self.syntax, SyntaxKind::WITH_KW)
5677    }
5678}
5679
5680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5681pub struct CustomOp {
5682    pub(crate) syntax: SyntaxNode,
5683}
5684impl CustomOp {
5685    #[inline]
5686    pub fn bang_token(&self) -> Option<SyntaxToken> {
5687        support::token(&self.syntax, SyntaxKind::BANG)
5688    }
5689    #[inline]
5690    pub fn pound_token(&self) -> Option<SyntaxToken> {
5691        support::token(&self.syntax, SyntaxKind::POUND)
5692    }
5693    #[inline]
5694    pub fn percent_token(&self) -> Option<SyntaxToken> {
5695        support::token(&self.syntax, SyntaxKind::PERCENT)
5696    }
5697    #[inline]
5698    pub fn amp_token(&self) -> Option<SyntaxToken> {
5699        support::token(&self.syntax, SyntaxKind::AMP)
5700    }
5701    #[inline]
5702    pub fn star_token(&self) -> Option<SyntaxToken> {
5703        support::token(&self.syntax, SyntaxKind::STAR)
5704    }
5705    #[inline]
5706    pub fn plus_token(&self) -> Option<SyntaxToken> {
5707        support::token(&self.syntax, SyntaxKind::PLUS)
5708    }
5709    #[inline]
5710    pub fn minus_token(&self) -> Option<SyntaxToken> {
5711        support::token(&self.syntax, SyntaxKind::MINUS)
5712    }
5713    #[inline]
5714    pub fn slash_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::SLASH)
5716    }
5717    #[inline]
5718    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5720    }
5721    #[inline]
5722    pub fn eq_token(&self) -> Option<SyntaxToken> {
5723        support::token(&self.syntax, SyntaxKind::EQ)
5724    }
5725    #[inline]
5726    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5727        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5728    }
5729    #[inline]
5730    pub fn question_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::QUESTION)
5732    }
5733    #[inline]
5734    pub fn at_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::AT)
5736    }
5737    #[inline]
5738    pub fn caret_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::CARET)
5740    }
5741    #[inline]
5742    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::BACKTICK)
5744    }
5745    #[inline]
5746    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::PIPE)
5748    }
5749    #[inline]
5750    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::TILDE)
5752    }
5753}
5754
5755#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5756pub struct Deallocate {
5757    pub(crate) syntax: SyntaxNode,
5758}
5759impl Deallocate {
5760    #[inline]
5761    pub fn name_ref(&self) -> Option<NameRef> {
5762        support::child(&self.syntax)
5763    }
5764    #[inline]
5765    pub fn all_token(&self) -> Option<SyntaxToken> {
5766        support::token(&self.syntax, SyntaxKind::ALL_KW)
5767    }
5768    #[inline]
5769    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5770        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5771    }
5772    #[inline]
5773    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5774        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5775    }
5776}
5777
5778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5779pub struct Declare {
5780    pub(crate) syntax: SyntaxNode,
5781}
5782impl Declare {
5783    #[inline]
5784    pub fn name(&self) -> Option<Name> {
5785        support::child(&self.syntax)
5786    }
5787    #[inline]
5788    pub fn query(&self) -> Option<SelectVariant> {
5789        support::child(&self.syntax)
5790    }
5791    #[inline]
5792    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5793        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5794    }
5795    #[inline]
5796    pub fn binary_token(&self) -> Option<SyntaxToken> {
5797        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5798    }
5799    #[inline]
5800    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5802    }
5803    #[inline]
5804    pub fn declare_token(&self) -> Option<SyntaxToken> {
5805        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5806    }
5807    #[inline]
5808    pub fn for_token(&self) -> Option<SyntaxToken> {
5809        support::token(&self.syntax, SyntaxKind::FOR_KW)
5810    }
5811    #[inline]
5812    pub fn hold_token(&self) -> Option<SyntaxToken> {
5813        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5814    }
5815    #[inline]
5816    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5818    }
5819    #[inline]
5820    pub fn no_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::NO_KW)
5822    }
5823    #[inline]
5824    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5826    }
5827    #[inline]
5828    pub fn with_token(&self) -> Option<SyntaxToken> {
5829        support::token(&self.syntax, SyntaxKind::WITH_KW)
5830    }
5831    #[inline]
5832    pub fn without_token(&self) -> Option<SyntaxToken> {
5833        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5834    }
5835}
5836
5837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5838pub struct DefaultConstraint {
5839    pub(crate) syntax: SyntaxNode,
5840}
5841impl DefaultConstraint {
5842    #[inline]
5843    pub fn expr(&self) -> Option<Expr> {
5844        support::child(&self.syntax)
5845    }
5846    #[inline]
5847    pub fn name_ref(&self) -> Option<NameRef> {
5848        support::child(&self.syntax)
5849    }
5850    #[inline]
5851    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5852        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5853    }
5854    #[inline]
5855    pub fn default_token(&self) -> Option<SyntaxToken> {
5856        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5857    }
5858}
5859
5860#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5861pub struct Deferrable {
5862    pub(crate) syntax: SyntaxNode,
5863}
5864impl Deferrable {
5865    #[inline]
5866    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5867        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5868    }
5869}
5870
5871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5872pub struct DeferrableConstraintOption {
5873    pub(crate) syntax: SyntaxNode,
5874}
5875impl DeferrableConstraintOption {
5876    #[inline]
5877    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5878        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5879    }
5880}
5881
5882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5883pub struct Delete {
5884    pub(crate) syntax: SyntaxNode,
5885}
5886impl Delete {
5887    #[inline]
5888    pub fn alias(&self) -> Option<Alias> {
5889        support::child(&self.syntax)
5890    }
5891    #[inline]
5892    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
5893        support::child(&self.syntax)
5894    }
5895    #[inline]
5896    pub fn relation_name(&self) -> Option<RelationName> {
5897        support::child(&self.syntax)
5898    }
5899    #[inline]
5900    pub fn returning_clause(&self) -> Option<ReturningClause> {
5901        support::child(&self.syntax)
5902    }
5903    #[inline]
5904    pub fn using_clause(&self) -> Option<UsingClause> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn where_clause(&self) -> Option<WhereClause> {
5909        support::child(&self.syntax)
5910    }
5911    #[inline]
5912    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5913        support::child(&self.syntax)
5914    }
5915    #[inline]
5916    pub fn with_clause(&self) -> Option<WithClause> {
5917        support::child(&self.syntax)
5918    }
5919    #[inline]
5920    pub fn delete_token(&self) -> Option<SyntaxToken> {
5921        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5922    }
5923    #[inline]
5924    pub fn from_token(&self) -> Option<SyntaxToken> {
5925        support::token(&self.syntax, SyntaxKind::FROM_KW)
5926    }
5927}
5928
5929#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5930pub struct DeleteRows {
5931    pub(crate) syntax: SyntaxNode,
5932}
5933impl DeleteRows {
5934    #[inline]
5935    pub fn delete_token(&self) -> Option<SyntaxToken> {
5936        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5937    }
5938    #[inline]
5939    pub fn rows_token(&self) -> Option<SyntaxToken> {
5940        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5941    }
5942}
5943
5944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5945pub struct DependsOnExtension {
5946    pub(crate) syntax: SyntaxNode,
5947}
5948impl DependsOnExtension {
5949    #[inline]
5950    pub fn name_ref(&self) -> Option<NameRef> {
5951        support::child(&self.syntax)
5952    }
5953    #[inline]
5954    pub fn depends_token(&self) -> Option<SyntaxToken> {
5955        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5956    }
5957    #[inline]
5958    pub fn extension_token(&self) -> Option<SyntaxToken> {
5959        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5960    }
5961    #[inline]
5962    pub fn on_token(&self) -> Option<SyntaxToken> {
5963        support::token(&self.syntax, SyntaxKind::ON_KW)
5964    }
5965}
5966
5967#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5968pub struct DestVertexTable {
5969    pub(crate) syntax: SyntaxNode,
5970}
5971impl DestVertexTable {
5972    #[inline]
5973    pub fn column_list(&self) -> Option<ColumnList> {
5974        support::child(&self.syntax)
5975    }
5976    #[inline]
5977    pub fn name_ref(&self) -> Option<NameRef> {
5978        support::child(&self.syntax)
5979    }
5980    #[inline]
5981    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5982        support::token(&self.syntax, SyntaxKind::L_PAREN)
5983    }
5984    #[inline]
5985    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5986        support::token(&self.syntax, SyntaxKind::R_PAREN)
5987    }
5988    #[inline]
5989    pub fn destination_token(&self) -> Option<SyntaxToken> {
5990        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
5991    }
5992    #[inline]
5993    pub fn key_token(&self) -> Option<SyntaxToken> {
5994        support::token(&self.syntax, SyntaxKind::KEY_KW)
5995    }
5996    #[inline]
5997    pub fn references_token(&self) -> Option<SyntaxToken> {
5998        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
5999    }
6000}
6001
6002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6003pub struct DetachPartition {
6004    pub(crate) syntax: SyntaxNode,
6005}
6006impl DetachPartition {
6007    #[inline]
6008    pub fn path(&self) -> Option<Path> {
6009        support::child(&self.syntax)
6010    }
6011    #[inline]
6012    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6013        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6014    }
6015    #[inline]
6016    pub fn detach_token(&self) -> Option<SyntaxToken> {
6017        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6018    }
6019    #[inline]
6020    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6021        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6022    }
6023    #[inline]
6024    pub fn partition_token(&self) -> Option<SyntaxToken> {
6025        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6026    }
6027}
6028
6029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6030pub struct DisableRls {
6031    pub(crate) syntax: SyntaxNode,
6032}
6033impl DisableRls {
6034    #[inline]
6035    pub fn disable_token(&self) -> Option<SyntaxToken> {
6036        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6037    }
6038    #[inline]
6039    pub fn level_token(&self) -> Option<SyntaxToken> {
6040        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6041    }
6042    #[inline]
6043    pub fn row_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::ROW_KW)
6045    }
6046    #[inline]
6047    pub fn security_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6049    }
6050}
6051
6052#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6053pub struct DisableRule {
6054    pub(crate) syntax: SyntaxNode,
6055}
6056impl DisableRule {
6057    #[inline]
6058    pub fn disable_token(&self) -> Option<SyntaxToken> {
6059        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6060    }
6061    #[inline]
6062    pub fn rule_token(&self) -> Option<SyntaxToken> {
6063        support::token(&self.syntax, SyntaxKind::RULE_KW)
6064    }
6065}
6066
6067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6068pub struct DisableTrigger {
6069    pub(crate) syntax: SyntaxNode,
6070}
6071impl DisableTrigger {
6072    #[inline]
6073    pub fn disable_token(&self) -> Option<SyntaxToken> {
6074        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6075    }
6076    #[inline]
6077    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6078        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6079    }
6080}
6081
6082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6083pub struct Discard {
6084    pub(crate) syntax: SyntaxNode,
6085}
6086impl Discard {
6087    #[inline]
6088    pub fn all_token(&self) -> Option<SyntaxToken> {
6089        support::token(&self.syntax, SyntaxKind::ALL_KW)
6090    }
6091    #[inline]
6092    pub fn discard_token(&self) -> Option<SyntaxToken> {
6093        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6094    }
6095    #[inline]
6096    pub fn plans_token(&self) -> Option<SyntaxToken> {
6097        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6098    }
6099    #[inline]
6100    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6101        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6102    }
6103    #[inline]
6104    pub fn temp_token(&self) -> Option<SyntaxToken> {
6105        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6106    }
6107    #[inline]
6108    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6109        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6110    }
6111}
6112
6113#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6114pub struct DistinctClause {
6115    pub(crate) syntax: SyntaxNode,
6116}
6117impl DistinctClause {
6118    #[inline]
6119    pub fn exprs(&self) -> AstChildren<Expr> {
6120        support::children(&self.syntax)
6121    }
6122    #[inline]
6123    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6124        support::token(&self.syntax, SyntaxKind::L_PAREN)
6125    }
6126    #[inline]
6127    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6128        support::token(&self.syntax, SyntaxKind::R_PAREN)
6129    }
6130    #[inline]
6131    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6132        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6133    }
6134    #[inline]
6135    pub fn on_token(&self) -> Option<SyntaxToken> {
6136        support::token(&self.syntax, SyntaxKind::ON_KW)
6137    }
6138}
6139
6140#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6141pub struct Do {
6142    pub(crate) syntax: SyntaxNode,
6143}
6144impl Do {
6145    #[inline]
6146    pub fn do_token(&self) -> Option<SyntaxToken> {
6147        support::token(&self.syntax, SyntaxKind::DO_KW)
6148    }
6149}
6150
6151#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6152pub struct DoubleType {
6153    pub(crate) syntax: SyntaxNode,
6154}
6155impl DoubleType {
6156    #[inline]
6157    pub fn double_token(&self) -> Option<SyntaxToken> {
6158        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6159    }
6160    #[inline]
6161    pub fn precision_token(&self) -> Option<SyntaxToken> {
6162        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6163    }
6164    #[inline]
6165    pub fn setof_token(&self) -> Option<SyntaxToken> {
6166        support::token(&self.syntax, SyntaxKind::SETOF_KW)
6167    }
6168}
6169
6170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6171pub struct Drop {
6172    pub(crate) syntax: SyntaxNode,
6173}
6174impl Drop {
6175    #[inline]
6176    pub fn drop_token(&self) -> Option<SyntaxToken> {
6177        support::token(&self.syntax, SyntaxKind::DROP_KW)
6178    }
6179}
6180
6181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6182pub struct DropAccessMethod {
6183    pub(crate) syntax: SyntaxNode,
6184}
6185impl DropAccessMethod {
6186    #[inline]
6187    pub fn if_exists(&self) -> Option<IfExists> {
6188        support::child(&self.syntax)
6189    }
6190    #[inline]
6191    pub fn name_ref(&self) -> Option<NameRef> {
6192        support::child(&self.syntax)
6193    }
6194    #[inline]
6195    pub fn access_token(&self) -> Option<SyntaxToken> {
6196        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6197    }
6198    #[inline]
6199    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6200        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6201    }
6202    #[inline]
6203    pub fn drop_token(&self) -> Option<SyntaxToken> {
6204        support::token(&self.syntax, SyntaxKind::DROP_KW)
6205    }
6206    #[inline]
6207    pub fn method_token(&self) -> Option<SyntaxToken> {
6208        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6209    }
6210    #[inline]
6211    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6212        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6213    }
6214}
6215
6216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6217pub struct DropAggregate {
6218    pub(crate) syntax: SyntaxNode,
6219}
6220impl DropAggregate {
6221    #[inline]
6222    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6223        support::children(&self.syntax)
6224    }
6225    #[inline]
6226    pub fn if_exists(&self) -> Option<IfExists> {
6227        support::child(&self.syntax)
6228    }
6229    #[inline]
6230    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6231        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6232    }
6233    #[inline]
6234    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6235        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6236    }
6237    #[inline]
6238    pub fn drop_token(&self) -> Option<SyntaxToken> {
6239        support::token(&self.syntax, SyntaxKind::DROP_KW)
6240    }
6241    #[inline]
6242    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6243        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6244    }
6245}
6246
6247#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6248pub struct DropAttribute {
6249    pub(crate) syntax: SyntaxNode,
6250}
6251impl DropAttribute {
6252    #[inline]
6253    pub fn cascade(&self) -> Option<Cascade> {
6254        support::child(&self.syntax)
6255    }
6256    #[inline]
6257    pub fn if_exists(&self) -> Option<IfExists> {
6258        support::child(&self.syntax)
6259    }
6260    #[inline]
6261    pub fn restrict(&self) -> Option<Restrict> {
6262        support::child(&self.syntax)
6263    }
6264    #[inline]
6265    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6266        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6267    }
6268    #[inline]
6269    pub fn drop_token(&self) -> Option<SyntaxToken> {
6270        support::token(&self.syntax, SyntaxKind::DROP_KW)
6271    }
6272}
6273
6274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6275pub struct DropCast {
6276    pub(crate) syntax: SyntaxNode,
6277}
6278impl DropCast {
6279    #[inline]
6280    pub fn cast_sig(&self) -> Option<CastSig> {
6281        support::child(&self.syntax)
6282    }
6283    #[inline]
6284    pub fn if_exists(&self) -> Option<IfExists> {
6285        support::child(&self.syntax)
6286    }
6287    #[inline]
6288    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6289        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6290    }
6291    #[inline]
6292    pub fn cast_token(&self) -> Option<SyntaxToken> {
6293        support::token(&self.syntax, SyntaxKind::CAST_KW)
6294    }
6295    #[inline]
6296    pub fn drop_token(&self) -> Option<SyntaxToken> {
6297        support::token(&self.syntax, SyntaxKind::DROP_KW)
6298    }
6299    #[inline]
6300    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6301        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6302    }
6303}
6304
6305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6306pub struct DropCollation {
6307    pub(crate) syntax: SyntaxNode,
6308}
6309impl DropCollation {
6310    #[inline]
6311    pub fn if_exists(&self) -> Option<IfExists> {
6312        support::child(&self.syntax)
6313    }
6314    #[inline]
6315    pub fn paths(&self) -> AstChildren<Path> {
6316        support::children(&self.syntax)
6317    }
6318    #[inline]
6319    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6320        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6321    }
6322    #[inline]
6323    pub fn collation_token(&self) -> Option<SyntaxToken> {
6324        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6325    }
6326    #[inline]
6327    pub fn drop_token(&self) -> Option<SyntaxToken> {
6328        support::token(&self.syntax, SyntaxKind::DROP_KW)
6329    }
6330    #[inline]
6331    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6332        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6333    }
6334}
6335
6336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6337pub struct DropColumn {
6338    pub(crate) syntax: SyntaxNode,
6339}
6340impl DropColumn {
6341    #[inline]
6342    pub fn if_exists(&self) -> Option<IfExists> {
6343        support::child(&self.syntax)
6344    }
6345    #[inline]
6346    pub fn name_ref(&self) -> Option<NameRef> {
6347        support::child(&self.syntax)
6348    }
6349    #[inline]
6350    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6351        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6352    }
6353    #[inline]
6354    pub fn column_token(&self) -> Option<SyntaxToken> {
6355        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6356    }
6357    #[inline]
6358    pub fn drop_token(&self) -> Option<SyntaxToken> {
6359        support::token(&self.syntax, SyntaxKind::DROP_KW)
6360    }
6361    #[inline]
6362    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6363        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6364    }
6365}
6366
6367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6368pub struct DropConstraint {
6369    pub(crate) syntax: SyntaxNode,
6370}
6371impl DropConstraint {
6372    #[inline]
6373    pub fn if_exists(&self) -> Option<IfExists> {
6374        support::child(&self.syntax)
6375    }
6376    #[inline]
6377    pub fn name_ref(&self) -> Option<NameRef> {
6378        support::child(&self.syntax)
6379    }
6380    #[inline]
6381    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6382        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6383    }
6384    #[inline]
6385    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6386        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6387    }
6388    #[inline]
6389    pub fn drop_token(&self) -> Option<SyntaxToken> {
6390        support::token(&self.syntax, SyntaxKind::DROP_KW)
6391    }
6392    #[inline]
6393    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6394        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6395    }
6396}
6397
6398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6399pub struct DropConversion {
6400    pub(crate) syntax: SyntaxNode,
6401}
6402impl DropConversion {
6403    #[inline]
6404    pub fn if_exists(&self) -> Option<IfExists> {
6405        support::child(&self.syntax)
6406    }
6407    #[inline]
6408    pub fn path(&self) -> Option<Path> {
6409        support::child(&self.syntax)
6410    }
6411    #[inline]
6412    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6413        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6414    }
6415    #[inline]
6416    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6417        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6418    }
6419    #[inline]
6420    pub fn drop_token(&self) -> Option<SyntaxToken> {
6421        support::token(&self.syntax, SyntaxKind::DROP_KW)
6422    }
6423    #[inline]
6424    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6425        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6426    }
6427}
6428
6429#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6430pub struct DropDatabase {
6431    pub(crate) syntax: SyntaxNode,
6432}
6433impl DropDatabase {
6434    #[inline]
6435    pub fn if_exists(&self) -> Option<IfExists> {
6436        support::child(&self.syntax)
6437    }
6438    #[inline]
6439    pub fn name_ref(&self) -> Option<NameRef> {
6440        support::child(&self.syntax)
6441    }
6442    #[inline]
6443    pub fn database_token(&self) -> Option<SyntaxToken> {
6444        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6445    }
6446    #[inline]
6447    pub fn drop_token(&self) -> Option<SyntaxToken> {
6448        support::token(&self.syntax, SyntaxKind::DROP_KW)
6449    }
6450}
6451
6452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6453pub struct DropDefault {
6454    pub(crate) syntax: SyntaxNode,
6455}
6456impl DropDefault {
6457    #[inline]
6458    pub fn default_token(&self) -> Option<SyntaxToken> {
6459        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6460    }
6461    #[inline]
6462    pub fn drop_token(&self) -> Option<SyntaxToken> {
6463        support::token(&self.syntax, SyntaxKind::DROP_KW)
6464    }
6465}
6466
6467#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6468pub struct DropDomain {
6469    pub(crate) syntax: SyntaxNode,
6470}
6471impl DropDomain {
6472    #[inline]
6473    pub fn if_exists(&self) -> Option<IfExists> {
6474        support::child(&self.syntax)
6475    }
6476    #[inline]
6477    pub fn paths(&self) -> AstChildren<Path> {
6478        support::children(&self.syntax)
6479    }
6480    #[inline]
6481    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6482        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6483    }
6484    #[inline]
6485    pub fn domain_token(&self) -> Option<SyntaxToken> {
6486        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6487    }
6488    #[inline]
6489    pub fn drop_token(&self) -> Option<SyntaxToken> {
6490        support::token(&self.syntax, SyntaxKind::DROP_KW)
6491    }
6492    #[inline]
6493    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6494        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6495    }
6496}
6497
6498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6499pub struct DropEdgeTables {
6500    pub(crate) syntax: SyntaxNode,
6501}
6502impl DropEdgeTables {
6503    #[inline]
6504    pub fn names(&self) -> AstChildren<Name> {
6505        support::children(&self.syntax)
6506    }
6507    #[inline]
6508    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6509        support::token(&self.syntax, SyntaxKind::L_PAREN)
6510    }
6511    #[inline]
6512    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6513        support::token(&self.syntax, SyntaxKind::R_PAREN)
6514    }
6515    #[inline]
6516    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6517        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6518    }
6519    #[inline]
6520    pub fn drop_token(&self) -> Option<SyntaxToken> {
6521        support::token(&self.syntax, SyntaxKind::DROP_KW)
6522    }
6523    #[inline]
6524    pub fn edge_token(&self) -> Option<SyntaxToken> {
6525        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6526    }
6527    #[inline]
6528    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6530    }
6531    #[inline]
6532    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6533        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6534    }
6535    #[inline]
6536    pub fn tables_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6538    }
6539}
6540
6541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6542pub struct DropEventTrigger {
6543    pub(crate) syntax: SyntaxNode,
6544}
6545impl DropEventTrigger {
6546    #[inline]
6547    pub fn if_exists(&self) -> Option<IfExists> {
6548        support::child(&self.syntax)
6549    }
6550    #[inline]
6551    pub fn name_ref(&self) -> Option<NameRef> {
6552        support::child(&self.syntax)
6553    }
6554    #[inline]
6555    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6556        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6557    }
6558    #[inline]
6559    pub fn drop_token(&self) -> Option<SyntaxToken> {
6560        support::token(&self.syntax, SyntaxKind::DROP_KW)
6561    }
6562    #[inline]
6563    pub fn event_token(&self) -> Option<SyntaxToken> {
6564        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6565    }
6566    #[inline]
6567    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6568        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6569    }
6570    #[inline]
6571    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6572        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6573    }
6574}
6575
6576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6577pub struct DropExpression {
6578    pub(crate) syntax: SyntaxNode,
6579}
6580impl DropExpression {
6581    #[inline]
6582    pub fn if_exists(&self) -> Option<IfExists> {
6583        support::child(&self.syntax)
6584    }
6585    #[inline]
6586    pub fn drop_token(&self) -> Option<SyntaxToken> {
6587        support::token(&self.syntax, SyntaxKind::DROP_KW)
6588    }
6589    #[inline]
6590    pub fn expression_token(&self) -> Option<SyntaxToken> {
6591        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6592    }
6593}
6594
6595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6596pub struct DropExtension {
6597    pub(crate) syntax: SyntaxNode,
6598}
6599impl DropExtension {
6600    #[inline]
6601    pub fn if_exists(&self) -> Option<IfExists> {
6602        support::child(&self.syntax)
6603    }
6604    #[inline]
6605    pub fn name_refs(&self) -> AstChildren<NameRef> {
6606        support::children(&self.syntax)
6607    }
6608    #[inline]
6609    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6610        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6611    }
6612    #[inline]
6613    pub fn drop_token(&self) -> Option<SyntaxToken> {
6614        support::token(&self.syntax, SyntaxKind::DROP_KW)
6615    }
6616    #[inline]
6617    pub fn extension_token(&self) -> Option<SyntaxToken> {
6618        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6619    }
6620    #[inline]
6621    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6622        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6623    }
6624}
6625
6626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6627pub struct DropForeignDataWrapper {
6628    pub(crate) syntax: SyntaxNode,
6629}
6630impl DropForeignDataWrapper {
6631    #[inline]
6632    pub fn if_exists(&self) -> Option<IfExists> {
6633        support::child(&self.syntax)
6634    }
6635    #[inline]
6636    pub fn name_refs(&self) -> AstChildren<NameRef> {
6637        support::children(&self.syntax)
6638    }
6639    #[inline]
6640    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6641        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6642    }
6643    #[inline]
6644    pub fn data_token(&self) -> Option<SyntaxToken> {
6645        support::token(&self.syntax, SyntaxKind::DATA_KW)
6646    }
6647    #[inline]
6648    pub fn drop_token(&self) -> Option<SyntaxToken> {
6649        support::token(&self.syntax, SyntaxKind::DROP_KW)
6650    }
6651    #[inline]
6652    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6654    }
6655    #[inline]
6656    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6657        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6658    }
6659    #[inline]
6660    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6661        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6662    }
6663}
6664
6665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6666pub struct DropForeignTable {
6667    pub(crate) syntax: SyntaxNode,
6668}
6669impl DropForeignTable {
6670    #[inline]
6671    pub fn if_exists(&self) -> Option<IfExists> {
6672        support::child(&self.syntax)
6673    }
6674    #[inline]
6675    pub fn path(&self) -> Option<Path> {
6676        support::child(&self.syntax)
6677    }
6678    #[inline]
6679    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6680        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6681    }
6682    #[inline]
6683    pub fn drop_token(&self) -> Option<SyntaxToken> {
6684        support::token(&self.syntax, SyntaxKind::DROP_KW)
6685    }
6686    #[inline]
6687    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6688        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6689    }
6690    #[inline]
6691    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6692        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6693    }
6694    #[inline]
6695    pub fn table_token(&self) -> Option<SyntaxToken> {
6696        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6697    }
6698}
6699
6700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6701pub struct DropFunction {
6702    pub(crate) syntax: SyntaxNode,
6703}
6704impl DropFunction {
6705    #[inline]
6706    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6707        support::child(&self.syntax)
6708    }
6709    #[inline]
6710    pub fn if_exists(&self) -> Option<IfExists> {
6711        support::child(&self.syntax)
6712    }
6713    #[inline]
6714    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6715        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6716    }
6717    #[inline]
6718    pub fn drop_token(&self) -> Option<SyntaxToken> {
6719        support::token(&self.syntax, SyntaxKind::DROP_KW)
6720    }
6721    #[inline]
6722    pub fn function_token(&self) -> Option<SyntaxToken> {
6723        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6724    }
6725    #[inline]
6726    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6727        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6728    }
6729}
6730
6731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6732pub struct DropGroup {
6733    pub(crate) syntax: SyntaxNode,
6734}
6735impl DropGroup {
6736    #[inline]
6737    pub fn if_exists(&self) -> Option<IfExists> {
6738        support::child(&self.syntax)
6739    }
6740    #[inline]
6741    pub fn name_refs(&self) -> AstChildren<NameRef> {
6742        support::children(&self.syntax)
6743    }
6744    #[inline]
6745    pub fn drop_token(&self) -> Option<SyntaxToken> {
6746        support::token(&self.syntax, SyntaxKind::DROP_KW)
6747    }
6748    #[inline]
6749    pub fn group_token(&self) -> Option<SyntaxToken> {
6750        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6751    }
6752}
6753
6754#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6755pub struct DropIdentity {
6756    pub(crate) syntax: SyntaxNode,
6757}
6758impl DropIdentity {
6759    #[inline]
6760    pub fn if_exists(&self) -> Option<IfExists> {
6761        support::child(&self.syntax)
6762    }
6763    #[inline]
6764    pub fn drop_token(&self) -> Option<SyntaxToken> {
6765        support::token(&self.syntax, SyntaxKind::DROP_KW)
6766    }
6767    #[inline]
6768    pub fn identity_token(&self) -> Option<SyntaxToken> {
6769        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6770    }
6771}
6772
6773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6774pub struct DropIndex {
6775    pub(crate) syntax: SyntaxNode,
6776}
6777impl DropIndex {
6778    #[inline]
6779    pub fn if_exists(&self) -> Option<IfExists> {
6780        support::child(&self.syntax)
6781    }
6782    #[inline]
6783    pub fn paths(&self) -> AstChildren<Path> {
6784        support::children(&self.syntax)
6785    }
6786    #[inline]
6787    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6788        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6789    }
6790    #[inline]
6791    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6792        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6793    }
6794    #[inline]
6795    pub fn drop_token(&self) -> Option<SyntaxToken> {
6796        support::token(&self.syntax, SyntaxKind::DROP_KW)
6797    }
6798    #[inline]
6799    pub fn index_token(&self) -> Option<SyntaxToken> {
6800        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6801    }
6802    #[inline]
6803    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6804        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6805    }
6806}
6807
6808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6809pub struct DropLanguage {
6810    pub(crate) syntax: SyntaxNode,
6811}
6812impl DropLanguage {
6813    #[inline]
6814    pub fn if_exists(&self) -> Option<IfExists> {
6815        support::child(&self.syntax)
6816    }
6817    #[inline]
6818    pub fn name_ref(&self) -> Option<NameRef> {
6819        support::child(&self.syntax)
6820    }
6821    #[inline]
6822    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6823        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6824    }
6825    #[inline]
6826    pub fn drop_token(&self) -> Option<SyntaxToken> {
6827        support::token(&self.syntax, SyntaxKind::DROP_KW)
6828    }
6829    #[inline]
6830    pub fn language_token(&self) -> Option<SyntaxToken> {
6831        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6832    }
6833    #[inline]
6834    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6835        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6836    }
6837    #[inline]
6838    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6839        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6840    }
6841}
6842
6843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6844pub struct DropMaterializedView {
6845    pub(crate) syntax: SyntaxNode,
6846}
6847impl DropMaterializedView {
6848    #[inline]
6849    pub fn if_exists(&self) -> Option<IfExists> {
6850        support::child(&self.syntax)
6851    }
6852    #[inline]
6853    pub fn paths(&self) -> AstChildren<Path> {
6854        support::children(&self.syntax)
6855    }
6856    #[inline]
6857    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6858        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6859    }
6860    #[inline]
6861    pub fn drop_token(&self) -> Option<SyntaxToken> {
6862        support::token(&self.syntax, SyntaxKind::DROP_KW)
6863    }
6864    #[inline]
6865    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6866        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6867    }
6868    #[inline]
6869    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6870        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6871    }
6872    #[inline]
6873    pub fn view_token(&self) -> Option<SyntaxToken> {
6874        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6875    }
6876}
6877
6878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6879pub struct DropNotNull {
6880    pub(crate) syntax: SyntaxNode,
6881}
6882impl DropNotNull {
6883    #[inline]
6884    pub fn drop_token(&self) -> Option<SyntaxToken> {
6885        support::token(&self.syntax, SyntaxKind::DROP_KW)
6886    }
6887    #[inline]
6888    pub fn not_token(&self) -> Option<SyntaxToken> {
6889        support::token(&self.syntax, SyntaxKind::NOT_KW)
6890    }
6891    #[inline]
6892    pub fn null_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::NULL_KW)
6894    }
6895}
6896
6897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6898pub struct DropOpClassOption {
6899    pub(crate) syntax: SyntaxNode,
6900}
6901impl DropOpClassOption {
6902    #[inline]
6903    pub fn literal(&self) -> Option<Literal> {
6904        support::child(&self.syntax)
6905    }
6906    #[inline]
6907    pub fn param_list(&self) -> Option<ParamList> {
6908        support::child(&self.syntax)
6909    }
6910    #[inline]
6911    pub fn function_token(&self) -> Option<SyntaxToken> {
6912        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6913    }
6914    #[inline]
6915    pub fn operator_token(&self) -> Option<SyntaxToken> {
6916        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6917    }
6918}
6919
6920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6921pub struct DropOpClassOptionList {
6922    pub(crate) syntax: SyntaxNode,
6923}
6924impl DropOpClassOptionList {
6925    #[inline]
6926    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6927        support::children(&self.syntax)
6928    }
6929}
6930
6931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6932pub struct DropOpClassOptions {
6933    pub(crate) syntax: SyntaxNode,
6934}
6935impl DropOpClassOptions {
6936    #[inline]
6937    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6938        support::child(&self.syntax)
6939    }
6940    #[inline]
6941    pub fn drop_token(&self) -> Option<SyntaxToken> {
6942        support::token(&self.syntax, SyntaxKind::DROP_KW)
6943    }
6944}
6945
6946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6947pub struct DropOperator {
6948    pub(crate) syntax: SyntaxNode,
6949}
6950impl DropOperator {
6951    #[inline]
6952    pub fn if_exists(&self) -> Option<IfExists> {
6953        support::child(&self.syntax)
6954    }
6955    #[inline]
6956    pub fn op_sig_list(&self) -> Option<OpSigList> {
6957        support::child(&self.syntax)
6958    }
6959    #[inline]
6960    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6961        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6962    }
6963    #[inline]
6964    pub fn drop_token(&self) -> Option<SyntaxToken> {
6965        support::token(&self.syntax, SyntaxKind::DROP_KW)
6966    }
6967    #[inline]
6968    pub fn operator_token(&self) -> Option<SyntaxToken> {
6969        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6970    }
6971    #[inline]
6972    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6973        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6974    }
6975}
6976
6977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6978pub struct DropOperatorClass {
6979    pub(crate) syntax: SyntaxNode,
6980}
6981impl DropOperatorClass {
6982    #[inline]
6983    pub fn if_exists(&self) -> Option<IfExists> {
6984        support::child(&self.syntax)
6985    }
6986    #[inline]
6987    pub fn name_ref(&self) -> Option<NameRef> {
6988        support::child(&self.syntax)
6989    }
6990    #[inline]
6991    pub fn path(&self) -> Option<Path> {
6992        support::child(&self.syntax)
6993    }
6994    #[inline]
6995    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6996        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6997    }
6998    #[inline]
6999    pub fn class_token(&self) -> Option<SyntaxToken> {
7000        support::token(&self.syntax, SyntaxKind::CLASS_KW)
7001    }
7002    #[inline]
7003    pub fn drop_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::DROP_KW)
7005    }
7006    #[inline]
7007    pub fn operator_token(&self) -> Option<SyntaxToken> {
7008        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7009    }
7010    #[inline]
7011    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7012        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7013    }
7014    #[inline]
7015    pub fn using_token(&self) -> Option<SyntaxToken> {
7016        support::token(&self.syntax, SyntaxKind::USING_KW)
7017    }
7018}
7019
7020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7021pub struct DropOperatorFamily {
7022    pub(crate) syntax: SyntaxNode,
7023}
7024impl DropOperatorFamily {
7025    #[inline]
7026    pub fn if_exists(&self) -> Option<IfExists> {
7027        support::child(&self.syntax)
7028    }
7029    #[inline]
7030    pub fn name_ref(&self) -> Option<NameRef> {
7031        support::child(&self.syntax)
7032    }
7033    #[inline]
7034    pub fn path(&self) -> Option<Path> {
7035        support::child(&self.syntax)
7036    }
7037    #[inline]
7038    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7039        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7040    }
7041    #[inline]
7042    pub fn drop_token(&self) -> Option<SyntaxToken> {
7043        support::token(&self.syntax, SyntaxKind::DROP_KW)
7044    }
7045    #[inline]
7046    pub fn family_token(&self) -> Option<SyntaxToken> {
7047        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7048    }
7049    #[inline]
7050    pub fn operator_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7052    }
7053    #[inline]
7054    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7055        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7056    }
7057    #[inline]
7058    pub fn using_token(&self) -> Option<SyntaxToken> {
7059        support::token(&self.syntax, SyntaxKind::USING_KW)
7060    }
7061}
7062
7063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7064pub struct DropOwned {
7065    pub(crate) syntax: SyntaxNode,
7066}
7067impl DropOwned {
7068    #[inline]
7069    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7070        support::child(&self.syntax)
7071    }
7072    #[inline]
7073    pub fn by_token(&self) -> Option<SyntaxToken> {
7074        support::token(&self.syntax, SyntaxKind::BY_KW)
7075    }
7076    #[inline]
7077    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7078        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7079    }
7080    #[inline]
7081    pub fn drop_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::DROP_KW)
7083    }
7084    #[inline]
7085    pub fn owned_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7087    }
7088    #[inline]
7089    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7091    }
7092}
7093
7094#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7095pub struct DropPolicy {
7096    pub(crate) syntax: SyntaxNode,
7097}
7098impl DropPolicy {
7099    #[inline]
7100    pub fn if_exists(&self) -> Option<IfExists> {
7101        support::child(&self.syntax)
7102    }
7103    #[inline]
7104    pub fn name_ref(&self) -> Option<NameRef> {
7105        support::child(&self.syntax)
7106    }
7107    #[inline]
7108    pub fn on_table(&self) -> Option<OnTable> {
7109        support::child(&self.syntax)
7110    }
7111    #[inline]
7112    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7113        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7114    }
7115    #[inline]
7116    pub fn drop_token(&self) -> Option<SyntaxToken> {
7117        support::token(&self.syntax, SyntaxKind::DROP_KW)
7118    }
7119    #[inline]
7120    pub fn policy_token(&self) -> Option<SyntaxToken> {
7121        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7122    }
7123    #[inline]
7124    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7125        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7126    }
7127}
7128
7129#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7130pub struct DropProcedure {
7131    pub(crate) syntax: SyntaxNode,
7132}
7133impl DropProcedure {
7134    #[inline]
7135    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7136        support::child(&self.syntax)
7137    }
7138    #[inline]
7139    pub fn if_exists(&self) -> Option<IfExists> {
7140        support::child(&self.syntax)
7141    }
7142    #[inline]
7143    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7144        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7145    }
7146    #[inline]
7147    pub fn drop_token(&self) -> Option<SyntaxToken> {
7148        support::token(&self.syntax, SyntaxKind::DROP_KW)
7149    }
7150    #[inline]
7151    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7152        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7153    }
7154    #[inline]
7155    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7157    }
7158}
7159
7160#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7161pub struct DropPropertyGraph {
7162    pub(crate) syntax: SyntaxNode,
7163}
7164impl DropPropertyGraph {
7165    #[inline]
7166    pub fn if_exists(&self) -> Option<IfExists> {
7167        support::child(&self.syntax)
7168    }
7169    #[inline]
7170    pub fn path(&self) -> Option<Path> {
7171        support::child(&self.syntax)
7172    }
7173    #[inline]
7174    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7175        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7176    }
7177    #[inline]
7178    pub fn drop_token(&self) -> Option<SyntaxToken> {
7179        support::token(&self.syntax, SyntaxKind::DROP_KW)
7180    }
7181    #[inline]
7182    pub fn graph_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7184    }
7185    #[inline]
7186    pub fn property_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7188    }
7189    #[inline]
7190    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7191        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7192    }
7193}
7194
7195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7196pub struct DropPublication {
7197    pub(crate) syntax: SyntaxNode,
7198}
7199impl DropPublication {
7200    #[inline]
7201    pub fn if_exists(&self) -> Option<IfExists> {
7202        support::child(&self.syntax)
7203    }
7204    #[inline]
7205    pub fn name_refs(&self) -> AstChildren<NameRef> {
7206        support::children(&self.syntax)
7207    }
7208    #[inline]
7209    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7210        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7211    }
7212    #[inline]
7213    pub fn drop_token(&self) -> Option<SyntaxToken> {
7214        support::token(&self.syntax, SyntaxKind::DROP_KW)
7215    }
7216    #[inline]
7217    pub fn publication_token(&self) -> Option<SyntaxToken> {
7218        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7219    }
7220    #[inline]
7221    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7222        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7223    }
7224}
7225
7226#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7227pub struct DropRole {
7228    pub(crate) syntax: SyntaxNode,
7229}
7230impl DropRole {
7231    #[inline]
7232    pub fn if_exists(&self) -> Option<IfExists> {
7233        support::child(&self.syntax)
7234    }
7235    #[inline]
7236    pub fn name_refs(&self) -> AstChildren<NameRef> {
7237        support::children(&self.syntax)
7238    }
7239    #[inline]
7240    pub fn drop_token(&self) -> Option<SyntaxToken> {
7241        support::token(&self.syntax, SyntaxKind::DROP_KW)
7242    }
7243    #[inline]
7244    pub fn role_token(&self) -> Option<SyntaxToken> {
7245        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7246    }
7247}
7248
7249#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7250pub struct DropRoutine {
7251    pub(crate) syntax: SyntaxNode,
7252}
7253impl DropRoutine {
7254    #[inline]
7255    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7256        support::child(&self.syntax)
7257    }
7258    #[inline]
7259    pub fn if_exists(&self) -> Option<IfExists> {
7260        support::child(&self.syntax)
7261    }
7262    #[inline]
7263    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7264        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7265    }
7266    #[inline]
7267    pub fn drop_token(&self) -> Option<SyntaxToken> {
7268        support::token(&self.syntax, SyntaxKind::DROP_KW)
7269    }
7270    #[inline]
7271    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7273    }
7274    #[inline]
7275    pub fn routine_token(&self) -> Option<SyntaxToken> {
7276        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7277    }
7278}
7279
7280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7281pub struct DropRule {
7282    pub(crate) syntax: SyntaxNode,
7283}
7284impl DropRule {
7285    #[inline]
7286    pub fn if_exists(&self) -> Option<IfExists> {
7287        support::child(&self.syntax)
7288    }
7289    #[inline]
7290    pub fn name_ref(&self) -> Option<NameRef> {
7291        support::child(&self.syntax)
7292    }
7293    #[inline]
7294    pub fn on_table(&self) -> Option<OnTable> {
7295        support::child(&self.syntax)
7296    }
7297    #[inline]
7298    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7299        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7300    }
7301    #[inline]
7302    pub fn drop_token(&self) -> Option<SyntaxToken> {
7303        support::token(&self.syntax, SyntaxKind::DROP_KW)
7304    }
7305    #[inline]
7306    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7307        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7308    }
7309    #[inline]
7310    pub fn rule_token(&self) -> Option<SyntaxToken> {
7311        support::token(&self.syntax, SyntaxKind::RULE_KW)
7312    }
7313}
7314
7315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7316pub struct DropSchema {
7317    pub(crate) syntax: SyntaxNode,
7318}
7319impl DropSchema {
7320    #[inline]
7321    pub fn if_exists(&self) -> Option<IfExists> {
7322        support::child(&self.syntax)
7323    }
7324    #[inline]
7325    pub fn name_refs(&self) -> AstChildren<NameRef> {
7326        support::children(&self.syntax)
7327    }
7328    #[inline]
7329    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7330        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7331    }
7332    #[inline]
7333    pub fn drop_token(&self) -> Option<SyntaxToken> {
7334        support::token(&self.syntax, SyntaxKind::DROP_KW)
7335    }
7336    #[inline]
7337    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7338        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7339    }
7340    #[inline]
7341    pub fn schema_token(&self) -> Option<SyntaxToken> {
7342        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7343    }
7344}
7345
7346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7347pub struct DropSequence {
7348    pub(crate) syntax: SyntaxNode,
7349}
7350impl DropSequence {
7351    #[inline]
7352    pub fn if_exists(&self) -> Option<IfExists> {
7353        support::child(&self.syntax)
7354    }
7355    #[inline]
7356    pub fn paths(&self) -> AstChildren<Path> {
7357        support::children(&self.syntax)
7358    }
7359    #[inline]
7360    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7361        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7362    }
7363    #[inline]
7364    pub fn drop_token(&self) -> Option<SyntaxToken> {
7365        support::token(&self.syntax, SyntaxKind::DROP_KW)
7366    }
7367    #[inline]
7368    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7369        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7370    }
7371    #[inline]
7372    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7373        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7374    }
7375}
7376
7377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7378pub struct DropServer {
7379    pub(crate) syntax: SyntaxNode,
7380}
7381impl DropServer {
7382    #[inline]
7383    pub fn if_exists(&self) -> Option<IfExists> {
7384        support::child(&self.syntax)
7385    }
7386    #[inline]
7387    pub fn name_ref(&self) -> Option<NameRef> {
7388        support::child(&self.syntax)
7389    }
7390    #[inline]
7391    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7392        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7393    }
7394    #[inline]
7395    pub fn drop_token(&self) -> Option<SyntaxToken> {
7396        support::token(&self.syntax, SyntaxKind::DROP_KW)
7397    }
7398    #[inline]
7399    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7400        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7401    }
7402    #[inline]
7403    pub fn server_token(&self) -> Option<SyntaxToken> {
7404        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7405    }
7406}
7407
7408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7409pub struct DropStatistics {
7410    pub(crate) syntax: SyntaxNode,
7411}
7412impl DropStatistics {
7413    #[inline]
7414    pub fn if_exists(&self) -> Option<IfExists> {
7415        support::child(&self.syntax)
7416    }
7417    #[inline]
7418    pub fn paths(&self) -> AstChildren<Path> {
7419        support::children(&self.syntax)
7420    }
7421    #[inline]
7422    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7423        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7424    }
7425    #[inline]
7426    pub fn drop_token(&self) -> Option<SyntaxToken> {
7427        support::token(&self.syntax, SyntaxKind::DROP_KW)
7428    }
7429    #[inline]
7430    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7431        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7432    }
7433    #[inline]
7434    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7435        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7436    }
7437}
7438
7439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7440pub struct DropSubscription {
7441    pub(crate) syntax: SyntaxNode,
7442}
7443impl DropSubscription {
7444    #[inline]
7445    pub fn if_exists(&self) -> Option<IfExists> {
7446        support::child(&self.syntax)
7447    }
7448    #[inline]
7449    pub fn name_ref(&self) -> Option<NameRef> {
7450        support::child(&self.syntax)
7451    }
7452    #[inline]
7453    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7454        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7455    }
7456    #[inline]
7457    pub fn drop_token(&self) -> Option<SyntaxToken> {
7458        support::token(&self.syntax, SyntaxKind::DROP_KW)
7459    }
7460    #[inline]
7461    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7462        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7463    }
7464    #[inline]
7465    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7466        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7467    }
7468}
7469
7470#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7471pub struct DropTable {
7472    pub(crate) syntax: SyntaxNode,
7473}
7474impl DropTable {
7475    #[inline]
7476    pub fn if_exists(&self) -> Option<IfExists> {
7477        support::child(&self.syntax)
7478    }
7479    #[inline]
7480    pub fn path(&self) -> Option<Path> {
7481        support::child(&self.syntax)
7482    }
7483    #[inline]
7484    pub fn comma_token(&self) -> Option<SyntaxToken> {
7485        support::token(&self.syntax, SyntaxKind::COMMA)
7486    }
7487    #[inline]
7488    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7489        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7490    }
7491    #[inline]
7492    pub fn drop_token(&self) -> Option<SyntaxToken> {
7493        support::token(&self.syntax, SyntaxKind::DROP_KW)
7494    }
7495    #[inline]
7496    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7497        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7498    }
7499    #[inline]
7500    pub fn table_token(&self) -> Option<SyntaxToken> {
7501        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7502    }
7503}
7504
7505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7506pub struct DropTablespace {
7507    pub(crate) syntax: SyntaxNode,
7508}
7509impl DropTablespace {
7510    #[inline]
7511    pub fn if_exists(&self) -> Option<IfExists> {
7512        support::child(&self.syntax)
7513    }
7514    #[inline]
7515    pub fn name_ref(&self) -> Option<NameRef> {
7516        support::child(&self.syntax)
7517    }
7518    #[inline]
7519    pub fn drop_token(&self) -> Option<SyntaxToken> {
7520        support::token(&self.syntax, SyntaxKind::DROP_KW)
7521    }
7522    #[inline]
7523    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7524        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7525    }
7526}
7527
7528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7529pub struct DropTextSearchConfig {
7530    pub(crate) syntax: SyntaxNode,
7531}
7532impl DropTextSearchConfig {
7533    #[inline]
7534    pub fn if_exists(&self) -> Option<IfExists> {
7535        support::child(&self.syntax)
7536    }
7537    #[inline]
7538    pub fn path(&self) -> Option<Path> {
7539        support::child(&self.syntax)
7540    }
7541    #[inline]
7542    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7543        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7544    }
7545    #[inline]
7546    pub fn configuration_token(&self) -> Option<SyntaxToken> {
7547        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
7548    }
7549    #[inline]
7550    pub fn drop_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::DROP_KW)
7552    }
7553    #[inline]
7554    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7555        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7556    }
7557    #[inline]
7558    pub fn search_token(&self) -> Option<SyntaxToken> {
7559        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7560    }
7561    #[inline]
7562    pub fn text_token(&self) -> Option<SyntaxToken> {
7563        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7564    }
7565}
7566
7567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7568pub struct DropTextSearchDict {
7569    pub(crate) syntax: SyntaxNode,
7570}
7571impl DropTextSearchDict {
7572    #[inline]
7573    pub fn if_exists(&self) -> Option<IfExists> {
7574        support::child(&self.syntax)
7575    }
7576    #[inline]
7577    pub fn path(&self) -> Option<Path> {
7578        support::child(&self.syntax)
7579    }
7580    #[inline]
7581    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7582        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7583    }
7584    #[inline]
7585    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7586        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7587    }
7588    #[inline]
7589    pub fn drop_token(&self) -> Option<SyntaxToken> {
7590        support::token(&self.syntax, SyntaxKind::DROP_KW)
7591    }
7592    #[inline]
7593    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7594        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7595    }
7596    #[inline]
7597    pub fn search_token(&self) -> Option<SyntaxToken> {
7598        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7599    }
7600    #[inline]
7601    pub fn text_token(&self) -> Option<SyntaxToken> {
7602        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7603    }
7604}
7605
7606#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7607pub struct DropTextSearchParser {
7608    pub(crate) syntax: SyntaxNode,
7609}
7610impl DropTextSearchParser {
7611    #[inline]
7612    pub fn if_exists(&self) -> Option<IfExists> {
7613        support::child(&self.syntax)
7614    }
7615    #[inline]
7616    pub fn path(&self) -> Option<Path> {
7617        support::child(&self.syntax)
7618    }
7619    #[inline]
7620    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7621        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7622    }
7623    #[inline]
7624    pub fn drop_token(&self) -> Option<SyntaxToken> {
7625        support::token(&self.syntax, SyntaxKind::DROP_KW)
7626    }
7627    #[inline]
7628    pub fn parser_token(&self) -> Option<SyntaxToken> {
7629        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7630    }
7631    #[inline]
7632    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7633        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7634    }
7635    #[inline]
7636    pub fn search_token(&self) -> Option<SyntaxToken> {
7637        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7638    }
7639    #[inline]
7640    pub fn text_token(&self) -> Option<SyntaxToken> {
7641        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7642    }
7643}
7644
7645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7646pub struct DropTextSearchTemplate {
7647    pub(crate) syntax: SyntaxNode,
7648}
7649impl DropTextSearchTemplate {
7650    #[inline]
7651    pub fn if_exists(&self) -> Option<IfExists> {
7652        support::child(&self.syntax)
7653    }
7654    #[inline]
7655    pub fn path(&self) -> Option<Path> {
7656        support::child(&self.syntax)
7657    }
7658    #[inline]
7659    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7660        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7661    }
7662    #[inline]
7663    pub fn drop_token(&self) -> Option<SyntaxToken> {
7664        support::token(&self.syntax, SyntaxKind::DROP_KW)
7665    }
7666    #[inline]
7667    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7668        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7669    }
7670    #[inline]
7671    pub fn search_token(&self) -> Option<SyntaxToken> {
7672        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7673    }
7674    #[inline]
7675    pub fn template_token(&self) -> Option<SyntaxToken> {
7676        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7677    }
7678    #[inline]
7679    pub fn text_token(&self) -> Option<SyntaxToken> {
7680        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7681    }
7682}
7683
7684#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7685pub struct DropTransform {
7686    pub(crate) syntax: SyntaxNode,
7687}
7688impl DropTransform {
7689    #[inline]
7690    pub fn if_exists(&self) -> Option<IfExists> {
7691        support::child(&self.syntax)
7692    }
7693    #[inline]
7694    pub fn language(&self) -> Option<NameRef> {
7695        support::child(&self.syntax)
7696    }
7697    #[inline]
7698    pub fn ty(&self) -> Option<Type> {
7699        support::child(&self.syntax)
7700    }
7701    #[inline]
7702    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7703        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7704    }
7705    #[inline]
7706    pub fn drop_token(&self) -> Option<SyntaxToken> {
7707        support::token(&self.syntax, SyntaxKind::DROP_KW)
7708    }
7709    #[inline]
7710    pub fn for_token(&self) -> Option<SyntaxToken> {
7711        support::token(&self.syntax, SyntaxKind::FOR_KW)
7712    }
7713    #[inline]
7714    pub fn language_token(&self) -> Option<SyntaxToken> {
7715        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7716    }
7717    #[inline]
7718    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7719        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7720    }
7721    #[inline]
7722    pub fn transform_token(&self) -> Option<SyntaxToken> {
7723        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7724    }
7725}
7726
7727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7728pub struct DropTrigger {
7729    pub(crate) syntax: SyntaxNode,
7730}
7731impl DropTrigger {
7732    #[inline]
7733    pub fn if_exists(&self) -> Option<IfExists> {
7734        support::child(&self.syntax)
7735    }
7736    #[inline]
7737    pub fn on_table(&self) -> Option<OnTable> {
7738        support::child(&self.syntax)
7739    }
7740    #[inline]
7741    pub fn path(&self) -> Option<Path> {
7742        support::child(&self.syntax)
7743    }
7744    #[inline]
7745    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7746        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7747    }
7748    #[inline]
7749    pub fn drop_token(&self) -> Option<SyntaxToken> {
7750        support::token(&self.syntax, SyntaxKind::DROP_KW)
7751    }
7752    #[inline]
7753    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7754        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7755    }
7756    #[inline]
7757    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7758        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7759    }
7760}
7761
7762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7763pub struct DropType {
7764    pub(crate) syntax: SyntaxNode,
7765}
7766impl DropType {
7767    #[inline]
7768    pub fn if_exists(&self) -> Option<IfExists> {
7769        support::child(&self.syntax)
7770    }
7771    #[inline]
7772    pub fn paths(&self) -> AstChildren<Path> {
7773        support::children(&self.syntax)
7774    }
7775    #[inline]
7776    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7777        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7778    }
7779    #[inline]
7780    pub fn drop_token(&self) -> Option<SyntaxToken> {
7781        support::token(&self.syntax, SyntaxKind::DROP_KW)
7782    }
7783    #[inline]
7784    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7785        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7786    }
7787    #[inline]
7788    pub fn type_token(&self) -> Option<SyntaxToken> {
7789        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7790    }
7791}
7792
7793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7794pub struct DropUser {
7795    pub(crate) syntax: SyntaxNode,
7796}
7797impl DropUser {
7798    #[inline]
7799    pub fn if_exists(&self) -> Option<IfExists> {
7800        support::child(&self.syntax)
7801    }
7802    #[inline]
7803    pub fn name_refs(&self) -> AstChildren<NameRef> {
7804        support::children(&self.syntax)
7805    }
7806    #[inline]
7807    pub fn drop_token(&self) -> Option<SyntaxToken> {
7808        support::token(&self.syntax, SyntaxKind::DROP_KW)
7809    }
7810    #[inline]
7811    pub fn user_token(&self) -> Option<SyntaxToken> {
7812        support::token(&self.syntax, SyntaxKind::USER_KW)
7813    }
7814}
7815
7816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7817pub struct DropUserMapping {
7818    pub(crate) syntax: SyntaxNode,
7819}
7820impl DropUserMapping {
7821    #[inline]
7822    pub fn if_exists(&self) -> Option<IfExists> {
7823        support::child(&self.syntax)
7824    }
7825    #[inline]
7826    pub fn role_ref(&self) -> Option<RoleRef> {
7827        support::child(&self.syntax)
7828    }
7829    #[inline]
7830    pub fn server_name(&self) -> Option<ServerName> {
7831        support::child(&self.syntax)
7832    }
7833    #[inline]
7834    pub fn drop_token(&self) -> Option<SyntaxToken> {
7835        support::token(&self.syntax, SyntaxKind::DROP_KW)
7836    }
7837    #[inline]
7838    pub fn for_token(&self) -> Option<SyntaxToken> {
7839        support::token(&self.syntax, SyntaxKind::FOR_KW)
7840    }
7841    #[inline]
7842    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7844    }
7845    #[inline]
7846    pub fn user_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::USER_KW)
7848    }
7849}
7850
7851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7852pub struct DropVertexEdgeLabel {
7853    pub(crate) syntax: SyntaxNode,
7854}
7855impl DropVertexEdgeLabel {
7856    #[inline]
7857    pub fn name_ref(&self) -> Option<NameRef> {
7858        support::child(&self.syntax)
7859    }
7860    #[inline]
7861    pub fn alter_token(&self) -> Option<SyntaxToken> {
7862        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7863    }
7864    #[inline]
7865    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7866        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7867    }
7868    #[inline]
7869    pub fn drop_token(&self) -> Option<SyntaxToken> {
7870        support::token(&self.syntax, SyntaxKind::DROP_KW)
7871    }
7872    #[inline]
7873    pub fn edge_token(&self) -> Option<SyntaxToken> {
7874        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7875    }
7876    #[inline]
7877    pub fn label_token(&self) -> Option<SyntaxToken> {
7878        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7879    }
7880    #[inline]
7881    pub fn node_token(&self) -> Option<SyntaxToken> {
7882        support::token(&self.syntax, SyntaxKind::NODE_KW)
7883    }
7884    #[inline]
7885    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7886        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7887    }
7888    #[inline]
7889    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7891    }
7892    #[inline]
7893    pub fn table_token(&self) -> Option<SyntaxToken> {
7894        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7895    }
7896    #[inline]
7897    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7898        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7899    }
7900}
7901
7902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7903pub struct DropVertexEdgeLabelProperties {
7904    pub(crate) syntax: SyntaxNode,
7905}
7906impl DropVertexEdgeLabelProperties {
7907    #[inline]
7908    pub fn name_ref(&self) -> Option<NameRef> {
7909        support::child(&self.syntax)
7910    }
7911    #[inline]
7912    pub fn names(&self) -> AstChildren<Name> {
7913        support::children(&self.syntax)
7914    }
7915    #[inline]
7916    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7917        support::token(&self.syntax, SyntaxKind::L_PAREN)
7918    }
7919    #[inline]
7920    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7921        support::token(&self.syntax, SyntaxKind::R_PAREN)
7922    }
7923    #[inline]
7924    pub fn alter_token(&self) -> Option<SyntaxToken> {
7925        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7926    }
7927    #[inline]
7928    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7929        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7930    }
7931    #[inline]
7932    pub fn drop_token(&self) -> Option<SyntaxToken> {
7933        support::token(&self.syntax, SyntaxKind::DROP_KW)
7934    }
7935    #[inline]
7936    pub fn edge_token(&self) -> Option<SyntaxToken> {
7937        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7938    }
7939    #[inline]
7940    pub fn label_token(&self) -> Option<SyntaxToken> {
7941        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7942    }
7943    #[inline]
7944    pub fn node_token(&self) -> Option<SyntaxToken> {
7945        support::token(&self.syntax, SyntaxKind::NODE_KW)
7946    }
7947    #[inline]
7948    pub fn properties_token(&self) -> Option<SyntaxToken> {
7949        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
7950    }
7951    #[inline]
7952    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7953        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7954    }
7955    #[inline]
7956    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7958    }
7959    #[inline]
7960    pub fn table_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7962    }
7963    #[inline]
7964    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7966    }
7967}
7968
7969#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7970pub struct DropVertexTables {
7971    pub(crate) syntax: SyntaxNode,
7972}
7973impl DropVertexTables {
7974    #[inline]
7975    pub fn names(&self) -> AstChildren<Name> {
7976        support::children(&self.syntax)
7977    }
7978    #[inline]
7979    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7980        support::token(&self.syntax, SyntaxKind::L_PAREN)
7981    }
7982    #[inline]
7983    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7984        support::token(&self.syntax, SyntaxKind::R_PAREN)
7985    }
7986    #[inline]
7987    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7988        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7989    }
7990    #[inline]
7991    pub fn drop_token(&self) -> Option<SyntaxToken> {
7992        support::token(&self.syntax, SyntaxKind::DROP_KW)
7993    }
7994    #[inline]
7995    pub fn node_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::NODE_KW)
7997    }
7998    #[inline]
7999    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8001    }
8002    #[inline]
8003    pub fn tables_token(&self) -> Option<SyntaxToken> {
8004        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8005    }
8006    #[inline]
8007    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8008        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8009    }
8010}
8011
8012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8013pub struct DropView {
8014    pub(crate) syntax: SyntaxNode,
8015}
8016impl DropView {
8017    #[inline]
8018    pub fn if_exists(&self) -> Option<IfExists> {
8019        support::child(&self.syntax)
8020    }
8021    #[inline]
8022    pub fn path(&self) -> Option<Path> {
8023        support::child(&self.syntax)
8024    }
8025    #[inline]
8026    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8027        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8028    }
8029    #[inline]
8030    pub fn drop_token(&self) -> Option<SyntaxToken> {
8031        support::token(&self.syntax, SyntaxKind::DROP_KW)
8032    }
8033    #[inline]
8034    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8035        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8036    }
8037    #[inline]
8038    pub fn view_token(&self) -> Option<SyntaxToken> {
8039        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8040    }
8041}
8042
8043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8044pub struct EdgeAny {
8045    pub(crate) syntax: SyntaxNode,
8046}
8047impl EdgeAny {
8048    #[inline]
8049    pub fn is_label(&self) -> Option<IsLabel> {
8050        support::child(&self.syntax)
8051    }
8052    #[inline]
8053    pub fn name(&self) -> Option<Name> {
8054        support::child(&self.syntax)
8055    }
8056    #[inline]
8057    pub fn where_clause(&self) -> Option<WhereClause> {
8058        support::child(&self.syntax)
8059    }
8060    #[inline]
8061    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8062        support::token(&self.syntax, SyntaxKind::L_BRACK)
8063    }
8064    #[inline]
8065    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8066        support::token(&self.syntax, SyntaxKind::R_BRACK)
8067    }
8068    #[inline]
8069    pub fn minus_token(&self) -> Option<SyntaxToken> {
8070        support::token(&self.syntax, SyntaxKind::MINUS)
8071    }
8072}
8073
8074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8075pub struct EdgeLeft {
8076    pub(crate) syntax: SyntaxNode,
8077}
8078impl EdgeLeft {
8079    #[inline]
8080    pub fn is_label(&self) -> Option<IsLabel> {
8081        support::child(&self.syntax)
8082    }
8083    #[inline]
8084    pub fn name(&self) -> Option<Name> {
8085        support::child(&self.syntax)
8086    }
8087    #[inline]
8088    pub fn where_clause(&self) -> Option<WhereClause> {
8089        support::child(&self.syntax)
8090    }
8091    #[inline]
8092    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8093        support::token(&self.syntax, SyntaxKind::L_BRACK)
8094    }
8095    #[inline]
8096    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8097        support::token(&self.syntax, SyntaxKind::R_BRACK)
8098    }
8099    #[inline]
8100    pub fn minus_token(&self) -> Option<SyntaxToken> {
8101        support::token(&self.syntax, SyntaxKind::MINUS)
8102    }
8103    #[inline]
8104    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8105        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8106    }
8107}
8108
8109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8110pub struct EdgeRight {
8111    pub(crate) syntax: SyntaxNode,
8112}
8113impl EdgeRight {
8114    #[inline]
8115    pub fn is_label(&self) -> Option<IsLabel> {
8116        support::child(&self.syntax)
8117    }
8118    #[inline]
8119    pub fn name(&self) -> Option<Name> {
8120        support::child(&self.syntax)
8121    }
8122    #[inline]
8123    pub fn where_clause(&self) -> Option<WhereClause> {
8124        support::child(&self.syntax)
8125    }
8126    #[inline]
8127    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8128        support::token(&self.syntax, SyntaxKind::L_BRACK)
8129    }
8130    #[inline]
8131    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8132        support::token(&self.syntax, SyntaxKind::R_BRACK)
8133    }
8134    #[inline]
8135    pub fn minus_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::MINUS)
8137    }
8138    #[inline]
8139    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8140        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8141    }
8142}
8143
8144#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8145pub struct EdgeTableDef {
8146    pub(crate) syntax: SyntaxNode,
8147}
8148impl EdgeTableDef {
8149    #[inline]
8150    pub fn column_list(&self) -> Option<ColumnList> {
8151        support::child(&self.syntax)
8152    }
8153    #[inline]
8154    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8155        support::child(&self.syntax)
8156    }
8157    #[inline]
8158    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8159        support::child(&self.syntax)
8160    }
8161    #[inline]
8162    pub fn name(&self) -> Option<Name> {
8163        support::child(&self.syntax)
8164    }
8165    #[inline]
8166    pub fn path(&self) -> Option<Path> {
8167        support::child(&self.syntax)
8168    }
8169    #[inline]
8170    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8171        support::child(&self.syntax)
8172    }
8173    #[inline]
8174    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8175        support::token(&self.syntax, SyntaxKind::L_PAREN)
8176    }
8177    #[inline]
8178    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8179        support::token(&self.syntax, SyntaxKind::R_PAREN)
8180    }
8181    #[inline]
8182    pub fn as_token(&self) -> Option<SyntaxToken> {
8183        support::token(&self.syntax, SyntaxKind::AS_KW)
8184    }
8185    #[inline]
8186    pub fn key_token(&self) -> Option<SyntaxToken> {
8187        support::token(&self.syntax, SyntaxKind::KEY_KW)
8188    }
8189}
8190
8191#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8192pub struct EdgeTables {
8193    pub(crate) syntax: SyntaxNode,
8194}
8195impl EdgeTables {
8196    #[inline]
8197    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8198        support::children(&self.syntax)
8199    }
8200    #[inline]
8201    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8202        support::token(&self.syntax, SyntaxKind::L_PAREN)
8203    }
8204    #[inline]
8205    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8206        support::token(&self.syntax, SyntaxKind::R_PAREN)
8207    }
8208    #[inline]
8209    pub fn edge_token(&self) -> Option<SyntaxToken> {
8210        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8211    }
8212    #[inline]
8213    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8214        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8215    }
8216    #[inline]
8217    pub fn tables_token(&self) -> Option<SyntaxToken> {
8218        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8219    }
8220}
8221
8222#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8223pub struct ElseClause {
8224    pub(crate) syntax: SyntaxNode,
8225}
8226impl ElseClause {
8227    #[inline]
8228    pub fn expr(&self) -> Option<Expr> {
8229        support::child(&self.syntax)
8230    }
8231    #[inline]
8232    pub fn else_token(&self) -> Option<SyntaxToken> {
8233        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8234    }
8235}
8236
8237#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8238pub struct EnableAlwaysRule {
8239    pub(crate) syntax: SyntaxNode,
8240}
8241impl EnableAlwaysRule {
8242    #[inline]
8243    pub fn always_token(&self) -> Option<SyntaxToken> {
8244        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8245    }
8246    #[inline]
8247    pub fn enable_token(&self) -> Option<SyntaxToken> {
8248        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8249    }
8250    #[inline]
8251    pub fn rule_token(&self) -> Option<SyntaxToken> {
8252        support::token(&self.syntax, SyntaxKind::RULE_KW)
8253    }
8254}
8255
8256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8257pub struct EnableAlwaysTrigger {
8258    pub(crate) syntax: SyntaxNode,
8259}
8260impl EnableAlwaysTrigger {
8261    #[inline]
8262    pub fn always_token(&self) -> Option<SyntaxToken> {
8263        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8264    }
8265    #[inline]
8266    pub fn enable_token(&self) -> Option<SyntaxToken> {
8267        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8268    }
8269    #[inline]
8270    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8271        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8272    }
8273}
8274
8275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8276pub struct EnableReplicaRule {
8277    pub(crate) syntax: SyntaxNode,
8278}
8279impl EnableReplicaRule {
8280    #[inline]
8281    pub fn enable_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8283    }
8284    #[inline]
8285    pub fn replica_token(&self) -> Option<SyntaxToken> {
8286        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8287    }
8288    #[inline]
8289    pub fn rule_token(&self) -> Option<SyntaxToken> {
8290        support::token(&self.syntax, SyntaxKind::RULE_KW)
8291    }
8292}
8293
8294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8295pub struct EnableReplicaTrigger {
8296    pub(crate) syntax: SyntaxNode,
8297}
8298impl EnableReplicaTrigger {
8299    #[inline]
8300    pub fn enable_token(&self) -> Option<SyntaxToken> {
8301        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8302    }
8303    #[inline]
8304    pub fn replica_token(&self) -> Option<SyntaxToken> {
8305        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8306    }
8307    #[inline]
8308    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8310    }
8311}
8312
8313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8314pub struct EnableRls {
8315    pub(crate) syntax: SyntaxNode,
8316}
8317impl EnableRls {
8318    #[inline]
8319    pub fn enable_token(&self) -> Option<SyntaxToken> {
8320        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8321    }
8322    #[inline]
8323    pub fn level_token(&self) -> Option<SyntaxToken> {
8324        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8325    }
8326    #[inline]
8327    pub fn row_token(&self) -> Option<SyntaxToken> {
8328        support::token(&self.syntax, SyntaxKind::ROW_KW)
8329    }
8330    #[inline]
8331    pub fn security_token(&self) -> Option<SyntaxToken> {
8332        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8333    }
8334}
8335
8336#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8337pub struct EnableRule {
8338    pub(crate) syntax: SyntaxNode,
8339}
8340impl EnableRule {
8341    #[inline]
8342    pub fn enable_token(&self) -> Option<SyntaxToken> {
8343        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8344    }
8345    #[inline]
8346    pub fn rule_token(&self) -> Option<SyntaxToken> {
8347        support::token(&self.syntax, SyntaxKind::RULE_KW)
8348    }
8349}
8350
8351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8352pub struct EnableTrigger {
8353    pub(crate) syntax: SyntaxNode,
8354}
8355impl EnableTrigger {
8356    #[inline]
8357    pub fn enable_token(&self) -> Option<SyntaxToken> {
8358        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8359    }
8360    #[inline]
8361    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8362        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8363    }
8364}
8365
8366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8367pub struct Enforced {
8368    pub(crate) syntax: SyntaxNode,
8369}
8370impl Enforced {
8371    #[inline]
8372    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8373        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8374    }
8375}
8376
8377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8378pub struct EventTriggerWhen {
8379    pub(crate) syntax: SyntaxNode,
8380}
8381impl EventTriggerWhen {
8382    #[inline]
8383    pub fn literals(&self) -> AstChildren<Literal> {
8384        support::children(&self.syntax)
8385    }
8386    #[inline]
8387    pub fn name_ref(&self) -> Option<NameRef> {
8388        support::child(&self.syntax)
8389    }
8390    #[inline]
8391    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8392        support::token(&self.syntax, SyntaxKind::L_PAREN)
8393    }
8394    #[inline]
8395    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8396        support::token(&self.syntax, SyntaxKind::R_PAREN)
8397    }
8398    #[inline]
8399    pub fn in_token(&self) -> Option<SyntaxToken> {
8400        support::token(&self.syntax, SyntaxKind::IN_KW)
8401    }
8402}
8403
8404#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8405pub struct EventTriggerWhenClause {
8406    pub(crate) syntax: SyntaxNode,
8407}
8408impl EventTriggerWhenClause {
8409    #[inline]
8410    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8411        support::children(&self.syntax)
8412    }
8413    #[inline]
8414    pub fn when_token(&self) -> Option<SyntaxToken> {
8415        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8416    }
8417}
8418
8419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8420pub struct ExceptTableClause {
8421    pub(crate) syntax: SyntaxNode,
8422}
8423impl ExceptTableClause {
8424    #[inline]
8425    pub fn relation_names(&self) -> AstChildren<RelationName> {
8426        support::children(&self.syntax)
8427    }
8428    #[inline]
8429    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8430        support::token(&self.syntax, SyntaxKind::L_PAREN)
8431    }
8432    #[inline]
8433    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8434        support::token(&self.syntax, SyntaxKind::R_PAREN)
8435    }
8436    #[inline]
8437    pub fn except_token(&self) -> Option<SyntaxToken> {
8438        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8439    }
8440    #[inline]
8441    pub fn table_token(&self) -> Option<SyntaxToken> {
8442        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8443    }
8444}
8445
8446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8447pub struct ExceptTables {
8448    pub(crate) syntax: SyntaxNode,
8449}
8450impl ExceptTables {
8451    #[inline]
8452    pub fn name_refs(&self) -> AstChildren<NameRef> {
8453        support::children(&self.syntax)
8454    }
8455    #[inline]
8456    pub fn except_token(&self) -> Option<SyntaxToken> {
8457        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8458    }
8459}
8460
8461#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8462pub struct ExcludeConstraint {
8463    pub(crate) syntax: SyntaxNode,
8464}
8465impl ExcludeConstraint {
8466    #[inline]
8467    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8468        support::child(&self.syntax)
8469    }
8470    #[inline]
8471    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8472        support::child(&self.syntax)
8473    }
8474    #[inline]
8475    pub fn constraint_name(&self) -> Option<ConstraintName> {
8476        support::child(&self.syntax)
8477    }
8478    #[inline]
8479    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
8480        support::child(&self.syntax)
8481    }
8482    #[inline]
8483    pub fn exclude_token(&self) -> Option<SyntaxToken> {
8484        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
8485    }
8486}
8487
8488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8489pub struct Execute {
8490    pub(crate) syntax: SyntaxNode,
8491}
8492impl Execute {
8493    #[inline]
8494    pub fn arg_list(&self) -> Option<ArgList> {
8495        support::child(&self.syntax)
8496    }
8497    #[inline]
8498    pub fn name_ref(&self) -> Option<NameRef> {
8499        support::child(&self.syntax)
8500    }
8501    #[inline]
8502    pub fn execute_token(&self) -> Option<SyntaxToken> {
8503        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
8504    }
8505}
8506
8507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8508pub struct ExistsFn {
8509    pub(crate) syntax: SyntaxNode,
8510}
8511impl ExistsFn {
8512    #[inline]
8513    pub fn select_variant(&self) -> Option<SelectVariant> {
8514        support::child(&self.syntax)
8515    }
8516    #[inline]
8517    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8518        support::token(&self.syntax, SyntaxKind::L_PAREN)
8519    }
8520    #[inline]
8521    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8522        support::token(&self.syntax, SyntaxKind::R_PAREN)
8523    }
8524    #[inline]
8525    pub fn exists_token(&self) -> Option<SyntaxToken> {
8526        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8527    }
8528}
8529
8530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8531pub struct Explain {
8532    pub(crate) syntax: SyntaxNode,
8533}
8534impl Explain {
8535    #[inline]
8536    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
8537        support::child(&self.syntax)
8538    }
8539    #[inline]
8540    pub fn analyse_token(&self) -> Option<SyntaxToken> {
8541        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
8542    }
8543    #[inline]
8544    pub fn analyze_token(&self) -> Option<SyntaxToken> {
8545        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
8546    }
8547    #[inline]
8548    pub fn explain_token(&self) -> Option<SyntaxToken> {
8549        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
8550    }
8551    #[inline]
8552    pub fn verbose_token(&self) -> Option<SyntaxToken> {
8553        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
8554    }
8555}
8556
8557#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8558pub struct ExprAsName {
8559    pub(crate) syntax: SyntaxNode,
8560}
8561impl ExprAsName {
8562    #[inline]
8563    pub fn as_name(&self) -> Option<AsName> {
8564        support::child(&self.syntax)
8565    }
8566    #[inline]
8567    pub fn expr(&self) -> Option<Expr> {
8568        support::child(&self.syntax)
8569    }
8570}
8571
8572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8573pub struct ExprAsNameList {
8574    pub(crate) syntax: SyntaxNode,
8575}
8576impl ExprAsNameList {
8577    #[inline]
8578    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
8579        support::children(&self.syntax)
8580    }
8581}
8582
8583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8584pub struct ExprType {
8585    pub(crate) syntax: SyntaxNode,
8586}
8587impl ExprType {
8588    #[inline]
8589    pub fn expr(&self) -> Option<Expr> {
8590        support::child(&self.syntax)
8591    }
8592}
8593
8594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8595pub struct ExtractFn {
8596    pub(crate) syntax: SyntaxNode,
8597}
8598impl ExtractFn {
8599    #[inline]
8600    pub fn expr(&self) -> Option<Expr> {
8601        support::child(&self.syntax)
8602    }
8603    #[inline]
8604    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8605        support::token(&self.syntax, SyntaxKind::L_PAREN)
8606    }
8607    #[inline]
8608    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8609        support::token(&self.syntax, SyntaxKind::R_PAREN)
8610    }
8611    #[inline]
8612    pub fn day_token(&self) -> Option<SyntaxToken> {
8613        support::token(&self.syntax, SyntaxKind::DAY_KW)
8614    }
8615    #[inline]
8616    pub fn extract_token(&self) -> Option<SyntaxToken> {
8617        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
8618    }
8619    #[inline]
8620    pub fn from_token(&self) -> Option<SyntaxToken> {
8621        support::token(&self.syntax, SyntaxKind::FROM_KW)
8622    }
8623    #[inline]
8624    pub fn hour_token(&self) -> Option<SyntaxToken> {
8625        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8626    }
8627    #[inline]
8628    pub fn ident_token(&self) -> Option<SyntaxToken> {
8629        support::token(&self.syntax, SyntaxKind::IDENT)
8630    }
8631    #[inline]
8632    pub fn minute_token(&self) -> Option<SyntaxToken> {
8633        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8634    }
8635    #[inline]
8636    pub fn month_token(&self) -> Option<SyntaxToken> {
8637        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8638    }
8639    #[inline]
8640    pub fn second_token(&self) -> Option<SyntaxToken> {
8641        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8642    }
8643    #[inline]
8644    pub fn string_token(&self) -> Option<SyntaxToken> {
8645        support::token(&self.syntax, SyntaxKind::STRING_KW)
8646    }
8647    #[inline]
8648    pub fn year_token(&self) -> Option<SyntaxToken> {
8649        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8650    }
8651}
8652
8653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8654pub struct FatArrow {
8655    pub(crate) syntax: SyntaxNode,
8656}
8657impl FatArrow {
8658    #[inline]
8659    pub fn eq_token(&self) -> Option<SyntaxToken> {
8660        support::token(&self.syntax, SyntaxKind::EQ)
8661    }
8662    #[inline]
8663    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8665    }
8666}
8667
8668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8669pub struct FdwOption {
8670    pub(crate) syntax: SyntaxNode,
8671}
8672impl FdwOption {
8673    #[inline]
8674    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8675        support::child(&self.syntax)
8676    }
8677    #[inline]
8678    pub fn path(&self) -> Option<Path> {
8679        support::child(&self.syntax)
8680    }
8681    #[inline]
8682    pub fn connection_token(&self) -> Option<SyntaxToken> {
8683        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
8684    }
8685    #[inline]
8686    pub fn handler_token(&self) -> Option<SyntaxToken> {
8687        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8688    }
8689    #[inline]
8690    pub fn no_token(&self) -> Option<SyntaxToken> {
8691        support::token(&self.syntax, SyntaxKind::NO_KW)
8692    }
8693    #[inline]
8694    pub fn options_token(&self) -> Option<SyntaxToken> {
8695        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
8696    }
8697    #[inline]
8698    pub fn validator_token(&self) -> Option<SyntaxToken> {
8699        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
8700    }
8701}
8702
8703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8704pub struct FdwOptionList {
8705    pub(crate) syntax: SyntaxNode,
8706}
8707impl FdwOptionList {
8708    #[inline]
8709    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
8710        support::children(&self.syntax)
8711    }
8712}
8713
8714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8715pub struct Fetch {
8716    pub(crate) syntax: SyntaxNode,
8717}
8718impl Fetch {
8719    #[inline]
8720    pub fn name_ref(&self) -> Option<NameRef> {
8721        support::child(&self.syntax)
8722    }
8723    #[inline]
8724    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8725        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8726    }
8727    #[inline]
8728    pub fn from_token(&self) -> Option<SyntaxToken> {
8729        support::token(&self.syntax, SyntaxKind::FROM_KW)
8730    }
8731    #[inline]
8732    pub fn in_token(&self) -> Option<SyntaxToken> {
8733        support::token(&self.syntax, SyntaxKind::IN_KW)
8734    }
8735}
8736
8737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8738pub struct FetchClause {
8739    pub(crate) syntax: SyntaxNode,
8740}
8741impl FetchClause {
8742    #[inline]
8743    pub fn expr(&self) -> Option<Expr> {
8744        support::child(&self.syntax)
8745    }
8746    #[inline]
8747    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8749    }
8750    #[inline]
8751    pub fn first_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::FIRST_KW)
8753    }
8754    #[inline]
8755    pub fn next_token(&self) -> Option<SyntaxToken> {
8756        support::token(&self.syntax, SyntaxKind::NEXT_KW)
8757    }
8758    #[inline]
8759    pub fn only_token(&self) -> Option<SyntaxToken> {
8760        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8761    }
8762    #[inline]
8763    pub fn row_token(&self) -> Option<SyntaxToken> {
8764        support::token(&self.syntax, SyntaxKind::ROW_KW)
8765    }
8766    #[inline]
8767    pub fn rows_token(&self) -> Option<SyntaxToken> {
8768        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8769    }
8770    #[inline]
8771    pub fn ties_token(&self) -> Option<SyntaxToken> {
8772        support::token(&self.syntax, SyntaxKind::TIES_KW)
8773    }
8774    #[inline]
8775    pub fn with_token(&self) -> Option<SyntaxToken> {
8776        support::token(&self.syntax, SyntaxKind::WITH_KW)
8777    }
8778}
8779
8780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8781pub struct FieldExpr {
8782    pub(crate) syntax: SyntaxNode,
8783}
8784impl FieldExpr {
8785    #[inline]
8786    pub fn star_token(&self) -> Option<SyntaxToken> {
8787        support::token(&self.syntax, SyntaxKind::STAR)
8788    }
8789    #[inline]
8790    pub fn dot_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::DOT)
8792    }
8793}
8794
8795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8796pub struct FilterClause {
8797    pub(crate) syntax: SyntaxNode,
8798}
8799impl FilterClause {
8800    #[inline]
8801    pub fn expr(&self) -> Option<Expr> {
8802        support::child(&self.syntax)
8803    }
8804    #[inline]
8805    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::L_PAREN)
8807    }
8808    #[inline]
8809    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::R_PAREN)
8811    }
8812    #[inline]
8813    pub fn filter_token(&self) -> Option<SyntaxToken> {
8814        support::token(&self.syntax, SyntaxKind::FILTER_KW)
8815    }
8816    #[inline]
8817    pub fn where_token(&self) -> Option<SyntaxToken> {
8818        support::token(&self.syntax, SyntaxKind::WHERE_KW)
8819    }
8820}
8821
8822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8823pub struct ForPortionOf {
8824    pub(crate) syntax: SyntaxNode,
8825}
8826impl ForPortionOf {
8827    #[inline]
8828    pub fn expr(&self) -> Option<Expr> {
8829        support::child(&self.syntax)
8830    }
8831    #[inline]
8832    pub fn name_ref(&self) -> Option<NameRef> {
8833        support::child(&self.syntax)
8834    }
8835    #[inline]
8836    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8837        support::token(&self.syntax, SyntaxKind::L_PAREN)
8838    }
8839    #[inline]
8840    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8841        support::token(&self.syntax, SyntaxKind::R_PAREN)
8842    }
8843    #[inline]
8844    pub fn for_token(&self) -> Option<SyntaxToken> {
8845        support::token(&self.syntax, SyntaxKind::FOR_KW)
8846    }
8847    #[inline]
8848    pub fn from_token(&self) -> Option<SyntaxToken> {
8849        support::token(&self.syntax, SyntaxKind::FROM_KW)
8850    }
8851    #[inline]
8852    pub fn of_token(&self) -> Option<SyntaxToken> {
8853        support::token(&self.syntax, SyntaxKind::OF_KW)
8854    }
8855    #[inline]
8856    pub fn portion_token(&self) -> Option<SyntaxToken> {
8857        support::token(&self.syntax, SyntaxKind::PORTION_KW)
8858    }
8859    #[inline]
8860    pub fn to_token(&self) -> Option<SyntaxToken> {
8861        support::token(&self.syntax, SyntaxKind::TO_KW)
8862    }
8863}
8864
8865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8866pub struct ForProvider {
8867    pub(crate) syntax: SyntaxNode,
8868}
8869impl ForProvider {
8870    #[inline]
8871    pub fn literal(&self) -> Option<Literal> {
8872        support::child(&self.syntax)
8873    }
8874    #[inline]
8875    pub fn name_ref(&self) -> Option<NameRef> {
8876        support::child(&self.syntax)
8877    }
8878    #[inline]
8879    pub fn for_token(&self) -> Option<SyntaxToken> {
8880        support::token(&self.syntax, SyntaxKind::FOR_KW)
8881    }
8882}
8883
8884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8885pub struct ForceRls {
8886    pub(crate) syntax: SyntaxNode,
8887}
8888impl ForceRls {
8889    #[inline]
8890    pub fn force_token(&self) -> Option<SyntaxToken> {
8891        support::token(&self.syntax, SyntaxKind::FORCE_KW)
8892    }
8893    #[inline]
8894    pub fn level_token(&self) -> Option<SyntaxToken> {
8895        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8896    }
8897    #[inline]
8898    pub fn row_token(&self) -> Option<SyntaxToken> {
8899        support::token(&self.syntax, SyntaxKind::ROW_KW)
8900    }
8901    #[inline]
8902    pub fn security_token(&self) -> Option<SyntaxToken> {
8903        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8904    }
8905}
8906
8907#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8908pub struct ForeignKeyConstraint {
8909    pub(crate) syntax: SyntaxNode,
8910}
8911impl ForeignKeyConstraint {
8912    #[inline]
8913    pub fn constraint_name(&self) -> Option<ConstraintName> {
8914        support::child(&self.syntax)
8915    }
8916    #[inline]
8917    pub fn match_type(&self) -> Option<MatchType> {
8918        support::child(&self.syntax)
8919    }
8920    #[inline]
8921    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8922        support::child(&self.syntax)
8923    }
8924    #[inline]
8925    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8926        support::child(&self.syntax)
8927    }
8928    #[inline]
8929    pub fn path(&self) -> Option<Path> {
8930        support::child(&self.syntax)
8931    }
8932    #[inline]
8933    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8934        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8935    }
8936    #[inline]
8937    pub fn key_token(&self) -> Option<SyntaxToken> {
8938        support::token(&self.syntax, SyntaxKind::KEY_KW)
8939    }
8940    #[inline]
8941    pub fn references_token(&self) -> Option<SyntaxToken> {
8942        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8943    }
8944}
8945
8946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8947pub struct FrameClause {
8948    pub(crate) syntax: SyntaxNode,
8949}
8950impl FrameClause {
8951    #[inline]
8952    pub fn groups_token(&self) -> Option<SyntaxToken> {
8953        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
8954    }
8955    #[inline]
8956    pub fn range_token(&self) -> Option<SyntaxToken> {
8957        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8958    }
8959    #[inline]
8960    pub fn rows_token(&self) -> Option<SyntaxToken> {
8961        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8962    }
8963}
8964
8965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8966pub struct FromClause {
8967    pub(crate) syntax: SyntaxNode,
8968}
8969impl FromClause {
8970    #[inline]
8971    pub fn from_items(&self) -> AstChildren<FromItem> {
8972        support::children(&self.syntax)
8973    }
8974    #[inline]
8975    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
8976        support::children(&self.syntax)
8977    }
8978    #[inline]
8979    pub fn from_token(&self) -> Option<SyntaxToken> {
8980        support::token(&self.syntax, SyntaxKind::FROM_KW)
8981    }
8982}
8983
8984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8985pub struct FromItem {
8986    pub(crate) syntax: SyntaxNode,
8987}
8988impl FromItem {
8989    #[inline]
8990    pub fn alias(&self) -> Option<Alias> {
8991        support::child(&self.syntax)
8992    }
8993    #[inline]
8994    pub fn call_expr(&self) -> Option<CallExpr> {
8995        support::child(&self.syntax)
8996    }
8997    #[inline]
8998    pub fn cast_expr(&self) -> Option<CastExpr> {
8999        support::child(&self.syntax)
9000    }
9001    #[inline]
9002    pub fn field_expr(&self) -> Option<FieldExpr> {
9003        support::child(&self.syntax)
9004    }
9005    #[inline]
9006    pub fn json_table(&self) -> Option<JsonTable> {
9007        support::child(&self.syntax)
9008    }
9009    #[inline]
9010    pub fn name_ref(&self) -> Option<NameRef> {
9011        support::child(&self.syntax)
9012    }
9013    #[inline]
9014    pub fn paren_expr(&self) -> Option<ParenExpr> {
9015        support::child(&self.syntax)
9016    }
9017    #[inline]
9018    pub fn paren_select(&self) -> Option<ParenSelect> {
9019        support::child(&self.syntax)
9020    }
9021    #[inline]
9022    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
9023        support::child(&self.syntax)
9024    }
9025    #[inline]
9026    pub fn xml_table(&self) -> Option<XmlTable> {
9027        support::child(&self.syntax)
9028    }
9029    #[inline]
9030    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9031        support::token(&self.syntax, SyntaxKind::L_PAREN)
9032    }
9033    #[inline]
9034    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9035        support::token(&self.syntax, SyntaxKind::R_PAREN)
9036    }
9037    #[inline]
9038    pub fn star_token(&self) -> Option<SyntaxToken> {
9039        support::token(&self.syntax, SyntaxKind::STAR)
9040    }
9041    #[inline]
9042    pub fn from_token(&self) -> Option<SyntaxToken> {
9043        support::token(&self.syntax, SyntaxKind::FROM_KW)
9044    }
9045    #[inline]
9046    pub fn lateral_token(&self) -> Option<SyntaxToken> {
9047        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
9048    }
9049    #[inline]
9050    pub fn only_token(&self) -> Option<SyntaxToken> {
9051        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9052    }
9053    #[inline]
9054    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9055        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9056    }
9057    #[inline]
9058    pub fn rows_token(&self) -> Option<SyntaxToken> {
9059        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9060    }
9061    #[inline]
9062    pub fn with_token(&self) -> Option<SyntaxToken> {
9063        support::token(&self.syntax, SyntaxKind::WITH_KW)
9064    }
9065}
9066
9067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9068pub struct FromTable {
9069    pub(crate) syntax: SyntaxNode,
9070}
9071impl FromTable {
9072    #[inline]
9073    pub fn path(&self) -> Option<Path> {
9074        support::child(&self.syntax)
9075    }
9076    #[inline]
9077    pub fn from_token(&self) -> Option<SyntaxToken> {
9078        support::token(&self.syntax, SyntaxKind::FROM_KW)
9079    }
9080}
9081
9082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9083pub struct FuncOptionList {
9084    pub(crate) syntax: SyntaxNode,
9085}
9086impl FuncOptionList {
9087    #[inline]
9088    pub fn options(&self) -> AstChildren<FuncOption> {
9089        support::children(&self.syntax)
9090    }
9091}
9092
9093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9094pub struct FunctionSig {
9095    pub(crate) syntax: SyntaxNode,
9096}
9097impl FunctionSig {
9098    #[inline]
9099    pub fn param_list(&self) -> Option<ParamList> {
9100        support::child(&self.syntax)
9101    }
9102    #[inline]
9103    pub fn path(&self) -> Option<Path> {
9104        support::child(&self.syntax)
9105    }
9106}
9107
9108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9109pub struct FunctionSigList {
9110    pub(crate) syntax: SyntaxNode,
9111}
9112impl FunctionSigList {
9113    #[inline]
9114    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9115        support::children(&self.syntax)
9116    }
9117}
9118
9119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9120pub struct GeneratedConstraint {
9121    pub(crate) syntax: SyntaxNode,
9122}
9123impl GeneratedConstraint {
9124    #[inline]
9125    pub fn expr(&self) -> Option<Expr> {
9126        support::child(&self.syntax)
9127    }
9128    #[inline]
9129    pub fn name_ref(&self) -> Option<NameRef> {
9130        support::child(&self.syntax)
9131    }
9132    #[inline]
9133    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9134        support::child(&self.syntax)
9135    }
9136    #[inline]
9137    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9138        support::token(&self.syntax, SyntaxKind::L_PAREN)
9139    }
9140    #[inline]
9141    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9142        support::token(&self.syntax, SyntaxKind::R_PAREN)
9143    }
9144    #[inline]
9145    pub fn always_token(&self) -> Option<SyntaxToken> {
9146        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9147    }
9148    #[inline]
9149    pub fn as_token(&self) -> Option<SyntaxToken> {
9150        support::token(&self.syntax, SyntaxKind::AS_KW)
9151    }
9152    #[inline]
9153    pub fn by_token(&self) -> Option<SyntaxToken> {
9154        support::token(&self.syntax, SyntaxKind::BY_KW)
9155    }
9156    #[inline]
9157    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9158        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9159    }
9160    #[inline]
9161    pub fn default_token(&self) -> Option<SyntaxToken> {
9162        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9163    }
9164    #[inline]
9165    pub fn generated_token(&self) -> Option<SyntaxToken> {
9166        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9167    }
9168    #[inline]
9169    pub fn identity_token(&self) -> Option<SyntaxToken> {
9170        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9171    }
9172    #[inline]
9173    pub fn stored_token(&self) -> Option<SyntaxToken> {
9174        support::token(&self.syntax, SyntaxKind::STORED_KW)
9175    }
9176}
9177
9178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9179pub struct Grant {
9180    pub(crate) syntax: SyntaxNode,
9181}
9182impl Grant {
9183    #[inline]
9184    pub fn name_refs(&self) -> AstChildren<NameRef> {
9185        support::children(&self.syntax)
9186    }
9187    #[inline]
9188    pub fn paths(&self) -> AstChildren<Path> {
9189        support::children(&self.syntax)
9190    }
9191    #[inline]
9192    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9193        support::child(&self.syntax)
9194    }
9195    #[inline]
9196    pub fn role_ref(&self) -> Option<RoleRef> {
9197        support::child(&self.syntax)
9198    }
9199    #[inline]
9200    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9201        support::child(&self.syntax)
9202    }
9203    #[inline]
9204    pub fn all_token(&self) -> Option<SyntaxToken> {
9205        support::token(&self.syntax, SyntaxKind::ALL_KW)
9206    }
9207    #[inline]
9208    pub fn by_token(&self) -> Option<SyntaxToken> {
9209        support::token(&self.syntax, SyntaxKind::BY_KW)
9210    }
9211    #[inline]
9212    pub fn grant_token(&self) -> Option<SyntaxToken> {
9213        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9214    }
9215    #[inline]
9216    pub fn granted_token(&self) -> Option<SyntaxToken> {
9217        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9218    }
9219    #[inline]
9220    pub fn in_token(&self) -> Option<SyntaxToken> {
9221        support::token(&self.syntax, SyntaxKind::IN_KW)
9222    }
9223    #[inline]
9224    pub fn on_token(&self) -> Option<SyntaxToken> {
9225        support::token(&self.syntax, SyntaxKind::ON_KW)
9226    }
9227    #[inline]
9228    pub fn option_token(&self) -> Option<SyntaxToken> {
9229        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9230    }
9231    #[inline]
9232    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9233        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9234    }
9235    #[inline]
9236    pub fn schema_token(&self) -> Option<SyntaxToken> {
9237        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9238    }
9239    #[inline]
9240    pub fn table_token(&self) -> Option<SyntaxToken> {
9241        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9242    }
9243    #[inline]
9244    pub fn tables_token(&self) -> Option<SyntaxToken> {
9245        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9246    }
9247    #[inline]
9248    pub fn to_token(&self) -> Option<SyntaxToken> {
9249        support::token(&self.syntax, SyntaxKind::TO_KW)
9250    }
9251    #[inline]
9252    pub fn with_token(&self) -> Option<SyntaxToken> {
9253        support::token(&self.syntax, SyntaxKind::WITH_KW)
9254    }
9255}
9256
9257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9258pub struct GrantDefaultPrivileges {
9259    pub(crate) syntax: SyntaxNode,
9260}
9261impl GrantDefaultPrivileges {
9262    #[inline]
9263    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9264        support::child(&self.syntax)
9265    }
9266    #[inline]
9267    pub fn privileges(&self) -> Option<Privileges> {
9268        support::child(&self.syntax)
9269    }
9270    #[inline]
9271    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9272        support::child(&self.syntax)
9273    }
9274    #[inline]
9275    pub fn grant_token(&self) -> Option<SyntaxToken> {
9276        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9277    }
9278    #[inline]
9279    pub fn on_token(&self) -> Option<SyntaxToken> {
9280        support::token(&self.syntax, SyntaxKind::ON_KW)
9281    }
9282    #[inline]
9283    pub fn option_token(&self) -> Option<SyntaxToken> {
9284        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9285    }
9286    #[inline]
9287    pub fn to_token(&self) -> Option<SyntaxToken> {
9288        support::token(&self.syntax, SyntaxKind::TO_KW)
9289    }
9290    #[inline]
9291    pub fn with_token(&self) -> Option<SyntaxToken> {
9292        support::token(&self.syntax, SyntaxKind::WITH_KW)
9293    }
9294}
9295
9296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9297pub struct GraphPatternQualifier {
9298    pub(crate) syntax: SyntaxNode,
9299}
9300impl GraphPatternQualifier {
9301    #[inline]
9302    pub fn literal(&self) -> Option<Literal> {
9303        support::child(&self.syntax)
9304    }
9305    #[inline]
9306    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9307        support::token(&self.syntax, SyntaxKind::L_CURLY)
9308    }
9309    #[inline]
9310    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9311        support::token(&self.syntax, SyntaxKind::R_CURLY)
9312    }
9313    #[inline]
9314    pub fn comma_token(&self) -> Option<SyntaxToken> {
9315        support::token(&self.syntax, SyntaxKind::COMMA)
9316    }
9317}
9318
9319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9320pub struct GraphTableFn {
9321    pub(crate) syntax: SyntaxNode,
9322}
9323impl GraphTableFn {
9324    #[inline]
9325    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9326        support::child(&self.syntax)
9327    }
9328    #[inline]
9329    pub fn path(&self) -> Option<Path> {
9330        support::child(&self.syntax)
9331    }
9332    #[inline]
9333    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9334        support::child(&self.syntax)
9335    }
9336    #[inline]
9337    pub fn where_clause(&self) -> Option<WhereClause> {
9338        support::child(&self.syntax)
9339    }
9340    #[inline]
9341    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9342        support::token(&self.syntax, SyntaxKind::L_PAREN)
9343    }
9344    #[inline]
9345    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9346        support::token(&self.syntax, SyntaxKind::R_PAREN)
9347    }
9348    #[inline]
9349    pub fn columns_token(&self) -> Option<SyntaxToken> {
9350        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9351    }
9352    #[inline]
9353    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9354        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9355    }
9356    #[inline]
9357    pub fn match_token(&self) -> Option<SyntaxToken> {
9358        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9359    }
9360}
9361
9362#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9363pub struct GroupByClause {
9364    pub(crate) syntax: SyntaxNode,
9365}
9366impl GroupByClause {
9367    #[inline]
9368    pub fn group_by_list(&self) -> Option<GroupByList> {
9369        support::child(&self.syntax)
9370    }
9371    #[inline]
9372    pub fn all_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::ALL_KW)
9374    }
9375    #[inline]
9376    pub fn by_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::BY_KW)
9378    }
9379    #[inline]
9380    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9381        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9382    }
9383    #[inline]
9384    pub fn group_token(&self) -> Option<SyntaxToken> {
9385        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9386    }
9387}
9388
9389#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9390pub struct GroupByList {
9391    pub(crate) syntax: SyntaxNode,
9392}
9393impl GroupByList {
9394    #[inline]
9395    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9396        support::children(&self.syntax)
9397    }
9398}
9399
9400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9401pub struct GroupingCube {
9402    pub(crate) syntax: SyntaxNode,
9403}
9404impl GroupingCube {
9405    #[inline]
9406    pub fn expr(&self) -> Option<Expr> {
9407        support::child(&self.syntax)
9408    }
9409    #[inline]
9410    pub fn cube_token(&self) -> Option<SyntaxToken> {
9411        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9412    }
9413}
9414
9415#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9416pub struct GroupingExpr {
9417    pub(crate) syntax: SyntaxNode,
9418}
9419impl GroupingExpr {
9420    #[inline]
9421    pub fn expr(&self) -> Option<Expr> {
9422        support::child(&self.syntax)
9423    }
9424}
9425
9426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9427pub struct GroupingRollup {
9428    pub(crate) syntax: SyntaxNode,
9429}
9430impl GroupingRollup {
9431    #[inline]
9432    pub fn expr(&self) -> Option<Expr> {
9433        support::child(&self.syntax)
9434    }
9435    #[inline]
9436    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9437        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9438    }
9439}
9440
9441#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9442pub struct GroupingSets {
9443    pub(crate) syntax: SyntaxNode,
9444}
9445impl GroupingSets {
9446    #[inline]
9447    pub fn expr(&self) -> Option<Expr> {
9448        support::child(&self.syntax)
9449    }
9450    #[inline]
9451    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9452        support::token(&self.syntax, SyntaxKind::L_PAREN)
9453    }
9454    #[inline]
9455    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9456        support::token(&self.syntax, SyntaxKind::R_PAREN)
9457    }
9458    #[inline]
9459    pub fn grouping_token(&self) -> Option<SyntaxToken> {
9460        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
9461    }
9462    #[inline]
9463    pub fn sets_token(&self) -> Option<SyntaxToken> {
9464        support::token(&self.syntax, SyntaxKind::SETS_KW)
9465    }
9466}
9467
9468#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9469pub struct Gteq {
9470    pub(crate) syntax: SyntaxNode,
9471}
9472impl Gteq {
9473    #[inline]
9474    pub fn eq_token(&self) -> Option<SyntaxToken> {
9475        support::token(&self.syntax, SyntaxKind::EQ)
9476    }
9477    #[inline]
9478    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9479        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9480    }
9481}
9482
9483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9484pub struct HandlerClause {
9485    pub(crate) syntax: SyntaxNode,
9486}
9487impl HandlerClause {
9488    #[inline]
9489    pub fn path(&self) -> Option<Path> {
9490        support::child(&self.syntax)
9491    }
9492    #[inline]
9493    pub fn handler_token(&self) -> Option<SyntaxToken> {
9494        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9495    }
9496}
9497
9498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9499pub struct HavingClause {
9500    pub(crate) syntax: SyntaxNode,
9501}
9502impl HavingClause {
9503    #[inline]
9504    pub fn expr(&self) -> Option<Expr> {
9505        support::child(&self.syntax)
9506    }
9507    #[inline]
9508    pub fn having_token(&self) -> Option<SyntaxToken> {
9509        support::token(&self.syntax, SyntaxKind::HAVING_KW)
9510    }
9511}
9512
9513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9514pub struct IfExists {
9515    pub(crate) syntax: SyntaxNode,
9516}
9517impl IfExists {
9518    #[inline]
9519    pub fn exists_token(&self) -> Option<SyntaxToken> {
9520        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9521    }
9522    #[inline]
9523    pub fn if_token(&self) -> Option<SyntaxToken> {
9524        support::token(&self.syntax, SyntaxKind::IF_KW)
9525    }
9526}
9527
9528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9529pub struct IfNotExists {
9530    pub(crate) syntax: SyntaxNode,
9531}
9532impl IfNotExists {
9533    #[inline]
9534    pub fn exists_token(&self) -> Option<SyntaxToken> {
9535        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9536    }
9537    #[inline]
9538    pub fn if_token(&self) -> Option<SyntaxToken> {
9539        support::token(&self.syntax, SyntaxKind::IF_KW)
9540    }
9541    #[inline]
9542    pub fn not_token(&self) -> Option<SyntaxToken> {
9543        support::token(&self.syntax, SyntaxKind::NOT_KW)
9544    }
9545}
9546
9547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9548pub struct ImportForeignSchema {
9549    pub(crate) syntax: SyntaxNode,
9550}
9551impl ImportForeignSchema {
9552    #[inline]
9553    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9554        support::child(&self.syntax)
9555    }
9556    #[inline]
9557    pub fn except_tables(&self) -> Option<ExceptTables> {
9558        support::child(&self.syntax)
9559    }
9560    #[inline]
9561    pub fn into_schema(&self) -> Option<IntoSchema> {
9562        support::child(&self.syntax)
9563    }
9564    #[inline]
9565    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
9566        support::child(&self.syntax)
9567    }
9568    #[inline]
9569    pub fn name_ref(&self) -> Option<NameRef> {
9570        support::child(&self.syntax)
9571    }
9572    #[inline]
9573    pub fn server_name(&self) -> Option<ServerName> {
9574        support::child(&self.syntax)
9575    }
9576    #[inline]
9577    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9578        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9579    }
9580    #[inline]
9581    pub fn from_token(&self) -> Option<SyntaxToken> {
9582        support::token(&self.syntax, SyntaxKind::FROM_KW)
9583    }
9584    #[inline]
9585    pub fn import_token(&self) -> Option<SyntaxToken> {
9586        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
9587    }
9588    #[inline]
9589    pub fn schema_token(&self) -> Option<SyntaxToken> {
9590        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9591    }
9592}
9593
9594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9595pub struct IndexExpr {
9596    pub(crate) syntax: SyntaxNode,
9597}
9598impl IndexExpr {
9599    #[inline]
9600    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9601        support::token(&self.syntax, SyntaxKind::L_BRACK)
9602    }
9603    #[inline]
9604    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9605        support::token(&self.syntax, SyntaxKind::R_BRACK)
9606    }
9607}
9608
9609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9610pub struct Inherit {
9611    pub(crate) syntax: SyntaxNode,
9612}
9613impl Inherit {
9614    #[inline]
9615    pub fn path(&self) -> Option<Path> {
9616        support::child(&self.syntax)
9617    }
9618    #[inline]
9619    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9620        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9621    }
9622}
9623
9624#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9625pub struct InheritTable {
9626    pub(crate) syntax: SyntaxNode,
9627}
9628impl InheritTable {
9629    #[inline]
9630    pub fn path(&self) -> Option<Path> {
9631        support::child(&self.syntax)
9632    }
9633    #[inline]
9634    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9635        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9636    }
9637}
9638
9639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9640pub struct Inherits {
9641    pub(crate) syntax: SyntaxNode,
9642}
9643impl Inherits {
9644    #[inline]
9645    pub fn paths(&self) -> AstChildren<Path> {
9646        support::children(&self.syntax)
9647    }
9648    #[inline]
9649    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9650        support::token(&self.syntax, SyntaxKind::L_PAREN)
9651    }
9652    #[inline]
9653    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9654        support::token(&self.syntax, SyntaxKind::R_PAREN)
9655    }
9656    #[inline]
9657    pub fn inherits_token(&self) -> Option<SyntaxToken> {
9658        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
9659    }
9660}
9661
9662#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9663pub struct InitiallyDeferredConstraintOption {
9664    pub(crate) syntax: SyntaxNode,
9665}
9666impl InitiallyDeferredConstraintOption {
9667    #[inline]
9668    pub fn deferred_token(&self) -> Option<SyntaxToken> {
9669        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
9670    }
9671    #[inline]
9672    pub fn initially_token(&self) -> Option<SyntaxToken> {
9673        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9674    }
9675}
9676
9677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9678pub struct InitiallyImmediateConstraintOption {
9679    pub(crate) syntax: SyntaxNode,
9680}
9681impl InitiallyImmediateConstraintOption {
9682    #[inline]
9683    pub fn immediate_token(&self) -> Option<SyntaxToken> {
9684        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
9685    }
9686    #[inline]
9687    pub fn initially_token(&self) -> Option<SyntaxToken> {
9688        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9689    }
9690}
9691
9692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9693pub struct Insert {
9694    pub(crate) syntax: SyntaxNode,
9695}
9696impl Insert {
9697    #[inline]
9698    pub fn alias(&self) -> Option<Alias> {
9699        support::child(&self.syntax)
9700    }
9701    #[inline]
9702    pub fn column_list(&self) -> Option<ColumnList> {
9703        support::child(&self.syntax)
9704    }
9705    #[inline]
9706    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
9707        support::child(&self.syntax)
9708    }
9709    #[inline]
9710    pub fn path(&self) -> Option<Path> {
9711        support::child(&self.syntax)
9712    }
9713    #[inline]
9714    pub fn returning_clause(&self) -> Option<ReturningClause> {
9715        support::child(&self.syntax)
9716    }
9717    #[inline]
9718    pub fn stmt(&self) -> Option<Stmt> {
9719        support::child(&self.syntax)
9720    }
9721    #[inline]
9722    pub fn values(&self) -> Option<Values> {
9723        support::child(&self.syntax)
9724    }
9725    #[inline]
9726    pub fn with_clause(&self) -> Option<WithClause> {
9727        support::child(&self.syntax)
9728    }
9729    #[inline]
9730    pub fn default_token(&self) -> Option<SyntaxToken> {
9731        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9732    }
9733    #[inline]
9734    pub fn insert_token(&self) -> Option<SyntaxToken> {
9735        support::token(&self.syntax, SyntaxKind::INSERT_KW)
9736    }
9737    #[inline]
9738    pub fn into_token(&self) -> Option<SyntaxToken> {
9739        support::token(&self.syntax, SyntaxKind::INTO_KW)
9740    }
9741    #[inline]
9742    pub fn overriding_token(&self) -> Option<SyntaxToken> {
9743        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
9744    }
9745    #[inline]
9746    pub fn system_token(&self) -> Option<SyntaxToken> {
9747        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
9748    }
9749    #[inline]
9750    pub fn user_token(&self) -> Option<SyntaxToken> {
9751        support::token(&self.syntax, SyntaxKind::USER_KW)
9752    }
9753    #[inline]
9754    pub fn value_token(&self) -> Option<SyntaxToken> {
9755        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9756    }
9757    #[inline]
9758    pub fn values_token(&self) -> Option<SyntaxToken> {
9759        support::token(&self.syntax, SyntaxKind::VALUES_KW)
9760    }
9761}
9762
9763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9764pub struct IntervalType {
9765    pub(crate) syntax: SyntaxNode,
9766}
9767impl IntervalType {
9768    #[inline]
9769    pub fn literal(&self) -> Option<Literal> {
9770        support::child(&self.syntax)
9771    }
9772    #[inline]
9773    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9774        support::token(&self.syntax, SyntaxKind::L_PAREN)
9775    }
9776    #[inline]
9777    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9778        support::token(&self.syntax, SyntaxKind::R_PAREN)
9779    }
9780    #[inline]
9781    pub fn day_token(&self) -> Option<SyntaxToken> {
9782        support::token(&self.syntax, SyntaxKind::DAY_KW)
9783    }
9784    #[inline]
9785    pub fn hour_token(&self) -> Option<SyntaxToken> {
9786        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9787    }
9788    #[inline]
9789    pub fn interval_token(&self) -> Option<SyntaxToken> {
9790        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
9791    }
9792    #[inline]
9793    pub fn minute_token(&self) -> Option<SyntaxToken> {
9794        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9795    }
9796    #[inline]
9797    pub fn month_token(&self) -> Option<SyntaxToken> {
9798        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9799    }
9800    #[inline]
9801    pub fn second_token(&self) -> Option<SyntaxToken> {
9802        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9803    }
9804    #[inline]
9805    pub fn setof_token(&self) -> Option<SyntaxToken> {
9806        support::token(&self.syntax, SyntaxKind::SETOF_KW)
9807    }
9808    #[inline]
9809    pub fn to_token(&self) -> Option<SyntaxToken> {
9810        support::token(&self.syntax, SyntaxKind::TO_KW)
9811    }
9812    #[inline]
9813    pub fn year_token(&self) -> Option<SyntaxToken> {
9814        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9815    }
9816}
9817
9818#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9819pub struct IntoClause {
9820    pub(crate) syntax: SyntaxNode,
9821}
9822impl IntoClause {
9823    #[inline]
9824    pub fn path(&self) -> Option<Path> {
9825        support::child(&self.syntax)
9826    }
9827    #[inline]
9828    pub fn persistence(&self) -> Option<Persistence> {
9829        support::child(&self.syntax)
9830    }
9831    #[inline]
9832    pub fn into_token(&self) -> Option<SyntaxToken> {
9833        support::token(&self.syntax, SyntaxKind::INTO_KW)
9834    }
9835    #[inline]
9836    pub fn table_token(&self) -> Option<SyntaxToken> {
9837        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9838    }
9839}
9840
9841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9842pub struct IntoSchema {
9843    pub(crate) syntax: SyntaxNode,
9844}
9845impl IntoSchema {
9846    #[inline]
9847    pub fn name_ref(&self) -> Option<NameRef> {
9848        support::child(&self.syntax)
9849    }
9850    #[inline]
9851    pub fn into_token(&self) -> Option<SyntaxToken> {
9852        support::token(&self.syntax, SyntaxKind::INTO_KW)
9853    }
9854}
9855
9856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9857pub struct IsDistinctFrom {
9858    pub(crate) syntax: SyntaxNode,
9859}
9860impl IsDistinctFrom {
9861    #[inline]
9862    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9863        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9864    }
9865    #[inline]
9866    pub fn from_token(&self) -> Option<SyntaxToken> {
9867        support::token(&self.syntax, SyntaxKind::FROM_KW)
9868    }
9869    #[inline]
9870    pub fn is_token(&self) -> Option<SyntaxToken> {
9871        support::token(&self.syntax, SyntaxKind::IS_KW)
9872    }
9873}
9874
9875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9876pub struct IsJson {
9877    pub(crate) syntax: SyntaxNode,
9878}
9879impl IsJson {
9880    #[inline]
9881    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9882        support::child(&self.syntax)
9883    }
9884    #[inline]
9885    pub fn is_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::IS_KW)
9887    }
9888    #[inline]
9889    pub fn json_token(&self) -> Option<SyntaxToken> {
9890        support::token(&self.syntax, SyntaxKind::JSON_KW)
9891    }
9892}
9893
9894#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9895pub struct IsJsonArray {
9896    pub(crate) syntax: SyntaxNode,
9897}
9898impl IsJsonArray {
9899    #[inline]
9900    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9901        support::child(&self.syntax)
9902    }
9903    #[inline]
9904    pub fn array_token(&self) -> Option<SyntaxToken> {
9905        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9906    }
9907    #[inline]
9908    pub fn is_token(&self) -> Option<SyntaxToken> {
9909        support::token(&self.syntax, SyntaxKind::IS_KW)
9910    }
9911    #[inline]
9912    pub fn json_token(&self) -> Option<SyntaxToken> {
9913        support::token(&self.syntax, SyntaxKind::JSON_KW)
9914    }
9915}
9916
9917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9918pub struct IsJsonObject {
9919    pub(crate) syntax: SyntaxNode,
9920}
9921impl IsJsonObject {
9922    #[inline]
9923    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9924        support::child(&self.syntax)
9925    }
9926    #[inline]
9927    pub fn is_token(&self) -> Option<SyntaxToken> {
9928        support::token(&self.syntax, SyntaxKind::IS_KW)
9929    }
9930    #[inline]
9931    pub fn json_token(&self) -> Option<SyntaxToken> {
9932        support::token(&self.syntax, SyntaxKind::JSON_KW)
9933    }
9934    #[inline]
9935    pub fn object_token(&self) -> Option<SyntaxToken> {
9936        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9937    }
9938}
9939
9940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9941pub struct IsJsonScalar {
9942    pub(crate) syntax: SyntaxNode,
9943}
9944impl IsJsonScalar {
9945    #[inline]
9946    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9947        support::child(&self.syntax)
9948    }
9949    #[inline]
9950    pub fn is_token(&self) -> Option<SyntaxToken> {
9951        support::token(&self.syntax, SyntaxKind::IS_KW)
9952    }
9953    #[inline]
9954    pub fn json_token(&self) -> Option<SyntaxToken> {
9955        support::token(&self.syntax, SyntaxKind::JSON_KW)
9956    }
9957    #[inline]
9958    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9959        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9960    }
9961}
9962
9963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9964pub struct IsJsonValue {
9965    pub(crate) syntax: SyntaxNode,
9966}
9967impl IsJsonValue {
9968    #[inline]
9969    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9970        support::child(&self.syntax)
9971    }
9972    #[inline]
9973    pub fn is_token(&self) -> Option<SyntaxToken> {
9974        support::token(&self.syntax, SyntaxKind::IS_KW)
9975    }
9976    #[inline]
9977    pub fn json_token(&self) -> Option<SyntaxToken> {
9978        support::token(&self.syntax, SyntaxKind::JSON_KW)
9979    }
9980    #[inline]
9981    pub fn value_token(&self) -> Option<SyntaxToken> {
9982        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9983    }
9984}
9985
9986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9987pub struct IsLabel {
9988    pub(crate) syntax: SyntaxNode,
9989}
9990impl IsLabel {
9991    #[inline]
9992    pub fn expr(&self) -> Option<Expr> {
9993        support::child(&self.syntax)
9994    }
9995    #[inline]
9996    pub fn is_token(&self) -> Option<SyntaxToken> {
9997        support::token(&self.syntax, SyntaxKind::IS_KW)
9998    }
9999}
10000
10001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10002pub struct IsNormalized {
10003    pub(crate) syntax: SyntaxNode,
10004}
10005impl IsNormalized {
10006    #[inline]
10007    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10008        support::child(&self.syntax)
10009    }
10010    #[inline]
10011    pub fn is_token(&self) -> Option<SyntaxToken> {
10012        support::token(&self.syntax, SyntaxKind::IS_KW)
10013    }
10014    #[inline]
10015    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10016        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10017    }
10018}
10019
10020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10021pub struct IsNot {
10022    pub(crate) syntax: SyntaxNode,
10023}
10024impl IsNot {
10025    #[inline]
10026    pub fn is_token(&self) -> Option<SyntaxToken> {
10027        support::token(&self.syntax, SyntaxKind::IS_KW)
10028    }
10029    #[inline]
10030    pub fn not_token(&self) -> Option<SyntaxToken> {
10031        support::token(&self.syntax, SyntaxKind::NOT_KW)
10032    }
10033}
10034
10035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10036pub struct IsNotDistinctFrom {
10037    pub(crate) syntax: SyntaxNode,
10038}
10039impl IsNotDistinctFrom {
10040    #[inline]
10041    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10042        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10043    }
10044    #[inline]
10045    pub fn from_token(&self) -> Option<SyntaxToken> {
10046        support::token(&self.syntax, SyntaxKind::FROM_KW)
10047    }
10048    #[inline]
10049    pub fn is_token(&self) -> Option<SyntaxToken> {
10050        support::token(&self.syntax, SyntaxKind::IS_KW)
10051    }
10052    #[inline]
10053    pub fn not_token(&self) -> Option<SyntaxToken> {
10054        support::token(&self.syntax, SyntaxKind::NOT_KW)
10055    }
10056}
10057
10058#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10059pub struct IsNotJson {
10060    pub(crate) syntax: SyntaxNode,
10061}
10062impl IsNotJson {
10063    #[inline]
10064    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10065        support::child(&self.syntax)
10066    }
10067    #[inline]
10068    pub fn is_token(&self) -> Option<SyntaxToken> {
10069        support::token(&self.syntax, SyntaxKind::IS_KW)
10070    }
10071    #[inline]
10072    pub fn json_token(&self) -> Option<SyntaxToken> {
10073        support::token(&self.syntax, SyntaxKind::JSON_KW)
10074    }
10075    #[inline]
10076    pub fn not_token(&self) -> Option<SyntaxToken> {
10077        support::token(&self.syntax, SyntaxKind::NOT_KW)
10078    }
10079}
10080
10081#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10082pub struct IsNotJsonArray {
10083    pub(crate) syntax: SyntaxNode,
10084}
10085impl IsNotJsonArray {
10086    #[inline]
10087    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10088        support::child(&self.syntax)
10089    }
10090    #[inline]
10091    pub fn array_token(&self) -> Option<SyntaxToken> {
10092        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10093    }
10094    #[inline]
10095    pub fn is_token(&self) -> Option<SyntaxToken> {
10096        support::token(&self.syntax, SyntaxKind::IS_KW)
10097    }
10098    #[inline]
10099    pub fn json_token(&self) -> Option<SyntaxToken> {
10100        support::token(&self.syntax, SyntaxKind::JSON_KW)
10101    }
10102    #[inline]
10103    pub fn not_token(&self) -> Option<SyntaxToken> {
10104        support::token(&self.syntax, SyntaxKind::NOT_KW)
10105    }
10106}
10107
10108#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10109pub struct IsNotJsonObject {
10110    pub(crate) syntax: SyntaxNode,
10111}
10112impl IsNotJsonObject {
10113    #[inline]
10114    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10115        support::child(&self.syntax)
10116    }
10117    #[inline]
10118    pub fn is_token(&self) -> Option<SyntaxToken> {
10119        support::token(&self.syntax, SyntaxKind::IS_KW)
10120    }
10121    #[inline]
10122    pub fn json_token(&self) -> Option<SyntaxToken> {
10123        support::token(&self.syntax, SyntaxKind::JSON_KW)
10124    }
10125    #[inline]
10126    pub fn not_token(&self) -> Option<SyntaxToken> {
10127        support::token(&self.syntax, SyntaxKind::NOT_KW)
10128    }
10129    #[inline]
10130    pub fn object_token(&self) -> Option<SyntaxToken> {
10131        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10132    }
10133}
10134
10135#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10136pub struct IsNotJsonScalar {
10137    pub(crate) syntax: SyntaxNode,
10138}
10139impl IsNotJsonScalar {
10140    #[inline]
10141    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10142        support::child(&self.syntax)
10143    }
10144    #[inline]
10145    pub fn is_token(&self) -> Option<SyntaxToken> {
10146        support::token(&self.syntax, SyntaxKind::IS_KW)
10147    }
10148    #[inline]
10149    pub fn json_token(&self) -> Option<SyntaxToken> {
10150        support::token(&self.syntax, SyntaxKind::JSON_KW)
10151    }
10152    #[inline]
10153    pub fn not_token(&self) -> Option<SyntaxToken> {
10154        support::token(&self.syntax, SyntaxKind::NOT_KW)
10155    }
10156    #[inline]
10157    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10158        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10159    }
10160}
10161
10162#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10163pub struct IsNotJsonValue {
10164    pub(crate) syntax: SyntaxNode,
10165}
10166impl IsNotJsonValue {
10167    #[inline]
10168    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10169        support::child(&self.syntax)
10170    }
10171    #[inline]
10172    pub fn is_token(&self) -> Option<SyntaxToken> {
10173        support::token(&self.syntax, SyntaxKind::IS_KW)
10174    }
10175    #[inline]
10176    pub fn json_token(&self) -> Option<SyntaxToken> {
10177        support::token(&self.syntax, SyntaxKind::JSON_KW)
10178    }
10179    #[inline]
10180    pub fn not_token(&self) -> Option<SyntaxToken> {
10181        support::token(&self.syntax, SyntaxKind::NOT_KW)
10182    }
10183    #[inline]
10184    pub fn value_token(&self) -> Option<SyntaxToken> {
10185        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10186    }
10187}
10188
10189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10190pub struct IsNotNormalized {
10191    pub(crate) syntax: SyntaxNode,
10192}
10193impl IsNotNormalized {
10194    #[inline]
10195    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10196        support::child(&self.syntax)
10197    }
10198    #[inline]
10199    pub fn is_token(&self) -> Option<SyntaxToken> {
10200        support::token(&self.syntax, SyntaxKind::IS_KW)
10201    }
10202    #[inline]
10203    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10204        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10205    }
10206    #[inline]
10207    pub fn not_token(&self) -> Option<SyntaxToken> {
10208        support::token(&self.syntax, SyntaxKind::NOT_KW)
10209    }
10210}
10211
10212#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10213pub struct Join {
10214    pub(crate) syntax: SyntaxNode,
10215}
10216impl Join {
10217    #[inline]
10218    pub fn from_item(&self) -> Option<FromItem> {
10219        support::child(&self.syntax)
10220    }
10221    #[inline]
10222    pub fn join_type(&self) -> Option<JoinType> {
10223        support::child(&self.syntax)
10224    }
10225    #[inline]
10226    pub fn on_clause(&self) -> Option<OnClause> {
10227        support::child(&self.syntax)
10228    }
10229    #[inline]
10230    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10231        support::child(&self.syntax)
10232    }
10233    #[inline]
10234    pub fn natural_token(&self) -> Option<SyntaxToken> {
10235        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10236    }
10237}
10238
10239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10240pub struct JoinCross {
10241    pub(crate) syntax: SyntaxNode,
10242}
10243impl JoinCross {
10244    #[inline]
10245    pub fn cross_token(&self) -> Option<SyntaxToken> {
10246        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10247    }
10248    #[inline]
10249    pub fn join_token(&self) -> Option<SyntaxToken> {
10250        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10251    }
10252}
10253
10254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10255pub struct JoinExpr {
10256    pub(crate) syntax: SyntaxNode,
10257}
10258impl JoinExpr {
10259    #[inline]
10260    pub fn from_item(&self) -> Option<FromItem> {
10261        support::child(&self.syntax)
10262    }
10263    #[inline]
10264    pub fn join(&self) -> Option<Join> {
10265        support::child(&self.syntax)
10266    }
10267    #[inline]
10268    pub fn join_expr(&self) -> Option<JoinExpr> {
10269        support::child(&self.syntax)
10270    }
10271}
10272
10273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10274pub struct JoinFull {
10275    pub(crate) syntax: SyntaxNode,
10276}
10277impl JoinFull {
10278    #[inline]
10279    pub fn full_token(&self) -> Option<SyntaxToken> {
10280        support::token(&self.syntax, SyntaxKind::FULL_KW)
10281    }
10282    #[inline]
10283    pub fn join_token(&self) -> Option<SyntaxToken> {
10284        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10285    }
10286    #[inline]
10287    pub fn outer_token(&self) -> Option<SyntaxToken> {
10288        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10289    }
10290}
10291
10292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10293pub struct JoinInner {
10294    pub(crate) syntax: SyntaxNode,
10295}
10296impl JoinInner {
10297    #[inline]
10298    pub fn inner_token(&self) -> Option<SyntaxToken> {
10299        support::token(&self.syntax, SyntaxKind::INNER_KW)
10300    }
10301    #[inline]
10302    pub fn join_token(&self) -> Option<SyntaxToken> {
10303        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10304    }
10305}
10306
10307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10308pub struct JoinLeft {
10309    pub(crate) syntax: SyntaxNode,
10310}
10311impl JoinLeft {
10312    #[inline]
10313    pub fn join_token(&self) -> Option<SyntaxToken> {
10314        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10315    }
10316    #[inline]
10317    pub fn left_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10319    }
10320    #[inline]
10321    pub fn outer_token(&self) -> Option<SyntaxToken> {
10322        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10323    }
10324}
10325
10326#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10327pub struct JoinRight {
10328    pub(crate) syntax: SyntaxNode,
10329}
10330impl JoinRight {
10331    #[inline]
10332    pub fn join_token(&self) -> Option<SyntaxToken> {
10333        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10334    }
10335    #[inline]
10336    pub fn outer_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10338    }
10339    #[inline]
10340    pub fn right_token(&self) -> Option<SyntaxToken> {
10341        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10342    }
10343}
10344
10345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10346pub struct JoinUsingClause {
10347    pub(crate) syntax: SyntaxNode,
10348}
10349impl JoinUsingClause {
10350    #[inline]
10351    pub fn alias(&self) -> Option<Alias> {
10352        support::child(&self.syntax)
10353    }
10354    #[inline]
10355    pub fn column_list(&self) -> Option<ColumnList> {
10356        support::child(&self.syntax)
10357    }
10358    #[inline]
10359    pub fn using_token(&self) -> Option<SyntaxToken> {
10360        support::token(&self.syntax, SyntaxKind::USING_KW)
10361    }
10362}
10363
10364#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10365pub struct JsonArrayAggFn {
10366    pub(crate) syntax: SyntaxNode,
10367}
10368impl JsonArrayAggFn {
10369    #[inline]
10370    pub fn expr(&self) -> Option<Expr> {
10371        support::child(&self.syntax)
10372    }
10373    #[inline]
10374    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10375        support::child(&self.syntax)
10376    }
10377    #[inline]
10378    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10379        support::child(&self.syntax)
10380    }
10381    #[inline]
10382    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10383        support::children(&self.syntax)
10384    }
10385    #[inline]
10386    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10387        support::token(&self.syntax, SyntaxKind::L_PAREN)
10388    }
10389    #[inline]
10390    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10391        support::token(&self.syntax, SyntaxKind::R_PAREN)
10392    }
10393    #[inline]
10394    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10395        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10396    }
10397}
10398
10399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10400pub struct JsonArrayFn {
10401    pub(crate) syntax: SyntaxNode,
10402}
10403impl JsonArrayFn {
10404    #[inline]
10405    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10406        support::children(&self.syntax)
10407    }
10408    #[inline]
10409    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10410        support::child(&self.syntax)
10411    }
10412    #[inline]
10413    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10414        support::child(&self.syntax)
10415    }
10416    #[inline]
10417    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10418        support::children(&self.syntax)
10419    }
10420    #[inline]
10421    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10422        support::token(&self.syntax, SyntaxKind::L_PAREN)
10423    }
10424    #[inline]
10425    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10426        support::token(&self.syntax, SyntaxKind::R_PAREN)
10427    }
10428    #[inline]
10429    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10430        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10431    }
10432}
10433
10434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10435pub struct JsonBehaviorClause {
10436    pub(crate) syntax: SyntaxNode,
10437}
10438impl JsonBehaviorClause {
10439    #[inline]
10440    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10441        support::child(&self.syntax)
10442    }
10443}
10444
10445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10446pub struct JsonBehaviorDefault {
10447    pub(crate) syntax: SyntaxNode,
10448}
10449impl JsonBehaviorDefault {
10450    #[inline]
10451    pub fn expr(&self) -> Option<Expr> {
10452        support::child(&self.syntax)
10453    }
10454    #[inline]
10455    pub fn default_token(&self) -> Option<SyntaxToken> {
10456        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10457    }
10458}
10459
10460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10461pub struct JsonBehaviorEmptyArray {
10462    pub(crate) syntax: SyntaxNode,
10463}
10464impl JsonBehaviorEmptyArray {
10465    #[inline]
10466    pub fn array_token(&self) -> Option<SyntaxToken> {
10467        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10468    }
10469    #[inline]
10470    pub fn empty_token(&self) -> Option<SyntaxToken> {
10471        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10472    }
10473}
10474
10475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10476pub struct JsonBehaviorEmptyObject {
10477    pub(crate) syntax: SyntaxNode,
10478}
10479impl JsonBehaviorEmptyObject {
10480    #[inline]
10481    pub fn empty_token(&self) -> Option<SyntaxToken> {
10482        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10483    }
10484    #[inline]
10485    pub fn object_token(&self) -> Option<SyntaxToken> {
10486        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10487    }
10488}
10489
10490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10491pub struct JsonBehaviorError {
10492    pub(crate) syntax: SyntaxNode,
10493}
10494impl JsonBehaviorError {
10495    #[inline]
10496    pub fn error_token(&self) -> Option<SyntaxToken> {
10497        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10498    }
10499}
10500
10501#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10502pub struct JsonBehaviorFalse {
10503    pub(crate) syntax: SyntaxNode,
10504}
10505impl JsonBehaviorFalse {
10506    #[inline]
10507    pub fn false_token(&self) -> Option<SyntaxToken> {
10508        support::token(&self.syntax, SyntaxKind::FALSE_KW)
10509    }
10510}
10511
10512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10513pub struct JsonBehaviorNull {
10514    pub(crate) syntax: SyntaxNode,
10515}
10516impl JsonBehaviorNull {
10517    #[inline]
10518    pub fn null_token(&self) -> Option<SyntaxToken> {
10519        support::token(&self.syntax, SyntaxKind::NULL_KW)
10520    }
10521}
10522
10523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10524pub struct JsonBehaviorTrue {
10525    pub(crate) syntax: SyntaxNode,
10526}
10527impl JsonBehaviorTrue {
10528    #[inline]
10529    pub fn true_token(&self) -> Option<SyntaxToken> {
10530        support::token(&self.syntax, SyntaxKind::TRUE_KW)
10531    }
10532}
10533
10534#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10535pub struct JsonBehaviorUnknown {
10536    pub(crate) syntax: SyntaxNode,
10537}
10538impl JsonBehaviorUnknown {
10539    #[inline]
10540    pub fn unknown_token(&self) -> Option<SyntaxToken> {
10541        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
10542    }
10543}
10544
10545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10546pub struct JsonEncodingClause {
10547    pub(crate) syntax: SyntaxNode,
10548}
10549impl JsonEncodingClause {
10550    #[inline]
10551    pub fn name_ref(&self) -> Option<NameRef> {
10552        support::child(&self.syntax)
10553    }
10554    #[inline]
10555    pub fn encoding_token(&self) -> Option<SyntaxToken> {
10556        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
10557    }
10558}
10559
10560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10561pub struct JsonExistsFn {
10562    pub(crate) syntax: SyntaxNode,
10563}
10564impl JsonExistsFn {
10565    #[inline]
10566    pub fn expr(&self) -> Option<Expr> {
10567        support::child(&self.syntax)
10568    }
10569    #[inline]
10570    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10571        support::child(&self.syntax)
10572    }
10573    #[inline]
10574    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10575        support::child(&self.syntax)
10576    }
10577    #[inline]
10578    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10579        support::child(&self.syntax)
10580    }
10581    #[inline]
10582    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10583        support::token(&self.syntax, SyntaxKind::L_PAREN)
10584    }
10585    #[inline]
10586    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10587        support::token(&self.syntax, SyntaxKind::R_PAREN)
10588    }
10589    #[inline]
10590    pub fn comma_token(&self) -> Option<SyntaxToken> {
10591        support::token(&self.syntax, SyntaxKind::COMMA)
10592    }
10593    #[inline]
10594    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
10595        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
10596    }
10597}
10598
10599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10600pub struct JsonExprFormat {
10601    pub(crate) syntax: SyntaxNode,
10602}
10603impl JsonExprFormat {
10604    #[inline]
10605    pub fn expr(&self) -> Option<Expr> {
10606        support::child(&self.syntax)
10607    }
10608    #[inline]
10609    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10610        support::child(&self.syntax)
10611    }
10612}
10613
10614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10615pub struct JsonFn {
10616    pub(crate) syntax: SyntaxNode,
10617}
10618impl JsonFn {
10619    #[inline]
10620    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
10621        support::child(&self.syntax)
10622    }
10623    #[inline]
10624    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10625        support::child(&self.syntax)
10626    }
10627    #[inline]
10628    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10629        support::token(&self.syntax, SyntaxKind::L_PAREN)
10630    }
10631    #[inline]
10632    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10633        support::token(&self.syntax, SyntaxKind::R_PAREN)
10634    }
10635    #[inline]
10636    pub fn json_token(&self) -> Option<SyntaxToken> {
10637        support::token(&self.syntax, SyntaxKind::JSON_KW)
10638    }
10639}
10640
10641#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10642pub struct JsonFormatClause {
10643    pub(crate) syntax: SyntaxNode,
10644}
10645impl JsonFormatClause {
10646    #[inline]
10647    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
10648        support::child(&self.syntax)
10649    }
10650    #[inline]
10651    pub fn format_token(&self) -> Option<SyntaxToken> {
10652        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
10653    }
10654    #[inline]
10655    pub fn json_token(&self) -> Option<SyntaxToken> {
10656        support::token(&self.syntax, SyntaxKind::JSON_KW)
10657    }
10658}
10659
10660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10661pub struct JsonKeyValue {
10662    pub(crate) syntax: SyntaxNode,
10663}
10664impl JsonKeyValue {
10665    #[inline]
10666    pub fn expr(&self) -> Option<Expr> {
10667        support::child(&self.syntax)
10668    }
10669    #[inline]
10670    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
10671        support::child(&self.syntax)
10672    }
10673    #[inline]
10674    pub fn colon_token(&self) -> Option<SyntaxToken> {
10675        support::token(&self.syntax, SyntaxKind::COLON)
10676    }
10677    #[inline]
10678    pub fn value_token(&self) -> Option<SyntaxToken> {
10679        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10680    }
10681}
10682
10683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10684pub struct JsonKeysUniqueClause {
10685    pub(crate) syntax: SyntaxNode,
10686}
10687impl JsonKeysUniqueClause {
10688    #[inline]
10689    pub fn keys_token(&self) -> Option<SyntaxToken> {
10690        support::token(&self.syntax, SyntaxKind::KEYS_KW)
10691    }
10692    #[inline]
10693    pub fn unique_token(&self) -> Option<SyntaxToken> {
10694        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
10695    }
10696    #[inline]
10697    pub fn with_token(&self) -> Option<SyntaxToken> {
10698        support::token(&self.syntax, SyntaxKind::WITH_KW)
10699    }
10700    #[inline]
10701    pub fn without_token(&self) -> Option<SyntaxToken> {
10702        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10703    }
10704}
10705
10706#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10707pub struct JsonNullClause {
10708    pub(crate) syntax: SyntaxNode,
10709}
10710impl JsonNullClause {
10711    #[inline]
10712    pub fn absent_token(&self) -> Option<SyntaxToken> {
10713        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
10714    }
10715    #[inline]
10716    pub fn null_token(&self) -> Option<SyntaxToken> {
10717        support::token(&self.syntax, SyntaxKind::NULL_KW)
10718    }
10719    #[inline]
10720    pub fn on_token(&self) -> Option<SyntaxToken> {
10721        support::token(&self.syntax, SyntaxKind::ON_KW)
10722    }
10723}
10724
10725#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10726pub struct JsonObjectAggFn {
10727    pub(crate) syntax: SyntaxNode,
10728}
10729impl JsonObjectAggFn {
10730    #[inline]
10731    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
10732        support::child(&self.syntax)
10733    }
10734    #[inline]
10735    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10736        support::child(&self.syntax)
10737    }
10738    #[inline]
10739    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10740        support::child(&self.syntax)
10741    }
10742    #[inline]
10743    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10744        support::child(&self.syntax)
10745    }
10746    #[inline]
10747    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10748        support::token(&self.syntax, SyntaxKind::L_PAREN)
10749    }
10750    #[inline]
10751    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10752        support::token(&self.syntax, SyntaxKind::R_PAREN)
10753    }
10754    #[inline]
10755    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
10756        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
10757    }
10758}
10759
10760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10761pub struct JsonObjectFn {
10762    pub(crate) syntax: SyntaxNode,
10763}
10764impl JsonObjectFn {
10765    #[inline]
10766    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
10767        support::children(&self.syntax)
10768    }
10769    #[inline]
10770    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10771        support::child(&self.syntax)
10772    }
10773    #[inline]
10774    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10775        support::child(&self.syntax)
10776    }
10777    #[inline]
10778    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10779        support::child(&self.syntax)
10780    }
10781    #[inline]
10782    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10783        support::token(&self.syntax, SyntaxKind::L_PAREN)
10784    }
10785    #[inline]
10786    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10787        support::token(&self.syntax, SyntaxKind::R_PAREN)
10788    }
10789    #[inline]
10790    pub fn json_object_token(&self) -> Option<SyntaxToken> {
10791        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
10792    }
10793}
10794
10795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10796pub struct JsonOnEmptyClause {
10797    pub(crate) syntax: SyntaxNode,
10798}
10799impl JsonOnEmptyClause {
10800    #[inline]
10801    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10802        support::child(&self.syntax)
10803    }
10804    #[inline]
10805    pub fn empty_token(&self) -> Option<SyntaxToken> {
10806        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10807    }
10808    #[inline]
10809    pub fn on_token(&self) -> Option<SyntaxToken> {
10810        support::token(&self.syntax, SyntaxKind::ON_KW)
10811    }
10812}
10813
10814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10815pub struct JsonOnErrorClause {
10816    pub(crate) syntax: SyntaxNode,
10817}
10818impl JsonOnErrorClause {
10819    #[inline]
10820    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10821        support::child(&self.syntax)
10822    }
10823    #[inline]
10824    pub fn error_token(&self) -> Option<SyntaxToken> {
10825        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10826    }
10827    #[inline]
10828    pub fn on_token(&self) -> Option<SyntaxToken> {
10829        support::token(&self.syntax, SyntaxKind::ON_KW)
10830    }
10831}
10832
10833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10834pub struct JsonPassingArg {
10835    pub(crate) syntax: SyntaxNode,
10836}
10837impl JsonPassingArg {
10838    #[inline]
10839    pub fn expr(&self) -> Option<Expr> {
10840        support::child(&self.syntax)
10841    }
10842    #[inline]
10843    pub fn name(&self) -> Option<Name> {
10844        support::child(&self.syntax)
10845    }
10846    #[inline]
10847    pub fn as_token(&self) -> Option<SyntaxToken> {
10848        support::token(&self.syntax, SyntaxKind::AS_KW)
10849    }
10850}
10851
10852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10853pub struct JsonPassingClause {
10854    pub(crate) syntax: SyntaxNode,
10855}
10856impl JsonPassingClause {
10857    #[inline]
10858    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
10859        support::children(&self.syntax)
10860    }
10861    #[inline]
10862    pub fn passing_token(&self) -> Option<SyntaxToken> {
10863        support::token(&self.syntax, SyntaxKind::PASSING_KW)
10864    }
10865}
10866
10867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10868pub struct JsonPathClause {
10869    pub(crate) syntax: SyntaxNode,
10870}
10871impl JsonPathClause {
10872    #[inline]
10873    pub fn expr(&self) -> Option<Expr> {
10874        support::child(&self.syntax)
10875    }
10876    #[inline]
10877    pub fn path_token(&self) -> Option<SyntaxToken> {
10878        support::token(&self.syntax, SyntaxKind::PATH_KW)
10879    }
10880}
10881
10882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10883pub struct JsonQueryFn {
10884    pub(crate) syntax: SyntaxNode,
10885}
10886impl JsonQueryFn {
10887    #[inline]
10888    pub fn expr(&self) -> Option<Expr> {
10889        support::child(&self.syntax)
10890    }
10891    #[inline]
10892    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10893        support::child(&self.syntax)
10894    }
10895    #[inline]
10896    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10897        support::child(&self.syntax)
10898    }
10899    #[inline]
10900    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10901        support::child(&self.syntax)
10902    }
10903    #[inline]
10904    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10905        support::child(&self.syntax)
10906    }
10907    #[inline]
10908    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10909        support::child(&self.syntax)
10910    }
10911    #[inline]
10912    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10913        support::child(&self.syntax)
10914    }
10915    #[inline]
10916    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10917        support::token(&self.syntax, SyntaxKind::L_PAREN)
10918    }
10919    #[inline]
10920    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10921        support::token(&self.syntax, SyntaxKind::R_PAREN)
10922    }
10923    #[inline]
10924    pub fn comma_token(&self) -> Option<SyntaxToken> {
10925        support::token(&self.syntax, SyntaxKind::COMMA)
10926    }
10927    #[inline]
10928    pub fn json_query_token(&self) -> Option<SyntaxToken> {
10929        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
10930    }
10931}
10932
10933#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10934pub struct JsonQuotesClause {
10935    pub(crate) syntax: SyntaxNode,
10936}
10937impl JsonQuotesClause {
10938    #[inline]
10939    pub fn keep_token(&self) -> Option<SyntaxToken> {
10940        support::token(&self.syntax, SyntaxKind::KEEP_KW)
10941    }
10942    #[inline]
10943    pub fn omit_token(&self) -> Option<SyntaxToken> {
10944        support::token(&self.syntax, SyntaxKind::OMIT_KW)
10945    }
10946    #[inline]
10947    pub fn on_token(&self) -> Option<SyntaxToken> {
10948        support::token(&self.syntax, SyntaxKind::ON_KW)
10949    }
10950    #[inline]
10951    pub fn quotes_token(&self) -> Option<SyntaxToken> {
10952        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
10953    }
10954    #[inline]
10955    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10956        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10957    }
10958    #[inline]
10959    pub fn string_token(&self) -> Option<SyntaxToken> {
10960        support::token(&self.syntax, SyntaxKind::STRING_KW)
10961    }
10962}
10963
10964#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10965pub struct JsonReturningClause {
10966    pub(crate) syntax: SyntaxNode,
10967}
10968impl JsonReturningClause {
10969    #[inline]
10970    pub fn ty(&self) -> Option<Type> {
10971        support::child(&self.syntax)
10972    }
10973    #[inline]
10974    pub fn returning_token(&self) -> Option<SyntaxToken> {
10975        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
10976    }
10977}
10978
10979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10980pub struct JsonScalarFn {
10981    pub(crate) syntax: SyntaxNode,
10982}
10983impl JsonScalarFn {
10984    #[inline]
10985    pub fn expr(&self) -> Option<Expr> {
10986        support::child(&self.syntax)
10987    }
10988    #[inline]
10989    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10990        support::token(&self.syntax, SyntaxKind::L_PAREN)
10991    }
10992    #[inline]
10993    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10994        support::token(&self.syntax, SyntaxKind::R_PAREN)
10995    }
10996    #[inline]
10997    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
10998        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
10999    }
11000}
11001
11002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11003pub struct JsonSelectFormat {
11004    pub(crate) syntax: SyntaxNode,
11005}
11006impl JsonSelectFormat {
11007    #[inline]
11008    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11009        support::child(&self.syntax)
11010    }
11011    #[inline]
11012    pub fn select_variant(&self) -> Option<SelectVariant> {
11013        support::child(&self.syntax)
11014    }
11015}
11016
11017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11018pub struct JsonSerializeFn {
11019    pub(crate) syntax: SyntaxNode,
11020}
11021impl JsonSerializeFn {
11022    #[inline]
11023    pub fn expr(&self) -> Option<Expr> {
11024        support::child(&self.syntax)
11025    }
11026    #[inline]
11027    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11028        support::child(&self.syntax)
11029    }
11030    #[inline]
11031    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11032        support::child(&self.syntax)
11033    }
11034    #[inline]
11035    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11036        support::token(&self.syntax, SyntaxKind::L_PAREN)
11037    }
11038    #[inline]
11039    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11040        support::token(&self.syntax, SyntaxKind::R_PAREN)
11041    }
11042    #[inline]
11043    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
11044        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
11045    }
11046}
11047
11048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11049pub struct JsonTable {
11050    pub(crate) syntax: SyntaxNode,
11051}
11052impl JsonTable {
11053    #[inline]
11054    pub fn expr(&self) -> Option<Expr> {
11055        support::child(&self.syntax)
11056    }
11057    #[inline]
11058    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11059        support::child(&self.syntax)
11060    }
11061    #[inline]
11062    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11063        support::child(&self.syntax)
11064    }
11065    #[inline]
11066    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11067        support::child(&self.syntax)
11068    }
11069    #[inline]
11070    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11071        support::child(&self.syntax)
11072    }
11073    #[inline]
11074    pub fn name(&self) -> Option<Name> {
11075        support::child(&self.syntax)
11076    }
11077    #[inline]
11078    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11079        support::token(&self.syntax, SyntaxKind::L_PAREN)
11080    }
11081    #[inline]
11082    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11083        support::token(&self.syntax, SyntaxKind::R_PAREN)
11084    }
11085    #[inline]
11086    pub fn comma_token(&self) -> Option<SyntaxToken> {
11087        support::token(&self.syntax, SyntaxKind::COMMA)
11088    }
11089    #[inline]
11090    pub fn as_token(&self) -> Option<SyntaxToken> {
11091        support::token(&self.syntax, SyntaxKind::AS_KW)
11092    }
11093    #[inline]
11094    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11095        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11096    }
11097}
11098
11099#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11100pub struct JsonTableColumn {
11101    pub(crate) syntax: SyntaxNode,
11102}
11103impl JsonTableColumn {
11104    #[inline]
11105    pub fn expr(&self) -> Option<Expr> {
11106        support::child(&self.syntax)
11107    }
11108    #[inline]
11109    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11110        support::child(&self.syntax)
11111    }
11112    #[inline]
11113    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11114        support::child(&self.syntax)
11115    }
11116    #[inline]
11117    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11118        support::child(&self.syntax)
11119    }
11120    #[inline]
11121    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11122        support::child(&self.syntax)
11123    }
11124    #[inline]
11125    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11126        support::child(&self.syntax)
11127    }
11128    #[inline]
11129    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11130        support::child(&self.syntax)
11131    }
11132    #[inline]
11133    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11134        support::child(&self.syntax)
11135    }
11136    #[inline]
11137    pub fn name(&self) -> Option<Name> {
11138        support::child(&self.syntax)
11139    }
11140    #[inline]
11141    pub fn ty(&self) -> Option<Type> {
11142        support::child(&self.syntax)
11143    }
11144    #[inline]
11145    pub fn as_token(&self) -> Option<SyntaxToken> {
11146        support::token(&self.syntax, SyntaxKind::AS_KW)
11147    }
11148    #[inline]
11149    pub fn exists_token(&self) -> Option<SyntaxToken> {
11150        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11151    }
11152    #[inline]
11153    pub fn for_token(&self) -> Option<SyntaxToken> {
11154        support::token(&self.syntax, SyntaxKind::FOR_KW)
11155    }
11156    #[inline]
11157    pub fn nested_token(&self) -> Option<SyntaxToken> {
11158        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11159    }
11160    #[inline]
11161    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11162        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11163    }
11164    #[inline]
11165    pub fn path_token(&self) -> Option<SyntaxToken> {
11166        support::token(&self.syntax, SyntaxKind::PATH_KW)
11167    }
11168}
11169
11170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11171pub struct JsonTableColumnList {
11172    pub(crate) syntax: SyntaxNode,
11173}
11174impl JsonTableColumnList {
11175    #[inline]
11176    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11177        support::children(&self.syntax)
11178    }
11179    #[inline]
11180    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11181        support::token(&self.syntax, SyntaxKind::L_PAREN)
11182    }
11183    #[inline]
11184    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11185        support::token(&self.syntax, SyntaxKind::R_PAREN)
11186    }
11187    #[inline]
11188    pub fn columns_token(&self) -> Option<SyntaxToken> {
11189        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11190    }
11191}
11192
11193#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11194pub struct JsonValueExpr {
11195    pub(crate) syntax: SyntaxNode,
11196}
11197impl JsonValueExpr {
11198    #[inline]
11199    pub fn expr(&self) -> Option<Expr> {
11200        support::child(&self.syntax)
11201    }
11202    #[inline]
11203    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11204        support::child(&self.syntax)
11205    }
11206}
11207
11208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11209pub struct JsonValueFn {
11210    pub(crate) syntax: SyntaxNode,
11211}
11212impl JsonValueFn {
11213    #[inline]
11214    pub fn expr(&self) -> Option<Expr> {
11215        support::child(&self.syntax)
11216    }
11217    #[inline]
11218    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11219        support::child(&self.syntax)
11220    }
11221    #[inline]
11222    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11223        support::child(&self.syntax)
11224    }
11225    #[inline]
11226    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11227        support::child(&self.syntax)
11228    }
11229    #[inline]
11230    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11231        support::child(&self.syntax)
11232    }
11233    #[inline]
11234    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11235        support::token(&self.syntax, SyntaxKind::L_PAREN)
11236    }
11237    #[inline]
11238    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11239        support::token(&self.syntax, SyntaxKind::R_PAREN)
11240    }
11241    #[inline]
11242    pub fn comma_token(&self) -> Option<SyntaxToken> {
11243        support::token(&self.syntax, SyntaxKind::COMMA)
11244    }
11245    #[inline]
11246    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11247        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11248    }
11249}
11250
11251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11252pub struct JsonWrapperBehaviorClause {
11253    pub(crate) syntax: SyntaxNode,
11254}
11255impl JsonWrapperBehaviorClause {
11256    #[inline]
11257    pub fn array_token(&self) -> Option<SyntaxToken> {
11258        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11259    }
11260    #[inline]
11261    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11262        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11263    }
11264    #[inline]
11265    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11266        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11267    }
11268    #[inline]
11269    pub fn with_token(&self) -> Option<SyntaxToken> {
11270        support::token(&self.syntax, SyntaxKind::WITH_KW)
11271    }
11272    #[inline]
11273    pub fn without_token(&self) -> Option<SyntaxToken> {
11274        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11275    }
11276    #[inline]
11277    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11278        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11279    }
11280}
11281
11282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11283pub struct LabelAndProperties {
11284    pub(crate) syntax: SyntaxNode,
11285}
11286impl LabelAndProperties {
11287    #[inline]
11288    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11289        support::child(&self.syntax)
11290    }
11291    #[inline]
11292    pub fn name(&self) -> Option<Name> {
11293        support::child(&self.syntax)
11294    }
11295    #[inline]
11296    pub fn default_token(&self) -> Option<SyntaxToken> {
11297        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11298    }
11299    #[inline]
11300    pub fn label_token(&self) -> Option<SyntaxToken> {
11301        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11302    }
11303}
11304
11305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11306pub struct LabelAndPropertiesList {
11307    pub(crate) syntax: SyntaxNode,
11308}
11309impl LabelAndPropertiesList {
11310    #[inline]
11311    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11312        support::children(&self.syntax)
11313    }
11314}
11315
11316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11317pub struct LanguageFuncOption {
11318    pub(crate) syntax: SyntaxNode,
11319}
11320impl LanguageFuncOption {
11321    #[inline]
11322    pub fn name_ref(&self) -> Option<NameRef> {
11323        support::child(&self.syntax)
11324    }
11325    #[inline]
11326    pub fn language_token(&self) -> Option<SyntaxToken> {
11327        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11328    }
11329}
11330
11331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11332pub struct LeakproofFuncOption {
11333    pub(crate) syntax: SyntaxNode,
11334}
11335impl LeakproofFuncOption {
11336    #[inline]
11337    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11338        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11339    }
11340    #[inline]
11341    pub fn not_token(&self) -> Option<SyntaxToken> {
11342        support::token(&self.syntax, SyntaxKind::NOT_KW)
11343    }
11344}
11345
11346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11347pub struct LikeClause {
11348    pub(crate) syntax: SyntaxNode,
11349}
11350impl LikeClause {
11351    #[inline]
11352    pub fn like_options(&self) -> AstChildren<LikeOption> {
11353        support::children(&self.syntax)
11354    }
11355    #[inline]
11356    pub fn path(&self) -> Option<Path> {
11357        support::child(&self.syntax)
11358    }
11359    #[inline]
11360    pub fn like_token(&self) -> Option<SyntaxToken> {
11361        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11362    }
11363}
11364
11365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11366pub struct LikeOption {
11367    pub(crate) syntax: SyntaxNode,
11368}
11369impl LikeOption {
11370    #[inline]
11371    pub fn all_token(&self) -> Option<SyntaxToken> {
11372        support::token(&self.syntax, SyntaxKind::ALL_KW)
11373    }
11374    #[inline]
11375    pub fn comments_token(&self) -> Option<SyntaxToken> {
11376        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11377    }
11378    #[inline]
11379    pub fn compression_token(&self) -> Option<SyntaxToken> {
11380        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11381    }
11382    #[inline]
11383    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11384        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11385    }
11386    #[inline]
11387    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11388        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11389    }
11390    #[inline]
11391    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11392        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11393    }
11394    #[inline]
11395    pub fn generated_token(&self) -> Option<SyntaxToken> {
11396        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11397    }
11398    #[inline]
11399    pub fn identity_token(&self) -> Option<SyntaxToken> {
11400        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11401    }
11402    #[inline]
11403    pub fn including_token(&self) -> Option<SyntaxToken> {
11404        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11405    }
11406    #[inline]
11407    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11408        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11409    }
11410    #[inline]
11411    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11412        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11413    }
11414    #[inline]
11415    pub fn storage_token(&self) -> Option<SyntaxToken> {
11416        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11417    }
11418}
11419
11420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11421pub struct LimitClause {
11422    pub(crate) syntax: SyntaxNode,
11423}
11424impl LimitClause {
11425    #[inline]
11426    pub fn expr(&self) -> Option<Expr> {
11427        support::child(&self.syntax)
11428    }
11429    #[inline]
11430    pub fn all_token(&self) -> Option<SyntaxToken> {
11431        support::token(&self.syntax, SyntaxKind::ALL_KW)
11432    }
11433    #[inline]
11434    pub fn limit_token(&self) -> Option<SyntaxToken> {
11435        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11436    }
11437}
11438
11439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11440pub struct LimitToTables {
11441    pub(crate) syntax: SyntaxNode,
11442}
11443impl LimitToTables {
11444    #[inline]
11445    pub fn name_refs(&self) -> AstChildren<NameRef> {
11446        support::children(&self.syntax)
11447    }
11448    #[inline]
11449    pub fn limit_token(&self) -> Option<SyntaxToken> {
11450        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11451    }
11452    #[inline]
11453    pub fn to_token(&self) -> Option<SyntaxToken> {
11454        support::token(&self.syntax, SyntaxKind::TO_KW)
11455    }
11456}
11457
11458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11459pub struct Listen {
11460    pub(crate) syntax: SyntaxNode,
11461}
11462impl Listen {
11463    #[inline]
11464    pub fn name(&self) -> Option<Name> {
11465        support::child(&self.syntax)
11466    }
11467    #[inline]
11468    pub fn listen_token(&self) -> Option<SyntaxToken> {
11469        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
11470    }
11471}
11472
11473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11474pub struct Literal {
11475    pub(crate) syntax: SyntaxNode,
11476}
11477impl Literal {}
11478
11479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11480pub struct Load {
11481    pub(crate) syntax: SyntaxNode,
11482}
11483impl Load {
11484    #[inline]
11485    pub fn literal(&self) -> Option<Literal> {
11486        support::child(&self.syntax)
11487    }
11488    #[inline]
11489    pub fn load_token(&self) -> Option<SyntaxToken> {
11490        support::token(&self.syntax, SyntaxKind::LOAD_KW)
11491    }
11492}
11493
11494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11495pub struct Lock {
11496    pub(crate) syntax: SyntaxNode,
11497}
11498impl Lock {
11499    #[inline]
11500    pub fn table_list(&self) -> Option<TableList> {
11501        support::child(&self.syntax)
11502    }
11503    #[inline]
11504    pub fn lock_token(&self) -> Option<SyntaxToken> {
11505        support::token(&self.syntax, SyntaxKind::LOCK_KW)
11506    }
11507    #[inline]
11508    pub fn table_token(&self) -> Option<SyntaxToken> {
11509        support::token(&self.syntax, SyntaxKind::TABLE_KW)
11510    }
11511}
11512
11513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11514pub struct LockingClause {
11515    pub(crate) syntax: SyntaxNode,
11516}
11517impl LockingClause {
11518    #[inline]
11519    pub fn for_token(&self) -> Option<SyntaxToken> {
11520        support::token(&self.syntax, SyntaxKind::FOR_KW)
11521    }
11522}
11523
11524#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11525pub struct Lteq {
11526    pub(crate) syntax: SyntaxNode,
11527}
11528impl Lteq {
11529    #[inline]
11530    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11531        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11532    }
11533    #[inline]
11534    pub fn eq_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::EQ)
11536    }
11537}
11538
11539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11540pub struct MatchFull {
11541    pub(crate) syntax: SyntaxNode,
11542}
11543impl MatchFull {
11544    #[inline]
11545    pub fn full_token(&self) -> Option<SyntaxToken> {
11546        support::token(&self.syntax, SyntaxKind::FULL_KW)
11547    }
11548    #[inline]
11549    pub fn match_token(&self) -> Option<SyntaxToken> {
11550        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11551    }
11552}
11553
11554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11555pub struct MatchPartial {
11556    pub(crate) syntax: SyntaxNode,
11557}
11558impl MatchPartial {
11559    #[inline]
11560    pub fn match_token(&self) -> Option<SyntaxToken> {
11561        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11562    }
11563    #[inline]
11564    pub fn partial_token(&self) -> Option<SyntaxToken> {
11565        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
11566    }
11567}
11568
11569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11570pub struct MatchSimple {
11571    pub(crate) syntax: SyntaxNode,
11572}
11573impl MatchSimple {
11574    #[inline]
11575    pub fn match_token(&self) -> Option<SyntaxToken> {
11576        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11577    }
11578    #[inline]
11579    pub fn simple_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
11581    }
11582}
11583
11584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11585pub struct Materialized {
11586    pub(crate) syntax: SyntaxNode,
11587}
11588impl Materialized {
11589    #[inline]
11590    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11591        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11592    }
11593}
11594
11595#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11596pub struct Merge {
11597    pub(crate) syntax: SyntaxNode,
11598}
11599impl Merge {
11600    #[inline]
11601    pub fn alias(&self) -> Option<Alias> {
11602        support::child(&self.syntax)
11603    }
11604    #[inline]
11605    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
11606        support::children(&self.syntax)
11607    }
11608    #[inline]
11609    pub fn relation_name(&self) -> Option<RelationName> {
11610        support::child(&self.syntax)
11611    }
11612    #[inline]
11613    pub fn returning_clause(&self) -> Option<ReturningClause> {
11614        support::child(&self.syntax)
11615    }
11616    #[inline]
11617    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
11618        support::child(&self.syntax)
11619    }
11620    #[inline]
11621    pub fn with_clause(&self) -> Option<WithClause> {
11622        support::child(&self.syntax)
11623    }
11624    #[inline]
11625    pub fn into_token(&self) -> Option<SyntaxToken> {
11626        support::token(&self.syntax, SyntaxKind::INTO_KW)
11627    }
11628    #[inline]
11629    pub fn merge_token(&self) -> Option<SyntaxToken> {
11630        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11631    }
11632}
11633
11634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11635pub struct MergeDelete {
11636    pub(crate) syntax: SyntaxNode,
11637}
11638impl MergeDelete {
11639    #[inline]
11640    pub fn delete_token(&self) -> Option<SyntaxToken> {
11641        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11642    }
11643}
11644
11645#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11646pub struct MergeDoNothing {
11647    pub(crate) syntax: SyntaxNode,
11648}
11649impl MergeDoNothing {
11650    #[inline]
11651    pub fn do_token(&self) -> Option<SyntaxToken> {
11652        support::token(&self.syntax, SyntaxKind::DO_KW)
11653    }
11654    #[inline]
11655    pub fn nothing_token(&self) -> Option<SyntaxToken> {
11656        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
11657    }
11658}
11659
11660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11661pub struct MergeInsert {
11662    pub(crate) syntax: SyntaxNode,
11663}
11664impl MergeInsert {
11665    #[inline]
11666    pub fn column_list(&self) -> Option<ColumnList> {
11667        support::child(&self.syntax)
11668    }
11669    #[inline]
11670    pub fn values(&self) -> Option<Values> {
11671        support::child(&self.syntax)
11672    }
11673    #[inline]
11674    pub fn default_token(&self) -> Option<SyntaxToken> {
11675        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11676    }
11677    #[inline]
11678    pub fn insert_token(&self) -> Option<SyntaxToken> {
11679        support::token(&self.syntax, SyntaxKind::INSERT_KW)
11680    }
11681    #[inline]
11682    pub fn overriding_token(&self) -> Option<SyntaxToken> {
11683        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
11684    }
11685    #[inline]
11686    pub fn system_token(&self) -> Option<SyntaxToken> {
11687        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
11688    }
11689    #[inline]
11690    pub fn user_token(&self) -> Option<SyntaxToken> {
11691        support::token(&self.syntax, SyntaxKind::USER_KW)
11692    }
11693    #[inline]
11694    pub fn values_token(&self) -> Option<SyntaxToken> {
11695        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11696    }
11697}
11698
11699#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11700pub struct MergePartitions {
11701    pub(crate) syntax: SyntaxNode,
11702}
11703impl MergePartitions {
11704    #[inline]
11705    pub fn path(&self) -> Option<Path> {
11706        support::child(&self.syntax)
11707    }
11708    #[inline]
11709    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11710        support::token(&self.syntax, SyntaxKind::L_PAREN)
11711    }
11712    #[inline]
11713    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11714        support::token(&self.syntax, SyntaxKind::R_PAREN)
11715    }
11716    #[inline]
11717    pub fn into_token(&self) -> Option<SyntaxToken> {
11718        support::token(&self.syntax, SyntaxKind::INTO_KW)
11719    }
11720    #[inline]
11721    pub fn merge_token(&self) -> Option<SyntaxToken> {
11722        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11723    }
11724    #[inline]
11725    pub fn partitions_token(&self) -> Option<SyntaxToken> {
11726        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
11727    }
11728}
11729
11730#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11731pub struct MergeUpdate {
11732    pub(crate) syntax: SyntaxNode,
11733}
11734impl MergeUpdate {
11735    #[inline]
11736    pub fn set_clause(&self) -> Option<SetClause> {
11737        support::child(&self.syntax)
11738    }
11739    #[inline]
11740    pub fn set_token(&self) -> Option<SyntaxToken> {
11741        support::token(&self.syntax, SyntaxKind::SET_KW)
11742    }
11743    #[inline]
11744    pub fn update_token(&self) -> Option<SyntaxToken> {
11745        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11746    }
11747}
11748
11749#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11750pub struct MergeWhenMatched {
11751    pub(crate) syntax: SyntaxNode,
11752}
11753impl MergeWhenMatched {
11754    #[inline]
11755    pub fn expr(&self) -> Option<Expr> {
11756        support::child(&self.syntax)
11757    }
11758    #[inline]
11759    pub fn merge_action(&self) -> Option<MergeAction> {
11760        support::child(&self.syntax)
11761    }
11762    #[inline]
11763    pub fn and_token(&self) -> Option<SyntaxToken> {
11764        support::token(&self.syntax, SyntaxKind::AND_KW)
11765    }
11766    #[inline]
11767    pub fn matched_token(&self) -> Option<SyntaxToken> {
11768        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11769    }
11770    #[inline]
11771    pub fn then_token(&self) -> Option<SyntaxToken> {
11772        support::token(&self.syntax, SyntaxKind::THEN_KW)
11773    }
11774    #[inline]
11775    pub fn when_token(&self) -> Option<SyntaxToken> {
11776        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11777    }
11778}
11779
11780#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11781pub struct MergeWhenNotMatchedSource {
11782    pub(crate) syntax: SyntaxNode,
11783}
11784impl MergeWhenNotMatchedSource {
11785    #[inline]
11786    pub fn expr(&self) -> Option<Expr> {
11787        support::child(&self.syntax)
11788    }
11789    #[inline]
11790    pub fn merge_action(&self) -> Option<MergeAction> {
11791        support::child(&self.syntax)
11792    }
11793    #[inline]
11794    pub fn and_token(&self) -> Option<SyntaxToken> {
11795        support::token(&self.syntax, SyntaxKind::AND_KW)
11796    }
11797    #[inline]
11798    pub fn by_token(&self) -> Option<SyntaxToken> {
11799        support::token(&self.syntax, SyntaxKind::BY_KW)
11800    }
11801    #[inline]
11802    pub fn matched_token(&self) -> Option<SyntaxToken> {
11803        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11804    }
11805    #[inline]
11806    pub fn not_token(&self) -> Option<SyntaxToken> {
11807        support::token(&self.syntax, SyntaxKind::NOT_KW)
11808    }
11809    #[inline]
11810    pub fn source_token(&self) -> Option<SyntaxToken> {
11811        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
11812    }
11813    #[inline]
11814    pub fn then_token(&self) -> Option<SyntaxToken> {
11815        support::token(&self.syntax, SyntaxKind::THEN_KW)
11816    }
11817    #[inline]
11818    pub fn when_token(&self) -> Option<SyntaxToken> {
11819        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11820    }
11821}
11822
11823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11824pub struct MergeWhenNotMatchedTarget {
11825    pub(crate) syntax: SyntaxNode,
11826}
11827impl MergeWhenNotMatchedTarget {
11828    #[inline]
11829    pub fn expr(&self) -> Option<Expr> {
11830        support::child(&self.syntax)
11831    }
11832    #[inline]
11833    pub fn merge_action(&self) -> Option<MergeAction> {
11834        support::child(&self.syntax)
11835    }
11836    #[inline]
11837    pub fn and_token(&self) -> Option<SyntaxToken> {
11838        support::token(&self.syntax, SyntaxKind::AND_KW)
11839    }
11840    #[inline]
11841    pub fn by_token(&self) -> Option<SyntaxToken> {
11842        support::token(&self.syntax, SyntaxKind::BY_KW)
11843    }
11844    #[inline]
11845    pub fn matched_token(&self) -> Option<SyntaxToken> {
11846        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11847    }
11848    #[inline]
11849    pub fn not_token(&self) -> Option<SyntaxToken> {
11850        support::token(&self.syntax, SyntaxKind::NOT_KW)
11851    }
11852    #[inline]
11853    pub fn target_token(&self) -> Option<SyntaxToken> {
11854        support::token(&self.syntax, SyntaxKind::TARGET_KW)
11855    }
11856    #[inline]
11857    pub fn then_token(&self) -> Option<SyntaxToken> {
11858        support::token(&self.syntax, SyntaxKind::THEN_KW)
11859    }
11860    #[inline]
11861    pub fn when_token(&self) -> Option<SyntaxToken> {
11862        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11863    }
11864}
11865
11866#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11867pub struct Move {
11868    pub(crate) syntax: SyntaxNode,
11869}
11870impl Move {
11871    #[inline]
11872    pub fn name_ref(&self) -> Option<NameRef> {
11873        support::child(&self.syntax)
11874    }
11875    #[inline]
11876    pub fn from_token(&self) -> Option<SyntaxToken> {
11877        support::token(&self.syntax, SyntaxKind::FROM_KW)
11878    }
11879    #[inline]
11880    pub fn in_token(&self) -> Option<SyntaxToken> {
11881        support::token(&self.syntax, SyntaxKind::IN_KW)
11882    }
11883    #[inline]
11884    pub fn move_token(&self) -> Option<SyntaxToken> {
11885        support::token(&self.syntax, SyntaxKind::MOVE_KW)
11886    }
11887}
11888
11889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11890pub struct Name {
11891    pub(crate) syntax: SyntaxNode,
11892}
11893impl Name {
11894    #[inline]
11895    pub fn ident_token(&self) -> Option<SyntaxToken> {
11896        support::token(&self.syntax, SyntaxKind::IDENT)
11897    }
11898}
11899
11900#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11901pub struct NameRef {
11902    pub(crate) syntax: SyntaxNode,
11903}
11904impl NameRef {
11905    #[inline]
11906    pub fn ident_token(&self) -> Option<SyntaxToken> {
11907        support::token(&self.syntax, SyntaxKind::IDENT)
11908    }
11909}
11910
11911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11912pub struct NamedArg {
11913    pub(crate) syntax: SyntaxNode,
11914}
11915impl NamedArg {
11916    #[inline]
11917    pub fn expr(&self) -> Option<Expr> {
11918        support::child(&self.syntax)
11919    }
11920    #[inline]
11921    pub fn fat_arrow(&self) -> Option<FatArrow> {
11922        support::child(&self.syntax)
11923    }
11924    #[inline]
11925    pub fn name_ref(&self) -> Option<NameRef> {
11926        support::child(&self.syntax)
11927    }
11928}
11929
11930#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11931pub struct Neq {
11932    pub(crate) syntax: SyntaxNode,
11933}
11934impl Neq {
11935    #[inline]
11936    pub fn bang_token(&self) -> Option<SyntaxToken> {
11937        support::token(&self.syntax, SyntaxKind::BANG)
11938    }
11939    #[inline]
11940    pub fn eq_token(&self) -> Option<SyntaxToken> {
11941        support::token(&self.syntax, SyntaxKind::EQ)
11942    }
11943}
11944
11945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11946pub struct Neqb {
11947    pub(crate) syntax: SyntaxNode,
11948}
11949impl Neqb {
11950    #[inline]
11951    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11952        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11953    }
11954    #[inline]
11955    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11956        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11957    }
11958}
11959
11960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11961pub struct NoAction {
11962    pub(crate) syntax: SyntaxNode,
11963}
11964impl NoAction {
11965    #[inline]
11966    pub fn action_token(&self) -> Option<SyntaxToken> {
11967        support::token(&self.syntax, SyntaxKind::ACTION_KW)
11968    }
11969    #[inline]
11970    pub fn no_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::NO_KW)
11972    }
11973}
11974
11975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11976pub struct NoDependsOnExtension {
11977    pub(crate) syntax: SyntaxNode,
11978}
11979impl NoDependsOnExtension {
11980    #[inline]
11981    pub fn name_ref(&self) -> Option<NameRef> {
11982        support::child(&self.syntax)
11983    }
11984    #[inline]
11985    pub fn depends_token(&self) -> Option<SyntaxToken> {
11986        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
11987    }
11988    #[inline]
11989    pub fn extension_token(&self) -> Option<SyntaxToken> {
11990        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
11991    }
11992    #[inline]
11993    pub fn no_token(&self) -> Option<SyntaxToken> {
11994        support::token(&self.syntax, SyntaxKind::NO_KW)
11995    }
11996    #[inline]
11997    pub fn on_token(&self) -> Option<SyntaxToken> {
11998        support::token(&self.syntax, SyntaxKind::ON_KW)
11999    }
12000}
12001
12002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12003pub struct NoForceRls {
12004    pub(crate) syntax: SyntaxNode,
12005}
12006impl NoForceRls {
12007    #[inline]
12008    pub fn force_token(&self) -> Option<SyntaxToken> {
12009        support::token(&self.syntax, SyntaxKind::FORCE_KW)
12010    }
12011    #[inline]
12012    pub fn level_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12014    }
12015    #[inline]
12016    pub fn no_token(&self) -> Option<SyntaxToken> {
12017        support::token(&self.syntax, SyntaxKind::NO_KW)
12018    }
12019    #[inline]
12020    pub fn row_token(&self) -> Option<SyntaxToken> {
12021        support::token(&self.syntax, SyntaxKind::ROW_KW)
12022    }
12023    #[inline]
12024    pub fn security_token(&self) -> Option<SyntaxToken> {
12025        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
12026    }
12027}
12028
12029#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12030pub struct NoInherit {
12031    pub(crate) syntax: SyntaxNode,
12032}
12033impl NoInherit {
12034    #[inline]
12035    pub fn path(&self) -> Option<Path> {
12036        support::child(&self.syntax)
12037    }
12038    #[inline]
12039    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12040        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12041    }
12042    #[inline]
12043    pub fn no_token(&self) -> Option<SyntaxToken> {
12044        support::token(&self.syntax, SyntaxKind::NO_KW)
12045    }
12046}
12047
12048#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12049pub struct NoInheritTable {
12050    pub(crate) syntax: SyntaxNode,
12051}
12052impl NoInheritTable {
12053    #[inline]
12054    pub fn path(&self) -> Option<Path> {
12055        support::child(&self.syntax)
12056    }
12057    #[inline]
12058    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12059        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12060    }
12061    #[inline]
12062    pub fn no_token(&self) -> Option<SyntaxToken> {
12063        support::token(&self.syntax, SyntaxKind::NO_KW)
12064    }
12065}
12066
12067#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12068pub struct NoProperties {
12069    pub(crate) syntax: SyntaxNode,
12070}
12071impl NoProperties {
12072    #[inline]
12073    pub fn no_token(&self) -> Option<SyntaxToken> {
12074        support::token(&self.syntax, SyntaxKind::NO_KW)
12075    }
12076    #[inline]
12077    pub fn properties_token(&self) -> Option<SyntaxToken> {
12078        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12079    }
12080}
12081
12082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12083pub struct NonStandardParam {
12084    pub(crate) syntax: SyntaxNode,
12085}
12086impl NonStandardParam {
12087    #[inline]
12088    pub fn name_ref(&self) -> Option<NameRef> {
12089        support::child(&self.syntax)
12090    }
12091    #[inline]
12092    pub fn colon_token(&self) -> Option<SyntaxToken> {
12093        support::token(&self.syntax, SyntaxKind::COLON)
12094    }
12095}
12096
12097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12098pub struct NotDeferrable {
12099    pub(crate) syntax: SyntaxNode,
12100}
12101impl NotDeferrable {
12102    #[inline]
12103    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12104        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12105    }
12106    #[inline]
12107    pub fn not_token(&self) -> Option<SyntaxToken> {
12108        support::token(&self.syntax, SyntaxKind::NOT_KW)
12109    }
12110}
12111
12112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12113pub struct NotDeferrableConstraintOption {
12114    pub(crate) syntax: SyntaxNode,
12115}
12116impl NotDeferrableConstraintOption {
12117    #[inline]
12118    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12119        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
12120    }
12121    #[inline]
12122    pub fn not_token(&self) -> Option<SyntaxToken> {
12123        support::token(&self.syntax, SyntaxKind::NOT_KW)
12124    }
12125}
12126
12127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12128pub struct NotEnforced {
12129    pub(crate) syntax: SyntaxNode,
12130}
12131impl NotEnforced {
12132    #[inline]
12133    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12134        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
12135    }
12136    #[inline]
12137    pub fn not_token(&self) -> Option<SyntaxToken> {
12138        support::token(&self.syntax, SyntaxKind::NOT_KW)
12139    }
12140}
12141
12142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12143pub struct NotIlike {
12144    pub(crate) syntax: SyntaxNode,
12145}
12146impl NotIlike {
12147    #[inline]
12148    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12149        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12150    }
12151    #[inline]
12152    pub fn not_token(&self) -> Option<SyntaxToken> {
12153        support::token(&self.syntax, SyntaxKind::NOT_KW)
12154    }
12155}
12156
12157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12158pub struct NotIn {
12159    pub(crate) syntax: SyntaxNode,
12160}
12161impl NotIn {
12162    #[inline]
12163    pub fn in_token(&self) -> Option<SyntaxToken> {
12164        support::token(&self.syntax, SyntaxKind::IN_KW)
12165    }
12166    #[inline]
12167    pub fn not_token(&self) -> Option<SyntaxToken> {
12168        support::token(&self.syntax, SyntaxKind::NOT_KW)
12169    }
12170}
12171
12172#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12173pub struct NotLike {
12174    pub(crate) syntax: SyntaxNode,
12175}
12176impl NotLike {
12177    #[inline]
12178    pub fn like_token(&self) -> Option<SyntaxToken> {
12179        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12180    }
12181    #[inline]
12182    pub fn not_token(&self) -> Option<SyntaxToken> {
12183        support::token(&self.syntax, SyntaxKind::NOT_KW)
12184    }
12185}
12186
12187#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12188pub struct NotMaterialized {
12189    pub(crate) syntax: SyntaxNode,
12190}
12191impl NotMaterialized {
12192    #[inline]
12193    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12194        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12195    }
12196    #[inline]
12197    pub fn not_token(&self) -> Option<SyntaxToken> {
12198        support::token(&self.syntax, SyntaxKind::NOT_KW)
12199    }
12200}
12201
12202#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12203pub struct NotNullConstraint {
12204    pub(crate) syntax: SyntaxNode,
12205}
12206impl NotNullConstraint {
12207    #[inline]
12208    pub fn name_ref(&self) -> Option<NameRef> {
12209        support::child(&self.syntax)
12210    }
12211    #[inline]
12212    pub fn no_inherit(&self) -> Option<NoInherit> {
12213        support::child(&self.syntax)
12214    }
12215    #[inline]
12216    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12217        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12218    }
12219    #[inline]
12220    pub fn not_token(&self) -> Option<SyntaxToken> {
12221        support::token(&self.syntax, SyntaxKind::NOT_KW)
12222    }
12223    #[inline]
12224    pub fn null_token(&self) -> Option<SyntaxToken> {
12225        support::token(&self.syntax, SyntaxKind::NULL_KW)
12226    }
12227}
12228
12229#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12230pub struct NotOf {
12231    pub(crate) syntax: SyntaxNode,
12232}
12233impl NotOf {
12234    #[inline]
12235    pub fn not_token(&self) -> Option<SyntaxToken> {
12236        support::token(&self.syntax, SyntaxKind::NOT_KW)
12237    }
12238    #[inline]
12239    pub fn of_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::OF_KW)
12241    }
12242}
12243
12244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12245pub struct NotSimilarTo {
12246    pub(crate) syntax: SyntaxNode,
12247}
12248impl NotSimilarTo {
12249    #[inline]
12250    pub fn not_token(&self) -> Option<SyntaxToken> {
12251        support::token(&self.syntax, SyntaxKind::NOT_KW)
12252    }
12253    #[inline]
12254    pub fn similar_token(&self) -> Option<SyntaxToken> {
12255        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12256    }
12257    #[inline]
12258    pub fn to_token(&self) -> Option<SyntaxToken> {
12259        support::token(&self.syntax, SyntaxKind::TO_KW)
12260    }
12261}
12262
12263#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12264pub struct NotValid {
12265    pub(crate) syntax: SyntaxNode,
12266}
12267impl NotValid {
12268    #[inline]
12269    pub fn not_token(&self) -> Option<SyntaxToken> {
12270        support::token(&self.syntax, SyntaxKind::NOT_KW)
12271    }
12272    #[inline]
12273    pub fn valid_token(&self) -> Option<SyntaxToken> {
12274        support::token(&self.syntax, SyntaxKind::VALID_KW)
12275    }
12276}
12277
12278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12279pub struct Notify {
12280    pub(crate) syntax: SyntaxNode,
12281}
12282impl Notify {
12283    #[inline]
12284    pub fn literal(&self) -> Option<Literal> {
12285        support::child(&self.syntax)
12286    }
12287    #[inline]
12288    pub fn name_ref(&self) -> Option<NameRef> {
12289        support::child(&self.syntax)
12290    }
12291    #[inline]
12292    pub fn comma_token(&self) -> Option<SyntaxToken> {
12293        support::token(&self.syntax, SyntaxKind::COMMA)
12294    }
12295    #[inline]
12296    pub fn notify_token(&self) -> Option<SyntaxToken> {
12297        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12298    }
12299}
12300
12301#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12302pub struct NullConstraint {
12303    pub(crate) syntax: SyntaxNode,
12304}
12305impl NullConstraint {
12306    #[inline]
12307    pub fn name_ref(&self) -> Option<NameRef> {
12308        support::child(&self.syntax)
12309    }
12310    #[inline]
12311    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12312        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12313    }
12314    #[inline]
12315    pub fn null_token(&self) -> Option<SyntaxToken> {
12316        support::token(&self.syntax, SyntaxKind::NULL_KW)
12317    }
12318}
12319
12320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12321pub struct NullsDistinct {
12322    pub(crate) syntax: SyntaxNode,
12323}
12324impl NullsDistinct {
12325    #[inline]
12326    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12327        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12328    }
12329    #[inline]
12330    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12331        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12332    }
12333}
12334
12335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12336pub struct NullsFirst {
12337    pub(crate) syntax: SyntaxNode,
12338}
12339impl NullsFirst {
12340    #[inline]
12341    pub fn first_token(&self) -> Option<SyntaxToken> {
12342        support::token(&self.syntax, SyntaxKind::FIRST_KW)
12343    }
12344    #[inline]
12345    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12346        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12347    }
12348}
12349
12350#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12351pub struct NullsLast {
12352    pub(crate) syntax: SyntaxNode,
12353}
12354impl NullsLast {
12355    #[inline]
12356    pub fn last_token(&self) -> Option<SyntaxToken> {
12357        support::token(&self.syntax, SyntaxKind::LAST_KW)
12358    }
12359    #[inline]
12360    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12361        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12362    }
12363}
12364
12365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12366pub struct NullsNotDistinct {
12367    pub(crate) syntax: SyntaxNode,
12368}
12369impl NullsNotDistinct {
12370    #[inline]
12371    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12372        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12373    }
12374    #[inline]
12375    pub fn not_token(&self) -> Option<SyntaxToken> {
12376        support::token(&self.syntax, SyntaxKind::NOT_KW)
12377    }
12378    #[inline]
12379    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12380        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12381    }
12382}
12383
12384#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12385pub struct OfType {
12386    pub(crate) syntax: SyntaxNode,
12387}
12388impl OfType {
12389    #[inline]
12390    pub fn ty(&self) -> Option<Type> {
12391        support::child(&self.syntax)
12392    }
12393    #[inline]
12394    pub fn of_token(&self) -> Option<SyntaxToken> {
12395        support::token(&self.syntax, SyntaxKind::OF_KW)
12396    }
12397}
12398
12399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12400pub struct OffsetClause {
12401    pub(crate) syntax: SyntaxNode,
12402}
12403impl OffsetClause {
12404    #[inline]
12405    pub fn expr(&self) -> Option<Expr> {
12406        support::child(&self.syntax)
12407    }
12408    #[inline]
12409    pub fn offset_token(&self) -> Option<SyntaxToken> {
12410        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12411    }
12412    #[inline]
12413    pub fn row_token(&self) -> Option<SyntaxToken> {
12414        support::token(&self.syntax, SyntaxKind::ROW_KW)
12415    }
12416    #[inline]
12417    pub fn rows_token(&self) -> Option<SyntaxToken> {
12418        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12419    }
12420}
12421
12422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12423pub struct OnClause {
12424    pub(crate) syntax: SyntaxNode,
12425}
12426impl OnClause {
12427    #[inline]
12428    pub fn expr(&self) -> Option<Expr> {
12429        support::child(&self.syntax)
12430    }
12431    #[inline]
12432    pub fn on_token(&self) -> Option<SyntaxToken> {
12433        support::token(&self.syntax, SyntaxKind::ON_KW)
12434    }
12435}
12436
12437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12438pub struct OnCommit {
12439    pub(crate) syntax: SyntaxNode,
12440}
12441impl OnCommit {
12442    #[inline]
12443    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
12444        support::child(&self.syntax)
12445    }
12446    #[inline]
12447    pub fn commit_token(&self) -> Option<SyntaxToken> {
12448        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
12449    }
12450    #[inline]
12451    pub fn on_token(&self) -> Option<SyntaxToken> {
12452        support::token(&self.syntax, SyntaxKind::ON_KW)
12453    }
12454}
12455
12456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12457pub struct OnConflictClause {
12458    pub(crate) syntax: SyntaxNode,
12459}
12460impl OnConflictClause {
12461    #[inline]
12462    pub fn conflict_action(&self) -> Option<ConflictAction> {
12463        support::child(&self.syntax)
12464    }
12465    #[inline]
12466    pub fn conflict_target(&self) -> Option<ConflictTarget> {
12467        support::child(&self.syntax)
12468    }
12469    #[inline]
12470    pub fn conflict_token(&self) -> Option<SyntaxToken> {
12471        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
12472    }
12473    #[inline]
12474    pub fn on_token(&self) -> Option<SyntaxToken> {
12475        support::token(&self.syntax, SyntaxKind::ON_KW)
12476    }
12477}
12478
12479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12480pub struct OnDeleteAction {
12481    pub(crate) syntax: SyntaxNode,
12482}
12483impl OnDeleteAction {
12484    #[inline]
12485    pub fn ref_action(&self) -> Option<RefAction> {
12486        support::child(&self.syntax)
12487    }
12488    #[inline]
12489    pub fn delete_token(&self) -> Option<SyntaxToken> {
12490        support::token(&self.syntax, SyntaxKind::DELETE_KW)
12491    }
12492    #[inline]
12493    pub fn on_token(&self) -> Option<SyntaxToken> {
12494        support::token(&self.syntax, SyntaxKind::ON_KW)
12495    }
12496}
12497
12498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12499pub struct OnTable {
12500    pub(crate) syntax: SyntaxNode,
12501}
12502impl OnTable {
12503    #[inline]
12504    pub fn path(&self) -> Option<Path> {
12505        support::child(&self.syntax)
12506    }
12507    #[inline]
12508    pub fn on_token(&self) -> Option<SyntaxToken> {
12509        support::token(&self.syntax, SyntaxKind::ON_KW)
12510    }
12511}
12512
12513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12514pub struct OnUpdateAction {
12515    pub(crate) syntax: SyntaxNode,
12516}
12517impl OnUpdateAction {
12518    #[inline]
12519    pub fn ref_action(&self) -> Option<RefAction> {
12520        support::child(&self.syntax)
12521    }
12522    #[inline]
12523    pub fn on_token(&self) -> Option<SyntaxToken> {
12524        support::token(&self.syntax, SyntaxKind::ON_KW)
12525    }
12526    #[inline]
12527    pub fn update_token(&self) -> Option<SyntaxToken> {
12528        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12529    }
12530}
12531
12532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12533pub struct Op {
12534    pub(crate) syntax: SyntaxNode,
12535}
12536impl Op {
12537    #[inline]
12538    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
12539        support::child(&self.syntax)
12540    }
12541    #[inline]
12542    pub fn colon_colon(&self) -> Option<ColonColon> {
12543        support::child(&self.syntax)
12544    }
12545    #[inline]
12546    pub fn colon_eq(&self) -> Option<ColonEq> {
12547        support::child(&self.syntax)
12548    }
12549    #[inline]
12550    pub fn custom_op(&self) -> Option<CustomOp> {
12551        support::child(&self.syntax)
12552    }
12553    #[inline]
12554    pub fn fat_arrow(&self) -> Option<FatArrow> {
12555        support::child(&self.syntax)
12556    }
12557    #[inline]
12558    pub fn gteq(&self) -> Option<Gteq> {
12559        support::child(&self.syntax)
12560    }
12561    #[inline]
12562    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
12563        support::child(&self.syntax)
12564    }
12565    #[inline]
12566    pub fn is_json(&self) -> Option<IsJson> {
12567        support::child(&self.syntax)
12568    }
12569    #[inline]
12570    pub fn is_json_array(&self) -> Option<IsJsonArray> {
12571        support::child(&self.syntax)
12572    }
12573    #[inline]
12574    pub fn is_json_object(&self) -> Option<IsJsonObject> {
12575        support::child(&self.syntax)
12576    }
12577    #[inline]
12578    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
12579        support::child(&self.syntax)
12580    }
12581    #[inline]
12582    pub fn is_json_value(&self) -> Option<IsJsonValue> {
12583        support::child(&self.syntax)
12584    }
12585    #[inline]
12586    pub fn is_normalized(&self) -> Option<IsNormalized> {
12587        support::child(&self.syntax)
12588    }
12589    #[inline]
12590    pub fn is_not(&self) -> Option<IsNot> {
12591        support::child(&self.syntax)
12592    }
12593    #[inline]
12594    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
12595        support::child(&self.syntax)
12596    }
12597    #[inline]
12598    pub fn is_not_json(&self) -> Option<IsNotJson> {
12599        support::child(&self.syntax)
12600    }
12601    #[inline]
12602    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
12603        support::child(&self.syntax)
12604    }
12605    #[inline]
12606    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
12607        support::child(&self.syntax)
12608    }
12609    #[inline]
12610    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
12611        support::child(&self.syntax)
12612    }
12613    #[inline]
12614    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
12615        support::child(&self.syntax)
12616    }
12617    #[inline]
12618    pub fn is_not_normalized(&self) -> Option<IsNotNormalized> {
12619        support::child(&self.syntax)
12620    }
12621    #[inline]
12622    pub fn lteq(&self) -> Option<Lteq> {
12623        support::child(&self.syntax)
12624    }
12625    #[inline]
12626    pub fn neq(&self) -> Option<Neq> {
12627        support::child(&self.syntax)
12628    }
12629    #[inline]
12630    pub fn neqb(&self) -> Option<Neqb> {
12631        support::child(&self.syntax)
12632    }
12633    #[inline]
12634    pub fn not_ilike(&self) -> Option<NotIlike> {
12635        support::child(&self.syntax)
12636    }
12637    #[inline]
12638    pub fn not_in(&self) -> Option<NotIn> {
12639        support::child(&self.syntax)
12640    }
12641    #[inline]
12642    pub fn not_like(&self) -> Option<NotLike> {
12643        support::child(&self.syntax)
12644    }
12645    #[inline]
12646    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
12647        support::child(&self.syntax)
12648    }
12649    #[inline]
12650    pub fn operator_call(&self) -> Option<OperatorCall> {
12651        support::child(&self.syntax)
12652    }
12653    #[inline]
12654    pub fn similar_to(&self) -> Option<SimilarTo> {
12655        support::child(&self.syntax)
12656    }
12657    #[inline]
12658    pub fn percent_token(&self) -> Option<SyntaxToken> {
12659        support::token(&self.syntax, SyntaxKind::PERCENT)
12660    }
12661    #[inline]
12662    pub fn plus_token(&self) -> Option<SyntaxToken> {
12663        support::token(&self.syntax, SyntaxKind::PLUS)
12664    }
12665    #[inline]
12666    pub fn minus_token(&self) -> Option<SyntaxToken> {
12667        support::token(&self.syntax, SyntaxKind::MINUS)
12668    }
12669    #[inline]
12670    pub fn slash_token(&self) -> Option<SyntaxToken> {
12671        support::token(&self.syntax, SyntaxKind::SLASH)
12672    }
12673    #[inline]
12674    pub fn colon_token(&self) -> Option<SyntaxToken> {
12675        support::token(&self.syntax, SyntaxKind::COLON)
12676    }
12677    #[inline]
12678    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12679        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12680    }
12681    #[inline]
12682    pub fn eq_token(&self) -> Option<SyntaxToken> {
12683        support::token(&self.syntax, SyntaxKind::EQ)
12684    }
12685    #[inline]
12686    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12687        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12688    }
12689    #[inline]
12690    pub fn caret_token(&self) -> Option<SyntaxToken> {
12691        support::token(&self.syntax, SyntaxKind::CARET)
12692    }
12693    #[inline]
12694    pub fn and_token(&self) -> Option<SyntaxToken> {
12695        support::token(&self.syntax, SyntaxKind::AND_KW)
12696    }
12697    #[inline]
12698    pub fn collate_token(&self) -> Option<SyntaxToken> {
12699        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
12700    }
12701    #[inline]
12702    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12703        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12704    }
12705    #[inline]
12706    pub fn in_token(&self) -> Option<SyntaxToken> {
12707        support::token(&self.syntax, SyntaxKind::IN_KW)
12708    }
12709    #[inline]
12710    pub fn is_token(&self) -> Option<SyntaxToken> {
12711        support::token(&self.syntax, SyntaxKind::IS_KW)
12712    }
12713    #[inline]
12714    pub fn isnull_token(&self) -> Option<SyntaxToken> {
12715        support::token(&self.syntax, SyntaxKind::ISNULL_KW)
12716    }
12717    #[inline]
12718    pub fn like_token(&self) -> Option<SyntaxToken> {
12719        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12720    }
12721    #[inline]
12722    pub fn or_token(&self) -> Option<SyntaxToken> {
12723        support::token(&self.syntax, SyntaxKind::OR_KW)
12724    }
12725    #[inline]
12726    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
12727        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
12728    }
12729    #[inline]
12730    pub fn value_token(&self) -> Option<SyntaxToken> {
12731        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12732    }
12733}
12734
12735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12736pub struct OpClassOption {
12737    pub(crate) syntax: SyntaxNode,
12738}
12739impl OpClassOption {
12740    #[inline]
12741    pub fn function_sig(&self) -> Option<FunctionSig> {
12742        support::child(&self.syntax)
12743    }
12744    #[inline]
12745    pub fn literal(&self) -> Option<Literal> {
12746        support::child(&self.syntax)
12747    }
12748    #[inline]
12749    pub fn op(&self) -> Option<Op> {
12750        support::child(&self.syntax)
12751    }
12752    #[inline]
12753    pub fn param_list(&self) -> Option<ParamList> {
12754        support::child(&self.syntax)
12755    }
12756    #[inline]
12757    pub fn path(&self) -> Option<Path> {
12758        support::child(&self.syntax)
12759    }
12760    #[inline]
12761    pub fn ty(&self) -> Option<Type> {
12762        support::child(&self.syntax)
12763    }
12764    #[inline]
12765    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12766        support::token(&self.syntax, SyntaxKind::L_PAREN)
12767    }
12768    #[inline]
12769    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12770        support::token(&self.syntax, SyntaxKind::R_PAREN)
12771    }
12772    #[inline]
12773    pub fn comma_token(&self) -> Option<SyntaxToken> {
12774        support::token(&self.syntax, SyntaxKind::COMMA)
12775    }
12776    #[inline]
12777    pub fn by_token(&self) -> Option<SyntaxToken> {
12778        support::token(&self.syntax, SyntaxKind::BY_KW)
12779    }
12780    #[inline]
12781    pub fn for_token(&self) -> Option<SyntaxToken> {
12782        support::token(&self.syntax, SyntaxKind::FOR_KW)
12783    }
12784    #[inline]
12785    pub fn function_token(&self) -> Option<SyntaxToken> {
12786        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
12787    }
12788    #[inline]
12789    pub fn operator_token(&self) -> Option<SyntaxToken> {
12790        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12791    }
12792    #[inline]
12793    pub fn order_token(&self) -> Option<SyntaxToken> {
12794        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12795    }
12796    #[inline]
12797    pub fn search_token(&self) -> Option<SyntaxToken> {
12798        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
12799    }
12800    #[inline]
12801    pub fn storage_token(&self) -> Option<SyntaxToken> {
12802        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
12803    }
12804}
12805
12806#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12807pub struct OpSig {
12808    pub(crate) syntax: SyntaxNode,
12809}
12810impl OpSig {
12811    #[inline]
12812    pub fn op(&self) -> Option<Op> {
12813        support::child(&self.syntax)
12814    }
12815    #[inline]
12816    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12817        support::token(&self.syntax, SyntaxKind::L_PAREN)
12818    }
12819    #[inline]
12820    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12821        support::token(&self.syntax, SyntaxKind::R_PAREN)
12822    }
12823    #[inline]
12824    pub fn comma_token(&self) -> Option<SyntaxToken> {
12825        support::token(&self.syntax, SyntaxKind::COMMA)
12826    }
12827    #[inline]
12828    pub fn none_token(&self) -> Option<SyntaxToken> {
12829        support::token(&self.syntax, SyntaxKind::NONE_KW)
12830    }
12831}
12832
12833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12834pub struct OpSigList {
12835    pub(crate) syntax: SyntaxNode,
12836}
12837impl OpSigList {
12838    #[inline]
12839    pub fn op_sigs(&self) -> AstChildren<OpSig> {
12840        support::children(&self.syntax)
12841    }
12842}
12843
12844#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12845pub struct OperatorCall {
12846    pub(crate) syntax: SyntaxNode,
12847}
12848impl OperatorCall {
12849    #[inline]
12850    pub fn op(&self) -> Option<Op> {
12851        support::child(&self.syntax)
12852    }
12853    #[inline]
12854    pub fn path(&self) -> Option<Path> {
12855        support::child(&self.syntax)
12856    }
12857    #[inline]
12858    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12859        support::token(&self.syntax, SyntaxKind::L_PAREN)
12860    }
12861    #[inline]
12862    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12863        support::token(&self.syntax, SyntaxKind::R_PAREN)
12864    }
12865    #[inline]
12866    pub fn dot_token(&self) -> Option<SyntaxToken> {
12867        support::token(&self.syntax, SyntaxKind::DOT)
12868    }
12869    #[inline]
12870    pub fn operator_token(&self) -> Option<SyntaxToken> {
12871        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12872    }
12873}
12874
12875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12876pub struct OperatorClassOptionList {
12877    pub(crate) syntax: SyntaxNode,
12878}
12879impl OperatorClassOptionList {
12880    #[inline]
12881    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
12882        support::children(&self.syntax)
12883    }
12884}
12885
12886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12887pub struct OptionItem {
12888    pub(crate) syntax: SyntaxNode,
12889}
12890impl OptionItem {
12891    #[inline]
12892    pub fn expr(&self) -> Option<Expr> {
12893        support::child(&self.syntax)
12894    }
12895    #[inline]
12896    pub fn default_token(&self) -> Option<SyntaxToken> {
12897        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12898    }
12899}
12900
12901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12902pub struct OptionItemList {
12903    pub(crate) syntax: SyntaxNode,
12904}
12905impl OptionItemList {
12906    #[inline]
12907    pub fn option_items(&self) -> AstChildren<OptionItem> {
12908        support::children(&self.syntax)
12909    }
12910    #[inline]
12911    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12912        support::token(&self.syntax, SyntaxKind::L_PAREN)
12913    }
12914    #[inline]
12915    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12916        support::token(&self.syntax, SyntaxKind::R_PAREN)
12917    }
12918}
12919
12920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12921pub struct OrReplace {
12922    pub(crate) syntax: SyntaxNode,
12923}
12924impl OrReplace {
12925    #[inline]
12926    pub fn or_token(&self) -> Option<SyntaxToken> {
12927        support::token(&self.syntax, SyntaxKind::OR_KW)
12928    }
12929    #[inline]
12930    pub fn replace_token(&self) -> Option<SyntaxToken> {
12931        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
12932    }
12933}
12934
12935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12936pub struct OrderByClause {
12937    pub(crate) syntax: SyntaxNode,
12938}
12939impl OrderByClause {
12940    #[inline]
12941    pub fn sort_by_list(&self) -> Option<SortByList> {
12942        support::child(&self.syntax)
12943    }
12944    #[inline]
12945    pub fn by_token(&self) -> Option<SyntaxToken> {
12946        support::token(&self.syntax, SyntaxKind::BY_KW)
12947    }
12948    #[inline]
12949    pub fn order_token(&self) -> Option<SyntaxToken> {
12950        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12951    }
12952}
12953
12954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12955pub struct OverClause {
12956    pub(crate) syntax: SyntaxNode,
12957}
12958impl OverClause {
12959    #[inline]
12960    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12961        support::token(&self.syntax, SyntaxKind::L_PAREN)
12962    }
12963    #[inline]
12964    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12965        support::token(&self.syntax, SyntaxKind::R_PAREN)
12966    }
12967    #[inline]
12968    pub fn over_token(&self) -> Option<SyntaxToken> {
12969        support::token(&self.syntax, SyntaxKind::OVER_KW)
12970    }
12971}
12972
12973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12974pub struct OverlayFn {
12975    pub(crate) syntax: SyntaxNode,
12976}
12977impl OverlayFn {
12978    #[inline]
12979    pub fn expr(&self) -> Option<Expr> {
12980        support::child(&self.syntax)
12981    }
12982    #[inline]
12983    pub fn exprs(&self) -> AstChildren<Expr> {
12984        support::children(&self.syntax)
12985    }
12986    #[inline]
12987    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12988        support::token(&self.syntax, SyntaxKind::L_PAREN)
12989    }
12990    #[inline]
12991    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12992        support::token(&self.syntax, SyntaxKind::R_PAREN)
12993    }
12994    #[inline]
12995    pub fn for_token(&self) -> Option<SyntaxToken> {
12996        support::token(&self.syntax, SyntaxKind::FOR_KW)
12997    }
12998    #[inline]
12999    pub fn from_token(&self) -> Option<SyntaxToken> {
13000        support::token(&self.syntax, SyntaxKind::FROM_KW)
13001    }
13002    #[inline]
13003    pub fn overlay_token(&self) -> Option<SyntaxToken> {
13004        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
13005    }
13006    #[inline]
13007    pub fn placing_token(&self) -> Option<SyntaxToken> {
13008        support::token(&self.syntax, SyntaxKind::PLACING_KW)
13009    }
13010}
13011
13012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13013pub struct OwnedByRoles {
13014    pub(crate) syntax: SyntaxNode,
13015}
13016impl OwnedByRoles {
13017    #[inline]
13018    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13019        support::child(&self.syntax)
13020    }
13021    #[inline]
13022    pub fn by_token(&self) -> Option<SyntaxToken> {
13023        support::token(&self.syntax, SyntaxKind::BY_KW)
13024    }
13025    #[inline]
13026    pub fn owned_token(&self) -> Option<SyntaxToken> {
13027        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13028    }
13029}
13030
13031#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13032pub struct OwnerTo {
13033    pub(crate) syntax: SyntaxNode,
13034}
13035impl OwnerTo {
13036    #[inline]
13037    pub fn role_ref(&self) -> Option<RoleRef> {
13038        support::child(&self.syntax)
13039    }
13040    #[inline]
13041    pub fn owner_token(&self) -> Option<SyntaxToken> {
13042        support::token(&self.syntax, SyntaxKind::OWNER_KW)
13043    }
13044    #[inline]
13045    pub fn to_token(&self) -> Option<SyntaxToken> {
13046        support::token(&self.syntax, SyntaxKind::TO_KW)
13047    }
13048}
13049
13050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13051pub struct ParallelFuncOption {
13052    pub(crate) syntax: SyntaxNode,
13053}
13054impl ParallelFuncOption {
13055    #[inline]
13056    pub fn ident_token(&self) -> Option<SyntaxToken> {
13057        support::token(&self.syntax, SyntaxKind::IDENT)
13058    }
13059    #[inline]
13060    pub fn parallel_token(&self) -> Option<SyntaxToken> {
13061        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
13062    }
13063}
13064
13065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13066pub struct Param {
13067    pub(crate) syntax: SyntaxNode,
13068}
13069impl Param {
13070    #[inline]
13071    pub fn mode(&self) -> Option<ParamMode> {
13072        support::child(&self.syntax)
13073    }
13074    #[inline]
13075    pub fn name(&self) -> Option<Name> {
13076        support::child(&self.syntax)
13077    }
13078    #[inline]
13079    pub fn param_default(&self) -> Option<ParamDefault> {
13080        support::child(&self.syntax)
13081    }
13082    #[inline]
13083    pub fn ty(&self) -> Option<Type> {
13084        support::child(&self.syntax)
13085    }
13086}
13087
13088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13089pub struct ParamDefault {
13090    pub(crate) syntax: SyntaxNode,
13091}
13092impl ParamDefault {
13093    #[inline]
13094    pub fn expr(&self) -> Option<Expr> {
13095        support::child(&self.syntax)
13096    }
13097    #[inline]
13098    pub fn eq_token(&self) -> Option<SyntaxToken> {
13099        support::token(&self.syntax, SyntaxKind::EQ)
13100    }
13101    #[inline]
13102    pub fn default_token(&self) -> Option<SyntaxToken> {
13103        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13104    }
13105}
13106
13107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13108pub struct ParamIn {
13109    pub(crate) syntax: SyntaxNode,
13110}
13111impl ParamIn {
13112    #[inline]
13113    pub fn in_token(&self) -> Option<SyntaxToken> {
13114        support::token(&self.syntax, SyntaxKind::IN_KW)
13115    }
13116}
13117
13118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13119pub struct ParamInOut {
13120    pub(crate) syntax: SyntaxNode,
13121}
13122impl ParamInOut {
13123    #[inline]
13124    pub fn in_token(&self) -> Option<SyntaxToken> {
13125        support::token(&self.syntax, SyntaxKind::IN_KW)
13126    }
13127    #[inline]
13128    pub fn inout_token(&self) -> Option<SyntaxToken> {
13129        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13130    }
13131    #[inline]
13132    pub fn out_token(&self) -> Option<SyntaxToken> {
13133        support::token(&self.syntax, SyntaxKind::OUT_KW)
13134    }
13135}
13136
13137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13138pub struct ParamList {
13139    pub(crate) syntax: SyntaxNode,
13140}
13141impl ParamList {
13142    #[inline]
13143    pub fn params(&self) -> AstChildren<Param> {
13144        support::children(&self.syntax)
13145    }
13146}
13147
13148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13149pub struct ParamOut {
13150    pub(crate) syntax: SyntaxNode,
13151}
13152impl ParamOut {
13153    #[inline]
13154    pub fn out_token(&self) -> Option<SyntaxToken> {
13155        support::token(&self.syntax, SyntaxKind::OUT_KW)
13156    }
13157}
13158
13159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13160pub struct ParamVariadic {
13161    pub(crate) syntax: SyntaxNode,
13162}
13163impl ParamVariadic {
13164    #[inline]
13165    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13166        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13167    }
13168}
13169
13170#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13171pub struct ParenExpr {
13172    pub(crate) syntax: SyntaxNode,
13173}
13174impl ParenExpr {
13175    #[inline]
13176    pub fn expr(&self) -> Option<Expr> {
13177        support::child(&self.syntax)
13178    }
13179    #[inline]
13180    pub fn from_item(&self) -> Option<FromItem> {
13181        support::child(&self.syntax)
13182    }
13183    #[inline]
13184    pub fn select(&self) -> Option<Select> {
13185        support::child(&self.syntax)
13186    }
13187    #[inline]
13188    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13189        support::token(&self.syntax, SyntaxKind::L_PAREN)
13190    }
13191    #[inline]
13192    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13193        support::token(&self.syntax, SyntaxKind::R_PAREN)
13194    }
13195}
13196
13197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13198pub struct ParenGraphPattern {
13199    pub(crate) syntax: SyntaxNode,
13200}
13201impl ParenGraphPattern {
13202    #[inline]
13203    pub fn path_pattern(&self) -> Option<PathPattern> {
13204        support::child(&self.syntax)
13205    }
13206    #[inline]
13207    pub fn where_clause(&self) -> Option<WhereClause> {
13208        support::child(&self.syntax)
13209    }
13210    #[inline]
13211    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13212        support::token(&self.syntax, SyntaxKind::L_PAREN)
13213    }
13214    #[inline]
13215    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13216        support::token(&self.syntax, SyntaxKind::R_PAREN)
13217    }
13218}
13219
13220#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13221pub struct ParenSelect {
13222    pub(crate) syntax: SyntaxNode,
13223}
13224impl ParenSelect {
13225    #[inline]
13226    pub fn select(&self) -> Option<SelectVariant> {
13227        support::child(&self.syntax)
13228    }
13229    #[inline]
13230    pub fn with_clause(&self) -> Option<WithClause> {
13231        support::child(&self.syntax)
13232    }
13233    #[inline]
13234    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13235        support::token(&self.syntax, SyntaxKind::L_PAREN)
13236    }
13237    #[inline]
13238    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13239        support::token(&self.syntax, SyntaxKind::R_PAREN)
13240    }
13241}
13242
13243#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13244pub struct Partition {
13245    pub(crate) syntax: SyntaxNode,
13246}
13247impl Partition {
13248    #[inline]
13249    pub fn partition_type(&self) -> Option<PartitionType> {
13250        support::child(&self.syntax)
13251    }
13252    #[inline]
13253    pub fn path(&self) -> Option<Path> {
13254        support::child(&self.syntax)
13255    }
13256    #[inline]
13257    pub fn partition_token(&self) -> Option<SyntaxToken> {
13258        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13259    }
13260}
13261
13262#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13263pub struct PartitionBy {
13264    pub(crate) syntax: SyntaxNode,
13265}
13266impl PartitionBy {
13267    #[inline]
13268    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13269        support::child(&self.syntax)
13270    }
13271    #[inline]
13272    pub fn by_token(&self) -> Option<SyntaxToken> {
13273        support::token(&self.syntax, SyntaxKind::BY_KW)
13274    }
13275    #[inline]
13276    pub fn ident_token(&self) -> Option<SyntaxToken> {
13277        support::token(&self.syntax, SyntaxKind::IDENT)
13278    }
13279    #[inline]
13280    pub fn partition_token(&self) -> Option<SyntaxToken> {
13281        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13282    }
13283    #[inline]
13284    pub fn range_token(&self) -> Option<SyntaxToken> {
13285        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13286    }
13287}
13288
13289#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13290pub struct PartitionDefault {
13291    pub(crate) syntax: SyntaxNode,
13292}
13293impl PartitionDefault {
13294    #[inline]
13295    pub fn default_token(&self) -> Option<SyntaxToken> {
13296        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13297    }
13298}
13299
13300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13301pub struct PartitionForValuesFrom {
13302    pub(crate) syntax: SyntaxNode,
13303}
13304impl PartitionForValuesFrom {
13305    #[inline]
13306    pub fn exprs(&self) -> AstChildren<Expr> {
13307        support::children(&self.syntax)
13308    }
13309    #[inline]
13310    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13311        support::token(&self.syntax, SyntaxKind::L_PAREN)
13312    }
13313    #[inline]
13314    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::R_PAREN)
13316    }
13317    #[inline]
13318    pub fn for_token(&self) -> Option<SyntaxToken> {
13319        support::token(&self.syntax, SyntaxKind::FOR_KW)
13320    }
13321    #[inline]
13322    pub fn from_token(&self) -> Option<SyntaxToken> {
13323        support::token(&self.syntax, SyntaxKind::FROM_KW)
13324    }
13325    #[inline]
13326    pub fn to_token(&self) -> Option<SyntaxToken> {
13327        support::token(&self.syntax, SyntaxKind::TO_KW)
13328    }
13329    #[inline]
13330    pub fn values_token(&self) -> Option<SyntaxToken> {
13331        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13332    }
13333}
13334
13335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13336pub struct PartitionForValuesIn {
13337    pub(crate) syntax: SyntaxNode,
13338}
13339impl PartitionForValuesIn {
13340    #[inline]
13341    pub fn exprs(&self) -> AstChildren<Expr> {
13342        support::children(&self.syntax)
13343    }
13344    #[inline]
13345    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13346        support::token(&self.syntax, SyntaxKind::L_PAREN)
13347    }
13348    #[inline]
13349    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13350        support::token(&self.syntax, SyntaxKind::R_PAREN)
13351    }
13352    #[inline]
13353    pub fn for_token(&self) -> Option<SyntaxToken> {
13354        support::token(&self.syntax, SyntaxKind::FOR_KW)
13355    }
13356    #[inline]
13357    pub fn in_token(&self) -> Option<SyntaxToken> {
13358        support::token(&self.syntax, SyntaxKind::IN_KW)
13359    }
13360    #[inline]
13361    pub fn values_token(&self) -> Option<SyntaxToken> {
13362        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13363    }
13364}
13365
13366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13367pub struct PartitionForValuesWith {
13368    pub(crate) syntax: SyntaxNode,
13369}
13370impl PartitionForValuesWith {
13371    #[inline]
13372    pub fn literal(&self) -> Option<Literal> {
13373        support::child(&self.syntax)
13374    }
13375    #[inline]
13376    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13377        support::token(&self.syntax, SyntaxKind::L_PAREN)
13378    }
13379    #[inline]
13380    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13381        support::token(&self.syntax, SyntaxKind::R_PAREN)
13382    }
13383    #[inline]
13384    pub fn comma_token(&self) -> Option<SyntaxToken> {
13385        support::token(&self.syntax, SyntaxKind::COMMA)
13386    }
13387    #[inline]
13388    pub fn for_token(&self) -> Option<SyntaxToken> {
13389        support::token(&self.syntax, SyntaxKind::FOR_KW)
13390    }
13391    #[inline]
13392    pub fn ident_token(&self) -> Option<SyntaxToken> {
13393        support::token(&self.syntax, SyntaxKind::IDENT)
13394    }
13395    #[inline]
13396    pub fn values_token(&self) -> Option<SyntaxToken> {
13397        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13398    }
13399    #[inline]
13400    pub fn with_token(&self) -> Option<SyntaxToken> {
13401        support::token(&self.syntax, SyntaxKind::WITH_KW)
13402    }
13403}
13404
13405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13406pub struct PartitionItem {
13407    pub(crate) syntax: SyntaxNode,
13408}
13409impl PartitionItem {
13410    #[inline]
13411    pub fn collate(&self) -> Option<Collate> {
13412        support::child(&self.syntax)
13413    }
13414    #[inline]
13415    pub fn expr(&self) -> Option<Expr> {
13416        support::child(&self.syntax)
13417    }
13418}
13419
13420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13421pub struct PartitionItemList {
13422    pub(crate) syntax: SyntaxNode,
13423}
13424impl PartitionItemList {
13425    #[inline]
13426    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
13427        support::children(&self.syntax)
13428    }
13429    #[inline]
13430    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13431        support::token(&self.syntax, SyntaxKind::L_PAREN)
13432    }
13433    #[inline]
13434    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13435        support::token(&self.syntax, SyntaxKind::R_PAREN)
13436    }
13437}
13438
13439#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13440pub struct PartitionList {
13441    pub(crate) syntax: SyntaxNode,
13442}
13443impl PartitionList {
13444    #[inline]
13445    pub fn partitions(&self) -> AstChildren<Partition> {
13446        support::children(&self.syntax)
13447    }
13448    #[inline]
13449    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13450        support::token(&self.syntax, SyntaxKind::L_PAREN)
13451    }
13452    #[inline]
13453    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13454        support::token(&self.syntax, SyntaxKind::R_PAREN)
13455    }
13456}
13457
13458#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13459pub struct PartitionOf {
13460    pub(crate) syntax: SyntaxNode,
13461}
13462impl PartitionOf {
13463    #[inline]
13464    pub fn path(&self) -> Option<Path> {
13465        support::child(&self.syntax)
13466    }
13467    #[inline]
13468    pub fn of_token(&self) -> Option<SyntaxToken> {
13469        support::token(&self.syntax, SyntaxKind::OF_KW)
13470    }
13471    #[inline]
13472    pub fn partition_token(&self) -> Option<SyntaxToken> {
13473        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13474    }
13475}
13476
13477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13478pub struct Path {
13479    pub(crate) syntax: SyntaxNode,
13480}
13481impl Path {
13482    #[inline]
13483    pub fn qualifier(&self) -> Option<Path> {
13484        support::child(&self.syntax)
13485    }
13486    #[inline]
13487    pub fn segment(&self) -> Option<PathSegment> {
13488        support::child(&self.syntax)
13489    }
13490    #[inline]
13491    pub fn dot_token(&self) -> Option<SyntaxToken> {
13492        support::token(&self.syntax, SyntaxKind::DOT)
13493    }
13494}
13495
13496#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13497pub struct PathFactor {
13498    pub(crate) syntax: SyntaxNode,
13499}
13500impl PathFactor {
13501    #[inline]
13502    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
13503        support::child(&self.syntax)
13504    }
13505    #[inline]
13506    pub fn path_primary(&self) -> Option<PathPrimary> {
13507        support::child(&self.syntax)
13508    }
13509}
13510
13511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13512pub struct PathPattern {
13513    pub(crate) syntax: SyntaxNode,
13514}
13515impl PathPattern {
13516    #[inline]
13517    pub fn path_factor(&self) -> Option<PathFactor> {
13518        support::child(&self.syntax)
13519    }
13520    #[inline]
13521    pub fn path_factors(&self) -> AstChildren<PathFactor> {
13522        support::children(&self.syntax)
13523    }
13524}
13525
13526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13527pub struct PathPatternList {
13528    pub(crate) syntax: SyntaxNode,
13529}
13530impl PathPatternList {
13531    #[inline]
13532    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
13533        support::children(&self.syntax)
13534    }
13535}
13536
13537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13538pub struct PathSegment {
13539    pub(crate) syntax: SyntaxNode,
13540}
13541impl PathSegment {
13542    #[inline]
13543    pub fn name(&self) -> Option<Name> {
13544        support::child(&self.syntax)
13545    }
13546    #[inline]
13547    pub fn name_ref(&self) -> Option<NameRef> {
13548        support::child(&self.syntax)
13549    }
13550}
13551
13552#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13553pub struct PathType {
13554    pub(crate) syntax: SyntaxNode,
13555}
13556impl PathType {
13557    #[inline]
13558    pub fn arg_list(&self) -> Option<ArgList> {
13559        support::child(&self.syntax)
13560    }
13561    #[inline]
13562    pub fn path(&self) -> Option<Path> {
13563        support::child(&self.syntax)
13564    }
13565    #[inline]
13566    pub fn setof_token(&self) -> Option<SyntaxToken> {
13567        support::token(&self.syntax, SyntaxKind::SETOF_KW)
13568    }
13569}
13570
13571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13572pub struct PercentType {
13573    pub(crate) syntax: SyntaxNode,
13574}
13575impl PercentType {
13576    #[inline]
13577    pub fn percent_token(&self) -> Option<SyntaxToken> {
13578        support::token(&self.syntax, SyntaxKind::PERCENT)
13579    }
13580    #[inline]
13581    pub fn type_token(&self) -> Option<SyntaxToken> {
13582        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13583    }
13584}
13585
13586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13587pub struct PercentTypeClause {
13588    pub(crate) syntax: SyntaxNode,
13589}
13590impl PercentTypeClause {
13591    #[inline]
13592    pub fn path(&self) -> Option<Path> {
13593        support::child(&self.syntax)
13594    }
13595    #[inline]
13596    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
13597        support::child(&self.syntax)
13598    }
13599}
13600
13601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13602pub struct PositionFn {
13603    pub(crate) syntax: SyntaxNode,
13604}
13605impl PositionFn {
13606    #[inline]
13607    pub fn expr(&self) -> Option<Expr> {
13608        support::child(&self.syntax)
13609    }
13610    #[inline]
13611    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13612        support::token(&self.syntax, SyntaxKind::L_PAREN)
13613    }
13614    #[inline]
13615    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13616        support::token(&self.syntax, SyntaxKind::R_PAREN)
13617    }
13618    #[inline]
13619    pub fn in_token(&self) -> Option<SyntaxToken> {
13620        support::token(&self.syntax, SyntaxKind::IN_KW)
13621    }
13622    #[inline]
13623    pub fn position_token(&self) -> Option<SyntaxToken> {
13624        support::token(&self.syntax, SyntaxKind::POSITION_KW)
13625    }
13626}
13627
13628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13629pub struct PostfixExpr {
13630    pub(crate) syntax: SyntaxNode,
13631}
13632impl PostfixExpr {
13633    #[inline]
13634    pub fn expr(&self) -> Option<Expr> {
13635        support::child(&self.syntax)
13636    }
13637}
13638
13639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13640pub struct PrefixExpr {
13641    pub(crate) syntax: SyntaxNode,
13642}
13643impl PrefixExpr {
13644    #[inline]
13645    pub fn expr(&self) -> Option<Expr> {
13646        support::child(&self.syntax)
13647    }
13648}
13649
13650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13651pub struct Prepare {
13652    pub(crate) syntax: SyntaxNode,
13653}
13654impl Prepare {
13655    #[inline]
13656    pub fn name(&self) -> Option<Name> {
13657        support::child(&self.syntax)
13658    }
13659    #[inline]
13660    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
13661        support::child(&self.syntax)
13662    }
13663    #[inline]
13664    pub fn as_token(&self) -> Option<SyntaxToken> {
13665        support::token(&self.syntax, SyntaxKind::AS_KW)
13666    }
13667    #[inline]
13668    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13669        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13670    }
13671}
13672
13673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13674pub struct PrepareTransaction {
13675    pub(crate) syntax: SyntaxNode,
13676}
13677impl PrepareTransaction {
13678    #[inline]
13679    pub fn literal(&self) -> Option<Literal> {
13680        support::child(&self.syntax)
13681    }
13682    #[inline]
13683    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13684        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13685    }
13686    #[inline]
13687    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13688        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13689    }
13690}
13691
13692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13693pub struct PreserveRows {
13694    pub(crate) syntax: SyntaxNode,
13695}
13696impl PreserveRows {
13697    #[inline]
13698    pub fn preserve_token(&self) -> Option<SyntaxToken> {
13699        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
13700    }
13701    #[inline]
13702    pub fn rows_token(&self) -> Option<SyntaxToken> {
13703        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13704    }
13705}
13706
13707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13708pub struct PrimaryKeyConstraint {
13709    pub(crate) syntax: SyntaxNode,
13710}
13711impl PrimaryKeyConstraint {
13712    #[inline]
13713    pub fn column_list(&self) -> Option<ColumnList> {
13714        support::child(&self.syntax)
13715    }
13716    #[inline]
13717    pub fn constraint_name(&self) -> Option<ConstraintName> {
13718        support::child(&self.syntax)
13719    }
13720    #[inline]
13721    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13722        support::child(&self.syntax)
13723    }
13724    #[inline]
13725    pub fn using_index(&self) -> Option<UsingIndex> {
13726        support::child(&self.syntax)
13727    }
13728    #[inline]
13729    pub fn key_token(&self) -> Option<SyntaxToken> {
13730        support::token(&self.syntax, SyntaxKind::KEY_KW)
13731    }
13732    #[inline]
13733    pub fn primary_token(&self) -> Option<SyntaxToken> {
13734        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
13735    }
13736}
13737
13738#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13739pub struct PrivilegeTarget {
13740    pub(crate) syntax: SyntaxNode,
13741}
13742impl PrivilegeTarget {
13743    #[inline]
13744    pub fn functions_token(&self) -> Option<SyntaxToken> {
13745        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
13746    }
13747    #[inline]
13748    pub fn large_token(&self) -> Option<SyntaxToken> {
13749        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13750    }
13751    #[inline]
13752    pub fn objects_token(&self) -> Option<SyntaxToken> {
13753        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
13754    }
13755    #[inline]
13756    pub fn routines_token(&self) -> Option<SyntaxToken> {
13757        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
13758    }
13759    #[inline]
13760    pub fn schemas_token(&self) -> Option<SyntaxToken> {
13761        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
13762    }
13763    #[inline]
13764    pub fn sequences_token(&self) -> Option<SyntaxToken> {
13765        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
13766    }
13767    #[inline]
13768    pub fn tables_token(&self) -> Option<SyntaxToken> {
13769        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13770    }
13771    #[inline]
13772    pub fn types_token(&self) -> Option<SyntaxToken> {
13773        support::token(&self.syntax, SyntaxKind::TYPES_KW)
13774    }
13775}
13776
13777#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13778pub struct Privileges {
13779    pub(crate) syntax: SyntaxNode,
13780}
13781impl Privileges {
13782    #[inline]
13783    pub fn column_list(&self) -> Option<ColumnList> {
13784        support::child(&self.syntax)
13785    }
13786    #[inline]
13787    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13788        support::child(&self.syntax)
13789    }
13790    #[inline]
13791    pub fn all_token(&self) -> Option<SyntaxToken> {
13792        support::token(&self.syntax, SyntaxKind::ALL_KW)
13793    }
13794    #[inline]
13795    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13796        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13797    }
13798}
13799
13800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13801pub struct PropertiesList {
13802    pub(crate) syntax: SyntaxNode,
13803}
13804impl PropertiesList {
13805    #[inline]
13806    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
13807        support::child(&self.syntax)
13808    }
13809    #[inline]
13810    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13811        support::token(&self.syntax, SyntaxKind::L_PAREN)
13812    }
13813    #[inline]
13814    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13815        support::token(&self.syntax, SyntaxKind::R_PAREN)
13816    }
13817    #[inline]
13818    pub fn properties_token(&self) -> Option<SyntaxToken> {
13819        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
13820    }
13821}
13822
13823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13824pub struct PublicationObject {
13825    pub(crate) syntax: SyntaxNode,
13826}
13827impl PublicationObject {
13828    #[inline]
13829    pub fn column_list(&self) -> Option<ColumnList> {
13830        support::child(&self.syntax)
13831    }
13832    #[inline]
13833    pub fn name_ref(&self) -> Option<NameRef> {
13834        support::child(&self.syntax)
13835    }
13836    #[inline]
13837    pub fn path(&self) -> Option<Path> {
13838        support::child(&self.syntax)
13839    }
13840    #[inline]
13841    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
13842        support::child(&self.syntax)
13843    }
13844    #[inline]
13845    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13846        support::token(&self.syntax, SyntaxKind::L_PAREN)
13847    }
13848    #[inline]
13849    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13850        support::token(&self.syntax, SyntaxKind::R_PAREN)
13851    }
13852    #[inline]
13853    pub fn star_token(&self) -> Option<SyntaxToken> {
13854        support::token(&self.syntax, SyntaxKind::STAR)
13855    }
13856    #[inline]
13857    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
13858        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
13859    }
13860    #[inline]
13861    pub fn in_token(&self) -> Option<SyntaxToken> {
13862        support::token(&self.syntax, SyntaxKind::IN_KW)
13863    }
13864    #[inline]
13865    pub fn only_token(&self) -> Option<SyntaxToken> {
13866        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13867    }
13868    #[inline]
13869    pub fn schema_token(&self) -> Option<SyntaxToken> {
13870        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13871    }
13872    #[inline]
13873    pub fn table_token(&self) -> Option<SyntaxToken> {
13874        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13875    }
13876    #[inline]
13877    pub fn tables_token(&self) -> Option<SyntaxToken> {
13878        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13879    }
13880}
13881
13882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13883pub struct ReadCommitted {
13884    pub(crate) syntax: SyntaxNode,
13885}
13886impl ReadCommitted {
13887    #[inline]
13888    pub fn committed_token(&self) -> Option<SyntaxToken> {
13889        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
13890    }
13891    #[inline]
13892    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13893        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13894    }
13895    #[inline]
13896    pub fn level_token(&self) -> Option<SyntaxToken> {
13897        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13898    }
13899    #[inline]
13900    pub fn read_token(&self) -> Option<SyntaxToken> {
13901        support::token(&self.syntax, SyntaxKind::READ_KW)
13902    }
13903}
13904
13905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13906pub struct ReadOnly {
13907    pub(crate) syntax: SyntaxNode,
13908}
13909impl ReadOnly {
13910    #[inline]
13911    pub fn only_token(&self) -> Option<SyntaxToken> {
13912        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13913    }
13914    #[inline]
13915    pub fn read_token(&self) -> Option<SyntaxToken> {
13916        support::token(&self.syntax, SyntaxKind::READ_KW)
13917    }
13918}
13919
13920#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13921pub struct ReadUncommitted {
13922    pub(crate) syntax: SyntaxNode,
13923}
13924impl ReadUncommitted {
13925    #[inline]
13926    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13927        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13928    }
13929    #[inline]
13930    pub fn level_token(&self) -> Option<SyntaxToken> {
13931        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13932    }
13933    #[inline]
13934    pub fn read_token(&self) -> Option<SyntaxToken> {
13935        support::token(&self.syntax, SyntaxKind::READ_KW)
13936    }
13937    #[inline]
13938    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
13939        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
13940    }
13941}
13942
13943#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13944pub struct ReadWrite {
13945    pub(crate) syntax: SyntaxNode,
13946}
13947impl ReadWrite {
13948    #[inline]
13949    pub fn read_token(&self) -> Option<SyntaxToken> {
13950        support::token(&self.syntax, SyntaxKind::READ_KW)
13951    }
13952    #[inline]
13953    pub fn write_token(&self) -> Option<SyntaxToken> {
13954        support::token(&self.syntax, SyntaxKind::WRITE_KW)
13955    }
13956}
13957
13958#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13959pub struct Reassign {
13960    pub(crate) syntax: SyntaxNode,
13961}
13962impl Reassign {
13963    #[inline]
13964    pub fn new_roles(&self) -> Option<RoleRefList> {
13965        support::child(&self.syntax)
13966    }
13967    #[inline]
13968    pub fn old_roles(&self) -> Option<RoleRefList> {
13969        support::child(&self.syntax)
13970    }
13971    #[inline]
13972    pub fn by_token(&self) -> Option<SyntaxToken> {
13973        support::token(&self.syntax, SyntaxKind::BY_KW)
13974    }
13975    #[inline]
13976    pub fn owned_token(&self) -> Option<SyntaxToken> {
13977        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13978    }
13979    #[inline]
13980    pub fn reassign_token(&self) -> Option<SyntaxToken> {
13981        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
13982    }
13983    #[inline]
13984    pub fn to_token(&self) -> Option<SyntaxToken> {
13985        support::token(&self.syntax, SyntaxKind::TO_KW)
13986    }
13987}
13988
13989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13990pub struct ReferencesConstraint {
13991    pub(crate) syntax: SyntaxNode,
13992}
13993impl ReferencesConstraint {
13994    #[inline]
13995    pub fn column(&self) -> Option<NameRef> {
13996        support::child(&self.syntax)
13997    }
13998    #[inline]
13999    pub fn constraint_name(&self) -> Option<ConstraintName> {
14000        support::child(&self.syntax)
14001    }
14002    #[inline]
14003    pub fn match_type(&self) -> Option<MatchType> {
14004        support::child(&self.syntax)
14005    }
14006    #[inline]
14007    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
14008        support::child(&self.syntax)
14009    }
14010    #[inline]
14011    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
14012        support::child(&self.syntax)
14013    }
14014    #[inline]
14015    pub fn table(&self) -> Option<Path> {
14016        support::child(&self.syntax)
14017    }
14018    #[inline]
14019    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14020        support::token(&self.syntax, SyntaxKind::L_PAREN)
14021    }
14022    #[inline]
14023    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14024        support::token(&self.syntax, SyntaxKind::R_PAREN)
14025    }
14026    #[inline]
14027    pub fn references_token(&self) -> Option<SyntaxToken> {
14028        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14029    }
14030}
14031
14032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14033pub struct Referencing {
14034    pub(crate) syntax: SyntaxNode,
14035}
14036impl Referencing {
14037    #[inline]
14038    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
14039        support::children(&self.syntax)
14040    }
14041    #[inline]
14042    pub fn referencing_token(&self) -> Option<SyntaxToken> {
14043        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
14044    }
14045}
14046
14047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14048pub struct ReferencingTable {
14049    pub(crate) syntax: SyntaxNode,
14050}
14051impl ReferencingTable {
14052    #[inline]
14053    pub fn name_ref(&self) -> Option<NameRef> {
14054        support::child(&self.syntax)
14055    }
14056    #[inline]
14057    pub fn as_token(&self) -> Option<SyntaxToken> {
14058        support::token(&self.syntax, SyntaxKind::AS_KW)
14059    }
14060    #[inline]
14061    pub fn new_token(&self) -> Option<SyntaxToken> {
14062        support::token(&self.syntax, SyntaxKind::NEW_KW)
14063    }
14064    #[inline]
14065    pub fn old_token(&self) -> Option<SyntaxToken> {
14066        support::token(&self.syntax, SyntaxKind::OLD_KW)
14067    }
14068    #[inline]
14069    pub fn table_token(&self) -> Option<SyntaxToken> {
14070        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14071    }
14072}
14073
14074#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14075pub struct Refresh {
14076    pub(crate) syntax: SyntaxNode,
14077}
14078impl Refresh {
14079    #[inline]
14080    pub fn path(&self) -> Option<Path> {
14081        support::child(&self.syntax)
14082    }
14083    #[inline]
14084    pub fn with_data(&self) -> Option<WithData> {
14085        support::child(&self.syntax)
14086    }
14087    #[inline]
14088    pub fn with_no_data(&self) -> Option<WithNoData> {
14089        support::child(&self.syntax)
14090    }
14091    #[inline]
14092    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14093        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14094    }
14095    #[inline]
14096    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14097        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14098    }
14099    #[inline]
14100    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14101        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14102    }
14103    #[inline]
14104    pub fn view_token(&self) -> Option<SyntaxToken> {
14105        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14106    }
14107}
14108
14109#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14110pub struct RefreshCollationVersion {
14111    pub(crate) syntax: SyntaxNode,
14112}
14113impl RefreshCollationVersion {
14114    #[inline]
14115    pub fn collation_token(&self) -> Option<SyntaxToken> {
14116        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14117    }
14118    #[inline]
14119    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14120        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14121    }
14122    #[inline]
14123    pub fn version_token(&self) -> Option<SyntaxToken> {
14124        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14125    }
14126}
14127
14128#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14129pub struct RefreshVersion {
14130    pub(crate) syntax: SyntaxNode,
14131}
14132impl RefreshVersion {
14133    #[inline]
14134    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14135        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14136    }
14137    #[inline]
14138    pub fn version_token(&self) -> Option<SyntaxToken> {
14139        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14140    }
14141}
14142
14143#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14144pub struct Reindex {
14145    pub(crate) syntax: SyntaxNode,
14146}
14147impl Reindex {
14148    #[inline]
14149    pub fn path(&self) -> Option<Path> {
14150        support::child(&self.syntax)
14151    }
14152    #[inline]
14153    pub fn database_token(&self) -> Option<SyntaxToken> {
14154        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14155    }
14156    #[inline]
14157    pub fn index_token(&self) -> Option<SyntaxToken> {
14158        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14159    }
14160    #[inline]
14161    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14162        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14163    }
14164    #[inline]
14165    pub fn schema_token(&self) -> Option<SyntaxToken> {
14166        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14167    }
14168    #[inline]
14169    pub fn system_token(&self) -> Option<SyntaxToken> {
14170        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14171    }
14172    #[inline]
14173    pub fn table_token(&self) -> Option<SyntaxToken> {
14174        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14175    }
14176}
14177
14178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14179pub struct RelationName {
14180    pub(crate) syntax: SyntaxNode,
14181}
14182impl RelationName {
14183    #[inline]
14184    pub fn path(&self) -> Option<Path> {
14185        support::child(&self.syntax)
14186    }
14187    #[inline]
14188    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14189        support::token(&self.syntax, SyntaxKind::L_PAREN)
14190    }
14191    #[inline]
14192    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14193        support::token(&self.syntax, SyntaxKind::R_PAREN)
14194    }
14195    #[inline]
14196    pub fn star_token(&self) -> Option<SyntaxToken> {
14197        support::token(&self.syntax, SyntaxKind::STAR)
14198    }
14199    #[inline]
14200    pub fn only_token(&self) -> Option<SyntaxToken> {
14201        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14202    }
14203}
14204
14205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14206pub struct ReleaseSavepoint {
14207    pub(crate) syntax: SyntaxNode,
14208}
14209impl ReleaseSavepoint {
14210    #[inline]
14211    pub fn name_ref(&self) -> Option<NameRef> {
14212        support::child(&self.syntax)
14213    }
14214    #[inline]
14215    pub fn release_token(&self) -> Option<SyntaxToken> {
14216        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14217    }
14218    #[inline]
14219    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14220        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14221    }
14222}
14223
14224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14225pub struct RenameAttribute {
14226    pub(crate) syntax: SyntaxNode,
14227}
14228impl RenameAttribute {
14229    #[inline]
14230    pub fn name(&self) -> Option<Name> {
14231        support::child(&self.syntax)
14232    }
14233    #[inline]
14234    pub fn name_ref(&self) -> Option<NameRef> {
14235        support::child(&self.syntax)
14236    }
14237    #[inline]
14238    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14239        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14240    }
14241    #[inline]
14242    pub fn rename_token(&self) -> Option<SyntaxToken> {
14243        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14244    }
14245    #[inline]
14246    pub fn to_token(&self) -> Option<SyntaxToken> {
14247        support::token(&self.syntax, SyntaxKind::TO_KW)
14248    }
14249}
14250
14251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14252pub struct RenameColumn {
14253    pub(crate) syntax: SyntaxNode,
14254}
14255impl RenameColumn {
14256    #[inline]
14257    pub fn column_token(&self) -> Option<SyntaxToken> {
14258        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14259    }
14260    #[inline]
14261    pub fn rename_token(&self) -> Option<SyntaxToken> {
14262        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14263    }
14264    #[inline]
14265    pub fn to_token(&self) -> Option<SyntaxToken> {
14266        support::token(&self.syntax, SyntaxKind::TO_KW)
14267    }
14268}
14269
14270#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14271pub struct RenameConstraint {
14272    pub(crate) syntax: SyntaxNode,
14273}
14274impl RenameConstraint {
14275    #[inline]
14276    pub fn name(&self) -> Option<Name> {
14277        support::child(&self.syntax)
14278    }
14279    #[inline]
14280    pub fn name_ref(&self) -> Option<NameRef> {
14281        support::child(&self.syntax)
14282    }
14283    #[inline]
14284    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14285        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14286    }
14287    #[inline]
14288    pub fn rename_token(&self) -> Option<SyntaxToken> {
14289        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14290    }
14291    #[inline]
14292    pub fn to_token(&self) -> Option<SyntaxToken> {
14293        support::token(&self.syntax, SyntaxKind::TO_KW)
14294    }
14295}
14296
14297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14298pub struct RenameTo {
14299    pub(crate) syntax: SyntaxNode,
14300}
14301impl RenameTo {
14302    #[inline]
14303    pub fn name(&self) -> Option<Name> {
14304        support::child(&self.syntax)
14305    }
14306    #[inline]
14307    pub fn rename_token(&self) -> Option<SyntaxToken> {
14308        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14309    }
14310    #[inline]
14311    pub fn to_token(&self) -> Option<SyntaxToken> {
14312        support::token(&self.syntax, SyntaxKind::TO_KW)
14313    }
14314}
14315
14316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14317pub struct RenameValue {
14318    pub(crate) syntax: SyntaxNode,
14319}
14320impl RenameValue {
14321    #[inline]
14322    pub fn literal(&self) -> Option<Literal> {
14323        support::child(&self.syntax)
14324    }
14325    #[inline]
14326    pub fn rename_token(&self) -> Option<SyntaxToken> {
14327        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14328    }
14329    #[inline]
14330    pub fn to_token(&self) -> Option<SyntaxToken> {
14331        support::token(&self.syntax, SyntaxKind::TO_KW)
14332    }
14333    #[inline]
14334    pub fn value_token(&self) -> Option<SyntaxToken> {
14335        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14336    }
14337}
14338
14339#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14340pub struct Repack {
14341    pub(crate) syntax: SyntaxNode,
14342}
14343impl Repack {
14344    #[inline]
14345    pub fn name_ref(&self) -> Option<NameRef> {
14346        support::child(&self.syntax)
14347    }
14348    #[inline]
14349    pub fn option_item_list(&self) -> Option<OptionItemList> {
14350        support::child(&self.syntax)
14351    }
14352    #[inline]
14353    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
14354        support::child(&self.syntax)
14355    }
14356    #[inline]
14357    pub fn index_token(&self) -> Option<SyntaxToken> {
14358        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14359    }
14360    #[inline]
14361    pub fn repack_token(&self) -> Option<SyntaxToken> {
14362        support::token(&self.syntax, SyntaxKind::REPACK_KW)
14363    }
14364    #[inline]
14365    pub fn using_token(&self) -> Option<SyntaxToken> {
14366        support::token(&self.syntax, SyntaxKind::USING_KW)
14367    }
14368}
14369
14370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14371pub struct RepeatableClause {
14372    pub(crate) syntax: SyntaxNode,
14373}
14374impl RepeatableClause {
14375    #[inline]
14376    pub fn expr(&self) -> Option<Expr> {
14377        support::child(&self.syntax)
14378    }
14379    #[inline]
14380    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14381        support::token(&self.syntax, SyntaxKind::L_PAREN)
14382    }
14383    #[inline]
14384    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14385        support::token(&self.syntax, SyntaxKind::R_PAREN)
14386    }
14387    #[inline]
14388    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14389        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14390    }
14391}
14392
14393#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14394pub struct RepeatableRead {
14395    pub(crate) syntax: SyntaxNode,
14396}
14397impl RepeatableRead {
14398    #[inline]
14399    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14400        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14401    }
14402    #[inline]
14403    pub fn level_token(&self) -> Option<SyntaxToken> {
14404        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14405    }
14406    #[inline]
14407    pub fn read_token(&self) -> Option<SyntaxToken> {
14408        support::token(&self.syntax, SyntaxKind::READ_KW)
14409    }
14410    #[inline]
14411    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14412        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14413    }
14414}
14415
14416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14417pub struct ReplicaIdentity {
14418    pub(crate) syntax: SyntaxNode,
14419}
14420impl ReplicaIdentity {
14421    #[inline]
14422    pub fn identity_token(&self) -> Option<SyntaxToken> {
14423        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
14424    }
14425    #[inline]
14426    pub fn replica_token(&self) -> Option<SyntaxToken> {
14427        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
14428    }
14429}
14430
14431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14432pub struct Reset {
14433    pub(crate) syntax: SyntaxNode,
14434}
14435impl Reset {
14436    #[inline]
14437    pub fn name_ref(&self) -> Option<NameRef> {
14438        support::child(&self.syntax)
14439    }
14440    #[inline]
14441    pub fn all_token(&self) -> Option<SyntaxToken> {
14442        support::token(&self.syntax, SyntaxKind::ALL_KW)
14443    }
14444    #[inline]
14445    pub fn reset_token(&self) -> Option<SyntaxToken> {
14446        support::token(&self.syntax, SyntaxKind::RESET_KW)
14447    }
14448}
14449
14450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14451pub struct ResetConfigParam {
14452    pub(crate) syntax: SyntaxNode,
14453}
14454impl ResetConfigParam {
14455    #[inline]
14456    pub fn path(&self) -> Option<Path> {
14457        support::child(&self.syntax)
14458    }
14459    #[inline]
14460    pub fn all_token(&self) -> Option<SyntaxToken> {
14461        support::token(&self.syntax, SyntaxKind::ALL_KW)
14462    }
14463    #[inline]
14464    pub fn reset_token(&self) -> Option<SyntaxToken> {
14465        support::token(&self.syntax, SyntaxKind::RESET_KW)
14466    }
14467}
14468
14469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14470pub struct ResetFuncOption {
14471    pub(crate) syntax: SyntaxNode,
14472}
14473impl ResetFuncOption {
14474    #[inline]
14475    pub fn name_ref(&self) -> Option<NameRef> {
14476        support::child(&self.syntax)
14477    }
14478    #[inline]
14479    pub fn reset_token(&self) -> Option<SyntaxToken> {
14480        support::token(&self.syntax, SyntaxKind::RESET_KW)
14481    }
14482}
14483
14484#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14485pub struct ResetOptions {
14486    pub(crate) syntax: SyntaxNode,
14487}
14488impl ResetOptions {
14489    #[inline]
14490    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14491        support::token(&self.syntax, SyntaxKind::L_PAREN)
14492    }
14493    #[inline]
14494    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14495        support::token(&self.syntax, SyntaxKind::R_PAREN)
14496    }
14497    #[inline]
14498    pub fn reset_token(&self) -> Option<SyntaxToken> {
14499        support::token(&self.syntax, SyntaxKind::RESET_KW)
14500    }
14501}
14502
14503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14504pub struct ResetSessionAuth {
14505    pub(crate) syntax: SyntaxNode,
14506}
14507impl ResetSessionAuth {
14508    #[inline]
14509    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14510        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14511    }
14512    #[inline]
14513    pub fn reset_token(&self) -> Option<SyntaxToken> {
14514        support::token(&self.syntax, SyntaxKind::RESET_KW)
14515    }
14516    #[inline]
14517    pub fn session_token(&self) -> Option<SyntaxToken> {
14518        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14519    }
14520}
14521
14522#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14523pub struct Restart {
14524    pub(crate) syntax: SyntaxNode,
14525}
14526impl Restart {
14527    #[inline]
14528    pub fn restart_token(&self) -> Option<SyntaxToken> {
14529        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14530    }
14531    #[inline]
14532    pub fn with_token(&self) -> Option<SyntaxToken> {
14533        support::token(&self.syntax, SyntaxKind::WITH_KW)
14534    }
14535}
14536
14537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14538pub struct Restrict {
14539    pub(crate) syntax: SyntaxNode,
14540}
14541impl Restrict {
14542    #[inline]
14543    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14544        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14545    }
14546}
14547
14548#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14549pub struct RetType {
14550    pub(crate) syntax: SyntaxNode,
14551}
14552impl RetType {
14553    #[inline]
14554    pub fn table_arg_list(&self) -> Option<TableArgList> {
14555        support::child(&self.syntax)
14556    }
14557    #[inline]
14558    pub fn ty(&self) -> Option<Type> {
14559        support::child(&self.syntax)
14560    }
14561    #[inline]
14562    pub fn returns_token(&self) -> Option<SyntaxToken> {
14563        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14564    }
14565    #[inline]
14566    pub fn table_token(&self) -> Option<SyntaxToken> {
14567        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14568    }
14569}
14570
14571#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14572pub struct ReturnFuncOption {
14573    pub(crate) syntax: SyntaxNode,
14574}
14575impl ReturnFuncOption {
14576    #[inline]
14577    pub fn expr(&self) -> Option<Expr> {
14578        support::child(&self.syntax)
14579    }
14580    #[inline]
14581    pub fn return_token(&self) -> Option<SyntaxToken> {
14582        support::token(&self.syntax, SyntaxKind::RETURN_KW)
14583    }
14584}
14585
14586#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14587pub struct ReturningClause {
14588    pub(crate) syntax: SyntaxNode,
14589}
14590impl ReturningClause {
14591    #[inline]
14592    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
14593        support::child(&self.syntax)
14594    }
14595    #[inline]
14596    pub fn target_list(&self) -> Option<TargetList> {
14597        support::child(&self.syntax)
14598    }
14599    #[inline]
14600    pub fn returning_token(&self) -> Option<SyntaxToken> {
14601        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
14602    }
14603}
14604
14605#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14606pub struct ReturningOption {
14607    pub(crate) syntax: SyntaxNode,
14608}
14609impl ReturningOption {
14610    #[inline]
14611    pub fn name(&self) -> Option<Name> {
14612        support::child(&self.syntax)
14613    }
14614    #[inline]
14615    pub fn as_token(&self) -> Option<SyntaxToken> {
14616        support::token(&self.syntax, SyntaxKind::AS_KW)
14617    }
14618    #[inline]
14619    pub fn new_token(&self) -> Option<SyntaxToken> {
14620        support::token(&self.syntax, SyntaxKind::NEW_KW)
14621    }
14622    #[inline]
14623    pub fn old_token(&self) -> Option<SyntaxToken> {
14624        support::token(&self.syntax, SyntaxKind::OLD_KW)
14625    }
14626}
14627
14628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14629pub struct ReturningOptionList {
14630    pub(crate) syntax: SyntaxNode,
14631}
14632impl ReturningOptionList {
14633    #[inline]
14634    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
14635        support::children(&self.syntax)
14636    }
14637    #[inline]
14638    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14639        support::token(&self.syntax, SyntaxKind::L_PAREN)
14640    }
14641    #[inline]
14642    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14643        support::token(&self.syntax, SyntaxKind::R_PAREN)
14644    }
14645    #[inline]
14646    pub fn with_token(&self) -> Option<SyntaxToken> {
14647        support::token(&self.syntax, SyntaxKind::WITH_KW)
14648    }
14649}
14650
14651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14652pub struct Revoke {
14653    pub(crate) syntax: SyntaxNode,
14654}
14655impl Revoke {
14656    #[inline]
14657    pub fn name_refs(&self) -> AstChildren<NameRef> {
14658        support::children(&self.syntax)
14659    }
14660    #[inline]
14661    pub fn paths(&self) -> AstChildren<Path> {
14662        support::children(&self.syntax)
14663    }
14664    #[inline]
14665    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14666        support::child(&self.syntax)
14667    }
14668    #[inline]
14669    pub fn role_ref(&self) -> Option<RoleRef> {
14670        support::child(&self.syntax)
14671    }
14672    #[inline]
14673    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14674        support::child(&self.syntax)
14675    }
14676    #[inline]
14677    pub fn all_token(&self) -> Option<SyntaxToken> {
14678        support::token(&self.syntax, SyntaxKind::ALL_KW)
14679    }
14680    #[inline]
14681    pub fn by_token(&self) -> Option<SyntaxToken> {
14682        support::token(&self.syntax, SyntaxKind::BY_KW)
14683    }
14684    #[inline]
14685    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14686        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14687    }
14688    #[inline]
14689    pub fn for_token(&self) -> Option<SyntaxToken> {
14690        support::token(&self.syntax, SyntaxKind::FOR_KW)
14691    }
14692    #[inline]
14693    pub fn from_token(&self) -> Option<SyntaxToken> {
14694        support::token(&self.syntax, SyntaxKind::FROM_KW)
14695    }
14696    #[inline]
14697    pub fn grant_token(&self) -> Option<SyntaxToken> {
14698        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14699    }
14700    #[inline]
14701    pub fn granted_token(&self) -> Option<SyntaxToken> {
14702        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
14703    }
14704    #[inline]
14705    pub fn in_token(&self) -> Option<SyntaxToken> {
14706        support::token(&self.syntax, SyntaxKind::IN_KW)
14707    }
14708    #[inline]
14709    pub fn on_token(&self) -> Option<SyntaxToken> {
14710        support::token(&self.syntax, SyntaxKind::ON_KW)
14711    }
14712    #[inline]
14713    pub fn option_token(&self) -> Option<SyntaxToken> {
14714        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14715    }
14716    #[inline]
14717    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14718        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14719    }
14720    #[inline]
14721    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14722        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14723    }
14724    #[inline]
14725    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14726        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14727    }
14728    #[inline]
14729    pub fn schema_token(&self) -> Option<SyntaxToken> {
14730        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14731    }
14732    #[inline]
14733    pub fn table_token(&self) -> Option<SyntaxToken> {
14734        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14735    }
14736    #[inline]
14737    pub fn tables_token(&self) -> Option<SyntaxToken> {
14738        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14739    }
14740}
14741
14742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14743pub struct RevokeCommand {
14744    pub(crate) syntax: SyntaxNode,
14745}
14746impl RevokeCommand {
14747    #[inline]
14748    pub fn role_ref(&self) -> Option<RoleRef> {
14749        support::child(&self.syntax)
14750    }
14751    #[inline]
14752    pub fn all_token(&self) -> Option<SyntaxToken> {
14753        support::token(&self.syntax, SyntaxKind::ALL_KW)
14754    }
14755    #[inline]
14756    pub fn alter_token(&self) -> Option<SyntaxToken> {
14757        support::token(&self.syntax, SyntaxKind::ALTER_KW)
14758    }
14759    #[inline]
14760    pub fn create_token(&self) -> Option<SyntaxToken> {
14761        support::token(&self.syntax, SyntaxKind::CREATE_KW)
14762    }
14763    #[inline]
14764    pub fn delete_token(&self) -> Option<SyntaxToken> {
14765        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14766    }
14767    #[inline]
14768    pub fn execute_token(&self) -> Option<SyntaxToken> {
14769        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
14770    }
14771    #[inline]
14772    pub fn ident_token(&self) -> Option<SyntaxToken> {
14773        support::token(&self.syntax, SyntaxKind::IDENT)
14774    }
14775    #[inline]
14776    pub fn insert_token(&self) -> Option<SyntaxToken> {
14777        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14778    }
14779    #[inline]
14780    pub fn references_token(&self) -> Option<SyntaxToken> {
14781        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14782    }
14783    #[inline]
14784    pub fn select_token(&self) -> Option<SyntaxToken> {
14785        support::token(&self.syntax, SyntaxKind::SELECT_KW)
14786    }
14787    #[inline]
14788    pub fn system_token(&self) -> Option<SyntaxToken> {
14789        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14790    }
14791    #[inline]
14792    pub fn temp_token(&self) -> Option<SyntaxToken> {
14793        support::token(&self.syntax, SyntaxKind::TEMP_KW)
14794    }
14795    #[inline]
14796    pub fn temporary_token(&self) -> Option<SyntaxToken> {
14797        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
14798    }
14799    #[inline]
14800    pub fn trigger_token(&self) -> Option<SyntaxToken> {
14801        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
14802    }
14803    #[inline]
14804    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14805        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14806    }
14807    #[inline]
14808    pub fn update_token(&self) -> Option<SyntaxToken> {
14809        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14810    }
14811}
14812
14813#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14814pub struct RevokeCommandList {
14815    pub(crate) syntax: SyntaxNode,
14816}
14817impl RevokeCommandList {
14818    #[inline]
14819    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
14820        support::children(&self.syntax)
14821    }
14822}
14823
14824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14825pub struct RevokeDefaultPrivileges {
14826    pub(crate) syntax: SyntaxNode,
14827}
14828impl RevokeDefaultPrivileges {
14829    #[inline]
14830    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
14831        support::child(&self.syntax)
14832    }
14833    #[inline]
14834    pub fn privileges(&self) -> Option<Privileges> {
14835        support::child(&self.syntax)
14836    }
14837    #[inline]
14838    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14839        support::child(&self.syntax)
14840    }
14841    #[inline]
14842    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14843        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14844    }
14845    #[inline]
14846    pub fn for_token(&self) -> Option<SyntaxToken> {
14847        support::token(&self.syntax, SyntaxKind::FOR_KW)
14848    }
14849    #[inline]
14850    pub fn from_token(&self) -> Option<SyntaxToken> {
14851        support::token(&self.syntax, SyntaxKind::FROM_KW)
14852    }
14853    #[inline]
14854    pub fn grant_token(&self) -> Option<SyntaxToken> {
14855        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14856    }
14857    #[inline]
14858    pub fn on_token(&self) -> Option<SyntaxToken> {
14859        support::token(&self.syntax, SyntaxKind::ON_KW)
14860    }
14861    #[inline]
14862    pub fn option_token(&self) -> Option<SyntaxToken> {
14863        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14864    }
14865    #[inline]
14866    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14867        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14868    }
14869    #[inline]
14870    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14871        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14872    }
14873}
14874
14875#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14876pub struct Role {
14877    pub(crate) syntax: SyntaxNode,
14878}
14879impl Role {
14880    #[inline]
14881    pub fn name(&self) -> Option<Name> {
14882        support::child(&self.syntax)
14883    }
14884    #[inline]
14885    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14886        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14887    }
14888    #[inline]
14889    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14890        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14891    }
14892    #[inline]
14893    pub fn group_token(&self) -> Option<SyntaxToken> {
14894        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14895    }
14896    #[inline]
14897    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14898        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14899    }
14900}
14901
14902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14903pub struct RoleOption {
14904    pub(crate) syntax: SyntaxNode,
14905}
14906impl RoleOption {
14907    #[inline]
14908    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14909        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14910    }
14911}
14912
14913#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14914pub struct RoleOptionList {
14915    pub(crate) syntax: SyntaxNode,
14916}
14917impl RoleOptionList {
14918    #[inline]
14919    pub fn role_options(&self) -> AstChildren<RoleOption> {
14920        support::children(&self.syntax)
14921    }
14922    #[inline]
14923    pub fn with_token(&self) -> Option<SyntaxToken> {
14924        support::token(&self.syntax, SyntaxKind::WITH_KW)
14925    }
14926}
14927
14928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14929pub struct RoleRef {
14930    pub(crate) syntax: SyntaxNode,
14931}
14932impl RoleRef {
14933    #[inline]
14934    pub fn name_ref(&self) -> Option<NameRef> {
14935        support::child(&self.syntax)
14936    }
14937    #[inline]
14938    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14939        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14940    }
14941    #[inline]
14942    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14943        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14944    }
14945    #[inline]
14946    pub fn group_token(&self) -> Option<SyntaxToken> {
14947        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14948    }
14949    #[inline]
14950    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14951        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14952    }
14953}
14954
14955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14956pub struct RoleRefList {
14957    pub(crate) syntax: SyntaxNode,
14958}
14959impl RoleRefList {
14960    #[inline]
14961    pub fn role_refs(&self) -> AstChildren<RoleRef> {
14962        support::children(&self.syntax)
14963    }
14964}
14965
14966#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14967pub struct Rollback {
14968    pub(crate) syntax: SyntaxNode,
14969}
14970impl Rollback {
14971    #[inline]
14972    pub fn literal(&self) -> Option<Literal> {
14973        support::child(&self.syntax)
14974    }
14975    #[inline]
14976    pub fn name_ref(&self) -> Option<NameRef> {
14977        support::child(&self.syntax)
14978    }
14979    #[inline]
14980    pub fn abort_token(&self) -> Option<SyntaxToken> {
14981        support::token(&self.syntax, SyntaxKind::ABORT_KW)
14982    }
14983    #[inline]
14984    pub fn and_token(&self) -> Option<SyntaxToken> {
14985        support::token(&self.syntax, SyntaxKind::AND_KW)
14986    }
14987    #[inline]
14988    pub fn chain_token(&self) -> Option<SyntaxToken> {
14989        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
14990    }
14991    #[inline]
14992    pub fn no_token(&self) -> Option<SyntaxToken> {
14993        support::token(&self.syntax, SyntaxKind::NO_KW)
14994    }
14995    #[inline]
14996    pub fn prepared_token(&self) -> Option<SyntaxToken> {
14997        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
14998    }
14999    #[inline]
15000    pub fn rollback_token(&self) -> Option<SyntaxToken> {
15001        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
15002    }
15003    #[inline]
15004    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15005        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15006    }
15007    #[inline]
15008    pub fn to_token(&self) -> Option<SyntaxToken> {
15009        support::token(&self.syntax, SyntaxKind::TO_KW)
15010    }
15011    #[inline]
15012    pub fn transaction_token(&self) -> Option<SyntaxToken> {
15013        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
15014    }
15015    #[inline]
15016    pub fn work_token(&self) -> Option<SyntaxToken> {
15017        support::token(&self.syntax, SyntaxKind::WORK_KW)
15018    }
15019}
15020
15021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15022pub struct Row {
15023    pub(crate) syntax: SyntaxNode,
15024}
15025impl Row {
15026    #[inline]
15027    pub fn exprs(&self) -> AstChildren<Expr> {
15028        support::children(&self.syntax)
15029    }
15030}
15031
15032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15033pub struct RowList {
15034    pub(crate) syntax: SyntaxNode,
15035}
15036impl RowList {
15037    #[inline]
15038    pub fn rows(&self) -> AstChildren<Row> {
15039        support::children(&self.syntax)
15040    }
15041}
15042
15043#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15044pub struct RowsFuncOption {
15045    pub(crate) syntax: SyntaxNode,
15046}
15047impl RowsFuncOption {
15048    #[inline]
15049    pub fn rows_token(&self) -> Option<SyntaxToken> {
15050        support::token(&self.syntax, SyntaxKind::ROWS_KW)
15051    }
15052}
15053
15054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15055pub struct Savepoint {
15056    pub(crate) syntax: SyntaxNode,
15057}
15058impl Savepoint {
15059    #[inline]
15060    pub fn name(&self) -> Option<Name> {
15061        support::child(&self.syntax)
15062    }
15063    #[inline]
15064    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15065        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15066    }
15067}
15068
15069#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15070pub struct SecurityFuncOption {
15071    pub(crate) syntax: SyntaxNode,
15072}
15073impl SecurityFuncOption {
15074    #[inline]
15075    pub fn definer_token(&self) -> Option<SyntaxToken> {
15076        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15077    }
15078    #[inline]
15079    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15080        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15081    }
15082    #[inline]
15083    pub fn security_token(&self) -> Option<SyntaxToken> {
15084        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15085    }
15086}
15087
15088#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15089pub struct SecurityLabel {
15090    pub(crate) syntax: SyntaxNode,
15091}
15092impl SecurityLabel {
15093    #[inline]
15094    pub fn aggregate(&self) -> Option<Aggregate> {
15095        support::child(&self.syntax)
15096    }
15097    #[inline]
15098    pub fn for_provider(&self) -> Option<ForProvider> {
15099        support::child(&self.syntax)
15100    }
15101    #[inline]
15102    pub fn function_sig(&self) -> Option<FunctionSig> {
15103        support::child(&self.syntax)
15104    }
15105    #[inline]
15106    pub fn literal(&self) -> Option<Literal> {
15107        support::child(&self.syntax)
15108    }
15109    #[inline]
15110    pub fn path(&self) -> Option<Path> {
15111        support::child(&self.syntax)
15112    }
15113    #[inline]
15114    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15115        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15116    }
15117    #[inline]
15118    pub fn column_token(&self) -> Option<SyntaxToken> {
15119        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15120    }
15121    #[inline]
15122    pub fn database_token(&self) -> Option<SyntaxToken> {
15123        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15124    }
15125    #[inline]
15126    pub fn domain_token(&self) -> Option<SyntaxToken> {
15127        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15128    }
15129    #[inline]
15130    pub fn event_token(&self) -> Option<SyntaxToken> {
15131        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15132    }
15133    #[inline]
15134    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15135        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15136    }
15137    #[inline]
15138    pub fn function_token(&self) -> Option<SyntaxToken> {
15139        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15140    }
15141    #[inline]
15142    pub fn is_token(&self) -> Option<SyntaxToken> {
15143        support::token(&self.syntax, SyntaxKind::IS_KW)
15144    }
15145    #[inline]
15146    pub fn label_token(&self) -> Option<SyntaxToken> {
15147        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15148    }
15149    #[inline]
15150    pub fn language_token(&self) -> Option<SyntaxToken> {
15151        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15152    }
15153    #[inline]
15154    pub fn large_token(&self) -> Option<SyntaxToken> {
15155        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15156    }
15157    #[inline]
15158    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15159        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15160    }
15161    #[inline]
15162    pub fn null_token(&self) -> Option<SyntaxToken> {
15163        support::token(&self.syntax, SyntaxKind::NULL_KW)
15164    }
15165    #[inline]
15166    pub fn object_token(&self) -> Option<SyntaxToken> {
15167        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15168    }
15169    #[inline]
15170    pub fn on_token(&self) -> Option<SyntaxToken> {
15171        support::token(&self.syntax, SyntaxKind::ON_KW)
15172    }
15173    #[inline]
15174    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15175        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15176    }
15177    #[inline]
15178    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15179        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15180    }
15181    #[inline]
15182    pub fn publication_token(&self) -> Option<SyntaxToken> {
15183        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15184    }
15185    #[inline]
15186    pub fn role_token(&self) -> Option<SyntaxToken> {
15187        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15188    }
15189    #[inline]
15190    pub fn routine_token(&self) -> Option<SyntaxToken> {
15191        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15192    }
15193    #[inline]
15194    pub fn schema_token(&self) -> Option<SyntaxToken> {
15195        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15196    }
15197    #[inline]
15198    pub fn security_token(&self) -> Option<SyntaxToken> {
15199        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15200    }
15201    #[inline]
15202    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15203        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15204    }
15205    #[inline]
15206    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15207        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15208    }
15209    #[inline]
15210    pub fn table_token(&self) -> Option<SyntaxToken> {
15211        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15212    }
15213    #[inline]
15214    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15215        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15216    }
15217    #[inline]
15218    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15219        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15220    }
15221    #[inline]
15222    pub fn type_token(&self) -> Option<SyntaxToken> {
15223        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15224    }
15225    #[inline]
15226    pub fn view_token(&self) -> Option<SyntaxToken> {
15227        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15228    }
15229}
15230
15231#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15232pub struct Select {
15233    pub(crate) syntax: SyntaxNode,
15234}
15235impl Select {
15236    #[inline]
15237    pub fn fetch_clause(&self) -> Option<FetchClause> {
15238        support::child(&self.syntax)
15239    }
15240    #[inline]
15241    pub fn filter_clause(&self) -> Option<FilterClause> {
15242        support::child(&self.syntax)
15243    }
15244    #[inline]
15245    pub fn from_clause(&self) -> Option<FromClause> {
15246        support::child(&self.syntax)
15247    }
15248    #[inline]
15249    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15250        support::child(&self.syntax)
15251    }
15252    #[inline]
15253    pub fn having_clause(&self) -> Option<HavingClause> {
15254        support::child(&self.syntax)
15255    }
15256    #[inline]
15257    pub fn limit_clause(&self) -> Option<LimitClause> {
15258        support::child(&self.syntax)
15259    }
15260    #[inline]
15261    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15262        support::children(&self.syntax)
15263    }
15264    #[inline]
15265    pub fn offset_clause(&self) -> Option<OffsetClause> {
15266        support::child(&self.syntax)
15267    }
15268    #[inline]
15269    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15270        support::child(&self.syntax)
15271    }
15272    #[inline]
15273    pub fn select_clause(&self) -> Option<SelectClause> {
15274        support::child(&self.syntax)
15275    }
15276    #[inline]
15277    pub fn where_clause(&self) -> Option<WhereClause> {
15278        support::child(&self.syntax)
15279    }
15280    #[inline]
15281    pub fn window_clause(&self) -> Option<WindowClause> {
15282        support::child(&self.syntax)
15283    }
15284    #[inline]
15285    pub fn with_clause(&self) -> Option<WithClause> {
15286        support::child(&self.syntax)
15287    }
15288}
15289
15290#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15291pub struct SelectClause {
15292    pub(crate) syntax: SyntaxNode,
15293}
15294impl SelectClause {
15295    #[inline]
15296    pub fn distinct_clause(&self) -> Option<DistinctClause> {
15297        support::child(&self.syntax)
15298    }
15299    #[inline]
15300    pub fn target_list(&self) -> Option<TargetList> {
15301        support::child(&self.syntax)
15302    }
15303    #[inline]
15304    pub fn all_token(&self) -> Option<SyntaxToken> {
15305        support::token(&self.syntax, SyntaxKind::ALL_KW)
15306    }
15307    #[inline]
15308    pub fn select_token(&self) -> Option<SyntaxToken> {
15309        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15310    }
15311}
15312
15313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15314pub struct SelectInto {
15315    pub(crate) syntax: SyntaxNode,
15316}
15317impl SelectInto {
15318    #[inline]
15319    pub fn filter_clause(&self) -> Option<FilterClause> {
15320        support::child(&self.syntax)
15321    }
15322    #[inline]
15323    pub fn from_clause(&self) -> Option<FromClause> {
15324        support::child(&self.syntax)
15325    }
15326    #[inline]
15327    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15328        support::child(&self.syntax)
15329    }
15330    #[inline]
15331    pub fn having_clause(&self) -> Option<HavingClause> {
15332        support::child(&self.syntax)
15333    }
15334    #[inline]
15335    pub fn into_clause(&self) -> Option<IntoClause> {
15336        support::child(&self.syntax)
15337    }
15338    #[inline]
15339    pub fn limit_clause(&self) -> Option<LimitClause> {
15340        support::child(&self.syntax)
15341    }
15342    #[inline]
15343    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15344        support::children(&self.syntax)
15345    }
15346    #[inline]
15347    pub fn offset_clause(&self) -> Option<OffsetClause> {
15348        support::child(&self.syntax)
15349    }
15350    #[inline]
15351    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15352        support::child(&self.syntax)
15353    }
15354    #[inline]
15355    pub fn select_clause(&self) -> Option<SelectClause> {
15356        support::child(&self.syntax)
15357    }
15358    #[inline]
15359    pub fn where_clause(&self) -> Option<WhereClause> {
15360        support::child(&self.syntax)
15361    }
15362    #[inline]
15363    pub fn window_clause(&self) -> Option<WindowClause> {
15364        support::child(&self.syntax)
15365    }
15366    #[inline]
15367    pub fn with_clause(&self) -> Option<WithClause> {
15368        support::child(&self.syntax)
15369    }
15370}
15371
15372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15373pub struct SequenceOption {
15374    pub(crate) syntax: SyntaxNode,
15375}
15376impl SequenceOption {
15377    #[inline]
15378    pub fn literal(&self) -> Option<Literal> {
15379        support::child(&self.syntax)
15380    }
15381    #[inline]
15382    pub fn name_ref(&self) -> Option<NameRef> {
15383        support::child(&self.syntax)
15384    }
15385    #[inline]
15386    pub fn path(&self) -> Option<Path> {
15387        support::child(&self.syntax)
15388    }
15389    #[inline]
15390    pub fn ty(&self) -> Option<Type> {
15391        support::child(&self.syntax)
15392    }
15393    #[inline]
15394    pub fn as_token(&self) -> Option<SyntaxToken> {
15395        support::token(&self.syntax, SyntaxKind::AS_KW)
15396    }
15397    #[inline]
15398    pub fn by_token(&self) -> Option<SyntaxToken> {
15399        support::token(&self.syntax, SyntaxKind::BY_KW)
15400    }
15401    #[inline]
15402    pub fn cycle_token(&self) -> Option<SyntaxToken> {
15403        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
15404    }
15405    #[inline]
15406    pub fn increment_token(&self) -> Option<SyntaxToken> {
15407        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
15408    }
15409    #[inline]
15410    pub fn logged_token(&self) -> Option<SyntaxToken> {
15411        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15412    }
15413    #[inline]
15414    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
15415        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
15416    }
15417    #[inline]
15418    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
15419        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
15420    }
15421    #[inline]
15422    pub fn name_token(&self) -> Option<SyntaxToken> {
15423        support::token(&self.syntax, SyntaxKind::NAME_KW)
15424    }
15425    #[inline]
15426    pub fn no_token(&self) -> Option<SyntaxToken> {
15427        support::token(&self.syntax, SyntaxKind::NO_KW)
15428    }
15429    #[inline]
15430    pub fn none_token(&self) -> Option<SyntaxToken> {
15431        support::token(&self.syntax, SyntaxKind::NONE_KW)
15432    }
15433    #[inline]
15434    pub fn owned_token(&self) -> Option<SyntaxToken> {
15435        support::token(&self.syntax, SyntaxKind::OWNED_KW)
15436    }
15437    #[inline]
15438    pub fn restart_token(&self) -> Option<SyntaxToken> {
15439        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15440    }
15441    #[inline]
15442    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15443        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15444    }
15445    #[inline]
15446    pub fn start_token(&self) -> Option<SyntaxToken> {
15447        support::token(&self.syntax, SyntaxKind::START_KW)
15448    }
15449    #[inline]
15450    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
15451        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
15452    }
15453    #[inline]
15454    pub fn with_token(&self) -> Option<SyntaxToken> {
15455        support::token(&self.syntax, SyntaxKind::WITH_KW)
15456    }
15457}
15458
15459#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15460pub struct SequenceOptionList {
15461    pub(crate) syntax: SyntaxNode,
15462}
15463impl SequenceOptionList {
15464    #[inline]
15465    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
15466        support::children(&self.syntax)
15467    }
15468    #[inline]
15469    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15470        support::token(&self.syntax, SyntaxKind::L_PAREN)
15471    }
15472    #[inline]
15473    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15474        support::token(&self.syntax, SyntaxKind::R_PAREN)
15475    }
15476}
15477
15478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15479pub struct Serializable {
15480    pub(crate) syntax: SyntaxNode,
15481}
15482impl Serializable {
15483    #[inline]
15484    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15485        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15486    }
15487    #[inline]
15488    pub fn level_token(&self) -> Option<SyntaxToken> {
15489        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15490    }
15491    #[inline]
15492    pub fn serializable_token(&self) -> Option<SyntaxToken> {
15493        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
15494    }
15495}
15496
15497#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15498pub struct ServerName {
15499    pub(crate) syntax: SyntaxNode,
15500}
15501impl ServerName {
15502    #[inline]
15503    pub fn name_ref(&self) -> Option<NameRef> {
15504        support::child(&self.syntax)
15505    }
15506    #[inline]
15507    pub fn server_token(&self) -> Option<SyntaxToken> {
15508        support::token(&self.syntax, SyntaxKind::SERVER_KW)
15509    }
15510}
15511
15512#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15513pub struct Set {
15514    pub(crate) syntax: SyntaxNode,
15515}
15516impl Set {
15517    #[inline]
15518    pub fn config_value(&self) -> Option<ConfigValue> {
15519        support::child(&self.syntax)
15520    }
15521    #[inline]
15522    pub fn config_values(&self) -> AstChildren<ConfigValue> {
15523        support::children(&self.syntax)
15524    }
15525    #[inline]
15526    pub fn literal(&self) -> Option<Literal> {
15527        support::child(&self.syntax)
15528    }
15529    #[inline]
15530    pub fn path(&self) -> Option<Path> {
15531        support::child(&self.syntax)
15532    }
15533    #[inline]
15534    pub fn eq_token(&self) -> Option<SyntaxToken> {
15535        support::token(&self.syntax, SyntaxKind::EQ)
15536    }
15537    #[inline]
15538    pub fn catalog_token(&self) -> Option<SyntaxToken> {
15539        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
15540    }
15541    #[inline]
15542    pub fn content_token(&self) -> Option<SyntaxToken> {
15543        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
15544    }
15545    #[inline]
15546    pub fn current_token(&self) -> Option<SyntaxToken> {
15547        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15548    }
15549    #[inline]
15550    pub fn default_token(&self) -> Option<SyntaxToken> {
15551        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15552    }
15553    #[inline]
15554    pub fn document_token(&self) -> Option<SyntaxToken> {
15555        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
15556    }
15557    #[inline]
15558    pub fn from_token(&self) -> Option<SyntaxToken> {
15559        support::token(&self.syntax, SyntaxKind::FROM_KW)
15560    }
15561    #[inline]
15562    pub fn local_token(&self) -> Option<SyntaxToken> {
15563        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15564    }
15565    #[inline]
15566    pub fn option_token(&self) -> Option<SyntaxToken> {
15567        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15568    }
15569    #[inline]
15570    pub fn schema_token(&self) -> Option<SyntaxToken> {
15571        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15572    }
15573    #[inline]
15574    pub fn session_token(&self) -> Option<SyntaxToken> {
15575        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15576    }
15577    #[inline]
15578    pub fn set_token(&self) -> Option<SyntaxToken> {
15579        support::token(&self.syntax, SyntaxKind::SET_KW)
15580    }
15581    #[inline]
15582    pub fn time_token(&self) -> Option<SyntaxToken> {
15583        support::token(&self.syntax, SyntaxKind::TIME_KW)
15584    }
15585    #[inline]
15586    pub fn to_token(&self) -> Option<SyntaxToken> {
15587        support::token(&self.syntax, SyntaxKind::TO_KW)
15588    }
15589    #[inline]
15590    pub fn xml_token(&self) -> Option<SyntaxToken> {
15591        support::token(&self.syntax, SyntaxKind::XML_KW)
15592    }
15593    #[inline]
15594    pub fn zone_token(&self) -> Option<SyntaxToken> {
15595        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15596    }
15597}
15598
15599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15600pub struct SetAccessMethod {
15601    pub(crate) syntax: SyntaxNode,
15602}
15603impl SetAccessMethod {
15604    #[inline]
15605    pub fn name_ref(&self) -> Option<NameRef> {
15606        support::child(&self.syntax)
15607    }
15608    #[inline]
15609    pub fn access_token(&self) -> Option<SyntaxToken> {
15610        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
15611    }
15612    #[inline]
15613    pub fn method_token(&self) -> Option<SyntaxToken> {
15614        support::token(&self.syntax, SyntaxKind::METHOD_KW)
15615    }
15616    #[inline]
15617    pub fn set_token(&self) -> Option<SyntaxToken> {
15618        support::token(&self.syntax, SyntaxKind::SET_KW)
15619    }
15620}
15621
15622#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15623pub struct SetClause {
15624    pub(crate) syntax: SyntaxNode,
15625}
15626impl SetClause {
15627    #[inline]
15628    pub fn set_column_list(&self) -> Option<SetColumnList> {
15629        support::child(&self.syntax)
15630    }
15631    #[inline]
15632    pub fn set_token(&self) -> Option<SyntaxToken> {
15633        support::token(&self.syntax, SyntaxKind::SET_KW)
15634    }
15635}
15636
15637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15638pub struct SetColumnList {
15639    pub(crate) syntax: SyntaxNode,
15640}
15641impl SetColumnList {
15642    #[inline]
15643    pub fn set_columns(&self) -> AstChildren<SetColumn> {
15644        support::children(&self.syntax)
15645    }
15646}
15647
15648#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15649pub struct SetCompression {
15650    pub(crate) syntax: SyntaxNode,
15651}
15652impl SetCompression {
15653    #[inline]
15654    pub fn compression_token(&self) -> Option<SyntaxToken> {
15655        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
15656    }
15657    #[inline]
15658    pub fn set_token(&self) -> Option<SyntaxToken> {
15659        support::token(&self.syntax, SyntaxKind::SET_KW)
15660    }
15661}
15662
15663#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15664pub struct SetConfigParam {
15665    pub(crate) syntax: SyntaxNode,
15666}
15667impl SetConfigParam {
15668    #[inline]
15669    pub fn path(&self) -> Option<Path> {
15670        support::child(&self.syntax)
15671    }
15672    #[inline]
15673    pub fn set_token(&self) -> Option<SyntaxToken> {
15674        support::token(&self.syntax, SyntaxKind::SET_KW)
15675    }
15676}
15677
15678#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15679pub struct SetConstraints {
15680    pub(crate) syntax: SyntaxNode,
15681}
15682impl SetConstraints {
15683    #[inline]
15684    pub fn paths(&self) -> AstChildren<Path> {
15685        support::children(&self.syntax)
15686    }
15687    #[inline]
15688    pub fn all_token(&self) -> Option<SyntaxToken> {
15689        support::token(&self.syntax, SyntaxKind::ALL_KW)
15690    }
15691    #[inline]
15692    pub fn constraints_token(&self) -> Option<SyntaxToken> {
15693        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
15694    }
15695    #[inline]
15696    pub fn deferred_token(&self) -> Option<SyntaxToken> {
15697        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
15698    }
15699    #[inline]
15700    pub fn immediate_token(&self) -> Option<SyntaxToken> {
15701        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
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 SetDefault {
15711    pub(crate) syntax: SyntaxNode,
15712}
15713impl SetDefault {
15714    #[inline]
15715    pub fn expr(&self) -> Option<Expr> {
15716        support::child(&self.syntax)
15717    }
15718    #[inline]
15719    pub fn default_token(&self) -> Option<SyntaxToken> {
15720        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15721    }
15722    #[inline]
15723    pub fn set_token(&self) -> Option<SyntaxToken> {
15724        support::token(&self.syntax, SyntaxKind::SET_KW)
15725    }
15726}
15727
15728#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15729pub struct SetDefaultColumns {
15730    pub(crate) syntax: SyntaxNode,
15731}
15732impl SetDefaultColumns {
15733    #[inline]
15734    pub fn column_list(&self) -> Option<ColumnList> {
15735        support::child(&self.syntax)
15736    }
15737    #[inline]
15738    pub fn default_token(&self) -> Option<SyntaxToken> {
15739        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15740    }
15741    #[inline]
15742    pub fn set_token(&self) -> Option<SyntaxToken> {
15743        support::token(&self.syntax, SyntaxKind::SET_KW)
15744    }
15745}
15746
15747#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15748pub struct SetExpr {
15749    pub(crate) syntax: SyntaxNode,
15750}
15751impl SetExpr {
15752    #[inline]
15753    pub fn expr(&self) -> Option<Expr> {
15754        support::child(&self.syntax)
15755    }
15756    #[inline]
15757    pub fn default_token(&self) -> Option<SyntaxToken> {
15758        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15759    }
15760}
15761
15762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15763pub struct SetExprList {
15764    pub(crate) syntax: SyntaxNode,
15765}
15766impl SetExprList {
15767    #[inline]
15768    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
15769        support::children(&self.syntax)
15770    }
15771    #[inline]
15772    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15773        support::token(&self.syntax, SyntaxKind::L_PAREN)
15774    }
15775    #[inline]
15776    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15777        support::token(&self.syntax, SyntaxKind::R_PAREN)
15778    }
15779    #[inline]
15780    pub fn row_token(&self) -> Option<SyntaxToken> {
15781        support::token(&self.syntax, SyntaxKind::ROW_KW)
15782    }
15783}
15784
15785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15786pub struct SetExpression {
15787    pub(crate) syntax: SyntaxNode,
15788}
15789impl SetExpression {
15790    #[inline]
15791    pub fn expr(&self) -> Option<Expr> {
15792        support::child(&self.syntax)
15793    }
15794    #[inline]
15795    pub fn expression_token(&self) -> Option<SyntaxToken> {
15796        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
15797    }
15798    #[inline]
15799    pub fn set_token(&self) -> Option<SyntaxToken> {
15800        support::token(&self.syntax, SyntaxKind::SET_KW)
15801    }
15802}
15803
15804#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15805pub struct SetFuncOption {
15806    pub(crate) syntax: SyntaxNode,
15807}
15808impl SetFuncOption {
15809    #[inline]
15810    pub fn set_token(&self) -> Option<SyntaxToken> {
15811        support::token(&self.syntax, SyntaxKind::SET_KW)
15812    }
15813}
15814
15815#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15816pub struct SetGenerated {
15817    pub(crate) syntax: SyntaxNode,
15818}
15819impl SetGenerated {
15820    #[inline]
15821    pub fn set_token(&self) -> Option<SyntaxToken> {
15822        support::token(&self.syntax, SyntaxKind::SET_KW)
15823    }
15824}
15825
15826#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15827pub struct SetGeneratedOptions {
15828    pub(crate) syntax: SyntaxNode,
15829}
15830impl SetGeneratedOptions {
15831    #[inline]
15832    pub fn generated_token(&self) -> Option<SyntaxToken> {
15833        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
15834    }
15835    #[inline]
15836    pub fn set_token(&self) -> Option<SyntaxToken> {
15837        support::token(&self.syntax, SyntaxKind::SET_KW)
15838    }
15839}
15840
15841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15842pub struct SetLogged {
15843    pub(crate) syntax: SyntaxNode,
15844}
15845impl SetLogged {
15846    #[inline]
15847    pub fn logged_token(&self) -> Option<SyntaxToken> {
15848        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15849    }
15850    #[inline]
15851    pub fn set_token(&self) -> Option<SyntaxToken> {
15852        support::token(&self.syntax, SyntaxKind::SET_KW)
15853    }
15854}
15855
15856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15857pub struct SetMultipleColumns {
15858    pub(crate) syntax: SyntaxNode,
15859}
15860impl SetMultipleColumns {
15861    #[inline]
15862    pub fn column_list(&self) -> Option<ColumnList> {
15863        support::child(&self.syntax)
15864    }
15865    #[inline]
15866    pub fn paren_select(&self) -> Option<ParenSelect> {
15867        support::child(&self.syntax)
15868    }
15869    #[inline]
15870    pub fn set_expr_list(&self) -> Option<SetExprList> {
15871        support::child(&self.syntax)
15872    }
15873    #[inline]
15874    pub fn eq_token(&self) -> Option<SyntaxToken> {
15875        support::token(&self.syntax, SyntaxKind::EQ)
15876    }
15877}
15878
15879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15880pub struct SetNotNull {
15881    pub(crate) syntax: SyntaxNode,
15882}
15883impl SetNotNull {
15884    #[inline]
15885    pub fn not_token(&self) -> Option<SyntaxToken> {
15886        support::token(&self.syntax, SyntaxKind::NOT_KW)
15887    }
15888    #[inline]
15889    pub fn null_token(&self) -> Option<SyntaxToken> {
15890        support::token(&self.syntax, SyntaxKind::NULL_KW)
15891    }
15892    #[inline]
15893    pub fn set_token(&self) -> Option<SyntaxToken> {
15894        support::token(&self.syntax, SyntaxKind::SET_KW)
15895    }
15896}
15897
15898#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15899pub struct SetNullColumns {
15900    pub(crate) syntax: SyntaxNode,
15901}
15902impl SetNullColumns {
15903    #[inline]
15904    pub fn column_list(&self) -> Option<ColumnList> {
15905        support::child(&self.syntax)
15906    }
15907    #[inline]
15908    pub fn null_token(&self) -> Option<SyntaxToken> {
15909        support::token(&self.syntax, SyntaxKind::NULL_KW)
15910    }
15911    #[inline]
15912    pub fn set_token(&self) -> Option<SyntaxToken> {
15913        support::token(&self.syntax, SyntaxKind::SET_KW)
15914    }
15915}
15916
15917#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15918pub struct SetOptions {
15919    pub(crate) syntax: SyntaxNode,
15920}
15921impl SetOptions {
15922    #[inline]
15923    pub fn attribute_list(&self) -> Option<AttributeList> {
15924        support::child(&self.syntax)
15925    }
15926    #[inline]
15927    pub fn set_token(&self) -> Option<SyntaxToken> {
15928        support::token(&self.syntax, SyntaxKind::SET_KW)
15929    }
15930}
15931
15932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15933pub struct SetOptionsList {
15934    pub(crate) syntax: SyntaxNode,
15935}
15936impl SetOptionsList {
15937    #[inline]
15938    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
15939        support::child(&self.syntax)
15940    }
15941    #[inline]
15942    pub fn options_token(&self) -> Option<SyntaxToken> {
15943        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
15944    }
15945    #[inline]
15946    pub fn set_token(&self) -> Option<SyntaxToken> {
15947        support::token(&self.syntax, SyntaxKind::SET_KW)
15948    }
15949}
15950
15951#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15952pub struct SetRole {
15953    pub(crate) syntax: SyntaxNode,
15954}
15955impl SetRole {
15956    #[inline]
15957    pub fn role_ref(&self) -> Option<RoleRef> {
15958        support::child(&self.syntax)
15959    }
15960    #[inline]
15961    pub fn local_token(&self) -> Option<SyntaxToken> {
15962        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15963    }
15964    #[inline]
15965    pub fn none_token(&self) -> Option<SyntaxToken> {
15966        support::token(&self.syntax, SyntaxKind::NONE_KW)
15967    }
15968    #[inline]
15969    pub fn reset_token(&self) -> Option<SyntaxToken> {
15970        support::token(&self.syntax, SyntaxKind::RESET_KW)
15971    }
15972    #[inline]
15973    pub fn role_token(&self) -> Option<SyntaxToken> {
15974        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15975    }
15976    #[inline]
15977    pub fn session_token(&self) -> Option<SyntaxToken> {
15978        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15979    }
15980    #[inline]
15981    pub fn set_token(&self) -> Option<SyntaxToken> {
15982        support::token(&self.syntax, SyntaxKind::SET_KW)
15983    }
15984}
15985
15986#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15987pub struct SetSchema {
15988    pub(crate) syntax: SyntaxNode,
15989}
15990impl SetSchema {
15991    #[inline]
15992    pub fn name_ref(&self) -> Option<NameRef> {
15993        support::child(&self.syntax)
15994    }
15995    #[inline]
15996    pub fn schema_token(&self) -> Option<SyntaxToken> {
15997        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15998    }
15999    #[inline]
16000    pub fn set_token(&self) -> Option<SyntaxToken> {
16001        support::token(&self.syntax, SyntaxKind::SET_KW)
16002    }
16003}
16004
16005#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16006pub struct SetSequenceOption {
16007    pub(crate) syntax: SyntaxNode,
16008}
16009impl SetSequenceOption {
16010    #[inline]
16011    pub fn set_token(&self) -> Option<SyntaxToken> {
16012        support::token(&self.syntax, SyntaxKind::SET_KW)
16013    }
16014}
16015
16016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16017pub struct SetSessionAuth {
16018    pub(crate) syntax: SyntaxNode,
16019}
16020impl SetSessionAuth {
16021    #[inline]
16022    pub fn literal(&self) -> Option<Literal> {
16023        support::child(&self.syntax)
16024    }
16025    #[inline]
16026    pub fn role_ref(&self) -> Option<RoleRef> {
16027        support::child(&self.syntax)
16028    }
16029    #[inline]
16030    pub fn authorization_token(&self) -> Option<SyntaxToken> {
16031        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
16032    }
16033    #[inline]
16034    pub fn default_token(&self) -> Option<SyntaxToken> {
16035        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16036    }
16037    #[inline]
16038    pub fn local_token(&self) -> Option<SyntaxToken> {
16039        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16040    }
16041    #[inline]
16042    pub fn session_token(&self) -> Option<SyntaxToken> {
16043        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16044    }
16045    #[inline]
16046    pub fn set_token(&self) -> Option<SyntaxToken> {
16047        support::token(&self.syntax, SyntaxKind::SET_KW)
16048    }
16049}
16050
16051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16052pub struct SetSingleColumn {
16053    pub(crate) syntax: SyntaxNode,
16054}
16055impl SetSingleColumn {
16056    #[inline]
16057    pub fn column(&self) -> Option<Column> {
16058        support::child(&self.syntax)
16059    }
16060    #[inline]
16061    pub fn set_expr(&self) -> Option<SetExpr> {
16062        support::child(&self.syntax)
16063    }
16064    #[inline]
16065    pub fn eq_token(&self) -> Option<SyntaxToken> {
16066        support::token(&self.syntax, SyntaxKind::EQ)
16067    }
16068}
16069
16070#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16071pub struct SetStatistics {
16072    pub(crate) syntax: SyntaxNode,
16073}
16074impl SetStatistics {
16075    #[inline]
16076    pub fn set_token(&self) -> Option<SyntaxToken> {
16077        support::token(&self.syntax, SyntaxKind::SET_KW)
16078    }
16079    #[inline]
16080    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16081        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16082    }
16083}
16084
16085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16086pub struct SetStorage {
16087    pub(crate) syntax: SyntaxNode,
16088}
16089impl SetStorage {
16090    #[inline]
16091    pub fn set_token(&self) -> Option<SyntaxToken> {
16092        support::token(&self.syntax, SyntaxKind::SET_KW)
16093    }
16094    #[inline]
16095    pub fn storage_token(&self) -> Option<SyntaxToken> {
16096        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16097    }
16098}
16099
16100#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16101pub struct SetTablespace {
16102    pub(crate) syntax: SyntaxNode,
16103}
16104impl SetTablespace {
16105    #[inline]
16106    pub fn path(&self) -> Option<Path> {
16107        support::child(&self.syntax)
16108    }
16109    #[inline]
16110    pub fn set_token(&self) -> Option<SyntaxToken> {
16111        support::token(&self.syntax, SyntaxKind::SET_KW)
16112    }
16113    #[inline]
16114    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16115        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16116    }
16117}
16118
16119#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16120pub struct SetTransaction {
16121    pub(crate) syntax: SyntaxNode,
16122}
16123impl SetTransaction {
16124    #[inline]
16125    pub fn literal(&self) -> Option<Literal> {
16126        support::child(&self.syntax)
16127    }
16128    #[inline]
16129    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16130        support::child(&self.syntax)
16131    }
16132    #[inline]
16133    pub fn as_token(&self) -> Option<SyntaxToken> {
16134        support::token(&self.syntax, SyntaxKind::AS_KW)
16135    }
16136    #[inline]
16137    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16138        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16139    }
16140    #[inline]
16141    pub fn session_token(&self) -> Option<SyntaxToken> {
16142        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16143    }
16144    #[inline]
16145    pub fn set_token(&self) -> Option<SyntaxToken> {
16146        support::token(&self.syntax, SyntaxKind::SET_KW)
16147    }
16148    #[inline]
16149    pub fn snapshot_token(&self) -> Option<SyntaxToken> {
16150        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16151    }
16152    #[inline]
16153    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16154        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16155    }
16156}
16157
16158#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16159pub struct SetType {
16160    pub(crate) syntax: SyntaxNode,
16161}
16162impl SetType {
16163    #[inline]
16164    pub fn collate(&self) -> Option<Collate> {
16165        support::child(&self.syntax)
16166    }
16167    #[inline]
16168    pub fn ty(&self) -> Option<Type> {
16169        support::child(&self.syntax)
16170    }
16171    #[inline]
16172    pub fn set_token(&self) -> Option<SyntaxToken> {
16173        support::token(&self.syntax, SyntaxKind::SET_KW)
16174    }
16175    #[inline]
16176    pub fn type_token(&self) -> Option<SyntaxToken> {
16177        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16178    }
16179}
16180
16181#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16182pub struct SetUnlogged {
16183    pub(crate) syntax: SyntaxNode,
16184}
16185impl SetUnlogged {
16186    #[inline]
16187    pub fn set_token(&self) -> Option<SyntaxToken> {
16188        support::token(&self.syntax, SyntaxKind::SET_KW)
16189    }
16190    #[inline]
16191    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16192        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16193    }
16194}
16195
16196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16197pub struct SetWithoutCluster {
16198    pub(crate) syntax: SyntaxNode,
16199}
16200impl SetWithoutCluster {
16201    #[inline]
16202    pub fn cluster_token(&self) -> Option<SyntaxToken> {
16203        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
16204    }
16205    #[inline]
16206    pub fn set_token(&self) -> Option<SyntaxToken> {
16207        support::token(&self.syntax, SyntaxKind::SET_KW)
16208    }
16209    #[inline]
16210    pub fn without_token(&self) -> Option<SyntaxToken> {
16211        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16212    }
16213}
16214
16215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16216pub struct SetWithoutOids {
16217    pub(crate) syntax: SyntaxNode,
16218}
16219impl SetWithoutOids {
16220    #[inline]
16221    pub fn oids_token(&self) -> Option<SyntaxToken> {
16222        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16223    }
16224    #[inline]
16225    pub fn set_token(&self) -> Option<SyntaxToken> {
16226        support::token(&self.syntax, SyntaxKind::SET_KW)
16227    }
16228    #[inline]
16229    pub fn without_token(&self) -> Option<SyntaxToken> {
16230        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16231    }
16232}
16233
16234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16235pub struct Show {
16236    pub(crate) syntax: SyntaxNode,
16237}
16238impl Show {
16239    #[inline]
16240    pub fn show_token(&self) -> Option<SyntaxToken> {
16241        support::token(&self.syntax, SyntaxKind::SHOW_KW)
16242    }
16243}
16244
16245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16246pub struct SimilarTo {
16247    pub(crate) syntax: SyntaxNode,
16248}
16249impl SimilarTo {
16250    #[inline]
16251    pub fn similar_token(&self) -> Option<SyntaxToken> {
16252        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16253    }
16254    #[inline]
16255    pub fn to_token(&self) -> Option<SyntaxToken> {
16256        support::token(&self.syntax, SyntaxKind::TO_KW)
16257    }
16258}
16259
16260#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16261pub struct SliceExpr {
16262    pub(crate) syntax: SyntaxNode,
16263}
16264impl SliceExpr {
16265    #[inline]
16266    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
16267        support::token(&self.syntax, SyntaxKind::L_BRACK)
16268    }
16269    #[inline]
16270    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
16271        support::token(&self.syntax, SyntaxKind::R_BRACK)
16272    }
16273    #[inline]
16274    pub fn colon_token(&self) -> Option<SyntaxToken> {
16275        support::token(&self.syntax, SyntaxKind::COLON)
16276    }
16277}
16278
16279#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16280pub struct SomeFn {
16281    pub(crate) syntax: SyntaxNode,
16282}
16283impl SomeFn {
16284    #[inline]
16285    pub fn expr(&self) -> Option<Expr> {
16286        support::child(&self.syntax)
16287    }
16288    #[inline]
16289    pub fn select_variant(&self) -> Option<SelectVariant> {
16290        support::child(&self.syntax)
16291    }
16292    #[inline]
16293    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16294        support::token(&self.syntax, SyntaxKind::L_PAREN)
16295    }
16296    #[inline]
16297    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16298        support::token(&self.syntax, SyntaxKind::R_PAREN)
16299    }
16300    #[inline]
16301    pub fn some_token(&self) -> Option<SyntaxToken> {
16302        support::token(&self.syntax, SyntaxKind::SOME_KW)
16303    }
16304}
16305
16306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16307pub struct SortAsc {
16308    pub(crate) syntax: SyntaxNode,
16309}
16310impl SortAsc {
16311    #[inline]
16312    pub fn asc_token(&self) -> Option<SyntaxToken> {
16313        support::token(&self.syntax, SyntaxKind::ASC_KW)
16314    }
16315}
16316
16317#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16318pub struct SortBy {
16319    pub(crate) syntax: SyntaxNode,
16320}
16321impl SortBy {
16322    #[inline]
16323    pub fn expr(&self) -> Option<Expr> {
16324        support::child(&self.syntax)
16325    }
16326    #[inline]
16327    pub fn nulls_first(&self) -> Option<NullsFirst> {
16328        support::child(&self.syntax)
16329    }
16330    #[inline]
16331    pub fn nulls_last(&self) -> Option<NullsLast> {
16332        support::child(&self.syntax)
16333    }
16334    #[inline]
16335    pub fn sort_asc(&self) -> Option<SortAsc> {
16336        support::child(&self.syntax)
16337    }
16338    #[inline]
16339    pub fn sort_desc(&self) -> Option<SortDesc> {
16340        support::child(&self.syntax)
16341    }
16342    #[inline]
16343    pub fn sort_using(&self) -> Option<SortUsing> {
16344        support::child(&self.syntax)
16345    }
16346}
16347
16348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16349pub struct SortByList {
16350    pub(crate) syntax: SyntaxNode,
16351}
16352impl SortByList {
16353    #[inline]
16354    pub fn sort_bys(&self) -> AstChildren<SortBy> {
16355        support::children(&self.syntax)
16356    }
16357}
16358
16359#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16360pub struct SortDesc {
16361    pub(crate) syntax: SyntaxNode,
16362}
16363impl SortDesc {
16364    #[inline]
16365    pub fn desc_token(&self) -> Option<SyntaxToken> {
16366        support::token(&self.syntax, SyntaxKind::DESC_KW)
16367    }
16368}
16369
16370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16371pub struct SortUsing {
16372    pub(crate) syntax: SyntaxNode,
16373}
16374impl SortUsing {
16375    #[inline]
16376    pub fn op(&self) -> Option<Op> {
16377        support::child(&self.syntax)
16378    }
16379    #[inline]
16380    pub fn using_token(&self) -> Option<SyntaxToken> {
16381        support::token(&self.syntax, SyntaxKind::USING_KW)
16382    }
16383}
16384
16385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16386pub struct SourceFile {
16387    pub(crate) syntax: SyntaxNode,
16388}
16389impl SourceFile {
16390    #[inline]
16391    pub fn stmts(&self) -> AstChildren<Stmt> {
16392        support::children(&self.syntax)
16393    }
16394}
16395
16396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16397pub struct SourceVertexTable {
16398    pub(crate) syntax: SyntaxNode,
16399}
16400impl SourceVertexTable {
16401    #[inline]
16402    pub fn column_list(&self) -> Option<ColumnList> {
16403        support::child(&self.syntax)
16404    }
16405    #[inline]
16406    pub fn name_ref(&self) -> Option<NameRef> {
16407        support::child(&self.syntax)
16408    }
16409    #[inline]
16410    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16411        support::token(&self.syntax, SyntaxKind::L_PAREN)
16412    }
16413    #[inline]
16414    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16415        support::token(&self.syntax, SyntaxKind::R_PAREN)
16416    }
16417    #[inline]
16418    pub fn key_token(&self) -> Option<SyntaxToken> {
16419        support::token(&self.syntax, SyntaxKind::KEY_KW)
16420    }
16421    #[inline]
16422    pub fn references_token(&self) -> Option<SyntaxToken> {
16423        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
16424    }
16425    #[inline]
16426    pub fn source_token(&self) -> Option<SyntaxToken> {
16427        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
16428    }
16429}
16430
16431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16432pub struct SplitPartition {
16433    pub(crate) syntax: SyntaxNode,
16434}
16435impl SplitPartition {
16436    #[inline]
16437    pub fn partition_list(&self) -> Option<PartitionList> {
16438        support::child(&self.syntax)
16439    }
16440    #[inline]
16441    pub fn into_token(&self) -> Option<SyntaxToken> {
16442        support::token(&self.syntax, SyntaxKind::INTO_KW)
16443    }
16444    #[inline]
16445    pub fn partition_token(&self) -> Option<SyntaxToken> {
16446        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16447    }
16448    #[inline]
16449    pub fn split_token(&self) -> Option<SyntaxToken> {
16450        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
16451    }
16452}
16453
16454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16455pub struct Storage {
16456    pub(crate) syntax: SyntaxNode,
16457}
16458impl Storage {
16459    #[inline]
16460    pub fn default_token(&self) -> Option<SyntaxToken> {
16461        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16462    }
16463    #[inline]
16464    pub fn external_token(&self) -> Option<SyntaxToken> {
16465        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
16466    }
16467    #[inline]
16468    pub fn ident_token(&self) -> Option<SyntaxToken> {
16469        support::token(&self.syntax, SyntaxKind::IDENT)
16470    }
16471    #[inline]
16472    pub fn storage_token(&self) -> Option<SyntaxToken> {
16473        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16474    }
16475}
16476
16477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16478pub struct StrictFuncOption {
16479    pub(crate) syntax: SyntaxNode,
16480}
16481impl StrictFuncOption {
16482    #[inline]
16483    pub fn called_token(&self) -> Option<SyntaxToken> {
16484        support::token(&self.syntax, SyntaxKind::CALLED_KW)
16485    }
16486    #[inline]
16487    pub fn input_token(&self) -> Option<SyntaxToken> {
16488        support::token(&self.syntax, SyntaxKind::INPUT_KW)
16489    }
16490    #[inline]
16491    pub fn null_token(&self) -> Option<SyntaxToken> {
16492        support::token(&self.syntax, SyntaxKind::NULL_KW)
16493    }
16494    #[inline]
16495    pub fn on_token(&self) -> Option<SyntaxToken> {
16496        support::token(&self.syntax, SyntaxKind::ON_KW)
16497    }
16498    #[inline]
16499    pub fn returns_token(&self) -> Option<SyntaxToken> {
16500        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
16501    }
16502    #[inline]
16503    pub fn strict_token(&self) -> Option<SyntaxToken> {
16504        support::token(&self.syntax, SyntaxKind::STRICT_KW)
16505    }
16506}
16507
16508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16509pub struct SubstringFn {
16510    pub(crate) syntax: SyntaxNode,
16511}
16512impl SubstringFn {
16513    #[inline]
16514    pub fn expr(&self) -> Option<Expr> {
16515        support::child(&self.syntax)
16516    }
16517    #[inline]
16518    pub fn exprs(&self) -> AstChildren<Expr> {
16519        support::children(&self.syntax)
16520    }
16521    #[inline]
16522    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16523        support::token(&self.syntax, SyntaxKind::L_PAREN)
16524    }
16525    #[inline]
16526    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16527        support::token(&self.syntax, SyntaxKind::R_PAREN)
16528    }
16529    #[inline]
16530    pub fn escape_token(&self) -> Option<SyntaxToken> {
16531        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
16532    }
16533    #[inline]
16534    pub fn for_token(&self) -> Option<SyntaxToken> {
16535        support::token(&self.syntax, SyntaxKind::FOR_KW)
16536    }
16537    #[inline]
16538    pub fn from_token(&self) -> Option<SyntaxToken> {
16539        support::token(&self.syntax, SyntaxKind::FROM_KW)
16540    }
16541    #[inline]
16542    pub fn similar_token(&self) -> Option<SyntaxToken> {
16543        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16544    }
16545    #[inline]
16546    pub fn substring_token(&self) -> Option<SyntaxToken> {
16547        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
16548    }
16549}
16550
16551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16552pub struct SupportFuncOption {
16553    pub(crate) syntax: SyntaxNode,
16554}
16555impl SupportFuncOption {
16556    #[inline]
16557    pub fn support_token(&self) -> Option<SyntaxToken> {
16558        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
16559    }
16560}
16561
16562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16563pub struct Table {
16564    pub(crate) syntax: SyntaxNode,
16565}
16566impl Table {
16567    #[inline]
16568    pub fn relation_name(&self) -> Option<RelationName> {
16569        support::child(&self.syntax)
16570    }
16571    #[inline]
16572    pub fn with_clause(&self) -> Option<WithClause> {
16573        support::child(&self.syntax)
16574    }
16575    #[inline]
16576    pub fn table_token(&self) -> Option<SyntaxToken> {
16577        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16578    }
16579}
16580
16581#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16582pub struct TableAndColumns {
16583    pub(crate) syntax: SyntaxNode,
16584}
16585impl TableAndColumns {
16586    #[inline]
16587    pub fn column_list(&self) -> Option<ColumnList> {
16588        support::child(&self.syntax)
16589    }
16590    #[inline]
16591    pub fn relation_name(&self) -> Option<RelationName> {
16592        support::child(&self.syntax)
16593    }
16594}
16595
16596#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16597pub struct TableAndColumnsList {
16598    pub(crate) syntax: SyntaxNode,
16599}
16600impl TableAndColumnsList {
16601    #[inline]
16602    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
16603        support::children(&self.syntax)
16604    }
16605}
16606
16607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16608pub struct TableArgList {
16609    pub(crate) syntax: SyntaxNode,
16610}
16611impl TableArgList {
16612    #[inline]
16613    pub fn args(&self) -> AstChildren<TableArg> {
16614        support::children(&self.syntax)
16615    }
16616    #[inline]
16617    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16618        support::token(&self.syntax, SyntaxKind::L_PAREN)
16619    }
16620    #[inline]
16621    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16622        support::token(&self.syntax, SyntaxKind::R_PAREN)
16623    }
16624}
16625
16626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16627pub struct TableList {
16628    pub(crate) syntax: SyntaxNode,
16629}
16630impl TableList {
16631    #[inline]
16632    pub fn relation_names(&self) -> AstChildren<RelationName> {
16633        support::children(&self.syntax)
16634    }
16635}
16636
16637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16638pub struct TablesampleClause {
16639    pub(crate) syntax: SyntaxNode,
16640}
16641impl TablesampleClause {
16642    #[inline]
16643    pub fn call_expr(&self) -> Option<CallExpr> {
16644        support::child(&self.syntax)
16645    }
16646    #[inline]
16647    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
16648        support::child(&self.syntax)
16649    }
16650    #[inline]
16651    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
16652        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
16653    }
16654}
16655
16656#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16657pub struct Tablespace {
16658    pub(crate) syntax: SyntaxNode,
16659}
16660impl Tablespace {
16661    #[inline]
16662    pub fn name_ref(&self) -> Option<NameRef> {
16663        support::child(&self.syntax)
16664    }
16665    #[inline]
16666    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16667        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16668    }
16669}
16670
16671#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16672pub struct Target {
16673    pub(crate) syntax: SyntaxNode,
16674}
16675impl Target {
16676    #[inline]
16677    pub fn as_name(&self) -> Option<AsName> {
16678        support::child(&self.syntax)
16679    }
16680    #[inline]
16681    pub fn expr(&self) -> Option<Expr> {
16682        support::child(&self.syntax)
16683    }
16684    #[inline]
16685    pub fn star_token(&self) -> Option<SyntaxToken> {
16686        support::token(&self.syntax, SyntaxKind::STAR)
16687    }
16688}
16689
16690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16691pub struct TargetList {
16692    pub(crate) syntax: SyntaxNode,
16693}
16694impl TargetList {
16695    #[inline]
16696    pub fn targets(&self) -> AstChildren<Target> {
16697        support::children(&self.syntax)
16698    }
16699}
16700
16701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16702pub struct Temp {
16703    pub(crate) syntax: SyntaxNode,
16704}
16705impl Temp {
16706    #[inline]
16707    pub fn global_token(&self) -> Option<SyntaxToken> {
16708        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
16709    }
16710    #[inline]
16711    pub fn local_token(&self) -> Option<SyntaxToken> {
16712        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16713    }
16714    #[inline]
16715    pub fn temp_token(&self) -> Option<SyntaxToken> {
16716        support::token(&self.syntax, SyntaxKind::TEMP_KW)
16717    }
16718    #[inline]
16719    pub fn temporary_token(&self) -> Option<SyntaxToken> {
16720        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
16721    }
16722}
16723
16724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16725pub struct TimeType {
16726    pub(crate) syntax: SyntaxNode,
16727}
16728impl TimeType {
16729    #[inline]
16730    pub fn literal(&self) -> Option<Literal> {
16731        support::child(&self.syntax)
16732    }
16733    #[inline]
16734    pub fn timezone(&self) -> Option<Timezone> {
16735        support::child(&self.syntax)
16736    }
16737    #[inline]
16738    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16739        support::token(&self.syntax, SyntaxKind::L_PAREN)
16740    }
16741    #[inline]
16742    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16743        support::token(&self.syntax, SyntaxKind::R_PAREN)
16744    }
16745    #[inline]
16746    pub fn setof_token(&self) -> Option<SyntaxToken> {
16747        support::token(&self.syntax, SyntaxKind::SETOF_KW)
16748    }
16749    #[inline]
16750    pub fn time_token(&self) -> Option<SyntaxToken> {
16751        support::token(&self.syntax, SyntaxKind::TIME_KW)
16752    }
16753    #[inline]
16754    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
16755        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
16756    }
16757}
16758
16759#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16760pub struct Timing {
16761    pub(crate) syntax: SyntaxNode,
16762}
16763impl Timing {
16764    #[inline]
16765    pub fn after_token(&self) -> Option<SyntaxToken> {
16766        support::token(&self.syntax, SyntaxKind::AFTER_KW)
16767    }
16768    #[inline]
16769    pub fn before_token(&self) -> Option<SyntaxToken> {
16770        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
16771    }
16772    #[inline]
16773    pub fn instead_token(&self) -> Option<SyntaxToken> {
16774        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
16775    }
16776    #[inline]
16777    pub fn of_token(&self) -> Option<SyntaxToken> {
16778        support::token(&self.syntax, SyntaxKind::OF_KW)
16779    }
16780}
16781
16782#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16783pub struct TransactionModeList {
16784    pub(crate) syntax: SyntaxNode,
16785}
16786impl TransactionModeList {
16787    #[inline]
16788    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
16789        support::children(&self.syntax)
16790    }
16791}
16792
16793#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16794pub struct TransformFromFunc {
16795    pub(crate) syntax: SyntaxNode,
16796}
16797impl TransformFromFunc {
16798    #[inline]
16799    pub fn function_sig(&self) -> Option<FunctionSig> {
16800        support::child(&self.syntax)
16801    }
16802    #[inline]
16803    pub fn from_token(&self) -> Option<SyntaxToken> {
16804        support::token(&self.syntax, SyntaxKind::FROM_KW)
16805    }
16806    #[inline]
16807    pub fn function_token(&self) -> Option<SyntaxToken> {
16808        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16809    }
16810    #[inline]
16811    pub fn sql_token(&self) -> Option<SyntaxToken> {
16812        support::token(&self.syntax, SyntaxKind::SQL_KW)
16813    }
16814    #[inline]
16815    pub fn with_token(&self) -> Option<SyntaxToken> {
16816        support::token(&self.syntax, SyntaxKind::WITH_KW)
16817    }
16818}
16819
16820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16821pub struct TransformFuncOption {
16822    pub(crate) syntax: SyntaxNode,
16823}
16824impl TransformFuncOption {
16825    #[inline]
16826    pub fn transform_token(&self) -> Option<SyntaxToken> {
16827        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
16828    }
16829}
16830
16831#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16832pub struct TransformToFunc {
16833    pub(crate) syntax: SyntaxNode,
16834}
16835impl TransformToFunc {
16836    #[inline]
16837    pub fn function_sig(&self) -> Option<FunctionSig> {
16838        support::child(&self.syntax)
16839    }
16840    #[inline]
16841    pub fn function_token(&self) -> Option<SyntaxToken> {
16842        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16843    }
16844    #[inline]
16845    pub fn sql_token(&self) -> Option<SyntaxToken> {
16846        support::token(&self.syntax, SyntaxKind::SQL_KW)
16847    }
16848    #[inline]
16849    pub fn to_token(&self) -> Option<SyntaxToken> {
16850        support::token(&self.syntax, SyntaxKind::TO_KW)
16851    }
16852    #[inline]
16853    pub fn with_token(&self) -> Option<SyntaxToken> {
16854        support::token(&self.syntax, SyntaxKind::WITH_KW)
16855    }
16856}
16857
16858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16859pub struct TriggerEvent {
16860    pub(crate) syntax: SyntaxNode,
16861}
16862impl TriggerEvent {
16863    #[inline]
16864    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
16865        support::child(&self.syntax)
16866    }
16867    #[inline]
16868    pub fn delete_token(&self) -> Option<SyntaxToken> {
16869        support::token(&self.syntax, SyntaxKind::DELETE_KW)
16870    }
16871    #[inline]
16872    pub fn insert_token(&self) -> Option<SyntaxToken> {
16873        support::token(&self.syntax, SyntaxKind::INSERT_KW)
16874    }
16875    #[inline]
16876    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16877        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16878    }
16879}
16880
16881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16882pub struct TriggerEventList {
16883    pub(crate) syntax: SyntaxNode,
16884}
16885impl TriggerEventList {
16886    #[inline]
16887    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
16888        support::children(&self.syntax)
16889    }
16890}
16891
16892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16893pub struct TriggerEventUpdate {
16894    pub(crate) syntax: SyntaxNode,
16895}
16896impl TriggerEventUpdate {
16897    #[inline]
16898    pub fn name_refs(&self) -> AstChildren<NameRef> {
16899        support::children(&self.syntax)
16900    }
16901    #[inline]
16902    pub fn of_token(&self) -> Option<SyntaxToken> {
16903        support::token(&self.syntax, SyntaxKind::OF_KW)
16904    }
16905    #[inline]
16906    pub fn update_token(&self) -> Option<SyntaxToken> {
16907        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
16908    }
16909}
16910
16911#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16912pub struct TrimFn {
16913    pub(crate) syntax: SyntaxNode,
16914}
16915impl TrimFn {
16916    #[inline]
16917    pub fn expr(&self) -> Option<Expr> {
16918        support::child(&self.syntax)
16919    }
16920    #[inline]
16921    pub fn exprs(&self) -> AstChildren<Expr> {
16922        support::children(&self.syntax)
16923    }
16924    #[inline]
16925    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16926        support::token(&self.syntax, SyntaxKind::L_PAREN)
16927    }
16928    #[inline]
16929    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16930        support::token(&self.syntax, SyntaxKind::R_PAREN)
16931    }
16932    #[inline]
16933    pub fn both_token(&self) -> Option<SyntaxToken> {
16934        support::token(&self.syntax, SyntaxKind::BOTH_KW)
16935    }
16936    #[inline]
16937    pub fn from_token(&self) -> Option<SyntaxToken> {
16938        support::token(&self.syntax, SyntaxKind::FROM_KW)
16939    }
16940    #[inline]
16941    pub fn leading_token(&self) -> Option<SyntaxToken> {
16942        support::token(&self.syntax, SyntaxKind::LEADING_KW)
16943    }
16944    #[inline]
16945    pub fn trailing_token(&self) -> Option<SyntaxToken> {
16946        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
16947    }
16948    #[inline]
16949    pub fn trim_token(&self) -> Option<SyntaxToken> {
16950        support::token(&self.syntax, SyntaxKind::TRIM_KW)
16951    }
16952}
16953
16954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16955pub struct Truncate {
16956    pub(crate) syntax: SyntaxNode,
16957}
16958impl Truncate {
16959    #[inline]
16960    pub fn table_list(&self) -> Option<TableList> {
16961        support::child(&self.syntax)
16962    }
16963    #[inline]
16964    pub fn cascade_token(&self) -> Option<SyntaxToken> {
16965        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
16966    }
16967    #[inline]
16968    pub fn continue_token(&self) -> Option<SyntaxToken> {
16969        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
16970    }
16971    #[inline]
16972    pub fn identity_token(&self) -> Option<SyntaxToken> {
16973        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
16974    }
16975    #[inline]
16976    pub fn restart_token(&self) -> Option<SyntaxToken> {
16977        support::token(&self.syntax, SyntaxKind::RESTART_KW)
16978    }
16979    #[inline]
16980    pub fn restrict_token(&self) -> Option<SyntaxToken> {
16981        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
16982    }
16983    #[inline]
16984    pub fn table_token(&self) -> Option<SyntaxToken> {
16985        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16986    }
16987    #[inline]
16988    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16989        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16990    }
16991}
16992
16993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16994pub struct TupleExpr {
16995    pub(crate) syntax: SyntaxNode,
16996}
16997impl TupleExpr {
16998    #[inline]
16999    pub fn exprs(&self) -> AstChildren<Expr> {
17000        support::children(&self.syntax)
17001    }
17002    #[inline]
17003    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17004        support::token(&self.syntax, SyntaxKind::L_PAREN)
17005    }
17006    #[inline]
17007    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17008        support::token(&self.syntax, SyntaxKind::R_PAREN)
17009    }
17010}
17011
17012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17013pub struct UnicodeNormalForm {
17014    pub(crate) syntax: SyntaxNode,
17015}
17016impl UnicodeNormalForm {
17017    #[inline]
17018    pub fn nfc_token(&self) -> Option<SyntaxToken> {
17019        support::token(&self.syntax, SyntaxKind::NFC_KW)
17020    }
17021    #[inline]
17022    pub fn nfd_token(&self) -> Option<SyntaxToken> {
17023        support::token(&self.syntax, SyntaxKind::NFD_KW)
17024    }
17025    #[inline]
17026    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
17027        support::token(&self.syntax, SyntaxKind::NFKC_KW)
17028    }
17029    #[inline]
17030    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
17031        support::token(&self.syntax, SyntaxKind::NFKD_KW)
17032    }
17033}
17034
17035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17036pub struct UniqueConstraint {
17037    pub(crate) syntax: SyntaxNode,
17038}
17039impl UniqueConstraint {
17040    #[inline]
17041    pub fn column_list(&self) -> Option<ColumnList> {
17042        support::child(&self.syntax)
17043    }
17044    #[inline]
17045    pub fn constraint_name(&self) -> Option<ConstraintName> {
17046        support::child(&self.syntax)
17047    }
17048    #[inline]
17049    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
17050        support::child(&self.syntax)
17051    }
17052    #[inline]
17053    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
17054        support::child(&self.syntax)
17055    }
17056    #[inline]
17057    pub fn using_index(&self) -> Option<UsingIndex> {
17058        support::child(&self.syntax)
17059    }
17060    #[inline]
17061    pub fn unique_token(&self) -> Option<SyntaxToken> {
17062        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17063    }
17064}
17065
17066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17067pub struct Unlisten {
17068    pub(crate) syntax: SyntaxNode,
17069}
17070impl Unlisten {
17071    #[inline]
17072    pub fn name_ref(&self) -> Option<NameRef> {
17073        support::child(&self.syntax)
17074    }
17075    #[inline]
17076    pub fn star_token(&self) -> Option<SyntaxToken> {
17077        support::token(&self.syntax, SyntaxKind::STAR)
17078    }
17079    #[inline]
17080    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17081        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17082    }
17083}
17084
17085#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17086pub struct Unlogged {
17087    pub(crate) syntax: SyntaxNode,
17088}
17089impl Unlogged {
17090    #[inline]
17091    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
17092        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
17093    }
17094}
17095
17096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17097pub struct Update {
17098    pub(crate) syntax: SyntaxNode,
17099}
17100impl Update {
17101    #[inline]
17102    pub fn alias(&self) -> Option<Alias> {
17103        support::child(&self.syntax)
17104    }
17105    #[inline]
17106    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
17107        support::child(&self.syntax)
17108    }
17109    #[inline]
17110    pub fn from_clause(&self) -> Option<FromClause> {
17111        support::child(&self.syntax)
17112    }
17113    #[inline]
17114    pub fn relation_name(&self) -> Option<RelationName> {
17115        support::child(&self.syntax)
17116    }
17117    #[inline]
17118    pub fn returning_clause(&self) -> Option<ReturningClause> {
17119        support::child(&self.syntax)
17120    }
17121    #[inline]
17122    pub fn set_clause(&self) -> Option<SetClause> {
17123        support::child(&self.syntax)
17124    }
17125    #[inline]
17126    pub fn where_clause(&self) -> Option<WhereClause> {
17127        support::child(&self.syntax)
17128    }
17129    #[inline]
17130    pub fn with_clause(&self) -> Option<WithClause> {
17131        support::child(&self.syntax)
17132    }
17133    #[inline]
17134    pub fn update_token(&self) -> Option<SyntaxToken> {
17135        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17136    }
17137}
17138
17139#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17140pub struct UsingClause {
17141    pub(crate) syntax: SyntaxNode,
17142}
17143impl UsingClause {
17144    #[inline]
17145    pub fn from_items(&self) -> AstChildren<FromItem> {
17146        support::children(&self.syntax)
17147    }
17148    #[inline]
17149    pub fn using_token(&self) -> Option<SyntaxToken> {
17150        support::token(&self.syntax, SyntaxKind::USING_KW)
17151    }
17152}
17153
17154#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17155pub struct UsingExprClause {
17156    pub(crate) syntax: SyntaxNode,
17157}
17158impl UsingExprClause {
17159    #[inline]
17160    pub fn expr(&self) -> Option<Expr> {
17161        support::child(&self.syntax)
17162    }
17163    #[inline]
17164    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17165        support::token(&self.syntax, SyntaxKind::L_PAREN)
17166    }
17167    #[inline]
17168    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17169        support::token(&self.syntax, SyntaxKind::R_PAREN)
17170    }
17171    #[inline]
17172    pub fn using_token(&self) -> Option<SyntaxToken> {
17173        support::token(&self.syntax, SyntaxKind::USING_KW)
17174    }
17175}
17176
17177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17178pub struct UsingIndex {
17179    pub(crate) syntax: SyntaxNode,
17180}
17181impl UsingIndex {
17182    #[inline]
17183    pub fn name_ref(&self) -> Option<NameRef> {
17184        support::child(&self.syntax)
17185    }
17186    #[inline]
17187    pub fn index_token(&self) -> Option<SyntaxToken> {
17188        support::token(&self.syntax, SyntaxKind::INDEX_KW)
17189    }
17190    #[inline]
17191    pub fn using_token(&self) -> Option<SyntaxToken> {
17192        support::token(&self.syntax, SyntaxKind::USING_KW)
17193    }
17194}
17195
17196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17197pub struct UsingMethod {
17198    pub(crate) syntax: SyntaxNode,
17199}
17200impl UsingMethod {
17201    #[inline]
17202    pub fn name_ref(&self) -> Option<NameRef> {
17203        support::child(&self.syntax)
17204    }
17205    #[inline]
17206    pub fn using_token(&self) -> Option<SyntaxToken> {
17207        support::token(&self.syntax, SyntaxKind::USING_KW)
17208    }
17209}
17210
17211#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17212pub struct UsingOnClause {
17213    pub(crate) syntax: SyntaxNode,
17214}
17215impl UsingOnClause {
17216    #[inline]
17217    pub fn from_item(&self) -> Option<FromItem> {
17218        support::child(&self.syntax)
17219    }
17220    #[inline]
17221    pub fn on_clause(&self) -> Option<OnClause> {
17222        support::child(&self.syntax)
17223    }
17224    #[inline]
17225    pub fn using_token(&self) -> Option<SyntaxToken> {
17226        support::token(&self.syntax, SyntaxKind::USING_KW)
17227    }
17228}
17229
17230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17231pub struct Vacuum {
17232    pub(crate) syntax: SyntaxNode,
17233}
17234impl Vacuum {
17235    #[inline]
17236    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
17237        support::child(&self.syntax)
17238    }
17239    #[inline]
17240    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
17241        support::child(&self.syntax)
17242    }
17243    #[inline]
17244    pub fn analyse_token(&self) -> Option<SyntaxToken> {
17245        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
17246    }
17247    #[inline]
17248    pub fn analyze_token(&self) -> Option<SyntaxToken> {
17249        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
17250    }
17251    #[inline]
17252    pub fn freeze_token(&self) -> Option<SyntaxToken> {
17253        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
17254    }
17255    #[inline]
17256    pub fn full_token(&self) -> Option<SyntaxToken> {
17257        support::token(&self.syntax, SyntaxKind::FULL_KW)
17258    }
17259    #[inline]
17260    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
17261        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
17262    }
17263    #[inline]
17264    pub fn verbose_token(&self) -> Option<SyntaxToken> {
17265        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
17266    }
17267}
17268
17269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17270pub struct VacuumOption {
17271    pub(crate) syntax: SyntaxNode,
17272}
17273impl VacuumOption {
17274    #[inline]
17275    pub fn literal(&self) -> Option<Literal> {
17276        support::child(&self.syntax)
17277    }
17278}
17279
17280#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17281pub struct VacuumOptionList {
17282    pub(crate) syntax: SyntaxNode,
17283}
17284impl VacuumOptionList {
17285    #[inline]
17286    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
17287        support::children(&self.syntax)
17288    }
17289    #[inline]
17290    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17291        support::token(&self.syntax, SyntaxKind::L_PAREN)
17292    }
17293    #[inline]
17294    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17295        support::token(&self.syntax, SyntaxKind::R_PAREN)
17296    }
17297}
17298
17299#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17300pub struct ValidateConstraint {
17301    pub(crate) syntax: SyntaxNode,
17302}
17303impl ValidateConstraint {
17304    #[inline]
17305    pub fn name_ref(&self) -> Option<NameRef> {
17306        support::child(&self.syntax)
17307    }
17308    #[inline]
17309    pub fn constraint_token(&self) -> Option<SyntaxToken> {
17310        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
17311    }
17312    #[inline]
17313    pub fn validate_token(&self) -> Option<SyntaxToken> {
17314        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
17315    }
17316}
17317
17318#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17319pub struct Values {
17320    pub(crate) syntax: SyntaxNode,
17321}
17322impl Values {
17323    #[inline]
17324    pub fn row_list(&self) -> Option<RowList> {
17325        support::child(&self.syntax)
17326    }
17327    #[inline]
17328    pub fn with_clause(&self) -> Option<WithClause> {
17329        support::child(&self.syntax)
17330    }
17331    #[inline]
17332    pub fn values_token(&self) -> Option<SyntaxToken> {
17333        support::token(&self.syntax, SyntaxKind::VALUES_KW)
17334    }
17335}
17336
17337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17338pub struct Variant {
17339    pub(crate) syntax: SyntaxNode,
17340}
17341impl Variant {
17342    #[inline]
17343    pub fn literal(&self) -> Option<Literal> {
17344        support::child(&self.syntax)
17345    }
17346}
17347
17348#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17349pub struct VariantList {
17350    pub(crate) syntax: SyntaxNode,
17351}
17352impl VariantList {
17353    #[inline]
17354    pub fn variants(&self) -> AstChildren<Variant> {
17355        support::children(&self.syntax)
17356    }
17357    #[inline]
17358    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17359        support::token(&self.syntax, SyntaxKind::L_PAREN)
17360    }
17361    #[inline]
17362    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17363        support::token(&self.syntax, SyntaxKind::R_PAREN)
17364    }
17365}
17366
17367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17368pub struct VertexPattern {
17369    pub(crate) syntax: SyntaxNode,
17370}
17371impl VertexPattern {
17372    #[inline]
17373    pub fn is_label(&self) -> Option<IsLabel> {
17374        support::child(&self.syntax)
17375    }
17376    #[inline]
17377    pub fn name(&self) -> Option<Name> {
17378        support::child(&self.syntax)
17379    }
17380    #[inline]
17381    pub fn where_clause(&self) -> Option<WhereClause> {
17382        support::child(&self.syntax)
17383    }
17384    #[inline]
17385    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17386        support::token(&self.syntax, SyntaxKind::L_PAREN)
17387    }
17388    #[inline]
17389    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17390        support::token(&self.syntax, SyntaxKind::R_PAREN)
17391    }
17392}
17393
17394#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17395pub struct VertexTableDef {
17396    pub(crate) syntax: SyntaxNode,
17397}
17398impl VertexTableDef {
17399    #[inline]
17400    pub fn column_list(&self) -> Option<ColumnList> {
17401        support::child(&self.syntax)
17402    }
17403    #[inline]
17404    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
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 path(&self) -> Option<Path> {
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    #[inline]
17424    pub fn as_token(&self) -> Option<SyntaxToken> {
17425        support::token(&self.syntax, SyntaxKind::AS_KW)
17426    }
17427    #[inline]
17428    pub fn key_token(&self) -> Option<SyntaxToken> {
17429        support::token(&self.syntax, SyntaxKind::KEY_KW)
17430    }
17431}
17432
17433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17434pub struct VertexTables {
17435    pub(crate) syntax: SyntaxNode,
17436}
17437impl VertexTables {
17438    #[inline]
17439    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
17440        support::children(&self.syntax)
17441    }
17442    #[inline]
17443    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17444        support::token(&self.syntax, SyntaxKind::L_PAREN)
17445    }
17446    #[inline]
17447    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17448        support::token(&self.syntax, SyntaxKind::R_PAREN)
17449    }
17450    #[inline]
17451    pub fn node_token(&self) -> Option<SyntaxToken> {
17452        support::token(&self.syntax, SyntaxKind::NODE_KW)
17453    }
17454    #[inline]
17455    pub fn tables_token(&self) -> Option<SyntaxToken> {
17456        support::token(&self.syntax, SyntaxKind::TABLES_KW)
17457    }
17458    #[inline]
17459    pub fn vertex_token(&self) -> Option<SyntaxToken> {
17460        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
17461    }
17462}
17463
17464#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17465pub struct VolatilityFuncOption {
17466    pub(crate) syntax: SyntaxNode,
17467}
17468impl VolatilityFuncOption {
17469    #[inline]
17470    pub fn immutable_token(&self) -> Option<SyntaxToken> {
17471        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
17472    }
17473    #[inline]
17474    pub fn stable_token(&self) -> Option<SyntaxToken> {
17475        support::token(&self.syntax, SyntaxKind::STABLE_KW)
17476    }
17477    #[inline]
17478    pub fn volatile_token(&self) -> Option<SyntaxToken> {
17479        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
17480    }
17481}
17482
17483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17484pub struct WhenClause {
17485    pub(crate) syntax: SyntaxNode,
17486}
17487impl WhenClause {
17488    #[inline]
17489    pub fn then_token(&self) -> Option<SyntaxToken> {
17490        support::token(&self.syntax, SyntaxKind::THEN_KW)
17491    }
17492    #[inline]
17493    pub fn when_token(&self) -> Option<SyntaxToken> {
17494        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17495    }
17496}
17497
17498#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17499pub struct WhenClauseList {
17500    pub(crate) syntax: SyntaxNode,
17501}
17502impl WhenClauseList {
17503    #[inline]
17504    pub fn when_clause(&self) -> Option<WhenClause> {
17505        support::child(&self.syntax)
17506    }
17507    #[inline]
17508    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
17509        support::children(&self.syntax)
17510    }
17511}
17512
17513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17514pub struct WhenCondition {
17515    pub(crate) syntax: SyntaxNode,
17516}
17517impl WhenCondition {
17518    #[inline]
17519    pub fn expr(&self) -> Option<Expr> {
17520        support::child(&self.syntax)
17521    }
17522    #[inline]
17523    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17524        support::token(&self.syntax, SyntaxKind::L_PAREN)
17525    }
17526    #[inline]
17527    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17528        support::token(&self.syntax, SyntaxKind::R_PAREN)
17529    }
17530    #[inline]
17531    pub fn when_token(&self) -> Option<SyntaxToken> {
17532        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17533    }
17534}
17535
17536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17537pub struct WhereClause {
17538    pub(crate) syntax: SyntaxNode,
17539}
17540impl WhereClause {
17541    #[inline]
17542    pub fn expr(&self) -> Option<Expr> {
17543        support::child(&self.syntax)
17544    }
17545    #[inline]
17546    pub fn where_token(&self) -> Option<SyntaxToken> {
17547        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17548    }
17549}
17550
17551#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17552pub struct WhereConditionClause {
17553    pub(crate) syntax: SyntaxNode,
17554}
17555impl WhereConditionClause {
17556    #[inline]
17557    pub fn expr(&self) -> Option<Expr> {
17558        support::child(&self.syntax)
17559    }
17560    #[inline]
17561    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17562        support::token(&self.syntax, SyntaxKind::L_PAREN)
17563    }
17564    #[inline]
17565    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17566        support::token(&self.syntax, SyntaxKind::R_PAREN)
17567    }
17568    #[inline]
17569    pub fn where_token(&self) -> Option<SyntaxToken> {
17570        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17571    }
17572}
17573
17574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17575pub struct WhereCurrentOf {
17576    pub(crate) syntax: SyntaxNode,
17577}
17578impl WhereCurrentOf {
17579    #[inline]
17580    pub fn name_ref(&self) -> Option<NameRef> {
17581        support::child(&self.syntax)
17582    }
17583    #[inline]
17584    pub fn current_token(&self) -> Option<SyntaxToken> {
17585        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
17586    }
17587    #[inline]
17588    pub fn of_token(&self) -> Option<SyntaxToken> {
17589        support::token(&self.syntax, SyntaxKind::OF_KW)
17590    }
17591    #[inline]
17592    pub fn where_token(&self) -> Option<SyntaxToken> {
17593        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17594    }
17595}
17596
17597#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17598pub struct WindowClause {
17599    pub(crate) syntax: SyntaxNode,
17600}
17601impl WindowClause {
17602    #[inline]
17603    pub fn window_defs(&self) -> AstChildren<WindowDef> {
17604        support::children(&self.syntax)
17605    }
17606    #[inline]
17607    pub fn window_token(&self) -> Option<SyntaxToken> {
17608        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17609    }
17610}
17611
17612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17613pub struct WindowDef {
17614    pub(crate) syntax: SyntaxNode,
17615}
17616impl WindowDef {
17617    #[inline]
17618    pub fn name(&self) -> Option<Name> {
17619        support::child(&self.syntax)
17620    }
17621    #[inline]
17622    pub fn window_spec(&self) -> Option<WindowSpec> {
17623        support::child(&self.syntax)
17624    }
17625    #[inline]
17626    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17627        support::token(&self.syntax, SyntaxKind::L_PAREN)
17628    }
17629    #[inline]
17630    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17631        support::token(&self.syntax, SyntaxKind::R_PAREN)
17632    }
17633    #[inline]
17634    pub fn as_token(&self) -> Option<SyntaxToken> {
17635        support::token(&self.syntax, SyntaxKind::AS_KW)
17636    }
17637}
17638
17639#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17640pub struct WindowFuncOption {
17641    pub(crate) syntax: SyntaxNode,
17642}
17643impl WindowFuncOption {
17644    #[inline]
17645    pub fn window_token(&self) -> Option<SyntaxToken> {
17646        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17647    }
17648}
17649
17650#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17651pub struct WindowSpec {
17652    pub(crate) syntax: SyntaxNode,
17653}
17654impl WindowSpec {
17655    #[inline]
17656    pub fn exprs(&self) -> AstChildren<Expr> {
17657        support::children(&self.syntax)
17658    }
17659    #[inline]
17660    pub fn frame_clause(&self) -> Option<FrameClause> {
17661        support::child(&self.syntax)
17662    }
17663    #[inline]
17664    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17665        support::child(&self.syntax)
17666    }
17667    #[inline]
17668    pub fn by_token(&self) -> Option<SyntaxToken> {
17669        support::token(&self.syntax, SyntaxKind::BY_KW)
17670    }
17671    #[inline]
17672    pub fn ident_token(&self) -> Option<SyntaxToken> {
17673        support::token(&self.syntax, SyntaxKind::IDENT)
17674    }
17675    #[inline]
17676    pub fn partition_token(&self) -> Option<SyntaxToken> {
17677        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17678    }
17679}
17680
17681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17682pub struct WithCheckExprClause {
17683    pub(crate) syntax: SyntaxNode,
17684}
17685impl WithCheckExprClause {
17686    #[inline]
17687    pub fn expr(&self) -> Option<Expr> {
17688        support::child(&self.syntax)
17689    }
17690    #[inline]
17691    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17692        support::token(&self.syntax, SyntaxKind::L_PAREN)
17693    }
17694    #[inline]
17695    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17696        support::token(&self.syntax, SyntaxKind::R_PAREN)
17697    }
17698    #[inline]
17699    pub fn check_token(&self) -> Option<SyntaxToken> {
17700        support::token(&self.syntax, SyntaxKind::CHECK_KW)
17701    }
17702    #[inline]
17703    pub fn with_token(&self) -> Option<SyntaxToken> {
17704        support::token(&self.syntax, SyntaxKind::WITH_KW)
17705    }
17706}
17707
17708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17709pub struct WithClause {
17710    pub(crate) syntax: SyntaxNode,
17711}
17712impl WithClause {
17713    #[inline]
17714    pub fn with_tables(&self) -> AstChildren<WithTable> {
17715        support::children(&self.syntax)
17716    }
17717    #[inline]
17718    pub fn recursive_token(&self) -> Option<SyntaxToken> {
17719        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
17720    }
17721    #[inline]
17722    pub fn with_token(&self) -> Option<SyntaxToken> {
17723        support::token(&self.syntax, SyntaxKind::WITH_KW)
17724    }
17725}
17726
17727#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17728pub struct WithData {
17729    pub(crate) syntax: SyntaxNode,
17730}
17731impl WithData {
17732    #[inline]
17733    pub fn data_token(&self) -> Option<SyntaxToken> {
17734        support::token(&self.syntax, SyntaxKind::DATA_KW)
17735    }
17736    #[inline]
17737    pub fn with_token(&self) -> Option<SyntaxToken> {
17738        support::token(&self.syntax, SyntaxKind::WITH_KW)
17739    }
17740}
17741
17742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17743pub struct WithNoData {
17744    pub(crate) syntax: SyntaxNode,
17745}
17746impl WithNoData {
17747    #[inline]
17748    pub fn data_token(&self) -> Option<SyntaxToken> {
17749        support::token(&self.syntax, SyntaxKind::DATA_KW)
17750    }
17751    #[inline]
17752    pub fn no_token(&self) -> Option<SyntaxToken> {
17753        support::token(&self.syntax, SyntaxKind::NO_KW)
17754    }
17755    #[inline]
17756    pub fn with_token(&self) -> Option<SyntaxToken> {
17757        support::token(&self.syntax, SyntaxKind::WITH_KW)
17758    }
17759}
17760
17761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17762pub struct WithOptions {
17763    pub(crate) syntax: SyntaxNode,
17764}
17765impl WithOptions {
17766    #[inline]
17767    pub fn options_token(&self) -> Option<SyntaxToken> {
17768        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
17769    }
17770    #[inline]
17771    pub fn with_token(&self) -> Option<SyntaxToken> {
17772        support::token(&self.syntax, SyntaxKind::WITH_KW)
17773    }
17774}
17775
17776#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17777pub struct WithParams {
17778    pub(crate) syntax: SyntaxNode,
17779}
17780impl WithParams {
17781    #[inline]
17782    pub fn attribute_list(&self) -> Option<AttributeList> {
17783        support::child(&self.syntax)
17784    }
17785    #[inline]
17786    pub fn with_token(&self) -> Option<SyntaxToken> {
17787        support::token(&self.syntax, SyntaxKind::WITH_KW)
17788    }
17789}
17790
17791#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17792pub struct WithTable {
17793    pub(crate) syntax: SyntaxNode,
17794}
17795impl WithTable {
17796    #[inline]
17797    pub fn column_list(&self) -> Option<ColumnList> {
17798        support::child(&self.syntax)
17799    }
17800    #[inline]
17801    pub fn materialized(&self) -> Option<Materialized> {
17802        support::child(&self.syntax)
17803    }
17804    #[inline]
17805    pub fn name(&self) -> Option<Name> {
17806        support::child(&self.syntax)
17807    }
17808    #[inline]
17809    pub fn not_materialized(&self) -> Option<NotMaterialized> {
17810        support::child(&self.syntax)
17811    }
17812    #[inline]
17813    pub fn query(&self) -> Option<WithQuery> {
17814        support::child(&self.syntax)
17815    }
17816    #[inline]
17817    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17818        support::token(&self.syntax, SyntaxKind::L_PAREN)
17819    }
17820    #[inline]
17821    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17822        support::token(&self.syntax, SyntaxKind::R_PAREN)
17823    }
17824    #[inline]
17825    pub fn as_token(&self) -> Option<SyntaxToken> {
17826        support::token(&self.syntax, SyntaxKind::AS_KW)
17827    }
17828}
17829
17830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17831pub struct WithTimezone {
17832    pub(crate) syntax: SyntaxNode,
17833}
17834impl WithTimezone {
17835    #[inline]
17836    pub fn time_token(&self) -> Option<SyntaxToken> {
17837        support::token(&self.syntax, SyntaxKind::TIME_KW)
17838    }
17839    #[inline]
17840    pub fn with_token(&self) -> Option<SyntaxToken> {
17841        support::token(&self.syntax, SyntaxKind::WITH_KW)
17842    }
17843    #[inline]
17844    pub fn zone_token(&self) -> Option<SyntaxToken> {
17845        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17846    }
17847}
17848
17849#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17850pub struct WithinClause {
17851    pub(crate) syntax: SyntaxNode,
17852}
17853impl WithinClause {
17854    #[inline]
17855    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17856        support::child(&self.syntax)
17857    }
17858    #[inline]
17859    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17860        support::token(&self.syntax, SyntaxKind::L_PAREN)
17861    }
17862    #[inline]
17863    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17864        support::token(&self.syntax, SyntaxKind::R_PAREN)
17865    }
17866    #[inline]
17867    pub fn group_token(&self) -> Option<SyntaxToken> {
17868        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17869    }
17870    #[inline]
17871    pub fn within_token(&self) -> Option<SyntaxToken> {
17872        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
17873    }
17874}
17875
17876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17877pub struct WithoutOids {
17878    pub(crate) syntax: SyntaxNode,
17879}
17880impl WithoutOids {
17881    #[inline]
17882    pub fn oids_token(&self) -> Option<SyntaxToken> {
17883        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17884    }
17885    #[inline]
17886    pub fn without_token(&self) -> Option<SyntaxToken> {
17887        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17888    }
17889}
17890
17891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17892pub struct WithoutTimezone {
17893    pub(crate) syntax: SyntaxNode,
17894}
17895impl WithoutTimezone {
17896    #[inline]
17897    pub fn time_token(&self) -> Option<SyntaxToken> {
17898        support::token(&self.syntax, SyntaxKind::TIME_KW)
17899    }
17900    #[inline]
17901    pub fn without_token(&self) -> Option<SyntaxToken> {
17902        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17903    }
17904    #[inline]
17905    pub fn zone_token(&self) -> Option<SyntaxToken> {
17906        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17907    }
17908}
17909
17910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17911pub struct XmlColumnOption {
17912    pub(crate) syntax: SyntaxNode,
17913}
17914impl XmlColumnOption {
17915    #[inline]
17916    pub fn expr(&self) -> Option<Expr> {
17917        support::child(&self.syntax)
17918    }
17919    #[inline]
17920    pub fn default_token(&self) -> Option<SyntaxToken> {
17921        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17922    }
17923    #[inline]
17924    pub fn ident_token(&self) -> Option<SyntaxToken> {
17925        support::token(&self.syntax, SyntaxKind::IDENT)
17926    }
17927    #[inline]
17928    pub fn not_token(&self) -> Option<SyntaxToken> {
17929        support::token(&self.syntax, SyntaxKind::NOT_KW)
17930    }
17931    #[inline]
17932    pub fn null_token(&self) -> Option<SyntaxToken> {
17933        support::token(&self.syntax, SyntaxKind::NULL_KW)
17934    }
17935    #[inline]
17936    pub fn path_token(&self) -> Option<SyntaxToken> {
17937        support::token(&self.syntax, SyntaxKind::PATH_KW)
17938    }
17939}
17940
17941#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17942pub struct XmlColumnOptionList {
17943    pub(crate) syntax: SyntaxNode,
17944}
17945impl XmlColumnOptionList {
17946    #[inline]
17947    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
17948        support::child(&self.syntax)
17949    }
17950    #[inline]
17951    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
17952        support::children(&self.syntax)
17953    }
17954}
17955
17956#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17957pub struct XmlElementFn {
17958    pub(crate) syntax: SyntaxNode,
17959}
17960impl XmlElementFn {
17961    #[inline]
17962    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
17963        support::child(&self.syntax)
17964    }
17965    #[inline]
17966    pub fn exprs(&self) -> AstChildren<Expr> {
17967        support::children(&self.syntax)
17968    }
17969    #[inline]
17970    pub fn name(&self) -> Option<Name> {
17971        support::child(&self.syntax)
17972    }
17973    #[inline]
17974    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17975        support::token(&self.syntax, SyntaxKind::L_PAREN)
17976    }
17977    #[inline]
17978    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17979        support::token(&self.syntax, SyntaxKind::R_PAREN)
17980    }
17981    #[inline]
17982    pub fn comma_token(&self) -> Option<SyntaxToken> {
17983        support::token(&self.syntax, SyntaxKind::COMMA)
17984    }
17985    #[inline]
17986    pub fn name_token(&self) -> Option<SyntaxToken> {
17987        support::token(&self.syntax, SyntaxKind::NAME_KW)
17988    }
17989    #[inline]
17990    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
17991        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
17992    }
17993    #[inline]
17994    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
17995        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
17996    }
17997}
17998
17999#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18000pub struct XmlExistsFn {
18001    pub(crate) syntax: SyntaxNode,
18002}
18003impl XmlExistsFn {
18004    #[inline]
18005    pub fn expr(&self) -> Option<Expr> {
18006        support::child(&self.syntax)
18007    }
18008    #[inline]
18009    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18010        support::child(&self.syntax)
18011    }
18012    #[inline]
18013    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18014        support::token(&self.syntax, SyntaxKind::L_PAREN)
18015    }
18016    #[inline]
18017    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18018        support::token(&self.syntax, SyntaxKind::R_PAREN)
18019    }
18020    #[inline]
18021    pub fn passing_token(&self) -> Option<SyntaxToken> {
18022        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18023    }
18024    #[inline]
18025    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
18026        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
18027    }
18028}
18029
18030#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18031pub struct XmlForestFn {
18032    pub(crate) syntax: SyntaxNode,
18033}
18034impl XmlForestFn {
18035    #[inline]
18036    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18037        support::child(&self.syntax)
18038    }
18039    #[inline]
18040    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18041        support::token(&self.syntax, SyntaxKind::L_PAREN)
18042    }
18043    #[inline]
18044    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18045        support::token(&self.syntax, SyntaxKind::R_PAREN)
18046    }
18047    #[inline]
18048    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
18049        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
18050    }
18051}
18052
18053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18054pub struct XmlNamespace {
18055    pub(crate) syntax: SyntaxNode,
18056}
18057impl XmlNamespace {
18058    #[inline]
18059    pub fn expr(&self) -> Option<Expr> {
18060        support::child(&self.syntax)
18061    }
18062    #[inline]
18063    pub fn name(&self) -> Option<Name> {
18064        support::child(&self.syntax)
18065    }
18066    #[inline]
18067    pub fn as_token(&self) -> Option<SyntaxToken> {
18068        support::token(&self.syntax, SyntaxKind::AS_KW)
18069    }
18070    #[inline]
18071    pub fn default_token(&self) -> Option<SyntaxToken> {
18072        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18073    }
18074}
18075
18076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18077pub struct XmlNamespaceList {
18078    pub(crate) syntax: SyntaxNode,
18079}
18080impl XmlNamespaceList {
18081    #[inline]
18082    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18083        support::children(&self.syntax)
18084    }
18085    #[inline]
18086    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18087        support::token(&self.syntax, SyntaxKind::L_PAREN)
18088    }
18089    #[inline]
18090    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18091        support::token(&self.syntax, SyntaxKind::R_PAREN)
18092    }
18093}
18094
18095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18096pub struct XmlParseFn {
18097    pub(crate) syntax: SyntaxNode,
18098}
18099impl XmlParseFn {
18100    #[inline]
18101    pub fn expr(&self) -> Option<Expr> {
18102        support::child(&self.syntax)
18103    }
18104    #[inline]
18105    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18106        support::token(&self.syntax, SyntaxKind::L_PAREN)
18107    }
18108    #[inline]
18109    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18110        support::token(&self.syntax, SyntaxKind::R_PAREN)
18111    }
18112    #[inline]
18113    pub fn content_token(&self) -> Option<SyntaxToken> {
18114        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18115    }
18116    #[inline]
18117    pub fn document_token(&self) -> Option<SyntaxToken> {
18118        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18119    }
18120    #[inline]
18121    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18122        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18123    }
18124    #[inline]
18125    pub fn strip_token(&self) -> Option<SyntaxToken> {
18126        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18127    }
18128    #[inline]
18129    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18130        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18131    }
18132    #[inline]
18133    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18134        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18135    }
18136}
18137
18138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18139pub struct XmlPassingMech {
18140    pub(crate) syntax: SyntaxNode,
18141}
18142impl XmlPassingMech {
18143    #[inline]
18144    pub fn by_token(&self) -> Option<SyntaxToken> {
18145        support::token(&self.syntax, SyntaxKind::BY_KW)
18146    }
18147    #[inline]
18148    pub fn ref_token(&self) -> Option<SyntaxToken> {
18149        support::token(&self.syntax, SyntaxKind::REF_KW)
18150    }
18151    #[inline]
18152    pub fn value_token(&self) -> Option<SyntaxToken> {
18153        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18154    }
18155}
18156
18157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18158pub struct XmlPiFn {
18159    pub(crate) syntax: SyntaxNode,
18160}
18161impl XmlPiFn {
18162    #[inline]
18163    pub fn expr(&self) -> Option<Expr> {
18164        support::child(&self.syntax)
18165    }
18166    #[inline]
18167    pub fn name(&self) -> Option<Name> {
18168        support::child(&self.syntax)
18169    }
18170    #[inline]
18171    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18172        support::token(&self.syntax, SyntaxKind::L_PAREN)
18173    }
18174    #[inline]
18175    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18176        support::token(&self.syntax, SyntaxKind::R_PAREN)
18177    }
18178    #[inline]
18179    pub fn comma_token(&self) -> Option<SyntaxToken> {
18180        support::token(&self.syntax, SyntaxKind::COMMA)
18181    }
18182    #[inline]
18183    pub fn name_token(&self) -> Option<SyntaxToken> {
18184        support::token(&self.syntax, SyntaxKind::NAME_KW)
18185    }
18186    #[inline]
18187    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
18188        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
18189    }
18190}
18191
18192#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18193pub struct XmlRootFn {
18194    pub(crate) syntax: SyntaxNode,
18195}
18196impl XmlRootFn {
18197    #[inline]
18198    pub fn expr(&self) -> Option<Expr> {
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 no_token(&self) -> Option<SyntaxToken> {
18215        support::token(&self.syntax, SyntaxKind::NO_KW)
18216    }
18217    #[inline]
18218    pub fn standalone_token(&self) -> Option<SyntaxToken> {
18219        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
18220    }
18221    #[inline]
18222    pub fn value_token(&self) -> Option<SyntaxToken> {
18223        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18224    }
18225    #[inline]
18226    pub fn version_token(&self) -> Option<SyntaxToken> {
18227        support::token(&self.syntax, SyntaxKind::VERSION_KW)
18228    }
18229    #[inline]
18230    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
18231        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
18232    }
18233    #[inline]
18234    pub fn yes_token(&self) -> Option<SyntaxToken> {
18235        support::token(&self.syntax, SyntaxKind::YES_KW)
18236    }
18237}
18238
18239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18240pub struct XmlRowPassingClause {
18241    pub(crate) syntax: SyntaxNode,
18242}
18243impl XmlRowPassingClause {
18244    #[inline]
18245    pub fn expr(&self) -> Option<Expr> {
18246        support::child(&self.syntax)
18247    }
18248    #[inline]
18249    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18250        support::child(&self.syntax)
18251    }
18252    #[inline]
18253    pub fn passing_token(&self) -> Option<SyntaxToken> {
18254        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18255    }
18256}
18257
18258#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18259pub struct XmlSerializeFn {
18260    pub(crate) syntax: SyntaxNode,
18261}
18262impl XmlSerializeFn {
18263    #[inline]
18264    pub fn expr(&self) -> Option<Expr> {
18265        support::child(&self.syntax)
18266    }
18267    #[inline]
18268    pub fn ty(&self) -> Option<Type> {
18269        support::child(&self.syntax)
18270    }
18271    #[inline]
18272    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18273        support::token(&self.syntax, SyntaxKind::L_PAREN)
18274    }
18275    #[inline]
18276    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18277        support::token(&self.syntax, SyntaxKind::R_PAREN)
18278    }
18279    #[inline]
18280    pub fn as_token(&self) -> Option<SyntaxToken> {
18281        support::token(&self.syntax, SyntaxKind::AS_KW)
18282    }
18283    #[inline]
18284    pub fn content_token(&self) -> Option<SyntaxToken> {
18285        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18286    }
18287    #[inline]
18288    pub fn document_token(&self) -> Option<SyntaxToken> {
18289        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18290    }
18291    #[inline]
18292    pub fn indent_token(&self) -> Option<SyntaxToken> {
18293        support::token(&self.syntax, SyntaxKind::INDENT_KW)
18294    }
18295    #[inline]
18296    pub fn no_token(&self) -> Option<SyntaxToken> {
18297        support::token(&self.syntax, SyntaxKind::NO_KW)
18298    }
18299    #[inline]
18300    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
18301        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
18302    }
18303}
18304
18305#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18306pub struct XmlTable {
18307    pub(crate) syntax: SyntaxNode,
18308}
18309impl XmlTable {
18310    #[inline]
18311    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
18312        support::child(&self.syntax)
18313    }
18314    #[inline]
18315    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
18316        support::child(&self.syntax)
18317    }
18318    #[inline]
18319    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
18320        support::child(&self.syntax)
18321    }
18322    #[inline]
18323    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18324        support::token(&self.syntax, SyntaxKind::L_PAREN)
18325    }
18326    #[inline]
18327    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18328        support::token(&self.syntax, SyntaxKind::R_PAREN)
18329    }
18330    #[inline]
18331    pub fn comma_token(&self) -> Option<SyntaxToken> {
18332        support::token(&self.syntax, SyntaxKind::COMMA)
18333    }
18334    #[inline]
18335    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
18336        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
18337    }
18338    #[inline]
18339    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
18340        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
18341    }
18342}
18343
18344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18345pub struct XmlTableColumn {
18346    pub(crate) syntax: SyntaxNode,
18347}
18348impl XmlTableColumn {
18349    #[inline]
18350    pub fn name(&self) -> Option<Name> {
18351        support::child(&self.syntax)
18352    }
18353    #[inline]
18354    pub fn ty(&self) -> Option<Type> {
18355        support::child(&self.syntax)
18356    }
18357    #[inline]
18358    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
18359        support::child(&self.syntax)
18360    }
18361    #[inline]
18362    pub fn for_token(&self) -> Option<SyntaxToken> {
18363        support::token(&self.syntax, SyntaxKind::FOR_KW)
18364    }
18365    #[inline]
18366    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
18367        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
18368    }
18369}
18370
18371#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18372pub struct XmlTableColumnList {
18373    pub(crate) syntax: SyntaxNode,
18374}
18375impl XmlTableColumnList {
18376    #[inline]
18377    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
18378        support::children(&self.syntax)
18379    }
18380    #[inline]
18381    pub fn columns_token(&self) -> Option<SyntaxToken> {
18382        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
18383    }
18384}
18385
18386#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18387pub enum AlterColumnOption {
18388    AddGenerated(AddGenerated),
18389    DropDefault(DropDefault),
18390    DropExpression(DropExpression),
18391    DropIdentity(DropIdentity),
18392    DropNotNull(DropNotNull),
18393    Inherit(Inherit),
18394    NoInherit(NoInherit),
18395    ResetOptions(ResetOptions),
18396    Restart(Restart),
18397    SetCompression(SetCompression),
18398    SetDefault(SetDefault),
18399    SetExpression(SetExpression),
18400    SetGenerated(SetGenerated),
18401    SetGeneratedOptions(SetGeneratedOptions),
18402    SetNotNull(SetNotNull),
18403    SetOptions(SetOptions),
18404    SetOptionsList(SetOptionsList),
18405    SetSequenceOption(SetSequenceOption),
18406    SetStatistics(SetStatistics),
18407    SetStorage(SetStorage),
18408    SetType(SetType),
18409}
18410
18411#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18412pub enum AlterDomainAction {
18413    AddConstraint(AddConstraint),
18414    DropConstraint(DropConstraint),
18415    DropDefault(DropDefault),
18416    DropNotNull(DropNotNull),
18417    OwnerTo(OwnerTo),
18418    RenameConstraint(RenameConstraint),
18419    RenameTo(RenameTo),
18420    SetDefault(SetDefault),
18421    SetNotNull(SetNotNull),
18422    SetSchema(SetSchema),
18423    ValidateConstraint(ValidateConstraint),
18424}
18425
18426#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18427pub enum AlterIndexAction {
18428    AlterSetStatistics(AlterSetStatistics),
18429    AttachPartition(AttachPartition),
18430    DependsOnExtension(DependsOnExtension),
18431    NoDependsOnExtension(NoDependsOnExtension),
18432    RenameTo(RenameTo),
18433    ResetOptions(ResetOptions),
18434    SetOptions(SetOptions),
18435    SetTablespace(SetTablespace),
18436}
18437
18438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18439pub enum AlterMaterializedViewAction {
18440    DependsOnExtension(DependsOnExtension),
18441    NoDependsOnExtension(NoDependsOnExtension),
18442    RenameColumn(RenameColumn),
18443    RenameTo(RenameTo),
18444    SetSchema(SetSchema),
18445    AlterTableAction(AlterTableAction),
18446}
18447
18448#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18449pub enum AlterPropertyGraphAction {
18450    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
18451    AddVertexEdgeTables(AddVertexEdgeTables),
18452    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
18453    DropEdgeTables(DropEdgeTables),
18454    DropVertexEdgeLabel(DropVertexEdgeLabel),
18455    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
18456    DropVertexTables(DropVertexTables),
18457    OwnerTo(OwnerTo),
18458    RenameTo(RenameTo),
18459    SetSchema(SetSchema),
18460}
18461
18462#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18463pub enum AlterTableAction {
18464    AddColumn(AddColumn),
18465    AddConstraint(AddConstraint),
18466    AlterColumn(AlterColumn),
18467    AlterConstraint(AlterConstraint),
18468    AttachPartition(AttachPartition),
18469    ClusterOn(ClusterOn),
18470    DetachPartition(DetachPartition),
18471    DisableRls(DisableRls),
18472    DisableRule(DisableRule),
18473    DisableTrigger(DisableTrigger),
18474    DropColumn(DropColumn),
18475    DropConstraint(DropConstraint),
18476    EnableAlwaysRule(EnableAlwaysRule),
18477    EnableAlwaysTrigger(EnableAlwaysTrigger),
18478    EnableReplicaRule(EnableReplicaRule),
18479    EnableReplicaTrigger(EnableReplicaTrigger),
18480    EnableRls(EnableRls),
18481    EnableRule(EnableRule),
18482    EnableTrigger(EnableTrigger),
18483    ForceRls(ForceRls),
18484    InheritTable(InheritTable),
18485    MergePartitions(MergePartitions),
18486    NoForceRls(NoForceRls),
18487    NoInheritTable(NoInheritTable),
18488    NotOf(NotOf),
18489    OfType(OfType),
18490    OptionItemList(OptionItemList),
18491    OwnerTo(OwnerTo),
18492    RenameColumn(RenameColumn),
18493    RenameConstraint(RenameConstraint),
18494    RenameTo(RenameTo),
18495    ReplicaIdentity(ReplicaIdentity),
18496    ResetOptions(ResetOptions),
18497    SetAccessMethod(SetAccessMethod),
18498    SetLogged(SetLogged),
18499    SetOptions(SetOptions),
18500    SetSchema(SetSchema),
18501    SetTablespace(SetTablespace),
18502    SetUnlogged(SetUnlogged),
18503    SetWithoutCluster(SetWithoutCluster),
18504    SetWithoutOids(SetWithoutOids),
18505    SplitPartition(SplitPartition),
18506    ValidateConstraint(ValidateConstraint),
18507}
18508
18509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18510pub enum AlterTypeAction {
18511    AddAttribute(AddAttribute),
18512    AlterAttribute(AlterAttribute),
18513    DropAttribute(DropAttribute),
18514}
18515
18516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18517pub enum ColumnConstraint {
18518    CheckConstraint(CheckConstraint),
18519    DefaultConstraint(DefaultConstraint),
18520    ExcludeConstraint(ExcludeConstraint),
18521    NotNullConstraint(NotNullConstraint),
18522    PrimaryKeyConstraint(PrimaryKeyConstraint),
18523    ReferencesConstraint(ReferencesConstraint),
18524    UniqueConstraint(UniqueConstraint),
18525}
18526
18527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18528pub enum ConfigValue {
18529    Literal(Literal),
18530    NameRef(NameRef),
18531}
18532
18533#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18534pub enum ConflictAction {
18535    ConflictDoNothing(ConflictDoNothing),
18536    ConflictDoSelect(ConflictDoSelect),
18537    ConflictDoUpdateSet(ConflictDoUpdateSet),
18538}
18539
18540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18541pub enum ConflictTarget {
18542    ConflictOnConstraint(ConflictOnConstraint),
18543    ConflictOnIndex(ConflictOnIndex),
18544}
18545
18546#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18547pub enum Constraint {
18548    CheckConstraint(CheckConstraint),
18549    DefaultConstraint(DefaultConstraint),
18550    ForeignKeyConstraint(ForeignKeyConstraint),
18551    GeneratedConstraint(GeneratedConstraint),
18552    NotNullConstraint(NotNullConstraint),
18553    NullConstraint(NullConstraint),
18554    PrimaryKeyConstraint(PrimaryKeyConstraint),
18555    ReferencesConstraint(ReferencesConstraint),
18556    UniqueConstraint(UniqueConstraint),
18557}
18558
18559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18560pub enum ElementTableLabelAndProperties {
18561    LabelAndPropertiesList(LabelAndPropertiesList),
18562    ElementTableProperties(ElementTableProperties),
18563}
18564
18565#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18566pub enum ElementTableProperties {
18567    AllProperties(AllProperties),
18568    NoProperties(NoProperties),
18569    PropertiesList(PropertiesList),
18570}
18571
18572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18573pub enum ExplainStmt {
18574    CompoundSelect(CompoundSelect),
18575    CreateMaterializedView(CreateMaterializedView),
18576    CreateTableAs(CreateTableAs),
18577    Declare(Declare),
18578    Delete(Delete),
18579    Execute(Execute),
18580    Insert(Insert),
18581    Merge(Merge),
18582    ParenSelect(ParenSelect),
18583    Select(Select),
18584    SelectInto(SelectInto),
18585    Table(Table),
18586    Update(Update),
18587    Values(Values),
18588}
18589
18590#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18591pub enum Expr {
18592    ArrayExpr(ArrayExpr),
18593    BetweenExpr(BetweenExpr),
18594    BinExpr(BinExpr),
18595    CallExpr(CallExpr),
18596    CaseExpr(CaseExpr),
18597    CastExpr(CastExpr),
18598    FieldExpr(FieldExpr),
18599    IndexExpr(IndexExpr),
18600    Literal(Literal),
18601    NameRef(NameRef),
18602    ParenExpr(ParenExpr),
18603    PostfixExpr(PostfixExpr),
18604    PrefixExpr(PrefixExpr),
18605    SliceExpr(SliceExpr),
18606    TupleExpr(TupleExpr),
18607}
18608
18609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18610pub enum FuncOption {
18611    AsFuncOption(AsFuncOption),
18612    BeginFuncOptionList(BeginFuncOptionList),
18613    CostFuncOption(CostFuncOption),
18614    LanguageFuncOption(LanguageFuncOption),
18615    LeakproofFuncOption(LeakproofFuncOption),
18616    ParallelFuncOption(ParallelFuncOption),
18617    ResetFuncOption(ResetFuncOption),
18618    ReturnFuncOption(ReturnFuncOption),
18619    RowsFuncOption(RowsFuncOption),
18620    SecurityFuncOption(SecurityFuncOption),
18621    SetFuncOption(SetFuncOption),
18622    StrictFuncOption(StrictFuncOption),
18623    SupportFuncOption(SupportFuncOption),
18624    TransformFuncOption(TransformFuncOption),
18625    VolatilityFuncOption(VolatilityFuncOption),
18626    WindowFuncOption(WindowFuncOption),
18627}
18628
18629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18630pub enum GroupBy {
18631    GroupingCube(GroupingCube),
18632    GroupingExpr(GroupingExpr),
18633    GroupingRollup(GroupingRollup),
18634    GroupingSets(GroupingSets),
18635}
18636
18637#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18638pub enum JoinType {
18639    JoinCross(JoinCross),
18640    JoinFull(JoinFull),
18641    JoinInner(JoinInner),
18642    JoinLeft(JoinLeft),
18643    JoinRight(JoinRight),
18644}
18645
18646#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18647pub enum JsonBehavior {
18648    JsonBehaviorDefault(JsonBehaviorDefault),
18649    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
18650    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
18651    JsonBehaviorError(JsonBehaviorError),
18652    JsonBehaviorFalse(JsonBehaviorFalse),
18653    JsonBehaviorNull(JsonBehaviorNull),
18654    JsonBehaviorTrue(JsonBehaviorTrue),
18655    JsonBehaviorUnknown(JsonBehaviorUnknown),
18656}
18657
18658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18659pub enum MatchType {
18660    MatchFull(MatchFull),
18661    MatchPartial(MatchPartial),
18662    MatchSimple(MatchSimple),
18663}
18664
18665#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18666pub enum MergeAction {
18667    MergeDelete(MergeDelete),
18668    MergeDoNothing(MergeDoNothing),
18669    MergeInsert(MergeInsert),
18670    MergeUpdate(MergeUpdate),
18671}
18672
18673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18674pub enum MergeWhenClause {
18675    MergeWhenMatched(MergeWhenMatched),
18676    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
18677    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
18678}
18679
18680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18681pub enum OnCommitAction {
18682    DeleteRows(DeleteRows),
18683    Drop(Drop),
18684    PreserveRows(PreserveRows),
18685}
18686
18687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18688pub enum ParamMode {
18689    ParamIn(ParamIn),
18690    ParamInOut(ParamInOut),
18691    ParamOut(ParamOut),
18692    ParamVariadic(ParamVariadic),
18693}
18694
18695#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18696pub enum PartitionType {
18697    PartitionDefault(PartitionDefault),
18698    PartitionForValuesFrom(PartitionForValuesFrom),
18699    PartitionForValuesIn(PartitionForValuesIn),
18700    PartitionForValuesWith(PartitionForValuesWith),
18701}
18702
18703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18704pub enum PathPrimary {
18705    EdgeAny(EdgeAny),
18706    EdgeLeft(EdgeLeft),
18707    EdgeRight(EdgeRight),
18708    ParenGraphPattern(ParenGraphPattern),
18709    VertexPattern(VertexPattern),
18710}
18711
18712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18713pub enum Persistence {
18714    Temp(Temp),
18715    Unlogged(Unlogged),
18716}
18717
18718#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18719pub enum PreparableStmt {
18720    CompoundSelect(CompoundSelect),
18721    Delete(Delete),
18722    Insert(Insert),
18723    Merge(Merge),
18724    Select(Select),
18725    SelectInto(SelectInto),
18726    Table(Table),
18727    Update(Update),
18728    Values(Values),
18729}
18730
18731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18732pub enum RefAction {
18733    Cascade(Cascade),
18734    NoAction(NoAction),
18735    Restrict(Restrict),
18736    SetDefaultColumns(SetDefaultColumns),
18737    SetNullColumns(SetNullColumns),
18738}
18739
18740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18741pub enum SchemaElement {
18742    CreateIndex(CreateIndex),
18743    CreateSequence(CreateSequence),
18744    CreateTable(CreateTable),
18745    CreateTrigger(CreateTrigger),
18746    CreateView(CreateView),
18747    Grant(Grant),
18748}
18749
18750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18751pub enum SelectVariant {
18752    CompoundSelect(CompoundSelect),
18753    ParenSelect(ParenSelect),
18754    Select(Select),
18755    SelectInto(SelectInto),
18756    Table(Table),
18757    Values(Values),
18758}
18759
18760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18761pub enum SetColumn {
18762    SetMultipleColumns(SetMultipleColumns),
18763    SetSingleColumn(SetSingleColumn),
18764}
18765
18766#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18767pub enum Stmt {
18768    AlterAggregate(AlterAggregate),
18769    AlterCollation(AlterCollation),
18770    AlterConversion(AlterConversion),
18771    AlterDatabase(AlterDatabase),
18772    AlterDefaultPrivileges(AlterDefaultPrivileges),
18773    AlterDomain(AlterDomain),
18774    AlterEventTrigger(AlterEventTrigger),
18775    AlterExtension(AlterExtension),
18776    AlterForeignDataWrapper(AlterForeignDataWrapper),
18777    AlterForeignTable(AlterForeignTable),
18778    AlterFunction(AlterFunction),
18779    AlterGroup(AlterGroup),
18780    AlterIndex(AlterIndex),
18781    AlterLanguage(AlterLanguage),
18782    AlterLargeObject(AlterLargeObject),
18783    AlterMaterializedView(AlterMaterializedView),
18784    AlterOperator(AlterOperator),
18785    AlterOperatorClass(AlterOperatorClass),
18786    AlterOperatorFamily(AlterOperatorFamily),
18787    AlterPolicy(AlterPolicy),
18788    AlterProcedure(AlterProcedure),
18789    AlterPropertyGraph(AlterPropertyGraph),
18790    AlterPublication(AlterPublication),
18791    AlterRole(AlterRole),
18792    AlterRoutine(AlterRoutine),
18793    AlterRule(AlterRule),
18794    AlterSchema(AlterSchema),
18795    AlterSequence(AlterSequence),
18796    AlterServer(AlterServer),
18797    AlterStatistics(AlterStatistics),
18798    AlterSubscription(AlterSubscription),
18799    AlterSystem(AlterSystem),
18800    AlterTable(AlterTable),
18801    AlterTablespace(AlterTablespace),
18802    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
18803    AlterTextSearchDictionary(AlterTextSearchDictionary),
18804    AlterTextSearchParser(AlterTextSearchParser),
18805    AlterTextSearchTemplate(AlterTextSearchTemplate),
18806    AlterTrigger(AlterTrigger),
18807    AlterType(AlterType),
18808    AlterUser(AlterUser),
18809    AlterUserMapping(AlterUserMapping),
18810    AlterView(AlterView),
18811    Analyze(Analyze),
18812    Begin(Begin),
18813    Call(Call),
18814    Checkpoint(Checkpoint),
18815    Close(Close),
18816    Cluster(Cluster),
18817    CommentOn(CommentOn),
18818    Commit(Commit),
18819    Copy(Copy),
18820    CreateAccessMethod(CreateAccessMethod),
18821    CreateAggregate(CreateAggregate),
18822    CreateCast(CreateCast),
18823    CreateCollation(CreateCollation),
18824    CreateConversion(CreateConversion),
18825    CreateDatabase(CreateDatabase),
18826    CreateDomain(CreateDomain),
18827    CreateEventTrigger(CreateEventTrigger),
18828    CreateExtension(CreateExtension),
18829    CreateForeignDataWrapper(CreateForeignDataWrapper),
18830    CreateForeignTable(CreateForeignTable),
18831    CreateFunction(CreateFunction),
18832    CreateGroup(CreateGroup),
18833    CreateIndex(CreateIndex),
18834    CreateLanguage(CreateLanguage),
18835    CreateMaterializedView(CreateMaterializedView),
18836    CreateOperator(CreateOperator),
18837    CreateOperatorClass(CreateOperatorClass),
18838    CreateOperatorFamily(CreateOperatorFamily),
18839    CreatePolicy(CreatePolicy),
18840    CreateProcedure(CreateProcedure),
18841    CreatePropertyGraph(CreatePropertyGraph),
18842    CreatePublication(CreatePublication),
18843    CreateRole(CreateRole),
18844    CreateRule(CreateRule),
18845    CreateSchema(CreateSchema),
18846    CreateSequence(CreateSequence),
18847    CreateServer(CreateServer),
18848    CreateStatistics(CreateStatistics),
18849    CreateSubscription(CreateSubscription),
18850    CreateTable(CreateTable),
18851    CreateTableAs(CreateTableAs),
18852    CreateTablespace(CreateTablespace),
18853    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
18854    CreateTextSearchDictionary(CreateTextSearchDictionary),
18855    CreateTextSearchParser(CreateTextSearchParser),
18856    CreateTextSearchTemplate(CreateTextSearchTemplate),
18857    CreateTransform(CreateTransform),
18858    CreateTrigger(CreateTrigger),
18859    CreateType(CreateType),
18860    CreateUser(CreateUser),
18861    CreateUserMapping(CreateUserMapping),
18862    CreateView(CreateView),
18863    Deallocate(Deallocate),
18864    Declare(Declare),
18865    Delete(Delete),
18866    Discard(Discard),
18867    Do(Do),
18868    DropAccessMethod(DropAccessMethod),
18869    DropAggregate(DropAggregate),
18870    DropCast(DropCast),
18871    DropCollation(DropCollation),
18872    DropConversion(DropConversion),
18873    DropDatabase(DropDatabase),
18874    DropDomain(DropDomain),
18875    DropEventTrigger(DropEventTrigger),
18876    DropExtension(DropExtension),
18877    DropForeignDataWrapper(DropForeignDataWrapper),
18878    DropForeignTable(DropForeignTable),
18879    DropFunction(DropFunction),
18880    DropGroup(DropGroup),
18881    DropIndex(DropIndex),
18882    DropLanguage(DropLanguage),
18883    DropMaterializedView(DropMaterializedView),
18884    DropOperator(DropOperator),
18885    DropOperatorClass(DropOperatorClass),
18886    DropOperatorFamily(DropOperatorFamily),
18887    DropOwned(DropOwned),
18888    DropPolicy(DropPolicy),
18889    DropProcedure(DropProcedure),
18890    DropPropertyGraph(DropPropertyGraph),
18891    DropPublication(DropPublication),
18892    DropRole(DropRole),
18893    DropRoutine(DropRoutine),
18894    DropRule(DropRule),
18895    DropSchema(DropSchema),
18896    DropSequence(DropSequence),
18897    DropServer(DropServer),
18898    DropStatistics(DropStatistics),
18899    DropSubscription(DropSubscription),
18900    DropTable(DropTable),
18901    DropTablespace(DropTablespace),
18902    DropTextSearchConfig(DropTextSearchConfig),
18903    DropTextSearchDict(DropTextSearchDict),
18904    DropTextSearchParser(DropTextSearchParser),
18905    DropTextSearchTemplate(DropTextSearchTemplate),
18906    DropTransform(DropTransform),
18907    DropTrigger(DropTrigger),
18908    DropType(DropType),
18909    DropUser(DropUser),
18910    DropUserMapping(DropUserMapping),
18911    DropView(DropView),
18912    Execute(Execute),
18913    Explain(Explain),
18914    Fetch(Fetch),
18915    Grant(Grant),
18916    ImportForeignSchema(ImportForeignSchema),
18917    Insert(Insert),
18918    Listen(Listen),
18919    Load(Load),
18920    Lock(Lock),
18921    Merge(Merge),
18922    Move(Move),
18923    Notify(Notify),
18924    ParenSelect(ParenSelect),
18925    Prepare(Prepare),
18926    PrepareTransaction(PrepareTransaction),
18927    Reassign(Reassign),
18928    Refresh(Refresh),
18929    Reindex(Reindex),
18930    ReleaseSavepoint(ReleaseSavepoint),
18931    Repack(Repack),
18932    Reset(Reset),
18933    ResetSessionAuth(ResetSessionAuth),
18934    Revoke(Revoke),
18935    Rollback(Rollback),
18936    Savepoint(Savepoint),
18937    SecurityLabel(SecurityLabel),
18938    Select(Select),
18939    SelectInto(SelectInto),
18940    Set(Set),
18941    SetConstraints(SetConstraints),
18942    SetRole(SetRole),
18943    SetSessionAuth(SetSessionAuth),
18944    SetTransaction(SetTransaction),
18945    Show(Show),
18946    Table(Table),
18947    Truncate(Truncate),
18948    Unlisten(Unlisten),
18949    Update(Update),
18950    Vacuum(Vacuum),
18951    Values(Values),
18952}
18953
18954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18955pub enum TableArg {
18956    Column(Column),
18957    LikeClause(LikeClause),
18958    TableConstraint(TableConstraint),
18959}
18960
18961#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18962pub enum TableConstraint {
18963    CheckConstraint(CheckConstraint),
18964    ExcludeConstraint(ExcludeConstraint),
18965    ForeignKeyConstraint(ForeignKeyConstraint),
18966    PrimaryKeyConstraint(PrimaryKeyConstraint),
18967    UniqueConstraint(UniqueConstraint),
18968}
18969
18970#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18971pub enum Timezone {
18972    WithTimezone(WithTimezone),
18973    WithoutTimezone(WithoutTimezone),
18974}
18975
18976#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18977pub enum TransactionMode {
18978    Deferrable(Deferrable),
18979    NotDeferrable(NotDeferrable),
18980    ReadCommitted(ReadCommitted),
18981    ReadOnly(ReadOnly),
18982    ReadUncommitted(ReadUncommitted),
18983    ReadWrite(ReadWrite),
18984    RepeatableRead(RepeatableRead),
18985    Serializable(Serializable),
18986}
18987
18988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18989pub enum Type {
18990    ArrayType(ArrayType),
18991    BitType(BitType),
18992    CharType(CharType),
18993    DoubleType(DoubleType),
18994    ExprType(ExprType),
18995    IntervalType(IntervalType),
18996    PathType(PathType),
18997    PercentType(PercentType),
18998    TimeType(TimeType),
18999}
19000
19001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19002pub enum ValuePosition {
19003    AfterValue(AfterValue),
19004    BeforeValue(BeforeValue),
19005}
19006
19007#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19008pub enum WithQuery {
19009    CompoundSelect(CompoundSelect),
19010    Delete(Delete),
19011    Insert(Insert),
19012    Merge(Merge),
19013    ParenSelect(ParenSelect),
19014    Select(Select),
19015    Table(Table),
19016    Update(Update),
19017    Values(Values),
19018}
19019impl AstNode for AddAttribute {
19020    #[inline]
19021    fn can_cast(kind: SyntaxKind) -> bool {
19022        kind == SyntaxKind::ADD_ATTRIBUTE
19023    }
19024    #[inline]
19025    fn cast(syntax: SyntaxNode) -> Option<Self> {
19026        if Self::can_cast(syntax.kind()) {
19027            Some(Self { syntax })
19028        } else {
19029            None
19030        }
19031    }
19032    #[inline]
19033    fn syntax(&self) -> &SyntaxNode {
19034        &self.syntax
19035    }
19036}
19037impl AstNode for AddColumn {
19038    #[inline]
19039    fn can_cast(kind: SyntaxKind) -> bool {
19040        kind == SyntaxKind::ADD_COLUMN
19041    }
19042    #[inline]
19043    fn cast(syntax: SyntaxNode) -> Option<Self> {
19044        if Self::can_cast(syntax.kind()) {
19045            Some(Self { syntax })
19046        } else {
19047            None
19048        }
19049    }
19050    #[inline]
19051    fn syntax(&self) -> &SyntaxNode {
19052        &self.syntax
19053    }
19054}
19055impl AstNode for AddConstraint {
19056    #[inline]
19057    fn can_cast(kind: SyntaxKind) -> bool {
19058        kind == SyntaxKind::ADD_CONSTRAINT
19059    }
19060    #[inline]
19061    fn cast(syntax: SyntaxNode) -> Option<Self> {
19062        if Self::can_cast(syntax.kind()) {
19063            Some(Self { syntax })
19064        } else {
19065            None
19066        }
19067    }
19068    #[inline]
19069    fn syntax(&self) -> &SyntaxNode {
19070        &self.syntax
19071    }
19072}
19073impl AstNode for AddGenerated {
19074    #[inline]
19075    fn can_cast(kind: SyntaxKind) -> bool {
19076        kind == SyntaxKind::ADD_GENERATED
19077    }
19078    #[inline]
19079    fn cast(syntax: SyntaxNode) -> Option<Self> {
19080        if Self::can_cast(syntax.kind()) {
19081            Some(Self { syntax })
19082        } else {
19083            None
19084        }
19085    }
19086    #[inline]
19087    fn syntax(&self) -> &SyntaxNode {
19088        &self.syntax
19089    }
19090}
19091impl AstNode for AddLabel {
19092    #[inline]
19093    fn can_cast(kind: SyntaxKind) -> bool {
19094        kind == SyntaxKind::ADD_LABEL
19095    }
19096    #[inline]
19097    fn cast(syntax: SyntaxNode) -> Option<Self> {
19098        if Self::can_cast(syntax.kind()) {
19099            Some(Self { syntax })
19100        } else {
19101            None
19102        }
19103    }
19104    #[inline]
19105    fn syntax(&self) -> &SyntaxNode {
19106        &self.syntax
19107    }
19108}
19109impl AstNode for AddOpClassOptions {
19110    #[inline]
19111    fn can_cast(kind: SyntaxKind) -> bool {
19112        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19113    }
19114    #[inline]
19115    fn cast(syntax: SyntaxNode) -> Option<Self> {
19116        if Self::can_cast(syntax.kind()) {
19117            Some(Self { syntax })
19118        } else {
19119            None
19120        }
19121    }
19122    #[inline]
19123    fn syntax(&self) -> &SyntaxNode {
19124        &self.syntax
19125    }
19126}
19127impl AstNode for AddValue {
19128    #[inline]
19129    fn can_cast(kind: SyntaxKind) -> bool {
19130        kind == SyntaxKind::ADD_VALUE
19131    }
19132    #[inline]
19133    fn cast(syntax: SyntaxNode) -> Option<Self> {
19134        if Self::can_cast(syntax.kind()) {
19135            Some(Self { syntax })
19136        } else {
19137            None
19138        }
19139    }
19140    #[inline]
19141    fn syntax(&self) -> &SyntaxNode {
19142        &self.syntax
19143    }
19144}
19145impl AstNode for AddVertexEdgeLabelProperties {
19146    #[inline]
19147    fn can_cast(kind: SyntaxKind) -> bool {
19148        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19149    }
19150    #[inline]
19151    fn cast(syntax: SyntaxNode) -> Option<Self> {
19152        if Self::can_cast(syntax.kind()) {
19153            Some(Self { syntax })
19154        } else {
19155            None
19156        }
19157    }
19158    #[inline]
19159    fn syntax(&self) -> &SyntaxNode {
19160        &self.syntax
19161    }
19162}
19163impl AstNode for AddVertexEdgeTables {
19164    #[inline]
19165    fn can_cast(kind: SyntaxKind) -> bool {
19166        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
19167    }
19168    #[inline]
19169    fn cast(syntax: SyntaxNode) -> Option<Self> {
19170        if Self::can_cast(syntax.kind()) {
19171            Some(Self { syntax })
19172        } else {
19173            None
19174        }
19175    }
19176    #[inline]
19177    fn syntax(&self) -> &SyntaxNode {
19178        &self.syntax
19179    }
19180}
19181impl AstNode for AfterValue {
19182    #[inline]
19183    fn can_cast(kind: SyntaxKind) -> bool {
19184        kind == SyntaxKind::AFTER_VALUE
19185    }
19186    #[inline]
19187    fn cast(syntax: SyntaxNode) -> Option<Self> {
19188        if Self::can_cast(syntax.kind()) {
19189            Some(Self { syntax })
19190        } else {
19191            None
19192        }
19193    }
19194    #[inline]
19195    fn syntax(&self) -> &SyntaxNode {
19196        &self.syntax
19197    }
19198}
19199impl AstNode for Aggregate {
19200    #[inline]
19201    fn can_cast(kind: SyntaxKind) -> bool {
19202        kind == SyntaxKind::AGGREGATE
19203    }
19204    #[inline]
19205    fn cast(syntax: SyntaxNode) -> Option<Self> {
19206        if Self::can_cast(syntax.kind()) {
19207            Some(Self { syntax })
19208        } else {
19209            None
19210        }
19211    }
19212    #[inline]
19213    fn syntax(&self) -> &SyntaxNode {
19214        &self.syntax
19215    }
19216}
19217impl AstNode for Alias {
19218    #[inline]
19219    fn can_cast(kind: SyntaxKind) -> bool {
19220        kind == SyntaxKind::ALIAS
19221    }
19222    #[inline]
19223    fn cast(syntax: SyntaxNode) -> Option<Self> {
19224        if Self::can_cast(syntax.kind()) {
19225            Some(Self { syntax })
19226        } else {
19227            None
19228        }
19229    }
19230    #[inline]
19231    fn syntax(&self) -> &SyntaxNode {
19232        &self.syntax
19233    }
19234}
19235impl AstNode for AllFn {
19236    #[inline]
19237    fn can_cast(kind: SyntaxKind) -> bool {
19238        kind == SyntaxKind::ALL_FN
19239    }
19240    #[inline]
19241    fn cast(syntax: SyntaxNode) -> Option<Self> {
19242        if Self::can_cast(syntax.kind()) {
19243            Some(Self { syntax })
19244        } else {
19245            None
19246        }
19247    }
19248    #[inline]
19249    fn syntax(&self) -> &SyntaxNode {
19250        &self.syntax
19251    }
19252}
19253impl AstNode for AllProperties {
19254    #[inline]
19255    fn can_cast(kind: SyntaxKind) -> bool {
19256        kind == SyntaxKind::ALL_PROPERTIES
19257    }
19258    #[inline]
19259    fn cast(syntax: SyntaxNode) -> Option<Self> {
19260        if Self::can_cast(syntax.kind()) {
19261            Some(Self { syntax })
19262        } else {
19263            None
19264        }
19265    }
19266    #[inline]
19267    fn syntax(&self) -> &SyntaxNode {
19268        &self.syntax
19269    }
19270}
19271impl AstNode for AlterAggregate {
19272    #[inline]
19273    fn can_cast(kind: SyntaxKind) -> bool {
19274        kind == SyntaxKind::ALTER_AGGREGATE
19275    }
19276    #[inline]
19277    fn cast(syntax: SyntaxNode) -> Option<Self> {
19278        if Self::can_cast(syntax.kind()) {
19279            Some(Self { syntax })
19280        } else {
19281            None
19282        }
19283    }
19284    #[inline]
19285    fn syntax(&self) -> &SyntaxNode {
19286        &self.syntax
19287    }
19288}
19289impl AstNode for AlterAttribute {
19290    #[inline]
19291    fn can_cast(kind: SyntaxKind) -> bool {
19292        kind == SyntaxKind::ALTER_ATTRIBUTE
19293    }
19294    #[inline]
19295    fn cast(syntax: SyntaxNode) -> Option<Self> {
19296        if Self::can_cast(syntax.kind()) {
19297            Some(Self { syntax })
19298        } else {
19299            None
19300        }
19301    }
19302    #[inline]
19303    fn syntax(&self) -> &SyntaxNode {
19304        &self.syntax
19305    }
19306}
19307impl AstNode for AlterCollation {
19308    #[inline]
19309    fn can_cast(kind: SyntaxKind) -> bool {
19310        kind == SyntaxKind::ALTER_COLLATION
19311    }
19312    #[inline]
19313    fn cast(syntax: SyntaxNode) -> Option<Self> {
19314        if Self::can_cast(syntax.kind()) {
19315            Some(Self { syntax })
19316        } else {
19317            None
19318        }
19319    }
19320    #[inline]
19321    fn syntax(&self) -> &SyntaxNode {
19322        &self.syntax
19323    }
19324}
19325impl AstNode for AlterColumn {
19326    #[inline]
19327    fn can_cast(kind: SyntaxKind) -> bool {
19328        kind == SyntaxKind::ALTER_COLUMN
19329    }
19330    #[inline]
19331    fn cast(syntax: SyntaxNode) -> Option<Self> {
19332        if Self::can_cast(syntax.kind()) {
19333            Some(Self { syntax })
19334        } else {
19335            None
19336        }
19337    }
19338    #[inline]
19339    fn syntax(&self) -> &SyntaxNode {
19340        &self.syntax
19341    }
19342}
19343impl AstNode for AlterConstraint {
19344    #[inline]
19345    fn can_cast(kind: SyntaxKind) -> bool {
19346        kind == SyntaxKind::ALTER_CONSTRAINT
19347    }
19348    #[inline]
19349    fn cast(syntax: SyntaxNode) -> Option<Self> {
19350        if Self::can_cast(syntax.kind()) {
19351            Some(Self { syntax })
19352        } else {
19353            None
19354        }
19355    }
19356    #[inline]
19357    fn syntax(&self) -> &SyntaxNode {
19358        &self.syntax
19359    }
19360}
19361impl AstNode for AlterConversion {
19362    #[inline]
19363    fn can_cast(kind: SyntaxKind) -> bool {
19364        kind == SyntaxKind::ALTER_CONVERSION
19365    }
19366    #[inline]
19367    fn cast(syntax: SyntaxNode) -> Option<Self> {
19368        if Self::can_cast(syntax.kind()) {
19369            Some(Self { syntax })
19370        } else {
19371            None
19372        }
19373    }
19374    #[inline]
19375    fn syntax(&self) -> &SyntaxNode {
19376        &self.syntax
19377    }
19378}
19379impl AstNode for AlterDatabase {
19380    #[inline]
19381    fn can_cast(kind: SyntaxKind) -> bool {
19382        kind == SyntaxKind::ALTER_DATABASE
19383    }
19384    #[inline]
19385    fn cast(syntax: SyntaxNode) -> Option<Self> {
19386        if Self::can_cast(syntax.kind()) {
19387            Some(Self { syntax })
19388        } else {
19389            None
19390        }
19391    }
19392    #[inline]
19393    fn syntax(&self) -> &SyntaxNode {
19394        &self.syntax
19395    }
19396}
19397impl AstNode for AlterDefaultPrivileges {
19398    #[inline]
19399    fn can_cast(kind: SyntaxKind) -> bool {
19400        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
19401    }
19402    #[inline]
19403    fn cast(syntax: SyntaxNode) -> Option<Self> {
19404        if Self::can_cast(syntax.kind()) {
19405            Some(Self { syntax })
19406        } else {
19407            None
19408        }
19409    }
19410    #[inline]
19411    fn syntax(&self) -> &SyntaxNode {
19412        &self.syntax
19413    }
19414}
19415impl AstNode for AlterDomain {
19416    #[inline]
19417    fn can_cast(kind: SyntaxKind) -> bool {
19418        kind == SyntaxKind::ALTER_DOMAIN
19419    }
19420    #[inline]
19421    fn cast(syntax: SyntaxNode) -> Option<Self> {
19422        if Self::can_cast(syntax.kind()) {
19423            Some(Self { syntax })
19424        } else {
19425            None
19426        }
19427    }
19428    #[inline]
19429    fn syntax(&self) -> &SyntaxNode {
19430        &self.syntax
19431    }
19432}
19433impl AstNode for AlterEventTrigger {
19434    #[inline]
19435    fn can_cast(kind: SyntaxKind) -> bool {
19436        kind == SyntaxKind::ALTER_EVENT_TRIGGER
19437    }
19438    #[inline]
19439    fn cast(syntax: SyntaxNode) -> Option<Self> {
19440        if Self::can_cast(syntax.kind()) {
19441            Some(Self { syntax })
19442        } else {
19443            None
19444        }
19445    }
19446    #[inline]
19447    fn syntax(&self) -> &SyntaxNode {
19448        &self.syntax
19449    }
19450}
19451impl AstNode for AlterExtension {
19452    #[inline]
19453    fn can_cast(kind: SyntaxKind) -> bool {
19454        kind == SyntaxKind::ALTER_EXTENSION
19455    }
19456    #[inline]
19457    fn cast(syntax: SyntaxNode) -> Option<Self> {
19458        if Self::can_cast(syntax.kind()) {
19459            Some(Self { syntax })
19460        } else {
19461            None
19462        }
19463    }
19464    #[inline]
19465    fn syntax(&self) -> &SyntaxNode {
19466        &self.syntax
19467    }
19468}
19469impl AstNode for AlterForeignDataWrapper {
19470    #[inline]
19471    fn can_cast(kind: SyntaxKind) -> bool {
19472        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
19473    }
19474    #[inline]
19475    fn cast(syntax: SyntaxNode) -> Option<Self> {
19476        if Self::can_cast(syntax.kind()) {
19477            Some(Self { syntax })
19478        } else {
19479            None
19480        }
19481    }
19482    #[inline]
19483    fn syntax(&self) -> &SyntaxNode {
19484        &self.syntax
19485    }
19486}
19487impl AstNode for AlterForeignTable {
19488    #[inline]
19489    fn can_cast(kind: SyntaxKind) -> bool {
19490        kind == SyntaxKind::ALTER_FOREIGN_TABLE
19491    }
19492    #[inline]
19493    fn cast(syntax: SyntaxNode) -> Option<Self> {
19494        if Self::can_cast(syntax.kind()) {
19495            Some(Self { syntax })
19496        } else {
19497            None
19498        }
19499    }
19500    #[inline]
19501    fn syntax(&self) -> &SyntaxNode {
19502        &self.syntax
19503    }
19504}
19505impl AstNode for AlterFunction {
19506    #[inline]
19507    fn can_cast(kind: SyntaxKind) -> bool {
19508        kind == SyntaxKind::ALTER_FUNCTION
19509    }
19510    #[inline]
19511    fn cast(syntax: SyntaxNode) -> Option<Self> {
19512        if Self::can_cast(syntax.kind()) {
19513            Some(Self { syntax })
19514        } else {
19515            None
19516        }
19517    }
19518    #[inline]
19519    fn syntax(&self) -> &SyntaxNode {
19520        &self.syntax
19521    }
19522}
19523impl AstNode for AlterGroup {
19524    #[inline]
19525    fn can_cast(kind: SyntaxKind) -> bool {
19526        kind == SyntaxKind::ALTER_GROUP
19527    }
19528    #[inline]
19529    fn cast(syntax: SyntaxNode) -> Option<Self> {
19530        if Self::can_cast(syntax.kind()) {
19531            Some(Self { syntax })
19532        } else {
19533            None
19534        }
19535    }
19536    #[inline]
19537    fn syntax(&self) -> &SyntaxNode {
19538        &self.syntax
19539    }
19540}
19541impl AstNode for AlterIndex {
19542    #[inline]
19543    fn can_cast(kind: SyntaxKind) -> bool {
19544        kind == SyntaxKind::ALTER_INDEX
19545    }
19546    #[inline]
19547    fn cast(syntax: SyntaxNode) -> Option<Self> {
19548        if Self::can_cast(syntax.kind()) {
19549            Some(Self { syntax })
19550        } else {
19551            None
19552        }
19553    }
19554    #[inline]
19555    fn syntax(&self) -> &SyntaxNode {
19556        &self.syntax
19557    }
19558}
19559impl AstNode for AlterLanguage {
19560    #[inline]
19561    fn can_cast(kind: SyntaxKind) -> bool {
19562        kind == SyntaxKind::ALTER_LANGUAGE
19563    }
19564    #[inline]
19565    fn cast(syntax: SyntaxNode) -> Option<Self> {
19566        if Self::can_cast(syntax.kind()) {
19567            Some(Self { syntax })
19568        } else {
19569            None
19570        }
19571    }
19572    #[inline]
19573    fn syntax(&self) -> &SyntaxNode {
19574        &self.syntax
19575    }
19576}
19577impl AstNode for AlterLargeObject {
19578    #[inline]
19579    fn can_cast(kind: SyntaxKind) -> bool {
19580        kind == SyntaxKind::ALTER_LARGE_OBJECT
19581    }
19582    #[inline]
19583    fn cast(syntax: SyntaxNode) -> Option<Self> {
19584        if Self::can_cast(syntax.kind()) {
19585            Some(Self { syntax })
19586        } else {
19587            None
19588        }
19589    }
19590    #[inline]
19591    fn syntax(&self) -> &SyntaxNode {
19592        &self.syntax
19593    }
19594}
19595impl AstNode for AlterMaterializedView {
19596    #[inline]
19597    fn can_cast(kind: SyntaxKind) -> bool {
19598        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
19599    }
19600    #[inline]
19601    fn cast(syntax: SyntaxNode) -> Option<Self> {
19602        if Self::can_cast(syntax.kind()) {
19603            Some(Self { syntax })
19604        } else {
19605            None
19606        }
19607    }
19608    #[inline]
19609    fn syntax(&self) -> &SyntaxNode {
19610        &self.syntax
19611    }
19612}
19613impl AstNode for AlterOperator {
19614    #[inline]
19615    fn can_cast(kind: SyntaxKind) -> bool {
19616        kind == SyntaxKind::ALTER_OPERATOR
19617    }
19618    #[inline]
19619    fn cast(syntax: SyntaxNode) -> Option<Self> {
19620        if Self::can_cast(syntax.kind()) {
19621            Some(Self { syntax })
19622        } else {
19623            None
19624        }
19625    }
19626    #[inline]
19627    fn syntax(&self) -> &SyntaxNode {
19628        &self.syntax
19629    }
19630}
19631impl AstNode for AlterOperatorClass {
19632    #[inline]
19633    fn can_cast(kind: SyntaxKind) -> bool {
19634        kind == SyntaxKind::ALTER_OPERATOR_CLASS
19635    }
19636    #[inline]
19637    fn cast(syntax: SyntaxNode) -> Option<Self> {
19638        if Self::can_cast(syntax.kind()) {
19639            Some(Self { syntax })
19640        } else {
19641            None
19642        }
19643    }
19644    #[inline]
19645    fn syntax(&self) -> &SyntaxNode {
19646        &self.syntax
19647    }
19648}
19649impl AstNode for AlterOperatorFamily {
19650    #[inline]
19651    fn can_cast(kind: SyntaxKind) -> bool {
19652        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
19653    }
19654    #[inline]
19655    fn cast(syntax: SyntaxNode) -> Option<Self> {
19656        if Self::can_cast(syntax.kind()) {
19657            Some(Self { syntax })
19658        } else {
19659            None
19660        }
19661    }
19662    #[inline]
19663    fn syntax(&self) -> &SyntaxNode {
19664        &self.syntax
19665    }
19666}
19667impl AstNode for AlterOption {
19668    #[inline]
19669    fn can_cast(kind: SyntaxKind) -> bool {
19670        kind == SyntaxKind::ALTER_OPTION
19671    }
19672    #[inline]
19673    fn cast(syntax: SyntaxNode) -> Option<Self> {
19674        if Self::can_cast(syntax.kind()) {
19675            Some(Self { syntax })
19676        } else {
19677            None
19678        }
19679    }
19680    #[inline]
19681    fn syntax(&self) -> &SyntaxNode {
19682        &self.syntax
19683    }
19684}
19685impl AstNode for AlterOptionList {
19686    #[inline]
19687    fn can_cast(kind: SyntaxKind) -> bool {
19688        kind == SyntaxKind::ALTER_OPTION_LIST
19689    }
19690    #[inline]
19691    fn cast(syntax: SyntaxNode) -> Option<Self> {
19692        if Self::can_cast(syntax.kind()) {
19693            Some(Self { syntax })
19694        } else {
19695            None
19696        }
19697    }
19698    #[inline]
19699    fn syntax(&self) -> &SyntaxNode {
19700        &self.syntax
19701    }
19702}
19703impl AstNode for AlterPolicy {
19704    #[inline]
19705    fn can_cast(kind: SyntaxKind) -> bool {
19706        kind == SyntaxKind::ALTER_POLICY
19707    }
19708    #[inline]
19709    fn cast(syntax: SyntaxNode) -> Option<Self> {
19710        if Self::can_cast(syntax.kind()) {
19711            Some(Self { syntax })
19712        } else {
19713            None
19714        }
19715    }
19716    #[inline]
19717    fn syntax(&self) -> &SyntaxNode {
19718        &self.syntax
19719    }
19720}
19721impl AstNode for AlterProcedure {
19722    #[inline]
19723    fn can_cast(kind: SyntaxKind) -> bool {
19724        kind == SyntaxKind::ALTER_PROCEDURE
19725    }
19726    #[inline]
19727    fn cast(syntax: SyntaxNode) -> Option<Self> {
19728        if Self::can_cast(syntax.kind()) {
19729            Some(Self { syntax })
19730        } else {
19731            None
19732        }
19733    }
19734    #[inline]
19735    fn syntax(&self) -> &SyntaxNode {
19736        &self.syntax
19737    }
19738}
19739impl AstNode for AlterPropertyGraph {
19740    #[inline]
19741    fn can_cast(kind: SyntaxKind) -> bool {
19742        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
19743    }
19744    #[inline]
19745    fn cast(syntax: SyntaxNode) -> Option<Self> {
19746        if Self::can_cast(syntax.kind()) {
19747            Some(Self { syntax })
19748        } else {
19749            None
19750        }
19751    }
19752    #[inline]
19753    fn syntax(&self) -> &SyntaxNode {
19754        &self.syntax
19755    }
19756}
19757impl AstNode for AlterPublication {
19758    #[inline]
19759    fn can_cast(kind: SyntaxKind) -> bool {
19760        kind == SyntaxKind::ALTER_PUBLICATION
19761    }
19762    #[inline]
19763    fn cast(syntax: SyntaxNode) -> Option<Self> {
19764        if Self::can_cast(syntax.kind()) {
19765            Some(Self { syntax })
19766        } else {
19767            None
19768        }
19769    }
19770    #[inline]
19771    fn syntax(&self) -> &SyntaxNode {
19772        &self.syntax
19773    }
19774}
19775impl AstNode for AlterRole {
19776    #[inline]
19777    fn can_cast(kind: SyntaxKind) -> bool {
19778        kind == SyntaxKind::ALTER_ROLE
19779    }
19780    #[inline]
19781    fn cast(syntax: SyntaxNode) -> Option<Self> {
19782        if Self::can_cast(syntax.kind()) {
19783            Some(Self { syntax })
19784        } else {
19785            None
19786        }
19787    }
19788    #[inline]
19789    fn syntax(&self) -> &SyntaxNode {
19790        &self.syntax
19791    }
19792}
19793impl AstNode for AlterRoutine {
19794    #[inline]
19795    fn can_cast(kind: SyntaxKind) -> bool {
19796        kind == SyntaxKind::ALTER_ROUTINE
19797    }
19798    #[inline]
19799    fn cast(syntax: SyntaxNode) -> Option<Self> {
19800        if Self::can_cast(syntax.kind()) {
19801            Some(Self { syntax })
19802        } else {
19803            None
19804        }
19805    }
19806    #[inline]
19807    fn syntax(&self) -> &SyntaxNode {
19808        &self.syntax
19809    }
19810}
19811impl AstNode for AlterRule {
19812    #[inline]
19813    fn can_cast(kind: SyntaxKind) -> bool {
19814        kind == SyntaxKind::ALTER_RULE
19815    }
19816    #[inline]
19817    fn cast(syntax: SyntaxNode) -> Option<Self> {
19818        if Self::can_cast(syntax.kind()) {
19819            Some(Self { syntax })
19820        } else {
19821            None
19822        }
19823    }
19824    #[inline]
19825    fn syntax(&self) -> &SyntaxNode {
19826        &self.syntax
19827    }
19828}
19829impl AstNode for AlterSchema {
19830    #[inline]
19831    fn can_cast(kind: SyntaxKind) -> bool {
19832        kind == SyntaxKind::ALTER_SCHEMA
19833    }
19834    #[inline]
19835    fn cast(syntax: SyntaxNode) -> Option<Self> {
19836        if Self::can_cast(syntax.kind()) {
19837            Some(Self { syntax })
19838        } else {
19839            None
19840        }
19841    }
19842    #[inline]
19843    fn syntax(&self) -> &SyntaxNode {
19844        &self.syntax
19845    }
19846}
19847impl AstNode for AlterSequence {
19848    #[inline]
19849    fn can_cast(kind: SyntaxKind) -> bool {
19850        kind == SyntaxKind::ALTER_SEQUENCE
19851    }
19852    #[inline]
19853    fn cast(syntax: SyntaxNode) -> Option<Self> {
19854        if Self::can_cast(syntax.kind()) {
19855            Some(Self { syntax })
19856        } else {
19857            None
19858        }
19859    }
19860    #[inline]
19861    fn syntax(&self) -> &SyntaxNode {
19862        &self.syntax
19863    }
19864}
19865impl AstNode for AlterServer {
19866    #[inline]
19867    fn can_cast(kind: SyntaxKind) -> bool {
19868        kind == SyntaxKind::ALTER_SERVER
19869    }
19870    #[inline]
19871    fn cast(syntax: SyntaxNode) -> Option<Self> {
19872        if Self::can_cast(syntax.kind()) {
19873            Some(Self { syntax })
19874        } else {
19875            None
19876        }
19877    }
19878    #[inline]
19879    fn syntax(&self) -> &SyntaxNode {
19880        &self.syntax
19881    }
19882}
19883impl AstNode for AlterSetStatistics {
19884    #[inline]
19885    fn can_cast(kind: SyntaxKind) -> bool {
19886        kind == SyntaxKind::ALTER_SET_STATISTICS
19887    }
19888    #[inline]
19889    fn cast(syntax: SyntaxNode) -> Option<Self> {
19890        if Self::can_cast(syntax.kind()) {
19891            Some(Self { syntax })
19892        } else {
19893            None
19894        }
19895    }
19896    #[inline]
19897    fn syntax(&self) -> &SyntaxNode {
19898        &self.syntax
19899    }
19900}
19901impl AstNode for AlterStatistics {
19902    #[inline]
19903    fn can_cast(kind: SyntaxKind) -> bool {
19904        kind == SyntaxKind::ALTER_STATISTICS
19905    }
19906    #[inline]
19907    fn cast(syntax: SyntaxNode) -> Option<Self> {
19908        if Self::can_cast(syntax.kind()) {
19909            Some(Self { syntax })
19910        } else {
19911            None
19912        }
19913    }
19914    #[inline]
19915    fn syntax(&self) -> &SyntaxNode {
19916        &self.syntax
19917    }
19918}
19919impl AstNode for AlterSubscription {
19920    #[inline]
19921    fn can_cast(kind: SyntaxKind) -> bool {
19922        kind == SyntaxKind::ALTER_SUBSCRIPTION
19923    }
19924    #[inline]
19925    fn cast(syntax: SyntaxNode) -> Option<Self> {
19926        if Self::can_cast(syntax.kind()) {
19927            Some(Self { syntax })
19928        } else {
19929            None
19930        }
19931    }
19932    #[inline]
19933    fn syntax(&self) -> &SyntaxNode {
19934        &self.syntax
19935    }
19936}
19937impl AstNode for AlterSystem {
19938    #[inline]
19939    fn can_cast(kind: SyntaxKind) -> bool {
19940        kind == SyntaxKind::ALTER_SYSTEM
19941    }
19942    #[inline]
19943    fn cast(syntax: SyntaxNode) -> Option<Self> {
19944        if Self::can_cast(syntax.kind()) {
19945            Some(Self { syntax })
19946        } else {
19947            None
19948        }
19949    }
19950    #[inline]
19951    fn syntax(&self) -> &SyntaxNode {
19952        &self.syntax
19953    }
19954}
19955impl AstNode for AlterTable {
19956    #[inline]
19957    fn can_cast(kind: SyntaxKind) -> bool {
19958        kind == SyntaxKind::ALTER_TABLE
19959    }
19960    #[inline]
19961    fn cast(syntax: SyntaxNode) -> Option<Self> {
19962        if Self::can_cast(syntax.kind()) {
19963            Some(Self { syntax })
19964        } else {
19965            None
19966        }
19967    }
19968    #[inline]
19969    fn syntax(&self) -> &SyntaxNode {
19970        &self.syntax
19971    }
19972}
19973impl AstNode for AlterTablespace {
19974    #[inline]
19975    fn can_cast(kind: SyntaxKind) -> bool {
19976        kind == SyntaxKind::ALTER_TABLESPACE
19977    }
19978    #[inline]
19979    fn cast(syntax: SyntaxNode) -> Option<Self> {
19980        if Self::can_cast(syntax.kind()) {
19981            Some(Self { syntax })
19982        } else {
19983            None
19984        }
19985    }
19986    #[inline]
19987    fn syntax(&self) -> &SyntaxNode {
19988        &self.syntax
19989    }
19990}
19991impl AstNode for AlterTextSearchConfiguration {
19992    #[inline]
19993    fn can_cast(kind: SyntaxKind) -> bool {
19994        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
19995    }
19996    #[inline]
19997    fn cast(syntax: SyntaxNode) -> Option<Self> {
19998        if Self::can_cast(syntax.kind()) {
19999            Some(Self { syntax })
20000        } else {
20001            None
20002        }
20003    }
20004    #[inline]
20005    fn syntax(&self) -> &SyntaxNode {
20006        &self.syntax
20007    }
20008}
20009impl AstNode for AlterTextSearchDictionary {
20010    #[inline]
20011    fn can_cast(kind: SyntaxKind) -> bool {
20012        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
20013    }
20014    #[inline]
20015    fn cast(syntax: SyntaxNode) -> Option<Self> {
20016        if Self::can_cast(syntax.kind()) {
20017            Some(Self { syntax })
20018        } else {
20019            None
20020        }
20021    }
20022    #[inline]
20023    fn syntax(&self) -> &SyntaxNode {
20024        &self.syntax
20025    }
20026}
20027impl AstNode for AlterTextSearchParser {
20028    #[inline]
20029    fn can_cast(kind: SyntaxKind) -> bool {
20030        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
20031    }
20032    #[inline]
20033    fn cast(syntax: SyntaxNode) -> Option<Self> {
20034        if Self::can_cast(syntax.kind()) {
20035            Some(Self { syntax })
20036        } else {
20037            None
20038        }
20039    }
20040    #[inline]
20041    fn syntax(&self) -> &SyntaxNode {
20042        &self.syntax
20043    }
20044}
20045impl AstNode for AlterTextSearchTemplate {
20046    #[inline]
20047    fn can_cast(kind: SyntaxKind) -> bool {
20048        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
20049    }
20050    #[inline]
20051    fn cast(syntax: SyntaxNode) -> Option<Self> {
20052        if Self::can_cast(syntax.kind()) {
20053            Some(Self { syntax })
20054        } else {
20055            None
20056        }
20057    }
20058    #[inline]
20059    fn syntax(&self) -> &SyntaxNode {
20060        &self.syntax
20061    }
20062}
20063impl AstNode for AlterTrigger {
20064    #[inline]
20065    fn can_cast(kind: SyntaxKind) -> bool {
20066        kind == SyntaxKind::ALTER_TRIGGER
20067    }
20068    #[inline]
20069    fn cast(syntax: SyntaxNode) -> Option<Self> {
20070        if Self::can_cast(syntax.kind()) {
20071            Some(Self { syntax })
20072        } else {
20073            None
20074        }
20075    }
20076    #[inline]
20077    fn syntax(&self) -> &SyntaxNode {
20078        &self.syntax
20079    }
20080}
20081impl AstNode for AlterType {
20082    #[inline]
20083    fn can_cast(kind: SyntaxKind) -> bool {
20084        kind == SyntaxKind::ALTER_TYPE
20085    }
20086    #[inline]
20087    fn cast(syntax: SyntaxNode) -> Option<Self> {
20088        if Self::can_cast(syntax.kind()) {
20089            Some(Self { syntax })
20090        } else {
20091            None
20092        }
20093    }
20094    #[inline]
20095    fn syntax(&self) -> &SyntaxNode {
20096        &self.syntax
20097    }
20098}
20099impl AstNode for AlterUser {
20100    #[inline]
20101    fn can_cast(kind: SyntaxKind) -> bool {
20102        kind == SyntaxKind::ALTER_USER
20103    }
20104    #[inline]
20105    fn cast(syntax: SyntaxNode) -> Option<Self> {
20106        if Self::can_cast(syntax.kind()) {
20107            Some(Self { syntax })
20108        } else {
20109            None
20110        }
20111    }
20112    #[inline]
20113    fn syntax(&self) -> &SyntaxNode {
20114        &self.syntax
20115    }
20116}
20117impl AstNode for AlterUserMapping {
20118    #[inline]
20119    fn can_cast(kind: SyntaxKind) -> bool {
20120        kind == SyntaxKind::ALTER_USER_MAPPING
20121    }
20122    #[inline]
20123    fn cast(syntax: SyntaxNode) -> Option<Self> {
20124        if Self::can_cast(syntax.kind()) {
20125            Some(Self { syntax })
20126        } else {
20127            None
20128        }
20129    }
20130    #[inline]
20131    fn syntax(&self) -> &SyntaxNode {
20132        &self.syntax
20133    }
20134}
20135impl AstNode for AlterVertexEdgeLabels {
20136    #[inline]
20137    fn can_cast(kind: SyntaxKind) -> bool {
20138        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20139    }
20140    #[inline]
20141    fn cast(syntax: SyntaxNode) -> Option<Self> {
20142        if Self::can_cast(syntax.kind()) {
20143            Some(Self { syntax })
20144        } else {
20145            None
20146        }
20147    }
20148    #[inline]
20149    fn syntax(&self) -> &SyntaxNode {
20150        &self.syntax
20151    }
20152}
20153impl AstNode for AlterView {
20154    #[inline]
20155    fn can_cast(kind: SyntaxKind) -> bool {
20156        kind == SyntaxKind::ALTER_VIEW
20157    }
20158    #[inline]
20159    fn cast(syntax: SyntaxNode) -> Option<Self> {
20160        if Self::can_cast(syntax.kind()) {
20161            Some(Self { syntax })
20162        } else {
20163            None
20164        }
20165    }
20166    #[inline]
20167    fn syntax(&self) -> &SyntaxNode {
20168        &self.syntax
20169    }
20170}
20171impl AstNode for Analyze {
20172    #[inline]
20173    fn can_cast(kind: SyntaxKind) -> bool {
20174        kind == SyntaxKind::ANALYZE
20175    }
20176    #[inline]
20177    fn cast(syntax: SyntaxNode) -> Option<Self> {
20178        if Self::can_cast(syntax.kind()) {
20179            Some(Self { syntax })
20180        } else {
20181            None
20182        }
20183    }
20184    #[inline]
20185    fn syntax(&self) -> &SyntaxNode {
20186        &self.syntax
20187    }
20188}
20189impl AstNode for AnyFn {
20190    #[inline]
20191    fn can_cast(kind: SyntaxKind) -> bool {
20192        kind == SyntaxKind::ANY_FN
20193    }
20194    #[inline]
20195    fn cast(syntax: SyntaxNode) -> Option<Self> {
20196        if Self::can_cast(syntax.kind()) {
20197            Some(Self { syntax })
20198        } else {
20199            None
20200        }
20201    }
20202    #[inline]
20203    fn syntax(&self) -> &SyntaxNode {
20204        &self.syntax
20205    }
20206}
20207impl AstNode for Arg {
20208    #[inline]
20209    fn can_cast(kind: SyntaxKind) -> bool {
20210        kind == SyntaxKind::ARG
20211    }
20212    #[inline]
20213    fn cast(syntax: SyntaxNode) -> Option<Self> {
20214        if Self::can_cast(syntax.kind()) {
20215            Some(Self { syntax })
20216        } else {
20217            None
20218        }
20219    }
20220    #[inline]
20221    fn syntax(&self) -> &SyntaxNode {
20222        &self.syntax
20223    }
20224}
20225impl AstNode for ArgList {
20226    #[inline]
20227    fn can_cast(kind: SyntaxKind) -> bool {
20228        kind == SyntaxKind::ARG_LIST
20229    }
20230    #[inline]
20231    fn cast(syntax: SyntaxNode) -> Option<Self> {
20232        if Self::can_cast(syntax.kind()) {
20233            Some(Self { syntax })
20234        } else {
20235            None
20236        }
20237    }
20238    #[inline]
20239    fn syntax(&self) -> &SyntaxNode {
20240        &self.syntax
20241    }
20242}
20243impl AstNode for ArrayExpr {
20244    #[inline]
20245    fn can_cast(kind: SyntaxKind) -> bool {
20246        kind == SyntaxKind::ARRAY_EXPR
20247    }
20248    #[inline]
20249    fn cast(syntax: SyntaxNode) -> Option<Self> {
20250        if Self::can_cast(syntax.kind()) {
20251            Some(Self { syntax })
20252        } else {
20253            None
20254        }
20255    }
20256    #[inline]
20257    fn syntax(&self) -> &SyntaxNode {
20258        &self.syntax
20259    }
20260}
20261impl AstNode for ArrayType {
20262    #[inline]
20263    fn can_cast(kind: SyntaxKind) -> bool {
20264        kind == SyntaxKind::ARRAY_TYPE
20265    }
20266    #[inline]
20267    fn cast(syntax: SyntaxNode) -> Option<Self> {
20268        if Self::can_cast(syntax.kind()) {
20269            Some(Self { syntax })
20270        } else {
20271            None
20272        }
20273    }
20274    #[inline]
20275    fn syntax(&self) -> &SyntaxNode {
20276        &self.syntax
20277    }
20278}
20279impl AstNode for AsFuncOption {
20280    #[inline]
20281    fn can_cast(kind: SyntaxKind) -> bool {
20282        kind == SyntaxKind::AS_FUNC_OPTION
20283    }
20284    #[inline]
20285    fn cast(syntax: SyntaxNode) -> Option<Self> {
20286        if Self::can_cast(syntax.kind()) {
20287            Some(Self { syntax })
20288        } else {
20289            None
20290        }
20291    }
20292    #[inline]
20293    fn syntax(&self) -> &SyntaxNode {
20294        &self.syntax
20295    }
20296}
20297impl AstNode for AsName {
20298    #[inline]
20299    fn can_cast(kind: SyntaxKind) -> bool {
20300        kind == SyntaxKind::AS_NAME
20301    }
20302    #[inline]
20303    fn cast(syntax: SyntaxNode) -> Option<Self> {
20304        if Self::can_cast(syntax.kind()) {
20305            Some(Self { syntax })
20306        } else {
20307            None
20308        }
20309    }
20310    #[inline]
20311    fn syntax(&self) -> &SyntaxNode {
20312        &self.syntax
20313    }
20314}
20315impl AstNode for AsPolicyType {
20316    #[inline]
20317    fn can_cast(kind: SyntaxKind) -> bool {
20318        kind == SyntaxKind::AS_POLICY_TYPE
20319    }
20320    #[inline]
20321    fn cast(syntax: SyntaxNode) -> Option<Self> {
20322        if Self::can_cast(syntax.kind()) {
20323            Some(Self { syntax })
20324        } else {
20325            None
20326        }
20327    }
20328    #[inline]
20329    fn syntax(&self) -> &SyntaxNode {
20330        &self.syntax
20331    }
20332}
20333impl AstNode for AtTimeZone {
20334    #[inline]
20335    fn can_cast(kind: SyntaxKind) -> bool {
20336        kind == SyntaxKind::AT_TIME_ZONE
20337    }
20338    #[inline]
20339    fn cast(syntax: SyntaxNode) -> Option<Self> {
20340        if Self::can_cast(syntax.kind()) {
20341            Some(Self { syntax })
20342        } else {
20343            None
20344        }
20345    }
20346    #[inline]
20347    fn syntax(&self) -> &SyntaxNode {
20348        &self.syntax
20349    }
20350}
20351impl AstNode for AttachPartition {
20352    #[inline]
20353    fn can_cast(kind: SyntaxKind) -> bool {
20354        kind == SyntaxKind::ATTACH_PARTITION
20355    }
20356    #[inline]
20357    fn cast(syntax: SyntaxNode) -> Option<Self> {
20358        if Self::can_cast(syntax.kind()) {
20359            Some(Self { syntax })
20360        } else {
20361            None
20362        }
20363    }
20364    #[inline]
20365    fn syntax(&self) -> &SyntaxNode {
20366        &self.syntax
20367    }
20368}
20369impl AstNode for AttributeList {
20370    #[inline]
20371    fn can_cast(kind: SyntaxKind) -> bool {
20372        kind == SyntaxKind::ATTRIBUTE_LIST
20373    }
20374    #[inline]
20375    fn cast(syntax: SyntaxNode) -> Option<Self> {
20376        if Self::can_cast(syntax.kind()) {
20377            Some(Self { syntax })
20378        } else {
20379            None
20380        }
20381    }
20382    #[inline]
20383    fn syntax(&self) -> &SyntaxNode {
20384        &self.syntax
20385    }
20386}
20387impl AstNode for AttributeOption {
20388    #[inline]
20389    fn can_cast(kind: SyntaxKind) -> bool {
20390        kind == SyntaxKind::ATTRIBUTE_OPTION
20391    }
20392    #[inline]
20393    fn cast(syntax: SyntaxNode) -> Option<Self> {
20394        if Self::can_cast(syntax.kind()) {
20395            Some(Self { syntax })
20396        } else {
20397            None
20398        }
20399    }
20400    #[inline]
20401    fn syntax(&self) -> &SyntaxNode {
20402        &self.syntax
20403    }
20404}
20405impl AstNode for AttributeValue {
20406    #[inline]
20407    fn can_cast(kind: SyntaxKind) -> bool {
20408        kind == SyntaxKind::ATTRIBUTE_VALUE
20409    }
20410    #[inline]
20411    fn cast(syntax: SyntaxNode) -> Option<Self> {
20412        if Self::can_cast(syntax.kind()) {
20413            Some(Self { syntax })
20414        } else {
20415            None
20416        }
20417    }
20418    #[inline]
20419    fn syntax(&self) -> &SyntaxNode {
20420        &self.syntax
20421    }
20422}
20423impl AstNode for BeforeValue {
20424    #[inline]
20425    fn can_cast(kind: SyntaxKind) -> bool {
20426        kind == SyntaxKind::BEFORE_VALUE
20427    }
20428    #[inline]
20429    fn cast(syntax: SyntaxNode) -> Option<Self> {
20430        if Self::can_cast(syntax.kind()) {
20431            Some(Self { syntax })
20432        } else {
20433            None
20434        }
20435    }
20436    #[inline]
20437    fn syntax(&self) -> &SyntaxNode {
20438        &self.syntax
20439    }
20440}
20441impl AstNode for Begin {
20442    #[inline]
20443    fn can_cast(kind: SyntaxKind) -> bool {
20444        kind == SyntaxKind::BEGIN
20445    }
20446    #[inline]
20447    fn cast(syntax: SyntaxNode) -> Option<Self> {
20448        if Self::can_cast(syntax.kind()) {
20449            Some(Self { syntax })
20450        } else {
20451            None
20452        }
20453    }
20454    #[inline]
20455    fn syntax(&self) -> &SyntaxNode {
20456        &self.syntax
20457    }
20458}
20459impl AstNode for BeginFuncOption {
20460    #[inline]
20461    fn can_cast(kind: SyntaxKind) -> bool {
20462        kind == SyntaxKind::BEGIN_FUNC_OPTION
20463    }
20464    #[inline]
20465    fn cast(syntax: SyntaxNode) -> Option<Self> {
20466        if Self::can_cast(syntax.kind()) {
20467            Some(Self { syntax })
20468        } else {
20469            None
20470        }
20471    }
20472    #[inline]
20473    fn syntax(&self) -> &SyntaxNode {
20474        &self.syntax
20475    }
20476}
20477impl AstNode for BeginFuncOptionList {
20478    #[inline]
20479    fn can_cast(kind: SyntaxKind) -> bool {
20480        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
20481    }
20482    #[inline]
20483    fn cast(syntax: SyntaxNode) -> Option<Self> {
20484        if Self::can_cast(syntax.kind()) {
20485            Some(Self { syntax })
20486        } else {
20487            None
20488        }
20489    }
20490    #[inline]
20491    fn syntax(&self) -> &SyntaxNode {
20492        &self.syntax
20493    }
20494}
20495impl AstNode for BetweenExpr {
20496    #[inline]
20497    fn can_cast(kind: SyntaxKind) -> bool {
20498        kind == SyntaxKind::BETWEEN_EXPR
20499    }
20500    #[inline]
20501    fn cast(syntax: SyntaxNode) -> Option<Self> {
20502        if Self::can_cast(syntax.kind()) {
20503            Some(Self { syntax })
20504        } else {
20505            None
20506        }
20507    }
20508    #[inline]
20509    fn syntax(&self) -> &SyntaxNode {
20510        &self.syntax
20511    }
20512}
20513impl AstNode for BinExpr {
20514    #[inline]
20515    fn can_cast(kind: SyntaxKind) -> bool {
20516        kind == SyntaxKind::BIN_EXPR
20517    }
20518    #[inline]
20519    fn cast(syntax: SyntaxNode) -> Option<Self> {
20520        if Self::can_cast(syntax.kind()) {
20521            Some(Self { syntax })
20522        } else {
20523            None
20524        }
20525    }
20526    #[inline]
20527    fn syntax(&self) -> &SyntaxNode {
20528        &self.syntax
20529    }
20530}
20531impl AstNode for BitType {
20532    #[inline]
20533    fn can_cast(kind: SyntaxKind) -> bool {
20534        kind == SyntaxKind::BIT_TYPE
20535    }
20536    #[inline]
20537    fn cast(syntax: SyntaxNode) -> Option<Self> {
20538        if Self::can_cast(syntax.kind()) {
20539            Some(Self { syntax })
20540        } else {
20541            None
20542        }
20543    }
20544    #[inline]
20545    fn syntax(&self) -> &SyntaxNode {
20546        &self.syntax
20547    }
20548}
20549impl AstNode for Call {
20550    #[inline]
20551    fn can_cast(kind: SyntaxKind) -> bool {
20552        kind == SyntaxKind::CALL
20553    }
20554    #[inline]
20555    fn cast(syntax: SyntaxNode) -> Option<Self> {
20556        if Self::can_cast(syntax.kind()) {
20557            Some(Self { syntax })
20558        } else {
20559            None
20560        }
20561    }
20562    #[inline]
20563    fn syntax(&self) -> &SyntaxNode {
20564        &self.syntax
20565    }
20566}
20567impl AstNode for CallExpr {
20568    #[inline]
20569    fn can_cast(kind: SyntaxKind) -> bool {
20570        kind == SyntaxKind::CALL_EXPR
20571    }
20572    #[inline]
20573    fn cast(syntax: SyntaxNode) -> Option<Self> {
20574        if Self::can_cast(syntax.kind()) {
20575            Some(Self { syntax })
20576        } else {
20577            None
20578        }
20579    }
20580    #[inline]
20581    fn syntax(&self) -> &SyntaxNode {
20582        &self.syntax
20583    }
20584}
20585impl AstNode for Cascade {
20586    #[inline]
20587    fn can_cast(kind: SyntaxKind) -> bool {
20588        kind == SyntaxKind::CASCADE
20589    }
20590    #[inline]
20591    fn cast(syntax: SyntaxNode) -> Option<Self> {
20592        if Self::can_cast(syntax.kind()) {
20593            Some(Self { syntax })
20594        } else {
20595            None
20596        }
20597    }
20598    #[inline]
20599    fn syntax(&self) -> &SyntaxNode {
20600        &self.syntax
20601    }
20602}
20603impl AstNode for CaseExpr {
20604    #[inline]
20605    fn can_cast(kind: SyntaxKind) -> bool {
20606        kind == SyntaxKind::CASE_EXPR
20607    }
20608    #[inline]
20609    fn cast(syntax: SyntaxNode) -> Option<Self> {
20610        if Self::can_cast(syntax.kind()) {
20611            Some(Self { syntax })
20612        } else {
20613            None
20614        }
20615    }
20616    #[inline]
20617    fn syntax(&self) -> &SyntaxNode {
20618        &self.syntax
20619    }
20620}
20621impl AstNode for CastExpr {
20622    #[inline]
20623    fn can_cast(kind: SyntaxKind) -> bool {
20624        kind == SyntaxKind::CAST_EXPR
20625    }
20626    #[inline]
20627    fn cast(syntax: SyntaxNode) -> Option<Self> {
20628        if Self::can_cast(syntax.kind()) {
20629            Some(Self { syntax })
20630        } else {
20631            None
20632        }
20633    }
20634    #[inline]
20635    fn syntax(&self) -> &SyntaxNode {
20636        &self.syntax
20637    }
20638}
20639impl AstNode for CastSig {
20640    #[inline]
20641    fn can_cast(kind: SyntaxKind) -> bool {
20642        kind == SyntaxKind::CAST_SIG
20643    }
20644    #[inline]
20645    fn cast(syntax: SyntaxNode) -> Option<Self> {
20646        if Self::can_cast(syntax.kind()) {
20647            Some(Self { syntax })
20648        } else {
20649            None
20650        }
20651    }
20652    #[inline]
20653    fn syntax(&self) -> &SyntaxNode {
20654        &self.syntax
20655    }
20656}
20657impl AstNode for CharType {
20658    #[inline]
20659    fn can_cast(kind: SyntaxKind) -> bool {
20660        kind == SyntaxKind::CHAR_TYPE
20661    }
20662    #[inline]
20663    fn cast(syntax: SyntaxNode) -> Option<Self> {
20664        if Self::can_cast(syntax.kind()) {
20665            Some(Self { syntax })
20666        } else {
20667            None
20668        }
20669    }
20670    #[inline]
20671    fn syntax(&self) -> &SyntaxNode {
20672        &self.syntax
20673    }
20674}
20675impl AstNode for CheckConstraint {
20676    #[inline]
20677    fn can_cast(kind: SyntaxKind) -> bool {
20678        kind == SyntaxKind::CHECK_CONSTRAINT
20679    }
20680    #[inline]
20681    fn cast(syntax: SyntaxNode) -> Option<Self> {
20682        if Self::can_cast(syntax.kind()) {
20683            Some(Self { syntax })
20684        } else {
20685            None
20686        }
20687    }
20688    #[inline]
20689    fn syntax(&self) -> &SyntaxNode {
20690        &self.syntax
20691    }
20692}
20693impl AstNode for Checkpoint {
20694    #[inline]
20695    fn can_cast(kind: SyntaxKind) -> bool {
20696        kind == SyntaxKind::CHECKPOINT
20697    }
20698    #[inline]
20699    fn cast(syntax: SyntaxNode) -> Option<Self> {
20700        if Self::can_cast(syntax.kind()) {
20701            Some(Self { syntax })
20702        } else {
20703            None
20704        }
20705    }
20706    #[inline]
20707    fn syntax(&self) -> &SyntaxNode {
20708        &self.syntax
20709    }
20710}
20711impl AstNode for Close {
20712    #[inline]
20713    fn can_cast(kind: SyntaxKind) -> bool {
20714        kind == SyntaxKind::CLOSE
20715    }
20716    #[inline]
20717    fn cast(syntax: SyntaxNode) -> Option<Self> {
20718        if Self::can_cast(syntax.kind()) {
20719            Some(Self { syntax })
20720        } else {
20721            None
20722        }
20723    }
20724    #[inline]
20725    fn syntax(&self) -> &SyntaxNode {
20726        &self.syntax
20727    }
20728}
20729impl AstNode for Cluster {
20730    #[inline]
20731    fn can_cast(kind: SyntaxKind) -> bool {
20732        kind == SyntaxKind::CLUSTER
20733    }
20734    #[inline]
20735    fn cast(syntax: SyntaxNode) -> Option<Self> {
20736        if Self::can_cast(syntax.kind()) {
20737            Some(Self { syntax })
20738        } else {
20739            None
20740        }
20741    }
20742    #[inline]
20743    fn syntax(&self) -> &SyntaxNode {
20744        &self.syntax
20745    }
20746}
20747impl AstNode for ClusterOn {
20748    #[inline]
20749    fn can_cast(kind: SyntaxKind) -> bool {
20750        kind == SyntaxKind::CLUSTER_ON
20751    }
20752    #[inline]
20753    fn cast(syntax: SyntaxNode) -> Option<Self> {
20754        if Self::can_cast(syntax.kind()) {
20755            Some(Self { syntax })
20756        } else {
20757            None
20758        }
20759    }
20760    #[inline]
20761    fn syntax(&self) -> &SyntaxNode {
20762        &self.syntax
20763    }
20764}
20765impl AstNode for Collate {
20766    #[inline]
20767    fn can_cast(kind: SyntaxKind) -> bool {
20768        kind == SyntaxKind::COLLATE
20769    }
20770    #[inline]
20771    fn cast(syntax: SyntaxNode) -> Option<Self> {
20772        if Self::can_cast(syntax.kind()) {
20773            Some(Self { syntax })
20774        } else {
20775            None
20776        }
20777    }
20778    #[inline]
20779    fn syntax(&self) -> &SyntaxNode {
20780        &self.syntax
20781    }
20782}
20783impl AstNode for CollationForFn {
20784    #[inline]
20785    fn can_cast(kind: SyntaxKind) -> bool {
20786        kind == SyntaxKind::COLLATION_FOR_FN
20787    }
20788    #[inline]
20789    fn cast(syntax: SyntaxNode) -> Option<Self> {
20790        if Self::can_cast(syntax.kind()) {
20791            Some(Self { syntax })
20792        } else {
20793            None
20794        }
20795    }
20796    #[inline]
20797    fn syntax(&self) -> &SyntaxNode {
20798        &self.syntax
20799    }
20800}
20801impl AstNode for ColonColon {
20802    #[inline]
20803    fn can_cast(kind: SyntaxKind) -> bool {
20804        kind == SyntaxKind::COLON_COLON
20805    }
20806    #[inline]
20807    fn cast(syntax: SyntaxNode) -> Option<Self> {
20808        if Self::can_cast(syntax.kind()) {
20809            Some(Self { syntax })
20810        } else {
20811            None
20812        }
20813    }
20814    #[inline]
20815    fn syntax(&self) -> &SyntaxNode {
20816        &self.syntax
20817    }
20818}
20819impl AstNode for ColonEq {
20820    #[inline]
20821    fn can_cast(kind: SyntaxKind) -> bool {
20822        kind == SyntaxKind::COLON_EQ
20823    }
20824    #[inline]
20825    fn cast(syntax: SyntaxNode) -> Option<Self> {
20826        if Self::can_cast(syntax.kind()) {
20827            Some(Self { syntax })
20828        } else {
20829            None
20830        }
20831    }
20832    #[inline]
20833    fn syntax(&self) -> &SyntaxNode {
20834        &self.syntax
20835    }
20836}
20837impl AstNode for Column {
20838    #[inline]
20839    fn can_cast(kind: SyntaxKind) -> bool {
20840        kind == SyntaxKind::COLUMN
20841    }
20842    #[inline]
20843    fn cast(syntax: SyntaxNode) -> Option<Self> {
20844        if Self::can_cast(syntax.kind()) {
20845            Some(Self { syntax })
20846        } else {
20847            None
20848        }
20849    }
20850    #[inline]
20851    fn syntax(&self) -> &SyntaxNode {
20852        &self.syntax
20853    }
20854}
20855impl AstNode for ColumnList {
20856    #[inline]
20857    fn can_cast(kind: SyntaxKind) -> bool {
20858        kind == SyntaxKind::COLUMN_LIST
20859    }
20860    #[inline]
20861    fn cast(syntax: SyntaxNode) -> Option<Self> {
20862        if Self::can_cast(syntax.kind()) {
20863            Some(Self { syntax })
20864        } else {
20865            None
20866        }
20867    }
20868    #[inline]
20869    fn syntax(&self) -> &SyntaxNode {
20870        &self.syntax
20871    }
20872}
20873impl AstNode for CommentOn {
20874    #[inline]
20875    fn can_cast(kind: SyntaxKind) -> bool {
20876        kind == SyntaxKind::COMMENT_ON
20877    }
20878    #[inline]
20879    fn cast(syntax: SyntaxNode) -> Option<Self> {
20880        if Self::can_cast(syntax.kind()) {
20881            Some(Self { syntax })
20882        } else {
20883            None
20884        }
20885    }
20886    #[inline]
20887    fn syntax(&self) -> &SyntaxNode {
20888        &self.syntax
20889    }
20890}
20891impl AstNode for Commit {
20892    #[inline]
20893    fn can_cast(kind: SyntaxKind) -> bool {
20894        kind == SyntaxKind::COMMIT
20895    }
20896    #[inline]
20897    fn cast(syntax: SyntaxNode) -> Option<Self> {
20898        if Self::can_cast(syntax.kind()) {
20899            Some(Self { syntax })
20900        } else {
20901            None
20902        }
20903    }
20904    #[inline]
20905    fn syntax(&self) -> &SyntaxNode {
20906        &self.syntax
20907    }
20908}
20909impl AstNode for CompoundSelect {
20910    #[inline]
20911    fn can_cast(kind: SyntaxKind) -> bool {
20912        kind == SyntaxKind::COMPOUND_SELECT
20913    }
20914    #[inline]
20915    fn cast(syntax: SyntaxNode) -> Option<Self> {
20916        if Self::can_cast(syntax.kind()) {
20917            Some(Self { syntax })
20918        } else {
20919            None
20920        }
20921    }
20922    #[inline]
20923    fn syntax(&self) -> &SyntaxNode {
20924        &self.syntax
20925    }
20926}
20927impl AstNode for CompressionMethod {
20928    #[inline]
20929    fn can_cast(kind: SyntaxKind) -> bool {
20930        kind == SyntaxKind::COMPRESSION_METHOD
20931    }
20932    #[inline]
20933    fn cast(syntax: SyntaxNode) -> Option<Self> {
20934        if Self::can_cast(syntax.kind()) {
20935            Some(Self { syntax })
20936        } else {
20937            None
20938        }
20939    }
20940    #[inline]
20941    fn syntax(&self) -> &SyntaxNode {
20942        &self.syntax
20943    }
20944}
20945impl AstNode for ConflictDoNothing {
20946    #[inline]
20947    fn can_cast(kind: SyntaxKind) -> bool {
20948        kind == SyntaxKind::CONFLICT_DO_NOTHING
20949    }
20950    #[inline]
20951    fn cast(syntax: SyntaxNode) -> Option<Self> {
20952        if Self::can_cast(syntax.kind()) {
20953            Some(Self { syntax })
20954        } else {
20955            None
20956        }
20957    }
20958    #[inline]
20959    fn syntax(&self) -> &SyntaxNode {
20960        &self.syntax
20961    }
20962}
20963impl AstNode for ConflictDoSelect {
20964    #[inline]
20965    fn can_cast(kind: SyntaxKind) -> bool {
20966        kind == SyntaxKind::CONFLICT_DO_SELECT
20967    }
20968    #[inline]
20969    fn cast(syntax: SyntaxNode) -> Option<Self> {
20970        if Self::can_cast(syntax.kind()) {
20971            Some(Self { syntax })
20972        } else {
20973            None
20974        }
20975    }
20976    #[inline]
20977    fn syntax(&self) -> &SyntaxNode {
20978        &self.syntax
20979    }
20980}
20981impl AstNode for ConflictDoUpdateSet {
20982    #[inline]
20983    fn can_cast(kind: SyntaxKind) -> bool {
20984        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
20985    }
20986    #[inline]
20987    fn cast(syntax: SyntaxNode) -> Option<Self> {
20988        if Self::can_cast(syntax.kind()) {
20989            Some(Self { syntax })
20990        } else {
20991            None
20992        }
20993    }
20994    #[inline]
20995    fn syntax(&self) -> &SyntaxNode {
20996        &self.syntax
20997    }
20998}
20999impl AstNode for ConflictIndexItem {
21000    #[inline]
21001    fn can_cast(kind: SyntaxKind) -> bool {
21002        kind == SyntaxKind::CONFLICT_INDEX_ITEM
21003    }
21004    #[inline]
21005    fn cast(syntax: SyntaxNode) -> Option<Self> {
21006        if Self::can_cast(syntax.kind()) {
21007            Some(Self { syntax })
21008        } else {
21009            None
21010        }
21011    }
21012    #[inline]
21013    fn syntax(&self) -> &SyntaxNode {
21014        &self.syntax
21015    }
21016}
21017impl AstNode for ConflictIndexItemList {
21018    #[inline]
21019    fn can_cast(kind: SyntaxKind) -> bool {
21020        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
21021    }
21022    #[inline]
21023    fn cast(syntax: SyntaxNode) -> Option<Self> {
21024        if Self::can_cast(syntax.kind()) {
21025            Some(Self { syntax })
21026        } else {
21027            None
21028        }
21029    }
21030    #[inline]
21031    fn syntax(&self) -> &SyntaxNode {
21032        &self.syntax
21033    }
21034}
21035impl AstNode for ConflictOnConstraint {
21036    #[inline]
21037    fn can_cast(kind: SyntaxKind) -> bool {
21038        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
21039    }
21040    #[inline]
21041    fn cast(syntax: SyntaxNode) -> Option<Self> {
21042        if Self::can_cast(syntax.kind()) {
21043            Some(Self { syntax })
21044        } else {
21045            None
21046        }
21047    }
21048    #[inline]
21049    fn syntax(&self) -> &SyntaxNode {
21050        &self.syntax
21051    }
21052}
21053impl AstNode for ConflictOnIndex {
21054    #[inline]
21055    fn can_cast(kind: SyntaxKind) -> bool {
21056        kind == SyntaxKind::CONFLICT_ON_INDEX
21057    }
21058    #[inline]
21059    fn cast(syntax: SyntaxNode) -> Option<Self> {
21060        if Self::can_cast(syntax.kind()) {
21061            Some(Self { syntax })
21062        } else {
21063            None
21064        }
21065    }
21066    #[inline]
21067    fn syntax(&self) -> &SyntaxNode {
21068        &self.syntax
21069    }
21070}
21071impl AstNode for ConstraintExclusion {
21072    #[inline]
21073    fn can_cast(kind: SyntaxKind) -> bool {
21074        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21075    }
21076    #[inline]
21077    fn cast(syntax: SyntaxNode) -> Option<Self> {
21078        if Self::can_cast(syntax.kind()) {
21079            Some(Self { syntax })
21080        } else {
21081            None
21082        }
21083    }
21084    #[inline]
21085    fn syntax(&self) -> &SyntaxNode {
21086        &self.syntax
21087    }
21088}
21089impl AstNode for ConstraintExclusionList {
21090    #[inline]
21091    fn can_cast(kind: SyntaxKind) -> bool {
21092        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21093    }
21094    #[inline]
21095    fn cast(syntax: SyntaxNode) -> Option<Self> {
21096        if Self::can_cast(syntax.kind()) {
21097            Some(Self { syntax })
21098        } else {
21099            None
21100        }
21101    }
21102    #[inline]
21103    fn syntax(&self) -> &SyntaxNode {
21104        &self.syntax
21105    }
21106}
21107impl AstNode for ConstraintIncludeClause {
21108    #[inline]
21109    fn can_cast(kind: SyntaxKind) -> bool {
21110        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21111    }
21112    #[inline]
21113    fn cast(syntax: SyntaxNode) -> Option<Self> {
21114        if Self::can_cast(syntax.kind()) {
21115            Some(Self { syntax })
21116        } else {
21117            None
21118        }
21119    }
21120    #[inline]
21121    fn syntax(&self) -> &SyntaxNode {
21122        &self.syntax
21123    }
21124}
21125impl AstNode for ConstraintIndexMethod {
21126    #[inline]
21127    fn can_cast(kind: SyntaxKind) -> bool {
21128        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21129    }
21130    #[inline]
21131    fn cast(syntax: SyntaxNode) -> Option<Self> {
21132        if Self::can_cast(syntax.kind()) {
21133            Some(Self { syntax })
21134        } else {
21135            None
21136        }
21137    }
21138    #[inline]
21139    fn syntax(&self) -> &SyntaxNode {
21140        &self.syntax
21141    }
21142}
21143impl AstNode for ConstraintIndexTablespace {
21144    #[inline]
21145    fn can_cast(kind: SyntaxKind) -> bool {
21146        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21147    }
21148    #[inline]
21149    fn cast(syntax: SyntaxNode) -> Option<Self> {
21150        if Self::can_cast(syntax.kind()) {
21151            Some(Self { syntax })
21152        } else {
21153            None
21154        }
21155    }
21156    #[inline]
21157    fn syntax(&self) -> &SyntaxNode {
21158        &self.syntax
21159    }
21160}
21161impl AstNode for ConstraintName {
21162    #[inline]
21163    fn can_cast(kind: SyntaxKind) -> bool {
21164        kind == SyntaxKind::CONSTRAINT_NAME
21165    }
21166    #[inline]
21167    fn cast(syntax: SyntaxNode) -> Option<Self> {
21168        if Self::can_cast(syntax.kind()) {
21169            Some(Self { syntax })
21170        } else {
21171            None
21172        }
21173    }
21174    #[inline]
21175    fn syntax(&self) -> &SyntaxNode {
21176        &self.syntax
21177    }
21178}
21179impl AstNode for Copy {
21180    #[inline]
21181    fn can_cast(kind: SyntaxKind) -> bool {
21182        kind == SyntaxKind::COPY
21183    }
21184    #[inline]
21185    fn cast(syntax: SyntaxNode) -> Option<Self> {
21186        if Self::can_cast(syntax.kind()) {
21187            Some(Self { syntax })
21188        } else {
21189            None
21190        }
21191    }
21192    #[inline]
21193    fn syntax(&self) -> &SyntaxNode {
21194        &self.syntax
21195    }
21196}
21197impl AstNode for CopyOption {
21198    #[inline]
21199    fn can_cast(kind: SyntaxKind) -> bool {
21200        kind == SyntaxKind::COPY_OPTION
21201    }
21202    #[inline]
21203    fn cast(syntax: SyntaxNode) -> Option<Self> {
21204        if Self::can_cast(syntax.kind()) {
21205            Some(Self { syntax })
21206        } else {
21207            None
21208        }
21209    }
21210    #[inline]
21211    fn syntax(&self) -> &SyntaxNode {
21212        &self.syntax
21213    }
21214}
21215impl AstNode for CopyOptionList {
21216    #[inline]
21217    fn can_cast(kind: SyntaxKind) -> bool {
21218        kind == SyntaxKind::COPY_OPTION_LIST
21219    }
21220    #[inline]
21221    fn cast(syntax: SyntaxNode) -> Option<Self> {
21222        if Self::can_cast(syntax.kind()) {
21223            Some(Self { syntax })
21224        } else {
21225            None
21226        }
21227    }
21228    #[inline]
21229    fn syntax(&self) -> &SyntaxNode {
21230        &self.syntax
21231    }
21232}
21233impl AstNode for CostFuncOption {
21234    #[inline]
21235    fn can_cast(kind: SyntaxKind) -> bool {
21236        kind == SyntaxKind::COST_FUNC_OPTION
21237    }
21238    #[inline]
21239    fn cast(syntax: SyntaxNode) -> Option<Self> {
21240        if Self::can_cast(syntax.kind()) {
21241            Some(Self { syntax })
21242        } else {
21243            None
21244        }
21245    }
21246    #[inline]
21247    fn syntax(&self) -> &SyntaxNode {
21248        &self.syntax
21249    }
21250}
21251impl AstNode for CreateAccessMethod {
21252    #[inline]
21253    fn can_cast(kind: SyntaxKind) -> bool {
21254        kind == SyntaxKind::CREATE_ACCESS_METHOD
21255    }
21256    #[inline]
21257    fn cast(syntax: SyntaxNode) -> Option<Self> {
21258        if Self::can_cast(syntax.kind()) {
21259            Some(Self { syntax })
21260        } else {
21261            None
21262        }
21263    }
21264    #[inline]
21265    fn syntax(&self) -> &SyntaxNode {
21266        &self.syntax
21267    }
21268}
21269impl AstNode for CreateAggregate {
21270    #[inline]
21271    fn can_cast(kind: SyntaxKind) -> bool {
21272        kind == SyntaxKind::CREATE_AGGREGATE
21273    }
21274    #[inline]
21275    fn cast(syntax: SyntaxNode) -> Option<Self> {
21276        if Self::can_cast(syntax.kind()) {
21277            Some(Self { syntax })
21278        } else {
21279            None
21280        }
21281    }
21282    #[inline]
21283    fn syntax(&self) -> &SyntaxNode {
21284        &self.syntax
21285    }
21286}
21287impl AstNode for CreateCast {
21288    #[inline]
21289    fn can_cast(kind: SyntaxKind) -> bool {
21290        kind == SyntaxKind::CREATE_CAST
21291    }
21292    #[inline]
21293    fn cast(syntax: SyntaxNode) -> Option<Self> {
21294        if Self::can_cast(syntax.kind()) {
21295            Some(Self { syntax })
21296        } else {
21297            None
21298        }
21299    }
21300    #[inline]
21301    fn syntax(&self) -> &SyntaxNode {
21302        &self.syntax
21303    }
21304}
21305impl AstNode for CreateCollation {
21306    #[inline]
21307    fn can_cast(kind: SyntaxKind) -> bool {
21308        kind == SyntaxKind::CREATE_COLLATION
21309    }
21310    #[inline]
21311    fn cast(syntax: SyntaxNode) -> Option<Self> {
21312        if Self::can_cast(syntax.kind()) {
21313            Some(Self { syntax })
21314        } else {
21315            None
21316        }
21317    }
21318    #[inline]
21319    fn syntax(&self) -> &SyntaxNode {
21320        &self.syntax
21321    }
21322}
21323impl AstNode for CreateConversion {
21324    #[inline]
21325    fn can_cast(kind: SyntaxKind) -> bool {
21326        kind == SyntaxKind::CREATE_CONVERSION
21327    }
21328    #[inline]
21329    fn cast(syntax: SyntaxNode) -> Option<Self> {
21330        if Self::can_cast(syntax.kind()) {
21331            Some(Self { syntax })
21332        } else {
21333            None
21334        }
21335    }
21336    #[inline]
21337    fn syntax(&self) -> &SyntaxNode {
21338        &self.syntax
21339    }
21340}
21341impl AstNode for CreateDatabase {
21342    #[inline]
21343    fn can_cast(kind: SyntaxKind) -> bool {
21344        kind == SyntaxKind::CREATE_DATABASE
21345    }
21346    #[inline]
21347    fn cast(syntax: SyntaxNode) -> Option<Self> {
21348        if Self::can_cast(syntax.kind()) {
21349            Some(Self { syntax })
21350        } else {
21351            None
21352        }
21353    }
21354    #[inline]
21355    fn syntax(&self) -> &SyntaxNode {
21356        &self.syntax
21357    }
21358}
21359impl AstNode for CreateDatabaseOption {
21360    #[inline]
21361    fn can_cast(kind: SyntaxKind) -> bool {
21362        kind == SyntaxKind::CREATE_DATABASE_OPTION
21363    }
21364    #[inline]
21365    fn cast(syntax: SyntaxNode) -> Option<Self> {
21366        if Self::can_cast(syntax.kind()) {
21367            Some(Self { syntax })
21368        } else {
21369            None
21370        }
21371    }
21372    #[inline]
21373    fn syntax(&self) -> &SyntaxNode {
21374        &self.syntax
21375    }
21376}
21377impl AstNode for CreateDatabaseOptionList {
21378    #[inline]
21379    fn can_cast(kind: SyntaxKind) -> bool {
21380        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
21381    }
21382    #[inline]
21383    fn cast(syntax: SyntaxNode) -> Option<Self> {
21384        if Self::can_cast(syntax.kind()) {
21385            Some(Self { syntax })
21386        } else {
21387            None
21388        }
21389    }
21390    #[inline]
21391    fn syntax(&self) -> &SyntaxNode {
21392        &self.syntax
21393    }
21394}
21395impl AstNode for CreateDomain {
21396    #[inline]
21397    fn can_cast(kind: SyntaxKind) -> bool {
21398        kind == SyntaxKind::CREATE_DOMAIN
21399    }
21400    #[inline]
21401    fn cast(syntax: SyntaxNode) -> Option<Self> {
21402        if Self::can_cast(syntax.kind()) {
21403            Some(Self { syntax })
21404        } else {
21405            None
21406        }
21407    }
21408    #[inline]
21409    fn syntax(&self) -> &SyntaxNode {
21410        &self.syntax
21411    }
21412}
21413impl AstNode for CreateEventTrigger {
21414    #[inline]
21415    fn can_cast(kind: SyntaxKind) -> bool {
21416        kind == SyntaxKind::CREATE_EVENT_TRIGGER
21417    }
21418    #[inline]
21419    fn cast(syntax: SyntaxNode) -> Option<Self> {
21420        if Self::can_cast(syntax.kind()) {
21421            Some(Self { syntax })
21422        } else {
21423            None
21424        }
21425    }
21426    #[inline]
21427    fn syntax(&self) -> &SyntaxNode {
21428        &self.syntax
21429    }
21430}
21431impl AstNode for CreateExtension {
21432    #[inline]
21433    fn can_cast(kind: SyntaxKind) -> bool {
21434        kind == SyntaxKind::CREATE_EXTENSION
21435    }
21436    #[inline]
21437    fn cast(syntax: SyntaxNode) -> Option<Self> {
21438        if Self::can_cast(syntax.kind()) {
21439            Some(Self { syntax })
21440        } else {
21441            None
21442        }
21443    }
21444    #[inline]
21445    fn syntax(&self) -> &SyntaxNode {
21446        &self.syntax
21447    }
21448}
21449impl AstNode for CreateForeignDataWrapper {
21450    #[inline]
21451    fn can_cast(kind: SyntaxKind) -> bool {
21452        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
21453    }
21454    #[inline]
21455    fn cast(syntax: SyntaxNode) -> Option<Self> {
21456        if Self::can_cast(syntax.kind()) {
21457            Some(Self { syntax })
21458        } else {
21459            None
21460        }
21461    }
21462    #[inline]
21463    fn syntax(&self) -> &SyntaxNode {
21464        &self.syntax
21465    }
21466}
21467impl AstNode for CreateForeignTable {
21468    #[inline]
21469    fn can_cast(kind: SyntaxKind) -> bool {
21470        kind == SyntaxKind::CREATE_FOREIGN_TABLE
21471    }
21472    #[inline]
21473    fn cast(syntax: SyntaxNode) -> Option<Self> {
21474        if Self::can_cast(syntax.kind()) {
21475            Some(Self { syntax })
21476        } else {
21477            None
21478        }
21479    }
21480    #[inline]
21481    fn syntax(&self) -> &SyntaxNode {
21482        &self.syntax
21483    }
21484}
21485impl AstNode for CreateFunction {
21486    #[inline]
21487    fn can_cast(kind: SyntaxKind) -> bool {
21488        kind == SyntaxKind::CREATE_FUNCTION
21489    }
21490    #[inline]
21491    fn cast(syntax: SyntaxNode) -> Option<Self> {
21492        if Self::can_cast(syntax.kind()) {
21493            Some(Self { syntax })
21494        } else {
21495            None
21496        }
21497    }
21498    #[inline]
21499    fn syntax(&self) -> &SyntaxNode {
21500        &self.syntax
21501    }
21502}
21503impl AstNode for CreateGroup {
21504    #[inline]
21505    fn can_cast(kind: SyntaxKind) -> bool {
21506        kind == SyntaxKind::CREATE_GROUP
21507    }
21508    #[inline]
21509    fn cast(syntax: SyntaxNode) -> Option<Self> {
21510        if Self::can_cast(syntax.kind()) {
21511            Some(Self { syntax })
21512        } else {
21513            None
21514        }
21515    }
21516    #[inline]
21517    fn syntax(&self) -> &SyntaxNode {
21518        &self.syntax
21519    }
21520}
21521impl AstNode for CreateIndex {
21522    #[inline]
21523    fn can_cast(kind: SyntaxKind) -> bool {
21524        kind == SyntaxKind::CREATE_INDEX
21525    }
21526    #[inline]
21527    fn cast(syntax: SyntaxNode) -> Option<Self> {
21528        if Self::can_cast(syntax.kind()) {
21529            Some(Self { syntax })
21530        } else {
21531            None
21532        }
21533    }
21534    #[inline]
21535    fn syntax(&self) -> &SyntaxNode {
21536        &self.syntax
21537    }
21538}
21539impl AstNode for CreateLanguage {
21540    #[inline]
21541    fn can_cast(kind: SyntaxKind) -> bool {
21542        kind == SyntaxKind::CREATE_LANGUAGE
21543    }
21544    #[inline]
21545    fn cast(syntax: SyntaxNode) -> Option<Self> {
21546        if Self::can_cast(syntax.kind()) {
21547            Some(Self { syntax })
21548        } else {
21549            None
21550        }
21551    }
21552    #[inline]
21553    fn syntax(&self) -> &SyntaxNode {
21554        &self.syntax
21555    }
21556}
21557impl AstNode for CreateMaterializedView {
21558    #[inline]
21559    fn can_cast(kind: SyntaxKind) -> bool {
21560        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
21561    }
21562    #[inline]
21563    fn cast(syntax: SyntaxNode) -> Option<Self> {
21564        if Self::can_cast(syntax.kind()) {
21565            Some(Self { syntax })
21566        } else {
21567            None
21568        }
21569    }
21570    #[inline]
21571    fn syntax(&self) -> &SyntaxNode {
21572        &self.syntax
21573    }
21574}
21575impl AstNode for CreateOperator {
21576    #[inline]
21577    fn can_cast(kind: SyntaxKind) -> bool {
21578        kind == SyntaxKind::CREATE_OPERATOR
21579    }
21580    #[inline]
21581    fn cast(syntax: SyntaxNode) -> Option<Self> {
21582        if Self::can_cast(syntax.kind()) {
21583            Some(Self { syntax })
21584        } else {
21585            None
21586        }
21587    }
21588    #[inline]
21589    fn syntax(&self) -> &SyntaxNode {
21590        &self.syntax
21591    }
21592}
21593impl AstNode for CreateOperatorClass {
21594    #[inline]
21595    fn can_cast(kind: SyntaxKind) -> bool {
21596        kind == SyntaxKind::CREATE_OPERATOR_CLASS
21597    }
21598    #[inline]
21599    fn cast(syntax: SyntaxNode) -> Option<Self> {
21600        if Self::can_cast(syntax.kind()) {
21601            Some(Self { syntax })
21602        } else {
21603            None
21604        }
21605    }
21606    #[inline]
21607    fn syntax(&self) -> &SyntaxNode {
21608        &self.syntax
21609    }
21610}
21611impl AstNode for CreateOperatorFamily {
21612    #[inline]
21613    fn can_cast(kind: SyntaxKind) -> bool {
21614        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
21615    }
21616    #[inline]
21617    fn cast(syntax: SyntaxNode) -> Option<Self> {
21618        if Self::can_cast(syntax.kind()) {
21619            Some(Self { syntax })
21620        } else {
21621            None
21622        }
21623    }
21624    #[inline]
21625    fn syntax(&self) -> &SyntaxNode {
21626        &self.syntax
21627    }
21628}
21629impl AstNode for CreatePolicy {
21630    #[inline]
21631    fn can_cast(kind: SyntaxKind) -> bool {
21632        kind == SyntaxKind::CREATE_POLICY
21633    }
21634    #[inline]
21635    fn cast(syntax: SyntaxNode) -> Option<Self> {
21636        if Self::can_cast(syntax.kind()) {
21637            Some(Self { syntax })
21638        } else {
21639            None
21640        }
21641    }
21642    #[inline]
21643    fn syntax(&self) -> &SyntaxNode {
21644        &self.syntax
21645    }
21646}
21647impl AstNode for CreateProcedure {
21648    #[inline]
21649    fn can_cast(kind: SyntaxKind) -> bool {
21650        kind == SyntaxKind::CREATE_PROCEDURE
21651    }
21652    #[inline]
21653    fn cast(syntax: SyntaxNode) -> Option<Self> {
21654        if Self::can_cast(syntax.kind()) {
21655            Some(Self { syntax })
21656        } else {
21657            None
21658        }
21659    }
21660    #[inline]
21661    fn syntax(&self) -> &SyntaxNode {
21662        &self.syntax
21663    }
21664}
21665impl AstNode for CreatePropertyGraph {
21666    #[inline]
21667    fn can_cast(kind: SyntaxKind) -> bool {
21668        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
21669    }
21670    #[inline]
21671    fn cast(syntax: SyntaxNode) -> Option<Self> {
21672        if Self::can_cast(syntax.kind()) {
21673            Some(Self { syntax })
21674        } else {
21675            None
21676        }
21677    }
21678    #[inline]
21679    fn syntax(&self) -> &SyntaxNode {
21680        &self.syntax
21681    }
21682}
21683impl AstNode for CreatePublication {
21684    #[inline]
21685    fn can_cast(kind: SyntaxKind) -> bool {
21686        kind == SyntaxKind::CREATE_PUBLICATION
21687    }
21688    #[inline]
21689    fn cast(syntax: SyntaxNode) -> Option<Self> {
21690        if Self::can_cast(syntax.kind()) {
21691            Some(Self { syntax })
21692        } else {
21693            None
21694        }
21695    }
21696    #[inline]
21697    fn syntax(&self) -> &SyntaxNode {
21698        &self.syntax
21699    }
21700}
21701impl AstNode for CreateRole {
21702    #[inline]
21703    fn can_cast(kind: SyntaxKind) -> bool {
21704        kind == SyntaxKind::CREATE_ROLE
21705    }
21706    #[inline]
21707    fn cast(syntax: SyntaxNode) -> Option<Self> {
21708        if Self::can_cast(syntax.kind()) {
21709            Some(Self { syntax })
21710        } else {
21711            None
21712        }
21713    }
21714    #[inline]
21715    fn syntax(&self) -> &SyntaxNode {
21716        &self.syntax
21717    }
21718}
21719impl AstNode for CreateRule {
21720    #[inline]
21721    fn can_cast(kind: SyntaxKind) -> bool {
21722        kind == SyntaxKind::CREATE_RULE
21723    }
21724    #[inline]
21725    fn cast(syntax: SyntaxNode) -> Option<Self> {
21726        if Self::can_cast(syntax.kind()) {
21727            Some(Self { syntax })
21728        } else {
21729            None
21730        }
21731    }
21732    #[inline]
21733    fn syntax(&self) -> &SyntaxNode {
21734        &self.syntax
21735    }
21736}
21737impl AstNode for CreateSchema {
21738    #[inline]
21739    fn can_cast(kind: SyntaxKind) -> bool {
21740        kind == SyntaxKind::CREATE_SCHEMA
21741    }
21742    #[inline]
21743    fn cast(syntax: SyntaxNode) -> Option<Self> {
21744        if Self::can_cast(syntax.kind()) {
21745            Some(Self { syntax })
21746        } else {
21747            None
21748        }
21749    }
21750    #[inline]
21751    fn syntax(&self) -> &SyntaxNode {
21752        &self.syntax
21753    }
21754}
21755impl AstNode for CreateSequence {
21756    #[inline]
21757    fn can_cast(kind: SyntaxKind) -> bool {
21758        kind == SyntaxKind::CREATE_SEQUENCE
21759    }
21760    #[inline]
21761    fn cast(syntax: SyntaxNode) -> Option<Self> {
21762        if Self::can_cast(syntax.kind()) {
21763            Some(Self { syntax })
21764        } else {
21765            None
21766        }
21767    }
21768    #[inline]
21769    fn syntax(&self) -> &SyntaxNode {
21770        &self.syntax
21771    }
21772}
21773impl AstNode for CreateServer {
21774    #[inline]
21775    fn can_cast(kind: SyntaxKind) -> bool {
21776        kind == SyntaxKind::CREATE_SERVER
21777    }
21778    #[inline]
21779    fn cast(syntax: SyntaxNode) -> Option<Self> {
21780        if Self::can_cast(syntax.kind()) {
21781            Some(Self { syntax })
21782        } else {
21783            None
21784        }
21785    }
21786    #[inline]
21787    fn syntax(&self) -> &SyntaxNode {
21788        &self.syntax
21789    }
21790}
21791impl AstNode for CreateStatistics {
21792    #[inline]
21793    fn can_cast(kind: SyntaxKind) -> bool {
21794        kind == SyntaxKind::CREATE_STATISTICS
21795    }
21796    #[inline]
21797    fn cast(syntax: SyntaxNode) -> Option<Self> {
21798        if Self::can_cast(syntax.kind()) {
21799            Some(Self { syntax })
21800        } else {
21801            None
21802        }
21803    }
21804    #[inline]
21805    fn syntax(&self) -> &SyntaxNode {
21806        &self.syntax
21807    }
21808}
21809impl AstNode for CreateSubscription {
21810    #[inline]
21811    fn can_cast(kind: SyntaxKind) -> bool {
21812        kind == SyntaxKind::CREATE_SUBSCRIPTION
21813    }
21814    #[inline]
21815    fn cast(syntax: SyntaxNode) -> Option<Self> {
21816        if Self::can_cast(syntax.kind()) {
21817            Some(Self { syntax })
21818        } else {
21819            None
21820        }
21821    }
21822    #[inline]
21823    fn syntax(&self) -> &SyntaxNode {
21824        &self.syntax
21825    }
21826}
21827impl AstNode for CreateTable {
21828    #[inline]
21829    fn can_cast(kind: SyntaxKind) -> bool {
21830        kind == SyntaxKind::CREATE_TABLE
21831    }
21832    #[inline]
21833    fn cast(syntax: SyntaxNode) -> Option<Self> {
21834        if Self::can_cast(syntax.kind()) {
21835            Some(Self { syntax })
21836        } else {
21837            None
21838        }
21839    }
21840    #[inline]
21841    fn syntax(&self) -> &SyntaxNode {
21842        &self.syntax
21843    }
21844}
21845impl AstNode for CreateTableAs {
21846    #[inline]
21847    fn can_cast(kind: SyntaxKind) -> bool {
21848        kind == SyntaxKind::CREATE_TABLE_AS
21849    }
21850    #[inline]
21851    fn cast(syntax: SyntaxNode) -> Option<Self> {
21852        if Self::can_cast(syntax.kind()) {
21853            Some(Self { syntax })
21854        } else {
21855            None
21856        }
21857    }
21858    #[inline]
21859    fn syntax(&self) -> &SyntaxNode {
21860        &self.syntax
21861    }
21862}
21863impl AstNode for CreateTablespace {
21864    #[inline]
21865    fn can_cast(kind: SyntaxKind) -> bool {
21866        kind == SyntaxKind::CREATE_TABLESPACE
21867    }
21868    #[inline]
21869    fn cast(syntax: SyntaxNode) -> Option<Self> {
21870        if Self::can_cast(syntax.kind()) {
21871            Some(Self { syntax })
21872        } else {
21873            None
21874        }
21875    }
21876    #[inline]
21877    fn syntax(&self) -> &SyntaxNode {
21878        &self.syntax
21879    }
21880}
21881impl AstNode for CreateTextSearchConfiguration {
21882    #[inline]
21883    fn can_cast(kind: SyntaxKind) -> bool {
21884        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
21885    }
21886    #[inline]
21887    fn cast(syntax: SyntaxNode) -> Option<Self> {
21888        if Self::can_cast(syntax.kind()) {
21889            Some(Self { syntax })
21890        } else {
21891            None
21892        }
21893    }
21894    #[inline]
21895    fn syntax(&self) -> &SyntaxNode {
21896        &self.syntax
21897    }
21898}
21899impl AstNode for CreateTextSearchDictionary {
21900    #[inline]
21901    fn can_cast(kind: SyntaxKind) -> bool {
21902        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
21903    }
21904    #[inline]
21905    fn cast(syntax: SyntaxNode) -> Option<Self> {
21906        if Self::can_cast(syntax.kind()) {
21907            Some(Self { syntax })
21908        } else {
21909            None
21910        }
21911    }
21912    #[inline]
21913    fn syntax(&self) -> &SyntaxNode {
21914        &self.syntax
21915    }
21916}
21917impl AstNode for CreateTextSearchParser {
21918    #[inline]
21919    fn can_cast(kind: SyntaxKind) -> bool {
21920        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
21921    }
21922    #[inline]
21923    fn cast(syntax: SyntaxNode) -> Option<Self> {
21924        if Self::can_cast(syntax.kind()) {
21925            Some(Self { syntax })
21926        } else {
21927            None
21928        }
21929    }
21930    #[inline]
21931    fn syntax(&self) -> &SyntaxNode {
21932        &self.syntax
21933    }
21934}
21935impl AstNode for CreateTextSearchTemplate {
21936    #[inline]
21937    fn can_cast(kind: SyntaxKind) -> bool {
21938        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
21939    }
21940    #[inline]
21941    fn cast(syntax: SyntaxNode) -> Option<Self> {
21942        if Self::can_cast(syntax.kind()) {
21943            Some(Self { syntax })
21944        } else {
21945            None
21946        }
21947    }
21948    #[inline]
21949    fn syntax(&self) -> &SyntaxNode {
21950        &self.syntax
21951    }
21952}
21953impl AstNode for CreateTransform {
21954    #[inline]
21955    fn can_cast(kind: SyntaxKind) -> bool {
21956        kind == SyntaxKind::CREATE_TRANSFORM
21957    }
21958    #[inline]
21959    fn cast(syntax: SyntaxNode) -> Option<Self> {
21960        if Self::can_cast(syntax.kind()) {
21961            Some(Self { syntax })
21962        } else {
21963            None
21964        }
21965    }
21966    #[inline]
21967    fn syntax(&self) -> &SyntaxNode {
21968        &self.syntax
21969    }
21970}
21971impl AstNode for CreateTrigger {
21972    #[inline]
21973    fn can_cast(kind: SyntaxKind) -> bool {
21974        kind == SyntaxKind::CREATE_TRIGGER
21975    }
21976    #[inline]
21977    fn cast(syntax: SyntaxNode) -> Option<Self> {
21978        if Self::can_cast(syntax.kind()) {
21979            Some(Self { syntax })
21980        } else {
21981            None
21982        }
21983    }
21984    #[inline]
21985    fn syntax(&self) -> &SyntaxNode {
21986        &self.syntax
21987    }
21988}
21989impl AstNode for CreateType {
21990    #[inline]
21991    fn can_cast(kind: SyntaxKind) -> bool {
21992        kind == SyntaxKind::CREATE_TYPE
21993    }
21994    #[inline]
21995    fn cast(syntax: SyntaxNode) -> Option<Self> {
21996        if Self::can_cast(syntax.kind()) {
21997            Some(Self { syntax })
21998        } else {
21999            None
22000        }
22001    }
22002    #[inline]
22003    fn syntax(&self) -> &SyntaxNode {
22004        &self.syntax
22005    }
22006}
22007impl AstNode for CreateUser {
22008    #[inline]
22009    fn can_cast(kind: SyntaxKind) -> bool {
22010        kind == SyntaxKind::CREATE_USER
22011    }
22012    #[inline]
22013    fn cast(syntax: SyntaxNode) -> Option<Self> {
22014        if Self::can_cast(syntax.kind()) {
22015            Some(Self { syntax })
22016        } else {
22017            None
22018        }
22019    }
22020    #[inline]
22021    fn syntax(&self) -> &SyntaxNode {
22022        &self.syntax
22023    }
22024}
22025impl AstNode for CreateUserMapping {
22026    #[inline]
22027    fn can_cast(kind: SyntaxKind) -> bool {
22028        kind == SyntaxKind::CREATE_USER_MAPPING
22029    }
22030    #[inline]
22031    fn cast(syntax: SyntaxNode) -> Option<Self> {
22032        if Self::can_cast(syntax.kind()) {
22033            Some(Self { syntax })
22034        } else {
22035            None
22036        }
22037    }
22038    #[inline]
22039    fn syntax(&self) -> &SyntaxNode {
22040        &self.syntax
22041    }
22042}
22043impl AstNode for CreateView {
22044    #[inline]
22045    fn can_cast(kind: SyntaxKind) -> bool {
22046        kind == SyntaxKind::CREATE_VIEW
22047    }
22048    #[inline]
22049    fn cast(syntax: SyntaxNode) -> Option<Self> {
22050        if Self::can_cast(syntax.kind()) {
22051            Some(Self { syntax })
22052        } else {
22053            None
22054        }
22055    }
22056    #[inline]
22057    fn syntax(&self) -> &SyntaxNode {
22058        &self.syntax
22059    }
22060}
22061impl AstNode for CustomOp {
22062    #[inline]
22063    fn can_cast(kind: SyntaxKind) -> bool {
22064        kind == SyntaxKind::CUSTOM_OP
22065    }
22066    #[inline]
22067    fn cast(syntax: SyntaxNode) -> Option<Self> {
22068        if Self::can_cast(syntax.kind()) {
22069            Some(Self { syntax })
22070        } else {
22071            None
22072        }
22073    }
22074    #[inline]
22075    fn syntax(&self) -> &SyntaxNode {
22076        &self.syntax
22077    }
22078}
22079impl AstNode for Deallocate {
22080    #[inline]
22081    fn can_cast(kind: SyntaxKind) -> bool {
22082        kind == SyntaxKind::DEALLOCATE
22083    }
22084    #[inline]
22085    fn cast(syntax: SyntaxNode) -> Option<Self> {
22086        if Self::can_cast(syntax.kind()) {
22087            Some(Self { syntax })
22088        } else {
22089            None
22090        }
22091    }
22092    #[inline]
22093    fn syntax(&self) -> &SyntaxNode {
22094        &self.syntax
22095    }
22096}
22097impl AstNode for Declare {
22098    #[inline]
22099    fn can_cast(kind: SyntaxKind) -> bool {
22100        kind == SyntaxKind::DECLARE
22101    }
22102    #[inline]
22103    fn cast(syntax: SyntaxNode) -> Option<Self> {
22104        if Self::can_cast(syntax.kind()) {
22105            Some(Self { syntax })
22106        } else {
22107            None
22108        }
22109    }
22110    #[inline]
22111    fn syntax(&self) -> &SyntaxNode {
22112        &self.syntax
22113    }
22114}
22115impl AstNode for DefaultConstraint {
22116    #[inline]
22117    fn can_cast(kind: SyntaxKind) -> bool {
22118        kind == SyntaxKind::DEFAULT_CONSTRAINT
22119    }
22120    #[inline]
22121    fn cast(syntax: SyntaxNode) -> Option<Self> {
22122        if Self::can_cast(syntax.kind()) {
22123            Some(Self { syntax })
22124        } else {
22125            None
22126        }
22127    }
22128    #[inline]
22129    fn syntax(&self) -> &SyntaxNode {
22130        &self.syntax
22131    }
22132}
22133impl AstNode for Deferrable {
22134    #[inline]
22135    fn can_cast(kind: SyntaxKind) -> bool {
22136        kind == SyntaxKind::DEFERRABLE
22137    }
22138    #[inline]
22139    fn cast(syntax: SyntaxNode) -> Option<Self> {
22140        if Self::can_cast(syntax.kind()) {
22141            Some(Self { syntax })
22142        } else {
22143            None
22144        }
22145    }
22146    #[inline]
22147    fn syntax(&self) -> &SyntaxNode {
22148        &self.syntax
22149    }
22150}
22151impl AstNode for DeferrableConstraintOption {
22152    #[inline]
22153    fn can_cast(kind: SyntaxKind) -> bool {
22154        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22155    }
22156    #[inline]
22157    fn cast(syntax: SyntaxNode) -> Option<Self> {
22158        if Self::can_cast(syntax.kind()) {
22159            Some(Self { syntax })
22160        } else {
22161            None
22162        }
22163    }
22164    #[inline]
22165    fn syntax(&self) -> &SyntaxNode {
22166        &self.syntax
22167    }
22168}
22169impl AstNode for Delete {
22170    #[inline]
22171    fn can_cast(kind: SyntaxKind) -> bool {
22172        kind == SyntaxKind::DELETE
22173    }
22174    #[inline]
22175    fn cast(syntax: SyntaxNode) -> Option<Self> {
22176        if Self::can_cast(syntax.kind()) {
22177            Some(Self { syntax })
22178        } else {
22179            None
22180        }
22181    }
22182    #[inline]
22183    fn syntax(&self) -> &SyntaxNode {
22184        &self.syntax
22185    }
22186}
22187impl AstNode for DeleteRows {
22188    #[inline]
22189    fn can_cast(kind: SyntaxKind) -> bool {
22190        kind == SyntaxKind::DELETE_ROWS
22191    }
22192    #[inline]
22193    fn cast(syntax: SyntaxNode) -> Option<Self> {
22194        if Self::can_cast(syntax.kind()) {
22195            Some(Self { syntax })
22196        } else {
22197            None
22198        }
22199    }
22200    #[inline]
22201    fn syntax(&self) -> &SyntaxNode {
22202        &self.syntax
22203    }
22204}
22205impl AstNode for DependsOnExtension {
22206    #[inline]
22207    fn can_cast(kind: SyntaxKind) -> bool {
22208        kind == SyntaxKind::DEPENDS_ON_EXTENSION
22209    }
22210    #[inline]
22211    fn cast(syntax: SyntaxNode) -> Option<Self> {
22212        if Self::can_cast(syntax.kind()) {
22213            Some(Self { syntax })
22214        } else {
22215            None
22216        }
22217    }
22218    #[inline]
22219    fn syntax(&self) -> &SyntaxNode {
22220        &self.syntax
22221    }
22222}
22223impl AstNode for DestVertexTable {
22224    #[inline]
22225    fn can_cast(kind: SyntaxKind) -> bool {
22226        kind == SyntaxKind::DEST_VERTEX_TABLE
22227    }
22228    #[inline]
22229    fn cast(syntax: SyntaxNode) -> Option<Self> {
22230        if Self::can_cast(syntax.kind()) {
22231            Some(Self { syntax })
22232        } else {
22233            None
22234        }
22235    }
22236    #[inline]
22237    fn syntax(&self) -> &SyntaxNode {
22238        &self.syntax
22239    }
22240}
22241impl AstNode for DetachPartition {
22242    #[inline]
22243    fn can_cast(kind: SyntaxKind) -> bool {
22244        kind == SyntaxKind::DETACH_PARTITION
22245    }
22246    #[inline]
22247    fn cast(syntax: SyntaxNode) -> Option<Self> {
22248        if Self::can_cast(syntax.kind()) {
22249            Some(Self { syntax })
22250        } else {
22251            None
22252        }
22253    }
22254    #[inline]
22255    fn syntax(&self) -> &SyntaxNode {
22256        &self.syntax
22257    }
22258}
22259impl AstNode for DisableRls {
22260    #[inline]
22261    fn can_cast(kind: SyntaxKind) -> bool {
22262        kind == SyntaxKind::DISABLE_RLS
22263    }
22264    #[inline]
22265    fn cast(syntax: SyntaxNode) -> Option<Self> {
22266        if Self::can_cast(syntax.kind()) {
22267            Some(Self { syntax })
22268        } else {
22269            None
22270        }
22271    }
22272    #[inline]
22273    fn syntax(&self) -> &SyntaxNode {
22274        &self.syntax
22275    }
22276}
22277impl AstNode for DisableRule {
22278    #[inline]
22279    fn can_cast(kind: SyntaxKind) -> bool {
22280        kind == SyntaxKind::DISABLE_RULE
22281    }
22282    #[inline]
22283    fn cast(syntax: SyntaxNode) -> Option<Self> {
22284        if Self::can_cast(syntax.kind()) {
22285            Some(Self { syntax })
22286        } else {
22287            None
22288        }
22289    }
22290    #[inline]
22291    fn syntax(&self) -> &SyntaxNode {
22292        &self.syntax
22293    }
22294}
22295impl AstNode for DisableTrigger {
22296    #[inline]
22297    fn can_cast(kind: SyntaxKind) -> bool {
22298        kind == SyntaxKind::DISABLE_TRIGGER
22299    }
22300    #[inline]
22301    fn cast(syntax: SyntaxNode) -> Option<Self> {
22302        if Self::can_cast(syntax.kind()) {
22303            Some(Self { syntax })
22304        } else {
22305            None
22306        }
22307    }
22308    #[inline]
22309    fn syntax(&self) -> &SyntaxNode {
22310        &self.syntax
22311    }
22312}
22313impl AstNode for Discard {
22314    #[inline]
22315    fn can_cast(kind: SyntaxKind) -> bool {
22316        kind == SyntaxKind::DISCARD
22317    }
22318    #[inline]
22319    fn cast(syntax: SyntaxNode) -> Option<Self> {
22320        if Self::can_cast(syntax.kind()) {
22321            Some(Self { syntax })
22322        } else {
22323            None
22324        }
22325    }
22326    #[inline]
22327    fn syntax(&self) -> &SyntaxNode {
22328        &self.syntax
22329    }
22330}
22331impl AstNode for DistinctClause {
22332    #[inline]
22333    fn can_cast(kind: SyntaxKind) -> bool {
22334        kind == SyntaxKind::DISTINCT_CLAUSE
22335    }
22336    #[inline]
22337    fn cast(syntax: SyntaxNode) -> Option<Self> {
22338        if Self::can_cast(syntax.kind()) {
22339            Some(Self { syntax })
22340        } else {
22341            None
22342        }
22343    }
22344    #[inline]
22345    fn syntax(&self) -> &SyntaxNode {
22346        &self.syntax
22347    }
22348}
22349impl AstNode for Do {
22350    #[inline]
22351    fn can_cast(kind: SyntaxKind) -> bool {
22352        kind == SyntaxKind::DO
22353    }
22354    #[inline]
22355    fn cast(syntax: SyntaxNode) -> Option<Self> {
22356        if Self::can_cast(syntax.kind()) {
22357            Some(Self { syntax })
22358        } else {
22359            None
22360        }
22361    }
22362    #[inline]
22363    fn syntax(&self) -> &SyntaxNode {
22364        &self.syntax
22365    }
22366}
22367impl AstNode for DoubleType {
22368    #[inline]
22369    fn can_cast(kind: SyntaxKind) -> bool {
22370        kind == SyntaxKind::DOUBLE_TYPE
22371    }
22372    #[inline]
22373    fn cast(syntax: SyntaxNode) -> Option<Self> {
22374        if Self::can_cast(syntax.kind()) {
22375            Some(Self { syntax })
22376        } else {
22377            None
22378        }
22379    }
22380    #[inline]
22381    fn syntax(&self) -> &SyntaxNode {
22382        &self.syntax
22383    }
22384}
22385impl AstNode for Drop {
22386    #[inline]
22387    fn can_cast(kind: SyntaxKind) -> bool {
22388        kind == SyntaxKind::DROP
22389    }
22390    #[inline]
22391    fn cast(syntax: SyntaxNode) -> Option<Self> {
22392        if Self::can_cast(syntax.kind()) {
22393            Some(Self { syntax })
22394        } else {
22395            None
22396        }
22397    }
22398    #[inline]
22399    fn syntax(&self) -> &SyntaxNode {
22400        &self.syntax
22401    }
22402}
22403impl AstNode for DropAccessMethod {
22404    #[inline]
22405    fn can_cast(kind: SyntaxKind) -> bool {
22406        kind == SyntaxKind::DROP_ACCESS_METHOD
22407    }
22408    #[inline]
22409    fn cast(syntax: SyntaxNode) -> Option<Self> {
22410        if Self::can_cast(syntax.kind()) {
22411            Some(Self { syntax })
22412        } else {
22413            None
22414        }
22415    }
22416    #[inline]
22417    fn syntax(&self) -> &SyntaxNode {
22418        &self.syntax
22419    }
22420}
22421impl AstNode for DropAggregate {
22422    #[inline]
22423    fn can_cast(kind: SyntaxKind) -> bool {
22424        kind == SyntaxKind::DROP_AGGREGATE
22425    }
22426    #[inline]
22427    fn cast(syntax: SyntaxNode) -> Option<Self> {
22428        if Self::can_cast(syntax.kind()) {
22429            Some(Self { syntax })
22430        } else {
22431            None
22432        }
22433    }
22434    #[inline]
22435    fn syntax(&self) -> &SyntaxNode {
22436        &self.syntax
22437    }
22438}
22439impl AstNode for DropAttribute {
22440    #[inline]
22441    fn can_cast(kind: SyntaxKind) -> bool {
22442        kind == SyntaxKind::DROP_ATTRIBUTE
22443    }
22444    #[inline]
22445    fn cast(syntax: SyntaxNode) -> Option<Self> {
22446        if Self::can_cast(syntax.kind()) {
22447            Some(Self { syntax })
22448        } else {
22449            None
22450        }
22451    }
22452    #[inline]
22453    fn syntax(&self) -> &SyntaxNode {
22454        &self.syntax
22455    }
22456}
22457impl AstNode for DropCast {
22458    #[inline]
22459    fn can_cast(kind: SyntaxKind) -> bool {
22460        kind == SyntaxKind::DROP_CAST
22461    }
22462    #[inline]
22463    fn cast(syntax: SyntaxNode) -> Option<Self> {
22464        if Self::can_cast(syntax.kind()) {
22465            Some(Self { syntax })
22466        } else {
22467            None
22468        }
22469    }
22470    #[inline]
22471    fn syntax(&self) -> &SyntaxNode {
22472        &self.syntax
22473    }
22474}
22475impl AstNode for DropCollation {
22476    #[inline]
22477    fn can_cast(kind: SyntaxKind) -> bool {
22478        kind == SyntaxKind::DROP_COLLATION
22479    }
22480    #[inline]
22481    fn cast(syntax: SyntaxNode) -> Option<Self> {
22482        if Self::can_cast(syntax.kind()) {
22483            Some(Self { syntax })
22484        } else {
22485            None
22486        }
22487    }
22488    #[inline]
22489    fn syntax(&self) -> &SyntaxNode {
22490        &self.syntax
22491    }
22492}
22493impl AstNode for DropColumn {
22494    #[inline]
22495    fn can_cast(kind: SyntaxKind) -> bool {
22496        kind == SyntaxKind::DROP_COLUMN
22497    }
22498    #[inline]
22499    fn cast(syntax: SyntaxNode) -> Option<Self> {
22500        if Self::can_cast(syntax.kind()) {
22501            Some(Self { syntax })
22502        } else {
22503            None
22504        }
22505    }
22506    #[inline]
22507    fn syntax(&self) -> &SyntaxNode {
22508        &self.syntax
22509    }
22510}
22511impl AstNode for DropConstraint {
22512    #[inline]
22513    fn can_cast(kind: SyntaxKind) -> bool {
22514        kind == SyntaxKind::DROP_CONSTRAINT
22515    }
22516    #[inline]
22517    fn cast(syntax: SyntaxNode) -> Option<Self> {
22518        if Self::can_cast(syntax.kind()) {
22519            Some(Self { syntax })
22520        } else {
22521            None
22522        }
22523    }
22524    #[inline]
22525    fn syntax(&self) -> &SyntaxNode {
22526        &self.syntax
22527    }
22528}
22529impl AstNode for DropConversion {
22530    #[inline]
22531    fn can_cast(kind: SyntaxKind) -> bool {
22532        kind == SyntaxKind::DROP_CONVERSION
22533    }
22534    #[inline]
22535    fn cast(syntax: SyntaxNode) -> Option<Self> {
22536        if Self::can_cast(syntax.kind()) {
22537            Some(Self { syntax })
22538        } else {
22539            None
22540        }
22541    }
22542    #[inline]
22543    fn syntax(&self) -> &SyntaxNode {
22544        &self.syntax
22545    }
22546}
22547impl AstNode for DropDatabase {
22548    #[inline]
22549    fn can_cast(kind: SyntaxKind) -> bool {
22550        kind == SyntaxKind::DROP_DATABASE
22551    }
22552    #[inline]
22553    fn cast(syntax: SyntaxNode) -> Option<Self> {
22554        if Self::can_cast(syntax.kind()) {
22555            Some(Self { syntax })
22556        } else {
22557            None
22558        }
22559    }
22560    #[inline]
22561    fn syntax(&self) -> &SyntaxNode {
22562        &self.syntax
22563    }
22564}
22565impl AstNode for DropDefault {
22566    #[inline]
22567    fn can_cast(kind: SyntaxKind) -> bool {
22568        kind == SyntaxKind::DROP_DEFAULT
22569    }
22570    #[inline]
22571    fn cast(syntax: SyntaxNode) -> Option<Self> {
22572        if Self::can_cast(syntax.kind()) {
22573            Some(Self { syntax })
22574        } else {
22575            None
22576        }
22577    }
22578    #[inline]
22579    fn syntax(&self) -> &SyntaxNode {
22580        &self.syntax
22581    }
22582}
22583impl AstNode for DropDomain {
22584    #[inline]
22585    fn can_cast(kind: SyntaxKind) -> bool {
22586        kind == SyntaxKind::DROP_DOMAIN
22587    }
22588    #[inline]
22589    fn cast(syntax: SyntaxNode) -> Option<Self> {
22590        if Self::can_cast(syntax.kind()) {
22591            Some(Self { syntax })
22592        } else {
22593            None
22594        }
22595    }
22596    #[inline]
22597    fn syntax(&self) -> &SyntaxNode {
22598        &self.syntax
22599    }
22600}
22601impl AstNode for DropEdgeTables {
22602    #[inline]
22603    fn can_cast(kind: SyntaxKind) -> bool {
22604        kind == SyntaxKind::DROP_EDGE_TABLES
22605    }
22606    #[inline]
22607    fn cast(syntax: SyntaxNode) -> Option<Self> {
22608        if Self::can_cast(syntax.kind()) {
22609            Some(Self { syntax })
22610        } else {
22611            None
22612        }
22613    }
22614    #[inline]
22615    fn syntax(&self) -> &SyntaxNode {
22616        &self.syntax
22617    }
22618}
22619impl AstNode for DropEventTrigger {
22620    #[inline]
22621    fn can_cast(kind: SyntaxKind) -> bool {
22622        kind == SyntaxKind::DROP_EVENT_TRIGGER
22623    }
22624    #[inline]
22625    fn cast(syntax: SyntaxNode) -> Option<Self> {
22626        if Self::can_cast(syntax.kind()) {
22627            Some(Self { syntax })
22628        } else {
22629            None
22630        }
22631    }
22632    #[inline]
22633    fn syntax(&self) -> &SyntaxNode {
22634        &self.syntax
22635    }
22636}
22637impl AstNode for DropExpression {
22638    #[inline]
22639    fn can_cast(kind: SyntaxKind) -> bool {
22640        kind == SyntaxKind::DROP_EXPRESSION
22641    }
22642    #[inline]
22643    fn cast(syntax: SyntaxNode) -> Option<Self> {
22644        if Self::can_cast(syntax.kind()) {
22645            Some(Self { syntax })
22646        } else {
22647            None
22648        }
22649    }
22650    #[inline]
22651    fn syntax(&self) -> &SyntaxNode {
22652        &self.syntax
22653    }
22654}
22655impl AstNode for DropExtension {
22656    #[inline]
22657    fn can_cast(kind: SyntaxKind) -> bool {
22658        kind == SyntaxKind::DROP_EXTENSION
22659    }
22660    #[inline]
22661    fn cast(syntax: SyntaxNode) -> Option<Self> {
22662        if Self::can_cast(syntax.kind()) {
22663            Some(Self { syntax })
22664        } else {
22665            None
22666        }
22667    }
22668    #[inline]
22669    fn syntax(&self) -> &SyntaxNode {
22670        &self.syntax
22671    }
22672}
22673impl AstNode for DropForeignDataWrapper {
22674    #[inline]
22675    fn can_cast(kind: SyntaxKind) -> bool {
22676        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22677    }
22678    #[inline]
22679    fn cast(syntax: SyntaxNode) -> Option<Self> {
22680        if Self::can_cast(syntax.kind()) {
22681            Some(Self { syntax })
22682        } else {
22683            None
22684        }
22685    }
22686    #[inline]
22687    fn syntax(&self) -> &SyntaxNode {
22688        &self.syntax
22689    }
22690}
22691impl AstNode for DropForeignTable {
22692    #[inline]
22693    fn can_cast(kind: SyntaxKind) -> bool {
22694        kind == SyntaxKind::DROP_FOREIGN_TABLE
22695    }
22696    #[inline]
22697    fn cast(syntax: SyntaxNode) -> Option<Self> {
22698        if Self::can_cast(syntax.kind()) {
22699            Some(Self { syntax })
22700        } else {
22701            None
22702        }
22703    }
22704    #[inline]
22705    fn syntax(&self) -> &SyntaxNode {
22706        &self.syntax
22707    }
22708}
22709impl AstNode for DropFunction {
22710    #[inline]
22711    fn can_cast(kind: SyntaxKind) -> bool {
22712        kind == SyntaxKind::DROP_FUNCTION
22713    }
22714    #[inline]
22715    fn cast(syntax: SyntaxNode) -> Option<Self> {
22716        if Self::can_cast(syntax.kind()) {
22717            Some(Self { syntax })
22718        } else {
22719            None
22720        }
22721    }
22722    #[inline]
22723    fn syntax(&self) -> &SyntaxNode {
22724        &self.syntax
22725    }
22726}
22727impl AstNode for DropGroup {
22728    #[inline]
22729    fn can_cast(kind: SyntaxKind) -> bool {
22730        kind == SyntaxKind::DROP_GROUP
22731    }
22732    #[inline]
22733    fn cast(syntax: SyntaxNode) -> Option<Self> {
22734        if Self::can_cast(syntax.kind()) {
22735            Some(Self { syntax })
22736        } else {
22737            None
22738        }
22739    }
22740    #[inline]
22741    fn syntax(&self) -> &SyntaxNode {
22742        &self.syntax
22743    }
22744}
22745impl AstNode for DropIdentity {
22746    #[inline]
22747    fn can_cast(kind: SyntaxKind) -> bool {
22748        kind == SyntaxKind::DROP_IDENTITY
22749    }
22750    #[inline]
22751    fn cast(syntax: SyntaxNode) -> Option<Self> {
22752        if Self::can_cast(syntax.kind()) {
22753            Some(Self { syntax })
22754        } else {
22755            None
22756        }
22757    }
22758    #[inline]
22759    fn syntax(&self) -> &SyntaxNode {
22760        &self.syntax
22761    }
22762}
22763impl AstNode for DropIndex {
22764    #[inline]
22765    fn can_cast(kind: SyntaxKind) -> bool {
22766        kind == SyntaxKind::DROP_INDEX
22767    }
22768    #[inline]
22769    fn cast(syntax: SyntaxNode) -> Option<Self> {
22770        if Self::can_cast(syntax.kind()) {
22771            Some(Self { syntax })
22772        } else {
22773            None
22774        }
22775    }
22776    #[inline]
22777    fn syntax(&self) -> &SyntaxNode {
22778        &self.syntax
22779    }
22780}
22781impl AstNode for DropLanguage {
22782    #[inline]
22783    fn can_cast(kind: SyntaxKind) -> bool {
22784        kind == SyntaxKind::DROP_LANGUAGE
22785    }
22786    #[inline]
22787    fn cast(syntax: SyntaxNode) -> Option<Self> {
22788        if Self::can_cast(syntax.kind()) {
22789            Some(Self { syntax })
22790        } else {
22791            None
22792        }
22793    }
22794    #[inline]
22795    fn syntax(&self) -> &SyntaxNode {
22796        &self.syntax
22797    }
22798}
22799impl AstNode for DropMaterializedView {
22800    #[inline]
22801    fn can_cast(kind: SyntaxKind) -> bool {
22802        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
22803    }
22804    #[inline]
22805    fn cast(syntax: SyntaxNode) -> Option<Self> {
22806        if Self::can_cast(syntax.kind()) {
22807            Some(Self { syntax })
22808        } else {
22809            None
22810        }
22811    }
22812    #[inline]
22813    fn syntax(&self) -> &SyntaxNode {
22814        &self.syntax
22815    }
22816}
22817impl AstNode for DropNotNull {
22818    #[inline]
22819    fn can_cast(kind: SyntaxKind) -> bool {
22820        kind == SyntaxKind::DROP_NOT_NULL
22821    }
22822    #[inline]
22823    fn cast(syntax: SyntaxNode) -> Option<Self> {
22824        if Self::can_cast(syntax.kind()) {
22825            Some(Self { syntax })
22826        } else {
22827            None
22828        }
22829    }
22830    #[inline]
22831    fn syntax(&self) -> &SyntaxNode {
22832        &self.syntax
22833    }
22834}
22835impl AstNode for DropOpClassOption {
22836    #[inline]
22837    fn can_cast(kind: SyntaxKind) -> bool {
22838        kind == SyntaxKind::DROP_OP_CLASS_OPTION
22839    }
22840    #[inline]
22841    fn cast(syntax: SyntaxNode) -> Option<Self> {
22842        if Self::can_cast(syntax.kind()) {
22843            Some(Self { syntax })
22844        } else {
22845            None
22846        }
22847    }
22848    #[inline]
22849    fn syntax(&self) -> &SyntaxNode {
22850        &self.syntax
22851    }
22852}
22853impl AstNode for DropOpClassOptionList {
22854    #[inline]
22855    fn can_cast(kind: SyntaxKind) -> bool {
22856        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
22857    }
22858    #[inline]
22859    fn cast(syntax: SyntaxNode) -> Option<Self> {
22860        if Self::can_cast(syntax.kind()) {
22861            Some(Self { syntax })
22862        } else {
22863            None
22864        }
22865    }
22866    #[inline]
22867    fn syntax(&self) -> &SyntaxNode {
22868        &self.syntax
22869    }
22870}
22871impl AstNode for DropOpClassOptions {
22872    #[inline]
22873    fn can_cast(kind: SyntaxKind) -> bool {
22874        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
22875    }
22876    #[inline]
22877    fn cast(syntax: SyntaxNode) -> Option<Self> {
22878        if Self::can_cast(syntax.kind()) {
22879            Some(Self { syntax })
22880        } else {
22881            None
22882        }
22883    }
22884    #[inline]
22885    fn syntax(&self) -> &SyntaxNode {
22886        &self.syntax
22887    }
22888}
22889impl AstNode for DropOperator {
22890    #[inline]
22891    fn can_cast(kind: SyntaxKind) -> bool {
22892        kind == SyntaxKind::DROP_OPERATOR
22893    }
22894    #[inline]
22895    fn cast(syntax: SyntaxNode) -> Option<Self> {
22896        if Self::can_cast(syntax.kind()) {
22897            Some(Self { syntax })
22898        } else {
22899            None
22900        }
22901    }
22902    #[inline]
22903    fn syntax(&self) -> &SyntaxNode {
22904        &self.syntax
22905    }
22906}
22907impl AstNode for DropOperatorClass {
22908    #[inline]
22909    fn can_cast(kind: SyntaxKind) -> bool {
22910        kind == SyntaxKind::DROP_OPERATOR_CLASS
22911    }
22912    #[inline]
22913    fn cast(syntax: SyntaxNode) -> Option<Self> {
22914        if Self::can_cast(syntax.kind()) {
22915            Some(Self { syntax })
22916        } else {
22917            None
22918        }
22919    }
22920    #[inline]
22921    fn syntax(&self) -> &SyntaxNode {
22922        &self.syntax
22923    }
22924}
22925impl AstNode for DropOperatorFamily {
22926    #[inline]
22927    fn can_cast(kind: SyntaxKind) -> bool {
22928        kind == SyntaxKind::DROP_OPERATOR_FAMILY
22929    }
22930    #[inline]
22931    fn cast(syntax: SyntaxNode) -> Option<Self> {
22932        if Self::can_cast(syntax.kind()) {
22933            Some(Self { syntax })
22934        } else {
22935            None
22936        }
22937    }
22938    #[inline]
22939    fn syntax(&self) -> &SyntaxNode {
22940        &self.syntax
22941    }
22942}
22943impl AstNode for DropOwned {
22944    #[inline]
22945    fn can_cast(kind: SyntaxKind) -> bool {
22946        kind == SyntaxKind::DROP_OWNED
22947    }
22948    #[inline]
22949    fn cast(syntax: SyntaxNode) -> Option<Self> {
22950        if Self::can_cast(syntax.kind()) {
22951            Some(Self { syntax })
22952        } else {
22953            None
22954        }
22955    }
22956    #[inline]
22957    fn syntax(&self) -> &SyntaxNode {
22958        &self.syntax
22959    }
22960}
22961impl AstNode for DropPolicy {
22962    #[inline]
22963    fn can_cast(kind: SyntaxKind) -> bool {
22964        kind == SyntaxKind::DROP_POLICY
22965    }
22966    #[inline]
22967    fn cast(syntax: SyntaxNode) -> Option<Self> {
22968        if Self::can_cast(syntax.kind()) {
22969            Some(Self { syntax })
22970        } else {
22971            None
22972        }
22973    }
22974    #[inline]
22975    fn syntax(&self) -> &SyntaxNode {
22976        &self.syntax
22977    }
22978}
22979impl AstNode for DropProcedure {
22980    #[inline]
22981    fn can_cast(kind: SyntaxKind) -> bool {
22982        kind == SyntaxKind::DROP_PROCEDURE
22983    }
22984    #[inline]
22985    fn cast(syntax: SyntaxNode) -> Option<Self> {
22986        if Self::can_cast(syntax.kind()) {
22987            Some(Self { syntax })
22988        } else {
22989            None
22990        }
22991    }
22992    #[inline]
22993    fn syntax(&self) -> &SyntaxNode {
22994        &self.syntax
22995    }
22996}
22997impl AstNode for DropPropertyGraph {
22998    #[inline]
22999    fn can_cast(kind: SyntaxKind) -> bool {
23000        kind == SyntaxKind::DROP_PROPERTY_GRAPH
23001    }
23002    #[inline]
23003    fn cast(syntax: SyntaxNode) -> Option<Self> {
23004        if Self::can_cast(syntax.kind()) {
23005            Some(Self { syntax })
23006        } else {
23007            None
23008        }
23009    }
23010    #[inline]
23011    fn syntax(&self) -> &SyntaxNode {
23012        &self.syntax
23013    }
23014}
23015impl AstNode for DropPublication {
23016    #[inline]
23017    fn can_cast(kind: SyntaxKind) -> bool {
23018        kind == SyntaxKind::DROP_PUBLICATION
23019    }
23020    #[inline]
23021    fn cast(syntax: SyntaxNode) -> Option<Self> {
23022        if Self::can_cast(syntax.kind()) {
23023            Some(Self { syntax })
23024        } else {
23025            None
23026        }
23027    }
23028    #[inline]
23029    fn syntax(&self) -> &SyntaxNode {
23030        &self.syntax
23031    }
23032}
23033impl AstNode for DropRole {
23034    #[inline]
23035    fn can_cast(kind: SyntaxKind) -> bool {
23036        kind == SyntaxKind::DROP_ROLE
23037    }
23038    #[inline]
23039    fn cast(syntax: SyntaxNode) -> Option<Self> {
23040        if Self::can_cast(syntax.kind()) {
23041            Some(Self { syntax })
23042        } else {
23043            None
23044        }
23045    }
23046    #[inline]
23047    fn syntax(&self) -> &SyntaxNode {
23048        &self.syntax
23049    }
23050}
23051impl AstNode for DropRoutine {
23052    #[inline]
23053    fn can_cast(kind: SyntaxKind) -> bool {
23054        kind == SyntaxKind::DROP_ROUTINE
23055    }
23056    #[inline]
23057    fn cast(syntax: SyntaxNode) -> Option<Self> {
23058        if Self::can_cast(syntax.kind()) {
23059            Some(Self { syntax })
23060        } else {
23061            None
23062        }
23063    }
23064    #[inline]
23065    fn syntax(&self) -> &SyntaxNode {
23066        &self.syntax
23067    }
23068}
23069impl AstNode for DropRule {
23070    #[inline]
23071    fn can_cast(kind: SyntaxKind) -> bool {
23072        kind == SyntaxKind::DROP_RULE
23073    }
23074    #[inline]
23075    fn cast(syntax: SyntaxNode) -> Option<Self> {
23076        if Self::can_cast(syntax.kind()) {
23077            Some(Self { syntax })
23078        } else {
23079            None
23080        }
23081    }
23082    #[inline]
23083    fn syntax(&self) -> &SyntaxNode {
23084        &self.syntax
23085    }
23086}
23087impl AstNode for DropSchema {
23088    #[inline]
23089    fn can_cast(kind: SyntaxKind) -> bool {
23090        kind == SyntaxKind::DROP_SCHEMA
23091    }
23092    #[inline]
23093    fn cast(syntax: SyntaxNode) -> Option<Self> {
23094        if Self::can_cast(syntax.kind()) {
23095            Some(Self { syntax })
23096        } else {
23097            None
23098        }
23099    }
23100    #[inline]
23101    fn syntax(&self) -> &SyntaxNode {
23102        &self.syntax
23103    }
23104}
23105impl AstNode for DropSequence {
23106    #[inline]
23107    fn can_cast(kind: SyntaxKind) -> bool {
23108        kind == SyntaxKind::DROP_SEQUENCE
23109    }
23110    #[inline]
23111    fn cast(syntax: SyntaxNode) -> Option<Self> {
23112        if Self::can_cast(syntax.kind()) {
23113            Some(Self { syntax })
23114        } else {
23115            None
23116        }
23117    }
23118    #[inline]
23119    fn syntax(&self) -> &SyntaxNode {
23120        &self.syntax
23121    }
23122}
23123impl AstNode for DropServer {
23124    #[inline]
23125    fn can_cast(kind: SyntaxKind) -> bool {
23126        kind == SyntaxKind::DROP_SERVER
23127    }
23128    #[inline]
23129    fn cast(syntax: SyntaxNode) -> Option<Self> {
23130        if Self::can_cast(syntax.kind()) {
23131            Some(Self { syntax })
23132        } else {
23133            None
23134        }
23135    }
23136    #[inline]
23137    fn syntax(&self) -> &SyntaxNode {
23138        &self.syntax
23139    }
23140}
23141impl AstNode for DropStatistics {
23142    #[inline]
23143    fn can_cast(kind: SyntaxKind) -> bool {
23144        kind == SyntaxKind::DROP_STATISTICS
23145    }
23146    #[inline]
23147    fn cast(syntax: SyntaxNode) -> Option<Self> {
23148        if Self::can_cast(syntax.kind()) {
23149            Some(Self { syntax })
23150        } else {
23151            None
23152        }
23153    }
23154    #[inline]
23155    fn syntax(&self) -> &SyntaxNode {
23156        &self.syntax
23157    }
23158}
23159impl AstNode for DropSubscription {
23160    #[inline]
23161    fn can_cast(kind: SyntaxKind) -> bool {
23162        kind == SyntaxKind::DROP_SUBSCRIPTION
23163    }
23164    #[inline]
23165    fn cast(syntax: SyntaxNode) -> Option<Self> {
23166        if Self::can_cast(syntax.kind()) {
23167            Some(Self { syntax })
23168        } else {
23169            None
23170        }
23171    }
23172    #[inline]
23173    fn syntax(&self) -> &SyntaxNode {
23174        &self.syntax
23175    }
23176}
23177impl AstNode for DropTable {
23178    #[inline]
23179    fn can_cast(kind: SyntaxKind) -> bool {
23180        kind == SyntaxKind::DROP_TABLE
23181    }
23182    #[inline]
23183    fn cast(syntax: SyntaxNode) -> Option<Self> {
23184        if Self::can_cast(syntax.kind()) {
23185            Some(Self { syntax })
23186        } else {
23187            None
23188        }
23189    }
23190    #[inline]
23191    fn syntax(&self) -> &SyntaxNode {
23192        &self.syntax
23193    }
23194}
23195impl AstNode for DropTablespace {
23196    #[inline]
23197    fn can_cast(kind: SyntaxKind) -> bool {
23198        kind == SyntaxKind::DROP_TABLESPACE
23199    }
23200    #[inline]
23201    fn cast(syntax: SyntaxNode) -> Option<Self> {
23202        if Self::can_cast(syntax.kind()) {
23203            Some(Self { syntax })
23204        } else {
23205            None
23206        }
23207    }
23208    #[inline]
23209    fn syntax(&self) -> &SyntaxNode {
23210        &self.syntax
23211    }
23212}
23213impl AstNode for DropTextSearchConfig {
23214    #[inline]
23215    fn can_cast(kind: SyntaxKind) -> bool {
23216        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
23217    }
23218    #[inline]
23219    fn cast(syntax: SyntaxNode) -> Option<Self> {
23220        if Self::can_cast(syntax.kind()) {
23221            Some(Self { syntax })
23222        } else {
23223            None
23224        }
23225    }
23226    #[inline]
23227    fn syntax(&self) -> &SyntaxNode {
23228        &self.syntax
23229    }
23230}
23231impl AstNode for DropTextSearchDict {
23232    #[inline]
23233    fn can_cast(kind: SyntaxKind) -> bool {
23234        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
23235    }
23236    #[inline]
23237    fn cast(syntax: SyntaxNode) -> Option<Self> {
23238        if Self::can_cast(syntax.kind()) {
23239            Some(Self { syntax })
23240        } else {
23241            None
23242        }
23243    }
23244    #[inline]
23245    fn syntax(&self) -> &SyntaxNode {
23246        &self.syntax
23247    }
23248}
23249impl AstNode for DropTextSearchParser {
23250    #[inline]
23251    fn can_cast(kind: SyntaxKind) -> bool {
23252        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
23253    }
23254    #[inline]
23255    fn cast(syntax: SyntaxNode) -> Option<Self> {
23256        if Self::can_cast(syntax.kind()) {
23257            Some(Self { syntax })
23258        } else {
23259            None
23260        }
23261    }
23262    #[inline]
23263    fn syntax(&self) -> &SyntaxNode {
23264        &self.syntax
23265    }
23266}
23267impl AstNode for DropTextSearchTemplate {
23268    #[inline]
23269    fn can_cast(kind: SyntaxKind) -> bool {
23270        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
23271    }
23272    #[inline]
23273    fn cast(syntax: SyntaxNode) -> Option<Self> {
23274        if Self::can_cast(syntax.kind()) {
23275            Some(Self { syntax })
23276        } else {
23277            None
23278        }
23279    }
23280    #[inline]
23281    fn syntax(&self) -> &SyntaxNode {
23282        &self.syntax
23283    }
23284}
23285impl AstNode for DropTransform {
23286    #[inline]
23287    fn can_cast(kind: SyntaxKind) -> bool {
23288        kind == SyntaxKind::DROP_TRANSFORM
23289    }
23290    #[inline]
23291    fn cast(syntax: SyntaxNode) -> Option<Self> {
23292        if Self::can_cast(syntax.kind()) {
23293            Some(Self { syntax })
23294        } else {
23295            None
23296        }
23297    }
23298    #[inline]
23299    fn syntax(&self) -> &SyntaxNode {
23300        &self.syntax
23301    }
23302}
23303impl AstNode for DropTrigger {
23304    #[inline]
23305    fn can_cast(kind: SyntaxKind) -> bool {
23306        kind == SyntaxKind::DROP_TRIGGER
23307    }
23308    #[inline]
23309    fn cast(syntax: SyntaxNode) -> Option<Self> {
23310        if Self::can_cast(syntax.kind()) {
23311            Some(Self { syntax })
23312        } else {
23313            None
23314        }
23315    }
23316    #[inline]
23317    fn syntax(&self) -> &SyntaxNode {
23318        &self.syntax
23319    }
23320}
23321impl AstNode for DropType {
23322    #[inline]
23323    fn can_cast(kind: SyntaxKind) -> bool {
23324        kind == SyntaxKind::DROP_TYPE
23325    }
23326    #[inline]
23327    fn cast(syntax: SyntaxNode) -> Option<Self> {
23328        if Self::can_cast(syntax.kind()) {
23329            Some(Self { syntax })
23330        } else {
23331            None
23332        }
23333    }
23334    #[inline]
23335    fn syntax(&self) -> &SyntaxNode {
23336        &self.syntax
23337    }
23338}
23339impl AstNode for DropUser {
23340    #[inline]
23341    fn can_cast(kind: SyntaxKind) -> bool {
23342        kind == SyntaxKind::DROP_USER
23343    }
23344    #[inline]
23345    fn cast(syntax: SyntaxNode) -> Option<Self> {
23346        if Self::can_cast(syntax.kind()) {
23347            Some(Self { syntax })
23348        } else {
23349            None
23350        }
23351    }
23352    #[inline]
23353    fn syntax(&self) -> &SyntaxNode {
23354        &self.syntax
23355    }
23356}
23357impl AstNode for DropUserMapping {
23358    #[inline]
23359    fn can_cast(kind: SyntaxKind) -> bool {
23360        kind == SyntaxKind::DROP_USER_MAPPING
23361    }
23362    #[inline]
23363    fn cast(syntax: SyntaxNode) -> Option<Self> {
23364        if Self::can_cast(syntax.kind()) {
23365            Some(Self { syntax })
23366        } else {
23367            None
23368        }
23369    }
23370    #[inline]
23371    fn syntax(&self) -> &SyntaxNode {
23372        &self.syntax
23373    }
23374}
23375impl AstNode for DropVertexEdgeLabel {
23376    #[inline]
23377    fn can_cast(kind: SyntaxKind) -> bool {
23378        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
23379    }
23380    #[inline]
23381    fn cast(syntax: SyntaxNode) -> Option<Self> {
23382        if Self::can_cast(syntax.kind()) {
23383            Some(Self { syntax })
23384        } else {
23385            None
23386        }
23387    }
23388    #[inline]
23389    fn syntax(&self) -> &SyntaxNode {
23390        &self.syntax
23391    }
23392}
23393impl AstNode for DropVertexEdgeLabelProperties {
23394    #[inline]
23395    fn can_cast(kind: SyntaxKind) -> bool {
23396        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
23397    }
23398    #[inline]
23399    fn cast(syntax: SyntaxNode) -> Option<Self> {
23400        if Self::can_cast(syntax.kind()) {
23401            Some(Self { syntax })
23402        } else {
23403            None
23404        }
23405    }
23406    #[inline]
23407    fn syntax(&self) -> &SyntaxNode {
23408        &self.syntax
23409    }
23410}
23411impl AstNode for DropVertexTables {
23412    #[inline]
23413    fn can_cast(kind: SyntaxKind) -> bool {
23414        kind == SyntaxKind::DROP_VERTEX_TABLES
23415    }
23416    #[inline]
23417    fn cast(syntax: SyntaxNode) -> Option<Self> {
23418        if Self::can_cast(syntax.kind()) {
23419            Some(Self { syntax })
23420        } else {
23421            None
23422        }
23423    }
23424    #[inline]
23425    fn syntax(&self) -> &SyntaxNode {
23426        &self.syntax
23427    }
23428}
23429impl AstNode for DropView {
23430    #[inline]
23431    fn can_cast(kind: SyntaxKind) -> bool {
23432        kind == SyntaxKind::DROP_VIEW
23433    }
23434    #[inline]
23435    fn cast(syntax: SyntaxNode) -> Option<Self> {
23436        if Self::can_cast(syntax.kind()) {
23437            Some(Self { syntax })
23438        } else {
23439            None
23440        }
23441    }
23442    #[inline]
23443    fn syntax(&self) -> &SyntaxNode {
23444        &self.syntax
23445    }
23446}
23447impl AstNode for EdgeAny {
23448    #[inline]
23449    fn can_cast(kind: SyntaxKind) -> bool {
23450        kind == SyntaxKind::EDGE_ANY
23451    }
23452    #[inline]
23453    fn cast(syntax: SyntaxNode) -> Option<Self> {
23454        if Self::can_cast(syntax.kind()) {
23455            Some(Self { syntax })
23456        } else {
23457            None
23458        }
23459    }
23460    #[inline]
23461    fn syntax(&self) -> &SyntaxNode {
23462        &self.syntax
23463    }
23464}
23465impl AstNode for EdgeLeft {
23466    #[inline]
23467    fn can_cast(kind: SyntaxKind) -> bool {
23468        kind == SyntaxKind::EDGE_LEFT
23469    }
23470    #[inline]
23471    fn cast(syntax: SyntaxNode) -> Option<Self> {
23472        if Self::can_cast(syntax.kind()) {
23473            Some(Self { syntax })
23474        } else {
23475            None
23476        }
23477    }
23478    #[inline]
23479    fn syntax(&self) -> &SyntaxNode {
23480        &self.syntax
23481    }
23482}
23483impl AstNode for EdgeRight {
23484    #[inline]
23485    fn can_cast(kind: SyntaxKind) -> bool {
23486        kind == SyntaxKind::EDGE_RIGHT
23487    }
23488    #[inline]
23489    fn cast(syntax: SyntaxNode) -> Option<Self> {
23490        if Self::can_cast(syntax.kind()) {
23491            Some(Self { syntax })
23492        } else {
23493            None
23494        }
23495    }
23496    #[inline]
23497    fn syntax(&self) -> &SyntaxNode {
23498        &self.syntax
23499    }
23500}
23501impl AstNode for EdgeTableDef {
23502    #[inline]
23503    fn can_cast(kind: SyntaxKind) -> bool {
23504        kind == SyntaxKind::EDGE_TABLE_DEF
23505    }
23506    #[inline]
23507    fn cast(syntax: SyntaxNode) -> Option<Self> {
23508        if Self::can_cast(syntax.kind()) {
23509            Some(Self { syntax })
23510        } else {
23511            None
23512        }
23513    }
23514    #[inline]
23515    fn syntax(&self) -> &SyntaxNode {
23516        &self.syntax
23517    }
23518}
23519impl AstNode for EdgeTables {
23520    #[inline]
23521    fn can_cast(kind: SyntaxKind) -> bool {
23522        kind == SyntaxKind::EDGE_TABLES
23523    }
23524    #[inline]
23525    fn cast(syntax: SyntaxNode) -> Option<Self> {
23526        if Self::can_cast(syntax.kind()) {
23527            Some(Self { syntax })
23528        } else {
23529            None
23530        }
23531    }
23532    #[inline]
23533    fn syntax(&self) -> &SyntaxNode {
23534        &self.syntax
23535    }
23536}
23537impl AstNode for ElseClause {
23538    #[inline]
23539    fn can_cast(kind: SyntaxKind) -> bool {
23540        kind == SyntaxKind::ELSE_CLAUSE
23541    }
23542    #[inline]
23543    fn cast(syntax: SyntaxNode) -> Option<Self> {
23544        if Self::can_cast(syntax.kind()) {
23545            Some(Self { syntax })
23546        } else {
23547            None
23548        }
23549    }
23550    #[inline]
23551    fn syntax(&self) -> &SyntaxNode {
23552        &self.syntax
23553    }
23554}
23555impl AstNode for EnableAlwaysRule {
23556    #[inline]
23557    fn can_cast(kind: SyntaxKind) -> bool {
23558        kind == SyntaxKind::ENABLE_ALWAYS_RULE
23559    }
23560    #[inline]
23561    fn cast(syntax: SyntaxNode) -> Option<Self> {
23562        if Self::can_cast(syntax.kind()) {
23563            Some(Self { syntax })
23564        } else {
23565            None
23566        }
23567    }
23568    #[inline]
23569    fn syntax(&self) -> &SyntaxNode {
23570        &self.syntax
23571    }
23572}
23573impl AstNode for EnableAlwaysTrigger {
23574    #[inline]
23575    fn can_cast(kind: SyntaxKind) -> bool {
23576        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
23577    }
23578    #[inline]
23579    fn cast(syntax: SyntaxNode) -> Option<Self> {
23580        if Self::can_cast(syntax.kind()) {
23581            Some(Self { syntax })
23582        } else {
23583            None
23584        }
23585    }
23586    #[inline]
23587    fn syntax(&self) -> &SyntaxNode {
23588        &self.syntax
23589    }
23590}
23591impl AstNode for EnableReplicaRule {
23592    #[inline]
23593    fn can_cast(kind: SyntaxKind) -> bool {
23594        kind == SyntaxKind::ENABLE_REPLICA_RULE
23595    }
23596    #[inline]
23597    fn cast(syntax: SyntaxNode) -> Option<Self> {
23598        if Self::can_cast(syntax.kind()) {
23599            Some(Self { syntax })
23600        } else {
23601            None
23602        }
23603    }
23604    #[inline]
23605    fn syntax(&self) -> &SyntaxNode {
23606        &self.syntax
23607    }
23608}
23609impl AstNode for EnableReplicaTrigger {
23610    #[inline]
23611    fn can_cast(kind: SyntaxKind) -> bool {
23612        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
23613    }
23614    #[inline]
23615    fn cast(syntax: SyntaxNode) -> Option<Self> {
23616        if Self::can_cast(syntax.kind()) {
23617            Some(Self { syntax })
23618        } else {
23619            None
23620        }
23621    }
23622    #[inline]
23623    fn syntax(&self) -> &SyntaxNode {
23624        &self.syntax
23625    }
23626}
23627impl AstNode for EnableRls {
23628    #[inline]
23629    fn can_cast(kind: SyntaxKind) -> bool {
23630        kind == SyntaxKind::ENABLE_RLS
23631    }
23632    #[inline]
23633    fn cast(syntax: SyntaxNode) -> Option<Self> {
23634        if Self::can_cast(syntax.kind()) {
23635            Some(Self { syntax })
23636        } else {
23637            None
23638        }
23639    }
23640    #[inline]
23641    fn syntax(&self) -> &SyntaxNode {
23642        &self.syntax
23643    }
23644}
23645impl AstNode for EnableRule {
23646    #[inline]
23647    fn can_cast(kind: SyntaxKind) -> bool {
23648        kind == SyntaxKind::ENABLE_RULE
23649    }
23650    #[inline]
23651    fn cast(syntax: SyntaxNode) -> Option<Self> {
23652        if Self::can_cast(syntax.kind()) {
23653            Some(Self { syntax })
23654        } else {
23655            None
23656        }
23657    }
23658    #[inline]
23659    fn syntax(&self) -> &SyntaxNode {
23660        &self.syntax
23661    }
23662}
23663impl AstNode for EnableTrigger {
23664    #[inline]
23665    fn can_cast(kind: SyntaxKind) -> bool {
23666        kind == SyntaxKind::ENABLE_TRIGGER
23667    }
23668    #[inline]
23669    fn cast(syntax: SyntaxNode) -> Option<Self> {
23670        if Self::can_cast(syntax.kind()) {
23671            Some(Self { syntax })
23672        } else {
23673            None
23674        }
23675    }
23676    #[inline]
23677    fn syntax(&self) -> &SyntaxNode {
23678        &self.syntax
23679    }
23680}
23681impl AstNode for Enforced {
23682    #[inline]
23683    fn can_cast(kind: SyntaxKind) -> bool {
23684        kind == SyntaxKind::ENFORCED
23685    }
23686    #[inline]
23687    fn cast(syntax: SyntaxNode) -> Option<Self> {
23688        if Self::can_cast(syntax.kind()) {
23689            Some(Self { syntax })
23690        } else {
23691            None
23692        }
23693    }
23694    #[inline]
23695    fn syntax(&self) -> &SyntaxNode {
23696        &self.syntax
23697    }
23698}
23699impl AstNode for EventTriggerWhen {
23700    #[inline]
23701    fn can_cast(kind: SyntaxKind) -> bool {
23702        kind == SyntaxKind::EVENT_TRIGGER_WHEN
23703    }
23704    #[inline]
23705    fn cast(syntax: SyntaxNode) -> Option<Self> {
23706        if Self::can_cast(syntax.kind()) {
23707            Some(Self { syntax })
23708        } else {
23709            None
23710        }
23711    }
23712    #[inline]
23713    fn syntax(&self) -> &SyntaxNode {
23714        &self.syntax
23715    }
23716}
23717impl AstNode for EventTriggerWhenClause {
23718    #[inline]
23719    fn can_cast(kind: SyntaxKind) -> bool {
23720        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
23721    }
23722    #[inline]
23723    fn cast(syntax: SyntaxNode) -> Option<Self> {
23724        if Self::can_cast(syntax.kind()) {
23725            Some(Self { syntax })
23726        } else {
23727            None
23728        }
23729    }
23730    #[inline]
23731    fn syntax(&self) -> &SyntaxNode {
23732        &self.syntax
23733    }
23734}
23735impl AstNode for ExceptTableClause {
23736    #[inline]
23737    fn can_cast(kind: SyntaxKind) -> bool {
23738        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
23739    }
23740    #[inline]
23741    fn cast(syntax: SyntaxNode) -> Option<Self> {
23742        if Self::can_cast(syntax.kind()) {
23743            Some(Self { syntax })
23744        } else {
23745            None
23746        }
23747    }
23748    #[inline]
23749    fn syntax(&self) -> &SyntaxNode {
23750        &self.syntax
23751    }
23752}
23753impl AstNode for ExceptTables {
23754    #[inline]
23755    fn can_cast(kind: SyntaxKind) -> bool {
23756        kind == SyntaxKind::EXCEPT_TABLES
23757    }
23758    #[inline]
23759    fn cast(syntax: SyntaxNode) -> Option<Self> {
23760        if Self::can_cast(syntax.kind()) {
23761            Some(Self { syntax })
23762        } else {
23763            None
23764        }
23765    }
23766    #[inline]
23767    fn syntax(&self) -> &SyntaxNode {
23768        &self.syntax
23769    }
23770}
23771impl AstNode for ExcludeConstraint {
23772    #[inline]
23773    fn can_cast(kind: SyntaxKind) -> bool {
23774        kind == SyntaxKind::EXCLUDE_CONSTRAINT
23775    }
23776    #[inline]
23777    fn cast(syntax: SyntaxNode) -> Option<Self> {
23778        if Self::can_cast(syntax.kind()) {
23779            Some(Self { syntax })
23780        } else {
23781            None
23782        }
23783    }
23784    #[inline]
23785    fn syntax(&self) -> &SyntaxNode {
23786        &self.syntax
23787    }
23788}
23789impl AstNode for Execute {
23790    #[inline]
23791    fn can_cast(kind: SyntaxKind) -> bool {
23792        kind == SyntaxKind::EXECUTE
23793    }
23794    #[inline]
23795    fn cast(syntax: SyntaxNode) -> Option<Self> {
23796        if Self::can_cast(syntax.kind()) {
23797            Some(Self { syntax })
23798        } else {
23799            None
23800        }
23801    }
23802    #[inline]
23803    fn syntax(&self) -> &SyntaxNode {
23804        &self.syntax
23805    }
23806}
23807impl AstNode for ExistsFn {
23808    #[inline]
23809    fn can_cast(kind: SyntaxKind) -> bool {
23810        kind == SyntaxKind::EXISTS_FN
23811    }
23812    #[inline]
23813    fn cast(syntax: SyntaxNode) -> Option<Self> {
23814        if Self::can_cast(syntax.kind()) {
23815            Some(Self { syntax })
23816        } else {
23817            None
23818        }
23819    }
23820    #[inline]
23821    fn syntax(&self) -> &SyntaxNode {
23822        &self.syntax
23823    }
23824}
23825impl AstNode for Explain {
23826    #[inline]
23827    fn can_cast(kind: SyntaxKind) -> bool {
23828        kind == SyntaxKind::EXPLAIN
23829    }
23830    #[inline]
23831    fn cast(syntax: SyntaxNode) -> Option<Self> {
23832        if Self::can_cast(syntax.kind()) {
23833            Some(Self { syntax })
23834        } else {
23835            None
23836        }
23837    }
23838    #[inline]
23839    fn syntax(&self) -> &SyntaxNode {
23840        &self.syntax
23841    }
23842}
23843impl AstNode for ExprAsName {
23844    #[inline]
23845    fn can_cast(kind: SyntaxKind) -> bool {
23846        kind == SyntaxKind::EXPR_AS_NAME
23847    }
23848    #[inline]
23849    fn cast(syntax: SyntaxNode) -> Option<Self> {
23850        if Self::can_cast(syntax.kind()) {
23851            Some(Self { syntax })
23852        } else {
23853            None
23854        }
23855    }
23856    #[inline]
23857    fn syntax(&self) -> &SyntaxNode {
23858        &self.syntax
23859    }
23860}
23861impl AstNode for ExprAsNameList {
23862    #[inline]
23863    fn can_cast(kind: SyntaxKind) -> bool {
23864        kind == SyntaxKind::EXPR_AS_NAME_LIST
23865    }
23866    #[inline]
23867    fn cast(syntax: SyntaxNode) -> Option<Self> {
23868        if Self::can_cast(syntax.kind()) {
23869            Some(Self { syntax })
23870        } else {
23871            None
23872        }
23873    }
23874    #[inline]
23875    fn syntax(&self) -> &SyntaxNode {
23876        &self.syntax
23877    }
23878}
23879impl AstNode for ExprType {
23880    #[inline]
23881    fn can_cast(kind: SyntaxKind) -> bool {
23882        kind == SyntaxKind::EXPR_TYPE
23883    }
23884    #[inline]
23885    fn cast(syntax: SyntaxNode) -> Option<Self> {
23886        if Self::can_cast(syntax.kind()) {
23887            Some(Self { syntax })
23888        } else {
23889            None
23890        }
23891    }
23892    #[inline]
23893    fn syntax(&self) -> &SyntaxNode {
23894        &self.syntax
23895    }
23896}
23897impl AstNode for ExtractFn {
23898    #[inline]
23899    fn can_cast(kind: SyntaxKind) -> bool {
23900        kind == SyntaxKind::EXTRACT_FN
23901    }
23902    #[inline]
23903    fn cast(syntax: SyntaxNode) -> Option<Self> {
23904        if Self::can_cast(syntax.kind()) {
23905            Some(Self { syntax })
23906        } else {
23907            None
23908        }
23909    }
23910    #[inline]
23911    fn syntax(&self) -> &SyntaxNode {
23912        &self.syntax
23913    }
23914}
23915impl AstNode for FatArrow {
23916    #[inline]
23917    fn can_cast(kind: SyntaxKind) -> bool {
23918        kind == SyntaxKind::FAT_ARROW
23919    }
23920    #[inline]
23921    fn cast(syntax: SyntaxNode) -> Option<Self> {
23922        if Self::can_cast(syntax.kind()) {
23923            Some(Self { syntax })
23924        } else {
23925            None
23926        }
23927    }
23928    #[inline]
23929    fn syntax(&self) -> &SyntaxNode {
23930        &self.syntax
23931    }
23932}
23933impl AstNode for FdwOption {
23934    #[inline]
23935    fn can_cast(kind: SyntaxKind) -> bool {
23936        kind == SyntaxKind::FDW_OPTION
23937    }
23938    #[inline]
23939    fn cast(syntax: SyntaxNode) -> Option<Self> {
23940        if Self::can_cast(syntax.kind()) {
23941            Some(Self { syntax })
23942        } else {
23943            None
23944        }
23945    }
23946    #[inline]
23947    fn syntax(&self) -> &SyntaxNode {
23948        &self.syntax
23949    }
23950}
23951impl AstNode for FdwOptionList {
23952    #[inline]
23953    fn can_cast(kind: SyntaxKind) -> bool {
23954        kind == SyntaxKind::FDW_OPTION_LIST
23955    }
23956    #[inline]
23957    fn cast(syntax: SyntaxNode) -> Option<Self> {
23958        if Self::can_cast(syntax.kind()) {
23959            Some(Self { syntax })
23960        } else {
23961            None
23962        }
23963    }
23964    #[inline]
23965    fn syntax(&self) -> &SyntaxNode {
23966        &self.syntax
23967    }
23968}
23969impl AstNode for Fetch {
23970    #[inline]
23971    fn can_cast(kind: SyntaxKind) -> bool {
23972        kind == SyntaxKind::FETCH
23973    }
23974    #[inline]
23975    fn cast(syntax: SyntaxNode) -> Option<Self> {
23976        if Self::can_cast(syntax.kind()) {
23977            Some(Self { syntax })
23978        } else {
23979            None
23980        }
23981    }
23982    #[inline]
23983    fn syntax(&self) -> &SyntaxNode {
23984        &self.syntax
23985    }
23986}
23987impl AstNode for FetchClause {
23988    #[inline]
23989    fn can_cast(kind: SyntaxKind) -> bool {
23990        kind == SyntaxKind::FETCH_CLAUSE
23991    }
23992    #[inline]
23993    fn cast(syntax: SyntaxNode) -> Option<Self> {
23994        if Self::can_cast(syntax.kind()) {
23995            Some(Self { syntax })
23996        } else {
23997            None
23998        }
23999    }
24000    #[inline]
24001    fn syntax(&self) -> &SyntaxNode {
24002        &self.syntax
24003    }
24004}
24005impl AstNode for FieldExpr {
24006    #[inline]
24007    fn can_cast(kind: SyntaxKind) -> bool {
24008        kind == SyntaxKind::FIELD_EXPR
24009    }
24010    #[inline]
24011    fn cast(syntax: SyntaxNode) -> Option<Self> {
24012        if Self::can_cast(syntax.kind()) {
24013            Some(Self { syntax })
24014        } else {
24015            None
24016        }
24017    }
24018    #[inline]
24019    fn syntax(&self) -> &SyntaxNode {
24020        &self.syntax
24021    }
24022}
24023impl AstNode for FilterClause {
24024    #[inline]
24025    fn can_cast(kind: SyntaxKind) -> bool {
24026        kind == SyntaxKind::FILTER_CLAUSE
24027    }
24028    #[inline]
24029    fn cast(syntax: SyntaxNode) -> Option<Self> {
24030        if Self::can_cast(syntax.kind()) {
24031            Some(Self { syntax })
24032        } else {
24033            None
24034        }
24035    }
24036    #[inline]
24037    fn syntax(&self) -> &SyntaxNode {
24038        &self.syntax
24039    }
24040}
24041impl AstNode for ForPortionOf {
24042    #[inline]
24043    fn can_cast(kind: SyntaxKind) -> bool {
24044        kind == SyntaxKind::FOR_PORTION_OF
24045    }
24046    #[inline]
24047    fn cast(syntax: SyntaxNode) -> Option<Self> {
24048        if Self::can_cast(syntax.kind()) {
24049            Some(Self { syntax })
24050        } else {
24051            None
24052        }
24053    }
24054    #[inline]
24055    fn syntax(&self) -> &SyntaxNode {
24056        &self.syntax
24057    }
24058}
24059impl AstNode for ForProvider {
24060    #[inline]
24061    fn can_cast(kind: SyntaxKind) -> bool {
24062        kind == SyntaxKind::FOR_PROVIDER
24063    }
24064    #[inline]
24065    fn cast(syntax: SyntaxNode) -> Option<Self> {
24066        if Self::can_cast(syntax.kind()) {
24067            Some(Self { syntax })
24068        } else {
24069            None
24070        }
24071    }
24072    #[inline]
24073    fn syntax(&self) -> &SyntaxNode {
24074        &self.syntax
24075    }
24076}
24077impl AstNode for ForceRls {
24078    #[inline]
24079    fn can_cast(kind: SyntaxKind) -> bool {
24080        kind == SyntaxKind::FORCE_RLS
24081    }
24082    #[inline]
24083    fn cast(syntax: SyntaxNode) -> Option<Self> {
24084        if Self::can_cast(syntax.kind()) {
24085            Some(Self { syntax })
24086        } else {
24087            None
24088        }
24089    }
24090    #[inline]
24091    fn syntax(&self) -> &SyntaxNode {
24092        &self.syntax
24093    }
24094}
24095impl AstNode for ForeignKeyConstraint {
24096    #[inline]
24097    fn can_cast(kind: SyntaxKind) -> bool {
24098        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24099    }
24100    #[inline]
24101    fn cast(syntax: SyntaxNode) -> Option<Self> {
24102        if Self::can_cast(syntax.kind()) {
24103            Some(Self { syntax })
24104        } else {
24105            None
24106        }
24107    }
24108    #[inline]
24109    fn syntax(&self) -> &SyntaxNode {
24110        &self.syntax
24111    }
24112}
24113impl AstNode for FrameClause {
24114    #[inline]
24115    fn can_cast(kind: SyntaxKind) -> bool {
24116        kind == SyntaxKind::FRAME_CLAUSE
24117    }
24118    #[inline]
24119    fn cast(syntax: SyntaxNode) -> Option<Self> {
24120        if Self::can_cast(syntax.kind()) {
24121            Some(Self { syntax })
24122        } else {
24123            None
24124        }
24125    }
24126    #[inline]
24127    fn syntax(&self) -> &SyntaxNode {
24128        &self.syntax
24129    }
24130}
24131impl AstNode for FromClause {
24132    #[inline]
24133    fn can_cast(kind: SyntaxKind) -> bool {
24134        kind == SyntaxKind::FROM_CLAUSE
24135    }
24136    #[inline]
24137    fn cast(syntax: SyntaxNode) -> Option<Self> {
24138        if Self::can_cast(syntax.kind()) {
24139            Some(Self { syntax })
24140        } else {
24141            None
24142        }
24143    }
24144    #[inline]
24145    fn syntax(&self) -> &SyntaxNode {
24146        &self.syntax
24147    }
24148}
24149impl AstNode for FromItem {
24150    #[inline]
24151    fn can_cast(kind: SyntaxKind) -> bool {
24152        kind == SyntaxKind::FROM_ITEM
24153    }
24154    #[inline]
24155    fn cast(syntax: SyntaxNode) -> Option<Self> {
24156        if Self::can_cast(syntax.kind()) {
24157            Some(Self { syntax })
24158        } else {
24159            None
24160        }
24161    }
24162    #[inline]
24163    fn syntax(&self) -> &SyntaxNode {
24164        &self.syntax
24165    }
24166}
24167impl AstNode for FromTable {
24168    #[inline]
24169    fn can_cast(kind: SyntaxKind) -> bool {
24170        kind == SyntaxKind::FROM_TABLE
24171    }
24172    #[inline]
24173    fn cast(syntax: SyntaxNode) -> Option<Self> {
24174        if Self::can_cast(syntax.kind()) {
24175            Some(Self { syntax })
24176        } else {
24177            None
24178        }
24179    }
24180    #[inline]
24181    fn syntax(&self) -> &SyntaxNode {
24182        &self.syntax
24183    }
24184}
24185impl AstNode for FuncOptionList {
24186    #[inline]
24187    fn can_cast(kind: SyntaxKind) -> bool {
24188        kind == SyntaxKind::FUNC_OPTION_LIST
24189    }
24190    #[inline]
24191    fn cast(syntax: SyntaxNode) -> Option<Self> {
24192        if Self::can_cast(syntax.kind()) {
24193            Some(Self { syntax })
24194        } else {
24195            None
24196        }
24197    }
24198    #[inline]
24199    fn syntax(&self) -> &SyntaxNode {
24200        &self.syntax
24201    }
24202}
24203impl AstNode for FunctionSig {
24204    #[inline]
24205    fn can_cast(kind: SyntaxKind) -> bool {
24206        kind == SyntaxKind::FUNCTION_SIG
24207    }
24208    #[inline]
24209    fn cast(syntax: SyntaxNode) -> Option<Self> {
24210        if Self::can_cast(syntax.kind()) {
24211            Some(Self { syntax })
24212        } else {
24213            None
24214        }
24215    }
24216    #[inline]
24217    fn syntax(&self) -> &SyntaxNode {
24218        &self.syntax
24219    }
24220}
24221impl AstNode for FunctionSigList {
24222    #[inline]
24223    fn can_cast(kind: SyntaxKind) -> bool {
24224        kind == SyntaxKind::FUNCTION_SIG_LIST
24225    }
24226    #[inline]
24227    fn cast(syntax: SyntaxNode) -> Option<Self> {
24228        if Self::can_cast(syntax.kind()) {
24229            Some(Self { syntax })
24230        } else {
24231            None
24232        }
24233    }
24234    #[inline]
24235    fn syntax(&self) -> &SyntaxNode {
24236        &self.syntax
24237    }
24238}
24239impl AstNode for GeneratedConstraint {
24240    #[inline]
24241    fn can_cast(kind: SyntaxKind) -> bool {
24242        kind == SyntaxKind::GENERATED_CONSTRAINT
24243    }
24244    #[inline]
24245    fn cast(syntax: SyntaxNode) -> Option<Self> {
24246        if Self::can_cast(syntax.kind()) {
24247            Some(Self { syntax })
24248        } else {
24249            None
24250        }
24251    }
24252    #[inline]
24253    fn syntax(&self) -> &SyntaxNode {
24254        &self.syntax
24255    }
24256}
24257impl AstNode for Grant {
24258    #[inline]
24259    fn can_cast(kind: SyntaxKind) -> bool {
24260        kind == SyntaxKind::GRANT
24261    }
24262    #[inline]
24263    fn cast(syntax: SyntaxNode) -> Option<Self> {
24264        if Self::can_cast(syntax.kind()) {
24265            Some(Self { syntax })
24266        } else {
24267            None
24268        }
24269    }
24270    #[inline]
24271    fn syntax(&self) -> &SyntaxNode {
24272        &self.syntax
24273    }
24274}
24275impl AstNode for GrantDefaultPrivileges {
24276    #[inline]
24277    fn can_cast(kind: SyntaxKind) -> bool {
24278        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
24279    }
24280    #[inline]
24281    fn cast(syntax: SyntaxNode) -> Option<Self> {
24282        if Self::can_cast(syntax.kind()) {
24283            Some(Self { syntax })
24284        } else {
24285            None
24286        }
24287    }
24288    #[inline]
24289    fn syntax(&self) -> &SyntaxNode {
24290        &self.syntax
24291    }
24292}
24293impl AstNode for GraphPatternQualifier {
24294    #[inline]
24295    fn can_cast(kind: SyntaxKind) -> bool {
24296        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
24297    }
24298    #[inline]
24299    fn cast(syntax: SyntaxNode) -> Option<Self> {
24300        if Self::can_cast(syntax.kind()) {
24301            Some(Self { syntax })
24302        } else {
24303            None
24304        }
24305    }
24306    #[inline]
24307    fn syntax(&self) -> &SyntaxNode {
24308        &self.syntax
24309    }
24310}
24311impl AstNode for GraphTableFn {
24312    #[inline]
24313    fn can_cast(kind: SyntaxKind) -> bool {
24314        kind == SyntaxKind::GRAPH_TABLE_FN
24315    }
24316    #[inline]
24317    fn cast(syntax: SyntaxNode) -> Option<Self> {
24318        if Self::can_cast(syntax.kind()) {
24319            Some(Self { syntax })
24320        } else {
24321            None
24322        }
24323    }
24324    #[inline]
24325    fn syntax(&self) -> &SyntaxNode {
24326        &self.syntax
24327    }
24328}
24329impl AstNode for GroupByClause {
24330    #[inline]
24331    fn can_cast(kind: SyntaxKind) -> bool {
24332        kind == SyntaxKind::GROUP_BY_CLAUSE
24333    }
24334    #[inline]
24335    fn cast(syntax: SyntaxNode) -> Option<Self> {
24336        if Self::can_cast(syntax.kind()) {
24337            Some(Self { syntax })
24338        } else {
24339            None
24340        }
24341    }
24342    #[inline]
24343    fn syntax(&self) -> &SyntaxNode {
24344        &self.syntax
24345    }
24346}
24347impl AstNode for GroupByList {
24348    #[inline]
24349    fn can_cast(kind: SyntaxKind) -> bool {
24350        kind == SyntaxKind::GROUP_BY_LIST
24351    }
24352    #[inline]
24353    fn cast(syntax: SyntaxNode) -> Option<Self> {
24354        if Self::can_cast(syntax.kind()) {
24355            Some(Self { syntax })
24356        } else {
24357            None
24358        }
24359    }
24360    #[inline]
24361    fn syntax(&self) -> &SyntaxNode {
24362        &self.syntax
24363    }
24364}
24365impl AstNode for GroupingCube {
24366    #[inline]
24367    fn can_cast(kind: SyntaxKind) -> bool {
24368        kind == SyntaxKind::GROUPING_CUBE
24369    }
24370    #[inline]
24371    fn cast(syntax: SyntaxNode) -> Option<Self> {
24372        if Self::can_cast(syntax.kind()) {
24373            Some(Self { syntax })
24374        } else {
24375            None
24376        }
24377    }
24378    #[inline]
24379    fn syntax(&self) -> &SyntaxNode {
24380        &self.syntax
24381    }
24382}
24383impl AstNode for GroupingExpr {
24384    #[inline]
24385    fn can_cast(kind: SyntaxKind) -> bool {
24386        kind == SyntaxKind::GROUPING_EXPR
24387    }
24388    #[inline]
24389    fn cast(syntax: SyntaxNode) -> Option<Self> {
24390        if Self::can_cast(syntax.kind()) {
24391            Some(Self { syntax })
24392        } else {
24393            None
24394        }
24395    }
24396    #[inline]
24397    fn syntax(&self) -> &SyntaxNode {
24398        &self.syntax
24399    }
24400}
24401impl AstNode for GroupingRollup {
24402    #[inline]
24403    fn can_cast(kind: SyntaxKind) -> bool {
24404        kind == SyntaxKind::GROUPING_ROLLUP
24405    }
24406    #[inline]
24407    fn cast(syntax: SyntaxNode) -> Option<Self> {
24408        if Self::can_cast(syntax.kind()) {
24409            Some(Self { syntax })
24410        } else {
24411            None
24412        }
24413    }
24414    #[inline]
24415    fn syntax(&self) -> &SyntaxNode {
24416        &self.syntax
24417    }
24418}
24419impl AstNode for GroupingSets {
24420    #[inline]
24421    fn can_cast(kind: SyntaxKind) -> bool {
24422        kind == SyntaxKind::GROUPING_SETS
24423    }
24424    #[inline]
24425    fn cast(syntax: SyntaxNode) -> Option<Self> {
24426        if Self::can_cast(syntax.kind()) {
24427            Some(Self { syntax })
24428        } else {
24429            None
24430        }
24431    }
24432    #[inline]
24433    fn syntax(&self) -> &SyntaxNode {
24434        &self.syntax
24435    }
24436}
24437impl AstNode for Gteq {
24438    #[inline]
24439    fn can_cast(kind: SyntaxKind) -> bool {
24440        kind == SyntaxKind::GTEQ
24441    }
24442    #[inline]
24443    fn cast(syntax: SyntaxNode) -> Option<Self> {
24444        if Self::can_cast(syntax.kind()) {
24445            Some(Self { syntax })
24446        } else {
24447            None
24448        }
24449    }
24450    #[inline]
24451    fn syntax(&self) -> &SyntaxNode {
24452        &self.syntax
24453    }
24454}
24455impl AstNode for HandlerClause {
24456    #[inline]
24457    fn can_cast(kind: SyntaxKind) -> bool {
24458        kind == SyntaxKind::HANDLER_CLAUSE
24459    }
24460    #[inline]
24461    fn cast(syntax: SyntaxNode) -> Option<Self> {
24462        if Self::can_cast(syntax.kind()) {
24463            Some(Self { syntax })
24464        } else {
24465            None
24466        }
24467    }
24468    #[inline]
24469    fn syntax(&self) -> &SyntaxNode {
24470        &self.syntax
24471    }
24472}
24473impl AstNode for HavingClause {
24474    #[inline]
24475    fn can_cast(kind: SyntaxKind) -> bool {
24476        kind == SyntaxKind::HAVING_CLAUSE
24477    }
24478    #[inline]
24479    fn cast(syntax: SyntaxNode) -> Option<Self> {
24480        if Self::can_cast(syntax.kind()) {
24481            Some(Self { syntax })
24482        } else {
24483            None
24484        }
24485    }
24486    #[inline]
24487    fn syntax(&self) -> &SyntaxNode {
24488        &self.syntax
24489    }
24490}
24491impl AstNode for IfExists {
24492    #[inline]
24493    fn can_cast(kind: SyntaxKind) -> bool {
24494        kind == SyntaxKind::IF_EXISTS
24495    }
24496    #[inline]
24497    fn cast(syntax: SyntaxNode) -> Option<Self> {
24498        if Self::can_cast(syntax.kind()) {
24499            Some(Self { syntax })
24500        } else {
24501            None
24502        }
24503    }
24504    #[inline]
24505    fn syntax(&self) -> &SyntaxNode {
24506        &self.syntax
24507    }
24508}
24509impl AstNode for IfNotExists {
24510    #[inline]
24511    fn can_cast(kind: SyntaxKind) -> bool {
24512        kind == SyntaxKind::IF_NOT_EXISTS
24513    }
24514    #[inline]
24515    fn cast(syntax: SyntaxNode) -> Option<Self> {
24516        if Self::can_cast(syntax.kind()) {
24517            Some(Self { syntax })
24518        } else {
24519            None
24520        }
24521    }
24522    #[inline]
24523    fn syntax(&self) -> &SyntaxNode {
24524        &self.syntax
24525    }
24526}
24527impl AstNode for ImportForeignSchema {
24528    #[inline]
24529    fn can_cast(kind: SyntaxKind) -> bool {
24530        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
24531    }
24532    #[inline]
24533    fn cast(syntax: SyntaxNode) -> Option<Self> {
24534        if Self::can_cast(syntax.kind()) {
24535            Some(Self { syntax })
24536        } else {
24537            None
24538        }
24539    }
24540    #[inline]
24541    fn syntax(&self) -> &SyntaxNode {
24542        &self.syntax
24543    }
24544}
24545impl AstNode for IndexExpr {
24546    #[inline]
24547    fn can_cast(kind: SyntaxKind) -> bool {
24548        kind == SyntaxKind::INDEX_EXPR
24549    }
24550    #[inline]
24551    fn cast(syntax: SyntaxNode) -> Option<Self> {
24552        if Self::can_cast(syntax.kind()) {
24553            Some(Self { syntax })
24554        } else {
24555            None
24556        }
24557    }
24558    #[inline]
24559    fn syntax(&self) -> &SyntaxNode {
24560        &self.syntax
24561    }
24562}
24563impl AstNode for Inherit {
24564    #[inline]
24565    fn can_cast(kind: SyntaxKind) -> bool {
24566        kind == SyntaxKind::INHERIT
24567    }
24568    #[inline]
24569    fn cast(syntax: SyntaxNode) -> Option<Self> {
24570        if Self::can_cast(syntax.kind()) {
24571            Some(Self { syntax })
24572        } else {
24573            None
24574        }
24575    }
24576    #[inline]
24577    fn syntax(&self) -> &SyntaxNode {
24578        &self.syntax
24579    }
24580}
24581impl AstNode for InheritTable {
24582    #[inline]
24583    fn can_cast(kind: SyntaxKind) -> bool {
24584        kind == SyntaxKind::INHERIT_TABLE
24585    }
24586    #[inline]
24587    fn cast(syntax: SyntaxNode) -> Option<Self> {
24588        if Self::can_cast(syntax.kind()) {
24589            Some(Self { syntax })
24590        } else {
24591            None
24592        }
24593    }
24594    #[inline]
24595    fn syntax(&self) -> &SyntaxNode {
24596        &self.syntax
24597    }
24598}
24599impl AstNode for Inherits {
24600    #[inline]
24601    fn can_cast(kind: SyntaxKind) -> bool {
24602        kind == SyntaxKind::INHERITS
24603    }
24604    #[inline]
24605    fn cast(syntax: SyntaxNode) -> Option<Self> {
24606        if Self::can_cast(syntax.kind()) {
24607            Some(Self { syntax })
24608        } else {
24609            None
24610        }
24611    }
24612    #[inline]
24613    fn syntax(&self) -> &SyntaxNode {
24614        &self.syntax
24615    }
24616}
24617impl AstNode for InitiallyDeferredConstraintOption {
24618    #[inline]
24619    fn can_cast(kind: SyntaxKind) -> bool {
24620        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
24621    }
24622    #[inline]
24623    fn cast(syntax: SyntaxNode) -> Option<Self> {
24624        if Self::can_cast(syntax.kind()) {
24625            Some(Self { syntax })
24626        } else {
24627            None
24628        }
24629    }
24630    #[inline]
24631    fn syntax(&self) -> &SyntaxNode {
24632        &self.syntax
24633    }
24634}
24635impl AstNode for InitiallyImmediateConstraintOption {
24636    #[inline]
24637    fn can_cast(kind: SyntaxKind) -> bool {
24638        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
24639    }
24640    #[inline]
24641    fn cast(syntax: SyntaxNode) -> Option<Self> {
24642        if Self::can_cast(syntax.kind()) {
24643            Some(Self { syntax })
24644        } else {
24645            None
24646        }
24647    }
24648    #[inline]
24649    fn syntax(&self) -> &SyntaxNode {
24650        &self.syntax
24651    }
24652}
24653impl AstNode for Insert {
24654    #[inline]
24655    fn can_cast(kind: SyntaxKind) -> bool {
24656        kind == SyntaxKind::INSERT
24657    }
24658    #[inline]
24659    fn cast(syntax: SyntaxNode) -> Option<Self> {
24660        if Self::can_cast(syntax.kind()) {
24661            Some(Self { syntax })
24662        } else {
24663            None
24664        }
24665    }
24666    #[inline]
24667    fn syntax(&self) -> &SyntaxNode {
24668        &self.syntax
24669    }
24670}
24671impl AstNode for IntervalType {
24672    #[inline]
24673    fn can_cast(kind: SyntaxKind) -> bool {
24674        kind == SyntaxKind::INTERVAL_TYPE
24675    }
24676    #[inline]
24677    fn cast(syntax: SyntaxNode) -> Option<Self> {
24678        if Self::can_cast(syntax.kind()) {
24679            Some(Self { syntax })
24680        } else {
24681            None
24682        }
24683    }
24684    #[inline]
24685    fn syntax(&self) -> &SyntaxNode {
24686        &self.syntax
24687    }
24688}
24689impl AstNode for IntoClause {
24690    #[inline]
24691    fn can_cast(kind: SyntaxKind) -> bool {
24692        kind == SyntaxKind::INTO_CLAUSE
24693    }
24694    #[inline]
24695    fn cast(syntax: SyntaxNode) -> Option<Self> {
24696        if Self::can_cast(syntax.kind()) {
24697            Some(Self { syntax })
24698        } else {
24699            None
24700        }
24701    }
24702    #[inline]
24703    fn syntax(&self) -> &SyntaxNode {
24704        &self.syntax
24705    }
24706}
24707impl AstNode for IntoSchema {
24708    #[inline]
24709    fn can_cast(kind: SyntaxKind) -> bool {
24710        kind == SyntaxKind::INTO_SCHEMA
24711    }
24712    #[inline]
24713    fn cast(syntax: SyntaxNode) -> Option<Self> {
24714        if Self::can_cast(syntax.kind()) {
24715            Some(Self { syntax })
24716        } else {
24717            None
24718        }
24719    }
24720    #[inline]
24721    fn syntax(&self) -> &SyntaxNode {
24722        &self.syntax
24723    }
24724}
24725impl AstNode for IsDistinctFrom {
24726    #[inline]
24727    fn can_cast(kind: SyntaxKind) -> bool {
24728        kind == SyntaxKind::IS_DISTINCT_FROM
24729    }
24730    #[inline]
24731    fn cast(syntax: SyntaxNode) -> Option<Self> {
24732        if Self::can_cast(syntax.kind()) {
24733            Some(Self { syntax })
24734        } else {
24735            None
24736        }
24737    }
24738    #[inline]
24739    fn syntax(&self) -> &SyntaxNode {
24740        &self.syntax
24741    }
24742}
24743impl AstNode for IsJson {
24744    #[inline]
24745    fn can_cast(kind: SyntaxKind) -> bool {
24746        kind == SyntaxKind::IS_JSON
24747    }
24748    #[inline]
24749    fn cast(syntax: SyntaxNode) -> Option<Self> {
24750        if Self::can_cast(syntax.kind()) {
24751            Some(Self { syntax })
24752        } else {
24753            None
24754        }
24755    }
24756    #[inline]
24757    fn syntax(&self) -> &SyntaxNode {
24758        &self.syntax
24759    }
24760}
24761impl AstNode for IsJsonArray {
24762    #[inline]
24763    fn can_cast(kind: SyntaxKind) -> bool {
24764        kind == SyntaxKind::IS_JSON_ARRAY
24765    }
24766    #[inline]
24767    fn cast(syntax: SyntaxNode) -> Option<Self> {
24768        if Self::can_cast(syntax.kind()) {
24769            Some(Self { syntax })
24770        } else {
24771            None
24772        }
24773    }
24774    #[inline]
24775    fn syntax(&self) -> &SyntaxNode {
24776        &self.syntax
24777    }
24778}
24779impl AstNode for IsJsonObject {
24780    #[inline]
24781    fn can_cast(kind: SyntaxKind) -> bool {
24782        kind == SyntaxKind::IS_JSON_OBJECT
24783    }
24784    #[inline]
24785    fn cast(syntax: SyntaxNode) -> Option<Self> {
24786        if Self::can_cast(syntax.kind()) {
24787            Some(Self { syntax })
24788        } else {
24789            None
24790        }
24791    }
24792    #[inline]
24793    fn syntax(&self) -> &SyntaxNode {
24794        &self.syntax
24795    }
24796}
24797impl AstNode for IsJsonScalar {
24798    #[inline]
24799    fn can_cast(kind: SyntaxKind) -> bool {
24800        kind == SyntaxKind::IS_JSON_SCALAR
24801    }
24802    #[inline]
24803    fn cast(syntax: SyntaxNode) -> Option<Self> {
24804        if Self::can_cast(syntax.kind()) {
24805            Some(Self { syntax })
24806        } else {
24807            None
24808        }
24809    }
24810    #[inline]
24811    fn syntax(&self) -> &SyntaxNode {
24812        &self.syntax
24813    }
24814}
24815impl AstNode for IsJsonValue {
24816    #[inline]
24817    fn can_cast(kind: SyntaxKind) -> bool {
24818        kind == SyntaxKind::IS_JSON_VALUE
24819    }
24820    #[inline]
24821    fn cast(syntax: SyntaxNode) -> Option<Self> {
24822        if Self::can_cast(syntax.kind()) {
24823            Some(Self { syntax })
24824        } else {
24825            None
24826        }
24827    }
24828    #[inline]
24829    fn syntax(&self) -> &SyntaxNode {
24830        &self.syntax
24831    }
24832}
24833impl AstNode for IsLabel {
24834    #[inline]
24835    fn can_cast(kind: SyntaxKind) -> bool {
24836        kind == SyntaxKind::IS_LABEL
24837    }
24838    #[inline]
24839    fn cast(syntax: SyntaxNode) -> Option<Self> {
24840        if Self::can_cast(syntax.kind()) {
24841            Some(Self { syntax })
24842        } else {
24843            None
24844        }
24845    }
24846    #[inline]
24847    fn syntax(&self) -> &SyntaxNode {
24848        &self.syntax
24849    }
24850}
24851impl AstNode for IsNormalized {
24852    #[inline]
24853    fn can_cast(kind: SyntaxKind) -> bool {
24854        kind == SyntaxKind::IS_NORMALIZED
24855    }
24856    #[inline]
24857    fn cast(syntax: SyntaxNode) -> Option<Self> {
24858        if Self::can_cast(syntax.kind()) {
24859            Some(Self { syntax })
24860        } else {
24861            None
24862        }
24863    }
24864    #[inline]
24865    fn syntax(&self) -> &SyntaxNode {
24866        &self.syntax
24867    }
24868}
24869impl AstNode for IsNot {
24870    #[inline]
24871    fn can_cast(kind: SyntaxKind) -> bool {
24872        kind == SyntaxKind::IS_NOT
24873    }
24874    #[inline]
24875    fn cast(syntax: SyntaxNode) -> Option<Self> {
24876        if Self::can_cast(syntax.kind()) {
24877            Some(Self { syntax })
24878        } else {
24879            None
24880        }
24881    }
24882    #[inline]
24883    fn syntax(&self) -> &SyntaxNode {
24884        &self.syntax
24885    }
24886}
24887impl AstNode for IsNotDistinctFrom {
24888    #[inline]
24889    fn can_cast(kind: SyntaxKind) -> bool {
24890        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
24891    }
24892    #[inline]
24893    fn cast(syntax: SyntaxNode) -> Option<Self> {
24894        if Self::can_cast(syntax.kind()) {
24895            Some(Self { syntax })
24896        } else {
24897            None
24898        }
24899    }
24900    #[inline]
24901    fn syntax(&self) -> &SyntaxNode {
24902        &self.syntax
24903    }
24904}
24905impl AstNode for IsNotJson {
24906    #[inline]
24907    fn can_cast(kind: SyntaxKind) -> bool {
24908        kind == SyntaxKind::IS_NOT_JSON
24909    }
24910    #[inline]
24911    fn cast(syntax: SyntaxNode) -> Option<Self> {
24912        if Self::can_cast(syntax.kind()) {
24913            Some(Self { syntax })
24914        } else {
24915            None
24916        }
24917    }
24918    #[inline]
24919    fn syntax(&self) -> &SyntaxNode {
24920        &self.syntax
24921    }
24922}
24923impl AstNode for IsNotJsonArray {
24924    #[inline]
24925    fn can_cast(kind: SyntaxKind) -> bool {
24926        kind == SyntaxKind::IS_NOT_JSON_ARRAY
24927    }
24928    #[inline]
24929    fn cast(syntax: SyntaxNode) -> Option<Self> {
24930        if Self::can_cast(syntax.kind()) {
24931            Some(Self { syntax })
24932        } else {
24933            None
24934        }
24935    }
24936    #[inline]
24937    fn syntax(&self) -> &SyntaxNode {
24938        &self.syntax
24939    }
24940}
24941impl AstNode for IsNotJsonObject {
24942    #[inline]
24943    fn can_cast(kind: SyntaxKind) -> bool {
24944        kind == SyntaxKind::IS_NOT_JSON_OBJECT
24945    }
24946    #[inline]
24947    fn cast(syntax: SyntaxNode) -> Option<Self> {
24948        if Self::can_cast(syntax.kind()) {
24949            Some(Self { syntax })
24950        } else {
24951            None
24952        }
24953    }
24954    #[inline]
24955    fn syntax(&self) -> &SyntaxNode {
24956        &self.syntax
24957    }
24958}
24959impl AstNode for IsNotJsonScalar {
24960    #[inline]
24961    fn can_cast(kind: SyntaxKind) -> bool {
24962        kind == SyntaxKind::IS_NOT_JSON_SCALAR
24963    }
24964    #[inline]
24965    fn cast(syntax: SyntaxNode) -> Option<Self> {
24966        if Self::can_cast(syntax.kind()) {
24967            Some(Self { syntax })
24968        } else {
24969            None
24970        }
24971    }
24972    #[inline]
24973    fn syntax(&self) -> &SyntaxNode {
24974        &self.syntax
24975    }
24976}
24977impl AstNode for IsNotJsonValue {
24978    #[inline]
24979    fn can_cast(kind: SyntaxKind) -> bool {
24980        kind == SyntaxKind::IS_NOT_JSON_VALUE
24981    }
24982    #[inline]
24983    fn cast(syntax: SyntaxNode) -> Option<Self> {
24984        if Self::can_cast(syntax.kind()) {
24985            Some(Self { syntax })
24986        } else {
24987            None
24988        }
24989    }
24990    #[inline]
24991    fn syntax(&self) -> &SyntaxNode {
24992        &self.syntax
24993    }
24994}
24995impl AstNode for IsNotNormalized {
24996    #[inline]
24997    fn can_cast(kind: SyntaxKind) -> bool {
24998        kind == SyntaxKind::IS_NOT_NORMALIZED
24999    }
25000    #[inline]
25001    fn cast(syntax: SyntaxNode) -> Option<Self> {
25002        if Self::can_cast(syntax.kind()) {
25003            Some(Self { syntax })
25004        } else {
25005            None
25006        }
25007    }
25008    #[inline]
25009    fn syntax(&self) -> &SyntaxNode {
25010        &self.syntax
25011    }
25012}
25013impl AstNode for Join {
25014    #[inline]
25015    fn can_cast(kind: SyntaxKind) -> bool {
25016        kind == SyntaxKind::JOIN
25017    }
25018    #[inline]
25019    fn cast(syntax: SyntaxNode) -> Option<Self> {
25020        if Self::can_cast(syntax.kind()) {
25021            Some(Self { syntax })
25022        } else {
25023            None
25024        }
25025    }
25026    #[inline]
25027    fn syntax(&self) -> &SyntaxNode {
25028        &self.syntax
25029    }
25030}
25031impl AstNode for JoinCross {
25032    #[inline]
25033    fn can_cast(kind: SyntaxKind) -> bool {
25034        kind == SyntaxKind::JOIN_CROSS
25035    }
25036    #[inline]
25037    fn cast(syntax: SyntaxNode) -> Option<Self> {
25038        if Self::can_cast(syntax.kind()) {
25039            Some(Self { syntax })
25040        } else {
25041            None
25042        }
25043    }
25044    #[inline]
25045    fn syntax(&self) -> &SyntaxNode {
25046        &self.syntax
25047    }
25048}
25049impl AstNode for JoinExpr {
25050    #[inline]
25051    fn can_cast(kind: SyntaxKind) -> bool {
25052        kind == SyntaxKind::JOIN_EXPR
25053    }
25054    #[inline]
25055    fn cast(syntax: SyntaxNode) -> Option<Self> {
25056        if Self::can_cast(syntax.kind()) {
25057            Some(Self { syntax })
25058        } else {
25059            None
25060        }
25061    }
25062    #[inline]
25063    fn syntax(&self) -> &SyntaxNode {
25064        &self.syntax
25065    }
25066}
25067impl AstNode for JoinFull {
25068    #[inline]
25069    fn can_cast(kind: SyntaxKind) -> bool {
25070        kind == SyntaxKind::JOIN_FULL
25071    }
25072    #[inline]
25073    fn cast(syntax: SyntaxNode) -> Option<Self> {
25074        if Self::can_cast(syntax.kind()) {
25075            Some(Self { syntax })
25076        } else {
25077            None
25078        }
25079    }
25080    #[inline]
25081    fn syntax(&self) -> &SyntaxNode {
25082        &self.syntax
25083    }
25084}
25085impl AstNode for JoinInner {
25086    #[inline]
25087    fn can_cast(kind: SyntaxKind) -> bool {
25088        kind == SyntaxKind::JOIN_INNER
25089    }
25090    #[inline]
25091    fn cast(syntax: SyntaxNode) -> Option<Self> {
25092        if Self::can_cast(syntax.kind()) {
25093            Some(Self { syntax })
25094        } else {
25095            None
25096        }
25097    }
25098    #[inline]
25099    fn syntax(&self) -> &SyntaxNode {
25100        &self.syntax
25101    }
25102}
25103impl AstNode for JoinLeft {
25104    #[inline]
25105    fn can_cast(kind: SyntaxKind) -> bool {
25106        kind == SyntaxKind::JOIN_LEFT
25107    }
25108    #[inline]
25109    fn cast(syntax: SyntaxNode) -> Option<Self> {
25110        if Self::can_cast(syntax.kind()) {
25111            Some(Self { syntax })
25112        } else {
25113            None
25114        }
25115    }
25116    #[inline]
25117    fn syntax(&self) -> &SyntaxNode {
25118        &self.syntax
25119    }
25120}
25121impl AstNode for JoinRight {
25122    #[inline]
25123    fn can_cast(kind: SyntaxKind) -> bool {
25124        kind == SyntaxKind::JOIN_RIGHT
25125    }
25126    #[inline]
25127    fn cast(syntax: SyntaxNode) -> Option<Self> {
25128        if Self::can_cast(syntax.kind()) {
25129            Some(Self { syntax })
25130        } else {
25131            None
25132        }
25133    }
25134    #[inline]
25135    fn syntax(&self) -> &SyntaxNode {
25136        &self.syntax
25137    }
25138}
25139impl AstNode for JoinUsingClause {
25140    #[inline]
25141    fn can_cast(kind: SyntaxKind) -> bool {
25142        kind == SyntaxKind::JOIN_USING_CLAUSE
25143    }
25144    #[inline]
25145    fn cast(syntax: SyntaxNode) -> Option<Self> {
25146        if Self::can_cast(syntax.kind()) {
25147            Some(Self { syntax })
25148        } else {
25149            None
25150        }
25151    }
25152    #[inline]
25153    fn syntax(&self) -> &SyntaxNode {
25154        &self.syntax
25155    }
25156}
25157impl AstNode for JsonArrayAggFn {
25158    #[inline]
25159    fn can_cast(kind: SyntaxKind) -> bool {
25160        kind == SyntaxKind::JSON_ARRAY_AGG_FN
25161    }
25162    #[inline]
25163    fn cast(syntax: SyntaxNode) -> Option<Self> {
25164        if Self::can_cast(syntax.kind()) {
25165            Some(Self { syntax })
25166        } else {
25167            None
25168        }
25169    }
25170    #[inline]
25171    fn syntax(&self) -> &SyntaxNode {
25172        &self.syntax
25173    }
25174}
25175impl AstNode for JsonArrayFn {
25176    #[inline]
25177    fn can_cast(kind: SyntaxKind) -> bool {
25178        kind == SyntaxKind::JSON_ARRAY_FN
25179    }
25180    #[inline]
25181    fn cast(syntax: SyntaxNode) -> Option<Self> {
25182        if Self::can_cast(syntax.kind()) {
25183            Some(Self { syntax })
25184        } else {
25185            None
25186        }
25187    }
25188    #[inline]
25189    fn syntax(&self) -> &SyntaxNode {
25190        &self.syntax
25191    }
25192}
25193impl AstNode for JsonBehaviorClause {
25194    #[inline]
25195    fn can_cast(kind: SyntaxKind) -> bool {
25196        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
25197    }
25198    #[inline]
25199    fn cast(syntax: SyntaxNode) -> Option<Self> {
25200        if Self::can_cast(syntax.kind()) {
25201            Some(Self { syntax })
25202        } else {
25203            None
25204        }
25205    }
25206    #[inline]
25207    fn syntax(&self) -> &SyntaxNode {
25208        &self.syntax
25209    }
25210}
25211impl AstNode for JsonBehaviorDefault {
25212    #[inline]
25213    fn can_cast(kind: SyntaxKind) -> bool {
25214        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
25215    }
25216    #[inline]
25217    fn cast(syntax: SyntaxNode) -> Option<Self> {
25218        if Self::can_cast(syntax.kind()) {
25219            Some(Self { syntax })
25220        } else {
25221            None
25222        }
25223    }
25224    #[inline]
25225    fn syntax(&self) -> &SyntaxNode {
25226        &self.syntax
25227    }
25228}
25229impl AstNode for JsonBehaviorEmptyArray {
25230    #[inline]
25231    fn can_cast(kind: SyntaxKind) -> bool {
25232        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
25233    }
25234    #[inline]
25235    fn cast(syntax: SyntaxNode) -> Option<Self> {
25236        if Self::can_cast(syntax.kind()) {
25237            Some(Self { syntax })
25238        } else {
25239            None
25240        }
25241    }
25242    #[inline]
25243    fn syntax(&self) -> &SyntaxNode {
25244        &self.syntax
25245    }
25246}
25247impl AstNode for JsonBehaviorEmptyObject {
25248    #[inline]
25249    fn can_cast(kind: SyntaxKind) -> bool {
25250        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
25251    }
25252    #[inline]
25253    fn cast(syntax: SyntaxNode) -> Option<Self> {
25254        if Self::can_cast(syntax.kind()) {
25255            Some(Self { syntax })
25256        } else {
25257            None
25258        }
25259    }
25260    #[inline]
25261    fn syntax(&self) -> &SyntaxNode {
25262        &self.syntax
25263    }
25264}
25265impl AstNode for JsonBehaviorError {
25266    #[inline]
25267    fn can_cast(kind: SyntaxKind) -> bool {
25268        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
25269    }
25270    #[inline]
25271    fn cast(syntax: SyntaxNode) -> Option<Self> {
25272        if Self::can_cast(syntax.kind()) {
25273            Some(Self { syntax })
25274        } else {
25275            None
25276        }
25277    }
25278    #[inline]
25279    fn syntax(&self) -> &SyntaxNode {
25280        &self.syntax
25281    }
25282}
25283impl AstNode for JsonBehaviorFalse {
25284    #[inline]
25285    fn can_cast(kind: SyntaxKind) -> bool {
25286        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
25287    }
25288    #[inline]
25289    fn cast(syntax: SyntaxNode) -> Option<Self> {
25290        if Self::can_cast(syntax.kind()) {
25291            Some(Self { syntax })
25292        } else {
25293            None
25294        }
25295    }
25296    #[inline]
25297    fn syntax(&self) -> &SyntaxNode {
25298        &self.syntax
25299    }
25300}
25301impl AstNode for JsonBehaviorNull {
25302    #[inline]
25303    fn can_cast(kind: SyntaxKind) -> bool {
25304        kind == SyntaxKind::JSON_BEHAVIOR_NULL
25305    }
25306    #[inline]
25307    fn cast(syntax: SyntaxNode) -> Option<Self> {
25308        if Self::can_cast(syntax.kind()) {
25309            Some(Self { syntax })
25310        } else {
25311            None
25312        }
25313    }
25314    #[inline]
25315    fn syntax(&self) -> &SyntaxNode {
25316        &self.syntax
25317    }
25318}
25319impl AstNode for JsonBehaviorTrue {
25320    #[inline]
25321    fn can_cast(kind: SyntaxKind) -> bool {
25322        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
25323    }
25324    #[inline]
25325    fn cast(syntax: SyntaxNode) -> Option<Self> {
25326        if Self::can_cast(syntax.kind()) {
25327            Some(Self { syntax })
25328        } else {
25329            None
25330        }
25331    }
25332    #[inline]
25333    fn syntax(&self) -> &SyntaxNode {
25334        &self.syntax
25335    }
25336}
25337impl AstNode for JsonBehaviorUnknown {
25338    #[inline]
25339    fn can_cast(kind: SyntaxKind) -> bool {
25340        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
25341    }
25342    #[inline]
25343    fn cast(syntax: SyntaxNode) -> Option<Self> {
25344        if Self::can_cast(syntax.kind()) {
25345            Some(Self { syntax })
25346        } else {
25347            None
25348        }
25349    }
25350    #[inline]
25351    fn syntax(&self) -> &SyntaxNode {
25352        &self.syntax
25353    }
25354}
25355impl AstNode for JsonEncodingClause {
25356    #[inline]
25357    fn can_cast(kind: SyntaxKind) -> bool {
25358        kind == SyntaxKind::JSON_ENCODING_CLAUSE
25359    }
25360    #[inline]
25361    fn cast(syntax: SyntaxNode) -> Option<Self> {
25362        if Self::can_cast(syntax.kind()) {
25363            Some(Self { syntax })
25364        } else {
25365            None
25366        }
25367    }
25368    #[inline]
25369    fn syntax(&self) -> &SyntaxNode {
25370        &self.syntax
25371    }
25372}
25373impl AstNode for JsonExistsFn {
25374    #[inline]
25375    fn can_cast(kind: SyntaxKind) -> bool {
25376        kind == SyntaxKind::JSON_EXISTS_FN
25377    }
25378    #[inline]
25379    fn cast(syntax: SyntaxNode) -> Option<Self> {
25380        if Self::can_cast(syntax.kind()) {
25381            Some(Self { syntax })
25382        } else {
25383            None
25384        }
25385    }
25386    #[inline]
25387    fn syntax(&self) -> &SyntaxNode {
25388        &self.syntax
25389    }
25390}
25391impl AstNode for JsonExprFormat {
25392    #[inline]
25393    fn can_cast(kind: SyntaxKind) -> bool {
25394        kind == SyntaxKind::JSON_EXPR_FORMAT
25395    }
25396    #[inline]
25397    fn cast(syntax: SyntaxNode) -> Option<Self> {
25398        if Self::can_cast(syntax.kind()) {
25399            Some(Self { syntax })
25400        } else {
25401            None
25402        }
25403    }
25404    #[inline]
25405    fn syntax(&self) -> &SyntaxNode {
25406        &self.syntax
25407    }
25408}
25409impl AstNode for JsonFn {
25410    #[inline]
25411    fn can_cast(kind: SyntaxKind) -> bool {
25412        kind == SyntaxKind::JSON_FN
25413    }
25414    #[inline]
25415    fn cast(syntax: SyntaxNode) -> Option<Self> {
25416        if Self::can_cast(syntax.kind()) {
25417            Some(Self { syntax })
25418        } else {
25419            None
25420        }
25421    }
25422    #[inline]
25423    fn syntax(&self) -> &SyntaxNode {
25424        &self.syntax
25425    }
25426}
25427impl AstNode for JsonFormatClause {
25428    #[inline]
25429    fn can_cast(kind: SyntaxKind) -> bool {
25430        kind == SyntaxKind::JSON_FORMAT_CLAUSE
25431    }
25432    #[inline]
25433    fn cast(syntax: SyntaxNode) -> Option<Self> {
25434        if Self::can_cast(syntax.kind()) {
25435            Some(Self { syntax })
25436        } else {
25437            None
25438        }
25439    }
25440    #[inline]
25441    fn syntax(&self) -> &SyntaxNode {
25442        &self.syntax
25443    }
25444}
25445impl AstNode for JsonKeyValue {
25446    #[inline]
25447    fn can_cast(kind: SyntaxKind) -> bool {
25448        kind == SyntaxKind::JSON_KEY_VALUE
25449    }
25450    #[inline]
25451    fn cast(syntax: SyntaxNode) -> Option<Self> {
25452        if Self::can_cast(syntax.kind()) {
25453            Some(Self { syntax })
25454        } else {
25455            None
25456        }
25457    }
25458    #[inline]
25459    fn syntax(&self) -> &SyntaxNode {
25460        &self.syntax
25461    }
25462}
25463impl AstNode for JsonKeysUniqueClause {
25464    #[inline]
25465    fn can_cast(kind: SyntaxKind) -> bool {
25466        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
25467    }
25468    #[inline]
25469    fn cast(syntax: SyntaxNode) -> Option<Self> {
25470        if Self::can_cast(syntax.kind()) {
25471            Some(Self { syntax })
25472        } else {
25473            None
25474        }
25475    }
25476    #[inline]
25477    fn syntax(&self) -> &SyntaxNode {
25478        &self.syntax
25479    }
25480}
25481impl AstNode for JsonNullClause {
25482    #[inline]
25483    fn can_cast(kind: SyntaxKind) -> bool {
25484        kind == SyntaxKind::JSON_NULL_CLAUSE
25485    }
25486    #[inline]
25487    fn cast(syntax: SyntaxNode) -> Option<Self> {
25488        if Self::can_cast(syntax.kind()) {
25489            Some(Self { syntax })
25490        } else {
25491            None
25492        }
25493    }
25494    #[inline]
25495    fn syntax(&self) -> &SyntaxNode {
25496        &self.syntax
25497    }
25498}
25499impl AstNode for JsonObjectAggFn {
25500    #[inline]
25501    fn can_cast(kind: SyntaxKind) -> bool {
25502        kind == SyntaxKind::JSON_OBJECT_AGG_FN
25503    }
25504    #[inline]
25505    fn cast(syntax: SyntaxNode) -> Option<Self> {
25506        if Self::can_cast(syntax.kind()) {
25507            Some(Self { syntax })
25508        } else {
25509            None
25510        }
25511    }
25512    #[inline]
25513    fn syntax(&self) -> &SyntaxNode {
25514        &self.syntax
25515    }
25516}
25517impl AstNode for JsonObjectFn {
25518    #[inline]
25519    fn can_cast(kind: SyntaxKind) -> bool {
25520        kind == SyntaxKind::JSON_OBJECT_FN
25521    }
25522    #[inline]
25523    fn cast(syntax: SyntaxNode) -> Option<Self> {
25524        if Self::can_cast(syntax.kind()) {
25525            Some(Self { syntax })
25526        } else {
25527            None
25528        }
25529    }
25530    #[inline]
25531    fn syntax(&self) -> &SyntaxNode {
25532        &self.syntax
25533    }
25534}
25535impl AstNode for JsonOnEmptyClause {
25536    #[inline]
25537    fn can_cast(kind: SyntaxKind) -> bool {
25538        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
25539    }
25540    #[inline]
25541    fn cast(syntax: SyntaxNode) -> Option<Self> {
25542        if Self::can_cast(syntax.kind()) {
25543            Some(Self { syntax })
25544        } else {
25545            None
25546        }
25547    }
25548    #[inline]
25549    fn syntax(&self) -> &SyntaxNode {
25550        &self.syntax
25551    }
25552}
25553impl AstNode for JsonOnErrorClause {
25554    #[inline]
25555    fn can_cast(kind: SyntaxKind) -> bool {
25556        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
25557    }
25558    #[inline]
25559    fn cast(syntax: SyntaxNode) -> Option<Self> {
25560        if Self::can_cast(syntax.kind()) {
25561            Some(Self { syntax })
25562        } else {
25563            None
25564        }
25565    }
25566    #[inline]
25567    fn syntax(&self) -> &SyntaxNode {
25568        &self.syntax
25569    }
25570}
25571impl AstNode for JsonPassingArg {
25572    #[inline]
25573    fn can_cast(kind: SyntaxKind) -> bool {
25574        kind == SyntaxKind::JSON_PASSING_ARG
25575    }
25576    #[inline]
25577    fn cast(syntax: SyntaxNode) -> Option<Self> {
25578        if Self::can_cast(syntax.kind()) {
25579            Some(Self { syntax })
25580        } else {
25581            None
25582        }
25583    }
25584    #[inline]
25585    fn syntax(&self) -> &SyntaxNode {
25586        &self.syntax
25587    }
25588}
25589impl AstNode for JsonPassingClause {
25590    #[inline]
25591    fn can_cast(kind: SyntaxKind) -> bool {
25592        kind == SyntaxKind::JSON_PASSING_CLAUSE
25593    }
25594    #[inline]
25595    fn cast(syntax: SyntaxNode) -> Option<Self> {
25596        if Self::can_cast(syntax.kind()) {
25597            Some(Self { syntax })
25598        } else {
25599            None
25600        }
25601    }
25602    #[inline]
25603    fn syntax(&self) -> &SyntaxNode {
25604        &self.syntax
25605    }
25606}
25607impl AstNode for JsonPathClause {
25608    #[inline]
25609    fn can_cast(kind: SyntaxKind) -> bool {
25610        kind == SyntaxKind::JSON_PATH_CLAUSE
25611    }
25612    #[inline]
25613    fn cast(syntax: SyntaxNode) -> Option<Self> {
25614        if Self::can_cast(syntax.kind()) {
25615            Some(Self { syntax })
25616        } else {
25617            None
25618        }
25619    }
25620    #[inline]
25621    fn syntax(&self) -> &SyntaxNode {
25622        &self.syntax
25623    }
25624}
25625impl AstNode for JsonQueryFn {
25626    #[inline]
25627    fn can_cast(kind: SyntaxKind) -> bool {
25628        kind == SyntaxKind::JSON_QUERY_FN
25629    }
25630    #[inline]
25631    fn cast(syntax: SyntaxNode) -> Option<Self> {
25632        if Self::can_cast(syntax.kind()) {
25633            Some(Self { syntax })
25634        } else {
25635            None
25636        }
25637    }
25638    #[inline]
25639    fn syntax(&self) -> &SyntaxNode {
25640        &self.syntax
25641    }
25642}
25643impl AstNode for JsonQuotesClause {
25644    #[inline]
25645    fn can_cast(kind: SyntaxKind) -> bool {
25646        kind == SyntaxKind::JSON_QUOTES_CLAUSE
25647    }
25648    #[inline]
25649    fn cast(syntax: SyntaxNode) -> Option<Self> {
25650        if Self::can_cast(syntax.kind()) {
25651            Some(Self { syntax })
25652        } else {
25653            None
25654        }
25655    }
25656    #[inline]
25657    fn syntax(&self) -> &SyntaxNode {
25658        &self.syntax
25659    }
25660}
25661impl AstNode for JsonReturningClause {
25662    #[inline]
25663    fn can_cast(kind: SyntaxKind) -> bool {
25664        kind == SyntaxKind::JSON_RETURNING_CLAUSE
25665    }
25666    #[inline]
25667    fn cast(syntax: SyntaxNode) -> Option<Self> {
25668        if Self::can_cast(syntax.kind()) {
25669            Some(Self { syntax })
25670        } else {
25671            None
25672        }
25673    }
25674    #[inline]
25675    fn syntax(&self) -> &SyntaxNode {
25676        &self.syntax
25677    }
25678}
25679impl AstNode for JsonScalarFn {
25680    #[inline]
25681    fn can_cast(kind: SyntaxKind) -> bool {
25682        kind == SyntaxKind::JSON_SCALAR_FN
25683    }
25684    #[inline]
25685    fn cast(syntax: SyntaxNode) -> Option<Self> {
25686        if Self::can_cast(syntax.kind()) {
25687            Some(Self { syntax })
25688        } else {
25689            None
25690        }
25691    }
25692    #[inline]
25693    fn syntax(&self) -> &SyntaxNode {
25694        &self.syntax
25695    }
25696}
25697impl AstNode for JsonSelectFormat {
25698    #[inline]
25699    fn can_cast(kind: SyntaxKind) -> bool {
25700        kind == SyntaxKind::JSON_SELECT_FORMAT
25701    }
25702    #[inline]
25703    fn cast(syntax: SyntaxNode) -> Option<Self> {
25704        if Self::can_cast(syntax.kind()) {
25705            Some(Self { syntax })
25706        } else {
25707            None
25708        }
25709    }
25710    #[inline]
25711    fn syntax(&self) -> &SyntaxNode {
25712        &self.syntax
25713    }
25714}
25715impl AstNode for JsonSerializeFn {
25716    #[inline]
25717    fn can_cast(kind: SyntaxKind) -> bool {
25718        kind == SyntaxKind::JSON_SERIALIZE_FN
25719    }
25720    #[inline]
25721    fn cast(syntax: SyntaxNode) -> Option<Self> {
25722        if Self::can_cast(syntax.kind()) {
25723            Some(Self { syntax })
25724        } else {
25725            None
25726        }
25727    }
25728    #[inline]
25729    fn syntax(&self) -> &SyntaxNode {
25730        &self.syntax
25731    }
25732}
25733impl AstNode for JsonTable {
25734    #[inline]
25735    fn can_cast(kind: SyntaxKind) -> bool {
25736        kind == SyntaxKind::JSON_TABLE
25737    }
25738    #[inline]
25739    fn cast(syntax: SyntaxNode) -> Option<Self> {
25740        if Self::can_cast(syntax.kind()) {
25741            Some(Self { syntax })
25742        } else {
25743            None
25744        }
25745    }
25746    #[inline]
25747    fn syntax(&self) -> &SyntaxNode {
25748        &self.syntax
25749    }
25750}
25751impl AstNode for JsonTableColumn {
25752    #[inline]
25753    fn can_cast(kind: SyntaxKind) -> bool {
25754        kind == SyntaxKind::JSON_TABLE_COLUMN
25755    }
25756    #[inline]
25757    fn cast(syntax: SyntaxNode) -> Option<Self> {
25758        if Self::can_cast(syntax.kind()) {
25759            Some(Self { syntax })
25760        } else {
25761            None
25762        }
25763    }
25764    #[inline]
25765    fn syntax(&self) -> &SyntaxNode {
25766        &self.syntax
25767    }
25768}
25769impl AstNode for JsonTableColumnList {
25770    #[inline]
25771    fn can_cast(kind: SyntaxKind) -> bool {
25772        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
25773    }
25774    #[inline]
25775    fn cast(syntax: SyntaxNode) -> Option<Self> {
25776        if Self::can_cast(syntax.kind()) {
25777            Some(Self { syntax })
25778        } else {
25779            None
25780        }
25781    }
25782    #[inline]
25783    fn syntax(&self) -> &SyntaxNode {
25784        &self.syntax
25785    }
25786}
25787impl AstNode for JsonValueExpr {
25788    #[inline]
25789    fn can_cast(kind: SyntaxKind) -> bool {
25790        kind == SyntaxKind::JSON_VALUE_EXPR
25791    }
25792    #[inline]
25793    fn cast(syntax: SyntaxNode) -> Option<Self> {
25794        if Self::can_cast(syntax.kind()) {
25795            Some(Self { syntax })
25796        } else {
25797            None
25798        }
25799    }
25800    #[inline]
25801    fn syntax(&self) -> &SyntaxNode {
25802        &self.syntax
25803    }
25804}
25805impl AstNode for JsonValueFn {
25806    #[inline]
25807    fn can_cast(kind: SyntaxKind) -> bool {
25808        kind == SyntaxKind::JSON_VALUE_FN
25809    }
25810    #[inline]
25811    fn cast(syntax: SyntaxNode) -> Option<Self> {
25812        if Self::can_cast(syntax.kind()) {
25813            Some(Self { syntax })
25814        } else {
25815            None
25816        }
25817    }
25818    #[inline]
25819    fn syntax(&self) -> &SyntaxNode {
25820        &self.syntax
25821    }
25822}
25823impl AstNode for JsonWrapperBehaviorClause {
25824    #[inline]
25825    fn can_cast(kind: SyntaxKind) -> bool {
25826        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
25827    }
25828    #[inline]
25829    fn cast(syntax: SyntaxNode) -> Option<Self> {
25830        if Self::can_cast(syntax.kind()) {
25831            Some(Self { syntax })
25832        } else {
25833            None
25834        }
25835    }
25836    #[inline]
25837    fn syntax(&self) -> &SyntaxNode {
25838        &self.syntax
25839    }
25840}
25841impl AstNode for LabelAndProperties {
25842    #[inline]
25843    fn can_cast(kind: SyntaxKind) -> bool {
25844        kind == SyntaxKind::LABEL_AND_PROPERTIES
25845    }
25846    #[inline]
25847    fn cast(syntax: SyntaxNode) -> Option<Self> {
25848        if Self::can_cast(syntax.kind()) {
25849            Some(Self { syntax })
25850        } else {
25851            None
25852        }
25853    }
25854    #[inline]
25855    fn syntax(&self) -> &SyntaxNode {
25856        &self.syntax
25857    }
25858}
25859impl AstNode for LabelAndPropertiesList {
25860    #[inline]
25861    fn can_cast(kind: SyntaxKind) -> bool {
25862        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
25863    }
25864    #[inline]
25865    fn cast(syntax: SyntaxNode) -> Option<Self> {
25866        if Self::can_cast(syntax.kind()) {
25867            Some(Self { syntax })
25868        } else {
25869            None
25870        }
25871    }
25872    #[inline]
25873    fn syntax(&self) -> &SyntaxNode {
25874        &self.syntax
25875    }
25876}
25877impl AstNode for LanguageFuncOption {
25878    #[inline]
25879    fn can_cast(kind: SyntaxKind) -> bool {
25880        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
25881    }
25882    #[inline]
25883    fn cast(syntax: SyntaxNode) -> Option<Self> {
25884        if Self::can_cast(syntax.kind()) {
25885            Some(Self { syntax })
25886        } else {
25887            None
25888        }
25889    }
25890    #[inline]
25891    fn syntax(&self) -> &SyntaxNode {
25892        &self.syntax
25893    }
25894}
25895impl AstNode for LeakproofFuncOption {
25896    #[inline]
25897    fn can_cast(kind: SyntaxKind) -> bool {
25898        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
25899    }
25900    #[inline]
25901    fn cast(syntax: SyntaxNode) -> Option<Self> {
25902        if Self::can_cast(syntax.kind()) {
25903            Some(Self { syntax })
25904        } else {
25905            None
25906        }
25907    }
25908    #[inline]
25909    fn syntax(&self) -> &SyntaxNode {
25910        &self.syntax
25911    }
25912}
25913impl AstNode for LikeClause {
25914    #[inline]
25915    fn can_cast(kind: SyntaxKind) -> bool {
25916        kind == SyntaxKind::LIKE_CLAUSE
25917    }
25918    #[inline]
25919    fn cast(syntax: SyntaxNode) -> Option<Self> {
25920        if Self::can_cast(syntax.kind()) {
25921            Some(Self { syntax })
25922        } else {
25923            None
25924        }
25925    }
25926    #[inline]
25927    fn syntax(&self) -> &SyntaxNode {
25928        &self.syntax
25929    }
25930}
25931impl AstNode for LikeOption {
25932    #[inline]
25933    fn can_cast(kind: SyntaxKind) -> bool {
25934        kind == SyntaxKind::LIKE_OPTION
25935    }
25936    #[inline]
25937    fn cast(syntax: SyntaxNode) -> Option<Self> {
25938        if Self::can_cast(syntax.kind()) {
25939            Some(Self { syntax })
25940        } else {
25941            None
25942        }
25943    }
25944    #[inline]
25945    fn syntax(&self) -> &SyntaxNode {
25946        &self.syntax
25947    }
25948}
25949impl AstNode for LimitClause {
25950    #[inline]
25951    fn can_cast(kind: SyntaxKind) -> bool {
25952        kind == SyntaxKind::LIMIT_CLAUSE
25953    }
25954    #[inline]
25955    fn cast(syntax: SyntaxNode) -> Option<Self> {
25956        if Self::can_cast(syntax.kind()) {
25957            Some(Self { syntax })
25958        } else {
25959            None
25960        }
25961    }
25962    #[inline]
25963    fn syntax(&self) -> &SyntaxNode {
25964        &self.syntax
25965    }
25966}
25967impl AstNode for LimitToTables {
25968    #[inline]
25969    fn can_cast(kind: SyntaxKind) -> bool {
25970        kind == SyntaxKind::LIMIT_TO_TABLES
25971    }
25972    #[inline]
25973    fn cast(syntax: SyntaxNode) -> Option<Self> {
25974        if Self::can_cast(syntax.kind()) {
25975            Some(Self { syntax })
25976        } else {
25977            None
25978        }
25979    }
25980    #[inline]
25981    fn syntax(&self) -> &SyntaxNode {
25982        &self.syntax
25983    }
25984}
25985impl AstNode for Listen {
25986    #[inline]
25987    fn can_cast(kind: SyntaxKind) -> bool {
25988        kind == SyntaxKind::LISTEN
25989    }
25990    #[inline]
25991    fn cast(syntax: SyntaxNode) -> Option<Self> {
25992        if Self::can_cast(syntax.kind()) {
25993            Some(Self { syntax })
25994        } else {
25995            None
25996        }
25997    }
25998    #[inline]
25999    fn syntax(&self) -> &SyntaxNode {
26000        &self.syntax
26001    }
26002}
26003impl AstNode for Literal {
26004    #[inline]
26005    fn can_cast(kind: SyntaxKind) -> bool {
26006        kind == SyntaxKind::LITERAL
26007    }
26008    #[inline]
26009    fn cast(syntax: SyntaxNode) -> Option<Self> {
26010        if Self::can_cast(syntax.kind()) {
26011            Some(Self { syntax })
26012        } else {
26013            None
26014        }
26015    }
26016    #[inline]
26017    fn syntax(&self) -> &SyntaxNode {
26018        &self.syntax
26019    }
26020}
26021impl AstNode for Load {
26022    #[inline]
26023    fn can_cast(kind: SyntaxKind) -> bool {
26024        kind == SyntaxKind::LOAD
26025    }
26026    #[inline]
26027    fn cast(syntax: SyntaxNode) -> Option<Self> {
26028        if Self::can_cast(syntax.kind()) {
26029            Some(Self { syntax })
26030        } else {
26031            None
26032        }
26033    }
26034    #[inline]
26035    fn syntax(&self) -> &SyntaxNode {
26036        &self.syntax
26037    }
26038}
26039impl AstNode for Lock {
26040    #[inline]
26041    fn can_cast(kind: SyntaxKind) -> bool {
26042        kind == SyntaxKind::LOCK
26043    }
26044    #[inline]
26045    fn cast(syntax: SyntaxNode) -> Option<Self> {
26046        if Self::can_cast(syntax.kind()) {
26047            Some(Self { syntax })
26048        } else {
26049            None
26050        }
26051    }
26052    #[inline]
26053    fn syntax(&self) -> &SyntaxNode {
26054        &self.syntax
26055    }
26056}
26057impl AstNode for LockingClause {
26058    #[inline]
26059    fn can_cast(kind: SyntaxKind) -> bool {
26060        kind == SyntaxKind::LOCKING_CLAUSE
26061    }
26062    #[inline]
26063    fn cast(syntax: SyntaxNode) -> Option<Self> {
26064        if Self::can_cast(syntax.kind()) {
26065            Some(Self { syntax })
26066        } else {
26067            None
26068        }
26069    }
26070    #[inline]
26071    fn syntax(&self) -> &SyntaxNode {
26072        &self.syntax
26073    }
26074}
26075impl AstNode for Lteq {
26076    #[inline]
26077    fn can_cast(kind: SyntaxKind) -> bool {
26078        kind == SyntaxKind::LTEQ
26079    }
26080    #[inline]
26081    fn cast(syntax: SyntaxNode) -> Option<Self> {
26082        if Self::can_cast(syntax.kind()) {
26083            Some(Self { syntax })
26084        } else {
26085            None
26086        }
26087    }
26088    #[inline]
26089    fn syntax(&self) -> &SyntaxNode {
26090        &self.syntax
26091    }
26092}
26093impl AstNode for MatchFull {
26094    #[inline]
26095    fn can_cast(kind: SyntaxKind) -> bool {
26096        kind == SyntaxKind::MATCH_FULL
26097    }
26098    #[inline]
26099    fn cast(syntax: SyntaxNode) -> Option<Self> {
26100        if Self::can_cast(syntax.kind()) {
26101            Some(Self { syntax })
26102        } else {
26103            None
26104        }
26105    }
26106    #[inline]
26107    fn syntax(&self) -> &SyntaxNode {
26108        &self.syntax
26109    }
26110}
26111impl AstNode for MatchPartial {
26112    #[inline]
26113    fn can_cast(kind: SyntaxKind) -> bool {
26114        kind == SyntaxKind::MATCH_PARTIAL
26115    }
26116    #[inline]
26117    fn cast(syntax: SyntaxNode) -> Option<Self> {
26118        if Self::can_cast(syntax.kind()) {
26119            Some(Self { syntax })
26120        } else {
26121            None
26122        }
26123    }
26124    #[inline]
26125    fn syntax(&self) -> &SyntaxNode {
26126        &self.syntax
26127    }
26128}
26129impl AstNode for MatchSimple {
26130    #[inline]
26131    fn can_cast(kind: SyntaxKind) -> bool {
26132        kind == SyntaxKind::MATCH_SIMPLE
26133    }
26134    #[inline]
26135    fn cast(syntax: SyntaxNode) -> Option<Self> {
26136        if Self::can_cast(syntax.kind()) {
26137            Some(Self { syntax })
26138        } else {
26139            None
26140        }
26141    }
26142    #[inline]
26143    fn syntax(&self) -> &SyntaxNode {
26144        &self.syntax
26145    }
26146}
26147impl AstNode for Materialized {
26148    #[inline]
26149    fn can_cast(kind: SyntaxKind) -> bool {
26150        kind == SyntaxKind::MATERIALIZED
26151    }
26152    #[inline]
26153    fn cast(syntax: SyntaxNode) -> Option<Self> {
26154        if Self::can_cast(syntax.kind()) {
26155            Some(Self { syntax })
26156        } else {
26157            None
26158        }
26159    }
26160    #[inline]
26161    fn syntax(&self) -> &SyntaxNode {
26162        &self.syntax
26163    }
26164}
26165impl AstNode for Merge {
26166    #[inline]
26167    fn can_cast(kind: SyntaxKind) -> bool {
26168        kind == SyntaxKind::MERGE
26169    }
26170    #[inline]
26171    fn cast(syntax: SyntaxNode) -> Option<Self> {
26172        if Self::can_cast(syntax.kind()) {
26173            Some(Self { syntax })
26174        } else {
26175            None
26176        }
26177    }
26178    #[inline]
26179    fn syntax(&self) -> &SyntaxNode {
26180        &self.syntax
26181    }
26182}
26183impl AstNode for MergeDelete {
26184    #[inline]
26185    fn can_cast(kind: SyntaxKind) -> bool {
26186        kind == SyntaxKind::MERGE_DELETE
26187    }
26188    #[inline]
26189    fn cast(syntax: SyntaxNode) -> Option<Self> {
26190        if Self::can_cast(syntax.kind()) {
26191            Some(Self { syntax })
26192        } else {
26193            None
26194        }
26195    }
26196    #[inline]
26197    fn syntax(&self) -> &SyntaxNode {
26198        &self.syntax
26199    }
26200}
26201impl AstNode for MergeDoNothing {
26202    #[inline]
26203    fn can_cast(kind: SyntaxKind) -> bool {
26204        kind == SyntaxKind::MERGE_DO_NOTHING
26205    }
26206    #[inline]
26207    fn cast(syntax: SyntaxNode) -> Option<Self> {
26208        if Self::can_cast(syntax.kind()) {
26209            Some(Self { syntax })
26210        } else {
26211            None
26212        }
26213    }
26214    #[inline]
26215    fn syntax(&self) -> &SyntaxNode {
26216        &self.syntax
26217    }
26218}
26219impl AstNode for MergeInsert {
26220    #[inline]
26221    fn can_cast(kind: SyntaxKind) -> bool {
26222        kind == SyntaxKind::MERGE_INSERT
26223    }
26224    #[inline]
26225    fn cast(syntax: SyntaxNode) -> Option<Self> {
26226        if Self::can_cast(syntax.kind()) {
26227            Some(Self { syntax })
26228        } else {
26229            None
26230        }
26231    }
26232    #[inline]
26233    fn syntax(&self) -> &SyntaxNode {
26234        &self.syntax
26235    }
26236}
26237impl AstNode for MergePartitions {
26238    #[inline]
26239    fn can_cast(kind: SyntaxKind) -> bool {
26240        kind == SyntaxKind::MERGE_PARTITIONS
26241    }
26242    #[inline]
26243    fn cast(syntax: SyntaxNode) -> Option<Self> {
26244        if Self::can_cast(syntax.kind()) {
26245            Some(Self { syntax })
26246        } else {
26247            None
26248        }
26249    }
26250    #[inline]
26251    fn syntax(&self) -> &SyntaxNode {
26252        &self.syntax
26253    }
26254}
26255impl AstNode for MergeUpdate {
26256    #[inline]
26257    fn can_cast(kind: SyntaxKind) -> bool {
26258        kind == SyntaxKind::MERGE_UPDATE
26259    }
26260    #[inline]
26261    fn cast(syntax: SyntaxNode) -> Option<Self> {
26262        if Self::can_cast(syntax.kind()) {
26263            Some(Self { syntax })
26264        } else {
26265            None
26266        }
26267    }
26268    #[inline]
26269    fn syntax(&self) -> &SyntaxNode {
26270        &self.syntax
26271    }
26272}
26273impl AstNode for MergeWhenMatched {
26274    #[inline]
26275    fn can_cast(kind: SyntaxKind) -> bool {
26276        kind == SyntaxKind::MERGE_WHEN_MATCHED
26277    }
26278    #[inline]
26279    fn cast(syntax: SyntaxNode) -> Option<Self> {
26280        if Self::can_cast(syntax.kind()) {
26281            Some(Self { syntax })
26282        } else {
26283            None
26284        }
26285    }
26286    #[inline]
26287    fn syntax(&self) -> &SyntaxNode {
26288        &self.syntax
26289    }
26290}
26291impl AstNode for MergeWhenNotMatchedSource {
26292    #[inline]
26293    fn can_cast(kind: SyntaxKind) -> bool {
26294        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
26295    }
26296    #[inline]
26297    fn cast(syntax: SyntaxNode) -> Option<Self> {
26298        if Self::can_cast(syntax.kind()) {
26299            Some(Self { syntax })
26300        } else {
26301            None
26302        }
26303    }
26304    #[inline]
26305    fn syntax(&self) -> &SyntaxNode {
26306        &self.syntax
26307    }
26308}
26309impl AstNode for MergeWhenNotMatchedTarget {
26310    #[inline]
26311    fn can_cast(kind: SyntaxKind) -> bool {
26312        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
26313    }
26314    #[inline]
26315    fn cast(syntax: SyntaxNode) -> Option<Self> {
26316        if Self::can_cast(syntax.kind()) {
26317            Some(Self { syntax })
26318        } else {
26319            None
26320        }
26321    }
26322    #[inline]
26323    fn syntax(&self) -> &SyntaxNode {
26324        &self.syntax
26325    }
26326}
26327impl AstNode for Move {
26328    #[inline]
26329    fn can_cast(kind: SyntaxKind) -> bool {
26330        kind == SyntaxKind::MOVE
26331    }
26332    #[inline]
26333    fn cast(syntax: SyntaxNode) -> Option<Self> {
26334        if Self::can_cast(syntax.kind()) {
26335            Some(Self { syntax })
26336        } else {
26337            None
26338        }
26339    }
26340    #[inline]
26341    fn syntax(&self) -> &SyntaxNode {
26342        &self.syntax
26343    }
26344}
26345impl AstNode for Name {
26346    #[inline]
26347    fn can_cast(kind: SyntaxKind) -> bool {
26348        kind == SyntaxKind::NAME
26349    }
26350    #[inline]
26351    fn cast(syntax: SyntaxNode) -> Option<Self> {
26352        if Self::can_cast(syntax.kind()) {
26353            Some(Self { syntax })
26354        } else {
26355            None
26356        }
26357    }
26358    #[inline]
26359    fn syntax(&self) -> &SyntaxNode {
26360        &self.syntax
26361    }
26362}
26363impl AstNode for NameRef {
26364    #[inline]
26365    fn can_cast(kind: SyntaxKind) -> bool {
26366        kind == SyntaxKind::NAME_REF
26367    }
26368    #[inline]
26369    fn cast(syntax: SyntaxNode) -> Option<Self> {
26370        if Self::can_cast(syntax.kind()) {
26371            Some(Self { syntax })
26372        } else {
26373            None
26374        }
26375    }
26376    #[inline]
26377    fn syntax(&self) -> &SyntaxNode {
26378        &self.syntax
26379    }
26380}
26381impl AstNode for NamedArg {
26382    #[inline]
26383    fn can_cast(kind: SyntaxKind) -> bool {
26384        kind == SyntaxKind::NAMED_ARG
26385    }
26386    #[inline]
26387    fn cast(syntax: SyntaxNode) -> Option<Self> {
26388        if Self::can_cast(syntax.kind()) {
26389            Some(Self { syntax })
26390        } else {
26391            None
26392        }
26393    }
26394    #[inline]
26395    fn syntax(&self) -> &SyntaxNode {
26396        &self.syntax
26397    }
26398}
26399impl AstNode for Neq {
26400    #[inline]
26401    fn can_cast(kind: SyntaxKind) -> bool {
26402        kind == SyntaxKind::NEQ
26403    }
26404    #[inline]
26405    fn cast(syntax: SyntaxNode) -> Option<Self> {
26406        if Self::can_cast(syntax.kind()) {
26407            Some(Self { syntax })
26408        } else {
26409            None
26410        }
26411    }
26412    #[inline]
26413    fn syntax(&self) -> &SyntaxNode {
26414        &self.syntax
26415    }
26416}
26417impl AstNode for Neqb {
26418    #[inline]
26419    fn can_cast(kind: SyntaxKind) -> bool {
26420        kind == SyntaxKind::NEQB
26421    }
26422    #[inline]
26423    fn cast(syntax: SyntaxNode) -> Option<Self> {
26424        if Self::can_cast(syntax.kind()) {
26425            Some(Self { syntax })
26426        } else {
26427            None
26428        }
26429    }
26430    #[inline]
26431    fn syntax(&self) -> &SyntaxNode {
26432        &self.syntax
26433    }
26434}
26435impl AstNode for NoAction {
26436    #[inline]
26437    fn can_cast(kind: SyntaxKind) -> bool {
26438        kind == SyntaxKind::NO_ACTION
26439    }
26440    #[inline]
26441    fn cast(syntax: SyntaxNode) -> Option<Self> {
26442        if Self::can_cast(syntax.kind()) {
26443            Some(Self { syntax })
26444        } else {
26445            None
26446        }
26447    }
26448    #[inline]
26449    fn syntax(&self) -> &SyntaxNode {
26450        &self.syntax
26451    }
26452}
26453impl AstNode for NoDependsOnExtension {
26454    #[inline]
26455    fn can_cast(kind: SyntaxKind) -> bool {
26456        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
26457    }
26458    #[inline]
26459    fn cast(syntax: SyntaxNode) -> Option<Self> {
26460        if Self::can_cast(syntax.kind()) {
26461            Some(Self { syntax })
26462        } else {
26463            None
26464        }
26465    }
26466    #[inline]
26467    fn syntax(&self) -> &SyntaxNode {
26468        &self.syntax
26469    }
26470}
26471impl AstNode for NoForceRls {
26472    #[inline]
26473    fn can_cast(kind: SyntaxKind) -> bool {
26474        kind == SyntaxKind::NO_FORCE_RLS
26475    }
26476    #[inline]
26477    fn cast(syntax: SyntaxNode) -> Option<Self> {
26478        if Self::can_cast(syntax.kind()) {
26479            Some(Self { syntax })
26480        } else {
26481            None
26482        }
26483    }
26484    #[inline]
26485    fn syntax(&self) -> &SyntaxNode {
26486        &self.syntax
26487    }
26488}
26489impl AstNode for NoInherit {
26490    #[inline]
26491    fn can_cast(kind: SyntaxKind) -> bool {
26492        kind == SyntaxKind::NO_INHERIT
26493    }
26494    #[inline]
26495    fn cast(syntax: SyntaxNode) -> Option<Self> {
26496        if Self::can_cast(syntax.kind()) {
26497            Some(Self { syntax })
26498        } else {
26499            None
26500        }
26501    }
26502    #[inline]
26503    fn syntax(&self) -> &SyntaxNode {
26504        &self.syntax
26505    }
26506}
26507impl AstNode for NoInheritTable {
26508    #[inline]
26509    fn can_cast(kind: SyntaxKind) -> bool {
26510        kind == SyntaxKind::NO_INHERIT_TABLE
26511    }
26512    #[inline]
26513    fn cast(syntax: SyntaxNode) -> Option<Self> {
26514        if Self::can_cast(syntax.kind()) {
26515            Some(Self { syntax })
26516        } else {
26517            None
26518        }
26519    }
26520    #[inline]
26521    fn syntax(&self) -> &SyntaxNode {
26522        &self.syntax
26523    }
26524}
26525impl AstNode for NoProperties {
26526    #[inline]
26527    fn can_cast(kind: SyntaxKind) -> bool {
26528        kind == SyntaxKind::NO_PROPERTIES
26529    }
26530    #[inline]
26531    fn cast(syntax: SyntaxNode) -> Option<Self> {
26532        if Self::can_cast(syntax.kind()) {
26533            Some(Self { syntax })
26534        } else {
26535            None
26536        }
26537    }
26538    #[inline]
26539    fn syntax(&self) -> &SyntaxNode {
26540        &self.syntax
26541    }
26542}
26543impl AstNode for NonStandardParam {
26544    #[inline]
26545    fn can_cast(kind: SyntaxKind) -> bool {
26546        kind == SyntaxKind::NON_STANDARD_PARAM
26547    }
26548    #[inline]
26549    fn cast(syntax: SyntaxNode) -> Option<Self> {
26550        if Self::can_cast(syntax.kind()) {
26551            Some(Self { syntax })
26552        } else {
26553            None
26554        }
26555    }
26556    #[inline]
26557    fn syntax(&self) -> &SyntaxNode {
26558        &self.syntax
26559    }
26560}
26561impl AstNode for NotDeferrable {
26562    #[inline]
26563    fn can_cast(kind: SyntaxKind) -> bool {
26564        kind == SyntaxKind::NOT_DEFERRABLE
26565    }
26566    #[inline]
26567    fn cast(syntax: SyntaxNode) -> Option<Self> {
26568        if Self::can_cast(syntax.kind()) {
26569            Some(Self { syntax })
26570        } else {
26571            None
26572        }
26573    }
26574    #[inline]
26575    fn syntax(&self) -> &SyntaxNode {
26576        &self.syntax
26577    }
26578}
26579impl AstNode for NotDeferrableConstraintOption {
26580    #[inline]
26581    fn can_cast(kind: SyntaxKind) -> bool {
26582        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
26583    }
26584    #[inline]
26585    fn cast(syntax: SyntaxNode) -> Option<Self> {
26586        if Self::can_cast(syntax.kind()) {
26587            Some(Self { syntax })
26588        } else {
26589            None
26590        }
26591    }
26592    #[inline]
26593    fn syntax(&self) -> &SyntaxNode {
26594        &self.syntax
26595    }
26596}
26597impl AstNode for NotEnforced {
26598    #[inline]
26599    fn can_cast(kind: SyntaxKind) -> bool {
26600        kind == SyntaxKind::NOT_ENFORCED
26601    }
26602    #[inline]
26603    fn cast(syntax: SyntaxNode) -> Option<Self> {
26604        if Self::can_cast(syntax.kind()) {
26605            Some(Self { syntax })
26606        } else {
26607            None
26608        }
26609    }
26610    #[inline]
26611    fn syntax(&self) -> &SyntaxNode {
26612        &self.syntax
26613    }
26614}
26615impl AstNode for NotIlike {
26616    #[inline]
26617    fn can_cast(kind: SyntaxKind) -> bool {
26618        kind == SyntaxKind::NOT_ILIKE
26619    }
26620    #[inline]
26621    fn cast(syntax: SyntaxNode) -> Option<Self> {
26622        if Self::can_cast(syntax.kind()) {
26623            Some(Self { syntax })
26624        } else {
26625            None
26626        }
26627    }
26628    #[inline]
26629    fn syntax(&self) -> &SyntaxNode {
26630        &self.syntax
26631    }
26632}
26633impl AstNode for NotIn {
26634    #[inline]
26635    fn can_cast(kind: SyntaxKind) -> bool {
26636        kind == SyntaxKind::NOT_IN
26637    }
26638    #[inline]
26639    fn cast(syntax: SyntaxNode) -> Option<Self> {
26640        if Self::can_cast(syntax.kind()) {
26641            Some(Self { syntax })
26642        } else {
26643            None
26644        }
26645    }
26646    #[inline]
26647    fn syntax(&self) -> &SyntaxNode {
26648        &self.syntax
26649    }
26650}
26651impl AstNode for NotLike {
26652    #[inline]
26653    fn can_cast(kind: SyntaxKind) -> bool {
26654        kind == SyntaxKind::NOT_LIKE
26655    }
26656    #[inline]
26657    fn cast(syntax: SyntaxNode) -> Option<Self> {
26658        if Self::can_cast(syntax.kind()) {
26659            Some(Self { syntax })
26660        } else {
26661            None
26662        }
26663    }
26664    #[inline]
26665    fn syntax(&self) -> &SyntaxNode {
26666        &self.syntax
26667    }
26668}
26669impl AstNode for NotMaterialized {
26670    #[inline]
26671    fn can_cast(kind: SyntaxKind) -> bool {
26672        kind == SyntaxKind::NOT_MATERIALIZED
26673    }
26674    #[inline]
26675    fn cast(syntax: SyntaxNode) -> Option<Self> {
26676        if Self::can_cast(syntax.kind()) {
26677            Some(Self { syntax })
26678        } else {
26679            None
26680        }
26681    }
26682    #[inline]
26683    fn syntax(&self) -> &SyntaxNode {
26684        &self.syntax
26685    }
26686}
26687impl AstNode for NotNullConstraint {
26688    #[inline]
26689    fn can_cast(kind: SyntaxKind) -> bool {
26690        kind == SyntaxKind::NOT_NULL_CONSTRAINT
26691    }
26692    #[inline]
26693    fn cast(syntax: SyntaxNode) -> Option<Self> {
26694        if Self::can_cast(syntax.kind()) {
26695            Some(Self { syntax })
26696        } else {
26697            None
26698        }
26699    }
26700    #[inline]
26701    fn syntax(&self) -> &SyntaxNode {
26702        &self.syntax
26703    }
26704}
26705impl AstNode for NotOf {
26706    #[inline]
26707    fn can_cast(kind: SyntaxKind) -> bool {
26708        kind == SyntaxKind::NOT_OF
26709    }
26710    #[inline]
26711    fn cast(syntax: SyntaxNode) -> Option<Self> {
26712        if Self::can_cast(syntax.kind()) {
26713            Some(Self { syntax })
26714        } else {
26715            None
26716        }
26717    }
26718    #[inline]
26719    fn syntax(&self) -> &SyntaxNode {
26720        &self.syntax
26721    }
26722}
26723impl AstNode for NotSimilarTo {
26724    #[inline]
26725    fn can_cast(kind: SyntaxKind) -> bool {
26726        kind == SyntaxKind::NOT_SIMILAR_TO
26727    }
26728    #[inline]
26729    fn cast(syntax: SyntaxNode) -> Option<Self> {
26730        if Self::can_cast(syntax.kind()) {
26731            Some(Self { syntax })
26732        } else {
26733            None
26734        }
26735    }
26736    #[inline]
26737    fn syntax(&self) -> &SyntaxNode {
26738        &self.syntax
26739    }
26740}
26741impl AstNode for NotValid {
26742    #[inline]
26743    fn can_cast(kind: SyntaxKind) -> bool {
26744        kind == SyntaxKind::NOT_VALID
26745    }
26746    #[inline]
26747    fn cast(syntax: SyntaxNode) -> Option<Self> {
26748        if Self::can_cast(syntax.kind()) {
26749            Some(Self { syntax })
26750        } else {
26751            None
26752        }
26753    }
26754    #[inline]
26755    fn syntax(&self) -> &SyntaxNode {
26756        &self.syntax
26757    }
26758}
26759impl AstNode for Notify {
26760    #[inline]
26761    fn can_cast(kind: SyntaxKind) -> bool {
26762        kind == SyntaxKind::NOTIFY
26763    }
26764    #[inline]
26765    fn cast(syntax: SyntaxNode) -> Option<Self> {
26766        if Self::can_cast(syntax.kind()) {
26767            Some(Self { syntax })
26768        } else {
26769            None
26770        }
26771    }
26772    #[inline]
26773    fn syntax(&self) -> &SyntaxNode {
26774        &self.syntax
26775    }
26776}
26777impl AstNode for NullConstraint {
26778    #[inline]
26779    fn can_cast(kind: SyntaxKind) -> bool {
26780        kind == SyntaxKind::NULL_CONSTRAINT
26781    }
26782    #[inline]
26783    fn cast(syntax: SyntaxNode) -> Option<Self> {
26784        if Self::can_cast(syntax.kind()) {
26785            Some(Self { syntax })
26786        } else {
26787            None
26788        }
26789    }
26790    #[inline]
26791    fn syntax(&self) -> &SyntaxNode {
26792        &self.syntax
26793    }
26794}
26795impl AstNode for NullsDistinct {
26796    #[inline]
26797    fn can_cast(kind: SyntaxKind) -> bool {
26798        kind == SyntaxKind::NULLS_DISTINCT
26799    }
26800    #[inline]
26801    fn cast(syntax: SyntaxNode) -> Option<Self> {
26802        if Self::can_cast(syntax.kind()) {
26803            Some(Self { syntax })
26804        } else {
26805            None
26806        }
26807    }
26808    #[inline]
26809    fn syntax(&self) -> &SyntaxNode {
26810        &self.syntax
26811    }
26812}
26813impl AstNode for NullsFirst {
26814    #[inline]
26815    fn can_cast(kind: SyntaxKind) -> bool {
26816        kind == SyntaxKind::NULLS_FIRST
26817    }
26818    #[inline]
26819    fn cast(syntax: SyntaxNode) -> Option<Self> {
26820        if Self::can_cast(syntax.kind()) {
26821            Some(Self { syntax })
26822        } else {
26823            None
26824        }
26825    }
26826    #[inline]
26827    fn syntax(&self) -> &SyntaxNode {
26828        &self.syntax
26829    }
26830}
26831impl AstNode for NullsLast {
26832    #[inline]
26833    fn can_cast(kind: SyntaxKind) -> bool {
26834        kind == SyntaxKind::NULLS_LAST
26835    }
26836    #[inline]
26837    fn cast(syntax: SyntaxNode) -> Option<Self> {
26838        if Self::can_cast(syntax.kind()) {
26839            Some(Self { syntax })
26840        } else {
26841            None
26842        }
26843    }
26844    #[inline]
26845    fn syntax(&self) -> &SyntaxNode {
26846        &self.syntax
26847    }
26848}
26849impl AstNode for NullsNotDistinct {
26850    #[inline]
26851    fn can_cast(kind: SyntaxKind) -> bool {
26852        kind == SyntaxKind::NULLS_NOT_DISTINCT
26853    }
26854    #[inline]
26855    fn cast(syntax: SyntaxNode) -> Option<Self> {
26856        if Self::can_cast(syntax.kind()) {
26857            Some(Self { syntax })
26858        } else {
26859            None
26860        }
26861    }
26862    #[inline]
26863    fn syntax(&self) -> &SyntaxNode {
26864        &self.syntax
26865    }
26866}
26867impl AstNode for OfType {
26868    #[inline]
26869    fn can_cast(kind: SyntaxKind) -> bool {
26870        kind == SyntaxKind::OF_TYPE
26871    }
26872    #[inline]
26873    fn cast(syntax: SyntaxNode) -> Option<Self> {
26874        if Self::can_cast(syntax.kind()) {
26875            Some(Self { syntax })
26876        } else {
26877            None
26878        }
26879    }
26880    #[inline]
26881    fn syntax(&self) -> &SyntaxNode {
26882        &self.syntax
26883    }
26884}
26885impl AstNode for OffsetClause {
26886    #[inline]
26887    fn can_cast(kind: SyntaxKind) -> bool {
26888        kind == SyntaxKind::OFFSET_CLAUSE
26889    }
26890    #[inline]
26891    fn cast(syntax: SyntaxNode) -> Option<Self> {
26892        if Self::can_cast(syntax.kind()) {
26893            Some(Self { syntax })
26894        } else {
26895            None
26896        }
26897    }
26898    #[inline]
26899    fn syntax(&self) -> &SyntaxNode {
26900        &self.syntax
26901    }
26902}
26903impl AstNode for OnClause {
26904    #[inline]
26905    fn can_cast(kind: SyntaxKind) -> bool {
26906        kind == SyntaxKind::ON_CLAUSE
26907    }
26908    #[inline]
26909    fn cast(syntax: SyntaxNode) -> Option<Self> {
26910        if Self::can_cast(syntax.kind()) {
26911            Some(Self { syntax })
26912        } else {
26913            None
26914        }
26915    }
26916    #[inline]
26917    fn syntax(&self) -> &SyntaxNode {
26918        &self.syntax
26919    }
26920}
26921impl AstNode for OnCommit {
26922    #[inline]
26923    fn can_cast(kind: SyntaxKind) -> bool {
26924        kind == SyntaxKind::ON_COMMIT
26925    }
26926    #[inline]
26927    fn cast(syntax: SyntaxNode) -> Option<Self> {
26928        if Self::can_cast(syntax.kind()) {
26929            Some(Self { syntax })
26930        } else {
26931            None
26932        }
26933    }
26934    #[inline]
26935    fn syntax(&self) -> &SyntaxNode {
26936        &self.syntax
26937    }
26938}
26939impl AstNode for OnConflictClause {
26940    #[inline]
26941    fn can_cast(kind: SyntaxKind) -> bool {
26942        kind == SyntaxKind::ON_CONFLICT_CLAUSE
26943    }
26944    #[inline]
26945    fn cast(syntax: SyntaxNode) -> Option<Self> {
26946        if Self::can_cast(syntax.kind()) {
26947            Some(Self { syntax })
26948        } else {
26949            None
26950        }
26951    }
26952    #[inline]
26953    fn syntax(&self) -> &SyntaxNode {
26954        &self.syntax
26955    }
26956}
26957impl AstNode for OnDeleteAction {
26958    #[inline]
26959    fn can_cast(kind: SyntaxKind) -> bool {
26960        kind == SyntaxKind::ON_DELETE_ACTION
26961    }
26962    #[inline]
26963    fn cast(syntax: SyntaxNode) -> Option<Self> {
26964        if Self::can_cast(syntax.kind()) {
26965            Some(Self { syntax })
26966        } else {
26967            None
26968        }
26969    }
26970    #[inline]
26971    fn syntax(&self) -> &SyntaxNode {
26972        &self.syntax
26973    }
26974}
26975impl AstNode for OnTable {
26976    #[inline]
26977    fn can_cast(kind: SyntaxKind) -> bool {
26978        kind == SyntaxKind::ON_TABLE
26979    }
26980    #[inline]
26981    fn cast(syntax: SyntaxNode) -> Option<Self> {
26982        if Self::can_cast(syntax.kind()) {
26983            Some(Self { syntax })
26984        } else {
26985            None
26986        }
26987    }
26988    #[inline]
26989    fn syntax(&self) -> &SyntaxNode {
26990        &self.syntax
26991    }
26992}
26993impl AstNode for OnUpdateAction {
26994    #[inline]
26995    fn can_cast(kind: SyntaxKind) -> bool {
26996        kind == SyntaxKind::ON_UPDATE_ACTION
26997    }
26998    #[inline]
26999    fn cast(syntax: SyntaxNode) -> Option<Self> {
27000        if Self::can_cast(syntax.kind()) {
27001            Some(Self { syntax })
27002        } else {
27003            None
27004        }
27005    }
27006    #[inline]
27007    fn syntax(&self) -> &SyntaxNode {
27008        &self.syntax
27009    }
27010}
27011impl AstNode for Op {
27012    #[inline]
27013    fn can_cast(kind: SyntaxKind) -> bool {
27014        kind == SyntaxKind::OP
27015    }
27016    #[inline]
27017    fn cast(syntax: SyntaxNode) -> Option<Self> {
27018        if Self::can_cast(syntax.kind()) {
27019            Some(Self { syntax })
27020        } else {
27021            None
27022        }
27023    }
27024    #[inline]
27025    fn syntax(&self) -> &SyntaxNode {
27026        &self.syntax
27027    }
27028}
27029impl AstNode for OpClassOption {
27030    #[inline]
27031    fn can_cast(kind: SyntaxKind) -> bool {
27032        kind == SyntaxKind::OP_CLASS_OPTION
27033    }
27034    #[inline]
27035    fn cast(syntax: SyntaxNode) -> Option<Self> {
27036        if Self::can_cast(syntax.kind()) {
27037            Some(Self { syntax })
27038        } else {
27039            None
27040        }
27041    }
27042    #[inline]
27043    fn syntax(&self) -> &SyntaxNode {
27044        &self.syntax
27045    }
27046}
27047impl AstNode for OpSig {
27048    #[inline]
27049    fn can_cast(kind: SyntaxKind) -> bool {
27050        kind == SyntaxKind::OP_SIG
27051    }
27052    #[inline]
27053    fn cast(syntax: SyntaxNode) -> Option<Self> {
27054        if Self::can_cast(syntax.kind()) {
27055            Some(Self { syntax })
27056        } else {
27057            None
27058        }
27059    }
27060    #[inline]
27061    fn syntax(&self) -> &SyntaxNode {
27062        &self.syntax
27063    }
27064}
27065impl AstNode for OpSigList {
27066    #[inline]
27067    fn can_cast(kind: SyntaxKind) -> bool {
27068        kind == SyntaxKind::OP_SIG_LIST
27069    }
27070    #[inline]
27071    fn cast(syntax: SyntaxNode) -> Option<Self> {
27072        if Self::can_cast(syntax.kind()) {
27073            Some(Self { syntax })
27074        } else {
27075            None
27076        }
27077    }
27078    #[inline]
27079    fn syntax(&self) -> &SyntaxNode {
27080        &self.syntax
27081    }
27082}
27083impl AstNode for OperatorCall {
27084    #[inline]
27085    fn can_cast(kind: SyntaxKind) -> bool {
27086        kind == SyntaxKind::OPERATOR_CALL
27087    }
27088    #[inline]
27089    fn cast(syntax: SyntaxNode) -> Option<Self> {
27090        if Self::can_cast(syntax.kind()) {
27091            Some(Self { syntax })
27092        } else {
27093            None
27094        }
27095    }
27096    #[inline]
27097    fn syntax(&self) -> &SyntaxNode {
27098        &self.syntax
27099    }
27100}
27101impl AstNode for OperatorClassOptionList {
27102    #[inline]
27103    fn can_cast(kind: SyntaxKind) -> bool {
27104        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27105    }
27106    #[inline]
27107    fn cast(syntax: SyntaxNode) -> Option<Self> {
27108        if Self::can_cast(syntax.kind()) {
27109            Some(Self { syntax })
27110        } else {
27111            None
27112        }
27113    }
27114    #[inline]
27115    fn syntax(&self) -> &SyntaxNode {
27116        &self.syntax
27117    }
27118}
27119impl AstNode for OptionItem {
27120    #[inline]
27121    fn can_cast(kind: SyntaxKind) -> bool {
27122        kind == SyntaxKind::OPTION_ITEM
27123    }
27124    #[inline]
27125    fn cast(syntax: SyntaxNode) -> Option<Self> {
27126        if Self::can_cast(syntax.kind()) {
27127            Some(Self { syntax })
27128        } else {
27129            None
27130        }
27131    }
27132    #[inline]
27133    fn syntax(&self) -> &SyntaxNode {
27134        &self.syntax
27135    }
27136}
27137impl AstNode for OptionItemList {
27138    #[inline]
27139    fn can_cast(kind: SyntaxKind) -> bool {
27140        kind == SyntaxKind::OPTION_ITEM_LIST
27141    }
27142    #[inline]
27143    fn cast(syntax: SyntaxNode) -> Option<Self> {
27144        if Self::can_cast(syntax.kind()) {
27145            Some(Self { syntax })
27146        } else {
27147            None
27148        }
27149    }
27150    #[inline]
27151    fn syntax(&self) -> &SyntaxNode {
27152        &self.syntax
27153    }
27154}
27155impl AstNode for OrReplace {
27156    #[inline]
27157    fn can_cast(kind: SyntaxKind) -> bool {
27158        kind == SyntaxKind::OR_REPLACE
27159    }
27160    #[inline]
27161    fn cast(syntax: SyntaxNode) -> Option<Self> {
27162        if Self::can_cast(syntax.kind()) {
27163            Some(Self { syntax })
27164        } else {
27165            None
27166        }
27167    }
27168    #[inline]
27169    fn syntax(&self) -> &SyntaxNode {
27170        &self.syntax
27171    }
27172}
27173impl AstNode for OrderByClause {
27174    #[inline]
27175    fn can_cast(kind: SyntaxKind) -> bool {
27176        kind == SyntaxKind::ORDER_BY_CLAUSE
27177    }
27178    #[inline]
27179    fn cast(syntax: SyntaxNode) -> Option<Self> {
27180        if Self::can_cast(syntax.kind()) {
27181            Some(Self { syntax })
27182        } else {
27183            None
27184        }
27185    }
27186    #[inline]
27187    fn syntax(&self) -> &SyntaxNode {
27188        &self.syntax
27189    }
27190}
27191impl AstNode for OverClause {
27192    #[inline]
27193    fn can_cast(kind: SyntaxKind) -> bool {
27194        kind == SyntaxKind::OVER_CLAUSE
27195    }
27196    #[inline]
27197    fn cast(syntax: SyntaxNode) -> Option<Self> {
27198        if Self::can_cast(syntax.kind()) {
27199            Some(Self { syntax })
27200        } else {
27201            None
27202        }
27203    }
27204    #[inline]
27205    fn syntax(&self) -> &SyntaxNode {
27206        &self.syntax
27207    }
27208}
27209impl AstNode for OverlayFn {
27210    #[inline]
27211    fn can_cast(kind: SyntaxKind) -> bool {
27212        kind == SyntaxKind::OVERLAY_FN
27213    }
27214    #[inline]
27215    fn cast(syntax: SyntaxNode) -> Option<Self> {
27216        if Self::can_cast(syntax.kind()) {
27217            Some(Self { syntax })
27218        } else {
27219            None
27220        }
27221    }
27222    #[inline]
27223    fn syntax(&self) -> &SyntaxNode {
27224        &self.syntax
27225    }
27226}
27227impl AstNode for OwnedByRoles {
27228    #[inline]
27229    fn can_cast(kind: SyntaxKind) -> bool {
27230        kind == SyntaxKind::OWNED_BY_ROLES
27231    }
27232    #[inline]
27233    fn cast(syntax: SyntaxNode) -> Option<Self> {
27234        if Self::can_cast(syntax.kind()) {
27235            Some(Self { syntax })
27236        } else {
27237            None
27238        }
27239    }
27240    #[inline]
27241    fn syntax(&self) -> &SyntaxNode {
27242        &self.syntax
27243    }
27244}
27245impl AstNode for OwnerTo {
27246    #[inline]
27247    fn can_cast(kind: SyntaxKind) -> bool {
27248        kind == SyntaxKind::OWNER_TO
27249    }
27250    #[inline]
27251    fn cast(syntax: SyntaxNode) -> Option<Self> {
27252        if Self::can_cast(syntax.kind()) {
27253            Some(Self { syntax })
27254        } else {
27255            None
27256        }
27257    }
27258    #[inline]
27259    fn syntax(&self) -> &SyntaxNode {
27260        &self.syntax
27261    }
27262}
27263impl AstNode for ParallelFuncOption {
27264    #[inline]
27265    fn can_cast(kind: SyntaxKind) -> bool {
27266        kind == SyntaxKind::PARALLEL_FUNC_OPTION
27267    }
27268    #[inline]
27269    fn cast(syntax: SyntaxNode) -> Option<Self> {
27270        if Self::can_cast(syntax.kind()) {
27271            Some(Self { syntax })
27272        } else {
27273            None
27274        }
27275    }
27276    #[inline]
27277    fn syntax(&self) -> &SyntaxNode {
27278        &self.syntax
27279    }
27280}
27281impl AstNode for Param {
27282    #[inline]
27283    fn can_cast(kind: SyntaxKind) -> bool {
27284        kind == SyntaxKind::PARAM
27285    }
27286    #[inline]
27287    fn cast(syntax: SyntaxNode) -> Option<Self> {
27288        if Self::can_cast(syntax.kind()) {
27289            Some(Self { syntax })
27290        } else {
27291            None
27292        }
27293    }
27294    #[inline]
27295    fn syntax(&self) -> &SyntaxNode {
27296        &self.syntax
27297    }
27298}
27299impl AstNode for ParamDefault {
27300    #[inline]
27301    fn can_cast(kind: SyntaxKind) -> bool {
27302        kind == SyntaxKind::PARAM_DEFAULT
27303    }
27304    #[inline]
27305    fn cast(syntax: SyntaxNode) -> Option<Self> {
27306        if Self::can_cast(syntax.kind()) {
27307            Some(Self { syntax })
27308        } else {
27309            None
27310        }
27311    }
27312    #[inline]
27313    fn syntax(&self) -> &SyntaxNode {
27314        &self.syntax
27315    }
27316}
27317impl AstNode for ParamIn {
27318    #[inline]
27319    fn can_cast(kind: SyntaxKind) -> bool {
27320        kind == SyntaxKind::PARAM_IN
27321    }
27322    #[inline]
27323    fn cast(syntax: SyntaxNode) -> Option<Self> {
27324        if Self::can_cast(syntax.kind()) {
27325            Some(Self { syntax })
27326        } else {
27327            None
27328        }
27329    }
27330    #[inline]
27331    fn syntax(&self) -> &SyntaxNode {
27332        &self.syntax
27333    }
27334}
27335impl AstNode for ParamInOut {
27336    #[inline]
27337    fn can_cast(kind: SyntaxKind) -> bool {
27338        kind == SyntaxKind::PARAM_IN_OUT
27339    }
27340    #[inline]
27341    fn cast(syntax: SyntaxNode) -> Option<Self> {
27342        if Self::can_cast(syntax.kind()) {
27343            Some(Self { syntax })
27344        } else {
27345            None
27346        }
27347    }
27348    #[inline]
27349    fn syntax(&self) -> &SyntaxNode {
27350        &self.syntax
27351    }
27352}
27353impl AstNode for ParamList {
27354    #[inline]
27355    fn can_cast(kind: SyntaxKind) -> bool {
27356        kind == SyntaxKind::PARAM_LIST
27357    }
27358    #[inline]
27359    fn cast(syntax: SyntaxNode) -> Option<Self> {
27360        if Self::can_cast(syntax.kind()) {
27361            Some(Self { syntax })
27362        } else {
27363            None
27364        }
27365    }
27366    #[inline]
27367    fn syntax(&self) -> &SyntaxNode {
27368        &self.syntax
27369    }
27370}
27371impl AstNode for ParamOut {
27372    #[inline]
27373    fn can_cast(kind: SyntaxKind) -> bool {
27374        kind == SyntaxKind::PARAM_OUT
27375    }
27376    #[inline]
27377    fn cast(syntax: SyntaxNode) -> Option<Self> {
27378        if Self::can_cast(syntax.kind()) {
27379            Some(Self { syntax })
27380        } else {
27381            None
27382        }
27383    }
27384    #[inline]
27385    fn syntax(&self) -> &SyntaxNode {
27386        &self.syntax
27387    }
27388}
27389impl AstNode for ParamVariadic {
27390    #[inline]
27391    fn can_cast(kind: SyntaxKind) -> bool {
27392        kind == SyntaxKind::PARAM_VARIADIC
27393    }
27394    #[inline]
27395    fn cast(syntax: SyntaxNode) -> Option<Self> {
27396        if Self::can_cast(syntax.kind()) {
27397            Some(Self { syntax })
27398        } else {
27399            None
27400        }
27401    }
27402    #[inline]
27403    fn syntax(&self) -> &SyntaxNode {
27404        &self.syntax
27405    }
27406}
27407impl AstNode for ParenExpr {
27408    #[inline]
27409    fn can_cast(kind: SyntaxKind) -> bool {
27410        kind == SyntaxKind::PAREN_EXPR
27411    }
27412    #[inline]
27413    fn cast(syntax: SyntaxNode) -> Option<Self> {
27414        if Self::can_cast(syntax.kind()) {
27415            Some(Self { syntax })
27416        } else {
27417            None
27418        }
27419    }
27420    #[inline]
27421    fn syntax(&self) -> &SyntaxNode {
27422        &self.syntax
27423    }
27424}
27425impl AstNode for ParenGraphPattern {
27426    #[inline]
27427    fn can_cast(kind: SyntaxKind) -> bool {
27428        kind == SyntaxKind::PAREN_GRAPH_PATTERN
27429    }
27430    #[inline]
27431    fn cast(syntax: SyntaxNode) -> Option<Self> {
27432        if Self::can_cast(syntax.kind()) {
27433            Some(Self { syntax })
27434        } else {
27435            None
27436        }
27437    }
27438    #[inline]
27439    fn syntax(&self) -> &SyntaxNode {
27440        &self.syntax
27441    }
27442}
27443impl AstNode for ParenSelect {
27444    #[inline]
27445    fn can_cast(kind: SyntaxKind) -> bool {
27446        kind == SyntaxKind::PAREN_SELECT
27447    }
27448    #[inline]
27449    fn cast(syntax: SyntaxNode) -> Option<Self> {
27450        if Self::can_cast(syntax.kind()) {
27451            Some(Self { syntax })
27452        } else {
27453            None
27454        }
27455    }
27456    #[inline]
27457    fn syntax(&self) -> &SyntaxNode {
27458        &self.syntax
27459    }
27460}
27461impl AstNode for Partition {
27462    #[inline]
27463    fn can_cast(kind: SyntaxKind) -> bool {
27464        kind == SyntaxKind::PARTITION
27465    }
27466    #[inline]
27467    fn cast(syntax: SyntaxNode) -> Option<Self> {
27468        if Self::can_cast(syntax.kind()) {
27469            Some(Self { syntax })
27470        } else {
27471            None
27472        }
27473    }
27474    #[inline]
27475    fn syntax(&self) -> &SyntaxNode {
27476        &self.syntax
27477    }
27478}
27479impl AstNode for PartitionBy {
27480    #[inline]
27481    fn can_cast(kind: SyntaxKind) -> bool {
27482        kind == SyntaxKind::PARTITION_BY
27483    }
27484    #[inline]
27485    fn cast(syntax: SyntaxNode) -> Option<Self> {
27486        if Self::can_cast(syntax.kind()) {
27487            Some(Self { syntax })
27488        } else {
27489            None
27490        }
27491    }
27492    #[inline]
27493    fn syntax(&self) -> &SyntaxNode {
27494        &self.syntax
27495    }
27496}
27497impl AstNode for PartitionDefault {
27498    #[inline]
27499    fn can_cast(kind: SyntaxKind) -> bool {
27500        kind == SyntaxKind::PARTITION_DEFAULT
27501    }
27502    #[inline]
27503    fn cast(syntax: SyntaxNode) -> Option<Self> {
27504        if Self::can_cast(syntax.kind()) {
27505            Some(Self { syntax })
27506        } else {
27507            None
27508        }
27509    }
27510    #[inline]
27511    fn syntax(&self) -> &SyntaxNode {
27512        &self.syntax
27513    }
27514}
27515impl AstNode for PartitionForValuesFrom {
27516    #[inline]
27517    fn can_cast(kind: SyntaxKind) -> bool {
27518        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
27519    }
27520    #[inline]
27521    fn cast(syntax: SyntaxNode) -> Option<Self> {
27522        if Self::can_cast(syntax.kind()) {
27523            Some(Self { syntax })
27524        } else {
27525            None
27526        }
27527    }
27528    #[inline]
27529    fn syntax(&self) -> &SyntaxNode {
27530        &self.syntax
27531    }
27532}
27533impl AstNode for PartitionForValuesIn {
27534    #[inline]
27535    fn can_cast(kind: SyntaxKind) -> bool {
27536        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
27537    }
27538    #[inline]
27539    fn cast(syntax: SyntaxNode) -> Option<Self> {
27540        if Self::can_cast(syntax.kind()) {
27541            Some(Self { syntax })
27542        } else {
27543            None
27544        }
27545    }
27546    #[inline]
27547    fn syntax(&self) -> &SyntaxNode {
27548        &self.syntax
27549    }
27550}
27551impl AstNode for PartitionForValuesWith {
27552    #[inline]
27553    fn can_cast(kind: SyntaxKind) -> bool {
27554        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
27555    }
27556    #[inline]
27557    fn cast(syntax: SyntaxNode) -> Option<Self> {
27558        if Self::can_cast(syntax.kind()) {
27559            Some(Self { syntax })
27560        } else {
27561            None
27562        }
27563    }
27564    #[inline]
27565    fn syntax(&self) -> &SyntaxNode {
27566        &self.syntax
27567    }
27568}
27569impl AstNode for PartitionItem {
27570    #[inline]
27571    fn can_cast(kind: SyntaxKind) -> bool {
27572        kind == SyntaxKind::PARTITION_ITEM
27573    }
27574    #[inline]
27575    fn cast(syntax: SyntaxNode) -> Option<Self> {
27576        if Self::can_cast(syntax.kind()) {
27577            Some(Self { syntax })
27578        } else {
27579            None
27580        }
27581    }
27582    #[inline]
27583    fn syntax(&self) -> &SyntaxNode {
27584        &self.syntax
27585    }
27586}
27587impl AstNode for PartitionItemList {
27588    #[inline]
27589    fn can_cast(kind: SyntaxKind) -> bool {
27590        kind == SyntaxKind::PARTITION_ITEM_LIST
27591    }
27592    #[inline]
27593    fn cast(syntax: SyntaxNode) -> Option<Self> {
27594        if Self::can_cast(syntax.kind()) {
27595            Some(Self { syntax })
27596        } else {
27597            None
27598        }
27599    }
27600    #[inline]
27601    fn syntax(&self) -> &SyntaxNode {
27602        &self.syntax
27603    }
27604}
27605impl AstNode for PartitionList {
27606    #[inline]
27607    fn can_cast(kind: SyntaxKind) -> bool {
27608        kind == SyntaxKind::PARTITION_LIST
27609    }
27610    #[inline]
27611    fn cast(syntax: SyntaxNode) -> Option<Self> {
27612        if Self::can_cast(syntax.kind()) {
27613            Some(Self { syntax })
27614        } else {
27615            None
27616        }
27617    }
27618    #[inline]
27619    fn syntax(&self) -> &SyntaxNode {
27620        &self.syntax
27621    }
27622}
27623impl AstNode for PartitionOf {
27624    #[inline]
27625    fn can_cast(kind: SyntaxKind) -> bool {
27626        kind == SyntaxKind::PARTITION_OF
27627    }
27628    #[inline]
27629    fn cast(syntax: SyntaxNode) -> Option<Self> {
27630        if Self::can_cast(syntax.kind()) {
27631            Some(Self { syntax })
27632        } else {
27633            None
27634        }
27635    }
27636    #[inline]
27637    fn syntax(&self) -> &SyntaxNode {
27638        &self.syntax
27639    }
27640}
27641impl AstNode for Path {
27642    #[inline]
27643    fn can_cast(kind: SyntaxKind) -> bool {
27644        kind == SyntaxKind::PATH
27645    }
27646    #[inline]
27647    fn cast(syntax: SyntaxNode) -> Option<Self> {
27648        if Self::can_cast(syntax.kind()) {
27649            Some(Self { syntax })
27650        } else {
27651            None
27652        }
27653    }
27654    #[inline]
27655    fn syntax(&self) -> &SyntaxNode {
27656        &self.syntax
27657    }
27658}
27659impl AstNode for PathFactor {
27660    #[inline]
27661    fn can_cast(kind: SyntaxKind) -> bool {
27662        kind == SyntaxKind::PATH_FACTOR
27663    }
27664    #[inline]
27665    fn cast(syntax: SyntaxNode) -> Option<Self> {
27666        if Self::can_cast(syntax.kind()) {
27667            Some(Self { syntax })
27668        } else {
27669            None
27670        }
27671    }
27672    #[inline]
27673    fn syntax(&self) -> &SyntaxNode {
27674        &self.syntax
27675    }
27676}
27677impl AstNode for PathPattern {
27678    #[inline]
27679    fn can_cast(kind: SyntaxKind) -> bool {
27680        kind == SyntaxKind::PATH_PATTERN
27681    }
27682    #[inline]
27683    fn cast(syntax: SyntaxNode) -> Option<Self> {
27684        if Self::can_cast(syntax.kind()) {
27685            Some(Self { syntax })
27686        } else {
27687            None
27688        }
27689    }
27690    #[inline]
27691    fn syntax(&self) -> &SyntaxNode {
27692        &self.syntax
27693    }
27694}
27695impl AstNode for PathPatternList {
27696    #[inline]
27697    fn can_cast(kind: SyntaxKind) -> bool {
27698        kind == SyntaxKind::PATH_PATTERN_LIST
27699    }
27700    #[inline]
27701    fn cast(syntax: SyntaxNode) -> Option<Self> {
27702        if Self::can_cast(syntax.kind()) {
27703            Some(Self { syntax })
27704        } else {
27705            None
27706        }
27707    }
27708    #[inline]
27709    fn syntax(&self) -> &SyntaxNode {
27710        &self.syntax
27711    }
27712}
27713impl AstNode for PathSegment {
27714    #[inline]
27715    fn can_cast(kind: SyntaxKind) -> bool {
27716        kind == SyntaxKind::PATH_SEGMENT
27717    }
27718    #[inline]
27719    fn cast(syntax: SyntaxNode) -> Option<Self> {
27720        if Self::can_cast(syntax.kind()) {
27721            Some(Self { syntax })
27722        } else {
27723            None
27724        }
27725    }
27726    #[inline]
27727    fn syntax(&self) -> &SyntaxNode {
27728        &self.syntax
27729    }
27730}
27731impl AstNode for PathType {
27732    #[inline]
27733    fn can_cast(kind: SyntaxKind) -> bool {
27734        kind == SyntaxKind::PATH_TYPE
27735    }
27736    #[inline]
27737    fn cast(syntax: SyntaxNode) -> Option<Self> {
27738        if Self::can_cast(syntax.kind()) {
27739            Some(Self { syntax })
27740        } else {
27741            None
27742        }
27743    }
27744    #[inline]
27745    fn syntax(&self) -> &SyntaxNode {
27746        &self.syntax
27747    }
27748}
27749impl AstNode for PercentType {
27750    #[inline]
27751    fn can_cast(kind: SyntaxKind) -> bool {
27752        kind == SyntaxKind::PERCENT_TYPE
27753    }
27754    #[inline]
27755    fn cast(syntax: SyntaxNode) -> Option<Self> {
27756        if Self::can_cast(syntax.kind()) {
27757            Some(Self { syntax })
27758        } else {
27759            None
27760        }
27761    }
27762    #[inline]
27763    fn syntax(&self) -> &SyntaxNode {
27764        &self.syntax
27765    }
27766}
27767impl AstNode for PercentTypeClause {
27768    #[inline]
27769    fn can_cast(kind: SyntaxKind) -> bool {
27770        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
27771    }
27772    #[inline]
27773    fn cast(syntax: SyntaxNode) -> Option<Self> {
27774        if Self::can_cast(syntax.kind()) {
27775            Some(Self { syntax })
27776        } else {
27777            None
27778        }
27779    }
27780    #[inline]
27781    fn syntax(&self) -> &SyntaxNode {
27782        &self.syntax
27783    }
27784}
27785impl AstNode for PositionFn {
27786    #[inline]
27787    fn can_cast(kind: SyntaxKind) -> bool {
27788        kind == SyntaxKind::POSITION_FN
27789    }
27790    #[inline]
27791    fn cast(syntax: SyntaxNode) -> Option<Self> {
27792        if Self::can_cast(syntax.kind()) {
27793            Some(Self { syntax })
27794        } else {
27795            None
27796        }
27797    }
27798    #[inline]
27799    fn syntax(&self) -> &SyntaxNode {
27800        &self.syntax
27801    }
27802}
27803impl AstNode for PostfixExpr {
27804    #[inline]
27805    fn can_cast(kind: SyntaxKind) -> bool {
27806        kind == SyntaxKind::POSTFIX_EXPR
27807    }
27808    #[inline]
27809    fn cast(syntax: SyntaxNode) -> Option<Self> {
27810        if Self::can_cast(syntax.kind()) {
27811            Some(Self { syntax })
27812        } else {
27813            None
27814        }
27815    }
27816    #[inline]
27817    fn syntax(&self) -> &SyntaxNode {
27818        &self.syntax
27819    }
27820}
27821impl AstNode for PrefixExpr {
27822    #[inline]
27823    fn can_cast(kind: SyntaxKind) -> bool {
27824        kind == SyntaxKind::PREFIX_EXPR
27825    }
27826    #[inline]
27827    fn cast(syntax: SyntaxNode) -> Option<Self> {
27828        if Self::can_cast(syntax.kind()) {
27829            Some(Self { syntax })
27830        } else {
27831            None
27832        }
27833    }
27834    #[inline]
27835    fn syntax(&self) -> &SyntaxNode {
27836        &self.syntax
27837    }
27838}
27839impl AstNode for Prepare {
27840    #[inline]
27841    fn can_cast(kind: SyntaxKind) -> bool {
27842        kind == SyntaxKind::PREPARE
27843    }
27844    #[inline]
27845    fn cast(syntax: SyntaxNode) -> Option<Self> {
27846        if Self::can_cast(syntax.kind()) {
27847            Some(Self { syntax })
27848        } else {
27849            None
27850        }
27851    }
27852    #[inline]
27853    fn syntax(&self) -> &SyntaxNode {
27854        &self.syntax
27855    }
27856}
27857impl AstNode for PrepareTransaction {
27858    #[inline]
27859    fn can_cast(kind: SyntaxKind) -> bool {
27860        kind == SyntaxKind::PREPARE_TRANSACTION
27861    }
27862    #[inline]
27863    fn cast(syntax: SyntaxNode) -> Option<Self> {
27864        if Self::can_cast(syntax.kind()) {
27865            Some(Self { syntax })
27866        } else {
27867            None
27868        }
27869    }
27870    #[inline]
27871    fn syntax(&self) -> &SyntaxNode {
27872        &self.syntax
27873    }
27874}
27875impl AstNode for PreserveRows {
27876    #[inline]
27877    fn can_cast(kind: SyntaxKind) -> bool {
27878        kind == SyntaxKind::PRESERVE_ROWS
27879    }
27880    #[inline]
27881    fn cast(syntax: SyntaxNode) -> Option<Self> {
27882        if Self::can_cast(syntax.kind()) {
27883            Some(Self { syntax })
27884        } else {
27885            None
27886        }
27887    }
27888    #[inline]
27889    fn syntax(&self) -> &SyntaxNode {
27890        &self.syntax
27891    }
27892}
27893impl AstNode for PrimaryKeyConstraint {
27894    #[inline]
27895    fn can_cast(kind: SyntaxKind) -> bool {
27896        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
27897    }
27898    #[inline]
27899    fn cast(syntax: SyntaxNode) -> Option<Self> {
27900        if Self::can_cast(syntax.kind()) {
27901            Some(Self { syntax })
27902        } else {
27903            None
27904        }
27905    }
27906    #[inline]
27907    fn syntax(&self) -> &SyntaxNode {
27908        &self.syntax
27909    }
27910}
27911impl AstNode for PrivilegeTarget {
27912    #[inline]
27913    fn can_cast(kind: SyntaxKind) -> bool {
27914        kind == SyntaxKind::PRIVILEGE_TARGET
27915    }
27916    #[inline]
27917    fn cast(syntax: SyntaxNode) -> Option<Self> {
27918        if Self::can_cast(syntax.kind()) {
27919            Some(Self { syntax })
27920        } else {
27921            None
27922        }
27923    }
27924    #[inline]
27925    fn syntax(&self) -> &SyntaxNode {
27926        &self.syntax
27927    }
27928}
27929impl AstNode for Privileges {
27930    #[inline]
27931    fn can_cast(kind: SyntaxKind) -> bool {
27932        kind == SyntaxKind::PRIVILEGES
27933    }
27934    #[inline]
27935    fn cast(syntax: SyntaxNode) -> Option<Self> {
27936        if Self::can_cast(syntax.kind()) {
27937            Some(Self { syntax })
27938        } else {
27939            None
27940        }
27941    }
27942    #[inline]
27943    fn syntax(&self) -> &SyntaxNode {
27944        &self.syntax
27945    }
27946}
27947impl AstNode for PropertiesList {
27948    #[inline]
27949    fn can_cast(kind: SyntaxKind) -> bool {
27950        kind == SyntaxKind::PROPERTIES_LIST
27951    }
27952    #[inline]
27953    fn cast(syntax: SyntaxNode) -> Option<Self> {
27954        if Self::can_cast(syntax.kind()) {
27955            Some(Self { syntax })
27956        } else {
27957            None
27958        }
27959    }
27960    #[inline]
27961    fn syntax(&self) -> &SyntaxNode {
27962        &self.syntax
27963    }
27964}
27965impl AstNode for PublicationObject {
27966    #[inline]
27967    fn can_cast(kind: SyntaxKind) -> bool {
27968        kind == SyntaxKind::PUBLICATION_OBJECT
27969    }
27970    #[inline]
27971    fn cast(syntax: SyntaxNode) -> Option<Self> {
27972        if Self::can_cast(syntax.kind()) {
27973            Some(Self { syntax })
27974        } else {
27975            None
27976        }
27977    }
27978    #[inline]
27979    fn syntax(&self) -> &SyntaxNode {
27980        &self.syntax
27981    }
27982}
27983impl AstNode for ReadCommitted {
27984    #[inline]
27985    fn can_cast(kind: SyntaxKind) -> bool {
27986        kind == SyntaxKind::READ_COMMITTED
27987    }
27988    #[inline]
27989    fn cast(syntax: SyntaxNode) -> Option<Self> {
27990        if Self::can_cast(syntax.kind()) {
27991            Some(Self { syntax })
27992        } else {
27993            None
27994        }
27995    }
27996    #[inline]
27997    fn syntax(&self) -> &SyntaxNode {
27998        &self.syntax
27999    }
28000}
28001impl AstNode for ReadOnly {
28002    #[inline]
28003    fn can_cast(kind: SyntaxKind) -> bool {
28004        kind == SyntaxKind::READ_ONLY
28005    }
28006    #[inline]
28007    fn cast(syntax: SyntaxNode) -> Option<Self> {
28008        if Self::can_cast(syntax.kind()) {
28009            Some(Self { syntax })
28010        } else {
28011            None
28012        }
28013    }
28014    #[inline]
28015    fn syntax(&self) -> &SyntaxNode {
28016        &self.syntax
28017    }
28018}
28019impl AstNode for ReadUncommitted {
28020    #[inline]
28021    fn can_cast(kind: SyntaxKind) -> bool {
28022        kind == SyntaxKind::READ_UNCOMMITTED
28023    }
28024    #[inline]
28025    fn cast(syntax: SyntaxNode) -> Option<Self> {
28026        if Self::can_cast(syntax.kind()) {
28027            Some(Self { syntax })
28028        } else {
28029            None
28030        }
28031    }
28032    #[inline]
28033    fn syntax(&self) -> &SyntaxNode {
28034        &self.syntax
28035    }
28036}
28037impl AstNode for ReadWrite {
28038    #[inline]
28039    fn can_cast(kind: SyntaxKind) -> bool {
28040        kind == SyntaxKind::READ_WRITE
28041    }
28042    #[inline]
28043    fn cast(syntax: SyntaxNode) -> Option<Self> {
28044        if Self::can_cast(syntax.kind()) {
28045            Some(Self { syntax })
28046        } else {
28047            None
28048        }
28049    }
28050    #[inline]
28051    fn syntax(&self) -> &SyntaxNode {
28052        &self.syntax
28053    }
28054}
28055impl AstNode for Reassign {
28056    #[inline]
28057    fn can_cast(kind: SyntaxKind) -> bool {
28058        kind == SyntaxKind::REASSIGN
28059    }
28060    #[inline]
28061    fn cast(syntax: SyntaxNode) -> Option<Self> {
28062        if Self::can_cast(syntax.kind()) {
28063            Some(Self { syntax })
28064        } else {
28065            None
28066        }
28067    }
28068    #[inline]
28069    fn syntax(&self) -> &SyntaxNode {
28070        &self.syntax
28071    }
28072}
28073impl AstNode for ReferencesConstraint {
28074    #[inline]
28075    fn can_cast(kind: SyntaxKind) -> bool {
28076        kind == SyntaxKind::REFERENCES_CONSTRAINT
28077    }
28078    #[inline]
28079    fn cast(syntax: SyntaxNode) -> Option<Self> {
28080        if Self::can_cast(syntax.kind()) {
28081            Some(Self { syntax })
28082        } else {
28083            None
28084        }
28085    }
28086    #[inline]
28087    fn syntax(&self) -> &SyntaxNode {
28088        &self.syntax
28089    }
28090}
28091impl AstNode for Referencing {
28092    #[inline]
28093    fn can_cast(kind: SyntaxKind) -> bool {
28094        kind == SyntaxKind::REFERENCING
28095    }
28096    #[inline]
28097    fn cast(syntax: SyntaxNode) -> Option<Self> {
28098        if Self::can_cast(syntax.kind()) {
28099            Some(Self { syntax })
28100        } else {
28101            None
28102        }
28103    }
28104    #[inline]
28105    fn syntax(&self) -> &SyntaxNode {
28106        &self.syntax
28107    }
28108}
28109impl AstNode for ReferencingTable {
28110    #[inline]
28111    fn can_cast(kind: SyntaxKind) -> bool {
28112        kind == SyntaxKind::REFERENCING_TABLE
28113    }
28114    #[inline]
28115    fn cast(syntax: SyntaxNode) -> Option<Self> {
28116        if Self::can_cast(syntax.kind()) {
28117            Some(Self { syntax })
28118        } else {
28119            None
28120        }
28121    }
28122    #[inline]
28123    fn syntax(&self) -> &SyntaxNode {
28124        &self.syntax
28125    }
28126}
28127impl AstNode for Refresh {
28128    #[inline]
28129    fn can_cast(kind: SyntaxKind) -> bool {
28130        kind == SyntaxKind::REFRESH
28131    }
28132    #[inline]
28133    fn cast(syntax: SyntaxNode) -> Option<Self> {
28134        if Self::can_cast(syntax.kind()) {
28135            Some(Self { syntax })
28136        } else {
28137            None
28138        }
28139    }
28140    #[inline]
28141    fn syntax(&self) -> &SyntaxNode {
28142        &self.syntax
28143    }
28144}
28145impl AstNode for RefreshCollationVersion {
28146    #[inline]
28147    fn can_cast(kind: SyntaxKind) -> bool {
28148        kind == SyntaxKind::REFRESH_COLLATION_VERSION
28149    }
28150    #[inline]
28151    fn cast(syntax: SyntaxNode) -> Option<Self> {
28152        if Self::can_cast(syntax.kind()) {
28153            Some(Self { syntax })
28154        } else {
28155            None
28156        }
28157    }
28158    #[inline]
28159    fn syntax(&self) -> &SyntaxNode {
28160        &self.syntax
28161    }
28162}
28163impl AstNode for RefreshVersion {
28164    #[inline]
28165    fn can_cast(kind: SyntaxKind) -> bool {
28166        kind == SyntaxKind::REFRESH_VERSION
28167    }
28168    #[inline]
28169    fn cast(syntax: SyntaxNode) -> Option<Self> {
28170        if Self::can_cast(syntax.kind()) {
28171            Some(Self { syntax })
28172        } else {
28173            None
28174        }
28175    }
28176    #[inline]
28177    fn syntax(&self) -> &SyntaxNode {
28178        &self.syntax
28179    }
28180}
28181impl AstNode for Reindex {
28182    #[inline]
28183    fn can_cast(kind: SyntaxKind) -> bool {
28184        kind == SyntaxKind::REINDEX
28185    }
28186    #[inline]
28187    fn cast(syntax: SyntaxNode) -> Option<Self> {
28188        if Self::can_cast(syntax.kind()) {
28189            Some(Self { syntax })
28190        } else {
28191            None
28192        }
28193    }
28194    #[inline]
28195    fn syntax(&self) -> &SyntaxNode {
28196        &self.syntax
28197    }
28198}
28199impl AstNode for RelationName {
28200    #[inline]
28201    fn can_cast(kind: SyntaxKind) -> bool {
28202        kind == SyntaxKind::RELATION_NAME
28203    }
28204    #[inline]
28205    fn cast(syntax: SyntaxNode) -> Option<Self> {
28206        if Self::can_cast(syntax.kind()) {
28207            Some(Self { syntax })
28208        } else {
28209            None
28210        }
28211    }
28212    #[inline]
28213    fn syntax(&self) -> &SyntaxNode {
28214        &self.syntax
28215    }
28216}
28217impl AstNode for ReleaseSavepoint {
28218    #[inline]
28219    fn can_cast(kind: SyntaxKind) -> bool {
28220        kind == SyntaxKind::RELEASE_SAVEPOINT
28221    }
28222    #[inline]
28223    fn cast(syntax: SyntaxNode) -> Option<Self> {
28224        if Self::can_cast(syntax.kind()) {
28225            Some(Self { syntax })
28226        } else {
28227            None
28228        }
28229    }
28230    #[inline]
28231    fn syntax(&self) -> &SyntaxNode {
28232        &self.syntax
28233    }
28234}
28235impl AstNode for RenameAttribute {
28236    #[inline]
28237    fn can_cast(kind: SyntaxKind) -> bool {
28238        kind == SyntaxKind::RENAME_ATTRIBUTE
28239    }
28240    #[inline]
28241    fn cast(syntax: SyntaxNode) -> Option<Self> {
28242        if Self::can_cast(syntax.kind()) {
28243            Some(Self { syntax })
28244        } else {
28245            None
28246        }
28247    }
28248    #[inline]
28249    fn syntax(&self) -> &SyntaxNode {
28250        &self.syntax
28251    }
28252}
28253impl AstNode for RenameColumn {
28254    #[inline]
28255    fn can_cast(kind: SyntaxKind) -> bool {
28256        kind == SyntaxKind::RENAME_COLUMN
28257    }
28258    #[inline]
28259    fn cast(syntax: SyntaxNode) -> Option<Self> {
28260        if Self::can_cast(syntax.kind()) {
28261            Some(Self { syntax })
28262        } else {
28263            None
28264        }
28265    }
28266    #[inline]
28267    fn syntax(&self) -> &SyntaxNode {
28268        &self.syntax
28269    }
28270}
28271impl AstNode for RenameConstraint {
28272    #[inline]
28273    fn can_cast(kind: SyntaxKind) -> bool {
28274        kind == SyntaxKind::RENAME_CONSTRAINT
28275    }
28276    #[inline]
28277    fn cast(syntax: SyntaxNode) -> Option<Self> {
28278        if Self::can_cast(syntax.kind()) {
28279            Some(Self { syntax })
28280        } else {
28281            None
28282        }
28283    }
28284    #[inline]
28285    fn syntax(&self) -> &SyntaxNode {
28286        &self.syntax
28287    }
28288}
28289impl AstNode for RenameTo {
28290    #[inline]
28291    fn can_cast(kind: SyntaxKind) -> bool {
28292        kind == SyntaxKind::RENAME_TO
28293    }
28294    #[inline]
28295    fn cast(syntax: SyntaxNode) -> Option<Self> {
28296        if Self::can_cast(syntax.kind()) {
28297            Some(Self { syntax })
28298        } else {
28299            None
28300        }
28301    }
28302    #[inline]
28303    fn syntax(&self) -> &SyntaxNode {
28304        &self.syntax
28305    }
28306}
28307impl AstNode for RenameValue {
28308    #[inline]
28309    fn can_cast(kind: SyntaxKind) -> bool {
28310        kind == SyntaxKind::RENAME_VALUE
28311    }
28312    #[inline]
28313    fn cast(syntax: SyntaxNode) -> Option<Self> {
28314        if Self::can_cast(syntax.kind()) {
28315            Some(Self { syntax })
28316        } else {
28317            None
28318        }
28319    }
28320    #[inline]
28321    fn syntax(&self) -> &SyntaxNode {
28322        &self.syntax
28323    }
28324}
28325impl AstNode for Repack {
28326    #[inline]
28327    fn can_cast(kind: SyntaxKind) -> bool {
28328        kind == SyntaxKind::REPACK
28329    }
28330    #[inline]
28331    fn cast(syntax: SyntaxNode) -> Option<Self> {
28332        if Self::can_cast(syntax.kind()) {
28333            Some(Self { syntax })
28334        } else {
28335            None
28336        }
28337    }
28338    #[inline]
28339    fn syntax(&self) -> &SyntaxNode {
28340        &self.syntax
28341    }
28342}
28343impl AstNode for RepeatableClause {
28344    #[inline]
28345    fn can_cast(kind: SyntaxKind) -> bool {
28346        kind == SyntaxKind::REPEATABLE_CLAUSE
28347    }
28348    #[inline]
28349    fn cast(syntax: SyntaxNode) -> Option<Self> {
28350        if Self::can_cast(syntax.kind()) {
28351            Some(Self { syntax })
28352        } else {
28353            None
28354        }
28355    }
28356    #[inline]
28357    fn syntax(&self) -> &SyntaxNode {
28358        &self.syntax
28359    }
28360}
28361impl AstNode for RepeatableRead {
28362    #[inline]
28363    fn can_cast(kind: SyntaxKind) -> bool {
28364        kind == SyntaxKind::REPEATABLE_READ
28365    }
28366    #[inline]
28367    fn cast(syntax: SyntaxNode) -> Option<Self> {
28368        if Self::can_cast(syntax.kind()) {
28369            Some(Self { syntax })
28370        } else {
28371            None
28372        }
28373    }
28374    #[inline]
28375    fn syntax(&self) -> &SyntaxNode {
28376        &self.syntax
28377    }
28378}
28379impl AstNode for ReplicaIdentity {
28380    #[inline]
28381    fn can_cast(kind: SyntaxKind) -> bool {
28382        kind == SyntaxKind::REPLICA_IDENTITY
28383    }
28384    #[inline]
28385    fn cast(syntax: SyntaxNode) -> Option<Self> {
28386        if Self::can_cast(syntax.kind()) {
28387            Some(Self { syntax })
28388        } else {
28389            None
28390        }
28391    }
28392    #[inline]
28393    fn syntax(&self) -> &SyntaxNode {
28394        &self.syntax
28395    }
28396}
28397impl AstNode for Reset {
28398    #[inline]
28399    fn can_cast(kind: SyntaxKind) -> bool {
28400        kind == SyntaxKind::RESET
28401    }
28402    #[inline]
28403    fn cast(syntax: SyntaxNode) -> Option<Self> {
28404        if Self::can_cast(syntax.kind()) {
28405            Some(Self { syntax })
28406        } else {
28407            None
28408        }
28409    }
28410    #[inline]
28411    fn syntax(&self) -> &SyntaxNode {
28412        &self.syntax
28413    }
28414}
28415impl AstNode for ResetConfigParam {
28416    #[inline]
28417    fn can_cast(kind: SyntaxKind) -> bool {
28418        kind == SyntaxKind::RESET_CONFIG_PARAM
28419    }
28420    #[inline]
28421    fn cast(syntax: SyntaxNode) -> Option<Self> {
28422        if Self::can_cast(syntax.kind()) {
28423            Some(Self { syntax })
28424        } else {
28425            None
28426        }
28427    }
28428    #[inline]
28429    fn syntax(&self) -> &SyntaxNode {
28430        &self.syntax
28431    }
28432}
28433impl AstNode for ResetFuncOption {
28434    #[inline]
28435    fn can_cast(kind: SyntaxKind) -> bool {
28436        kind == SyntaxKind::RESET_FUNC_OPTION
28437    }
28438    #[inline]
28439    fn cast(syntax: SyntaxNode) -> Option<Self> {
28440        if Self::can_cast(syntax.kind()) {
28441            Some(Self { syntax })
28442        } else {
28443            None
28444        }
28445    }
28446    #[inline]
28447    fn syntax(&self) -> &SyntaxNode {
28448        &self.syntax
28449    }
28450}
28451impl AstNode for ResetOptions {
28452    #[inline]
28453    fn can_cast(kind: SyntaxKind) -> bool {
28454        kind == SyntaxKind::RESET_OPTIONS
28455    }
28456    #[inline]
28457    fn cast(syntax: SyntaxNode) -> Option<Self> {
28458        if Self::can_cast(syntax.kind()) {
28459            Some(Self { syntax })
28460        } else {
28461            None
28462        }
28463    }
28464    #[inline]
28465    fn syntax(&self) -> &SyntaxNode {
28466        &self.syntax
28467    }
28468}
28469impl AstNode for ResetSessionAuth {
28470    #[inline]
28471    fn can_cast(kind: SyntaxKind) -> bool {
28472        kind == SyntaxKind::RESET_SESSION_AUTH
28473    }
28474    #[inline]
28475    fn cast(syntax: SyntaxNode) -> Option<Self> {
28476        if Self::can_cast(syntax.kind()) {
28477            Some(Self { syntax })
28478        } else {
28479            None
28480        }
28481    }
28482    #[inline]
28483    fn syntax(&self) -> &SyntaxNode {
28484        &self.syntax
28485    }
28486}
28487impl AstNode for Restart {
28488    #[inline]
28489    fn can_cast(kind: SyntaxKind) -> bool {
28490        kind == SyntaxKind::RESTART
28491    }
28492    #[inline]
28493    fn cast(syntax: SyntaxNode) -> Option<Self> {
28494        if Self::can_cast(syntax.kind()) {
28495            Some(Self { syntax })
28496        } else {
28497            None
28498        }
28499    }
28500    #[inline]
28501    fn syntax(&self) -> &SyntaxNode {
28502        &self.syntax
28503    }
28504}
28505impl AstNode for Restrict {
28506    #[inline]
28507    fn can_cast(kind: SyntaxKind) -> bool {
28508        kind == SyntaxKind::RESTRICT
28509    }
28510    #[inline]
28511    fn cast(syntax: SyntaxNode) -> Option<Self> {
28512        if Self::can_cast(syntax.kind()) {
28513            Some(Self { syntax })
28514        } else {
28515            None
28516        }
28517    }
28518    #[inline]
28519    fn syntax(&self) -> &SyntaxNode {
28520        &self.syntax
28521    }
28522}
28523impl AstNode for RetType {
28524    #[inline]
28525    fn can_cast(kind: SyntaxKind) -> bool {
28526        kind == SyntaxKind::RET_TYPE
28527    }
28528    #[inline]
28529    fn cast(syntax: SyntaxNode) -> Option<Self> {
28530        if Self::can_cast(syntax.kind()) {
28531            Some(Self { syntax })
28532        } else {
28533            None
28534        }
28535    }
28536    #[inline]
28537    fn syntax(&self) -> &SyntaxNode {
28538        &self.syntax
28539    }
28540}
28541impl AstNode for ReturnFuncOption {
28542    #[inline]
28543    fn can_cast(kind: SyntaxKind) -> bool {
28544        kind == SyntaxKind::RETURN_FUNC_OPTION
28545    }
28546    #[inline]
28547    fn cast(syntax: SyntaxNode) -> Option<Self> {
28548        if Self::can_cast(syntax.kind()) {
28549            Some(Self { syntax })
28550        } else {
28551            None
28552        }
28553    }
28554    #[inline]
28555    fn syntax(&self) -> &SyntaxNode {
28556        &self.syntax
28557    }
28558}
28559impl AstNode for ReturningClause {
28560    #[inline]
28561    fn can_cast(kind: SyntaxKind) -> bool {
28562        kind == SyntaxKind::RETURNING_CLAUSE
28563    }
28564    #[inline]
28565    fn cast(syntax: SyntaxNode) -> Option<Self> {
28566        if Self::can_cast(syntax.kind()) {
28567            Some(Self { syntax })
28568        } else {
28569            None
28570        }
28571    }
28572    #[inline]
28573    fn syntax(&self) -> &SyntaxNode {
28574        &self.syntax
28575    }
28576}
28577impl AstNode for ReturningOption {
28578    #[inline]
28579    fn can_cast(kind: SyntaxKind) -> bool {
28580        kind == SyntaxKind::RETURNING_OPTION
28581    }
28582    #[inline]
28583    fn cast(syntax: SyntaxNode) -> Option<Self> {
28584        if Self::can_cast(syntax.kind()) {
28585            Some(Self { syntax })
28586        } else {
28587            None
28588        }
28589    }
28590    #[inline]
28591    fn syntax(&self) -> &SyntaxNode {
28592        &self.syntax
28593    }
28594}
28595impl AstNode for ReturningOptionList {
28596    #[inline]
28597    fn can_cast(kind: SyntaxKind) -> bool {
28598        kind == SyntaxKind::RETURNING_OPTION_LIST
28599    }
28600    #[inline]
28601    fn cast(syntax: SyntaxNode) -> Option<Self> {
28602        if Self::can_cast(syntax.kind()) {
28603            Some(Self { syntax })
28604        } else {
28605            None
28606        }
28607    }
28608    #[inline]
28609    fn syntax(&self) -> &SyntaxNode {
28610        &self.syntax
28611    }
28612}
28613impl AstNode for Revoke {
28614    #[inline]
28615    fn can_cast(kind: SyntaxKind) -> bool {
28616        kind == SyntaxKind::REVOKE
28617    }
28618    #[inline]
28619    fn cast(syntax: SyntaxNode) -> Option<Self> {
28620        if Self::can_cast(syntax.kind()) {
28621            Some(Self { syntax })
28622        } else {
28623            None
28624        }
28625    }
28626    #[inline]
28627    fn syntax(&self) -> &SyntaxNode {
28628        &self.syntax
28629    }
28630}
28631impl AstNode for RevokeCommand {
28632    #[inline]
28633    fn can_cast(kind: SyntaxKind) -> bool {
28634        kind == SyntaxKind::REVOKE_COMMAND
28635    }
28636    #[inline]
28637    fn cast(syntax: SyntaxNode) -> Option<Self> {
28638        if Self::can_cast(syntax.kind()) {
28639            Some(Self { syntax })
28640        } else {
28641            None
28642        }
28643    }
28644    #[inline]
28645    fn syntax(&self) -> &SyntaxNode {
28646        &self.syntax
28647    }
28648}
28649impl AstNode for RevokeCommandList {
28650    #[inline]
28651    fn can_cast(kind: SyntaxKind) -> bool {
28652        kind == SyntaxKind::REVOKE_COMMAND_LIST
28653    }
28654    #[inline]
28655    fn cast(syntax: SyntaxNode) -> Option<Self> {
28656        if Self::can_cast(syntax.kind()) {
28657            Some(Self { syntax })
28658        } else {
28659            None
28660        }
28661    }
28662    #[inline]
28663    fn syntax(&self) -> &SyntaxNode {
28664        &self.syntax
28665    }
28666}
28667impl AstNode for RevokeDefaultPrivileges {
28668    #[inline]
28669    fn can_cast(kind: SyntaxKind) -> bool {
28670        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
28671    }
28672    #[inline]
28673    fn cast(syntax: SyntaxNode) -> Option<Self> {
28674        if Self::can_cast(syntax.kind()) {
28675            Some(Self { syntax })
28676        } else {
28677            None
28678        }
28679    }
28680    #[inline]
28681    fn syntax(&self) -> &SyntaxNode {
28682        &self.syntax
28683    }
28684}
28685impl AstNode for Role {
28686    #[inline]
28687    fn can_cast(kind: SyntaxKind) -> bool {
28688        kind == SyntaxKind::ROLE
28689    }
28690    #[inline]
28691    fn cast(syntax: SyntaxNode) -> Option<Self> {
28692        if Self::can_cast(syntax.kind()) {
28693            Some(Self { syntax })
28694        } else {
28695            None
28696        }
28697    }
28698    #[inline]
28699    fn syntax(&self) -> &SyntaxNode {
28700        &self.syntax
28701    }
28702}
28703impl AstNode for RoleOption {
28704    #[inline]
28705    fn can_cast(kind: SyntaxKind) -> bool {
28706        kind == SyntaxKind::ROLE_OPTION
28707    }
28708    #[inline]
28709    fn cast(syntax: SyntaxNode) -> Option<Self> {
28710        if Self::can_cast(syntax.kind()) {
28711            Some(Self { syntax })
28712        } else {
28713            None
28714        }
28715    }
28716    #[inline]
28717    fn syntax(&self) -> &SyntaxNode {
28718        &self.syntax
28719    }
28720}
28721impl AstNode for RoleOptionList {
28722    #[inline]
28723    fn can_cast(kind: SyntaxKind) -> bool {
28724        kind == SyntaxKind::ROLE_OPTION_LIST
28725    }
28726    #[inline]
28727    fn cast(syntax: SyntaxNode) -> Option<Self> {
28728        if Self::can_cast(syntax.kind()) {
28729            Some(Self { syntax })
28730        } else {
28731            None
28732        }
28733    }
28734    #[inline]
28735    fn syntax(&self) -> &SyntaxNode {
28736        &self.syntax
28737    }
28738}
28739impl AstNode for RoleRef {
28740    #[inline]
28741    fn can_cast(kind: SyntaxKind) -> bool {
28742        kind == SyntaxKind::ROLE_REF
28743    }
28744    #[inline]
28745    fn cast(syntax: SyntaxNode) -> Option<Self> {
28746        if Self::can_cast(syntax.kind()) {
28747            Some(Self { syntax })
28748        } else {
28749            None
28750        }
28751    }
28752    #[inline]
28753    fn syntax(&self) -> &SyntaxNode {
28754        &self.syntax
28755    }
28756}
28757impl AstNode for RoleRefList {
28758    #[inline]
28759    fn can_cast(kind: SyntaxKind) -> bool {
28760        kind == SyntaxKind::ROLE_REF_LIST
28761    }
28762    #[inline]
28763    fn cast(syntax: SyntaxNode) -> Option<Self> {
28764        if Self::can_cast(syntax.kind()) {
28765            Some(Self { syntax })
28766        } else {
28767            None
28768        }
28769    }
28770    #[inline]
28771    fn syntax(&self) -> &SyntaxNode {
28772        &self.syntax
28773    }
28774}
28775impl AstNode for Rollback {
28776    #[inline]
28777    fn can_cast(kind: SyntaxKind) -> bool {
28778        kind == SyntaxKind::ROLLBACK
28779    }
28780    #[inline]
28781    fn cast(syntax: SyntaxNode) -> Option<Self> {
28782        if Self::can_cast(syntax.kind()) {
28783            Some(Self { syntax })
28784        } else {
28785            None
28786        }
28787    }
28788    #[inline]
28789    fn syntax(&self) -> &SyntaxNode {
28790        &self.syntax
28791    }
28792}
28793impl AstNode for Row {
28794    #[inline]
28795    fn can_cast(kind: SyntaxKind) -> bool {
28796        kind == SyntaxKind::ROW
28797    }
28798    #[inline]
28799    fn cast(syntax: SyntaxNode) -> Option<Self> {
28800        if Self::can_cast(syntax.kind()) {
28801            Some(Self { syntax })
28802        } else {
28803            None
28804        }
28805    }
28806    #[inline]
28807    fn syntax(&self) -> &SyntaxNode {
28808        &self.syntax
28809    }
28810}
28811impl AstNode for RowList {
28812    #[inline]
28813    fn can_cast(kind: SyntaxKind) -> bool {
28814        kind == SyntaxKind::ROW_LIST
28815    }
28816    #[inline]
28817    fn cast(syntax: SyntaxNode) -> Option<Self> {
28818        if Self::can_cast(syntax.kind()) {
28819            Some(Self { syntax })
28820        } else {
28821            None
28822        }
28823    }
28824    #[inline]
28825    fn syntax(&self) -> &SyntaxNode {
28826        &self.syntax
28827    }
28828}
28829impl AstNode for RowsFuncOption {
28830    #[inline]
28831    fn can_cast(kind: SyntaxKind) -> bool {
28832        kind == SyntaxKind::ROWS_FUNC_OPTION
28833    }
28834    #[inline]
28835    fn cast(syntax: SyntaxNode) -> Option<Self> {
28836        if Self::can_cast(syntax.kind()) {
28837            Some(Self { syntax })
28838        } else {
28839            None
28840        }
28841    }
28842    #[inline]
28843    fn syntax(&self) -> &SyntaxNode {
28844        &self.syntax
28845    }
28846}
28847impl AstNode for Savepoint {
28848    #[inline]
28849    fn can_cast(kind: SyntaxKind) -> bool {
28850        kind == SyntaxKind::SAVEPOINT
28851    }
28852    #[inline]
28853    fn cast(syntax: SyntaxNode) -> Option<Self> {
28854        if Self::can_cast(syntax.kind()) {
28855            Some(Self { syntax })
28856        } else {
28857            None
28858        }
28859    }
28860    #[inline]
28861    fn syntax(&self) -> &SyntaxNode {
28862        &self.syntax
28863    }
28864}
28865impl AstNode for SecurityFuncOption {
28866    #[inline]
28867    fn can_cast(kind: SyntaxKind) -> bool {
28868        kind == SyntaxKind::SECURITY_FUNC_OPTION
28869    }
28870    #[inline]
28871    fn cast(syntax: SyntaxNode) -> Option<Self> {
28872        if Self::can_cast(syntax.kind()) {
28873            Some(Self { syntax })
28874        } else {
28875            None
28876        }
28877    }
28878    #[inline]
28879    fn syntax(&self) -> &SyntaxNode {
28880        &self.syntax
28881    }
28882}
28883impl AstNode for SecurityLabel {
28884    #[inline]
28885    fn can_cast(kind: SyntaxKind) -> bool {
28886        kind == SyntaxKind::SECURITY_LABEL
28887    }
28888    #[inline]
28889    fn cast(syntax: SyntaxNode) -> Option<Self> {
28890        if Self::can_cast(syntax.kind()) {
28891            Some(Self { syntax })
28892        } else {
28893            None
28894        }
28895    }
28896    #[inline]
28897    fn syntax(&self) -> &SyntaxNode {
28898        &self.syntax
28899    }
28900}
28901impl AstNode for Select {
28902    #[inline]
28903    fn can_cast(kind: SyntaxKind) -> bool {
28904        kind == SyntaxKind::SELECT
28905    }
28906    #[inline]
28907    fn cast(syntax: SyntaxNode) -> Option<Self> {
28908        if Self::can_cast(syntax.kind()) {
28909            Some(Self { syntax })
28910        } else {
28911            None
28912        }
28913    }
28914    #[inline]
28915    fn syntax(&self) -> &SyntaxNode {
28916        &self.syntax
28917    }
28918}
28919impl AstNode for SelectClause {
28920    #[inline]
28921    fn can_cast(kind: SyntaxKind) -> bool {
28922        kind == SyntaxKind::SELECT_CLAUSE
28923    }
28924    #[inline]
28925    fn cast(syntax: SyntaxNode) -> Option<Self> {
28926        if Self::can_cast(syntax.kind()) {
28927            Some(Self { syntax })
28928        } else {
28929            None
28930        }
28931    }
28932    #[inline]
28933    fn syntax(&self) -> &SyntaxNode {
28934        &self.syntax
28935    }
28936}
28937impl AstNode for SelectInto {
28938    #[inline]
28939    fn can_cast(kind: SyntaxKind) -> bool {
28940        kind == SyntaxKind::SELECT_INTO
28941    }
28942    #[inline]
28943    fn cast(syntax: SyntaxNode) -> Option<Self> {
28944        if Self::can_cast(syntax.kind()) {
28945            Some(Self { syntax })
28946        } else {
28947            None
28948        }
28949    }
28950    #[inline]
28951    fn syntax(&self) -> &SyntaxNode {
28952        &self.syntax
28953    }
28954}
28955impl AstNode for SequenceOption {
28956    #[inline]
28957    fn can_cast(kind: SyntaxKind) -> bool {
28958        kind == SyntaxKind::SEQUENCE_OPTION
28959    }
28960    #[inline]
28961    fn cast(syntax: SyntaxNode) -> Option<Self> {
28962        if Self::can_cast(syntax.kind()) {
28963            Some(Self { syntax })
28964        } else {
28965            None
28966        }
28967    }
28968    #[inline]
28969    fn syntax(&self) -> &SyntaxNode {
28970        &self.syntax
28971    }
28972}
28973impl AstNode for SequenceOptionList {
28974    #[inline]
28975    fn can_cast(kind: SyntaxKind) -> bool {
28976        kind == SyntaxKind::SEQUENCE_OPTION_LIST
28977    }
28978    #[inline]
28979    fn cast(syntax: SyntaxNode) -> Option<Self> {
28980        if Self::can_cast(syntax.kind()) {
28981            Some(Self { syntax })
28982        } else {
28983            None
28984        }
28985    }
28986    #[inline]
28987    fn syntax(&self) -> &SyntaxNode {
28988        &self.syntax
28989    }
28990}
28991impl AstNode for Serializable {
28992    #[inline]
28993    fn can_cast(kind: SyntaxKind) -> bool {
28994        kind == SyntaxKind::SERIALIZABLE
28995    }
28996    #[inline]
28997    fn cast(syntax: SyntaxNode) -> Option<Self> {
28998        if Self::can_cast(syntax.kind()) {
28999            Some(Self { syntax })
29000        } else {
29001            None
29002        }
29003    }
29004    #[inline]
29005    fn syntax(&self) -> &SyntaxNode {
29006        &self.syntax
29007    }
29008}
29009impl AstNode for ServerName {
29010    #[inline]
29011    fn can_cast(kind: SyntaxKind) -> bool {
29012        kind == SyntaxKind::SERVER_NAME
29013    }
29014    #[inline]
29015    fn cast(syntax: SyntaxNode) -> Option<Self> {
29016        if Self::can_cast(syntax.kind()) {
29017            Some(Self { syntax })
29018        } else {
29019            None
29020        }
29021    }
29022    #[inline]
29023    fn syntax(&self) -> &SyntaxNode {
29024        &self.syntax
29025    }
29026}
29027impl AstNode for Set {
29028    #[inline]
29029    fn can_cast(kind: SyntaxKind) -> bool {
29030        kind == SyntaxKind::SET
29031    }
29032    #[inline]
29033    fn cast(syntax: SyntaxNode) -> Option<Self> {
29034        if Self::can_cast(syntax.kind()) {
29035            Some(Self { syntax })
29036        } else {
29037            None
29038        }
29039    }
29040    #[inline]
29041    fn syntax(&self) -> &SyntaxNode {
29042        &self.syntax
29043    }
29044}
29045impl AstNode for SetAccessMethod {
29046    #[inline]
29047    fn can_cast(kind: SyntaxKind) -> bool {
29048        kind == SyntaxKind::SET_ACCESS_METHOD
29049    }
29050    #[inline]
29051    fn cast(syntax: SyntaxNode) -> Option<Self> {
29052        if Self::can_cast(syntax.kind()) {
29053            Some(Self { syntax })
29054        } else {
29055            None
29056        }
29057    }
29058    #[inline]
29059    fn syntax(&self) -> &SyntaxNode {
29060        &self.syntax
29061    }
29062}
29063impl AstNode for SetClause {
29064    #[inline]
29065    fn can_cast(kind: SyntaxKind) -> bool {
29066        kind == SyntaxKind::SET_CLAUSE
29067    }
29068    #[inline]
29069    fn cast(syntax: SyntaxNode) -> Option<Self> {
29070        if Self::can_cast(syntax.kind()) {
29071            Some(Self { syntax })
29072        } else {
29073            None
29074        }
29075    }
29076    #[inline]
29077    fn syntax(&self) -> &SyntaxNode {
29078        &self.syntax
29079    }
29080}
29081impl AstNode for SetColumnList {
29082    #[inline]
29083    fn can_cast(kind: SyntaxKind) -> bool {
29084        kind == SyntaxKind::SET_COLUMN_LIST
29085    }
29086    #[inline]
29087    fn cast(syntax: SyntaxNode) -> Option<Self> {
29088        if Self::can_cast(syntax.kind()) {
29089            Some(Self { syntax })
29090        } else {
29091            None
29092        }
29093    }
29094    #[inline]
29095    fn syntax(&self) -> &SyntaxNode {
29096        &self.syntax
29097    }
29098}
29099impl AstNode for SetCompression {
29100    #[inline]
29101    fn can_cast(kind: SyntaxKind) -> bool {
29102        kind == SyntaxKind::SET_COMPRESSION
29103    }
29104    #[inline]
29105    fn cast(syntax: SyntaxNode) -> Option<Self> {
29106        if Self::can_cast(syntax.kind()) {
29107            Some(Self { syntax })
29108        } else {
29109            None
29110        }
29111    }
29112    #[inline]
29113    fn syntax(&self) -> &SyntaxNode {
29114        &self.syntax
29115    }
29116}
29117impl AstNode for SetConfigParam {
29118    #[inline]
29119    fn can_cast(kind: SyntaxKind) -> bool {
29120        kind == SyntaxKind::SET_CONFIG_PARAM
29121    }
29122    #[inline]
29123    fn cast(syntax: SyntaxNode) -> Option<Self> {
29124        if Self::can_cast(syntax.kind()) {
29125            Some(Self { syntax })
29126        } else {
29127            None
29128        }
29129    }
29130    #[inline]
29131    fn syntax(&self) -> &SyntaxNode {
29132        &self.syntax
29133    }
29134}
29135impl AstNode for SetConstraints {
29136    #[inline]
29137    fn can_cast(kind: SyntaxKind) -> bool {
29138        kind == SyntaxKind::SET_CONSTRAINTS
29139    }
29140    #[inline]
29141    fn cast(syntax: SyntaxNode) -> Option<Self> {
29142        if Self::can_cast(syntax.kind()) {
29143            Some(Self { syntax })
29144        } else {
29145            None
29146        }
29147    }
29148    #[inline]
29149    fn syntax(&self) -> &SyntaxNode {
29150        &self.syntax
29151    }
29152}
29153impl AstNode for SetDefault {
29154    #[inline]
29155    fn can_cast(kind: SyntaxKind) -> bool {
29156        kind == SyntaxKind::SET_DEFAULT
29157    }
29158    #[inline]
29159    fn cast(syntax: SyntaxNode) -> Option<Self> {
29160        if Self::can_cast(syntax.kind()) {
29161            Some(Self { syntax })
29162        } else {
29163            None
29164        }
29165    }
29166    #[inline]
29167    fn syntax(&self) -> &SyntaxNode {
29168        &self.syntax
29169    }
29170}
29171impl AstNode for SetDefaultColumns {
29172    #[inline]
29173    fn can_cast(kind: SyntaxKind) -> bool {
29174        kind == SyntaxKind::SET_DEFAULT_COLUMNS
29175    }
29176    #[inline]
29177    fn cast(syntax: SyntaxNode) -> Option<Self> {
29178        if Self::can_cast(syntax.kind()) {
29179            Some(Self { syntax })
29180        } else {
29181            None
29182        }
29183    }
29184    #[inline]
29185    fn syntax(&self) -> &SyntaxNode {
29186        &self.syntax
29187    }
29188}
29189impl AstNode for SetExpr {
29190    #[inline]
29191    fn can_cast(kind: SyntaxKind) -> bool {
29192        kind == SyntaxKind::SET_EXPR
29193    }
29194    #[inline]
29195    fn cast(syntax: SyntaxNode) -> Option<Self> {
29196        if Self::can_cast(syntax.kind()) {
29197            Some(Self { syntax })
29198        } else {
29199            None
29200        }
29201    }
29202    #[inline]
29203    fn syntax(&self) -> &SyntaxNode {
29204        &self.syntax
29205    }
29206}
29207impl AstNode for SetExprList {
29208    #[inline]
29209    fn can_cast(kind: SyntaxKind) -> bool {
29210        kind == SyntaxKind::SET_EXPR_LIST
29211    }
29212    #[inline]
29213    fn cast(syntax: SyntaxNode) -> Option<Self> {
29214        if Self::can_cast(syntax.kind()) {
29215            Some(Self { syntax })
29216        } else {
29217            None
29218        }
29219    }
29220    #[inline]
29221    fn syntax(&self) -> &SyntaxNode {
29222        &self.syntax
29223    }
29224}
29225impl AstNode for SetExpression {
29226    #[inline]
29227    fn can_cast(kind: SyntaxKind) -> bool {
29228        kind == SyntaxKind::SET_EXPRESSION
29229    }
29230    #[inline]
29231    fn cast(syntax: SyntaxNode) -> Option<Self> {
29232        if Self::can_cast(syntax.kind()) {
29233            Some(Self { syntax })
29234        } else {
29235            None
29236        }
29237    }
29238    #[inline]
29239    fn syntax(&self) -> &SyntaxNode {
29240        &self.syntax
29241    }
29242}
29243impl AstNode for SetFuncOption {
29244    #[inline]
29245    fn can_cast(kind: SyntaxKind) -> bool {
29246        kind == SyntaxKind::SET_FUNC_OPTION
29247    }
29248    #[inline]
29249    fn cast(syntax: SyntaxNode) -> Option<Self> {
29250        if Self::can_cast(syntax.kind()) {
29251            Some(Self { syntax })
29252        } else {
29253            None
29254        }
29255    }
29256    #[inline]
29257    fn syntax(&self) -> &SyntaxNode {
29258        &self.syntax
29259    }
29260}
29261impl AstNode for SetGenerated {
29262    #[inline]
29263    fn can_cast(kind: SyntaxKind) -> bool {
29264        kind == SyntaxKind::SET_GENERATED
29265    }
29266    #[inline]
29267    fn cast(syntax: SyntaxNode) -> Option<Self> {
29268        if Self::can_cast(syntax.kind()) {
29269            Some(Self { syntax })
29270        } else {
29271            None
29272        }
29273    }
29274    #[inline]
29275    fn syntax(&self) -> &SyntaxNode {
29276        &self.syntax
29277    }
29278}
29279impl AstNode for SetGeneratedOptions {
29280    #[inline]
29281    fn can_cast(kind: SyntaxKind) -> bool {
29282        kind == SyntaxKind::SET_GENERATED_OPTIONS
29283    }
29284    #[inline]
29285    fn cast(syntax: SyntaxNode) -> Option<Self> {
29286        if Self::can_cast(syntax.kind()) {
29287            Some(Self { syntax })
29288        } else {
29289            None
29290        }
29291    }
29292    #[inline]
29293    fn syntax(&self) -> &SyntaxNode {
29294        &self.syntax
29295    }
29296}
29297impl AstNode for SetLogged {
29298    #[inline]
29299    fn can_cast(kind: SyntaxKind) -> bool {
29300        kind == SyntaxKind::SET_LOGGED
29301    }
29302    #[inline]
29303    fn cast(syntax: SyntaxNode) -> Option<Self> {
29304        if Self::can_cast(syntax.kind()) {
29305            Some(Self { syntax })
29306        } else {
29307            None
29308        }
29309    }
29310    #[inline]
29311    fn syntax(&self) -> &SyntaxNode {
29312        &self.syntax
29313    }
29314}
29315impl AstNode for SetMultipleColumns {
29316    #[inline]
29317    fn can_cast(kind: SyntaxKind) -> bool {
29318        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
29319    }
29320    #[inline]
29321    fn cast(syntax: SyntaxNode) -> Option<Self> {
29322        if Self::can_cast(syntax.kind()) {
29323            Some(Self { syntax })
29324        } else {
29325            None
29326        }
29327    }
29328    #[inline]
29329    fn syntax(&self) -> &SyntaxNode {
29330        &self.syntax
29331    }
29332}
29333impl AstNode for SetNotNull {
29334    #[inline]
29335    fn can_cast(kind: SyntaxKind) -> bool {
29336        kind == SyntaxKind::SET_NOT_NULL
29337    }
29338    #[inline]
29339    fn cast(syntax: SyntaxNode) -> Option<Self> {
29340        if Self::can_cast(syntax.kind()) {
29341            Some(Self { syntax })
29342        } else {
29343            None
29344        }
29345    }
29346    #[inline]
29347    fn syntax(&self) -> &SyntaxNode {
29348        &self.syntax
29349    }
29350}
29351impl AstNode for SetNullColumns {
29352    #[inline]
29353    fn can_cast(kind: SyntaxKind) -> bool {
29354        kind == SyntaxKind::SET_NULL_COLUMNS
29355    }
29356    #[inline]
29357    fn cast(syntax: SyntaxNode) -> Option<Self> {
29358        if Self::can_cast(syntax.kind()) {
29359            Some(Self { syntax })
29360        } else {
29361            None
29362        }
29363    }
29364    #[inline]
29365    fn syntax(&self) -> &SyntaxNode {
29366        &self.syntax
29367    }
29368}
29369impl AstNode for SetOptions {
29370    #[inline]
29371    fn can_cast(kind: SyntaxKind) -> bool {
29372        kind == SyntaxKind::SET_OPTIONS
29373    }
29374    #[inline]
29375    fn cast(syntax: SyntaxNode) -> Option<Self> {
29376        if Self::can_cast(syntax.kind()) {
29377            Some(Self { syntax })
29378        } else {
29379            None
29380        }
29381    }
29382    #[inline]
29383    fn syntax(&self) -> &SyntaxNode {
29384        &self.syntax
29385    }
29386}
29387impl AstNode for SetOptionsList {
29388    #[inline]
29389    fn can_cast(kind: SyntaxKind) -> bool {
29390        kind == SyntaxKind::SET_OPTIONS_LIST
29391    }
29392    #[inline]
29393    fn cast(syntax: SyntaxNode) -> Option<Self> {
29394        if Self::can_cast(syntax.kind()) {
29395            Some(Self { syntax })
29396        } else {
29397            None
29398        }
29399    }
29400    #[inline]
29401    fn syntax(&self) -> &SyntaxNode {
29402        &self.syntax
29403    }
29404}
29405impl AstNode for SetRole {
29406    #[inline]
29407    fn can_cast(kind: SyntaxKind) -> bool {
29408        kind == SyntaxKind::SET_ROLE
29409    }
29410    #[inline]
29411    fn cast(syntax: SyntaxNode) -> Option<Self> {
29412        if Self::can_cast(syntax.kind()) {
29413            Some(Self { syntax })
29414        } else {
29415            None
29416        }
29417    }
29418    #[inline]
29419    fn syntax(&self) -> &SyntaxNode {
29420        &self.syntax
29421    }
29422}
29423impl AstNode for SetSchema {
29424    #[inline]
29425    fn can_cast(kind: SyntaxKind) -> bool {
29426        kind == SyntaxKind::SET_SCHEMA
29427    }
29428    #[inline]
29429    fn cast(syntax: SyntaxNode) -> Option<Self> {
29430        if Self::can_cast(syntax.kind()) {
29431            Some(Self { syntax })
29432        } else {
29433            None
29434        }
29435    }
29436    #[inline]
29437    fn syntax(&self) -> &SyntaxNode {
29438        &self.syntax
29439    }
29440}
29441impl AstNode for SetSequenceOption {
29442    #[inline]
29443    fn can_cast(kind: SyntaxKind) -> bool {
29444        kind == SyntaxKind::SET_SEQUENCE_OPTION
29445    }
29446    #[inline]
29447    fn cast(syntax: SyntaxNode) -> Option<Self> {
29448        if Self::can_cast(syntax.kind()) {
29449            Some(Self { syntax })
29450        } else {
29451            None
29452        }
29453    }
29454    #[inline]
29455    fn syntax(&self) -> &SyntaxNode {
29456        &self.syntax
29457    }
29458}
29459impl AstNode for SetSessionAuth {
29460    #[inline]
29461    fn can_cast(kind: SyntaxKind) -> bool {
29462        kind == SyntaxKind::SET_SESSION_AUTH
29463    }
29464    #[inline]
29465    fn cast(syntax: SyntaxNode) -> Option<Self> {
29466        if Self::can_cast(syntax.kind()) {
29467            Some(Self { syntax })
29468        } else {
29469            None
29470        }
29471    }
29472    #[inline]
29473    fn syntax(&self) -> &SyntaxNode {
29474        &self.syntax
29475    }
29476}
29477impl AstNode for SetSingleColumn {
29478    #[inline]
29479    fn can_cast(kind: SyntaxKind) -> bool {
29480        kind == SyntaxKind::SET_SINGLE_COLUMN
29481    }
29482    #[inline]
29483    fn cast(syntax: SyntaxNode) -> Option<Self> {
29484        if Self::can_cast(syntax.kind()) {
29485            Some(Self { syntax })
29486        } else {
29487            None
29488        }
29489    }
29490    #[inline]
29491    fn syntax(&self) -> &SyntaxNode {
29492        &self.syntax
29493    }
29494}
29495impl AstNode for SetStatistics {
29496    #[inline]
29497    fn can_cast(kind: SyntaxKind) -> bool {
29498        kind == SyntaxKind::SET_STATISTICS
29499    }
29500    #[inline]
29501    fn cast(syntax: SyntaxNode) -> Option<Self> {
29502        if Self::can_cast(syntax.kind()) {
29503            Some(Self { syntax })
29504        } else {
29505            None
29506        }
29507    }
29508    #[inline]
29509    fn syntax(&self) -> &SyntaxNode {
29510        &self.syntax
29511    }
29512}
29513impl AstNode for SetStorage {
29514    #[inline]
29515    fn can_cast(kind: SyntaxKind) -> bool {
29516        kind == SyntaxKind::SET_STORAGE
29517    }
29518    #[inline]
29519    fn cast(syntax: SyntaxNode) -> Option<Self> {
29520        if Self::can_cast(syntax.kind()) {
29521            Some(Self { syntax })
29522        } else {
29523            None
29524        }
29525    }
29526    #[inline]
29527    fn syntax(&self) -> &SyntaxNode {
29528        &self.syntax
29529    }
29530}
29531impl AstNode for SetTablespace {
29532    #[inline]
29533    fn can_cast(kind: SyntaxKind) -> bool {
29534        kind == SyntaxKind::SET_TABLESPACE
29535    }
29536    #[inline]
29537    fn cast(syntax: SyntaxNode) -> Option<Self> {
29538        if Self::can_cast(syntax.kind()) {
29539            Some(Self { syntax })
29540        } else {
29541            None
29542        }
29543    }
29544    #[inline]
29545    fn syntax(&self) -> &SyntaxNode {
29546        &self.syntax
29547    }
29548}
29549impl AstNode for SetTransaction {
29550    #[inline]
29551    fn can_cast(kind: SyntaxKind) -> bool {
29552        kind == SyntaxKind::SET_TRANSACTION
29553    }
29554    #[inline]
29555    fn cast(syntax: SyntaxNode) -> Option<Self> {
29556        if Self::can_cast(syntax.kind()) {
29557            Some(Self { syntax })
29558        } else {
29559            None
29560        }
29561    }
29562    #[inline]
29563    fn syntax(&self) -> &SyntaxNode {
29564        &self.syntax
29565    }
29566}
29567impl AstNode for SetType {
29568    #[inline]
29569    fn can_cast(kind: SyntaxKind) -> bool {
29570        kind == SyntaxKind::SET_TYPE
29571    }
29572    #[inline]
29573    fn cast(syntax: SyntaxNode) -> Option<Self> {
29574        if Self::can_cast(syntax.kind()) {
29575            Some(Self { syntax })
29576        } else {
29577            None
29578        }
29579    }
29580    #[inline]
29581    fn syntax(&self) -> &SyntaxNode {
29582        &self.syntax
29583    }
29584}
29585impl AstNode for SetUnlogged {
29586    #[inline]
29587    fn can_cast(kind: SyntaxKind) -> bool {
29588        kind == SyntaxKind::SET_UNLOGGED
29589    }
29590    #[inline]
29591    fn cast(syntax: SyntaxNode) -> Option<Self> {
29592        if Self::can_cast(syntax.kind()) {
29593            Some(Self { syntax })
29594        } else {
29595            None
29596        }
29597    }
29598    #[inline]
29599    fn syntax(&self) -> &SyntaxNode {
29600        &self.syntax
29601    }
29602}
29603impl AstNode for SetWithoutCluster {
29604    #[inline]
29605    fn can_cast(kind: SyntaxKind) -> bool {
29606        kind == SyntaxKind::SET_WITHOUT_CLUSTER
29607    }
29608    #[inline]
29609    fn cast(syntax: SyntaxNode) -> Option<Self> {
29610        if Self::can_cast(syntax.kind()) {
29611            Some(Self { syntax })
29612        } else {
29613            None
29614        }
29615    }
29616    #[inline]
29617    fn syntax(&self) -> &SyntaxNode {
29618        &self.syntax
29619    }
29620}
29621impl AstNode for SetWithoutOids {
29622    #[inline]
29623    fn can_cast(kind: SyntaxKind) -> bool {
29624        kind == SyntaxKind::SET_WITHOUT_OIDS
29625    }
29626    #[inline]
29627    fn cast(syntax: SyntaxNode) -> Option<Self> {
29628        if Self::can_cast(syntax.kind()) {
29629            Some(Self { syntax })
29630        } else {
29631            None
29632        }
29633    }
29634    #[inline]
29635    fn syntax(&self) -> &SyntaxNode {
29636        &self.syntax
29637    }
29638}
29639impl AstNode for Show {
29640    #[inline]
29641    fn can_cast(kind: SyntaxKind) -> bool {
29642        kind == SyntaxKind::SHOW
29643    }
29644    #[inline]
29645    fn cast(syntax: SyntaxNode) -> Option<Self> {
29646        if Self::can_cast(syntax.kind()) {
29647            Some(Self { syntax })
29648        } else {
29649            None
29650        }
29651    }
29652    #[inline]
29653    fn syntax(&self) -> &SyntaxNode {
29654        &self.syntax
29655    }
29656}
29657impl AstNode for SimilarTo {
29658    #[inline]
29659    fn can_cast(kind: SyntaxKind) -> bool {
29660        kind == SyntaxKind::SIMILAR_TO
29661    }
29662    #[inline]
29663    fn cast(syntax: SyntaxNode) -> Option<Self> {
29664        if Self::can_cast(syntax.kind()) {
29665            Some(Self { syntax })
29666        } else {
29667            None
29668        }
29669    }
29670    #[inline]
29671    fn syntax(&self) -> &SyntaxNode {
29672        &self.syntax
29673    }
29674}
29675impl AstNode for SliceExpr {
29676    #[inline]
29677    fn can_cast(kind: SyntaxKind) -> bool {
29678        kind == SyntaxKind::SLICE_EXPR
29679    }
29680    #[inline]
29681    fn cast(syntax: SyntaxNode) -> Option<Self> {
29682        if Self::can_cast(syntax.kind()) {
29683            Some(Self { syntax })
29684        } else {
29685            None
29686        }
29687    }
29688    #[inline]
29689    fn syntax(&self) -> &SyntaxNode {
29690        &self.syntax
29691    }
29692}
29693impl AstNode for SomeFn {
29694    #[inline]
29695    fn can_cast(kind: SyntaxKind) -> bool {
29696        kind == SyntaxKind::SOME_FN
29697    }
29698    #[inline]
29699    fn cast(syntax: SyntaxNode) -> Option<Self> {
29700        if Self::can_cast(syntax.kind()) {
29701            Some(Self { syntax })
29702        } else {
29703            None
29704        }
29705    }
29706    #[inline]
29707    fn syntax(&self) -> &SyntaxNode {
29708        &self.syntax
29709    }
29710}
29711impl AstNode for SortAsc {
29712    #[inline]
29713    fn can_cast(kind: SyntaxKind) -> bool {
29714        kind == SyntaxKind::SORT_ASC
29715    }
29716    #[inline]
29717    fn cast(syntax: SyntaxNode) -> Option<Self> {
29718        if Self::can_cast(syntax.kind()) {
29719            Some(Self { syntax })
29720        } else {
29721            None
29722        }
29723    }
29724    #[inline]
29725    fn syntax(&self) -> &SyntaxNode {
29726        &self.syntax
29727    }
29728}
29729impl AstNode for SortBy {
29730    #[inline]
29731    fn can_cast(kind: SyntaxKind) -> bool {
29732        kind == SyntaxKind::SORT_BY
29733    }
29734    #[inline]
29735    fn cast(syntax: SyntaxNode) -> Option<Self> {
29736        if Self::can_cast(syntax.kind()) {
29737            Some(Self { syntax })
29738        } else {
29739            None
29740        }
29741    }
29742    #[inline]
29743    fn syntax(&self) -> &SyntaxNode {
29744        &self.syntax
29745    }
29746}
29747impl AstNode for SortByList {
29748    #[inline]
29749    fn can_cast(kind: SyntaxKind) -> bool {
29750        kind == SyntaxKind::SORT_BY_LIST
29751    }
29752    #[inline]
29753    fn cast(syntax: SyntaxNode) -> Option<Self> {
29754        if Self::can_cast(syntax.kind()) {
29755            Some(Self { syntax })
29756        } else {
29757            None
29758        }
29759    }
29760    #[inline]
29761    fn syntax(&self) -> &SyntaxNode {
29762        &self.syntax
29763    }
29764}
29765impl AstNode for SortDesc {
29766    #[inline]
29767    fn can_cast(kind: SyntaxKind) -> bool {
29768        kind == SyntaxKind::SORT_DESC
29769    }
29770    #[inline]
29771    fn cast(syntax: SyntaxNode) -> Option<Self> {
29772        if Self::can_cast(syntax.kind()) {
29773            Some(Self { syntax })
29774        } else {
29775            None
29776        }
29777    }
29778    #[inline]
29779    fn syntax(&self) -> &SyntaxNode {
29780        &self.syntax
29781    }
29782}
29783impl AstNode for SortUsing {
29784    #[inline]
29785    fn can_cast(kind: SyntaxKind) -> bool {
29786        kind == SyntaxKind::SORT_USING
29787    }
29788    #[inline]
29789    fn cast(syntax: SyntaxNode) -> Option<Self> {
29790        if Self::can_cast(syntax.kind()) {
29791            Some(Self { syntax })
29792        } else {
29793            None
29794        }
29795    }
29796    #[inline]
29797    fn syntax(&self) -> &SyntaxNode {
29798        &self.syntax
29799    }
29800}
29801impl AstNode for SourceFile {
29802    #[inline]
29803    fn can_cast(kind: SyntaxKind) -> bool {
29804        kind == SyntaxKind::SOURCE_FILE
29805    }
29806    #[inline]
29807    fn cast(syntax: SyntaxNode) -> Option<Self> {
29808        if Self::can_cast(syntax.kind()) {
29809            Some(Self { syntax })
29810        } else {
29811            None
29812        }
29813    }
29814    #[inline]
29815    fn syntax(&self) -> &SyntaxNode {
29816        &self.syntax
29817    }
29818}
29819impl AstNode for SourceVertexTable {
29820    #[inline]
29821    fn can_cast(kind: SyntaxKind) -> bool {
29822        kind == SyntaxKind::SOURCE_VERTEX_TABLE
29823    }
29824    #[inline]
29825    fn cast(syntax: SyntaxNode) -> Option<Self> {
29826        if Self::can_cast(syntax.kind()) {
29827            Some(Self { syntax })
29828        } else {
29829            None
29830        }
29831    }
29832    #[inline]
29833    fn syntax(&self) -> &SyntaxNode {
29834        &self.syntax
29835    }
29836}
29837impl AstNode for SplitPartition {
29838    #[inline]
29839    fn can_cast(kind: SyntaxKind) -> bool {
29840        kind == SyntaxKind::SPLIT_PARTITION
29841    }
29842    #[inline]
29843    fn cast(syntax: SyntaxNode) -> Option<Self> {
29844        if Self::can_cast(syntax.kind()) {
29845            Some(Self { syntax })
29846        } else {
29847            None
29848        }
29849    }
29850    #[inline]
29851    fn syntax(&self) -> &SyntaxNode {
29852        &self.syntax
29853    }
29854}
29855impl AstNode for Storage {
29856    #[inline]
29857    fn can_cast(kind: SyntaxKind) -> bool {
29858        kind == SyntaxKind::STORAGE
29859    }
29860    #[inline]
29861    fn cast(syntax: SyntaxNode) -> Option<Self> {
29862        if Self::can_cast(syntax.kind()) {
29863            Some(Self { syntax })
29864        } else {
29865            None
29866        }
29867    }
29868    #[inline]
29869    fn syntax(&self) -> &SyntaxNode {
29870        &self.syntax
29871    }
29872}
29873impl AstNode for StrictFuncOption {
29874    #[inline]
29875    fn can_cast(kind: SyntaxKind) -> bool {
29876        kind == SyntaxKind::STRICT_FUNC_OPTION
29877    }
29878    #[inline]
29879    fn cast(syntax: SyntaxNode) -> Option<Self> {
29880        if Self::can_cast(syntax.kind()) {
29881            Some(Self { syntax })
29882        } else {
29883            None
29884        }
29885    }
29886    #[inline]
29887    fn syntax(&self) -> &SyntaxNode {
29888        &self.syntax
29889    }
29890}
29891impl AstNode for SubstringFn {
29892    #[inline]
29893    fn can_cast(kind: SyntaxKind) -> bool {
29894        kind == SyntaxKind::SUBSTRING_FN
29895    }
29896    #[inline]
29897    fn cast(syntax: SyntaxNode) -> Option<Self> {
29898        if Self::can_cast(syntax.kind()) {
29899            Some(Self { syntax })
29900        } else {
29901            None
29902        }
29903    }
29904    #[inline]
29905    fn syntax(&self) -> &SyntaxNode {
29906        &self.syntax
29907    }
29908}
29909impl AstNode for SupportFuncOption {
29910    #[inline]
29911    fn can_cast(kind: SyntaxKind) -> bool {
29912        kind == SyntaxKind::SUPPORT_FUNC_OPTION
29913    }
29914    #[inline]
29915    fn cast(syntax: SyntaxNode) -> Option<Self> {
29916        if Self::can_cast(syntax.kind()) {
29917            Some(Self { syntax })
29918        } else {
29919            None
29920        }
29921    }
29922    #[inline]
29923    fn syntax(&self) -> &SyntaxNode {
29924        &self.syntax
29925    }
29926}
29927impl AstNode for Table {
29928    #[inline]
29929    fn can_cast(kind: SyntaxKind) -> bool {
29930        kind == SyntaxKind::TABLE
29931    }
29932    #[inline]
29933    fn cast(syntax: SyntaxNode) -> Option<Self> {
29934        if Self::can_cast(syntax.kind()) {
29935            Some(Self { syntax })
29936        } else {
29937            None
29938        }
29939    }
29940    #[inline]
29941    fn syntax(&self) -> &SyntaxNode {
29942        &self.syntax
29943    }
29944}
29945impl AstNode for TableAndColumns {
29946    #[inline]
29947    fn can_cast(kind: SyntaxKind) -> bool {
29948        kind == SyntaxKind::TABLE_AND_COLUMNS
29949    }
29950    #[inline]
29951    fn cast(syntax: SyntaxNode) -> Option<Self> {
29952        if Self::can_cast(syntax.kind()) {
29953            Some(Self { syntax })
29954        } else {
29955            None
29956        }
29957    }
29958    #[inline]
29959    fn syntax(&self) -> &SyntaxNode {
29960        &self.syntax
29961    }
29962}
29963impl AstNode for TableAndColumnsList {
29964    #[inline]
29965    fn can_cast(kind: SyntaxKind) -> bool {
29966        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
29967    }
29968    #[inline]
29969    fn cast(syntax: SyntaxNode) -> Option<Self> {
29970        if Self::can_cast(syntax.kind()) {
29971            Some(Self { syntax })
29972        } else {
29973            None
29974        }
29975    }
29976    #[inline]
29977    fn syntax(&self) -> &SyntaxNode {
29978        &self.syntax
29979    }
29980}
29981impl AstNode for TableArgList {
29982    #[inline]
29983    fn can_cast(kind: SyntaxKind) -> bool {
29984        kind == SyntaxKind::TABLE_ARG_LIST
29985    }
29986    #[inline]
29987    fn cast(syntax: SyntaxNode) -> Option<Self> {
29988        if Self::can_cast(syntax.kind()) {
29989            Some(Self { syntax })
29990        } else {
29991            None
29992        }
29993    }
29994    #[inline]
29995    fn syntax(&self) -> &SyntaxNode {
29996        &self.syntax
29997    }
29998}
29999impl AstNode for TableList {
30000    #[inline]
30001    fn can_cast(kind: SyntaxKind) -> bool {
30002        kind == SyntaxKind::TABLE_LIST
30003    }
30004    #[inline]
30005    fn cast(syntax: SyntaxNode) -> Option<Self> {
30006        if Self::can_cast(syntax.kind()) {
30007            Some(Self { syntax })
30008        } else {
30009            None
30010        }
30011    }
30012    #[inline]
30013    fn syntax(&self) -> &SyntaxNode {
30014        &self.syntax
30015    }
30016}
30017impl AstNode for TablesampleClause {
30018    #[inline]
30019    fn can_cast(kind: SyntaxKind) -> bool {
30020        kind == SyntaxKind::TABLESAMPLE_CLAUSE
30021    }
30022    #[inline]
30023    fn cast(syntax: SyntaxNode) -> Option<Self> {
30024        if Self::can_cast(syntax.kind()) {
30025            Some(Self { syntax })
30026        } else {
30027            None
30028        }
30029    }
30030    #[inline]
30031    fn syntax(&self) -> &SyntaxNode {
30032        &self.syntax
30033    }
30034}
30035impl AstNode for Tablespace {
30036    #[inline]
30037    fn can_cast(kind: SyntaxKind) -> bool {
30038        kind == SyntaxKind::TABLESPACE
30039    }
30040    #[inline]
30041    fn cast(syntax: SyntaxNode) -> Option<Self> {
30042        if Self::can_cast(syntax.kind()) {
30043            Some(Self { syntax })
30044        } else {
30045            None
30046        }
30047    }
30048    #[inline]
30049    fn syntax(&self) -> &SyntaxNode {
30050        &self.syntax
30051    }
30052}
30053impl AstNode for Target {
30054    #[inline]
30055    fn can_cast(kind: SyntaxKind) -> bool {
30056        kind == SyntaxKind::TARGET
30057    }
30058    #[inline]
30059    fn cast(syntax: SyntaxNode) -> Option<Self> {
30060        if Self::can_cast(syntax.kind()) {
30061            Some(Self { syntax })
30062        } else {
30063            None
30064        }
30065    }
30066    #[inline]
30067    fn syntax(&self) -> &SyntaxNode {
30068        &self.syntax
30069    }
30070}
30071impl AstNode for TargetList {
30072    #[inline]
30073    fn can_cast(kind: SyntaxKind) -> bool {
30074        kind == SyntaxKind::TARGET_LIST
30075    }
30076    #[inline]
30077    fn cast(syntax: SyntaxNode) -> Option<Self> {
30078        if Self::can_cast(syntax.kind()) {
30079            Some(Self { syntax })
30080        } else {
30081            None
30082        }
30083    }
30084    #[inline]
30085    fn syntax(&self) -> &SyntaxNode {
30086        &self.syntax
30087    }
30088}
30089impl AstNode for Temp {
30090    #[inline]
30091    fn can_cast(kind: SyntaxKind) -> bool {
30092        kind == SyntaxKind::TEMP
30093    }
30094    #[inline]
30095    fn cast(syntax: SyntaxNode) -> Option<Self> {
30096        if Self::can_cast(syntax.kind()) {
30097            Some(Self { syntax })
30098        } else {
30099            None
30100        }
30101    }
30102    #[inline]
30103    fn syntax(&self) -> &SyntaxNode {
30104        &self.syntax
30105    }
30106}
30107impl AstNode for TimeType {
30108    #[inline]
30109    fn can_cast(kind: SyntaxKind) -> bool {
30110        kind == SyntaxKind::TIME_TYPE
30111    }
30112    #[inline]
30113    fn cast(syntax: SyntaxNode) -> Option<Self> {
30114        if Self::can_cast(syntax.kind()) {
30115            Some(Self { syntax })
30116        } else {
30117            None
30118        }
30119    }
30120    #[inline]
30121    fn syntax(&self) -> &SyntaxNode {
30122        &self.syntax
30123    }
30124}
30125impl AstNode for Timing {
30126    #[inline]
30127    fn can_cast(kind: SyntaxKind) -> bool {
30128        kind == SyntaxKind::TIMING
30129    }
30130    #[inline]
30131    fn cast(syntax: SyntaxNode) -> Option<Self> {
30132        if Self::can_cast(syntax.kind()) {
30133            Some(Self { syntax })
30134        } else {
30135            None
30136        }
30137    }
30138    #[inline]
30139    fn syntax(&self) -> &SyntaxNode {
30140        &self.syntax
30141    }
30142}
30143impl AstNode for TransactionModeList {
30144    #[inline]
30145    fn can_cast(kind: SyntaxKind) -> bool {
30146        kind == SyntaxKind::TRANSACTION_MODE_LIST
30147    }
30148    #[inline]
30149    fn cast(syntax: SyntaxNode) -> Option<Self> {
30150        if Self::can_cast(syntax.kind()) {
30151            Some(Self { syntax })
30152        } else {
30153            None
30154        }
30155    }
30156    #[inline]
30157    fn syntax(&self) -> &SyntaxNode {
30158        &self.syntax
30159    }
30160}
30161impl AstNode for TransformFromFunc {
30162    #[inline]
30163    fn can_cast(kind: SyntaxKind) -> bool {
30164        kind == SyntaxKind::TRANSFORM_FROM_FUNC
30165    }
30166    #[inline]
30167    fn cast(syntax: SyntaxNode) -> Option<Self> {
30168        if Self::can_cast(syntax.kind()) {
30169            Some(Self { syntax })
30170        } else {
30171            None
30172        }
30173    }
30174    #[inline]
30175    fn syntax(&self) -> &SyntaxNode {
30176        &self.syntax
30177    }
30178}
30179impl AstNode for TransformFuncOption {
30180    #[inline]
30181    fn can_cast(kind: SyntaxKind) -> bool {
30182        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
30183    }
30184    #[inline]
30185    fn cast(syntax: SyntaxNode) -> Option<Self> {
30186        if Self::can_cast(syntax.kind()) {
30187            Some(Self { syntax })
30188        } else {
30189            None
30190        }
30191    }
30192    #[inline]
30193    fn syntax(&self) -> &SyntaxNode {
30194        &self.syntax
30195    }
30196}
30197impl AstNode for TransformToFunc {
30198    #[inline]
30199    fn can_cast(kind: SyntaxKind) -> bool {
30200        kind == SyntaxKind::TRANSFORM_TO_FUNC
30201    }
30202    #[inline]
30203    fn cast(syntax: SyntaxNode) -> Option<Self> {
30204        if Self::can_cast(syntax.kind()) {
30205            Some(Self { syntax })
30206        } else {
30207            None
30208        }
30209    }
30210    #[inline]
30211    fn syntax(&self) -> &SyntaxNode {
30212        &self.syntax
30213    }
30214}
30215impl AstNode for TriggerEvent {
30216    #[inline]
30217    fn can_cast(kind: SyntaxKind) -> bool {
30218        kind == SyntaxKind::TRIGGER_EVENT
30219    }
30220    #[inline]
30221    fn cast(syntax: SyntaxNode) -> Option<Self> {
30222        if Self::can_cast(syntax.kind()) {
30223            Some(Self { syntax })
30224        } else {
30225            None
30226        }
30227    }
30228    #[inline]
30229    fn syntax(&self) -> &SyntaxNode {
30230        &self.syntax
30231    }
30232}
30233impl AstNode for TriggerEventList {
30234    #[inline]
30235    fn can_cast(kind: SyntaxKind) -> bool {
30236        kind == SyntaxKind::TRIGGER_EVENT_LIST
30237    }
30238    #[inline]
30239    fn cast(syntax: SyntaxNode) -> Option<Self> {
30240        if Self::can_cast(syntax.kind()) {
30241            Some(Self { syntax })
30242        } else {
30243            None
30244        }
30245    }
30246    #[inline]
30247    fn syntax(&self) -> &SyntaxNode {
30248        &self.syntax
30249    }
30250}
30251impl AstNode for TriggerEventUpdate {
30252    #[inline]
30253    fn can_cast(kind: SyntaxKind) -> bool {
30254        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
30255    }
30256    #[inline]
30257    fn cast(syntax: SyntaxNode) -> Option<Self> {
30258        if Self::can_cast(syntax.kind()) {
30259            Some(Self { syntax })
30260        } else {
30261            None
30262        }
30263    }
30264    #[inline]
30265    fn syntax(&self) -> &SyntaxNode {
30266        &self.syntax
30267    }
30268}
30269impl AstNode for TrimFn {
30270    #[inline]
30271    fn can_cast(kind: SyntaxKind) -> bool {
30272        kind == SyntaxKind::TRIM_FN
30273    }
30274    #[inline]
30275    fn cast(syntax: SyntaxNode) -> Option<Self> {
30276        if Self::can_cast(syntax.kind()) {
30277            Some(Self { syntax })
30278        } else {
30279            None
30280        }
30281    }
30282    #[inline]
30283    fn syntax(&self) -> &SyntaxNode {
30284        &self.syntax
30285    }
30286}
30287impl AstNode for Truncate {
30288    #[inline]
30289    fn can_cast(kind: SyntaxKind) -> bool {
30290        kind == SyntaxKind::TRUNCATE
30291    }
30292    #[inline]
30293    fn cast(syntax: SyntaxNode) -> Option<Self> {
30294        if Self::can_cast(syntax.kind()) {
30295            Some(Self { syntax })
30296        } else {
30297            None
30298        }
30299    }
30300    #[inline]
30301    fn syntax(&self) -> &SyntaxNode {
30302        &self.syntax
30303    }
30304}
30305impl AstNode for TupleExpr {
30306    #[inline]
30307    fn can_cast(kind: SyntaxKind) -> bool {
30308        kind == SyntaxKind::TUPLE_EXPR
30309    }
30310    #[inline]
30311    fn cast(syntax: SyntaxNode) -> Option<Self> {
30312        if Self::can_cast(syntax.kind()) {
30313            Some(Self { syntax })
30314        } else {
30315            None
30316        }
30317    }
30318    #[inline]
30319    fn syntax(&self) -> &SyntaxNode {
30320        &self.syntax
30321    }
30322}
30323impl AstNode for UnicodeNormalForm {
30324    #[inline]
30325    fn can_cast(kind: SyntaxKind) -> bool {
30326        kind == SyntaxKind::UNICODE_NORMAL_FORM
30327    }
30328    #[inline]
30329    fn cast(syntax: SyntaxNode) -> Option<Self> {
30330        if Self::can_cast(syntax.kind()) {
30331            Some(Self { syntax })
30332        } else {
30333            None
30334        }
30335    }
30336    #[inline]
30337    fn syntax(&self) -> &SyntaxNode {
30338        &self.syntax
30339    }
30340}
30341impl AstNode for UniqueConstraint {
30342    #[inline]
30343    fn can_cast(kind: SyntaxKind) -> bool {
30344        kind == SyntaxKind::UNIQUE_CONSTRAINT
30345    }
30346    #[inline]
30347    fn cast(syntax: SyntaxNode) -> Option<Self> {
30348        if Self::can_cast(syntax.kind()) {
30349            Some(Self { syntax })
30350        } else {
30351            None
30352        }
30353    }
30354    #[inline]
30355    fn syntax(&self) -> &SyntaxNode {
30356        &self.syntax
30357    }
30358}
30359impl AstNode for Unlisten {
30360    #[inline]
30361    fn can_cast(kind: SyntaxKind) -> bool {
30362        kind == SyntaxKind::UNLISTEN
30363    }
30364    #[inline]
30365    fn cast(syntax: SyntaxNode) -> Option<Self> {
30366        if Self::can_cast(syntax.kind()) {
30367            Some(Self { syntax })
30368        } else {
30369            None
30370        }
30371    }
30372    #[inline]
30373    fn syntax(&self) -> &SyntaxNode {
30374        &self.syntax
30375    }
30376}
30377impl AstNode for Unlogged {
30378    #[inline]
30379    fn can_cast(kind: SyntaxKind) -> bool {
30380        kind == SyntaxKind::UNLOGGED
30381    }
30382    #[inline]
30383    fn cast(syntax: SyntaxNode) -> Option<Self> {
30384        if Self::can_cast(syntax.kind()) {
30385            Some(Self { syntax })
30386        } else {
30387            None
30388        }
30389    }
30390    #[inline]
30391    fn syntax(&self) -> &SyntaxNode {
30392        &self.syntax
30393    }
30394}
30395impl AstNode for Update {
30396    #[inline]
30397    fn can_cast(kind: SyntaxKind) -> bool {
30398        kind == SyntaxKind::UPDATE
30399    }
30400    #[inline]
30401    fn cast(syntax: SyntaxNode) -> Option<Self> {
30402        if Self::can_cast(syntax.kind()) {
30403            Some(Self { syntax })
30404        } else {
30405            None
30406        }
30407    }
30408    #[inline]
30409    fn syntax(&self) -> &SyntaxNode {
30410        &self.syntax
30411    }
30412}
30413impl AstNode for UsingClause {
30414    #[inline]
30415    fn can_cast(kind: SyntaxKind) -> bool {
30416        kind == SyntaxKind::USING_CLAUSE
30417    }
30418    #[inline]
30419    fn cast(syntax: SyntaxNode) -> Option<Self> {
30420        if Self::can_cast(syntax.kind()) {
30421            Some(Self { syntax })
30422        } else {
30423            None
30424        }
30425    }
30426    #[inline]
30427    fn syntax(&self) -> &SyntaxNode {
30428        &self.syntax
30429    }
30430}
30431impl AstNode for UsingExprClause {
30432    #[inline]
30433    fn can_cast(kind: SyntaxKind) -> bool {
30434        kind == SyntaxKind::USING_EXPR_CLAUSE
30435    }
30436    #[inline]
30437    fn cast(syntax: SyntaxNode) -> Option<Self> {
30438        if Self::can_cast(syntax.kind()) {
30439            Some(Self { syntax })
30440        } else {
30441            None
30442        }
30443    }
30444    #[inline]
30445    fn syntax(&self) -> &SyntaxNode {
30446        &self.syntax
30447    }
30448}
30449impl AstNode for UsingIndex {
30450    #[inline]
30451    fn can_cast(kind: SyntaxKind) -> bool {
30452        kind == SyntaxKind::USING_INDEX
30453    }
30454    #[inline]
30455    fn cast(syntax: SyntaxNode) -> Option<Self> {
30456        if Self::can_cast(syntax.kind()) {
30457            Some(Self { syntax })
30458        } else {
30459            None
30460        }
30461    }
30462    #[inline]
30463    fn syntax(&self) -> &SyntaxNode {
30464        &self.syntax
30465    }
30466}
30467impl AstNode for UsingMethod {
30468    #[inline]
30469    fn can_cast(kind: SyntaxKind) -> bool {
30470        kind == SyntaxKind::USING_METHOD
30471    }
30472    #[inline]
30473    fn cast(syntax: SyntaxNode) -> Option<Self> {
30474        if Self::can_cast(syntax.kind()) {
30475            Some(Self { syntax })
30476        } else {
30477            None
30478        }
30479    }
30480    #[inline]
30481    fn syntax(&self) -> &SyntaxNode {
30482        &self.syntax
30483    }
30484}
30485impl AstNode for UsingOnClause {
30486    #[inline]
30487    fn can_cast(kind: SyntaxKind) -> bool {
30488        kind == SyntaxKind::USING_ON_CLAUSE
30489    }
30490    #[inline]
30491    fn cast(syntax: SyntaxNode) -> Option<Self> {
30492        if Self::can_cast(syntax.kind()) {
30493            Some(Self { syntax })
30494        } else {
30495            None
30496        }
30497    }
30498    #[inline]
30499    fn syntax(&self) -> &SyntaxNode {
30500        &self.syntax
30501    }
30502}
30503impl AstNode for Vacuum {
30504    #[inline]
30505    fn can_cast(kind: SyntaxKind) -> bool {
30506        kind == SyntaxKind::VACUUM
30507    }
30508    #[inline]
30509    fn cast(syntax: SyntaxNode) -> Option<Self> {
30510        if Self::can_cast(syntax.kind()) {
30511            Some(Self { syntax })
30512        } else {
30513            None
30514        }
30515    }
30516    #[inline]
30517    fn syntax(&self) -> &SyntaxNode {
30518        &self.syntax
30519    }
30520}
30521impl AstNode for VacuumOption {
30522    #[inline]
30523    fn can_cast(kind: SyntaxKind) -> bool {
30524        kind == SyntaxKind::VACUUM_OPTION
30525    }
30526    #[inline]
30527    fn cast(syntax: SyntaxNode) -> Option<Self> {
30528        if Self::can_cast(syntax.kind()) {
30529            Some(Self { syntax })
30530        } else {
30531            None
30532        }
30533    }
30534    #[inline]
30535    fn syntax(&self) -> &SyntaxNode {
30536        &self.syntax
30537    }
30538}
30539impl AstNode for VacuumOptionList {
30540    #[inline]
30541    fn can_cast(kind: SyntaxKind) -> bool {
30542        kind == SyntaxKind::VACUUM_OPTION_LIST
30543    }
30544    #[inline]
30545    fn cast(syntax: SyntaxNode) -> Option<Self> {
30546        if Self::can_cast(syntax.kind()) {
30547            Some(Self { syntax })
30548        } else {
30549            None
30550        }
30551    }
30552    #[inline]
30553    fn syntax(&self) -> &SyntaxNode {
30554        &self.syntax
30555    }
30556}
30557impl AstNode for ValidateConstraint {
30558    #[inline]
30559    fn can_cast(kind: SyntaxKind) -> bool {
30560        kind == SyntaxKind::VALIDATE_CONSTRAINT
30561    }
30562    #[inline]
30563    fn cast(syntax: SyntaxNode) -> Option<Self> {
30564        if Self::can_cast(syntax.kind()) {
30565            Some(Self { syntax })
30566        } else {
30567            None
30568        }
30569    }
30570    #[inline]
30571    fn syntax(&self) -> &SyntaxNode {
30572        &self.syntax
30573    }
30574}
30575impl AstNode for Values {
30576    #[inline]
30577    fn can_cast(kind: SyntaxKind) -> bool {
30578        kind == SyntaxKind::VALUES
30579    }
30580    #[inline]
30581    fn cast(syntax: SyntaxNode) -> Option<Self> {
30582        if Self::can_cast(syntax.kind()) {
30583            Some(Self { syntax })
30584        } else {
30585            None
30586        }
30587    }
30588    #[inline]
30589    fn syntax(&self) -> &SyntaxNode {
30590        &self.syntax
30591    }
30592}
30593impl AstNode for Variant {
30594    #[inline]
30595    fn can_cast(kind: SyntaxKind) -> bool {
30596        kind == SyntaxKind::VARIANT
30597    }
30598    #[inline]
30599    fn cast(syntax: SyntaxNode) -> Option<Self> {
30600        if Self::can_cast(syntax.kind()) {
30601            Some(Self { syntax })
30602        } else {
30603            None
30604        }
30605    }
30606    #[inline]
30607    fn syntax(&self) -> &SyntaxNode {
30608        &self.syntax
30609    }
30610}
30611impl AstNode for VariantList {
30612    #[inline]
30613    fn can_cast(kind: SyntaxKind) -> bool {
30614        kind == SyntaxKind::VARIANT_LIST
30615    }
30616    #[inline]
30617    fn cast(syntax: SyntaxNode) -> Option<Self> {
30618        if Self::can_cast(syntax.kind()) {
30619            Some(Self { syntax })
30620        } else {
30621            None
30622        }
30623    }
30624    #[inline]
30625    fn syntax(&self) -> &SyntaxNode {
30626        &self.syntax
30627    }
30628}
30629impl AstNode for VertexPattern {
30630    #[inline]
30631    fn can_cast(kind: SyntaxKind) -> bool {
30632        kind == SyntaxKind::VERTEX_PATTERN
30633    }
30634    #[inline]
30635    fn cast(syntax: SyntaxNode) -> Option<Self> {
30636        if Self::can_cast(syntax.kind()) {
30637            Some(Self { syntax })
30638        } else {
30639            None
30640        }
30641    }
30642    #[inline]
30643    fn syntax(&self) -> &SyntaxNode {
30644        &self.syntax
30645    }
30646}
30647impl AstNode for VertexTableDef {
30648    #[inline]
30649    fn can_cast(kind: SyntaxKind) -> bool {
30650        kind == SyntaxKind::VERTEX_TABLE_DEF
30651    }
30652    #[inline]
30653    fn cast(syntax: SyntaxNode) -> Option<Self> {
30654        if Self::can_cast(syntax.kind()) {
30655            Some(Self { syntax })
30656        } else {
30657            None
30658        }
30659    }
30660    #[inline]
30661    fn syntax(&self) -> &SyntaxNode {
30662        &self.syntax
30663    }
30664}
30665impl AstNode for VertexTables {
30666    #[inline]
30667    fn can_cast(kind: SyntaxKind) -> bool {
30668        kind == SyntaxKind::VERTEX_TABLES
30669    }
30670    #[inline]
30671    fn cast(syntax: SyntaxNode) -> Option<Self> {
30672        if Self::can_cast(syntax.kind()) {
30673            Some(Self { syntax })
30674        } else {
30675            None
30676        }
30677    }
30678    #[inline]
30679    fn syntax(&self) -> &SyntaxNode {
30680        &self.syntax
30681    }
30682}
30683impl AstNode for VolatilityFuncOption {
30684    #[inline]
30685    fn can_cast(kind: SyntaxKind) -> bool {
30686        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
30687    }
30688    #[inline]
30689    fn cast(syntax: SyntaxNode) -> Option<Self> {
30690        if Self::can_cast(syntax.kind()) {
30691            Some(Self { syntax })
30692        } else {
30693            None
30694        }
30695    }
30696    #[inline]
30697    fn syntax(&self) -> &SyntaxNode {
30698        &self.syntax
30699    }
30700}
30701impl AstNode for WhenClause {
30702    #[inline]
30703    fn can_cast(kind: SyntaxKind) -> bool {
30704        kind == SyntaxKind::WHEN_CLAUSE
30705    }
30706    #[inline]
30707    fn cast(syntax: SyntaxNode) -> Option<Self> {
30708        if Self::can_cast(syntax.kind()) {
30709            Some(Self { syntax })
30710        } else {
30711            None
30712        }
30713    }
30714    #[inline]
30715    fn syntax(&self) -> &SyntaxNode {
30716        &self.syntax
30717    }
30718}
30719impl AstNode for WhenClauseList {
30720    #[inline]
30721    fn can_cast(kind: SyntaxKind) -> bool {
30722        kind == SyntaxKind::WHEN_CLAUSE_LIST
30723    }
30724    #[inline]
30725    fn cast(syntax: SyntaxNode) -> Option<Self> {
30726        if Self::can_cast(syntax.kind()) {
30727            Some(Self { syntax })
30728        } else {
30729            None
30730        }
30731    }
30732    #[inline]
30733    fn syntax(&self) -> &SyntaxNode {
30734        &self.syntax
30735    }
30736}
30737impl AstNode for WhenCondition {
30738    #[inline]
30739    fn can_cast(kind: SyntaxKind) -> bool {
30740        kind == SyntaxKind::WHEN_CONDITION
30741    }
30742    #[inline]
30743    fn cast(syntax: SyntaxNode) -> Option<Self> {
30744        if Self::can_cast(syntax.kind()) {
30745            Some(Self { syntax })
30746        } else {
30747            None
30748        }
30749    }
30750    #[inline]
30751    fn syntax(&self) -> &SyntaxNode {
30752        &self.syntax
30753    }
30754}
30755impl AstNode for WhereClause {
30756    #[inline]
30757    fn can_cast(kind: SyntaxKind) -> bool {
30758        kind == SyntaxKind::WHERE_CLAUSE
30759    }
30760    #[inline]
30761    fn cast(syntax: SyntaxNode) -> Option<Self> {
30762        if Self::can_cast(syntax.kind()) {
30763            Some(Self { syntax })
30764        } else {
30765            None
30766        }
30767    }
30768    #[inline]
30769    fn syntax(&self) -> &SyntaxNode {
30770        &self.syntax
30771    }
30772}
30773impl AstNode for WhereConditionClause {
30774    #[inline]
30775    fn can_cast(kind: SyntaxKind) -> bool {
30776        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
30777    }
30778    #[inline]
30779    fn cast(syntax: SyntaxNode) -> Option<Self> {
30780        if Self::can_cast(syntax.kind()) {
30781            Some(Self { syntax })
30782        } else {
30783            None
30784        }
30785    }
30786    #[inline]
30787    fn syntax(&self) -> &SyntaxNode {
30788        &self.syntax
30789    }
30790}
30791impl AstNode for WhereCurrentOf {
30792    #[inline]
30793    fn can_cast(kind: SyntaxKind) -> bool {
30794        kind == SyntaxKind::WHERE_CURRENT_OF
30795    }
30796    #[inline]
30797    fn cast(syntax: SyntaxNode) -> Option<Self> {
30798        if Self::can_cast(syntax.kind()) {
30799            Some(Self { syntax })
30800        } else {
30801            None
30802        }
30803    }
30804    #[inline]
30805    fn syntax(&self) -> &SyntaxNode {
30806        &self.syntax
30807    }
30808}
30809impl AstNode for WindowClause {
30810    #[inline]
30811    fn can_cast(kind: SyntaxKind) -> bool {
30812        kind == SyntaxKind::WINDOW_CLAUSE
30813    }
30814    #[inline]
30815    fn cast(syntax: SyntaxNode) -> Option<Self> {
30816        if Self::can_cast(syntax.kind()) {
30817            Some(Self { syntax })
30818        } else {
30819            None
30820        }
30821    }
30822    #[inline]
30823    fn syntax(&self) -> &SyntaxNode {
30824        &self.syntax
30825    }
30826}
30827impl AstNode for WindowDef {
30828    #[inline]
30829    fn can_cast(kind: SyntaxKind) -> bool {
30830        kind == SyntaxKind::WINDOW_DEF
30831    }
30832    #[inline]
30833    fn cast(syntax: SyntaxNode) -> Option<Self> {
30834        if Self::can_cast(syntax.kind()) {
30835            Some(Self { syntax })
30836        } else {
30837            None
30838        }
30839    }
30840    #[inline]
30841    fn syntax(&self) -> &SyntaxNode {
30842        &self.syntax
30843    }
30844}
30845impl AstNode for WindowFuncOption {
30846    #[inline]
30847    fn can_cast(kind: SyntaxKind) -> bool {
30848        kind == SyntaxKind::WINDOW_FUNC_OPTION
30849    }
30850    #[inline]
30851    fn cast(syntax: SyntaxNode) -> Option<Self> {
30852        if Self::can_cast(syntax.kind()) {
30853            Some(Self { syntax })
30854        } else {
30855            None
30856        }
30857    }
30858    #[inline]
30859    fn syntax(&self) -> &SyntaxNode {
30860        &self.syntax
30861    }
30862}
30863impl AstNode for WindowSpec {
30864    #[inline]
30865    fn can_cast(kind: SyntaxKind) -> bool {
30866        kind == SyntaxKind::WINDOW_SPEC
30867    }
30868    #[inline]
30869    fn cast(syntax: SyntaxNode) -> Option<Self> {
30870        if Self::can_cast(syntax.kind()) {
30871            Some(Self { syntax })
30872        } else {
30873            None
30874        }
30875    }
30876    #[inline]
30877    fn syntax(&self) -> &SyntaxNode {
30878        &self.syntax
30879    }
30880}
30881impl AstNode for WithCheckExprClause {
30882    #[inline]
30883    fn can_cast(kind: SyntaxKind) -> bool {
30884        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
30885    }
30886    #[inline]
30887    fn cast(syntax: SyntaxNode) -> Option<Self> {
30888        if Self::can_cast(syntax.kind()) {
30889            Some(Self { syntax })
30890        } else {
30891            None
30892        }
30893    }
30894    #[inline]
30895    fn syntax(&self) -> &SyntaxNode {
30896        &self.syntax
30897    }
30898}
30899impl AstNode for WithClause {
30900    #[inline]
30901    fn can_cast(kind: SyntaxKind) -> bool {
30902        kind == SyntaxKind::WITH_CLAUSE
30903    }
30904    #[inline]
30905    fn cast(syntax: SyntaxNode) -> Option<Self> {
30906        if Self::can_cast(syntax.kind()) {
30907            Some(Self { syntax })
30908        } else {
30909            None
30910        }
30911    }
30912    #[inline]
30913    fn syntax(&self) -> &SyntaxNode {
30914        &self.syntax
30915    }
30916}
30917impl AstNode for WithData {
30918    #[inline]
30919    fn can_cast(kind: SyntaxKind) -> bool {
30920        kind == SyntaxKind::WITH_DATA
30921    }
30922    #[inline]
30923    fn cast(syntax: SyntaxNode) -> Option<Self> {
30924        if Self::can_cast(syntax.kind()) {
30925            Some(Self { syntax })
30926        } else {
30927            None
30928        }
30929    }
30930    #[inline]
30931    fn syntax(&self) -> &SyntaxNode {
30932        &self.syntax
30933    }
30934}
30935impl AstNode for WithNoData {
30936    #[inline]
30937    fn can_cast(kind: SyntaxKind) -> bool {
30938        kind == SyntaxKind::WITH_NO_DATA
30939    }
30940    #[inline]
30941    fn cast(syntax: SyntaxNode) -> Option<Self> {
30942        if Self::can_cast(syntax.kind()) {
30943            Some(Self { syntax })
30944        } else {
30945            None
30946        }
30947    }
30948    #[inline]
30949    fn syntax(&self) -> &SyntaxNode {
30950        &self.syntax
30951    }
30952}
30953impl AstNode for WithOptions {
30954    #[inline]
30955    fn can_cast(kind: SyntaxKind) -> bool {
30956        kind == SyntaxKind::WITH_OPTIONS
30957    }
30958    #[inline]
30959    fn cast(syntax: SyntaxNode) -> Option<Self> {
30960        if Self::can_cast(syntax.kind()) {
30961            Some(Self { syntax })
30962        } else {
30963            None
30964        }
30965    }
30966    #[inline]
30967    fn syntax(&self) -> &SyntaxNode {
30968        &self.syntax
30969    }
30970}
30971impl AstNode for WithParams {
30972    #[inline]
30973    fn can_cast(kind: SyntaxKind) -> bool {
30974        kind == SyntaxKind::WITH_PARAMS
30975    }
30976    #[inline]
30977    fn cast(syntax: SyntaxNode) -> Option<Self> {
30978        if Self::can_cast(syntax.kind()) {
30979            Some(Self { syntax })
30980        } else {
30981            None
30982        }
30983    }
30984    #[inline]
30985    fn syntax(&self) -> &SyntaxNode {
30986        &self.syntax
30987    }
30988}
30989impl AstNode for WithTable {
30990    #[inline]
30991    fn can_cast(kind: SyntaxKind) -> bool {
30992        kind == SyntaxKind::WITH_TABLE
30993    }
30994    #[inline]
30995    fn cast(syntax: SyntaxNode) -> Option<Self> {
30996        if Self::can_cast(syntax.kind()) {
30997            Some(Self { syntax })
30998        } else {
30999            None
31000        }
31001    }
31002    #[inline]
31003    fn syntax(&self) -> &SyntaxNode {
31004        &self.syntax
31005    }
31006}
31007impl AstNode for WithTimezone {
31008    #[inline]
31009    fn can_cast(kind: SyntaxKind) -> bool {
31010        kind == SyntaxKind::WITH_TIMEZONE
31011    }
31012    #[inline]
31013    fn cast(syntax: SyntaxNode) -> Option<Self> {
31014        if Self::can_cast(syntax.kind()) {
31015            Some(Self { syntax })
31016        } else {
31017            None
31018        }
31019    }
31020    #[inline]
31021    fn syntax(&self) -> &SyntaxNode {
31022        &self.syntax
31023    }
31024}
31025impl AstNode for WithinClause {
31026    #[inline]
31027    fn can_cast(kind: SyntaxKind) -> bool {
31028        kind == SyntaxKind::WITHIN_CLAUSE
31029    }
31030    #[inline]
31031    fn cast(syntax: SyntaxNode) -> Option<Self> {
31032        if Self::can_cast(syntax.kind()) {
31033            Some(Self { syntax })
31034        } else {
31035            None
31036        }
31037    }
31038    #[inline]
31039    fn syntax(&self) -> &SyntaxNode {
31040        &self.syntax
31041    }
31042}
31043impl AstNode for WithoutOids {
31044    #[inline]
31045    fn can_cast(kind: SyntaxKind) -> bool {
31046        kind == SyntaxKind::WITHOUT_OIDS
31047    }
31048    #[inline]
31049    fn cast(syntax: SyntaxNode) -> Option<Self> {
31050        if Self::can_cast(syntax.kind()) {
31051            Some(Self { syntax })
31052        } else {
31053            None
31054        }
31055    }
31056    #[inline]
31057    fn syntax(&self) -> &SyntaxNode {
31058        &self.syntax
31059    }
31060}
31061impl AstNode for WithoutTimezone {
31062    #[inline]
31063    fn can_cast(kind: SyntaxKind) -> bool {
31064        kind == SyntaxKind::WITHOUT_TIMEZONE
31065    }
31066    #[inline]
31067    fn cast(syntax: SyntaxNode) -> Option<Self> {
31068        if Self::can_cast(syntax.kind()) {
31069            Some(Self { syntax })
31070        } else {
31071            None
31072        }
31073    }
31074    #[inline]
31075    fn syntax(&self) -> &SyntaxNode {
31076        &self.syntax
31077    }
31078}
31079impl AstNode for XmlColumnOption {
31080    #[inline]
31081    fn can_cast(kind: SyntaxKind) -> bool {
31082        kind == SyntaxKind::XML_COLUMN_OPTION
31083    }
31084    #[inline]
31085    fn cast(syntax: SyntaxNode) -> Option<Self> {
31086        if Self::can_cast(syntax.kind()) {
31087            Some(Self { syntax })
31088        } else {
31089            None
31090        }
31091    }
31092    #[inline]
31093    fn syntax(&self) -> &SyntaxNode {
31094        &self.syntax
31095    }
31096}
31097impl AstNode for XmlColumnOptionList {
31098    #[inline]
31099    fn can_cast(kind: SyntaxKind) -> bool {
31100        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
31101    }
31102    #[inline]
31103    fn cast(syntax: SyntaxNode) -> Option<Self> {
31104        if Self::can_cast(syntax.kind()) {
31105            Some(Self { syntax })
31106        } else {
31107            None
31108        }
31109    }
31110    #[inline]
31111    fn syntax(&self) -> &SyntaxNode {
31112        &self.syntax
31113    }
31114}
31115impl AstNode for XmlElementFn {
31116    #[inline]
31117    fn can_cast(kind: SyntaxKind) -> bool {
31118        kind == SyntaxKind::XML_ELEMENT_FN
31119    }
31120    #[inline]
31121    fn cast(syntax: SyntaxNode) -> Option<Self> {
31122        if Self::can_cast(syntax.kind()) {
31123            Some(Self { syntax })
31124        } else {
31125            None
31126        }
31127    }
31128    #[inline]
31129    fn syntax(&self) -> &SyntaxNode {
31130        &self.syntax
31131    }
31132}
31133impl AstNode for XmlExistsFn {
31134    #[inline]
31135    fn can_cast(kind: SyntaxKind) -> bool {
31136        kind == SyntaxKind::XML_EXISTS_FN
31137    }
31138    #[inline]
31139    fn cast(syntax: SyntaxNode) -> Option<Self> {
31140        if Self::can_cast(syntax.kind()) {
31141            Some(Self { syntax })
31142        } else {
31143            None
31144        }
31145    }
31146    #[inline]
31147    fn syntax(&self) -> &SyntaxNode {
31148        &self.syntax
31149    }
31150}
31151impl AstNode for XmlForestFn {
31152    #[inline]
31153    fn can_cast(kind: SyntaxKind) -> bool {
31154        kind == SyntaxKind::XML_FOREST_FN
31155    }
31156    #[inline]
31157    fn cast(syntax: SyntaxNode) -> Option<Self> {
31158        if Self::can_cast(syntax.kind()) {
31159            Some(Self { syntax })
31160        } else {
31161            None
31162        }
31163    }
31164    #[inline]
31165    fn syntax(&self) -> &SyntaxNode {
31166        &self.syntax
31167    }
31168}
31169impl AstNode for XmlNamespace {
31170    #[inline]
31171    fn can_cast(kind: SyntaxKind) -> bool {
31172        kind == SyntaxKind::XML_NAMESPACE
31173    }
31174    #[inline]
31175    fn cast(syntax: SyntaxNode) -> Option<Self> {
31176        if Self::can_cast(syntax.kind()) {
31177            Some(Self { syntax })
31178        } else {
31179            None
31180        }
31181    }
31182    #[inline]
31183    fn syntax(&self) -> &SyntaxNode {
31184        &self.syntax
31185    }
31186}
31187impl AstNode for XmlNamespaceList {
31188    #[inline]
31189    fn can_cast(kind: SyntaxKind) -> bool {
31190        kind == SyntaxKind::XML_NAMESPACE_LIST
31191    }
31192    #[inline]
31193    fn cast(syntax: SyntaxNode) -> Option<Self> {
31194        if Self::can_cast(syntax.kind()) {
31195            Some(Self { syntax })
31196        } else {
31197            None
31198        }
31199    }
31200    #[inline]
31201    fn syntax(&self) -> &SyntaxNode {
31202        &self.syntax
31203    }
31204}
31205impl AstNode for XmlParseFn {
31206    #[inline]
31207    fn can_cast(kind: SyntaxKind) -> bool {
31208        kind == SyntaxKind::XML_PARSE_FN
31209    }
31210    #[inline]
31211    fn cast(syntax: SyntaxNode) -> Option<Self> {
31212        if Self::can_cast(syntax.kind()) {
31213            Some(Self { syntax })
31214        } else {
31215            None
31216        }
31217    }
31218    #[inline]
31219    fn syntax(&self) -> &SyntaxNode {
31220        &self.syntax
31221    }
31222}
31223impl AstNode for XmlPassingMech {
31224    #[inline]
31225    fn can_cast(kind: SyntaxKind) -> bool {
31226        kind == SyntaxKind::XML_PASSING_MECH
31227    }
31228    #[inline]
31229    fn cast(syntax: SyntaxNode) -> Option<Self> {
31230        if Self::can_cast(syntax.kind()) {
31231            Some(Self { syntax })
31232        } else {
31233            None
31234        }
31235    }
31236    #[inline]
31237    fn syntax(&self) -> &SyntaxNode {
31238        &self.syntax
31239    }
31240}
31241impl AstNode for XmlPiFn {
31242    #[inline]
31243    fn can_cast(kind: SyntaxKind) -> bool {
31244        kind == SyntaxKind::XML_PI_FN
31245    }
31246    #[inline]
31247    fn cast(syntax: SyntaxNode) -> Option<Self> {
31248        if Self::can_cast(syntax.kind()) {
31249            Some(Self { syntax })
31250        } else {
31251            None
31252        }
31253    }
31254    #[inline]
31255    fn syntax(&self) -> &SyntaxNode {
31256        &self.syntax
31257    }
31258}
31259impl AstNode for XmlRootFn {
31260    #[inline]
31261    fn can_cast(kind: SyntaxKind) -> bool {
31262        kind == SyntaxKind::XML_ROOT_FN
31263    }
31264    #[inline]
31265    fn cast(syntax: SyntaxNode) -> Option<Self> {
31266        if Self::can_cast(syntax.kind()) {
31267            Some(Self { syntax })
31268        } else {
31269            None
31270        }
31271    }
31272    #[inline]
31273    fn syntax(&self) -> &SyntaxNode {
31274        &self.syntax
31275    }
31276}
31277impl AstNode for XmlRowPassingClause {
31278    #[inline]
31279    fn can_cast(kind: SyntaxKind) -> bool {
31280        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
31281    }
31282    #[inline]
31283    fn cast(syntax: SyntaxNode) -> Option<Self> {
31284        if Self::can_cast(syntax.kind()) {
31285            Some(Self { syntax })
31286        } else {
31287            None
31288        }
31289    }
31290    #[inline]
31291    fn syntax(&self) -> &SyntaxNode {
31292        &self.syntax
31293    }
31294}
31295impl AstNode for XmlSerializeFn {
31296    #[inline]
31297    fn can_cast(kind: SyntaxKind) -> bool {
31298        kind == SyntaxKind::XML_SERIALIZE_FN
31299    }
31300    #[inline]
31301    fn cast(syntax: SyntaxNode) -> Option<Self> {
31302        if Self::can_cast(syntax.kind()) {
31303            Some(Self { syntax })
31304        } else {
31305            None
31306        }
31307    }
31308    #[inline]
31309    fn syntax(&self) -> &SyntaxNode {
31310        &self.syntax
31311    }
31312}
31313impl AstNode for XmlTable {
31314    #[inline]
31315    fn can_cast(kind: SyntaxKind) -> bool {
31316        kind == SyntaxKind::XML_TABLE
31317    }
31318    #[inline]
31319    fn cast(syntax: SyntaxNode) -> Option<Self> {
31320        if Self::can_cast(syntax.kind()) {
31321            Some(Self { syntax })
31322        } else {
31323            None
31324        }
31325    }
31326    #[inline]
31327    fn syntax(&self) -> &SyntaxNode {
31328        &self.syntax
31329    }
31330}
31331impl AstNode for XmlTableColumn {
31332    #[inline]
31333    fn can_cast(kind: SyntaxKind) -> bool {
31334        kind == SyntaxKind::XML_TABLE_COLUMN
31335    }
31336    #[inline]
31337    fn cast(syntax: SyntaxNode) -> Option<Self> {
31338        if Self::can_cast(syntax.kind()) {
31339            Some(Self { syntax })
31340        } else {
31341            None
31342        }
31343    }
31344    #[inline]
31345    fn syntax(&self) -> &SyntaxNode {
31346        &self.syntax
31347    }
31348}
31349impl AstNode for XmlTableColumnList {
31350    #[inline]
31351    fn can_cast(kind: SyntaxKind) -> bool {
31352        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
31353    }
31354    #[inline]
31355    fn cast(syntax: SyntaxNode) -> Option<Self> {
31356        if Self::can_cast(syntax.kind()) {
31357            Some(Self { syntax })
31358        } else {
31359            None
31360        }
31361    }
31362    #[inline]
31363    fn syntax(&self) -> &SyntaxNode {
31364        &self.syntax
31365    }
31366}
31367impl AstNode for AlterColumnOption {
31368    #[inline]
31369    fn can_cast(kind: SyntaxKind) -> bool {
31370        matches!(
31371            kind,
31372            SyntaxKind::ADD_GENERATED
31373                | SyntaxKind::DROP_DEFAULT
31374                | SyntaxKind::DROP_EXPRESSION
31375                | SyntaxKind::DROP_IDENTITY
31376                | SyntaxKind::DROP_NOT_NULL
31377                | SyntaxKind::INHERIT
31378                | SyntaxKind::NO_INHERIT
31379                | SyntaxKind::RESET_OPTIONS
31380                | SyntaxKind::RESTART
31381                | SyntaxKind::SET_COMPRESSION
31382                | SyntaxKind::SET_DEFAULT
31383                | SyntaxKind::SET_EXPRESSION
31384                | SyntaxKind::SET_GENERATED
31385                | SyntaxKind::SET_GENERATED_OPTIONS
31386                | SyntaxKind::SET_NOT_NULL
31387                | SyntaxKind::SET_OPTIONS
31388                | SyntaxKind::SET_OPTIONS_LIST
31389                | SyntaxKind::SET_SEQUENCE_OPTION
31390                | SyntaxKind::SET_STATISTICS
31391                | SyntaxKind::SET_STORAGE
31392                | SyntaxKind::SET_TYPE
31393        )
31394    }
31395    #[inline]
31396    fn cast(syntax: SyntaxNode) -> Option<Self> {
31397        let res = match syntax.kind() {
31398            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
31399            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
31400            SyntaxKind::DROP_EXPRESSION => {
31401                AlterColumnOption::DropExpression(DropExpression { syntax })
31402            }
31403            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
31404            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
31405            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
31406            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
31407            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
31408            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
31409            SyntaxKind::SET_COMPRESSION => {
31410                AlterColumnOption::SetCompression(SetCompression { syntax })
31411            }
31412            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
31413            SyntaxKind::SET_EXPRESSION => {
31414                AlterColumnOption::SetExpression(SetExpression { syntax })
31415            }
31416            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
31417            SyntaxKind::SET_GENERATED_OPTIONS => {
31418                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
31419            }
31420            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
31421            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
31422            SyntaxKind::SET_OPTIONS_LIST => {
31423                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
31424            }
31425            SyntaxKind::SET_SEQUENCE_OPTION => {
31426                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
31427            }
31428            SyntaxKind::SET_STATISTICS => {
31429                AlterColumnOption::SetStatistics(SetStatistics { syntax })
31430            }
31431            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
31432            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
31433            _ => {
31434                return None;
31435            }
31436        };
31437        Some(res)
31438    }
31439    #[inline]
31440    fn syntax(&self) -> &SyntaxNode {
31441        match self {
31442            AlterColumnOption::AddGenerated(it) => &it.syntax,
31443            AlterColumnOption::DropDefault(it) => &it.syntax,
31444            AlterColumnOption::DropExpression(it) => &it.syntax,
31445            AlterColumnOption::DropIdentity(it) => &it.syntax,
31446            AlterColumnOption::DropNotNull(it) => &it.syntax,
31447            AlterColumnOption::Inherit(it) => &it.syntax,
31448            AlterColumnOption::NoInherit(it) => &it.syntax,
31449            AlterColumnOption::ResetOptions(it) => &it.syntax,
31450            AlterColumnOption::Restart(it) => &it.syntax,
31451            AlterColumnOption::SetCompression(it) => &it.syntax,
31452            AlterColumnOption::SetDefault(it) => &it.syntax,
31453            AlterColumnOption::SetExpression(it) => &it.syntax,
31454            AlterColumnOption::SetGenerated(it) => &it.syntax,
31455            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
31456            AlterColumnOption::SetNotNull(it) => &it.syntax,
31457            AlterColumnOption::SetOptions(it) => &it.syntax,
31458            AlterColumnOption::SetOptionsList(it) => &it.syntax,
31459            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
31460            AlterColumnOption::SetStatistics(it) => &it.syntax,
31461            AlterColumnOption::SetStorage(it) => &it.syntax,
31462            AlterColumnOption::SetType(it) => &it.syntax,
31463        }
31464    }
31465}
31466impl From<AddGenerated> for AlterColumnOption {
31467    #[inline]
31468    fn from(node: AddGenerated) -> AlterColumnOption {
31469        AlterColumnOption::AddGenerated(node)
31470    }
31471}
31472impl From<DropDefault> for AlterColumnOption {
31473    #[inline]
31474    fn from(node: DropDefault) -> AlterColumnOption {
31475        AlterColumnOption::DropDefault(node)
31476    }
31477}
31478impl From<DropExpression> for AlterColumnOption {
31479    #[inline]
31480    fn from(node: DropExpression) -> AlterColumnOption {
31481        AlterColumnOption::DropExpression(node)
31482    }
31483}
31484impl From<DropIdentity> for AlterColumnOption {
31485    #[inline]
31486    fn from(node: DropIdentity) -> AlterColumnOption {
31487        AlterColumnOption::DropIdentity(node)
31488    }
31489}
31490impl From<DropNotNull> for AlterColumnOption {
31491    #[inline]
31492    fn from(node: DropNotNull) -> AlterColumnOption {
31493        AlterColumnOption::DropNotNull(node)
31494    }
31495}
31496impl From<Inherit> for AlterColumnOption {
31497    #[inline]
31498    fn from(node: Inherit) -> AlterColumnOption {
31499        AlterColumnOption::Inherit(node)
31500    }
31501}
31502impl From<NoInherit> for AlterColumnOption {
31503    #[inline]
31504    fn from(node: NoInherit) -> AlterColumnOption {
31505        AlterColumnOption::NoInherit(node)
31506    }
31507}
31508impl From<ResetOptions> for AlterColumnOption {
31509    #[inline]
31510    fn from(node: ResetOptions) -> AlterColumnOption {
31511        AlterColumnOption::ResetOptions(node)
31512    }
31513}
31514impl From<Restart> for AlterColumnOption {
31515    #[inline]
31516    fn from(node: Restart) -> AlterColumnOption {
31517        AlterColumnOption::Restart(node)
31518    }
31519}
31520impl From<SetCompression> for AlterColumnOption {
31521    #[inline]
31522    fn from(node: SetCompression) -> AlterColumnOption {
31523        AlterColumnOption::SetCompression(node)
31524    }
31525}
31526impl From<SetDefault> for AlterColumnOption {
31527    #[inline]
31528    fn from(node: SetDefault) -> AlterColumnOption {
31529        AlterColumnOption::SetDefault(node)
31530    }
31531}
31532impl From<SetExpression> for AlterColumnOption {
31533    #[inline]
31534    fn from(node: SetExpression) -> AlterColumnOption {
31535        AlterColumnOption::SetExpression(node)
31536    }
31537}
31538impl From<SetGenerated> for AlterColumnOption {
31539    #[inline]
31540    fn from(node: SetGenerated) -> AlterColumnOption {
31541        AlterColumnOption::SetGenerated(node)
31542    }
31543}
31544impl From<SetGeneratedOptions> for AlterColumnOption {
31545    #[inline]
31546    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
31547        AlterColumnOption::SetGeneratedOptions(node)
31548    }
31549}
31550impl From<SetNotNull> for AlterColumnOption {
31551    #[inline]
31552    fn from(node: SetNotNull) -> AlterColumnOption {
31553        AlterColumnOption::SetNotNull(node)
31554    }
31555}
31556impl From<SetOptions> for AlterColumnOption {
31557    #[inline]
31558    fn from(node: SetOptions) -> AlterColumnOption {
31559        AlterColumnOption::SetOptions(node)
31560    }
31561}
31562impl From<SetOptionsList> for AlterColumnOption {
31563    #[inline]
31564    fn from(node: SetOptionsList) -> AlterColumnOption {
31565        AlterColumnOption::SetOptionsList(node)
31566    }
31567}
31568impl From<SetSequenceOption> for AlterColumnOption {
31569    #[inline]
31570    fn from(node: SetSequenceOption) -> AlterColumnOption {
31571        AlterColumnOption::SetSequenceOption(node)
31572    }
31573}
31574impl From<SetStatistics> for AlterColumnOption {
31575    #[inline]
31576    fn from(node: SetStatistics) -> AlterColumnOption {
31577        AlterColumnOption::SetStatistics(node)
31578    }
31579}
31580impl From<SetStorage> for AlterColumnOption {
31581    #[inline]
31582    fn from(node: SetStorage) -> AlterColumnOption {
31583        AlterColumnOption::SetStorage(node)
31584    }
31585}
31586impl From<SetType> for AlterColumnOption {
31587    #[inline]
31588    fn from(node: SetType) -> AlterColumnOption {
31589        AlterColumnOption::SetType(node)
31590    }
31591}
31592impl AstNode for AlterDomainAction {
31593    #[inline]
31594    fn can_cast(kind: SyntaxKind) -> bool {
31595        matches!(
31596            kind,
31597            SyntaxKind::ADD_CONSTRAINT
31598                | SyntaxKind::DROP_CONSTRAINT
31599                | SyntaxKind::DROP_DEFAULT
31600                | SyntaxKind::DROP_NOT_NULL
31601                | SyntaxKind::OWNER_TO
31602                | SyntaxKind::RENAME_CONSTRAINT
31603                | SyntaxKind::RENAME_TO
31604                | SyntaxKind::SET_DEFAULT
31605                | SyntaxKind::SET_NOT_NULL
31606                | SyntaxKind::SET_SCHEMA
31607                | SyntaxKind::VALIDATE_CONSTRAINT
31608        )
31609    }
31610    #[inline]
31611    fn cast(syntax: SyntaxNode) -> Option<Self> {
31612        let res = match syntax.kind() {
31613            SyntaxKind::ADD_CONSTRAINT => {
31614                AlterDomainAction::AddConstraint(AddConstraint { syntax })
31615            }
31616            SyntaxKind::DROP_CONSTRAINT => {
31617                AlterDomainAction::DropConstraint(DropConstraint { syntax })
31618            }
31619            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
31620            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
31621            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
31622            SyntaxKind::RENAME_CONSTRAINT => {
31623                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
31624            }
31625            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
31626            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
31627            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
31628            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
31629            SyntaxKind::VALIDATE_CONSTRAINT => {
31630                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
31631            }
31632            _ => {
31633                return None;
31634            }
31635        };
31636        Some(res)
31637    }
31638    #[inline]
31639    fn syntax(&self) -> &SyntaxNode {
31640        match self {
31641            AlterDomainAction::AddConstraint(it) => &it.syntax,
31642            AlterDomainAction::DropConstraint(it) => &it.syntax,
31643            AlterDomainAction::DropDefault(it) => &it.syntax,
31644            AlterDomainAction::DropNotNull(it) => &it.syntax,
31645            AlterDomainAction::OwnerTo(it) => &it.syntax,
31646            AlterDomainAction::RenameConstraint(it) => &it.syntax,
31647            AlterDomainAction::RenameTo(it) => &it.syntax,
31648            AlterDomainAction::SetDefault(it) => &it.syntax,
31649            AlterDomainAction::SetNotNull(it) => &it.syntax,
31650            AlterDomainAction::SetSchema(it) => &it.syntax,
31651            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
31652        }
31653    }
31654}
31655impl From<AddConstraint> for AlterDomainAction {
31656    #[inline]
31657    fn from(node: AddConstraint) -> AlterDomainAction {
31658        AlterDomainAction::AddConstraint(node)
31659    }
31660}
31661impl From<DropConstraint> for AlterDomainAction {
31662    #[inline]
31663    fn from(node: DropConstraint) -> AlterDomainAction {
31664        AlterDomainAction::DropConstraint(node)
31665    }
31666}
31667impl From<DropDefault> for AlterDomainAction {
31668    #[inline]
31669    fn from(node: DropDefault) -> AlterDomainAction {
31670        AlterDomainAction::DropDefault(node)
31671    }
31672}
31673impl From<DropNotNull> for AlterDomainAction {
31674    #[inline]
31675    fn from(node: DropNotNull) -> AlterDomainAction {
31676        AlterDomainAction::DropNotNull(node)
31677    }
31678}
31679impl From<OwnerTo> for AlterDomainAction {
31680    #[inline]
31681    fn from(node: OwnerTo) -> AlterDomainAction {
31682        AlterDomainAction::OwnerTo(node)
31683    }
31684}
31685impl From<RenameConstraint> for AlterDomainAction {
31686    #[inline]
31687    fn from(node: RenameConstraint) -> AlterDomainAction {
31688        AlterDomainAction::RenameConstraint(node)
31689    }
31690}
31691impl From<RenameTo> for AlterDomainAction {
31692    #[inline]
31693    fn from(node: RenameTo) -> AlterDomainAction {
31694        AlterDomainAction::RenameTo(node)
31695    }
31696}
31697impl From<SetDefault> for AlterDomainAction {
31698    #[inline]
31699    fn from(node: SetDefault) -> AlterDomainAction {
31700        AlterDomainAction::SetDefault(node)
31701    }
31702}
31703impl From<SetNotNull> for AlterDomainAction {
31704    #[inline]
31705    fn from(node: SetNotNull) -> AlterDomainAction {
31706        AlterDomainAction::SetNotNull(node)
31707    }
31708}
31709impl From<SetSchema> for AlterDomainAction {
31710    #[inline]
31711    fn from(node: SetSchema) -> AlterDomainAction {
31712        AlterDomainAction::SetSchema(node)
31713    }
31714}
31715impl From<ValidateConstraint> for AlterDomainAction {
31716    #[inline]
31717    fn from(node: ValidateConstraint) -> AlterDomainAction {
31718        AlterDomainAction::ValidateConstraint(node)
31719    }
31720}
31721impl AstNode for AlterIndexAction {
31722    #[inline]
31723    fn can_cast(kind: SyntaxKind) -> bool {
31724        matches!(
31725            kind,
31726            SyntaxKind::ALTER_SET_STATISTICS
31727                | SyntaxKind::ATTACH_PARTITION
31728                | SyntaxKind::DEPENDS_ON_EXTENSION
31729                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31730                | SyntaxKind::RENAME_TO
31731                | SyntaxKind::RESET_OPTIONS
31732                | SyntaxKind::SET_OPTIONS
31733                | SyntaxKind::SET_TABLESPACE
31734        )
31735    }
31736    #[inline]
31737    fn cast(syntax: SyntaxNode) -> Option<Self> {
31738        let res = match syntax.kind() {
31739            SyntaxKind::ALTER_SET_STATISTICS => {
31740                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
31741            }
31742            SyntaxKind::ATTACH_PARTITION => {
31743                AlterIndexAction::AttachPartition(AttachPartition { syntax })
31744            }
31745            SyntaxKind::DEPENDS_ON_EXTENSION => {
31746                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
31747            }
31748            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31749                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31750            }
31751            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
31752            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
31753            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
31754            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
31755            _ => {
31756                return None;
31757            }
31758        };
31759        Some(res)
31760    }
31761    #[inline]
31762    fn syntax(&self) -> &SyntaxNode {
31763        match self {
31764            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
31765            AlterIndexAction::AttachPartition(it) => &it.syntax,
31766            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
31767            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
31768            AlterIndexAction::RenameTo(it) => &it.syntax,
31769            AlterIndexAction::ResetOptions(it) => &it.syntax,
31770            AlterIndexAction::SetOptions(it) => &it.syntax,
31771            AlterIndexAction::SetTablespace(it) => &it.syntax,
31772        }
31773    }
31774}
31775impl From<AlterSetStatistics> for AlterIndexAction {
31776    #[inline]
31777    fn from(node: AlterSetStatistics) -> AlterIndexAction {
31778        AlterIndexAction::AlterSetStatistics(node)
31779    }
31780}
31781impl From<AttachPartition> for AlterIndexAction {
31782    #[inline]
31783    fn from(node: AttachPartition) -> AlterIndexAction {
31784        AlterIndexAction::AttachPartition(node)
31785    }
31786}
31787impl From<DependsOnExtension> for AlterIndexAction {
31788    #[inline]
31789    fn from(node: DependsOnExtension) -> AlterIndexAction {
31790        AlterIndexAction::DependsOnExtension(node)
31791    }
31792}
31793impl From<NoDependsOnExtension> for AlterIndexAction {
31794    #[inline]
31795    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
31796        AlterIndexAction::NoDependsOnExtension(node)
31797    }
31798}
31799impl From<RenameTo> for AlterIndexAction {
31800    #[inline]
31801    fn from(node: RenameTo) -> AlterIndexAction {
31802        AlterIndexAction::RenameTo(node)
31803    }
31804}
31805impl From<ResetOptions> for AlterIndexAction {
31806    #[inline]
31807    fn from(node: ResetOptions) -> AlterIndexAction {
31808        AlterIndexAction::ResetOptions(node)
31809    }
31810}
31811impl From<SetOptions> for AlterIndexAction {
31812    #[inline]
31813    fn from(node: SetOptions) -> AlterIndexAction {
31814        AlterIndexAction::SetOptions(node)
31815    }
31816}
31817impl From<SetTablespace> for AlterIndexAction {
31818    #[inline]
31819    fn from(node: SetTablespace) -> AlterIndexAction {
31820        AlterIndexAction::SetTablespace(node)
31821    }
31822}
31823impl AstNode for AlterMaterializedViewAction {
31824    #[inline]
31825    fn can_cast(kind: SyntaxKind) -> bool {
31826        matches!(
31827            kind,
31828            SyntaxKind::DEPENDS_ON_EXTENSION
31829                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31830                | SyntaxKind::RENAME_COLUMN
31831                | SyntaxKind::RENAME_TO
31832                | SyntaxKind::SET_SCHEMA
31833        )
31834    }
31835    #[inline]
31836    fn cast(syntax: SyntaxNode) -> Option<Self> {
31837        let res = match syntax.kind() {
31838            SyntaxKind::DEPENDS_ON_EXTENSION => {
31839                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
31840            }
31841            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31842                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31843            }
31844            SyntaxKind::RENAME_COLUMN => {
31845                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
31846            }
31847            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
31848            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
31849            _ => {
31850                if let Some(result) = AlterTableAction::cast(syntax) {
31851                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
31852                }
31853                return None;
31854            }
31855        };
31856        Some(res)
31857    }
31858    #[inline]
31859    fn syntax(&self) -> &SyntaxNode {
31860        match self {
31861            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
31862            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
31863            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
31864            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
31865            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
31866            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
31867        }
31868    }
31869}
31870impl From<DependsOnExtension> for AlterMaterializedViewAction {
31871    #[inline]
31872    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
31873        AlterMaterializedViewAction::DependsOnExtension(node)
31874    }
31875}
31876impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
31877    #[inline]
31878    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
31879        AlterMaterializedViewAction::NoDependsOnExtension(node)
31880    }
31881}
31882impl From<RenameColumn> for AlterMaterializedViewAction {
31883    #[inline]
31884    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
31885        AlterMaterializedViewAction::RenameColumn(node)
31886    }
31887}
31888impl From<RenameTo> for AlterMaterializedViewAction {
31889    #[inline]
31890    fn from(node: RenameTo) -> AlterMaterializedViewAction {
31891        AlterMaterializedViewAction::RenameTo(node)
31892    }
31893}
31894impl From<SetSchema> for AlterMaterializedViewAction {
31895    #[inline]
31896    fn from(node: SetSchema) -> AlterMaterializedViewAction {
31897        AlterMaterializedViewAction::SetSchema(node)
31898    }
31899}
31900impl AstNode for AlterPropertyGraphAction {
31901    #[inline]
31902    fn can_cast(kind: SyntaxKind) -> bool {
31903        matches!(
31904            kind,
31905            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
31906                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
31907                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
31908                | SyntaxKind::DROP_EDGE_TABLES
31909                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
31910                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
31911                | SyntaxKind::DROP_VERTEX_TABLES
31912                | SyntaxKind::OWNER_TO
31913                | SyntaxKind::RENAME_TO
31914                | SyntaxKind::SET_SCHEMA
31915        )
31916    }
31917    #[inline]
31918    fn cast(syntax: SyntaxNode) -> Option<Self> {
31919        let res = match syntax.kind() {
31920            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
31921                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
31922                    AddVertexEdgeLabelProperties { syntax },
31923                )
31924            }
31925            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
31926                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
31927            }
31928            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
31929                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
31930            }
31931            SyntaxKind::DROP_EDGE_TABLES => {
31932                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
31933            }
31934            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
31935                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
31936            }
31937            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
31938                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
31939                    DropVertexEdgeLabelProperties { syntax },
31940                )
31941            }
31942            SyntaxKind::DROP_VERTEX_TABLES => {
31943                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
31944            }
31945            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
31946            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
31947            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
31948            _ => {
31949                return None;
31950            }
31951        };
31952        Some(res)
31953    }
31954    #[inline]
31955    fn syntax(&self) -> &SyntaxNode {
31956        match self {
31957            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
31958            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
31959            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
31960            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
31961            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
31962            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
31963            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
31964            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
31965            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
31966            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
31967        }
31968    }
31969}
31970impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
31971    #[inline]
31972    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
31973        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
31974    }
31975}
31976impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
31977    #[inline]
31978    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
31979        AlterPropertyGraphAction::AddVertexEdgeTables(node)
31980    }
31981}
31982impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
31983    #[inline]
31984    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
31985        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
31986    }
31987}
31988impl From<DropEdgeTables> for AlterPropertyGraphAction {
31989    #[inline]
31990    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
31991        AlterPropertyGraphAction::DropEdgeTables(node)
31992    }
31993}
31994impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
31995    #[inline]
31996    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
31997        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
31998    }
31999}
32000impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32001    #[inline]
32002    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32003        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
32004    }
32005}
32006impl From<DropVertexTables> for AlterPropertyGraphAction {
32007    #[inline]
32008    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
32009        AlterPropertyGraphAction::DropVertexTables(node)
32010    }
32011}
32012impl From<OwnerTo> for AlterPropertyGraphAction {
32013    #[inline]
32014    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
32015        AlterPropertyGraphAction::OwnerTo(node)
32016    }
32017}
32018impl From<RenameTo> for AlterPropertyGraphAction {
32019    #[inline]
32020    fn from(node: RenameTo) -> AlterPropertyGraphAction {
32021        AlterPropertyGraphAction::RenameTo(node)
32022    }
32023}
32024impl From<SetSchema> for AlterPropertyGraphAction {
32025    #[inline]
32026    fn from(node: SetSchema) -> AlterPropertyGraphAction {
32027        AlterPropertyGraphAction::SetSchema(node)
32028    }
32029}
32030impl AstNode for AlterTableAction {
32031    #[inline]
32032    fn can_cast(kind: SyntaxKind) -> bool {
32033        matches!(
32034            kind,
32035            SyntaxKind::ADD_COLUMN
32036                | SyntaxKind::ADD_CONSTRAINT
32037                | SyntaxKind::ALTER_COLUMN
32038                | SyntaxKind::ALTER_CONSTRAINT
32039                | SyntaxKind::ATTACH_PARTITION
32040                | SyntaxKind::CLUSTER_ON
32041                | SyntaxKind::DETACH_PARTITION
32042                | SyntaxKind::DISABLE_RLS
32043                | SyntaxKind::DISABLE_RULE
32044                | SyntaxKind::DISABLE_TRIGGER
32045                | SyntaxKind::DROP_COLUMN
32046                | SyntaxKind::DROP_CONSTRAINT
32047                | SyntaxKind::ENABLE_ALWAYS_RULE
32048                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
32049                | SyntaxKind::ENABLE_REPLICA_RULE
32050                | SyntaxKind::ENABLE_REPLICA_TRIGGER
32051                | SyntaxKind::ENABLE_RLS
32052                | SyntaxKind::ENABLE_RULE
32053                | SyntaxKind::ENABLE_TRIGGER
32054                | SyntaxKind::FORCE_RLS
32055                | SyntaxKind::INHERIT_TABLE
32056                | SyntaxKind::MERGE_PARTITIONS
32057                | SyntaxKind::NO_FORCE_RLS
32058                | SyntaxKind::NO_INHERIT_TABLE
32059                | SyntaxKind::NOT_OF
32060                | SyntaxKind::OF_TYPE
32061                | SyntaxKind::OPTION_ITEM_LIST
32062                | SyntaxKind::OWNER_TO
32063                | SyntaxKind::RENAME_COLUMN
32064                | SyntaxKind::RENAME_CONSTRAINT
32065                | SyntaxKind::RENAME_TO
32066                | SyntaxKind::REPLICA_IDENTITY
32067                | SyntaxKind::RESET_OPTIONS
32068                | SyntaxKind::SET_ACCESS_METHOD
32069                | SyntaxKind::SET_LOGGED
32070                | SyntaxKind::SET_OPTIONS
32071                | SyntaxKind::SET_SCHEMA
32072                | SyntaxKind::SET_TABLESPACE
32073                | SyntaxKind::SET_UNLOGGED
32074                | SyntaxKind::SET_WITHOUT_CLUSTER
32075                | SyntaxKind::SET_WITHOUT_OIDS
32076                | SyntaxKind::SPLIT_PARTITION
32077                | SyntaxKind::VALIDATE_CONSTRAINT
32078        )
32079    }
32080    #[inline]
32081    fn cast(syntax: SyntaxNode) -> Option<Self> {
32082        let res = match syntax.kind() {
32083            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
32084            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
32085            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
32086            SyntaxKind::ALTER_CONSTRAINT => {
32087                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
32088            }
32089            SyntaxKind::ATTACH_PARTITION => {
32090                AlterTableAction::AttachPartition(AttachPartition { syntax })
32091            }
32092            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
32093            SyntaxKind::DETACH_PARTITION => {
32094                AlterTableAction::DetachPartition(DetachPartition { syntax })
32095            }
32096            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
32097            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
32098            SyntaxKind::DISABLE_TRIGGER => {
32099                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
32100            }
32101            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
32102            SyntaxKind::DROP_CONSTRAINT => {
32103                AlterTableAction::DropConstraint(DropConstraint { syntax })
32104            }
32105            SyntaxKind::ENABLE_ALWAYS_RULE => {
32106                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
32107            }
32108            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
32109                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
32110            }
32111            SyntaxKind::ENABLE_REPLICA_RULE => {
32112                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
32113            }
32114            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
32115                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
32116            }
32117            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
32118            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
32119            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
32120            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
32121            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
32122            SyntaxKind::MERGE_PARTITIONS => {
32123                AlterTableAction::MergePartitions(MergePartitions { syntax })
32124            }
32125            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
32126            SyntaxKind::NO_INHERIT_TABLE => {
32127                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
32128            }
32129            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
32130            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
32131            SyntaxKind::OPTION_ITEM_LIST => {
32132                AlterTableAction::OptionItemList(OptionItemList { syntax })
32133            }
32134            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
32135            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
32136            SyntaxKind::RENAME_CONSTRAINT => {
32137                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
32138            }
32139            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
32140            SyntaxKind::REPLICA_IDENTITY => {
32141                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
32142            }
32143            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
32144            SyntaxKind::SET_ACCESS_METHOD => {
32145                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
32146            }
32147            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
32148            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
32149            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
32150            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
32151            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
32152            SyntaxKind::SET_WITHOUT_CLUSTER => {
32153                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
32154            }
32155            SyntaxKind::SET_WITHOUT_OIDS => {
32156                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
32157            }
32158            SyntaxKind::SPLIT_PARTITION => {
32159                AlterTableAction::SplitPartition(SplitPartition { syntax })
32160            }
32161            SyntaxKind::VALIDATE_CONSTRAINT => {
32162                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
32163            }
32164            _ => {
32165                return None;
32166            }
32167        };
32168        Some(res)
32169    }
32170    #[inline]
32171    fn syntax(&self) -> &SyntaxNode {
32172        match self {
32173            AlterTableAction::AddColumn(it) => &it.syntax,
32174            AlterTableAction::AddConstraint(it) => &it.syntax,
32175            AlterTableAction::AlterColumn(it) => &it.syntax,
32176            AlterTableAction::AlterConstraint(it) => &it.syntax,
32177            AlterTableAction::AttachPartition(it) => &it.syntax,
32178            AlterTableAction::ClusterOn(it) => &it.syntax,
32179            AlterTableAction::DetachPartition(it) => &it.syntax,
32180            AlterTableAction::DisableRls(it) => &it.syntax,
32181            AlterTableAction::DisableRule(it) => &it.syntax,
32182            AlterTableAction::DisableTrigger(it) => &it.syntax,
32183            AlterTableAction::DropColumn(it) => &it.syntax,
32184            AlterTableAction::DropConstraint(it) => &it.syntax,
32185            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
32186            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
32187            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
32188            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
32189            AlterTableAction::EnableRls(it) => &it.syntax,
32190            AlterTableAction::EnableRule(it) => &it.syntax,
32191            AlterTableAction::EnableTrigger(it) => &it.syntax,
32192            AlterTableAction::ForceRls(it) => &it.syntax,
32193            AlterTableAction::InheritTable(it) => &it.syntax,
32194            AlterTableAction::MergePartitions(it) => &it.syntax,
32195            AlterTableAction::NoForceRls(it) => &it.syntax,
32196            AlterTableAction::NoInheritTable(it) => &it.syntax,
32197            AlterTableAction::NotOf(it) => &it.syntax,
32198            AlterTableAction::OfType(it) => &it.syntax,
32199            AlterTableAction::OptionItemList(it) => &it.syntax,
32200            AlterTableAction::OwnerTo(it) => &it.syntax,
32201            AlterTableAction::RenameColumn(it) => &it.syntax,
32202            AlterTableAction::RenameConstraint(it) => &it.syntax,
32203            AlterTableAction::RenameTo(it) => &it.syntax,
32204            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
32205            AlterTableAction::ResetOptions(it) => &it.syntax,
32206            AlterTableAction::SetAccessMethod(it) => &it.syntax,
32207            AlterTableAction::SetLogged(it) => &it.syntax,
32208            AlterTableAction::SetOptions(it) => &it.syntax,
32209            AlterTableAction::SetSchema(it) => &it.syntax,
32210            AlterTableAction::SetTablespace(it) => &it.syntax,
32211            AlterTableAction::SetUnlogged(it) => &it.syntax,
32212            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
32213            AlterTableAction::SetWithoutOids(it) => &it.syntax,
32214            AlterTableAction::SplitPartition(it) => &it.syntax,
32215            AlterTableAction::ValidateConstraint(it) => &it.syntax,
32216        }
32217    }
32218}
32219impl From<AddColumn> for AlterTableAction {
32220    #[inline]
32221    fn from(node: AddColumn) -> AlterTableAction {
32222        AlterTableAction::AddColumn(node)
32223    }
32224}
32225impl From<AddConstraint> for AlterTableAction {
32226    #[inline]
32227    fn from(node: AddConstraint) -> AlterTableAction {
32228        AlterTableAction::AddConstraint(node)
32229    }
32230}
32231impl From<AlterColumn> for AlterTableAction {
32232    #[inline]
32233    fn from(node: AlterColumn) -> AlterTableAction {
32234        AlterTableAction::AlterColumn(node)
32235    }
32236}
32237impl From<AlterConstraint> for AlterTableAction {
32238    #[inline]
32239    fn from(node: AlterConstraint) -> AlterTableAction {
32240        AlterTableAction::AlterConstraint(node)
32241    }
32242}
32243impl From<AttachPartition> for AlterTableAction {
32244    #[inline]
32245    fn from(node: AttachPartition) -> AlterTableAction {
32246        AlterTableAction::AttachPartition(node)
32247    }
32248}
32249impl From<ClusterOn> for AlterTableAction {
32250    #[inline]
32251    fn from(node: ClusterOn) -> AlterTableAction {
32252        AlterTableAction::ClusterOn(node)
32253    }
32254}
32255impl From<DetachPartition> for AlterTableAction {
32256    #[inline]
32257    fn from(node: DetachPartition) -> AlterTableAction {
32258        AlterTableAction::DetachPartition(node)
32259    }
32260}
32261impl From<DisableRls> for AlterTableAction {
32262    #[inline]
32263    fn from(node: DisableRls) -> AlterTableAction {
32264        AlterTableAction::DisableRls(node)
32265    }
32266}
32267impl From<DisableRule> for AlterTableAction {
32268    #[inline]
32269    fn from(node: DisableRule) -> AlterTableAction {
32270        AlterTableAction::DisableRule(node)
32271    }
32272}
32273impl From<DisableTrigger> for AlterTableAction {
32274    #[inline]
32275    fn from(node: DisableTrigger) -> AlterTableAction {
32276        AlterTableAction::DisableTrigger(node)
32277    }
32278}
32279impl From<DropColumn> for AlterTableAction {
32280    #[inline]
32281    fn from(node: DropColumn) -> AlterTableAction {
32282        AlterTableAction::DropColumn(node)
32283    }
32284}
32285impl From<DropConstraint> for AlterTableAction {
32286    #[inline]
32287    fn from(node: DropConstraint) -> AlterTableAction {
32288        AlterTableAction::DropConstraint(node)
32289    }
32290}
32291impl From<EnableAlwaysRule> for AlterTableAction {
32292    #[inline]
32293    fn from(node: EnableAlwaysRule) -> AlterTableAction {
32294        AlterTableAction::EnableAlwaysRule(node)
32295    }
32296}
32297impl From<EnableAlwaysTrigger> for AlterTableAction {
32298    #[inline]
32299    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
32300        AlterTableAction::EnableAlwaysTrigger(node)
32301    }
32302}
32303impl From<EnableReplicaRule> for AlterTableAction {
32304    #[inline]
32305    fn from(node: EnableReplicaRule) -> AlterTableAction {
32306        AlterTableAction::EnableReplicaRule(node)
32307    }
32308}
32309impl From<EnableReplicaTrigger> for AlterTableAction {
32310    #[inline]
32311    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
32312        AlterTableAction::EnableReplicaTrigger(node)
32313    }
32314}
32315impl From<EnableRls> for AlterTableAction {
32316    #[inline]
32317    fn from(node: EnableRls) -> AlterTableAction {
32318        AlterTableAction::EnableRls(node)
32319    }
32320}
32321impl From<EnableRule> for AlterTableAction {
32322    #[inline]
32323    fn from(node: EnableRule) -> AlterTableAction {
32324        AlterTableAction::EnableRule(node)
32325    }
32326}
32327impl From<EnableTrigger> for AlterTableAction {
32328    #[inline]
32329    fn from(node: EnableTrigger) -> AlterTableAction {
32330        AlterTableAction::EnableTrigger(node)
32331    }
32332}
32333impl From<ForceRls> for AlterTableAction {
32334    #[inline]
32335    fn from(node: ForceRls) -> AlterTableAction {
32336        AlterTableAction::ForceRls(node)
32337    }
32338}
32339impl From<InheritTable> for AlterTableAction {
32340    #[inline]
32341    fn from(node: InheritTable) -> AlterTableAction {
32342        AlterTableAction::InheritTable(node)
32343    }
32344}
32345impl From<MergePartitions> for AlterTableAction {
32346    #[inline]
32347    fn from(node: MergePartitions) -> AlterTableAction {
32348        AlterTableAction::MergePartitions(node)
32349    }
32350}
32351impl From<NoForceRls> for AlterTableAction {
32352    #[inline]
32353    fn from(node: NoForceRls) -> AlterTableAction {
32354        AlterTableAction::NoForceRls(node)
32355    }
32356}
32357impl From<NoInheritTable> for AlterTableAction {
32358    #[inline]
32359    fn from(node: NoInheritTable) -> AlterTableAction {
32360        AlterTableAction::NoInheritTable(node)
32361    }
32362}
32363impl From<NotOf> for AlterTableAction {
32364    #[inline]
32365    fn from(node: NotOf) -> AlterTableAction {
32366        AlterTableAction::NotOf(node)
32367    }
32368}
32369impl From<OfType> for AlterTableAction {
32370    #[inline]
32371    fn from(node: OfType) -> AlterTableAction {
32372        AlterTableAction::OfType(node)
32373    }
32374}
32375impl From<OptionItemList> for AlterTableAction {
32376    #[inline]
32377    fn from(node: OptionItemList) -> AlterTableAction {
32378        AlterTableAction::OptionItemList(node)
32379    }
32380}
32381impl From<OwnerTo> for AlterTableAction {
32382    #[inline]
32383    fn from(node: OwnerTo) -> AlterTableAction {
32384        AlterTableAction::OwnerTo(node)
32385    }
32386}
32387impl From<RenameColumn> for AlterTableAction {
32388    #[inline]
32389    fn from(node: RenameColumn) -> AlterTableAction {
32390        AlterTableAction::RenameColumn(node)
32391    }
32392}
32393impl From<RenameConstraint> for AlterTableAction {
32394    #[inline]
32395    fn from(node: RenameConstraint) -> AlterTableAction {
32396        AlterTableAction::RenameConstraint(node)
32397    }
32398}
32399impl From<RenameTo> for AlterTableAction {
32400    #[inline]
32401    fn from(node: RenameTo) -> AlterTableAction {
32402        AlterTableAction::RenameTo(node)
32403    }
32404}
32405impl From<ReplicaIdentity> for AlterTableAction {
32406    #[inline]
32407    fn from(node: ReplicaIdentity) -> AlterTableAction {
32408        AlterTableAction::ReplicaIdentity(node)
32409    }
32410}
32411impl From<ResetOptions> for AlterTableAction {
32412    #[inline]
32413    fn from(node: ResetOptions) -> AlterTableAction {
32414        AlterTableAction::ResetOptions(node)
32415    }
32416}
32417impl From<SetAccessMethod> for AlterTableAction {
32418    #[inline]
32419    fn from(node: SetAccessMethod) -> AlterTableAction {
32420        AlterTableAction::SetAccessMethod(node)
32421    }
32422}
32423impl From<SetLogged> for AlterTableAction {
32424    #[inline]
32425    fn from(node: SetLogged) -> AlterTableAction {
32426        AlterTableAction::SetLogged(node)
32427    }
32428}
32429impl From<SetOptions> for AlterTableAction {
32430    #[inline]
32431    fn from(node: SetOptions) -> AlterTableAction {
32432        AlterTableAction::SetOptions(node)
32433    }
32434}
32435impl From<SetSchema> for AlterTableAction {
32436    #[inline]
32437    fn from(node: SetSchema) -> AlterTableAction {
32438        AlterTableAction::SetSchema(node)
32439    }
32440}
32441impl From<SetTablespace> for AlterTableAction {
32442    #[inline]
32443    fn from(node: SetTablespace) -> AlterTableAction {
32444        AlterTableAction::SetTablespace(node)
32445    }
32446}
32447impl From<SetUnlogged> for AlterTableAction {
32448    #[inline]
32449    fn from(node: SetUnlogged) -> AlterTableAction {
32450        AlterTableAction::SetUnlogged(node)
32451    }
32452}
32453impl From<SetWithoutCluster> for AlterTableAction {
32454    #[inline]
32455    fn from(node: SetWithoutCluster) -> AlterTableAction {
32456        AlterTableAction::SetWithoutCluster(node)
32457    }
32458}
32459impl From<SetWithoutOids> for AlterTableAction {
32460    #[inline]
32461    fn from(node: SetWithoutOids) -> AlterTableAction {
32462        AlterTableAction::SetWithoutOids(node)
32463    }
32464}
32465impl From<SplitPartition> for AlterTableAction {
32466    #[inline]
32467    fn from(node: SplitPartition) -> AlterTableAction {
32468        AlterTableAction::SplitPartition(node)
32469    }
32470}
32471impl From<ValidateConstraint> for AlterTableAction {
32472    #[inline]
32473    fn from(node: ValidateConstraint) -> AlterTableAction {
32474        AlterTableAction::ValidateConstraint(node)
32475    }
32476}
32477impl AstNode for AlterTypeAction {
32478    #[inline]
32479    fn can_cast(kind: SyntaxKind) -> bool {
32480        matches!(
32481            kind,
32482            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
32483        )
32484    }
32485    #[inline]
32486    fn cast(syntax: SyntaxNode) -> Option<Self> {
32487        let res = match syntax.kind() {
32488            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
32489            SyntaxKind::ALTER_ATTRIBUTE => {
32490                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
32491            }
32492            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
32493            _ => {
32494                return None;
32495            }
32496        };
32497        Some(res)
32498    }
32499    #[inline]
32500    fn syntax(&self) -> &SyntaxNode {
32501        match self {
32502            AlterTypeAction::AddAttribute(it) => &it.syntax,
32503            AlterTypeAction::AlterAttribute(it) => &it.syntax,
32504            AlterTypeAction::DropAttribute(it) => &it.syntax,
32505        }
32506    }
32507}
32508impl From<AddAttribute> for AlterTypeAction {
32509    #[inline]
32510    fn from(node: AddAttribute) -> AlterTypeAction {
32511        AlterTypeAction::AddAttribute(node)
32512    }
32513}
32514impl From<AlterAttribute> for AlterTypeAction {
32515    #[inline]
32516    fn from(node: AlterAttribute) -> AlterTypeAction {
32517        AlterTypeAction::AlterAttribute(node)
32518    }
32519}
32520impl From<DropAttribute> for AlterTypeAction {
32521    #[inline]
32522    fn from(node: DropAttribute) -> AlterTypeAction {
32523        AlterTypeAction::DropAttribute(node)
32524    }
32525}
32526impl AstNode for ColumnConstraint {
32527    #[inline]
32528    fn can_cast(kind: SyntaxKind) -> bool {
32529        matches!(
32530            kind,
32531            SyntaxKind::CHECK_CONSTRAINT
32532                | SyntaxKind::DEFAULT_CONSTRAINT
32533                | SyntaxKind::EXCLUDE_CONSTRAINT
32534                | SyntaxKind::NOT_NULL_CONSTRAINT
32535                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32536                | SyntaxKind::REFERENCES_CONSTRAINT
32537                | SyntaxKind::UNIQUE_CONSTRAINT
32538        )
32539    }
32540    #[inline]
32541    fn cast(syntax: SyntaxNode) -> Option<Self> {
32542        let res = match syntax.kind() {
32543            SyntaxKind::CHECK_CONSTRAINT => {
32544                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
32545            }
32546            SyntaxKind::DEFAULT_CONSTRAINT => {
32547                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
32548            }
32549            SyntaxKind::EXCLUDE_CONSTRAINT => {
32550                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32551            }
32552            SyntaxKind::NOT_NULL_CONSTRAINT => {
32553                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
32554            }
32555            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32556                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32557            }
32558            SyntaxKind::REFERENCES_CONSTRAINT => {
32559                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
32560            }
32561            SyntaxKind::UNIQUE_CONSTRAINT => {
32562                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
32563            }
32564            _ => {
32565                return None;
32566            }
32567        };
32568        Some(res)
32569    }
32570    #[inline]
32571    fn syntax(&self) -> &SyntaxNode {
32572        match self {
32573            ColumnConstraint::CheckConstraint(it) => &it.syntax,
32574            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
32575            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
32576            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
32577            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32578            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
32579            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
32580        }
32581    }
32582}
32583impl From<CheckConstraint> for ColumnConstraint {
32584    #[inline]
32585    fn from(node: CheckConstraint) -> ColumnConstraint {
32586        ColumnConstraint::CheckConstraint(node)
32587    }
32588}
32589impl From<DefaultConstraint> for ColumnConstraint {
32590    #[inline]
32591    fn from(node: DefaultConstraint) -> ColumnConstraint {
32592        ColumnConstraint::DefaultConstraint(node)
32593    }
32594}
32595impl From<ExcludeConstraint> for ColumnConstraint {
32596    #[inline]
32597    fn from(node: ExcludeConstraint) -> ColumnConstraint {
32598        ColumnConstraint::ExcludeConstraint(node)
32599    }
32600}
32601impl From<NotNullConstraint> for ColumnConstraint {
32602    #[inline]
32603    fn from(node: NotNullConstraint) -> ColumnConstraint {
32604        ColumnConstraint::NotNullConstraint(node)
32605    }
32606}
32607impl From<PrimaryKeyConstraint> for ColumnConstraint {
32608    #[inline]
32609    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
32610        ColumnConstraint::PrimaryKeyConstraint(node)
32611    }
32612}
32613impl From<ReferencesConstraint> for ColumnConstraint {
32614    #[inline]
32615    fn from(node: ReferencesConstraint) -> ColumnConstraint {
32616        ColumnConstraint::ReferencesConstraint(node)
32617    }
32618}
32619impl From<UniqueConstraint> for ColumnConstraint {
32620    #[inline]
32621    fn from(node: UniqueConstraint) -> ColumnConstraint {
32622        ColumnConstraint::UniqueConstraint(node)
32623    }
32624}
32625impl AstNode for ConfigValue {
32626    #[inline]
32627    fn can_cast(kind: SyntaxKind) -> bool {
32628        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
32629    }
32630    #[inline]
32631    fn cast(syntax: SyntaxNode) -> Option<Self> {
32632        let res = match syntax.kind() {
32633            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
32634            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
32635            _ => {
32636                return None;
32637            }
32638        };
32639        Some(res)
32640    }
32641    #[inline]
32642    fn syntax(&self) -> &SyntaxNode {
32643        match self {
32644            ConfigValue::Literal(it) => &it.syntax,
32645            ConfigValue::NameRef(it) => &it.syntax,
32646        }
32647    }
32648}
32649impl From<Literal> for ConfigValue {
32650    #[inline]
32651    fn from(node: Literal) -> ConfigValue {
32652        ConfigValue::Literal(node)
32653    }
32654}
32655impl From<NameRef> for ConfigValue {
32656    #[inline]
32657    fn from(node: NameRef) -> ConfigValue {
32658        ConfigValue::NameRef(node)
32659    }
32660}
32661impl AstNode for ConflictAction {
32662    #[inline]
32663    fn can_cast(kind: SyntaxKind) -> bool {
32664        matches!(
32665            kind,
32666            SyntaxKind::CONFLICT_DO_NOTHING
32667                | SyntaxKind::CONFLICT_DO_SELECT
32668                | SyntaxKind::CONFLICT_DO_UPDATE_SET
32669        )
32670    }
32671    #[inline]
32672    fn cast(syntax: SyntaxNode) -> Option<Self> {
32673        let res = match syntax.kind() {
32674            SyntaxKind::CONFLICT_DO_NOTHING => {
32675                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
32676            }
32677            SyntaxKind::CONFLICT_DO_SELECT => {
32678                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
32679            }
32680            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
32681                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
32682            }
32683            _ => {
32684                return None;
32685            }
32686        };
32687        Some(res)
32688    }
32689    #[inline]
32690    fn syntax(&self) -> &SyntaxNode {
32691        match self {
32692            ConflictAction::ConflictDoNothing(it) => &it.syntax,
32693            ConflictAction::ConflictDoSelect(it) => &it.syntax,
32694            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
32695        }
32696    }
32697}
32698impl From<ConflictDoNothing> for ConflictAction {
32699    #[inline]
32700    fn from(node: ConflictDoNothing) -> ConflictAction {
32701        ConflictAction::ConflictDoNothing(node)
32702    }
32703}
32704impl From<ConflictDoSelect> for ConflictAction {
32705    #[inline]
32706    fn from(node: ConflictDoSelect) -> ConflictAction {
32707        ConflictAction::ConflictDoSelect(node)
32708    }
32709}
32710impl From<ConflictDoUpdateSet> for ConflictAction {
32711    #[inline]
32712    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
32713        ConflictAction::ConflictDoUpdateSet(node)
32714    }
32715}
32716impl AstNode for ConflictTarget {
32717    #[inline]
32718    fn can_cast(kind: SyntaxKind) -> bool {
32719        matches!(
32720            kind,
32721            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
32722        )
32723    }
32724    #[inline]
32725    fn cast(syntax: SyntaxNode) -> Option<Self> {
32726        let res = match syntax.kind() {
32727            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
32728                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
32729            }
32730            SyntaxKind::CONFLICT_ON_INDEX => {
32731                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
32732            }
32733            _ => {
32734                return None;
32735            }
32736        };
32737        Some(res)
32738    }
32739    #[inline]
32740    fn syntax(&self) -> &SyntaxNode {
32741        match self {
32742            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
32743            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
32744        }
32745    }
32746}
32747impl From<ConflictOnConstraint> for ConflictTarget {
32748    #[inline]
32749    fn from(node: ConflictOnConstraint) -> ConflictTarget {
32750        ConflictTarget::ConflictOnConstraint(node)
32751    }
32752}
32753impl From<ConflictOnIndex> for ConflictTarget {
32754    #[inline]
32755    fn from(node: ConflictOnIndex) -> ConflictTarget {
32756        ConflictTarget::ConflictOnIndex(node)
32757    }
32758}
32759impl AstNode for Constraint {
32760    #[inline]
32761    fn can_cast(kind: SyntaxKind) -> bool {
32762        matches!(
32763            kind,
32764            SyntaxKind::CHECK_CONSTRAINT
32765                | SyntaxKind::DEFAULT_CONSTRAINT
32766                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32767                | SyntaxKind::GENERATED_CONSTRAINT
32768                | SyntaxKind::NOT_NULL_CONSTRAINT
32769                | SyntaxKind::NULL_CONSTRAINT
32770                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32771                | SyntaxKind::REFERENCES_CONSTRAINT
32772                | SyntaxKind::UNIQUE_CONSTRAINT
32773        )
32774    }
32775    #[inline]
32776    fn cast(syntax: SyntaxNode) -> Option<Self> {
32777        let res = match syntax.kind() {
32778            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
32779            SyntaxKind::DEFAULT_CONSTRAINT => {
32780                Constraint::DefaultConstraint(DefaultConstraint { syntax })
32781            }
32782            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32783                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32784            }
32785            SyntaxKind::GENERATED_CONSTRAINT => {
32786                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
32787            }
32788            SyntaxKind::NOT_NULL_CONSTRAINT => {
32789                Constraint::NotNullConstraint(NotNullConstraint { syntax })
32790            }
32791            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
32792            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32793                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32794            }
32795            SyntaxKind::REFERENCES_CONSTRAINT => {
32796                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
32797            }
32798            SyntaxKind::UNIQUE_CONSTRAINT => {
32799                Constraint::UniqueConstraint(UniqueConstraint { syntax })
32800            }
32801            _ => {
32802                return None;
32803            }
32804        };
32805        Some(res)
32806    }
32807    #[inline]
32808    fn syntax(&self) -> &SyntaxNode {
32809        match self {
32810            Constraint::CheckConstraint(it) => &it.syntax,
32811            Constraint::DefaultConstraint(it) => &it.syntax,
32812            Constraint::ForeignKeyConstraint(it) => &it.syntax,
32813            Constraint::GeneratedConstraint(it) => &it.syntax,
32814            Constraint::NotNullConstraint(it) => &it.syntax,
32815            Constraint::NullConstraint(it) => &it.syntax,
32816            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
32817            Constraint::ReferencesConstraint(it) => &it.syntax,
32818            Constraint::UniqueConstraint(it) => &it.syntax,
32819        }
32820    }
32821}
32822impl From<CheckConstraint> for Constraint {
32823    #[inline]
32824    fn from(node: CheckConstraint) -> Constraint {
32825        Constraint::CheckConstraint(node)
32826    }
32827}
32828impl From<DefaultConstraint> for Constraint {
32829    #[inline]
32830    fn from(node: DefaultConstraint) -> Constraint {
32831        Constraint::DefaultConstraint(node)
32832    }
32833}
32834impl From<ForeignKeyConstraint> for Constraint {
32835    #[inline]
32836    fn from(node: ForeignKeyConstraint) -> Constraint {
32837        Constraint::ForeignKeyConstraint(node)
32838    }
32839}
32840impl From<GeneratedConstraint> for Constraint {
32841    #[inline]
32842    fn from(node: GeneratedConstraint) -> Constraint {
32843        Constraint::GeneratedConstraint(node)
32844    }
32845}
32846impl From<NotNullConstraint> for Constraint {
32847    #[inline]
32848    fn from(node: NotNullConstraint) -> Constraint {
32849        Constraint::NotNullConstraint(node)
32850    }
32851}
32852impl From<NullConstraint> for Constraint {
32853    #[inline]
32854    fn from(node: NullConstraint) -> Constraint {
32855        Constraint::NullConstraint(node)
32856    }
32857}
32858impl From<PrimaryKeyConstraint> for Constraint {
32859    #[inline]
32860    fn from(node: PrimaryKeyConstraint) -> Constraint {
32861        Constraint::PrimaryKeyConstraint(node)
32862    }
32863}
32864impl From<ReferencesConstraint> for Constraint {
32865    #[inline]
32866    fn from(node: ReferencesConstraint) -> Constraint {
32867        Constraint::ReferencesConstraint(node)
32868    }
32869}
32870impl From<UniqueConstraint> for Constraint {
32871    #[inline]
32872    fn from(node: UniqueConstraint) -> Constraint {
32873        Constraint::UniqueConstraint(node)
32874    }
32875}
32876impl AstNode for ElementTableLabelAndProperties {
32877    #[inline]
32878    fn can_cast(kind: SyntaxKind) -> bool {
32879        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
32880    }
32881    #[inline]
32882    fn cast(syntax: SyntaxNode) -> Option<Self> {
32883        let res = match syntax.kind() {
32884            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
32885                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
32886                    syntax,
32887                })
32888            }
32889            _ => {
32890                if let Some(result) = ElementTableProperties::cast(syntax) {
32891                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
32892                        result,
32893                    ));
32894                }
32895                return None;
32896            }
32897        };
32898        Some(res)
32899    }
32900    #[inline]
32901    fn syntax(&self) -> &SyntaxNode {
32902        match self {
32903            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
32904            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
32905        }
32906    }
32907}
32908impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
32909    #[inline]
32910    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
32911        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
32912    }
32913}
32914impl AstNode for ElementTableProperties {
32915    #[inline]
32916    fn can_cast(kind: SyntaxKind) -> bool {
32917        matches!(
32918            kind,
32919            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES_LIST
32920        )
32921    }
32922    #[inline]
32923    fn cast(syntax: SyntaxNode) -> Option<Self> {
32924        let res = match syntax.kind() {
32925            SyntaxKind::ALL_PROPERTIES => {
32926                ElementTableProperties::AllProperties(AllProperties { syntax })
32927            }
32928            SyntaxKind::NO_PROPERTIES => {
32929                ElementTableProperties::NoProperties(NoProperties { syntax })
32930            }
32931            SyntaxKind::PROPERTIES_LIST => {
32932                ElementTableProperties::PropertiesList(PropertiesList { syntax })
32933            }
32934            _ => {
32935                return None;
32936            }
32937        };
32938        Some(res)
32939    }
32940    #[inline]
32941    fn syntax(&self) -> &SyntaxNode {
32942        match self {
32943            ElementTableProperties::AllProperties(it) => &it.syntax,
32944            ElementTableProperties::NoProperties(it) => &it.syntax,
32945            ElementTableProperties::PropertiesList(it) => &it.syntax,
32946        }
32947    }
32948}
32949impl From<AllProperties> for ElementTableProperties {
32950    #[inline]
32951    fn from(node: AllProperties) -> ElementTableProperties {
32952        ElementTableProperties::AllProperties(node)
32953    }
32954}
32955impl From<NoProperties> for ElementTableProperties {
32956    #[inline]
32957    fn from(node: NoProperties) -> ElementTableProperties {
32958        ElementTableProperties::NoProperties(node)
32959    }
32960}
32961impl From<PropertiesList> for ElementTableProperties {
32962    #[inline]
32963    fn from(node: PropertiesList) -> ElementTableProperties {
32964        ElementTableProperties::PropertiesList(node)
32965    }
32966}
32967impl AstNode for ExplainStmt {
32968    #[inline]
32969    fn can_cast(kind: SyntaxKind) -> bool {
32970        matches!(
32971            kind,
32972            SyntaxKind::COMPOUND_SELECT
32973                | SyntaxKind::CREATE_MATERIALIZED_VIEW
32974                | SyntaxKind::CREATE_TABLE_AS
32975                | SyntaxKind::DECLARE
32976                | SyntaxKind::DELETE
32977                | SyntaxKind::EXECUTE
32978                | SyntaxKind::INSERT
32979                | SyntaxKind::MERGE
32980                | SyntaxKind::PAREN_SELECT
32981                | SyntaxKind::SELECT
32982                | SyntaxKind::SELECT_INTO
32983                | SyntaxKind::TABLE
32984                | SyntaxKind::UPDATE
32985                | SyntaxKind::VALUES
32986        )
32987    }
32988    #[inline]
32989    fn cast(syntax: SyntaxNode) -> Option<Self> {
32990        let res = match syntax.kind() {
32991            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
32992            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
32993                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
32994            }
32995            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
32996            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
32997            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
32998            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
32999            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
33000            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
33001            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
33002            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
33003            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
33004            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
33005            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
33006            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
33007            _ => {
33008                return None;
33009            }
33010        };
33011        Some(res)
33012    }
33013    #[inline]
33014    fn syntax(&self) -> &SyntaxNode {
33015        match self {
33016            ExplainStmt::CompoundSelect(it) => &it.syntax,
33017            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
33018            ExplainStmt::CreateTableAs(it) => &it.syntax,
33019            ExplainStmt::Declare(it) => &it.syntax,
33020            ExplainStmt::Delete(it) => &it.syntax,
33021            ExplainStmt::Execute(it) => &it.syntax,
33022            ExplainStmt::Insert(it) => &it.syntax,
33023            ExplainStmt::Merge(it) => &it.syntax,
33024            ExplainStmt::ParenSelect(it) => &it.syntax,
33025            ExplainStmt::Select(it) => &it.syntax,
33026            ExplainStmt::SelectInto(it) => &it.syntax,
33027            ExplainStmt::Table(it) => &it.syntax,
33028            ExplainStmt::Update(it) => &it.syntax,
33029            ExplainStmt::Values(it) => &it.syntax,
33030        }
33031    }
33032}
33033impl From<CompoundSelect> for ExplainStmt {
33034    #[inline]
33035    fn from(node: CompoundSelect) -> ExplainStmt {
33036        ExplainStmt::CompoundSelect(node)
33037    }
33038}
33039impl From<CreateMaterializedView> for ExplainStmt {
33040    #[inline]
33041    fn from(node: CreateMaterializedView) -> ExplainStmt {
33042        ExplainStmt::CreateMaterializedView(node)
33043    }
33044}
33045impl From<CreateTableAs> for ExplainStmt {
33046    #[inline]
33047    fn from(node: CreateTableAs) -> ExplainStmt {
33048        ExplainStmt::CreateTableAs(node)
33049    }
33050}
33051impl From<Declare> for ExplainStmt {
33052    #[inline]
33053    fn from(node: Declare) -> ExplainStmt {
33054        ExplainStmt::Declare(node)
33055    }
33056}
33057impl From<Delete> for ExplainStmt {
33058    #[inline]
33059    fn from(node: Delete) -> ExplainStmt {
33060        ExplainStmt::Delete(node)
33061    }
33062}
33063impl From<Execute> for ExplainStmt {
33064    #[inline]
33065    fn from(node: Execute) -> ExplainStmt {
33066        ExplainStmt::Execute(node)
33067    }
33068}
33069impl From<Insert> for ExplainStmt {
33070    #[inline]
33071    fn from(node: Insert) -> ExplainStmt {
33072        ExplainStmt::Insert(node)
33073    }
33074}
33075impl From<Merge> for ExplainStmt {
33076    #[inline]
33077    fn from(node: Merge) -> ExplainStmt {
33078        ExplainStmt::Merge(node)
33079    }
33080}
33081impl From<ParenSelect> for ExplainStmt {
33082    #[inline]
33083    fn from(node: ParenSelect) -> ExplainStmt {
33084        ExplainStmt::ParenSelect(node)
33085    }
33086}
33087impl From<Select> for ExplainStmt {
33088    #[inline]
33089    fn from(node: Select) -> ExplainStmt {
33090        ExplainStmt::Select(node)
33091    }
33092}
33093impl From<SelectInto> for ExplainStmt {
33094    #[inline]
33095    fn from(node: SelectInto) -> ExplainStmt {
33096        ExplainStmt::SelectInto(node)
33097    }
33098}
33099impl From<Table> for ExplainStmt {
33100    #[inline]
33101    fn from(node: Table) -> ExplainStmt {
33102        ExplainStmt::Table(node)
33103    }
33104}
33105impl From<Update> for ExplainStmt {
33106    #[inline]
33107    fn from(node: Update) -> ExplainStmt {
33108        ExplainStmt::Update(node)
33109    }
33110}
33111impl From<Values> for ExplainStmt {
33112    #[inline]
33113    fn from(node: Values) -> ExplainStmt {
33114        ExplainStmt::Values(node)
33115    }
33116}
33117impl AstNode for Expr {
33118    #[inline]
33119    fn can_cast(kind: SyntaxKind) -> bool {
33120        matches!(
33121            kind,
33122            SyntaxKind::ARRAY_EXPR
33123                | SyntaxKind::BETWEEN_EXPR
33124                | SyntaxKind::BIN_EXPR
33125                | SyntaxKind::CALL_EXPR
33126                | SyntaxKind::CASE_EXPR
33127                | SyntaxKind::CAST_EXPR
33128                | SyntaxKind::FIELD_EXPR
33129                | SyntaxKind::INDEX_EXPR
33130                | SyntaxKind::LITERAL
33131                | SyntaxKind::NAME_REF
33132                | SyntaxKind::PAREN_EXPR
33133                | SyntaxKind::POSTFIX_EXPR
33134                | SyntaxKind::PREFIX_EXPR
33135                | SyntaxKind::SLICE_EXPR
33136                | SyntaxKind::TUPLE_EXPR
33137        )
33138    }
33139    #[inline]
33140    fn cast(syntax: SyntaxNode) -> Option<Self> {
33141        let res = match syntax.kind() {
33142            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
33143            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
33144            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
33145            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
33146            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
33147            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
33148            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
33149            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
33150            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
33151            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
33152            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
33153            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
33154            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
33155            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
33156            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
33157            _ => {
33158                return None;
33159            }
33160        };
33161        Some(res)
33162    }
33163    #[inline]
33164    fn syntax(&self) -> &SyntaxNode {
33165        match self {
33166            Expr::ArrayExpr(it) => &it.syntax,
33167            Expr::BetweenExpr(it) => &it.syntax,
33168            Expr::BinExpr(it) => &it.syntax,
33169            Expr::CallExpr(it) => &it.syntax,
33170            Expr::CaseExpr(it) => &it.syntax,
33171            Expr::CastExpr(it) => &it.syntax,
33172            Expr::FieldExpr(it) => &it.syntax,
33173            Expr::IndexExpr(it) => &it.syntax,
33174            Expr::Literal(it) => &it.syntax,
33175            Expr::NameRef(it) => &it.syntax,
33176            Expr::ParenExpr(it) => &it.syntax,
33177            Expr::PostfixExpr(it) => &it.syntax,
33178            Expr::PrefixExpr(it) => &it.syntax,
33179            Expr::SliceExpr(it) => &it.syntax,
33180            Expr::TupleExpr(it) => &it.syntax,
33181        }
33182    }
33183}
33184impl From<ArrayExpr> for Expr {
33185    #[inline]
33186    fn from(node: ArrayExpr) -> Expr {
33187        Expr::ArrayExpr(node)
33188    }
33189}
33190impl From<BetweenExpr> for Expr {
33191    #[inline]
33192    fn from(node: BetweenExpr) -> Expr {
33193        Expr::BetweenExpr(node)
33194    }
33195}
33196impl From<BinExpr> for Expr {
33197    #[inline]
33198    fn from(node: BinExpr) -> Expr {
33199        Expr::BinExpr(node)
33200    }
33201}
33202impl From<CallExpr> for Expr {
33203    #[inline]
33204    fn from(node: CallExpr) -> Expr {
33205        Expr::CallExpr(node)
33206    }
33207}
33208impl From<CaseExpr> for Expr {
33209    #[inline]
33210    fn from(node: CaseExpr) -> Expr {
33211        Expr::CaseExpr(node)
33212    }
33213}
33214impl From<CastExpr> for Expr {
33215    #[inline]
33216    fn from(node: CastExpr) -> Expr {
33217        Expr::CastExpr(node)
33218    }
33219}
33220impl From<FieldExpr> for Expr {
33221    #[inline]
33222    fn from(node: FieldExpr) -> Expr {
33223        Expr::FieldExpr(node)
33224    }
33225}
33226impl From<IndexExpr> for Expr {
33227    #[inline]
33228    fn from(node: IndexExpr) -> Expr {
33229        Expr::IndexExpr(node)
33230    }
33231}
33232impl From<Literal> for Expr {
33233    #[inline]
33234    fn from(node: Literal) -> Expr {
33235        Expr::Literal(node)
33236    }
33237}
33238impl From<NameRef> for Expr {
33239    #[inline]
33240    fn from(node: NameRef) -> Expr {
33241        Expr::NameRef(node)
33242    }
33243}
33244impl From<ParenExpr> for Expr {
33245    #[inline]
33246    fn from(node: ParenExpr) -> Expr {
33247        Expr::ParenExpr(node)
33248    }
33249}
33250impl From<PostfixExpr> for Expr {
33251    #[inline]
33252    fn from(node: PostfixExpr) -> Expr {
33253        Expr::PostfixExpr(node)
33254    }
33255}
33256impl From<PrefixExpr> for Expr {
33257    #[inline]
33258    fn from(node: PrefixExpr) -> Expr {
33259        Expr::PrefixExpr(node)
33260    }
33261}
33262impl From<SliceExpr> for Expr {
33263    #[inline]
33264    fn from(node: SliceExpr) -> Expr {
33265        Expr::SliceExpr(node)
33266    }
33267}
33268impl From<TupleExpr> for Expr {
33269    #[inline]
33270    fn from(node: TupleExpr) -> Expr {
33271        Expr::TupleExpr(node)
33272    }
33273}
33274impl AstNode for FuncOption {
33275    #[inline]
33276    fn can_cast(kind: SyntaxKind) -> bool {
33277        matches!(
33278            kind,
33279            SyntaxKind::AS_FUNC_OPTION
33280                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
33281                | SyntaxKind::COST_FUNC_OPTION
33282                | SyntaxKind::LANGUAGE_FUNC_OPTION
33283                | SyntaxKind::LEAKPROOF_FUNC_OPTION
33284                | SyntaxKind::PARALLEL_FUNC_OPTION
33285                | SyntaxKind::RESET_FUNC_OPTION
33286                | SyntaxKind::RETURN_FUNC_OPTION
33287                | SyntaxKind::ROWS_FUNC_OPTION
33288                | SyntaxKind::SECURITY_FUNC_OPTION
33289                | SyntaxKind::SET_FUNC_OPTION
33290                | SyntaxKind::STRICT_FUNC_OPTION
33291                | SyntaxKind::SUPPORT_FUNC_OPTION
33292                | SyntaxKind::TRANSFORM_FUNC_OPTION
33293                | SyntaxKind::VOLATILITY_FUNC_OPTION
33294                | SyntaxKind::WINDOW_FUNC_OPTION
33295        )
33296    }
33297    #[inline]
33298    fn cast(syntax: SyntaxNode) -> Option<Self> {
33299        let res = match syntax.kind() {
33300            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
33301            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
33302                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
33303            }
33304            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
33305            SyntaxKind::LANGUAGE_FUNC_OPTION => {
33306                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
33307            }
33308            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
33309                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
33310            }
33311            SyntaxKind::PARALLEL_FUNC_OPTION => {
33312                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
33313            }
33314            SyntaxKind::RESET_FUNC_OPTION => {
33315                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
33316            }
33317            SyntaxKind::RETURN_FUNC_OPTION => {
33318                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33319            }
33320            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
33321            SyntaxKind::SECURITY_FUNC_OPTION => {
33322                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
33323            }
33324            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
33325            SyntaxKind::STRICT_FUNC_OPTION => {
33326                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
33327            }
33328            SyntaxKind::SUPPORT_FUNC_OPTION => {
33329                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
33330            }
33331            SyntaxKind::TRANSFORM_FUNC_OPTION => {
33332                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
33333            }
33334            SyntaxKind::VOLATILITY_FUNC_OPTION => {
33335                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
33336            }
33337            SyntaxKind::WINDOW_FUNC_OPTION => {
33338                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
33339            }
33340            _ => {
33341                return None;
33342            }
33343        };
33344        Some(res)
33345    }
33346    #[inline]
33347    fn syntax(&self) -> &SyntaxNode {
33348        match self {
33349            FuncOption::AsFuncOption(it) => &it.syntax,
33350            FuncOption::BeginFuncOptionList(it) => &it.syntax,
33351            FuncOption::CostFuncOption(it) => &it.syntax,
33352            FuncOption::LanguageFuncOption(it) => &it.syntax,
33353            FuncOption::LeakproofFuncOption(it) => &it.syntax,
33354            FuncOption::ParallelFuncOption(it) => &it.syntax,
33355            FuncOption::ResetFuncOption(it) => &it.syntax,
33356            FuncOption::ReturnFuncOption(it) => &it.syntax,
33357            FuncOption::RowsFuncOption(it) => &it.syntax,
33358            FuncOption::SecurityFuncOption(it) => &it.syntax,
33359            FuncOption::SetFuncOption(it) => &it.syntax,
33360            FuncOption::StrictFuncOption(it) => &it.syntax,
33361            FuncOption::SupportFuncOption(it) => &it.syntax,
33362            FuncOption::TransformFuncOption(it) => &it.syntax,
33363            FuncOption::VolatilityFuncOption(it) => &it.syntax,
33364            FuncOption::WindowFuncOption(it) => &it.syntax,
33365        }
33366    }
33367}
33368impl From<AsFuncOption> for FuncOption {
33369    #[inline]
33370    fn from(node: AsFuncOption) -> FuncOption {
33371        FuncOption::AsFuncOption(node)
33372    }
33373}
33374impl From<BeginFuncOptionList> for FuncOption {
33375    #[inline]
33376    fn from(node: BeginFuncOptionList) -> FuncOption {
33377        FuncOption::BeginFuncOptionList(node)
33378    }
33379}
33380impl From<CostFuncOption> for FuncOption {
33381    #[inline]
33382    fn from(node: CostFuncOption) -> FuncOption {
33383        FuncOption::CostFuncOption(node)
33384    }
33385}
33386impl From<LanguageFuncOption> for FuncOption {
33387    #[inline]
33388    fn from(node: LanguageFuncOption) -> FuncOption {
33389        FuncOption::LanguageFuncOption(node)
33390    }
33391}
33392impl From<LeakproofFuncOption> for FuncOption {
33393    #[inline]
33394    fn from(node: LeakproofFuncOption) -> FuncOption {
33395        FuncOption::LeakproofFuncOption(node)
33396    }
33397}
33398impl From<ParallelFuncOption> for FuncOption {
33399    #[inline]
33400    fn from(node: ParallelFuncOption) -> FuncOption {
33401        FuncOption::ParallelFuncOption(node)
33402    }
33403}
33404impl From<ResetFuncOption> for FuncOption {
33405    #[inline]
33406    fn from(node: ResetFuncOption) -> FuncOption {
33407        FuncOption::ResetFuncOption(node)
33408    }
33409}
33410impl From<ReturnFuncOption> for FuncOption {
33411    #[inline]
33412    fn from(node: ReturnFuncOption) -> FuncOption {
33413        FuncOption::ReturnFuncOption(node)
33414    }
33415}
33416impl From<RowsFuncOption> for FuncOption {
33417    #[inline]
33418    fn from(node: RowsFuncOption) -> FuncOption {
33419        FuncOption::RowsFuncOption(node)
33420    }
33421}
33422impl From<SecurityFuncOption> for FuncOption {
33423    #[inline]
33424    fn from(node: SecurityFuncOption) -> FuncOption {
33425        FuncOption::SecurityFuncOption(node)
33426    }
33427}
33428impl From<SetFuncOption> for FuncOption {
33429    #[inline]
33430    fn from(node: SetFuncOption) -> FuncOption {
33431        FuncOption::SetFuncOption(node)
33432    }
33433}
33434impl From<StrictFuncOption> for FuncOption {
33435    #[inline]
33436    fn from(node: StrictFuncOption) -> FuncOption {
33437        FuncOption::StrictFuncOption(node)
33438    }
33439}
33440impl From<SupportFuncOption> for FuncOption {
33441    #[inline]
33442    fn from(node: SupportFuncOption) -> FuncOption {
33443        FuncOption::SupportFuncOption(node)
33444    }
33445}
33446impl From<TransformFuncOption> for FuncOption {
33447    #[inline]
33448    fn from(node: TransformFuncOption) -> FuncOption {
33449        FuncOption::TransformFuncOption(node)
33450    }
33451}
33452impl From<VolatilityFuncOption> for FuncOption {
33453    #[inline]
33454    fn from(node: VolatilityFuncOption) -> FuncOption {
33455        FuncOption::VolatilityFuncOption(node)
33456    }
33457}
33458impl From<WindowFuncOption> for FuncOption {
33459    #[inline]
33460    fn from(node: WindowFuncOption) -> FuncOption {
33461        FuncOption::WindowFuncOption(node)
33462    }
33463}
33464impl AstNode for GroupBy {
33465    #[inline]
33466    fn can_cast(kind: SyntaxKind) -> bool {
33467        matches!(
33468            kind,
33469            SyntaxKind::GROUPING_CUBE
33470                | SyntaxKind::GROUPING_EXPR
33471                | SyntaxKind::GROUPING_ROLLUP
33472                | SyntaxKind::GROUPING_SETS
33473        )
33474    }
33475    #[inline]
33476    fn cast(syntax: SyntaxNode) -> Option<Self> {
33477        let res = match syntax.kind() {
33478            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
33479            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
33480            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
33481            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
33482            _ => {
33483                return None;
33484            }
33485        };
33486        Some(res)
33487    }
33488    #[inline]
33489    fn syntax(&self) -> &SyntaxNode {
33490        match self {
33491            GroupBy::GroupingCube(it) => &it.syntax,
33492            GroupBy::GroupingExpr(it) => &it.syntax,
33493            GroupBy::GroupingRollup(it) => &it.syntax,
33494            GroupBy::GroupingSets(it) => &it.syntax,
33495        }
33496    }
33497}
33498impl From<GroupingCube> for GroupBy {
33499    #[inline]
33500    fn from(node: GroupingCube) -> GroupBy {
33501        GroupBy::GroupingCube(node)
33502    }
33503}
33504impl From<GroupingExpr> for GroupBy {
33505    #[inline]
33506    fn from(node: GroupingExpr) -> GroupBy {
33507        GroupBy::GroupingExpr(node)
33508    }
33509}
33510impl From<GroupingRollup> for GroupBy {
33511    #[inline]
33512    fn from(node: GroupingRollup) -> GroupBy {
33513        GroupBy::GroupingRollup(node)
33514    }
33515}
33516impl From<GroupingSets> for GroupBy {
33517    #[inline]
33518    fn from(node: GroupingSets) -> GroupBy {
33519        GroupBy::GroupingSets(node)
33520    }
33521}
33522impl AstNode for JoinType {
33523    #[inline]
33524    fn can_cast(kind: SyntaxKind) -> bool {
33525        matches!(
33526            kind,
33527            SyntaxKind::JOIN_CROSS
33528                | SyntaxKind::JOIN_FULL
33529                | SyntaxKind::JOIN_INNER
33530                | SyntaxKind::JOIN_LEFT
33531                | SyntaxKind::JOIN_RIGHT
33532        )
33533    }
33534    #[inline]
33535    fn cast(syntax: SyntaxNode) -> Option<Self> {
33536        let res = match syntax.kind() {
33537            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
33538            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
33539            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
33540            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
33541            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
33542            _ => {
33543                return None;
33544            }
33545        };
33546        Some(res)
33547    }
33548    #[inline]
33549    fn syntax(&self) -> &SyntaxNode {
33550        match self {
33551            JoinType::JoinCross(it) => &it.syntax,
33552            JoinType::JoinFull(it) => &it.syntax,
33553            JoinType::JoinInner(it) => &it.syntax,
33554            JoinType::JoinLeft(it) => &it.syntax,
33555            JoinType::JoinRight(it) => &it.syntax,
33556        }
33557    }
33558}
33559impl From<JoinCross> for JoinType {
33560    #[inline]
33561    fn from(node: JoinCross) -> JoinType {
33562        JoinType::JoinCross(node)
33563    }
33564}
33565impl From<JoinFull> for JoinType {
33566    #[inline]
33567    fn from(node: JoinFull) -> JoinType {
33568        JoinType::JoinFull(node)
33569    }
33570}
33571impl From<JoinInner> for JoinType {
33572    #[inline]
33573    fn from(node: JoinInner) -> JoinType {
33574        JoinType::JoinInner(node)
33575    }
33576}
33577impl From<JoinLeft> for JoinType {
33578    #[inline]
33579    fn from(node: JoinLeft) -> JoinType {
33580        JoinType::JoinLeft(node)
33581    }
33582}
33583impl From<JoinRight> for JoinType {
33584    #[inline]
33585    fn from(node: JoinRight) -> JoinType {
33586        JoinType::JoinRight(node)
33587    }
33588}
33589impl AstNode for JsonBehavior {
33590    #[inline]
33591    fn can_cast(kind: SyntaxKind) -> bool {
33592        matches!(
33593            kind,
33594            SyntaxKind::JSON_BEHAVIOR_DEFAULT
33595                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
33596                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
33597                | SyntaxKind::JSON_BEHAVIOR_ERROR
33598                | SyntaxKind::JSON_BEHAVIOR_FALSE
33599                | SyntaxKind::JSON_BEHAVIOR_NULL
33600                | SyntaxKind::JSON_BEHAVIOR_TRUE
33601                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
33602        )
33603    }
33604    #[inline]
33605    fn cast(syntax: SyntaxNode) -> Option<Self> {
33606        let res = match syntax.kind() {
33607            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
33608                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
33609            }
33610            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
33611                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
33612            }
33613            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
33614                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
33615            }
33616            SyntaxKind::JSON_BEHAVIOR_ERROR => {
33617                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
33618            }
33619            SyntaxKind::JSON_BEHAVIOR_FALSE => {
33620                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
33621            }
33622            SyntaxKind::JSON_BEHAVIOR_NULL => {
33623                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
33624            }
33625            SyntaxKind::JSON_BEHAVIOR_TRUE => {
33626                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
33627            }
33628            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
33629                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
33630            }
33631            _ => {
33632                return None;
33633            }
33634        };
33635        Some(res)
33636    }
33637    #[inline]
33638    fn syntax(&self) -> &SyntaxNode {
33639        match self {
33640            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
33641            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
33642            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
33643            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
33644            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
33645            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
33646            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
33647            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
33648        }
33649    }
33650}
33651impl From<JsonBehaviorDefault> for JsonBehavior {
33652    #[inline]
33653    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
33654        JsonBehavior::JsonBehaviorDefault(node)
33655    }
33656}
33657impl From<JsonBehaviorEmptyArray> for JsonBehavior {
33658    #[inline]
33659    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
33660        JsonBehavior::JsonBehaviorEmptyArray(node)
33661    }
33662}
33663impl From<JsonBehaviorEmptyObject> for JsonBehavior {
33664    #[inline]
33665    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
33666        JsonBehavior::JsonBehaviorEmptyObject(node)
33667    }
33668}
33669impl From<JsonBehaviorError> for JsonBehavior {
33670    #[inline]
33671    fn from(node: JsonBehaviorError) -> JsonBehavior {
33672        JsonBehavior::JsonBehaviorError(node)
33673    }
33674}
33675impl From<JsonBehaviorFalse> for JsonBehavior {
33676    #[inline]
33677    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
33678        JsonBehavior::JsonBehaviorFalse(node)
33679    }
33680}
33681impl From<JsonBehaviorNull> for JsonBehavior {
33682    #[inline]
33683    fn from(node: JsonBehaviorNull) -> JsonBehavior {
33684        JsonBehavior::JsonBehaviorNull(node)
33685    }
33686}
33687impl From<JsonBehaviorTrue> for JsonBehavior {
33688    #[inline]
33689    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
33690        JsonBehavior::JsonBehaviorTrue(node)
33691    }
33692}
33693impl From<JsonBehaviorUnknown> for JsonBehavior {
33694    #[inline]
33695    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
33696        JsonBehavior::JsonBehaviorUnknown(node)
33697    }
33698}
33699impl AstNode for MatchType {
33700    #[inline]
33701    fn can_cast(kind: SyntaxKind) -> bool {
33702        matches!(
33703            kind,
33704            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
33705        )
33706    }
33707    #[inline]
33708    fn cast(syntax: SyntaxNode) -> Option<Self> {
33709        let res = match syntax.kind() {
33710            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
33711            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
33712            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
33713            _ => {
33714                return None;
33715            }
33716        };
33717        Some(res)
33718    }
33719    #[inline]
33720    fn syntax(&self) -> &SyntaxNode {
33721        match self {
33722            MatchType::MatchFull(it) => &it.syntax,
33723            MatchType::MatchPartial(it) => &it.syntax,
33724            MatchType::MatchSimple(it) => &it.syntax,
33725        }
33726    }
33727}
33728impl From<MatchFull> for MatchType {
33729    #[inline]
33730    fn from(node: MatchFull) -> MatchType {
33731        MatchType::MatchFull(node)
33732    }
33733}
33734impl From<MatchPartial> for MatchType {
33735    #[inline]
33736    fn from(node: MatchPartial) -> MatchType {
33737        MatchType::MatchPartial(node)
33738    }
33739}
33740impl From<MatchSimple> for MatchType {
33741    #[inline]
33742    fn from(node: MatchSimple) -> MatchType {
33743        MatchType::MatchSimple(node)
33744    }
33745}
33746impl AstNode for MergeAction {
33747    #[inline]
33748    fn can_cast(kind: SyntaxKind) -> bool {
33749        matches!(
33750            kind,
33751            SyntaxKind::MERGE_DELETE
33752                | SyntaxKind::MERGE_DO_NOTHING
33753                | SyntaxKind::MERGE_INSERT
33754                | SyntaxKind::MERGE_UPDATE
33755        )
33756    }
33757    #[inline]
33758    fn cast(syntax: SyntaxNode) -> Option<Self> {
33759        let res = match syntax.kind() {
33760            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
33761            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
33762            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
33763            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
33764            _ => {
33765                return None;
33766            }
33767        };
33768        Some(res)
33769    }
33770    #[inline]
33771    fn syntax(&self) -> &SyntaxNode {
33772        match self {
33773            MergeAction::MergeDelete(it) => &it.syntax,
33774            MergeAction::MergeDoNothing(it) => &it.syntax,
33775            MergeAction::MergeInsert(it) => &it.syntax,
33776            MergeAction::MergeUpdate(it) => &it.syntax,
33777        }
33778    }
33779}
33780impl From<MergeDelete> for MergeAction {
33781    #[inline]
33782    fn from(node: MergeDelete) -> MergeAction {
33783        MergeAction::MergeDelete(node)
33784    }
33785}
33786impl From<MergeDoNothing> for MergeAction {
33787    #[inline]
33788    fn from(node: MergeDoNothing) -> MergeAction {
33789        MergeAction::MergeDoNothing(node)
33790    }
33791}
33792impl From<MergeInsert> for MergeAction {
33793    #[inline]
33794    fn from(node: MergeInsert) -> MergeAction {
33795        MergeAction::MergeInsert(node)
33796    }
33797}
33798impl From<MergeUpdate> for MergeAction {
33799    #[inline]
33800    fn from(node: MergeUpdate) -> MergeAction {
33801        MergeAction::MergeUpdate(node)
33802    }
33803}
33804impl AstNode for MergeWhenClause {
33805    #[inline]
33806    fn can_cast(kind: SyntaxKind) -> bool {
33807        matches!(
33808            kind,
33809            SyntaxKind::MERGE_WHEN_MATCHED
33810                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
33811                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
33812        )
33813    }
33814    #[inline]
33815    fn cast(syntax: SyntaxNode) -> Option<Self> {
33816        let res = match syntax.kind() {
33817            SyntaxKind::MERGE_WHEN_MATCHED => {
33818                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
33819            }
33820            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
33821                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
33822            }
33823            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
33824                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
33825            }
33826            _ => {
33827                return None;
33828            }
33829        };
33830        Some(res)
33831    }
33832    #[inline]
33833    fn syntax(&self) -> &SyntaxNode {
33834        match self {
33835            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
33836            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
33837            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
33838        }
33839    }
33840}
33841impl From<MergeWhenMatched> for MergeWhenClause {
33842    #[inline]
33843    fn from(node: MergeWhenMatched) -> MergeWhenClause {
33844        MergeWhenClause::MergeWhenMatched(node)
33845    }
33846}
33847impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
33848    #[inline]
33849    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
33850        MergeWhenClause::MergeWhenNotMatchedSource(node)
33851    }
33852}
33853impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
33854    #[inline]
33855    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
33856        MergeWhenClause::MergeWhenNotMatchedTarget(node)
33857    }
33858}
33859impl AstNode for OnCommitAction {
33860    #[inline]
33861    fn can_cast(kind: SyntaxKind) -> bool {
33862        matches!(
33863            kind,
33864            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
33865        )
33866    }
33867    #[inline]
33868    fn cast(syntax: SyntaxNode) -> Option<Self> {
33869        let res = match syntax.kind() {
33870            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
33871            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
33872            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
33873            _ => {
33874                return None;
33875            }
33876        };
33877        Some(res)
33878    }
33879    #[inline]
33880    fn syntax(&self) -> &SyntaxNode {
33881        match self {
33882            OnCommitAction::DeleteRows(it) => &it.syntax,
33883            OnCommitAction::Drop(it) => &it.syntax,
33884            OnCommitAction::PreserveRows(it) => &it.syntax,
33885        }
33886    }
33887}
33888impl From<DeleteRows> for OnCommitAction {
33889    #[inline]
33890    fn from(node: DeleteRows) -> OnCommitAction {
33891        OnCommitAction::DeleteRows(node)
33892    }
33893}
33894impl From<Drop> for OnCommitAction {
33895    #[inline]
33896    fn from(node: Drop) -> OnCommitAction {
33897        OnCommitAction::Drop(node)
33898    }
33899}
33900impl From<PreserveRows> for OnCommitAction {
33901    #[inline]
33902    fn from(node: PreserveRows) -> OnCommitAction {
33903        OnCommitAction::PreserveRows(node)
33904    }
33905}
33906impl AstNode for ParamMode {
33907    #[inline]
33908    fn can_cast(kind: SyntaxKind) -> bool {
33909        matches!(
33910            kind,
33911            SyntaxKind::PARAM_IN
33912                | SyntaxKind::PARAM_IN_OUT
33913                | SyntaxKind::PARAM_OUT
33914                | SyntaxKind::PARAM_VARIADIC
33915        )
33916    }
33917    #[inline]
33918    fn cast(syntax: SyntaxNode) -> Option<Self> {
33919        let res = match syntax.kind() {
33920            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
33921            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
33922            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
33923            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
33924            _ => {
33925                return None;
33926            }
33927        };
33928        Some(res)
33929    }
33930    #[inline]
33931    fn syntax(&self) -> &SyntaxNode {
33932        match self {
33933            ParamMode::ParamIn(it) => &it.syntax,
33934            ParamMode::ParamInOut(it) => &it.syntax,
33935            ParamMode::ParamOut(it) => &it.syntax,
33936            ParamMode::ParamVariadic(it) => &it.syntax,
33937        }
33938    }
33939}
33940impl From<ParamIn> for ParamMode {
33941    #[inline]
33942    fn from(node: ParamIn) -> ParamMode {
33943        ParamMode::ParamIn(node)
33944    }
33945}
33946impl From<ParamInOut> for ParamMode {
33947    #[inline]
33948    fn from(node: ParamInOut) -> ParamMode {
33949        ParamMode::ParamInOut(node)
33950    }
33951}
33952impl From<ParamOut> for ParamMode {
33953    #[inline]
33954    fn from(node: ParamOut) -> ParamMode {
33955        ParamMode::ParamOut(node)
33956    }
33957}
33958impl From<ParamVariadic> for ParamMode {
33959    #[inline]
33960    fn from(node: ParamVariadic) -> ParamMode {
33961        ParamMode::ParamVariadic(node)
33962    }
33963}
33964impl AstNode for PartitionType {
33965    #[inline]
33966    fn can_cast(kind: SyntaxKind) -> bool {
33967        matches!(
33968            kind,
33969            SyntaxKind::PARTITION_DEFAULT
33970                | SyntaxKind::PARTITION_FOR_VALUES_FROM
33971                | SyntaxKind::PARTITION_FOR_VALUES_IN
33972                | SyntaxKind::PARTITION_FOR_VALUES_WITH
33973        )
33974    }
33975    #[inline]
33976    fn cast(syntax: SyntaxNode) -> Option<Self> {
33977        let res = match syntax.kind() {
33978            SyntaxKind::PARTITION_DEFAULT => {
33979                PartitionType::PartitionDefault(PartitionDefault { syntax })
33980            }
33981            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
33982                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
33983            }
33984            SyntaxKind::PARTITION_FOR_VALUES_IN => {
33985                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
33986            }
33987            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
33988                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
33989            }
33990            _ => {
33991                return None;
33992            }
33993        };
33994        Some(res)
33995    }
33996    #[inline]
33997    fn syntax(&self) -> &SyntaxNode {
33998        match self {
33999            PartitionType::PartitionDefault(it) => &it.syntax,
34000            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
34001            PartitionType::PartitionForValuesIn(it) => &it.syntax,
34002            PartitionType::PartitionForValuesWith(it) => &it.syntax,
34003        }
34004    }
34005}
34006impl From<PartitionDefault> for PartitionType {
34007    #[inline]
34008    fn from(node: PartitionDefault) -> PartitionType {
34009        PartitionType::PartitionDefault(node)
34010    }
34011}
34012impl From<PartitionForValuesFrom> for PartitionType {
34013    #[inline]
34014    fn from(node: PartitionForValuesFrom) -> PartitionType {
34015        PartitionType::PartitionForValuesFrom(node)
34016    }
34017}
34018impl From<PartitionForValuesIn> for PartitionType {
34019    #[inline]
34020    fn from(node: PartitionForValuesIn) -> PartitionType {
34021        PartitionType::PartitionForValuesIn(node)
34022    }
34023}
34024impl From<PartitionForValuesWith> for PartitionType {
34025    #[inline]
34026    fn from(node: PartitionForValuesWith) -> PartitionType {
34027        PartitionType::PartitionForValuesWith(node)
34028    }
34029}
34030impl AstNode for PathPrimary {
34031    #[inline]
34032    fn can_cast(kind: SyntaxKind) -> bool {
34033        matches!(
34034            kind,
34035            SyntaxKind::EDGE_ANY
34036                | SyntaxKind::EDGE_LEFT
34037                | SyntaxKind::EDGE_RIGHT
34038                | SyntaxKind::PAREN_GRAPH_PATTERN
34039                | SyntaxKind::VERTEX_PATTERN
34040        )
34041    }
34042    #[inline]
34043    fn cast(syntax: SyntaxNode) -> Option<Self> {
34044        let res = match syntax.kind() {
34045            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
34046            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
34047            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
34048            SyntaxKind::PAREN_GRAPH_PATTERN => {
34049                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
34050            }
34051            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
34052            _ => {
34053                return None;
34054            }
34055        };
34056        Some(res)
34057    }
34058    #[inline]
34059    fn syntax(&self) -> &SyntaxNode {
34060        match self {
34061            PathPrimary::EdgeAny(it) => &it.syntax,
34062            PathPrimary::EdgeLeft(it) => &it.syntax,
34063            PathPrimary::EdgeRight(it) => &it.syntax,
34064            PathPrimary::ParenGraphPattern(it) => &it.syntax,
34065            PathPrimary::VertexPattern(it) => &it.syntax,
34066        }
34067    }
34068}
34069impl From<EdgeAny> for PathPrimary {
34070    #[inline]
34071    fn from(node: EdgeAny) -> PathPrimary {
34072        PathPrimary::EdgeAny(node)
34073    }
34074}
34075impl From<EdgeLeft> for PathPrimary {
34076    #[inline]
34077    fn from(node: EdgeLeft) -> PathPrimary {
34078        PathPrimary::EdgeLeft(node)
34079    }
34080}
34081impl From<EdgeRight> for PathPrimary {
34082    #[inline]
34083    fn from(node: EdgeRight) -> PathPrimary {
34084        PathPrimary::EdgeRight(node)
34085    }
34086}
34087impl From<ParenGraphPattern> for PathPrimary {
34088    #[inline]
34089    fn from(node: ParenGraphPattern) -> PathPrimary {
34090        PathPrimary::ParenGraphPattern(node)
34091    }
34092}
34093impl From<VertexPattern> for PathPrimary {
34094    #[inline]
34095    fn from(node: VertexPattern) -> PathPrimary {
34096        PathPrimary::VertexPattern(node)
34097    }
34098}
34099impl AstNode for Persistence {
34100    #[inline]
34101    fn can_cast(kind: SyntaxKind) -> bool {
34102        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
34103    }
34104    #[inline]
34105    fn cast(syntax: SyntaxNode) -> Option<Self> {
34106        let res = match syntax.kind() {
34107            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
34108            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
34109            _ => {
34110                return None;
34111            }
34112        };
34113        Some(res)
34114    }
34115    #[inline]
34116    fn syntax(&self) -> &SyntaxNode {
34117        match self {
34118            Persistence::Temp(it) => &it.syntax,
34119            Persistence::Unlogged(it) => &it.syntax,
34120        }
34121    }
34122}
34123impl From<Temp> for Persistence {
34124    #[inline]
34125    fn from(node: Temp) -> Persistence {
34126        Persistence::Temp(node)
34127    }
34128}
34129impl From<Unlogged> for Persistence {
34130    #[inline]
34131    fn from(node: Unlogged) -> Persistence {
34132        Persistence::Unlogged(node)
34133    }
34134}
34135impl AstNode for PreparableStmt {
34136    #[inline]
34137    fn can_cast(kind: SyntaxKind) -> bool {
34138        matches!(
34139            kind,
34140            SyntaxKind::COMPOUND_SELECT
34141                | SyntaxKind::DELETE
34142                | SyntaxKind::INSERT
34143                | SyntaxKind::MERGE
34144                | SyntaxKind::SELECT
34145                | SyntaxKind::SELECT_INTO
34146                | SyntaxKind::TABLE
34147                | SyntaxKind::UPDATE
34148                | SyntaxKind::VALUES
34149        )
34150    }
34151    #[inline]
34152    fn cast(syntax: SyntaxNode) -> Option<Self> {
34153        let res = match syntax.kind() {
34154            SyntaxKind::COMPOUND_SELECT => {
34155                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
34156            }
34157            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
34158            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
34159            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
34160            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
34161            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
34162            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
34163            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
34164            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
34165            _ => {
34166                return None;
34167            }
34168        };
34169        Some(res)
34170    }
34171    #[inline]
34172    fn syntax(&self) -> &SyntaxNode {
34173        match self {
34174            PreparableStmt::CompoundSelect(it) => &it.syntax,
34175            PreparableStmt::Delete(it) => &it.syntax,
34176            PreparableStmt::Insert(it) => &it.syntax,
34177            PreparableStmt::Merge(it) => &it.syntax,
34178            PreparableStmt::Select(it) => &it.syntax,
34179            PreparableStmt::SelectInto(it) => &it.syntax,
34180            PreparableStmt::Table(it) => &it.syntax,
34181            PreparableStmt::Update(it) => &it.syntax,
34182            PreparableStmt::Values(it) => &it.syntax,
34183        }
34184    }
34185}
34186impl From<CompoundSelect> for PreparableStmt {
34187    #[inline]
34188    fn from(node: CompoundSelect) -> PreparableStmt {
34189        PreparableStmt::CompoundSelect(node)
34190    }
34191}
34192impl From<Delete> for PreparableStmt {
34193    #[inline]
34194    fn from(node: Delete) -> PreparableStmt {
34195        PreparableStmt::Delete(node)
34196    }
34197}
34198impl From<Insert> for PreparableStmt {
34199    #[inline]
34200    fn from(node: Insert) -> PreparableStmt {
34201        PreparableStmt::Insert(node)
34202    }
34203}
34204impl From<Merge> for PreparableStmt {
34205    #[inline]
34206    fn from(node: Merge) -> PreparableStmt {
34207        PreparableStmt::Merge(node)
34208    }
34209}
34210impl From<Select> for PreparableStmt {
34211    #[inline]
34212    fn from(node: Select) -> PreparableStmt {
34213        PreparableStmt::Select(node)
34214    }
34215}
34216impl From<SelectInto> for PreparableStmt {
34217    #[inline]
34218    fn from(node: SelectInto) -> PreparableStmt {
34219        PreparableStmt::SelectInto(node)
34220    }
34221}
34222impl From<Table> for PreparableStmt {
34223    #[inline]
34224    fn from(node: Table) -> PreparableStmt {
34225        PreparableStmt::Table(node)
34226    }
34227}
34228impl From<Update> for PreparableStmt {
34229    #[inline]
34230    fn from(node: Update) -> PreparableStmt {
34231        PreparableStmt::Update(node)
34232    }
34233}
34234impl From<Values> for PreparableStmt {
34235    #[inline]
34236    fn from(node: Values) -> PreparableStmt {
34237        PreparableStmt::Values(node)
34238    }
34239}
34240impl AstNode for RefAction {
34241    #[inline]
34242    fn can_cast(kind: SyntaxKind) -> bool {
34243        matches!(
34244            kind,
34245            SyntaxKind::CASCADE
34246                | SyntaxKind::NO_ACTION
34247                | SyntaxKind::RESTRICT
34248                | SyntaxKind::SET_DEFAULT_COLUMNS
34249                | SyntaxKind::SET_NULL_COLUMNS
34250        )
34251    }
34252    #[inline]
34253    fn cast(syntax: SyntaxNode) -> Option<Self> {
34254        let res = match syntax.kind() {
34255            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
34256            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
34257            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
34258            SyntaxKind::SET_DEFAULT_COLUMNS => {
34259                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
34260            }
34261            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
34262            _ => {
34263                return None;
34264            }
34265        };
34266        Some(res)
34267    }
34268    #[inline]
34269    fn syntax(&self) -> &SyntaxNode {
34270        match self {
34271            RefAction::Cascade(it) => &it.syntax,
34272            RefAction::NoAction(it) => &it.syntax,
34273            RefAction::Restrict(it) => &it.syntax,
34274            RefAction::SetDefaultColumns(it) => &it.syntax,
34275            RefAction::SetNullColumns(it) => &it.syntax,
34276        }
34277    }
34278}
34279impl From<Cascade> for RefAction {
34280    #[inline]
34281    fn from(node: Cascade) -> RefAction {
34282        RefAction::Cascade(node)
34283    }
34284}
34285impl From<NoAction> for RefAction {
34286    #[inline]
34287    fn from(node: NoAction) -> RefAction {
34288        RefAction::NoAction(node)
34289    }
34290}
34291impl From<Restrict> for RefAction {
34292    #[inline]
34293    fn from(node: Restrict) -> RefAction {
34294        RefAction::Restrict(node)
34295    }
34296}
34297impl From<SetDefaultColumns> for RefAction {
34298    #[inline]
34299    fn from(node: SetDefaultColumns) -> RefAction {
34300        RefAction::SetDefaultColumns(node)
34301    }
34302}
34303impl From<SetNullColumns> for RefAction {
34304    #[inline]
34305    fn from(node: SetNullColumns) -> RefAction {
34306        RefAction::SetNullColumns(node)
34307    }
34308}
34309impl AstNode for SchemaElement {
34310    #[inline]
34311    fn can_cast(kind: SyntaxKind) -> bool {
34312        matches!(
34313            kind,
34314            SyntaxKind::CREATE_INDEX
34315                | SyntaxKind::CREATE_SEQUENCE
34316                | SyntaxKind::CREATE_TABLE
34317                | SyntaxKind::CREATE_TRIGGER
34318                | SyntaxKind::CREATE_VIEW
34319                | SyntaxKind::GRANT
34320        )
34321    }
34322    #[inline]
34323    fn cast(syntax: SyntaxNode) -> Option<Self> {
34324        let res = match syntax.kind() {
34325            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
34326            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
34327            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
34328            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
34329            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
34330            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
34331            _ => {
34332                return None;
34333            }
34334        };
34335        Some(res)
34336    }
34337    #[inline]
34338    fn syntax(&self) -> &SyntaxNode {
34339        match self {
34340            SchemaElement::CreateIndex(it) => &it.syntax,
34341            SchemaElement::CreateSequence(it) => &it.syntax,
34342            SchemaElement::CreateTable(it) => &it.syntax,
34343            SchemaElement::CreateTrigger(it) => &it.syntax,
34344            SchemaElement::CreateView(it) => &it.syntax,
34345            SchemaElement::Grant(it) => &it.syntax,
34346        }
34347    }
34348}
34349impl From<CreateIndex> for SchemaElement {
34350    #[inline]
34351    fn from(node: CreateIndex) -> SchemaElement {
34352        SchemaElement::CreateIndex(node)
34353    }
34354}
34355impl From<CreateSequence> for SchemaElement {
34356    #[inline]
34357    fn from(node: CreateSequence) -> SchemaElement {
34358        SchemaElement::CreateSequence(node)
34359    }
34360}
34361impl From<CreateTable> for SchemaElement {
34362    #[inline]
34363    fn from(node: CreateTable) -> SchemaElement {
34364        SchemaElement::CreateTable(node)
34365    }
34366}
34367impl From<CreateTrigger> for SchemaElement {
34368    #[inline]
34369    fn from(node: CreateTrigger) -> SchemaElement {
34370        SchemaElement::CreateTrigger(node)
34371    }
34372}
34373impl From<CreateView> for SchemaElement {
34374    #[inline]
34375    fn from(node: CreateView) -> SchemaElement {
34376        SchemaElement::CreateView(node)
34377    }
34378}
34379impl From<Grant> for SchemaElement {
34380    #[inline]
34381    fn from(node: Grant) -> SchemaElement {
34382        SchemaElement::Grant(node)
34383    }
34384}
34385impl AstNode for SelectVariant {
34386    #[inline]
34387    fn can_cast(kind: SyntaxKind) -> bool {
34388        matches!(
34389            kind,
34390            SyntaxKind::COMPOUND_SELECT
34391                | SyntaxKind::PAREN_SELECT
34392                | SyntaxKind::SELECT
34393                | SyntaxKind::SELECT_INTO
34394                | SyntaxKind::TABLE
34395                | SyntaxKind::VALUES
34396        )
34397    }
34398    #[inline]
34399    fn cast(syntax: SyntaxNode) -> Option<Self> {
34400        let res = match syntax.kind() {
34401            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
34402            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
34403            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
34404            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
34405            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
34406            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
34407            _ => {
34408                return None;
34409            }
34410        };
34411        Some(res)
34412    }
34413    #[inline]
34414    fn syntax(&self) -> &SyntaxNode {
34415        match self {
34416            SelectVariant::CompoundSelect(it) => &it.syntax,
34417            SelectVariant::ParenSelect(it) => &it.syntax,
34418            SelectVariant::Select(it) => &it.syntax,
34419            SelectVariant::SelectInto(it) => &it.syntax,
34420            SelectVariant::Table(it) => &it.syntax,
34421            SelectVariant::Values(it) => &it.syntax,
34422        }
34423    }
34424}
34425impl From<CompoundSelect> for SelectVariant {
34426    #[inline]
34427    fn from(node: CompoundSelect) -> SelectVariant {
34428        SelectVariant::CompoundSelect(node)
34429    }
34430}
34431impl From<ParenSelect> for SelectVariant {
34432    #[inline]
34433    fn from(node: ParenSelect) -> SelectVariant {
34434        SelectVariant::ParenSelect(node)
34435    }
34436}
34437impl From<Select> for SelectVariant {
34438    #[inline]
34439    fn from(node: Select) -> SelectVariant {
34440        SelectVariant::Select(node)
34441    }
34442}
34443impl From<SelectInto> for SelectVariant {
34444    #[inline]
34445    fn from(node: SelectInto) -> SelectVariant {
34446        SelectVariant::SelectInto(node)
34447    }
34448}
34449impl From<Table> for SelectVariant {
34450    #[inline]
34451    fn from(node: Table) -> SelectVariant {
34452        SelectVariant::Table(node)
34453    }
34454}
34455impl From<Values> for SelectVariant {
34456    #[inline]
34457    fn from(node: Values) -> SelectVariant {
34458        SelectVariant::Values(node)
34459    }
34460}
34461impl AstNode for SetColumn {
34462    #[inline]
34463    fn can_cast(kind: SyntaxKind) -> bool {
34464        matches!(
34465            kind,
34466            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
34467        )
34468    }
34469    #[inline]
34470    fn cast(syntax: SyntaxNode) -> Option<Self> {
34471        let res = match syntax.kind() {
34472            SyntaxKind::SET_MULTIPLE_COLUMNS => {
34473                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
34474            }
34475            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
34476            _ => {
34477                return None;
34478            }
34479        };
34480        Some(res)
34481    }
34482    #[inline]
34483    fn syntax(&self) -> &SyntaxNode {
34484        match self {
34485            SetColumn::SetMultipleColumns(it) => &it.syntax,
34486            SetColumn::SetSingleColumn(it) => &it.syntax,
34487        }
34488    }
34489}
34490impl From<SetMultipleColumns> for SetColumn {
34491    #[inline]
34492    fn from(node: SetMultipleColumns) -> SetColumn {
34493        SetColumn::SetMultipleColumns(node)
34494    }
34495}
34496impl From<SetSingleColumn> for SetColumn {
34497    #[inline]
34498    fn from(node: SetSingleColumn) -> SetColumn {
34499        SetColumn::SetSingleColumn(node)
34500    }
34501}
34502impl AstNode for Stmt {
34503    #[inline]
34504    fn can_cast(kind: SyntaxKind) -> bool {
34505        matches!(
34506            kind,
34507            SyntaxKind::ALTER_AGGREGATE
34508                | SyntaxKind::ALTER_COLLATION
34509                | SyntaxKind::ALTER_CONVERSION
34510                | SyntaxKind::ALTER_DATABASE
34511                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
34512                | SyntaxKind::ALTER_DOMAIN
34513                | SyntaxKind::ALTER_EVENT_TRIGGER
34514                | SyntaxKind::ALTER_EXTENSION
34515                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
34516                | SyntaxKind::ALTER_FOREIGN_TABLE
34517                | SyntaxKind::ALTER_FUNCTION
34518                | SyntaxKind::ALTER_GROUP
34519                | SyntaxKind::ALTER_INDEX
34520                | SyntaxKind::ALTER_LANGUAGE
34521                | SyntaxKind::ALTER_LARGE_OBJECT
34522                | SyntaxKind::ALTER_MATERIALIZED_VIEW
34523                | SyntaxKind::ALTER_OPERATOR
34524                | SyntaxKind::ALTER_OPERATOR_CLASS
34525                | SyntaxKind::ALTER_OPERATOR_FAMILY
34526                | SyntaxKind::ALTER_POLICY
34527                | SyntaxKind::ALTER_PROCEDURE
34528                | SyntaxKind::ALTER_PROPERTY_GRAPH
34529                | SyntaxKind::ALTER_PUBLICATION
34530                | SyntaxKind::ALTER_ROLE
34531                | SyntaxKind::ALTER_ROUTINE
34532                | SyntaxKind::ALTER_RULE
34533                | SyntaxKind::ALTER_SCHEMA
34534                | SyntaxKind::ALTER_SEQUENCE
34535                | SyntaxKind::ALTER_SERVER
34536                | SyntaxKind::ALTER_STATISTICS
34537                | SyntaxKind::ALTER_SUBSCRIPTION
34538                | SyntaxKind::ALTER_SYSTEM
34539                | SyntaxKind::ALTER_TABLE
34540                | SyntaxKind::ALTER_TABLESPACE
34541                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
34542                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
34543                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
34544                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
34545                | SyntaxKind::ALTER_TRIGGER
34546                | SyntaxKind::ALTER_TYPE
34547                | SyntaxKind::ALTER_USER
34548                | SyntaxKind::ALTER_USER_MAPPING
34549                | SyntaxKind::ALTER_VIEW
34550                | SyntaxKind::ANALYZE
34551                | SyntaxKind::BEGIN
34552                | SyntaxKind::CALL
34553                | SyntaxKind::CHECKPOINT
34554                | SyntaxKind::CLOSE
34555                | SyntaxKind::CLUSTER
34556                | SyntaxKind::COMMENT_ON
34557                | SyntaxKind::COMMIT
34558                | SyntaxKind::COPY
34559                | SyntaxKind::CREATE_ACCESS_METHOD
34560                | SyntaxKind::CREATE_AGGREGATE
34561                | SyntaxKind::CREATE_CAST
34562                | SyntaxKind::CREATE_COLLATION
34563                | SyntaxKind::CREATE_CONVERSION
34564                | SyntaxKind::CREATE_DATABASE
34565                | SyntaxKind::CREATE_DOMAIN
34566                | SyntaxKind::CREATE_EVENT_TRIGGER
34567                | SyntaxKind::CREATE_EXTENSION
34568                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
34569                | SyntaxKind::CREATE_FOREIGN_TABLE
34570                | SyntaxKind::CREATE_FUNCTION
34571                | SyntaxKind::CREATE_GROUP
34572                | SyntaxKind::CREATE_INDEX
34573                | SyntaxKind::CREATE_LANGUAGE
34574                | SyntaxKind::CREATE_MATERIALIZED_VIEW
34575                | SyntaxKind::CREATE_OPERATOR
34576                | SyntaxKind::CREATE_OPERATOR_CLASS
34577                | SyntaxKind::CREATE_OPERATOR_FAMILY
34578                | SyntaxKind::CREATE_POLICY
34579                | SyntaxKind::CREATE_PROCEDURE
34580                | SyntaxKind::CREATE_PROPERTY_GRAPH
34581                | SyntaxKind::CREATE_PUBLICATION
34582                | SyntaxKind::CREATE_ROLE
34583                | SyntaxKind::CREATE_RULE
34584                | SyntaxKind::CREATE_SCHEMA
34585                | SyntaxKind::CREATE_SEQUENCE
34586                | SyntaxKind::CREATE_SERVER
34587                | SyntaxKind::CREATE_STATISTICS
34588                | SyntaxKind::CREATE_SUBSCRIPTION
34589                | SyntaxKind::CREATE_TABLE
34590                | SyntaxKind::CREATE_TABLE_AS
34591                | SyntaxKind::CREATE_TABLESPACE
34592                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
34593                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
34594                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
34595                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
34596                | SyntaxKind::CREATE_TRANSFORM
34597                | SyntaxKind::CREATE_TRIGGER
34598                | SyntaxKind::CREATE_TYPE
34599                | SyntaxKind::CREATE_USER
34600                | SyntaxKind::CREATE_USER_MAPPING
34601                | SyntaxKind::CREATE_VIEW
34602                | SyntaxKind::DEALLOCATE
34603                | SyntaxKind::DECLARE
34604                | SyntaxKind::DELETE
34605                | SyntaxKind::DISCARD
34606                | SyntaxKind::DO
34607                | SyntaxKind::DROP_ACCESS_METHOD
34608                | SyntaxKind::DROP_AGGREGATE
34609                | SyntaxKind::DROP_CAST
34610                | SyntaxKind::DROP_COLLATION
34611                | SyntaxKind::DROP_CONVERSION
34612                | SyntaxKind::DROP_DATABASE
34613                | SyntaxKind::DROP_DOMAIN
34614                | SyntaxKind::DROP_EVENT_TRIGGER
34615                | SyntaxKind::DROP_EXTENSION
34616                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
34617                | SyntaxKind::DROP_FOREIGN_TABLE
34618                | SyntaxKind::DROP_FUNCTION
34619                | SyntaxKind::DROP_GROUP
34620                | SyntaxKind::DROP_INDEX
34621                | SyntaxKind::DROP_LANGUAGE
34622                | SyntaxKind::DROP_MATERIALIZED_VIEW
34623                | SyntaxKind::DROP_OPERATOR
34624                | SyntaxKind::DROP_OPERATOR_CLASS
34625                | SyntaxKind::DROP_OPERATOR_FAMILY
34626                | SyntaxKind::DROP_OWNED
34627                | SyntaxKind::DROP_POLICY
34628                | SyntaxKind::DROP_PROCEDURE
34629                | SyntaxKind::DROP_PROPERTY_GRAPH
34630                | SyntaxKind::DROP_PUBLICATION
34631                | SyntaxKind::DROP_ROLE
34632                | SyntaxKind::DROP_ROUTINE
34633                | SyntaxKind::DROP_RULE
34634                | SyntaxKind::DROP_SCHEMA
34635                | SyntaxKind::DROP_SEQUENCE
34636                | SyntaxKind::DROP_SERVER
34637                | SyntaxKind::DROP_STATISTICS
34638                | SyntaxKind::DROP_SUBSCRIPTION
34639                | SyntaxKind::DROP_TABLE
34640                | SyntaxKind::DROP_TABLESPACE
34641                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
34642                | SyntaxKind::DROP_TEXT_SEARCH_DICT
34643                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
34644                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
34645                | SyntaxKind::DROP_TRANSFORM
34646                | SyntaxKind::DROP_TRIGGER
34647                | SyntaxKind::DROP_TYPE
34648                | SyntaxKind::DROP_USER
34649                | SyntaxKind::DROP_USER_MAPPING
34650                | SyntaxKind::DROP_VIEW
34651                | SyntaxKind::EXECUTE
34652                | SyntaxKind::EXPLAIN
34653                | SyntaxKind::FETCH
34654                | SyntaxKind::GRANT
34655                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
34656                | SyntaxKind::INSERT
34657                | SyntaxKind::LISTEN
34658                | SyntaxKind::LOAD
34659                | SyntaxKind::LOCK
34660                | SyntaxKind::MERGE
34661                | SyntaxKind::MOVE
34662                | SyntaxKind::NOTIFY
34663                | SyntaxKind::PAREN_SELECT
34664                | SyntaxKind::PREPARE
34665                | SyntaxKind::PREPARE_TRANSACTION
34666                | SyntaxKind::REASSIGN
34667                | SyntaxKind::REFRESH
34668                | SyntaxKind::REINDEX
34669                | SyntaxKind::RELEASE_SAVEPOINT
34670                | SyntaxKind::REPACK
34671                | SyntaxKind::RESET
34672                | SyntaxKind::RESET_SESSION_AUTH
34673                | SyntaxKind::REVOKE
34674                | SyntaxKind::ROLLBACK
34675                | SyntaxKind::SAVEPOINT
34676                | SyntaxKind::SECURITY_LABEL
34677                | SyntaxKind::SELECT
34678                | SyntaxKind::SELECT_INTO
34679                | SyntaxKind::SET
34680                | SyntaxKind::SET_CONSTRAINTS
34681                | SyntaxKind::SET_ROLE
34682                | SyntaxKind::SET_SESSION_AUTH
34683                | SyntaxKind::SET_TRANSACTION
34684                | SyntaxKind::SHOW
34685                | SyntaxKind::TABLE
34686                | SyntaxKind::TRUNCATE
34687                | SyntaxKind::UNLISTEN
34688                | SyntaxKind::UPDATE
34689                | SyntaxKind::VACUUM
34690                | SyntaxKind::VALUES
34691        )
34692    }
34693    #[inline]
34694    fn cast(syntax: SyntaxNode) -> Option<Self> {
34695        let res = match syntax.kind() {
34696            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
34697            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
34698            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
34699            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
34700            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
34701                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
34702            }
34703            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
34704            SyntaxKind::ALTER_EVENT_TRIGGER => {
34705                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
34706            }
34707            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
34708            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
34709                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
34710            }
34711            SyntaxKind::ALTER_FOREIGN_TABLE => {
34712                Stmt::AlterForeignTable(AlterForeignTable { syntax })
34713            }
34714            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
34715            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
34716            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
34717            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
34718            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
34719            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
34720                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
34721            }
34722            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
34723            SyntaxKind::ALTER_OPERATOR_CLASS => {
34724                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
34725            }
34726            SyntaxKind::ALTER_OPERATOR_FAMILY => {
34727                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
34728            }
34729            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
34730            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
34731            SyntaxKind::ALTER_PROPERTY_GRAPH => {
34732                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
34733            }
34734            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
34735            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
34736            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
34737            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
34738            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
34739            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
34740            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
34741            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
34742            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
34743            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
34744            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
34745            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
34746            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
34747                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
34748            }
34749            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
34750                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
34751            }
34752            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
34753                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
34754            }
34755            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
34756                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
34757            }
34758            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
34759            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
34760            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
34761            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
34762            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
34763            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
34764            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
34765            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
34766            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
34767            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
34768            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
34769            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
34770            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
34771            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
34772            SyntaxKind::CREATE_ACCESS_METHOD => {
34773                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
34774            }
34775            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
34776            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
34777            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
34778            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
34779            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
34780            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
34781            SyntaxKind::CREATE_EVENT_TRIGGER => {
34782                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
34783            }
34784            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
34785            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
34786                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
34787            }
34788            SyntaxKind::CREATE_FOREIGN_TABLE => {
34789                Stmt::CreateForeignTable(CreateForeignTable { syntax })
34790            }
34791            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
34792            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
34793            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
34794            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
34795            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
34796                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
34797            }
34798            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
34799            SyntaxKind::CREATE_OPERATOR_CLASS => {
34800                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
34801            }
34802            SyntaxKind::CREATE_OPERATOR_FAMILY => {
34803                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
34804            }
34805            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
34806            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
34807            SyntaxKind::CREATE_PROPERTY_GRAPH => {
34808                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
34809            }
34810            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
34811            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
34812            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
34813            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
34814            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
34815            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
34816            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
34817            SyntaxKind::CREATE_SUBSCRIPTION => {
34818                Stmt::CreateSubscription(CreateSubscription { syntax })
34819            }
34820            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
34821            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
34822            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
34823            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
34824                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
34825            }
34826            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
34827                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
34828            }
34829            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
34830                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
34831            }
34832            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
34833                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
34834            }
34835            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
34836            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
34837            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
34838            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
34839            SyntaxKind::CREATE_USER_MAPPING => {
34840                Stmt::CreateUserMapping(CreateUserMapping { syntax })
34841            }
34842            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
34843            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
34844            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
34845            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
34846            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
34847            SyntaxKind::DO => Stmt::Do(Do { syntax }),
34848            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
34849            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
34850            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
34851            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
34852            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
34853            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
34854            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
34855            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
34856            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
34857            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
34858                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
34859            }
34860            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
34861            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
34862            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
34863            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
34864            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
34865            SyntaxKind::DROP_MATERIALIZED_VIEW => {
34866                Stmt::DropMaterializedView(DropMaterializedView { syntax })
34867            }
34868            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
34869            SyntaxKind::DROP_OPERATOR_CLASS => {
34870                Stmt::DropOperatorClass(DropOperatorClass { syntax })
34871            }
34872            SyntaxKind::DROP_OPERATOR_FAMILY => {
34873                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
34874            }
34875            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
34876            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
34877            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
34878            SyntaxKind::DROP_PROPERTY_GRAPH => {
34879                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
34880            }
34881            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
34882            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
34883            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
34884            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
34885            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
34886            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
34887            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
34888            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
34889            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
34890            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
34891            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
34892            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
34893                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
34894            }
34895            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
34896                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
34897            }
34898            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
34899                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
34900            }
34901            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
34902                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
34903            }
34904            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
34905            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
34906            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
34907            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
34908            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
34909            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
34910            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
34911            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
34912            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
34913            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
34914            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
34915                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
34916            }
34917            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
34918            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
34919            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
34920            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
34921            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
34922            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
34923            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
34924            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
34925            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
34926            SyntaxKind::PREPARE_TRANSACTION => {
34927                Stmt::PrepareTransaction(PrepareTransaction { syntax })
34928            }
34929            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
34930            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
34931            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
34932            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
34933            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
34934            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
34935            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
34936            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
34937            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
34938            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
34939            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
34940            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
34941            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
34942            SyntaxKind::SET => Stmt::Set(Set { syntax }),
34943            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
34944            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
34945            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
34946            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
34947            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
34948            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
34949            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
34950            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
34951            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
34952            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
34953            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
34954            _ => {
34955                return None;
34956            }
34957        };
34958        Some(res)
34959    }
34960    #[inline]
34961    fn syntax(&self) -> &SyntaxNode {
34962        match self {
34963            Stmt::AlterAggregate(it) => &it.syntax,
34964            Stmt::AlterCollation(it) => &it.syntax,
34965            Stmt::AlterConversion(it) => &it.syntax,
34966            Stmt::AlterDatabase(it) => &it.syntax,
34967            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
34968            Stmt::AlterDomain(it) => &it.syntax,
34969            Stmt::AlterEventTrigger(it) => &it.syntax,
34970            Stmt::AlterExtension(it) => &it.syntax,
34971            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
34972            Stmt::AlterForeignTable(it) => &it.syntax,
34973            Stmt::AlterFunction(it) => &it.syntax,
34974            Stmt::AlterGroup(it) => &it.syntax,
34975            Stmt::AlterIndex(it) => &it.syntax,
34976            Stmt::AlterLanguage(it) => &it.syntax,
34977            Stmt::AlterLargeObject(it) => &it.syntax,
34978            Stmt::AlterMaterializedView(it) => &it.syntax,
34979            Stmt::AlterOperator(it) => &it.syntax,
34980            Stmt::AlterOperatorClass(it) => &it.syntax,
34981            Stmt::AlterOperatorFamily(it) => &it.syntax,
34982            Stmt::AlterPolicy(it) => &it.syntax,
34983            Stmt::AlterProcedure(it) => &it.syntax,
34984            Stmt::AlterPropertyGraph(it) => &it.syntax,
34985            Stmt::AlterPublication(it) => &it.syntax,
34986            Stmt::AlterRole(it) => &it.syntax,
34987            Stmt::AlterRoutine(it) => &it.syntax,
34988            Stmt::AlterRule(it) => &it.syntax,
34989            Stmt::AlterSchema(it) => &it.syntax,
34990            Stmt::AlterSequence(it) => &it.syntax,
34991            Stmt::AlterServer(it) => &it.syntax,
34992            Stmt::AlterStatistics(it) => &it.syntax,
34993            Stmt::AlterSubscription(it) => &it.syntax,
34994            Stmt::AlterSystem(it) => &it.syntax,
34995            Stmt::AlterTable(it) => &it.syntax,
34996            Stmt::AlterTablespace(it) => &it.syntax,
34997            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
34998            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
34999            Stmt::AlterTextSearchParser(it) => &it.syntax,
35000            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
35001            Stmt::AlterTrigger(it) => &it.syntax,
35002            Stmt::AlterType(it) => &it.syntax,
35003            Stmt::AlterUser(it) => &it.syntax,
35004            Stmt::AlterUserMapping(it) => &it.syntax,
35005            Stmt::AlterView(it) => &it.syntax,
35006            Stmt::Analyze(it) => &it.syntax,
35007            Stmt::Begin(it) => &it.syntax,
35008            Stmt::Call(it) => &it.syntax,
35009            Stmt::Checkpoint(it) => &it.syntax,
35010            Stmt::Close(it) => &it.syntax,
35011            Stmt::Cluster(it) => &it.syntax,
35012            Stmt::CommentOn(it) => &it.syntax,
35013            Stmt::Commit(it) => &it.syntax,
35014            Stmt::Copy(it) => &it.syntax,
35015            Stmt::CreateAccessMethod(it) => &it.syntax,
35016            Stmt::CreateAggregate(it) => &it.syntax,
35017            Stmt::CreateCast(it) => &it.syntax,
35018            Stmt::CreateCollation(it) => &it.syntax,
35019            Stmt::CreateConversion(it) => &it.syntax,
35020            Stmt::CreateDatabase(it) => &it.syntax,
35021            Stmt::CreateDomain(it) => &it.syntax,
35022            Stmt::CreateEventTrigger(it) => &it.syntax,
35023            Stmt::CreateExtension(it) => &it.syntax,
35024            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
35025            Stmt::CreateForeignTable(it) => &it.syntax,
35026            Stmt::CreateFunction(it) => &it.syntax,
35027            Stmt::CreateGroup(it) => &it.syntax,
35028            Stmt::CreateIndex(it) => &it.syntax,
35029            Stmt::CreateLanguage(it) => &it.syntax,
35030            Stmt::CreateMaterializedView(it) => &it.syntax,
35031            Stmt::CreateOperator(it) => &it.syntax,
35032            Stmt::CreateOperatorClass(it) => &it.syntax,
35033            Stmt::CreateOperatorFamily(it) => &it.syntax,
35034            Stmt::CreatePolicy(it) => &it.syntax,
35035            Stmt::CreateProcedure(it) => &it.syntax,
35036            Stmt::CreatePropertyGraph(it) => &it.syntax,
35037            Stmt::CreatePublication(it) => &it.syntax,
35038            Stmt::CreateRole(it) => &it.syntax,
35039            Stmt::CreateRule(it) => &it.syntax,
35040            Stmt::CreateSchema(it) => &it.syntax,
35041            Stmt::CreateSequence(it) => &it.syntax,
35042            Stmt::CreateServer(it) => &it.syntax,
35043            Stmt::CreateStatistics(it) => &it.syntax,
35044            Stmt::CreateSubscription(it) => &it.syntax,
35045            Stmt::CreateTable(it) => &it.syntax,
35046            Stmt::CreateTableAs(it) => &it.syntax,
35047            Stmt::CreateTablespace(it) => &it.syntax,
35048            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
35049            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
35050            Stmt::CreateTextSearchParser(it) => &it.syntax,
35051            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
35052            Stmt::CreateTransform(it) => &it.syntax,
35053            Stmt::CreateTrigger(it) => &it.syntax,
35054            Stmt::CreateType(it) => &it.syntax,
35055            Stmt::CreateUser(it) => &it.syntax,
35056            Stmt::CreateUserMapping(it) => &it.syntax,
35057            Stmt::CreateView(it) => &it.syntax,
35058            Stmt::Deallocate(it) => &it.syntax,
35059            Stmt::Declare(it) => &it.syntax,
35060            Stmt::Delete(it) => &it.syntax,
35061            Stmt::Discard(it) => &it.syntax,
35062            Stmt::Do(it) => &it.syntax,
35063            Stmt::DropAccessMethod(it) => &it.syntax,
35064            Stmt::DropAggregate(it) => &it.syntax,
35065            Stmt::DropCast(it) => &it.syntax,
35066            Stmt::DropCollation(it) => &it.syntax,
35067            Stmt::DropConversion(it) => &it.syntax,
35068            Stmt::DropDatabase(it) => &it.syntax,
35069            Stmt::DropDomain(it) => &it.syntax,
35070            Stmt::DropEventTrigger(it) => &it.syntax,
35071            Stmt::DropExtension(it) => &it.syntax,
35072            Stmt::DropForeignDataWrapper(it) => &it.syntax,
35073            Stmt::DropForeignTable(it) => &it.syntax,
35074            Stmt::DropFunction(it) => &it.syntax,
35075            Stmt::DropGroup(it) => &it.syntax,
35076            Stmt::DropIndex(it) => &it.syntax,
35077            Stmt::DropLanguage(it) => &it.syntax,
35078            Stmt::DropMaterializedView(it) => &it.syntax,
35079            Stmt::DropOperator(it) => &it.syntax,
35080            Stmt::DropOperatorClass(it) => &it.syntax,
35081            Stmt::DropOperatorFamily(it) => &it.syntax,
35082            Stmt::DropOwned(it) => &it.syntax,
35083            Stmt::DropPolicy(it) => &it.syntax,
35084            Stmt::DropProcedure(it) => &it.syntax,
35085            Stmt::DropPropertyGraph(it) => &it.syntax,
35086            Stmt::DropPublication(it) => &it.syntax,
35087            Stmt::DropRole(it) => &it.syntax,
35088            Stmt::DropRoutine(it) => &it.syntax,
35089            Stmt::DropRule(it) => &it.syntax,
35090            Stmt::DropSchema(it) => &it.syntax,
35091            Stmt::DropSequence(it) => &it.syntax,
35092            Stmt::DropServer(it) => &it.syntax,
35093            Stmt::DropStatistics(it) => &it.syntax,
35094            Stmt::DropSubscription(it) => &it.syntax,
35095            Stmt::DropTable(it) => &it.syntax,
35096            Stmt::DropTablespace(it) => &it.syntax,
35097            Stmt::DropTextSearchConfig(it) => &it.syntax,
35098            Stmt::DropTextSearchDict(it) => &it.syntax,
35099            Stmt::DropTextSearchParser(it) => &it.syntax,
35100            Stmt::DropTextSearchTemplate(it) => &it.syntax,
35101            Stmt::DropTransform(it) => &it.syntax,
35102            Stmt::DropTrigger(it) => &it.syntax,
35103            Stmt::DropType(it) => &it.syntax,
35104            Stmt::DropUser(it) => &it.syntax,
35105            Stmt::DropUserMapping(it) => &it.syntax,
35106            Stmt::DropView(it) => &it.syntax,
35107            Stmt::Execute(it) => &it.syntax,
35108            Stmt::Explain(it) => &it.syntax,
35109            Stmt::Fetch(it) => &it.syntax,
35110            Stmt::Grant(it) => &it.syntax,
35111            Stmt::ImportForeignSchema(it) => &it.syntax,
35112            Stmt::Insert(it) => &it.syntax,
35113            Stmt::Listen(it) => &it.syntax,
35114            Stmt::Load(it) => &it.syntax,
35115            Stmt::Lock(it) => &it.syntax,
35116            Stmt::Merge(it) => &it.syntax,
35117            Stmt::Move(it) => &it.syntax,
35118            Stmt::Notify(it) => &it.syntax,
35119            Stmt::ParenSelect(it) => &it.syntax,
35120            Stmt::Prepare(it) => &it.syntax,
35121            Stmt::PrepareTransaction(it) => &it.syntax,
35122            Stmt::Reassign(it) => &it.syntax,
35123            Stmt::Refresh(it) => &it.syntax,
35124            Stmt::Reindex(it) => &it.syntax,
35125            Stmt::ReleaseSavepoint(it) => &it.syntax,
35126            Stmt::Repack(it) => &it.syntax,
35127            Stmt::Reset(it) => &it.syntax,
35128            Stmt::ResetSessionAuth(it) => &it.syntax,
35129            Stmt::Revoke(it) => &it.syntax,
35130            Stmt::Rollback(it) => &it.syntax,
35131            Stmt::Savepoint(it) => &it.syntax,
35132            Stmt::SecurityLabel(it) => &it.syntax,
35133            Stmt::Select(it) => &it.syntax,
35134            Stmt::SelectInto(it) => &it.syntax,
35135            Stmt::Set(it) => &it.syntax,
35136            Stmt::SetConstraints(it) => &it.syntax,
35137            Stmt::SetRole(it) => &it.syntax,
35138            Stmt::SetSessionAuth(it) => &it.syntax,
35139            Stmt::SetTransaction(it) => &it.syntax,
35140            Stmt::Show(it) => &it.syntax,
35141            Stmt::Table(it) => &it.syntax,
35142            Stmt::Truncate(it) => &it.syntax,
35143            Stmt::Unlisten(it) => &it.syntax,
35144            Stmt::Update(it) => &it.syntax,
35145            Stmt::Vacuum(it) => &it.syntax,
35146            Stmt::Values(it) => &it.syntax,
35147        }
35148    }
35149}
35150impl From<AlterAggregate> for Stmt {
35151    #[inline]
35152    fn from(node: AlterAggregate) -> Stmt {
35153        Stmt::AlterAggregate(node)
35154    }
35155}
35156impl From<AlterCollation> for Stmt {
35157    #[inline]
35158    fn from(node: AlterCollation) -> Stmt {
35159        Stmt::AlterCollation(node)
35160    }
35161}
35162impl From<AlterConversion> for Stmt {
35163    #[inline]
35164    fn from(node: AlterConversion) -> Stmt {
35165        Stmt::AlterConversion(node)
35166    }
35167}
35168impl From<AlterDatabase> for Stmt {
35169    #[inline]
35170    fn from(node: AlterDatabase) -> Stmt {
35171        Stmt::AlterDatabase(node)
35172    }
35173}
35174impl From<AlterDefaultPrivileges> for Stmt {
35175    #[inline]
35176    fn from(node: AlterDefaultPrivileges) -> Stmt {
35177        Stmt::AlterDefaultPrivileges(node)
35178    }
35179}
35180impl From<AlterDomain> for Stmt {
35181    #[inline]
35182    fn from(node: AlterDomain) -> Stmt {
35183        Stmt::AlterDomain(node)
35184    }
35185}
35186impl From<AlterEventTrigger> for Stmt {
35187    #[inline]
35188    fn from(node: AlterEventTrigger) -> Stmt {
35189        Stmt::AlterEventTrigger(node)
35190    }
35191}
35192impl From<AlterExtension> for Stmt {
35193    #[inline]
35194    fn from(node: AlterExtension) -> Stmt {
35195        Stmt::AlterExtension(node)
35196    }
35197}
35198impl From<AlterForeignDataWrapper> for Stmt {
35199    #[inline]
35200    fn from(node: AlterForeignDataWrapper) -> Stmt {
35201        Stmt::AlterForeignDataWrapper(node)
35202    }
35203}
35204impl From<AlterForeignTable> for Stmt {
35205    #[inline]
35206    fn from(node: AlterForeignTable) -> Stmt {
35207        Stmt::AlterForeignTable(node)
35208    }
35209}
35210impl From<AlterFunction> for Stmt {
35211    #[inline]
35212    fn from(node: AlterFunction) -> Stmt {
35213        Stmt::AlterFunction(node)
35214    }
35215}
35216impl From<AlterGroup> for Stmt {
35217    #[inline]
35218    fn from(node: AlterGroup) -> Stmt {
35219        Stmt::AlterGroup(node)
35220    }
35221}
35222impl From<AlterIndex> for Stmt {
35223    #[inline]
35224    fn from(node: AlterIndex) -> Stmt {
35225        Stmt::AlterIndex(node)
35226    }
35227}
35228impl From<AlterLanguage> for Stmt {
35229    #[inline]
35230    fn from(node: AlterLanguage) -> Stmt {
35231        Stmt::AlterLanguage(node)
35232    }
35233}
35234impl From<AlterLargeObject> for Stmt {
35235    #[inline]
35236    fn from(node: AlterLargeObject) -> Stmt {
35237        Stmt::AlterLargeObject(node)
35238    }
35239}
35240impl From<AlterMaterializedView> for Stmt {
35241    #[inline]
35242    fn from(node: AlterMaterializedView) -> Stmt {
35243        Stmt::AlterMaterializedView(node)
35244    }
35245}
35246impl From<AlterOperator> for Stmt {
35247    #[inline]
35248    fn from(node: AlterOperator) -> Stmt {
35249        Stmt::AlterOperator(node)
35250    }
35251}
35252impl From<AlterOperatorClass> for Stmt {
35253    #[inline]
35254    fn from(node: AlterOperatorClass) -> Stmt {
35255        Stmt::AlterOperatorClass(node)
35256    }
35257}
35258impl From<AlterOperatorFamily> for Stmt {
35259    #[inline]
35260    fn from(node: AlterOperatorFamily) -> Stmt {
35261        Stmt::AlterOperatorFamily(node)
35262    }
35263}
35264impl From<AlterPolicy> for Stmt {
35265    #[inline]
35266    fn from(node: AlterPolicy) -> Stmt {
35267        Stmt::AlterPolicy(node)
35268    }
35269}
35270impl From<AlterProcedure> for Stmt {
35271    #[inline]
35272    fn from(node: AlterProcedure) -> Stmt {
35273        Stmt::AlterProcedure(node)
35274    }
35275}
35276impl From<AlterPropertyGraph> for Stmt {
35277    #[inline]
35278    fn from(node: AlterPropertyGraph) -> Stmt {
35279        Stmt::AlterPropertyGraph(node)
35280    }
35281}
35282impl From<AlterPublication> for Stmt {
35283    #[inline]
35284    fn from(node: AlterPublication) -> Stmt {
35285        Stmt::AlterPublication(node)
35286    }
35287}
35288impl From<AlterRole> for Stmt {
35289    #[inline]
35290    fn from(node: AlterRole) -> Stmt {
35291        Stmt::AlterRole(node)
35292    }
35293}
35294impl From<AlterRoutine> for Stmt {
35295    #[inline]
35296    fn from(node: AlterRoutine) -> Stmt {
35297        Stmt::AlterRoutine(node)
35298    }
35299}
35300impl From<AlterRule> for Stmt {
35301    #[inline]
35302    fn from(node: AlterRule) -> Stmt {
35303        Stmt::AlterRule(node)
35304    }
35305}
35306impl From<AlterSchema> for Stmt {
35307    #[inline]
35308    fn from(node: AlterSchema) -> Stmt {
35309        Stmt::AlterSchema(node)
35310    }
35311}
35312impl From<AlterSequence> for Stmt {
35313    #[inline]
35314    fn from(node: AlterSequence) -> Stmt {
35315        Stmt::AlterSequence(node)
35316    }
35317}
35318impl From<AlterServer> for Stmt {
35319    #[inline]
35320    fn from(node: AlterServer) -> Stmt {
35321        Stmt::AlterServer(node)
35322    }
35323}
35324impl From<AlterStatistics> for Stmt {
35325    #[inline]
35326    fn from(node: AlterStatistics) -> Stmt {
35327        Stmt::AlterStatistics(node)
35328    }
35329}
35330impl From<AlterSubscription> for Stmt {
35331    #[inline]
35332    fn from(node: AlterSubscription) -> Stmt {
35333        Stmt::AlterSubscription(node)
35334    }
35335}
35336impl From<AlterSystem> for Stmt {
35337    #[inline]
35338    fn from(node: AlterSystem) -> Stmt {
35339        Stmt::AlterSystem(node)
35340    }
35341}
35342impl From<AlterTable> for Stmt {
35343    #[inline]
35344    fn from(node: AlterTable) -> Stmt {
35345        Stmt::AlterTable(node)
35346    }
35347}
35348impl From<AlterTablespace> for Stmt {
35349    #[inline]
35350    fn from(node: AlterTablespace) -> Stmt {
35351        Stmt::AlterTablespace(node)
35352    }
35353}
35354impl From<AlterTextSearchConfiguration> for Stmt {
35355    #[inline]
35356    fn from(node: AlterTextSearchConfiguration) -> Stmt {
35357        Stmt::AlterTextSearchConfiguration(node)
35358    }
35359}
35360impl From<AlterTextSearchDictionary> for Stmt {
35361    #[inline]
35362    fn from(node: AlterTextSearchDictionary) -> Stmt {
35363        Stmt::AlterTextSearchDictionary(node)
35364    }
35365}
35366impl From<AlterTextSearchParser> for Stmt {
35367    #[inline]
35368    fn from(node: AlterTextSearchParser) -> Stmt {
35369        Stmt::AlterTextSearchParser(node)
35370    }
35371}
35372impl From<AlterTextSearchTemplate> for Stmt {
35373    #[inline]
35374    fn from(node: AlterTextSearchTemplate) -> Stmt {
35375        Stmt::AlterTextSearchTemplate(node)
35376    }
35377}
35378impl From<AlterTrigger> for Stmt {
35379    #[inline]
35380    fn from(node: AlterTrigger) -> Stmt {
35381        Stmt::AlterTrigger(node)
35382    }
35383}
35384impl From<AlterType> for Stmt {
35385    #[inline]
35386    fn from(node: AlterType) -> Stmt {
35387        Stmt::AlterType(node)
35388    }
35389}
35390impl From<AlterUser> for Stmt {
35391    #[inline]
35392    fn from(node: AlterUser) -> Stmt {
35393        Stmt::AlterUser(node)
35394    }
35395}
35396impl From<AlterUserMapping> for Stmt {
35397    #[inline]
35398    fn from(node: AlterUserMapping) -> Stmt {
35399        Stmt::AlterUserMapping(node)
35400    }
35401}
35402impl From<AlterView> for Stmt {
35403    #[inline]
35404    fn from(node: AlterView) -> Stmt {
35405        Stmt::AlterView(node)
35406    }
35407}
35408impl From<Analyze> for Stmt {
35409    #[inline]
35410    fn from(node: Analyze) -> Stmt {
35411        Stmt::Analyze(node)
35412    }
35413}
35414impl From<Begin> for Stmt {
35415    #[inline]
35416    fn from(node: Begin) -> Stmt {
35417        Stmt::Begin(node)
35418    }
35419}
35420impl From<Call> for Stmt {
35421    #[inline]
35422    fn from(node: Call) -> Stmt {
35423        Stmt::Call(node)
35424    }
35425}
35426impl From<Checkpoint> for Stmt {
35427    #[inline]
35428    fn from(node: Checkpoint) -> Stmt {
35429        Stmt::Checkpoint(node)
35430    }
35431}
35432impl From<Close> for Stmt {
35433    #[inline]
35434    fn from(node: Close) -> Stmt {
35435        Stmt::Close(node)
35436    }
35437}
35438impl From<Cluster> for Stmt {
35439    #[inline]
35440    fn from(node: Cluster) -> Stmt {
35441        Stmt::Cluster(node)
35442    }
35443}
35444impl From<CommentOn> for Stmt {
35445    #[inline]
35446    fn from(node: CommentOn) -> Stmt {
35447        Stmt::CommentOn(node)
35448    }
35449}
35450impl From<Commit> for Stmt {
35451    #[inline]
35452    fn from(node: Commit) -> Stmt {
35453        Stmt::Commit(node)
35454    }
35455}
35456impl From<Copy> for Stmt {
35457    #[inline]
35458    fn from(node: Copy) -> Stmt {
35459        Stmt::Copy(node)
35460    }
35461}
35462impl From<CreateAccessMethod> for Stmt {
35463    #[inline]
35464    fn from(node: CreateAccessMethod) -> Stmt {
35465        Stmt::CreateAccessMethod(node)
35466    }
35467}
35468impl From<CreateAggregate> for Stmt {
35469    #[inline]
35470    fn from(node: CreateAggregate) -> Stmt {
35471        Stmt::CreateAggregate(node)
35472    }
35473}
35474impl From<CreateCast> for Stmt {
35475    #[inline]
35476    fn from(node: CreateCast) -> Stmt {
35477        Stmt::CreateCast(node)
35478    }
35479}
35480impl From<CreateCollation> for Stmt {
35481    #[inline]
35482    fn from(node: CreateCollation) -> Stmt {
35483        Stmt::CreateCollation(node)
35484    }
35485}
35486impl From<CreateConversion> for Stmt {
35487    #[inline]
35488    fn from(node: CreateConversion) -> Stmt {
35489        Stmt::CreateConversion(node)
35490    }
35491}
35492impl From<CreateDatabase> for Stmt {
35493    #[inline]
35494    fn from(node: CreateDatabase) -> Stmt {
35495        Stmt::CreateDatabase(node)
35496    }
35497}
35498impl From<CreateDomain> for Stmt {
35499    #[inline]
35500    fn from(node: CreateDomain) -> Stmt {
35501        Stmt::CreateDomain(node)
35502    }
35503}
35504impl From<CreateEventTrigger> for Stmt {
35505    #[inline]
35506    fn from(node: CreateEventTrigger) -> Stmt {
35507        Stmt::CreateEventTrigger(node)
35508    }
35509}
35510impl From<CreateExtension> for Stmt {
35511    #[inline]
35512    fn from(node: CreateExtension) -> Stmt {
35513        Stmt::CreateExtension(node)
35514    }
35515}
35516impl From<CreateForeignDataWrapper> for Stmt {
35517    #[inline]
35518    fn from(node: CreateForeignDataWrapper) -> Stmt {
35519        Stmt::CreateForeignDataWrapper(node)
35520    }
35521}
35522impl From<CreateForeignTable> for Stmt {
35523    #[inline]
35524    fn from(node: CreateForeignTable) -> Stmt {
35525        Stmt::CreateForeignTable(node)
35526    }
35527}
35528impl From<CreateFunction> for Stmt {
35529    #[inline]
35530    fn from(node: CreateFunction) -> Stmt {
35531        Stmt::CreateFunction(node)
35532    }
35533}
35534impl From<CreateGroup> for Stmt {
35535    #[inline]
35536    fn from(node: CreateGroup) -> Stmt {
35537        Stmt::CreateGroup(node)
35538    }
35539}
35540impl From<CreateIndex> for Stmt {
35541    #[inline]
35542    fn from(node: CreateIndex) -> Stmt {
35543        Stmt::CreateIndex(node)
35544    }
35545}
35546impl From<CreateLanguage> for Stmt {
35547    #[inline]
35548    fn from(node: CreateLanguage) -> Stmt {
35549        Stmt::CreateLanguage(node)
35550    }
35551}
35552impl From<CreateMaterializedView> for Stmt {
35553    #[inline]
35554    fn from(node: CreateMaterializedView) -> Stmt {
35555        Stmt::CreateMaterializedView(node)
35556    }
35557}
35558impl From<CreateOperator> for Stmt {
35559    #[inline]
35560    fn from(node: CreateOperator) -> Stmt {
35561        Stmt::CreateOperator(node)
35562    }
35563}
35564impl From<CreateOperatorClass> for Stmt {
35565    #[inline]
35566    fn from(node: CreateOperatorClass) -> Stmt {
35567        Stmt::CreateOperatorClass(node)
35568    }
35569}
35570impl From<CreateOperatorFamily> for Stmt {
35571    #[inline]
35572    fn from(node: CreateOperatorFamily) -> Stmt {
35573        Stmt::CreateOperatorFamily(node)
35574    }
35575}
35576impl From<CreatePolicy> for Stmt {
35577    #[inline]
35578    fn from(node: CreatePolicy) -> Stmt {
35579        Stmt::CreatePolicy(node)
35580    }
35581}
35582impl From<CreateProcedure> for Stmt {
35583    #[inline]
35584    fn from(node: CreateProcedure) -> Stmt {
35585        Stmt::CreateProcedure(node)
35586    }
35587}
35588impl From<CreatePropertyGraph> for Stmt {
35589    #[inline]
35590    fn from(node: CreatePropertyGraph) -> Stmt {
35591        Stmt::CreatePropertyGraph(node)
35592    }
35593}
35594impl From<CreatePublication> for Stmt {
35595    #[inline]
35596    fn from(node: CreatePublication) -> Stmt {
35597        Stmt::CreatePublication(node)
35598    }
35599}
35600impl From<CreateRole> for Stmt {
35601    #[inline]
35602    fn from(node: CreateRole) -> Stmt {
35603        Stmt::CreateRole(node)
35604    }
35605}
35606impl From<CreateRule> for Stmt {
35607    #[inline]
35608    fn from(node: CreateRule) -> Stmt {
35609        Stmt::CreateRule(node)
35610    }
35611}
35612impl From<CreateSchema> for Stmt {
35613    #[inline]
35614    fn from(node: CreateSchema) -> Stmt {
35615        Stmt::CreateSchema(node)
35616    }
35617}
35618impl From<CreateSequence> for Stmt {
35619    #[inline]
35620    fn from(node: CreateSequence) -> Stmt {
35621        Stmt::CreateSequence(node)
35622    }
35623}
35624impl From<CreateServer> for Stmt {
35625    #[inline]
35626    fn from(node: CreateServer) -> Stmt {
35627        Stmt::CreateServer(node)
35628    }
35629}
35630impl From<CreateStatistics> for Stmt {
35631    #[inline]
35632    fn from(node: CreateStatistics) -> Stmt {
35633        Stmt::CreateStatistics(node)
35634    }
35635}
35636impl From<CreateSubscription> for Stmt {
35637    #[inline]
35638    fn from(node: CreateSubscription) -> Stmt {
35639        Stmt::CreateSubscription(node)
35640    }
35641}
35642impl From<CreateTable> for Stmt {
35643    #[inline]
35644    fn from(node: CreateTable) -> Stmt {
35645        Stmt::CreateTable(node)
35646    }
35647}
35648impl From<CreateTableAs> for Stmt {
35649    #[inline]
35650    fn from(node: CreateTableAs) -> Stmt {
35651        Stmt::CreateTableAs(node)
35652    }
35653}
35654impl From<CreateTablespace> for Stmt {
35655    #[inline]
35656    fn from(node: CreateTablespace) -> Stmt {
35657        Stmt::CreateTablespace(node)
35658    }
35659}
35660impl From<CreateTextSearchConfiguration> for Stmt {
35661    #[inline]
35662    fn from(node: CreateTextSearchConfiguration) -> Stmt {
35663        Stmt::CreateTextSearchConfiguration(node)
35664    }
35665}
35666impl From<CreateTextSearchDictionary> for Stmt {
35667    #[inline]
35668    fn from(node: CreateTextSearchDictionary) -> Stmt {
35669        Stmt::CreateTextSearchDictionary(node)
35670    }
35671}
35672impl From<CreateTextSearchParser> for Stmt {
35673    #[inline]
35674    fn from(node: CreateTextSearchParser) -> Stmt {
35675        Stmt::CreateTextSearchParser(node)
35676    }
35677}
35678impl From<CreateTextSearchTemplate> for Stmt {
35679    #[inline]
35680    fn from(node: CreateTextSearchTemplate) -> Stmt {
35681        Stmt::CreateTextSearchTemplate(node)
35682    }
35683}
35684impl From<CreateTransform> for Stmt {
35685    #[inline]
35686    fn from(node: CreateTransform) -> Stmt {
35687        Stmt::CreateTransform(node)
35688    }
35689}
35690impl From<CreateTrigger> for Stmt {
35691    #[inline]
35692    fn from(node: CreateTrigger) -> Stmt {
35693        Stmt::CreateTrigger(node)
35694    }
35695}
35696impl From<CreateType> for Stmt {
35697    #[inline]
35698    fn from(node: CreateType) -> Stmt {
35699        Stmt::CreateType(node)
35700    }
35701}
35702impl From<CreateUser> for Stmt {
35703    #[inline]
35704    fn from(node: CreateUser) -> Stmt {
35705        Stmt::CreateUser(node)
35706    }
35707}
35708impl From<CreateUserMapping> for Stmt {
35709    #[inline]
35710    fn from(node: CreateUserMapping) -> Stmt {
35711        Stmt::CreateUserMapping(node)
35712    }
35713}
35714impl From<CreateView> for Stmt {
35715    #[inline]
35716    fn from(node: CreateView) -> Stmt {
35717        Stmt::CreateView(node)
35718    }
35719}
35720impl From<Deallocate> for Stmt {
35721    #[inline]
35722    fn from(node: Deallocate) -> Stmt {
35723        Stmt::Deallocate(node)
35724    }
35725}
35726impl From<Declare> for Stmt {
35727    #[inline]
35728    fn from(node: Declare) -> Stmt {
35729        Stmt::Declare(node)
35730    }
35731}
35732impl From<Delete> for Stmt {
35733    #[inline]
35734    fn from(node: Delete) -> Stmt {
35735        Stmt::Delete(node)
35736    }
35737}
35738impl From<Discard> for Stmt {
35739    #[inline]
35740    fn from(node: Discard) -> Stmt {
35741        Stmt::Discard(node)
35742    }
35743}
35744impl From<Do> for Stmt {
35745    #[inline]
35746    fn from(node: Do) -> Stmt {
35747        Stmt::Do(node)
35748    }
35749}
35750impl From<DropAccessMethod> for Stmt {
35751    #[inline]
35752    fn from(node: DropAccessMethod) -> Stmt {
35753        Stmt::DropAccessMethod(node)
35754    }
35755}
35756impl From<DropAggregate> for Stmt {
35757    #[inline]
35758    fn from(node: DropAggregate) -> Stmt {
35759        Stmt::DropAggregate(node)
35760    }
35761}
35762impl From<DropCast> for Stmt {
35763    #[inline]
35764    fn from(node: DropCast) -> Stmt {
35765        Stmt::DropCast(node)
35766    }
35767}
35768impl From<DropCollation> for Stmt {
35769    #[inline]
35770    fn from(node: DropCollation) -> Stmt {
35771        Stmt::DropCollation(node)
35772    }
35773}
35774impl From<DropConversion> for Stmt {
35775    #[inline]
35776    fn from(node: DropConversion) -> Stmt {
35777        Stmt::DropConversion(node)
35778    }
35779}
35780impl From<DropDatabase> for Stmt {
35781    #[inline]
35782    fn from(node: DropDatabase) -> Stmt {
35783        Stmt::DropDatabase(node)
35784    }
35785}
35786impl From<DropDomain> for Stmt {
35787    #[inline]
35788    fn from(node: DropDomain) -> Stmt {
35789        Stmt::DropDomain(node)
35790    }
35791}
35792impl From<DropEventTrigger> for Stmt {
35793    #[inline]
35794    fn from(node: DropEventTrigger) -> Stmt {
35795        Stmt::DropEventTrigger(node)
35796    }
35797}
35798impl From<DropExtension> for Stmt {
35799    #[inline]
35800    fn from(node: DropExtension) -> Stmt {
35801        Stmt::DropExtension(node)
35802    }
35803}
35804impl From<DropForeignDataWrapper> for Stmt {
35805    #[inline]
35806    fn from(node: DropForeignDataWrapper) -> Stmt {
35807        Stmt::DropForeignDataWrapper(node)
35808    }
35809}
35810impl From<DropForeignTable> for Stmt {
35811    #[inline]
35812    fn from(node: DropForeignTable) -> Stmt {
35813        Stmt::DropForeignTable(node)
35814    }
35815}
35816impl From<DropFunction> for Stmt {
35817    #[inline]
35818    fn from(node: DropFunction) -> Stmt {
35819        Stmt::DropFunction(node)
35820    }
35821}
35822impl From<DropGroup> for Stmt {
35823    #[inline]
35824    fn from(node: DropGroup) -> Stmt {
35825        Stmt::DropGroup(node)
35826    }
35827}
35828impl From<DropIndex> for Stmt {
35829    #[inline]
35830    fn from(node: DropIndex) -> Stmt {
35831        Stmt::DropIndex(node)
35832    }
35833}
35834impl From<DropLanguage> for Stmt {
35835    #[inline]
35836    fn from(node: DropLanguage) -> Stmt {
35837        Stmt::DropLanguage(node)
35838    }
35839}
35840impl From<DropMaterializedView> for Stmt {
35841    #[inline]
35842    fn from(node: DropMaterializedView) -> Stmt {
35843        Stmt::DropMaterializedView(node)
35844    }
35845}
35846impl From<DropOperator> for Stmt {
35847    #[inline]
35848    fn from(node: DropOperator) -> Stmt {
35849        Stmt::DropOperator(node)
35850    }
35851}
35852impl From<DropOperatorClass> for Stmt {
35853    #[inline]
35854    fn from(node: DropOperatorClass) -> Stmt {
35855        Stmt::DropOperatorClass(node)
35856    }
35857}
35858impl From<DropOperatorFamily> for Stmt {
35859    #[inline]
35860    fn from(node: DropOperatorFamily) -> Stmt {
35861        Stmt::DropOperatorFamily(node)
35862    }
35863}
35864impl From<DropOwned> for Stmt {
35865    #[inline]
35866    fn from(node: DropOwned) -> Stmt {
35867        Stmt::DropOwned(node)
35868    }
35869}
35870impl From<DropPolicy> for Stmt {
35871    #[inline]
35872    fn from(node: DropPolicy) -> Stmt {
35873        Stmt::DropPolicy(node)
35874    }
35875}
35876impl From<DropProcedure> for Stmt {
35877    #[inline]
35878    fn from(node: DropProcedure) -> Stmt {
35879        Stmt::DropProcedure(node)
35880    }
35881}
35882impl From<DropPropertyGraph> for Stmt {
35883    #[inline]
35884    fn from(node: DropPropertyGraph) -> Stmt {
35885        Stmt::DropPropertyGraph(node)
35886    }
35887}
35888impl From<DropPublication> for Stmt {
35889    #[inline]
35890    fn from(node: DropPublication) -> Stmt {
35891        Stmt::DropPublication(node)
35892    }
35893}
35894impl From<DropRole> for Stmt {
35895    #[inline]
35896    fn from(node: DropRole) -> Stmt {
35897        Stmt::DropRole(node)
35898    }
35899}
35900impl From<DropRoutine> for Stmt {
35901    #[inline]
35902    fn from(node: DropRoutine) -> Stmt {
35903        Stmt::DropRoutine(node)
35904    }
35905}
35906impl From<DropRule> for Stmt {
35907    #[inline]
35908    fn from(node: DropRule) -> Stmt {
35909        Stmt::DropRule(node)
35910    }
35911}
35912impl From<DropSchema> for Stmt {
35913    #[inline]
35914    fn from(node: DropSchema) -> Stmt {
35915        Stmt::DropSchema(node)
35916    }
35917}
35918impl From<DropSequence> for Stmt {
35919    #[inline]
35920    fn from(node: DropSequence) -> Stmt {
35921        Stmt::DropSequence(node)
35922    }
35923}
35924impl From<DropServer> for Stmt {
35925    #[inline]
35926    fn from(node: DropServer) -> Stmt {
35927        Stmt::DropServer(node)
35928    }
35929}
35930impl From<DropStatistics> for Stmt {
35931    #[inline]
35932    fn from(node: DropStatistics) -> Stmt {
35933        Stmt::DropStatistics(node)
35934    }
35935}
35936impl From<DropSubscription> for Stmt {
35937    #[inline]
35938    fn from(node: DropSubscription) -> Stmt {
35939        Stmt::DropSubscription(node)
35940    }
35941}
35942impl From<DropTable> for Stmt {
35943    #[inline]
35944    fn from(node: DropTable) -> Stmt {
35945        Stmt::DropTable(node)
35946    }
35947}
35948impl From<DropTablespace> for Stmt {
35949    #[inline]
35950    fn from(node: DropTablespace) -> Stmt {
35951        Stmt::DropTablespace(node)
35952    }
35953}
35954impl From<DropTextSearchConfig> for Stmt {
35955    #[inline]
35956    fn from(node: DropTextSearchConfig) -> Stmt {
35957        Stmt::DropTextSearchConfig(node)
35958    }
35959}
35960impl From<DropTextSearchDict> for Stmt {
35961    #[inline]
35962    fn from(node: DropTextSearchDict) -> Stmt {
35963        Stmt::DropTextSearchDict(node)
35964    }
35965}
35966impl From<DropTextSearchParser> for Stmt {
35967    #[inline]
35968    fn from(node: DropTextSearchParser) -> Stmt {
35969        Stmt::DropTextSearchParser(node)
35970    }
35971}
35972impl From<DropTextSearchTemplate> for Stmt {
35973    #[inline]
35974    fn from(node: DropTextSearchTemplate) -> Stmt {
35975        Stmt::DropTextSearchTemplate(node)
35976    }
35977}
35978impl From<DropTransform> for Stmt {
35979    #[inline]
35980    fn from(node: DropTransform) -> Stmt {
35981        Stmt::DropTransform(node)
35982    }
35983}
35984impl From<DropTrigger> for Stmt {
35985    #[inline]
35986    fn from(node: DropTrigger) -> Stmt {
35987        Stmt::DropTrigger(node)
35988    }
35989}
35990impl From<DropType> for Stmt {
35991    #[inline]
35992    fn from(node: DropType) -> Stmt {
35993        Stmt::DropType(node)
35994    }
35995}
35996impl From<DropUser> for Stmt {
35997    #[inline]
35998    fn from(node: DropUser) -> Stmt {
35999        Stmt::DropUser(node)
36000    }
36001}
36002impl From<DropUserMapping> for Stmt {
36003    #[inline]
36004    fn from(node: DropUserMapping) -> Stmt {
36005        Stmt::DropUserMapping(node)
36006    }
36007}
36008impl From<DropView> for Stmt {
36009    #[inline]
36010    fn from(node: DropView) -> Stmt {
36011        Stmt::DropView(node)
36012    }
36013}
36014impl From<Execute> for Stmt {
36015    #[inline]
36016    fn from(node: Execute) -> Stmt {
36017        Stmt::Execute(node)
36018    }
36019}
36020impl From<Explain> for Stmt {
36021    #[inline]
36022    fn from(node: Explain) -> Stmt {
36023        Stmt::Explain(node)
36024    }
36025}
36026impl From<Fetch> for Stmt {
36027    #[inline]
36028    fn from(node: Fetch) -> Stmt {
36029        Stmt::Fetch(node)
36030    }
36031}
36032impl From<Grant> for Stmt {
36033    #[inline]
36034    fn from(node: Grant) -> Stmt {
36035        Stmt::Grant(node)
36036    }
36037}
36038impl From<ImportForeignSchema> for Stmt {
36039    #[inline]
36040    fn from(node: ImportForeignSchema) -> Stmt {
36041        Stmt::ImportForeignSchema(node)
36042    }
36043}
36044impl From<Insert> for Stmt {
36045    #[inline]
36046    fn from(node: Insert) -> Stmt {
36047        Stmt::Insert(node)
36048    }
36049}
36050impl From<Listen> for Stmt {
36051    #[inline]
36052    fn from(node: Listen) -> Stmt {
36053        Stmt::Listen(node)
36054    }
36055}
36056impl From<Load> for Stmt {
36057    #[inline]
36058    fn from(node: Load) -> Stmt {
36059        Stmt::Load(node)
36060    }
36061}
36062impl From<Lock> for Stmt {
36063    #[inline]
36064    fn from(node: Lock) -> Stmt {
36065        Stmt::Lock(node)
36066    }
36067}
36068impl From<Merge> for Stmt {
36069    #[inline]
36070    fn from(node: Merge) -> Stmt {
36071        Stmt::Merge(node)
36072    }
36073}
36074impl From<Move> for Stmt {
36075    #[inline]
36076    fn from(node: Move) -> Stmt {
36077        Stmt::Move(node)
36078    }
36079}
36080impl From<Notify> for Stmt {
36081    #[inline]
36082    fn from(node: Notify) -> Stmt {
36083        Stmt::Notify(node)
36084    }
36085}
36086impl From<ParenSelect> for Stmt {
36087    #[inline]
36088    fn from(node: ParenSelect) -> Stmt {
36089        Stmt::ParenSelect(node)
36090    }
36091}
36092impl From<Prepare> for Stmt {
36093    #[inline]
36094    fn from(node: Prepare) -> Stmt {
36095        Stmt::Prepare(node)
36096    }
36097}
36098impl From<PrepareTransaction> for Stmt {
36099    #[inline]
36100    fn from(node: PrepareTransaction) -> Stmt {
36101        Stmt::PrepareTransaction(node)
36102    }
36103}
36104impl From<Reassign> for Stmt {
36105    #[inline]
36106    fn from(node: Reassign) -> Stmt {
36107        Stmt::Reassign(node)
36108    }
36109}
36110impl From<Refresh> for Stmt {
36111    #[inline]
36112    fn from(node: Refresh) -> Stmt {
36113        Stmt::Refresh(node)
36114    }
36115}
36116impl From<Reindex> for Stmt {
36117    #[inline]
36118    fn from(node: Reindex) -> Stmt {
36119        Stmt::Reindex(node)
36120    }
36121}
36122impl From<ReleaseSavepoint> for Stmt {
36123    #[inline]
36124    fn from(node: ReleaseSavepoint) -> Stmt {
36125        Stmt::ReleaseSavepoint(node)
36126    }
36127}
36128impl From<Repack> for Stmt {
36129    #[inline]
36130    fn from(node: Repack) -> Stmt {
36131        Stmt::Repack(node)
36132    }
36133}
36134impl From<Reset> for Stmt {
36135    #[inline]
36136    fn from(node: Reset) -> Stmt {
36137        Stmt::Reset(node)
36138    }
36139}
36140impl From<ResetSessionAuth> for Stmt {
36141    #[inline]
36142    fn from(node: ResetSessionAuth) -> Stmt {
36143        Stmt::ResetSessionAuth(node)
36144    }
36145}
36146impl From<Revoke> for Stmt {
36147    #[inline]
36148    fn from(node: Revoke) -> Stmt {
36149        Stmt::Revoke(node)
36150    }
36151}
36152impl From<Rollback> for Stmt {
36153    #[inline]
36154    fn from(node: Rollback) -> Stmt {
36155        Stmt::Rollback(node)
36156    }
36157}
36158impl From<Savepoint> for Stmt {
36159    #[inline]
36160    fn from(node: Savepoint) -> Stmt {
36161        Stmt::Savepoint(node)
36162    }
36163}
36164impl From<SecurityLabel> for Stmt {
36165    #[inline]
36166    fn from(node: SecurityLabel) -> Stmt {
36167        Stmt::SecurityLabel(node)
36168    }
36169}
36170impl From<Select> for Stmt {
36171    #[inline]
36172    fn from(node: Select) -> Stmt {
36173        Stmt::Select(node)
36174    }
36175}
36176impl From<SelectInto> for Stmt {
36177    #[inline]
36178    fn from(node: SelectInto) -> Stmt {
36179        Stmt::SelectInto(node)
36180    }
36181}
36182impl From<Set> for Stmt {
36183    #[inline]
36184    fn from(node: Set) -> Stmt {
36185        Stmt::Set(node)
36186    }
36187}
36188impl From<SetConstraints> for Stmt {
36189    #[inline]
36190    fn from(node: SetConstraints) -> Stmt {
36191        Stmt::SetConstraints(node)
36192    }
36193}
36194impl From<SetRole> for Stmt {
36195    #[inline]
36196    fn from(node: SetRole) -> Stmt {
36197        Stmt::SetRole(node)
36198    }
36199}
36200impl From<SetSessionAuth> for Stmt {
36201    #[inline]
36202    fn from(node: SetSessionAuth) -> Stmt {
36203        Stmt::SetSessionAuth(node)
36204    }
36205}
36206impl From<SetTransaction> for Stmt {
36207    #[inline]
36208    fn from(node: SetTransaction) -> Stmt {
36209        Stmt::SetTransaction(node)
36210    }
36211}
36212impl From<Show> for Stmt {
36213    #[inline]
36214    fn from(node: Show) -> Stmt {
36215        Stmt::Show(node)
36216    }
36217}
36218impl From<Table> for Stmt {
36219    #[inline]
36220    fn from(node: Table) -> Stmt {
36221        Stmt::Table(node)
36222    }
36223}
36224impl From<Truncate> for Stmt {
36225    #[inline]
36226    fn from(node: Truncate) -> Stmt {
36227        Stmt::Truncate(node)
36228    }
36229}
36230impl From<Unlisten> for Stmt {
36231    #[inline]
36232    fn from(node: Unlisten) -> Stmt {
36233        Stmt::Unlisten(node)
36234    }
36235}
36236impl From<Update> for Stmt {
36237    #[inline]
36238    fn from(node: Update) -> Stmt {
36239        Stmt::Update(node)
36240    }
36241}
36242impl From<Vacuum> for Stmt {
36243    #[inline]
36244    fn from(node: Vacuum) -> Stmt {
36245        Stmt::Vacuum(node)
36246    }
36247}
36248impl From<Values> for Stmt {
36249    #[inline]
36250    fn from(node: Values) -> Stmt {
36251        Stmt::Values(node)
36252    }
36253}
36254impl AstNode for TableArg {
36255    #[inline]
36256    fn can_cast(kind: SyntaxKind) -> bool {
36257        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
36258    }
36259    #[inline]
36260    fn cast(syntax: SyntaxNode) -> Option<Self> {
36261        let res = match syntax.kind() {
36262            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
36263            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
36264            _ => {
36265                if let Some(result) = TableConstraint::cast(syntax) {
36266                    return Some(TableArg::TableConstraint(result));
36267                }
36268                return None;
36269            }
36270        };
36271        Some(res)
36272    }
36273    #[inline]
36274    fn syntax(&self) -> &SyntaxNode {
36275        match self {
36276            TableArg::Column(it) => &it.syntax,
36277            TableArg::LikeClause(it) => &it.syntax,
36278            TableArg::TableConstraint(it) => it.syntax(),
36279        }
36280    }
36281}
36282impl From<Column> for TableArg {
36283    #[inline]
36284    fn from(node: Column) -> TableArg {
36285        TableArg::Column(node)
36286    }
36287}
36288impl From<LikeClause> for TableArg {
36289    #[inline]
36290    fn from(node: LikeClause) -> TableArg {
36291        TableArg::LikeClause(node)
36292    }
36293}
36294impl AstNode for TableConstraint {
36295    #[inline]
36296    fn can_cast(kind: SyntaxKind) -> bool {
36297        matches!(
36298            kind,
36299            SyntaxKind::CHECK_CONSTRAINT
36300                | SyntaxKind::EXCLUDE_CONSTRAINT
36301                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
36302                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
36303                | SyntaxKind::UNIQUE_CONSTRAINT
36304        )
36305    }
36306    #[inline]
36307    fn cast(syntax: SyntaxNode) -> Option<Self> {
36308        let res = match syntax.kind() {
36309            SyntaxKind::CHECK_CONSTRAINT => {
36310                TableConstraint::CheckConstraint(CheckConstraint { syntax })
36311            }
36312            SyntaxKind::EXCLUDE_CONSTRAINT => {
36313                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
36314            }
36315            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
36316                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
36317            }
36318            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
36319                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
36320            }
36321            SyntaxKind::UNIQUE_CONSTRAINT => {
36322                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
36323            }
36324            _ => {
36325                return None;
36326            }
36327        };
36328        Some(res)
36329    }
36330    #[inline]
36331    fn syntax(&self) -> &SyntaxNode {
36332        match self {
36333            TableConstraint::CheckConstraint(it) => &it.syntax,
36334            TableConstraint::ExcludeConstraint(it) => &it.syntax,
36335            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
36336            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
36337            TableConstraint::UniqueConstraint(it) => &it.syntax,
36338        }
36339    }
36340}
36341impl From<CheckConstraint> for TableConstraint {
36342    #[inline]
36343    fn from(node: CheckConstraint) -> TableConstraint {
36344        TableConstraint::CheckConstraint(node)
36345    }
36346}
36347impl From<ExcludeConstraint> for TableConstraint {
36348    #[inline]
36349    fn from(node: ExcludeConstraint) -> TableConstraint {
36350        TableConstraint::ExcludeConstraint(node)
36351    }
36352}
36353impl From<ForeignKeyConstraint> for TableConstraint {
36354    #[inline]
36355    fn from(node: ForeignKeyConstraint) -> TableConstraint {
36356        TableConstraint::ForeignKeyConstraint(node)
36357    }
36358}
36359impl From<PrimaryKeyConstraint> for TableConstraint {
36360    #[inline]
36361    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
36362        TableConstraint::PrimaryKeyConstraint(node)
36363    }
36364}
36365impl From<UniqueConstraint> for TableConstraint {
36366    #[inline]
36367    fn from(node: UniqueConstraint) -> TableConstraint {
36368        TableConstraint::UniqueConstraint(node)
36369    }
36370}
36371impl AstNode for Timezone {
36372    #[inline]
36373    fn can_cast(kind: SyntaxKind) -> bool {
36374        matches!(
36375            kind,
36376            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
36377        )
36378    }
36379    #[inline]
36380    fn cast(syntax: SyntaxNode) -> Option<Self> {
36381        let res = match syntax.kind() {
36382            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
36383            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
36384            _ => {
36385                return None;
36386            }
36387        };
36388        Some(res)
36389    }
36390    #[inline]
36391    fn syntax(&self) -> &SyntaxNode {
36392        match self {
36393            Timezone::WithTimezone(it) => &it.syntax,
36394            Timezone::WithoutTimezone(it) => &it.syntax,
36395        }
36396    }
36397}
36398impl From<WithTimezone> for Timezone {
36399    #[inline]
36400    fn from(node: WithTimezone) -> Timezone {
36401        Timezone::WithTimezone(node)
36402    }
36403}
36404impl From<WithoutTimezone> for Timezone {
36405    #[inline]
36406    fn from(node: WithoutTimezone) -> Timezone {
36407        Timezone::WithoutTimezone(node)
36408    }
36409}
36410impl AstNode for TransactionMode {
36411    #[inline]
36412    fn can_cast(kind: SyntaxKind) -> bool {
36413        matches!(
36414            kind,
36415            SyntaxKind::DEFERRABLE
36416                | SyntaxKind::NOT_DEFERRABLE
36417                | SyntaxKind::READ_COMMITTED
36418                | SyntaxKind::READ_ONLY
36419                | SyntaxKind::READ_UNCOMMITTED
36420                | SyntaxKind::READ_WRITE
36421                | SyntaxKind::REPEATABLE_READ
36422                | SyntaxKind::SERIALIZABLE
36423        )
36424    }
36425    #[inline]
36426    fn cast(syntax: SyntaxNode) -> Option<Self> {
36427        let res = match syntax.kind() {
36428            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
36429            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
36430            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
36431            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
36432            SyntaxKind::READ_UNCOMMITTED => {
36433                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
36434            }
36435            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
36436            SyntaxKind::REPEATABLE_READ => {
36437                TransactionMode::RepeatableRead(RepeatableRead { syntax })
36438            }
36439            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
36440            _ => {
36441                return None;
36442            }
36443        };
36444        Some(res)
36445    }
36446    #[inline]
36447    fn syntax(&self) -> &SyntaxNode {
36448        match self {
36449            TransactionMode::Deferrable(it) => &it.syntax,
36450            TransactionMode::NotDeferrable(it) => &it.syntax,
36451            TransactionMode::ReadCommitted(it) => &it.syntax,
36452            TransactionMode::ReadOnly(it) => &it.syntax,
36453            TransactionMode::ReadUncommitted(it) => &it.syntax,
36454            TransactionMode::ReadWrite(it) => &it.syntax,
36455            TransactionMode::RepeatableRead(it) => &it.syntax,
36456            TransactionMode::Serializable(it) => &it.syntax,
36457        }
36458    }
36459}
36460impl From<Deferrable> for TransactionMode {
36461    #[inline]
36462    fn from(node: Deferrable) -> TransactionMode {
36463        TransactionMode::Deferrable(node)
36464    }
36465}
36466impl From<NotDeferrable> for TransactionMode {
36467    #[inline]
36468    fn from(node: NotDeferrable) -> TransactionMode {
36469        TransactionMode::NotDeferrable(node)
36470    }
36471}
36472impl From<ReadCommitted> for TransactionMode {
36473    #[inline]
36474    fn from(node: ReadCommitted) -> TransactionMode {
36475        TransactionMode::ReadCommitted(node)
36476    }
36477}
36478impl From<ReadOnly> for TransactionMode {
36479    #[inline]
36480    fn from(node: ReadOnly) -> TransactionMode {
36481        TransactionMode::ReadOnly(node)
36482    }
36483}
36484impl From<ReadUncommitted> for TransactionMode {
36485    #[inline]
36486    fn from(node: ReadUncommitted) -> TransactionMode {
36487        TransactionMode::ReadUncommitted(node)
36488    }
36489}
36490impl From<ReadWrite> for TransactionMode {
36491    #[inline]
36492    fn from(node: ReadWrite) -> TransactionMode {
36493        TransactionMode::ReadWrite(node)
36494    }
36495}
36496impl From<RepeatableRead> for TransactionMode {
36497    #[inline]
36498    fn from(node: RepeatableRead) -> TransactionMode {
36499        TransactionMode::RepeatableRead(node)
36500    }
36501}
36502impl From<Serializable> for TransactionMode {
36503    #[inline]
36504    fn from(node: Serializable) -> TransactionMode {
36505        TransactionMode::Serializable(node)
36506    }
36507}
36508impl AstNode for Type {
36509    #[inline]
36510    fn can_cast(kind: SyntaxKind) -> bool {
36511        matches!(
36512            kind,
36513            SyntaxKind::ARRAY_TYPE
36514                | SyntaxKind::BIT_TYPE
36515                | SyntaxKind::CHAR_TYPE
36516                | SyntaxKind::DOUBLE_TYPE
36517                | SyntaxKind::EXPR_TYPE
36518                | SyntaxKind::INTERVAL_TYPE
36519                | SyntaxKind::PATH_TYPE
36520                | SyntaxKind::PERCENT_TYPE
36521                | SyntaxKind::TIME_TYPE
36522        )
36523    }
36524    #[inline]
36525    fn cast(syntax: SyntaxNode) -> Option<Self> {
36526        let res = match syntax.kind() {
36527            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
36528            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
36529            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
36530            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
36531            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
36532            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
36533            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
36534            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
36535            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
36536            _ => {
36537                return None;
36538            }
36539        };
36540        Some(res)
36541    }
36542    #[inline]
36543    fn syntax(&self) -> &SyntaxNode {
36544        match self {
36545            Type::ArrayType(it) => &it.syntax,
36546            Type::BitType(it) => &it.syntax,
36547            Type::CharType(it) => &it.syntax,
36548            Type::DoubleType(it) => &it.syntax,
36549            Type::ExprType(it) => &it.syntax,
36550            Type::IntervalType(it) => &it.syntax,
36551            Type::PathType(it) => &it.syntax,
36552            Type::PercentType(it) => &it.syntax,
36553            Type::TimeType(it) => &it.syntax,
36554        }
36555    }
36556}
36557impl From<ArrayType> for Type {
36558    #[inline]
36559    fn from(node: ArrayType) -> Type {
36560        Type::ArrayType(node)
36561    }
36562}
36563impl From<BitType> for Type {
36564    #[inline]
36565    fn from(node: BitType) -> Type {
36566        Type::BitType(node)
36567    }
36568}
36569impl From<CharType> for Type {
36570    #[inline]
36571    fn from(node: CharType) -> Type {
36572        Type::CharType(node)
36573    }
36574}
36575impl From<DoubleType> for Type {
36576    #[inline]
36577    fn from(node: DoubleType) -> Type {
36578        Type::DoubleType(node)
36579    }
36580}
36581impl From<ExprType> for Type {
36582    #[inline]
36583    fn from(node: ExprType) -> Type {
36584        Type::ExprType(node)
36585    }
36586}
36587impl From<IntervalType> for Type {
36588    #[inline]
36589    fn from(node: IntervalType) -> Type {
36590        Type::IntervalType(node)
36591    }
36592}
36593impl From<PathType> for Type {
36594    #[inline]
36595    fn from(node: PathType) -> Type {
36596        Type::PathType(node)
36597    }
36598}
36599impl From<PercentType> for Type {
36600    #[inline]
36601    fn from(node: PercentType) -> Type {
36602        Type::PercentType(node)
36603    }
36604}
36605impl From<TimeType> for Type {
36606    #[inline]
36607    fn from(node: TimeType) -> Type {
36608        Type::TimeType(node)
36609    }
36610}
36611impl AstNode for ValuePosition {
36612    #[inline]
36613    fn can_cast(kind: SyntaxKind) -> bool {
36614        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
36615    }
36616    #[inline]
36617    fn cast(syntax: SyntaxNode) -> Option<Self> {
36618        let res = match syntax.kind() {
36619            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
36620            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
36621            _ => {
36622                return None;
36623            }
36624        };
36625        Some(res)
36626    }
36627    #[inline]
36628    fn syntax(&self) -> &SyntaxNode {
36629        match self {
36630            ValuePosition::AfterValue(it) => &it.syntax,
36631            ValuePosition::BeforeValue(it) => &it.syntax,
36632        }
36633    }
36634}
36635impl From<AfterValue> for ValuePosition {
36636    #[inline]
36637    fn from(node: AfterValue) -> ValuePosition {
36638        ValuePosition::AfterValue(node)
36639    }
36640}
36641impl From<BeforeValue> for ValuePosition {
36642    #[inline]
36643    fn from(node: BeforeValue) -> ValuePosition {
36644        ValuePosition::BeforeValue(node)
36645    }
36646}
36647impl AstNode for WithQuery {
36648    #[inline]
36649    fn can_cast(kind: SyntaxKind) -> bool {
36650        matches!(
36651            kind,
36652            SyntaxKind::COMPOUND_SELECT
36653                | SyntaxKind::DELETE
36654                | SyntaxKind::INSERT
36655                | SyntaxKind::MERGE
36656                | SyntaxKind::PAREN_SELECT
36657                | SyntaxKind::SELECT
36658                | SyntaxKind::TABLE
36659                | SyntaxKind::UPDATE
36660                | SyntaxKind::VALUES
36661        )
36662    }
36663    #[inline]
36664    fn cast(syntax: SyntaxNode) -> Option<Self> {
36665        let res = match syntax.kind() {
36666            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
36667            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
36668            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
36669            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
36670            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
36671            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
36672            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
36673            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
36674            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
36675            _ => {
36676                return None;
36677            }
36678        };
36679        Some(res)
36680    }
36681    #[inline]
36682    fn syntax(&self) -> &SyntaxNode {
36683        match self {
36684            WithQuery::CompoundSelect(it) => &it.syntax,
36685            WithQuery::Delete(it) => &it.syntax,
36686            WithQuery::Insert(it) => &it.syntax,
36687            WithQuery::Merge(it) => &it.syntax,
36688            WithQuery::ParenSelect(it) => &it.syntax,
36689            WithQuery::Select(it) => &it.syntax,
36690            WithQuery::Table(it) => &it.syntax,
36691            WithQuery::Update(it) => &it.syntax,
36692            WithQuery::Values(it) => &it.syntax,
36693        }
36694    }
36695}
36696impl From<CompoundSelect> for WithQuery {
36697    #[inline]
36698    fn from(node: CompoundSelect) -> WithQuery {
36699        WithQuery::CompoundSelect(node)
36700    }
36701}
36702impl From<Delete> for WithQuery {
36703    #[inline]
36704    fn from(node: Delete) -> WithQuery {
36705        WithQuery::Delete(node)
36706    }
36707}
36708impl From<Insert> for WithQuery {
36709    #[inline]
36710    fn from(node: Insert) -> WithQuery {
36711        WithQuery::Insert(node)
36712    }
36713}
36714impl From<Merge> for WithQuery {
36715    #[inline]
36716    fn from(node: Merge) -> WithQuery {
36717        WithQuery::Merge(node)
36718    }
36719}
36720impl From<ParenSelect> for WithQuery {
36721    #[inline]
36722    fn from(node: ParenSelect) -> WithQuery {
36723        WithQuery::ParenSelect(node)
36724    }
36725}
36726impl From<Select> for WithQuery {
36727    #[inline]
36728    fn from(node: Select) -> WithQuery {
36729        WithQuery::Select(node)
36730    }
36731}
36732impl From<Table> for WithQuery {
36733    #[inline]
36734    fn from(node: Table) -> WithQuery {
36735        WithQuery::Table(node)
36736    }
36737}
36738impl From<Update> for WithQuery {
36739    #[inline]
36740    fn from(node: Update) -> WithQuery {
36741        WithQuery::Update(node)
36742    }
36743}
36744impl From<Values> for WithQuery {
36745    #[inline]
36746    fn from(node: Values) -> WithQuery {
36747        WithQuery::Values(node)
36748    }
36749}