Skip to main content

squawk_syntax/ast/generated/
nodes.rs

1// Generated via:
2//   cargo xtask codegen
3
4use crate::SyntaxKind;
5use crate::ast::AstNode;
6use crate::ast::{AstChildren, support};
7use crate::syntax_node::SyntaxNode;
8use crate::syntax_node::SyntaxToken;
9
10#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11pub struct AddAttribute {
12    pub(crate) syntax: SyntaxNode,
13}
14impl AddAttribute {
15    #[inline]
16    pub fn cascade(&self) -> Option<Cascade> {
17        support::child(&self.syntax)
18    }
19    #[inline]
20    pub fn collate(&self) -> Option<Collate> {
21        support::child(&self.syntax)
22    }
23    #[inline]
24    pub fn name(&self) -> Option<Name> {
25        support::child(&self.syntax)
26    }
27    #[inline]
28    pub fn restrict(&self) -> Option<Restrict> {
29        support::child(&self.syntax)
30    }
31    #[inline]
32    pub fn ty(&self) -> Option<Type> {
33        support::child(&self.syntax)
34    }
35    #[inline]
36    pub fn add_token(&self) -> Option<SyntaxToken> {
37        support::token(&self.syntax, SyntaxKind::ADD_KW)
38    }
39    #[inline]
40    pub fn attribute_token(&self) -> Option<SyntaxToken> {
41        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
42    }
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Hash)]
46pub struct AddColumn {
47    pub(crate) syntax: SyntaxNode,
48}
49impl AddColumn {
50    #[inline]
51    pub fn collate(&self) -> Option<Collate> {
52        support::child(&self.syntax)
53    }
54    #[inline]
55    pub fn constraints(&self) -> AstChildren<Constraint> {
56        support::children(&self.syntax)
57    }
58    #[inline]
59    pub fn if_not_exists(&self) -> Option<IfNotExists> {
60        support::child(&self.syntax)
61    }
62    #[inline]
63    pub fn name(&self) -> Option<Name> {
64        support::child(&self.syntax)
65    }
66    #[inline]
67    pub fn ty(&self) -> Option<Type> {
68        support::child(&self.syntax)
69    }
70    #[inline]
71    pub fn add_token(&self) -> Option<SyntaxToken> {
72        support::token(&self.syntax, SyntaxKind::ADD_KW)
73    }
74    #[inline]
75    pub fn column_token(&self) -> Option<SyntaxToken> {
76        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
77    }
78}
79
80#[derive(Debug, Clone, PartialEq, Eq, Hash)]
81pub struct AddConstraint {
82    pub(crate) syntax: SyntaxNode,
83}
84impl AddConstraint {
85    #[inline]
86    pub fn constraint(&self) -> Option<Constraint> {
87        support::child(&self.syntax)
88    }
89    #[inline]
90    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
91        support::child(&self.syntax)
92    }
93    #[inline]
94    pub fn enforced(&self) -> Option<Enforced> {
95        support::child(&self.syntax)
96    }
97    #[inline]
98    pub fn initially_deferred_constraint_option(
99        &self,
100    ) -> Option<InitiallyDeferredConstraintOption> {
101        support::child(&self.syntax)
102    }
103    #[inline]
104    pub fn initially_immediate_constraint_option(
105        &self,
106    ) -> Option<InitiallyImmediateConstraintOption> {
107        support::child(&self.syntax)
108    }
109    #[inline]
110    pub fn no_inherit(&self) -> Option<NoInherit> {
111        support::child(&self.syntax)
112    }
113    #[inline]
114    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
115        support::child(&self.syntax)
116    }
117    #[inline]
118    pub fn not_enforced(&self) -> Option<NotEnforced> {
119        support::child(&self.syntax)
120    }
121    #[inline]
122    pub fn not_valid(&self) -> Option<NotValid> {
123        support::child(&self.syntax)
124    }
125    #[inline]
126    pub fn add_token(&self) -> Option<SyntaxToken> {
127        support::token(&self.syntax, SyntaxKind::ADD_KW)
128    }
129}
130
131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
132pub struct AddGenerated {
133    pub(crate) syntax: SyntaxNode,
134}
135impl AddGenerated {
136    #[inline]
137    pub fn add_token(&self) -> Option<SyntaxToken> {
138        support::token(&self.syntax, SyntaxKind::ADD_KW)
139    }
140}
141
142#[derive(Debug, Clone, PartialEq, Eq, Hash)]
143pub struct AddLabel {
144    pub(crate) syntax: SyntaxNode,
145}
146impl AddLabel {
147    #[inline]
148    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
149        support::child(&self.syntax)
150    }
151    #[inline]
152    pub fn name(&self) -> Option<Name> {
153        support::child(&self.syntax)
154    }
155    #[inline]
156    pub fn add_token(&self) -> Option<SyntaxToken> {
157        support::token(&self.syntax, SyntaxKind::ADD_KW)
158    }
159    #[inline]
160    pub fn label_token(&self) -> Option<SyntaxToken> {
161        support::token(&self.syntax, SyntaxKind::LABEL_KW)
162    }
163}
164
165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
166pub struct AddOpClassOptions {
167    pub(crate) syntax: SyntaxNode,
168}
169impl AddOpClassOptions {
170    #[inline]
171    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
172        support::child(&self.syntax)
173    }
174    #[inline]
175    pub fn add_token(&self) -> Option<SyntaxToken> {
176        support::token(&self.syntax, SyntaxKind::ADD_KW)
177    }
178}
179
180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
181pub struct AddValue {
182    pub(crate) syntax: SyntaxNode,
183}
184impl AddValue {
185    #[inline]
186    pub fn if_not_exists(&self) -> Option<IfNotExists> {
187        support::child(&self.syntax)
188    }
189    #[inline]
190    pub fn literal(&self) -> Option<Literal> {
191        support::child(&self.syntax)
192    }
193    #[inline]
194    pub fn value_position(&self) -> Option<ValuePosition> {
195        support::child(&self.syntax)
196    }
197    #[inline]
198    pub fn add_token(&self) -> Option<SyntaxToken> {
199        support::token(&self.syntax, SyntaxKind::ADD_KW)
200    }
201    #[inline]
202    pub fn value_token(&self) -> Option<SyntaxToken> {
203        support::token(&self.syntax, SyntaxKind::VALUE_KW)
204    }
205}
206
207#[derive(Debug, Clone, PartialEq, Eq, Hash)]
208pub struct AddVertexEdgeLabelProperties {
209    pub(crate) syntax: SyntaxNode,
210}
211impl AddVertexEdgeLabelProperties {
212    #[inline]
213    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
214        support::child(&self.syntax)
215    }
216    #[inline]
217    pub fn name_ref(&self) -> Option<NameRef> {
218        support::child(&self.syntax)
219    }
220    #[inline]
221    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
222        support::token(&self.syntax, SyntaxKind::L_PAREN)
223    }
224    #[inline]
225    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
226        support::token(&self.syntax, SyntaxKind::R_PAREN)
227    }
228    #[inline]
229    pub fn add_token(&self) -> Option<SyntaxToken> {
230        support::token(&self.syntax, SyntaxKind::ADD_KW)
231    }
232    #[inline]
233    pub fn alter_token(&self) -> Option<SyntaxToken> {
234        support::token(&self.syntax, SyntaxKind::ALTER_KW)
235    }
236    #[inline]
237    pub fn edge_token(&self) -> Option<SyntaxToken> {
238        support::token(&self.syntax, SyntaxKind::EDGE_KW)
239    }
240    #[inline]
241    pub fn label_token(&self) -> Option<SyntaxToken> {
242        support::token(&self.syntax, SyntaxKind::LABEL_KW)
243    }
244    #[inline]
245    pub fn node_token(&self) -> Option<SyntaxToken> {
246        support::token(&self.syntax, SyntaxKind::NODE_KW)
247    }
248    #[inline]
249    pub fn properties_token(&self) -> Option<SyntaxToken> {
250        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
251    }
252    #[inline]
253    pub fn relationship_token(&self) -> Option<SyntaxToken> {
254        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
255    }
256    #[inline]
257    pub fn table_token(&self) -> Option<SyntaxToken> {
258        support::token(&self.syntax, SyntaxKind::TABLE_KW)
259    }
260    #[inline]
261    pub fn vertex_token(&self) -> Option<SyntaxToken> {
262        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
263    }
264}
265
266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
267pub struct AddVertexEdgeTables {
268    pub(crate) syntax: SyntaxNode,
269}
270impl AddVertexEdgeTables {
271    #[inline]
272    pub fn edge_tables(&self) -> Option<EdgeTables> {
273        support::child(&self.syntax)
274    }
275    #[inline]
276    pub fn vertex_tables(&self) -> Option<VertexTables> {
277        support::child(&self.syntax)
278    }
279    #[inline]
280    pub fn add_token(&self) -> Option<SyntaxToken> {
281        support::token(&self.syntax, SyntaxKind::ADD_KW)
282    }
283}
284
285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
286pub struct AfterValue {
287    pub(crate) syntax: SyntaxNode,
288}
289impl AfterValue {
290    #[inline]
291    pub fn literal(&self) -> Option<Literal> {
292        support::child(&self.syntax)
293    }
294    #[inline]
295    pub fn after_token(&self) -> Option<SyntaxToken> {
296        support::token(&self.syntax, SyntaxKind::AFTER_KW)
297    }
298}
299
300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
301pub struct Aggregate {
302    pub(crate) syntax: SyntaxNode,
303}
304impl Aggregate {
305    #[inline]
306    pub fn param_list(&self) -> Option<ParamList> {
307        support::child(&self.syntax)
308    }
309    #[inline]
310    pub fn path(&self) -> Option<Path> {
311        support::child(&self.syntax)
312    }
313}
314
315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
316pub struct Alias {
317    pub(crate) syntax: SyntaxNode,
318}
319impl Alias {
320    #[inline]
321    pub fn column_list(&self) -> Option<ColumnList> {
322        support::child(&self.syntax)
323    }
324    #[inline]
325    pub fn name(&self) -> Option<Name> {
326        support::child(&self.syntax)
327    }
328    #[inline]
329    pub fn as_token(&self) -> Option<SyntaxToken> {
330        support::token(&self.syntax, SyntaxKind::AS_KW)
331    }
332}
333
334#[derive(Debug, Clone, PartialEq, Eq, Hash)]
335pub struct AllFn {
336    pub(crate) syntax: SyntaxNode,
337}
338impl AllFn {
339    #[inline]
340    pub fn expr(&self) -> Option<Expr> {
341        support::child(&self.syntax)
342    }
343    #[inline]
344    pub fn select_variant(&self) -> Option<SelectVariant> {
345        support::child(&self.syntax)
346    }
347    #[inline]
348    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
349        support::token(&self.syntax, SyntaxKind::L_PAREN)
350    }
351    #[inline]
352    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
353        support::token(&self.syntax, SyntaxKind::R_PAREN)
354    }
355    #[inline]
356    pub fn all_token(&self) -> Option<SyntaxToken> {
357        support::token(&self.syntax, SyntaxKind::ALL_KW)
358    }
359}
360
361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
362pub struct AllProperties {
363    pub(crate) syntax: SyntaxNode,
364}
365impl AllProperties {
366    #[inline]
367    pub fn all_token(&self) -> Option<SyntaxToken> {
368        support::token(&self.syntax, SyntaxKind::ALL_KW)
369    }
370    #[inline]
371    pub fn columns_token(&self) -> Option<SyntaxToken> {
372        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
373    }
374    #[inline]
375    pub fn properties_token(&self) -> Option<SyntaxToken> {
376        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
377    }
378}
379
380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
381pub struct AlterAggregate {
382    pub(crate) syntax: SyntaxNode,
383}
384impl AlterAggregate {
385    #[inline]
386    pub fn aggregate(&self) -> Option<Aggregate> {
387        support::child(&self.syntax)
388    }
389    #[inline]
390    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
391        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
392    }
393    #[inline]
394    pub fn alter_token(&self) -> Option<SyntaxToken> {
395        support::token(&self.syntax, SyntaxKind::ALTER_KW)
396    }
397}
398
399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
400pub struct AlterAttribute {
401    pub(crate) syntax: SyntaxNode,
402}
403impl AlterAttribute {
404    #[inline]
405    pub fn cascade(&self) -> Option<Cascade> {
406        support::child(&self.syntax)
407    }
408    #[inline]
409    pub fn restrict(&self) -> Option<Restrict> {
410        support::child(&self.syntax)
411    }
412    #[inline]
413    pub fn alter_token(&self) -> Option<SyntaxToken> {
414        support::token(&self.syntax, SyntaxKind::ALTER_KW)
415    }
416    #[inline]
417    pub fn attribute_token(&self) -> Option<SyntaxToken> {
418        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
419    }
420}
421
422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
423pub struct AlterCollation {
424    pub(crate) syntax: SyntaxNode,
425}
426impl AlterCollation {
427    #[inline]
428    pub fn owner_to(&self) -> Option<OwnerTo> {
429        support::child(&self.syntax)
430    }
431    #[inline]
432    pub fn path(&self) -> Option<Path> {
433        support::child(&self.syntax)
434    }
435    #[inline]
436    pub fn refresh_version(&self) -> Option<RefreshVersion> {
437        support::child(&self.syntax)
438    }
439    #[inline]
440    pub fn rename_to(&self) -> Option<RenameTo> {
441        support::child(&self.syntax)
442    }
443    #[inline]
444    pub fn set_schema(&self) -> Option<SetSchema> {
445        support::child(&self.syntax)
446    }
447    #[inline]
448    pub fn alter_token(&self) -> Option<SyntaxToken> {
449        support::token(&self.syntax, SyntaxKind::ALTER_KW)
450    }
451    #[inline]
452    pub fn collation_token(&self) -> Option<SyntaxToken> {
453        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
454    }
455}
456
457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
458pub struct AlterColumn {
459    pub(crate) syntax: SyntaxNode,
460}
461impl AlterColumn {
462    #[inline]
463    pub fn name_ref(&self) -> Option<NameRef> {
464        support::child(&self.syntax)
465    }
466    #[inline]
467    pub fn option(&self) -> Option<AlterColumnOption> {
468        support::child(&self.syntax)
469    }
470    #[inline]
471    pub fn alter_token(&self) -> Option<SyntaxToken> {
472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
473    }
474    #[inline]
475    pub fn column_token(&self) -> Option<SyntaxToken> {
476        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
477    }
478}
479
480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
481pub struct AlterConstraint {
482    pub(crate) syntax: SyntaxNode,
483}
484impl AlterConstraint {
485    #[inline]
486    pub fn option(&self) -> Option<AlterColumnOption> {
487        support::child(&self.syntax)
488    }
489    #[inline]
490    pub fn alter_token(&self) -> Option<SyntaxToken> {
491        support::token(&self.syntax, SyntaxKind::ALTER_KW)
492    }
493    #[inline]
494    pub fn constraint_token(&self) -> Option<SyntaxToken> {
495        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
496    }
497}
498
499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
500pub struct AlterConversion {
501    pub(crate) syntax: SyntaxNode,
502}
503impl AlterConversion {
504    #[inline]
505    pub fn owner_to(&self) -> Option<OwnerTo> {
506        support::child(&self.syntax)
507    }
508    #[inline]
509    pub fn path(&self) -> Option<Path> {
510        support::child(&self.syntax)
511    }
512    #[inline]
513    pub fn rename_to(&self) -> Option<RenameTo> {
514        support::child(&self.syntax)
515    }
516    #[inline]
517    pub fn set_schema(&self) -> Option<SetSchema> {
518        support::child(&self.syntax)
519    }
520    #[inline]
521    pub fn alter_token(&self) -> Option<SyntaxToken> {
522        support::token(&self.syntax, SyntaxKind::ALTER_KW)
523    }
524    #[inline]
525    pub fn conversion_token(&self) -> Option<SyntaxToken> {
526        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
527    }
528}
529
530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
531pub struct AlterDatabase {
532    pub(crate) syntax: SyntaxNode,
533}
534impl AlterDatabase {
535    #[inline]
536    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
537        support::child(&self.syntax)
538    }
539    #[inline]
540    pub fn name_ref(&self) -> Option<NameRef> {
541        support::child(&self.syntax)
542    }
543    #[inline]
544    pub fn owner_to(&self) -> Option<OwnerTo> {
545        support::child(&self.syntax)
546    }
547    #[inline]
548    pub fn refresh_collation_version(&self) -> Option<RefreshCollationVersion> {
549        support::child(&self.syntax)
550    }
551    #[inline]
552    pub fn rename_to(&self) -> Option<RenameTo> {
553        support::child(&self.syntax)
554    }
555    #[inline]
556    pub fn reset_config_param(&self) -> Option<ResetConfigParam> {
557        support::child(&self.syntax)
558    }
559    #[inline]
560    pub fn set_config_param(&self) -> Option<SetConfigParam> {
561        support::child(&self.syntax)
562    }
563    #[inline]
564    pub fn set_tablespace(&self) -> Option<SetTablespace> {
565        support::child(&self.syntax)
566    }
567    #[inline]
568    pub fn alter_token(&self) -> Option<SyntaxToken> {
569        support::token(&self.syntax, SyntaxKind::ALTER_KW)
570    }
571    #[inline]
572    pub fn database_token(&self) -> Option<SyntaxToken> {
573        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
574    }
575}
576
577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
578pub struct AlterDefaultPrivileges {
579    pub(crate) syntax: SyntaxNode,
580}
581impl AlterDefaultPrivileges {
582    #[inline]
583    pub fn grant_default_privileges(&self) -> Option<GrantDefaultPrivileges> {
584        support::child(&self.syntax)
585    }
586    #[inline]
587    pub fn name_refs(&self) -> AstChildren<NameRef> {
588        support::children(&self.syntax)
589    }
590    #[inline]
591    pub fn revoke_default_privileges(&self) -> Option<RevokeDefaultPrivileges> {
592        support::child(&self.syntax)
593    }
594    #[inline]
595    pub fn role_ref_list(&self) -> Option<RoleRefList> {
596        support::child(&self.syntax)
597    }
598    #[inline]
599    pub fn alter_token(&self) -> Option<SyntaxToken> {
600        support::token(&self.syntax, SyntaxKind::ALTER_KW)
601    }
602    #[inline]
603    pub fn default_token(&self) -> Option<SyntaxToken> {
604        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
605    }
606    #[inline]
607    pub fn for_token(&self) -> Option<SyntaxToken> {
608        support::token(&self.syntax, SyntaxKind::FOR_KW)
609    }
610    #[inline]
611    pub fn in_token(&self) -> Option<SyntaxToken> {
612        support::token(&self.syntax, SyntaxKind::IN_KW)
613    }
614    #[inline]
615    pub fn privileges_token(&self) -> Option<SyntaxToken> {
616        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
617    }
618    #[inline]
619    pub fn role_token(&self) -> Option<SyntaxToken> {
620        support::token(&self.syntax, SyntaxKind::ROLE_KW)
621    }
622    #[inline]
623    pub fn schema_token(&self) -> Option<SyntaxToken> {
624        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
625    }
626    #[inline]
627    pub fn user_token(&self) -> Option<SyntaxToken> {
628        support::token(&self.syntax, SyntaxKind::USER_KW)
629    }
630}
631
632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
633pub struct AlterDomain {
634    pub(crate) syntax: SyntaxNode,
635}
636impl AlterDomain {
637    #[inline]
638    pub fn action(&self) -> Option<AlterDomainAction> {
639        support::child(&self.syntax)
640    }
641    #[inline]
642    pub fn path(&self) -> Option<Path> {
643        support::child(&self.syntax)
644    }
645    #[inline]
646    pub fn alter_token(&self) -> Option<SyntaxToken> {
647        support::token(&self.syntax, SyntaxKind::ALTER_KW)
648    }
649    #[inline]
650    pub fn domain_token(&self) -> Option<SyntaxToken> {
651        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
652    }
653}
654
655#[derive(Debug, Clone, PartialEq, Eq, Hash)]
656pub struct AlterEventTrigger {
657    pub(crate) syntax: SyntaxNode,
658}
659impl AlterEventTrigger {
660    #[inline]
661    pub fn name_ref(&self) -> Option<NameRef> {
662        support::child(&self.syntax)
663    }
664    #[inline]
665    pub fn owner_to(&self) -> Option<OwnerTo> {
666        support::child(&self.syntax)
667    }
668    #[inline]
669    pub fn rename_to(&self) -> Option<RenameTo> {
670        support::child(&self.syntax)
671    }
672    #[inline]
673    pub fn alter_token(&self) -> Option<SyntaxToken> {
674        support::token(&self.syntax, SyntaxKind::ALTER_KW)
675    }
676    #[inline]
677    pub fn always_token(&self) -> Option<SyntaxToken> {
678        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
679    }
680    #[inline]
681    pub fn disable_token(&self) -> Option<SyntaxToken> {
682        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
683    }
684    #[inline]
685    pub fn enable_token(&self) -> Option<SyntaxToken> {
686        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
687    }
688    #[inline]
689    pub fn event_token(&self) -> Option<SyntaxToken> {
690        support::token(&self.syntax, SyntaxKind::EVENT_KW)
691    }
692    #[inline]
693    pub fn replica_token(&self) -> Option<SyntaxToken> {
694        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
695    }
696    #[inline]
697    pub fn trigger_token(&self) -> Option<SyntaxToken> {
698        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
699    }
700}
701
702#[derive(Debug, Clone, PartialEq, Eq, Hash)]
703pub struct AlterExtension {
704    pub(crate) syntax: SyntaxNode,
705}
706impl AlterExtension {
707    #[inline]
708    pub fn name_ref(&self) -> Option<NameRef> {
709        support::child(&self.syntax)
710    }
711    #[inline]
712    pub fn alter_token(&self) -> Option<SyntaxToken> {
713        support::token(&self.syntax, SyntaxKind::ALTER_KW)
714    }
715    #[inline]
716    pub fn extension_token(&self) -> Option<SyntaxToken> {
717        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
718    }
719}
720
721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
722pub struct AlterForeignDataWrapper {
723    pub(crate) syntax: SyntaxNode,
724}
725impl AlterForeignDataWrapper {
726    #[inline]
727    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
728        support::child(&self.syntax)
729    }
730    #[inline]
731    pub fn name_ref(&self) -> Option<NameRef> {
732        support::child(&self.syntax)
733    }
734    #[inline]
735    pub fn owner_to(&self) -> Option<OwnerTo> {
736        support::child(&self.syntax)
737    }
738    #[inline]
739    pub fn rename_to(&self) -> Option<RenameTo> {
740        support::child(&self.syntax)
741    }
742    #[inline]
743    pub fn alter_token(&self) -> Option<SyntaxToken> {
744        support::token(&self.syntax, SyntaxKind::ALTER_KW)
745    }
746    #[inline]
747    pub fn data_token(&self) -> Option<SyntaxToken> {
748        support::token(&self.syntax, SyntaxKind::DATA_KW)
749    }
750    #[inline]
751    pub fn foreign_token(&self) -> Option<SyntaxToken> {
752        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
753    }
754    #[inline]
755    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
756        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
757    }
758}
759
760#[derive(Debug, Clone, PartialEq, Eq, Hash)]
761pub struct AlterForeignTable {
762    pub(crate) syntax: SyntaxNode,
763}
764impl AlterForeignTable {
765    #[inline]
766    pub fn alter_table_actions(&self) -> AstChildren<AlterTableAction> {
767        support::children(&self.syntax)
768    }
769    #[inline]
770    pub fn if_exists(&self) -> Option<IfExists> {
771        support::child(&self.syntax)
772    }
773    #[inline]
774    pub fn relation_name(&self) -> Option<RelationName> {
775        support::child(&self.syntax)
776    }
777    #[inline]
778    pub fn rename_column(&self) -> Option<RenameColumn> {
779        support::child(&self.syntax)
780    }
781    #[inline]
782    pub fn rename_to(&self) -> Option<RenameTo> {
783        support::child(&self.syntax)
784    }
785    #[inline]
786    pub fn set_schema(&self) -> Option<SetSchema> {
787        support::child(&self.syntax)
788    }
789    #[inline]
790    pub fn alter_token(&self) -> Option<SyntaxToken> {
791        support::token(&self.syntax, SyntaxKind::ALTER_KW)
792    }
793    #[inline]
794    pub fn foreign_token(&self) -> Option<SyntaxToken> {
795        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
796    }
797    #[inline]
798    pub fn table_token(&self) -> Option<SyntaxToken> {
799        support::token(&self.syntax, SyntaxKind::TABLE_KW)
800    }
801}
802
803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
804pub struct AlterFunction {
805    pub(crate) syntax: SyntaxNode,
806}
807impl AlterFunction {
808    #[inline]
809    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
810        support::child(&self.syntax)
811    }
812    #[inline]
813    pub fn func_option_list(&self) -> Option<FuncOptionList> {
814        support::child(&self.syntax)
815    }
816    #[inline]
817    pub fn function_sig(&self) -> Option<FunctionSig> {
818        support::child(&self.syntax)
819    }
820    #[inline]
821    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
822        support::child(&self.syntax)
823    }
824    #[inline]
825    pub fn owner_to(&self) -> Option<OwnerTo> {
826        support::child(&self.syntax)
827    }
828    #[inline]
829    pub fn rename_to(&self) -> Option<RenameTo> {
830        support::child(&self.syntax)
831    }
832    #[inline]
833    pub fn set_schema(&self) -> Option<SetSchema> {
834        support::child(&self.syntax)
835    }
836    #[inline]
837    pub fn alter_token(&self) -> Option<SyntaxToken> {
838        support::token(&self.syntax, SyntaxKind::ALTER_KW)
839    }
840    #[inline]
841    pub fn function_token(&self) -> Option<SyntaxToken> {
842        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
843    }
844    #[inline]
845    pub fn restrict_token(&self) -> Option<SyntaxToken> {
846        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
847    }
848}
849
850#[derive(Debug, Clone, PartialEq, Eq, Hash)]
851pub struct AlterGroup {
852    pub(crate) syntax: SyntaxNode,
853}
854impl AlterGroup {
855    #[inline]
856    pub fn name_refs(&self) -> AstChildren<NameRef> {
857        support::children(&self.syntax)
858    }
859    #[inline]
860    pub fn rename_to(&self) -> Option<RenameTo> {
861        support::child(&self.syntax)
862    }
863    #[inline]
864    pub fn role_ref(&self) -> Option<RoleRef> {
865        support::child(&self.syntax)
866    }
867    #[inline]
868    pub fn add_token(&self) -> Option<SyntaxToken> {
869        support::token(&self.syntax, SyntaxKind::ADD_KW)
870    }
871    #[inline]
872    pub fn alter_token(&self) -> Option<SyntaxToken> {
873        support::token(&self.syntax, SyntaxKind::ALTER_KW)
874    }
875    #[inline]
876    pub fn drop_token(&self) -> Option<SyntaxToken> {
877        support::token(&self.syntax, SyntaxKind::DROP_KW)
878    }
879    #[inline]
880    pub fn group_token(&self) -> Option<SyntaxToken> {
881        support::token(&self.syntax, SyntaxKind::GROUP_KW)
882    }
883    #[inline]
884    pub fn user_token(&self) -> Option<SyntaxToken> {
885        support::token(&self.syntax, SyntaxKind::USER_KW)
886    }
887}
888
889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
890pub struct AlterIndex {
891    pub(crate) syntax: SyntaxNode,
892}
893impl AlterIndex {
894    #[inline]
895    pub fn alter_index_action(&self) -> Option<AlterIndexAction> {
896        support::child(&self.syntax)
897    }
898    #[inline]
899    pub fn if_exists(&self) -> Option<IfExists> {
900        support::child(&self.syntax)
901    }
902    #[inline]
903    pub fn name_ref(&self) -> Option<NameRef> {
904        support::child(&self.syntax)
905    }
906    #[inline]
907    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
908        support::child(&self.syntax)
909    }
910    #[inline]
911    pub fn path(&self) -> Option<Path> {
912        support::child(&self.syntax)
913    }
914    #[inline]
915    pub fn all_token(&self) -> Option<SyntaxToken> {
916        support::token(&self.syntax, SyntaxKind::ALL_KW)
917    }
918    #[inline]
919    pub fn alter_token(&self) -> Option<SyntaxToken> {
920        support::token(&self.syntax, SyntaxKind::ALTER_KW)
921    }
922    #[inline]
923    pub fn in_token(&self) -> Option<SyntaxToken> {
924        support::token(&self.syntax, SyntaxKind::IN_KW)
925    }
926    #[inline]
927    pub fn index_token(&self) -> Option<SyntaxToken> {
928        support::token(&self.syntax, SyntaxKind::INDEX_KW)
929    }
930    #[inline]
931    pub fn nowait_token(&self) -> Option<SyntaxToken> {
932        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
933    }
934    #[inline]
935    pub fn set_token(&self) -> Option<SyntaxToken> {
936        support::token(&self.syntax, SyntaxKind::SET_KW)
937    }
938    #[inline]
939    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
940        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
941    }
942}
943
944#[derive(Debug, Clone, PartialEq, Eq, Hash)]
945pub struct AlterLanguage {
946    pub(crate) syntax: SyntaxNode,
947}
948impl AlterLanguage {
949    #[inline]
950    pub fn name_ref(&self) -> Option<NameRef> {
951        support::child(&self.syntax)
952    }
953    #[inline]
954    pub fn owner_to(&self) -> Option<OwnerTo> {
955        support::child(&self.syntax)
956    }
957    #[inline]
958    pub fn rename_to(&self) -> Option<RenameTo> {
959        support::child(&self.syntax)
960    }
961    #[inline]
962    pub fn alter_token(&self) -> Option<SyntaxToken> {
963        support::token(&self.syntax, SyntaxKind::ALTER_KW)
964    }
965    #[inline]
966    pub fn language_token(&self) -> Option<SyntaxToken> {
967        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
968    }
969}
970
971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
972pub struct AlterLargeObject {
973    pub(crate) syntax: SyntaxNode,
974}
975impl AlterLargeObject {
976    #[inline]
977    pub fn alter_token(&self) -> Option<SyntaxToken> {
978        support::token(&self.syntax, SyntaxKind::ALTER_KW)
979    }
980    #[inline]
981    pub fn large_token(&self) -> Option<SyntaxToken> {
982        support::token(&self.syntax, SyntaxKind::LARGE_KW)
983    }
984    #[inline]
985    pub fn object_token(&self) -> Option<SyntaxToken> {
986        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
987    }
988}
989
990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
991pub struct AlterMaterializedView {
992    pub(crate) syntax: SyntaxNode,
993}
994impl AlterMaterializedView {
995    #[inline]
996    pub fn action(&self) -> AstChildren<AlterMaterializedViewAction> {
997        support::children(&self.syntax)
998    }
999    #[inline]
1000    pub fn if_exists(&self) -> Option<IfExists> {
1001        support::child(&self.syntax)
1002    }
1003    #[inline]
1004    pub fn name(&self) -> Option<Name> {
1005        support::child(&self.syntax)
1006    }
1007    #[inline]
1008    pub fn name_ref(&self) -> Option<NameRef> {
1009        support::child(&self.syntax)
1010    }
1011    #[inline]
1012    pub fn owned_by_roles(&self) -> Option<OwnedByRoles> {
1013        support::child(&self.syntax)
1014    }
1015    #[inline]
1016    pub fn path(&self) -> Option<Path> {
1017        support::child(&self.syntax)
1018    }
1019    #[inline]
1020    pub fn all_token(&self) -> Option<SyntaxToken> {
1021        support::token(&self.syntax, SyntaxKind::ALL_KW)
1022    }
1023    #[inline]
1024    pub fn alter_token(&self) -> Option<SyntaxToken> {
1025        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1026    }
1027    #[inline]
1028    pub fn in_token(&self) -> Option<SyntaxToken> {
1029        support::token(&self.syntax, SyntaxKind::IN_KW)
1030    }
1031    #[inline]
1032    pub fn materialized_token(&self) -> Option<SyntaxToken> {
1033        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
1034    }
1035    #[inline]
1036    pub fn nowait_token(&self) -> Option<SyntaxToken> {
1037        support::token(&self.syntax, SyntaxKind::NOWAIT_KW)
1038    }
1039    #[inline]
1040    pub fn set_token(&self) -> Option<SyntaxToken> {
1041        support::token(&self.syntax, SyntaxKind::SET_KW)
1042    }
1043    #[inline]
1044    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1045        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1046    }
1047    #[inline]
1048    pub fn view_token(&self) -> Option<SyntaxToken> {
1049        support::token(&self.syntax, SyntaxKind::VIEW_KW)
1050    }
1051}
1052
1053#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1054pub struct AlterOperator {
1055    pub(crate) syntax: SyntaxNode,
1056}
1057impl AlterOperator {
1058    #[inline]
1059    pub fn op_sig(&self) -> Option<OpSig> {
1060        support::child(&self.syntax)
1061    }
1062    #[inline]
1063    pub fn owner_to(&self) -> Option<OwnerTo> {
1064        support::child(&self.syntax)
1065    }
1066    #[inline]
1067    pub fn set_options(&self) -> Option<SetOptions> {
1068        support::child(&self.syntax)
1069    }
1070    #[inline]
1071    pub fn set_schema(&self) -> Option<SetSchema> {
1072        support::child(&self.syntax)
1073    }
1074    #[inline]
1075    pub fn alter_token(&self) -> Option<SyntaxToken> {
1076        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1077    }
1078    #[inline]
1079    pub fn operator_token(&self) -> Option<SyntaxToken> {
1080        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1081    }
1082}
1083
1084#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1085pub struct AlterOperatorClass {
1086    pub(crate) syntax: SyntaxNode,
1087}
1088impl AlterOperatorClass {
1089    #[inline]
1090    pub fn name_ref(&self) -> Option<NameRef> {
1091        support::child(&self.syntax)
1092    }
1093    #[inline]
1094    pub fn owner_to(&self) -> Option<OwnerTo> {
1095        support::child(&self.syntax)
1096    }
1097    #[inline]
1098    pub fn path(&self) -> Option<Path> {
1099        support::child(&self.syntax)
1100    }
1101    #[inline]
1102    pub fn rename_to(&self) -> Option<RenameTo> {
1103        support::child(&self.syntax)
1104    }
1105    #[inline]
1106    pub fn set_schema(&self) -> Option<SetSchema> {
1107        support::child(&self.syntax)
1108    }
1109    #[inline]
1110    pub fn alter_token(&self) -> Option<SyntaxToken> {
1111        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1112    }
1113    #[inline]
1114    pub fn class_token(&self) -> Option<SyntaxToken> {
1115        support::token(&self.syntax, SyntaxKind::CLASS_KW)
1116    }
1117    #[inline]
1118    pub fn operator_token(&self) -> Option<SyntaxToken> {
1119        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1120    }
1121    #[inline]
1122    pub fn using_token(&self) -> Option<SyntaxToken> {
1123        support::token(&self.syntax, SyntaxKind::USING_KW)
1124    }
1125}
1126
1127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1128pub struct AlterOperatorFamily {
1129    pub(crate) syntax: SyntaxNode,
1130}
1131impl AlterOperatorFamily {
1132    #[inline]
1133    pub fn add_op_class_options(&self) -> Option<AddOpClassOptions> {
1134        support::child(&self.syntax)
1135    }
1136    #[inline]
1137    pub fn drop_op_class_options(&self) -> Option<DropOpClassOptions> {
1138        support::child(&self.syntax)
1139    }
1140    #[inline]
1141    pub fn name_ref(&self) -> Option<NameRef> {
1142        support::child(&self.syntax)
1143    }
1144    #[inline]
1145    pub fn owner_to(&self) -> Option<OwnerTo> {
1146        support::child(&self.syntax)
1147    }
1148    #[inline]
1149    pub fn path(&self) -> Option<Path> {
1150        support::child(&self.syntax)
1151    }
1152    #[inline]
1153    pub fn rename_to(&self) -> Option<RenameTo> {
1154        support::child(&self.syntax)
1155    }
1156    #[inline]
1157    pub fn set_schema(&self) -> Option<SetSchema> {
1158        support::child(&self.syntax)
1159    }
1160    #[inline]
1161    pub fn alter_token(&self) -> Option<SyntaxToken> {
1162        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1163    }
1164    #[inline]
1165    pub fn family_token(&self) -> Option<SyntaxToken> {
1166        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
1167    }
1168    #[inline]
1169    pub fn operator_token(&self) -> Option<SyntaxToken> {
1170        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
1171    }
1172    #[inline]
1173    pub fn using_token(&self) -> Option<SyntaxToken> {
1174        support::token(&self.syntax, SyntaxKind::USING_KW)
1175    }
1176}
1177
1178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1179pub struct AlterOption {
1180    pub(crate) syntax: SyntaxNode,
1181}
1182impl AlterOption {
1183    #[inline]
1184    pub fn literal(&self) -> Option<Literal> {
1185        support::child(&self.syntax)
1186    }
1187    #[inline]
1188    pub fn name_ref(&self) -> Option<NameRef> {
1189        support::child(&self.syntax)
1190    }
1191    #[inline]
1192    pub fn add_token(&self) -> Option<SyntaxToken> {
1193        support::token(&self.syntax, SyntaxKind::ADD_KW)
1194    }
1195    #[inline]
1196    pub fn drop_token(&self) -> Option<SyntaxToken> {
1197        support::token(&self.syntax, SyntaxKind::DROP_KW)
1198    }
1199    #[inline]
1200    pub fn set_token(&self) -> Option<SyntaxToken> {
1201        support::token(&self.syntax, SyntaxKind::SET_KW)
1202    }
1203}
1204
1205#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1206pub struct AlterOptionList {
1207    pub(crate) syntax: SyntaxNode,
1208}
1209impl AlterOptionList {
1210    #[inline]
1211    pub fn alter_options(&self) -> AstChildren<AlterOption> {
1212        support::children(&self.syntax)
1213    }
1214}
1215
1216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1217pub struct AlterPolicy {
1218    pub(crate) syntax: SyntaxNode,
1219}
1220impl AlterPolicy {
1221    #[inline]
1222    pub fn name_ref(&self) -> Option<NameRef> {
1223        support::child(&self.syntax)
1224    }
1225    #[inline]
1226    pub fn on_table(&self) -> Option<OnTable> {
1227        support::child(&self.syntax)
1228    }
1229    #[inline]
1230    pub fn rename_to(&self) -> Option<RenameTo> {
1231        support::child(&self.syntax)
1232    }
1233    #[inline]
1234    pub fn role_ref_list(&self) -> Option<RoleRefList> {
1235        support::child(&self.syntax)
1236    }
1237    #[inline]
1238    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
1239        support::child(&self.syntax)
1240    }
1241    #[inline]
1242    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
1243        support::child(&self.syntax)
1244    }
1245    #[inline]
1246    pub fn alter_token(&self) -> Option<SyntaxToken> {
1247        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1248    }
1249    #[inline]
1250    pub fn policy_token(&self) -> Option<SyntaxToken> {
1251        support::token(&self.syntax, SyntaxKind::POLICY_KW)
1252    }
1253    #[inline]
1254    pub fn to_token(&self) -> Option<SyntaxToken> {
1255        support::token(&self.syntax, SyntaxKind::TO_KW)
1256    }
1257}
1258
1259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1260pub struct AlterProcedure {
1261    pub(crate) syntax: SyntaxNode,
1262}
1263impl AlterProcedure {
1264    #[inline]
1265    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1266        support::child(&self.syntax)
1267    }
1268    #[inline]
1269    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1270        support::child(&self.syntax)
1271    }
1272    #[inline]
1273    pub fn function_sig(&self) -> Option<FunctionSig> {
1274        support::child(&self.syntax)
1275    }
1276    #[inline]
1277    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1278        support::child(&self.syntax)
1279    }
1280    #[inline]
1281    pub fn owner_to(&self) -> Option<OwnerTo> {
1282        support::child(&self.syntax)
1283    }
1284    #[inline]
1285    pub fn rename_to(&self) -> Option<RenameTo> {
1286        support::child(&self.syntax)
1287    }
1288    #[inline]
1289    pub fn set_schema(&self) -> Option<SetSchema> {
1290        support::child(&self.syntax)
1291    }
1292    #[inline]
1293    pub fn alter_token(&self) -> Option<SyntaxToken> {
1294        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1295    }
1296    #[inline]
1297    pub fn procedure_token(&self) -> Option<SyntaxToken> {
1298        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
1299    }
1300    #[inline]
1301    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1302        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1303    }
1304}
1305
1306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1307pub struct AlterPropertyGraph {
1308    pub(crate) syntax: SyntaxNode,
1309}
1310impl AlterPropertyGraph {
1311    #[inline]
1312    pub fn alter_property_graph_action(&self) -> Option<AlterPropertyGraphAction> {
1313        support::child(&self.syntax)
1314    }
1315    #[inline]
1316    pub fn if_exists(&self) -> Option<IfExists> {
1317        support::child(&self.syntax)
1318    }
1319    #[inline]
1320    pub fn path(&self) -> Option<Path> {
1321        support::child(&self.syntax)
1322    }
1323    #[inline]
1324    pub fn alter_token(&self) -> Option<SyntaxToken> {
1325        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1326    }
1327    #[inline]
1328    pub fn graph_token(&self) -> Option<SyntaxToken> {
1329        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
1330    }
1331    #[inline]
1332    pub fn property_token(&self) -> Option<SyntaxToken> {
1333        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
1334    }
1335}
1336
1337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1338pub struct AlterPublication {
1339    pub(crate) syntax: SyntaxNode,
1340}
1341impl AlterPublication {
1342    #[inline]
1343    pub fn name_ref(&self) -> Option<NameRef> {
1344        support::child(&self.syntax)
1345    }
1346    #[inline]
1347    pub fn alter_token(&self) -> Option<SyntaxToken> {
1348        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1349    }
1350    #[inline]
1351    pub fn publication_token(&self) -> Option<SyntaxToken> {
1352        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
1353    }
1354}
1355
1356#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1357pub struct AlterRole {
1358    pub(crate) syntax: SyntaxNode,
1359}
1360impl AlterRole {
1361    #[inline]
1362    pub fn role_ref(&self) -> Option<RoleRef> {
1363        support::child(&self.syntax)
1364    }
1365    #[inline]
1366    pub fn alter_token(&self) -> Option<SyntaxToken> {
1367        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1368    }
1369    #[inline]
1370    pub fn role_token(&self) -> Option<SyntaxToken> {
1371        support::token(&self.syntax, SyntaxKind::ROLE_KW)
1372    }
1373}
1374
1375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1376pub struct AlterRoutine {
1377    pub(crate) syntax: SyntaxNode,
1378}
1379impl AlterRoutine {
1380    #[inline]
1381    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1382        support::child(&self.syntax)
1383    }
1384    #[inline]
1385    pub fn func_option_list(&self) -> Option<FuncOptionList> {
1386        support::child(&self.syntax)
1387    }
1388    #[inline]
1389    pub fn function_sig(&self) -> Option<FunctionSig> {
1390        support::child(&self.syntax)
1391    }
1392    #[inline]
1393    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1394        support::child(&self.syntax)
1395    }
1396    #[inline]
1397    pub fn owner_to(&self) -> Option<OwnerTo> {
1398        support::child(&self.syntax)
1399    }
1400    #[inline]
1401    pub fn rename_to(&self) -> Option<RenameTo> {
1402        support::child(&self.syntax)
1403    }
1404    #[inline]
1405    pub fn set_schema(&self) -> Option<SetSchema> {
1406        support::child(&self.syntax)
1407    }
1408    #[inline]
1409    pub fn alter_token(&self) -> Option<SyntaxToken> {
1410        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1411    }
1412    #[inline]
1413    pub fn restrict_token(&self) -> Option<SyntaxToken> {
1414        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
1415    }
1416    #[inline]
1417    pub fn routine_token(&self) -> Option<SyntaxToken> {
1418        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
1419    }
1420}
1421
1422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1423pub struct AlterRule {
1424    pub(crate) syntax: SyntaxNode,
1425}
1426impl AlterRule {
1427    #[inline]
1428    pub fn name_ref(&self) -> Option<NameRef> {
1429        support::child(&self.syntax)
1430    }
1431    #[inline]
1432    pub fn on_table(&self) -> Option<OnTable> {
1433        support::child(&self.syntax)
1434    }
1435    #[inline]
1436    pub fn rename_to(&self) -> Option<RenameTo> {
1437        support::child(&self.syntax)
1438    }
1439    #[inline]
1440    pub fn alter_token(&self) -> Option<SyntaxToken> {
1441        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1442    }
1443    #[inline]
1444    pub fn on_token(&self) -> Option<SyntaxToken> {
1445        support::token(&self.syntax, SyntaxKind::ON_KW)
1446    }
1447    #[inline]
1448    pub fn rule_token(&self) -> Option<SyntaxToken> {
1449        support::token(&self.syntax, SyntaxKind::RULE_KW)
1450    }
1451}
1452
1453#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1454pub struct AlterSchema {
1455    pub(crate) syntax: SyntaxNode,
1456}
1457impl AlterSchema {
1458    #[inline]
1459    pub fn name_ref(&self) -> Option<NameRef> {
1460        support::child(&self.syntax)
1461    }
1462    #[inline]
1463    pub fn owner_to(&self) -> Option<OwnerTo> {
1464        support::child(&self.syntax)
1465    }
1466    #[inline]
1467    pub fn rename_to(&self) -> Option<RenameTo> {
1468        support::child(&self.syntax)
1469    }
1470    #[inline]
1471    pub fn alter_token(&self) -> Option<SyntaxToken> {
1472        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1473    }
1474    #[inline]
1475    pub fn schema_token(&self) -> Option<SyntaxToken> {
1476        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
1477    }
1478}
1479
1480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1481pub struct AlterSequence {
1482    pub(crate) syntax: SyntaxNode,
1483}
1484impl AlterSequence {
1485    #[inline]
1486    pub fn if_exists(&self) -> Option<IfExists> {
1487        support::child(&self.syntax)
1488    }
1489    #[inline]
1490    pub fn path(&self) -> Option<Path> {
1491        support::child(&self.syntax)
1492    }
1493    #[inline]
1494    pub fn alter_token(&self) -> Option<SyntaxToken> {
1495        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1496    }
1497    #[inline]
1498    pub fn sequence_token(&self) -> Option<SyntaxToken> {
1499        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
1500    }
1501}
1502
1503#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1504pub struct AlterServer {
1505    pub(crate) syntax: SyntaxNode,
1506}
1507impl AlterServer {
1508    #[inline]
1509    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1510        support::child(&self.syntax)
1511    }
1512    #[inline]
1513    pub fn name_ref(&self) -> Option<NameRef> {
1514        support::child(&self.syntax)
1515    }
1516    #[inline]
1517    pub fn alter_token(&self) -> Option<SyntaxToken> {
1518        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1519    }
1520    #[inline]
1521    pub fn server_token(&self) -> Option<SyntaxToken> {
1522        support::token(&self.syntax, SyntaxKind::SERVER_KW)
1523    }
1524}
1525
1526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1527pub struct AlterSetStatistics {
1528    pub(crate) syntax: SyntaxNode,
1529}
1530impl AlterSetStatistics {
1531    #[inline]
1532    pub fn literal(&self) -> Option<Literal> {
1533        support::child(&self.syntax)
1534    }
1535    #[inline]
1536    pub fn name_ref(&self) -> Option<NameRef> {
1537        support::child(&self.syntax)
1538    }
1539    #[inline]
1540    pub fn column_token(&self) -> Option<SyntaxToken> {
1541        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
1542    }
1543    #[inline]
1544    pub fn set_token(&self) -> Option<SyntaxToken> {
1545        support::token(&self.syntax, SyntaxKind::SET_KW)
1546    }
1547    #[inline]
1548    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1549        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1550    }
1551}
1552
1553#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1554pub struct AlterStatistics {
1555    pub(crate) syntax: SyntaxNode,
1556}
1557impl AlterStatistics {
1558    #[inline]
1559    pub fn path(&self) -> Option<Path> {
1560        support::child(&self.syntax)
1561    }
1562    #[inline]
1563    pub fn alter_token(&self) -> Option<SyntaxToken> {
1564        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1565    }
1566    #[inline]
1567    pub fn statistics_token(&self) -> Option<SyntaxToken> {
1568        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
1569    }
1570}
1571
1572#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1573pub struct AlterSubscription {
1574    pub(crate) syntax: SyntaxNode,
1575}
1576impl AlterSubscription {
1577    #[inline]
1578    pub fn name_ref(&self) -> Option<NameRef> {
1579        support::child(&self.syntax)
1580    }
1581    #[inline]
1582    pub fn alter_token(&self) -> Option<SyntaxToken> {
1583        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1584    }
1585    #[inline]
1586    pub fn subscription_token(&self) -> Option<SyntaxToken> {
1587        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
1588    }
1589}
1590
1591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1592pub struct AlterSystem {
1593    pub(crate) syntax: SyntaxNode,
1594}
1595impl AlterSystem {
1596    #[inline]
1597    pub fn alter_token(&self) -> Option<SyntaxToken> {
1598        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1599    }
1600    #[inline]
1601    pub fn set_token(&self) -> Option<SyntaxToken> {
1602        support::token(&self.syntax, SyntaxKind::SET_KW)
1603    }
1604    #[inline]
1605    pub fn system_token(&self) -> Option<SyntaxToken> {
1606        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
1607    }
1608}
1609
1610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1611pub struct AlterTable {
1612    pub(crate) syntax: SyntaxNode,
1613}
1614impl AlterTable {
1615    #[inline]
1616    pub fn actions(&self) -> AstChildren<AlterTableAction> {
1617        support::children(&self.syntax)
1618    }
1619    #[inline]
1620    pub fn relation_name(&self) -> Option<RelationName> {
1621        support::child(&self.syntax)
1622    }
1623    #[inline]
1624    pub fn alter_token(&self) -> Option<SyntaxToken> {
1625        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1626    }
1627    #[inline]
1628    pub fn table_token(&self) -> Option<SyntaxToken> {
1629        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1630    }
1631}
1632
1633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1634pub struct AlterTablespace {
1635    pub(crate) syntax: SyntaxNode,
1636}
1637impl AlterTablespace {
1638    #[inline]
1639    pub fn owner_to(&self) -> Option<OwnerTo> {
1640        support::child(&self.syntax)
1641    }
1642    #[inline]
1643    pub fn path(&self) -> Option<Path> {
1644        support::child(&self.syntax)
1645    }
1646    #[inline]
1647    pub fn rename_to(&self) -> Option<RenameTo> {
1648        support::child(&self.syntax)
1649    }
1650    #[inline]
1651    pub fn reset_options(&self) -> Option<ResetOptions> {
1652        support::child(&self.syntax)
1653    }
1654    #[inline]
1655    pub fn set_options(&self) -> Option<SetOptions> {
1656        support::child(&self.syntax)
1657    }
1658    #[inline]
1659    pub fn alter_token(&self) -> Option<SyntaxToken> {
1660        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1661    }
1662    #[inline]
1663    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
1664        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
1665    }
1666}
1667
1668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1669pub struct AlterTextSearchConfiguration {
1670    pub(crate) syntax: SyntaxNode,
1671}
1672impl AlterTextSearchConfiguration {
1673    #[inline]
1674    pub fn owner_to(&self) -> Option<OwnerTo> {
1675        support::child(&self.syntax)
1676    }
1677    #[inline]
1678    pub fn path(&self) -> Option<Path> {
1679        support::child(&self.syntax)
1680    }
1681    #[inline]
1682    pub fn rename_to(&self) -> Option<RenameTo> {
1683        support::child(&self.syntax)
1684    }
1685    #[inline]
1686    pub fn set_schema(&self) -> Option<SetSchema> {
1687        support::child(&self.syntax)
1688    }
1689    #[inline]
1690    pub fn alter_token(&self) -> Option<SyntaxToken> {
1691        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1692    }
1693    #[inline]
1694    pub fn configuration_token(&self) -> Option<SyntaxToken> {
1695        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
1696    }
1697    #[inline]
1698    pub fn search_token(&self) -> Option<SyntaxToken> {
1699        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1700    }
1701    #[inline]
1702    pub fn text_token(&self) -> Option<SyntaxToken> {
1703        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1704    }
1705}
1706
1707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1708pub struct AlterTextSearchDictionary {
1709    pub(crate) syntax: SyntaxNode,
1710}
1711impl AlterTextSearchDictionary {
1712    #[inline]
1713    pub fn attribute_list(&self) -> Option<AttributeList> {
1714        support::child(&self.syntax)
1715    }
1716    #[inline]
1717    pub fn owner_to(&self) -> Option<OwnerTo> {
1718        support::child(&self.syntax)
1719    }
1720    #[inline]
1721    pub fn path(&self) -> Option<Path> {
1722        support::child(&self.syntax)
1723    }
1724    #[inline]
1725    pub fn rename_to(&self) -> Option<RenameTo> {
1726        support::child(&self.syntax)
1727    }
1728    #[inline]
1729    pub fn set_schema(&self) -> Option<SetSchema> {
1730        support::child(&self.syntax)
1731    }
1732    #[inline]
1733    pub fn alter_token(&self) -> Option<SyntaxToken> {
1734        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1735    }
1736    #[inline]
1737    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
1738        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
1739    }
1740    #[inline]
1741    pub fn search_token(&self) -> Option<SyntaxToken> {
1742        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1743    }
1744    #[inline]
1745    pub fn text_token(&self) -> Option<SyntaxToken> {
1746        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1747    }
1748}
1749
1750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1751pub struct AlterTextSearchParser {
1752    pub(crate) syntax: SyntaxNode,
1753}
1754impl AlterTextSearchParser {
1755    #[inline]
1756    pub fn path(&self) -> Option<Path> {
1757        support::child(&self.syntax)
1758    }
1759    #[inline]
1760    pub fn rename_to(&self) -> Option<RenameTo> {
1761        support::child(&self.syntax)
1762    }
1763    #[inline]
1764    pub fn set_schema(&self) -> Option<SetSchema> {
1765        support::child(&self.syntax)
1766    }
1767    #[inline]
1768    pub fn alter_token(&self) -> Option<SyntaxToken> {
1769        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1770    }
1771    #[inline]
1772    pub fn parser_token(&self) -> Option<SyntaxToken> {
1773        support::token(&self.syntax, SyntaxKind::PARSER_KW)
1774    }
1775    #[inline]
1776    pub fn search_token(&self) -> Option<SyntaxToken> {
1777        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1778    }
1779    #[inline]
1780    pub fn text_token(&self) -> Option<SyntaxToken> {
1781        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1782    }
1783}
1784
1785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1786pub struct AlterTextSearchTemplate {
1787    pub(crate) syntax: SyntaxNode,
1788}
1789impl AlterTextSearchTemplate {
1790    #[inline]
1791    pub fn path(&self) -> Option<Path> {
1792        support::child(&self.syntax)
1793    }
1794    #[inline]
1795    pub fn rename_to(&self) -> Option<RenameTo> {
1796        support::child(&self.syntax)
1797    }
1798    #[inline]
1799    pub fn set_schema(&self) -> Option<SetSchema> {
1800        support::child(&self.syntax)
1801    }
1802    #[inline]
1803    pub fn alter_token(&self) -> Option<SyntaxToken> {
1804        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1805    }
1806    #[inline]
1807    pub fn search_token(&self) -> Option<SyntaxToken> {
1808        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
1809    }
1810    #[inline]
1811    pub fn template_token(&self) -> Option<SyntaxToken> {
1812        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
1813    }
1814    #[inline]
1815    pub fn text_token(&self) -> Option<SyntaxToken> {
1816        support::token(&self.syntax, SyntaxKind::TEXT_KW)
1817    }
1818}
1819
1820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1821pub struct AlterTrigger {
1822    pub(crate) syntax: SyntaxNode,
1823}
1824impl AlterTrigger {
1825    #[inline]
1826    pub fn depends_on_extension(&self) -> Option<DependsOnExtension> {
1827        support::child(&self.syntax)
1828    }
1829    #[inline]
1830    pub fn name_ref(&self) -> Option<NameRef> {
1831        support::child(&self.syntax)
1832    }
1833    #[inline]
1834    pub fn no_depends_on_extension(&self) -> Option<NoDependsOnExtension> {
1835        support::child(&self.syntax)
1836    }
1837    #[inline]
1838    pub fn on_table(&self) -> Option<OnTable> {
1839        support::child(&self.syntax)
1840    }
1841    #[inline]
1842    pub fn rename_to(&self) -> Option<RenameTo> {
1843        support::child(&self.syntax)
1844    }
1845    #[inline]
1846    pub fn alter_token(&self) -> Option<SyntaxToken> {
1847        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1848    }
1849    #[inline]
1850    pub fn trigger_token(&self) -> Option<SyntaxToken> {
1851        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
1852    }
1853}
1854
1855#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1856pub struct AlterType {
1857    pub(crate) syntax: SyntaxNode,
1858}
1859impl AlterType {
1860    #[inline]
1861    pub fn add_value(&self) -> Option<AddValue> {
1862        support::child(&self.syntax)
1863    }
1864    #[inline]
1865    pub fn alter_type_actions(&self) -> AstChildren<AlterTypeAction> {
1866        support::children(&self.syntax)
1867    }
1868    #[inline]
1869    pub fn owner_to(&self) -> Option<OwnerTo> {
1870        support::child(&self.syntax)
1871    }
1872    #[inline]
1873    pub fn path(&self) -> Option<Path> {
1874        support::child(&self.syntax)
1875    }
1876    #[inline]
1877    pub fn rename_attribute(&self) -> Option<RenameAttribute> {
1878        support::child(&self.syntax)
1879    }
1880    #[inline]
1881    pub fn rename_to(&self) -> Option<RenameTo> {
1882        support::child(&self.syntax)
1883    }
1884    #[inline]
1885    pub fn rename_value(&self) -> Option<RenameValue> {
1886        support::child(&self.syntax)
1887    }
1888    #[inline]
1889    pub fn set_options(&self) -> Option<SetOptions> {
1890        support::child(&self.syntax)
1891    }
1892    #[inline]
1893    pub fn set_schema(&self) -> Option<SetSchema> {
1894        support::child(&self.syntax)
1895    }
1896    #[inline]
1897    pub fn alter_token(&self) -> Option<SyntaxToken> {
1898        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1899    }
1900    #[inline]
1901    pub fn type_token(&self) -> Option<SyntaxToken> {
1902        support::token(&self.syntax, SyntaxKind::TYPE_KW)
1903    }
1904}
1905
1906#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1907pub struct AlterUser {
1908    pub(crate) syntax: SyntaxNode,
1909}
1910impl AlterUser {
1911    #[inline]
1912    pub fn role_ref(&self) -> Option<RoleRef> {
1913        support::child(&self.syntax)
1914    }
1915    #[inline]
1916    pub fn alter_token(&self) -> Option<SyntaxToken> {
1917        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1918    }
1919    #[inline]
1920    pub fn user_token(&self) -> Option<SyntaxToken> {
1921        support::token(&self.syntax, SyntaxKind::USER_KW)
1922    }
1923}
1924
1925#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1926pub struct AlterUserMapping {
1927    pub(crate) syntax: SyntaxNode,
1928}
1929impl AlterUserMapping {
1930    #[inline]
1931    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
1932        support::child(&self.syntax)
1933    }
1934    #[inline]
1935    pub fn role_ref(&self) -> Option<RoleRef> {
1936        support::child(&self.syntax)
1937    }
1938    #[inline]
1939    pub fn server_name(&self) -> Option<ServerName> {
1940        support::child(&self.syntax)
1941    }
1942    #[inline]
1943    pub fn alter_token(&self) -> Option<SyntaxToken> {
1944        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1945    }
1946    #[inline]
1947    pub fn for_token(&self) -> Option<SyntaxToken> {
1948        support::token(&self.syntax, SyntaxKind::FOR_KW)
1949    }
1950    #[inline]
1951    pub fn mapping_token(&self) -> Option<SyntaxToken> {
1952        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
1953    }
1954    #[inline]
1955    pub fn user_token(&self) -> Option<SyntaxToken> {
1956        support::token(&self.syntax, SyntaxKind::USER_KW)
1957    }
1958}
1959
1960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
1961pub struct AlterVertexEdgeLabels {
1962    pub(crate) syntax: SyntaxNode,
1963}
1964impl AlterVertexEdgeLabels {
1965    #[inline]
1966    pub fn add_label(&self) -> Option<AddLabel> {
1967        support::child(&self.syntax)
1968    }
1969    #[inline]
1970    pub fn add_labels(&self) -> AstChildren<AddLabel> {
1971        support::children(&self.syntax)
1972    }
1973    #[inline]
1974    pub fn name(&self) -> Option<Name> {
1975        support::child(&self.syntax)
1976    }
1977    #[inline]
1978    pub fn alter_token(&self) -> Option<SyntaxToken> {
1979        support::token(&self.syntax, SyntaxKind::ALTER_KW)
1980    }
1981    #[inline]
1982    pub fn edge_token(&self) -> Option<SyntaxToken> {
1983        support::token(&self.syntax, SyntaxKind::EDGE_KW)
1984    }
1985    #[inline]
1986    pub fn node_token(&self) -> Option<SyntaxToken> {
1987        support::token(&self.syntax, SyntaxKind::NODE_KW)
1988    }
1989    #[inline]
1990    pub fn relationship_token(&self) -> Option<SyntaxToken> {
1991        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
1992    }
1993    #[inline]
1994    pub fn table_token(&self) -> Option<SyntaxToken> {
1995        support::token(&self.syntax, SyntaxKind::TABLE_KW)
1996    }
1997    #[inline]
1998    pub fn vertex_token(&self) -> Option<SyntaxToken> {
1999        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
2000    }
2001}
2002
2003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2004pub struct AlterView {
2005    pub(crate) syntax: SyntaxNode,
2006}
2007impl AlterView {
2008    #[inline]
2009    pub fn path(&self) -> Option<Path> {
2010        support::child(&self.syntax)
2011    }
2012    #[inline]
2013    pub fn alter_token(&self) -> Option<SyntaxToken> {
2014        support::token(&self.syntax, SyntaxKind::ALTER_KW)
2015    }
2016    #[inline]
2017    pub fn view_token(&self) -> Option<SyntaxToken> {
2018        support::token(&self.syntax, SyntaxKind::VIEW_KW)
2019    }
2020}
2021
2022#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2023pub struct Analyze {
2024    pub(crate) syntax: SyntaxNode,
2025}
2026impl Analyze {
2027    #[inline]
2028    pub fn option_item_list(&self) -> Option<OptionItemList> {
2029        support::child(&self.syntax)
2030    }
2031    #[inline]
2032    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
2033        support::child(&self.syntax)
2034    }
2035    #[inline]
2036    pub fn analyse_token(&self) -> Option<SyntaxToken> {
2037        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
2038    }
2039    #[inline]
2040    pub fn analyze_token(&self) -> Option<SyntaxToken> {
2041        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
2042    }
2043    #[inline]
2044    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2045        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2046    }
2047}
2048
2049#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2050pub struct AnyFn {
2051    pub(crate) syntax: SyntaxNode,
2052}
2053impl AnyFn {
2054    #[inline]
2055    pub fn expr(&self) -> Option<Expr> {
2056        support::child(&self.syntax)
2057    }
2058    #[inline]
2059    pub fn select_variant(&self) -> Option<SelectVariant> {
2060        support::child(&self.syntax)
2061    }
2062    #[inline]
2063    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2064        support::token(&self.syntax, SyntaxKind::L_PAREN)
2065    }
2066    #[inline]
2067    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2068        support::token(&self.syntax, SyntaxKind::R_PAREN)
2069    }
2070    #[inline]
2071    pub fn any_token(&self) -> Option<SyntaxToken> {
2072        support::token(&self.syntax, SyntaxKind::ANY_KW)
2073    }
2074}
2075
2076#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2077pub struct Arg {
2078    pub(crate) syntax: SyntaxNode,
2079}
2080impl Arg {
2081    #[inline]
2082    pub fn expr(&self) -> Option<Expr> {
2083        support::child(&self.syntax)
2084    }
2085}
2086
2087#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2088pub struct ArgList {
2089    pub(crate) syntax: SyntaxNode,
2090}
2091impl ArgList {
2092    #[inline]
2093    pub fn args(&self) -> AstChildren<Expr> {
2094        support::children(&self.syntax)
2095    }
2096    #[inline]
2097    pub fn args_(&self) -> AstChildren<Arg> {
2098        support::children(&self.syntax)
2099    }
2100    #[inline]
2101    pub fn expr(&self) -> Option<Expr> {
2102        support::child(&self.syntax)
2103    }
2104    #[inline]
2105    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2106        support::token(&self.syntax, SyntaxKind::L_PAREN)
2107    }
2108    #[inline]
2109    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2110        support::token(&self.syntax, SyntaxKind::R_PAREN)
2111    }
2112    #[inline]
2113    pub fn star_token(&self) -> Option<SyntaxToken> {
2114        support::token(&self.syntax, SyntaxKind::STAR)
2115    }
2116    #[inline]
2117    pub fn all_token(&self) -> Option<SyntaxToken> {
2118        support::token(&self.syntax, SyntaxKind::ALL_KW)
2119    }
2120    #[inline]
2121    pub fn distinct_token(&self) -> Option<SyntaxToken> {
2122        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
2123    }
2124    #[inline]
2125    pub fn variadic_token(&self) -> Option<SyntaxToken> {
2126        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
2127    }
2128}
2129
2130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2131pub struct ArrayExpr {
2132    pub(crate) syntax: SyntaxNode,
2133}
2134impl ArrayExpr {
2135    #[inline]
2136    pub fn exprs(&self) -> AstChildren<Expr> {
2137        support::children(&self.syntax)
2138    }
2139    #[inline]
2140    pub fn select(&self) -> Option<Select> {
2141        support::child(&self.syntax)
2142    }
2143    #[inline]
2144    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2145        support::token(&self.syntax, SyntaxKind::L_PAREN)
2146    }
2147    #[inline]
2148    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2149        support::token(&self.syntax, SyntaxKind::R_PAREN)
2150    }
2151    #[inline]
2152    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2153        support::token(&self.syntax, SyntaxKind::L_BRACK)
2154    }
2155    #[inline]
2156    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2157        support::token(&self.syntax, SyntaxKind::R_BRACK)
2158    }
2159    #[inline]
2160    pub fn array_token(&self) -> Option<SyntaxToken> {
2161        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2162    }
2163}
2164
2165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2166pub struct ArrayType {
2167    pub(crate) syntax: SyntaxNode,
2168}
2169impl ArrayType {
2170    #[inline]
2171    pub fn expr(&self) -> Option<Expr> {
2172        support::child(&self.syntax)
2173    }
2174    #[inline]
2175    pub fn name_ref(&self) -> Option<NameRef> {
2176        support::child(&self.syntax)
2177    }
2178    #[inline]
2179    pub fn ty(&self) -> Option<Type> {
2180        support::child(&self.syntax)
2181    }
2182    #[inline]
2183    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
2184        support::token(&self.syntax, SyntaxKind::L_BRACK)
2185    }
2186    #[inline]
2187    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
2188        support::token(&self.syntax, SyntaxKind::R_BRACK)
2189    }
2190    #[inline]
2191    pub fn array_token(&self) -> Option<SyntaxToken> {
2192        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
2193    }
2194}
2195
2196#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2197pub struct AsFuncOption {
2198    pub(crate) syntax: SyntaxNode,
2199}
2200impl AsFuncOption {
2201    #[inline]
2202    pub fn definition(&self) -> Option<Literal> {
2203        support::child(&self.syntax)
2204    }
2205    #[inline]
2206    pub fn link_symbol(&self) -> Option<Literal> {
2207        support::child(&self.syntax)
2208    }
2209    #[inline]
2210    pub fn obj_file(&self) -> Option<Literal> {
2211        support::child(&self.syntax)
2212    }
2213    #[inline]
2214    pub fn comma_token(&self) -> Option<SyntaxToken> {
2215        support::token(&self.syntax, SyntaxKind::COMMA)
2216    }
2217    #[inline]
2218    pub fn as_token(&self) -> Option<SyntaxToken> {
2219        support::token(&self.syntax, SyntaxKind::AS_KW)
2220    }
2221}
2222
2223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2224pub struct AsName {
2225    pub(crate) syntax: SyntaxNode,
2226}
2227impl AsName {
2228    #[inline]
2229    pub fn name(&self) -> Option<Name> {
2230        support::child(&self.syntax)
2231    }
2232    #[inline]
2233    pub fn as_token(&self) -> Option<SyntaxToken> {
2234        support::token(&self.syntax, SyntaxKind::AS_KW)
2235    }
2236}
2237
2238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2239pub struct AsPolicyType {
2240    pub(crate) syntax: SyntaxNode,
2241}
2242impl AsPolicyType {
2243    #[inline]
2244    pub fn as_token(&self) -> Option<SyntaxToken> {
2245        support::token(&self.syntax, SyntaxKind::AS_KW)
2246    }
2247    #[inline]
2248    pub fn ident_token(&self) -> Option<SyntaxToken> {
2249        support::token(&self.syntax, SyntaxKind::IDENT)
2250    }
2251}
2252
2253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2254pub struct AtTimeZone {
2255    pub(crate) syntax: SyntaxNode,
2256}
2257impl AtTimeZone {
2258    #[inline]
2259    pub fn at_token(&self) -> Option<SyntaxToken> {
2260        support::token(&self.syntax, SyntaxKind::AT_KW)
2261    }
2262    #[inline]
2263    pub fn time_token(&self) -> Option<SyntaxToken> {
2264        support::token(&self.syntax, SyntaxKind::TIME_KW)
2265    }
2266    #[inline]
2267    pub fn zone_token(&self) -> Option<SyntaxToken> {
2268        support::token(&self.syntax, SyntaxKind::ZONE_KW)
2269    }
2270}
2271
2272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2273pub struct AttachPartition {
2274    pub(crate) syntax: SyntaxNode,
2275}
2276impl AttachPartition {
2277    #[inline]
2278    pub fn partition_type(&self) -> Option<PartitionType> {
2279        support::child(&self.syntax)
2280    }
2281    #[inline]
2282    pub fn path(&self) -> Option<Path> {
2283        support::child(&self.syntax)
2284    }
2285    #[inline]
2286    pub fn attach_token(&self) -> Option<SyntaxToken> {
2287        support::token(&self.syntax, SyntaxKind::ATTACH_KW)
2288    }
2289    #[inline]
2290    pub fn partition_token(&self) -> Option<SyntaxToken> {
2291        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
2292    }
2293}
2294
2295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2296pub struct AttributeList {
2297    pub(crate) syntax: SyntaxNode,
2298}
2299impl AttributeList {
2300    #[inline]
2301    pub fn attribute_options(&self) -> AstChildren<AttributeOption> {
2302        support::children(&self.syntax)
2303    }
2304    #[inline]
2305    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2306        support::token(&self.syntax, SyntaxKind::L_PAREN)
2307    }
2308    #[inline]
2309    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2310        support::token(&self.syntax, SyntaxKind::R_PAREN)
2311    }
2312}
2313
2314#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2315pub struct AttributeOption {
2316    pub(crate) syntax: SyntaxNode,
2317}
2318impl AttributeOption {
2319    #[inline]
2320    pub fn attribute_value(&self) -> Option<AttributeValue> {
2321        support::child(&self.syntax)
2322    }
2323    #[inline]
2324    pub fn name(&self) -> Option<Name> {
2325        support::child(&self.syntax)
2326    }
2327    #[inline]
2328    pub fn dot_token(&self) -> Option<SyntaxToken> {
2329        support::token(&self.syntax, SyntaxKind::DOT)
2330    }
2331    #[inline]
2332    pub fn eq_token(&self) -> Option<SyntaxToken> {
2333        support::token(&self.syntax, SyntaxKind::EQ)
2334    }
2335}
2336
2337#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2338pub struct AttributeValue {
2339    pub(crate) syntax: SyntaxNode,
2340}
2341impl AttributeValue {
2342    #[inline]
2343    pub fn literal(&self) -> Option<Literal> {
2344        support::child(&self.syntax)
2345    }
2346    #[inline]
2347    pub fn op(&self) -> Option<Op> {
2348        support::child(&self.syntax)
2349    }
2350    #[inline]
2351    pub fn ty(&self) -> Option<Type> {
2352        support::child(&self.syntax)
2353    }
2354    #[inline]
2355    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2356        support::token(&self.syntax, SyntaxKind::L_PAREN)
2357    }
2358    #[inline]
2359    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2360        support::token(&self.syntax, SyntaxKind::R_PAREN)
2361    }
2362    #[inline]
2363    pub fn none_token(&self) -> Option<SyntaxToken> {
2364        support::token(&self.syntax, SyntaxKind::NONE_KW)
2365    }
2366    #[inline]
2367    pub fn operator_token(&self) -> Option<SyntaxToken> {
2368        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
2369    }
2370}
2371
2372#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2373pub struct BeforeValue {
2374    pub(crate) syntax: SyntaxNode,
2375}
2376impl BeforeValue {
2377    #[inline]
2378    pub fn literal(&self) -> Option<Literal> {
2379        support::child(&self.syntax)
2380    }
2381    #[inline]
2382    pub fn before_token(&self) -> Option<SyntaxToken> {
2383        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
2384    }
2385}
2386
2387#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2388pub struct Begin {
2389    pub(crate) syntax: SyntaxNode,
2390}
2391impl Begin {
2392    #[inline]
2393    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
2394        support::child(&self.syntax)
2395    }
2396    #[inline]
2397    pub fn begin_token(&self) -> Option<SyntaxToken> {
2398        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2399    }
2400    #[inline]
2401    pub fn start_token(&self) -> Option<SyntaxToken> {
2402        support::token(&self.syntax, SyntaxKind::START_KW)
2403    }
2404    #[inline]
2405    pub fn transaction_token(&self) -> Option<SyntaxToken> {
2406        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
2407    }
2408    #[inline]
2409    pub fn work_token(&self) -> Option<SyntaxToken> {
2410        support::token(&self.syntax, SyntaxKind::WORK_KW)
2411    }
2412}
2413
2414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2415pub struct BeginFuncOption {
2416    pub(crate) syntax: SyntaxNode,
2417}
2418impl BeginFuncOption {
2419    #[inline]
2420    pub fn return_func_option(&self) -> Option<ReturnFuncOption> {
2421        support::child(&self.syntax)
2422    }
2423    #[inline]
2424    pub fn stmt(&self) -> Option<Stmt> {
2425        support::child(&self.syntax)
2426    }
2427    #[inline]
2428    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
2429        support::token(&self.syntax, SyntaxKind::SEMICOLON)
2430    }
2431}
2432
2433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2434pub struct BeginFuncOptionList {
2435    pub(crate) syntax: SyntaxNode,
2436}
2437impl BeginFuncOptionList {
2438    #[inline]
2439    pub fn begin_func_options(&self) -> AstChildren<BeginFuncOption> {
2440        support::children(&self.syntax)
2441    }
2442    #[inline]
2443    pub fn atomic_token(&self) -> Option<SyntaxToken> {
2444        support::token(&self.syntax, SyntaxKind::ATOMIC_KW)
2445    }
2446    #[inline]
2447    pub fn begin_token(&self) -> Option<SyntaxToken> {
2448        support::token(&self.syntax, SyntaxKind::BEGIN_KW)
2449    }
2450    #[inline]
2451    pub fn end_token(&self) -> Option<SyntaxToken> {
2452        support::token(&self.syntax, SyntaxKind::END_KW)
2453    }
2454}
2455
2456#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2457pub struct BetweenExpr {
2458    pub(crate) syntax: SyntaxNode,
2459}
2460impl BetweenExpr {
2461    #[inline]
2462    pub fn and_token(&self) -> Option<SyntaxToken> {
2463        support::token(&self.syntax, SyntaxKind::AND_KW)
2464    }
2465    #[inline]
2466    pub fn between_token(&self) -> Option<SyntaxToken> {
2467        support::token(&self.syntax, SyntaxKind::BETWEEN_KW)
2468    }
2469    #[inline]
2470    pub fn not_token(&self) -> Option<SyntaxToken> {
2471        support::token(&self.syntax, SyntaxKind::NOT_KW)
2472    }
2473    #[inline]
2474    pub fn symmetric_token(&self) -> Option<SyntaxToken> {
2475        support::token(&self.syntax, SyntaxKind::SYMMETRIC_KW)
2476    }
2477}
2478
2479#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2480pub struct BinExpr {
2481    pub(crate) syntax: SyntaxNode,
2482}
2483impl BinExpr {}
2484
2485#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2486pub struct BitType {
2487    pub(crate) syntax: SyntaxNode,
2488}
2489impl BitType {
2490    #[inline]
2491    pub fn arg_list(&self) -> Option<ArgList> {
2492        support::child(&self.syntax)
2493    }
2494    #[inline]
2495    pub fn bit_token(&self) -> Option<SyntaxToken> {
2496        support::token(&self.syntax, SyntaxKind::BIT_KW)
2497    }
2498    #[inline]
2499    pub fn setof_token(&self) -> Option<SyntaxToken> {
2500        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2501    }
2502    #[inline]
2503    pub fn varying_token(&self) -> Option<SyntaxToken> {
2504        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2505    }
2506}
2507
2508#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2509pub struct Call {
2510    pub(crate) syntax: SyntaxNode,
2511}
2512impl Call {
2513    #[inline]
2514    pub fn arg_list(&self) -> Option<ArgList> {
2515        support::child(&self.syntax)
2516    }
2517    #[inline]
2518    pub fn path(&self) -> Option<Path> {
2519        support::child(&self.syntax)
2520    }
2521    #[inline]
2522    pub fn call_token(&self) -> Option<SyntaxToken> {
2523        support::token(&self.syntax, SyntaxKind::CALL_KW)
2524    }
2525}
2526
2527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2528pub struct CallExpr {
2529    pub(crate) syntax: SyntaxNode,
2530}
2531impl CallExpr {
2532    #[inline]
2533    pub fn all_fn(&self) -> Option<AllFn> {
2534        support::child(&self.syntax)
2535    }
2536    #[inline]
2537    pub fn any_fn(&self) -> Option<AnyFn> {
2538        support::child(&self.syntax)
2539    }
2540    #[inline]
2541    pub fn arg_list(&self) -> Option<ArgList> {
2542        support::child(&self.syntax)
2543    }
2544    #[inline]
2545    pub fn collation_for_fn(&self) -> Option<CollationForFn> {
2546        support::child(&self.syntax)
2547    }
2548    #[inline]
2549    pub fn exists_fn(&self) -> Option<ExistsFn> {
2550        support::child(&self.syntax)
2551    }
2552    #[inline]
2553    pub fn expr(&self) -> Option<Expr> {
2554        support::child(&self.syntax)
2555    }
2556    #[inline]
2557    pub fn extract_fn(&self) -> Option<ExtractFn> {
2558        support::child(&self.syntax)
2559    }
2560    #[inline]
2561    pub fn filter_clause(&self) -> Option<FilterClause> {
2562        support::child(&self.syntax)
2563    }
2564    #[inline]
2565    pub fn graph_table_fn(&self) -> Option<GraphTableFn> {
2566        support::child(&self.syntax)
2567    }
2568    #[inline]
2569    pub fn json_array_agg_fn(&self) -> Option<JsonArrayAggFn> {
2570        support::child(&self.syntax)
2571    }
2572    #[inline]
2573    pub fn json_array_fn(&self) -> Option<JsonArrayFn> {
2574        support::child(&self.syntax)
2575    }
2576    #[inline]
2577    pub fn json_exists_fn(&self) -> Option<JsonExistsFn> {
2578        support::child(&self.syntax)
2579    }
2580    #[inline]
2581    pub fn json_fn(&self) -> Option<JsonFn> {
2582        support::child(&self.syntax)
2583    }
2584    #[inline]
2585    pub fn json_object_agg_fn(&self) -> Option<JsonObjectAggFn> {
2586        support::child(&self.syntax)
2587    }
2588    #[inline]
2589    pub fn json_object_fn(&self) -> Option<JsonObjectFn> {
2590        support::child(&self.syntax)
2591    }
2592    #[inline]
2593    pub fn json_query_fn(&self) -> Option<JsonQueryFn> {
2594        support::child(&self.syntax)
2595    }
2596    #[inline]
2597    pub fn json_scalar_fn(&self) -> Option<JsonScalarFn> {
2598        support::child(&self.syntax)
2599    }
2600    #[inline]
2601    pub fn json_serialize_fn(&self) -> Option<JsonSerializeFn> {
2602        support::child(&self.syntax)
2603    }
2604    #[inline]
2605    pub fn json_value_fn(&self) -> Option<JsonValueFn> {
2606        support::child(&self.syntax)
2607    }
2608    #[inline]
2609    pub fn over_clause(&self) -> Option<OverClause> {
2610        support::child(&self.syntax)
2611    }
2612    #[inline]
2613    pub fn overlay_fn(&self) -> Option<OverlayFn> {
2614        support::child(&self.syntax)
2615    }
2616    #[inline]
2617    pub fn position_fn(&self) -> Option<PositionFn> {
2618        support::child(&self.syntax)
2619    }
2620    #[inline]
2621    pub fn some_fn(&self) -> Option<SomeFn> {
2622        support::child(&self.syntax)
2623    }
2624    #[inline]
2625    pub fn substring_fn(&self) -> Option<SubstringFn> {
2626        support::child(&self.syntax)
2627    }
2628    #[inline]
2629    pub fn trim_fn(&self) -> Option<TrimFn> {
2630        support::child(&self.syntax)
2631    }
2632    #[inline]
2633    pub fn within_clause(&self) -> Option<WithinClause> {
2634        support::child(&self.syntax)
2635    }
2636    #[inline]
2637    pub fn xml_element_fn(&self) -> Option<XmlElementFn> {
2638        support::child(&self.syntax)
2639    }
2640    #[inline]
2641    pub fn xml_exists_fn(&self) -> Option<XmlExistsFn> {
2642        support::child(&self.syntax)
2643    }
2644    #[inline]
2645    pub fn xml_forest_fn(&self) -> Option<XmlForestFn> {
2646        support::child(&self.syntax)
2647    }
2648    #[inline]
2649    pub fn xml_parse_fn(&self) -> Option<XmlParseFn> {
2650        support::child(&self.syntax)
2651    }
2652    #[inline]
2653    pub fn xml_pi_fn(&self) -> Option<XmlPiFn> {
2654        support::child(&self.syntax)
2655    }
2656    #[inline]
2657    pub fn xml_root_fn(&self) -> Option<XmlRootFn> {
2658        support::child(&self.syntax)
2659    }
2660    #[inline]
2661    pub fn xml_serialize_fn(&self) -> Option<XmlSerializeFn> {
2662        support::child(&self.syntax)
2663    }
2664}
2665
2666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2667pub struct Cascade {
2668    pub(crate) syntax: SyntaxNode,
2669}
2670impl Cascade {
2671    #[inline]
2672    pub fn cascade_token(&self) -> Option<SyntaxToken> {
2673        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
2674    }
2675}
2676
2677#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2678pub struct CaseExpr {
2679    pub(crate) syntax: SyntaxNode,
2680}
2681impl CaseExpr {
2682    #[inline]
2683    pub fn else_clause(&self) -> Option<ElseClause> {
2684        support::child(&self.syntax)
2685    }
2686    #[inline]
2687    pub fn expr(&self) -> Option<Expr> {
2688        support::child(&self.syntax)
2689    }
2690    #[inline]
2691    pub fn when_clause_list(&self) -> Option<WhenClauseList> {
2692        support::child(&self.syntax)
2693    }
2694    #[inline]
2695    pub fn case_token(&self) -> Option<SyntaxToken> {
2696        support::token(&self.syntax, SyntaxKind::CASE_KW)
2697    }
2698}
2699
2700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2701pub struct CastExpr {
2702    pub(crate) syntax: SyntaxNode,
2703}
2704impl CastExpr {
2705    #[inline]
2706    pub fn colon_colon(&self) -> Option<ColonColon> {
2707        support::child(&self.syntax)
2708    }
2709    #[inline]
2710    pub fn expr(&self) -> Option<Expr> {
2711        support::child(&self.syntax)
2712    }
2713    #[inline]
2714    pub fn literal(&self) -> Option<Literal> {
2715        support::child(&self.syntax)
2716    }
2717    #[inline]
2718    pub fn ty(&self) -> Option<Type> {
2719        support::child(&self.syntax)
2720    }
2721    #[inline]
2722    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2723        support::token(&self.syntax, SyntaxKind::L_PAREN)
2724    }
2725    #[inline]
2726    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2727        support::token(&self.syntax, SyntaxKind::R_PAREN)
2728    }
2729    #[inline]
2730    pub fn as_token(&self) -> Option<SyntaxToken> {
2731        support::token(&self.syntax, SyntaxKind::AS_KW)
2732    }
2733    #[inline]
2734    pub fn cast_token(&self) -> Option<SyntaxToken> {
2735        support::token(&self.syntax, SyntaxKind::CAST_KW)
2736    }
2737    #[inline]
2738    pub fn treat_token(&self) -> Option<SyntaxToken> {
2739        support::token(&self.syntax, SyntaxKind::TREAT_KW)
2740    }
2741}
2742
2743#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2744pub struct CastSig {
2745    pub(crate) syntax: SyntaxNode,
2746}
2747impl CastSig {
2748    #[inline]
2749    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2750        support::token(&self.syntax, SyntaxKind::L_PAREN)
2751    }
2752    #[inline]
2753    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2754        support::token(&self.syntax, SyntaxKind::R_PAREN)
2755    }
2756    #[inline]
2757    pub fn as_token(&self) -> Option<SyntaxToken> {
2758        support::token(&self.syntax, SyntaxKind::AS_KW)
2759    }
2760}
2761
2762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2763pub struct CharType {
2764    pub(crate) syntax: SyntaxNode,
2765}
2766impl CharType {
2767    #[inline]
2768    pub fn arg_list(&self) -> Option<ArgList> {
2769        support::child(&self.syntax)
2770    }
2771    #[inline]
2772    pub fn char_token(&self) -> Option<SyntaxToken> {
2773        support::token(&self.syntax, SyntaxKind::CHAR_KW)
2774    }
2775    #[inline]
2776    pub fn character_token(&self) -> Option<SyntaxToken> {
2777        support::token(&self.syntax, SyntaxKind::CHARACTER_KW)
2778    }
2779    #[inline]
2780    pub fn national_token(&self) -> Option<SyntaxToken> {
2781        support::token(&self.syntax, SyntaxKind::NATIONAL_KW)
2782    }
2783    #[inline]
2784    pub fn nchar_token(&self) -> Option<SyntaxToken> {
2785        support::token(&self.syntax, SyntaxKind::NCHAR_KW)
2786    }
2787    #[inline]
2788    pub fn setof_token(&self) -> Option<SyntaxToken> {
2789        support::token(&self.syntax, SyntaxKind::SETOF_KW)
2790    }
2791    #[inline]
2792    pub fn varchar_token(&self) -> Option<SyntaxToken> {
2793        support::token(&self.syntax, SyntaxKind::VARCHAR_KW)
2794    }
2795    #[inline]
2796    pub fn varying_token(&self) -> Option<SyntaxToken> {
2797        support::token(&self.syntax, SyntaxKind::VARYING_KW)
2798    }
2799}
2800
2801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2802pub struct CheckConstraint {
2803    pub(crate) syntax: SyntaxNode,
2804}
2805impl CheckConstraint {
2806    #[inline]
2807    pub fn constraint_name(&self) -> Option<ConstraintName> {
2808        support::child(&self.syntax)
2809    }
2810    #[inline]
2811    pub fn expr(&self) -> Option<Expr> {
2812        support::child(&self.syntax)
2813    }
2814    #[inline]
2815    pub fn no_inherit(&self) -> Option<NoInherit> {
2816        support::child(&self.syntax)
2817    }
2818    #[inline]
2819    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2820        support::token(&self.syntax, SyntaxKind::L_PAREN)
2821    }
2822    #[inline]
2823    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2824        support::token(&self.syntax, SyntaxKind::R_PAREN)
2825    }
2826    #[inline]
2827    pub fn check_token(&self) -> Option<SyntaxToken> {
2828        support::token(&self.syntax, SyntaxKind::CHECK_KW)
2829    }
2830}
2831
2832#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2833pub struct Checkpoint {
2834    pub(crate) syntax: SyntaxNode,
2835}
2836impl Checkpoint {
2837    #[inline]
2838    pub fn checkpoint_token(&self) -> Option<SyntaxToken> {
2839        support::token(&self.syntax, SyntaxKind::CHECKPOINT_KW)
2840    }
2841}
2842
2843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2844pub struct Close {
2845    pub(crate) syntax: SyntaxNode,
2846}
2847impl Close {
2848    #[inline]
2849    pub fn name_ref(&self) -> Option<NameRef> {
2850        support::child(&self.syntax)
2851    }
2852    #[inline]
2853    pub fn close_token(&self) -> Option<SyntaxToken> {
2854        support::token(&self.syntax, SyntaxKind::CLOSE_KW)
2855    }
2856}
2857
2858#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2859pub struct Cluster {
2860    pub(crate) syntax: SyntaxNode,
2861}
2862impl Cluster {
2863    #[inline]
2864    pub fn on_path(&self) -> Option<OnPath> {
2865        support::child(&self.syntax)
2866    }
2867    #[inline]
2868    pub fn option_item_list(&self) -> Option<OptionItemList> {
2869        support::child(&self.syntax)
2870    }
2871    #[inline]
2872    pub fn path(&self) -> Option<Path> {
2873        support::child(&self.syntax)
2874    }
2875    #[inline]
2876    pub fn using_method(&self) -> Option<UsingMethod> {
2877        support::child(&self.syntax)
2878    }
2879    #[inline]
2880    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2881        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2882    }
2883    #[inline]
2884    pub fn verbose_token(&self) -> Option<SyntaxToken> {
2885        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
2886    }
2887}
2888
2889#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2890pub struct ClusterOn {
2891    pub(crate) syntax: SyntaxNode,
2892}
2893impl ClusterOn {
2894    #[inline]
2895    pub fn cluster_token(&self) -> Option<SyntaxToken> {
2896        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
2897    }
2898    #[inline]
2899    pub fn on_token(&self) -> Option<SyntaxToken> {
2900        support::token(&self.syntax, SyntaxKind::ON_KW)
2901    }
2902}
2903
2904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2905pub struct Collate {
2906    pub(crate) syntax: SyntaxNode,
2907}
2908impl Collate {
2909    #[inline]
2910    pub fn path(&self) -> Option<Path> {
2911        support::child(&self.syntax)
2912    }
2913    #[inline]
2914    pub fn collate_token(&self) -> Option<SyntaxToken> {
2915        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
2916    }
2917}
2918
2919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2920pub struct CollationForFn {
2921    pub(crate) syntax: SyntaxNode,
2922}
2923impl CollationForFn {
2924    #[inline]
2925    pub fn expr(&self) -> Option<Expr> {
2926        support::child(&self.syntax)
2927    }
2928    #[inline]
2929    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
2930        support::token(&self.syntax, SyntaxKind::L_PAREN)
2931    }
2932    #[inline]
2933    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
2934        support::token(&self.syntax, SyntaxKind::R_PAREN)
2935    }
2936    #[inline]
2937    pub fn collation_token(&self) -> Option<SyntaxToken> {
2938        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
2939    }
2940    #[inline]
2941    pub fn for_token(&self) -> Option<SyntaxToken> {
2942        support::token(&self.syntax, SyntaxKind::FOR_KW)
2943    }
2944}
2945
2946#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2947pub struct ColonColon {
2948    pub(crate) syntax: SyntaxNode,
2949}
2950impl ColonColon {
2951    #[inline]
2952    pub fn colon_token(&self) -> Option<SyntaxToken> {
2953        support::token(&self.syntax, SyntaxKind::COLON)
2954    }
2955}
2956
2957#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2958pub struct ColonEq {
2959    pub(crate) syntax: SyntaxNode,
2960}
2961impl ColonEq {
2962    #[inline]
2963    pub fn colon_token(&self) -> Option<SyntaxToken> {
2964        support::token(&self.syntax, SyntaxKind::COLON)
2965    }
2966    #[inline]
2967    pub fn eq_token(&self) -> Option<SyntaxToken> {
2968        support::token(&self.syntax, SyntaxKind::EQ)
2969    }
2970}
2971
2972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
2973pub struct Column {
2974    pub(crate) syntax: SyntaxNode,
2975}
2976impl Column {
2977    #[inline]
2978    pub fn collate(&self) -> Option<Collate> {
2979        support::child(&self.syntax)
2980    }
2981    #[inline]
2982    pub fn compression_method(&self) -> Option<CompressionMethod> {
2983        support::child(&self.syntax)
2984    }
2985    #[inline]
2986    pub fn constraints(&self) -> AstChildren<ColumnConstraint> {
2987        support::children(&self.syntax)
2988    }
2989    #[inline]
2990    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
2991        support::child(&self.syntax)
2992    }
2993    #[inline]
2994    pub fn enforced(&self) -> Option<Enforced> {
2995        support::child(&self.syntax)
2996    }
2997    #[inline]
2998    pub fn index_expr(&self) -> Option<IndexExpr> {
2999        support::child(&self.syntax)
3000    }
3001    #[inline]
3002    pub fn initially_deferred_constraint_option(
3003        &self,
3004    ) -> Option<InitiallyDeferredConstraintOption> {
3005        support::child(&self.syntax)
3006    }
3007    #[inline]
3008    pub fn initially_immediate_constraint_option(
3009        &self,
3010    ) -> Option<InitiallyImmediateConstraintOption> {
3011        support::child(&self.syntax)
3012    }
3013    #[inline]
3014    pub fn name(&self) -> Option<Name> {
3015        support::child(&self.syntax)
3016    }
3017    #[inline]
3018    pub fn name_ref(&self) -> Option<NameRef> {
3019        support::child(&self.syntax)
3020    }
3021    #[inline]
3022    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
3023        support::child(&self.syntax)
3024    }
3025    #[inline]
3026    pub fn not_enforced(&self) -> Option<NotEnforced> {
3027        support::child(&self.syntax)
3028    }
3029    #[inline]
3030    pub fn storage(&self) -> Option<Storage> {
3031        support::child(&self.syntax)
3032    }
3033    #[inline]
3034    pub fn ty(&self) -> Option<Type> {
3035        support::child(&self.syntax)
3036    }
3037    #[inline]
3038    pub fn with_options(&self) -> Option<WithOptions> {
3039        support::child(&self.syntax)
3040    }
3041    #[inline]
3042    pub fn period_token(&self) -> Option<SyntaxToken> {
3043        support::token(&self.syntax, SyntaxKind::PERIOD_KW)
3044    }
3045}
3046
3047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3048pub struct ColumnList {
3049    pub(crate) syntax: SyntaxNode,
3050}
3051impl ColumnList {
3052    #[inline]
3053    pub fn columns(&self) -> AstChildren<Column> {
3054        support::children(&self.syntax)
3055    }
3056    #[inline]
3057    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3058        support::token(&self.syntax, SyntaxKind::L_PAREN)
3059    }
3060    #[inline]
3061    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3062        support::token(&self.syntax, SyntaxKind::R_PAREN)
3063    }
3064}
3065
3066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3067pub struct CommentOn {
3068    pub(crate) syntax: SyntaxNode,
3069}
3070impl CommentOn {
3071    #[inline]
3072    pub fn aggregate(&self) -> Option<Aggregate> {
3073        support::child(&self.syntax)
3074    }
3075    #[inline]
3076    pub fn cast_sig(&self) -> Option<CastSig> {
3077        support::child(&self.syntax)
3078    }
3079    #[inline]
3080    pub fn function_sig(&self) -> Option<FunctionSig> {
3081        support::child(&self.syntax)
3082    }
3083    #[inline]
3084    pub fn literal(&self) -> Option<Literal> {
3085        support::child(&self.syntax)
3086    }
3087    #[inline]
3088    pub fn name_ref(&self) -> Option<NameRef> {
3089        support::child(&self.syntax)
3090    }
3091    #[inline]
3092    pub fn op(&self) -> Option<Op> {
3093        support::child(&self.syntax)
3094    }
3095    #[inline]
3096    pub fn path(&self) -> Option<Path> {
3097        support::child(&self.syntax)
3098    }
3099    #[inline]
3100    pub fn ty(&self) -> Option<Type> {
3101        support::child(&self.syntax)
3102    }
3103    #[inline]
3104    pub fn using_method(&self) -> Option<UsingMethod> {
3105        support::child(&self.syntax)
3106    }
3107    #[inline]
3108    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3109        support::token(&self.syntax, SyntaxKind::L_PAREN)
3110    }
3111    #[inline]
3112    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3113        support::token(&self.syntax, SyntaxKind::R_PAREN)
3114    }
3115    #[inline]
3116    pub fn comma_token(&self) -> Option<SyntaxToken> {
3117        support::token(&self.syntax, SyntaxKind::COMMA)
3118    }
3119    #[inline]
3120    pub fn access_token(&self) -> Option<SyntaxToken> {
3121        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3122    }
3123    #[inline]
3124    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3125        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3126    }
3127    #[inline]
3128    pub fn cast_token(&self) -> Option<SyntaxToken> {
3129        support::token(&self.syntax, SyntaxKind::CAST_KW)
3130    }
3131    #[inline]
3132    pub fn class_token(&self) -> Option<SyntaxToken> {
3133        support::token(&self.syntax, SyntaxKind::CLASS_KW)
3134    }
3135    #[inline]
3136    pub fn collation_token(&self) -> Option<SyntaxToken> {
3137        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3138    }
3139    #[inline]
3140    pub fn column_token(&self) -> Option<SyntaxToken> {
3141        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
3142    }
3143    #[inline]
3144    pub fn comment_token(&self) -> Option<SyntaxToken> {
3145        support::token(&self.syntax, SyntaxKind::COMMENT_KW)
3146    }
3147    #[inline]
3148    pub fn configuration_token(&self) -> Option<SyntaxToken> {
3149        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
3150    }
3151    #[inline]
3152    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3153        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3154    }
3155    #[inline]
3156    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3157        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3158    }
3159    #[inline]
3160    pub fn data_token(&self) -> Option<SyntaxToken> {
3161        support::token(&self.syntax, SyntaxKind::DATA_KW)
3162    }
3163    #[inline]
3164    pub fn database_token(&self) -> Option<SyntaxToken> {
3165        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3166    }
3167    #[inline]
3168    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
3169        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
3170    }
3171    #[inline]
3172    pub fn domain_token(&self) -> Option<SyntaxToken> {
3173        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
3174    }
3175    #[inline]
3176    pub fn event_token(&self) -> Option<SyntaxToken> {
3177        support::token(&self.syntax, SyntaxKind::EVENT_KW)
3178    }
3179    #[inline]
3180    pub fn extension_token(&self) -> Option<SyntaxToken> {
3181        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
3182    }
3183    #[inline]
3184    pub fn family_token(&self) -> Option<SyntaxToken> {
3185        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
3186    }
3187    #[inline]
3188    pub fn for_token(&self) -> Option<SyntaxToken> {
3189        support::token(&self.syntax, SyntaxKind::FOR_KW)
3190    }
3191    #[inline]
3192    pub fn foreign_token(&self) -> Option<SyntaxToken> {
3193        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
3194    }
3195    #[inline]
3196    pub fn function_token(&self) -> Option<SyntaxToken> {
3197        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3198    }
3199    #[inline]
3200    pub fn graph_token(&self) -> Option<SyntaxToken> {
3201        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
3202    }
3203    #[inline]
3204    pub fn index_token(&self) -> Option<SyntaxToken> {
3205        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3206    }
3207    #[inline]
3208    pub fn is_token(&self) -> Option<SyntaxToken> {
3209        support::token(&self.syntax, SyntaxKind::IS_KW)
3210    }
3211    #[inline]
3212    pub fn language_token(&self) -> Option<SyntaxToken> {
3213        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
3214    }
3215    #[inline]
3216    pub fn large_token(&self) -> Option<SyntaxToken> {
3217        support::token(&self.syntax, SyntaxKind::LARGE_KW)
3218    }
3219    #[inline]
3220    pub fn materialized_token(&self) -> Option<SyntaxToken> {
3221        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
3222    }
3223    #[inline]
3224    pub fn method_token(&self) -> Option<SyntaxToken> {
3225        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3226    }
3227    #[inline]
3228    pub fn null_token(&self) -> Option<SyntaxToken> {
3229        support::token(&self.syntax, SyntaxKind::NULL_KW)
3230    }
3231    #[inline]
3232    pub fn object_token(&self) -> Option<SyntaxToken> {
3233        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
3234    }
3235    #[inline]
3236    pub fn on_token(&self) -> Option<SyntaxToken> {
3237        support::token(&self.syntax, SyntaxKind::ON_KW)
3238    }
3239    #[inline]
3240    pub fn operator_token(&self) -> Option<SyntaxToken> {
3241        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
3242    }
3243    #[inline]
3244    pub fn parser_token(&self) -> Option<SyntaxToken> {
3245        support::token(&self.syntax, SyntaxKind::PARSER_KW)
3246    }
3247    #[inline]
3248    pub fn policy_token(&self) -> Option<SyntaxToken> {
3249        support::token(&self.syntax, SyntaxKind::POLICY_KW)
3250    }
3251    #[inline]
3252    pub fn procedural_token(&self) -> Option<SyntaxToken> {
3253        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
3254    }
3255    #[inline]
3256    pub fn procedure_token(&self) -> Option<SyntaxToken> {
3257        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
3258    }
3259    #[inline]
3260    pub fn property_token(&self) -> Option<SyntaxToken> {
3261        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
3262    }
3263    #[inline]
3264    pub fn publication_token(&self) -> Option<SyntaxToken> {
3265        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
3266    }
3267    #[inline]
3268    pub fn role_token(&self) -> Option<SyntaxToken> {
3269        support::token(&self.syntax, SyntaxKind::ROLE_KW)
3270    }
3271    #[inline]
3272    pub fn routine_token(&self) -> Option<SyntaxToken> {
3273        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
3274    }
3275    #[inline]
3276    pub fn rule_token(&self) -> Option<SyntaxToken> {
3277        support::token(&self.syntax, SyntaxKind::RULE_KW)
3278    }
3279    #[inline]
3280    pub fn schema_token(&self) -> Option<SyntaxToken> {
3281        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
3282    }
3283    #[inline]
3284    pub fn search_token(&self) -> Option<SyntaxToken> {
3285        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
3286    }
3287    #[inline]
3288    pub fn sequence_token(&self) -> Option<SyntaxToken> {
3289        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
3290    }
3291    #[inline]
3292    pub fn server_token(&self) -> Option<SyntaxToken> {
3293        support::token(&self.syntax, SyntaxKind::SERVER_KW)
3294    }
3295    #[inline]
3296    pub fn statistics_token(&self) -> Option<SyntaxToken> {
3297        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
3298    }
3299    #[inline]
3300    pub fn subscription_token(&self) -> Option<SyntaxToken> {
3301        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
3302    }
3303    #[inline]
3304    pub fn table_token(&self) -> Option<SyntaxToken> {
3305        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3306    }
3307    #[inline]
3308    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3309        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3310    }
3311    #[inline]
3312    pub fn template_token(&self) -> Option<SyntaxToken> {
3313        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
3314    }
3315    #[inline]
3316    pub fn text_token(&self) -> Option<SyntaxToken> {
3317        support::token(&self.syntax, SyntaxKind::TEXT_KW)
3318    }
3319    #[inline]
3320    pub fn transform_token(&self) -> Option<SyntaxToken> {
3321        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
3322    }
3323    #[inline]
3324    pub fn trigger_token(&self) -> Option<SyntaxToken> {
3325        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
3326    }
3327    #[inline]
3328    pub fn type_token(&self) -> Option<SyntaxToken> {
3329        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3330    }
3331    #[inline]
3332    pub fn view_token(&self) -> Option<SyntaxToken> {
3333        support::token(&self.syntax, SyntaxKind::VIEW_KW)
3334    }
3335    #[inline]
3336    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
3337        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
3338    }
3339}
3340
3341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3342pub struct Commit {
3343    pub(crate) syntax: SyntaxNode,
3344}
3345impl Commit {
3346    #[inline]
3347    pub fn literal(&self) -> Option<Literal> {
3348        support::child(&self.syntax)
3349    }
3350    #[inline]
3351    pub fn and_token(&self) -> Option<SyntaxToken> {
3352        support::token(&self.syntax, SyntaxKind::AND_KW)
3353    }
3354    #[inline]
3355    pub fn chain_token(&self) -> Option<SyntaxToken> {
3356        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
3357    }
3358    #[inline]
3359    pub fn commit_token(&self) -> Option<SyntaxToken> {
3360        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
3361    }
3362    #[inline]
3363    pub fn no_token(&self) -> Option<SyntaxToken> {
3364        support::token(&self.syntax, SyntaxKind::NO_KW)
3365    }
3366    #[inline]
3367    pub fn prepared_token(&self) -> Option<SyntaxToken> {
3368        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
3369    }
3370    #[inline]
3371    pub fn transaction_token(&self) -> Option<SyntaxToken> {
3372        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
3373    }
3374    #[inline]
3375    pub fn work_token(&self) -> Option<SyntaxToken> {
3376        support::token(&self.syntax, SyntaxKind::WORK_KW)
3377    }
3378}
3379
3380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3381pub struct CompoundSelect {
3382    pub(crate) syntax: SyntaxNode,
3383}
3384impl CompoundSelect {
3385    #[inline]
3386    pub fn all_token(&self) -> Option<SyntaxToken> {
3387        support::token(&self.syntax, SyntaxKind::ALL_KW)
3388    }
3389    #[inline]
3390    pub fn except_token(&self) -> Option<SyntaxToken> {
3391        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
3392    }
3393    #[inline]
3394    pub fn intersect_token(&self) -> Option<SyntaxToken> {
3395        support::token(&self.syntax, SyntaxKind::INTERSECT_KW)
3396    }
3397    #[inline]
3398    pub fn union_token(&self) -> Option<SyntaxToken> {
3399        support::token(&self.syntax, SyntaxKind::UNION_KW)
3400    }
3401}
3402
3403#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3404pub struct CompressionMethod {
3405    pub(crate) syntax: SyntaxNode,
3406}
3407impl CompressionMethod {
3408    #[inline]
3409    pub fn compression_token(&self) -> Option<SyntaxToken> {
3410        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
3411    }
3412    #[inline]
3413    pub fn default_token(&self) -> Option<SyntaxToken> {
3414        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3415    }
3416    #[inline]
3417    pub fn ident_token(&self) -> Option<SyntaxToken> {
3418        support::token(&self.syntax, SyntaxKind::IDENT)
3419    }
3420}
3421
3422#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3423pub struct ConflictDoNothing {
3424    pub(crate) syntax: SyntaxNode,
3425}
3426impl ConflictDoNothing {
3427    #[inline]
3428    pub fn do_token(&self) -> Option<SyntaxToken> {
3429        support::token(&self.syntax, SyntaxKind::DO_KW)
3430    }
3431    #[inline]
3432    pub fn nothing_token(&self) -> Option<SyntaxToken> {
3433        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
3434    }
3435}
3436
3437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3438pub struct ConflictDoSelect {
3439    pub(crate) syntax: SyntaxNode,
3440}
3441impl ConflictDoSelect {
3442    #[inline]
3443    pub fn locking_clause(&self) -> Option<LockingClause> {
3444        support::child(&self.syntax)
3445    }
3446    #[inline]
3447    pub fn where_clause(&self) -> Option<WhereClause> {
3448        support::child(&self.syntax)
3449    }
3450    #[inline]
3451    pub fn do_token(&self) -> Option<SyntaxToken> {
3452        support::token(&self.syntax, SyntaxKind::DO_KW)
3453    }
3454    #[inline]
3455    pub fn select_token(&self) -> Option<SyntaxToken> {
3456        support::token(&self.syntax, SyntaxKind::SELECT_KW)
3457    }
3458}
3459
3460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3461pub struct ConflictDoUpdateSet {
3462    pub(crate) syntax: SyntaxNode,
3463}
3464impl ConflictDoUpdateSet {
3465    #[inline]
3466    pub fn set_clause(&self) -> Option<SetClause> {
3467        support::child(&self.syntax)
3468    }
3469    #[inline]
3470    pub fn where_clause(&self) -> Option<WhereClause> {
3471        support::child(&self.syntax)
3472    }
3473    #[inline]
3474    pub fn do_token(&self) -> Option<SyntaxToken> {
3475        support::token(&self.syntax, SyntaxKind::DO_KW)
3476    }
3477    #[inline]
3478    pub fn update_token(&self) -> Option<SyntaxToken> {
3479        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
3480    }
3481}
3482
3483#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3484pub struct ConflictIndexItem {
3485    pub(crate) syntax: SyntaxNode,
3486}
3487impl ConflictIndexItem {
3488    #[inline]
3489    pub fn collate(&self) -> Option<Collate> {
3490        support::child(&self.syntax)
3491    }
3492    #[inline]
3493    pub fn expr(&self) -> Option<Expr> {
3494        support::child(&self.syntax)
3495    }
3496    #[inline]
3497    pub fn ident_token(&self) -> Option<SyntaxToken> {
3498        support::token(&self.syntax, SyntaxKind::IDENT)
3499    }
3500}
3501
3502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3503pub struct ConflictIndexItemList {
3504    pub(crate) syntax: SyntaxNode,
3505}
3506impl ConflictIndexItemList {
3507    #[inline]
3508    pub fn conflict_index_items(&self) -> AstChildren<ConflictIndexItem> {
3509        support::children(&self.syntax)
3510    }
3511    #[inline]
3512    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3513        support::token(&self.syntax, SyntaxKind::L_PAREN)
3514    }
3515    #[inline]
3516    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3517        support::token(&self.syntax, SyntaxKind::R_PAREN)
3518    }
3519}
3520
3521#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3522pub struct ConflictOnConstraint {
3523    pub(crate) syntax: SyntaxNode,
3524}
3525impl ConflictOnConstraint {
3526    #[inline]
3527    pub fn name_ref(&self) -> Option<NameRef> {
3528        support::child(&self.syntax)
3529    }
3530    #[inline]
3531    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3532        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3533    }
3534    #[inline]
3535    pub fn on_token(&self) -> Option<SyntaxToken> {
3536        support::token(&self.syntax, SyntaxKind::ON_KW)
3537    }
3538}
3539
3540#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3541pub struct ConflictOnIndex {
3542    pub(crate) syntax: SyntaxNode,
3543}
3544impl ConflictOnIndex {
3545    #[inline]
3546    pub fn conflict_index_item_list(&self) -> Option<ConflictIndexItemList> {
3547        support::child(&self.syntax)
3548    }
3549    #[inline]
3550    pub fn where_clause(&self) -> Option<WhereClause> {
3551        support::child(&self.syntax)
3552    }
3553}
3554
3555#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3556pub struct ConstraintExclusion {
3557    pub(crate) syntax: SyntaxNode,
3558}
3559impl ConstraintExclusion {
3560    #[inline]
3561    pub fn expr(&self) -> Option<Expr> {
3562        support::child(&self.syntax)
3563    }
3564    #[inline]
3565    pub fn op(&self) -> Option<Op> {
3566        support::child(&self.syntax)
3567    }
3568    #[inline]
3569    pub fn with_token(&self) -> Option<SyntaxToken> {
3570        support::token(&self.syntax, SyntaxKind::WITH_KW)
3571    }
3572}
3573
3574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3575pub struct ConstraintExclusionList {
3576    pub(crate) syntax: SyntaxNode,
3577}
3578impl ConstraintExclusionList {
3579    #[inline]
3580    pub fn constraint_exclusions(&self) -> AstChildren<ConstraintExclusion> {
3581        support::children(&self.syntax)
3582    }
3583    #[inline]
3584    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3585        support::token(&self.syntax, SyntaxKind::L_PAREN)
3586    }
3587    #[inline]
3588    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3589        support::token(&self.syntax, SyntaxKind::R_PAREN)
3590    }
3591}
3592
3593#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3594pub struct ConstraintIncludeClause {
3595    pub(crate) syntax: SyntaxNode,
3596}
3597impl ConstraintIncludeClause {
3598    #[inline]
3599    pub fn include_token(&self) -> Option<SyntaxToken> {
3600        support::token(&self.syntax, SyntaxKind::INCLUDE_KW)
3601    }
3602}
3603
3604#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3605pub struct ConstraintIndexMethod {
3606    pub(crate) syntax: SyntaxNode,
3607}
3608impl ConstraintIndexMethod {
3609    #[inline]
3610    pub fn using_token(&self) -> Option<SyntaxToken> {
3611        support::token(&self.syntax, SyntaxKind::USING_KW)
3612    }
3613}
3614
3615#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3616pub struct ConstraintIndexTablespace {
3617    pub(crate) syntax: SyntaxNode,
3618}
3619impl ConstraintIndexTablespace {
3620    #[inline]
3621    pub fn name_ref(&self) -> Option<NameRef> {
3622        support::child(&self.syntax)
3623    }
3624    #[inline]
3625    pub fn index_token(&self) -> Option<SyntaxToken> {
3626        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3627    }
3628    #[inline]
3629    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3630        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3631    }
3632    #[inline]
3633    pub fn using_token(&self) -> Option<SyntaxToken> {
3634        support::token(&self.syntax, SyntaxKind::USING_KW)
3635    }
3636}
3637
3638#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3639pub struct ConstraintName {
3640    pub(crate) syntax: SyntaxNode,
3641}
3642impl ConstraintName {
3643    #[inline]
3644    pub fn name(&self) -> Option<Name> {
3645        support::child(&self.syntax)
3646    }
3647    #[inline]
3648    pub fn constraint_token(&self) -> Option<SyntaxToken> {
3649        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
3650    }
3651}
3652
3653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3654pub struct Copy {
3655    pub(crate) syntax: SyntaxNode,
3656}
3657impl Copy {
3658    #[inline]
3659    pub fn column_list(&self) -> Option<ColumnList> {
3660        support::child(&self.syntax)
3661    }
3662    #[inline]
3663    pub fn literal(&self) -> Option<Literal> {
3664        support::child(&self.syntax)
3665    }
3666    #[inline]
3667    pub fn path(&self) -> Option<Path> {
3668        support::child(&self.syntax)
3669    }
3670    #[inline]
3671    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
3672        support::child(&self.syntax)
3673    }
3674    #[inline]
3675    pub fn where_clause(&self) -> Option<WhereClause> {
3676        support::child(&self.syntax)
3677    }
3678    #[inline]
3679    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3680        support::token(&self.syntax, SyntaxKind::L_PAREN)
3681    }
3682    #[inline]
3683    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3684        support::token(&self.syntax, SyntaxKind::R_PAREN)
3685    }
3686    #[inline]
3687    pub fn binary_token(&self) -> Option<SyntaxToken> {
3688        support::token(&self.syntax, SyntaxKind::BINARY_KW)
3689    }
3690    #[inline]
3691    pub fn copy_token(&self) -> Option<SyntaxToken> {
3692        support::token(&self.syntax, SyntaxKind::COPY_KW)
3693    }
3694    #[inline]
3695    pub fn from_token(&self) -> Option<SyntaxToken> {
3696        support::token(&self.syntax, SyntaxKind::FROM_KW)
3697    }
3698    #[inline]
3699    pub fn program_token(&self) -> Option<SyntaxToken> {
3700        support::token(&self.syntax, SyntaxKind::PROGRAM_KW)
3701    }
3702    #[inline]
3703    pub fn stdin_token(&self) -> Option<SyntaxToken> {
3704        support::token(&self.syntax, SyntaxKind::STDIN_KW)
3705    }
3706    #[inline]
3707    pub fn stdout_token(&self) -> Option<SyntaxToken> {
3708        support::token(&self.syntax, SyntaxKind::STDOUT_KW)
3709    }
3710    #[inline]
3711    pub fn to_token(&self) -> Option<SyntaxToken> {
3712        support::token(&self.syntax, SyntaxKind::TO_KW)
3713    }
3714    #[inline]
3715    pub fn with_token(&self) -> Option<SyntaxToken> {
3716        support::token(&self.syntax, SyntaxKind::WITH_KW)
3717    }
3718}
3719
3720#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3721pub struct CopyOption {
3722    pub(crate) syntax: SyntaxNode,
3723}
3724impl CopyOption {
3725    #[inline]
3726    pub fn name(&self) -> Option<Name> {
3727        support::child(&self.syntax)
3728    }
3729}
3730
3731#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3732pub struct CopyOptionList {
3733    pub(crate) syntax: SyntaxNode,
3734}
3735impl CopyOptionList {
3736    #[inline]
3737    pub fn copy_options(&self) -> AstChildren<CopyOption> {
3738        support::children(&self.syntax)
3739    }
3740    #[inline]
3741    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
3742        support::token(&self.syntax, SyntaxKind::L_PAREN)
3743    }
3744    #[inline]
3745    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
3746        support::token(&self.syntax, SyntaxKind::R_PAREN)
3747    }
3748}
3749
3750#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3751pub struct CostFuncOption {
3752    pub(crate) syntax: SyntaxNode,
3753}
3754impl CostFuncOption {
3755    #[inline]
3756    pub fn cost_token(&self) -> Option<SyntaxToken> {
3757        support::token(&self.syntax, SyntaxKind::COST_KW)
3758    }
3759}
3760
3761#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3762pub struct CreateAccessMethod {
3763    pub(crate) syntax: SyntaxNode,
3764}
3765impl CreateAccessMethod {
3766    #[inline]
3767    pub fn handler_clause(&self) -> Option<HandlerClause> {
3768        support::child(&self.syntax)
3769    }
3770    #[inline]
3771    pub fn name(&self) -> Option<Path> {
3772        support::child(&self.syntax)
3773    }
3774    #[inline]
3775    pub fn access_token(&self) -> Option<SyntaxToken> {
3776        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
3777    }
3778    #[inline]
3779    pub fn create_token(&self) -> Option<SyntaxToken> {
3780        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3781    }
3782    #[inline]
3783    pub fn index_token(&self) -> Option<SyntaxToken> {
3784        support::token(&self.syntax, SyntaxKind::INDEX_KW)
3785    }
3786    #[inline]
3787    pub fn method_token(&self) -> Option<SyntaxToken> {
3788        support::token(&self.syntax, SyntaxKind::METHOD_KW)
3789    }
3790    #[inline]
3791    pub fn table_token(&self) -> Option<SyntaxToken> {
3792        support::token(&self.syntax, SyntaxKind::TABLE_KW)
3793    }
3794    #[inline]
3795    pub fn type_token(&self) -> Option<SyntaxToken> {
3796        support::token(&self.syntax, SyntaxKind::TYPE_KW)
3797    }
3798}
3799
3800#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3801pub struct CreateAggregate {
3802    pub(crate) syntax: SyntaxNode,
3803}
3804impl CreateAggregate {
3805    #[inline]
3806    pub fn or_replace(&self) -> Option<OrReplace> {
3807        support::child(&self.syntax)
3808    }
3809    #[inline]
3810    pub fn param_list(&self) -> Option<ParamList> {
3811        support::child(&self.syntax)
3812    }
3813    #[inline]
3814    pub fn path(&self) -> Option<Path> {
3815        support::child(&self.syntax)
3816    }
3817    #[inline]
3818    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
3819        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
3820    }
3821    #[inline]
3822    pub fn create_token(&self) -> Option<SyntaxToken> {
3823        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3824    }
3825}
3826
3827#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3828pub struct CreateCast {
3829    pub(crate) syntax: SyntaxNode,
3830}
3831impl CreateCast {
3832    #[inline]
3833    pub fn cast_sig(&self) -> Option<CastSig> {
3834        support::child(&self.syntax)
3835    }
3836    #[inline]
3837    pub fn function_sig(&self) -> Option<FunctionSig> {
3838        support::child(&self.syntax)
3839    }
3840    #[inline]
3841    pub fn as_token(&self) -> Option<SyntaxToken> {
3842        support::token(&self.syntax, SyntaxKind::AS_KW)
3843    }
3844    #[inline]
3845    pub fn assignment_token(&self) -> Option<SyntaxToken> {
3846        support::token(&self.syntax, SyntaxKind::ASSIGNMENT_KW)
3847    }
3848    #[inline]
3849    pub fn cast_token(&self) -> Option<SyntaxToken> {
3850        support::token(&self.syntax, SyntaxKind::CAST_KW)
3851    }
3852    #[inline]
3853    pub fn create_token(&self) -> Option<SyntaxToken> {
3854        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3855    }
3856    #[inline]
3857    pub fn function_token(&self) -> Option<SyntaxToken> {
3858        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
3859    }
3860    #[inline]
3861    pub fn implicit_token(&self) -> Option<SyntaxToken> {
3862        support::token(&self.syntax, SyntaxKind::IMPLICIT_KW)
3863    }
3864    #[inline]
3865    pub fn inout_token(&self) -> Option<SyntaxToken> {
3866        support::token(&self.syntax, SyntaxKind::INOUT_KW)
3867    }
3868    #[inline]
3869    pub fn with_token(&self) -> Option<SyntaxToken> {
3870        support::token(&self.syntax, SyntaxKind::WITH_KW)
3871    }
3872    #[inline]
3873    pub fn without_token(&self) -> Option<SyntaxToken> {
3874        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
3875    }
3876}
3877
3878#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3879pub struct CreateCollation {
3880    pub(crate) syntax: SyntaxNode,
3881}
3882impl CreateCollation {
3883    #[inline]
3884    pub fn path(&self) -> Option<Path> {
3885        support::child(&self.syntax)
3886    }
3887    #[inline]
3888    pub fn collation_token(&self) -> Option<SyntaxToken> {
3889        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
3890    }
3891    #[inline]
3892    pub fn create_token(&self) -> Option<SyntaxToken> {
3893        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3894    }
3895}
3896
3897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3898pub struct CreateConversion {
3899    pub(crate) syntax: SyntaxNode,
3900}
3901impl CreateConversion {
3902    #[inline]
3903    pub fn literal(&self) -> Option<Literal> {
3904        support::child(&self.syntax)
3905    }
3906    #[inline]
3907    pub fn path(&self) -> Option<Path> {
3908        support::child(&self.syntax)
3909    }
3910    #[inline]
3911    pub fn conversion_token(&self) -> Option<SyntaxToken> {
3912        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
3913    }
3914    #[inline]
3915    pub fn create_token(&self) -> Option<SyntaxToken> {
3916        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3917    }
3918    #[inline]
3919    pub fn default_token(&self) -> Option<SyntaxToken> {
3920        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3921    }
3922    #[inline]
3923    pub fn for_token(&self) -> Option<SyntaxToken> {
3924        support::token(&self.syntax, SyntaxKind::FOR_KW)
3925    }
3926    #[inline]
3927    pub fn from_token(&self) -> Option<SyntaxToken> {
3928        support::token(&self.syntax, SyntaxKind::FROM_KW)
3929    }
3930    #[inline]
3931    pub fn to_token(&self) -> Option<SyntaxToken> {
3932        support::token(&self.syntax, SyntaxKind::TO_KW)
3933    }
3934}
3935
3936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3937pub struct CreateDatabase {
3938    pub(crate) syntax: SyntaxNode,
3939}
3940impl CreateDatabase {
3941    #[inline]
3942    pub fn create_database_option_list(&self) -> Option<CreateDatabaseOptionList> {
3943        support::child(&self.syntax)
3944    }
3945    #[inline]
3946    pub fn name(&self) -> Option<Name> {
3947        support::child(&self.syntax)
3948    }
3949    #[inline]
3950    pub fn create_token(&self) -> Option<SyntaxToken> {
3951        support::token(&self.syntax, SyntaxKind::CREATE_KW)
3952    }
3953    #[inline]
3954    pub fn database_token(&self) -> Option<SyntaxToken> {
3955        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
3956    }
3957}
3958
3959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
3960pub struct CreateDatabaseOption {
3961    pub(crate) syntax: SyntaxNode,
3962}
3963impl CreateDatabaseOption {
3964    #[inline]
3965    pub fn literal(&self) -> Option<Literal> {
3966        support::child(&self.syntax)
3967    }
3968    #[inline]
3969    pub fn eq_token(&self) -> Option<SyntaxToken> {
3970        support::token(&self.syntax, SyntaxKind::EQ)
3971    }
3972    #[inline]
3973    pub fn connection_token(&self) -> Option<SyntaxToken> {
3974        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
3975    }
3976    #[inline]
3977    pub fn default_token(&self) -> Option<SyntaxToken> {
3978        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
3979    }
3980    #[inline]
3981    pub fn encoding_token(&self) -> Option<SyntaxToken> {
3982        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
3983    }
3984    #[inline]
3985    pub fn ident_token(&self) -> Option<SyntaxToken> {
3986        support::token(&self.syntax, SyntaxKind::IDENT)
3987    }
3988    #[inline]
3989    pub fn limit_token(&self) -> Option<SyntaxToken> {
3990        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
3991    }
3992    #[inline]
3993    pub fn owner_token(&self) -> Option<SyntaxToken> {
3994        support::token(&self.syntax, SyntaxKind::OWNER_KW)
3995    }
3996    #[inline]
3997    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
3998        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
3999    }
4000    #[inline]
4001    pub fn template_token(&self) -> Option<SyntaxToken> {
4002        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
4003    }
4004}
4005
4006#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4007pub struct CreateDatabaseOptionList {
4008    pub(crate) syntax: SyntaxNode,
4009}
4010impl CreateDatabaseOptionList {
4011    #[inline]
4012    pub fn create_database_options(&self) -> AstChildren<CreateDatabaseOption> {
4013        support::children(&self.syntax)
4014    }
4015    #[inline]
4016    pub fn with_token(&self) -> Option<SyntaxToken> {
4017        support::token(&self.syntax, SyntaxKind::WITH_KW)
4018    }
4019}
4020
4021#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4022pub struct CreateDomain {
4023    pub(crate) syntax: SyntaxNode,
4024}
4025impl CreateDomain {
4026    #[inline]
4027    pub fn collate(&self) -> Option<Collate> {
4028        support::child(&self.syntax)
4029    }
4030    #[inline]
4031    pub fn constraints(&self) -> AstChildren<Constraint> {
4032        support::children(&self.syntax)
4033    }
4034    #[inline]
4035    pub fn path(&self) -> Option<Path> {
4036        support::child(&self.syntax)
4037    }
4038    #[inline]
4039    pub fn ty(&self) -> Option<Type> {
4040        support::child(&self.syntax)
4041    }
4042    #[inline]
4043    pub fn as_token(&self) -> Option<SyntaxToken> {
4044        support::token(&self.syntax, SyntaxKind::AS_KW)
4045    }
4046    #[inline]
4047    pub fn create_token(&self) -> Option<SyntaxToken> {
4048        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4049    }
4050    #[inline]
4051    pub fn domain_token(&self) -> Option<SyntaxToken> {
4052        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
4053    }
4054}
4055
4056#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4057pub struct CreateEventTrigger {
4058    pub(crate) syntax: SyntaxNode,
4059}
4060impl CreateEventTrigger {
4061    #[inline]
4062    pub fn call_expr(&self) -> Option<CallExpr> {
4063        support::child(&self.syntax)
4064    }
4065    #[inline]
4066    pub fn event_trigger_when_clause(&self) -> Option<EventTriggerWhenClause> {
4067        support::child(&self.syntax)
4068    }
4069    #[inline]
4070    pub fn name(&self) -> Option<Name> {
4071        support::child(&self.syntax)
4072    }
4073    #[inline]
4074    pub fn name_ref(&self) -> Option<NameRef> {
4075        support::child(&self.syntax)
4076    }
4077    #[inline]
4078    pub fn create_token(&self) -> Option<SyntaxToken> {
4079        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4080    }
4081    #[inline]
4082    pub fn event_token(&self) -> Option<SyntaxToken> {
4083        support::token(&self.syntax, SyntaxKind::EVENT_KW)
4084    }
4085    #[inline]
4086    pub fn execute_token(&self) -> Option<SyntaxToken> {
4087        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
4088    }
4089    #[inline]
4090    pub fn function_token(&self) -> Option<SyntaxToken> {
4091        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4092    }
4093    #[inline]
4094    pub fn on_token(&self) -> Option<SyntaxToken> {
4095        support::token(&self.syntax, SyntaxKind::ON_KW)
4096    }
4097    #[inline]
4098    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4099        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4100    }
4101    #[inline]
4102    pub fn trigger_token(&self) -> Option<SyntaxToken> {
4103        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
4104    }
4105}
4106
4107#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4108pub struct CreateExtension {
4109    pub(crate) syntax: SyntaxNode,
4110}
4111impl CreateExtension {
4112    #[inline]
4113    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4114        support::child(&self.syntax)
4115    }
4116    #[inline]
4117    pub fn name(&self) -> Option<Name> {
4118        support::child(&self.syntax)
4119    }
4120    #[inline]
4121    pub fn create_token(&self) -> Option<SyntaxToken> {
4122        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4123    }
4124    #[inline]
4125    pub fn extension_token(&self) -> Option<SyntaxToken> {
4126        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
4127    }
4128}
4129
4130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4131pub struct CreateForeignDataWrapper {
4132    pub(crate) syntax: SyntaxNode,
4133}
4134impl CreateForeignDataWrapper {
4135    #[inline]
4136    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4137        support::child(&self.syntax)
4138    }
4139    #[inline]
4140    pub fn fdw_option_list(&self) -> Option<FdwOptionList> {
4141        support::child(&self.syntax)
4142    }
4143    #[inline]
4144    pub fn name(&self) -> Option<Name> {
4145        support::child(&self.syntax)
4146    }
4147    #[inline]
4148    pub fn create_token(&self) -> Option<SyntaxToken> {
4149        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4150    }
4151    #[inline]
4152    pub fn data_token(&self) -> Option<SyntaxToken> {
4153        support::token(&self.syntax, SyntaxKind::DATA_KW)
4154    }
4155    #[inline]
4156    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4157        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4158    }
4159    #[inline]
4160    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4161        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4162    }
4163}
4164
4165#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4166pub struct CreateForeignTable {
4167    pub(crate) syntax: SyntaxNode,
4168}
4169impl CreateForeignTable {
4170    #[inline]
4171    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4172        support::child(&self.syntax)
4173    }
4174    #[inline]
4175    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4176        support::child(&self.syntax)
4177    }
4178    #[inline]
4179    pub fn inherits(&self) -> Option<Inherits> {
4180        support::child(&self.syntax)
4181    }
4182    #[inline]
4183    pub fn partition_of(&self) -> Option<PartitionOf> {
4184        support::child(&self.syntax)
4185    }
4186    #[inline]
4187    pub fn partition_type(&self) -> Option<PartitionType> {
4188        support::child(&self.syntax)
4189    }
4190    #[inline]
4191    pub fn path(&self) -> Option<Path> {
4192        support::child(&self.syntax)
4193    }
4194    #[inline]
4195    pub fn server_name(&self) -> Option<ServerName> {
4196        support::child(&self.syntax)
4197    }
4198    #[inline]
4199    pub fn table_arg_list(&self) -> Option<TableArgList> {
4200        support::child(&self.syntax)
4201    }
4202    #[inline]
4203    pub fn create_token(&self) -> Option<SyntaxToken> {
4204        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4205    }
4206    #[inline]
4207    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4208        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4209    }
4210    #[inline]
4211    pub fn table_token(&self) -> Option<SyntaxToken> {
4212        support::token(&self.syntax, SyntaxKind::TABLE_KW)
4213    }
4214}
4215
4216#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4217pub struct CreateFunction {
4218    pub(crate) syntax: SyntaxNode,
4219}
4220impl CreateFunction {
4221    #[inline]
4222    pub fn option_list(&self) -> Option<FuncOptionList> {
4223        support::child(&self.syntax)
4224    }
4225    #[inline]
4226    pub fn or_replace(&self) -> Option<OrReplace> {
4227        support::child(&self.syntax)
4228    }
4229    #[inline]
4230    pub fn param_list(&self) -> Option<ParamList> {
4231        support::child(&self.syntax)
4232    }
4233    #[inline]
4234    pub fn path(&self) -> Option<Path> {
4235        support::child(&self.syntax)
4236    }
4237    #[inline]
4238    pub fn ret_type(&self) -> Option<RetType> {
4239        support::child(&self.syntax)
4240    }
4241    #[inline]
4242    pub fn create_token(&self) -> Option<SyntaxToken> {
4243        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4244    }
4245    #[inline]
4246    pub fn function_token(&self) -> Option<SyntaxToken> {
4247        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
4248    }
4249}
4250
4251#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4252pub struct CreateGroup {
4253    pub(crate) syntax: SyntaxNode,
4254}
4255impl CreateGroup {
4256    #[inline]
4257    pub fn name(&self) -> Option<Name> {
4258        support::child(&self.syntax)
4259    }
4260    #[inline]
4261    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4262        support::child(&self.syntax)
4263    }
4264    #[inline]
4265    pub fn create_token(&self) -> Option<SyntaxToken> {
4266        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4267    }
4268    #[inline]
4269    pub fn group_token(&self) -> Option<SyntaxToken> {
4270        support::token(&self.syntax, SyntaxKind::GROUP_KW)
4271    }
4272}
4273
4274#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4275pub struct CreateIndex {
4276    pub(crate) syntax: SyntaxNode,
4277}
4278impl CreateIndex {
4279    #[inline]
4280    pub fn constraint_include_clause(&self) -> Option<ConstraintIncludeClause> {
4281        support::child(&self.syntax)
4282    }
4283    #[inline]
4284    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4285        support::child(&self.syntax)
4286    }
4287    #[inline]
4288    pub fn name(&self) -> Option<Name> {
4289        support::child(&self.syntax)
4290    }
4291    #[inline]
4292    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
4293        support::child(&self.syntax)
4294    }
4295    #[inline]
4296    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
4297        support::child(&self.syntax)
4298    }
4299    #[inline]
4300    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
4301        support::child(&self.syntax)
4302    }
4303    #[inline]
4304    pub fn relation_name(&self) -> Option<RelationName> {
4305        support::child(&self.syntax)
4306    }
4307    #[inline]
4308    pub fn tablespace(&self) -> Option<Tablespace> {
4309        support::child(&self.syntax)
4310    }
4311    #[inline]
4312    pub fn using_method(&self) -> Option<UsingMethod> {
4313        support::child(&self.syntax)
4314    }
4315    #[inline]
4316    pub fn where_clause(&self) -> Option<WhereClause> {
4317        support::child(&self.syntax)
4318    }
4319    #[inline]
4320    pub fn with_params(&self) -> Option<WithParams> {
4321        support::child(&self.syntax)
4322    }
4323    #[inline]
4324    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
4325        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
4326    }
4327    #[inline]
4328    pub fn create_token(&self) -> Option<SyntaxToken> {
4329        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4330    }
4331    #[inline]
4332    pub fn index_token(&self) -> Option<SyntaxToken> {
4333        support::token(&self.syntax, SyntaxKind::INDEX_KW)
4334    }
4335    #[inline]
4336    pub fn on_token(&self) -> Option<SyntaxToken> {
4337        support::token(&self.syntax, SyntaxKind::ON_KW)
4338    }
4339    #[inline]
4340    pub fn unique_token(&self) -> Option<SyntaxToken> {
4341        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
4342    }
4343}
4344
4345#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4346pub struct CreateLanguage {
4347    pub(crate) syntax: SyntaxNode,
4348}
4349impl CreateLanguage {
4350    #[inline]
4351    pub fn name(&self) -> Option<Name> {
4352        support::child(&self.syntax)
4353    }
4354    #[inline]
4355    pub fn or_replace(&self) -> Option<OrReplace> {
4356        support::child(&self.syntax)
4357    }
4358    #[inline]
4359    pub fn path(&self) -> Option<Path> {
4360        support::child(&self.syntax)
4361    }
4362    #[inline]
4363    pub fn create_token(&self) -> Option<SyntaxToken> {
4364        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4365    }
4366    #[inline]
4367    pub fn handler_token(&self) -> Option<SyntaxToken> {
4368        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
4369    }
4370    #[inline]
4371    pub fn inline_token(&self) -> Option<SyntaxToken> {
4372        support::token(&self.syntax, SyntaxKind::INLINE_KW)
4373    }
4374    #[inline]
4375    pub fn language_token(&self) -> Option<SyntaxToken> {
4376        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
4377    }
4378    #[inline]
4379    pub fn procedural_token(&self) -> Option<SyntaxToken> {
4380        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
4381    }
4382    #[inline]
4383    pub fn trusted_token(&self) -> Option<SyntaxToken> {
4384        support::token(&self.syntax, SyntaxKind::TRUSTED_KW)
4385    }
4386    #[inline]
4387    pub fn validator_token(&self) -> Option<SyntaxToken> {
4388        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
4389    }
4390}
4391
4392#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4393pub struct CreateMaterializedView {
4394    pub(crate) syntax: SyntaxNode,
4395}
4396impl CreateMaterializedView {
4397    #[inline]
4398    pub fn column_list(&self) -> Option<ColumnList> {
4399        support::child(&self.syntax)
4400    }
4401    #[inline]
4402    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4403        support::child(&self.syntax)
4404    }
4405    #[inline]
4406    pub fn path(&self) -> Option<Path> {
4407        support::child(&self.syntax)
4408    }
4409    #[inline]
4410    pub fn query(&self) -> Option<SelectVariant> {
4411        support::child(&self.syntax)
4412    }
4413    #[inline]
4414    pub fn tablespace(&self) -> Option<Tablespace> {
4415        support::child(&self.syntax)
4416    }
4417    #[inline]
4418    pub fn using_method(&self) -> Option<UsingMethod> {
4419        support::child(&self.syntax)
4420    }
4421    #[inline]
4422    pub fn with_data(&self) -> Option<WithData> {
4423        support::child(&self.syntax)
4424    }
4425    #[inline]
4426    pub fn with_no_data(&self) -> Option<WithNoData> {
4427        support::child(&self.syntax)
4428    }
4429    #[inline]
4430    pub fn with_params(&self) -> Option<WithParams> {
4431        support::child(&self.syntax)
4432    }
4433    #[inline]
4434    pub fn as_token(&self) -> Option<SyntaxToken> {
4435        support::token(&self.syntax, SyntaxKind::AS_KW)
4436    }
4437    #[inline]
4438    pub fn create_token(&self) -> Option<SyntaxToken> {
4439        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4440    }
4441    #[inline]
4442    pub fn materialized_token(&self) -> Option<SyntaxToken> {
4443        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
4444    }
4445    #[inline]
4446    pub fn view_token(&self) -> Option<SyntaxToken> {
4447        support::token(&self.syntax, SyntaxKind::VIEW_KW)
4448    }
4449}
4450
4451#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4452pub struct CreateOperator {
4453    pub(crate) syntax: SyntaxNode,
4454}
4455impl CreateOperator {
4456    #[inline]
4457    pub fn attribute_list(&self) -> Option<AttributeList> {
4458        support::child(&self.syntax)
4459    }
4460    #[inline]
4461    pub fn op(&self) -> Option<Op> {
4462        support::child(&self.syntax)
4463    }
4464    #[inline]
4465    pub fn path(&self) -> Option<Path> {
4466        support::child(&self.syntax)
4467    }
4468    #[inline]
4469    pub fn create_token(&self) -> Option<SyntaxToken> {
4470        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4471    }
4472    #[inline]
4473    pub fn operator_token(&self) -> Option<SyntaxToken> {
4474        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4475    }
4476}
4477
4478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4479pub struct CreateOperatorClass {
4480    pub(crate) syntax: SyntaxNode,
4481}
4482impl CreateOperatorClass {
4483    #[inline]
4484    pub fn name_ref(&self) -> Option<NameRef> {
4485        support::child(&self.syntax)
4486    }
4487    #[inline]
4488    pub fn operator_class_option_list(&self) -> Option<OperatorClassOptionList> {
4489        support::child(&self.syntax)
4490    }
4491    #[inline]
4492    pub fn path(&self) -> Option<Path> {
4493        support::child(&self.syntax)
4494    }
4495    #[inline]
4496    pub fn ty(&self) -> Option<Type> {
4497        support::child(&self.syntax)
4498    }
4499    #[inline]
4500    pub fn as_token(&self) -> Option<SyntaxToken> {
4501        support::token(&self.syntax, SyntaxKind::AS_KW)
4502    }
4503    #[inline]
4504    pub fn class_token(&self) -> Option<SyntaxToken> {
4505        support::token(&self.syntax, SyntaxKind::CLASS_KW)
4506    }
4507    #[inline]
4508    pub fn create_token(&self) -> Option<SyntaxToken> {
4509        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4510    }
4511    #[inline]
4512    pub fn default_token(&self) -> Option<SyntaxToken> {
4513        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
4514    }
4515    #[inline]
4516    pub fn family_token(&self) -> Option<SyntaxToken> {
4517        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4518    }
4519    #[inline]
4520    pub fn for_token(&self) -> Option<SyntaxToken> {
4521        support::token(&self.syntax, SyntaxKind::FOR_KW)
4522    }
4523    #[inline]
4524    pub fn operator_token(&self) -> Option<SyntaxToken> {
4525        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4526    }
4527    #[inline]
4528    pub fn type_token(&self) -> Option<SyntaxToken> {
4529        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4530    }
4531    #[inline]
4532    pub fn using_token(&self) -> Option<SyntaxToken> {
4533        support::token(&self.syntax, SyntaxKind::USING_KW)
4534    }
4535}
4536
4537#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4538pub struct CreateOperatorFamily {
4539    pub(crate) syntax: SyntaxNode,
4540}
4541impl CreateOperatorFamily {
4542    #[inline]
4543    pub fn name_ref(&self) -> Option<NameRef> {
4544        support::child(&self.syntax)
4545    }
4546    #[inline]
4547    pub fn path(&self) -> Option<Path> {
4548        support::child(&self.syntax)
4549    }
4550    #[inline]
4551    pub fn create_token(&self) -> Option<SyntaxToken> {
4552        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4553    }
4554    #[inline]
4555    pub fn family_token(&self) -> Option<SyntaxToken> {
4556        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
4557    }
4558    #[inline]
4559    pub fn operator_token(&self) -> Option<SyntaxToken> {
4560        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
4561    }
4562    #[inline]
4563    pub fn using_token(&self) -> Option<SyntaxToken> {
4564        support::token(&self.syntax, SyntaxKind::USING_KW)
4565    }
4566}
4567
4568#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4569pub struct CreatePolicy {
4570    pub(crate) syntax: SyntaxNode,
4571}
4572impl CreatePolicy {
4573    #[inline]
4574    pub fn as_policy_type(&self) -> Option<AsPolicyType> {
4575        support::child(&self.syntax)
4576    }
4577    #[inline]
4578    pub fn name(&self) -> Option<Name> {
4579        support::child(&self.syntax)
4580    }
4581    #[inline]
4582    pub fn on_table(&self) -> Option<OnTable> {
4583        support::child(&self.syntax)
4584    }
4585    #[inline]
4586    pub fn role_ref_list(&self) -> Option<RoleRefList> {
4587        support::child(&self.syntax)
4588    }
4589    #[inline]
4590    pub fn using_expr_clause(&self) -> Option<UsingExprClause> {
4591        support::child(&self.syntax)
4592    }
4593    #[inline]
4594    pub fn with_check_expr_clause(&self) -> Option<WithCheckExprClause> {
4595        support::child(&self.syntax)
4596    }
4597    #[inline]
4598    pub fn all_token(&self) -> Option<SyntaxToken> {
4599        support::token(&self.syntax, SyntaxKind::ALL_KW)
4600    }
4601    #[inline]
4602    pub fn create_token(&self) -> Option<SyntaxToken> {
4603        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4604    }
4605    #[inline]
4606    pub fn delete_token(&self) -> Option<SyntaxToken> {
4607        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4608    }
4609    #[inline]
4610    pub fn for_token(&self) -> Option<SyntaxToken> {
4611        support::token(&self.syntax, SyntaxKind::FOR_KW)
4612    }
4613    #[inline]
4614    pub fn insert_token(&self) -> Option<SyntaxToken> {
4615        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4616    }
4617    #[inline]
4618    pub fn policy_token(&self) -> Option<SyntaxToken> {
4619        support::token(&self.syntax, SyntaxKind::POLICY_KW)
4620    }
4621    #[inline]
4622    pub fn select_token(&self) -> Option<SyntaxToken> {
4623        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4624    }
4625    #[inline]
4626    pub fn to_token(&self) -> Option<SyntaxToken> {
4627        support::token(&self.syntax, SyntaxKind::TO_KW)
4628    }
4629    #[inline]
4630    pub fn update_token(&self) -> Option<SyntaxToken> {
4631        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4632    }
4633}
4634
4635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4636pub struct CreateProcedure {
4637    pub(crate) syntax: SyntaxNode,
4638}
4639impl CreateProcedure {
4640    #[inline]
4641    pub fn option_list(&self) -> Option<FuncOptionList> {
4642        support::child(&self.syntax)
4643    }
4644    #[inline]
4645    pub fn or_replace(&self) -> Option<OrReplace> {
4646        support::child(&self.syntax)
4647    }
4648    #[inline]
4649    pub fn param_list(&self) -> Option<ParamList> {
4650        support::child(&self.syntax)
4651    }
4652    #[inline]
4653    pub fn path(&self) -> Option<Path> {
4654        support::child(&self.syntax)
4655    }
4656    #[inline]
4657    pub fn create_token(&self) -> Option<SyntaxToken> {
4658        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4659    }
4660    #[inline]
4661    pub fn procedure_token(&self) -> Option<SyntaxToken> {
4662        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
4663    }
4664}
4665
4666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4667pub struct CreatePropertyGraph {
4668    pub(crate) syntax: SyntaxNode,
4669}
4670impl CreatePropertyGraph {
4671    #[inline]
4672    pub fn edge_tables(&self) -> Option<EdgeTables> {
4673        support::child(&self.syntax)
4674    }
4675    #[inline]
4676    pub fn path(&self) -> Option<Path> {
4677        support::child(&self.syntax)
4678    }
4679    #[inline]
4680    pub fn persistence(&self) -> Option<Persistence> {
4681        support::child(&self.syntax)
4682    }
4683    #[inline]
4684    pub fn vertex_tables(&self) -> Option<VertexTables> {
4685        support::child(&self.syntax)
4686    }
4687    #[inline]
4688    pub fn create_token(&self) -> Option<SyntaxToken> {
4689        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4690    }
4691    #[inline]
4692    pub fn graph_token(&self) -> Option<SyntaxToken> {
4693        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
4694    }
4695    #[inline]
4696    pub fn property_token(&self) -> Option<SyntaxToken> {
4697        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
4698    }
4699}
4700
4701#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4702pub struct CreatePublication {
4703    pub(crate) syntax: SyntaxNode,
4704}
4705impl CreatePublication {
4706    #[inline]
4707    pub fn except_table_clause(&self) -> Option<ExceptTableClause> {
4708        support::child(&self.syntax)
4709    }
4710    #[inline]
4711    pub fn name(&self) -> Option<Name> {
4712        support::child(&self.syntax)
4713    }
4714    #[inline]
4715    pub fn publication_objects(&self) -> AstChildren<PublicationObject> {
4716        support::children(&self.syntax)
4717    }
4718    #[inline]
4719    pub fn with_params(&self) -> Option<WithParams> {
4720        support::child(&self.syntax)
4721    }
4722    #[inline]
4723    pub fn all_token(&self) -> Option<SyntaxToken> {
4724        support::token(&self.syntax, SyntaxKind::ALL_KW)
4725    }
4726    #[inline]
4727    pub fn create_token(&self) -> Option<SyntaxToken> {
4728        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4729    }
4730    #[inline]
4731    pub fn for_token(&self) -> Option<SyntaxToken> {
4732        support::token(&self.syntax, SyntaxKind::FOR_KW)
4733    }
4734    #[inline]
4735    pub fn publication_token(&self) -> Option<SyntaxToken> {
4736        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
4737    }
4738    #[inline]
4739    pub fn tables_token(&self) -> Option<SyntaxToken> {
4740        support::token(&self.syntax, SyntaxKind::TABLES_KW)
4741    }
4742}
4743
4744#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4745pub struct CreateRole {
4746    pub(crate) syntax: SyntaxNode,
4747}
4748impl CreateRole {
4749    #[inline]
4750    pub fn name(&self) -> Option<Name> {
4751        support::child(&self.syntax)
4752    }
4753    #[inline]
4754    pub fn role_option_list(&self) -> Option<RoleOptionList> {
4755        support::child(&self.syntax)
4756    }
4757    #[inline]
4758    pub fn create_token(&self) -> Option<SyntaxToken> {
4759        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4760    }
4761    #[inline]
4762    pub fn role_token(&self) -> Option<SyntaxToken> {
4763        support::token(&self.syntax, SyntaxKind::ROLE_KW)
4764    }
4765}
4766
4767#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4768pub struct CreateRule {
4769    pub(crate) syntax: SyntaxNode,
4770}
4771impl CreateRule {
4772    #[inline]
4773    pub fn name(&self) -> Option<Name> {
4774        support::child(&self.syntax)
4775    }
4776    #[inline]
4777    pub fn or_replace(&self) -> Option<OrReplace> {
4778        support::child(&self.syntax)
4779    }
4780    #[inline]
4781    pub fn path(&self) -> Option<Path> {
4782        support::child(&self.syntax)
4783    }
4784    #[inline]
4785    pub fn rule_stmt(&self) -> Option<RuleStmt> {
4786        support::child(&self.syntax)
4787    }
4788    #[inline]
4789    pub fn rule_stmts(&self) -> AstChildren<RuleStmt> {
4790        support::children(&self.syntax)
4791    }
4792    #[inline]
4793    pub fn where_clause(&self) -> Option<WhereClause> {
4794        support::child(&self.syntax)
4795    }
4796    #[inline]
4797    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
4798        support::token(&self.syntax, SyntaxKind::L_PAREN)
4799    }
4800    #[inline]
4801    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
4802        support::token(&self.syntax, SyntaxKind::R_PAREN)
4803    }
4804    #[inline]
4805    pub fn also_token(&self) -> Option<SyntaxToken> {
4806        support::token(&self.syntax, SyntaxKind::ALSO_KW)
4807    }
4808    #[inline]
4809    pub fn as_token(&self) -> Option<SyntaxToken> {
4810        support::token(&self.syntax, SyntaxKind::AS_KW)
4811    }
4812    #[inline]
4813    pub fn create_token(&self) -> Option<SyntaxToken> {
4814        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4815    }
4816    #[inline]
4817    pub fn delete_token(&self) -> Option<SyntaxToken> {
4818        support::token(&self.syntax, SyntaxKind::DELETE_KW)
4819    }
4820    #[inline]
4821    pub fn do_token(&self) -> Option<SyntaxToken> {
4822        support::token(&self.syntax, SyntaxKind::DO_KW)
4823    }
4824    #[inline]
4825    pub fn ident_token(&self) -> Option<SyntaxToken> {
4826        support::token(&self.syntax, SyntaxKind::IDENT)
4827    }
4828    #[inline]
4829    pub fn insert_token(&self) -> Option<SyntaxToken> {
4830        support::token(&self.syntax, SyntaxKind::INSERT_KW)
4831    }
4832    #[inline]
4833    pub fn instead_token(&self) -> Option<SyntaxToken> {
4834        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
4835    }
4836    #[inline]
4837    pub fn nothing_token(&self) -> Option<SyntaxToken> {
4838        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
4839    }
4840    #[inline]
4841    pub fn on_token(&self) -> Option<SyntaxToken> {
4842        support::token(&self.syntax, SyntaxKind::ON_KW)
4843    }
4844    #[inline]
4845    pub fn rule_token(&self) -> Option<SyntaxToken> {
4846        support::token(&self.syntax, SyntaxKind::RULE_KW)
4847    }
4848    #[inline]
4849    pub fn select_token(&self) -> Option<SyntaxToken> {
4850        support::token(&self.syntax, SyntaxKind::SELECT_KW)
4851    }
4852    #[inline]
4853    pub fn to_token(&self) -> Option<SyntaxToken> {
4854        support::token(&self.syntax, SyntaxKind::TO_KW)
4855    }
4856    #[inline]
4857    pub fn update_token(&self) -> Option<SyntaxToken> {
4858        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
4859    }
4860}
4861
4862#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4863pub struct CreateSchema {
4864    pub(crate) syntax: SyntaxNode,
4865}
4866impl CreateSchema {
4867    #[inline]
4868    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4869        support::child(&self.syntax)
4870    }
4871    #[inline]
4872    pub fn name(&self) -> Option<Name> {
4873        support::child(&self.syntax)
4874    }
4875    #[inline]
4876    pub fn role(&self) -> Option<Role> {
4877        support::child(&self.syntax)
4878    }
4879    #[inline]
4880    pub fn role_ref(&self) -> Option<RoleRef> {
4881        support::child(&self.syntax)
4882    }
4883    #[inline]
4884    pub fn schema_elements(&self) -> AstChildren<SchemaElement> {
4885        support::children(&self.syntax)
4886    }
4887    #[inline]
4888    pub fn authorization_token(&self) -> Option<SyntaxToken> {
4889        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
4890    }
4891    #[inline]
4892    pub fn create_token(&self) -> Option<SyntaxToken> {
4893        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4894    }
4895    #[inline]
4896    pub fn schema_token(&self) -> Option<SyntaxToken> {
4897        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
4898    }
4899}
4900
4901#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4902pub struct CreateSequence {
4903    pub(crate) syntax: SyntaxNode,
4904}
4905impl CreateSequence {
4906    #[inline]
4907    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4908        support::child(&self.syntax)
4909    }
4910    #[inline]
4911    pub fn path(&self) -> Option<Path> {
4912        support::child(&self.syntax)
4913    }
4914    #[inline]
4915    pub fn persistence(&self) -> Option<Persistence> {
4916        support::child(&self.syntax)
4917    }
4918    #[inline]
4919    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
4920        support::children(&self.syntax)
4921    }
4922    #[inline]
4923    pub fn create_token(&self) -> Option<SyntaxToken> {
4924        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4925    }
4926    #[inline]
4927    pub fn sequence_token(&self) -> Option<SyntaxToken> {
4928        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
4929    }
4930}
4931
4932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4933pub struct CreateServer {
4934    pub(crate) syntax: SyntaxNode,
4935}
4936impl CreateServer {
4937    #[inline]
4938    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
4939        support::child(&self.syntax)
4940    }
4941    #[inline]
4942    pub fn if_not_exists(&self) -> Option<IfNotExists> {
4943        support::child(&self.syntax)
4944    }
4945    #[inline]
4946    pub fn literal(&self) -> Option<Literal> {
4947        support::child(&self.syntax)
4948    }
4949    #[inline]
4950    pub fn name(&self) -> Option<Name> {
4951        support::child(&self.syntax)
4952    }
4953    #[inline]
4954    pub fn name_ref(&self) -> Option<NameRef> {
4955        support::child(&self.syntax)
4956    }
4957    #[inline]
4958    pub fn create_token(&self) -> Option<SyntaxToken> {
4959        support::token(&self.syntax, SyntaxKind::CREATE_KW)
4960    }
4961    #[inline]
4962    pub fn data_token(&self) -> Option<SyntaxToken> {
4963        support::token(&self.syntax, SyntaxKind::DATA_KW)
4964    }
4965    #[inline]
4966    pub fn foreign_token(&self) -> Option<SyntaxToken> {
4967        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
4968    }
4969    #[inline]
4970    pub fn server_token(&self) -> Option<SyntaxToken> {
4971        support::token(&self.syntax, SyntaxKind::SERVER_KW)
4972    }
4973    #[inline]
4974    pub fn type_token(&self) -> Option<SyntaxToken> {
4975        support::token(&self.syntax, SyntaxKind::TYPE_KW)
4976    }
4977    #[inline]
4978    pub fn version_token(&self) -> Option<SyntaxToken> {
4979        support::token(&self.syntax, SyntaxKind::VERSION_KW)
4980    }
4981    #[inline]
4982    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
4983        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
4984    }
4985}
4986
4987#[derive(Debug, Clone, PartialEq, Eq, Hash)]
4988pub struct CreateStatistics {
4989    pub(crate) syntax: SyntaxNode,
4990}
4991impl CreateStatistics {
4992    #[inline]
4993    pub fn from_table(&self) -> Option<FromTable> {
4994        support::child(&self.syntax)
4995    }
4996    #[inline]
4997    pub fn name_refs(&self) -> AstChildren<NameRef> {
4998        support::children(&self.syntax)
4999    }
5000    #[inline]
5001    pub fn path(&self) -> Option<Path> {
5002        support::child(&self.syntax)
5003    }
5004    #[inline]
5005    pub fn create_token(&self) -> Option<SyntaxToken> {
5006        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5007    }
5008    #[inline]
5009    pub fn on_token(&self) -> Option<SyntaxToken> {
5010        support::token(&self.syntax, SyntaxKind::ON_KW)
5011    }
5012    #[inline]
5013    pub fn statistics_token(&self) -> Option<SyntaxToken> {
5014        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
5015    }
5016}
5017
5018#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5019pub struct CreateSubscription {
5020    pub(crate) syntax: SyntaxNode,
5021}
5022impl CreateSubscription {
5023    #[inline]
5024    pub fn literal(&self) -> Option<Literal> {
5025        support::child(&self.syntax)
5026    }
5027    #[inline]
5028    pub fn name(&self) -> Option<Name> {
5029        support::child(&self.syntax)
5030    }
5031    #[inline]
5032    pub fn name_ref(&self) -> Option<NameRef> {
5033        support::child(&self.syntax)
5034    }
5035    #[inline]
5036    pub fn name_refs(&self) -> AstChildren<NameRef> {
5037        support::children(&self.syntax)
5038    }
5039    #[inline]
5040    pub fn with_params(&self) -> Option<WithParams> {
5041        support::child(&self.syntax)
5042    }
5043    #[inline]
5044    pub fn connection_token(&self) -> Option<SyntaxToken> {
5045        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
5046    }
5047    #[inline]
5048    pub fn create_token(&self) -> Option<SyntaxToken> {
5049        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5050    }
5051    #[inline]
5052    pub fn publication_token(&self) -> Option<SyntaxToken> {
5053        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
5054    }
5055    #[inline]
5056    pub fn server_token(&self) -> Option<SyntaxToken> {
5057        support::token(&self.syntax, SyntaxKind::SERVER_KW)
5058    }
5059    #[inline]
5060    pub fn subscription_token(&self) -> Option<SyntaxToken> {
5061        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
5062    }
5063}
5064
5065#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5066pub struct CreateTable {
5067    pub(crate) syntax: SyntaxNode,
5068}
5069impl CreateTable {
5070    #[inline]
5071    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5072        support::child(&self.syntax)
5073    }
5074    #[inline]
5075    pub fn inherits(&self) -> Option<Inherits> {
5076        support::child(&self.syntax)
5077    }
5078    #[inline]
5079    pub fn of_type(&self) -> Option<OfType> {
5080        support::child(&self.syntax)
5081    }
5082    #[inline]
5083    pub fn on_commit(&self) -> Option<OnCommit> {
5084        support::child(&self.syntax)
5085    }
5086    #[inline]
5087    pub fn partition_by(&self) -> Option<PartitionBy> {
5088        support::child(&self.syntax)
5089    }
5090    #[inline]
5091    pub fn partition_of(&self) -> Option<PartitionOf> {
5092        support::child(&self.syntax)
5093    }
5094    #[inline]
5095    pub fn path(&self) -> Option<Path> {
5096        support::child(&self.syntax)
5097    }
5098    #[inline]
5099    pub fn persistence(&self) -> Option<Persistence> {
5100        support::child(&self.syntax)
5101    }
5102    #[inline]
5103    pub fn table_arg_list(&self) -> Option<TableArgList> {
5104        support::child(&self.syntax)
5105    }
5106    #[inline]
5107    pub fn tablespace(&self) -> Option<Tablespace> {
5108        support::child(&self.syntax)
5109    }
5110    #[inline]
5111    pub fn using_method(&self) -> Option<UsingMethod> {
5112        support::child(&self.syntax)
5113    }
5114    #[inline]
5115    pub fn with_params(&self) -> Option<WithParams> {
5116        support::child(&self.syntax)
5117    }
5118    #[inline]
5119    pub fn without_oids(&self) -> Option<WithoutOids> {
5120        support::child(&self.syntax)
5121    }
5122    #[inline]
5123    pub fn create_token(&self) -> Option<SyntaxToken> {
5124        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5125    }
5126    #[inline]
5127    pub fn table_token(&self) -> Option<SyntaxToken> {
5128        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5129    }
5130}
5131
5132#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5133pub struct CreateTableAs {
5134    pub(crate) syntax: SyntaxNode,
5135}
5136impl CreateTableAs {
5137    #[inline]
5138    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5139        support::child(&self.syntax)
5140    }
5141    #[inline]
5142    pub fn on_commit(&self) -> Option<OnCommit> {
5143        support::child(&self.syntax)
5144    }
5145    #[inline]
5146    pub fn path(&self) -> Option<Path> {
5147        support::child(&self.syntax)
5148    }
5149    #[inline]
5150    pub fn persistence(&self) -> Option<Persistence> {
5151        support::child(&self.syntax)
5152    }
5153    #[inline]
5154    pub fn query(&self) -> Option<SelectVariant> {
5155        support::child(&self.syntax)
5156    }
5157    #[inline]
5158    pub fn tablespace(&self) -> Option<Tablespace> {
5159        support::child(&self.syntax)
5160    }
5161    #[inline]
5162    pub fn using_method(&self) -> Option<UsingMethod> {
5163        support::child(&self.syntax)
5164    }
5165    #[inline]
5166    pub fn with_data(&self) -> Option<WithData> {
5167        support::child(&self.syntax)
5168    }
5169    #[inline]
5170    pub fn with_no_data(&self) -> Option<WithNoData> {
5171        support::child(&self.syntax)
5172    }
5173    #[inline]
5174    pub fn with_params(&self) -> Option<WithParams> {
5175        support::child(&self.syntax)
5176    }
5177    #[inline]
5178    pub fn without_oids(&self) -> Option<WithoutOids> {
5179        support::child(&self.syntax)
5180    }
5181    #[inline]
5182    pub fn as_token(&self) -> Option<SyntaxToken> {
5183        support::token(&self.syntax, SyntaxKind::AS_KW)
5184    }
5185    #[inline]
5186    pub fn create_token(&self) -> Option<SyntaxToken> {
5187        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5188    }
5189    #[inline]
5190    pub fn table_token(&self) -> Option<SyntaxToken> {
5191        support::token(&self.syntax, SyntaxKind::TABLE_KW)
5192    }
5193}
5194
5195#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5196pub struct CreateTablespace {
5197    pub(crate) syntax: SyntaxNode,
5198}
5199impl CreateTablespace {
5200    #[inline]
5201    pub fn literal(&self) -> Option<Literal> {
5202        support::child(&self.syntax)
5203    }
5204    #[inline]
5205    pub fn name(&self) -> Option<Name> {
5206        support::child(&self.syntax)
5207    }
5208    #[inline]
5209    pub fn role_ref(&self) -> Option<RoleRef> {
5210        support::child(&self.syntax)
5211    }
5212    #[inline]
5213    pub fn with_params(&self) -> Option<WithParams> {
5214        support::child(&self.syntax)
5215    }
5216    #[inline]
5217    pub fn create_token(&self) -> Option<SyntaxToken> {
5218        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5219    }
5220    #[inline]
5221    pub fn location_token(&self) -> Option<SyntaxToken> {
5222        support::token(&self.syntax, SyntaxKind::LOCATION_KW)
5223    }
5224    #[inline]
5225    pub fn owner_token(&self) -> Option<SyntaxToken> {
5226        support::token(&self.syntax, SyntaxKind::OWNER_KW)
5227    }
5228    #[inline]
5229    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
5230        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
5231    }
5232}
5233
5234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5235pub struct CreateTextSearchConfiguration {
5236    pub(crate) syntax: SyntaxNode,
5237}
5238impl CreateTextSearchConfiguration {
5239    #[inline]
5240    pub fn attribute_list(&self) -> Option<AttributeList> {
5241        support::child(&self.syntax)
5242    }
5243    #[inline]
5244    pub fn path(&self) -> Option<Path> {
5245        support::child(&self.syntax)
5246    }
5247    #[inline]
5248    pub fn configuration_token(&self) -> Option<SyntaxToken> {
5249        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
5250    }
5251    #[inline]
5252    pub fn create_token(&self) -> Option<SyntaxToken> {
5253        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5254    }
5255    #[inline]
5256    pub fn search_token(&self) -> Option<SyntaxToken> {
5257        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5258    }
5259    #[inline]
5260    pub fn text_token(&self) -> Option<SyntaxToken> {
5261        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5262    }
5263}
5264
5265#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5266pub struct CreateTextSearchDictionary {
5267    pub(crate) syntax: SyntaxNode,
5268}
5269impl CreateTextSearchDictionary {
5270    #[inline]
5271    pub fn attribute_list(&self) -> Option<AttributeList> {
5272        support::child(&self.syntax)
5273    }
5274    #[inline]
5275    pub fn path(&self) -> Option<Path> {
5276        support::child(&self.syntax)
5277    }
5278    #[inline]
5279    pub fn create_token(&self) -> Option<SyntaxToken> {
5280        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5281    }
5282    #[inline]
5283    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
5284        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
5285    }
5286    #[inline]
5287    pub fn search_token(&self) -> Option<SyntaxToken> {
5288        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5289    }
5290    #[inline]
5291    pub fn text_token(&self) -> Option<SyntaxToken> {
5292        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5293    }
5294}
5295
5296#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5297pub struct CreateTextSearchParser {
5298    pub(crate) syntax: SyntaxNode,
5299}
5300impl CreateTextSearchParser {
5301    #[inline]
5302    pub fn attribute_list(&self) -> Option<AttributeList> {
5303        support::child(&self.syntax)
5304    }
5305    #[inline]
5306    pub fn path(&self) -> Option<Path> {
5307        support::child(&self.syntax)
5308    }
5309    #[inline]
5310    pub fn create_token(&self) -> Option<SyntaxToken> {
5311        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5312    }
5313    #[inline]
5314    pub fn parser_token(&self) -> Option<SyntaxToken> {
5315        support::token(&self.syntax, SyntaxKind::PARSER_KW)
5316    }
5317    #[inline]
5318    pub fn search_token(&self) -> Option<SyntaxToken> {
5319        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5320    }
5321    #[inline]
5322    pub fn text_token(&self) -> Option<SyntaxToken> {
5323        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5324    }
5325}
5326
5327#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5328pub struct CreateTextSearchTemplate {
5329    pub(crate) syntax: SyntaxNode,
5330}
5331impl CreateTextSearchTemplate {
5332    #[inline]
5333    pub fn attribute_list(&self) -> Option<AttributeList> {
5334        support::child(&self.syntax)
5335    }
5336    #[inline]
5337    pub fn path(&self) -> Option<Path> {
5338        support::child(&self.syntax)
5339    }
5340    #[inline]
5341    pub fn create_token(&self) -> Option<SyntaxToken> {
5342        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5343    }
5344    #[inline]
5345    pub fn search_token(&self) -> Option<SyntaxToken> {
5346        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
5347    }
5348    #[inline]
5349    pub fn template_token(&self) -> Option<SyntaxToken> {
5350        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
5351    }
5352    #[inline]
5353    pub fn text_token(&self) -> Option<SyntaxToken> {
5354        support::token(&self.syntax, SyntaxKind::TEXT_KW)
5355    }
5356}
5357
5358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5359pub struct CreateTransform {
5360    pub(crate) syntax: SyntaxNode,
5361}
5362impl CreateTransform {
5363    #[inline]
5364    pub fn from_func(&self) -> Option<TransformFromFunc> {
5365        support::child(&self.syntax)
5366    }
5367    #[inline]
5368    pub fn language(&self) -> Option<NameRef> {
5369        support::child(&self.syntax)
5370    }
5371    #[inline]
5372    pub fn or_replace(&self) -> Option<OrReplace> {
5373        support::child(&self.syntax)
5374    }
5375    #[inline]
5376    pub fn to_func(&self) -> Option<TransformToFunc> {
5377        support::child(&self.syntax)
5378    }
5379    #[inline]
5380    pub fn ty(&self) -> Option<Type> {
5381        support::child(&self.syntax)
5382    }
5383    #[inline]
5384    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5385        support::token(&self.syntax, SyntaxKind::L_PAREN)
5386    }
5387    #[inline]
5388    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5389        support::token(&self.syntax, SyntaxKind::R_PAREN)
5390    }
5391    #[inline]
5392    pub fn comma_token(&self) -> Option<SyntaxToken> {
5393        support::token(&self.syntax, SyntaxKind::COMMA)
5394    }
5395    #[inline]
5396    pub fn create_token(&self) -> Option<SyntaxToken> {
5397        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5398    }
5399    #[inline]
5400    pub fn for_token(&self) -> Option<SyntaxToken> {
5401        support::token(&self.syntax, SyntaxKind::FOR_KW)
5402    }
5403    #[inline]
5404    pub fn language_token(&self) -> Option<SyntaxToken> {
5405        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
5406    }
5407    #[inline]
5408    pub fn transform_token(&self) -> Option<SyntaxToken> {
5409        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
5410    }
5411}
5412
5413#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5414pub struct CreateTrigger {
5415    pub(crate) syntax: SyntaxNode,
5416}
5417impl CreateTrigger {
5418    #[inline]
5419    pub fn call_expr(&self) -> Option<CallExpr> {
5420        support::child(&self.syntax)
5421    }
5422    #[inline]
5423    pub fn deferrable_constraint_option(&self) -> Option<DeferrableConstraintOption> {
5424        support::child(&self.syntax)
5425    }
5426    #[inline]
5427    pub fn from_table(&self) -> Option<FromTable> {
5428        support::child(&self.syntax)
5429    }
5430    #[inline]
5431    pub fn initially_deferred_constraint_option(
5432        &self,
5433    ) -> Option<InitiallyDeferredConstraintOption> {
5434        support::child(&self.syntax)
5435    }
5436    #[inline]
5437    pub fn initially_immediate_constraint_option(
5438        &self,
5439    ) -> Option<InitiallyImmediateConstraintOption> {
5440        support::child(&self.syntax)
5441    }
5442    #[inline]
5443    pub fn name(&self) -> Option<Name> {
5444        support::child(&self.syntax)
5445    }
5446    #[inline]
5447    pub fn not_deferrable_constraint_option(&self) -> Option<NotDeferrableConstraintOption> {
5448        support::child(&self.syntax)
5449    }
5450    #[inline]
5451    pub fn on_table(&self) -> Option<OnTable> {
5452        support::child(&self.syntax)
5453    }
5454    #[inline]
5455    pub fn or_replace(&self) -> Option<OrReplace> {
5456        support::child(&self.syntax)
5457    }
5458    #[inline]
5459    pub fn referencing(&self) -> Option<Referencing> {
5460        support::child(&self.syntax)
5461    }
5462    #[inline]
5463    pub fn timing(&self) -> Option<Timing> {
5464        support::child(&self.syntax)
5465    }
5466    #[inline]
5467    pub fn trigger_event_list(&self) -> Option<TriggerEventList> {
5468        support::child(&self.syntax)
5469    }
5470    #[inline]
5471    pub fn when_condition(&self) -> Option<WhenCondition> {
5472        support::child(&self.syntax)
5473    }
5474    #[inline]
5475    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5476        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5477    }
5478    #[inline]
5479    pub fn create_token(&self) -> Option<SyntaxToken> {
5480        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5481    }
5482    #[inline]
5483    pub fn each_token(&self) -> Option<SyntaxToken> {
5484        support::token(&self.syntax, SyntaxKind::EACH_KW)
5485    }
5486    #[inline]
5487    pub fn execute_token(&self) -> Option<SyntaxToken> {
5488        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
5489    }
5490    #[inline]
5491    pub fn for_token(&self) -> Option<SyntaxToken> {
5492        support::token(&self.syntax, SyntaxKind::FOR_KW)
5493    }
5494    #[inline]
5495    pub fn function_token(&self) -> Option<SyntaxToken> {
5496        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
5497    }
5498    #[inline]
5499    pub fn procedure_token(&self) -> Option<SyntaxToken> {
5500        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
5501    }
5502    #[inline]
5503    pub fn row_token(&self) -> Option<SyntaxToken> {
5504        support::token(&self.syntax, SyntaxKind::ROW_KW)
5505    }
5506    #[inline]
5507    pub fn statement_token(&self) -> Option<SyntaxToken> {
5508        support::token(&self.syntax, SyntaxKind::STATEMENT_KW)
5509    }
5510    #[inline]
5511    pub fn trigger_token(&self) -> Option<SyntaxToken> {
5512        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
5513    }
5514}
5515
5516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5517pub struct CreateType {
5518    pub(crate) syntax: SyntaxNode,
5519}
5520impl CreateType {
5521    #[inline]
5522    pub fn attribute_list(&self) -> Option<AttributeList> {
5523        support::child(&self.syntax)
5524    }
5525    #[inline]
5526    pub fn column_list(&self) -> Option<ColumnList> {
5527        support::child(&self.syntax)
5528    }
5529    #[inline]
5530    pub fn path(&self) -> Option<Path> {
5531        support::child(&self.syntax)
5532    }
5533    #[inline]
5534    pub fn variant_list(&self) -> Option<VariantList> {
5535        support::child(&self.syntax)
5536    }
5537    #[inline]
5538    pub fn as_token(&self) -> Option<SyntaxToken> {
5539        support::token(&self.syntax, SyntaxKind::AS_KW)
5540    }
5541    #[inline]
5542    pub fn create_token(&self) -> Option<SyntaxToken> {
5543        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5544    }
5545    #[inline]
5546    pub fn enum_token(&self) -> Option<SyntaxToken> {
5547        support::token(&self.syntax, SyntaxKind::ENUM_KW)
5548    }
5549    #[inline]
5550    pub fn range_token(&self) -> Option<SyntaxToken> {
5551        support::token(&self.syntax, SyntaxKind::RANGE_KW)
5552    }
5553    #[inline]
5554    pub fn type_token(&self) -> Option<SyntaxToken> {
5555        support::token(&self.syntax, SyntaxKind::TYPE_KW)
5556    }
5557}
5558
5559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5560pub struct CreateUser {
5561    pub(crate) syntax: SyntaxNode,
5562}
5563impl CreateUser {
5564    #[inline]
5565    pub fn name(&self) -> Option<Name> {
5566        support::child(&self.syntax)
5567    }
5568    #[inline]
5569    pub fn role_option_list(&self) -> Option<RoleOptionList> {
5570        support::child(&self.syntax)
5571    }
5572    #[inline]
5573    pub fn create_token(&self) -> Option<SyntaxToken> {
5574        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5575    }
5576    #[inline]
5577    pub fn user_token(&self) -> Option<SyntaxToken> {
5578        support::token(&self.syntax, SyntaxKind::USER_KW)
5579    }
5580}
5581
5582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5583pub struct CreateUserMapping {
5584    pub(crate) syntax: SyntaxNode,
5585}
5586impl CreateUserMapping {
5587    #[inline]
5588    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
5589        support::child(&self.syntax)
5590    }
5591    #[inline]
5592    pub fn if_not_exists(&self) -> Option<IfNotExists> {
5593        support::child(&self.syntax)
5594    }
5595    #[inline]
5596    pub fn role_ref(&self) -> Option<RoleRef> {
5597        support::child(&self.syntax)
5598    }
5599    #[inline]
5600    pub fn server_name(&self) -> Option<ServerName> {
5601        support::child(&self.syntax)
5602    }
5603    #[inline]
5604    pub fn create_token(&self) -> Option<SyntaxToken> {
5605        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5606    }
5607    #[inline]
5608    pub fn for_token(&self) -> Option<SyntaxToken> {
5609        support::token(&self.syntax, SyntaxKind::FOR_KW)
5610    }
5611    #[inline]
5612    pub fn mapping_token(&self) -> Option<SyntaxToken> {
5613        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
5614    }
5615    #[inline]
5616    pub fn user_token(&self) -> Option<SyntaxToken> {
5617        support::token(&self.syntax, SyntaxKind::USER_KW)
5618    }
5619}
5620
5621#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5622pub struct CreateView {
5623    pub(crate) syntax: SyntaxNode,
5624}
5625impl CreateView {
5626    #[inline]
5627    pub fn column_list(&self) -> Option<ColumnList> {
5628        support::child(&self.syntax)
5629    }
5630    #[inline]
5631    pub fn or_replace(&self) -> Option<OrReplace> {
5632        support::child(&self.syntax)
5633    }
5634    #[inline]
5635    pub fn path(&self) -> Option<Path> {
5636        support::child(&self.syntax)
5637    }
5638    #[inline]
5639    pub fn persistence(&self) -> Option<Persistence> {
5640        support::child(&self.syntax)
5641    }
5642    #[inline]
5643    pub fn query(&self) -> Option<SelectVariant> {
5644        support::child(&self.syntax)
5645    }
5646    #[inline]
5647    pub fn with_params(&self) -> Option<WithParams> {
5648        support::child(&self.syntax)
5649    }
5650    #[inline]
5651    pub fn as_token(&self) -> Option<SyntaxToken> {
5652        support::token(&self.syntax, SyntaxKind::AS_KW)
5653    }
5654    #[inline]
5655    pub fn cascaded_token(&self) -> Option<SyntaxToken> {
5656        support::token(&self.syntax, SyntaxKind::CASCADED_KW)
5657    }
5658    #[inline]
5659    pub fn check_token(&self) -> Option<SyntaxToken> {
5660        support::token(&self.syntax, SyntaxKind::CHECK_KW)
5661    }
5662    #[inline]
5663    pub fn create_token(&self) -> Option<SyntaxToken> {
5664        support::token(&self.syntax, SyntaxKind::CREATE_KW)
5665    }
5666    #[inline]
5667    pub fn local_token(&self) -> Option<SyntaxToken> {
5668        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
5669    }
5670    #[inline]
5671    pub fn option_token(&self) -> Option<SyntaxToken> {
5672        support::token(&self.syntax, SyntaxKind::OPTION_KW)
5673    }
5674    #[inline]
5675    pub fn recursive_token(&self) -> Option<SyntaxToken> {
5676        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
5677    }
5678    #[inline]
5679    pub fn view_token(&self) -> Option<SyntaxToken> {
5680        support::token(&self.syntax, SyntaxKind::VIEW_KW)
5681    }
5682    #[inline]
5683    pub fn with_token(&self) -> Option<SyntaxToken> {
5684        support::token(&self.syntax, SyntaxKind::WITH_KW)
5685    }
5686}
5687
5688#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5689pub struct CustomOp {
5690    pub(crate) syntax: SyntaxNode,
5691}
5692impl CustomOp {
5693    #[inline]
5694    pub fn bang_token(&self) -> Option<SyntaxToken> {
5695        support::token(&self.syntax, SyntaxKind::BANG)
5696    }
5697    #[inline]
5698    pub fn pound_token(&self) -> Option<SyntaxToken> {
5699        support::token(&self.syntax, SyntaxKind::POUND)
5700    }
5701    #[inline]
5702    pub fn percent_token(&self) -> Option<SyntaxToken> {
5703        support::token(&self.syntax, SyntaxKind::PERCENT)
5704    }
5705    #[inline]
5706    pub fn amp_token(&self) -> Option<SyntaxToken> {
5707        support::token(&self.syntax, SyntaxKind::AMP)
5708    }
5709    #[inline]
5710    pub fn star_token(&self) -> Option<SyntaxToken> {
5711        support::token(&self.syntax, SyntaxKind::STAR)
5712    }
5713    #[inline]
5714    pub fn plus_token(&self) -> Option<SyntaxToken> {
5715        support::token(&self.syntax, SyntaxKind::PLUS)
5716    }
5717    #[inline]
5718    pub fn minus_token(&self) -> Option<SyntaxToken> {
5719        support::token(&self.syntax, SyntaxKind::MINUS)
5720    }
5721    #[inline]
5722    pub fn slash_token(&self) -> Option<SyntaxToken> {
5723        support::token(&self.syntax, SyntaxKind::SLASH)
5724    }
5725    #[inline]
5726    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
5727        support::token(&self.syntax, SyntaxKind::L_ANGLE)
5728    }
5729    #[inline]
5730    pub fn eq_token(&self) -> Option<SyntaxToken> {
5731        support::token(&self.syntax, SyntaxKind::EQ)
5732    }
5733    #[inline]
5734    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
5735        support::token(&self.syntax, SyntaxKind::R_ANGLE)
5736    }
5737    #[inline]
5738    pub fn question_token(&self) -> Option<SyntaxToken> {
5739        support::token(&self.syntax, SyntaxKind::QUESTION)
5740    }
5741    #[inline]
5742    pub fn at_token(&self) -> Option<SyntaxToken> {
5743        support::token(&self.syntax, SyntaxKind::AT)
5744    }
5745    #[inline]
5746    pub fn caret_token(&self) -> Option<SyntaxToken> {
5747        support::token(&self.syntax, SyntaxKind::CARET)
5748    }
5749    #[inline]
5750    pub fn backtick_token(&self) -> Option<SyntaxToken> {
5751        support::token(&self.syntax, SyntaxKind::BACKTICK)
5752    }
5753    #[inline]
5754    pub fn pipe_token(&self) -> Option<SyntaxToken> {
5755        support::token(&self.syntax, SyntaxKind::PIPE)
5756    }
5757    #[inline]
5758    pub fn tilde_token(&self) -> Option<SyntaxToken> {
5759        support::token(&self.syntax, SyntaxKind::TILDE)
5760    }
5761}
5762
5763#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5764pub struct Deallocate {
5765    pub(crate) syntax: SyntaxNode,
5766}
5767impl Deallocate {
5768    #[inline]
5769    pub fn name_ref(&self) -> Option<NameRef> {
5770        support::child(&self.syntax)
5771    }
5772    #[inline]
5773    pub fn all_token(&self) -> Option<SyntaxToken> {
5774        support::token(&self.syntax, SyntaxKind::ALL_KW)
5775    }
5776    #[inline]
5777    pub fn deallocate_token(&self) -> Option<SyntaxToken> {
5778        support::token(&self.syntax, SyntaxKind::DEALLOCATE_KW)
5779    }
5780    #[inline]
5781    pub fn prepare_token(&self) -> Option<SyntaxToken> {
5782        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
5783    }
5784}
5785
5786#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5787pub struct Declare {
5788    pub(crate) syntax: SyntaxNode,
5789}
5790impl Declare {
5791    #[inline]
5792    pub fn name(&self) -> Option<Name> {
5793        support::child(&self.syntax)
5794    }
5795    #[inline]
5796    pub fn query(&self) -> Option<SelectVariant> {
5797        support::child(&self.syntax)
5798    }
5799    #[inline]
5800    pub fn asensitive_token(&self) -> Option<SyntaxToken> {
5801        support::token(&self.syntax, SyntaxKind::ASENSITIVE_KW)
5802    }
5803    #[inline]
5804    pub fn binary_token(&self) -> Option<SyntaxToken> {
5805        support::token(&self.syntax, SyntaxKind::BINARY_KW)
5806    }
5807    #[inline]
5808    pub fn cursor_token(&self) -> Option<SyntaxToken> {
5809        support::token(&self.syntax, SyntaxKind::CURSOR_KW)
5810    }
5811    #[inline]
5812    pub fn declare_token(&self) -> Option<SyntaxToken> {
5813        support::token(&self.syntax, SyntaxKind::DECLARE_KW)
5814    }
5815    #[inline]
5816    pub fn for_token(&self) -> Option<SyntaxToken> {
5817        support::token(&self.syntax, SyntaxKind::FOR_KW)
5818    }
5819    #[inline]
5820    pub fn hold_token(&self) -> Option<SyntaxToken> {
5821        support::token(&self.syntax, SyntaxKind::HOLD_KW)
5822    }
5823    #[inline]
5824    pub fn insensitive_token(&self) -> Option<SyntaxToken> {
5825        support::token(&self.syntax, SyntaxKind::INSENSITIVE_KW)
5826    }
5827    #[inline]
5828    pub fn no_token(&self) -> Option<SyntaxToken> {
5829        support::token(&self.syntax, SyntaxKind::NO_KW)
5830    }
5831    #[inline]
5832    pub fn scroll_token(&self) -> Option<SyntaxToken> {
5833        support::token(&self.syntax, SyntaxKind::SCROLL_KW)
5834    }
5835    #[inline]
5836    pub fn with_token(&self) -> Option<SyntaxToken> {
5837        support::token(&self.syntax, SyntaxKind::WITH_KW)
5838    }
5839    #[inline]
5840    pub fn without_token(&self) -> Option<SyntaxToken> {
5841        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
5842    }
5843}
5844
5845#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5846pub struct DefaultConstraint {
5847    pub(crate) syntax: SyntaxNode,
5848}
5849impl DefaultConstraint {
5850    #[inline]
5851    pub fn expr(&self) -> Option<Expr> {
5852        support::child(&self.syntax)
5853    }
5854    #[inline]
5855    pub fn name_ref(&self) -> Option<NameRef> {
5856        support::child(&self.syntax)
5857    }
5858    #[inline]
5859    pub fn constraint_token(&self) -> Option<SyntaxToken> {
5860        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
5861    }
5862    #[inline]
5863    pub fn default_token(&self) -> Option<SyntaxToken> {
5864        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
5865    }
5866}
5867
5868#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5869pub struct Deferrable {
5870    pub(crate) syntax: SyntaxNode,
5871}
5872impl Deferrable {
5873    #[inline]
5874    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5875        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5876    }
5877}
5878
5879#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5880pub struct DeferrableConstraintOption {
5881    pub(crate) syntax: SyntaxNode,
5882}
5883impl DeferrableConstraintOption {
5884    #[inline]
5885    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
5886        support::token(&self.syntax, SyntaxKind::DEFERRABLE_KW)
5887    }
5888}
5889
5890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5891pub struct Delete {
5892    pub(crate) syntax: SyntaxNode,
5893}
5894impl Delete {
5895    #[inline]
5896    pub fn alias(&self) -> Option<Alias> {
5897        support::child(&self.syntax)
5898    }
5899    #[inline]
5900    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
5901        support::child(&self.syntax)
5902    }
5903    #[inline]
5904    pub fn relation_name(&self) -> Option<RelationName> {
5905        support::child(&self.syntax)
5906    }
5907    #[inline]
5908    pub fn returning_clause(&self) -> Option<ReturningClause> {
5909        support::child(&self.syntax)
5910    }
5911    #[inline]
5912    pub fn using_clause(&self) -> Option<UsingClause> {
5913        support::child(&self.syntax)
5914    }
5915    #[inline]
5916    pub fn where_clause(&self) -> Option<WhereClause> {
5917        support::child(&self.syntax)
5918    }
5919    #[inline]
5920    pub fn where_current_of(&self) -> Option<WhereCurrentOf> {
5921        support::child(&self.syntax)
5922    }
5923    #[inline]
5924    pub fn with_clause(&self) -> Option<WithClause> {
5925        support::child(&self.syntax)
5926    }
5927    #[inline]
5928    pub fn delete_token(&self) -> Option<SyntaxToken> {
5929        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5930    }
5931    #[inline]
5932    pub fn from_token(&self) -> Option<SyntaxToken> {
5933        support::token(&self.syntax, SyntaxKind::FROM_KW)
5934    }
5935}
5936
5937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5938pub struct DeleteRows {
5939    pub(crate) syntax: SyntaxNode,
5940}
5941impl DeleteRows {
5942    #[inline]
5943    pub fn delete_token(&self) -> Option<SyntaxToken> {
5944        support::token(&self.syntax, SyntaxKind::DELETE_KW)
5945    }
5946    #[inline]
5947    pub fn rows_token(&self) -> Option<SyntaxToken> {
5948        support::token(&self.syntax, SyntaxKind::ROWS_KW)
5949    }
5950}
5951
5952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5953pub struct DependsOnExtension {
5954    pub(crate) syntax: SyntaxNode,
5955}
5956impl DependsOnExtension {
5957    #[inline]
5958    pub fn name_ref(&self) -> Option<NameRef> {
5959        support::child(&self.syntax)
5960    }
5961    #[inline]
5962    pub fn depends_token(&self) -> Option<SyntaxToken> {
5963        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
5964    }
5965    #[inline]
5966    pub fn extension_token(&self) -> Option<SyntaxToken> {
5967        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
5968    }
5969    #[inline]
5970    pub fn on_token(&self) -> Option<SyntaxToken> {
5971        support::token(&self.syntax, SyntaxKind::ON_KW)
5972    }
5973}
5974
5975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
5976pub struct DestVertexTable {
5977    pub(crate) syntax: SyntaxNode,
5978}
5979impl DestVertexTable {
5980    #[inline]
5981    pub fn column_list(&self) -> Option<ColumnList> {
5982        support::child(&self.syntax)
5983    }
5984    #[inline]
5985    pub fn name_ref(&self) -> Option<NameRef> {
5986        support::child(&self.syntax)
5987    }
5988    #[inline]
5989    pub fn references_table(&self) -> Option<ReferencesTable> {
5990        support::child(&self.syntax)
5991    }
5992    #[inline]
5993    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
5994        support::token(&self.syntax, SyntaxKind::L_PAREN)
5995    }
5996    #[inline]
5997    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
5998        support::token(&self.syntax, SyntaxKind::R_PAREN)
5999    }
6000    #[inline]
6001    pub fn destination_token(&self) -> Option<SyntaxToken> {
6002        support::token(&self.syntax, SyntaxKind::DESTINATION_KW)
6003    }
6004    #[inline]
6005    pub fn key_token(&self) -> Option<SyntaxToken> {
6006        support::token(&self.syntax, SyntaxKind::KEY_KW)
6007    }
6008}
6009
6010#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6011pub struct DetachPartition {
6012    pub(crate) syntax: SyntaxNode,
6013}
6014impl DetachPartition {
6015    #[inline]
6016    pub fn path(&self) -> Option<Path> {
6017        support::child(&self.syntax)
6018    }
6019    #[inline]
6020    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6021        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6022    }
6023    #[inline]
6024    pub fn detach_token(&self) -> Option<SyntaxToken> {
6025        support::token(&self.syntax, SyntaxKind::DETACH_KW)
6026    }
6027    #[inline]
6028    pub fn finalize_token(&self) -> Option<SyntaxToken> {
6029        support::token(&self.syntax, SyntaxKind::FINALIZE_KW)
6030    }
6031    #[inline]
6032    pub fn partition_token(&self) -> Option<SyntaxToken> {
6033        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
6034    }
6035}
6036
6037#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6038pub struct DisableRls {
6039    pub(crate) syntax: SyntaxNode,
6040}
6041impl DisableRls {
6042    #[inline]
6043    pub fn disable_token(&self) -> Option<SyntaxToken> {
6044        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6045    }
6046    #[inline]
6047    pub fn level_token(&self) -> Option<SyntaxToken> {
6048        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
6049    }
6050    #[inline]
6051    pub fn row_token(&self) -> Option<SyntaxToken> {
6052        support::token(&self.syntax, SyntaxKind::ROW_KW)
6053    }
6054    #[inline]
6055    pub fn security_token(&self) -> Option<SyntaxToken> {
6056        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
6057    }
6058}
6059
6060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6061pub struct DisableRule {
6062    pub(crate) syntax: SyntaxNode,
6063}
6064impl DisableRule {
6065    #[inline]
6066    pub fn disable_token(&self) -> Option<SyntaxToken> {
6067        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6068    }
6069    #[inline]
6070    pub fn rule_token(&self) -> Option<SyntaxToken> {
6071        support::token(&self.syntax, SyntaxKind::RULE_KW)
6072    }
6073}
6074
6075#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6076pub struct DisableTrigger {
6077    pub(crate) syntax: SyntaxNode,
6078}
6079impl DisableTrigger {
6080    #[inline]
6081    pub fn disable_token(&self) -> Option<SyntaxToken> {
6082        support::token(&self.syntax, SyntaxKind::DISABLE_KW)
6083    }
6084    #[inline]
6085    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6086        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6087    }
6088}
6089
6090#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6091pub struct Discard {
6092    pub(crate) syntax: SyntaxNode,
6093}
6094impl Discard {
6095    #[inline]
6096    pub fn all_token(&self) -> Option<SyntaxToken> {
6097        support::token(&self.syntax, SyntaxKind::ALL_KW)
6098    }
6099    #[inline]
6100    pub fn discard_token(&self) -> Option<SyntaxToken> {
6101        support::token(&self.syntax, SyntaxKind::DISCARD_KW)
6102    }
6103    #[inline]
6104    pub fn plans_token(&self) -> Option<SyntaxToken> {
6105        support::token(&self.syntax, SyntaxKind::PLANS_KW)
6106    }
6107    #[inline]
6108    pub fn sequences_token(&self) -> Option<SyntaxToken> {
6109        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
6110    }
6111    #[inline]
6112    pub fn temp_token(&self) -> Option<SyntaxToken> {
6113        support::token(&self.syntax, SyntaxKind::TEMP_KW)
6114    }
6115    #[inline]
6116    pub fn temporary_token(&self) -> Option<SyntaxToken> {
6117        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
6118    }
6119}
6120
6121#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6122pub struct DistinctClause {
6123    pub(crate) syntax: SyntaxNode,
6124}
6125impl DistinctClause {
6126    #[inline]
6127    pub fn exprs(&self) -> AstChildren<Expr> {
6128        support::children(&self.syntax)
6129    }
6130    #[inline]
6131    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6132        support::token(&self.syntax, SyntaxKind::L_PAREN)
6133    }
6134    #[inline]
6135    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6136        support::token(&self.syntax, SyntaxKind::R_PAREN)
6137    }
6138    #[inline]
6139    pub fn distinct_token(&self) -> Option<SyntaxToken> {
6140        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
6141    }
6142    #[inline]
6143    pub fn on_token(&self) -> Option<SyntaxToken> {
6144        support::token(&self.syntax, SyntaxKind::ON_KW)
6145    }
6146}
6147
6148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6149pub struct Do {
6150    pub(crate) syntax: SyntaxNode,
6151}
6152impl Do {
6153    #[inline]
6154    pub fn do_token(&self) -> Option<SyntaxToken> {
6155        support::token(&self.syntax, SyntaxKind::DO_KW)
6156    }
6157}
6158
6159#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6160pub struct DoubleType {
6161    pub(crate) syntax: SyntaxNode,
6162}
6163impl DoubleType {
6164    #[inline]
6165    pub fn double_token(&self) -> Option<SyntaxToken> {
6166        support::token(&self.syntax, SyntaxKind::DOUBLE_KW)
6167    }
6168    #[inline]
6169    pub fn precision_token(&self) -> Option<SyntaxToken> {
6170        support::token(&self.syntax, SyntaxKind::PRECISION_KW)
6171    }
6172    #[inline]
6173    pub fn setof_token(&self) -> Option<SyntaxToken> {
6174        support::token(&self.syntax, SyntaxKind::SETOF_KW)
6175    }
6176}
6177
6178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6179pub struct Drop {
6180    pub(crate) syntax: SyntaxNode,
6181}
6182impl Drop {
6183    #[inline]
6184    pub fn drop_token(&self) -> Option<SyntaxToken> {
6185        support::token(&self.syntax, SyntaxKind::DROP_KW)
6186    }
6187}
6188
6189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6190pub struct DropAccessMethod {
6191    pub(crate) syntax: SyntaxNode,
6192}
6193impl DropAccessMethod {
6194    #[inline]
6195    pub fn if_exists(&self) -> Option<IfExists> {
6196        support::child(&self.syntax)
6197    }
6198    #[inline]
6199    pub fn name_ref(&self) -> Option<NameRef> {
6200        support::child(&self.syntax)
6201    }
6202    #[inline]
6203    pub fn access_token(&self) -> Option<SyntaxToken> {
6204        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
6205    }
6206    #[inline]
6207    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6208        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6209    }
6210    #[inline]
6211    pub fn drop_token(&self) -> Option<SyntaxToken> {
6212        support::token(&self.syntax, SyntaxKind::DROP_KW)
6213    }
6214    #[inline]
6215    pub fn method_token(&self) -> Option<SyntaxToken> {
6216        support::token(&self.syntax, SyntaxKind::METHOD_KW)
6217    }
6218    #[inline]
6219    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6220        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6221    }
6222}
6223
6224#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6225pub struct DropAggregate {
6226    pub(crate) syntax: SyntaxNode,
6227}
6228impl DropAggregate {
6229    #[inline]
6230    pub fn aggregates(&self) -> AstChildren<Aggregate> {
6231        support::children(&self.syntax)
6232    }
6233    #[inline]
6234    pub fn if_exists(&self) -> Option<IfExists> {
6235        support::child(&self.syntax)
6236    }
6237    #[inline]
6238    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
6239        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
6240    }
6241    #[inline]
6242    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6243        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6244    }
6245    #[inline]
6246    pub fn drop_token(&self) -> Option<SyntaxToken> {
6247        support::token(&self.syntax, SyntaxKind::DROP_KW)
6248    }
6249    #[inline]
6250    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6251        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6252    }
6253}
6254
6255#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6256pub struct DropAttribute {
6257    pub(crate) syntax: SyntaxNode,
6258}
6259impl DropAttribute {
6260    #[inline]
6261    pub fn cascade(&self) -> Option<Cascade> {
6262        support::child(&self.syntax)
6263    }
6264    #[inline]
6265    pub fn if_exists(&self) -> Option<IfExists> {
6266        support::child(&self.syntax)
6267    }
6268    #[inline]
6269    pub fn restrict(&self) -> Option<Restrict> {
6270        support::child(&self.syntax)
6271    }
6272    #[inline]
6273    pub fn attribute_token(&self) -> Option<SyntaxToken> {
6274        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
6275    }
6276    #[inline]
6277    pub fn drop_token(&self) -> Option<SyntaxToken> {
6278        support::token(&self.syntax, SyntaxKind::DROP_KW)
6279    }
6280}
6281
6282#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6283pub struct DropCast {
6284    pub(crate) syntax: SyntaxNode,
6285}
6286impl DropCast {
6287    #[inline]
6288    pub fn cast_sig(&self) -> Option<CastSig> {
6289        support::child(&self.syntax)
6290    }
6291    #[inline]
6292    pub fn if_exists(&self) -> Option<IfExists> {
6293        support::child(&self.syntax)
6294    }
6295    #[inline]
6296    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6297        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6298    }
6299    #[inline]
6300    pub fn cast_token(&self) -> Option<SyntaxToken> {
6301        support::token(&self.syntax, SyntaxKind::CAST_KW)
6302    }
6303    #[inline]
6304    pub fn drop_token(&self) -> Option<SyntaxToken> {
6305        support::token(&self.syntax, SyntaxKind::DROP_KW)
6306    }
6307    #[inline]
6308    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6309        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6310    }
6311}
6312
6313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6314pub struct DropCollation {
6315    pub(crate) syntax: SyntaxNode,
6316}
6317impl DropCollation {
6318    #[inline]
6319    pub fn if_exists(&self) -> Option<IfExists> {
6320        support::child(&self.syntax)
6321    }
6322    #[inline]
6323    pub fn paths(&self) -> AstChildren<Path> {
6324        support::children(&self.syntax)
6325    }
6326    #[inline]
6327    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6328        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6329    }
6330    #[inline]
6331    pub fn collation_token(&self) -> Option<SyntaxToken> {
6332        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
6333    }
6334    #[inline]
6335    pub fn drop_token(&self) -> Option<SyntaxToken> {
6336        support::token(&self.syntax, SyntaxKind::DROP_KW)
6337    }
6338    #[inline]
6339    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6340        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6341    }
6342}
6343
6344#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6345pub struct DropColumn {
6346    pub(crate) syntax: SyntaxNode,
6347}
6348impl DropColumn {
6349    #[inline]
6350    pub fn if_exists(&self) -> Option<IfExists> {
6351        support::child(&self.syntax)
6352    }
6353    #[inline]
6354    pub fn name_ref(&self) -> Option<NameRef> {
6355        support::child(&self.syntax)
6356    }
6357    #[inline]
6358    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6359        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6360    }
6361    #[inline]
6362    pub fn column_token(&self) -> Option<SyntaxToken> {
6363        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
6364    }
6365    #[inline]
6366    pub fn drop_token(&self) -> Option<SyntaxToken> {
6367        support::token(&self.syntax, SyntaxKind::DROP_KW)
6368    }
6369    #[inline]
6370    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6371        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6372    }
6373}
6374
6375#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6376pub struct DropConstraint {
6377    pub(crate) syntax: SyntaxNode,
6378}
6379impl DropConstraint {
6380    #[inline]
6381    pub fn if_exists(&self) -> Option<IfExists> {
6382        support::child(&self.syntax)
6383    }
6384    #[inline]
6385    pub fn name_ref(&self) -> Option<NameRef> {
6386        support::child(&self.syntax)
6387    }
6388    #[inline]
6389    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6390        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6391    }
6392    #[inline]
6393    pub fn constraint_token(&self) -> Option<SyntaxToken> {
6394        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
6395    }
6396    #[inline]
6397    pub fn drop_token(&self) -> Option<SyntaxToken> {
6398        support::token(&self.syntax, SyntaxKind::DROP_KW)
6399    }
6400    #[inline]
6401    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6402        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6403    }
6404}
6405
6406#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6407pub struct DropConversion {
6408    pub(crate) syntax: SyntaxNode,
6409}
6410impl DropConversion {
6411    #[inline]
6412    pub fn if_exists(&self) -> Option<IfExists> {
6413        support::child(&self.syntax)
6414    }
6415    #[inline]
6416    pub fn path(&self) -> Option<Path> {
6417        support::child(&self.syntax)
6418    }
6419    #[inline]
6420    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6421        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6422    }
6423    #[inline]
6424    pub fn conversion_token(&self) -> Option<SyntaxToken> {
6425        support::token(&self.syntax, SyntaxKind::CONVERSION_KW)
6426    }
6427    #[inline]
6428    pub fn drop_token(&self) -> Option<SyntaxToken> {
6429        support::token(&self.syntax, SyntaxKind::DROP_KW)
6430    }
6431    #[inline]
6432    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6433        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6434    }
6435}
6436
6437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6438pub struct DropDatabase {
6439    pub(crate) syntax: SyntaxNode,
6440}
6441impl DropDatabase {
6442    #[inline]
6443    pub fn if_exists(&self) -> Option<IfExists> {
6444        support::child(&self.syntax)
6445    }
6446    #[inline]
6447    pub fn name_ref(&self) -> Option<NameRef> {
6448        support::child(&self.syntax)
6449    }
6450    #[inline]
6451    pub fn database_token(&self) -> Option<SyntaxToken> {
6452        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
6453    }
6454    #[inline]
6455    pub fn drop_token(&self) -> Option<SyntaxToken> {
6456        support::token(&self.syntax, SyntaxKind::DROP_KW)
6457    }
6458}
6459
6460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6461pub struct DropDefault {
6462    pub(crate) syntax: SyntaxNode,
6463}
6464impl DropDefault {
6465    #[inline]
6466    pub fn default_token(&self) -> Option<SyntaxToken> {
6467        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
6468    }
6469    #[inline]
6470    pub fn drop_token(&self) -> Option<SyntaxToken> {
6471        support::token(&self.syntax, SyntaxKind::DROP_KW)
6472    }
6473}
6474
6475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6476pub struct DropDomain {
6477    pub(crate) syntax: SyntaxNode,
6478}
6479impl DropDomain {
6480    #[inline]
6481    pub fn if_exists(&self) -> Option<IfExists> {
6482        support::child(&self.syntax)
6483    }
6484    #[inline]
6485    pub fn paths(&self) -> AstChildren<Path> {
6486        support::children(&self.syntax)
6487    }
6488    #[inline]
6489    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6490        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6491    }
6492    #[inline]
6493    pub fn domain_token(&self) -> Option<SyntaxToken> {
6494        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
6495    }
6496    #[inline]
6497    pub fn drop_token(&self) -> Option<SyntaxToken> {
6498        support::token(&self.syntax, SyntaxKind::DROP_KW)
6499    }
6500    #[inline]
6501    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6502        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6503    }
6504}
6505
6506#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6507pub struct DropEdgeTables {
6508    pub(crate) syntax: SyntaxNode,
6509}
6510impl DropEdgeTables {
6511    #[inline]
6512    pub fn names(&self) -> AstChildren<Name> {
6513        support::children(&self.syntax)
6514    }
6515    #[inline]
6516    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
6517        support::token(&self.syntax, SyntaxKind::L_PAREN)
6518    }
6519    #[inline]
6520    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
6521        support::token(&self.syntax, SyntaxKind::R_PAREN)
6522    }
6523    #[inline]
6524    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6525        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6526    }
6527    #[inline]
6528    pub fn drop_token(&self) -> Option<SyntaxToken> {
6529        support::token(&self.syntax, SyntaxKind::DROP_KW)
6530    }
6531    #[inline]
6532    pub fn edge_token(&self) -> Option<SyntaxToken> {
6533        support::token(&self.syntax, SyntaxKind::EDGE_KW)
6534    }
6535    #[inline]
6536    pub fn relationship_token(&self) -> Option<SyntaxToken> {
6537        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
6538    }
6539    #[inline]
6540    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6541        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6542    }
6543    #[inline]
6544    pub fn tables_token(&self) -> Option<SyntaxToken> {
6545        support::token(&self.syntax, SyntaxKind::TABLES_KW)
6546    }
6547}
6548
6549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6550pub struct DropEventTrigger {
6551    pub(crate) syntax: SyntaxNode,
6552}
6553impl DropEventTrigger {
6554    #[inline]
6555    pub fn if_exists(&self) -> Option<IfExists> {
6556        support::child(&self.syntax)
6557    }
6558    #[inline]
6559    pub fn name_ref(&self) -> Option<NameRef> {
6560        support::child(&self.syntax)
6561    }
6562    #[inline]
6563    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6564        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6565    }
6566    #[inline]
6567    pub fn drop_token(&self) -> Option<SyntaxToken> {
6568        support::token(&self.syntax, SyntaxKind::DROP_KW)
6569    }
6570    #[inline]
6571    pub fn event_token(&self) -> Option<SyntaxToken> {
6572        support::token(&self.syntax, SyntaxKind::EVENT_KW)
6573    }
6574    #[inline]
6575    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6576        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6577    }
6578    #[inline]
6579    pub fn trigger_token(&self) -> Option<SyntaxToken> {
6580        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
6581    }
6582}
6583
6584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6585pub struct DropExpression {
6586    pub(crate) syntax: SyntaxNode,
6587}
6588impl DropExpression {
6589    #[inline]
6590    pub fn if_exists(&self) -> Option<IfExists> {
6591        support::child(&self.syntax)
6592    }
6593    #[inline]
6594    pub fn drop_token(&self) -> Option<SyntaxToken> {
6595        support::token(&self.syntax, SyntaxKind::DROP_KW)
6596    }
6597    #[inline]
6598    pub fn expression_token(&self) -> Option<SyntaxToken> {
6599        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
6600    }
6601}
6602
6603#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6604pub struct DropExtension {
6605    pub(crate) syntax: SyntaxNode,
6606}
6607impl DropExtension {
6608    #[inline]
6609    pub fn if_exists(&self) -> Option<IfExists> {
6610        support::child(&self.syntax)
6611    }
6612    #[inline]
6613    pub fn name_refs(&self) -> AstChildren<NameRef> {
6614        support::children(&self.syntax)
6615    }
6616    #[inline]
6617    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6618        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6619    }
6620    #[inline]
6621    pub fn drop_token(&self) -> Option<SyntaxToken> {
6622        support::token(&self.syntax, SyntaxKind::DROP_KW)
6623    }
6624    #[inline]
6625    pub fn extension_token(&self) -> Option<SyntaxToken> {
6626        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
6627    }
6628    #[inline]
6629    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6630        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6631    }
6632}
6633
6634#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6635pub struct DropForeignDataWrapper {
6636    pub(crate) syntax: SyntaxNode,
6637}
6638impl DropForeignDataWrapper {
6639    #[inline]
6640    pub fn if_exists(&self) -> Option<IfExists> {
6641        support::child(&self.syntax)
6642    }
6643    #[inline]
6644    pub fn name_refs(&self) -> AstChildren<NameRef> {
6645        support::children(&self.syntax)
6646    }
6647    #[inline]
6648    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6649        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6650    }
6651    #[inline]
6652    pub fn data_token(&self) -> Option<SyntaxToken> {
6653        support::token(&self.syntax, SyntaxKind::DATA_KW)
6654    }
6655    #[inline]
6656    pub fn drop_token(&self) -> Option<SyntaxToken> {
6657        support::token(&self.syntax, SyntaxKind::DROP_KW)
6658    }
6659    #[inline]
6660    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6661        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6662    }
6663    #[inline]
6664    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6665        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6666    }
6667    #[inline]
6668    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
6669        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
6670    }
6671}
6672
6673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6674pub struct DropForeignTable {
6675    pub(crate) syntax: SyntaxNode,
6676}
6677impl DropForeignTable {
6678    #[inline]
6679    pub fn if_exists(&self) -> Option<IfExists> {
6680        support::child(&self.syntax)
6681    }
6682    #[inline]
6683    pub fn path(&self) -> Option<Path> {
6684        support::child(&self.syntax)
6685    }
6686    #[inline]
6687    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6688        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6689    }
6690    #[inline]
6691    pub fn drop_token(&self) -> Option<SyntaxToken> {
6692        support::token(&self.syntax, SyntaxKind::DROP_KW)
6693    }
6694    #[inline]
6695    pub fn foreign_token(&self) -> Option<SyntaxToken> {
6696        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
6697    }
6698    #[inline]
6699    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6700        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6701    }
6702    #[inline]
6703    pub fn table_token(&self) -> Option<SyntaxToken> {
6704        support::token(&self.syntax, SyntaxKind::TABLE_KW)
6705    }
6706}
6707
6708#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6709pub struct DropFunction {
6710    pub(crate) syntax: SyntaxNode,
6711}
6712impl DropFunction {
6713    #[inline]
6714    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
6715        support::child(&self.syntax)
6716    }
6717    #[inline]
6718    pub fn if_exists(&self) -> Option<IfExists> {
6719        support::child(&self.syntax)
6720    }
6721    #[inline]
6722    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6723        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6724    }
6725    #[inline]
6726    pub fn drop_token(&self) -> Option<SyntaxToken> {
6727        support::token(&self.syntax, SyntaxKind::DROP_KW)
6728    }
6729    #[inline]
6730    pub fn function_token(&self) -> Option<SyntaxToken> {
6731        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6732    }
6733    #[inline]
6734    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6735        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6736    }
6737}
6738
6739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6740pub struct DropGroup {
6741    pub(crate) syntax: SyntaxNode,
6742}
6743impl DropGroup {
6744    #[inline]
6745    pub fn if_exists(&self) -> Option<IfExists> {
6746        support::child(&self.syntax)
6747    }
6748    #[inline]
6749    pub fn name_refs(&self) -> AstChildren<NameRef> {
6750        support::children(&self.syntax)
6751    }
6752    #[inline]
6753    pub fn drop_token(&self) -> Option<SyntaxToken> {
6754        support::token(&self.syntax, SyntaxKind::DROP_KW)
6755    }
6756    #[inline]
6757    pub fn group_token(&self) -> Option<SyntaxToken> {
6758        support::token(&self.syntax, SyntaxKind::GROUP_KW)
6759    }
6760}
6761
6762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6763pub struct DropIdentity {
6764    pub(crate) syntax: SyntaxNode,
6765}
6766impl DropIdentity {
6767    #[inline]
6768    pub fn if_exists(&self) -> Option<IfExists> {
6769        support::child(&self.syntax)
6770    }
6771    #[inline]
6772    pub fn drop_token(&self) -> Option<SyntaxToken> {
6773        support::token(&self.syntax, SyntaxKind::DROP_KW)
6774    }
6775    #[inline]
6776    pub fn identity_token(&self) -> Option<SyntaxToken> {
6777        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
6778    }
6779}
6780
6781#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6782pub struct DropIndex {
6783    pub(crate) syntax: SyntaxNode,
6784}
6785impl DropIndex {
6786    #[inline]
6787    pub fn if_exists(&self) -> Option<IfExists> {
6788        support::child(&self.syntax)
6789    }
6790    #[inline]
6791    pub fn paths(&self) -> AstChildren<Path> {
6792        support::children(&self.syntax)
6793    }
6794    #[inline]
6795    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6796        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6797    }
6798    #[inline]
6799    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
6800        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
6801    }
6802    #[inline]
6803    pub fn drop_token(&self) -> Option<SyntaxToken> {
6804        support::token(&self.syntax, SyntaxKind::DROP_KW)
6805    }
6806    #[inline]
6807    pub fn index_token(&self) -> Option<SyntaxToken> {
6808        support::token(&self.syntax, SyntaxKind::INDEX_KW)
6809    }
6810    #[inline]
6811    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6812        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6813    }
6814}
6815
6816#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6817pub struct DropLanguage {
6818    pub(crate) syntax: SyntaxNode,
6819}
6820impl DropLanguage {
6821    #[inline]
6822    pub fn if_exists(&self) -> Option<IfExists> {
6823        support::child(&self.syntax)
6824    }
6825    #[inline]
6826    pub fn name_ref(&self) -> Option<NameRef> {
6827        support::child(&self.syntax)
6828    }
6829    #[inline]
6830    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6831        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6832    }
6833    #[inline]
6834    pub fn drop_token(&self) -> Option<SyntaxToken> {
6835        support::token(&self.syntax, SyntaxKind::DROP_KW)
6836    }
6837    #[inline]
6838    pub fn language_token(&self) -> Option<SyntaxToken> {
6839        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
6840    }
6841    #[inline]
6842    pub fn procedural_token(&self) -> Option<SyntaxToken> {
6843        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
6844    }
6845    #[inline]
6846    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6847        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6848    }
6849}
6850
6851#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6852pub struct DropMaterializedView {
6853    pub(crate) syntax: SyntaxNode,
6854}
6855impl DropMaterializedView {
6856    #[inline]
6857    pub fn if_exists(&self) -> Option<IfExists> {
6858        support::child(&self.syntax)
6859    }
6860    #[inline]
6861    pub fn paths(&self) -> AstChildren<Path> {
6862        support::children(&self.syntax)
6863    }
6864    #[inline]
6865    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6866        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6867    }
6868    #[inline]
6869    pub fn drop_token(&self) -> Option<SyntaxToken> {
6870        support::token(&self.syntax, SyntaxKind::DROP_KW)
6871    }
6872    #[inline]
6873    pub fn materialized_token(&self) -> Option<SyntaxToken> {
6874        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
6875    }
6876    #[inline]
6877    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6878        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6879    }
6880    #[inline]
6881    pub fn view_token(&self) -> Option<SyntaxToken> {
6882        support::token(&self.syntax, SyntaxKind::VIEW_KW)
6883    }
6884}
6885
6886#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6887pub struct DropNotNull {
6888    pub(crate) syntax: SyntaxNode,
6889}
6890impl DropNotNull {
6891    #[inline]
6892    pub fn drop_token(&self) -> Option<SyntaxToken> {
6893        support::token(&self.syntax, SyntaxKind::DROP_KW)
6894    }
6895    #[inline]
6896    pub fn not_token(&self) -> Option<SyntaxToken> {
6897        support::token(&self.syntax, SyntaxKind::NOT_KW)
6898    }
6899    #[inline]
6900    pub fn null_token(&self) -> Option<SyntaxToken> {
6901        support::token(&self.syntax, SyntaxKind::NULL_KW)
6902    }
6903}
6904
6905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6906pub struct DropOpClassOption {
6907    pub(crate) syntax: SyntaxNode,
6908}
6909impl DropOpClassOption {
6910    #[inline]
6911    pub fn literal(&self) -> Option<Literal> {
6912        support::child(&self.syntax)
6913    }
6914    #[inline]
6915    pub fn param_list(&self) -> Option<ParamList> {
6916        support::child(&self.syntax)
6917    }
6918    #[inline]
6919    pub fn function_token(&self) -> Option<SyntaxToken> {
6920        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
6921    }
6922    #[inline]
6923    pub fn operator_token(&self) -> Option<SyntaxToken> {
6924        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6925    }
6926}
6927
6928#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6929pub struct DropOpClassOptionList {
6930    pub(crate) syntax: SyntaxNode,
6931}
6932impl DropOpClassOptionList {
6933    #[inline]
6934    pub fn drop_op_class_options(&self) -> AstChildren<DropOpClassOption> {
6935        support::children(&self.syntax)
6936    }
6937}
6938
6939#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6940pub struct DropOpClassOptions {
6941    pub(crate) syntax: SyntaxNode,
6942}
6943impl DropOpClassOptions {
6944    #[inline]
6945    pub fn drop_op_class_option_list(&self) -> Option<DropOpClassOptionList> {
6946        support::child(&self.syntax)
6947    }
6948    #[inline]
6949    pub fn drop_token(&self) -> Option<SyntaxToken> {
6950        support::token(&self.syntax, SyntaxKind::DROP_KW)
6951    }
6952}
6953
6954#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6955pub struct DropOperator {
6956    pub(crate) syntax: SyntaxNode,
6957}
6958impl DropOperator {
6959    #[inline]
6960    pub fn if_exists(&self) -> Option<IfExists> {
6961        support::child(&self.syntax)
6962    }
6963    #[inline]
6964    pub fn op_sig_list(&self) -> Option<OpSigList> {
6965        support::child(&self.syntax)
6966    }
6967    #[inline]
6968    pub fn cascade_token(&self) -> Option<SyntaxToken> {
6969        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
6970    }
6971    #[inline]
6972    pub fn drop_token(&self) -> Option<SyntaxToken> {
6973        support::token(&self.syntax, SyntaxKind::DROP_KW)
6974    }
6975    #[inline]
6976    pub fn operator_token(&self) -> Option<SyntaxToken> {
6977        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
6978    }
6979    #[inline]
6980    pub fn restrict_token(&self) -> Option<SyntaxToken> {
6981        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
6982    }
6983}
6984
6985#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6986pub struct DropOperatorClass {
6987    pub(crate) syntax: SyntaxNode,
6988}
6989impl DropOperatorClass {
6990    #[inline]
6991    pub fn if_exists(&self) -> Option<IfExists> {
6992        support::child(&self.syntax)
6993    }
6994    #[inline]
6995    pub fn name_ref(&self) -> Option<NameRef> {
6996        support::child(&self.syntax)
6997    }
6998    #[inline]
6999    pub fn path(&self) -> Option<Path> {
7000        support::child(&self.syntax)
7001    }
7002    #[inline]
7003    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7004        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7005    }
7006    #[inline]
7007    pub fn class_token(&self) -> Option<SyntaxToken> {
7008        support::token(&self.syntax, SyntaxKind::CLASS_KW)
7009    }
7010    #[inline]
7011    pub fn drop_token(&self) -> Option<SyntaxToken> {
7012        support::token(&self.syntax, SyntaxKind::DROP_KW)
7013    }
7014    #[inline]
7015    pub fn operator_token(&self) -> Option<SyntaxToken> {
7016        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7017    }
7018    #[inline]
7019    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7020        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7021    }
7022    #[inline]
7023    pub fn using_token(&self) -> Option<SyntaxToken> {
7024        support::token(&self.syntax, SyntaxKind::USING_KW)
7025    }
7026}
7027
7028#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7029pub struct DropOperatorFamily {
7030    pub(crate) syntax: SyntaxNode,
7031}
7032impl DropOperatorFamily {
7033    #[inline]
7034    pub fn if_exists(&self) -> Option<IfExists> {
7035        support::child(&self.syntax)
7036    }
7037    #[inline]
7038    pub fn name_ref(&self) -> Option<NameRef> {
7039        support::child(&self.syntax)
7040    }
7041    #[inline]
7042    pub fn path(&self) -> Option<Path> {
7043        support::child(&self.syntax)
7044    }
7045    #[inline]
7046    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7047        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7048    }
7049    #[inline]
7050    pub fn drop_token(&self) -> Option<SyntaxToken> {
7051        support::token(&self.syntax, SyntaxKind::DROP_KW)
7052    }
7053    #[inline]
7054    pub fn family_token(&self) -> Option<SyntaxToken> {
7055        support::token(&self.syntax, SyntaxKind::FAMILY_KW)
7056    }
7057    #[inline]
7058    pub fn operator_token(&self) -> Option<SyntaxToken> {
7059        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
7060    }
7061    #[inline]
7062    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7063        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7064    }
7065    #[inline]
7066    pub fn using_token(&self) -> Option<SyntaxToken> {
7067        support::token(&self.syntax, SyntaxKind::USING_KW)
7068    }
7069}
7070
7071#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7072pub struct DropOwned {
7073    pub(crate) syntax: SyntaxNode,
7074}
7075impl DropOwned {
7076    #[inline]
7077    pub fn role_ref_list(&self) -> Option<RoleRefList> {
7078        support::child(&self.syntax)
7079    }
7080    #[inline]
7081    pub fn by_token(&self) -> Option<SyntaxToken> {
7082        support::token(&self.syntax, SyntaxKind::BY_KW)
7083    }
7084    #[inline]
7085    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7086        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7087    }
7088    #[inline]
7089    pub fn drop_token(&self) -> Option<SyntaxToken> {
7090        support::token(&self.syntax, SyntaxKind::DROP_KW)
7091    }
7092    #[inline]
7093    pub fn owned_token(&self) -> Option<SyntaxToken> {
7094        support::token(&self.syntax, SyntaxKind::OWNED_KW)
7095    }
7096    #[inline]
7097    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7098        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7099    }
7100}
7101
7102#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7103pub struct DropPolicy {
7104    pub(crate) syntax: SyntaxNode,
7105}
7106impl DropPolicy {
7107    #[inline]
7108    pub fn if_exists(&self) -> Option<IfExists> {
7109        support::child(&self.syntax)
7110    }
7111    #[inline]
7112    pub fn name_ref(&self) -> Option<NameRef> {
7113        support::child(&self.syntax)
7114    }
7115    #[inline]
7116    pub fn on_table(&self) -> Option<OnTable> {
7117        support::child(&self.syntax)
7118    }
7119    #[inline]
7120    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7121        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7122    }
7123    #[inline]
7124    pub fn drop_token(&self) -> Option<SyntaxToken> {
7125        support::token(&self.syntax, SyntaxKind::DROP_KW)
7126    }
7127    #[inline]
7128    pub fn policy_token(&self) -> Option<SyntaxToken> {
7129        support::token(&self.syntax, SyntaxKind::POLICY_KW)
7130    }
7131    #[inline]
7132    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7133        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7134    }
7135}
7136
7137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7138pub struct DropProcedure {
7139    pub(crate) syntax: SyntaxNode,
7140}
7141impl DropProcedure {
7142    #[inline]
7143    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7144        support::child(&self.syntax)
7145    }
7146    #[inline]
7147    pub fn if_exists(&self) -> Option<IfExists> {
7148        support::child(&self.syntax)
7149    }
7150    #[inline]
7151    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7152        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7153    }
7154    #[inline]
7155    pub fn drop_token(&self) -> Option<SyntaxToken> {
7156        support::token(&self.syntax, SyntaxKind::DROP_KW)
7157    }
7158    #[inline]
7159    pub fn procedure_token(&self) -> Option<SyntaxToken> {
7160        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
7161    }
7162    #[inline]
7163    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7164        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7165    }
7166}
7167
7168#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7169pub struct DropPropertyGraph {
7170    pub(crate) syntax: SyntaxNode,
7171}
7172impl DropPropertyGraph {
7173    #[inline]
7174    pub fn if_exists(&self) -> Option<IfExists> {
7175        support::child(&self.syntax)
7176    }
7177    #[inline]
7178    pub fn path(&self) -> Option<Path> {
7179        support::child(&self.syntax)
7180    }
7181    #[inline]
7182    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7183        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7184    }
7185    #[inline]
7186    pub fn drop_token(&self) -> Option<SyntaxToken> {
7187        support::token(&self.syntax, SyntaxKind::DROP_KW)
7188    }
7189    #[inline]
7190    pub fn graph_token(&self) -> Option<SyntaxToken> {
7191        support::token(&self.syntax, SyntaxKind::GRAPH_KW)
7192    }
7193    #[inline]
7194    pub fn property_token(&self) -> Option<SyntaxToken> {
7195        support::token(&self.syntax, SyntaxKind::PROPERTY_KW)
7196    }
7197    #[inline]
7198    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7199        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7200    }
7201}
7202
7203#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7204pub struct DropPublication {
7205    pub(crate) syntax: SyntaxNode,
7206}
7207impl DropPublication {
7208    #[inline]
7209    pub fn if_exists(&self) -> Option<IfExists> {
7210        support::child(&self.syntax)
7211    }
7212    #[inline]
7213    pub fn name_refs(&self) -> AstChildren<NameRef> {
7214        support::children(&self.syntax)
7215    }
7216    #[inline]
7217    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7218        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7219    }
7220    #[inline]
7221    pub fn drop_token(&self) -> Option<SyntaxToken> {
7222        support::token(&self.syntax, SyntaxKind::DROP_KW)
7223    }
7224    #[inline]
7225    pub fn publication_token(&self) -> Option<SyntaxToken> {
7226        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
7227    }
7228    #[inline]
7229    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7230        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7231    }
7232}
7233
7234#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7235pub struct DropRole {
7236    pub(crate) syntax: SyntaxNode,
7237}
7238impl DropRole {
7239    #[inline]
7240    pub fn if_exists(&self) -> Option<IfExists> {
7241        support::child(&self.syntax)
7242    }
7243    #[inline]
7244    pub fn name_refs(&self) -> AstChildren<NameRef> {
7245        support::children(&self.syntax)
7246    }
7247    #[inline]
7248    pub fn drop_token(&self) -> Option<SyntaxToken> {
7249        support::token(&self.syntax, SyntaxKind::DROP_KW)
7250    }
7251    #[inline]
7252    pub fn role_token(&self) -> Option<SyntaxToken> {
7253        support::token(&self.syntax, SyntaxKind::ROLE_KW)
7254    }
7255}
7256
7257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7258pub struct DropRoutine {
7259    pub(crate) syntax: SyntaxNode,
7260}
7261impl DropRoutine {
7262    #[inline]
7263    pub fn function_sig_list(&self) -> Option<FunctionSigList> {
7264        support::child(&self.syntax)
7265    }
7266    #[inline]
7267    pub fn if_exists(&self) -> Option<IfExists> {
7268        support::child(&self.syntax)
7269    }
7270    #[inline]
7271    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7272        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7273    }
7274    #[inline]
7275    pub fn drop_token(&self) -> Option<SyntaxToken> {
7276        support::token(&self.syntax, SyntaxKind::DROP_KW)
7277    }
7278    #[inline]
7279    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7280        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7281    }
7282    #[inline]
7283    pub fn routine_token(&self) -> Option<SyntaxToken> {
7284        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
7285    }
7286}
7287
7288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7289pub struct DropRule {
7290    pub(crate) syntax: SyntaxNode,
7291}
7292impl DropRule {
7293    #[inline]
7294    pub fn if_exists(&self) -> Option<IfExists> {
7295        support::child(&self.syntax)
7296    }
7297    #[inline]
7298    pub fn name_ref(&self) -> Option<NameRef> {
7299        support::child(&self.syntax)
7300    }
7301    #[inline]
7302    pub fn on_table(&self) -> Option<OnTable> {
7303        support::child(&self.syntax)
7304    }
7305    #[inline]
7306    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7307        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7308    }
7309    #[inline]
7310    pub fn drop_token(&self) -> Option<SyntaxToken> {
7311        support::token(&self.syntax, SyntaxKind::DROP_KW)
7312    }
7313    #[inline]
7314    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7315        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7316    }
7317    #[inline]
7318    pub fn rule_token(&self) -> Option<SyntaxToken> {
7319        support::token(&self.syntax, SyntaxKind::RULE_KW)
7320    }
7321}
7322
7323#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7324pub struct DropSchema {
7325    pub(crate) syntax: SyntaxNode,
7326}
7327impl DropSchema {
7328    #[inline]
7329    pub fn if_exists(&self) -> Option<IfExists> {
7330        support::child(&self.syntax)
7331    }
7332    #[inline]
7333    pub fn name_refs(&self) -> AstChildren<NameRef> {
7334        support::children(&self.syntax)
7335    }
7336    #[inline]
7337    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7338        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7339    }
7340    #[inline]
7341    pub fn drop_token(&self) -> Option<SyntaxToken> {
7342        support::token(&self.syntax, SyntaxKind::DROP_KW)
7343    }
7344    #[inline]
7345    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7346        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7347    }
7348    #[inline]
7349    pub fn schema_token(&self) -> Option<SyntaxToken> {
7350        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
7351    }
7352}
7353
7354#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7355pub struct DropSequence {
7356    pub(crate) syntax: SyntaxNode,
7357}
7358impl DropSequence {
7359    #[inline]
7360    pub fn if_exists(&self) -> Option<IfExists> {
7361        support::child(&self.syntax)
7362    }
7363    #[inline]
7364    pub fn paths(&self) -> AstChildren<Path> {
7365        support::children(&self.syntax)
7366    }
7367    #[inline]
7368    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7369        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7370    }
7371    #[inline]
7372    pub fn drop_token(&self) -> Option<SyntaxToken> {
7373        support::token(&self.syntax, SyntaxKind::DROP_KW)
7374    }
7375    #[inline]
7376    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7377        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7378    }
7379    #[inline]
7380    pub fn sequence_token(&self) -> Option<SyntaxToken> {
7381        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
7382    }
7383}
7384
7385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7386pub struct DropServer {
7387    pub(crate) syntax: SyntaxNode,
7388}
7389impl DropServer {
7390    #[inline]
7391    pub fn if_exists(&self) -> Option<IfExists> {
7392        support::child(&self.syntax)
7393    }
7394    #[inline]
7395    pub fn name_ref(&self) -> Option<NameRef> {
7396        support::child(&self.syntax)
7397    }
7398    #[inline]
7399    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7400        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7401    }
7402    #[inline]
7403    pub fn drop_token(&self) -> Option<SyntaxToken> {
7404        support::token(&self.syntax, SyntaxKind::DROP_KW)
7405    }
7406    #[inline]
7407    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7408        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7409    }
7410    #[inline]
7411    pub fn server_token(&self) -> Option<SyntaxToken> {
7412        support::token(&self.syntax, SyntaxKind::SERVER_KW)
7413    }
7414}
7415
7416#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7417pub struct DropStatistics {
7418    pub(crate) syntax: SyntaxNode,
7419}
7420impl DropStatistics {
7421    #[inline]
7422    pub fn if_exists(&self) -> Option<IfExists> {
7423        support::child(&self.syntax)
7424    }
7425    #[inline]
7426    pub fn paths(&self) -> AstChildren<Path> {
7427        support::children(&self.syntax)
7428    }
7429    #[inline]
7430    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7431        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7432    }
7433    #[inline]
7434    pub fn drop_token(&self) -> Option<SyntaxToken> {
7435        support::token(&self.syntax, SyntaxKind::DROP_KW)
7436    }
7437    #[inline]
7438    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7439        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7440    }
7441    #[inline]
7442    pub fn statistics_token(&self) -> Option<SyntaxToken> {
7443        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
7444    }
7445}
7446
7447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7448pub struct DropSubscription {
7449    pub(crate) syntax: SyntaxNode,
7450}
7451impl DropSubscription {
7452    #[inline]
7453    pub fn if_exists(&self) -> Option<IfExists> {
7454        support::child(&self.syntax)
7455    }
7456    #[inline]
7457    pub fn name_ref(&self) -> Option<NameRef> {
7458        support::child(&self.syntax)
7459    }
7460    #[inline]
7461    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7462        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7463    }
7464    #[inline]
7465    pub fn drop_token(&self) -> Option<SyntaxToken> {
7466        support::token(&self.syntax, SyntaxKind::DROP_KW)
7467    }
7468    #[inline]
7469    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7470        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7471    }
7472    #[inline]
7473    pub fn subscription_token(&self) -> Option<SyntaxToken> {
7474        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
7475    }
7476}
7477
7478#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7479pub struct DropTable {
7480    pub(crate) syntax: SyntaxNode,
7481}
7482impl DropTable {
7483    #[inline]
7484    pub fn if_exists(&self) -> Option<IfExists> {
7485        support::child(&self.syntax)
7486    }
7487    #[inline]
7488    pub fn path(&self) -> Option<Path> {
7489        support::child(&self.syntax)
7490    }
7491    #[inline]
7492    pub fn comma_token(&self) -> Option<SyntaxToken> {
7493        support::token(&self.syntax, SyntaxKind::COMMA)
7494    }
7495    #[inline]
7496    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7497        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7498    }
7499    #[inline]
7500    pub fn drop_token(&self) -> Option<SyntaxToken> {
7501        support::token(&self.syntax, SyntaxKind::DROP_KW)
7502    }
7503    #[inline]
7504    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7505        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7506    }
7507    #[inline]
7508    pub fn table_token(&self) -> Option<SyntaxToken> {
7509        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7510    }
7511}
7512
7513#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7514pub struct DropTablespace {
7515    pub(crate) syntax: SyntaxNode,
7516}
7517impl DropTablespace {
7518    #[inline]
7519    pub fn if_exists(&self) -> Option<IfExists> {
7520        support::child(&self.syntax)
7521    }
7522    #[inline]
7523    pub fn name_ref(&self) -> Option<NameRef> {
7524        support::child(&self.syntax)
7525    }
7526    #[inline]
7527    pub fn drop_token(&self) -> Option<SyntaxToken> {
7528        support::token(&self.syntax, SyntaxKind::DROP_KW)
7529    }
7530    #[inline]
7531    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
7532        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
7533    }
7534}
7535
7536#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7537pub struct DropTextSearchConfig {
7538    pub(crate) syntax: SyntaxNode,
7539}
7540impl DropTextSearchConfig {
7541    #[inline]
7542    pub fn if_exists(&self) -> Option<IfExists> {
7543        support::child(&self.syntax)
7544    }
7545    #[inline]
7546    pub fn path(&self) -> Option<Path> {
7547        support::child(&self.syntax)
7548    }
7549    #[inline]
7550    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7551        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7552    }
7553    #[inline]
7554    pub fn configuration_token(&self) -> Option<SyntaxToken> {
7555        support::token(&self.syntax, SyntaxKind::CONFIGURATION_KW)
7556    }
7557    #[inline]
7558    pub fn drop_token(&self) -> Option<SyntaxToken> {
7559        support::token(&self.syntax, SyntaxKind::DROP_KW)
7560    }
7561    #[inline]
7562    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7563        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7564    }
7565    #[inline]
7566    pub fn search_token(&self) -> Option<SyntaxToken> {
7567        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7568    }
7569    #[inline]
7570    pub fn text_token(&self) -> Option<SyntaxToken> {
7571        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7572    }
7573}
7574
7575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7576pub struct DropTextSearchDict {
7577    pub(crate) syntax: SyntaxNode,
7578}
7579impl DropTextSearchDict {
7580    #[inline]
7581    pub fn if_exists(&self) -> Option<IfExists> {
7582        support::child(&self.syntax)
7583    }
7584    #[inline]
7585    pub fn path(&self) -> Option<Path> {
7586        support::child(&self.syntax)
7587    }
7588    #[inline]
7589    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7590        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7591    }
7592    #[inline]
7593    pub fn dictionary_token(&self) -> Option<SyntaxToken> {
7594        support::token(&self.syntax, SyntaxKind::DICTIONARY_KW)
7595    }
7596    #[inline]
7597    pub fn drop_token(&self) -> Option<SyntaxToken> {
7598        support::token(&self.syntax, SyntaxKind::DROP_KW)
7599    }
7600    #[inline]
7601    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7602        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7603    }
7604    #[inline]
7605    pub fn search_token(&self) -> Option<SyntaxToken> {
7606        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7607    }
7608    #[inline]
7609    pub fn text_token(&self) -> Option<SyntaxToken> {
7610        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7611    }
7612}
7613
7614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7615pub struct DropTextSearchParser {
7616    pub(crate) syntax: SyntaxNode,
7617}
7618impl DropTextSearchParser {
7619    #[inline]
7620    pub fn if_exists(&self) -> Option<IfExists> {
7621        support::child(&self.syntax)
7622    }
7623    #[inline]
7624    pub fn path(&self) -> Option<Path> {
7625        support::child(&self.syntax)
7626    }
7627    #[inline]
7628    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7629        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7630    }
7631    #[inline]
7632    pub fn drop_token(&self) -> Option<SyntaxToken> {
7633        support::token(&self.syntax, SyntaxKind::DROP_KW)
7634    }
7635    #[inline]
7636    pub fn parser_token(&self) -> Option<SyntaxToken> {
7637        support::token(&self.syntax, SyntaxKind::PARSER_KW)
7638    }
7639    #[inline]
7640    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7641        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7642    }
7643    #[inline]
7644    pub fn search_token(&self) -> Option<SyntaxToken> {
7645        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7646    }
7647    #[inline]
7648    pub fn text_token(&self) -> Option<SyntaxToken> {
7649        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7650    }
7651}
7652
7653#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7654pub struct DropTextSearchTemplate {
7655    pub(crate) syntax: SyntaxNode,
7656}
7657impl DropTextSearchTemplate {
7658    #[inline]
7659    pub fn if_exists(&self) -> Option<IfExists> {
7660        support::child(&self.syntax)
7661    }
7662    #[inline]
7663    pub fn path(&self) -> Option<Path> {
7664        support::child(&self.syntax)
7665    }
7666    #[inline]
7667    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7668        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7669    }
7670    #[inline]
7671    pub fn drop_token(&self) -> Option<SyntaxToken> {
7672        support::token(&self.syntax, SyntaxKind::DROP_KW)
7673    }
7674    #[inline]
7675    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7676        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7677    }
7678    #[inline]
7679    pub fn search_token(&self) -> Option<SyntaxToken> {
7680        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
7681    }
7682    #[inline]
7683    pub fn template_token(&self) -> Option<SyntaxToken> {
7684        support::token(&self.syntax, SyntaxKind::TEMPLATE_KW)
7685    }
7686    #[inline]
7687    pub fn text_token(&self) -> Option<SyntaxToken> {
7688        support::token(&self.syntax, SyntaxKind::TEXT_KW)
7689    }
7690}
7691
7692#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7693pub struct DropTransform {
7694    pub(crate) syntax: SyntaxNode,
7695}
7696impl DropTransform {
7697    #[inline]
7698    pub fn if_exists(&self) -> Option<IfExists> {
7699        support::child(&self.syntax)
7700    }
7701    #[inline]
7702    pub fn language(&self) -> Option<NameRef> {
7703        support::child(&self.syntax)
7704    }
7705    #[inline]
7706    pub fn ty(&self) -> Option<Type> {
7707        support::child(&self.syntax)
7708    }
7709    #[inline]
7710    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7711        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7712    }
7713    #[inline]
7714    pub fn drop_token(&self) -> Option<SyntaxToken> {
7715        support::token(&self.syntax, SyntaxKind::DROP_KW)
7716    }
7717    #[inline]
7718    pub fn for_token(&self) -> Option<SyntaxToken> {
7719        support::token(&self.syntax, SyntaxKind::FOR_KW)
7720    }
7721    #[inline]
7722    pub fn language_token(&self) -> Option<SyntaxToken> {
7723        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
7724    }
7725    #[inline]
7726    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7727        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7728    }
7729    #[inline]
7730    pub fn transform_token(&self) -> Option<SyntaxToken> {
7731        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
7732    }
7733}
7734
7735#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7736pub struct DropTrigger {
7737    pub(crate) syntax: SyntaxNode,
7738}
7739impl DropTrigger {
7740    #[inline]
7741    pub fn if_exists(&self) -> Option<IfExists> {
7742        support::child(&self.syntax)
7743    }
7744    #[inline]
7745    pub fn on_table(&self) -> Option<OnTable> {
7746        support::child(&self.syntax)
7747    }
7748    #[inline]
7749    pub fn path(&self) -> Option<Path> {
7750        support::child(&self.syntax)
7751    }
7752    #[inline]
7753    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7754        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7755    }
7756    #[inline]
7757    pub fn drop_token(&self) -> Option<SyntaxToken> {
7758        support::token(&self.syntax, SyntaxKind::DROP_KW)
7759    }
7760    #[inline]
7761    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7762        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7763    }
7764    #[inline]
7765    pub fn trigger_token(&self) -> Option<SyntaxToken> {
7766        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
7767    }
7768}
7769
7770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7771pub struct DropType {
7772    pub(crate) syntax: SyntaxNode,
7773}
7774impl DropType {
7775    #[inline]
7776    pub fn if_exists(&self) -> Option<IfExists> {
7777        support::child(&self.syntax)
7778    }
7779    #[inline]
7780    pub fn paths(&self) -> AstChildren<Path> {
7781        support::children(&self.syntax)
7782    }
7783    #[inline]
7784    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7785        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7786    }
7787    #[inline]
7788    pub fn drop_token(&self) -> Option<SyntaxToken> {
7789        support::token(&self.syntax, SyntaxKind::DROP_KW)
7790    }
7791    #[inline]
7792    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7793        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7794    }
7795    #[inline]
7796    pub fn type_token(&self) -> Option<SyntaxToken> {
7797        support::token(&self.syntax, SyntaxKind::TYPE_KW)
7798    }
7799}
7800
7801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7802pub struct DropUser {
7803    pub(crate) syntax: SyntaxNode,
7804}
7805impl DropUser {
7806    #[inline]
7807    pub fn if_exists(&self) -> Option<IfExists> {
7808        support::child(&self.syntax)
7809    }
7810    #[inline]
7811    pub fn name_refs(&self) -> AstChildren<NameRef> {
7812        support::children(&self.syntax)
7813    }
7814    #[inline]
7815    pub fn drop_token(&self) -> Option<SyntaxToken> {
7816        support::token(&self.syntax, SyntaxKind::DROP_KW)
7817    }
7818    #[inline]
7819    pub fn user_token(&self) -> Option<SyntaxToken> {
7820        support::token(&self.syntax, SyntaxKind::USER_KW)
7821    }
7822}
7823
7824#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7825pub struct DropUserMapping {
7826    pub(crate) syntax: SyntaxNode,
7827}
7828impl DropUserMapping {
7829    #[inline]
7830    pub fn if_exists(&self) -> Option<IfExists> {
7831        support::child(&self.syntax)
7832    }
7833    #[inline]
7834    pub fn role_ref(&self) -> Option<RoleRef> {
7835        support::child(&self.syntax)
7836    }
7837    #[inline]
7838    pub fn server_name(&self) -> Option<ServerName> {
7839        support::child(&self.syntax)
7840    }
7841    #[inline]
7842    pub fn drop_token(&self) -> Option<SyntaxToken> {
7843        support::token(&self.syntax, SyntaxKind::DROP_KW)
7844    }
7845    #[inline]
7846    pub fn for_token(&self) -> Option<SyntaxToken> {
7847        support::token(&self.syntax, SyntaxKind::FOR_KW)
7848    }
7849    #[inline]
7850    pub fn mapping_token(&self) -> Option<SyntaxToken> {
7851        support::token(&self.syntax, SyntaxKind::MAPPING_KW)
7852    }
7853    #[inline]
7854    pub fn user_token(&self) -> Option<SyntaxToken> {
7855        support::token(&self.syntax, SyntaxKind::USER_KW)
7856    }
7857}
7858
7859#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7860pub struct DropVertexEdgeLabel {
7861    pub(crate) syntax: SyntaxNode,
7862}
7863impl DropVertexEdgeLabel {
7864    #[inline]
7865    pub fn name_ref(&self) -> Option<NameRef> {
7866        support::child(&self.syntax)
7867    }
7868    #[inline]
7869    pub fn alter_token(&self) -> Option<SyntaxToken> {
7870        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7871    }
7872    #[inline]
7873    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7874        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7875    }
7876    #[inline]
7877    pub fn drop_token(&self) -> Option<SyntaxToken> {
7878        support::token(&self.syntax, SyntaxKind::DROP_KW)
7879    }
7880    #[inline]
7881    pub fn edge_token(&self) -> Option<SyntaxToken> {
7882        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7883    }
7884    #[inline]
7885    pub fn label_token(&self) -> Option<SyntaxToken> {
7886        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7887    }
7888    #[inline]
7889    pub fn node_token(&self) -> Option<SyntaxToken> {
7890        support::token(&self.syntax, SyntaxKind::NODE_KW)
7891    }
7892    #[inline]
7893    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7894        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7895    }
7896    #[inline]
7897    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7898        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7899    }
7900    #[inline]
7901    pub fn table_token(&self) -> Option<SyntaxToken> {
7902        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7903    }
7904    #[inline]
7905    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7906        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7907    }
7908}
7909
7910#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7911pub struct DropVertexEdgeLabelProperties {
7912    pub(crate) syntax: SyntaxNode,
7913}
7914impl DropVertexEdgeLabelProperties {
7915    #[inline]
7916    pub fn name_ref(&self) -> Option<NameRef> {
7917        support::child(&self.syntax)
7918    }
7919    #[inline]
7920    pub fn names(&self) -> AstChildren<Name> {
7921        support::children(&self.syntax)
7922    }
7923    #[inline]
7924    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7925        support::token(&self.syntax, SyntaxKind::L_PAREN)
7926    }
7927    #[inline]
7928    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7929        support::token(&self.syntax, SyntaxKind::R_PAREN)
7930    }
7931    #[inline]
7932    pub fn alter_token(&self) -> Option<SyntaxToken> {
7933        support::token(&self.syntax, SyntaxKind::ALTER_KW)
7934    }
7935    #[inline]
7936    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7937        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7938    }
7939    #[inline]
7940    pub fn drop_token(&self) -> Option<SyntaxToken> {
7941        support::token(&self.syntax, SyntaxKind::DROP_KW)
7942    }
7943    #[inline]
7944    pub fn edge_token(&self) -> Option<SyntaxToken> {
7945        support::token(&self.syntax, SyntaxKind::EDGE_KW)
7946    }
7947    #[inline]
7948    pub fn label_token(&self) -> Option<SyntaxToken> {
7949        support::token(&self.syntax, SyntaxKind::LABEL_KW)
7950    }
7951    #[inline]
7952    pub fn node_token(&self) -> Option<SyntaxToken> {
7953        support::token(&self.syntax, SyntaxKind::NODE_KW)
7954    }
7955    #[inline]
7956    pub fn properties_token(&self) -> Option<SyntaxToken> {
7957        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
7958    }
7959    #[inline]
7960    pub fn relationship_token(&self) -> Option<SyntaxToken> {
7961        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
7962    }
7963    #[inline]
7964    pub fn restrict_token(&self) -> Option<SyntaxToken> {
7965        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
7966    }
7967    #[inline]
7968    pub fn table_token(&self) -> Option<SyntaxToken> {
7969        support::token(&self.syntax, SyntaxKind::TABLE_KW)
7970    }
7971    #[inline]
7972    pub fn vertex_token(&self) -> Option<SyntaxToken> {
7973        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
7974    }
7975}
7976
7977#[derive(Debug, Clone, PartialEq, Eq, Hash)]
7978pub struct DropVertexTables {
7979    pub(crate) syntax: SyntaxNode,
7980}
7981impl DropVertexTables {
7982    #[inline]
7983    pub fn names(&self) -> AstChildren<Name> {
7984        support::children(&self.syntax)
7985    }
7986    #[inline]
7987    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
7988        support::token(&self.syntax, SyntaxKind::L_PAREN)
7989    }
7990    #[inline]
7991    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
7992        support::token(&self.syntax, SyntaxKind::R_PAREN)
7993    }
7994    #[inline]
7995    pub fn cascade_token(&self) -> Option<SyntaxToken> {
7996        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
7997    }
7998    #[inline]
7999    pub fn drop_token(&self) -> Option<SyntaxToken> {
8000        support::token(&self.syntax, SyntaxKind::DROP_KW)
8001    }
8002    #[inline]
8003    pub fn node_token(&self) -> Option<SyntaxToken> {
8004        support::token(&self.syntax, SyntaxKind::NODE_KW)
8005    }
8006    #[inline]
8007    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8008        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8009    }
8010    #[inline]
8011    pub fn tables_token(&self) -> Option<SyntaxToken> {
8012        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8013    }
8014    #[inline]
8015    pub fn vertex_token(&self) -> Option<SyntaxToken> {
8016        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
8017    }
8018}
8019
8020#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8021pub struct DropView {
8022    pub(crate) syntax: SyntaxNode,
8023}
8024impl DropView {
8025    #[inline]
8026    pub fn if_exists(&self) -> Option<IfExists> {
8027        support::child(&self.syntax)
8028    }
8029    #[inline]
8030    pub fn path(&self) -> Option<Path> {
8031        support::child(&self.syntax)
8032    }
8033    #[inline]
8034    pub fn cascade_token(&self) -> Option<SyntaxToken> {
8035        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
8036    }
8037    #[inline]
8038    pub fn drop_token(&self) -> Option<SyntaxToken> {
8039        support::token(&self.syntax, SyntaxKind::DROP_KW)
8040    }
8041    #[inline]
8042    pub fn restrict_token(&self) -> Option<SyntaxToken> {
8043        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
8044    }
8045    #[inline]
8046    pub fn view_token(&self) -> Option<SyntaxToken> {
8047        support::token(&self.syntax, SyntaxKind::VIEW_KW)
8048    }
8049}
8050
8051#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8052pub struct EdgeAny {
8053    pub(crate) syntax: SyntaxNode,
8054}
8055impl EdgeAny {
8056    #[inline]
8057    pub fn is_label(&self) -> Option<IsLabel> {
8058        support::child(&self.syntax)
8059    }
8060    #[inline]
8061    pub fn name(&self) -> Option<Name> {
8062        support::child(&self.syntax)
8063    }
8064    #[inline]
8065    pub fn where_clause(&self) -> Option<WhereClause> {
8066        support::child(&self.syntax)
8067    }
8068    #[inline]
8069    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8070        support::token(&self.syntax, SyntaxKind::L_BRACK)
8071    }
8072    #[inline]
8073    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8074        support::token(&self.syntax, SyntaxKind::R_BRACK)
8075    }
8076    #[inline]
8077    pub fn minus_token(&self) -> Option<SyntaxToken> {
8078        support::token(&self.syntax, SyntaxKind::MINUS)
8079    }
8080}
8081
8082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8083pub struct EdgeLeft {
8084    pub(crate) syntax: SyntaxNode,
8085}
8086impl EdgeLeft {
8087    #[inline]
8088    pub fn is_label(&self) -> Option<IsLabel> {
8089        support::child(&self.syntax)
8090    }
8091    #[inline]
8092    pub fn name(&self) -> Option<Name> {
8093        support::child(&self.syntax)
8094    }
8095    #[inline]
8096    pub fn where_clause(&self) -> Option<WhereClause> {
8097        support::child(&self.syntax)
8098    }
8099    #[inline]
8100    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8101        support::token(&self.syntax, SyntaxKind::L_BRACK)
8102    }
8103    #[inline]
8104    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8105        support::token(&self.syntax, SyntaxKind::R_BRACK)
8106    }
8107    #[inline]
8108    pub fn minus_token(&self) -> Option<SyntaxToken> {
8109        support::token(&self.syntax, SyntaxKind::MINUS)
8110    }
8111    #[inline]
8112    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
8113        support::token(&self.syntax, SyntaxKind::L_ANGLE)
8114    }
8115}
8116
8117#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8118pub struct EdgeRight {
8119    pub(crate) syntax: SyntaxNode,
8120}
8121impl EdgeRight {
8122    #[inline]
8123    pub fn is_label(&self) -> Option<IsLabel> {
8124        support::child(&self.syntax)
8125    }
8126    #[inline]
8127    pub fn name(&self) -> Option<Name> {
8128        support::child(&self.syntax)
8129    }
8130    #[inline]
8131    pub fn where_clause(&self) -> Option<WhereClause> {
8132        support::child(&self.syntax)
8133    }
8134    #[inline]
8135    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
8136        support::token(&self.syntax, SyntaxKind::L_BRACK)
8137    }
8138    #[inline]
8139    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
8140        support::token(&self.syntax, SyntaxKind::R_BRACK)
8141    }
8142    #[inline]
8143    pub fn minus_token(&self) -> Option<SyntaxToken> {
8144        support::token(&self.syntax, SyntaxKind::MINUS)
8145    }
8146    #[inline]
8147    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8148        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8149    }
8150}
8151
8152#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8153pub struct EdgeTableDef {
8154    pub(crate) syntax: SyntaxNode,
8155}
8156impl EdgeTableDef {
8157    #[inline]
8158    pub fn column_list(&self) -> Option<ColumnList> {
8159        support::child(&self.syntax)
8160    }
8161    #[inline]
8162    pub fn dest_vertex_table(&self) -> Option<DestVertexTable> {
8163        support::child(&self.syntax)
8164    }
8165    #[inline]
8166    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
8167        support::child(&self.syntax)
8168    }
8169    #[inline]
8170    pub fn name(&self) -> Option<Name> {
8171        support::child(&self.syntax)
8172    }
8173    #[inline]
8174    pub fn path(&self) -> Option<Path> {
8175        support::child(&self.syntax)
8176    }
8177    #[inline]
8178    pub fn source_vertex_table(&self) -> Option<SourceVertexTable> {
8179        support::child(&self.syntax)
8180    }
8181    #[inline]
8182    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8183        support::token(&self.syntax, SyntaxKind::L_PAREN)
8184    }
8185    #[inline]
8186    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8187        support::token(&self.syntax, SyntaxKind::R_PAREN)
8188    }
8189    #[inline]
8190    pub fn as_token(&self) -> Option<SyntaxToken> {
8191        support::token(&self.syntax, SyntaxKind::AS_KW)
8192    }
8193    #[inline]
8194    pub fn key_token(&self) -> Option<SyntaxToken> {
8195        support::token(&self.syntax, SyntaxKind::KEY_KW)
8196    }
8197}
8198
8199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8200pub struct EdgeTables {
8201    pub(crate) syntax: SyntaxNode,
8202}
8203impl EdgeTables {
8204    #[inline]
8205    pub fn edge_table_defs(&self) -> AstChildren<EdgeTableDef> {
8206        support::children(&self.syntax)
8207    }
8208    #[inline]
8209    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8210        support::token(&self.syntax, SyntaxKind::L_PAREN)
8211    }
8212    #[inline]
8213    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8214        support::token(&self.syntax, SyntaxKind::R_PAREN)
8215    }
8216    #[inline]
8217    pub fn edge_token(&self) -> Option<SyntaxToken> {
8218        support::token(&self.syntax, SyntaxKind::EDGE_KW)
8219    }
8220    #[inline]
8221    pub fn relationship_token(&self) -> Option<SyntaxToken> {
8222        support::token(&self.syntax, SyntaxKind::RELATIONSHIP_KW)
8223    }
8224    #[inline]
8225    pub fn tables_token(&self) -> Option<SyntaxToken> {
8226        support::token(&self.syntax, SyntaxKind::TABLES_KW)
8227    }
8228}
8229
8230#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8231pub struct ElseClause {
8232    pub(crate) syntax: SyntaxNode,
8233}
8234impl ElseClause {
8235    #[inline]
8236    pub fn expr(&self) -> Option<Expr> {
8237        support::child(&self.syntax)
8238    }
8239    #[inline]
8240    pub fn else_token(&self) -> Option<SyntaxToken> {
8241        support::token(&self.syntax, SyntaxKind::ELSE_KW)
8242    }
8243}
8244
8245#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8246pub struct EmptyStmt {
8247    pub(crate) syntax: SyntaxNode,
8248}
8249impl EmptyStmt {
8250    #[inline]
8251    pub fn semicolon_token(&self) -> Option<SyntaxToken> {
8252        support::token(&self.syntax, SyntaxKind::SEMICOLON)
8253    }
8254}
8255
8256#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8257pub struct EnableAlwaysRule {
8258    pub(crate) syntax: SyntaxNode,
8259}
8260impl EnableAlwaysRule {
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 rule_token(&self) -> Option<SyntaxToken> {
8271        support::token(&self.syntax, SyntaxKind::RULE_KW)
8272    }
8273}
8274
8275#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8276pub struct EnableAlwaysTrigger {
8277    pub(crate) syntax: SyntaxNode,
8278}
8279impl EnableAlwaysTrigger {
8280    #[inline]
8281    pub fn always_token(&self) -> Option<SyntaxToken> {
8282        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
8283    }
8284    #[inline]
8285    pub fn enable_token(&self) -> Option<SyntaxToken> {
8286        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8287    }
8288    #[inline]
8289    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8290        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8291    }
8292}
8293
8294#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8295pub struct EnableReplicaRule {
8296    pub(crate) syntax: SyntaxNode,
8297}
8298impl EnableReplicaRule {
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 rule_token(&self) -> Option<SyntaxToken> {
8309        support::token(&self.syntax, SyntaxKind::RULE_KW)
8310    }
8311}
8312
8313#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8314pub struct EnableReplicaTrigger {
8315    pub(crate) syntax: SyntaxNode,
8316}
8317impl EnableReplicaTrigger {
8318    #[inline]
8319    pub fn enable_token(&self) -> Option<SyntaxToken> {
8320        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8321    }
8322    #[inline]
8323    pub fn replica_token(&self) -> Option<SyntaxToken> {
8324        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
8325    }
8326    #[inline]
8327    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8328        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8329    }
8330}
8331
8332#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8333pub struct EnableRls {
8334    pub(crate) syntax: SyntaxNode,
8335}
8336impl EnableRls {
8337    #[inline]
8338    pub fn enable_token(&self) -> Option<SyntaxToken> {
8339        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8340    }
8341    #[inline]
8342    pub fn level_token(&self) -> Option<SyntaxToken> {
8343        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8344    }
8345    #[inline]
8346    pub fn row_token(&self) -> Option<SyntaxToken> {
8347        support::token(&self.syntax, SyntaxKind::ROW_KW)
8348    }
8349    #[inline]
8350    pub fn security_token(&self) -> Option<SyntaxToken> {
8351        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8352    }
8353}
8354
8355#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8356pub struct EnableRule {
8357    pub(crate) syntax: SyntaxNode,
8358}
8359impl EnableRule {
8360    #[inline]
8361    pub fn enable_token(&self) -> Option<SyntaxToken> {
8362        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8363    }
8364    #[inline]
8365    pub fn rule_token(&self) -> Option<SyntaxToken> {
8366        support::token(&self.syntax, SyntaxKind::RULE_KW)
8367    }
8368}
8369
8370#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8371pub struct EnableTrigger {
8372    pub(crate) syntax: SyntaxNode,
8373}
8374impl EnableTrigger {
8375    #[inline]
8376    pub fn enable_token(&self) -> Option<SyntaxToken> {
8377        support::token(&self.syntax, SyntaxKind::ENABLE_KW)
8378    }
8379    #[inline]
8380    pub fn trigger_token(&self) -> Option<SyntaxToken> {
8381        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
8382    }
8383}
8384
8385#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8386pub struct Enforced {
8387    pub(crate) syntax: SyntaxNode,
8388}
8389impl Enforced {
8390    #[inline]
8391    pub fn enforced_token(&self) -> Option<SyntaxToken> {
8392        support::token(&self.syntax, SyntaxKind::ENFORCED_KW)
8393    }
8394}
8395
8396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8397pub struct EventTriggerWhen {
8398    pub(crate) syntax: SyntaxNode,
8399}
8400impl EventTriggerWhen {
8401    #[inline]
8402    pub fn literals(&self) -> AstChildren<Literal> {
8403        support::children(&self.syntax)
8404    }
8405    #[inline]
8406    pub fn name_ref(&self) -> Option<NameRef> {
8407        support::child(&self.syntax)
8408    }
8409    #[inline]
8410    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8411        support::token(&self.syntax, SyntaxKind::L_PAREN)
8412    }
8413    #[inline]
8414    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8415        support::token(&self.syntax, SyntaxKind::R_PAREN)
8416    }
8417    #[inline]
8418    pub fn in_token(&self) -> Option<SyntaxToken> {
8419        support::token(&self.syntax, SyntaxKind::IN_KW)
8420    }
8421}
8422
8423#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8424pub struct EventTriggerWhenClause {
8425    pub(crate) syntax: SyntaxNode,
8426}
8427impl EventTriggerWhenClause {
8428    #[inline]
8429    pub fn event_trigger_whens(&self) -> AstChildren<EventTriggerWhen> {
8430        support::children(&self.syntax)
8431    }
8432    #[inline]
8433    pub fn when_token(&self) -> Option<SyntaxToken> {
8434        support::token(&self.syntax, SyntaxKind::WHEN_KW)
8435    }
8436}
8437
8438#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8439pub struct ExceptTableClause {
8440    pub(crate) syntax: SyntaxNode,
8441}
8442impl ExceptTableClause {
8443    #[inline]
8444    pub fn relation_names(&self) -> AstChildren<RelationName> {
8445        support::children(&self.syntax)
8446    }
8447    #[inline]
8448    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8449        support::token(&self.syntax, SyntaxKind::L_PAREN)
8450    }
8451    #[inline]
8452    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8453        support::token(&self.syntax, SyntaxKind::R_PAREN)
8454    }
8455    #[inline]
8456    pub fn except_token(&self) -> Option<SyntaxToken> {
8457        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8458    }
8459    #[inline]
8460    pub fn table_token(&self) -> Option<SyntaxToken> {
8461        support::token(&self.syntax, SyntaxKind::TABLE_KW)
8462    }
8463}
8464
8465#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8466pub struct ExceptTables {
8467    pub(crate) syntax: SyntaxNode,
8468}
8469impl ExceptTables {
8470    #[inline]
8471    pub fn name_refs(&self) -> AstChildren<NameRef> {
8472        support::children(&self.syntax)
8473    }
8474    #[inline]
8475    pub fn except_token(&self) -> Option<SyntaxToken> {
8476        support::token(&self.syntax, SyntaxKind::EXCEPT_KW)
8477    }
8478}
8479
8480#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8481pub struct ExcludeConstraint {
8482    pub(crate) syntax: SyntaxNode,
8483}
8484impl ExcludeConstraint {
8485    #[inline]
8486    pub fn constraint_exclusion_list(&self) -> Option<ConstraintExclusionList> {
8487        support::child(&self.syntax)
8488    }
8489    #[inline]
8490    pub fn constraint_index_method(&self) -> Option<ConstraintIndexMethod> {
8491        support::child(&self.syntax)
8492    }
8493    #[inline]
8494    pub fn constraint_name(&self) -> Option<ConstraintName> {
8495        support::child(&self.syntax)
8496    }
8497    #[inline]
8498    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
8499        support::child(&self.syntax)
8500    }
8501    #[inline]
8502    pub fn exclude_token(&self) -> Option<SyntaxToken> {
8503        support::token(&self.syntax, SyntaxKind::EXCLUDE_KW)
8504    }
8505}
8506
8507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8508pub struct Execute {
8509    pub(crate) syntax: SyntaxNode,
8510}
8511impl Execute {
8512    #[inline]
8513    pub fn arg_list(&self) -> Option<ArgList> {
8514        support::child(&self.syntax)
8515    }
8516    #[inline]
8517    pub fn name_ref(&self) -> Option<NameRef> {
8518        support::child(&self.syntax)
8519    }
8520    #[inline]
8521    pub fn execute_token(&self) -> Option<SyntaxToken> {
8522        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
8523    }
8524}
8525
8526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8527pub struct ExistsFn {
8528    pub(crate) syntax: SyntaxNode,
8529}
8530impl ExistsFn {
8531    #[inline]
8532    pub fn select_variant(&self) -> Option<SelectVariant> {
8533        support::child(&self.syntax)
8534    }
8535    #[inline]
8536    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8537        support::token(&self.syntax, SyntaxKind::L_PAREN)
8538    }
8539    #[inline]
8540    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8541        support::token(&self.syntax, SyntaxKind::R_PAREN)
8542    }
8543    #[inline]
8544    pub fn exists_token(&self) -> Option<SyntaxToken> {
8545        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
8546    }
8547}
8548
8549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8550pub struct Explain {
8551    pub(crate) syntax: SyntaxNode,
8552}
8553impl Explain {
8554    #[inline]
8555    pub fn explain_stmt(&self) -> Option<ExplainStmt> {
8556        support::child(&self.syntax)
8557    }
8558    #[inline]
8559    pub fn analyse_token(&self) -> Option<SyntaxToken> {
8560        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
8561    }
8562    #[inline]
8563    pub fn analyze_token(&self) -> Option<SyntaxToken> {
8564        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
8565    }
8566    #[inline]
8567    pub fn explain_token(&self) -> Option<SyntaxToken> {
8568        support::token(&self.syntax, SyntaxKind::EXPLAIN_KW)
8569    }
8570    #[inline]
8571    pub fn verbose_token(&self) -> Option<SyntaxToken> {
8572        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
8573    }
8574}
8575
8576#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8577pub struct ExprAsName {
8578    pub(crate) syntax: SyntaxNode,
8579}
8580impl ExprAsName {
8581    #[inline]
8582    pub fn as_name(&self) -> Option<AsName> {
8583        support::child(&self.syntax)
8584    }
8585    #[inline]
8586    pub fn expr(&self) -> Option<Expr> {
8587        support::child(&self.syntax)
8588    }
8589}
8590
8591#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8592pub struct ExprAsNameList {
8593    pub(crate) syntax: SyntaxNode,
8594}
8595impl ExprAsNameList {
8596    #[inline]
8597    pub fn expr_as_names(&self) -> AstChildren<ExprAsName> {
8598        support::children(&self.syntax)
8599    }
8600}
8601
8602#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8603pub struct ExprType {
8604    pub(crate) syntax: SyntaxNode,
8605}
8606impl ExprType {
8607    #[inline]
8608    pub fn expr(&self) -> Option<Expr> {
8609        support::child(&self.syntax)
8610    }
8611}
8612
8613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8614pub struct ExtractFn {
8615    pub(crate) syntax: SyntaxNode,
8616}
8617impl ExtractFn {
8618    #[inline]
8619    pub fn expr(&self) -> Option<Expr> {
8620        support::child(&self.syntax)
8621    }
8622    #[inline]
8623    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8624        support::token(&self.syntax, SyntaxKind::L_PAREN)
8625    }
8626    #[inline]
8627    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8628        support::token(&self.syntax, SyntaxKind::R_PAREN)
8629    }
8630    #[inline]
8631    pub fn day_token(&self) -> Option<SyntaxToken> {
8632        support::token(&self.syntax, SyntaxKind::DAY_KW)
8633    }
8634    #[inline]
8635    pub fn extract_token(&self) -> Option<SyntaxToken> {
8636        support::token(&self.syntax, SyntaxKind::EXTRACT_KW)
8637    }
8638    #[inline]
8639    pub fn from_token(&self) -> Option<SyntaxToken> {
8640        support::token(&self.syntax, SyntaxKind::FROM_KW)
8641    }
8642    #[inline]
8643    pub fn hour_token(&self) -> Option<SyntaxToken> {
8644        support::token(&self.syntax, SyntaxKind::HOUR_KW)
8645    }
8646    #[inline]
8647    pub fn ident_token(&self) -> Option<SyntaxToken> {
8648        support::token(&self.syntax, SyntaxKind::IDENT)
8649    }
8650    #[inline]
8651    pub fn minute_token(&self) -> Option<SyntaxToken> {
8652        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
8653    }
8654    #[inline]
8655    pub fn month_token(&self) -> Option<SyntaxToken> {
8656        support::token(&self.syntax, SyntaxKind::MONTH_KW)
8657    }
8658    #[inline]
8659    pub fn second_token(&self) -> Option<SyntaxToken> {
8660        support::token(&self.syntax, SyntaxKind::SECOND_KW)
8661    }
8662    #[inline]
8663    pub fn string_token(&self) -> Option<SyntaxToken> {
8664        support::token(&self.syntax, SyntaxKind::STRING_KW)
8665    }
8666    #[inline]
8667    pub fn year_token(&self) -> Option<SyntaxToken> {
8668        support::token(&self.syntax, SyntaxKind::YEAR_KW)
8669    }
8670}
8671
8672#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8673pub struct FatArrow {
8674    pub(crate) syntax: SyntaxNode,
8675}
8676impl FatArrow {
8677    #[inline]
8678    pub fn eq_token(&self) -> Option<SyntaxToken> {
8679        support::token(&self.syntax, SyntaxKind::EQ)
8680    }
8681    #[inline]
8682    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
8683        support::token(&self.syntax, SyntaxKind::R_ANGLE)
8684    }
8685}
8686
8687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8688pub struct FdwOption {
8689    pub(crate) syntax: SyntaxNode,
8690}
8691impl FdwOption {
8692    #[inline]
8693    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
8694        support::child(&self.syntax)
8695    }
8696    #[inline]
8697    pub fn path(&self) -> Option<Path> {
8698        support::child(&self.syntax)
8699    }
8700    #[inline]
8701    pub fn connection_token(&self) -> Option<SyntaxToken> {
8702        support::token(&self.syntax, SyntaxKind::CONNECTION_KW)
8703    }
8704    #[inline]
8705    pub fn handler_token(&self) -> Option<SyntaxToken> {
8706        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
8707    }
8708    #[inline]
8709    pub fn no_token(&self) -> Option<SyntaxToken> {
8710        support::token(&self.syntax, SyntaxKind::NO_KW)
8711    }
8712    #[inline]
8713    pub fn options_token(&self) -> Option<SyntaxToken> {
8714        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
8715    }
8716    #[inline]
8717    pub fn validator_token(&self) -> Option<SyntaxToken> {
8718        support::token(&self.syntax, SyntaxKind::VALIDATOR_KW)
8719    }
8720}
8721
8722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8723pub struct FdwOptionList {
8724    pub(crate) syntax: SyntaxNode,
8725}
8726impl FdwOptionList {
8727    #[inline]
8728    pub fn fdw_options(&self) -> AstChildren<FdwOption> {
8729        support::children(&self.syntax)
8730    }
8731}
8732
8733#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8734pub struct Fetch {
8735    pub(crate) syntax: SyntaxNode,
8736}
8737impl Fetch {
8738    #[inline]
8739    pub fn name_ref(&self) -> Option<NameRef> {
8740        support::child(&self.syntax)
8741    }
8742    #[inline]
8743    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8744        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8745    }
8746    #[inline]
8747    pub fn from_token(&self) -> Option<SyntaxToken> {
8748        support::token(&self.syntax, SyntaxKind::FROM_KW)
8749    }
8750    #[inline]
8751    pub fn in_token(&self) -> Option<SyntaxToken> {
8752        support::token(&self.syntax, SyntaxKind::IN_KW)
8753    }
8754}
8755
8756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8757pub struct FetchClause {
8758    pub(crate) syntax: SyntaxNode,
8759}
8760impl FetchClause {
8761    #[inline]
8762    pub fn expr(&self) -> Option<Expr> {
8763        support::child(&self.syntax)
8764    }
8765    #[inline]
8766    pub fn fetch_token(&self) -> Option<SyntaxToken> {
8767        support::token(&self.syntax, SyntaxKind::FETCH_KW)
8768    }
8769    #[inline]
8770    pub fn first_token(&self) -> Option<SyntaxToken> {
8771        support::token(&self.syntax, SyntaxKind::FIRST_KW)
8772    }
8773    #[inline]
8774    pub fn next_token(&self) -> Option<SyntaxToken> {
8775        support::token(&self.syntax, SyntaxKind::NEXT_KW)
8776    }
8777    #[inline]
8778    pub fn only_token(&self) -> Option<SyntaxToken> {
8779        support::token(&self.syntax, SyntaxKind::ONLY_KW)
8780    }
8781    #[inline]
8782    pub fn row_token(&self) -> Option<SyntaxToken> {
8783        support::token(&self.syntax, SyntaxKind::ROW_KW)
8784    }
8785    #[inline]
8786    pub fn rows_token(&self) -> Option<SyntaxToken> {
8787        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8788    }
8789    #[inline]
8790    pub fn ties_token(&self) -> Option<SyntaxToken> {
8791        support::token(&self.syntax, SyntaxKind::TIES_KW)
8792    }
8793    #[inline]
8794    pub fn with_token(&self) -> Option<SyntaxToken> {
8795        support::token(&self.syntax, SyntaxKind::WITH_KW)
8796    }
8797}
8798
8799#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8800pub struct FieldExpr {
8801    pub(crate) syntax: SyntaxNode,
8802}
8803impl FieldExpr {
8804    #[inline]
8805    pub fn star_token(&self) -> Option<SyntaxToken> {
8806        support::token(&self.syntax, SyntaxKind::STAR)
8807    }
8808    #[inline]
8809    pub fn dot_token(&self) -> Option<SyntaxToken> {
8810        support::token(&self.syntax, SyntaxKind::DOT)
8811    }
8812}
8813
8814#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8815pub struct FilterClause {
8816    pub(crate) syntax: SyntaxNode,
8817}
8818impl FilterClause {
8819    #[inline]
8820    pub fn expr(&self) -> Option<Expr> {
8821        support::child(&self.syntax)
8822    }
8823    #[inline]
8824    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8825        support::token(&self.syntax, SyntaxKind::L_PAREN)
8826    }
8827    #[inline]
8828    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8829        support::token(&self.syntax, SyntaxKind::R_PAREN)
8830    }
8831    #[inline]
8832    pub fn filter_token(&self) -> Option<SyntaxToken> {
8833        support::token(&self.syntax, SyntaxKind::FILTER_KW)
8834    }
8835    #[inline]
8836    pub fn where_token(&self) -> Option<SyntaxToken> {
8837        support::token(&self.syntax, SyntaxKind::WHERE_KW)
8838    }
8839}
8840
8841#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8842pub struct ForPortionOf {
8843    pub(crate) syntax: SyntaxNode,
8844}
8845impl ForPortionOf {
8846    #[inline]
8847    pub fn expr(&self) -> Option<Expr> {
8848        support::child(&self.syntax)
8849    }
8850    #[inline]
8851    pub fn name_ref(&self) -> Option<NameRef> {
8852        support::child(&self.syntax)
8853    }
8854    #[inline]
8855    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
8856        support::token(&self.syntax, SyntaxKind::L_PAREN)
8857    }
8858    #[inline]
8859    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
8860        support::token(&self.syntax, SyntaxKind::R_PAREN)
8861    }
8862    #[inline]
8863    pub fn for_token(&self) -> Option<SyntaxToken> {
8864        support::token(&self.syntax, SyntaxKind::FOR_KW)
8865    }
8866    #[inline]
8867    pub fn from_token(&self) -> Option<SyntaxToken> {
8868        support::token(&self.syntax, SyntaxKind::FROM_KW)
8869    }
8870    #[inline]
8871    pub fn of_token(&self) -> Option<SyntaxToken> {
8872        support::token(&self.syntax, SyntaxKind::OF_KW)
8873    }
8874    #[inline]
8875    pub fn portion_token(&self) -> Option<SyntaxToken> {
8876        support::token(&self.syntax, SyntaxKind::PORTION_KW)
8877    }
8878    #[inline]
8879    pub fn to_token(&self) -> Option<SyntaxToken> {
8880        support::token(&self.syntax, SyntaxKind::TO_KW)
8881    }
8882}
8883
8884#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8885pub struct ForProvider {
8886    pub(crate) syntax: SyntaxNode,
8887}
8888impl ForProvider {
8889    #[inline]
8890    pub fn literal(&self) -> Option<Literal> {
8891        support::child(&self.syntax)
8892    }
8893    #[inline]
8894    pub fn name_ref(&self) -> Option<NameRef> {
8895        support::child(&self.syntax)
8896    }
8897    #[inline]
8898    pub fn for_token(&self) -> Option<SyntaxToken> {
8899        support::token(&self.syntax, SyntaxKind::FOR_KW)
8900    }
8901}
8902
8903#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8904pub struct ForceRls {
8905    pub(crate) syntax: SyntaxNode,
8906}
8907impl ForceRls {
8908    #[inline]
8909    pub fn force_token(&self) -> Option<SyntaxToken> {
8910        support::token(&self.syntax, SyntaxKind::FORCE_KW)
8911    }
8912    #[inline]
8913    pub fn level_token(&self) -> Option<SyntaxToken> {
8914        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
8915    }
8916    #[inline]
8917    pub fn row_token(&self) -> Option<SyntaxToken> {
8918        support::token(&self.syntax, SyntaxKind::ROW_KW)
8919    }
8920    #[inline]
8921    pub fn security_token(&self) -> Option<SyntaxToken> {
8922        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
8923    }
8924}
8925
8926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8927pub struct ForeignKeyConstraint {
8928    pub(crate) syntax: SyntaxNode,
8929}
8930impl ForeignKeyConstraint {
8931    #[inline]
8932    pub fn constraint_name(&self) -> Option<ConstraintName> {
8933        support::child(&self.syntax)
8934    }
8935    #[inline]
8936    pub fn match_type(&self) -> Option<MatchType> {
8937        support::child(&self.syntax)
8938    }
8939    #[inline]
8940    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
8941        support::child(&self.syntax)
8942    }
8943    #[inline]
8944    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
8945        support::child(&self.syntax)
8946    }
8947    #[inline]
8948    pub fn path(&self) -> Option<Path> {
8949        support::child(&self.syntax)
8950    }
8951    #[inline]
8952    pub fn foreign_token(&self) -> Option<SyntaxToken> {
8953        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
8954    }
8955    #[inline]
8956    pub fn key_token(&self) -> Option<SyntaxToken> {
8957        support::token(&self.syntax, SyntaxKind::KEY_KW)
8958    }
8959    #[inline]
8960    pub fn references_token(&self) -> Option<SyntaxToken> {
8961        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
8962    }
8963}
8964
8965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8966pub struct FrameClause {
8967    pub(crate) syntax: SyntaxNode,
8968}
8969impl FrameClause {
8970    #[inline]
8971    pub fn groups_token(&self) -> Option<SyntaxToken> {
8972        support::token(&self.syntax, SyntaxKind::GROUPS_KW)
8973    }
8974    #[inline]
8975    pub fn range_token(&self) -> Option<SyntaxToken> {
8976        support::token(&self.syntax, SyntaxKind::RANGE_KW)
8977    }
8978    #[inline]
8979    pub fn rows_token(&self) -> Option<SyntaxToken> {
8980        support::token(&self.syntax, SyntaxKind::ROWS_KW)
8981    }
8982}
8983
8984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8985pub struct FromClause {
8986    pub(crate) syntax: SyntaxNode,
8987}
8988impl FromClause {
8989    #[inline]
8990    pub fn from_items(&self) -> AstChildren<FromItem> {
8991        support::children(&self.syntax)
8992    }
8993    #[inline]
8994    pub fn join_exprs(&self) -> AstChildren<JoinExpr> {
8995        support::children(&self.syntax)
8996    }
8997    #[inline]
8998    pub fn from_token(&self) -> Option<SyntaxToken> {
8999        support::token(&self.syntax, SyntaxKind::FROM_KW)
9000    }
9001}
9002
9003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9004pub struct FromItem {
9005    pub(crate) syntax: SyntaxNode,
9006}
9007impl FromItem {
9008    #[inline]
9009    pub fn alias(&self) -> Option<Alias> {
9010        support::child(&self.syntax)
9011    }
9012    #[inline]
9013    pub fn call_expr(&self) -> Option<CallExpr> {
9014        support::child(&self.syntax)
9015    }
9016    #[inline]
9017    pub fn cast_expr(&self) -> Option<CastExpr> {
9018        support::child(&self.syntax)
9019    }
9020    #[inline]
9021    pub fn field_expr(&self) -> Option<FieldExpr> {
9022        support::child(&self.syntax)
9023    }
9024    #[inline]
9025    pub fn json_table(&self) -> Option<JsonTable> {
9026        support::child(&self.syntax)
9027    }
9028    #[inline]
9029    pub fn name_ref(&self) -> Option<NameRef> {
9030        support::child(&self.syntax)
9031    }
9032    #[inline]
9033    pub fn paren_expr(&self) -> Option<ParenExpr> {
9034        support::child(&self.syntax)
9035    }
9036    #[inline]
9037    pub fn paren_select(&self) -> Option<ParenSelect> {
9038        support::child(&self.syntax)
9039    }
9040    #[inline]
9041    pub fn tablesample_clause(&self) -> Option<TablesampleClause> {
9042        support::child(&self.syntax)
9043    }
9044    #[inline]
9045    pub fn xml_table(&self) -> Option<XmlTable> {
9046        support::child(&self.syntax)
9047    }
9048    #[inline]
9049    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9050        support::token(&self.syntax, SyntaxKind::L_PAREN)
9051    }
9052    #[inline]
9053    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9054        support::token(&self.syntax, SyntaxKind::R_PAREN)
9055    }
9056    #[inline]
9057    pub fn star_token(&self) -> Option<SyntaxToken> {
9058        support::token(&self.syntax, SyntaxKind::STAR)
9059    }
9060    #[inline]
9061    pub fn from_token(&self) -> Option<SyntaxToken> {
9062        support::token(&self.syntax, SyntaxKind::FROM_KW)
9063    }
9064    #[inline]
9065    pub fn lateral_token(&self) -> Option<SyntaxToken> {
9066        support::token(&self.syntax, SyntaxKind::LATERAL_KW)
9067    }
9068    #[inline]
9069    pub fn only_token(&self) -> Option<SyntaxToken> {
9070        support::token(&self.syntax, SyntaxKind::ONLY_KW)
9071    }
9072    #[inline]
9073    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
9074        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
9075    }
9076    #[inline]
9077    pub fn rows_token(&self) -> Option<SyntaxToken> {
9078        support::token(&self.syntax, SyntaxKind::ROWS_KW)
9079    }
9080    #[inline]
9081    pub fn with_token(&self) -> Option<SyntaxToken> {
9082        support::token(&self.syntax, SyntaxKind::WITH_KW)
9083    }
9084}
9085
9086#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9087pub struct FromTable {
9088    pub(crate) syntax: SyntaxNode,
9089}
9090impl FromTable {
9091    #[inline]
9092    pub fn path(&self) -> Option<Path> {
9093        support::child(&self.syntax)
9094    }
9095    #[inline]
9096    pub fn from_token(&self) -> Option<SyntaxToken> {
9097        support::token(&self.syntax, SyntaxKind::FROM_KW)
9098    }
9099}
9100
9101#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9102pub struct FuncOptionList {
9103    pub(crate) syntax: SyntaxNode,
9104}
9105impl FuncOptionList {
9106    #[inline]
9107    pub fn options(&self) -> AstChildren<FuncOption> {
9108        support::children(&self.syntax)
9109    }
9110}
9111
9112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9113pub struct FunctionSig {
9114    pub(crate) syntax: SyntaxNode,
9115}
9116impl FunctionSig {
9117    #[inline]
9118    pub fn param_list(&self) -> Option<ParamList> {
9119        support::child(&self.syntax)
9120    }
9121    #[inline]
9122    pub fn path(&self) -> Option<Path> {
9123        support::child(&self.syntax)
9124    }
9125}
9126
9127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9128pub struct FunctionSigList {
9129    pub(crate) syntax: SyntaxNode,
9130}
9131impl FunctionSigList {
9132    #[inline]
9133    pub fn function_sigs(&self) -> AstChildren<FunctionSig> {
9134        support::children(&self.syntax)
9135    }
9136}
9137
9138#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9139pub struct GeneratedConstraint {
9140    pub(crate) syntax: SyntaxNode,
9141}
9142impl GeneratedConstraint {
9143    #[inline]
9144    pub fn expr(&self) -> Option<Expr> {
9145        support::child(&self.syntax)
9146    }
9147    #[inline]
9148    pub fn name_ref(&self) -> Option<NameRef> {
9149        support::child(&self.syntax)
9150    }
9151    #[inline]
9152    pub fn sequence_option_list(&self) -> Option<SequenceOptionList> {
9153        support::child(&self.syntax)
9154    }
9155    #[inline]
9156    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9157        support::token(&self.syntax, SyntaxKind::L_PAREN)
9158    }
9159    #[inline]
9160    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9161        support::token(&self.syntax, SyntaxKind::R_PAREN)
9162    }
9163    #[inline]
9164    pub fn always_token(&self) -> Option<SyntaxToken> {
9165        support::token(&self.syntax, SyntaxKind::ALWAYS_KW)
9166    }
9167    #[inline]
9168    pub fn as_token(&self) -> Option<SyntaxToken> {
9169        support::token(&self.syntax, SyntaxKind::AS_KW)
9170    }
9171    #[inline]
9172    pub fn by_token(&self) -> Option<SyntaxToken> {
9173        support::token(&self.syntax, SyntaxKind::BY_KW)
9174    }
9175    #[inline]
9176    pub fn constraint_token(&self) -> Option<SyntaxToken> {
9177        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
9178    }
9179    #[inline]
9180    pub fn default_token(&self) -> Option<SyntaxToken> {
9181        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9182    }
9183    #[inline]
9184    pub fn generated_token(&self) -> Option<SyntaxToken> {
9185        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
9186    }
9187    #[inline]
9188    pub fn identity_token(&self) -> Option<SyntaxToken> {
9189        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
9190    }
9191    #[inline]
9192    pub fn stored_token(&self) -> Option<SyntaxToken> {
9193        support::token(&self.syntax, SyntaxKind::STORED_KW)
9194    }
9195}
9196
9197#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9198pub struct Grant {
9199    pub(crate) syntax: SyntaxNode,
9200}
9201impl Grant {
9202    #[inline]
9203    pub fn name_refs(&self) -> AstChildren<NameRef> {
9204        support::children(&self.syntax)
9205    }
9206    #[inline]
9207    pub fn paths(&self) -> AstChildren<Path> {
9208        support::children(&self.syntax)
9209    }
9210    #[inline]
9211    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
9212        support::child(&self.syntax)
9213    }
9214    #[inline]
9215    pub fn role_ref(&self) -> Option<RoleRef> {
9216        support::child(&self.syntax)
9217    }
9218    #[inline]
9219    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9220        support::child(&self.syntax)
9221    }
9222    #[inline]
9223    pub fn all_token(&self) -> Option<SyntaxToken> {
9224        support::token(&self.syntax, SyntaxKind::ALL_KW)
9225    }
9226    #[inline]
9227    pub fn by_token(&self) -> Option<SyntaxToken> {
9228        support::token(&self.syntax, SyntaxKind::BY_KW)
9229    }
9230    #[inline]
9231    pub fn grant_token(&self) -> Option<SyntaxToken> {
9232        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9233    }
9234    #[inline]
9235    pub fn granted_token(&self) -> Option<SyntaxToken> {
9236        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
9237    }
9238    #[inline]
9239    pub fn in_token(&self) -> Option<SyntaxToken> {
9240        support::token(&self.syntax, SyntaxKind::IN_KW)
9241    }
9242    #[inline]
9243    pub fn on_token(&self) -> Option<SyntaxToken> {
9244        support::token(&self.syntax, SyntaxKind::ON_KW)
9245    }
9246    #[inline]
9247    pub fn option_token(&self) -> Option<SyntaxToken> {
9248        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9249    }
9250    #[inline]
9251    pub fn privileges_token(&self) -> Option<SyntaxToken> {
9252        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
9253    }
9254    #[inline]
9255    pub fn schema_token(&self) -> Option<SyntaxToken> {
9256        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9257    }
9258    #[inline]
9259    pub fn table_token(&self) -> Option<SyntaxToken> {
9260        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9261    }
9262    #[inline]
9263    pub fn tables_token(&self) -> Option<SyntaxToken> {
9264        support::token(&self.syntax, SyntaxKind::TABLES_KW)
9265    }
9266    #[inline]
9267    pub fn to_token(&self) -> Option<SyntaxToken> {
9268        support::token(&self.syntax, SyntaxKind::TO_KW)
9269    }
9270    #[inline]
9271    pub fn with_token(&self) -> Option<SyntaxToken> {
9272        support::token(&self.syntax, SyntaxKind::WITH_KW)
9273    }
9274}
9275
9276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9277pub struct GrantDefaultPrivileges {
9278    pub(crate) syntax: SyntaxNode,
9279}
9280impl GrantDefaultPrivileges {
9281    #[inline]
9282    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
9283        support::child(&self.syntax)
9284    }
9285    #[inline]
9286    pub fn privileges(&self) -> Option<Privileges> {
9287        support::child(&self.syntax)
9288    }
9289    #[inline]
9290    pub fn role_ref_list(&self) -> Option<RoleRefList> {
9291        support::child(&self.syntax)
9292    }
9293    #[inline]
9294    pub fn grant_token(&self) -> Option<SyntaxToken> {
9295        support::token(&self.syntax, SyntaxKind::GRANT_KW)
9296    }
9297    #[inline]
9298    pub fn on_token(&self) -> Option<SyntaxToken> {
9299        support::token(&self.syntax, SyntaxKind::ON_KW)
9300    }
9301    #[inline]
9302    pub fn option_token(&self) -> Option<SyntaxToken> {
9303        support::token(&self.syntax, SyntaxKind::OPTION_KW)
9304    }
9305    #[inline]
9306    pub fn to_token(&self) -> Option<SyntaxToken> {
9307        support::token(&self.syntax, SyntaxKind::TO_KW)
9308    }
9309    #[inline]
9310    pub fn with_token(&self) -> Option<SyntaxToken> {
9311        support::token(&self.syntax, SyntaxKind::WITH_KW)
9312    }
9313}
9314
9315#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9316pub struct GraphPatternQualifier {
9317    pub(crate) syntax: SyntaxNode,
9318}
9319impl GraphPatternQualifier {
9320    #[inline]
9321    pub fn literal(&self) -> Option<Literal> {
9322        support::child(&self.syntax)
9323    }
9324    #[inline]
9325    pub fn l_curly_token(&self) -> Option<SyntaxToken> {
9326        support::token(&self.syntax, SyntaxKind::L_CURLY)
9327    }
9328    #[inline]
9329    pub fn r_curly_token(&self) -> Option<SyntaxToken> {
9330        support::token(&self.syntax, SyntaxKind::R_CURLY)
9331    }
9332    #[inline]
9333    pub fn comma_token(&self) -> Option<SyntaxToken> {
9334        support::token(&self.syntax, SyntaxKind::COMMA)
9335    }
9336}
9337
9338#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9339pub struct GraphTableFn {
9340    pub(crate) syntax: SyntaxNode,
9341}
9342impl GraphTableFn {
9343    #[inline]
9344    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
9345        support::child(&self.syntax)
9346    }
9347    #[inline]
9348    pub fn path(&self) -> Option<Path> {
9349        support::child(&self.syntax)
9350    }
9351    #[inline]
9352    pub fn path_pattern_list(&self) -> Option<PathPatternList> {
9353        support::child(&self.syntax)
9354    }
9355    #[inline]
9356    pub fn where_clause(&self) -> Option<WhereClause> {
9357        support::child(&self.syntax)
9358    }
9359    #[inline]
9360    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9361        support::token(&self.syntax, SyntaxKind::L_PAREN)
9362    }
9363    #[inline]
9364    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9365        support::token(&self.syntax, SyntaxKind::R_PAREN)
9366    }
9367    #[inline]
9368    pub fn columns_token(&self) -> Option<SyntaxToken> {
9369        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
9370    }
9371    #[inline]
9372    pub fn graph_table_token(&self) -> Option<SyntaxToken> {
9373        support::token(&self.syntax, SyntaxKind::GRAPH_TABLE_KW)
9374    }
9375    #[inline]
9376    pub fn match_token(&self) -> Option<SyntaxToken> {
9377        support::token(&self.syntax, SyntaxKind::MATCH_KW)
9378    }
9379}
9380
9381#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9382pub struct GroupByClause {
9383    pub(crate) syntax: SyntaxNode,
9384}
9385impl GroupByClause {
9386    #[inline]
9387    pub fn group_by_list(&self) -> Option<GroupByList> {
9388        support::child(&self.syntax)
9389    }
9390    #[inline]
9391    pub fn all_token(&self) -> Option<SyntaxToken> {
9392        support::token(&self.syntax, SyntaxKind::ALL_KW)
9393    }
9394    #[inline]
9395    pub fn by_token(&self) -> Option<SyntaxToken> {
9396        support::token(&self.syntax, SyntaxKind::BY_KW)
9397    }
9398    #[inline]
9399    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9400        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9401    }
9402    #[inline]
9403    pub fn group_token(&self) -> Option<SyntaxToken> {
9404        support::token(&self.syntax, SyntaxKind::GROUP_KW)
9405    }
9406}
9407
9408#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9409pub struct GroupByList {
9410    pub(crate) syntax: SyntaxNode,
9411}
9412impl GroupByList {
9413    #[inline]
9414    pub fn group_bys(&self) -> AstChildren<GroupBy> {
9415        support::children(&self.syntax)
9416    }
9417}
9418
9419#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9420pub struct GroupingCube {
9421    pub(crate) syntax: SyntaxNode,
9422}
9423impl GroupingCube {
9424    #[inline]
9425    pub fn expr(&self) -> Option<Expr> {
9426        support::child(&self.syntax)
9427    }
9428    #[inline]
9429    pub fn cube_token(&self) -> Option<SyntaxToken> {
9430        support::token(&self.syntax, SyntaxKind::CUBE_KW)
9431    }
9432}
9433
9434#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9435pub struct GroupingExpr {
9436    pub(crate) syntax: SyntaxNode,
9437}
9438impl GroupingExpr {
9439    #[inline]
9440    pub fn expr(&self) -> Option<Expr> {
9441        support::child(&self.syntax)
9442    }
9443}
9444
9445#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9446pub struct GroupingRollup {
9447    pub(crate) syntax: SyntaxNode,
9448}
9449impl GroupingRollup {
9450    #[inline]
9451    pub fn expr(&self) -> Option<Expr> {
9452        support::child(&self.syntax)
9453    }
9454    #[inline]
9455    pub fn rollup_token(&self) -> Option<SyntaxToken> {
9456        support::token(&self.syntax, SyntaxKind::ROLLUP_KW)
9457    }
9458}
9459
9460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9461pub struct GroupingSets {
9462    pub(crate) syntax: SyntaxNode,
9463}
9464impl GroupingSets {
9465    #[inline]
9466    pub fn expr(&self) -> Option<Expr> {
9467        support::child(&self.syntax)
9468    }
9469    #[inline]
9470    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9471        support::token(&self.syntax, SyntaxKind::L_PAREN)
9472    }
9473    #[inline]
9474    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9475        support::token(&self.syntax, SyntaxKind::R_PAREN)
9476    }
9477    #[inline]
9478    pub fn grouping_token(&self) -> Option<SyntaxToken> {
9479        support::token(&self.syntax, SyntaxKind::GROUPING_KW)
9480    }
9481    #[inline]
9482    pub fn sets_token(&self) -> Option<SyntaxToken> {
9483        support::token(&self.syntax, SyntaxKind::SETS_KW)
9484    }
9485}
9486
9487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9488pub struct Gteq {
9489    pub(crate) syntax: SyntaxNode,
9490}
9491impl Gteq {
9492    #[inline]
9493    pub fn eq_token(&self) -> Option<SyntaxToken> {
9494        support::token(&self.syntax, SyntaxKind::EQ)
9495    }
9496    #[inline]
9497    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
9498        support::token(&self.syntax, SyntaxKind::R_ANGLE)
9499    }
9500}
9501
9502#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9503pub struct HandlerClause {
9504    pub(crate) syntax: SyntaxNode,
9505}
9506impl HandlerClause {
9507    #[inline]
9508    pub fn path(&self) -> Option<Path> {
9509        support::child(&self.syntax)
9510    }
9511    #[inline]
9512    pub fn handler_token(&self) -> Option<SyntaxToken> {
9513        support::token(&self.syntax, SyntaxKind::HANDLER_KW)
9514    }
9515}
9516
9517#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9518pub struct HavingClause {
9519    pub(crate) syntax: SyntaxNode,
9520}
9521impl HavingClause {
9522    #[inline]
9523    pub fn expr(&self) -> Option<Expr> {
9524        support::child(&self.syntax)
9525    }
9526    #[inline]
9527    pub fn having_token(&self) -> Option<SyntaxToken> {
9528        support::token(&self.syntax, SyntaxKind::HAVING_KW)
9529    }
9530}
9531
9532#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9533pub struct IfExists {
9534    pub(crate) syntax: SyntaxNode,
9535}
9536impl IfExists {
9537    #[inline]
9538    pub fn exists_token(&self) -> Option<SyntaxToken> {
9539        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9540    }
9541    #[inline]
9542    pub fn if_token(&self) -> Option<SyntaxToken> {
9543        support::token(&self.syntax, SyntaxKind::IF_KW)
9544    }
9545}
9546
9547#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9548pub struct IfNotExists {
9549    pub(crate) syntax: SyntaxNode,
9550}
9551impl IfNotExists {
9552    #[inline]
9553    pub fn exists_token(&self) -> Option<SyntaxToken> {
9554        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
9555    }
9556    #[inline]
9557    pub fn if_token(&self) -> Option<SyntaxToken> {
9558        support::token(&self.syntax, SyntaxKind::IF_KW)
9559    }
9560    #[inline]
9561    pub fn not_token(&self) -> Option<SyntaxToken> {
9562        support::token(&self.syntax, SyntaxKind::NOT_KW)
9563    }
9564}
9565
9566#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9567pub struct ImportForeignSchema {
9568    pub(crate) syntax: SyntaxNode,
9569}
9570impl ImportForeignSchema {
9571    #[inline]
9572    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
9573        support::child(&self.syntax)
9574    }
9575    #[inline]
9576    pub fn except_tables(&self) -> Option<ExceptTables> {
9577        support::child(&self.syntax)
9578    }
9579    #[inline]
9580    pub fn into_schema(&self) -> Option<IntoSchema> {
9581        support::child(&self.syntax)
9582    }
9583    #[inline]
9584    pub fn limit_to_tables(&self) -> Option<LimitToTables> {
9585        support::child(&self.syntax)
9586    }
9587    #[inline]
9588    pub fn name_ref(&self) -> Option<NameRef> {
9589        support::child(&self.syntax)
9590    }
9591    #[inline]
9592    pub fn server_name(&self) -> Option<ServerName> {
9593        support::child(&self.syntax)
9594    }
9595    #[inline]
9596    pub fn foreign_token(&self) -> Option<SyntaxToken> {
9597        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
9598    }
9599    #[inline]
9600    pub fn from_token(&self) -> Option<SyntaxToken> {
9601        support::token(&self.syntax, SyntaxKind::FROM_KW)
9602    }
9603    #[inline]
9604    pub fn import_token(&self) -> Option<SyntaxToken> {
9605        support::token(&self.syntax, SyntaxKind::IMPORT_KW)
9606    }
9607    #[inline]
9608    pub fn schema_token(&self) -> Option<SyntaxToken> {
9609        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
9610    }
9611}
9612
9613#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9614pub struct IndexExpr {
9615    pub(crate) syntax: SyntaxNode,
9616}
9617impl IndexExpr {
9618    #[inline]
9619    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
9620        support::token(&self.syntax, SyntaxKind::L_BRACK)
9621    }
9622    #[inline]
9623    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
9624        support::token(&self.syntax, SyntaxKind::R_BRACK)
9625    }
9626}
9627
9628#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9629pub struct Inherit {
9630    pub(crate) syntax: SyntaxNode,
9631}
9632impl Inherit {
9633    #[inline]
9634    pub fn path(&self) -> Option<Path> {
9635        support::child(&self.syntax)
9636    }
9637    #[inline]
9638    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9639        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9640    }
9641}
9642
9643#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9644pub struct InheritTable {
9645    pub(crate) syntax: SyntaxNode,
9646}
9647impl InheritTable {
9648    #[inline]
9649    pub fn path(&self) -> Option<Path> {
9650        support::child(&self.syntax)
9651    }
9652    #[inline]
9653    pub fn inherit_token(&self) -> Option<SyntaxToken> {
9654        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
9655    }
9656}
9657
9658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9659pub struct Inherits {
9660    pub(crate) syntax: SyntaxNode,
9661}
9662impl Inherits {
9663    #[inline]
9664    pub fn paths(&self) -> AstChildren<Path> {
9665        support::children(&self.syntax)
9666    }
9667    #[inline]
9668    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9669        support::token(&self.syntax, SyntaxKind::L_PAREN)
9670    }
9671    #[inline]
9672    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9673        support::token(&self.syntax, SyntaxKind::R_PAREN)
9674    }
9675    #[inline]
9676    pub fn inherits_token(&self) -> Option<SyntaxToken> {
9677        support::token(&self.syntax, SyntaxKind::INHERITS_KW)
9678    }
9679}
9680
9681#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9682pub struct InitiallyDeferredConstraintOption {
9683    pub(crate) syntax: SyntaxNode,
9684}
9685impl InitiallyDeferredConstraintOption {
9686    #[inline]
9687    pub fn deferred_token(&self) -> Option<SyntaxToken> {
9688        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
9689    }
9690    #[inline]
9691    pub fn initially_token(&self) -> Option<SyntaxToken> {
9692        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9693    }
9694}
9695
9696#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9697pub struct InitiallyImmediateConstraintOption {
9698    pub(crate) syntax: SyntaxNode,
9699}
9700impl InitiallyImmediateConstraintOption {
9701    #[inline]
9702    pub fn immediate_token(&self) -> Option<SyntaxToken> {
9703        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
9704    }
9705    #[inline]
9706    pub fn initially_token(&self) -> Option<SyntaxToken> {
9707        support::token(&self.syntax, SyntaxKind::INITIALLY_KW)
9708    }
9709}
9710
9711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9712pub struct Insert {
9713    pub(crate) syntax: SyntaxNode,
9714}
9715impl Insert {
9716    #[inline]
9717    pub fn alias(&self) -> Option<Alias> {
9718        support::child(&self.syntax)
9719    }
9720    #[inline]
9721    pub fn column_list(&self) -> Option<ColumnList> {
9722        support::child(&self.syntax)
9723    }
9724    #[inline]
9725    pub fn on_conflict_clause(&self) -> Option<OnConflictClause> {
9726        support::child(&self.syntax)
9727    }
9728    #[inline]
9729    pub fn path(&self) -> Option<Path> {
9730        support::child(&self.syntax)
9731    }
9732    #[inline]
9733    pub fn returning_clause(&self) -> Option<ReturningClause> {
9734        support::child(&self.syntax)
9735    }
9736    #[inline]
9737    pub fn select_variant(&self) -> Option<SelectVariant> {
9738        support::child(&self.syntax)
9739    }
9740    #[inline]
9741    pub fn with_clause(&self) -> Option<WithClause> {
9742        support::child(&self.syntax)
9743    }
9744    #[inline]
9745    pub fn default_token(&self) -> Option<SyntaxToken> {
9746        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
9747    }
9748    #[inline]
9749    pub fn insert_token(&self) -> Option<SyntaxToken> {
9750        support::token(&self.syntax, SyntaxKind::INSERT_KW)
9751    }
9752    #[inline]
9753    pub fn into_token(&self) -> Option<SyntaxToken> {
9754        support::token(&self.syntax, SyntaxKind::INTO_KW)
9755    }
9756    #[inline]
9757    pub fn overriding_token(&self) -> Option<SyntaxToken> {
9758        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
9759    }
9760    #[inline]
9761    pub fn system_token(&self) -> Option<SyntaxToken> {
9762        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
9763    }
9764    #[inline]
9765    pub fn user_token(&self) -> Option<SyntaxToken> {
9766        support::token(&self.syntax, SyntaxKind::USER_KW)
9767    }
9768    #[inline]
9769    pub fn value_token(&self) -> Option<SyntaxToken> {
9770        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9771    }
9772    #[inline]
9773    pub fn values_token(&self) -> Option<SyntaxToken> {
9774        support::token(&self.syntax, SyntaxKind::VALUES_KW)
9775    }
9776}
9777
9778#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9779pub struct IntervalType {
9780    pub(crate) syntax: SyntaxNode,
9781}
9782impl IntervalType {
9783    #[inline]
9784    pub fn literal(&self) -> Option<Literal> {
9785        support::child(&self.syntax)
9786    }
9787    #[inline]
9788    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
9789        support::token(&self.syntax, SyntaxKind::L_PAREN)
9790    }
9791    #[inline]
9792    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
9793        support::token(&self.syntax, SyntaxKind::R_PAREN)
9794    }
9795    #[inline]
9796    pub fn day_token(&self) -> Option<SyntaxToken> {
9797        support::token(&self.syntax, SyntaxKind::DAY_KW)
9798    }
9799    #[inline]
9800    pub fn hour_token(&self) -> Option<SyntaxToken> {
9801        support::token(&self.syntax, SyntaxKind::HOUR_KW)
9802    }
9803    #[inline]
9804    pub fn interval_token(&self) -> Option<SyntaxToken> {
9805        support::token(&self.syntax, SyntaxKind::INTERVAL_KW)
9806    }
9807    #[inline]
9808    pub fn minute_token(&self) -> Option<SyntaxToken> {
9809        support::token(&self.syntax, SyntaxKind::MINUTE_KW)
9810    }
9811    #[inline]
9812    pub fn month_token(&self) -> Option<SyntaxToken> {
9813        support::token(&self.syntax, SyntaxKind::MONTH_KW)
9814    }
9815    #[inline]
9816    pub fn second_token(&self) -> Option<SyntaxToken> {
9817        support::token(&self.syntax, SyntaxKind::SECOND_KW)
9818    }
9819    #[inline]
9820    pub fn setof_token(&self) -> Option<SyntaxToken> {
9821        support::token(&self.syntax, SyntaxKind::SETOF_KW)
9822    }
9823    #[inline]
9824    pub fn to_token(&self) -> Option<SyntaxToken> {
9825        support::token(&self.syntax, SyntaxKind::TO_KW)
9826    }
9827    #[inline]
9828    pub fn year_token(&self) -> Option<SyntaxToken> {
9829        support::token(&self.syntax, SyntaxKind::YEAR_KW)
9830    }
9831}
9832
9833#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9834pub struct IntoClause {
9835    pub(crate) syntax: SyntaxNode,
9836}
9837impl IntoClause {
9838    #[inline]
9839    pub fn path(&self) -> Option<Path> {
9840        support::child(&self.syntax)
9841    }
9842    #[inline]
9843    pub fn persistence(&self) -> Option<Persistence> {
9844        support::child(&self.syntax)
9845    }
9846    #[inline]
9847    pub fn into_token(&self) -> Option<SyntaxToken> {
9848        support::token(&self.syntax, SyntaxKind::INTO_KW)
9849    }
9850    #[inline]
9851    pub fn table_token(&self) -> Option<SyntaxToken> {
9852        support::token(&self.syntax, SyntaxKind::TABLE_KW)
9853    }
9854}
9855
9856#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9857pub struct IntoSchema {
9858    pub(crate) syntax: SyntaxNode,
9859}
9860impl IntoSchema {
9861    #[inline]
9862    pub fn name_ref(&self) -> Option<NameRef> {
9863        support::child(&self.syntax)
9864    }
9865    #[inline]
9866    pub fn into_token(&self) -> Option<SyntaxToken> {
9867        support::token(&self.syntax, SyntaxKind::INTO_KW)
9868    }
9869}
9870
9871#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9872pub struct IsDistinctFrom {
9873    pub(crate) syntax: SyntaxNode,
9874}
9875impl IsDistinctFrom {
9876    #[inline]
9877    pub fn distinct_token(&self) -> Option<SyntaxToken> {
9878        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
9879    }
9880    #[inline]
9881    pub fn from_token(&self) -> Option<SyntaxToken> {
9882        support::token(&self.syntax, SyntaxKind::FROM_KW)
9883    }
9884    #[inline]
9885    pub fn is_token(&self) -> Option<SyntaxToken> {
9886        support::token(&self.syntax, SyntaxKind::IS_KW)
9887    }
9888}
9889
9890#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9891pub struct IsJson {
9892    pub(crate) syntax: SyntaxNode,
9893}
9894impl IsJson {
9895    #[inline]
9896    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9897        support::child(&self.syntax)
9898    }
9899    #[inline]
9900    pub fn is_token(&self) -> Option<SyntaxToken> {
9901        support::token(&self.syntax, SyntaxKind::IS_KW)
9902    }
9903    #[inline]
9904    pub fn json_token(&self) -> Option<SyntaxToken> {
9905        support::token(&self.syntax, SyntaxKind::JSON_KW)
9906    }
9907}
9908
9909#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9910pub struct IsJsonArray {
9911    pub(crate) syntax: SyntaxNode,
9912}
9913impl IsJsonArray {
9914    #[inline]
9915    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9916        support::child(&self.syntax)
9917    }
9918    #[inline]
9919    pub fn array_token(&self) -> Option<SyntaxToken> {
9920        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
9921    }
9922    #[inline]
9923    pub fn is_token(&self) -> Option<SyntaxToken> {
9924        support::token(&self.syntax, SyntaxKind::IS_KW)
9925    }
9926    #[inline]
9927    pub fn json_token(&self) -> Option<SyntaxToken> {
9928        support::token(&self.syntax, SyntaxKind::JSON_KW)
9929    }
9930}
9931
9932#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9933pub struct IsJsonObject {
9934    pub(crate) syntax: SyntaxNode,
9935}
9936impl IsJsonObject {
9937    #[inline]
9938    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9939        support::child(&self.syntax)
9940    }
9941    #[inline]
9942    pub fn is_token(&self) -> Option<SyntaxToken> {
9943        support::token(&self.syntax, SyntaxKind::IS_KW)
9944    }
9945    #[inline]
9946    pub fn json_token(&self) -> Option<SyntaxToken> {
9947        support::token(&self.syntax, SyntaxKind::JSON_KW)
9948    }
9949    #[inline]
9950    pub fn object_token(&self) -> Option<SyntaxToken> {
9951        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
9952    }
9953}
9954
9955#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9956pub struct IsJsonScalar {
9957    pub(crate) syntax: SyntaxNode,
9958}
9959impl IsJsonScalar {
9960    #[inline]
9961    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9962        support::child(&self.syntax)
9963    }
9964    #[inline]
9965    pub fn is_token(&self) -> Option<SyntaxToken> {
9966        support::token(&self.syntax, SyntaxKind::IS_KW)
9967    }
9968    #[inline]
9969    pub fn json_token(&self) -> Option<SyntaxToken> {
9970        support::token(&self.syntax, SyntaxKind::JSON_KW)
9971    }
9972    #[inline]
9973    pub fn scalar_token(&self) -> Option<SyntaxToken> {
9974        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
9975    }
9976}
9977
9978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
9979pub struct IsJsonValue {
9980    pub(crate) syntax: SyntaxNode,
9981}
9982impl IsJsonValue {
9983    #[inline]
9984    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
9985        support::child(&self.syntax)
9986    }
9987    #[inline]
9988    pub fn is_token(&self) -> Option<SyntaxToken> {
9989        support::token(&self.syntax, SyntaxKind::IS_KW)
9990    }
9991    #[inline]
9992    pub fn json_token(&self) -> Option<SyntaxToken> {
9993        support::token(&self.syntax, SyntaxKind::JSON_KW)
9994    }
9995    #[inline]
9996    pub fn value_token(&self) -> Option<SyntaxToken> {
9997        support::token(&self.syntax, SyntaxKind::VALUE_KW)
9998    }
9999}
10000
10001#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10002pub struct IsLabel {
10003    pub(crate) syntax: SyntaxNode,
10004}
10005impl IsLabel {
10006    #[inline]
10007    pub fn expr(&self) -> Option<Expr> {
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}
10015
10016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10017pub struct IsNormalized {
10018    pub(crate) syntax: SyntaxNode,
10019}
10020impl IsNormalized {
10021    #[inline]
10022    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10023        support::child(&self.syntax)
10024    }
10025    #[inline]
10026    pub fn is_token(&self) -> Option<SyntaxToken> {
10027        support::token(&self.syntax, SyntaxKind::IS_KW)
10028    }
10029    #[inline]
10030    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10031        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10032    }
10033}
10034
10035#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10036pub struct IsNot {
10037    pub(crate) syntax: SyntaxNode,
10038}
10039impl IsNot {
10040    #[inline]
10041    pub fn is_token(&self) -> Option<SyntaxToken> {
10042        support::token(&self.syntax, SyntaxKind::IS_KW)
10043    }
10044    #[inline]
10045    pub fn not_token(&self) -> Option<SyntaxToken> {
10046        support::token(&self.syntax, SyntaxKind::NOT_KW)
10047    }
10048}
10049
10050#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10051pub struct IsNotDistinctFrom {
10052    pub(crate) syntax: SyntaxNode,
10053}
10054impl IsNotDistinctFrom {
10055    #[inline]
10056    pub fn distinct_token(&self) -> Option<SyntaxToken> {
10057        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
10058    }
10059    #[inline]
10060    pub fn from_token(&self) -> Option<SyntaxToken> {
10061        support::token(&self.syntax, SyntaxKind::FROM_KW)
10062    }
10063    #[inline]
10064    pub fn is_token(&self) -> Option<SyntaxToken> {
10065        support::token(&self.syntax, SyntaxKind::IS_KW)
10066    }
10067    #[inline]
10068    pub fn not_token(&self) -> Option<SyntaxToken> {
10069        support::token(&self.syntax, SyntaxKind::NOT_KW)
10070    }
10071}
10072
10073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10074pub struct IsNotJson {
10075    pub(crate) syntax: SyntaxNode,
10076}
10077impl IsNotJson {
10078    #[inline]
10079    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10080        support::child(&self.syntax)
10081    }
10082    #[inline]
10083    pub fn is_token(&self) -> Option<SyntaxToken> {
10084        support::token(&self.syntax, SyntaxKind::IS_KW)
10085    }
10086    #[inline]
10087    pub fn json_token(&self) -> Option<SyntaxToken> {
10088        support::token(&self.syntax, SyntaxKind::JSON_KW)
10089    }
10090    #[inline]
10091    pub fn not_token(&self) -> Option<SyntaxToken> {
10092        support::token(&self.syntax, SyntaxKind::NOT_KW)
10093    }
10094}
10095
10096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10097pub struct IsNotJsonArray {
10098    pub(crate) syntax: SyntaxNode,
10099}
10100impl IsNotJsonArray {
10101    #[inline]
10102    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10103        support::child(&self.syntax)
10104    }
10105    #[inline]
10106    pub fn array_token(&self) -> Option<SyntaxToken> {
10107        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10108    }
10109    #[inline]
10110    pub fn is_token(&self) -> Option<SyntaxToken> {
10111        support::token(&self.syntax, SyntaxKind::IS_KW)
10112    }
10113    #[inline]
10114    pub fn json_token(&self) -> Option<SyntaxToken> {
10115        support::token(&self.syntax, SyntaxKind::JSON_KW)
10116    }
10117    #[inline]
10118    pub fn not_token(&self) -> Option<SyntaxToken> {
10119        support::token(&self.syntax, SyntaxKind::NOT_KW)
10120    }
10121}
10122
10123#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10124pub struct IsNotJsonObject {
10125    pub(crate) syntax: SyntaxNode,
10126}
10127impl IsNotJsonObject {
10128    #[inline]
10129    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10130        support::child(&self.syntax)
10131    }
10132    #[inline]
10133    pub fn is_token(&self) -> Option<SyntaxToken> {
10134        support::token(&self.syntax, SyntaxKind::IS_KW)
10135    }
10136    #[inline]
10137    pub fn json_token(&self) -> Option<SyntaxToken> {
10138        support::token(&self.syntax, SyntaxKind::JSON_KW)
10139    }
10140    #[inline]
10141    pub fn not_token(&self) -> Option<SyntaxToken> {
10142        support::token(&self.syntax, SyntaxKind::NOT_KW)
10143    }
10144    #[inline]
10145    pub fn object_token(&self) -> Option<SyntaxToken> {
10146        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10147    }
10148}
10149
10150#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10151pub struct IsNotJsonScalar {
10152    pub(crate) syntax: SyntaxNode,
10153}
10154impl IsNotJsonScalar {
10155    #[inline]
10156    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10157        support::child(&self.syntax)
10158    }
10159    #[inline]
10160    pub fn is_token(&self) -> Option<SyntaxToken> {
10161        support::token(&self.syntax, SyntaxKind::IS_KW)
10162    }
10163    #[inline]
10164    pub fn json_token(&self) -> Option<SyntaxToken> {
10165        support::token(&self.syntax, SyntaxKind::JSON_KW)
10166    }
10167    #[inline]
10168    pub fn not_token(&self) -> Option<SyntaxToken> {
10169        support::token(&self.syntax, SyntaxKind::NOT_KW)
10170    }
10171    #[inline]
10172    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10173        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10174    }
10175}
10176
10177#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10178pub struct IsNotJsonValue {
10179    pub(crate) syntax: SyntaxNode,
10180}
10181impl IsNotJsonValue {
10182    #[inline]
10183    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10184        support::child(&self.syntax)
10185    }
10186    #[inline]
10187    pub fn is_token(&self) -> Option<SyntaxToken> {
10188        support::token(&self.syntax, SyntaxKind::IS_KW)
10189    }
10190    #[inline]
10191    pub fn json_token(&self) -> Option<SyntaxToken> {
10192        support::token(&self.syntax, SyntaxKind::JSON_KW)
10193    }
10194    #[inline]
10195    pub fn not_token(&self) -> Option<SyntaxToken> {
10196        support::token(&self.syntax, SyntaxKind::NOT_KW)
10197    }
10198    #[inline]
10199    pub fn value_token(&self) -> Option<SyntaxToken> {
10200        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10201    }
10202}
10203
10204#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10205pub struct IsNotNormalized {
10206    pub(crate) syntax: SyntaxNode,
10207}
10208impl IsNotNormalized {
10209    #[inline]
10210    pub fn unicode_normal_form(&self) -> Option<UnicodeNormalForm> {
10211        support::child(&self.syntax)
10212    }
10213    #[inline]
10214    pub fn is_token(&self) -> Option<SyntaxToken> {
10215        support::token(&self.syntax, SyntaxKind::IS_KW)
10216    }
10217    #[inline]
10218    pub fn normalized_token(&self) -> Option<SyntaxToken> {
10219        support::token(&self.syntax, SyntaxKind::NORMALIZED_KW)
10220    }
10221    #[inline]
10222    pub fn not_token(&self) -> Option<SyntaxToken> {
10223        support::token(&self.syntax, SyntaxKind::NOT_KW)
10224    }
10225}
10226
10227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10228pub struct Join {
10229    pub(crate) syntax: SyntaxNode,
10230}
10231impl Join {
10232    #[inline]
10233    pub fn from_item(&self) -> Option<FromItem> {
10234        support::child(&self.syntax)
10235    }
10236    #[inline]
10237    pub fn join_type(&self) -> Option<JoinType> {
10238        support::child(&self.syntax)
10239    }
10240    #[inline]
10241    pub fn on_clause(&self) -> Option<OnClause> {
10242        support::child(&self.syntax)
10243    }
10244    #[inline]
10245    pub fn using_clause(&self) -> Option<JoinUsingClause> {
10246        support::child(&self.syntax)
10247    }
10248    #[inline]
10249    pub fn natural_token(&self) -> Option<SyntaxToken> {
10250        support::token(&self.syntax, SyntaxKind::NATURAL_KW)
10251    }
10252}
10253
10254#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10255pub struct JoinCross {
10256    pub(crate) syntax: SyntaxNode,
10257}
10258impl JoinCross {
10259    #[inline]
10260    pub fn cross_token(&self) -> Option<SyntaxToken> {
10261        support::token(&self.syntax, SyntaxKind::CROSS_KW)
10262    }
10263    #[inline]
10264    pub fn join_token(&self) -> Option<SyntaxToken> {
10265        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10266    }
10267}
10268
10269#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10270pub struct JoinExpr {
10271    pub(crate) syntax: SyntaxNode,
10272}
10273impl JoinExpr {
10274    #[inline]
10275    pub fn from_item(&self) -> Option<FromItem> {
10276        support::child(&self.syntax)
10277    }
10278    #[inline]
10279    pub fn join(&self) -> Option<Join> {
10280        support::child(&self.syntax)
10281    }
10282    #[inline]
10283    pub fn join_expr(&self) -> Option<JoinExpr> {
10284        support::child(&self.syntax)
10285    }
10286}
10287
10288#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10289pub struct JoinFull {
10290    pub(crate) syntax: SyntaxNode,
10291}
10292impl JoinFull {
10293    #[inline]
10294    pub fn full_token(&self) -> Option<SyntaxToken> {
10295        support::token(&self.syntax, SyntaxKind::FULL_KW)
10296    }
10297    #[inline]
10298    pub fn join_token(&self) -> Option<SyntaxToken> {
10299        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10300    }
10301    #[inline]
10302    pub fn outer_token(&self) -> Option<SyntaxToken> {
10303        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10304    }
10305}
10306
10307#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10308pub struct JoinInner {
10309    pub(crate) syntax: SyntaxNode,
10310}
10311impl JoinInner {
10312    #[inline]
10313    pub fn inner_token(&self) -> Option<SyntaxToken> {
10314        support::token(&self.syntax, SyntaxKind::INNER_KW)
10315    }
10316    #[inline]
10317    pub fn join_token(&self) -> Option<SyntaxToken> {
10318        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10319    }
10320}
10321
10322#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10323pub struct JoinLeft {
10324    pub(crate) syntax: SyntaxNode,
10325}
10326impl JoinLeft {
10327    #[inline]
10328    pub fn join_token(&self) -> Option<SyntaxToken> {
10329        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10330    }
10331    #[inline]
10332    pub fn left_token(&self) -> Option<SyntaxToken> {
10333        support::token(&self.syntax, SyntaxKind::LEFT_KW)
10334    }
10335    #[inline]
10336    pub fn outer_token(&self) -> Option<SyntaxToken> {
10337        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10338    }
10339}
10340
10341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10342pub struct JoinRight {
10343    pub(crate) syntax: SyntaxNode,
10344}
10345impl JoinRight {
10346    #[inline]
10347    pub fn join_token(&self) -> Option<SyntaxToken> {
10348        support::token(&self.syntax, SyntaxKind::JOIN_KW)
10349    }
10350    #[inline]
10351    pub fn outer_token(&self) -> Option<SyntaxToken> {
10352        support::token(&self.syntax, SyntaxKind::OUTER_KW)
10353    }
10354    #[inline]
10355    pub fn right_token(&self) -> Option<SyntaxToken> {
10356        support::token(&self.syntax, SyntaxKind::RIGHT_KW)
10357    }
10358}
10359
10360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10361pub struct JoinUsingClause {
10362    pub(crate) syntax: SyntaxNode,
10363}
10364impl JoinUsingClause {
10365    #[inline]
10366    pub fn alias(&self) -> Option<Alias> {
10367        support::child(&self.syntax)
10368    }
10369    #[inline]
10370    pub fn column_list(&self) -> Option<ColumnList> {
10371        support::child(&self.syntax)
10372    }
10373    #[inline]
10374    pub fn using_token(&self) -> Option<SyntaxToken> {
10375        support::token(&self.syntax, SyntaxKind::USING_KW)
10376    }
10377}
10378
10379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10380pub struct JsonArrayAggFn {
10381    pub(crate) syntax: SyntaxNode,
10382}
10383impl JsonArrayAggFn {
10384    #[inline]
10385    pub fn expr(&self) -> Option<Expr> {
10386        support::child(&self.syntax)
10387    }
10388    #[inline]
10389    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10390        support::child(&self.syntax)
10391    }
10392    #[inline]
10393    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10394        support::child(&self.syntax)
10395    }
10396    #[inline]
10397    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10398        support::children(&self.syntax)
10399    }
10400    #[inline]
10401    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10402        support::token(&self.syntax, SyntaxKind::L_PAREN)
10403    }
10404    #[inline]
10405    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10406        support::token(&self.syntax, SyntaxKind::R_PAREN)
10407    }
10408    #[inline]
10409    pub fn json_arrayagg_token(&self) -> Option<SyntaxToken> {
10410        support::token(&self.syntax, SyntaxKind::JSON_ARRAYAGG_KW)
10411    }
10412}
10413
10414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10415pub struct JsonArrayFn {
10416    pub(crate) syntax: SyntaxNode,
10417}
10418impl JsonArrayFn {
10419    #[inline]
10420    pub fn json_expr_formats(&self) -> AstChildren<JsonExprFormat> {
10421        support::children(&self.syntax)
10422    }
10423    #[inline]
10424    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10425        support::child(&self.syntax)
10426    }
10427    #[inline]
10428    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10429        support::child(&self.syntax)
10430    }
10431    #[inline]
10432    pub fn json_select_formats(&self) -> AstChildren<JsonSelectFormat> {
10433        support::children(&self.syntax)
10434    }
10435    #[inline]
10436    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10437        support::token(&self.syntax, SyntaxKind::L_PAREN)
10438    }
10439    #[inline]
10440    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10441        support::token(&self.syntax, SyntaxKind::R_PAREN)
10442    }
10443    #[inline]
10444    pub fn json_array_token(&self) -> Option<SyntaxToken> {
10445        support::token(&self.syntax, SyntaxKind::JSON_ARRAY_KW)
10446    }
10447}
10448
10449#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10450pub struct JsonBehaviorClause {
10451    pub(crate) syntax: SyntaxNode,
10452}
10453impl JsonBehaviorClause {
10454    #[inline]
10455    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10456        support::child(&self.syntax)
10457    }
10458}
10459
10460#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10461pub struct JsonBehaviorDefault {
10462    pub(crate) syntax: SyntaxNode,
10463}
10464impl JsonBehaviorDefault {
10465    #[inline]
10466    pub fn expr(&self) -> Option<Expr> {
10467        support::child(&self.syntax)
10468    }
10469    #[inline]
10470    pub fn default_token(&self) -> Option<SyntaxToken> {
10471        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
10472    }
10473}
10474
10475#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10476pub struct JsonBehaviorEmptyArray {
10477    pub(crate) syntax: SyntaxNode,
10478}
10479impl JsonBehaviorEmptyArray {
10480    #[inline]
10481    pub fn array_token(&self) -> Option<SyntaxToken> {
10482        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
10483    }
10484    #[inline]
10485    pub fn empty_token(&self) -> Option<SyntaxToken> {
10486        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10487    }
10488}
10489
10490#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10491pub struct JsonBehaviorEmptyObject {
10492    pub(crate) syntax: SyntaxNode,
10493}
10494impl JsonBehaviorEmptyObject {
10495    #[inline]
10496    pub fn empty_token(&self) -> Option<SyntaxToken> {
10497        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10498    }
10499    #[inline]
10500    pub fn object_token(&self) -> Option<SyntaxToken> {
10501        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
10502    }
10503}
10504
10505#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10506pub struct JsonBehaviorError {
10507    pub(crate) syntax: SyntaxNode,
10508}
10509impl JsonBehaviorError {
10510    #[inline]
10511    pub fn error_token(&self) -> Option<SyntaxToken> {
10512        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10513    }
10514}
10515
10516#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10517pub struct JsonBehaviorFalse {
10518    pub(crate) syntax: SyntaxNode,
10519}
10520impl JsonBehaviorFalse {
10521    #[inline]
10522    pub fn false_token(&self) -> Option<SyntaxToken> {
10523        support::token(&self.syntax, SyntaxKind::FALSE_KW)
10524    }
10525}
10526
10527#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10528pub struct JsonBehaviorNull {
10529    pub(crate) syntax: SyntaxNode,
10530}
10531impl JsonBehaviorNull {
10532    #[inline]
10533    pub fn null_token(&self) -> Option<SyntaxToken> {
10534        support::token(&self.syntax, SyntaxKind::NULL_KW)
10535    }
10536}
10537
10538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10539pub struct JsonBehaviorTrue {
10540    pub(crate) syntax: SyntaxNode,
10541}
10542impl JsonBehaviorTrue {
10543    #[inline]
10544    pub fn true_token(&self) -> Option<SyntaxToken> {
10545        support::token(&self.syntax, SyntaxKind::TRUE_KW)
10546    }
10547}
10548
10549#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10550pub struct JsonBehaviorUnknown {
10551    pub(crate) syntax: SyntaxNode,
10552}
10553impl JsonBehaviorUnknown {
10554    #[inline]
10555    pub fn unknown_token(&self) -> Option<SyntaxToken> {
10556        support::token(&self.syntax, SyntaxKind::UNKNOWN_KW)
10557    }
10558}
10559
10560#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10561pub struct JsonEncodingClause {
10562    pub(crate) syntax: SyntaxNode,
10563}
10564impl JsonEncodingClause {
10565    #[inline]
10566    pub fn name_ref(&self) -> Option<NameRef> {
10567        support::child(&self.syntax)
10568    }
10569    #[inline]
10570    pub fn encoding_token(&self) -> Option<SyntaxToken> {
10571        support::token(&self.syntax, SyntaxKind::ENCODING_KW)
10572    }
10573}
10574
10575#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10576pub struct JsonExistsFn {
10577    pub(crate) syntax: SyntaxNode,
10578}
10579impl JsonExistsFn {
10580    #[inline]
10581    pub fn expr(&self) -> Option<Expr> {
10582        support::child(&self.syntax)
10583    }
10584    #[inline]
10585    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10586        support::child(&self.syntax)
10587    }
10588    #[inline]
10589    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
10590        support::child(&self.syntax)
10591    }
10592    #[inline]
10593    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10594        support::child(&self.syntax)
10595    }
10596    #[inline]
10597    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10598        support::token(&self.syntax, SyntaxKind::L_PAREN)
10599    }
10600    #[inline]
10601    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10602        support::token(&self.syntax, SyntaxKind::R_PAREN)
10603    }
10604    #[inline]
10605    pub fn comma_token(&self) -> Option<SyntaxToken> {
10606        support::token(&self.syntax, SyntaxKind::COMMA)
10607    }
10608    #[inline]
10609    pub fn json_exists_token(&self) -> Option<SyntaxToken> {
10610        support::token(&self.syntax, SyntaxKind::JSON_EXISTS_KW)
10611    }
10612}
10613
10614#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10615pub struct JsonExprFormat {
10616    pub(crate) syntax: SyntaxNode,
10617}
10618impl JsonExprFormat {
10619    #[inline]
10620    pub fn expr(&self) -> Option<Expr> {
10621        support::child(&self.syntax)
10622    }
10623    #[inline]
10624    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10625        support::child(&self.syntax)
10626    }
10627}
10628
10629#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10630pub struct JsonFn {
10631    pub(crate) syntax: SyntaxNode,
10632}
10633impl JsonFn {
10634    #[inline]
10635    pub fn json_expr_format(&self) -> Option<JsonExprFormat> {
10636        support::child(&self.syntax)
10637    }
10638    #[inline]
10639    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10640        support::child(&self.syntax)
10641    }
10642    #[inline]
10643    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10644        support::token(&self.syntax, SyntaxKind::L_PAREN)
10645    }
10646    #[inline]
10647    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10648        support::token(&self.syntax, SyntaxKind::R_PAREN)
10649    }
10650    #[inline]
10651    pub fn json_token(&self) -> Option<SyntaxToken> {
10652        support::token(&self.syntax, SyntaxKind::JSON_KW)
10653    }
10654}
10655
10656#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10657pub struct JsonFormatClause {
10658    pub(crate) syntax: SyntaxNode,
10659}
10660impl JsonFormatClause {
10661    #[inline]
10662    pub fn json_encoding_clause(&self) -> Option<JsonEncodingClause> {
10663        support::child(&self.syntax)
10664    }
10665    #[inline]
10666    pub fn format_token(&self) -> Option<SyntaxToken> {
10667        support::token(&self.syntax, SyntaxKind::FORMAT_KW)
10668    }
10669    #[inline]
10670    pub fn json_token(&self) -> Option<SyntaxToken> {
10671        support::token(&self.syntax, SyntaxKind::JSON_KW)
10672    }
10673}
10674
10675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10676pub struct JsonKeyValue {
10677    pub(crate) syntax: SyntaxNode,
10678}
10679impl JsonKeyValue {
10680    #[inline]
10681    pub fn expr(&self) -> Option<Expr> {
10682        support::child(&self.syntax)
10683    }
10684    #[inline]
10685    pub fn json_value_expr(&self) -> Option<JsonValueExpr> {
10686        support::child(&self.syntax)
10687    }
10688    #[inline]
10689    pub fn colon_token(&self) -> Option<SyntaxToken> {
10690        support::token(&self.syntax, SyntaxKind::COLON)
10691    }
10692    #[inline]
10693    pub fn value_token(&self) -> Option<SyntaxToken> {
10694        support::token(&self.syntax, SyntaxKind::VALUE_KW)
10695    }
10696}
10697
10698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10699pub struct JsonKeysUniqueClause {
10700    pub(crate) syntax: SyntaxNode,
10701}
10702impl JsonKeysUniqueClause {
10703    #[inline]
10704    pub fn keys_token(&self) -> Option<SyntaxToken> {
10705        support::token(&self.syntax, SyntaxKind::KEYS_KW)
10706    }
10707    #[inline]
10708    pub fn unique_token(&self) -> Option<SyntaxToken> {
10709        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
10710    }
10711    #[inline]
10712    pub fn with_token(&self) -> Option<SyntaxToken> {
10713        support::token(&self.syntax, SyntaxKind::WITH_KW)
10714    }
10715    #[inline]
10716    pub fn without_token(&self) -> Option<SyntaxToken> {
10717        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
10718    }
10719}
10720
10721#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10722pub struct JsonNullClause {
10723    pub(crate) syntax: SyntaxNode,
10724}
10725impl JsonNullClause {
10726    #[inline]
10727    pub fn absent_token(&self) -> Option<SyntaxToken> {
10728        support::token(&self.syntax, SyntaxKind::ABSENT_KW)
10729    }
10730    #[inline]
10731    pub fn null_token(&self) -> Option<SyntaxToken> {
10732        support::token(&self.syntax, SyntaxKind::NULL_KW)
10733    }
10734    #[inline]
10735    pub fn on_token(&self) -> Option<SyntaxToken> {
10736        support::token(&self.syntax, SyntaxKind::ON_KW)
10737    }
10738}
10739
10740#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10741pub struct JsonObjectAggFn {
10742    pub(crate) syntax: SyntaxNode,
10743}
10744impl JsonObjectAggFn {
10745    #[inline]
10746    pub fn json_key_value(&self) -> Option<JsonKeyValue> {
10747        support::child(&self.syntax)
10748    }
10749    #[inline]
10750    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10751        support::child(&self.syntax)
10752    }
10753    #[inline]
10754    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10755        support::child(&self.syntax)
10756    }
10757    #[inline]
10758    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10759        support::child(&self.syntax)
10760    }
10761    #[inline]
10762    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10763        support::token(&self.syntax, SyntaxKind::L_PAREN)
10764    }
10765    #[inline]
10766    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10767        support::token(&self.syntax, SyntaxKind::R_PAREN)
10768    }
10769    #[inline]
10770    pub fn json_objectagg_token(&self) -> Option<SyntaxToken> {
10771        support::token(&self.syntax, SyntaxKind::JSON_OBJECTAGG_KW)
10772    }
10773}
10774
10775#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10776pub struct JsonObjectFn {
10777    pub(crate) syntax: SyntaxNode,
10778}
10779impl JsonObjectFn {
10780    #[inline]
10781    pub fn json_key_values(&self) -> AstChildren<JsonKeyValue> {
10782        support::children(&self.syntax)
10783    }
10784    #[inline]
10785    pub fn json_keys_unique_clause(&self) -> Option<JsonKeysUniqueClause> {
10786        support::child(&self.syntax)
10787    }
10788    #[inline]
10789    pub fn json_null_clause(&self) -> Option<JsonNullClause> {
10790        support::child(&self.syntax)
10791    }
10792    #[inline]
10793    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10794        support::child(&self.syntax)
10795    }
10796    #[inline]
10797    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10798        support::token(&self.syntax, SyntaxKind::L_PAREN)
10799    }
10800    #[inline]
10801    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10802        support::token(&self.syntax, SyntaxKind::R_PAREN)
10803    }
10804    #[inline]
10805    pub fn json_object_token(&self) -> Option<SyntaxToken> {
10806        support::token(&self.syntax, SyntaxKind::JSON_OBJECT_KW)
10807    }
10808}
10809
10810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10811pub struct JsonOnEmptyClause {
10812    pub(crate) syntax: SyntaxNode,
10813}
10814impl JsonOnEmptyClause {
10815    #[inline]
10816    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10817        support::child(&self.syntax)
10818    }
10819    #[inline]
10820    pub fn empty_token(&self) -> Option<SyntaxToken> {
10821        support::token(&self.syntax, SyntaxKind::EMPTY_KW)
10822    }
10823    #[inline]
10824    pub fn on_token(&self) -> Option<SyntaxToken> {
10825        support::token(&self.syntax, SyntaxKind::ON_KW)
10826    }
10827}
10828
10829#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10830pub struct JsonOnErrorClause {
10831    pub(crate) syntax: SyntaxNode,
10832}
10833impl JsonOnErrorClause {
10834    #[inline]
10835    pub fn json_behavior(&self) -> Option<JsonBehavior> {
10836        support::child(&self.syntax)
10837    }
10838    #[inline]
10839    pub fn error_token(&self) -> Option<SyntaxToken> {
10840        support::token(&self.syntax, SyntaxKind::ERROR_KW)
10841    }
10842    #[inline]
10843    pub fn on_token(&self) -> Option<SyntaxToken> {
10844        support::token(&self.syntax, SyntaxKind::ON_KW)
10845    }
10846}
10847
10848#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10849pub struct JsonPassingArg {
10850    pub(crate) syntax: SyntaxNode,
10851}
10852impl JsonPassingArg {
10853    #[inline]
10854    pub fn expr(&self) -> Option<Expr> {
10855        support::child(&self.syntax)
10856    }
10857    #[inline]
10858    pub fn name(&self) -> Option<Name> {
10859        support::child(&self.syntax)
10860    }
10861    #[inline]
10862    pub fn as_token(&self) -> Option<SyntaxToken> {
10863        support::token(&self.syntax, SyntaxKind::AS_KW)
10864    }
10865}
10866
10867#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10868pub struct JsonPassingClause {
10869    pub(crate) syntax: SyntaxNode,
10870}
10871impl JsonPassingClause {
10872    #[inline]
10873    pub fn json_passing_args(&self) -> AstChildren<JsonPassingArg> {
10874        support::children(&self.syntax)
10875    }
10876    #[inline]
10877    pub fn passing_token(&self) -> Option<SyntaxToken> {
10878        support::token(&self.syntax, SyntaxKind::PASSING_KW)
10879    }
10880}
10881
10882#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10883pub struct JsonPathClause {
10884    pub(crate) syntax: SyntaxNode,
10885}
10886impl JsonPathClause {
10887    #[inline]
10888    pub fn expr(&self) -> Option<Expr> {
10889        support::child(&self.syntax)
10890    }
10891    #[inline]
10892    pub fn path_token(&self) -> Option<SyntaxToken> {
10893        support::token(&self.syntax, SyntaxKind::PATH_KW)
10894    }
10895}
10896
10897#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10898pub struct JsonQueryFn {
10899    pub(crate) syntax: SyntaxNode,
10900}
10901impl JsonQueryFn {
10902    #[inline]
10903    pub fn expr(&self) -> Option<Expr> {
10904        support::child(&self.syntax)
10905    }
10906    #[inline]
10907    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
10908        support::child(&self.syntax)
10909    }
10910    #[inline]
10911    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
10912        support::child(&self.syntax)
10913    }
10914    #[inline]
10915    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
10916        support::child(&self.syntax)
10917    }
10918    #[inline]
10919    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
10920        support::child(&self.syntax)
10921    }
10922    #[inline]
10923    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
10924        support::child(&self.syntax)
10925    }
10926    #[inline]
10927    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
10928        support::child(&self.syntax)
10929    }
10930    #[inline]
10931    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
10932        support::token(&self.syntax, SyntaxKind::L_PAREN)
10933    }
10934    #[inline]
10935    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
10936        support::token(&self.syntax, SyntaxKind::R_PAREN)
10937    }
10938    #[inline]
10939    pub fn comma_token(&self) -> Option<SyntaxToken> {
10940        support::token(&self.syntax, SyntaxKind::COMMA)
10941    }
10942    #[inline]
10943    pub fn json_query_token(&self) -> Option<SyntaxToken> {
10944        support::token(&self.syntax, SyntaxKind::JSON_QUERY_KW)
10945    }
10946}
10947
10948#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10949pub struct JsonQuotesClause {
10950    pub(crate) syntax: SyntaxNode,
10951}
10952impl JsonQuotesClause {
10953    #[inline]
10954    pub fn keep_token(&self) -> Option<SyntaxToken> {
10955        support::token(&self.syntax, SyntaxKind::KEEP_KW)
10956    }
10957    #[inline]
10958    pub fn omit_token(&self) -> Option<SyntaxToken> {
10959        support::token(&self.syntax, SyntaxKind::OMIT_KW)
10960    }
10961    #[inline]
10962    pub fn on_token(&self) -> Option<SyntaxToken> {
10963        support::token(&self.syntax, SyntaxKind::ON_KW)
10964    }
10965    #[inline]
10966    pub fn quotes_token(&self) -> Option<SyntaxToken> {
10967        support::token(&self.syntax, SyntaxKind::QUOTES_KW)
10968    }
10969    #[inline]
10970    pub fn scalar_token(&self) -> Option<SyntaxToken> {
10971        support::token(&self.syntax, SyntaxKind::SCALAR_KW)
10972    }
10973    #[inline]
10974    pub fn string_token(&self) -> Option<SyntaxToken> {
10975        support::token(&self.syntax, SyntaxKind::STRING_KW)
10976    }
10977}
10978
10979#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10980pub struct JsonReturningClause {
10981    pub(crate) syntax: SyntaxNode,
10982}
10983impl JsonReturningClause {
10984    #[inline]
10985    pub fn ty(&self) -> Option<Type> {
10986        support::child(&self.syntax)
10987    }
10988    #[inline]
10989    pub fn returning_token(&self) -> Option<SyntaxToken> {
10990        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
10991    }
10992}
10993
10994#[derive(Debug, Clone, PartialEq, Eq, Hash)]
10995pub struct JsonScalarFn {
10996    pub(crate) syntax: SyntaxNode,
10997}
10998impl JsonScalarFn {
10999    #[inline]
11000    pub fn expr(&self) -> Option<Expr> {
11001        support::child(&self.syntax)
11002    }
11003    #[inline]
11004    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11005        support::token(&self.syntax, SyntaxKind::L_PAREN)
11006    }
11007    #[inline]
11008    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11009        support::token(&self.syntax, SyntaxKind::R_PAREN)
11010    }
11011    #[inline]
11012    pub fn json_scalar_token(&self) -> Option<SyntaxToken> {
11013        support::token(&self.syntax, SyntaxKind::JSON_SCALAR_KW)
11014    }
11015}
11016
11017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11018pub struct JsonSelectFormat {
11019    pub(crate) syntax: SyntaxNode,
11020}
11021impl JsonSelectFormat {
11022    #[inline]
11023    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11024        support::child(&self.syntax)
11025    }
11026    #[inline]
11027    pub fn select_variant(&self) -> Option<SelectVariant> {
11028        support::child(&self.syntax)
11029    }
11030}
11031
11032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11033pub struct JsonSerializeFn {
11034    pub(crate) syntax: SyntaxNode,
11035}
11036impl JsonSerializeFn {
11037    #[inline]
11038    pub fn expr(&self) -> Option<Expr> {
11039        support::child(&self.syntax)
11040    }
11041    #[inline]
11042    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11043        support::child(&self.syntax)
11044    }
11045    #[inline]
11046    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11047        support::child(&self.syntax)
11048    }
11049    #[inline]
11050    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11051        support::token(&self.syntax, SyntaxKind::L_PAREN)
11052    }
11053    #[inline]
11054    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11055        support::token(&self.syntax, SyntaxKind::R_PAREN)
11056    }
11057    #[inline]
11058    pub fn json_serialize_token(&self) -> Option<SyntaxToken> {
11059        support::token(&self.syntax, SyntaxKind::JSON_SERIALIZE_KW)
11060    }
11061}
11062
11063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11064pub struct JsonTable {
11065    pub(crate) syntax: SyntaxNode,
11066}
11067impl JsonTable {
11068    #[inline]
11069    pub fn expr(&self) -> Option<Expr> {
11070        support::child(&self.syntax)
11071    }
11072    #[inline]
11073    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11074        support::child(&self.syntax)
11075    }
11076    #[inline]
11077    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11078        support::child(&self.syntax)
11079    }
11080    #[inline]
11081    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11082        support::child(&self.syntax)
11083    }
11084    #[inline]
11085    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11086        support::child(&self.syntax)
11087    }
11088    #[inline]
11089    pub fn name(&self) -> Option<Name> {
11090        support::child(&self.syntax)
11091    }
11092    #[inline]
11093    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11094        support::token(&self.syntax, SyntaxKind::L_PAREN)
11095    }
11096    #[inline]
11097    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11098        support::token(&self.syntax, SyntaxKind::R_PAREN)
11099    }
11100    #[inline]
11101    pub fn comma_token(&self) -> Option<SyntaxToken> {
11102        support::token(&self.syntax, SyntaxKind::COMMA)
11103    }
11104    #[inline]
11105    pub fn as_token(&self) -> Option<SyntaxToken> {
11106        support::token(&self.syntax, SyntaxKind::AS_KW)
11107    }
11108    #[inline]
11109    pub fn json_table_token(&self) -> Option<SyntaxToken> {
11110        support::token(&self.syntax, SyntaxKind::JSON_TABLE_KW)
11111    }
11112}
11113
11114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11115pub struct JsonTableColumn {
11116    pub(crate) syntax: SyntaxNode,
11117}
11118impl JsonTableColumn {
11119    #[inline]
11120    pub fn expr(&self) -> Option<Expr> {
11121        support::child(&self.syntax)
11122    }
11123    #[inline]
11124    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11125        support::child(&self.syntax)
11126    }
11127    #[inline]
11128    pub fn json_on_empty_clause(&self) -> Option<JsonOnEmptyClause> {
11129        support::child(&self.syntax)
11130    }
11131    #[inline]
11132    pub fn json_on_error_clause(&self) -> Option<JsonOnErrorClause> {
11133        support::child(&self.syntax)
11134    }
11135    #[inline]
11136    pub fn json_path_clause(&self) -> Option<JsonPathClause> {
11137        support::child(&self.syntax)
11138    }
11139    #[inline]
11140    pub fn json_quotes_clause(&self) -> Option<JsonQuotesClause> {
11141        support::child(&self.syntax)
11142    }
11143    #[inline]
11144    pub fn json_table_column_list(&self) -> Option<JsonTableColumnList> {
11145        support::child(&self.syntax)
11146    }
11147    #[inline]
11148    pub fn json_wrapper_behavior_clause(&self) -> Option<JsonWrapperBehaviorClause> {
11149        support::child(&self.syntax)
11150    }
11151    #[inline]
11152    pub fn name(&self) -> Option<Name> {
11153        support::child(&self.syntax)
11154    }
11155    #[inline]
11156    pub fn ty(&self) -> Option<Type> {
11157        support::child(&self.syntax)
11158    }
11159    #[inline]
11160    pub fn as_token(&self) -> Option<SyntaxToken> {
11161        support::token(&self.syntax, SyntaxKind::AS_KW)
11162    }
11163    #[inline]
11164    pub fn exists_token(&self) -> Option<SyntaxToken> {
11165        support::token(&self.syntax, SyntaxKind::EXISTS_KW)
11166    }
11167    #[inline]
11168    pub fn for_token(&self) -> Option<SyntaxToken> {
11169        support::token(&self.syntax, SyntaxKind::FOR_KW)
11170    }
11171    #[inline]
11172    pub fn nested_token(&self) -> Option<SyntaxToken> {
11173        support::token(&self.syntax, SyntaxKind::NESTED_KW)
11174    }
11175    #[inline]
11176    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
11177        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
11178    }
11179    #[inline]
11180    pub fn path_token(&self) -> Option<SyntaxToken> {
11181        support::token(&self.syntax, SyntaxKind::PATH_KW)
11182    }
11183}
11184
11185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11186pub struct JsonTableColumnList {
11187    pub(crate) syntax: SyntaxNode,
11188}
11189impl JsonTableColumnList {
11190    #[inline]
11191    pub fn json_table_columns(&self) -> AstChildren<JsonTableColumn> {
11192        support::children(&self.syntax)
11193    }
11194    #[inline]
11195    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11196        support::token(&self.syntax, SyntaxKind::L_PAREN)
11197    }
11198    #[inline]
11199    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11200        support::token(&self.syntax, SyntaxKind::R_PAREN)
11201    }
11202    #[inline]
11203    pub fn columns_token(&self) -> Option<SyntaxToken> {
11204        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
11205    }
11206}
11207
11208#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11209pub struct JsonValueExpr {
11210    pub(crate) syntax: SyntaxNode,
11211}
11212impl JsonValueExpr {
11213    #[inline]
11214    pub fn expr(&self) -> Option<Expr> {
11215        support::child(&self.syntax)
11216    }
11217    #[inline]
11218    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11219        support::child(&self.syntax)
11220    }
11221}
11222
11223#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11224pub struct JsonValueFn {
11225    pub(crate) syntax: SyntaxNode,
11226}
11227impl JsonValueFn {
11228    #[inline]
11229    pub fn expr(&self) -> Option<Expr> {
11230        support::child(&self.syntax)
11231    }
11232    #[inline]
11233    pub fn json_behavior_clause(&self) -> Option<JsonBehaviorClause> {
11234        support::child(&self.syntax)
11235    }
11236    #[inline]
11237    pub fn json_format_clause(&self) -> Option<JsonFormatClause> {
11238        support::child(&self.syntax)
11239    }
11240    #[inline]
11241    pub fn json_passing_clause(&self) -> Option<JsonPassingClause> {
11242        support::child(&self.syntax)
11243    }
11244    #[inline]
11245    pub fn json_returning_clause(&self) -> Option<JsonReturningClause> {
11246        support::child(&self.syntax)
11247    }
11248    #[inline]
11249    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11250        support::token(&self.syntax, SyntaxKind::L_PAREN)
11251    }
11252    #[inline]
11253    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11254        support::token(&self.syntax, SyntaxKind::R_PAREN)
11255    }
11256    #[inline]
11257    pub fn comma_token(&self) -> Option<SyntaxToken> {
11258        support::token(&self.syntax, SyntaxKind::COMMA)
11259    }
11260    #[inline]
11261    pub fn json_value_token(&self) -> Option<SyntaxToken> {
11262        support::token(&self.syntax, SyntaxKind::JSON_VALUE_KW)
11263    }
11264}
11265
11266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11267pub struct JsonWrapperBehaviorClause {
11268    pub(crate) syntax: SyntaxNode,
11269}
11270impl JsonWrapperBehaviorClause {
11271    #[inline]
11272    pub fn array_token(&self) -> Option<SyntaxToken> {
11273        support::token(&self.syntax, SyntaxKind::ARRAY_KW)
11274    }
11275    #[inline]
11276    pub fn conditional_token(&self) -> Option<SyntaxToken> {
11277        support::token(&self.syntax, SyntaxKind::CONDITIONAL_KW)
11278    }
11279    #[inline]
11280    pub fn unconditional_token(&self) -> Option<SyntaxToken> {
11281        support::token(&self.syntax, SyntaxKind::UNCONDITIONAL_KW)
11282    }
11283    #[inline]
11284    pub fn with_token(&self) -> Option<SyntaxToken> {
11285        support::token(&self.syntax, SyntaxKind::WITH_KW)
11286    }
11287    #[inline]
11288    pub fn without_token(&self) -> Option<SyntaxToken> {
11289        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
11290    }
11291    #[inline]
11292    pub fn wrapper_token(&self) -> Option<SyntaxToken> {
11293        support::token(&self.syntax, SyntaxKind::WRAPPER_KW)
11294    }
11295}
11296
11297#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11298pub struct LabelAndProperties {
11299    pub(crate) syntax: SyntaxNode,
11300}
11301impl LabelAndProperties {
11302    #[inline]
11303    pub fn element_table_properties(&self) -> Option<ElementTableProperties> {
11304        support::child(&self.syntax)
11305    }
11306    #[inline]
11307    pub fn name(&self) -> Option<Name> {
11308        support::child(&self.syntax)
11309    }
11310    #[inline]
11311    pub fn default_token(&self) -> Option<SyntaxToken> {
11312        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11313    }
11314    #[inline]
11315    pub fn label_token(&self) -> Option<SyntaxToken> {
11316        support::token(&self.syntax, SyntaxKind::LABEL_KW)
11317    }
11318}
11319
11320#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11321pub struct LabelAndPropertiesList {
11322    pub(crate) syntax: SyntaxNode,
11323}
11324impl LabelAndPropertiesList {
11325    #[inline]
11326    pub fn label_and_propertiess(&self) -> AstChildren<LabelAndProperties> {
11327        support::children(&self.syntax)
11328    }
11329}
11330
11331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11332pub struct LanguageFuncOption {
11333    pub(crate) syntax: SyntaxNode,
11334}
11335impl LanguageFuncOption {
11336    #[inline]
11337    pub fn name_ref(&self) -> Option<NameRef> {
11338        support::child(&self.syntax)
11339    }
11340    #[inline]
11341    pub fn language_token(&self) -> Option<SyntaxToken> {
11342        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
11343    }
11344}
11345
11346#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11347pub struct LeakproofFuncOption {
11348    pub(crate) syntax: SyntaxNode,
11349}
11350impl LeakproofFuncOption {
11351    #[inline]
11352    pub fn leakproof_token(&self) -> Option<SyntaxToken> {
11353        support::token(&self.syntax, SyntaxKind::LEAKPROOF_KW)
11354    }
11355    #[inline]
11356    pub fn not_token(&self) -> Option<SyntaxToken> {
11357        support::token(&self.syntax, SyntaxKind::NOT_KW)
11358    }
11359}
11360
11361#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11362pub struct LikeClause {
11363    pub(crate) syntax: SyntaxNode,
11364}
11365impl LikeClause {
11366    #[inline]
11367    pub fn like_options(&self) -> AstChildren<LikeOption> {
11368        support::children(&self.syntax)
11369    }
11370    #[inline]
11371    pub fn path(&self) -> Option<Path> {
11372        support::child(&self.syntax)
11373    }
11374    #[inline]
11375    pub fn like_token(&self) -> Option<SyntaxToken> {
11376        support::token(&self.syntax, SyntaxKind::LIKE_KW)
11377    }
11378}
11379
11380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11381pub struct LikeOption {
11382    pub(crate) syntax: SyntaxNode,
11383}
11384impl LikeOption {
11385    #[inline]
11386    pub fn all_token(&self) -> Option<SyntaxToken> {
11387        support::token(&self.syntax, SyntaxKind::ALL_KW)
11388    }
11389    #[inline]
11390    pub fn comments_token(&self) -> Option<SyntaxToken> {
11391        support::token(&self.syntax, SyntaxKind::COMMENTS_KW)
11392    }
11393    #[inline]
11394    pub fn compression_token(&self) -> Option<SyntaxToken> {
11395        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
11396    }
11397    #[inline]
11398    pub fn constraints_token(&self) -> Option<SyntaxToken> {
11399        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
11400    }
11401    #[inline]
11402    pub fn defaults_token(&self) -> Option<SyntaxToken> {
11403        support::token(&self.syntax, SyntaxKind::DEFAULTS_KW)
11404    }
11405    #[inline]
11406    pub fn excluding_token(&self) -> Option<SyntaxToken> {
11407        support::token(&self.syntax, SyntaxKind::EXCLUDING_KW)
11408    }
11409    #[inline]
11410    pub fn generated_token(&self) -> Option<SyntaxToken> {
11411        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
11412    }
11413    #[inline]
11414    pub fn identity_token(&self) -> Option<SyntaxToken> {
11415        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
11416    }
11417    #[inline]
11418    pub fn including_token(&self) -> Option<SyntaxToken> {
11419        support::token(&self.syntax, SyntaxKind::INCLUDING_KW)
11420    }
11421    #[inline]
11422    pub fn indexes_token(&self) -> Option<SyntaxToken> {
11423        support::token(&self.syntax, SyntaxKind::INDEXES_KW)
11424    }
11425    #[inline]
11426    pub fn statistics_token(&self) -> Option<SyntaxToken> {
11427        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
11428    }
11429    #[inline]
11430    pub fn storage_token(&self) -> Option<SyntaxToken> {
11431        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
11432    }
11433}
11434
11435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11436pub struct LimitClause {
11437    pub(crate) syntax: SyntaxNode,
11438}
11439impl LimitClause {
11440    #[inline]
11441    pub fn expr(&self) -> Option<Expr> {
11442        support::child(&self.syntax)
11443    }
11444    #[inline]
11445    pub fn all_token(&self) -> Option<SyntaxToken> {
11446        support::token(&self.syntax, SyntaxKind::ALL_KW)
11447    }
11448    #[inline]
11449    pub fn limit_token(&self) -> Option<SyntaxToken> {
11450        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11451    }
11452}
11453
11454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11455pub struct LimitToTables {
11456    pub(crate) syntax: SyntaxNode,
11457}
11458impl LimitToTables {
11459    #[inline]
11460    pub fn name_refs(&self) -> AstChildren<NameRef> {
11461        support::children(&self.syntax)
11462    }
11463    #[inline]
11464    pub fn limit_token(&self) -> Option<SyntaxToken> {
11465        support::token(&self.syntax, SyntaxKind::LIMIT_KW)
11466    }
11467    #[inline]
11468    pub fn to_token(&self) -> Option<SyntaxToken> {
11469        support::token(&self.syntax, SyntaxKind::TO_KW)
11470    }
11471}
11472
11473#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11474pub struct Listen {
11475    pub(crate) syntax: SyntaxNode,
11476}
11477impl Listen {
11478    #[inline]
11479    pub fn name(&self) -> Option<Name> {
11480        support::child(&self.syntax)
11481    }
11482    #[inline]
11483    pub fn listen_token(&self) -> Option<SyntaxToken> {
11484        support::token(&self.syntax, SyntaxKind::LISTEN_KW)
11485    }
11486}
11487
11488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11489pub struct Literal {
11490    pub(crate) syntax: SyntaxNode,
11491}
11492impl Literal {}
11493
11494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11495pub struct Load {
11496    pub(crate) syntax: SyntaxNode,
11497}
11498impl Load {
11499    #[inline]
11500    pub fn literal(&self) -> Option<Literal> {
11501        support::child(&self.syntax)
11502    }
11503    #[inline]
11504    pub fn load_token(&self) -> Option<SyntaxToken> {
11505        support::token(&self.syntax, SyntaxKind::LOAD_KW)
11506    }
11507}
11508
11509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11510pub struct Lock {
11511    pub(crate) syntax: SyntaxNode,
11512}
11513impl Lock {
11514    #[inline]
11515    pub fn table_list(&self) -> Option<TableList> {
11516        support::child(&self.syntax)
11517    }
11518    #[inline]
11519    pub fn lock_token(&self) -> Option<SyntaxToken> {
11520        support::token(&self.syntax, SyntaxKind::LOCK_KW)
11521    }
11522    #[inline]
11523    pub fn table_token(&self) -> Option<SyntaxToken> {
11524        support::token(&self.syntax, SyntaxKind::TABLE_KW)
11525    }
11526}
11527
11528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11529pub struct LockingClause {
11530    pub(crate) syntax: SyntaxNode,
11531}
11532impl LockingClause {
11533    #[inline]
11534    pub fn for_token(&self) -> Option<SyntaxToken> {
11535        support::token(&self.syntax, SyntaxKind::FOR_KW)
11536    }
11537}
11538
11539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11540pub struct Lteq {
11541    pub(crate) syntax: SyntaxNode,
11542}
11543impl Lteq {
11544    #[inline]
11545    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11546        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11547    }
11548    #[inline]
11549    pub fn eq_token(&self) -> Option<SyntaxToken> {
11550        support::token(&self.syntax, SyntaxKind::EQ)
11551    }
11552}
11553
11554#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11555pub struct MatchFull {
11556    pub(crate) syntax: SyntaxNode,
11557}
11558impl MatchFull {
11559    #[inline]
11560    pub fn full_token(&self) -> Option<SyntaxToken> {
11561        support::token(&self.syntax, SyntaxKind::FULL_KW)
11562    }
11563    #[inline]
11564    pub fn match_token(&self) -> Option<SyntaxToken> {
11565        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11566    }
11567}
11568
11569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11570pub struct MatchPartial {
11571    pub(crate) syntax: SyntaxNode,
11572}
11573impl MatchPartial {
11574    #[inline]
11575    pub fn match_token(&self) -> Option<SyntaxToken> {
11576        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11577    }
11578    #[inline]
11579    pub fn partial_token(&self) -> Option<SyntaxToken> {
11580        support::token(&self.syntax, SyntaxKind::PARTIAL_KW)
11581    }
11582}
11583
11584#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11585pub struct MatchSimple {
11586    pub(crate) syntax: SyntaxNode,
11587}
11588impl MatchSimple {
11589    #[inline]
11590    pub fn match_token(&self) -> Option<SyntaxToken> {
11591        support::token(&self.syntax, SyntaxKind::MATCH_KW)
11592    }
11593    #[inline]
11594    pub fn simple_token(&self) -> Option<SyntaxToken> {
11595        support::token(&self.syntax, SyntaxKind::SIMPLE_KW)
11596    }
11597}
11598
11599#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11600pub struct Materialized {
11601    pub(crate) syntax: SyntaxNode,
11602}
11603impl Materialized {
11604    #[inline]
11605    pub fn materialized_token(&self) -> Option<SyntaxToken> {
11606        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
11607    }
11608}
11609
11610#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11611pub struct Merge {
11612    pub(crate) syntax: SyntaxNode,
11613}
11614impl Merge {
11615    #[inline]
11616    pub fn alias(&self) -> Option<Alias> {
11617        support::child(&self.syntax)
11618    }
11619    #[inline]
11620    pub fn merge_when_clauses(&self) -> AstChildren<MergeWhenClause> {
11621        support::children(&self.syntax)
11622    }
11623    #[inline]
11624    pub fn relation_name(&self) -> Option<RelationName> {
11625        support::child(&self.syntax)
11626    }
11627    #[inline]
11628    pub fn returning_clause(&self) -> Option<ReturningClause> {
11629        support::child(&self.syntax)
11630    }
11631    #[inline]
11632    pub fn using_on_clause(&self) -> Option<UsingOnClause> {
11633        support::child(&self.syntax)
11634    }
11635    #[inline]
11636    pub fn with_clause(&self) -> Option<WithClause> {
11637        support::child(&self.syntax)
11638    }
11639    #[inline]
11640    pub fn into_token(&self) -> Option<SyntaxToken> {
11641        support::token(&self.syntax, SyntaxKind::INTO_KW)
11642    }
11643    #[inline]
11644    pub fn merge_token(&self) -> Option<SyntaxToken> {
11645        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11646    }
11647}
11648
11649#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11650pub struct MergeDelete {
11651    pub(crate) syntax: SyntaxNode,
11652}
11653impl MergeDelete {
11654    #[inline]
11655    pub fn delete_token(&self) -> Option<SyntaxToken> {
11656        support::token(&self.syntax, SyntaxKind::DELETE_KW)
11657    }
11658}
11659
11660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11661pub struct MergeDoNothing {
11662    pub(crate) syntax: SyntaxNode,
11663}
11664impl MergeDoNothing {
11665    #[inline]
11666    pub fn do_token(&self) -> Option<SyntaxToken> {
11667        support::token(&self.syntax, SyntaxKind::DO_KW)
11668    }
11669    #[inline]
11670    pub fn nothing_token(&self) -> Option<SyntaxToken> {
11671        support::token(&self.syntax, SyntaxKind::NOTHING_KW)
11672    }
11673}
11674
11675#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11676pub struct MergeInsert {
11677    pub(crate) syntax: SyntaxNode,
11678}
11679impl MergeInsert {
11680    #[inline]
11681    pub fn column_list(&self) -> Option<ColumnList> {
11682        support::child(&self.syntax)
11683    }
11684    #[inline]
11685    pub fn values(&self) -> Option<Values> {
11686        support::child(&self.syntax)
11687    }
11688    #[inline]
11689    pub fn default_token(&self) -> Option<SyntaxToken> {
11690        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
11691    }
11692    #[inline]
11693    pub fn insert_token(&self) -> Option<SyntaxToken> {
11694        support::token(&self.syntax, SyntaxKind::INSERT_KW)
11695    }
11696    #[inline]
11697    pub fn overriding_token(&self) -> Option<SyntaxToken> {
11698        support::token(&self.syntax, SyntaxKind::OVERRIDING_KW)
11699    }
11700    #[inline]
11701    pub fn system_token(&self) -> Option<SyntaxToken> {
11702        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
11703    }
11704    #[inline]
11705    pub fn user_token(&self) -> Option<SyntaxToken> {
11706        support::token(&self.syntax, SyntaxKind::USER_KW)
11707    }
11708    #[inline]
11709    pub fn values_token(&self) -> Option<SyntaxToken> {
11710        support::token(&self.syntax, SyntaxKind::VALUES_KW)
11711    }
11712}
11713
11714#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11715pub struct MergePartitions {
11716    pub(crate) syntax: SyntaxNode,
11717}
11718impl MergePartitions {
11719    #[inline]
11720    pub fn path(&self) -> Option<Path> {
11721        support::child(&self.syntax)
11722    }
11723    #[inline]
11724    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
11725        support::token(&self.syntax, SyntaxKind::L_PAREN)
11726    }
11727    #[inline]
11728    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
11729        support::token(&self.syntax, SyntaxKind::R_PAREN)
11730    }
11731    #[inline]
11732    pub fn into_token(&self) -> Option<SyntaxToken> {
11733        support::token(&self.syntax, SyntaxKind::INTO_KW)
11734    }
11735    #[inline]
11736    pub fn merge_token(&self) -> Option<SyntaxToken> {
11737        support::token(&self.syntax, SyntaxKind::MERGE_KW)
11738    }
11739    #[inline]
11740    pub fn partitions_token(&self) -> Option<SyntaxToken> {
11741        support::token(&self.syntax, SyntaxKind::PARTITIONS_KW)
11742    }
11743}
11744
11745#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11746pub struct MergeUpdate {
11747    pub(crate) syntax: SyntaxNode,
11748}
11749impl MergeUpdate {
11750    #[inline]
11751    pub fn set_clause(&self) -> Option<SetClause> {
11752        support::child(&self.syntax)
11753    }
11754    #[inline]
11755    pub fn set_token(&self) -> Option<SyntaxToken> {
11756        support::token(&self.syntax, SyntaxKind::SET_KW)
11757    }
11758    #[inline]
11759    pub fn update_token(&self) -> Option<SyntaxToken> {
11760        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
11761    }
11762}
11763
11764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11765pub struct MergeWhenMatched {
11766    pub(crate) syntax: SyntaxNode,
11767}
11768impl MergeWhenMatched {
11769    #[inline]
11770    pub fn expr(&self) -> Option<Expr> {
11771        support::child(&self.syntax)
11772    }
11773    #[inline]
11774    pub fn merge_action(&self) -> Option<MergeAction> {
11775        support::child(&self.syntax)
11776    }
11777    #[inline]
11778    pub fn and_token(&self) -> Option<SyntaxToken> {
11779        support::token(&self.syntax, SyntaxKind::AND_KW)
11780    }
11781    #[inline]
11782    pub fn matched_token(&self) -> Option<SyntaxToken> {
11783        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11784    }
11785    #[inline]
11786    pub fn then_token(&self) -> Option<SyntaxToken> {
11787        support::token(&self.syntax, SyntaxKind::THEN_KW)
11788    }
11789    #[inline]
11790    pub fn when_token(&self) -> Option<SyntaxToken> {
11791        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11792    }
11793}
11794
11795#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11796pub struct MergeWhenNotMatchedSource {
11797    pub(crate) syntax: SyntaxNode,
11798}
11799impl MergeWhenNotMatchedSource {
11800    #[inline]
11801    pub fn expr(&self) -> Option<Expr> {
11802        support::child(&self.syntax)
11803    }
11804    #[inline]
11805    pub fn merge_action(&self) -> Option<MergeAction> {
11806        support::child(&self.syntax)
11807    }
11808    #[inline]
11809    pub fn and_token(&self) -> Option<SyntaxToken> {
11810        support::token(&self.syntax, SyntaxKind::AND_KW)
11811    }
11812    #[inline]
11813    pub fn by_token(&self) -> Option<SyntaxToken> {
11814        support::token(&self.syntax, SyntaxKind::BY_KW)
11815    }
11816    #[inline]
11817    pub fn matched_token(&self) -> Option<SyntaxToken> {
11818        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11819    }
11820    #[inline]
11821    pub fn not_token(&self) -> Option<SyntaxToken> {
11822        support::token(&self.syntax, SyntaxKind::NOT_KW)
11823    }
11824    #[inline]
11825    pub fn source_token(&self) -> Option<SyntaxToken> {
11826        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
11827    }
11828    #[inline]
11829    pub fn then_token(&self) -> Option<SyntaxToken> {
11830        support::token(&self.syntax, SyntaxKind::THEN_KW)
11831    }
11832    #[inline]
11833    pub fn when_token(&self) -> Option<SyntaxToken> {
11834        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11835    }
11836}
11837
11838#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11839pub struct MergeWhenNotMatchedTarget {
11840    pub(crate) syntax: SyntaxNode,
11841}
11842impl MergeWhenNotMatchedTarget {
11843    #[inline]
11844    pub fn expr(&self) -> Option<Expr> {
11845        support::child(&self.syntax)
11846    }
11847    #[inline]
11848    pub fn merge_action(&self) -> Option<MergeAction> {
11849        support::child(&self.syntax)
11850    }
11851    #[inline]
11852    pub fn and_token(&self) -> Option<SyntaxToken> {
11853        support::token(&self.syntax, SyntaxKind::AND_KW)
11854    }
11855    #[inline]
11856    pub fn by_token(&self) -> Option<SyntaxToken> {
11857        support::token(&self.syntax, SyntaxKind::BY_KW)
11858    }
11859    #[inline]
11860    pub fn matched_token(&self) -> Option<SyntaxToken> {
11861        support::token(&self.syntax, SyntaxKind::MATCHED_KW)
11862    }
11863    #[inline]
11864    pub fn not_token(&self) -> Option<SyntaxToken> {
11865        support::token(&self.syntax, SyntaxKind::NOT_KW)
11866    }
11867    #[inline]
11868    pub fn target_token(&self) -> Option<SyntaxToken> {
11869        support::token(&self.syntax, SyntaxKind::TARGET_KW)
11870    }
11871    #[inline]
11872    pub fn then_token(&self) -> Option<SyntaxToken> {
11873        support::token(&self.syntax, SyntaxKind::THEN_KW)
11874    }
11875    #[inline]
11876    pub fn when_token(&self) -> Option<SyntaxToken> {
11877        support::token(&self.syntax, SyntaxKind::WHEN_KW)
11878    }
11879}
11880
11881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11882pub struct Move {
11883    pub(crate) syntax: SyntaxNode,
11884}
11885impl Move {
11886    #[inline]
11887    pub fn name_ref(&self) -> Option<NameRef> {
11888        support::child(&self.syntax)
11889    }
11890    #[inline]
11891    pub fn from_token(&self) -> Option<SyntaxToken> {
11892        support::token(&self.syntax, SyntaxKind::FROM_KW)
11893    }
11894    #[inline]
11895    pub fn in_token(&self) -> Option<SyntaxToken> {
11896        support::token(&self.syntax, SyntaxKind::IN_KW)
11897    }
11898    #[inline]
11899    pub fn move_token(&self) -> Option<SyntaxToken> {
11900        support::token(&self.syntax, SyntaxKind::MOVE_KW)
11901    }
11902}
11903
11904#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11905pub struct Name {
11906    pub(crate) syntax: SyntaxNode,
11907}
11908impl Name {
11909    #[inline]
11910    pub fn ident_token(&self) -> Option<SyntaxToken> {
11911        support::token(&self.syntax, SyntaxKind::IDENT)
11912    }
11913}
11914
11915#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11916pub struct NameRef {
11917    pub(crate) syntax: SyntaxNode,
11918}
11919impl NameRef {
11920    #[inline]
11921    pub fn ident_token(&self) -> Option<SyntaxToken> {
11922        support::token(&self.syntax, SyntaxKind::IDENT)
11923    }
11924}
11925
11926#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11927pub struct NamedArg {
11928    pub(crate) syntax: SyntaxNode,
11929}
11930impl NamedArg {
11931    #[inline]
11932    pub fn expr(&self) -> Option<Expr> {
11933        support::child(&self.syntax)
11934    }
11935    #[inline]
11936    pub fn fat_arrow(&self) -> Option<FatArrow> {
11937        support::child(&self.syntax)
11938    }
11939    #[inline]
11940    pub fn name_ref(&self) -> Option<NameRef> {
11941        support::child(&self.syntax)
11942    }
11943}
11944
11945#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11946pub struct Neq {
11947    pub(crate) syntax: SyntaxNode,
11948}
11949impl Neq {
11950    #[inline]
11951    pub fn bang_token(&self) -> Option<SyntaxToken> {
11952        support::token(&self.syntax, SyntaxKind::BANG)
11953    }
11954    #[inline]
11955    pub fn eq_token(&self) -> Option<SyntaxToken> {
11956        support::token(&self.syntax, SyntaxKind::EQ)
11957    }
11958}
11959
11960#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11961pub struct Neqb {
11962    pub(crate) syntax: SyntaxNode,
11963}
11964impl Neqb {
11965    #[inline]
11966    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
11967        support::token(&self.syntax, SyntaxKind::L_ANGLE)
11968    }
11969    #[inline]
11970    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
11971        support::token(&self.syntax, SyntaxKind::R_ANGLE)
11972    }
11973}
11974
11975#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11976pub struct NoAction {
11977    pub(crate) syntax: SyntaxNode,
11978}
11979impl NoAction {
11980    #[inline]
11981    pub fn action_token(&self) -> Option<SyntaxToken> {
11982        support::token(&self.syntax, SyntaxKind::ACTION_KW)
11983    }
11984    #[inline]
11985    pub fn no_token(&self) -> Option<SyntaxToken> {
11986        support::token(&self.syntax, SyntaxKind::NO_KW)
11987    }
11988}
11989
11990#[derive(Debug, Clone, PartialEq, Eq, Hash)]
11991pub struct NoDependsOnExtension {
11992    pub(crate) syntax: SyntaxNode,
11993}
11994impl NoDependsOnExtension {
11995    #[inline]
11996    pub fn name_ref(&self) -> Option<NameRef> {
11997        support::child(&self.syntax)
11998    }
11999    #[inline]
12000    pub fn depends_token(&self) -> Option<SyntaxToken> {
12001        support::token(&self.syntax, SyntaxKind::DEPENDS_KW)
12002    }
12003    #[inline]
12004    pub fn extension_token(&self) -> Option<SyntaxToken> {
12005        support::token(&self.syntax, SyntaxKind::EXTENSION_KW)
12006    }
12007    #[inline]
12008    pub fn no_token(&self) -> Option<SyntaxToken> {
12009        support::token(&self.syntax, SyntaxKind::NO_KW)
12010    }
12011    #[inline]
12012    pub fn on_token(&self) -> Option<SyntaxToken> {
12013        support::token(&self.syntax, SyntaxKind::ON_KW)
12014    }
12015}
12016
12017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12018pub struct NoForceRls {
12019    pub(crate) syntax: SyntaxNode,
12020}
12021impl NoForceRls {
12022    #[inline]
12023    pub fn force_token(&self) -> Option<SyntaxToken> {
12024        support::token(&self.syntax, SyntaxKind::FORCE_KW)
12025    }
12026    #[inline]
12027    pub fn level_token(&self) -> Option<SyntaxToken> {
12028        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
12029    }
12030    #[inline]
12031    pub fn no_token(&self) -> Option<SyntaxToken> {
12032        support::token(&self.syntax, SyntaxKind::NO_KW)
12033    }
12034    #[inline]
12035    pub fn row_token(&self) -> Option<SyntaxToken> {
12036        support::token(&self.syntax, SyntaxKind::ROW_KW)
12037    }
12038    #[inline]
12039    pub fn security_token(&self) -> Option<SyntaxToken> {
12040        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
12041    }
12042}
12043
12044#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12045pub struct NoInherit {
12046    pub(crate) syntax: SyntaxNode,
12047}
12048impl NoInherit {
12049    #[inline]
12050    pub fn path(&self) -> Option<Path> {
12051        support::child(&self.syntax)
12052    }
12053    #[inline]
12054    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12055        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12056    }
12057    #[inline]
12058    pub fn no_token(&self) -> Option<SyntaxToken> {
12059        support::token(&self.syntax, SyntaxKind::NO_KW)
12060    }
12061}
12062
12063#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12064pub struct NoInheritTable {
12065    pub(crate) syntax: SyntaxNode,
12066}
12067impl NoInheritTable {
12068    #[inline]
12069    pub fn path(&self) -> Option<Path> {
12070        support::child(&self.syntax)
12071    }
12072    #[inline]
12073    pub fn inherit_token(&self) -> Option<SyntaxToken> {
12074        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
12075    }
12076    #[inline]
12077    pub fn no_token(&self) -> Option<SyntaxToken> {
12078        support::token(&self.syntax, SyntaxKind::NO_KW)
12079    }
12080}
12081
12082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12083pub struct NoProperties {
12084    pub(crate) syntax: SyntaxNode,
12085}
12086impl NoProperties {
12087    #[inline]
12088    pub fn no_token(&self) -> Option<SyntaxToken> {
12089        support::token(&self.syntax, SyntaxKind::NO_KW)
12090    }
12091    #[inline]
12092    pub fn properties_token(&self) -> Option<SyntaxToken> {
12093        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
12094    }
12095}
12096
12097#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12098pub struct NonStandardParam {
12099    pub(crate) syntax: SyntaxNode,
12100}
12101impl NonStandardParam {
12102    #[inline]
12103    pub fn name_ref(&self) -> Option<NameRef> {
12104        support::child(&self.syntax)
12105    }
12106    #[inline]
12107    pub fn colon_token(&self) -> Option<SyntaxToken> {
12108        support::token(&self.syntax, SyntaxKind::COLON)
12109    }
12110}
12111
12112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12113pub struct NotDeferrable {
12114    pub(crate) syntax: SyntaxNode,
12115}
12116impl NotDeferrable {
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 NotDeferrableConstraintOption {
12129    pub(crate) syntax: SyntaxNode,
12130}
12131impl NotDeferrableConstraintOption {
12132    #[inline]
12133    pub fn deferrable_token(&self) -> Option<SyntaxToken> {
12134        support::token(&self.syntax, SyntaxKind::DEFERRABLE_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 NotEnforced {
12144    pub(crate) syntax: SyntaxNode,
12145}
12146impl NotEnforced {
12147    #[inline]
12148    pub fn enforced_token(&self) -> Option<SyntaxToken> {
12149        support::token(&self.syntax, SyntaxKind::ENFORCED_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 NotIlike {
12159    pub(crate) syntax: SyntaxNode,
12160}
12161impl NotIlike {
12162    #[inline]
12163    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12164        support::token(&self.syntax, SyntaxKind::ILIKE_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 NotIn {
12174    pub(crate) syntax: SyntaxNode,
12175}
12176impl NotIn {
12177    #[inline]
12178    pub fn in_token(&self) -> Option<SyntaxToken> {
12179        support::token(&self.syntax, SyntaxKind::IN_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 NotLike {
12189    pub(crate) syntax: SyntaxNode,
12190}
12191impl NotLike {
12192    #[inline]
12193    pub fn like_token(&self) -> Option<SyntaxToken> {
12194        support::token(&self.syntax, SyntaxKind::LIKE_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 NotMaterialized {
12204    pub(crate) syntax: SyntaxNode,
12205}
12206impl NotMaterialized {
12207    #[inline]
12208    pub fn materialized_token(&self) -> Option<SyntaxToken> {
12209        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
12210    }
12211    #[inline]
12212    pub fn not_token(&self) -> Option<SyntaxToken> {
12213        support::token(&self.syntax, SyntaxKind::NOT_KW)
12214    }
12215}
12216
12217#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12218pub struct NotNullConstraint {
12219    pub(crate) syntax: SyntaxNode,
12220}
12221impl NotNullConstraint {
12222    #[inline]
12223    pub fn name_ref(&self) -> Option<NameRef> {
12224        support::child(&self.syntax)
12225    }
12226    #[inline]
12227    pub fn no_inherit(&self) -> Option<NoInherit> {
12228        support::child(&self.syntax)
12229    }
12230    #[inline]
12231    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12232        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12233    }
12234    #[inline]
12235    pub fn not_token(&self) -> Option<SyntaxToken> {
12236        support::token(&self.syntax, SyntaxKind::NOT_KW)
12237    }
12238    #[inline]
12239    pub fn null_token(&self) -> Option<SyntaxToken> {
12240        support::token(&self.syntax, SyntaxKind::NULL_KW)
12241    }
12242}
12243
12244#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12245pub struct NotOf {
12246    pub(crate) syntax: SyntaxNode,
12247}
12248impl NotOf {
12249    #[inline]
12250    pub fn not_token(&self) -> Option<SyntaxToken> {
12251        support::token(&self.syntax, SyntaxKind::NOT_KW)
12252    }
12253    #[inline]
12254    pub fn of_token(&self) -> Option<SyntaxToken> {
12255        support::token(&self.syntax, SyntaxKind::OF_KW)
12256    }
12257}
12258
12259#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12260pub struct NotSimilarTo {
12261    pub(crate) syntax: SyntaxNode,
12262}
12263impl NotSimilarTo {
12264    #[inline]
12265    pub fn not_token(&self) -> Option<SyntaxToken> {
12266        support::token(&self.syntax, SyntaxKind::NOT_KW)
12267    }
12268    #[inline]
12269    pub fn similar_token(&self) -> Option<SyntaxToken> {
12270        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
12271    }
12272    #[inline]
12273    pub fn to_token(&self) -> Option<SyntaxToken> {
12274        support::token(&self.syntax, SyntaxKind::TO_KW)
12275    }
12276}
12277
12278#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12279pub struct NotValid {
12280    pub(crate) syntax: SyntaxNode,
12281}
12282impl NotValid {
12283    #[inline]
12284    pub fn not_token(&self) -> Option<SyntaxToken> {
12285        support::token(&self.syntax, SyntaxKind::NOT_KW)
12286    }
12287    #[inline]
12288    pub fn valid_token(&self) -> Option<SyntaxToken> {
12289        support::token(&self.syntax, SyntaxKind::VALID_KW)
12290    }
12291}
12292
12293#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12294pub struct Notify {
12295    pub(crate) syntax: SyntaxNode,
12296}
12297impl Notify {
12298    #[inline]
12299    pub fn literal(&self) -> Option<Literal> {
12300        support::child(&self.syntax)
12301    }
12302    #[inline]
12303    pub fn name_ref(&self) -> Option<NameRef> {
12304        support::child(&self.syntax)
12305    }
12306    #[inline]
12307    pub fn comma_token(&self) -> Option<SyntaxToken> {
12308        support::token(&self.syntax, SyntaxKind::COMMA)
12309    }
12310    #[inline]
12311    pub fn notify_token(&self) -> Option<SyntaxToken> {
12312        support::token(&self.syntax, SyntaxKind::NOTIFY_KW)
12313    }
12314}
12315
12316#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12317pub struct NullConstraint {
12318    pub(crate) syntax: SyntaxNode,
12319}
12320impl NullConstraint {
12321    #[inline]
12322    pub fn name_ref(&self) -> Option<NameRef> {
12323        support::child(&self.syntax)
12324    }
12325    #[inline]
12326    pub fn constraint_token(&self) -> Option<SyntaxToken> {
12327        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
12328    }
12329    #[inline]
12330    pub fn null_token(&self) -> Option<SyntaxToken> {
12331        support::token(&self.syntax, SyntaxKind::NULL_KW)
12332    }
12333}
12334
12335#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12336pub struct NullsDistinct {
12337    pub(crate) syntax: SyntaxNode,
12338}
12339impl NullsDistinct {
12340    #[inline]
12341    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12342        support::token(&self.syntax, SyntaxKind::DISTINCT_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 NullsFirst {
12352    pub(crate) syntax: SyntaxNode,
12353}
12354impl NullsFirst {
12355    #[inline]
12356    pub fn first_token(&self) -> Option<SyntaxToken> {
12357        support::token(&self.syntax, SyntaxKind::FIRST_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 NullsLast {
12367    pub(crate) syntax: SyntaxNode,
12368}
12369impl NullsLast {
12370    #[inline]
12371    pub fn last_token(&self) -> Option<SyntaxToken> {
12372        support::token(&self.syntax, SyntaxKind::LAST_KW)
12373    }
12374    #[inline]
12375    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12376        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12377    }
12378}
12379
12380#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12381pub struct NullsNotDistinct {
12382    pub(crate) syntax: SyntaxNode,
12383}
12384impl NullsNotDistinct {
12385    #[inline]
12386    pub fn distinct_token(&self) -> Option<SyntaxToken> {
12387        support::token(&self.syntax, SyntaxKind::DISTINCT_KW)
12388    }
12389    #[inline]
12390    pub fn not_token(&self) -> Option<SyntaxToken> {
12391        support::token(&self.syntax, SyntaxKind::NOT_KW)
12392    }
12393    #[inline]
12394    pub fn nulls_token(&self) -> Option<SyntaxToken> {
12395        support::token(&self.syntax, SyntaxKind::NULLS_KW)
12396    }
12397}
12398
12399#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12400pub struct OfType {
12401    pub(crate) syntax: SyntaxNode,
12402}
12403impl OfType {
12404    #[inline]
12405    pub fn ty(&self) -> Option<Type> {
12406        support::child(&self.syntax)
12407    }
12408    #[inline]
12409    pub fn of_token(&self) -> Option<SyntaxToken> {
12410        support::token(&self.syntax, SyntaxKind::OF_KW)
12411    }
12412}
12413
12414#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12415pub struct OffsetClause {
12416    pub(crate) syntax: SyntaxNode,
12417}
12418impl OffsetClause {
12419    #[inline]
12420    pub fn expr(&self) -> Option<Expr> {
12421        support::child(&self.syntax)
12422    }
12423    #[inline]
12424    pub fn offset_token(&self) -> Option<SyntaxToken> {
12425        support::token(&self.syntax, SyntaxKind::OFFSET_KW)
12426    }
12427    #[inline]
12428    pub fn row_token(&self) -> Option<SyntaxToken> {
12429        support::token(&self.syntax, SyntaxKind::ROW_KW)
12430    }
12431    #[inline]
12432    pub fn rows_token(&self) -> Option<SyntaxToken> {
12433        support::token(&self.syntax, SyntaxKind::ROWS_KW)
12434    }
12435}
12436
12437#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12438pub struct OnClause {
12439    pub(crate) syntax: SyntaxNode,
12440}
12441impl OnClause {
12442    #[inline]
12443    pub fn expr(&self) -> Option<Expr> {
12444        support::child(&self.syntax)
12445    }
12446    #[inline]
12447    pub fn on_token(&self) -> Option<SyntaxToken> {
12448        support::token(&self.syntax, SyntaxKind::ON_KW)
12449    }
12450}
12451
12452#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12453pub struct OnCommit {
12454    pub(crate) syntax: SyntaxNode,
12455}
12456impl OnCommit {
12457    #[inline]
12458    pub fn on_commit_action(&self) -> Option<OnCommitAction> {
12459        support::child(&self.syntax)
12460    }
12461    #[inline]
12462    pub fn commit_token(&self) -> Option<SyntaxToken> {
12463        support::token(&self.syntax, SyntaxKind::COMMIT_KW)
12464    }
12465    #[inline]
12466    pub fn on_token(&self) -> Option<SyntaxToken> {
12467        support::token(&self.syntax, SyntaxKind::ON_KW)
12468    }
12469}
12470
12471#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12472pub struct OnConflictClause {
12473    pub(crate) syntax: SyntaxNode,
12474}
12475impl OnConflictClause {
12476    #[inline]
12477    pub fn conflict_action(&self) -> Option<ConflictAction> {
12478        support::child(&self.syntax)
12479    }
12480    #[inline]
12481    pub fn conflict_target(&self) -> Option<ConflictTarget> {
12482        support::child(&self.syntax)
12483    }
12484    #[inline]
12485    pub fn conflict_token(&self) -> Option<SyntaxToken> {
12486        support::token(&self.syntax, SyntaxKind::CONFLICT_KW)
12487    }
12488    #[inline]
12489    pub fn on_token(&self) -> Option<SyntaxToken> {
12490        support::token(&self.syntax, SyntaxKind::ON_KW)
12491    }
12492}
12493
12494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12495pub struct OnDeleteAction {
12496    pub(crate) syntax: SyntaxNode,
12497}
12498impl OnDeleteAction {
12499    #[inline]
12500    pub fn ref_action(&self) -> Option<RefAction> {
12501        support::child(&self.syntax)
12502    }
12503    #[inline]
12504    pub fn delete_token(&self) -> Option<SyntaxToken> {
12505        support::token(&self.syntax, SyntaxKind::DELETE_KW)
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 OnPath {
12515    pub(crate) syntax: SyntaxNode,
12516}
12517impl OnPath {
12518    #[inline]
12519    pub fn path(&self) -> Option<Path> {
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}
12527
12528#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12529pub struct OnTable {
12530    pub(crate) syntax: SyntaxNode,
12531}
12532impl OnTable {
12533    #[inline]
12534    pub fn path(&self) -> Option<Path> {
12535        support::child(&self.syntax)
12536    }
12537    #[inline]
12538    pub fn on_token(&self) -> Option<SyntaxToken> {
12539        support::token(&self.syntax, SyntaxKind::ON_KW)
12540    }
12541}
12542
12543#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12544pub struct OnUpdateAction {
12545    pub(crate) syntax: SyntaxNode,
12546}
12547impl OnUpdateAction {
12548    #[inline]
12549    pub fn ref_action(&self) -> Option<RefAction> {
12550        support::child(&self.syntax)
12551    }
12552    #[inline]
12553    pub fn on_token(&self) -> Option<SyntaxToken> {
12554        support::token(&self.syntax, SyntaxKind::ON_KW)
12555    }
12556    #[inline]
12557    pub fn update_token(&self) -> Option<SyntaxToken> {
12558        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
12559    }
12560}
12561
12562#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12563pub struct Op {
12564    pub(crate) syntax: SyntaxNode,
12565}
12566impl Op {
12567    #[inline]
12568    pub fn at_time_zone(&self) -> Option<AtTimeZone> {
12569        support::child(&self.syntax)
12570    }
12571    #[inline]
12572    pub fn colon_colon(&self) -> Option<ColonColon> {
12573        support::child(&self.syntax)
12574    }
12575    #[inline]
12576    pub fn colon_eq(&self) -> Option<ColonEq> {
12577        support::child(&self.syntax)
12578    }
12579    #[inline]
12580    pub fn custom_op(&self) -> Option<CustomOp> {
12581        support::child(&self.syntax)
12582    }
12583    #[inline]
12584    pub fn fat_arrow(&self) -> Option<FatArrow> {
12585        support::child(&self.syntax)
12586    }
12587    #[inline]
12588    pub fn gteq(&self) -> Option<Gteq> {
12589        support::child(&self.syntax)
12590    }
12591    #[inline]
12592    pub fn is_distinct_from(&self) -> Option<IsDistinctFrom> {
12593        support::child(&self.syntax)
12594    }
12595    #[inline]
12596    pub fn is_json(&self) -> Option<IsJson> {
12597        support::child(&self.syntax)
12598    }
12599    #[inline]
12600    pub fn is_json_array(&self) -> Option<IsJsonArray> {
12601        support::child(&self.syntax)
12602    }
12603    #[inline]
12604    pub fn is_json_object(&self) -> Option<IsJsonObject> {
12605        support::child(&self.syntax)
12606    }
12607    #[inline]
12608    pub fn is_json_scalar(&self) -> Option<IsJsonScalar> {
12609        support::child(&self.syntax)
12610    }
12611    #[inline]
12612    pub fn is_json_value(&self) -> Option<IsJsonValue> {
12613        support::child(&self.syntax)
12614    }
12615    #[inline]
12616    pub fn is_normalized(&self) -> Option<IsNormalized> {
12617        support::child(&self.syntax)
12618    }
12619    #[inline]
12620    pub fn is_not(&self) -> Option<IsNot> {
12621        support::child(&self.syntax)
12622    }
12623    #[inline]
12624    pub fn is_not_distinct_from(&self) -> Option<IsNotDistinctFrom> {
12625        support::child(&self.syntax)
12626    }
12627    #[inline]
12628    pub fn is_not_json(&self) -> Option<IsNotJson> {
12629        support::child(&self.syntax)
12630    }
12631    #[inline]
12632    pub fn is_not_json_array(&self) -> Option<IsNotJsonArray> {
12633        support::child(&self.syntax)
12634    }
12635    #[inline]
12636    pub fn is_not_json_object(&self) -> Option<IsNotJsonObject> {
12637        support::child(&self.syntax)
12638    }
12639    #[inline]
12640    pub fn is_not_json_scalar(&self) -> Option<IsNotJsonScalar> {
12641        support::child(&self.syntax)
12642    }
12643    #[inline]
12644    pub fn is_not_json_value(&self) -> Option<IsNotJsonValue> {
12645        support::child(&self.syntax)
12646    }
12647    #[inline]
12648    pub fn is_not_normalized(&self) -> Option<IsNotNormalized> {
12649        support::child(&self.syntax)
12650    }
12651    #[inline]
12652    pub fn lteq(&self) -> Option<Lteq> {
12653        support::child(&self.syntax)
12654    }
12655    #[inline]
12656    pub fn neq(&self) -> Option<Neq> {
12657        support::child(&self.syntax)
12658    }
12659    #[inline]
12660    pub fn neqb(&self) -> Option<Neqb> {
12661        support::child(&self.syntax)
12662    }
12663    #[inline]
12664    pub fn not_ilike(&self) -> Option<NotIlike> {
12665        support::child(&self.syntax)
12666    }
12667    #[inline]
12668    pub fn not_in(&self) -> Option<NotIn> {
12669        support::child(&self.syntax)
12670    }
12671    #[inline]
12672    pub fn not_like(&self) -> Option<NotLike> {
12673        support::child(&self.syntax)
12674    }
12675    #[inline]
12676    pub fn not_similar_to(&self) -> Option<NotSimilarTo> {
12677        support::child(&self.syntax)
12678    }
12679    #[inline]
12680    pub fn operator_call(&self) -> Option<OperatorCall> {
12681        support::child(&self.syntax)
12682    }
12683    #[inline]
12684    pub fn similar_to(&self) -> Option<SimilarTo> {
12685        support::child(&self.syntax)
12686    }
12687    #[inline]
12688    pub fn percent_token(&self) -> Option<SyntaxToken> {
12689        support::token(&self.syntax, SyntaxKind::PERCENT)
12690    }
12691    #[inline]
12692    pub fn plus_token(&self) -> Option<SyntaxToken> {
12693        support::token(&self.syntax, SyntaxKind::PLUS)
12694    }
12695    #[inline]
12696    pub fn minus_token(&self) -> Option<SyntaxToken> {
12697        support::token(&self.syntax, SyntaxKind::MINUS)
12698    }
12699    #[inline]
12700    pub fn slash_token(&self) -> Option<SyntaxToken> {
12701        support::token(&self.syntax, SyntaxKind::SLASH)
12702    }
12703    #[inline]
12704    pub fn colon_token(&self) -> Option<SyntaxToken> {
12705        support::token(&self.syntax, SyntaxKind::COLON)
12706    }
12707    #[inline]
12708    pub fn l_angle_token(&self) -> Option<SyntaxToken> {
12709        support::token(&self.syntax, SyntaxKind::L_ANGLE)
12710    }
12711    #[inline]
12712    pub fn eq_token(&self) -> Option<SyntaxToken> {
12713        support::token(&self.syntax, SyntaxKind::EQ)
12714    }
12715    #[inline]
12716    pub fn r_angle_token(&self) -> Option<SyntaxToken> {
12717        support::token(&self.syntax, SyntaxKind::R_ANGLE)
12718    }
12719    #[inline]
12720    pub fn caret_token(&self) -> Option<SyntaxToken> {
12721        support::token(&self.syntax, SyntaxKind::CARET)
12722    }
12723    #[inline]
12724    pub fn and_token(&self) -> Option<SyntaxToken> {
12725        support::token(&self.syntax, SyntaxKind::AND_KW)
12726    }
12727    #[inline]
12728    pub fn collate_token(&self) -> Option<SyntaxToken> {
12729        support::token(&self.syntax, SyntaxKind::COLLATE_KW)
12730    }
12731    #[inline]
12732    pub fn ilike_token(&self) -> Option<SyntaxToken> {
12733        support::token(&self.syntax, SyntaxKind::ILIKE_KW)
12734    }
12735    #[inline]
12736    pub fn in_token(&self) -> Option<SyntaxToken> {
12737        support::token(&self.syntax, SyntaxKind::IN_KW)
12738    }
12739    #[inline]
12740    pub fn is_token(&self) -> Option<SyntaxToken> {
12741        support::token(&self.syntax, SyntaxKind::IS_KW)
12742    }
12743    #[inline]
12744    pub fn isnull_token(&self) -> Option<SyntaxToken> {
12745        support::token(&self.syntax, SyntaxKind::ISNULL_KW)
12746    }
12747    #[inline]
12748    pub fn like_token(&self) -> Option<SyntaxToken> {
12749        support::token(&self.syntax, SyntaxKind::LIKE_KW)
12750    }
12751    #[inline]
12752    pub fn or_token(&self) -> Option<SyntaxToken> {
12753        support::token(&self.syntax, SyntaxKind::OR_KW)
12754    }
12755    #[inline]
12756    pub fn overlaps_token(&self) -> Option<SyntaxToken> {
12757        support::token(&self.syntax, SyntaxKind::OVERLAPS_KW)
12758    }
12759    #[inline]
12760    pub fn value_token(&self) -> Option<SyntaxToken> {
12761        support::token(&self.syntax, SyntaxKind::VALUE_KW)
12762    }
12763}
12764
12765#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12766pub struct OpClassOption {
12767    pub(crate) syntax: SyntaxNode,
12768}
12769impl OpClassOption {
12770    #[inline]
12771    pub fn function_sig(&self) -> Option<FunctionSig> {
12772        support::child(&self.syntax)
12773    }
12774    #[inline]
12775    pub fn literal(&self) -> Option<Literal> {
12776        support::child(&self.syntax)
12777    }
12778    #[inline]
12779    pub fn op(&self) -> Option<Op> {
12780        support::child(&self.syntax)
12781    }
12782    #[inline]
12783    pub fn param_list(&self) -> Option<ParamList> {
12784        support::child(&self.syntax)
12785    }
12786    #[inline]
12787    pub fn path(&self) -> Option<Path> {
12788        support::child(&self.syntax)
12789    }
12790    #[inline]
12791    pub fn ty(&self) -> Option<Type> {
12792        support::child(&self.syntax)
12793    }
12794    #[inline]
12795    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12796        support::token(&self.syntax, SyntaxKind::L_PAREN)
12797    }
12798    #[inline]
12799    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12800        support::token(&self.syntax, SyntaxKind::R_PAREN)
12801    }
12802    #[inline]
12803    pub fn comma_token(&self) -> Option<SyntaxToken> {
12804        support::token(&self.syntax, SyntaxKind::COMMA)
12805    }
12806    #[inline]
12807    pub fn by_token(&self) -> Option<SyntaxToken> {
12808        support::token(&self.syntax, SyntaxKind::BY_KW)
12809    }
12810    #[inline]
12811    pub fn for_token(&self) -> Option<SyntaxToken> {
12812        support::token(&self.syntax, SyntaxKind::FOR_KW)
12813    }
12814    #[inline]
12815    pub fn function_token(&self) -> Option<SyntaxToken> {
12816        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
12817    }
12818    #[inline]
12819    pub fn operator_token(&self) -> Option<SyntaxToken> {
12820        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12821    }
12822    #[inline]
12823    pub fn order_token(&self) -> Option<SyntaxToken> {
12824        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12825    }
12826    #[inline]
12827    pub fn search_token(&self) -> Option<SyntaxToken> {
12828        support::token(&self.syntax, SyntaxKind::SEARCH_KW)
12829    }
12830    #[inline]
12831    pub fn storage_token(&self) -> Option<SyntaxToken> {
12832        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
12833    }
12834}
12835
12836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12837pub struct OpSig {
12838    pub(crate) syntax: SyntaxNode,
12839}
12840impl OpSig {
12841    #[inline]
12842    pub fn op(&self) -> Option<Op> {
12843        support::child(&self.syntax)
12844    }
12845    #[inline]
12846    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12847        support::token(&self.syntax, SyntaxKind::L_PAREN)
12848    }
12849    #[inline]
12850    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12851        support::token(&self.syntax, SyntaxKind::R_PAREN)
12852    }
12853    #[inline]
12854    pub fn comma_token(&self) -> Option<SyntaxToken> {
12855        support::token(&self.syntax, SyntaxKind::COMMA)
12856    }
12857    #[inline]
12858    pub fn none_token(&self) -> Option<SyntaxToken> {
12859        support::token(&self.syntax, SyntaxKind::NONE_KW)
12860    }
12861}
12862
12863#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12864pub struct OpSigList {
12865    pub(crate) syntax: SyntaxNode,
12866}
12867impl OpSigList {
12868    #[inline]
12869    pub fn op_sigs(&self) -> AstChildren<OpSig> {
12870        support::children(&self.syntax)
12871    }
12872}
12873
12874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12875pub struct OperatorCall {
12876    pub(crate) syntax: SyntaxNode,
12877}
12878impl OperatorCall {
12879    #[inline]
12880    pub fn op(&self) -> Option<Op> {
12881        support::child(&self.syntax)
12882    }
12883    #[inline]
12884    pub fn path(&self) -> Option<Path> {
12885        support::child(&self.syntax)
12886    }
12887    #[inline]
12888    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12889        support::token(&self.syntax, SyntaxKind::L_PAREN)
12890    }
12891    #[inline]
12892    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12893        support::token(&self.syntax, SyntaxKind::R_PAREN)
12894    }
12895    #[inline]
12896    pub fn dot_token(&self) -> Option<SyntaxToken> {
12897        support::token(&self.syntax, SyntaxKind::DOT)
12898    }
12899    #[inline]
12900    pub fn operator_token(&self) -> Option<SyntaxToken> {
12901        support::token(&self.syntax, SyntaxKind::OPERATOR_KW)
12902    }
12903}
12904
12905#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12906pub struct OperatorClassOptionList {
12907    pub(crate) syntax: SyntaxNode,
12908}
12909impl OperatorClassOptionList {
12910    #[inline]
12911    pub fn op_class_options(&self) -> AstChildren<OpClassOption> {
12912        support::children(&self.syntax)
12913    }
12914}
12915
12916#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12917pub struct OptionItem {
12918    pub(crate) syntax: SyntaxNode,
12919}
12920impl OptionItem {
12921    #[inline]
12922    pub fn expr(&self) -> Option<Expr> {
12923        support::child(&self.syntax)
12924    }
12925    #[inline]
12926    pub fn default_token(&self) -> Option<SyntaxToken> {
12927        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
12928    }
12929}
12930
12931#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12932pub struct OptionItemList {
12933    pub(crate) syntax: SyntaxNode,
12934}
12935impl OptionItemList {
12936    #[inline]
12937    pub fn option_items(&self) -> AstChildren<OptionItem> {
12938        support::children(&self.syntax)
12939    }
12940    #[inline]
12941    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12942        support::token(&self.syntax, SyntaxKind::L_PAREN)
12943    }
12944    #[inline]
12945    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12946        support::token(&self.syntax, SyntaxKind::R_PAREN)
12947    }
12948}
12949
12950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12951pub struct OrReplace {
12952    pub(crate) syntax: SyntaxNode,
12953}
12954impl OrReplace {
12955    #[inline]
12956    pub fn or_token(&self) -> Option<SyntaxToken> {
12957        support::token(&self.syntax, SyntaxKind::OR_KW)
12958    }
12959    #[inline]
12960    pub fn replace_token(&self) -> Option<SyntaxToken> {
12961        support::token(&self.syntax, SyntaxKind::REPLACE_KW)
12962    }
12963}
12964
12965#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12966pub struct OrderByClause {
12967    pub(crate) syntax: SyntaxNode,
12968}
12969impl OrderByClause {
12970    #[inline]
12971    pub fn sort_by_list(&self) -> Option<SortByList> {
12972        support::child(&self.syntax)
12973    }
12974    #[inline]
12975    pub fn by_token(&self) -> Option<SyntaxToken> {
12976        support::token(&self.syntax, SyntaxKind::BY_KW)
12977    }
12978    #[inline]
12979    pub fn order_token(&self) -> Option<SyntaxToken> {
12980        support::token(&self.syntax, SyntaxKind::ORDER_KW)
12981    }
12982}
12983
12984#[derive(Debug, Clone, PartialEq, Eq, Hash)]
12985pub struct OverClause {
12986    pub(crate) syntax: SyntaxNode,
12987}
12988impl OverClause {
12989    #[inline]
12990    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
12991        support::token(&self.syntax, SyntaxKind::L_PAREN)
12992    }
12993    #[inline]
12994    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
12995        support::token(&self.syntax, SyntaxKind::R_PAREN)
12996    }
12997    #[inline]
12998    pub fn over_token(&self) -> Option<SyntaxToken> {
12999        support::token(&self.syntax, SyntaxKind::OVER_KW)
13000    }
13001}
13002
13003#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13004pub struct OverlayFn {
13005    pub(crate) syntax: SyntaxNode,
13006}
13007impl OverlayFn {
13008    #[inline]
13009    pub fn expr(&self) -> Option<Expr> {
13010        support::child(&self.syntax)
13011    }
13012    #[inline]
13013    pub fn exprs(&self) -> AstChildren<Expr> {
13014        support::children(&self.syntax)
13015    }
13016    #[inline]
13017    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13018        support::token(&self.syntax, SyntaxKind::L_PAREN)
13019    }
13020    #[inline]
13021    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13022        support::token(&self.syntax, SyntaxKind::R_PAREN)
13023    }
13024    #[inline]
13025    pub fn for_token(&self) -> Option<SyntaxToken> {
13026        support::token(&self.syntax, SyntaxKind::FOR_KW)
13027    }
13028    #[inline]
13029    pub fn from_token(&self) -> Option<SyntaxToken> {
13030        support::token(&self.syntax, SyntaxKind::FROM_KW)
13031    }
13032    #[inline]
13033    pub fn overlay_token(&self) -> Option<SyntaxToken> {
13034        support::token(&self.syntax, SyntaxKind::OVERLAY_KW)
13035    }
13036    #[inline]
13037    pub fn placing_token(&self) -> Option<SyntaxToken> {
13038        support::token(&self.syntax, SyntaxKind::PLACING_KW)
13039    }
13040}
13041
13042#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13043pub struct OwnedByRoles {
13044    pub(crate) syntax: SyntaxNode,
13045}
13046impl OwnedByRoles {
13047    #[inline]
13048    pub fn role_ref_list(&self) -> Option<RoleRefList> {
13049        support::child(&self.syntax)
13050    }
13051    #[inline]
13052    pub fn by_token(&self) -> Option<SyntaxToken> {
13053        support::token(&self.syntax, SyntaxKind::BY_KW)
13054    }
13055    #[inline]
13056    pub fn owned_token(&self) -> Option<SyntaxToken> {
13057        support::token(&self.syntax, SyntaxKind::OWNED_KW)
13058    }
13059}
13060
13061#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13062pub struct OwnerTo {
13063    pub(crate) syntax: SyntaxNode,
13064}
13065impl OwnerTo {
13066    #[inline]
13067    pub fn role_ref(&self) -> Option<RoleRef> {
13068        support::child(&self.syntax)
13069    }
13070    #[inline]
13071    pub fn owner_token(&self) -> Option<SyntaxToken> {
13072        support::token(&self.syntax, SyntaxKind::OWNER_KW)
13073    }
13074    #[inline]
13075    pub fn to_token(&self) -> Option<SyntaxToken> {
13076        support::token(&self.syntax, SyntaxKind::TO_KW)
13077    }
13078}
13079
13080#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13081pub struct ParallelFuncOption {
13082    pub(crate) syntax: SyntaxNode,
13083}
13084impl ParallelFuncOption {
13085    #[inline]
13086    pub fn ident_token(&self) -> Option<SyntaxToken> {
13087        support::token(&self.syntax, SyntaxKind::IDENT)
13088    }
13089    #[inline]
13090    pub fn parallel_token(&self) -> Option<SyntaxToken> {
13091        support::token(&self.syntax, SyntaxKind::PARALLEL_KW)
13092    }
13093}
13094
13095#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13096pub struct Param {
13097    pub(crate) syntax: SyntaxNode,
13098}
13099impl Param {
13100    #[inline]
13101    pub fn mode(&self) -> Option<ParamMode> {
13102        support::child(&self.syntax)
13103    }
13104    #[inline]
13105    pub fn name(&self) -> Option<Name> {
13106        support::child(&self.syntax)
13107    }
13108    #[inline]
13109    pub fn param_default(&self) -> Option<ParamDefault> {
13110        support::child(&self.syntax)
13111    }
13112    #[inline]
13113    pub fn ty(&self) -> Option<Type> {
13114        support::child(&self.syntax)
13115    }
13116}
13117
13118#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13119pub struct ParamDefault {
13120    pub(crate) syntax: SyntaxNode,
13121}
13122impl ParamDefault {
13123    #[inline]
13124    pub fn expr(&self) -> Option<Expr> {
13125        support::child(&self.syntax)
13126    }
13127    #[inline]
13128    pub fn eq_token(&self) -> Option<SyntaxToken> {
13129        support::token(&self.syntax, SyntaxKind::EQ)
13130    }
13131    #[inline]
13132    pub fn default_token(&self) -> Option<SyntaxToken> {
13133        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13134    }
13135}
13136
13137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13138pub struct ParamIn {
13139    pub(crate) syntax: SyntaxNode,
13140}
13141impl ParamIn {
13142    #[inline]
13143    pub fn in_token(&self) -> Option<SyntaxToken> {
13144        support::token(&self.syntax, SyntaxKind::IN_KW)
13145    }
13146}
13147
13148#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13149pub struct ParamInOut {
13150    pub(crate) syntax: SyntaxNode,
13151}
13152impl ParamInOut {
13153    #[inline]
13154    pub fn in_token(&self) -> Option<SyntaxToken> {
13155        support::token(&self.syntax, SyntaxKind::IN_KW)
13156    }
13157    #[inline]
13158    pub fn inout_token(&self) -> Option<SyntaxToken> {
13159        support::token(&self.syntax, SyntaxKind::INOUT_KW)
13160    }
13161    #[inline]
13162    pub fn out_token(&self) -> Option<SyntaxToken> {
13163        support::token(&self.syntax, SyntaxKind::OUT_KW)
13164    }
13165}
13166
13167#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13168pub struct ParamList {
13169    pub(crate) syntax: SyntaxNode,
13170}
13171impl ParamList {
13172    #[inline]
13173    pub fn params(&self) -> AstChildren<Param> {
13174        support::children(&self.syntax)
13175    }
13176}
13177
13178#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13179pub struct ParamOut {
13180    pub(crate) syntax: SyntaxNode,
13181}
13182impl ParamOut {
13183    #[inline]
13184    pub fn out_token(&self) -> Option<SyntaxToken> {
13185        support::token(&self.syntax, SyntaxKind::OUT_KW)
13186    }
13187}
13188
13189#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13190pub struct ParamVariadic {
13191    pub(crate) syntax: SyntaxNode,
13192}
13193impl ParamVariadic {
13194    #[inline]
13195    pub fn variadic_token(&self) -> Option<SyntaxToken> {
13196        support::token(&self.syntax, SyntaxKind::VARIADIC_KW)
13197    }
13198}
13199
13200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13201pub struct ParenExpr {
13202    pub(crate) syntax: SyntaxNode,
13203}
13204impl ParenExpr {
13205    #[inline]
13206    pub fn expr(&self) -> Option<Expr> {
13207        support::child(&self.syntax)
13208    }
13209    #[inline]
13210    pub fn from_item(&self) -> Option<FromItem> {
13211        support::child(&self.syntax)
13212    }
13213    #[inline]
13214    pub fn select(&self) -> Option<Select> {
13215        support::child(&self.syntax)
13216    }
13217    #[inline]
13218    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13219        support::token(&self.syntax, SyntaxKind::L_PAREN)
13220    }
13221    #[inline]
13222    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13223        support::token(&self.syntax, SyntaxKind::R_PAREN)
13224    }
13225}
13226
13227#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13228pub struct ParenGraphPattern {
13229    pub(crate) syntax: SyntaxNode,
13230}
13231impl ParenGraphPattern {
13232    #[inline]
13233    pub fn path_pattern(&self) -> Option<PathPattern> {
13234        support::child(&self.syntax)
13235    }
13236    #[inline]
13237    pub fn where_clause(&self) -> Option<WhereClause> {
13238        support::child(&self.syntax)
13239    }
13240    #[inline]
13241    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13242        support::token(&self.syntax, SyntaxKind::L_PAREN)
13243    }
13244    #[inline]
13245    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13246        support::token(&self.syntax, SyntaxKind::R_PAREN)
13247    }
13248}
13249
13250#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13251pub struct ParenSelect {
13252    pub(crate) syntax: SyntaxNode,
13253}
13254impl ParenSelect {
13255    #[inline]
13256    pub fn select(&self) -> Option<SelectVariant> {
13257        support::child(&self.syntax)
13258    }
13259    #[inline]
13260    pub fn with_clause(&self) -> Option<WithClause> {
13261        support::child(&self.syntax)
13262    }
13263    #[inline]
13264    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13265        support::token(&self.syntax, SyntaxKind::L_PAREN)
13266    }
13267    #[inline]
13268    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13269        support::token(&self.syntax, SyntaxKind::R_PAREN)
13270    }
13271}
13272
13273#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13274pub struct Partition {
13275    pub(crate) syntax: SyntaxNode,
13276}
13277impl Partition {
13278    #[inline]
13279    pub fn partition_type(&self) -> Option<PartitionType> {
13280        support::child(&self.syntax)
13281    }
13282    #[inline]
13283    pub fn path(&self) -> Option<Path> {
13284        support::child(&self.syntax)
13285    }
13286    #[inline]
13287    pub fn partition_token(&self) -> Option<SyntaxToken> {
13288        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13289    }
13290}
13291
13292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13293pub struct PartitionBy {
13294    pub(crate) syntax: SyntaxNode,
13295}
13296impl PartitionBy {
13297    #[inline]
13298    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13299        support::child(&self.syntax)
13300    }
13301    #[inline]
13302    pub fn by_token(&self) -> Option<SyntaxToken> {
13303        support::token(&self.syntax, SyntaxKind::BY_KW)
13304    }
13305    #[inline]
13306    pub fn ident_token(&self) -> Option<SyntaxToken> {
13307        support::token(&self.syntax, SyntaxKind::IDENT)
13308    }
13309    #[inline]
13310    pub fn partition_token(&self) -> Option<SyntaxToken> {
13311        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13312    }
13313    #[inline]
13314    pub fn range_token(&self) -> Option<SyntaxToken> {
13315        support::token(&self.syntax, SyntaxKind::RANGE_KW)
13316    }
13317}
13318
13319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13320pub struct PartitionDefault {
13321    pub(crate) syntax: SyntaxNode,
13322}
13323impl PartitionDefault {
13324    #[inline]
13325    pub fn default_token(&self) -> Option<SyntaxToken> {
13326        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
13327    }
13328}
13329
13330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13331pub struct PartitionForValuesFrom {
13332    pub(crate) syntax: SyntaxNode,
13333}
13334impl PartitionForValuesFrom {
13335    #[inline]
13336    pub fn exprs(&self) -> AstChildren<Expr> {
13337        support::children(&self.syntax)
13338    }
13339    #[inline]
13340    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13341        support::token(&self.syntax, SyntaxKind::L_PAREN)
13342    }
13343    #[inline]
13344    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13345        support::token(&self.syntax, SyntaxKind::R_PAREN)
13346    }
13347    #[inline]
13348    pub fn for_token(&self) -> Option<SyntaxToken> {
13349        support::token(&self.syntax, SyntaxKind::FOR_KW)
13350    }
13351    #[inline]
13352    pub fn from_token(&self) -> Option<SyntaxToken> {
13353        support::token(&self.syntax, SyntaxKind::FROM_KW)
13354    }
13355    #[inline]
13356    pub fn to_token(&self) -> Option<SyntaxToken> {
13357        support::token(&self.syntax, SyntaxKind::TO_KW)
13358    }
13359    #[inline]
13360    pub fn values_token(&self) -> Option<SyntaxToken> {
13361        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13362    }
13363}
13364
13365#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13366pub struct PartitionForValuesIn {
13367    pub(crate) syntax: SyntaxNode,
13368}
13369impl PartitionForValuesIn {
13370    #[inline]
13371    pub fn exprs(&self) -> AstChildren<Expr> {
13372        support::children(&self.syntax)
13373    }
13374    #[inline]
13375    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13376        support::token(&self.syntax, SyntaxKind::L_PAREN)
13377    }
13378    #[inline]
13379    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13380        support::token(&self.syntax, SyntaxKind::R_PAREN)
13381    }
13382    #[inline]
13383    pub fn for_token(&self) -> Option<SyntaxToken> {
13384        support::token(&self.syntax, SyntaxKind::FOR_KW)
13385    }
13386    #[inline]
13387    pub fn in_token(&self) -> Option<SyntaxToken> {
13388        support::token(&self.syntax, SyntaxKind::IN_KW)
13389    }
13390    #[inline]
13391    pub fn values_token(&self) -> Option<SyntaxToken> {
13392        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13393    }
13394}
13395
13396#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13397pub struct PartitionForValuesWith {
13398    pub(crate) syntax: SyntaxNode,
13399}
13400impl PartitionForValuesWith {
13401    #[inline]
13402    pub fn literal(&self) -> Option<Literal> {
13403        support::child(&self.syntax)
13404    }
13405    #[inline]
13406    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13407        support::token(&self.syntax, SyntaxKind::L_PAREN)
13408    }
13409    #[inline]
13410    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13411        support::token(&self.syntax, SyntaxKind::R_PAREN)
13412    }
13413    #[inline]
13414    pub fn comma_token(&self) -> Option<SyntaxToken> {
13415        support::token(&self.syntax, SyntaxKind::COMMA)
13416    }
13417    #[inline]
13418    pub fn for_token(&self) -> Option<SyntaxToken> {
13419        support::token(&self.syntax, SyntaxKind::FOR_KW)
13420    }
13421    #[inline]
13422    pub fn ident_token(&self) -> Option<SyntaxToken> {
13423        support::token(&self.syntax, SyntaxKind::IDENT)
13424    }
13425    #[inline]
13426    pub fn values_token(&self) -> Option<SyntaxToken> {
13427        support::token(&self.syntax, SyntaxKind::VALUES_KW)
13428    }
13429    #[inline]
13430    pub fn with_token(&self) -> Option<SyntaxToken> {
13431        support::token(&self.syntax, SyntaxKind::WITH_KW)
13432    }
13433}
13434
13435#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13436pub struct PartitionItem {
13437    pub(crate) syntax: SyntaxNode,
13438}
13439impl PartitionItem {
13440    #[inline]
13441    pub fn collate(&self) -> Option<Collate> {
13442        support::child(&self.syntax)
13443    }
13444    #[inline]
13445    pub fn expr(&self) -> Option<Expr> {
13446        support::child(&self.syntax)
13447    }
13448}
13449
13450#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13451pub struct PartitionItemList {
13452    pub(crate) syntax: SyntaxNode,
13453}
13454impl PartitionItemList {
13455    #[inline]
13456    pub fn partition_items(&self) -> AstChildren<PartitionItem> {
13457        support::children(&self.syntax)
13458    }
13459    #[inline]
13460    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13461        support::token(&self.syntax, SyntaxKind::L_PAREN)
13462    }
13463    #[inline]
13464    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13465        support::token(&self.syntax, SyntaxKind::R_PAREN)
13466    }
13467}
13468
13469#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13470pub struct PartitionList {
13471    pub(crate) syntax: SyntaxNode,
13472}
13473impl PartitionList {
13474    #[inline]
13475    pub fn partitions(&self) -> AstChildren<Partition> {
13476        support::children(&self.syntax)
13477    }
13478    #[inline]
13479    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13480        support::token(&self.syntax, SyntaxKind::L_PAREN)
13481    }
13482    #[inline]
13483    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13484        support::token(&self.syntax, SyntaxKind::R_PAREN)
13485    }
13486}
13487
13488#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13489pub struct PartitionOf {
13490    pub(crate) syntax: SyntaxNode,
13491}
13492impl PartitionOf {
13493    #[inline]
13494    pub fn path(&self) -> Option<Path> {
13495        support::child(&self.syntax)
13496    }
13497    #[inline]
13498    pub fn of_token(&self) -> Option<SyntaxToken> {
13499        support::token(&self.syntax, SyntaxKind::OF_KW)
13500    }
13501    #[inline]
13502    pub fn partition_token(&self) -> Option<SyntaxToken> {
13503        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
13504    }
13505}
13506
13507#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13508pub struct Path {
13509    pub(crate) syntax: SyntaxNode,
13510}
13511impl Path {
13512    #[inline]
13513    pub fn qualifier(&self) -> Option<Path> {
13514        support::child(&self.syntax)
13515    }
13516    #[inline]
13517    pub fn segment(&self) -> Option<PathSegment> {
13518        support::child(&self.syntax)
13519    }
13520    #[inline]
13521    pub fn dot_token(&self) -> Option<SyntaxToken> {
13522        support::token(&self.syntax, SyntaxKind::DOT)
13523    }
13524}
13525
13526#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13527pub struct PathFactor {
13528    pub(crate) syntax: SyntaxNode,
13529}
13530impl PathFactor {
13531    #[inline]
13532    pub fn graph_pattern_qualifier(&self) -> Option<GraphPatternQualifier> {
13533        support::child(&self.syntax)
13534    }
13535    #[inline]
13536    pub fn path_primary(&self) -> Option<PathPrimary> {
13537        support::child(&self.syntax)
13538    }
13539}
13540
13541#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13542pub struct PathPattern {
13543    pub(crate) syntax: SyntaxNode,
13544}
13545impl PathPattern {
13546    #[inline]
13547    pub fn path_factor(&self) -> Option<PathFactor> {
13548        support::child(&self.syntax)
13549    }
13550    #[inline]
13551    pub fn path_factors(&self) -> AstChildren<PathFactor> {
13552        support::children(&self.syntax)
13553    }
13554}
13555
13556#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13557pub struct PathPatternList {
13558    pub(crate) syntax: SyntaxNode,
13559}
13560impl PathPatternList {
13561    #[inline]
13562    pub fn path_patterns(&self) -> AstChildren<PathPattern> {
13563        support::children(&self.syntax)
13564    }
13565}
13566
13567#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13568pub struct PathSegment {
13569    pub(crate) syntax: SyntaxNode,
13570}
13571impl PathSegment {
13572    #[inline]
13573    pub fn name(&self) -> Option<Name> {
13574        support::child(&self.syntax)
13575    }
13576    #[inline]
13577    pub fn name_ref(&self) -> Option<NameRef> {
13578        support::child(&self.syntax)
13579    }
13580}
13581
13582#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13583pub struct PathType {
13584    pub(crate) syntax: SyntaxNode,
13585}
13586impl PathType {
13587    #[inline]
13588    pub fn arg_list(&self) -> Option<ArgList> {
13589        support::child(&self.syntax)
13590    }
13591    #[inline]
13592    pub fn path(&self) -> Option<Path> {
13593        support::child(&self.syntax)
13594    }
13595    #[inline]
13596    pub fn setof_token(&self) -> Option<SyntaxToken> {
13597        support::token(&self.syntax, SyntaxKind::SETOF_KW)
13598    }
13599}
13600
13601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13602pub struct PercentType {
13603    pub(crate) syntax: SyntaxNode,
13604}
13605impl PercentType {
13606    #[inline]
13607    pub fn percent_token(&self) -> Option<SyntaxToken> {
13608        support::token(&self.syntax, SyntaxKind::PERCENT)
13609    }
13610    #[inline]
13611    pub fn type_token(&self) -> Option<SyntaxToken> {
13612        support::token(&self.syntax, SyntaxKind::TYPE_KW)
13613    }
13614}
13615
13616#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13617pub struct PercentTypeClause {
13618    pub(crate) syntax: SyntaxNode,
13619}
13620impl PercentTypeClause {
13621    #[inline]
13622    pub fn path(&self) -> Option<Path> {
13623        support::child(&self.syntax)
13624    }
13625    #[inline]
13626    pub fn percent_type_clause(&self) -> Option<PercentTypeClause> {
13627        support::child(&self.syntax)
13628    }
13629}
13630
13631#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13632pub struct PositionFn {
13633    pub(crate) syntax: SyntaxNode,
13634}
13635impl PositionFn {
13636    #[inline]
13637    pub fn expr(&self) -> Option<Expr> {
13638        support::child(&self.syntax)
13639    }
13640    #[inline]
13641    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13642        support::token(&self.syntax, SyntaxKind::L_PAREN)
13643    }
13644    #[inline]
13645    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13646        support::token(&self.syntax, SyntaxKind::R_PAREN)
13647    }
13648    #[inline]
13649    pub fn in_token(&self) -> Option<SyntaxToken> {
13650        support::token(&self.syntax, SyntaxKind::IN_KW)
13651    }
13652    #[inline]
13653    pub fn position_token(&self) -> Option<SyntaxToken> {
13654        support::token(&self.syntax, SyntaxKind::POSITION_KW)
13655    }
13656}
13657
13658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13659pub struct PostfixExpr {
13660    pub(crate) syntax: SyntaxNode,
13661}
13662impl PostfixExpr {
13663    #[inline]
13664    pub fn expr(&self) -> Option<Expr> {
13665        support::child(&self.syntax)
13666    }
13667}
13668
13669#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13670pub struct PrefixExpr {
13671    pub(crate) syntax: SyntaxNode,
13672}
13673impl PrefixExpr {
13674    #[inline]
13675    pub fn expr(&self) -> Option<Expr> {
13676        support::child(&self.syntax)
13677    }
13678}
13679
13680#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13681pub struct Prepare {
13682    pub(crate) syntax: SyntaxNode,
13683}
13684impl Prepare {
13685    #[inline]
13686    pub fn name(&self) -> Option<Name> {
13687        support::child(&self.syntax)
13688    }
13689    #[inline]
13690    pub fn preparable_stmt(&self) -> Option<PreparableStmt> {
13691        support::child(&self.syntax)
13692    }
13693    #[inline]
13694    pub fn as_token(&self) -> Option<SyntaxToken> {
13695        support::token(&self.syntax, SyntaxKind::AS_KW)
13696    }
13697    #[inline]
13698    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13699        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13700    }
13701}
13702
13703#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13704pub struct PrepareTransaction {
13705    pub(crate) syntax: SyntaxNode,
13706}
13707impl PrepareTransaction {
13708    #[inline]
13709    pub fn literal(&self) -> Option<Literal> {
13710        support::child(&self.syntax)
13711    }
13712    #[inline]
13713    pub fn prepare_token(&self) -> Option<SyntaxToken> {
13714        support::token(&self.syntax, SyntaxKind::PREPARE_KW)
13715    }
13716    #[inline]
13717    pub fn transaction_token(&self) -> Option<SyntaxToken> {
13718        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
13719    }
13720}
13721
13722#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13723pub struct PreserveRows {
13724    pub(crate) syntax: SyntaxNode,
13725}
13726impl PreserveRows {
13727    #[inline]
13728    pub fn preserve_token(&self) -> Option<SyntaxToken> {
13729        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
13730    }
13731    #[inline]
13732    pub fn rows_token(&self) -> Option<SyntaxToken> {
13733        support::token(&self.syntax, SyntaxKind::ROWS_KW)
13734    }
13735}
13736
13737#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13738pub struct PrimaryKeyConstraint {
13739    pub(crate) syntax: SyntaxNode,
13740}
13741impl PrimaryKeyConstraint {
13742    #[inline]
13743    pub fn column_list(&self) -> Option<ColumnList> {
13744        support::child(&self.syntax)
13745    }
13746    #[inline]
13747    pub fn constraint_name(&self) -> Option<ConstraintName> {
13748        support::child(&self.syntax)
13749    }
13750    #[inline]
13751    pub fn partition_item_list(&self) -> Option<PartitionItemList> {
13752        support::child(&self.syntax)
13753    }
13754    #[inline]
13755    pub fn using_index(&self) -> Option<UsingIndex> {
13756        support::child(&self.syntax)
13757    }
13758    #[inline]
13759    pub fn key_token(&self) -> Option<SyntaxToken> {
13760        support::token(&self.syntax, SyntaxKind::KEY_KW)
13761    }
13762    #[inline]
13763    pub fn primary_token(&self) -> Option<SyntaxToken> {
13764        support::token(&self.syntax, SyntaxKind::PRIMARY_KW)
13765    }
13766}
13767
13768#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13769pub struct PrivilegeTarget {
13770    pub(crate) syntax: SyntaxNode,
13771}
13772impl PrivilegeTarget {
13773    #[inline]
13774    pub fn functions_token(&self) -> Option<SyntaxToken> {
13775        support::token(&self.syntax, SyntaxKind::FUNCTIONS_KW)
13776    }
13777    #[inline]
13778    pub fn large_token(&self) -> Option<SyntaxToken> {
13779        support::token(&self.syntax, SyntaxKind::LARGE_KW)
13780    }
13781    #[inline]
13782    pub fn objects_token(&self) -> Option<SyntaxToken> {
13783        support::token(&self.syntax, SyntaxKind::OBJECTS_KW)
13784    }
13785    #[inline]
13786    pub fn routines_token(&self) -> Option<SyntaxToken> {
13787        support::token(&self.syntax, SyntaxKind::ROUTINES_KW)
13788    }
13789    #[inline]
13790    pub fn schemas_token(&self) -> Option<SyntaxToken> {
13791        support::token(&self.syntax, SyntaxKind::SCHEMAS_KW)
13792    }
13793    #[inline]
13794    pub fn sequences_token(&self) -> Option<SyntaxToken> {
13795        support::token(&self.syntax, SyntaxKind::SEQUENCES_KW)
13796    }
13797    #[inline]
13798    pub fn tables_token(&self) -> Option<SyntaxToken> {
13799        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13800    }
13801    #[inline]
13802    pub fn types_token(&self) -> Option<SyntaxToken> {
13803        support::token(&self.syntax, SyntaxKind::TYPES_KW)
13804    }
13805}
13806
13807#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13808pub struct Privileges {
13809    pub(crate) syntax: SyntaxNode,
13810}
13811impl Privileges {
13812    #[inline]
13813    pub fn column_list(&self) -> Option<ColumnList> {
13814        support::child(&self.syntax)
13815    }
13816    #[inline]
13817    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
13818        support::child(&self.syntax)
13819    }
13820    #[inline]
13821    pub fn all_token(&self) -> Option<SyntaxToken> {
13822        support::token(&self.syntax, SyntaxKind::ALL_KW)
13823    }
13824    #[inline]
13825    pub fn privileges_token(&self) -> Option<SyntaxToken> {
13826        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
13827    }
13828}
13829
13830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13831pub struct Properties {
13832    pub(crate) syntax: SyntaxNode,
13833}
13834impl Properties {
13835    #[inline]
13836    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
13837        support::child(&self.syntax)
13838    }
13839    #[inline]
13840    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13841        support::token(&self.syntax, SyntaxKind::L_PAREN)
13842    }
13843    #[inline]
13844    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13845        support::token(&self.syntax, SyntaxKind::R_PAREN)
13846    }
13847    #[inline]
13848    pub fn properties_token(&self) -> Option<SyntaxToken> {
13849        support::token(&self.syntax, SyntaxKind::PROPERTIES_KW)
13850    }
13851}
13852
13853#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13854pub struct PublicationObject {
13855    pub(crate) syntax: SyntaxNode,
13856}
13857impl PublicationObject {
13858    #[inline]
13859    pub fn column_list(&self) -> Option<ColumnList> {
13860        support::child(&self.syntax)
13861    }
13862    #[inline]
13863    pub fn name_ref(&self) -> Option<NameRef> {
13864        support::child(&self.syntax)
13865    }
13866    #[inline]
13867    pub fn path(&self) -> Option<Path> {
13868        support::child(&self.syntax)
13869    }
13870    #[inline]
13871    pub fn where_condition_clause(&self) -> Option<WhereConditionClause> {
13872        support::child(&self.syntax)
13873    }
13874    #[inline]
13875    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
13876        support::token(&self.syntax, SyntaxKind::L_PAREN)
13877    }
13878    #[inline]
13879    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
13880        support::token(&self.syntax, SyntaxKind::R_PAREN)
13881    }
13882    #[inline]
13883    pub fn star_token(&self) -> Option<SyntaxToken> {
13884        support::token(&self.syntax, SyntaxKind::STAR)
13885    }
13886    #[inline]
13887    pub fn current_schema_token(&self) -> Option<SyntaxToken> {
13888        support::token(&self.syntax, SyntaxKind::CURRENT_SCHEMA_KW)
13889    }
13890    #[inline]
13891    pub fn in_token(&self) -> Option<SyntaxToken> {
13892        support::token(&self.syntax, SyntaxKind::IN_KW)
13893    }
13894    #[inline]
13895    pub fn only_token(&self) -> Option<SyntaxToken> {
13896        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13897    }
13898    #[inline]
13899    pub fn schema_token(&self) -> Option<SyntaxToken> {
13900        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
13901    }
13902    #[inline]
13903    pub fn table_token(&self) -> Option<SyntaxToken> {
13904        support::token(&self.syntax, SyntaxKind::TABLE_KW)
13905    }
13906    #[inline]
13907    pub fn tables_token(&self) -> Option<SyntaxToken> {
13908        support::token(&self.syntax, SyntaxKind::TABLES_KW)
13909    }
13910}
13911
13912#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13913pub struct ReadCommitted {
13914    pub(crate) syntax: SyntaxNode,
13915}
13916impl ReadCommitted {
13917    #[inline]
13918    pub fn committed_token(&self) -> Option<SyntaxToken> {
13919        support::token(&self.syntax, SyntaxKind::COMMITTED_KW)
13920    }
13921    #[inline]
13922    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13923        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13924    }
13925    #[inline]
13926    pub fn level_token(&self) -> Option<SyntaxToken> {
13927        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13928    }
13929    #[inline]
13930    pub fn read_token(&self) -> Option<SyntaxToken> {
13931        support::token(&self.syntax, SyntaxKind::READ_KW)
13932    }
13933}
13934
13935#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13936pub struct ReadOnly {
13937    pub(crate) syntax: SyntaxNode,
13938}
13939impl ReadOnly {
13940    #[inline]
13941    pub fn only_token(&self) -> Option<SyntaxToken> {
13942        support::token(&self.syntax, SyntaxKind::ONLY_KW)
13943    }
13944    #[inline]
13945    pub fn read_token(&self) -> Option<SyntaxToken> {
13946        support::token(&self.syntax, SyntaxKind::READ_KW)
13947    }
13948}
13949
13950#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13951pub struct ReadUncommitted {
13952    pub(crate) syntax: SyntaxNode,
13953}
13954impl ReadUncommitted {
13955    #[inline]
13956    pub fn isolation_token(&self) -> Option<SyntaxToken> {
13957        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
13958    }
13959    #[inline]
13960    pub fn level_token(&self) -> Option<SyntaxToken> {
13961        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
13962    }
13963    #[inline]
13964    pub fn read_token(&self) -> Option<SyntaxToken> {
13965        support::token(&self.syntax, SyntaxKind::READ_KW)
13966    }
13967    #[inline]
13968    pub fn uncommitted_token(&self) -> Option<SyntaxToken> {
13969        support::token(&self.syntax, SyntaxKind::UNCOMMITTED_KW)
13970    }
13971}
13972
13973#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13974pub struct ReadWrite {
13975    pub(crate) syntax: SyntaxNode,
13976}
13977impl ReadWrite {
13978    #[inline]
13979    pub fn read_token(&self) -> Option<SyntaxToken> {
13980        support::token(&self.syntax, SyntaxKind::READ_KW)
13981    }
13982    #[inline]
13983    pub fn write_token(&self) -> Option<SyntaxToken> {
13984        support::token(&self.syntax, SyntaxKind::WRITE_KW)
13985    }
13986}
13987
13988#[derive(Debug, Clone, PartialEq, Eq, Hash)]
13989pub struct Reassign {
13990    pub(crate) syntax: SyntaxNode,
13991}
13992impl Reassign {
13993    #[inline]
13994    pub fn new_roles(&self) -> Option<RoleRefList> {
13995        support::child(&self.syntax)
13996    }
13997    #[inline]
13998    pub fn old_roles(&self) -> Option<RoleRefList> {
13999        support::child(&self.syntax)
14000    }
14001    #[inline]
14002    pub fn by_token(&self) -> Option<SyntaxToken> {
14003        support::token(&self.syntax, SyntaxKind::BY_KW)
14004    }
14005    #[inline]
14006    pub fn owned_token(&self) -> Option<SyntaxToken> {
14007        support::token(&self.syntax, SyntaxKind::OWNED_KW)
14008    }
14009    #[inline]
14010    pub fn reassign_token(&self) -> Option<SyntaxToken> {
14011        support::token(&self.syntax, SyntaxKind::REASSIGN_KW)
14012    }
14013    #[inline]
14014    pub fn to_token(&self) -> Option<SyntaxToken> {
14015        support::token(&self.syntax, SyntaxKind::TO_KW)
14016    }
14017}
14018
14019#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14020pub struct ReferencesConstraint {
14021    pub(crate) syntax: SyntaxNode,
14022}
14023impl ReferencesConstraint {
14024    #[inline]
14025    pub fn column(&self) -> Option<NameRef> {
14026        support::child(&self.syntax)
14027    }
14028    #[inline]
14029    pub fn constraint_name(&self) -> Option<ConstraintName> {
14030        support::child(&self.syntax)
14031    }
14032    #[inline]
14033    pub fn match_type(&self) -> Option<MatchType> {
14034        support::child(&self.syntax)
14035    }
14036    #[inline]
14037    pub fn on_delete_action(&self) -> Option<OnDeleteAction> {
14038        support::child(&self.syntax)
14039    }
14040    #[inline]
14041    pub fn on_update_action(&self) -> Option<OnUpdateAction> {
14042        support::child(&self.syntax)
14043    }
14044    #[inline]
14045    pub fn table(&self) -> Option<Path> {
14046        support::child(&self.syntax)
14047    }
14048    #[inline]
14049    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14050        support::token(&self.syntax, SyntaxKind::L_PAREN)
14051    }
14052    #[inline]
14053    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14054        support::token(&self.syntax, SyntaxKind::R_PAREN)
14055    }
14056    #[inline]
14057    pub fn references_token(&self) -> Option<SyntaxToken> {
14058        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14059    }
14060}
14061
14062#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14063pub struct ReferencesTable {
14064    pub(crate) syntax: SyntaxNode,
14065}
14066impl ReferencesTable {
14067    #[inline]
14068    pub fn column_list(&self) -> Option<ColumnList> {
14069        support::child(&self.syntax)
14070    }
14071    #[inline]
14072    pub fn name_ref(&self) -> Option<NameRef> {
14073        support::child(&self.syntax)
14074    }
14075    #[inline]
14076    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14077        support::token(&self.syntax, SyntaxKind::L_PAREN)
14078    }
14079    #[inline]
14080    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14081        support::token(&self.syntax, SyntaxKind::R_PAREN)
14082    }
14083    #[inline]
14084    pub fn references_token(&self) -> Option<SyntaxToken> {
14085        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14086    }
14087}
14088
14089#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14090pub struct Referencing {
14091    pub(crate) syntax: SyntaxNode,
14092}
14093impl Referencing {
14094    #[inline]
14095    pub fn referencing_tables(&self) -> AstChildren<ReferencingTable> {
14096        support::children(&self.syntax)
14097    }
14098    #[inline]
14099    pub fn referencing_token(&self) -> Option<SyntaxToken> {
14100        support::token(&self.syntax, SyntaxKind::REFERENCING_KW)
14101    }
14102}
14103
14104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14105pub struct ReferencingTable {
14106    pub(crate) syntax: SyntaxNode,
14107}
14108impl ReferencingTable {
14109    #[inline]
14110    pub fn name_ref(&self) -> Option<NameRef> {
14111        support::child(&self.syntax)
14112    }
14113    #[inline]
14114    pub fn as_token(&self) -> Option<SyntaxToken> {
14115        support::token(&self.syntax, SyntaxKind::AS_KW)
14116    }
14117    #[inline]
14118    pub fn new_token(&self) -> Option<SyntaxToken> {
14119        support::token(&self.syntax, SyntaxKind::NEW_KW)
14120    }
14121    #[inline]
14122    pub fn old_token(&self) -> Option<SyntaxToken> {
14123        support::token(&self.syntax, SyntaxKind::OLD_KW)
14124    }
14125    #[inline]
14126    pub fn table_token(&self) -> Option<SyntaxToken> {
14127        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14128    }
14129}
14130
14131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14132pub struct Refresh {
14133    pub(crate) syntax: SyntaxNode,
14134}
14135impl Refresh {
14136    #[inline]
14137    pub fn path(&self) -> Option<Path> {
14138        support::child(&self.syntax)
14139    }
14140    #[inline]
14141    pub fn with_data(&self) -> Option<WithData> {
14142        support::child(&self.syntax)
14143    }
14144    #[inline]
14145    pub fn with_no_data(&self) -> Option<WithNoData> {
14146        support::child(&self.syntax)
14147    }
14148    #[inline]
14149    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14150        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14151    }
14152    #[inline]
14153    pub fn materialized_token(&self) -> Option<SyntaxToken> {
14154        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
14155    }
14156    #[inline]
14157    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14158        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14159    }
14160    #[inline]
14161    pub fn view_token(&self) -> Option<SyntaxToken> {
14162        support::token(&self.syntax, SyntaxKind::VIEW_KW)
14163    }
14164}
14165
14166#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14167pub struct RefreshCollationVersion {
14168    pub(crate) syntax: SyntaxNode,
14169}
14170impl RefreshCollationVersion {
14171    #[inline]
14172    pub fn collation_token(&self) -> Option<SyntaxToken> {
14173        support::token(&self.syntax, SyntaxKind::COLLATION_KW)
14174    }
14175    #[inline]
14176    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14177        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14178    }
14179    #[inline]
14180    pub fn version_token(&self) -> Option<SyntaxToken> {
14181        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14182    }
14183}
14184
14185#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14186pub struct RefreshVersion {
14187    pub(crate) syntax: SyntaxNode,
14188}
14189impl RefreshVersion {
14190    #[inline]
14191    pub fn refresh_token(&self) -> Option<SyntaxToken> {
14192        support::token(&self.syntax, SyntaxKind::REFRESH_KW)
14193    }
14194    #[inline]
14195    pub fn version_token(&self) -> Option<SyntaxToken> {
14196        support::token(&self.syntax, SyntaxKind::VERSION_KW)
14197    }
14198}
14199
14200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14201pub struct Reindex {
14202    pub(crate) syntax: SyntaxNode,
14203}
14204impl Reindex {
14205    #[inline]
14206    pub fn path(&self) -> Option<Path> {
14207        support::child(&self.syntax)
14208    }
14209    #[inline]
14210    pub fn concurrently_token(&self) -> Option<SyntaxToken> {
14211        support::token(&self.syntax, SyntaxKind::CONCURRENTLY_KW)
14212    }
14213    #[inline]
14214    pub fn database_token(&self) -> Option<SyntaxToken> {
14215        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
14216    }
14217    #[inline]
14218    pub fn index_token(&self) -> Option<SyntaxToken> {
14219        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14220    }
14221    #[inline]
14222    pub fn reindex_token(&self) -> Option<SyntaxToken> {
14223        support::token(&self.syntax, SyntaxKind::REINDEX_KW)
14224    }
14225    #[inline]
14226    pub fn schema_token(&self) -> Option<SyntaxToken> {
14227        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14228    }
14229    #[inline]
14230    pub fn system_token(&self) -> Option<SyntaxToken> {
14231        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14232    }
14233    #[inline]
14234    pub fn table_token(&self) -> Option<SyntaxToken> {
14235        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14236    }
14237}
14238
14239#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14240pub struct RelationName {
14241    pub(crate) syntax: SyntaxNode,
14242}
14243impl RelationName {
14244    #[inline]
14245    pub fn path(&self) -> Option<Path> {
14246        support::child(&self.syntax)
14247    }
14248    #[inline]
14249    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14250        support::token(&self.syntax, SyntaxKind::L_PAREN)
14251    }
14252    #[inline]
14253    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14254        support::token(&self.syntax, SyntaxKind::R_PAREN)
14255    }
14256    #[inline]
14257    pub fn star_token(&self) -> Option<SyntaxToken> {
14258        support::token(&self.syntax, SyntaxKind::STAR)
14259    }
14260    #[inline]
14261    pub fn only_token(&self) -> Option<SyntaxToken> {
14262        support::token(&self.syntax, SyntaxKind::ONLY_KW)
14263    }
14264}
14265
14266#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14267pub struct ReleaseSavepoint {
14268    pub(crate) syntax: SyntaxNode,
14269}
14270impl ReleaseSavepoint {
14271    #[inline]
14272    pub fn name_ref(&self) -> Option<NameRef> {
14273        support::child(&self.syntax)
14274    }
14275    #[inline]
14276    pub fn release_token(&self) -> Option<SyntaxToken> {
14277        support::token(&self.syntax, SyntaxKind::RELEASE_KW)
14278    }
14279    #[inline]
14280    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
14281        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
14282    }
14283}
14284
14285#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14286pub struct RenameAttribute {
14287    pub(crate) syntax: SyntaxNode,
14288}
14289impl RenameAttribute {
14290    #[inline]
14291    pub fn name(&self) -> Option<Name> {
14292        support::child(&self.syntax)
14293    }
14294    #[inline]
14295    pub fn name_ref(&self) -> Option<NameRef> {
14296        support::child(&self.syntax)
14297    }
14298    #[inline]
14299    pub fn attribute_token(&self) -> Option<SyntaxToken> {
14300        support::token(&self.syntax, SyntaxKind::ATTRIBUTE_KW)
14301    }
14302    #[inline]
14303    pub fn rename_token(&self) -> Option<SyntaxToken> {
14304        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14305    }
14306    #[inline]
14307    pub fn to_token(&self) -> Option<SyntaxToken> {
14308        support::token(&self.syntax, SyntaxKind::TO_KW)
14309    }
14310}
14311
14312#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14313pub struct RenameColumn {
14314    pub(crate) syntax: SyntaxNode,
14315}
14316impl RenameColumn {
14317    #[inline]
14318    pub fn column_token(&self) -> Option<SyntaxToken> {
14319        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
14320    }
14321    #[inline]
14322    pub fn rename_token(&self) -> Option<SyntaxToken> {
14323        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14324    }
14325    #[inline]
14326    pub fn to_token(&self) -> Option<SyntaxToken> {
14327        support::token(&self.syntax, SyntaxKind::TO_KW)
14328    }
14329}
14330
14331#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14332pub struct RenameConstraint {
14333    pub(crate) syntax: SyntaxNode,
14334}
14335impl RenameConstraint {
14336    #[inline]
14337    pub fn name(&self) -> Option<Name> {
14338        support::child(&self.syntax)
14339    }
14340    #[inline]
14341    pub fn name_ref(&self) -> Option<NameRef> {
14342        support::child(&self.syntax)
14343    }
14344    #[inline]
14345    pub fn constraint_token(&self) -> Option<SyntaxToken> {
14346        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
14347    }
14348    #[inline]
14349    pub fn rename_token(&self) -> Option<SyntaxToken> {
14350        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14351    }
14352    #[inline]
14353    pub fn to_token(&self) -> Option<SyntaxToken> {
14354        support::token(&self.syntax, SyntaxKind::TO_KW)
14355    }
14356}
14357
14358#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14359pub struct RenameTo {
14360    pub(crate) syntax: SyntaxNode,
14361}
14362impl RenameTo {
14363    #[inline]
14364    pub fn name(&self) -> Option<Name> {
14365        support::child(&self.syntax)
14366    }
14367    #[inline]
14368    pub fn rename_token(&self) -> Option<SyntaxToken> {
14369        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14370    }
14371    #[inline]
14372    pub fn to_token(&self) -> Option<SyntaxToken> {
14373        support::token(&self.syntax, SyntaxKind::TO_KW)
14374    }
14375}
14376
14377#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14378pub struct RenameValue {
14379    pub(crate) syntax: SyntaxNode,
14380}
14381impl RenameValue {
14382    #[inline]
14383    pub fn literal(&self) -> Option<Literal> {
14384        support::child(&self.syntax)
14385    }
14386    #[inline]
14387    pub fn rename_token(&self) -> Option<SyntaxToken> {
14388        support::token(&self.syntax, SyntaxKind::RENAME_KW)
14389    }
14390    #[inline]
14391    pub fn to_token(&self) -> Option<SyntaxToken> {
14392        support::token(&self.syntax, SyntaxKind::TO_KW)
14393    }
14394    #[inline]
14395    pub fn value_token(&self) -> Option<SyntaxToken> {
14396        support::token(&self.syntax, SyntaxKind::VALUE_KW)
14397    }
14398}
14399
14400#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14401pub struct Repack {
14402    pub(crate) syntax: SyntaxNode,
14403}
14404impl Repack {
14405    #[inline]
14406    pub fn name_ref(&self) -> Option<NameRef> {
14407        support::child(&self.syntax)
14408    }
14409    #[inline]
14410    pub fn option_item_list(&self) -> Option<OptionItemList> {
14411        support::child(&self.syntax)
14412    }
14413    #[inline]
14414    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
14415        support::child(&self.syntax)
14416    }
14417    #[inline]
14418    pub fn index_token(&self) -> Option<SyntaxToken> {
14419        support::token(&self.syntax, SyntaxKind::INDEX_KW)
14420    }
14421    #[inline]
14422    pub fn repack_token(&self) -> Option<SyntaxToken> {
14423        support::token(&self.syntax, SyntaxKind::REPACK_KW)
14424    }
14425    #[inline]
14426    pub fn using_token(&self) -> Option<SyntaxToken> {
14427        support::token(&self.syntax, SyntaxKind::USING_KW)
14428    }
14429}
14430
14431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14432pub struct RepeatableClause {
14433    pub(crate) syntax: SyntaxNode,
14434}
14435impl RepeatableClause {
14436    #[inline]
14437    pub fn expr(&self) -> Option<Expr> {
14438        support::child(&self.syntax)
14439    }
14440    #[inline]
14441    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14442        support::token(&self.syntax, SyntaxKind::L_PAREN)
14443    }
14444    #[inline]
14445    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14446        support::token(&self.syntax, SyntaxKind::R_PAREN)
14447    }
14448    #[inline]
14449    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14450        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14451    }
14452}
14453
14454#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14455pub struct RepeatableRead {
14456    pub(crate) syntax: SyntaxNode,
14457}
14458impl RepeatableRead {
14459    #[inline]
14460    pub fn isolation_token(&self) -> Option<SyntaxToken> {
14461        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
14462    }
14463    #[inline]
14464    pub fn level_token(&self) -> Option<SyntaxToken> {
14465        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
14466    }
14467    #[inline]
14468    pub fn read_token(&self) -> Option<SyntaxToken> {
14469        support::token(&self.syntax, SyntaxKind::READ_KW)
14470    }
14471    #[inline]
14472    pub fn repeatable_token(&self) -> Option<SyntaxToken> {
14473        support::token(&self.syntax, SyntaxKind::REPEATABLE_KW)
14474    }
14475}
14476
14477#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14478pub struct ReplicaIdentity {
14479    pub(crate) syntax: SyntaxNode,
14480}
14481impl ReplicaIdentity {
14482    #[inline]
14483    pub fn identity_token(&self) -> Option<SyntaxToken> {
14484        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
14485    }
14486    #[inline]
14487    pub fn replica_token(&self) -> Option<SyntaxToken> {
14488        support::token(&self.syntax, SyntaxKind::REPLICA_KW)
14489    }
14490}
14491
14492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14493pub struct Reset {
14494    pub(crate) syntax: SyntaxNode,
14495}
14496impl Reset {
14497    #[inline]
14498    pub fn name_ref(&self) -> Option<NameRef> {
14499        support::child(&self.syntax)
14500    }
14501    #[inline]
14502    pub fn all_token(&self) -> Option<SyntaxToken> {
14503        support::token(&self.syntax, SyntaxKind::ALL_KW)
14504    }
14505    #[inline]
14506    pub fn reset_token(&self) -> Option<SyntaxToken> {
14507        support::token(&self.syntax, SyntaxKind::RESET_KW)
14508    }
14509}
14510
14511#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14512pub struct ResetConfigParam {
14513    pub(crate) syntax: SyntaxNode,
14514}
14515impl ResetConfigParam {
14516    #[inline]
14517    pub fn path(&self) -> Option<Path> {
14518        support::child(&self.syntax)
14519    }
14520    #[inline]
14521    pub fn all_token(&self) -> Option<SyntaxToken> {
14522        support::token(&self.syntax, SyntaxKind::ALL_KW)
14523    }
14524    #[inline]
14525    pub fn reset_token(&self) -> Option<SyntaxToken> {
14526        support::token(&self.syntax, SyntaxKind::RESET_KW)
14527    }
14528}
14529
14530#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14531pub struct ResetFuncOption {
14532    pub(crate) syntax: SyntaxNode,
14533}
14534impl ResetFuncOption {
14535    #[inline]
14536    pub fn name_ref(&self) -> Option<NameRef> {
14537        support::child(&self.syntax)
14538    }
14539    #[inline]
14540    pub fn reset_token(&self) -> Option<SyntaxToken> {
14541        support::token(&self.syntax, SyntaxKind::RESET_KW)
14542    }
14543}
14544
14545#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14546pub struct ResetOptions {
14547    pub(crate) syntax: SyntaxNode,
14548}
14549impl ResetOptions {
14550    #[inline]
14551    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14552        support::token(&self.syntax, SyntaxKind::L_PAREN)
14553    }
14554    #[inline]
14555    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14556        support::token(&self.syntax, SyntaxKind::R_PAREN)
14557    }
14558    #[inline]
14559    pub fn reset_token(&self) -> Option<SyntaxToken> {
14560        support::token(&self.syntax, SyntaxKind::RESET_KW)
14561    }
14562}
14563
14564#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14565pub struct ResetSessionAuth {
14566    pub(crate) syntax: SyntaxNode,
14567}
14568impl ResetSessionAuth {
14569    #[inline]
14570    pub fn authorization_token(&self) -> Option<SyntaxToken> {
14571        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
14572    }
14573    #[inline]
14574    pub fn reset_token(&self) -> Option<SyntaxToken> {
14575        support::token(&self.syntax, SyntaxKind::RESET_KW)
14576    }
14577    #[inline]
14578    pub fn session_token(&self) -> Option<SyntaxToken> {
14579        support::token(&self.syntax, SyntaxKind::SESSION_KW)
14580    }
14581}
14582
14583#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14584pub struct Restart {
14585    pub(crate) syntax: SyntaxNode,
14586}
14587impl Restart {
14588    #[inline]
14589    pub fn restart_token(&self) -> Option<SyntaxToken> {
14590        support::token(&self.syntax, SyntaxKind::RESTART_KW)
14591    }
14592    #[inline]
14593    pub fn with_token(&self) -> Option<SyntaxToken> {
14594        support::token(&self.syntax, SyntaxKind::WITH_KW)
14595    }
14596}
14597
14598#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14599pub struct Restrict {
14600    pub(crate) syntax: SyntaxNode,
14601}
14602impl Restrict {
14603    #[inline]
14604    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14605        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14606    }
14607}
14608
14609#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14610pub struct RetType {
14611    pub(crate) syntax: SyntaxNode,
14612}
14613impl RetType {
14614    #[inline]
14615    pub fn table_arg_list(&self) -> Option<TableArgList> {
14616        support::child(&self.syntax)
14617    }
14618    #[inline]
14619    pub fn ty(&self) -> Option<Type> {
14620        support::child(&self.syntax)
14621    }
14622    #[inline]
14623    pub fn returns_token(&self) -> Option<SyntaxToken> {
14624        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
14625    }
14626    #[inline]
14627    pub fn table_token(&self) -> Option<SyntaxToken> {
14628        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14629    }
14630}
14631
14632#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14633pub struct ReturnFuncOption {
14634    pub(crate) syntax: SyntaxNode,
14635}
14636impl ReturnFuncOption {
14637    #[inline]
14638    pub fn expr(&self) -> Option<Expr> {
14639        support::child(&self.syntax)
14640    }
14641    #[inline]
14642    pub fn return_token(&self) -> Option<SyntaxToken> {
14643        support::token(&self.syntax, SyntaxKind::RETURN_KW)
14644    }
14645}
14646
14647#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14648pub struct ReturningClause {
14649    pub(crate) syntax: SyntaxNode,
14650}
14651impl ReturningClause {
14652    #[inline]
14653    pub fn returning_option_list(&self) -> Option<ReturningOptionList> {
14654        support::child(&self.syntax)
14655    }
14656    #[inline]
14657    pub fn target_list(&self) -> Option<TargetList> {
14658        support::child(&self.syntax)
14659    }
14660    #[inline]
14661    pub fn returning_token(&self) -> Option<SyntaxToken> {
14662        support::token(&self.syntax, SyntaxKind::RETURNING_KW)
14663    }
14664}
14665
14666#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14667pub struct ReturningOption {
14668    pub(crate) syntax: SyntaxNode,
14669}
14670impl ReturningOption {
14671    #[inline]
14672    pub fn name(&self) -> Option<Name> {
14673        support::child(&self.syntax)
14674    }
14675    #[inline]
14676    pub fn as_token(&self) -> Option<SyntaxToken> {
14677        support::token(&self.syntax, SyntaxKind::AS_KW)
14678    }
14679    #[inline]
14680    pub fn new_token(&self) -> Option<SyntaxToken> {
14681        support::token(&self.syntax, SyntaxKind::NEW_KW)
14682    }
14683    #[inline]
14684    pub fn old_token(&self) -> Option<SyntaxToken> {
14685        support::token(&self.syntax, SyntaxKind::OLD_KW)
14686    }
14687}
14688
14689#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14690pub struct ReturningOptionList {
14691    pub(crate) syntax: SyntaxNode,
14692}
14693impl ReturningOptionList {
14694    #[inline]
14695    pub fn returning_options(&self) -> AstChildren<ReturningOption> {
14696        support::children(&self.syntax)
14697    }
14698    #[inline]
14699    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
14700        support::token(&self.syntax, SyntaxKind::L_PAREN)
14701    }
14702    #[inline]
14703    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
14704        support::token(&self.syntax, SyntaxKind::R_PAREN)
14705    }
14706    #[inline]
14707    pub fn with_token(&self) -> Option<SyntaxToken> {
14708        support::token(&self.syntax, SyntaxKind::WITH_KW)
14709    }
14710}
14711
14712#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14713pub struct Revoke {
14714    pub(crate) syntax: SyntaxNode,
14715}
14716impl Revoke {
14717    #[inline]
14718    pub fn name_refs(&self) -> AstChildren<NameRef> {
14719        support::children(&self.syntax)
14720    }
14721    #[inline]
14722    pub fn paths(&self) -> AstChildren<Path> {
14723        support::children(&self.syntax)
14724    }
14725    #[inline]
14726    pub fn revoke_command_list(&self) -> Option<RevokeCommandList> {
14727        support::child(&self.syntax)
14728    }
14729    #[inline]
14730    pub fn role_ref(&self) -> Option<RoleRef> {
14731        support::child(&self.syntax)
14732    }
14733    #[inline]
14734    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14735        support::child(&self.syntax)
14736    }
14737    #[inline]
14738    pub fn all_token(&self) -> Option<SyntaxToken> {
14739        support::token(&self.syntax, SyntaxKind::ALL_KW)
14740    }
14741    #[inline]
14742    pub fn by_token(&self) -> Option<SyntaxToken> {
14743        support::token(&self.syntax, SyntaxKind::BY_KW)
14744    }
14745    #[inline]
14746    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14747        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14748    }
14749    #[inline]
14750    pub fn for_token(&self) -> Option<SyntaxToken> {
14751        support::token(&self.syntax, SyntaxKind::FOR_KW)
14752    }
14753    #[inline]
14754    pub fn from_token(&self) -> Option<SyntaxToken> {
14755        support::token(&self.syntax, SyntaxKind::FROM_KW)
14756    }
14757    #[inline]
14758    pub fn grant_token(&self) -> Option<SyntaxToken> {
14759        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14760    }
14761    #[inline]
14762    pub fn granted_token(&self) -> Option<SyntaxToken> {
14763        support::token(&self.syntax, SyntaxKind::GRANTED_KW)
14764    }
14765    #[inline]
14766    pub fn in_token(&self) -> Option<SyntaxToken> {
14767        support::token(&self.syntax, SyntaxKind::IN_KW)
14768    }
14769    #[inline]
14770    pub fn on_token(&self) -> Option<SyntaxToken> {
14771        support::token(&self.syntax, SyntaxKind::ON_KW)
14772    }
14773    #[inline]
14774    pub fn option_token(&self) -> Option<SyntaxToken> {
14775        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14776    }
14777    #[inline]
14778    pub fn privileges_token(&self) -> Option<SyntaxToken> {
14779        support::token(&self.syntax, SyntaxKind::PRIVILEGES_KW)
14780    }
14781    #[inline]
14782    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14783        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14784    }
14785    #[inline]
14786    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14787        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14788    }
14789    #[inline]
14790    pub fn schema_token(&self) -> Option<SyntaxToken> {
14791        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
14792    }
14793    #[inline]
14794    pub fn table_token(&self) -> Option<SyntaxToken> {
14795        support::token(&self.syntax, SyntaxKind::TABLE_KW)
14796    }
14797    #[inline]
14798    pub fn tables_token(&self) -> Option<SyntaxToken> {
14799        support::token(&self.syntax, SyntaxKind::TABLES_KW)
14800    }
14801}
14802
14803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14804pub struct RevokeCommand {
14805    pub(crate) syntax: SyntaxNode,
14806}
14807impl RevokeCommand {
14808    #[inline]
14809    pub fn role_ref(&self) -> Option<RoleRef> {
14810        support::child(&self.syntax)
14811    }
14812    #[inline]
14813    pub fn all_token(&self) -> Option<SyntaxToken> {
14814        support::token(&self.syntax, SyntaxKind::ALL_KW)
14815    }
14816    #[inline]
14817    pub fn alter_token(&self) -> Option<SyntaxToken> {
14818        support::token(&self.syntax, SyntaxKind::ALTER_KW)
14819    }
14820    #[inline]
14821    pub fn create_token(&self) -> Option<SyntaxToken> {
14822        support::token(&self.syntax, SyntaxKind::CREATE_KW)
14823    }
14824    #[inline]
14825    pub fn delete_token(&self) -> Option<SyntaxToken> {
14826        support::token(&self.syntax, SyntaxKind::DELETE_KW)
14827    }
14828    #[inline]
14829    pub fn execute_token(&self) -> Option<SyntaxToken> {
14830        support::token(&self.syntax, SyntaxKind::EXECUTE_KW)
14831    }
14832    #[inline]
14833    pub fn ident_token(&self) -> Option<SyntaxToken> {
14834        support::token(&self.syntax, SyntaxKind::IDENT)
14835    }
14836    #[inline]
14837    pub fn insert_token(&self) -> Option<SyntaxToken> {
14838        support::token(&self.syntax, SyntaxKind::INSERT_KW)
14839    }
14840    #[inline]
14841    pub fn references_token(&self) -> Option<SyntaxToken> {
14842        support::token(&self.syntax, SyntaxKind::REFERENCES_KW)
14843    }
14844    #[inline]
14845    pub fn select_token(&self) -> Option<SyntaxToken> {
14846        support::token(&self.syntax, SyntaxKind::SELECT_KW)
14847    }
14848    #[inline]
14849    pub fn system_token(&self) -> Option<SyntaxToken> {
14850        support::token(&self.syntax, SyntaxKind::SYSTEM_KW)
14851    }
14852    #[inline]
14853    pub fn temp_token(&self) -> Option<SyntaxToken> {
14854        support::token(&self.syntax, SyntaxKind::TEMP_KW)
14855    }
14856    #[inline]
14857    pub fn temporary_token(&self) -> Option<SyntaxToken> {
14858        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
14859    }
14860    #[inline]
14861    pub fn trigger_token(&self) -> Option<SyntaxToken> {
14862        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
14863    }
14864    #[inline]
14865    pub fn truncate_token(&self) -> Option<SyntaxToken> {
14866        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
14867    }
14868    #[inline]
14869    pub fn update_token(&self) -> Option<SyntaxToken> {
14870        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
14871    }
14872}
14873
14874#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14875pub struct RevokeCommandList {
14876    pub(crate) syntax: SyntaxNode,
14877}
14878impl RevokeCommandList {
14879    #[inline]
14880    pub fn revoke_commands(&self) -> AstChildren<RevokeCommand> {
14881        support::children(&self.syntax)
14882    }
14883}
14884
14885#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14886pub struct RevokeDefaultPrivileges {
14887    pub(crate) syntax: SyntaxNode,
14888}
14889impl RevokeDefaultPrivileges {
14890    #[inline]
14891    pub fn privilege_target(&self) -> Option<PrivilegeTarget> {
14892        support::child(&self.syntax)
14893    }
14894    #[inline]
14895    pub fn privileges(&self) -> Option<Privileges> {
14896        support::child(&self.syntax)
14897    }
14898    #[inline]
14899    pub fn role_ref_list(&self) -> Option<RoleRefList> {
14900        support::child(&self.syntax)
14901    }
14902    #[inline]
14903    pub fn cascade_token(&self) -> Option<SyntaxToken> {
14904        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
14905    }
14906    #[inline]
14907    pub fn for_token(&self) -> Option<SyntaxToken> {
14908        support::token(&self.syntax, SyntaxKind::FOR_KW)
14909    }
14910    #[inline]
14911    pub fn from_token(&self) -> Option<SyntaxToken> {
14912        support::token(&self.syntax, SyntaxKind::FROM_KW)
14913    }
14914    #[inline]
14915    pub fn grant_token(&self) -> Option<SyntaxToken> {
14916        support::token(&self.syntax, SyntaxKind::GRANT_KW)
14917    }
14918    #[inline]
14919    pub fn on_token(&self) -> Option<SyntaxToken> {
14920        support::token(&self.syntax, SyntaxKind::ON_KW)
14921    }
14922    #[inline]
14923    pub fn option_token(&self) -> Option<SyntaxToken> {
14924        support::token(&self.syntax, SyntaxKind::OPTION_KW)
14925    }
14926    #[inline]
14927    pub fn restrict_token(&self) -> Option<SyntaxToken> {
14928        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
14929    }
14930    #[inline]
14931    pub fn revoke_token(&self) -> Option<SyntaxToken> {
14932        support::token(&self.syntax, SyntaxKind::REVOKE_KW)
14933    }
14934}
14935
14936#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14937pub struct Role {
14938    pub(crate) syntax: SyntaxNode,
14939}
14940impl Role {
14941    #[inline]
14942    pub fn name(&self) -> Option<Name> {
14943        support::child(&self.syntax)
14944    }
14945    #[inline]
14946    pub fn current_role_token(&self) -> Option<SyntaxToken> {
14947        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
14948    }
14949    #[inline]
14950    pub fn current_user_token(&self) -> Option<SyntaxToken> {
14951        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
14952    }
14953    #[inline]
14954    pub fn group_token(&self) -> Option<SyntaxToken> {
14955        support::token(&self.syntax, SyntaxKind::GROUP_KW)
14956    }
14957    #[inline]
14958    pub fn session_user_token(&self) -> Option<SyntaxToken> {
14959        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
14960    }
14961}
14962
14963#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14964pub struct RoleOption {
14965    pub(crate) syntax: SyntaxNode,
14966}
14967impl RoleOption {
14968    #[inline]
14969    pub fn inherit_token(&self) -> Option<SyntaxToken> {
14970        support::token(&self.syntax, SyntaxKind::INHERIT_KW)
14971    }
14972}
14973
14974#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14975pub struct RoleOptionList {
14976    pub(crate) syntax: SyntaxNode,
14977}
14978impl RoleOptionList {
14979    #[inline]
14980    pub fn role_options(&self) -> AstChildren<RoleOption> {
14981        support::children(&self.syntax)
14982    }
14983    #[inline]
14984    pub fn with_token(&self) -> Option<SyntaxToken> {
14985        support::token(&self.syntax, SyntaxKind::WITH_KW)
14986    }
14987}
14988
14989#[derive(Debug, Clone, PartialEq, Eq, Hash)]
14990pub struct RoleRef {
14991    pub(crate) syntax: SyntaxNode,
14992}
14993impl RoleRef {
14994    #[inline]
14995    pub fn name_ref(&self) -> Option<NameRef> {
14996        support::child(&self.syntax)
14997    }
14998    #[inline]
14999    pub fn current_role_token(&self) -> Option<SyntaxToken> {
15000        support::token(&self.syntax, SyntaxKind::CURRENT_ROLE_KW)
15001    }
15002    #[inline]
15003    pub fn current_user_token(&self) -> Option<SyntaxToken> {
15004        support::token(&self.syntax, SyntaxKind::CURRENT_USER_KW)
15005    }
15006    #[inline]
15007    pub fn group_token(&self) -> Option<SyntaxToken> {
15008        support::token(&self.syntax, SyntaxKind::GROUP_KW)
15009    }
15010    #[inline]
15011    pub fn session_user_token(&self) -> Option<SyntaxToken> {
15012        support::token(&self.syntax, SyntaxKind::SESSION_USER_KW)
15013    }
15014}
15015
15016#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15017pub struct RoleRefList {
15018    pub(crate) syntax: SyntaxNode,
15019}
15020impl RoleRefList {
15021    #[inline]
15022    pub fn role_refs(&self) -> AstChildren<RoleRef> {
15023        support::children(&self.syntax)
15024    }
15025}
15026
15027#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15028pub struct Rollback {
15029    pub(crate) syntax: SyntaxNode,
15030}
15031impl Rollback {
15032    #[inline]
15033    pub fn literal(&self) -> Option<Literal> {
15034        support::child(&self.syntax)
15035    }
15036    #[inline]
15037    pub fn name_ref(&self) -> Option<NameRef> {
15038        support::child(&self.syntax)
15039    }
15040    #[inline]
15041    pub fn abort_token(&self) -> Option<SyntaxToken> {
15042        support::token(&self.syntax, SyntaxKind::ABORT_KW)
15043    }
15044    #[inline]
15045    pub fn and_token(&self) -> Option<SyntaxToken> {
15046        support::token(&self.syntax, SyntaxKind::AND_KW)
15047    }
15048    #[inline]
15049    pub fn chain_token(&self) -> Option<SyntaxToken> {
15050        support::token(&self.syntax, SyntaxKind::CHAIN_KW)
15051    }
15052    #[inline]
15053    pub fn no_token(&self) -> Option<SyntaxToken> {
15054        support::token(&self.syntax, SyntaxKind::NO_KW)
15055    }
15056    #[inline]
15057    pub fn prepared_token(&self) -> Option<SyntaxToken> {
15058        support::token(&self.syntax, SyntaxKind::PREPARED_KW)
15059    }
15060    #[inline]
15061    pub fn rollback_token(&self) -> Option<SyntaxToken> {
15062        support::token(&self.syntax, SyntaxKind::ROLLBACK_KW)
15063    }
15064    #[inline]
15065    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15066        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15067    }
15068    #[inline]
15069    pub fn to_token(&self) -> Option<SyntaxToken> {
15070        support::token(&self.syntax, SyntaxKind::TO_KW)
15071    }
15072    #[inline]
15073    pub fn transaction_token(&self) -> Option<SyntaxToken> {
15074        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
15075    }
15076    #[inline]
15077    pub fn work_token(&self) -> Option<SyntaxToken> {
15078        support::token(&self.syntax, SyntaxKind::WORK_KW)
15079    }
15080}
15081
15082#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15083pub struct Row {
15084    pub(crate) syntax: SyntaxNode,
15085}
15086impl Row {
15087    #[inline]
15088    pub fn exprs(&self) -> AstChildren<Expr> {
15089        support::children(&self.syntax)
15090    }
15091}
15092
15093#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15094pub struct RowList {
15095    pub(crate) syntax: SyntaxNode,
15096}
15097impl RowList {
15098    #[inline]
15099    pub fn rows(&self) -> AstChildren<Row> {
15100        support::children(&self.syntax)
15101    }
15102}
15103
15104#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15105pub struct RowsFuncOption {
15106    pub(crate) syntax: SyntaxNode,
15107}
15108impl RowsFuncOption {
15109    #[inline]
15110    pub fn rows_token(&self) -> Option<SyntaxToken> {
15111        support::token(&self.syntax, SyntaxKind::ROWS_KW)
15112    }
15113}
15114
15115#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15116pub struct Savepoint {
15117    pub(crate) syntax: SyntaxNode,
15118}
15119impl Savepoint {
15120    #[inline]
15121    pub fn name(&self) -> Option<Name> {
15122        support::child(&self.syntax)
15123    }
15124    #[inline]
15125    pub fn savepoint_token(&self) -> Option<SyntaxToken> {
15126        support::token(&self.syntax, SyntaxKind::SAVEPOINT_KW)
15127    }
15128}
15129
15130#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15131pub struct SecurityFuncOption {
15132    pub(crate) syntax: SyntaxNode,
15133}
15134impl SecurityFuncOption {
15135    #[inline]
15136    pub fn definer_token(&self) -> Option<SyntaxToken> {
15137        support::token(&self.syntax, SyntaxKind::DEFINER_KW)
15138    }
15139    #[inline]
15140    pub fn invoker_token(&self) -> Option<SyntaxToken> {
15141        support::token(&self.syntax, SyntaxKind::INVOKER_KW)
15142    }
15143    #[inline]
15144    pub fn security_token(&self) -> Option<SyntaxToken> {
15145        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15146    }
15147}
15148
15149#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15150pub struct SecurityLabel {
15151    pub(crate) syntax: SyntaxNode,
15152}
15153impl SecurityLabel {
15154    #[inline]
15155    pub fn aggregate(&self) -> Option<Aggregate> {
15156        support::child(&self.syntax)
15157    }
15158    #[inline]
15159    pub fn for_provider(&self) -> Option<ForProvider> {
15160        support::child(&self.syntax)
15161    }
15162    #[inline]
15163    pub fn function_sig(&self) -> Option<FunctionSig> {
15164        support::child(&self.syntax)
15165    }
15166    #[inline]
15167    pub fn literal(&self) -> Option<Literal> {
15168        support::child(&self.syntax)
15169    }
15170    #[inline]
15171    pub fn path(&self) -> Option<Path> {
15172        support::child(&self.syntax)
15173    }
15174    #[inline]
15175    pub fn aggregate_token(&self) -> Option<SyntaxToken> {
15176        support::token(&self.syntax, SyntaxKind::AGGREGATE_KW)
15177    }
15178    #[inline]
15179    pub fn column_token(&self) -> Option<SyntaxToken> {
15180        support::token(&self.syntax, SyntaxKind::COLUMN_KW)
15181    }
15182    #[inline]
15183    pub fn database_token(&self) -> Option<SyntaxToken> {
15184        support::token(&self.syntax, SyntaxKind::DATABASE_KW)
15185    }
15186    #[inline]
15187    pub fn domain_token(&self) -> Option<SyntaxToken> {
15188        support::token(&self.syntax, SyntaxKind::DOMAIN_KW)
15189    }
15190    #[inline]
15191    pub fn event_token(&self) -> Option<SyntaxToken> {
15192        support::token(&self.syntax, SyntaxKind::EVENT_KW)
15193    }
15194    #[inline]
15195    pub fn foreign_token(&self) -> Option<SyntaxToken> {
15196        support::token(&self.syntax, SyntaxKind::FOREIGN_KW)
15197    }
15198    #[inline]
15199    pub fn function_token(&self) -> Option<SyntaxToken> {
15200        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
15201    }
15202    #[inline]
15203    pub fn is_token(&self) -> Option<SyntaxToken> {
15204        support::token(&self.syntax, SyntaxKind::IS_KW)
15205    }
15206    #[inline]
15207    pub fn label_token(&self) -> Option<SyntaxToken> {
15208        support::token(&self.syntax, SyntaxKind::LABEL_KW)
15209    }
15210    #[inline]
15211    pub fn language_token(&self) -> Option<SyntaxToken> {
15212        support::token(&self.syntax, SyntaxKind::LANGUAGE_KW)
15213    }
15214    #[inline]
15215    pub fn large_token(&self) -> Option<SyntaxToken> {
15216        support::token(&self.syntax, SyntaxKind::LARGE_KW)
15217    }
15218    #[inline]
15219    pub fn materialized_token(&self) -> Option<SyntaxToken> {
15220        support::token(&self.syntax, SyntaxKind::MATERIALIZED_KW)
15221    }
15222    #[inline]
15223    pub fn null_token(&self) -> Option<SyntaxToken> {
15224        support::token(&self.syntax, SyntaxKind::NULL_KW)
15225    }
15226    #[inline]
15227    pub fn object_token(&self) -> Option<SyntaxToken> {
15228        support::token(&self.syntax, SyntaxKind::OBJECT_KW)
15229    }
15230    #[inline]
15231    pub fn on_token(&self) -> Option<SyntaxToken> {
15232        support::token(&self.syntax, SyntaxKind::ON_KW)
15233    }
15234    #[inline]
15235    pub fn procedural_token(&self) -> Option<SyntaxToken> {
15236        support::token(&self.syntax, SyntaxKind::PROCEDURAL_KW)
15237    }
15238    #[inline]
15239    pub fn procedure_token(&self) -> Option<SyntaxToken> {
15240        support::token(&self.syntax, SyntaxKind::PROCEDURE_KW)
15241    }
15242    #[inline]
15243    pub fn publication_token(&self) -> Option<SyntaxToken> {
15244        support::token(&self.syntax, SyntaxKind::PUBLICATION_KW)
15245    }
15246    #[inline]
15247    pub fn role_token(&self) -> Option<SyntaxToken> {
15248        support::token(&self.syntax, SyntaxKind::ROLE_KW)
15249    }
15250    #[inline]
15251    pub fn routine_token(&self) -> Option<SyntaxToken> {
15252        support::token(&self.syntax, SyntaxKind::ROUTINE_KW)
15253    }
15254    #[inline]
15255    pub fn schema_token(&self) -> Option<SyntaxToken> {
15256        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15257    }
15258    #[inline]
15259    pub fn security_token(&self) -> Option<SyntaxToken> {
15260        support::token(&self.syntax, SyntaxKind::SECURITY_KW)
15261    }
15262    #[inline]
15263    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15264        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15265    }
15266    #[inline]
15267    pub fn subscription_token(&self) -> Option<SyntaxToken> {
15268        support::token(&self.syntax, SyntaxKind::SUBSCRIPTION_KW)
15269    }
15270    #[inline]
15271    pub fn table_token(&self) -> Option<SyntaxToken> {
15272        support::token(&self.syntax, SyntaxKind::TABLE_KW)
15273    }
15274    #[inline]
15275    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
15276        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
15277    }
15278    #[inline]
15279    pub fn trigger_token(&self) -> Option<SyntaxToken> {
15280        support::token(&self.syntax, SyntaxKind::TRIGGER_KW)
15281    }
15282    #[inline]
15283    pub fn type_token(&self) -> Option<SyntaxToken> {
15284        support::token(&self.syntax, SyntaxKind::TYPE_KW)
15285    }
15286    #[inline]
15287    pub fn view_token(&self) -> Option<SyntaxToken> {
15288        support::token(&self.syntax, SyntaxKind::VIEW_KW)
15289    }
15290}
15291
15292#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15293pub struct Select {
15294    pub(crate) syntax: SyntaxNode,
15295}
15296impl Select {
15297    #[inline]
15298    pub fn fetch_clause(&self) -> Option<FetchClause> {
15299        support::child(&self.syntax)
15300    }
15301    #[inline]
15302    pub fn filter_clause(&self) -> Option<FilterClause> {
15303        support::child(&self.syntax)
15304    }
15305    #[inline]
15306    pub fn from_clause(&self) -> Option<FromClause> {
15307        support::child(&self.syntax)
15308    }
15309    #[inline]
15310    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15311        support::child(&self.syntax)
15312    }
15313    #[inline]
15314    pub fn having_clause(&self) -> Option<HavingClause> {
15315        support::child(&self.syntax)
15316    }
15317    #[inline]
15318    pub fn limit_clause(&self) -> Option<LimitClause> {
15319        support::child(&self.syntax)
15320    }
15321    #[inline]
15322    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15323        support::children(&self.syntax)
15324    }
15325    #[inline]
15326    pub fn offset_clause(&self) -> Option<OffsetClause> {
15327        support::child(&self.syntax)
15328    }
15329    #[inline]
15330    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15331        support::child(&self.syntax)
15332    }
15333    #[inline]
15334    pub fn select_clause(&self) -> Option<SelectClause> {
15335        support::child(&self.syntax)
15336    }
15337    #[inline]
15338    pub fn where_clause(&self) -> Option<WhereClause> {
15339        support::child(&self.syntax)
15340    }
15341    #[inline]
15342    pub fn window_clause(&self) -> Option<WindowClause> {
15343        support::child(&self.syntax)
15344    }
15345    #[inline]
15346    pub fn with_clause(&self) -> Option<WithClause> {
15347        support::child(&self.syntax)
15348    }
15349}
15350
15351#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15352pub struct SelectClause {
15353    pub(crate) syntax: SyntaxNode,
15354}
15355impl SelectClause {
15356    #[inline]
15357    pub fn distinct_clause(&self) -> Option<DistinctClause> {
15358        support::child(&self.syntax)
15359    }
15360    #[inline]
15361    pub fn target_list(&self) -> Option<TargetList> {
15362        support::child(&self.syntax)
15363    }
15364    #[inline]
15365    pub fn all_token(&self) -> Option<SyntaxToken> {
15366        support::token(&self.syntax, SyntaxKind::ALL_KW)
15367    }
15368    #[inline]
15369    pub fn select_token(&self) -> Option<SyntaxToken> {
15370        support::token(&self.syntax, SyntaxKind::SELECT_KW)
15371    }
15372}
15373
15374#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15375pub struct SelectInto {
15376    pub(crate) syntax: SyntaxNode,
15377}
15378impl SelectInto {
15379    #[inline]
15380    pub fn filter_clause(&self) -> Option<FilterClause> {
15381        support::child(&self.syntax)
15382    }
15383    #[inline]
15384    pub fn from_clause(&self) -> Option<FromClause> {
15385        support::child(&self.syntax)
15386    }
15387    #[inline]
15388    pub fn group_by_clause(&self) -> Option<GroupByClause> {
15389        support::child(&self.syntax)
15390    }
15391    #[inline]
15392    pub fn having_clause(&self) -> Option<HavingClause> {
15393        support::child(&self.syntax)
15394    }
15395    #[inline]
15396    pub fn into_clause(&self) -> Option<IntoClause> {
15397        support::child(&self.syntax)
15398    }
15399    #[inline]
15400    pub fn limit_clause(&self) -> Option<LimitClause> {
15401        support::child(&self.syntax)
15402    }
15403    #[inline]
15404    pub fn locking_clauses(&self) -> AstChildren<LockingClause> {
15405        support::children(&self.syntax)
15406    }
15407    #[inline]
15408    pub fn offset_clause(&self) -> Option<OffsetClause> {
15409        support::child(&self.syntax)
15410    }
15411    #[inline]
15412    pub fn order_by_clause(&self) -> Option<OrderByClause> {
15413        support::child(&self.syntax)
15414    }
15415    #[inline]
15416    pub fn select_clause(&self) -> Option<SelectClause> {
15417        support::child(&self.syntax)
15418    }
15419    #[inline]
15420    pub fn where_clause(&self) -> Option<WhereClause> {
15421        support::child(&self.syntax)
15422    }
15423    #[inline]
15424    pub fn window_clause(&self) -> Option<WindowClause> {
15425        support::child(&self.syntax)
15426    }
15427    #[inline]
15428    pub fn with_clause(&self) -> Option<WithClause> {
15429        support::child(&self.syntax)
15430    }
15431}
15432
15433#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15434pub struct SequenceOption {
15435    pub(crate) syntax: SyntaxNode,
15436}
15437impl SequenceOption {
15438    #[inline]
15439    pub fn literal(&self) -> Option<Literal> {
15440        support::child(&self.syntax)
15441    }
15442    #[inline]
15443    pub fn name_ref(&self) -> Option<NameRef> {
15444        support::child(&self.syntax)
15445    }
15446    #[inline]
15447    pub fn path(&self) -> Option<Path> {
15448        support::child(&self.syntax)
15449    }
15450    #[inline]
15451    pub fn ty(&self) -> Option<Type> {
15452        support::child(&self.syntax)
15453    }
15454    #[inline]
15455    pub fn as_token(&self) -> Option<SyntaxToken> {
15456        support::token(&self.syntax, SyntaxKind::AS_KW)
15457    }
15458    #[inline]
15459    pub fn by_token(&self) -> Option<SyntaxToken> {
15460        support::token(&self.syntax, SyntaxKind::BY_KW)
15461    }
15462    #[inline]
15463    pub fn cycle_token(&self) -> Option<SyntaxToken> {
15464        support::token(&self.syntax, SyntaxKind::CYCLE_KW)
15465    }
15466    #[inline]
15467    pub fn increment_token(&self) -> Option<SyntaxToken> {
15468        support::token(&self.syntax, SyntaxKind::INCREMENT_KW)
15469    }
15470    #[inline]
15471    pub fn logged_token(&self) -> Option<SyntaxToken> {
15472        support::token(&self.syntax, SyntaxKind::LOGGED_KW)
15473    }
15474    #[inline]
15475    pub fn maxvalue_token(&self) -> Option<SyntaxToken> {
15476        support::token(&self.syntax, SyntaxKind::MAXVALUE_KW)
15477    }
15478    #[inline]
15479    pub fn minvalue_token(&self) -> Option<SyntaxToken> {
15480        support::token(&self.syntax, SyntaxKind::MINVALUE_KW)
15481    }
15482    #[inline]
15483    pub fn name_token(&self) -> Option<SyntaxToken> {
15484        support::token(&self.syntax, SyntaxKind::NAME_KW)
15485    }
15486    #[inline]
15487    pub fn no_token(&self) -> Option<SyntaxToken> {
15488        support::token(&self.syntax, SyntaxKind::NO_KW)
15489    }
15490    #[inline]
15491    pub fn none_token(&self) -> Option<SyntaxToken> {
15492        support::token(&self.syntax, SyntaxKind::NONE_KW)
15493    }
15494    #[inline]
15495    pub fn owned_token(&self) -> Option<SyntaxToken> {
15496        support::token(&self.syntax, SyntaxKind::OWNED_KW)
15497    }
15498    #[inline]
15499    pub fn restart_token(&self) -> Option<SyntaxToken> {
15500        support::token(&self.syntax, SyntaxKind::RESTART_KW)
15501    }
15502    #[inline]
15503    pub fn sequence_token(&self) -> Option<SyntaxToken> {
15504        support::token(&self.syntax, SyntaxKind::SEQUENCE_KW)
15505    }
15506    #[inline]
15507    pub fn start_token(&self) -> Option<SyntaxToken> {
15508        support::token(&self.syntax, SyntaxKind::START_KW)
15509    }
15510    #[inline]
15511    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
15512        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
15513    }
15514    #[inline]
15515    pub fn with_token(&self) -> Option<SyntaxToken> {
15516        support::token(&self.syntax, SyntaxKind::WITH_KW)
15517    }
15518}
15519
15520#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15521pub struct SequenceOptionList {
15522    pub(crate) syntax: SyntaxNode,
15523}
15524impl SequenceOptionList {
15525    #[inline]
15526    pub fn sequence_options(&self) -> AstChildren<SequenceOption> {
15527        support::children(&self.syntax)
15528    }
15529    #[inline]
15530    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15531        support::token(&self.syntax, SyntaxKind::L_PAREN)
15532    }
15533    #[inline]
15534    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15535        support::token(&self.syntax, SyntaxKind::R_PAREN)
15536    }
15537}
15538
15539#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15540pub struct Serializable {
15541    pub(crate) syntax: SyntaxNode,
15542}
15543impl Serializable {
15544    #[inline]
15545    pub fn isolation_token(&self) -> Option<SyntaxToken> {
15546        support::token(&self.syntax, SyntaxKind::ISOLATION_KW)
15547    }
15548    #[inline]
15549    pub fn level_token(&self) -> Option<SyntaxToken> {
15550        support::token(&self.syntax, SyntaxKind::LEVEL_KW)
15551    }
15552    #[inline]
15553    pub fn serializable_token(&self) -> Option<SyntaxToken> {
15554        support::token(&self.syntax, SyntaxKind::SERIALIZABLE_KW)
15555    }
15556}
15557
15558#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15559pub struct ServerName {
15560    pub(crate) syntax: SyntaxNode,
15561}
15562impl ServerName {
15563    #[inline]
15564    pub fn name_ref(&self) -> Option<NameRef> {
15565        support::child(&self.syntax)
15566    }
15567    #[inline]
15568    pub fn server_token(&self) -> Option<SyntaxToken> {
15569        support::token(&self.syntax, SyntaxKind::SERVER_KW)
15570    }
15571}
15572
15573#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15574pub struct Set {
15575    pub(crate) syntax: SyntaxNode,
15576}
15577impl Set {
15578    #[inline]
15579    pub fn config_value(&self) -> Option<ConfigValue> {
15580        support::child(&self.syntax)
15581    }
15582    #[inline]
15583    pub fn config_values(&self) -> AstChildren<ConfigValue> {
15584        support::children(&self.syntax)
15585    }
15586    #[inline]
15587    pub fn literal(&self) -> Option<Literal> {
15588        support::child(&self.syntax)
15589    }
15590    #[inline]
15591    pub fn path(&self) -> Option<Path> {
15592        support::child(&self.syntax)
15593    }
15594    #[inline]
15595    pub fn eq_token(&self) -> Option<SyntaxToken> {
15596        support::token(&self.syntax, SyntaxKind::EQ)
15597    }
15598    #[inline]
15599    pub fn catalog_token(&self) -> Option<SyntaxToken> {
15600        support::token(&self.syntax, SyntaxKind::CATALOG_KW)
15601    }
15602    #[inline]
15603    pub fn content_token(&self) -> Option<SyntaxToken> {
15604        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
15605    }
15606    #[inline]
15607    pub fn current_token(&self) -> Option<SyntaxToken> {
15608        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
15609    }
15610    #[inline]
15611    pub fn default_token(&self) -> Option<SyntaxToken> {
15612        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15613    }
15614    #[inline]
15615    pub fn document_token(&self) -> Option<SyntaxToken> {
15616        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
15617    }
15618    #[inline]
15619    pub fn from_token(&self) -> Option<SyntaxToken> {
15620        support::token(&self.syntax, SyntaxKind::FROM_KW)
15621    }
15622    #[inline]
15623    pub fn local_token(&self) -> Option<SyntaxToken> {
15624        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
15625    }
15626    #[inline]
15627    pub fn option_token(&self) -> Option<SyntaxToken> {
15628        support::token(&self.syntax, SyntaxKind::OPTION_KW)
15629    }
15630    #[inline]
15631    pub fn schema_token(&self) -> Option<SyntaxToken> {
15632        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
15633    }
15634    #[inline]
15635    pub fn session_token(&self) -> Option<SyntaxToken> {
15636        support::token(&self.syntax, SyntaxKind::SESSION_KW)
15637    }
15638    #[inline]
15639    pub fn set_token(&self) -> Option<SyntaxToken> {
15640        support::token(&self.syntax, SyntaxKind::SET_KW)
15641    }
15642    #[inline]
15643    pub fn time_token(&self) -> Option<SyntaxToken> {
15644        support::token(&self.syntax, SyntaxKind::TIME_KW)
15645    }
15646    #[inline]
15647    pub fn to_token(&self) -> Option<SyntaxToken> {
15648        support::token(&self.syntax, SyntaxKind::TO_KW)
15649    }
15650    #[inline]
15651    pub fn xml_token(&self) -> Option<SyntaxToken> {
15652        support::token(&self.syntax, SyntaxKind::XML_KW)
15653    }
15654    #[inline]
15655    pub fn zone_token(&self) -> Option<SyntaxToken> {
15656        support::token(&self.syntax, SyntaxKind::ZONE_KW)
15657    }
15658}
15659
15660#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15661pub struct SetAccessMethod {
15662    pub(crate) syntax: SyntaxNode,
15663}
15664impl SetAccessMethod {
15665    #[inline]
15666    pub fn name_ref(&self) -> Option<NameRef> {
15667        support::child(&self.syntax)
15668    }
15669    #[inline]
15670    pub fn access_token(&self) -> Option<SyntaxToken> {
15671        support::token(&self.syntax, SyntaxKind::ACCESS_KW)
15672    }
15673    #[inline]
15674    pub fn method_token(&self) -> Option<SyntaxToken> {
15675        support::token(&self.syntax, SyntaxKind::METHOD_KW)
15676    }
15677    #[inline]
15678    pub fn set_token(&self) -> Option<SyntaxToken> {
15679        support::token(&self.syntax, SyntaxKind::SET_KW)
15680    }
15681}
15682
15683#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15684pub struct SetClause {
15685    pub(crate) syntax: SyntaxNode,
15686}
15687impl SetClause {
15688    #[inline]
15689    pub fn set_column_list(&self) -> Option<SetColumnList> {
15690        support::child(&self.syntax)
15691    }
15692    #[inline]
15693    pub fn set_token(&self) -> Option<SyntaxToken> {
15694        support::token(&self.syntax, SyntaxKind::SET_KW)
15695    }
15696}
15697
15698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15699pub struct SetColumnList {
15700    pub(crate) syntax: SyntaxNode,
15701}
15702impl SetColumnList {
15703    #[inline]
15704    pub fn set_columns(&self) -> AstChildren<SetColumn> {
15705        support::children(&self.syntax)
15706    }
15707}
15708
15709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15710pub struct SetCompression {
15711    pub(crate) syntax: SyntaxNode,
15712}
15713impl SetCompression {
15714    #[inline]
15715    pub fn compression_token(&self) -> Option<SyntaxToken> {
15716        support::token(&self.syntax, SyntaxKind::COMPRESSION_KW)
15717    }
15718    #[inline]
15719    pub fn set_token(&self) -> Option<SyntaxToken> {
15720        support::token(&self.syntax, SyntaxKind::SET_KW)
15721    }
15722}
15723
15724#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15725pub struct SetConfigParam {
15726    pub(crate) syntax: SyntaxNode,
15727}
15728impl SetConfigParam {
15729    #[inline]
15730    pub fn path(&self) -> Option<Path> {
15731        support::child(&self.syntax)
15732    }
15733    #[inline]
15734    pub fn set_token(&self) -> Option<SyntaxToken> {
15735        support::token(&self.syntax, SyntaxKind::SET_KW)
15736    }
15737}
15738
15739#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15740pub struct SetConstraints {
15741    pub(crate) syntax: SyntaxNode,
15742}
15743impl SetConstraints {
15744    #[inline]
15745    pub fn paths(&self) -> AstChildren<Path> {
15746        support::children(&self.syntax)
15747    }
15748    #[inline]
15749    pub fn all_token(&self) -> Option<SyntaxToken> {
15750        support::token(&self.syntax, SyntaxKind::ALL_KW)
15751    }
15752    #[inline]
15753    pub fn constraints_token(&self) -> Option<SyntaxToken> {
15754        support::token(&self.syntax, SyntaxKind::CONSTRAINTS_KW)
15755    }
15756    #[inline]
15757    pub fn deferred_token(&self) -> Option<SyntaxToken> {
15758        support::token(&self.syntax, SyntaxKind::DEFERRED_KW)
15759    }
15760    #[inline]
15761    pub fn immediate_token(&self) -> Option<SyntaxToken> {
15762        support::token(&self.syntax, SyntaxKind::IMMEDIATE_KW)
15763    }
15764    #[inline]
15765    pub fn set_token(&self) -> Option<SyntaxToken> {
15766        support::token(&self.syntax, SyntaxKind::SET_KW)
15767    }
15768}
15769
15770#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15771pub struct SetDefault {
15772    pub(crate) syntax: SyntaxNode,
15773}
15774impl SetDefault {
15775    #[inline]
15776    pub fn expr(&self) -> Option<Expr> {
15777        support::child(&self.syntax)
15778    }
15779    #[inline]
15780    pub fn default_token(&self) -> Option<SyntaxToken> {
15781        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15782    }
15783    #[inline]
15784    pub fn set_token(&self) -> Option<SyntaxToken> {
15785        support::token(&self.syntax, SyntaxKind::SET_KW)
15786    }
15787}
15788
15789#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15790pub struct SetDefaultColumns {
15791    pub(crate) syntax: SyntaxNode,
15792}
15793impl SetDefaultColumns {
15794    #[inline]
15795    pub fn column_list(&self) -> Option<ColumnList> {
15796        support::child(&self.syntax)
15797    }
15798    #[inline]
15799    pub fn default_token(&self) -> Option<SyntaxToken> {
15800        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15801    }
15802    #[inline]
15803    pub fn set_token(&self) -> Option<SyntaxToken> {
15804        support::token(&self.syntax, SyntaxKind::SET_KW)
15805    }
15806}
15807
15808#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15809pub struct SetExpr {
15810    pub(crate) syntax: SyntaxNode,
15811}
15812impl SetExpr {
15813    #[inline]
15814    pub fn expr(&self) -> Option<Expr> {
15815        support::child(&self.syntax)
15816    }
15817    #[inline]
15818    pub fn default_token(&self) -> Option<SyntaxToken> {
15819        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
15820    }
15821}
15822
15823#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15824pub struct SetExprList {
15825    pub(crate) syntax: SyntaxNode,
15826}
15827impl SetExprList {
15828    #[inline]
15829    pub fn set_exprs(&self) -> AstChildren<SetExpr> {
15830        support::children(&self.syntax)
15831    }
15832    #[inline]
15833    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
15834        support::token(&self.syntax, SyntaxKind::L_PAREN)
15835    }
15836    #[inline]
15837    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
15838        support::token(&self.syntax, SyntaxKind::R_PAREN)
15839    }
15840    #[inline]
15841    pub fn row_token(&self) -> Option<SyntaxToken> {
15842        support::token(&self.syntax, SyntaxKind::ROW_KW)
15843    }
15844}
15845
15846#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15847pub struct SetExpression {
15848    pub(crate) syntax: SyntaxNode,
15849}
15850impl SetExpression {
15851    #[inline]
15852    pub fn expr(&self) -> Option<Expr> {
15853        support::child(&self.syntax)
15854    }
15855    #[inline]
15856    pub fn expression_token(&self) -> Option<SyntaxToken> {
15857        support::token(&self.syntax, SyntaxKind::EXPRESSION_KW)
15858    }
15859    #[inline]
15860    pub fn set_token(&self) -> Option<SyntaxToken> {
15861        support::token(&self.syntax, SyntaxKind::SET_KW)
15862    }
15863}
15864
15865#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15866pub struct SetFuncOption {
15867    pub(crate) syntax: SyntaxNode,
15868}
15869impl SetFuncOption {
15870    #[inline]
15871    pub fn set_token(&self) -> Option<SyntaxToken> {
15872        support::token(&self.syntax, SyntaxKind::SET_KW)
15873    }
15874}
15875
15876#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15877pub struct SetGenerated {
15878    pub(crate) syntax: SyntaxNode,
15879}
15880impl SetGenerated {
15881    #[inline]
15882    pub fn set_token(&self) -> Option<SyntaxToken> {
15883        support::token(&self.syntax, SyntaxKind::SET_KW)
15884    }
15885}
15886
15887#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15888pub struct SetGeneratedOptions {
15889    pub(crate) syntax: SyntaxNode,
15890}
15891impl SetGeneratedOptions {
15892    #[inline]
15893    pub fn generated_token(&self) -> Option<SyntaxToken> {
15894        support::token(&self.syntax, SyntaxKind::GENERATED_KW)
15895    }
15896    #[inline]
15897    pub fn set_token(&self) -> Option<SyntaxToken> {
15898        support::token(&self.syntax, SyntaxKind::SET_KW)
15899    }
15900}
15901
15902#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15903pub struct SetLogged {
15904    pub(crate) syntax: SyntaxNode,
15905}
15906impl SetLogged {
15907    #[inline]
15908    pub fn logged_token(&self) -> Option<SyntaxToken> {
15909        support::token(&self.syntax, SyntaxKind::LOGGED_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 SetMultipleColumns {
15919    pub(crate) syntax: SyntaxNode,
15920}
15921impl SetMultipleColumns {
15922    #[inline]
15923    pub fn column_list(&self) -> Option<ColumnList> {
15924        support::child(&self.syntax)
15925    }
15926    #[inline]
15927    pub fn paren_select(&self) -> Option<ParenSelect> {
15928        support::child(&self.syntax)
15929    }
15930    #[inline]
15931    pub fn set_expr_list(&self) -> Option<SetExprList> {
15932        support::child(&self.syntax)
15933    }
15934    #[inline]
15935    pub fn eq_token(&self) -> Option<SyntaxToken> {
15936        support::token(&self.syntax, SyntaxKind::EQ)
15937    }
15938}
15939
15940#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15941pub struct SetNotNull {
15942    pub(crate) syntax: SyntaxNode,
15943}
15944impl SetNotNull {
15945    #[inline]
15946    pub fn not_token(&self) -> Option<SyntaxToken> {
15947        support::token(&self.syntax, SyntaxKind::NOT_KW)
15948    }
15949    #[inline]
15950    pub fn null_token(&self) -> Option<SyntaxToken> {
15951        support::token(&self.syntax, SyntaxKind::NULL_KW)
15952    }
15953    #[inline]
15954    pub fn set_token(&self) -> Option<SyntaxToken> {
15955        support::token(&self.syntax, SyntaxKind::SET_KW)
15956    }
15957}
15958
15959#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15960pub struct SetNullColumns {
15961    pub(crate) syntax: SyntaxNode,
15962}
15963impl SetNullColumns {
15964    #[inline]
15965    pub fn column_list(&self) -> Option<ColumnList> {
15966        support::child(&self.syntax)
15967    }
15968    #[inline]
15969    pub fn null_token(&self) -> Option<SyntaxToken> {
15970        support::token(&self.syntax, SyntaxKind::NULL_KW)
15971    }
15972    #[inline]
15973    pub fn set_token(&self) -> Option<SyntaxToken> {
15974        support::token(&self.syntax, SyntaxKind::SET_KW)
15975    }
15976}
15977
15978#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15979pub struct SetOptions {
15980    pub(crate) syntax: SyntaxNode,
15981}
15982impl SetOptions {
15983    #[inline]
15984    pub fn attribute_list(&self) -> Option<AttributeList> {
15985        support::child(&self.syntax)
15986    }
15987    #[inline]
15988    pub fn set_token(&self) -> Option<SyntaxToken> {
15989        support::token(&self.syntax, SyntaxKind::SET_KW)
15990    }
15991}
15992
15993#[derive(Debug, Clone, PartialEq, Eq, Hash)]
15994pub struct SetOptionsList {
15995    pub(crate) syntax: SyntaxNode,
15996}
15997impl SetOptionsList {
15998    #[inline]
15999    pub fn alter_option_list(&self) -> Option<AlterOptionList> {
16000        support::child(&self.syntax)
16001    }
16002    #[inline]
16003    pub fn options_token(&self) -> Option<SyntaxToken> {
16004        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
16005    }
16006    #[inline]
16007    pub fn set_token(&self) -> Option<SyntaxToken> {
16008        support::token(&self.syntax, SyntaxKind::SET_KW)
16009    }
16010}
16011
16012#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16013pub struct SetRole {
16014    pub(crate) syntax: SyntaxNode,
16015}
16016impl SetRole {
16017    #[inline]
16018    pub fn role_ref(&self) -> Option<RoleRef> {
16019        support::child(&self.syntax)
16020    }
16021    #[inline]
16022    pub fn local_token(&self) -> Option<SyntaxToken> {
16023        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16024    }
16025    #[inline]
16026    pub fn none_token(&self) -> Option<SyntaxToken> {
16027        support::token(&self.syntax, SyntaxKind::NONE_KW)
16028    }
16029    #[inline]
16030    pub fn reset_token(&self) -> Option<SyntaxToken> {
16031        support::token(&self.syntax, SyntaxKind::RESET_KW)
16032    }
16033    #[inline]
16034    pub fn role_token(&self) -> Option<SyntaxToken> {
16035        support::token(&self.syntax, SyntaxKind::ROLE_KW)
16036    }
16037    #[inline]
16038    pub fn session_token(&self) -> Option<SyntaxToken> {
16039        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16040    }
16041    #[inline]
16042    pub fn set_token(&self) -> Option<SyntaxToken> {
16043        support::token(&self.syntax, SyntaxKind::SET_KW)
16044    }
16045}
16046
16047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16048pub struct SetSchema {
16049    pub(crate) syntax: SyntaxNode,
16050}
16051impl SetSchema {
16052    #[inline]
16053    pub fn name_ref(&self) -> Option<NameRef> {
16054        support::child(&self.syntax)
16055    }
16056    #[inline]
16057    pub fn schema_token(&self) -> Option<SyntaxToken> {
16058        support::token(&self.syntax, SyntaxKind::SCHEMA_KW)
16059    }
16060    #[inline]
16061    pub fn set_token(&self) -> Option<SyntaxToken> {
16062        support::token(&self.syntax, SyntaxKind::SET_KW)
16063    }
16064}
16065
16066#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16067pub struct SetSequenceOption {
16068    pub(crate) syntax: SyntaxNode,
16069}
16070impl SetSequenceOption {
16071    #[inline]
16072    pub fn set_token(&self) -> Option<SyntaxToken> {
16073        support::token(&self.syntax, SyntaxKind::SET_KW)
16074    }
16075}
16076
16077#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16078pub struct SetSessionAuth {
16079    pub(crate) syntax: SyntaxNode,
16080}
16081impl SetSessionAuth {
16082    #[inline]
16083    pub fn literal(&self) -> Option<Literal> {
16084        support::child(&self.syntax)
16085    }
16086    #[inline]
16087    pub fn role_ref(&self) -> Option<RoleRef> {
16088        support::child(&self.syntax)
16089    }
16090    #[inline]
16091    pub fn authorization_token(&self) -> Option<SyntaxToken> {
16092        support::token(&self.syntax, SyntaxKind::AUTHORIZATION_KW)
16093    }
16094    #[inline]
16095    pub fn default_token(&self) -> Option<SyntaxToken> {
16096        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16097    }
16098    #[inline]
16099    pub fn local_token(&self) -> Option<SyntaxToken> {
16100        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16101    }
16102    #[inline]
16103    pub fn session_token(&self) -> Option<SyntaxToken> {
16104        support::token(&self.syntax, SyntaxKind::SESSION_KW)
16105    }
16106    #[inline]
16107    pub fn set_token(&self) -> Option<SyntaxToken> {
16108        support::token(&self.syntax, SyntaxKind::SET_KW)
16109    }
16110}
16111
16112#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16113pub struct SetSingleColumn {
16114    pub(crate) syntax: SyntaxNode,
16115}
16116impl SetSingleColumn {
16117    #[inline]
16118    pub fn column(&self) -> Option<Column> {
16119        support::child(&self.syntax)
16120    }
16121    #[inline]
16122    pub fn set_expr(&self) -> Option<SetExpr> {
16123        support::child(&self.syntax)
16124    }
16125    #[inline]
16126    pub fn eq_token(&self) -> Option<SyntaxToken> {
16127        support::token(&self.syntax, SyntaxKind::EQ)
16128    }
16129}
16130
16131#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16132pub struct SetStatistics {
16133    pub(crate) syntax: SyntaxNode,
16134}
16135impl SetStatistics {
16136    #[inline]
16137    pub fn set_token(&self) -> Option<SyntaxToken> {
16138        support::token(&self.syntax, SyntaxKind::SET_KW)
16139    }
16140    #[inline]
16141    pub fn statistics_token(&self) -> Option<SyntaxToken> {
16142        support::token(&self.syntax, SyntaxKind::STATISTICS_KW)
16143    }
16144}
16145
16146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16147pub struct SetStorage {
16148    pub(crate) syntax: SyntaxNode,
16149}
16150impl SetStorage {
16151    #[inline]
16152    pub fn set_token(&self) -> Option<SyntaxToken> {
16153        support::token(&self.syntax, SyntaxKind::SET_KW)
16154    }
16155    #[inline]
16156    pub fn storage_token(&self) -> Option<SyntaxToken> {
16157        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16158    }
16159}
16160
16161#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16162pub struct SetTablespace {
16163    pub(crate) syntax: SyntaxNode,
16164}
16165impl SetTablespace {
16166    #[inline]
16167    pub fn path(&self) -> Option<Path> {
16168        support::child(&self.syntax)
16169    }
16170    #[inline]
16171    pub fn set_token(&self) -> Option<SyntaxToken> {
16172        support::token(&self.syntax, SyntaxKind::SET_KW)
16173    }
16174    #[inline]
16175    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16176        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16177    }
16178}
16179
16180#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16181pub struct SetTransaction {
16182    pub(crate) syntax: SyntaxNode,
16183}
16184impl SetTransaction {
16185    #[inline]
16186    pub fn literal(&self) -> Option<Literal> {
16187        support::child(&self.syntax)
16188    }
16189    #[inline]
16190    pub fn transaction_mode_list(&self) -> Option<TransactionModeList> {
16191        support::child(&self.syntax)
16192    }
16193    #[inline]
16194    pub fn as_token(&self) -> Option<SyntaxToken> {
16195        support::token(&self.syntax, SyntaxKind::AS_KW)
16196    }
16197    #[inline]
16198    pub fn characteristics_token(&self) -> Option<SyntaxToken> {
16199        support::token(&self.syntax, SyntaxKind::CHARACTERISTICS_KW)
16200    }
16201    #[inline]
16202    pub fn session_token(&self) -> Option<SyntaxToken> {
16203        support::token(&self.syntax, SyntaxKind::SESSION_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 snapshot_token(&self) -> Option<SyntaxToken> {
16211        support::token(&self.syntax, SyntaxKind::SNAPSHOT_KW)
16212    }
16213    #[inline]
16214    pub fn transaction_token(&self) -> Option<SyntaxToken> {
16215        support::token(&self.syntax, SyntaxKind::TRANSACTION_KW)
16216    }
16217}
16218
16219#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16220pub struct SetType {
16221    pub(crate) syntax: SyntaxNode,
16222}
16223impl SetType {
16224    #[inline]
16225    pub fn collate(&self) -> Option<Collate> {
16226        support::child(&self.syntax)
16227    }
16228    #[inline]
16229    pub fn ty(&self) -> Option<Type> {
16230        support::child(&self.syntax)
16231    }
16232    #[inline]
16233    pub fn set_token(&self) -> Option<SyntaxToken> {
16234        support::token(&self.syntax, SyntaxKind::SET_KW)
16235    }
16236    #[inline]
16237    pub fn type_token(&self) -> Option<SyntaxToken> {
16238        support::token(&self.syntax, SyntaxKind::TYPE_KW)
16239    }
16240}
16241
16242#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16243pub struct SetUnlogged {
16244    pub(crate) syntax: SyntaxNode,
16245}
16246impl SetUnlogged {
16247    #[inline]
16248    pub fn set_token(&self) -> Option<SyntaxToken> {
16249        support::token(&self.syntax, SyntaxKind::SET_KW)
16250    }
16251    #[inline]
16252    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
16253        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
16254    }
16255}
16256
16257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16258pub struct SetWithoutCluster {
16259    pub(crate) syntax: SyntaxNode,
16260}
16261impl SetWithoutCluster {
16262    #[inline]
16263    pub fn cluster_token(&self) -> Option<SyntaxToken> {
16264        support::token(&self.syntax, SyntaxKind::CLUSTER_KW)
16265    }
16266    #[inline]
16267    pub fn set_token(&self) -> Option<SyntaxToken> {
16268        support::token(&self.syntax, SyntaxKind::SET_KW)
16269    }
16270    #[inline]
16271    pub fn without_token(&self) -> Option<SyntaxToken> {
16272        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16273    }
16274}
16275
16276#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16277pub struct SetWithoutOids {
16278    pub(crate) syntax: SyntaxNode,
16279}
16280impl SetWithoutOids {
16281    #[inline]
16282    pub fn oids_token(&self) -> Option<SyntaxToken> {
16283        support::token(&self.syntax, SyntaxKind::OIDS_KW)
16284    }
16285    #[inline]
16286    pub fn set_token(&self) -> Option<SyntaxToken> {
16287        support::token(&self.syntax, SyntaxKind::SET_KW)
16288    }
16289    #[inline]
16290    pub fn without_token(&self) -> Option<SyntaxToken> {
16291        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
16292    }
16293}
16294
16295#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16296pub struct Show {
16297    pub(crate) syntax: SyntaxNode,
16298}
16299impl Show {
16300    #[inline]
16301    pub fn show_token(&self) -> Option<SyntaxToken> {
16302        support::token(&self.syntax, SyntaxKind::SHOW_KW)
16303    }
16304}
16305
16306#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16307pub struct SimilarTo {
16308    pub(crate) syntax: SyntaxNode,
16309}
16310impl SimilarTo {
16311    #[inline]
16312    pub fn similar_token(&self) -> Option<SyntaxToken> {
16313        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16314    }
16315    #[inline]
16316    pub fn to_token(&self) -> Option<SyntaxToken> {
16317        support::token(&self.syntax, SyntaxKind::TO_KW)
16318    }
16319}
16320
16321#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16322pub struct SliceExpr {
16323    pub(crate) syntax: SyntaxNode,
16324}
16325impl SliceExpr {
16326    #[inline]
16327    pub fn l_brack_token(&self) -> Option<SyntaxToken> {
16328        support::token(&self.syntax, SyntaxKind::L_BRACK)
16329    }
16330    #[inline]
16331    pub fn r_brack_token(&self) -> Option<SyntaxToken> {
16332        support::token(&self.syntax, SyntaxKind::R_BRACK)
16333    }
16334    #[inline]
16335    pub fn colon_token(&self) -> Option<SyntaxToken> {
16336        support::token(&self.syntax, SyntaxKind::COLON)
16337    }
16338}
16339
16340#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16341pub struct SomeFn {
16342    pub(crate) syntax: SyntaxNode,
16343}
16344impl SomeFn {
16345    #[inline]
16346    pub fn expr(&self) -> Option<Expr> {
16347        support::child(&self.syntax)
16348    }
16349    #[inline]
16350    pub fn select_variant(&self) -> Option<SelectVariant> {
16351        support::child(&self.syntax)
16352    }
16353    #[inline]
16354    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16355        support::token(&self.syntax, SyntaxKind::L_PAREN)
16356    }
16357    #[inline]
16358    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16359        support::token(&self.syntax, SyntaxKind::R_PAREN)
16360    }
16361    #[inline]
16362    pub fn some_token(&self) -> Option<SyntaxToken> {
16363        support::token(&self.syntax, SyntaxKind::SOME_KW)
16364    }
16365}
16366
16367#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16368pub struct SortAsc {
16369    pub(crate) syntax: SyntaxNode,
16370}
16371impl SortAsc {
16372    #[inline]
16373    pub fn asc_token(&self) -> Option<SyntaxToken> {
16374        support::token(&self.syntax, SyntaxKind::ASC_KW)
16375    }
16376}
16377
16378#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16379pub struct SortBy {
16380    pub(crate) syntax: SyntaxNode,
16381}
16382impl SortBy {
16383    #[inline]
16384    pub fn expr(&self) -> Option<Expr> {
16385        support::child(&self.syntax)
16386    }
16387    #[inline]
16388    pub fn nulls_first(&self) -> Option<NullsFirst> {
16389        support::child(&self.syntax)
16390    }
16391    #[inline]
16392    pub fn nulls_last(&self) -> Option<NullsLast> {
16393        support::child(&self.syntax)
16394    }
16395    #[inline]
16396    pub fn sort_asc(&self) -> Option<SortAsc> {
16397        support::child(&self.syntax)
16398    }
16399    #[inline]
16400    pub fn sort_desc(&self) -> Option<SortDesc> {
16401        support::child(&self.syntax)
16402    }
16403    #[inline]
16404    pub fn sort_using(&self) -> Option<SortUsing> {
16405        support::child(&self.syntax)
16406    }
16407}
16408
16409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16410pub struct SortByList {
16411    pub(crate) syntax: SyntaxNode,
16412}
16413impl SortByList {
16414    #[inline]
16415    pub fn sort_bys(&self) -> AstChildren<SortBy> {
16416        support::children(&self.syntax)
16417    }
16418}
16419
16420#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16421pub struct SortDesc {
16422    pub(crate) syntax: SyntaxNode,
16423}
16424impl SortDesc {
16425    #[inline]
16426    pub fn desc_token(&self) -> Option<SyntaxToken> {
16427        support::token(&self.syntax, SyntaxKind::DESC_KW)
16428    }
16429}
16430
16431#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16432pub struct SortUsing {
16433    pub(crate) syntax: SyntaxNode,
16434}
16435impl SortUsing {
16436    #[inline]
16437    pub fn op(&self) -> Option<Op> {
16438        support::child(&self.syntax)
16439    }
16440    #[inline]
16441    pub fn using_token(&self) -> Option<SyntaxToken> {
16442        support::token(&self.syntax, SyntaxKind::USING_KW)
16443    }
16444}
16445
16446#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16447pub struct SourceFile {
16448    pub(crate) syntax: SyntaxNode,
16449}
16450impl SourceFile {
16451    #[inline]
16452    pub fn stmts(&self) -> AstChildren<Stmt> {
16453        support::children(&self.syntax)
16454    }
16455}
16456
16457#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16458pub struct SourceVertexTable {
16459    pub(crate) syntax: SyntaxNode,
16460}
16461impl SourceVertexTable {
16462    #[inline]
16463    pub fn column_list(&self) -> Option<ColumnList> {
16464        support::child(&self.syntax)
16465    }
16466    #[inline]
16467    pub fn name_ref(&self) -> Option<NameRef> {
16468        support::child(&self.syntax)
16469    }
16470    #[inline]
16471    pub fn references_table(&self) -> Option<ReferencesTable> {
16472        support::child(&self.syntax)
16473    }
16474    #[inline]
16475    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16476        support::token(&self.syntax, SyntaxKind::L_PAREN)
16477    }
16478    #[inline]
16479    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16480        support::token(&self.syntax, SyntaxKind::R_PAREN)
16481    }
16482    #[inline]
16483    pub fn key_token(&self) -> Option<SyntaxToken> {
16484        support::token(&self.syntax, SyntaxKind::KEY_KW)
16485    }
16486    #[inline]
16487    pub fn source_token(&self) -> Option<SyntaxToken> {
16488        support::token(&self.syntax, SyntaxKind::SOURCE_KW)
16489    }
16490}
16491
16492#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16493pub struct SplitPartition {
16494    pub(crate) syntax: SyntaxNode,
16495}
16496impl SplitPartition {
16497    #[inline]
16498    pub fn partition_list(&self) -> Option<PartitionList> {
16499        support::child(&self.syntax)
16500    }
16501    #[inline]
16502    pub fn into_token(&self) -> Option<SyntaxToken> {
16503        support::token(&self.syntax, SyntaxKind::INTO_KW)
16504    }
16505    #[inline]
16506    pub fn partition_token(&self) -> Option<SyntaxToken> {
16507        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
16508    }
16509    #[inline]
16510    pub fn split_token(&self) -> Option<SyntaxToken> {
16511        support::token(&self.syntax, SyntaxKind::SPLIT_KW)
16512    }
16513}
16514
16515#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16516pub struct Storage {
16517    pub(crate) syntax: SyntaxNode,
16518}
16519impl Storage {
16520    #[inline]
16521    pub fn default_token(&self) -> Option<SyntaxToken> {
16522        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
16523    }
16524    #[inline]
16525    pub fn external_token(&self) -> Option<SyntaxToken> {
16526        support::token(&self.syntax, SyntaxKind::EXTERNAL_KW)
16527    }
16528    #[inline]
16529    pub fn ident_token(&self) -> Option<SyntaxToken> {
16530        support::token(&self.syntax, SyntaxKind::IDENT)
16531    }
16532    #[inline]
16533    pub fn storage_token(&self) -> Option<SyntaxToken> {
16534        support::token(&self.syntax, SyntaxKind::STORAGE_KW)
16535    }
16536}
16537
16538#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16539pub struct StrictFuncOption {
16540    pub(crate) syntax: SyntaxNode,
16541}
16542impl StrictFuncOption {
16543    #[inline]
16544    pub fn called_token(&self) -> Option<SyntaxToken> {
16545        support::token(&self.syntax, SyntaxKind::CALLED_KW)
16546    }
16547    #[inline]
16548    pub fn input_token(&self) -> Option<SyntaxToken> {
16549        support::token(&self.syntax, SyntaxKind::INPUT_KW)
16550    }
16551    #[inline]
16552    pub fn null_token(&self) -> Option<SyntaxToken> {
16553        support::token(&self.syntax, SyntaxKind::NULL_KW)
16554    }
16555    #[inline]
16556    pub fn on_token(&self) -> Option<SyntaxToken> {
16557        support::token(&self.syntax, SyntaxKind::ON_KW)
16558    }
16559    #[inline]
16560    pub fn returns_token(&self) -> Option<SyntaxToken> {
16561        support::token(&self.syntax, SyntaxKind::RETURNS_KW)
16562    }
16563    #[inline]
16564    pub fn strict_token(&self) -> Option<SyntaxToken> {
16565        support::token(&self.syntax, SyntaxKind::STRICT_KW)
16566    }
16567}
16568
16569#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16570pub struct SubstringFn {
16571    pub(crate) syntax: SyntaxNode,
16572}
16573impl SubstringFn {
16574    #[inline]
16575    pub fn expr(&self) -> Option<Expr> {
16576        support::child(&self.syntax)
16577    }
16578    #[inline]
16579    pub fn exprs(&self) -> AstChildren<Expr> {
16580        support::children(&self.syntax)
16581    }
16582    #[inline]
16583    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16584        support::token(&self.syntax, SyntaxKind::L_PAREN)
16585    }
16586    #[inline]
16587    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16588        support::token(&self.syntax, SyntaxKind::R_PAREN)
16589    }
16590    #[inline]
16591    pub fn escape_token(&self) -> Option<SyntaxToken> {
16592        support::token(&self.syntax, SyntaxKind::ESCAPE_KW)
16593    }
16594    #[inline]
16595    pub fn for_token(&self) -> Option<SyntaxToken> {
16596        support::token(&self.syntax, SyntaxKind::FOR_KW)
16597    }
16598    #[inline]
16599    pub fn from_token(&self) -> Option<SyntaxToken> {
16600        support::token(&self.syntax, SyntaxKind::FROM_KW)
16601    }
16602    #[inline]
16603    pub fn similar_token(&self) -> Option<SyntaxToken> {
16604        support::token(&self.syntax, SyntaxKind::SIMILAR_KW)
16605    }
16606    #[inline]
16607    pub fn substring_token(&self) -> Option<SyntaxToken> {
16608        support::token(&self.syntax, SyntaxKind::SUBSTRING_KW)
16609    }
16610}
16611
16612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16613pub struct SupportFuncOption {
16614    pub(crate) syntax: SyntaxNode,
16615}
16616impl SupportFuncOption {
16617    #[inline]
16618    pub fn support_token(&self) -> Option<SyntaxToken> {
16619        support::token(&self.syntax, SyntaxKind::SUPPORT_KW)
16620    }
16621}
16622
16623#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16624pub struct Table {
16625    pub(crate) syntax: SyntaxNode,
16626}
16627impl Table {
16628    #[inline]
16629    pub fn relation_name(&self) -> Option<RelationName> {
16630        support::child(&self.syntax)
16631    }
16632    #[inline]
16633    pub fn with_clause(&self) -> Option<WithClause> {
16634        support::child(&self.syntax)
16635    }
16636    #[inline]
16637    pub fn table_token(&self) -> Option<SyntaxToken> {
16638        support::token(&self.syntax, SyntaxKind::TABLE_KW)
16639    }
16640}
16641
16642#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16643pub struct TableAndColumns {
16644    pub(crate) syntax: SyntaxNode,
16645}
16646impl TableAndColumns {
16647    #[inline]
16648    pub fn column_list(&self) -> Option<ColumnList> {
16649        support::child(&self.syntax)
16650    }
16651    #[inline]
16652    pub fn relation_name(&self) -> Option<RelationName> {
16653        support::child(&self.syntax)
16654    }
16655}
16656
16657#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16658pub struct TableAndColumnsList {
16659    pub(crate) syntax: SyntaxNode,
16660}
16661impl TableAndColumnsList {
16662    #[inline]
16663    pub fn table_and_columnss(&self) -> AstChildren<TableAndColumns> {
16664        support::children(&self.syntax)
16665    }
16666}
16667
16668#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16669pub struct TableArgList {
16670    pub(crate) syntax: SyntaxNode,
16671}
16672impl TableArgList {
16673    #[inline]
16674    pub fn args(&self) -> AstChildren<TableArg> {
16675        support::children(&self.syntax)
16676    }
16677    #[inline]
16678    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16679        support::token(&self.syntax, SyntaxKind::L_PAREN)
16680    }
16681    #[inline]
16682    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16683        support::token(&self.syntax, SyntaxKind::R_PAREN)
16684    }
16685}
16686
16687#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16688pub struct TableList {
16689    pub(crate) syntax: SyntaxNode,
16690}
16691impl TableList {
16692    #[inline]
16693    pub fn relation_names(&self) -> AstChildren<RelationName> {
16694        support::children(&self.syntax)
16695    }
16696}
16697
16698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16699pub struct TablesampleClause {
16700    pub(crate) syntax: SyntaxNode,
16701}
16702impl TablesampleClause {
16703    #[inline]
16704    pub fn call_expr(&self) -> Option<CallExpr> {
16705        support::child(&self.syntax)
16706    }
16707    #[inline]
16708    pub fn repeatable_clause(&self) -> Option<RepeatableClause> {
16709        support::child(&self.syntax)
16710    }
16711    #[inline]
16712    pub fn tablesample_token(&self) -> Option<SyntaxToken> {
16713        support::token(&self.syntax, SyntaxKind::TABLESAMPLE_KW)
16714    }
16715}
16716
16717#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16718pub struct Tablespace {
16719    pub(crate) syntax: SyntaxNode,
16720}
16721impl Tablespace {
16722    #[inline]
16723    pub fn name_ref(&self) -> Option<NameRef> {
16724        support::child(&self.syntax)
16725    }
16726    #[inline]
16727    pub fn tablespace_token(&self) -> Option<SyntaxToken> {
16728        support::token(&self.syntax, SyntaxKind::TABLESPACE_KW)
16729    }
16730}
16731
16732#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16733pub struct Target {
16734    pub(crate) syntax: SyntaxNode,
16735}
16736impl Target {
16737    #[inline]
16738    pub fn as_name(&self) -> Option<AsName> {
16739        support::child(&self.syntax)
16740    }
16741    #[inline]
16742    pub fn expr(&self) -> Option<Expr> {
16743        support::child(&self.syntax)
16744    }
16745    #[inline]
16746    pub fn star_token(&self) -> Option<SyntaxToken> {
16747        support::token(&self.syntax, SyntaxKind::STAR)
16748    }
16749}
16750
16751#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16752pub struct TargetList {
16753    pub(crate) syntax: SyntaxNode,
16754}
16755impl TargetList {
16756    #[inline]
16757    pub fn targets(&self) -> AstChildren<Target> {
16758        support::children(&self.syntax)
16759    }
16760}
16761
16762#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16763pub struct Temp {
16764    pub(crate) syntax: SyntaxNode,
16765}
16766impl Temp {
16767    #[inline]
16768    pub fn global_token(&self) -> Option<SyntaxToken> {
16769        support::token(&self.syntax, SyntaxKind::GLOBAL_KW)
16770    }
16771    #[inline]
16772    pub fn local_token(&self) -> Option<SyntaxToken> {
16773        support::token(&self.syntax, SyntaxKind::LOCAL_KW)
16774    }
16775    #[inline]
16776    pub fn temp_token(&self) -> Option<SyntaxToken> {
16777        support::token(&self.syntax, SyntaxKind::TEMP_KW)
16778    }
16779    #[inline]
16780    pub fn temporary_token(&self) -> Option<SyntaxToken> {
16781        support::token(&self.syntax, SyntaxKind::TEMPORARY_KW)
16782    }
16783}
16784
16785#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16786pub struct TimeType {
16787    pub(crate) syntax: SyntaxNode,
16788}
16789impl TimeType {
16790    #[inline]
16791    pub fn literal(&self) -> Option<Literal> {
16792        support::child(&self.syntax)
16793    }
16794    #[inline]
16795    pub fn timezone(&self) -> Option<Timezone> {
16796        support::child(&self.syntax)
16797    }
16798    #[inline]
16799    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16800        support::token(&self.syntax, SyntaxKind::L_PAREN)
16801    }
16802    #[inline]
16803    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16804        support::token(&self.syntax, SyntaxKind::R_PAREN)
16805    }
16806    #[inline]
16807    pub fn setof_token(&self) -> Option<SyntaxToken> {
16808        support::token(&self.syntax, SyntaxKind::SETOF_KW)
16809    }
16810    #[inline]
16811    pub fn time_token(&self) -> Option<SyntaxToken> {
16812        support::token(&self.syntax, SyntaxKind::TIME_KW)
16813    }
16814    #[inline]
16815    pub fn timestamp_token(&self) -> Option<SyntaxToken> {
16816        support::token(&self.syntax, SyntaxKind::TIMESTAMP_KW)
16817    }
16818}
16819
16820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16821pub struct Timing {
16822    pub(crate) syntax: SyntaxNode,
16823}
16824impl Timing {
16825    #[inline]
16826    pub fn after_token(&self) -> Option<SyntaxToken> {
16827        support::token(&self.syntax, SyntaxKind::AFTER_KW)
16828    }
16829    #[inline]
16830    pub fn before_token(&self) -> Option<SyntaxToken> {
16831        support::token(&self.syntax, SyntaxKind::BEFORE_KW)
16832    }
16833    #[inline]
16834    pub fn instead_token(&self) -> Option<SyntaxToken> {
16835        support::token(&self.syntax, SyntaxKind::INSTEAD_KW)
16836    }
16837    #[inline]
16838    pub fn of_token(&self) -> Option<SyntaxToken> {
16839        support::token(&self.syntax, SyntaxKind::OF_KW)
16840    }
16841}
16842
16843#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16844pub struct TransactionModeList {
16845    pub(crate) syntax: SyntaxNode,
16846}
16847impl TransactionModeList {
16848    #[inline]
16849    pub fn transaction_modes(&self) -> AstChildren<TransactionMode> {
16850        support::children(&self.syntax)
16851    }
16852}
16853
16854#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16855pub struct TransformFromFunc {
16856    pub(crate) syntax: SyntaxNode,
16857}
16858impl TransformFromFunc {
16859    #[inline]
16860    pub fn function_sig(&self) -> Option<FunctionSig> {
16861        support::child(&self.syntax)
16862    }
16863    #[inline]
16864    pub fn from_token(&self) -> Option<SyntaxToken> {
16865        support::token(&self.syntax, SyntaxKind::FROM_KW)
16866    }
16867    #[inline]
16868    pub fn function_token(&self) -> Option<SyntaxToken> {
16869        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16870    }
16871    #[inline]
16872    pub fn sql_token(&self) -> Option<SyntaxToken> {
16873        support::token(&self.syntax, SyntaxKind::SQL_KW)
16874    }
16875    #[inline]
16876    pub fn with_token(&self) -> Option<SyntaxToken> {
16877        support::token(&self.syntax, SyntaxKind::WITH_KW)
16878    }
16879}
16880
16881#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16882pub struct TransformFuncOption {
16883    pub(crate) syntax: SyntaxNode,
16884}
16885impl TransformFuncOption {
16886    #[inline]
16887    pub fn transform_token(&self) -> Option<SyntaxToken> {
16888        support::token(&self.syntax, SyntaxKind::TRANSFORM_KW)
16889    }
16890}
16891
16892#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16893pub struct TransformToFunc {
16894    pub(crate) syntax: SyntaxNode,
16895}
16896impl TransformToFunc {
16897    #[inline]
16898    pub fn function_sig(&self) -> Option<FunctionSig> {
16899        support::child(&self.syntax)
16900    }
16901    #[inline]
16902    pub fn function_token(&self) -> Option<SyntaxToken> {
16903        support::token(&self.syntax, SyntaxKind::FUNCTION_KW)
16904    }
16905    #[inline]
16906    pub fn sql_token(&self) -> Option<SyntaxToken> {
16907        support::token(&self.syntax, SyntaxKind::SQL_KW)
16908    }
16909    #[inline]
16910    pub fn to_token(&self) -> Option<SyntaxToken> {
16911        support::token(&self.syntax, SyntaxKind::TO_KW)
16912    }
16913    #[inline]
16914    pub fn with_token(&self) -> Option<SyntaxToken> {
16915        support::token(&self.syntax, SyntaxKind::WITH_KW)
16916    }
16917}
16918
16919#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16920pub struct TriggerEvent {
16921    pub(crate) syntax: SyntaxNode,
16922}
16923impl TriggerEvent {
16924    #[inline]
16925    pub fn trigger_event_update(&self) -> Option<TriggerEventUpdate> {
16926        support::child(&self.syntax)
16927    }
16928    #[inline]
16929    pub fn delete_token(&self) -> Option<SyntaxToken> {
16930        support::token(&self.syntax, SyntaxKind::DELETE_KW)
16931    }
16932    #[inline]
16933    pub fn insert_token(&self) -> Option<SyntaxToken> {
16934        support::token(&self.syntax, SyntaxKind::INSERT_KW)
16935    }
16936    #[inline]
16937    pub fn truncate_token(&self) -> Option<SyntaxToken> {
16938        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
16939    }
16940}
16941
16942#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16943pub struct TriggerEventList {
16944    pub(crate) syntax: SyntaxNode,
16945}
16946impl TriggerEventList {
16947    #[inline]
16948    pub fn trigger_events(&self) -> AstChildren<TriggerEvent> {
16949        support::children(&self.syntax)
16950    }
16951}
16952
16953#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16954pub struct TriggerEventUpdate {
16955    pub(crate) syntax: SyntaxNode,
16956}
16957impl TriggerEventUpdate {
16958    #[inline]
16959    pub fn name_refs(&self) -> AstChildren<NameRef> {
16960        support::children(&self.syntax)
16961    }
16962    #[inline]
16963    pub fn of_token(&self) -> Option<SyntaxToken> {
16964        support::token(&self.syntax, SyntaxKind::OF_KW)
16965    }
16966    #[inline]
16967    pub fn update_token(&self) -> Option<SyntaxToken> {
16968        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
16969    }
16970}
16971
16972#[derive(Debug, Clone, PartialEq, Eq, Hash)]
16973pub struct TrimFn {
16974    pub(crate) syntax: SyntaxNode,
16975}
16976impl TrimFn {
16977    #[inline]
16978    pub fn expr(&self) -> Option<Expr> {
16979        support::child(&self.syntax)
16980    }
16981    #[inline]
16982    pub fn exprs(&self) -> AstChildren<Expr> {
16983        support::children(&self.syntax)
16984    }
16985    #[inline]
16986    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
16987        support::token(&self.syntax, SyntaxKind::L_PAREN)
16988    }
16989    #[inline]
16990    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
16991        support::token(&self.syntax, SyntaxKind::R_PAREN)
16992    }
16993    #[inline]
16994    pub fn both_token(&self) -> Option<SyntaxToken> {
16995        support::token(&self.syntax, SyntaxKind::BOTH_KW)
16996    }
16997    #[inline]
16998    pub fn from_token(&self) -> Option<SyntaxToken> {
16999        support::token(&self.syntax, SyntaxKind::FROM_KW)
17000    }
17001    #[inline]
17002    pub fn leading_token(&self) -> Option<SyntaxToken> {
17003        support::token(&self.syntax, SyntaxKind::LEADING_KW)
17004    }
17005    #[inline]
17006    pub fn trailing_token(&self) -> Option<SyntaxToken> {
17007        support::token(&self.syntax, SyntaxKind::TRAILING_KW)
17008    }
17009    #[inline]
17010    pub fn trim_token(&self) -> Option<SyntaxToken> {
17011        support::token(&self.syntax, SyntaxKind::TRIM_KW)
17012    }
17013}
17014
17015#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17016pub struct Truncate {
17017    pub(crate) syntax: SyntaxNode,
17018}
17019impl Truncate {
17020    #[inline]
17021    pub fn table_list(&self) -> Option<TableList> {
17022        support::child(&self.syntax)
17023    }
17024    #[inline]
17025    pub fn cascade_token(&self) -> Option<SyntaxToken> {
17026        support::token(&self.syntax, SyntaxKind::CASCADE_KW)
17027    }
17028    #[inline]
17029    pub fn continue_token(&self) -> Option<SyntaxToken> {
17030        support::token(&self.syntax, SyntaxKind::CONTINUE_KW)
17031    }
17032    #[inline]
17033    pub fn identity_token(&self) -> Option<SyntaxToken> {
17034        support::token(&self.syntax, SyntaxKind::IDENTITY_KW)
17035    }
17036    #[inline]
17037    pub fn restart_token(&self) -> Option<SyntaxToken> {
17038        support::token(&self.syntax, SyntaxKind::RESTART_KW)
17039    }
17040    #[inline]
17041    pub fn restrict_token(&self) -> Option<SyntaxToken> {
17042        support::token(&self.syntax, SyntaxKind::RESTRICT_KW)
17043    }
17044    #[inline]
17045    pub fn table_token(&self) -> Option<SyntaxToken> {
17046        support::token(&self.syntax, SyntaxKind::TABLE_KW)
17047    }
17048    #[inline]
17049    pub fn truncate_token(&self) -> Option<SyntaxToken> {
17050        support::token(&self.syntax, SyntaxKind::TRUNCATE_KW)
17051    }
17052}
17053
17054#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17055pub struct TupleExpr {
17056    pub(crate) syntax: SyntaxNode,
17057}
17058impl TupleExpr {
17059    #[inline]
17060    pub fn exprs(&self) -> AstChildren<Expr> {
17061        support::children(&self.syntax)
17062    }
17063    #[inline]
17064    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17065        support::token(&self.syntax, SyntaxKind::L_PAREN)
17066    }
17067    #[inline]
17068    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17069        support::token(&self.syntax, SyntaxKind::R_PAREN)
17070    }
17071}
17072
17073#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17074pub struct UnicodeNormalForm {
17075    pub(crate) syntax: SyntaxNode,
17076}
17077impl UnicodeNormalForm {
17078    #[inline]
17079    pub fn nfc_token(&self) -> Option<SyntaxToken> {
17080        support::token(&self.syntax, SyntaxKind::NFC_KW)
17081    }
17082    #[inline]
17083    pub fn nfd_token(&self) -> Option<SyntaxToken> {
17084        support::token(&self.syntax, SyntaxKind::NFD_KW)
17085    }
17086    #[inline]
17087    pub fn nfkc_token(&self) -> Option<SyntaxToken> {
17088        support::token(&self.syntax, SyntaxKind::NFKC_KW)
17089    }
17090    #[inline]
17091    pub fn nfkd_token(&self) -> Option<SyntaxToken> {
17092        support::token(&self.syntax, SyntaxKind::NFKD_KW)
17093    }
17094}
17095
17096#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17097pub struct UniqueConstraint {
17098    pub(crate) syntax: SyntaxNode,
17099}
17100impl UniqueConstraint {
17101    #[inline]
17102    pub fn column_list(&self) -> Option<ColumnList> {
17103        support::child(&self.syntax)
17104    }
17105    #[inline]
17106    pub fn constraint_name(&self) -> Option<ConstraintName> {
17107        support::child(&self.syntax)
17108    }
17109    #[inline]
17110    pub fn nulls_distinct(&self) -> Option<NullsDistinct> {
17111        support::child(&self.syntax)
17112    }
17113    #[inline]
17114    pub fn nulls_not_distinct(&self) -> Option<NullsNotDistinct> {
17115        support::child(&self.syntax)
17116    }
17117    #[inline]
17118    pub fn using_index(&self) -> Option<UsingIndex> {
17119        support::child(&self.syntax)
17120    }
17121    #[inline]
17122    pub fn unique_token(&self) -> Option<SyntaxToken> {
17123        support::token(&self.syntax, SyntaxKind::UNIQUE_KW)
17124    }
17125}
17126
17127#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17128pub struct Unlisten {
17129    pub(crate) syntax: SyntaxNode,
17130}
17131impl Unlisten {
17132    #[inline]
17133    pub fn name_ref(&self) -> Option<NameRef> {
17134        support::child(&self.syntax)
17135    }
17136    #[inline]
17137    pub fn star_token(&self) -> Option<SyntaxToken> {
17138        support::token(&self.syntax, SyntaxKind::STAR)
17139    }
17140    #[inline]
17141    pub fn unlisten_token(&self) -> Option<SyntaxToken> {
17142        support::token(&self.syntax, SyntaxKind::UNLISTEN_KW)
17143    }
17144}
17145
17146#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17147pub struct Unlogged {
17148    pub(crate) syntax: SyntaxNode,
17149}
17150impl Unlogged {
17151    #[inline]
17152    pub fn unlogged_token(&self) -> Option<SyntaxToken> {
17153        support::token(&self.syntax, SyntaxKind::UNLOGGED_KW)
17154    }
17155}
17156
17157#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17158pub struct Update {
17159    pub(crate) syntax: SyntaxNode,
17160}
17161impl Update {
17162    #[inline]
17163    pub fn alias(&self) -> Option<Alias> {
17164        support::child(&self.syntax)
17165    }
17166    #[inline]
17167    pub fn for_portion_of(&self) -> Option<ForPortionOf> {
17168        support::child(&self.syntax)
17169    }
17170    #[inline]
17171    pub fn from_clause(&self) -> Option<FromClause> {
17172        support::child(&self.syntax)
17173    }
17174    #[inline]
17175    pub fn relation_name(&self) -> Option<RelationName> {
17176        support::child(&self.syntax)
17177    }
17178    #[inline]
17179    pub fn returning_clause(&self) -> Option<ReturningClause> {
17180        support::child(&self.syntax)
17181    }
17182    #[inline]
17183    pub fn set_clause(&self) -> Option<SetClause> {
17184        support::child(&self.syntax)
17185    }
17186    #[inline]
17187    pub fn where_clause(&self) -> Option<WhereClause> {
17188        support::child(&self.syntax)
17189    }
17190    #[inline]
17191    pub fn with_clause(&self) -> Option<WithClause> {
17192        support::child(&self.syntax)
17193    }
17194    #[inline]
17195    pub fn update_token(&self) -> Option<SyntaxToken> {
17196        support::token(&self.syntax, SyntaxKind::UPDATE_KW)
17197    }
17198}
17199
17200#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17201pub struct UsingClause {
17202    pub(crate) syntax: SyntaxNode,
17203}
17204impl UsingClause {
17205    #[inline]
17206    pub fn from_items(&self) -> AstChildren<FromItem> {
17207        support::children(&self.syntax)
17208    }
17209    #[inline]
17210    pub fn using_token(&self) -> Option<SyntaxToken> {
17211        support::token(&self.syntax, SyntaxKind::USING_KW)
17212    }
17213}
17214
17215#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17216pub struct UsingExprClause {
17217    pub(crate) syntax: SyntaxNode,
17218}
17219impl UsingExprClause {
17220    #[inline]
17221    pub fn expr(&self) -> Option<Expr> {
17222        support::child(&self.syntax)
17223    }
17224    #[inline]
17225    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17226        support::token(&self.syntax, SyntaxKind::L_PAREN)
17227    }
17228    #[inline]
17229    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17230        support::token(&self.syntax, SyntaxKind::R_PAREN)
17231    }
17232    #[inline]
17233    pub fn using_token(&self) -> Option<SyntaxToken> {
17234        support::token(&self.syntax, SyntaxKind::USING_KW)
17235    }
17236}
17237
17238#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17239pub struct UsingIndex {
17240    pub(crate) syntax: SyntaxNode,
17241}
17242impl UsingIndex {
17243    #[inline]
17244    pub fn name_ref(&self) -> Option<NameRef> {
17245        support::child(&self.syntax)
17246    }
17247    #[inline]
17248    pub fn index_token(&self) -> Option<SyntaxToken> {
17249        support::token(&self.syntax, SyntaxKind::INDEX_KW)
17250    }
17251    #[inline]
17252    pub fn using_token(&self) -> Option<SyntaxToken> {
17253        support::token(&self.syntax, SyntaxKind::USING_KW)
17254    }
17255}
17256
17257#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17258pub struct UsingMethod {
17259    pub(crate) syntax: SyntaxNode,
17260}
17261impl UsingMethod {
17262    #[inline]
17263    pub fn name_ref(&self) -> Option<NameRef> {
17264        support::child(&self.syntax)
17265    }
17266    #[inline]
17267    pub fn using_token(&self) -> Option<SyntaxToken> {
17268        support::token(&self.syntax, SyntaxKind::USING_KW)
17269    }
17270}
17271
17272#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17273pub struct UsingOnClause {
17274    pub(crate) syntax: SyntaxNode,
17275}
17276impl UsingOnClause {
17277    #[inline]
17278    pub fn from_item(&self) -> Option<FromItem> {
17279        support::child(&self.syntax)
17280    }
17281    #[inline]
17282    pub fn on_clause(&self) -> Option<OnClause> {
17283        support::child(&self.syntax)
17284    }
17285    #[inline]
17286    pub fn using_token(&self) -> Option<SyntaxToken> {
17287        support::token(&self.syntax, SyntaxKind::USING_KW)
17288    }
17289}
17290
17291#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17292pub struct Vacuum {
17293    pub(crate) syntax: SyntaxNode,
17294}
17295impl Vacuum {
17296    #[inline]
17297    pub fn table_and_columns_list(&self) -> Option<TableAndColumnsList> {
17298        support::child(&self.syntax)
17299    }
17300    #[inline]
17301    pub fn vacuum_option_list(&self) -> Option<VacuumOptionList> {
17302        support::child(&self.syntax)
17303    }
17304    #[inline]
17305    pub fn analyse_token(&self) -> Option<SyntaxToken> {
17306        support::token(&self.syntax, SyntaxKind::ANALYSE_KW)
17307    }
17308    #[inline]
17309    pub fn analyze_token(&self) -> Option<SyntaxToken> {
17310        support::token(&self.syntax, SyntaxKind::ANALYZE_KW)
17311    }
17312    #[inline]
17313    pub fn freeze_token(&self) -> Option<SyntaxToken> {
17314        support::token(&self.syntax, SyntaxKind::FREEZE_KW)
17315    }
17316    #[inline]
17317    pub fn full_token(&self) -> Option<SyntaxToken> {
17318        support::token(&self.syntax, SyntaxKind::FULL_KW)
17319    }
17320    #[inline]
17321    pub fn vacuum_token(&self) -> Option<SyntaxToken> {
17322        support::token(&self.syntax, SyntaxKind::VACUUM_KW)
17323    }
17324    #[inline]
17325    pub fn verbose_token(&self) -> Option<SyntaxToken> {
17326        support::token(&self.syntax, SyntaxKind::VERBOSE_KW)
17327    }
17328}
17329
17330#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17331pub struct VacuumOption {
17332    pub(crate) syntax: SyntaxNode,
17333}
17334impl VacuumOption {
17335    #[inline]
17336    pub fn literal(&self) -> Option<Literal> {
17337        support::child(&self.syntax)
17338    }
17339}
17340
17341#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17342pub struct VacuumOptionList {
17343    pub(crate) syntax: SyntaxNode,
17344}
17345impl VacuumOptionList {
17346    #[inline]
17347    pub fn vacuum_options(&self) -> AstChildren<VacuumOption> {
17348        support::children(&self.syntax)
17349    }
17350    #[inline]
17351    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17352        support::token(&self.syntax, SyntaxKind::L_PAREN)
17353    }
17354    #[inline]
17355    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17356        support::token(&self.syntax, SyntaxKind::R_PAREN)
17357    }
17358}
17359
17360#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17361pub struct ValidateConstraint {
17362    pub(crate) syntax: SyntaxNode,
17363}
17364impl ValidateConstraint {
17365    #[inline]
17366    pub fn name_ref(&self) -> Option<NameRef> {
17367        support::child(&self.syntax)
17368    }
17369    #[inline]
17370    pub fn constraint_token(&self) -> Option<SyntaxToken> {
17371        support::token(&self.syntax, SyntaxKind::CONSTRAINT_KW)
17372    }
17373    #[inline]
17374    pub fn validate_token(&self) -> Option<SyntaxToken> {
17375        support::token(&self.syntax, SyntaxKind::VALIDATE_KW)
17376    }
17377}
17378
17379#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17380pub struct Values {
17381    pub(crate) syntax: SyntaxNode,
17382}
17383impl Values {
17384    #[inline]
17385    pub fn row_list(&self) -> Option<RowList> {
17386        support::child(&self.syntax)
17387    }
17388    #[inline]
17389    pub fn with_clause(&self) -> Option<WithClause> {
17390        support::child(&self.syntax)
17391    }
17392    #[inline]
17393    pub fn values_token(&self) -> Option<SyntaxToken> {
17394        support::token(&self.syntax, SyntaxKind::VALUES_KW)
17395    }
17396}
17397
17398#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17399pub struct Variant {
17400    pub(crate) syntax: SyntaxNode,
17401}
17402impl Variant {
17403    #[inline]
17404    pub fn literal(&self) -> Option<Literal> {
17405        support::child(&self.syntax)
17406    }
17407}
17408
17409#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17410pub struct VariantList {
17411    pub(crate) syntax: SyntaxNode,
17412}
17413impl VariantList {
17414    #[inline]
17415    pub fn variants(&self) -> AstChildren<Variant> {
17416        support::children(&self.syntax)
17417    }
17418    #[inline]
17419    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17420        support::token(&self.syntax, SyntaxKind::L_PAREN)
17421    }
17422    #[inline]
17423    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17424        support::token(&self.syntax, SyntaxKind::R_PAREN)
17425    }
17426}
17427
17428#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17429pub struct VertexPattern {
17430    pub(crate) syntax: SyntaxNode,
17431}
17432impl VertexPattern {
17433    #[inline]
17434    pub fn is_label(&self) -> Option<IsLabel> {
17435        support::child(&self.syntax)
17436    }
17437    #[inline]
17438    pub fn name(&self) -> Option<Name> {
17439        support::child(&self.syntax)
17440    }
17441    #[inline]
17442    pub fn where_clause(&self) -> Option<WhereClause> {
17443        support::child(&self.syntax)
17444    }
17445    #[inline]
17446    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17447        support::token(&self.syntax, SyntaxKind::L_PAREN)
17448    }
17449    #[inline]
17450    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17451        support::token(&self.syntax, SyntaxKind::R_PAREN)
17452    }
17453}
17454
17455#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17456pub struct VertexTableDef {
17457    pub(crate) syntax: SyntaxNode,
17458}
17459impl VertexTableDef {
17460    #[inline]
17461    pub fn column_list(&self) -> Option<ColumnList> {
17462        support::child(&self.syntax)
17463    }
17464    #[inline]
17465    pub fn element_table_label_and_properties(&self) -> Option<ElementTableLabelAndProperties> {
17466        support::child(&self.syntax)
17467    }
17468    #[inline]
17469    pub fn name(&self) -> Option<Name> {
17470        support::child(&self.syntax)
17471    }
17472    #[inline]
17473    pub fn path(&self) -> Option<Path> {
17474        support::child(&self.syntax)
17475    }
17476    #[inline]
17477    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17478        support::token(&self.syntax, SyntaxKind::L_PAREN)
17479    }
17480    #[inline]
17481    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17482        support::token(&self.syntax, SyntaxKind::R_PAREN)
17483    }
17484    #[inline]
17485    pub fn as_token(&self) -> Option<SyntaxToken> {
17486        support::token(&self.syntax, SyntaxKind::AS_KW)
17487    }
17488    #[inline]
17489    pub fn key_token(&self) -> Option<SyntaxToken> {
17490        support::token(&self.syntax, SyntaxKind::KEY_KW)
17491    }
17492}
17493
17494#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17495pub struct VertexTables {
17496    pub(crate) syntax: SyntaxNode,
17497}
17498impl VertexTables {
17499    #[inline]
17500    pub fn vertex_table_defs(&self) -> AstChildren<VertexTableDef> {
17501        support::children(&self.syntax)
17502    }
17503    #[inline]
17504    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17505        support::token(&self.syntax, SyntaxKind::L_PAREN)
17506    }
17507    #[inline]
17508    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17509        support::token(&self.syntax, SyntaxKind::R_PAREN)
17510    }
17511    #[inline]
17512    pub fn node_token(&self) -> Option<SyntaxToken> {
17513        support::token(&self.syntax, SyntaxKind::NODE_KW)
17514    }
17515    #[inline]
17516    pub fn tables_token(&self) -> Option<SyntaxToken> {
17517        support::token(&self.syntax, SyntaxKind::TABLES_KW)
17518    }
17519    #[inline]
17520    pub fn vertex_token(&self) -> Option<SyntaxToken> {
17521        support::token(&self.syntax, SyntaxKind::VERTEX_KW)
17522    }
17523}
17524
17525#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17526pub struct VolatilityFuncOption {
17527    pub(crate) syntax: SyntaxNode,
17528}
17529impl VolatilityFuncOption {
17530    #[inline]
17531    pub fn immutable_token(&self) -> Option<SyntaxToken> {
17532        support::token(&self.syntax, SyntaxKind::IMMUTABLE_KW)
17533    }
17534    #[inline]
17535    pub fn stable_token(&self) -> Option<SyntaxToken> {
17536        support::token(&self.syntax, SyntaxKind::STABLE_KW)
17537    }
17538    #[inline]
17539    pub fn volatile_token(&self) -> Option<SyntaxToken> {
17540        support::token(&self.syntax, SyntaxKind::VOLATILE_KW)
17541    }
17542}
17543
17544#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17545pub struct WhenClause {
17546    pub(crate) syntax: SyntaxNode,
17547}
17548impl WhenClause {
17549    #[inline]
17550    pub fn then_token(&self) -> Option<SyntaxToken> {
17551        support::token(&self.syntax, SyntaxKind::THEN_KW)
17552    }
17553    #[inline]
17554    pub fn when_token(&self) -> Option<SyntaxToken> {
17555        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17556    }
17557}
17558
17559#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17560pub struct WhenClauseList {
17561    pub(crate) syntax: SyntaxNode,
17562}
17563impl WhenClauseList {
17564    #[inline]
17565    pub fn when_clause(&self) -> Option<WhenClause> {
17566        support::child(&self.syntax)
17567    }
17568    #[inline]
17569    pub fn when_clauses(&self) -> AstChildren<WhenClause> {
17570        support::children(&self.syntax)
17571    }
17572}
17573
17574#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17575pub struct WhenCondition {
17576    pub(crate) syntax: SyntaxNode,
17577}
17578impl WhenCondition {
17579    #[inline]
17580    pub fn expr(&self) -> Option<Expr> {
17581        support::child(&self.syntax)
17582    }
17583    #[inline]
17584    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17585        support::token(&self.syntax, SyntaxKind::L_PAREN)
17586    }
17587    #[inline]
17588    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17589        support::token(&self.syntax, SyntaxKind::R_PAREN)
17590    }
17591    #[inline]
17592    pub fn when_token(&self) -> Option<SyntaxToken> {
17593        support::token(&self.syntax, SyntaxKind::WHEN_KW)
17594    }
17595}
17596
17597#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17598pub struct WhereClause {
17599    pub(crate) syntax: SyntaxNode,
17600}
17601impl WhereClause {
17602    #[inline]
17603    pub fn expr(&self) -> Option<Expr> {
17604        support::child(&self.syntax)
17605    }
17606    #[inline]
17607    pub fn where_token(&self) -> Option<SyntaxToken> {
17608        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17609    }
17610}
17611
17612#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17613pub struct WhereConditionClause {
17614    pub(crate) syntax: SyntaxNode,
17615}
17616impl WhereConditionClause {
17617    #[inline]
17618    pub fn expr(&self) -> Option<Expr> {
17619        support::child(&self.syntax)
17620    }
17621    #[inline]
17622    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17623        support::token(&self.syntax, SyntaxKind::L_PAREN)
17624    }
17625    #[inline]
17626    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17627        support::token(&self.syntax, SyntaxKind::R_PAREN)
17628    }
17629    #[inline]
17630    pub fn where_token(&self) -> Option<SyntaxToken> {
17631        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17632    }
17633}
17634
17635#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17636pub struct WhereCurrentOf {
17637    pub(crate) syntax: SyntaxNode,
17638}
17639impl WhereCurrentOf {
17640    #[inline]
17641    pub fn name_ref(&self) -> Option<NameRef> {
17642        support::child(&self.syntax)
17643    }
17644    #[inline]
17645    pub fn current_token(&self) -> Option<SyntaxToken> {
17646        support::token(&self.syntax, SyntaxKind::CURRENT_KW)
17647    }
17648    #[inline]
17649    pub fn of_token(&self) -> Option<SyntaxToken> {
17650        support::token(&self.syntax, SyntaxKind::OF_KW)
17651    }
17652    #[inline]
17653    pub fn where_token(&self) -> Option<SyntaxToken> {
17654        support::token(&self.syntax, SyntaxKind::WHERE_KW)
17655    }
17656}
17657
17658#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17659pub struct WindowClause {
17660    pub(crate) syntax: SyntaxNode,
17661}
17662impl WindowClause {
17663    #[inline]
17664    pub fn window_defs(&self) -> AstChildren<WindowDef> {
17665        support::children(&self.syntax)
17666    }
17667    #[inline]
17668    pub fn window_token(&self) -> Option<SyntaxToken> {
17669        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17670    }
17671}
17672
17673#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17674pub struct WindowDef {
17675    pub(crate) syntax: SyntaxNode,
17676}
17677impl WindowDef {
17678    #[inline]
17679    pub fn name(&self) -> Option<Name> {
17680        support::child(&self.syntax)
17681    }
17682    #[inline]
17683    pub fn window_spec(&self) -> Option<WindowSpec> {
17684        support::child(&self.syntax)
17685    }
17686    #[inline]
17687    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17688        support::token(&self.syntax, SyntaxKind::L_PAREN)
17689    }
17690    #[inline]
17691    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17692        support::token(&self.syntax, SyntaxKind::R_PAREN)
17693    }
17694    #[inline]
17695    pub fn as_token(&self) -> Option<SyntaxToken> {
17696        support::token(&self.syntax, SyntaxKind::AS_KW)
17697    }
17698}
17699
17700#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17701pub struct WindowFuncOption {
17702    pub(crate) syntax: SyntaxNode,
17703}
17704impl WindowFuncOption {
17705    #[inline]
17706    pub fn window_token(&self) -> Option<SyntaxToken> {
17707        support::token(&self.syntax, SyntaxKind::WINDOW_KW)
17708    }
17709}
17710
17711#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17712pub struct WindowSpec {
17713    pub(crate) syntax: SyntaxNode,
17714}
17715impl WindowSpec {
17716    #[inline]
17717    pub fn exprs(&self) -> AstChildren<Expr> {
17718        support::children(&self.syntax)
17719    }
17720    #[inline]
17721    pub fn frame_clause(&self) -> Option<FrameClause> {
17722        support::child(&self.syntax)
17723    }
17724    #[inline]
17725    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17726        support::child(&self.syntax)
17727    }
17728    #[inline]
17729    pub fn by_token(&self) -> Option<SyntaxToken> {
17730        support::token(&self.syntax, SyntaxKind::BY_KW)
17731    }
17732    #[inline]
17733    pub fn ident_token(&self) -> Option<SyntaxToken> {
17734        support::token(&self.syntax, SyntaxKind::IDENT)
17735    }
17736    #[inline]
17737    pub fn partition_token(&self) -> Option<SyntaxToken> {
17738        support::token(&self.syntax, SyntaxKind::PARTITION_KW)
17739    }
17740}
17741
17742#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17743pub struct WithCheckExprClause {
17744    pub(crate) syntax: SyntaxNode,
17745}
17746impl WithCheckExprClause {
17747    #[inline]
17748    pub fn expr(&self) -> Option<Expr> {
17749        support::child(&self.syntax)
17750    }
17751    #[inline]
17752    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17753        support::token(&self.syntax, SyntaxKind::L_PAREN)
17754    }
17755    #[inline]
17756    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17757        support::token(&self.syntax, SyntaxKind::R_PAREN)
17758    }
17759    #[inline]
17760    pub fn check_token(&self) -> Option<SyntaxToken> {
17761        support::token(&self.syntax, SyntaxKind::CHECK_KW)
17762    }
17763    #[inline]
17764    pub fn with_token(&self) -> Option<SyntaxToken> {
17765        support::token(&self.syntax, SyntaxKind::WITH_KW)
17766    }
17767}
17768
17769#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17770pub struct WithClause {
17771    pub(crate) syntax: SyntaxNode,
17772}
17773impl WithClause {
17774    #[inline]
17775    pub fn with_tables(&self) -> AstChildren<WithTable> {
17776        support::children(&self.syntax)
17777    }
17778    #[inline]
17779    pub fn recursive_token(&self) -> Option<SyntaxToken> {
17780        support::token(&self.syntax, SyntaxKind::RECURSIVE_KW)
17781    }
17782    #[inline]
17783    pub fn with_token(&self) -> Option<SyntaxToken> {
17784        support::token(&self.syntax, SyntaxKind::WITH_KW)
17785    }
17786}
17787
17788#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17789pub struct WithData {
17790    pub(crate) syntax: SyntaxNode,
17791}
17792impl WithData {
17793    #[inline]
17794    pub fn data_token(&self) -> Option<SyntaxToken> {
17795        support::token(&self.syntax, SyntaxKind::DATA_KW)
17796    }
17797    #[inline]
17798    pub fn with_token(&self) -> Option<SyntaxToken> {
17799        support::token(&self.syntax, SyntaxKind::WITH_KW)
17800    }
17801}
17802
17803#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17804pub struct WithNoData {
17805    pub(crate) syntax: SyntaxNode,
17806}
17807impl WithNoData {
17808    #[inline]
17809    pub fn data_token(&self) -> Option<SyntaxToken> {
17810        support::token(&self.syntax, SyntaxKind::DATA_KW)
17811    }
17812    #[inline]
17813    pub fn no_token(&self) -> Option<SyntaxToken> {
17814        support::token(&self.syntax, SyntaxKind::NO_KW)
17815    }
17816    #[inline]
17817    pub fn with_token(&self) -> Option<SyntaxToken> {
17818        support::token(&self.syntax, SyntaxKind::WITH_KW)
17819    }
17820}
17821
17822#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17823pub struct WithOptions {
17824    pub(crate) syntax: SyntaxNode,
17825}
17826impl WithOptions {
17827    #[inline]
17828    pub fn options_token(&self) -> Option<SyntaxToken> {
17829        support::token(&self.syntax, SyntaxKind::OPTIONS_KW)
17830    }
17831    #[inline]
17832    pub fn with_token(&self) -> Option<SyntaxToken> {
17833        support::token(&self.syntax, SyntaxKind::WITH_KW)
17834    }
17835}
17836
17837#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17838pub struct WithParams {
17839    pub(crate) syntax: SyntaxNode,
17840}
17841impl WithParams {
17842    #[inline]
17843    pub fn attribute_list(&self) -> Option<AttributeList> {
17844        support::child(&self.syntax)
17845    }
17846    #[inline]
17847    pub fn with_token(&self) -> Option<SyntaxToken> {
17848        support::token(&self.syntax, SyntaxKind::WITH_KW)
17849    }
17850}
17851
17852#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17853pub struct WithTable {
17854    pub(crate) syntax: SyntaxNode,
17855}
17856impl WithTable {
17857    #[inline]
17858    pub fn column_list(&self) -> Option<ColumnList> {
17859        support::child(&self.syntax)
17860    }
17861    #[inline]
17862    pub fn materialized(&self) -> Option<Materialized> {
17863        support::child(&self.syntax)
17864    }
17865    #[inline]
17866    pub fn name(&self) -> Option<Name> {
17867        support::child(&self.syntax)
17868    }
17869    #[inline]
17870    pub fn not_materialized(&self) -> Option<NotMaterialized> {
17871        support::child(&self.syntax)
17872    }
17873    #[inline]
17874    pub fn query(&self) -> Option<WithQuery> {
17875        support::child(&self.syntax)
17876    }
17877    #[inline]
17878    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17879        support::token(&self.syntax, SyntaxKind::L_PAREN)
17880    }
17881    #[inline]
17882    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17883        support::token(&self.syntax, SyntaxKind::R_PAREN)
17884    }
17885    #[inline]
17886    pub fn as_token(&self) -> Option<SyntaxToken> {
17887        support::token(&self.syntax, SyntaxKind::AS_KW)
17888    }
17889}
17890
17891#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17892pub struct WithTimezone {
17893    pub(crate) syntax: SyntaxNode,
17894}
17895impl WithTimezone {
17896    #[inline]
17897    pub fn time_token(&self) -> Option<SyntaxToken> {
17898        support::token(&self.syntax, SyntaxKind::TIME_KW)
17899    }
17900    #[inline]
17901    pub fn with_token(&self) -> Option<SyntaxToken> {
17902        support::token(&self.syntax, SyntaxKind::WITH_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 WithinClause {
17912    pub(crate) syntax: SyntaxNode,
17913}
17914impl WithinClause {
17915    #[inline]
17916    pub fn order_by_clause(&self) -> Option<OrderByClause> {
17917        support::child(&self.syntax)
17918    }
17919    #[inline]
17920    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
17921        support::token(&self.syntax, SyntaxKind::L_PAREN)
17922    }
17923    #[inline]
17924    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
17925        support::token(&self.syntax, SyntaxKind::R_PAREN)
17926    }
17927    #[inline]
17928    pub fn group_token(&self) -> Option<SyntaxToken> {
17929        support::token(&self.syntax, SyntaxKind::GROUP_KW)
17930    }
17931    #[inline]
17932    pub fn within_token(&self) -> Option<SyntaxToken> {
17933        support::token(&self.syntax, SyntaxKind::WITHIN_KW)
17934    }
17935}
17936
17937#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17938pub struct WithoutOids {
17939    pub(crate) syntax: SyntaxNode,
17940}
17941impl WithoutOids {
17942    #[inline]
17943    pub fn oids_token(&self) -> Option<SyntaxToken> {
17944        support::token(&self.syntax, SyntaxKind::OIDS_KW)
17945    }
17946    #[inline]
17947    pub fn without_token(&self) -> Option<SyntaxToken> {
17948        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17949    }
17950}
17951
17952#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17953pub struct WithoutTimezone {
17954    pub(crate) syntax: SyntaxNode,
17955}
17956impl WithoutTimezone {
17957    #[inline]
17958    pub fn time_token(&self) -> Option<SyntaxToken> {
17959        support::token(&self.syntax, SyntaxKind::TIME_KW)
17960    }
17961    #[inline]
17962    pub fn without_token(&self) -> Option<SyntaxToken> {
17963        support::token(&self.syntax, SyntaxKind::WITHOUT_KW)
17964    }
17965    #[inline]
17966    pub fn zone_token(&self) -> Option<SyntaxToken> {
17967        support::token(&self.syntax, SyntaxKind::ZONE_KW)
17968    }
17969}
17970
17971#[derive(Debug, Clone, PartialEq, Eq, Hash)]
17972pub struct XmlColumnOption {
17973    pub(crate) syntax: SyntaxNode,
17974}
17975impl XmlColumnOption {
17976    #[inline]
17977    pub fn expr(&self) -> Option<Expr> {
17978        support::child(&self.syntax)
17979    }
17980    #[inline]
17981    pub fn default_token(&self) -> Option<SyntaxToken> {
17982        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
17983    }
17984    #[inline]
17985    pub fn ident_token(&self) -> Option<SyntaxToken> {
17986        support::token(&self.syntax, SyntaxKind::IDENT)
17987    }
17988    #[inline]
17989    pub fn not_token(&self) -> Option<SyntaxToken> {
17990        support::token(&self.syntax, SyntaxKind::NOT_KW)
17991    }
17992    #[inline]
17993    pub fn null_token(&self) -> Option<SyntaxToken> {
17994        support::token(&self.syntax, SyntaxKind::NULL_KW)
17995    }
17996    #[inline]
17997    pub fn path_token(&self) -> Option<SyntaxToken> {
17998        support::token(&self.syntax, SyntaxKind::PATH_KW)
17999    }
18000}
18001
18002#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18003pub struct XmlColumnOptionList {
18004    pub(crate) syntax: SyntaxNode,
18005}
18006impl XmlColumnOptionList {
18007    #[inline]
18008    pub fn xml_column_option(&self) -> Option<XmlColumnOption> {
18009        support::child(&self.syntax)
18010    }
18011    #[inline]
18012    pub fn xml_column_options(&self) -> AstChildren<XmlColumnOption> {
18013        support::children(&self.syntax)
18014    }
18015}
18016
18017#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18018pub struct XmlElementFn {
18019    pub(crate) syntax: SyntaxNode,
18020}
18021impl XmlElementFn {
18022    #[inline]
18023    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18024        support::child(&self.syntax)
18025    }
18026    #[inline]
18027    pub fn exprs(&self) -> AstChildren<Expr> {
18028        support::children(&self.syntax)
18029    }
18030    #[inline]
18031    pub fn name(&self) -> Option<Name> {
18032        support::child(&self.syntax)
18033    }
18034    #[inline]
18035    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18036        support::token(&self.syntax, SyntaxKind::L_PAREN)
18037    }
18038    #[inline]
18039    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18040        support::token(&self.syntax, SyntaxKind::R_PAREN)
18041    }
18042    #[inline]
18043    pub fn comma_token(&self) -> Option<SyntaxToken> {
18044        support::token(&self.syntax, SyntaxKind::COMMA)
18045    }
18046    #[inline]
18047    pub fn name_token(&self) -> Option<SyntaxToken> {
18048        support::token(&self.syntax, SyntaxKind::NAME_KW)
18049    }
18050    #[inline]
18051    pub fn xmlattributes_token(&self) -> Option<SyntaxToken> {
18052        support::token(&self.syntax, SyntaxKind::XMLATTRIBUTES_KW)
18053    }
18054    #[inline]
18055    pub fn xmlelement_token(&self) -> Option<SyntaxToken> {
18056        support::token(&self.syntax, SyntaxKind::XMLELEMENT_KW)
18057    }
18058}
18059
18060#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18061pub struct XmlExistsFn {
18062    pub(crate) syntax: SyntaxNode,
18063}
18064impl XmlExistsFn {
18065    #[inline]
18066    pub fn expr(&self) -> Option<Expr> {
18067        support::child(&self.syntax)
18068    }
18069    #[inline]
18070    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18071        support::child(&self.syntax)
18072    }
18073    #[inline]
18074    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18075        support::token(&self.syntax, SyntaxKind::L_PAREN)
18076    }
18077    #[inline]
18078    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18079        support::token(&self.syntax, SyntaxKind::R_PAREN)
18080    }
18081    #[inline]
18082    pub fn passing_token(&self) -> Option<SyntaxToken> {
18083        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18084    }
18085    #[inline]
18086    pub fn xmlexists_token(&self) -> Option<SyntaxToken> {
18087        support::token(&self.syntax, SyntaxKind::XMLEXISTS_KW)
18088    }
18089}
18090
18091#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18092pub struct XmlForestFn {
18093    pub(crate) syntax: SyntaxNode,
18094}
18095impl XmlForestFn {
18096    #[inline]
18097    pub fn expr_as_name_list(&self) -> Option<ExprAsNameList> {
18098        support::child(&self.syntax)
18099    }
18100    #[inline]
18101    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18102        support::token(&self.syntax, SyntaxKind::L_PAREN)
18103    }
18104    #[inline]
18105    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18106        support::token(&self.syntax, SyntaxKind::R_PAREN)
18107    }
18108    #[inline]
18109    pub fn xmlforest_token(&self) -> Option<SyntaxToken> {
18110        support::token(&self.syntax, SyntaxKind::XMLFOREST_KW)
18111    }
18112}
18113
18114#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18115pub struct XmlNamespace {
18116    pub(crate) syntax: SyntaxNode,
18117}
18118impl XmlNamespace {
18119    #[inline]
18120    pub fn expr(&self) -> Option<Expr> {
18121        support::child(&self.syntax)
18122    }
18123    #[inline]
18124    pub fn name(&self) -> Option<Name> {
18125        support::child(&self.syntax)
18126    }
18127    #[inline]
18128    pub fn as_token(&self) -> Option<SyntaxToken> {
18129        support::token(&self.syntax, SyntaxKind::AS_KW)
18130    }
18131    #[inline]
18132    pub fn default_token(&self) -> Option<SyntaxToken> {
18133        support::token(&self.syntax, SyntaxKind::DEFAULT_KW)
18134    }
18135}
18136
18137#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18138pub struct XmlNamespaceList {
18139    pub(crate) syntax: SyntaxNode,
18140}
18141impl XmlNamespaceList {
18142    #[inline]
18143    pub fn xml_namespaces(&self) -> AstChildren<XmlNamespace> {
18144        support::children(&self.syntax)
18145    }
18146    #[inline]
18147    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18148        support::token(&self.syntax, SyntaxKind::L_PAREN)
18149    }
18150    #[inline]
18151    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18152        support::token(&self.syntax, SyntaxKind::R_PAREN)
18153    }
18154}
18155
18156#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18157pub struct XmlParseFn {
18158    pub(crate) syntax: SyntaxNode,
18159}
18160impl XmlParseFn {
18161    #[inline]
18162    pub fn expr(&self) -> Option<Expr> {
18163        support::child(&self.syntax)
18164    }
18165    #[inline]
18166    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18167        support::token(&self.syntax, SyntaxKind::L_PAREN)
18168    }
18169    #[inline]
18170    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18171        support::token(&self.syntax, SyntaxKind::R_PAREN)
18172    }
18173    #[inline]
18174    pub fn content_token(&self) -> Option<SyntaxToken> {
18175        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18176    }
18177    #[inline]
18178    pub fn document_token(&self) -> Option<SyntaxToken> {
18179        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18180    }
18181    #[inline]
18182    pub fn preserve_token(&self) -> Option<SyntaxToken> {
18183        support::token(&self.syntax, SyntaxKind::PRESERVE_KW)
18184    }
18185    #[inline]
18186    pub fn strip_token(&self) -> Option<SyntaxToken> {
18187        support::token(&self.syntax, SyntaxKind::STRIP_KW)
18188    }
18189    #[inline]
18190    pub fn whitespace_token(&self) -> Option<SyntaxToken> {
18191        support::token(&self.syntax, SyntaxKind::WHITESPACE_KW)
18192    }
18193    #[inline]
18194    pub fn xmlparse_token(&self) -> Option<SyntaxToken> {
18195        support::token(&self.syntax, SyntaxKind::XMLPARSE_KW)
18196    }
18197}
18198
18199#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18200pub struct XmlPassingMech {
18201    pub(crate) syntax: SyntaxNode,
18202}
18203impl XmlPassingMech {
18204    #[inline]
18205    pub fn by_token(&self) -> Option<SyntaxToken> {
18206        support::token(&self.syntax, SyntaxKind::BY_KW)
18207    }
18208    #[inline]
18209    pub fn ref_token(&self) -> Option<SyntaxToken> {
18210        support::token(&self.syntax, SyntaxKind::REF_KW)
18211    }
18212    #[inline]
18213    pub fn value_token(&self) -> Option<SyntaxToken> {
18214        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18215    }
18216}
18217
18218#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18219pub struct XmlPiFn {
18220    pub(crate) syntax: SyntaxNode,
18221}
18222impl XmlPiFn {
18223    #[inline]
18224    pub fn expr(&self) -> Option<Expr> {
18225        support::child(&self.syntax)
18226    }
18227    #[inline]
18228    pub fn name(&self) -> Option<Name> {
18229        support::child(&self.syntax)
18230    }
18231    #[inline]
18232    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18233        support::token(&self.syntax, SyntaxKind::L_PAREN)
18234    }
18235    #[inline]
18236    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18237        support::token(&self.syntax, SyntaxKind::R_PAREN)
18238    }
18239    #[inline]
18240    pub fn comma_token(&self) -> Option<SyntaxToken> {
18241        support::token(&self.syntax, SyntaxKind::COMMA)
18242    }
18243    #[inline]
18244    pub fn name_token(&self) -> Option<SyntaxToken> {
18245        support::token(&self.syntax, SyntaxKind::NAME_KW)
18246    }
18247    #[inline]
18248    pub fn xmlpi_token(&self) -> Option<SyntaxToken> {
18249        support::token(&self.syntax, SyntaxKind::XMLPI_KW)
18250    }
18251}
18252
18253#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18254pub struct XmlRootFn {
18255    pub(crate) syntax: SyntaxNode,
18256}
18257impl XmlRootFn {
18258    #[inline]
18259    pub fn expr(&self) -> Option<Expr> {
18260        support::child(&self.syntax)
18261    }
18262    #[inline]
18263    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18264        support::token(&self.syntax, SyntaxKind::L_PAREN)
18265    }
18266    #[inline]
18267    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18268        support::token(&self.syntax, SyntaxKind::R_PAREN)
18269    }
18270    #[inline]
18271    pub fn comma_token(&self) -> Option<SyntaxToken> {
18272        support::token(&self.syntax, SyntaxKind::COMMA)
18273    }
18274    #[inline]
18275    pub fn no_token(&self) -> Option<SyntaxToken> {
18276        support::token(&self.syntax, SyntaxKind::NO_KW)
18277    }
18278    #[inline]
18279    pub fn standalone_token(&self) -> Option<SyntaxToken> {
18280        support::token(&self.syntax, SyntaxKind::STANDALONE_KW)
18281    }
18282    #[inline]
18283    pub fn value_token(&self) -> Option<SyntaxToken> {
18284        support::token(&self.syntax, SyntaxKind::VALUE_KW)
18285    }
18286    #[inline]
18287    pub fn version_token(&self) -> Option<SyntaxToken> {
18288        support::token(&self.syntax, SyntaxKind::VERSION_KW)
18289    }
18290    #[inline]
18291    pub fn xmlroot_token(&self) -> Option<SyntaxToken> {
18292        support::token(&self.syntax, SyntaxKind::XMLROOT_KW)
18293    }
18294    #[inline]
18295    pub fn yes_token(&self) -> Option<SyntaxToken> {
18296        support::token(&self.syntax, SyntaxKind::YES_KW)
18297    }
18298}
18299
18300#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18301pub struct XmlRowPassingClause {
18302    pub(crate) syntax: SyntaxNode,
18303}
18304impl XmlRowPassingClause {
18305    #[inline]
18306    pub fn expr(&self) -> Option<Expr> {
18307        support::child(&self.syntax)
18308    }
18309    #[inline]
18310    pub fn xml_passing_mech(&self) -> Option<XmlPassingMech> {
18311        support::child(&self.syntax)
18312    }
18313    #[inline]
18314    pub fn passing_token(&self) -> Option<SyntaxToken> {
18315        support::token(&self.syntax, SyntaxKind::PASSING_KW)
18316    }
18317}
18318
18319#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18320pub struct XmlSerializeFn {
18321    pub(crate) syntax: SyntaxNode,
18322}
18323impl XmlSerializeFn {
18324    #[inline]
18325    pub fn expr(&self) -> Option<Expr> {
18326        support::child(&self.syntax)
18327    }
18328    #[inline]
18329    pub fn ty(&self) -> Option<Type> {
18330        support::child(&self.syntax)
18331    }
18332    #[inline]
18333    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18334        support::token(&self.syntax, SyntaxKind::L_PAREN)
18335    }
18336    #[inline]
18337    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18338        support::token(&self.syntax, SyntaxKind::R_PAREN)
18339    }
18340    #[inline]
18341    pub fn as_token(&self) -> Option<SyntaxToken> {
18342        support::token(&self.syntax, SyntaxKind::AS_KW)
18343    }
18344    #[inline]
18345    pub fn content_token(&self) -> Option<SyntaxToken> {
18346        support::token(&self.syntax, SyntaxKind::CONTENT_KW)
18347    }
18348    #[inline]
18349    pub fn document_token(&self) -> Option<SyntaxToken> {
18350        support::token(&self.syntax, SyntaxKind::DOCUMENT_KW)
18351    }
18352    #[inline]
18353    pub fn indent_token(&self) -> Option<SyntaxToken> {
18354        support::token(&self.syntax, SyntaxKind::INDENT_KW)
18355    }
18356    #[inline]
18357    pub fn no_token(&self) -> Option<SyntaxToken> {
18358        support::token(&self.syntax, SyntaxKind::NO_KW)
18359    }
18360    #[inline]
18361    pub fn xmlserialize_token(&self) -> Option<SyntaxToken> {
18362        support::token(&self.syntax, SyntaxKind::XMLSERIALIZE_KW)
18363    }
18364}
18365
18366#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18367pub struct XmlTable {
18368    pub(crate) syntax: SyntaxNode,
18369}
18370impl XmlTable {
18371    #[inline]
18372    pub fn xml_namespace_list(&self) -> Option<XmlNamespaceList> {
18373        support::child(&self.syntax)
18374    }
18375    #[inline]
18376    pub fn xml_row_passing_clause(&self) -> Option<XmlRowPassingClause> {
18377        support::child(&self.syntax)
18378    }
18379    #[inline]
18380    pub fn xml_table_column_list(&self) -> Option<XmlTableColumnList> {
18381        support::child(&self.syntax)
18382    }
18383    #[inline]
18384    pub fn l_paren_token(&self) -> Option<SyntaxToken> {
18385        support::token(&self.syntax, SyntaxKind::L_PAREN)
18386    }
18387    #[inline]
18388    pub fn r_paren_token(&self) -> Option<SyntaxToken> {
18389        support::token(&self.syntax, SyntaxKind::R_PAREN)
18390    }
18391    #[inline]
18392    pub fn comma_token(&self) -> Option<SyntaxToken> {
18393        support::token(&self.syntax, SyntaxKind::COMMA)
18394    }
18395    #[inline]
18396    pub fn xmlnamespaces_token(&self) -> Option<SyntaxToken> {
18397        support::token(&self.syntax, SyntaxKind::XMLNAMESPACES_KW)
18398    }
18399    #[inline]
18400    pub fn xmltable_token(&self) -> Option<SyntaxToken> {
18401        support::token(&self.syntax, SyntaxKind::XMLTABLE_KW)
18402    }
18403}
18404
18405#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18406pub struct XmlTableColumn {
18407    pub(crate) syntax: SyntaxNode,
18408}
18409impl XmlTableColumn {
18410    #[inline]
18411    pub fn name(&self) -> Option<Name> {
18412        support::child(&self.syntax)
18413    }
18414    #[inline]
18415    pub fn ty(&self) -> Option<Type> {
18416        support::child(&self.syntax)
18417    }
18418    #[inline]
18419    pub fn xml_column_option_list(&self) -> Option<XmlColumnOptionList> {
18420        support::child(&self.syntax)
18421    }
18422    #[inline]
18423    pub fn for_token(&self) -> Option<SyntaxToken> {
18424        support::token(&self.syntax, SyntaxKind::FOR_KW)
18425    }
18426    #[inline]
18427    pub fn ordinality_token(&self) -> Option<SyntaxToken> {
18428        support::token(&self.syntax, SyntaxKind::ORDINALITY_KW)
18429    }
18430}
18431
18432#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18433pub struct XmlTableColumnList {
18434    pub(crate) syntax: SyntaxNode,
18435}
18436impl XmlTableColumnList {
18437    #[inline]
18438    pub fn xml_table_columns(&self) -> AstChildren<XmlTableColumn> {
18439        support::children(&self.syntax)
18440    }
18441    #[inline]
18442    pub fn columns_token(&self) -> Option<SyntaxToken> {
18443        support::token(&self.syntax, SyntaxKind::COLUMNS_KW)
18444    }
18445}
18446
18447#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18448pub enum AlterColumnOption {
18449    AddGenerated(AddGenerated),
18450    DropDefault(DropDefault),
18451    DropExpression(DropExpression),
18452    DropIdentity(DropIdentity),
18453    DropNotNull(DropNotNull),
18454    Inherit(Inherit),
18455    NoInherit(NoInherit),
18456    ResetOptions(ResetOptions),
18457    Restart(Restart),
18458    SetCompression(SetCompression),
18459    SetDefault(SetDefault),
18460    SetExpression(SetExpression),
18461    SetGenerated(SetGenerated),
18462    SetGeneratedOptions(SetGeneratedOptions),
18463    SetNotNull(SetNotNull),
18464    SetOptions(SetOptions),
18465    SetOptionsList(SetOptionsList),
18466    SetSequenceOption(SetSequenceOption),
18467    SetStatistics(SetStatistics),
18468    SetStorage(SetStorage),
18469    SetType(SetType),
18470}
18471
18472#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18473pub enum AlterDomainAction {
18474    AddConstraint(AddConstraint),
18475    DropConstraint(DropConstraint),
18476    DropDefault(DropDefault),
18477    DropNotNull(DropNotNull),
18478    OwnerTo(OwnerTo),
18479    RenameConstraint(RenameConstraint),
18480    RenameTo(RenameTo),
18481    SetDefault(SetDefault),
18482    SetNotNull(SetNotNull),
18483    SetSchema(SetSchema),
18484    ValidateConstraint(ValidateConstraint),
18485}
18486
18487#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18488pub enum AlterIndexAction {
18489    AlterSetStatistics(AlterSetStatistics),
18490    AttachPartition(AttachPartition),
18491    DependsOnExtension(DependsOnExtension),
18492    NoDependsOnExtension(NoDependsOnExtension),
18493    RenameTo(RenameTo),
18494    ResetOptions(ResetOptions),
18495    SetOptions(SetOptions),
18496    SetTablespace(SetTablespace),
18497}
18498
18499#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18500pub enum AlterMaterializedViewAction {
18501    DependsOnExtension(DependsOnExtension),
18502    NoDependsOnExtension(NoDependsOnExtension),
18503    RenameColumn(RenameColumn),
18504    RenameTo(RenameTo),
18505    SetSchema(SetSchema),
18506    AlterTableAction(AlterTableAction),
18507}
18508
18509#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18510pub enum AlterPropertyGraphAction {
18511    AddVertexEdgeLabelProperties(AddVertexEdgeLabelProperties),
18512    AddVertexEdgeTables(AddVertexEdgeTables),
18513    AlterVertexEdgeLabels(AlterVertexEdgeLabels),
18514    DropEdgeTables(DropEdgeTables),
18515    DropVertexEdgeLabel(DropVertexEdgeLabel),
18516    DropVertexEdgeLabelProperties(DropVertexEdgeLabelProperties),
18517    DropVertexTables(DropVertexTables),
18518    OwnerTo(OwnerTo),
18519    RenameTo(RenameTo),
18520    SetSchema(SetSchema),
18521}
18522
18523#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18524pub enum AlterTableAction {
18525    AddColumn(AddColumn),
18526    AddConstraint(AddConstraint),
18527    AlterColumn(AlterColumn),
18528    AlterConstraint(AlterConstraint),
18529    AttachPartition(AttachPartition),
18530    ClusterOn(ClusterOn),
18531    DetachPartition(DetachPartition),
18532    DisableRls(DisableRls),
18533    DisableRule(DisableRule),
18534    DisableTrigger(DisableTrigger),
18535    DropColumn(DropColumn),
18536    DropConstraint(DropConstraint),
18537    EnableAlwaysRule(EnableAlwaysRule),
18538    EnableAlwaysTrigger(EnableAlwaysTrigger),
18539    EnableReplicaRule(EnableReplicaRule),
18540    EnableReplicaTrigger(EnableReplicaTrigger),
18541    EnableRls(EnableRls),
18542    EnableRule(EnableRule),
18543    EnableTrigger(EnableTrigger),
18544    ForceRls(ForceRls),
18545    InheritTable(InheritTable),
18546    MergePartitions(MergePartitions),
18547    NoForceRls(NoForceRls),
18548    NoInheritTable(NoInheritTable),
18549    NotOf(NotOf),
18550    OfType(OfType),
18551    OptionItemList(OptionItemList),
18552    OwnerTo(OwnerTo),
18553    RenameColumn(RenameColumn),
18554    RenameConstraint(RenameConstraint),
18555    RenameTo(RenameTo),
18556    ReplicaIdentity(ReplicaIdentity),
18557    ResetOptions(ResetOptions),
18558    SetAccessMethod(SetAccessMethod),
18559    SetLogged(SetLogged),
18560    SetOptions(SetOptions),
18561    SetSchema(SetSchema),
18562    SetTablespace(SetTablespace),
18563    SetUnlogged(SetUnlogged),
18564    SetWithoutCluster(SetWithoutCluster),
18565    SetWithoutOids(SetWithoutOids),
18566    SplitPartition(SplitPartition),
18567    ValidateConstraint(ValidateConstraint),
18568}
18569
18570#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18571pub enum AlterTypeAction {
18572    AddAttribute(AddAttribute),
18573    AlterAttribute(AlterAttribute),
18574    DropAttribute(DropAttribute),
18575}
18576
18577#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18578pub enum ColumnConstraint {
18579    CheckConstraint(CheckConstraint),
18580    DefaultConstraint(DefaultConstraint),
18581    ExcludeConstraint(ExcludeConstraint),
18582    NotNullConstraint(NotNullConstraint),
18583    PrimaryKeyConstraint(PrimaryKeyConstraint),
18584    ReferencesConstraint(ReferencesConstraint),
18585    UniqueConstraint(UniqueConstraint),
18586}
18587
18588#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18589pub enum ConfigValue {
18590    Literal(Literal),
18591    NameRef(NameRef),
18592}
18593
18594#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18595pub enum ConflictAction {
18596    ConflictDoNothing(ConflictDoNothing),
18597    ConflictDoSelect(ConflictDoSelect),
18598    ConflictDoUpdateSet(ConflictDoUpdateSet),
18599}
18600
18601#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18602pub enum ConflictTarget {
18603    ConflictOnConstraint(ConflictOnConstraint),
18604    ConflictOnIndex(ConflictOnIndex),
18605}
18606
18607#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18608pub enum Constraint {
18609    CheckConstraint(CheckConstraint),
18610    DefaultConstraint(DefaultConstraint),
18611    ForeignKeyConstraint(ForeignKeyConstraint),
18612    GeneratedConstraint(GeneratedConstraint),
18613    NotNullConstraint(NotNullConstraint),
18614    NullConstraint(NullConstraint),
18615    PrimaryKeyConstraint(PrimaryKeyConstraint),
18616    ReferencesConstraint(ReferencesConstraint),
18617    UniqueConstraint(UniqueConstraint),
18618}
18619
18620#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18621pub enum ElementTableLabelAndProperties {
18622    LabelAndPropertiesList(LabelAndPropertiesList),
18623    ElementTableProperties(ElementTableProperties),
18624}
18625
18626#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18627pub enum ElementTableProperties {
18628    AllProperties(AllProperties),
18629    NoProperties(NoProperties),
18630    Properties(Properties),
18631}
18632
18633#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18634pub enum ExplainStmt {
18635    CompoundSelect(CompoundSelect),
18636    CreateMaterializedView(CreateMaterializedView),
18637    CreateTableAs(CreateTableAs),
18638    Declare(Declare),
18639    Delete(Delete),
18640    Execute(Execute),
18641    Insert(Insert),
18642    Merge(Merge),
18643    ParenSelect(ParenSelect),
18644    Select(Select),
18645    SelectInto(SelectInto),
18646    Table(Table),
18647    Update(Update),
18648    Values(Values),
18649}
18650
18651#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18652pub enum Expr {
18653    ArrayExpr(ArrayExpr),
18654    BetweenExpr(BetweenExpr),
18655    BinExpr(BinExpr),
18656    CallExpr(CallExpr),
18657    CaseExpr(CaseExpr),
18658    CastExpr(CastExpr),
18659    FieldExpr(FieldExpr),
18660    IndexExpr(IndexExpr),
18661    Literal(Literal),
18662    NameRef(NameRef),
18663    ParenExpr(ParenExpr),
18664    PostfixExpr(PostfixExpr),
18665    PrefixExpr(PrefixExpr),
18666    SliceExpr(SliceExpr),
18667    TupleExpr(TupleExpr),
18668}
18669
18670#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18671pub enum FuncOption {
18672    AsFuncOption(AsFuncOption),
18673    BeginFuncOptionList(BeginFuncOptionList),
18674    CostFuncOption(CostFuncOption),
18675    LanguageFuncOption(LanguageFuncOption),
18676    LeakproofFuncOption(LeakproofFuncOption),
18677    ParallelFuncOption(ParallelFuncOption),
18678    ResetFuncOption(ResetFuncOption),
18679    ReturnFuncOption(ReturnFuncOption),
18680    RowsFuncOption(RowsFuncOption),
18681    SecurityFuncOption(SecurityFuncOption),
18682    SetFuncOption(SetFuncOption),
18683    StrictFuncOption(StrictFuncOption),
18684    SupportFuncOption(SupportFuncOption),
18685    TransformFuncOption(TransformFuncOption),
18686    VolatilityFuncOption(VolatilityFuncOption),
18687    WindowFuncOption(WindowFuncOption),
18688}
18689
18690#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18691pub enum GroupBy {
18692    GroupingCube(GroupingCube),
18693    GroupingExpr(GroupingExpr),
18694    GroupingRollup(GroupingRollup),
18695    GroupingSets(GroupingSets),
18696}
18697
18698#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18699pub enum JoinType {
18700    JoinCross(JoinCross),
18701    JoinFull(JoinFull),
18702    JoinInner(JoinInner),
18703    JoinLeft(JoinLeft),
18704    JoinRight(JoinRight),
18705}
18706
18707#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18708pub enum JsonBehavior {
18709    JsonBehaviorDefault(JsonBehaviorDefault),
18710    JsonBehaviorEmptyArray(JsonBehaviorEmptyArray),
18711    JsonBehaviorEmptyObject(JsonBehaviorEmptyObject),
18712    JsonBehaviorError(JsonBehaviorError),
18713    JsonBehaviorFalse(JsonBehaviorFalse),
18714    JsonBehaviorNull(JsonBehaviorNull),
18715    JsonBehaviorTrue(JsonBehaviorTrue),
18716    JsonBehaviorUnknown(JsonBehaviorUnknown),
18717}
18718
18719#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18720pub enum MatchType {
18721    MatchFull(MatchFull),
18722    MatchPartial(MatchPartial),
18723    MatchSimple(MatchSimple),
18724}
18725
18726#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18727pub enum MergeAction {
18728    MergeDelete(MergeDelete),
18729    MergeDoNothing(MergeDoNothing),
18730    MergeInsert(MergeInsert),
18731    MergeUpdate(MergeUpdate),
18732}
18733
18734#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18735pub enum MergeWhenClause {
18736    MergeWhenMatched(MergeWhenMatched),
18737    MergeWhenNotMatchedSource(MergeWhenNotMatchedSource),
18738    MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget),
18739}
18740
18741#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18742pub enum OnCommitAction {
18743    DeleteRows(DeleteRows),
18744    Drop(Drop),
18745    PreserveRows(PreserveRows),
18746}
18747
18748#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18749pub enum ParamMode {
18750    ParamIn(ParamIn),
18751    ParamInOut(ParamInOut),
18752    ParamOut(ParamOut),
18753    ParamVariadic(ParamVariadic),
18754}
18755
18756#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18757pub enum PartitionType {
18758    PartitionDefault(PartitionDefault),
18759    PartitionForValuesFrom(PartitionForValuesFrom),
18760    PartitionForValuesIn(PartitionForValuesIn),
18761    PartitionForValuesWith(PartitionForValuesWith),
18762}
18763
18764#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18765pub enum PathPrimary {
18766    EdgeAny(EdgeAny),
18767    EdgeLeft(EdgeLeft),
18768    EdgeRight(EdgeRight),
18769    ParenGraphPattern(ParenGraphPattern),
18770    VertexPattern(VertexPattern),
18771}
18772
18773#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18774pub enum Persistence {
18775    Temp(Temp),
18776    Unlogged(Unlogged),
18777}
18778
18779#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18780pub enum PreparableStmt {
18781    CompoundSelect(CompoundSelect),
18782    Delete(Delete),
18783    Insert(Insert),
18784    Merge(Merge),
18785    Select(Select),
18786    SelectInto(SelectInto),
18787    Table(Table),
18788    Update(Update),
18789    Values(Values),
18790}
18791
18792#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18793pub enum RefAction {
18794    Cascade(Cascade),
18795    NoAction(NoAction),
18796    Restrict(Restrict),
18797    SetDefaultColumns(SetDefaultColumns),
18798    SetNullColumns(SetNullColumns),
18799}
18800
18801#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18802pub enum RuleStmt {
18803    Delete(Delete),
18804    Insert(Insert),
18805    Notify(Notify),
18806    Update(Update),
18807    SelectVariant(SelectVariant),
18808}
18809
18810#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18811pub enum SchemaElement {
18812    CreateIndex(CreateIndex),
18813    CreateSequence(CreateSequence),
18814    CreateTable(CreateTable),
18815    CreateTrigger(CreateTrigger),
18816    CreateView(CreateView),
18817    Grant(Grant),
18818}
18819
18820#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18821pub enum SelectVariant {
18822    CompoundSelect(CompoundSelect),
18823    ParenSelect(ParenSelect),
18824    Select(Select),
18825    SelectInto(SelectInto),
18826    Table(Table),
18827    Values(Values),
18828}
18829
18830#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18831pub enum SetColumn {
18832    SetMultipleColumns(SetMultipleColumns),
18833    SetSingleColumn(SetSingleColumn),
18834}
18835
18836#[derive(Debug, Clone, PartialEq, Eq, Hash)]
18837pub enum Stmt {
18838    AlterAggregate(AlterAggregate),
18839    AlterCollation(AlterCollation),
18840    AlterConversion(AlterConversion),
18841    AlterDatabase(AlterDatabase),
18842    AlterDefaultPrivileges(AlterDefaultPrivileges),
18843    AlterDomain(AlterDomain),
18844    AlterEventTrigger(AlterEventTrigger),
18845    AlterExtension(AlterExtension),
18846    AlterForeignDataWrapper(AlterForeignDataWrapper),
18847    AlterForeignTable(AlterForeignTable),
18848    AlterFunction(AlterFunction),
18849    AlterGroup(AlterGroup),
18850    AlterIndex(AlterIndex),
18851    AlterLanguage(AlterLanguage),
18852    AlterLargeObject(AlterLargeObject),
18853    AlterMaterializedView(AlterMaterializedView),
18854    AlterOperator(AlterOperator),
18855    AlterOperatorClass(AlterOperatorClass),
18856    AlterOperatorFamily(AlterOperatorFamily),
18857    AlterPolicy(AlterPolicy),
18858    AlterProcedure(AlterProcedure),
18859    AlterPropertyGraph(AlterPropertyGraph),
18860    AlterPublication(AlterPublication),
18861    AlterRole(AlterRole),
18862    AlterRoutine(AlterRoutine),
18863    AlterRule(AlterRule),
18864    AlterSchema(AlterSchema),
18865    AlterSequence(AlterSequence),
18866    AlterServer(AlterServer),
18867    AlterStatistics(AlterStatistics),
18868    AlterSubscription(AlterSubscription),
18869    AlterSystem(AlterSystem),
18870    AlterTable(AlterTable),
18871    AlterTablespace(AlterTablespace),
18872    AlterTextSearchConfiguration(AlterTextSearchConfiguration),
18873    AlterTextSearchDictionary(AlterTextSearchDictionary),
18874    AlterTextSearchParser(AlterTextSearchParser),
18875    AlterTextSearchTemplate(AlterTextSearchTemplate),
18876    AlterTrigger(AlterTrigger),
18877    AlterType(AlterType),
18878    AlterUser(AlterUser),
18879    AlterUserMapping(AlterUserMapping),
18880    AlterView(AlterView),
18881    Analyze(Analyze),
18882    Begin(Begin),
18883    Call(Call),
18884    Checkpoint(Checkpoint),
18885    Close(Close),
18886    Cluster(Cluster),
18887    CommentOn(CommentOn),
18888    Commit(Commit),
18889    Copy(Copy),
18890    CreateAccessMethod(CreateAccessMethod),
18891    CreateAggregate(CreateAggregate),
18892    CreateCast(CreateCast),
18893    CreateCollation(CreateCollation),
18894    CreateConversion(CreateConversion),
18895    CreateDatabase(CreateDatabase),
18896    CreateDomain(CreateDomain),
18897    CreateEventTrigger(CreateEventTrigger),
18898    CreateExtension(CreateExtension),
18899    CreateForeignDataWrapper(CreateForeignDataWrapper),
18900    CreateForeignTable(CreateForeignTable),
18901    CreateFunction(CreateFunction),
18902    CreateGroup(CreateGroup),
18903    CreateIndex(CreateIndex),
18904    CreateLanguage(CreateLanguage),
18905    CreateMaterializedView(CreateMaterializedView),
18906    CreateOperator(CreateOperator),
18907    CreateOperatorClass(CreateOperatorClass),
18908    CreateOperatorFamily(CreateOperatorFamily),
18909    CreatePolicy(CreatePolicy),
18910    CreateProcedure(CreateProcedure),
18911    CreatePropertyGraph(CreatePropertyGraph),
18912    CreatePublication(CreatePublication),
18913    CreateRole(CreateRole),
18914    CreateRule(CreateRule),
18915    CreateSchema(CreateSchema),
18916    CreateSequence(CreateSequence),
18917    CreateServer(CreateServer),
18918    CreateStatistics(CreateStatistics),
18919    CreateSubscription(CreateSubscription),
18920    CreateTable(CreateTable),
18921    CreateTableAs(CreateTableAs),
18922    CreateTablespace(CreateTablespace),
18923    CreateTextSearchConfiguration(CreateTextSearchConfiguration),
18924    CreateTextSearchDictionary(CreateTextSearchDictionary),
18925    CreateTextSearchParser(CreateTextSearchParser),
18926    CreateTextSearchTemplate(CreateTextSearchTemplate),
18927    CreateTransform(CreateTransform),
18928    CreateTrigger(CreateTrigger),
18929    CreateType(CreateType),
18930    CreateUser(CreateUser),
18931    CreateUserMapping(CreateUserMapping),
18932    CreateView(CreateView),
18933    Deallocate(Deallocate),
18934    Declare(Declare),
18935    Delete(Delete),
18936    Discard(Discard),
18937    Do(Do),
18938    DropAccessMethod(DropAccessMethod),
18939    DropAggregate(DropAggregate),
18940    DropCast(DropCast),
18941    DropCollation(DropCollation),
18942    DropConversion(DropConversion),
18943    DropDatabase(DropDatabase),
18944    DropDomain(DropDomain),
18945    DropEventTrigger(DropEventTrigger),
18946    DropExtension(DropExtension),
18947    DropForeignDataWrapper(DropForeignDataWrapper),
18948    DropForeignTable(DropForeignTable),
18949    DropFunction(DropFunction),
18950    DropGroup(DropGroup),
18951    DropIndex(DropIndex),
18952    DropLanguage(DropLanguage),
18953    DropMaterializedView(DropMaterializedView),
18954    DropOperator(DropOperator),
18955    DropOperatorClass(DropOperatorClass),
18956    DropOperatorFamily(DropOperatorFamily),
18957    DropOwned(DropOwned),
18958    DropPolicy(DropPolicy),
18959    DropProcedure(DropProcedure),
18960    DropPropertyGraph(DropPropertyGraph),
18961    DropPublication(DropPublication),
18962    DropRole(DropRole),
18963    DropRoutine(DropRoutine),
18964    DropRule(DropRule),
18965    DropSchema(DropSchema),
18966    DropSequence(DropSequence),
18967    DropServer(DropServer),
18968    DropStatistics(DropStatistics),
18969    DropSubscription(DropSubscription),
18970    DropTable(DropTable),
18971    DropTablespace(DropTablespace),
18972    DropTextSearchConfig(DropTextSearchConfig),
18973    DropTextSearchDict(DropTextSearchDict),
18974    DropTextSearchParser(DropTextSearchParser),
18975    DropTextSearchTemplate(DropTextSearchTemplate),
18976    DropTransform(DropTransform),
18977    DropTrigger(DropTrigger),
18978    DropType(DropType),
18979    DropUser(DropUser),
18980    DropUserMapping(DropUserMapping),
18981    DropView(DropView),
18982    EmptyStmt(EmptyStmt),
18983    Execute(Execute),
18984    Explain(Explain),
18985    Fetch(Fetch),
18986    Grant(Grant),
18987    ImportForeignSchema(ImportForeignSchema),
18988    Insert(Insert),
18989    Listen(Listen),
18990    Load(Load),
18991    Lock(Lock),
18992    Merge(Merge),
18993    Move(Move),
18994    Notify(Notify),
18995    ParenSelect(ParenSelect),
18996    Prepare(Prepare),
18997    PrepareTransaction(PrepareTransaction),
18998    Reassign(Reassign),
18999    Refresh(Refresh),
19000    Reindex(Reindex),
19001    ReleaseSavepoint(ReleaseSavepoint),
19002    Repack(Repack),
19003    Reset(Reset),
19004    ResetSessionAuth(ResetSessionAuth),
19005    Revoke(Revoke),
19006    Rollback(Rollback),
19007    Savepoint(Savepoint),
19008    SecurityLabel(SecurityLabel),
19009    Select(Select),
19010    SelectInto(SelectInto),
19011    Set(Set),
19012    SetConstraints(SetConstraints),
19013    SetRole(SetRole),
19014    SetSessionAuth(SetSessionAuth),
19015    SetTransaction(SetTransaction),
19016    Show(Show),
19017    Table(Table),
19018    Truncate(Truncate),
19019    Unlisten(Unlisten),
19020    Update(Update),
19021    Vacuum(Vacuum),
19022    Values(Values),
19023}
19024
19025#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19026pub enum TableArg {
19027    Column(Column),
19028    LikeClause(LikeClause),
19029    TableConstraint(TableConstraint),
19030}
19031
19032#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19033pub enum TableConstraint {
19034    CheckConstraint(CheckConstraint),
19035    ExcludeConstraint(ExcludeConstraint),
19036    ForeignKeyConstraint(ForeignKeyConstraint),
19037    PrimaryKeyConstraint(PrimaryKeyConstraint),
19038    UniqueConstraint(UniqueConstraint),
19039}
19040
19041#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19042pub enum Timezone {
19043    WithTimezone(WithTimezone),
19044    WithoutTimezone(WithoutTimezone),
19045}
19046
19047#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19048pub enum TransactionMode {
19049    Deferrable(Deferrable),
19050    NotDeferrable(NotDeferrable),
19051    ReadCommitted(ReadCommitted),
19052    ReadOnly(ReadOnly),
19053    ReadUncommitted(ReadUncommitted),
19054    ReadWrite(ReadWrite),
19055    RepeatableRead(RepeatableRead),
19056    Serializable(Serializable),
19057}
19058
19059#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19060pub enum Type {
19061    ArrayType(ArrayType),
19062    BitType(BitType),
19063    CharType(CharType),
19064    DoubleType(DoubleType),
19065    ExprType(ExprType),
19066    IntervalType(IntervalType),
19067    PathType(PathType),
19068    PercentType(PercentType),
19069    TimeType(TimeType),
19070}
19071
19072#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19073pub enum ValuePosition {
19074    AfterValue(AfterValue),
19075    BeforeValue(BeforeValue),
19076}
19077
19078#[derive(Debug, Clone, PartialEq, Eq, Hash)]
19079pub enum WithQuery {
19080    CompoundSelect(CompoundSelect),
19081    Delete(Delete),
19082    Insert(Insert),
19083    Merge(Merge),
19084    ParenSelect(ParenSelect),
19085    Select(Select),
19086    Table(Table),
19087    Update(Update),
19088    Values(Values),
19089}
19090impl AstNode for AddAttribute {
19091    #[inline]
19092    fn can_cast(kind: SyntaxKind) -> bool {
19093        kind == SyntaxKind::ADD_ATTRIBUTE
19094    }
19095    #[inline]
19096    fn cast(syntax: SyntaxNode) -> Option<Self> {
19097        if Self::can_cast(syntax.kind()) {
19098            Some(Self { syntax })
19099        } else {
19100            None
19101        }
19102    }
19103    #[inline]
19104    fn syntax(&self) -> &SyntaxNode {
19105        &self.syntax
19106    }
19107}
19108impl AstNode for AddColumn {
19109    #[inline]
19110    fn can_cast(kind: SyntaxKind) -> bool {
19111        kind == SyntaxKind::ADD_COLUMN
19112    }
19113    #[inline]
19114    fn cast(syntax: SyntaxNode) -> Option<Self> {
19115        if Self::can_cast(syntax.kind()) {
19116            Some(Self { syntax })
19117        } else {
19118            None
19119        }
19120    }
19121    #[inline]
19122    fn syntax(&self) -> &SyntaxNode {
19123        &self.syntax
19124    }
19125}
19126impl AstNode for AddConstraint {
19127    #[inline]
19128    fn can_cast(kind: SyntaxKind) -> bool {
19129        kind == SyntaxKind::ADD_CONSTRAINT
19130    }
19131    #[inline]
19132    fn cast(syntax: SyntaxNode) -> Option<Self> {
19133        if Self::can_cast(syntax.kind()) {
19134            Some(Self { syntax })
19135        } else {
19136            None
19137        }
19138    }
19139    #[inline]
19140    fn syntax(&self) -> &SyntaxNode {
19141        &self.syntax
19142    }
19143}
19144impl AstNode for AddGenerated {
19145    #[inline]
19146    fn can_cast(kind: SyntaxKind) -> bool {
19147        kind == SyntaxKind::ADD_GENERATED
19148    }
19149    #[inline]
19150    fn cast(syntax: SyntaxNode) -> Option<Self> {
19151        if Self::can_cast(syntax.kind()) {
19152            Some(Self { syntax })
19153        } else {
19154            None
19155        }
19156    }
19157    #[inline]
19158    fn syntax(&self) -> &SyntaxNode {
19159        &self.syntax
19160    }
19161}
19162impl AstNode for AddLabel {
19163    #[inline]
19164    fn can_cast(kind: SyntaxKind) -> bool {
19165        kind == SyntaxKind::ADD_LABEL
19166    }
19167    #[inline]
19168    fn cast(syntax: SyntaxNode) -> Option<Self> {
19169        if Self::can_cast(syntax.kind()) {
19170            Some(Self { syntax })
19171        } else {
19172            None
19173        }
19174    }
19175    #[inline]
19176    fn syntax(&self) -> &SyntaxNode {
19177        &self.syntax
19178    }
19179}
19180impl AstNode for AddOpClassOptions {
19181    #[inline]
19182    fn can_cast(kind: SyntaxKind) -> bool {
19183        kind == SyntaxKind::ADD_OP_CLASS_OPTIONS
19184    }
19185    #[inline]
19186    fn cast(syntax: SyntaxNode) -> Option<Self> {
19187        if Self::can_cast(syntax.kind()) {
19188            Some(Self { syntax })
19189        } else {
19190            None
19191        }
19192    }
19193    #[inline]
19194    fn syntax(&self) -> &SyntaxNode {
19195        &self.syntax
19196    }
19197}
19198impl AstNode for AddValue {
19199    #[inline]
19200    fn can_cast(kind: SyntaxKind) -> bool {
19201        kind == SyntaxKind::ADD_VALUE
19202    }
19203    #[inline]
19204    fn cast(syntax: SyntaxNode) -> Option<Self> {
19205        if Self::can_cast(syntax.kind()) {
19206            Some(Self { syntax })
19207        } else {
19208            None
19209        }
19210    }
19211    #[inline]
19212    fn syntax(&self) -> &SyntaxNode {
19213        &self.syntax
19214    }
19215}
19216impl AstNode for AddVertexEdgeLabelProperties {
19217    #[inline]
19218    fn can_cast(kind: SyntaxKind) -> bool {
19219        kind == SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
19220    }
19221    #[inline]
19222    fn cast(syntax: SyntaxNode) -> Option<Self> {
19223        if Self::can_cast(syntax.kind()) {
19224            Some(Self { syntax })
19225        } else {
19226            None
19227        }
19228    }
19229    #[inline]
19230    fn syntax(&self) -> &SyntaxNode {
19231        &self.syntax
19232    }
19233}
19234impl AstNode for AddVertexEdgeTables {
19235    #[inline]
19236    fn can_cast(kind: SyntaxKind) -> bool {
19237        kind == SyntaxKind::ADD_VERTEX_EDGE_TABLES
19238    }
19239    #[inline]
19240    fn cast(syntax: SyntaxNode) -> Option<Self> {
19241        if Self::can_cast(syntax.kind()) {
19242            Some(Self { syntax })
19243        } else {
19244            None
19245        }
19246    }
19247    #[inline]
19248    fn syntax(&self) -> &SyntaxNode {
19249        &self.syntax
19250    }
19251}
19252impl AstNode for AfterValue {
19253    #[inline]
19254    fn can_cast(kind: SyntaxKind) -> bool {
19255        kind == SyntaxKind::AFTER_VALUE
19256    }
19257    #[inline]
19258    fn cast(syntax: SyntaxNode) -> Option<Self> {
19259        if Self::can_cast(syntax.kind()) {
19260            Some(Self { syntax })
19261        } else {
19262            None
19263        }
19264    }
19265    #[inline]
19266    fn syntax(&self) -> &SyntaxNode {
19267        &self.syntax
19268    }
19269}
19270impl AstNode for Aggregate {
19271    #[inline]
19272    fn can_cast(kind: SyntaxKind) -> bool {
19273        kind == SyntaxKind::AGGREGATE
19274    }
19275    #[inline]
19276    fn cast(syntax: SyntaxNode) -> Option<Self> {
19277        if Self::can_cast(syntax.kind()) {
19278            Some(Self { syntax })
19279        } else {
19280            None
19281        }
19282    }
19283    #[inline]
19284    fn syntax(&self) -> &SyntaxNode {
19285        &self.syntax
19286    }
19287}
19288impl AstNode for Alias {
19289    #[inline]
19290    fn can_cast(kind: SyntaxKind) -> bool {
19291        kind == SyntaxKind::ALIAS
19292    }
19293    #[inline]
19294    fn cast(syntax: SyntaxNode) -> Option<Self> {
19295        if Self::can_cast(syntax.kind()) {
19296            Some(Self { syntax })
19297        } else {
19298            None
19299        }
19300    }
19301    #[inline]
19302    fn syntax(&self) -> &SyntaxNode {
19303        &self.syntax
19304    }
19305}
19306impl AstNode for AllFn {
19307    #[inline]
19308    fn can_cast(kind: SyntaxKind) -> bool {
19309        kind == SyntaxKind::ALL_FN
19310    }
19311    #[inline]
19312    fn cast(syntax: SyntaxNode) -> Option<Self> {
19313        if Self::can_cast(syntax.kind()) {
19314            Some(Self { syntax })
19315        } else {
19316            None
19317        }
19318    }
19319    #[inline]
19320    fn syntax(&self) -> &SyntaxNode {
19321        &self.syntax
19322    }
19323}
19324impl AstNode for AllProperties {
19325    #[inline]
19326    fn can_cast(kind: SyntaxKind) -> bool {
19327        kind == SyntaxKind::ALL_PROPERTIES
19328    }
19329    #[inline]
19330    fn cast(syntax: SyntaxNode) -> Option<Self> {
19331        if Self::can_cast(syntax.kind()) {
19332            Some(Self { syntax })
19333        } else {
19334            None
19335        }
19336    }
19337    #[inline]
19338    fn syntax(&self) -> &SyntaxNode {
19339        &self.syntax
19340    }
19341}
19342impl AstNode for AlterAggregate {
19343    #[inline]
19344    fn can_cast(kind: SyntaxKind) -> bool {
19345        kind == SyntaxKind::ALTER_AGGREGATE
19346    }
19347    #[inline]
19348    fn cast(syntax: SyntaxNode) -> Option<Self> {
19349        if Self::can_cast(syntax.kind()) {
19350            Some(Self { syntax })
19351        } else {
19352            None
19353        }
19354    }
19355    #[inline]
19356    fn syntax(&self) -> &SyntaxNode {
19357        &self.syntax
19358    }
19359}
19360impl AstNode for AlterAttribute {
19361    #[inline]
19362    fn can_cast(kind: SyntaxKind) -> bool {
19363        kind == SyntaxKind::ALTER_ATTRIBUTE
19364    }
19365    #[inline]
19366    fn cast(syntax: SyntaxNode) -> Option<Self> {
19367        if Self::can_cast(syntax.kind()) {
19368            Some(Self { syntax })
19369        } else {
19370            None
19371        }
19372    }
19373    #[inline]
19374    fn syntax(&self) -> &SyntaxNode {
19375        &self.syntax
19376    }
19377}
19378impl AstNode for AlterCollation {
19379    #[inline]
19380    fn can_cast(kind: SyntaxKind) -> bool {
19381        kind == SyntaxKind::ALTER_COLLATION
19382    }
19383    #[inline]
19384    fn cast(syntax: SyntaxNode) -> Option<Self> {
19385        if Self::can_cast(syntax.kind()) {
19386            Some(Self { syntax })
19387        } else {
19388            None
19389        }
19390    }
19391    #[inline]
19392    fn syntax(&self) -> &SyntaxNode {
19393        &self.syntax
19394    }
19395}
19396impl AstNode for AlterColumn {
19397    #[inline]
19398    fn can_cast(kind: SyntaxKind) -> bool {
19399        kind == SyntaxKind::ALTER_COLUMN
19400    }
19401    #[inline]
19402    fn cast(syntax: SyntaxNode) -> Option<Self> {
19403        if Self::can_cast(syntax.kind()) {
19404            Some(Self { syntax })
19405        } else {
19406            None
19407        }
19408    }
19409    #[inline]
19410    fn syntax(&self) -> &SyntaxNode {
19411        &self.syntax
19412    }
19413}
19414impl AstNode for AlterConstraint {
19415    #[inline]
19416    fn can_cast(kind: SyntaxKind) -> bool {
19417        kind == SyntaxKind::ALTER_CONSTRAINT
19418    }
19419    #[inline]
19420    fn cast(syntax: SyntaxNode) -> Option<Self> {
19421        if Self::can_cast(syntax.kind()) {
19422            Some(Self { syntax })
19423        } else {
19424            None
19425        }
19426    }
19427    #[inline]
19428    fn syntax(&self) -> &SyntaxNode {
19429        &self.syntax
19430    }
19431}
19432impl AstNode for AlterConversion {
19433    #[inline]
19434    fn can_cast(kind: SyntaxKind) -> bool {
19435        kind == SyntaxKind::ALTER_CONVERSION
19436    }
19437    #[inline]
19438    fn cast(syntax: SyntaxNode) -> Option<Self> {
19439        if Self::can_cast(syntax.kind()) {
19440            Some(Self { syntax })
19441        } else {
19442            None
19443        }
19444    }
19445    #[inline]
19446    fn syntax(&self) -> &SyntaxNode {
19447        &self.syntax
19448    }
19449}
19450impl AstNode for AlterDatabase {
19451    #[inline]
19452    fn can_cast(kind: SyntaxKind) -> bool {
19453        kind == SyntaxKind::ALTER_DATABASE
19454    }
19455    #[inline]
19456    fn cast(syntax: SyntaxNode) -> Option<Self> {
19457        if Self::can_cast(syntax.kind()) {
19458            Some(Self { syntax })
19459        } else {
19460            None
19461        }
19462    }
19463    #[inline]
19464    fn syntax(&self) -> &SyntaxNode {
19465        &self.syntax
19466    }
19467}
19468impl AstNode for AlterDefaultPrivileges {
19469    #[inline]
19470    fn can_cast(kind: SyntaxKind) -> bool {
19471        kind == SyntaxKind::ALTER_DEFAULT_PRIVILEGES
19472    }
19473    #[inline]
19474    fn cast(syntax: SyntaxNode) -> Option<Self> {
19475        if Self::can_cast(syntax.kind()) {
19476            Some(Self { syntax })
19477        } else {
19478            None
19479        }
19480    }
19481    #[inline]
19482    fn syntax(&self) -> &SyntaxNode {
19483        &self.syntax
19484    }
19485}
19486impl AstNode for AlterDomain {
19487    #[inline]
19488    fn can_cast(kind: SyntaxKind) -> bool {
19489        kind == SyntaxKind::ALTER_DOMAIN
19490    }
19491    #[inline]
19492    fn cast(syntax: SyntaxNode) -> Option<Self> {
19493        if Self::can_cast(syntax.kind()) {
19494            Some(Self { syntax })
19495        } else {
19496            None
19497        }
19498    }
19499    #[inline]
19500    fn syntax(&self) -> &SyntaxNode {
19501        &self.syntax
19502    }
19503}
19504impl AstNode for AlterEventTrigger {
19505    #[inline]
19506    fn can_cast(kind: SyntaxKind) -> bool {
19507        kind == SyntaxKind::ALTER_EVENT_TRIGGER
19508    }
19509    #[inline]
19510    fn cast(syntax: SyntaxNode) -> Option<Self> {
19511        if Self::can_cast(syntax.kind()) {
19512            Some(Self { syntax })
19513        } else {
19514            None
19515        }
19516    }
19517    #[inline]
19518    fn syntax(&self) -> &SyntaxNode {
19519        &self.syntax
19520    }
19521}
19522impl AstNode for AlterExtension {
19523    #[inline]
19524    fn can_cast(kind: SyntaxKind) -> bool {
19525        kind == SyntaxKind::ALTER_EXTENSION
19526    }
19527    #[inline]
19528    fn cast(syntax: SyntaxNode) -> Option<Self> {
19529        if Self::can_cast(syntax.kind()) {
19530            Some(Self { syntax })
19531        } else {
19532            None
19533        }
19534    }
19535    #[inline]
19536    fn syntax(&self) -> &SyntaxNode {
19537        &self.syntax
19538    }
19539}
19540impl AstNode for AlterForeignDataWrapper {
19541    #[inline]
19542    fn can_cast(kind: SyntaxKind) -> bool {
19543        kind == SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
19544    }
19545    #[inline]
19546    fn cast(syntax: SyntaxNode) -> Option<Self> {
19547        if Self::can_cast(syntax.kind()) {
19548            Some(Self { syntax })
19549        } else {
19550            None
19551        }
19552    }
19553    #[inline]
19554    fn syntax(&self) -> &SyntaxNode {
19555        &self.syntax
19556    }
19557}
19558impl AstNode for AlterForeignTable {
19559    #[inline]
19560    fn can_cast(kind: SyntaxKind) -> bool {
19561        kind == SyntaxKind::ALTER_FOREIGN_TABLE
19562    }
19563    #[inline]
19564    fn cast(syntax: SyntaxNode) -> Option<Self> {
19565        if Self::can_cast(syntax.kind()) {
19566            Some(Self { syntax })
19567        } else {
19568            None
19569        }
19570    }
19571    #[inline]
19572    fn syntax(&self) -> &SyntaxNode {
19573        &self.syntax
19574    }
19575}
19576impl AstNode for AlterFunction {
19577    #[inline]
19578    fn can_cast(kind: SyntaxKind) -> bool {
19579        kind == SyntaxKind::ALTER_FUNCTION
19580    }
19581    #[inline]
19582    fn cast(syntax: SyntaxNode) -> Option<Self> {
19583        if Self::can_cast(syntax.kind()) {
19584            Some(Self { syntax })
19585        } else {
19586            None
19587        }
19588    }
19589    #[inline]
19590    fn syntax(&self) -> &SyntaxNode {
19591        &self.syntax
19592    }
19593}
19594impl AstNode for AlterGroup {
19595    #[inline]
19596    fn can_cast(kind: SyntaxKind) -> bool {
19597        kind == SyntaxKind::ALTER_GROUP
19598    }
19599    #[inline]
19600    fn cast(syntax: SyntaxNode) -> Option<Self> {
19601        if Self::can_cast(syntax.kind()) {
19602            Some(Self { syntax })
19603        } else {
19604            None
19605        }
19606    }
19607    #[inline]
19608    fn syntax(&self) -> &SyntaxNode {
19609        &self.syntax
19610    }
19611}
19612impl AstNode for AlterIndex {
19613    #[inline]
19614    fn can_cast(kind: SyntaxKind) -> bool {
19615        kind == SyntaxKind::ALTER_INDEX
19616    }
19617    #[inline]
19618    fn cast(syntax: SyntaxNode) -> Option<Self> {
19619        if Self::can_cast(syntax.kind()) {
19620            Some(Self { syntax })
19621        } else {
19622            None
19623        }
19624    }
19625    #[inline]
19626    fn syntax(&self) -> &SyntaxNode {
19627        &self.syntax
19628    }
19629}
19630impl AstNode for AlterLanguage {
19631    #[inline]
19632    fn can_cast(kind: SyntaxKind) -> bool {
19633        kind == SyntaxKind::ALTER_LANGUAGE
19634    }
19635    #[inline]
19636    fn cast(syntax: SyntaxNode) -> Option<Self> {
19637        if Self::can_cast(syntax.kind()) {
19638            Some(Self { syntax })
19639        } else {
19640            None
19641        }
19642    }
19643    #[inline]
19644    fn syntax(&self) -> &SyntaxNode {
19645        &self.syntax
19646    }
19647}
19648impl AstNode for AlterLargeObject {
19649    #[inline]
19650    fn can_cast(kind: SyntaxKind) -> bool {
19651        kind == SyntaxKind::ALTER_LARGE_OBJECT
19652    }
19653    #[inline]
19654    fn cast(syntax: SyntaxNode) -> Option<Self> {
19655        if Self::can_cast(syntax.kind()) {
19656            Some(Self { syntax })
19657        } else {
19658            None
19659        }
19660    }
19661    #[inline]
19662    fn syntax(&self) -> &SyntaxNode {
19663        &self.syntax
19664    }
19665}
19666impl AstNode for AlterMaterializedView {
19667    #[inline]
19668    fn can_cast(kind: SyntaxKind) -> bool {
19669        kind == SyntaxKind::ALTER_MATERIALIZED_VIEW
19670    }
19671    #[inline]
19672    fn cast(syntax: SyntaxNode) -> Option<Self> {
19673        if Self::can_cast(syntax.kind()) {
19674            Some(Self { syntax })
19675        } else {
19676            None
19677        }
19678    }
19679    #[inline]
19680    fn syntax(&self) -> &SyntaxNode {
19681        &self.syntax
19682    }
19683}
19684impl AstNode for AlterOperator {
19685    #[inline]
19686    fn can_cast(kind: SyntaxKind) -> bool {
19687        kind == SyntaxKind::ALTER_OPERATOR
19688    }
19689    #[inline]
19690    fn cast(syntax: SyntaxNode) -> Option<Self> {
19691        if Self::can_cast(syntax.kind()) {
19692            Some(Self { syntax })
19693        } else {
19694            None
19695        }
19696    }
19697    #[inline]
19698    fn syntax(&self) -> &SyntaxNode {
19699        &self.syntax
19700    }
19701}
19702impl AstNode for AlterOperatorClass {
19703    #[inline]
19704    fn can_cast(kind: SyntaxKind) -> bool {
19705        kind == SyntaxKind::ALTER_OPERATOR_CLASS
19706    }
19707    #[inline]
19708    fn cast(syntax: SyntaxNode) -> Option<Self> {
19709        if Self::can_cast(syntax.kind()) {
19710            Some(Self { syntax })
19711        } else {
19712            None
19713        }
19714    }
19715    #[inline]
19716    fn syntax(&self) -> &SyntaxNode {
19717        &self.syntax
19718    }
19719}
19720impl AstNode for AlterOperatorFamily {
19721    #[inline]
19722    fn can_cast(kind: SyntaxKind) -> bool {
19723        kind == SyntaxKind::ALTER_OPERATOR_FAMILY
19724    }
19725    #[inline]
19726    fn cast(syntax: SyntaxNode) -> Option<Self> {
19727        if Self::can_cast(syntax.kind()) {
19728            Some(Self { syntax })
19729        } else {
19730            None
19731        }
19732    }
19733    #[inline]
19734    fn syntax(&self) -> &SyntaxNode {
19735        &self.syntax
19736    }
19737}
19738impl AstNode for AlterOption {
19739    #[inline]
19740    fn can_cast(kind: SyntaxKind) -> bool {
19741        kind == SyntaxKind::ALTER_OPTION
19742    }
19743    #[inline]
19744    fn cast(syntax: SyntaxNode) -> Option<Self> {
19745        if Self::can_cast(syntax.kind()) {
19746            Some(Self { syntax })
19747        } else {
19748            None
19749        }
19750    }
19751    #[inline]
19752    fn syntax(&self) -> &SyntaxNode {
19753        &self.syntax
19754    }
19755}
19756impl AstNode for AlterOptionList {
19757    #[inline]
19758    fn can_cast(kind: SyntaxKind) -> bool {
19759        kind == SyntaxKind::ALTER_OPTION_LIST
19760    }
19761    #[inline]
19762    fn cast(syntax: SyntaxNode) -> Option<Self> {
19763        if Self::can_cast(syntax.kind()) {
19764            Some(Self { syntax })
19765        } else {
19766            None
19767        }
19768    }
19769    #[inline]
19770    fn syntax(&self) -> &SyntaxNode {
19771        &self.syntax
19772    }
19773}
19774impl AstNode for AlterPolicy {
19775    #[inline]
19776    fn can_cast(kind: SyntaxKind) -> bool {
19777        kind == SyntaxKind::ALTER_POLICY
19778    }
19779    #[inline]
19780    fn cast(syntax: SyntaxNode) -> Option<Self> {
19781        if Self::can_cast(syntax.kind()) {
19782            Some(Self { syntax })
19783        } else {
19784            None
19785        }
19786    }
19787    #[inline]
19788    fn syntax(&self) -> &SyntaxNode {
19789        &self.syntax
19790    }
19791}
19792impl AstNode for AlterProcedure {
19793    #[inline]
19794    fn can_cast(kind: SyntaxKind) -> bool {
19795        kind == SyntaxKind::ALTER_PROCEDURE
19796    }
19797    #[inline]
19798    fn cast(syntax: SyntaxNode) -> Option<Self> {
19799        if Self::can_cast(syntax.kind()) {
19800            Some(Self { syntax })
19801        } else {
19802            None
19803        }
19804    }
19805    #[inline]
19806    fn syntax(&self) -> &SyntaxNode {
19807        &self.syntax
19808    }
19809}
19810impl AstNode for AlterPropertyGraph {
19811    #[inline]
19812    fn can_cast(kind: SyntaxKind) -> bool {
19813        kind == SyntaxKind::ALTER_PROPERTY_GRAPH
19814    }
19815    #[inline]
19816    fn cast(syntax: SyntaxNode) -> Option<Self> {
19817        if Self::can_cast(syntax.kind()) {
19818            Some(Self { syntax })
19819        } else {
19820            None
19821        }
19822    }
19823    #[inline]
19824    fn syntax(&self) -> &SyntaxNode {
19825        &self.syntax
19826    }
19827}
19828impl AstNode for AlterPublication {
19829    #[inline]
19830    fn can_cast(kind: SyntaxKind) -> bool {
19831        kind == SyntaxKind::ALTER_PUBLICATION
19832    }
19833    #[inline]
19834    fn cast(syntax: SyntaxNode) -> Option<Self> {
19835        if Self::can_cast(syntax.kind()) {
19836            Some(Self { syntax })
19837        } else {
19838            None
19839        }
19840    }
19841    #[inline]
19842    fn syntax(&self) -> &SyntaxNode {
19843        &self.syntax
19844    }
19845}
19846impl AstNode for AlterRole {
19847    #[inline]
19848    fn can_cast(kind: SyntaxKind) -> bool {
19849        kind == SyntaxKind::ALTER_ROLE
19850    }
19851    #[inline]
19852    fn cast(syntax: SyntaxNode) -> Option<Self> {
19853        if Self::can_cast(syntax.kind()) {
19854            Some(Self { syntax })
19855        } else {
19856            None
19857        }
19858    }
19859    #[inline]
19860    fn syntax(&self) -> &SyntaxNode {
19861        &self.syntax
19862    }
19863}
19864impl AstNode for AlterRoutine {
19865    #[inline]
19866    fn can_cast(kind: SyntaxKind) -> bool {
19867        kind == SyntaxKind::ALTER_ROUTINE
19868    }
19869    #[inline]
19870    fn cast(syntax: SyntaxNode) -> Option<Self> {
19871        if Self::can_cast(syntax.kind()) {
19872            Some(Self { syntax })
19873        } else {
19874            None
19875        }
19876    }
19877    #[inline]
19878    fn syntax(&self) -> &SyntaxNode {
19879        &self.syntax
19880    }
19881}
19882impl AstNode for AlterRule {
19883    #[inline]
19884    fn can_cast(kind: SyntaxKind) -> bool {
19885        kind == SyntaxKind::ALTER_RULE
19886    }
19887    #[inline]
19888    fn cast(syntax: SyntaxNode) -> Option<Self> {
19889        if Self::can_cast(syntax.kind()) {
19890            Some(Self { syntax })
19891        } else {
19892            None
19893        }
19894    }
19895    #[inline]
19896    fn syntax(&self) -> &SyntaxNode {
19897        &self.syntax
19898    }
19899}
19900impl AstNode for AlterSchema {
19901    #[inline]
19902    fn can_cast(kind: SyntaxKind) -> bool {
19903        kind == SyntaxKind::ALTER_SCHEMA
19904    }
19905    #[inline]
19906    fn cast(syntax: SyntaxNode) -> Option<Self> {
19907        if Self::can_cast(syntax.kind()) {
19908            Some(Self { syntax })
19909        } else {
19910            None
19911        }
19912    }
19913    #[inline]
19914    fn syntax(&self) -> &SyntaxNode {
19915        &self.syntax
19916    }
19917}
19918impl AstNode for AlterSequence {
19919    #[inline]
19920    fn can_cast(kind: SyntaxKind) -> bool {
19921        kind == SyntaxKind::ALTER_SEQUENCE
19922    }
19923    #[inline]
19924    fn cast(syntax: SyntaxNode) -> Option<Self> {
19925        if Self::can_cast(syntax.kind()) {
19926            Some(Self { syntax })
19927        } else {
19928            None
19929        }
19930    }
19931    #[inline]
19932    fn syntax(&self) -> &SyntaxNode {
19933        &self.syntax
19934    }
19935}
19936impl AstNode for AlterServer {
19937    #[inline]
19938    fn can_cast(kind: SyntaxKind) -> bool {
19939        kind == SyntaxKind::ALTER_SERVER
19940    }
19941    #[inline]
19942    fn cast(syntax: SyntaxNode) -> Option<Self> {
19943        if Self::can_cast(syntax.kind()) {
19944            Some(Self { syntax })
19945        } else {
19946            None
19947        }
19948    }
19949    #[inline]
19950    fn syntax(&self) -> &SyntaxNode {
19951        &self.syntax
19952    }
19953}
19954impl AstNode for AlterSetStatistics {
19955    #[inline]
19956    fn can_cast(kind: SyntaxKind) -> bool {
19957        kind == SyntaxKind::ALTER_SET_STATISTICS
19958    }
19959    #[inline]
19960    fn cast(syntax: SyntaxNode) -> Option<Self> {
19961        if Self::can_cast(syntax.kind()) {
19962            Some(Self { syntax })
19963        } else {
19964            None
19965        }
19966    }
19967    #[inline]
19968    fn syntax(&self) -> &SyntaxNode {
19969        &self.syntax
19970    }
19971}
19972impl AstNode for AlterStatistics {
19973    #[inline]
19974    fn can_cast(kind: SyntaxKind) -> bool {
19975        kind == SyntaxKind::ALTER_STATISTICS
19976    }
19977    #[inline]
19978    fn cast(syntax: SyntaxNode) -> Option<Self> {
19979        if Self::can_cast(syntax.kind()) {
19980            Some(Self { syntax })
19981        } else {
19982            None
19983        }
19984    }
19985    #[inline]
19986    fn syntax(&self) -> &SyntaxNode {
19987        &self.syntax
19988    }
19989}
19990impl AstNode for AlterSubscription {
19991    #[inline]
19992    fn can_cast(kind: SyntaxKind) -> bool {
19993        kind == SyntaxKind::ALTER_SUBSCRIPTION
19994    }
19995    #[inline]
19996    fn cast(syntax: SyntaxNode) -> Option<Self> {
19997        if Self::can_cast(syntax.kind()) {
19998            Some(Self { syntax })
19999        } else {
20000            None
20001        }
20002    }
20003    #[inline]
20004    fn syntax(&self) -> &SyntaxNode {
20005        &self.syntax
20006    }
20007}
20008impl AstNode for AlterSystem {
20009    #[inline]
20010    fn can_cast(kind: SyntaxKind) -> bool {
20011        kind == SyntaxKind::ALTER_SYSTEM
20012    }
20013    #[inline]
20014    fn cast(syntax: SyntaxNode) -> Option<Self> {
20015        if Self::can_cast(syntax.kind()) {
20016            Some(Self { syntax })
20017        } else {
20018            None
20019        }
20020    }
20021    #[inline]
20022    fn syntax(&self) -> &SyntaxNode {
20023        &self.syntax
20024    }
20025}
20026impl AstNode for AlterTable {
20027    #[inline]
20028    fn can_cast(kind: SyntaxKind) -> bool {
20029        kind == SyntaxKind::ALTER_TABLE
20030    }
20031    #[inline]
20032    fn cast(syntax: SyntaxNode) -> Option<Self> {
20033        if Self::can_cast(syntax.kind()) {
20034            Some(Self { syntax })
20035        } else {
20036            None
20037        }
20038    }
20039    #[inline]
20040    fn syntax(&self) -> &SyntaxNode {
20041        &self.syntax
20042    }
20043}
20044impl AstNode for AlterTablespace {
20045    #[inline]
20046    fn can_cast(kind: SyntaxKind) -> bool {
20047        kind == SyntaxKind::ALTER_TABLESPACE
20048    }
20049    #[inline]
20050    fn cast(syntax: SyntaxNode) -> Option<Self> {
20051        if Self::can_cast(syntax.kind()) {
20052            Some(Self { syntax })
20053        } else {
20054            None
20055        }
20056    }
20057    #[inline]
20058    fn syntax(&self) -> &SyntaxNode {
20059        &self.syntax
20060    }
20061}
20062impl AstNode for AlterTextSearchConfiguration {
20063    #[inline]
20064    fn can_cast(kind: SyntaxKind) -> bool {
20065        kind == SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
20066    }
20067    #[inline]
20068    fn cast(syntax: SyntaxNode) -> Option<Self> {
20069        if Self::can_cast(syntax.kind()) {
20070            Some(Self { syntax })
20071        } else {
20072            None
20073        }
20074    }
20075    #[inline]
20076    fn syntax(&self) -> &SyntaxNode {
20077        &self.syntax
20078    }
20079}
20080impl AstNode for AlterTextSearchDictionary {
20081    #[inline]
20082    fn can_cast(kind: SyntaxKind) -> bool {
20083        kind == SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
20084    }
20085    #[inline]
20086    fn cast(syntax: SyntaxNode) -> Option<Self> {
20087        if Self::can_cast(syntax.kind()) {
20088            Some(Self { syntax })
20089        } else {
20090            None
20091        }
20092    }
20093    #[inline]
20094    fn syntax(&self) -> &SyntaxNode {
20095        &self.syntax
20096    }
20097}
20098impl AstNode for AlterTextSearchParser {
20099    #[inline]
20100    fn can_cast(kind: SyntaxKind) -> bool {
20101        kind == SyntaxKind::ALTER_TEXT_SEARCH_PARSER
20102    }
20103    #[inline]
20104    fn cast(syntax: SyntaxNode) -> Option<Self> {
20105        if Self::can_cast(syntax.kind()) {
20106            Some(Self { syntax })
20107        } else {
20108            None
20109        }
20110    }
20111    #[inline]
20112    fn syntax(&self) -> &SyntaxNode {
20113        &self.syntax
20114    }
20115}
20116impl AstNode for AlterTextSearchTemplate {
20117    #[inline]
20118    fn can_cast(kind: SyntaxKind) -> bool {
20119        kind == SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
20120    }
20121    #[inline]
20122    fn cast(syntax: SyntaxNode) -> Option<Self> {
20123        if Self::can_cast(syntax.kind()) {
20124            Some(Self { syntax })
20125        } else {
20126            None
20127        }
20128    }
20129    #[inline]
20130    fn syntax(&self) -> &SyntaxNode {
20131        &self.syntax
20132    }
20133}
20134impl AstNode for AlterTrigger {
20135    #[inline]
20136    fn can_cast(kind: SyntaxKind) -> bool {
20137        kind == SyntaxKind::ALTER_TRIGGER
20138    }
20139    #[inline]
20140    fn cast(syntax: SyntaxNode) -> Option<Self> {
20141        if Self::can_cast(syntax.kind()) {
20142            Some(Self { syntax })
20143        } else {
20144            None
20145        }
20146    }
20147    #[inline]
20148    fn syntax(&self) -> &SyntaxNode {
20149        &self.syntax
20150    }
20151}
20152impl AstNode for AlterType {
20153    #[inline]
20154    fn can_cast(kind: SyntaxKind) -> bool {
20155        kind == SyntaxKind::ALTER_TYPE
20156    }
20157    #[inline]
20158    fn cast(syntax: SyntaxNode) -> Option<Self> {
20159        if Self::can_cast(syntax.kind()) {
20160            Some(Self { syntax })
20161        } else {
20162            None
20163        }
20164    }
20165    #[inline]
20166    fn syntax(&self) -> &SyntaxNode {
20167        &self.syntax
20168    }
20169}
20170impl AstNode for AlterUser {
20171    #[inline]
20172    fn can_cast(kind: SyntaxKind) -> bool {
20173        kind == SyntaxKind::ALTER_USER
20174    }
20175    #[inline]
20176    fn cast(syntax: SyntaxNode) -> Option<Self> {
20177        if Self::can_cast(syntax.kind()) {
20178            Some(Self { syntax })
20179        } else {
20180            None
20181        }
20182    }
20183    #[inline]
20184    fn syntax(&self) -> &SyntaxNode {
20185        &self.syntax
20186    }
20187}
20188impl AstNode for AlterUserMapping {
20189    #[inline]
20190    fn can_cast(kind: SyntaxKind) -> bool {
20191        kind == SyntaxKind::ALTER_USER_MAPPING
20192    }
20193    #[inline]
20194    fn cast(syntax: SyntaxNode) -> Option<Self> {
20195        if Self::can_cast(syntax.kind()) {
20196            Some(Self { syntax })
20197        } else {
20198            None
20199        }
20200    }
20201    #[inline]
20202    fn syntax(&self) -> &SyntaxNode {
20203        &self.syntax
20204    }
20205}
20206impl AstNode for AlterVertexEdgeLabels {
20207    #[inline]
20208    fn can_cast(kind: SyntaxKind) -> bool {
20209        kind == SyntaxKind::ALTER_VERTEX_EDGE_LABELS
20210    }
20211    #[inline]
20212    fn cast(syntax: SyntaxNode) -> Option<Self> {
20213        if Self::can_cast(syntax.kind()) {
20214            Some(Self { syntax })
20215        } else {
20216            None
20217        }
20218    }
20219    #[inline]
20220    fn syntax(&self) -> &SyntaxNode {
20221        &self.syntax
20222    }
20223}
20224impl AstNode for AlterView {
20225    #[inline]
20226    fn can_cast(kind: SyntaxKind) -> bool {
20227        kind == SyntaxKind::ALTER_VIEW
20228    }
20229    #[inline]
20230    fn cast(syntax: SyntaxNode) -> Option<Self> {
20231        if Self::can_cast(syntax.kind()) {
20232            Some(Self { syntax })
20233        } else {
20234            None
20235        }
20236    }
20237    #[inline]
20238    fn syntax(&self) -> &SyntaxNode {
20239        &self.syntax
20240    }
20241}
20242impl AstNode for Analyze {
20243    #[inline]
20244    fn can_cast(kind: SyntaxKind) -> bool {
20245        kind == SyntaxKind::ANALYZE
20246    }
20247    #[inline]
20248    fn cast(syntax: SyntaxNode) -> Option<Self> {
20249        if Self::can_cast(syntax.kind()) {
20250            Some(Self { syntax })
20251        } else {
20252            None
20253        }
20254    }
20255    #[inline]
20256    fn syntax(&self) -> &SyntaxNode {
20257        &self.syntax
20258    }
20259}
20260impl AstNode for AnyFn {
20261    #[inline]
20262    fn can_cast(kind: SyntaxKind) -> bool {
20263        kind == SyntaxKind::ANY_FN
20264    }
20265    #[inline]
20266    fn cast(syntax: SyntaxNode) -> Option<Self> {
20267        if Self::can_cast(syntax.kind()) {
20268            Some(Self { syntax })
20269        } else {
20270            None
20271        }
20272    }
20273    #[inline]
20274    fn syntax(&self) -> &SyntaxNode {
20275        &self.syntax
20276    }
20277}
20278impl AstNode for Arg {
20279    #[inline]
20280    fn can_cast(kind: SyntaxKind) -> bool {
20281        kind == SyntaxKind::ARG
20282    }
20283    #[inline]
20284    fn cast(syntax: SyntaxNode) -> Option<Self> {
20285        if Self::can_cast(syntax.kind()) {
20286            Some(Self { syntax })
20287        } else {
20288            None
20289        }
20290    }
20291    #[inline]
20292    fn syntax(&self) -> &SyntaxNode {
20293        &self.syntax
20294    }
20295}
20296impl AstNode for ArgList {
20297    #[inline]
20298    fn can_cast(kind: SyntaxKind) -> bool {
20299        kind == SyntaxKind::ARG_LIST
20300    }
20301    #[inline]
20302    fn cast(syntax: SyntaxNode) -> Option<Self> {
20303        if Self::can_cast(syntax.kind()) {
20304            Some(Self { syntax })
20305        } else {
20306            None
20307        }
20308    }
20309    #[inline]
20310    fn syntax(&self) -> &SyntaxNode {
20311        &self.syntax
20312    }
20313}
20314impl AstNode for ArrayExpr {
20315    #[inline]
20316    fn can_cast(kind: SyntaxKind) -> bool {
20317        kind == SyntaxKind::ARRAY_EXPR
20318    }
20319    #[inline]
20320    fn cast(syntax: SyntaxNode) -> Option<Self> {
20321        if Self::can_cast(syntax.kind()) {
20322            Some(Self { syntax })
20323        } else {
20324            None
20325        }
20326    }
20327    #[inline]
20328    fn syntax(&self) -> &SyntaxNode {
20329        &self.syntax
20330    }
20331}
20332impl AstNode for ArrayType {
20333    #[inline]
20334    fn can_cast(kind: SyntaxKind) -> bool {
20335        kind == SyntaxKind::ARRAY_TYPE
20336    }
20337    #[inline]
20338    fn cast(syntax: SyntaxNode) -> Option<Self> {
20339        if Self::can_cast(syntax.kind()) {
20340            Some(Self { syntax })
20341        } else {
20342            None
20343        }
20344    }
20345    #[inline]
20346    fn syntax(&self) -> &SyntaxNode {
20347        &self.syntax
20348    }
20349}
20350impl AstNode for AsFuncOption {
20351    #[inline]
20352    fn can_cast(kind: SyntaxKind) -> bool {
20353        kind == SyntaxKind::AS_FUNC_OPTION
20354    }
20355    #[inline]
20356    fn cast(syntax: SyntaxNode) -> Option<Self> {
20357        if Self::can_cast(syntax.kind()) {
20358            Some(Self { syntax })
20359        } else {
20360            None
20361        }
20362    }
20363    #[inline]
20364    fn syntax(&self) -> &SyntaxNode {
20365        &self.syntax
20366    }
20367}
20368impl AstNode for AsName {
20369    #[inline]
20370    fn can_cast(kind: SyntaxKind) -> bool {
20371        kind == SyntaxKind::AS_NAME
20372    }
20373    #[inline]
20374    fn cast(syntax: SyntaxNode) -> Option<Self> {
20375        if Self::can_cast(syntax.kind()) {
20376            Some(Self { syntax })
20377        } else {
20378            None
20379        }
20380    }
20381    #[inline]
20382    fn syntax(&self) -> &SyntaxNode {
20383        &self.syntax
20384    }
20385}
20386impl AstNode for AsPolicyType {
20387    #[inline]
20388    fn can_cast(kind: SyntaxKind) -> bool {
20389        kind == SyntaxKind::AS_POLICY_TYPE
20390    }
20391    #[inline]
20392    fn cast(syntax: SyntaxNode) -> Option<Self> {
20393        if Self::can_cast(syntax.kind()) {
20394            Some(Self { syntax })
20395        } else {
20396            None
20397        }
20398    }
20399    #[inline]
20400    fn syntax(&self) -> &SyntaxNode {
20401        &self.syntax
20402    }
20403}
20404impl AstNode for AtTimeZone {
20405    #[inline]
20406    fn can_cast(kind: SyntaxKind) -> bool {
20407        kind == SyntaxKind::AT_TIME_ZONE
20408    }
20409    #[inline]
20410    fn cast(syntax: SyntaxNode) -> Option<Self> {
20411        if Self::can_cast(syntax.kind()) {
20412            Some(Self { syntax })
20413        } else {
20414            None
20415        }
20416    }
20417    #[inline]
20418    fn syntax(&self) -> &SyntaxNode {
20419        &self.syntax
20420    }
20421}
20422impl AstNode for AttachPartition {
20423    #[inline]
20424    fn can_cast(kind: SyntaxKind) -> bool {
20425        kind == SyntaxKind::ATTACH_PARTITION
20426    }
20427    #[inline]
20428    fn cast(syntax: SyntaxNode) -> Option<Self> {
20429        if Self::can_cast(syntax.kind()) {
20430            Some(Self { syntax })
20431        } else {
20432            None
20433        }
20434    }
20435    #[inline]
20436    fn syntax(&self) -> &SyntaxNode {
20437        &self.syntax
20438    }
20439}
20440impl AstNode for AttributeList {
20441    #[inline]
20442    fn can_cast(kind: SyntaxKind) -> bool {
20443        kind == SyntaxKind::ATTRIBUTE_LIST
20444    }
20445    #[inline]
20446    fn cast(syntax: SyntaxNode) -> Option<Self> {
20447        if Self::can_cast(syntax.kind()) {
20448            Some(Self { syntax })
20449        } else {
20450            None
20451        }
20452    }
20453    #[inline]
20454    fn syntax(&self) -> &SyntaxNode {
20455        &self.syntax
20456    }
20457}
20458impl AstNode for AttributeOption {
20459    #[inline]
20460    fn can_cast(kind: SyntaxKind) -> bool {
20461        kind == SyntaxKind::ATTRIBUTE_OPTION
20462    }
20463    #[inline]
20464    fn cast(syntax: SyntaxNode) -> Option<Self> {
20465        if Self::can_cast(syntax.kind()) {
20466            Some(Self { syntax })
20467        } else {
20468            None
20469        }
20470    }
20471    #[inline]
20472    fn syntax(&self) -> &SyntaxNode {
20473        &self.syntax
20474    }
20475}
20476impl AstNode for AttributeValue {
20477    #[inline]
20478    fn can_cast(kind: SyntaxKind) -> bool {
20479        kind == SyntaxKind::ATTRIBUTE_VALUE
20480    }
20481    #[inline]
20482    fn cast(syntax: SyntaxNode) -> Option<Self> {
20483        if Self::can_cast(syntax.kind()) {
20484            Some(Self { syntax })
20485        } else {
20486            None
20487        }
20488    }
20489    #[inline]
20490    fn syntax(&self) -> &SyntaxNode {
20491        &self.syntax
20492    }
20493}
20494impl AstNode for BeforeValue {
20495    #[inline]
20496    fn can_cast(kind: SyntaxKind) -> bool {
20497        kind == SyntaxKind::BEFORE_VALUE
20498    }
20499    #[inline]
20500    fn cast(syntax: SyntaxNode) -> Option<Self> {
20501        if Self::can_cast(syntax.kind()) {
20502            Some(Self { syntax })
20503        } else {
20504            None
20505        }
20506    }
20507    #[inline]
20508    fn syntax(&self) -> &SyntaxNode {
20509        &self.syntax
20510    }
20511}
20512impl AstNode for Begin {
20513    #[inline]
20514    fn can_cast(kind: SyntaxKind) -> bool {
20515        kind == SyntaxKind::BEGIN
20516    }
20517    #[inline]
20518    fn cast(syntax: SyntaxNode) -> Option<Self> {
20519        if Self::can_cast(syntax.kind()) {
20520            Some(Self { syntax })
20521        } else {
20522            None
20523        }
20524    }
20525    #[inline]
20526    fn syntax(&self) -> &SyntaxNode {
20527        &self.syntax
20528    }
20529}
20530impl AstNode for BeginFuncOption {
20531    #[inline]
20532    fn can_cast(kind: SyntaxKind) -> bool {
20533        kind == SyntaxKind::BEGIN_FUNC_OPTION
20534    }
20535    #[inline]
20536    fn cast(syntax: SyntaxNode) -> Option<Self> {
20537        if Self::can_cast(syntax.kind()) {
20538            Some(Self { syntax })
20539        } else {
20540            None
20541        }
20542    }
20543    #[inline]
20544    fn syntax(&self) -> &SyntaxNode {
20545        &self.syntax
20546    }
20547}
20548impl AstNode for BeginFuncOptionList {
20549    #[inline]
20550    fn can_cast(kind: SyntaxKind) -> bool {
20551        kind == SyntaxKind::BEGIN_FUNC_OPTION_LIST
20552    }
20553    #[inline]
20554    fn cast(syntax: SyntaxNode) -> Option<Self> {
20555        if Self::can_cast(syntax.kind()) {
20556            Some(Self { syntax })
20557        } else {
20558            None
20559        }
20560    }
20561    #[inline]
20562    fn syntax(&self) -> &SyntaxNode {
20563        &self.syntax
20564    }
20565}
20566impl AstNode for BetweenExpr {
20567    #[inline]
20568    fn can_cast(kind: SyntaxKind) -> bool {
20569        kind == SyntaxKind::BETWEEN_EXPR
20570    }
20571    #[inline]
20572    fn cast(syntax: SyntaxNode) -> Option<Self> {
20573        if Self::can_cast(syntax.kind()) {
20574            Some(Self { syntax })
20575        } else {
20576            None
20577        }
20578    }
20579    #[inline]
20580    fn syntax(&self) -> &SyntaxNode {
20581        &self.syntax
20582    }
20583}
20584impl AstNode for BinExpr {
20585    #[inline]
20586    fn can_cast(kind: SyntaxKind) -> bool {
20587        kind == SyntaxKind::BIN_EXPR
20588    }
20589    #[inline]
20590    fn cast(syntax: SyntaxNode) -> Option<Self> {
20591        if Self::can_cast(syntax.kind()) {
20592            Some(Self { syntax })
20593        } else {
20594            None
20595        }
20596    }
20597    #[inline]
20598    fn syntax(&self) -> &SyntaxNode {
20599        &self.syntax
20600    }
20601}
20602impl AstNode for BitType {
20603    #[inline]
20604    fn can_cast(kind: SyntaxKind) -> bool {
20605        kind == SyntaxKind::BIT_TYPE
20606    }
20607    #[inline]
20608    fn cast(syntax: SyntaxNode) -> Option<Self> {
20609        if Self::can_cast(syntax.kind()) {
20610            Some(Self { syntax })
20611        } else {
20612            None
20613        }
20614    }
20615    #[inline]
20616    fn syntax(&self) -> &SyntaxNode {
20617        &self.syntax
20618    }
20619}
20620impl AstNode for Call {
20621    #[inline]
20622    fn can_cast(kind: SyntaxKind) -> bool {
20623        kind == SyntaxKind::CALL
20624    }
20625    #[inline]
20626    fn cast(syntax: SyntaxNode) -> Option<Self> {
20627        if Self::can_cast(syntax.kind()) {
20628            Some(Self { syntax })
20629        } else {
20630            None
20631        }
20632    }
20633    #[inline]
20634    fn syntax(&self) -> &SyntaxNode {
20635        &self.syntax
20636    }
20637}
20638impl AstNode for CallExpr {
20639    #[inline]
20640    fn can_cast(kind: SyntaxKind) -> bool {
20641        kind == SyntaxKind::CALL_EXPR
20642    }
20643    #[inline]
20644    fn cast(syntax: SyntaxNode) -> Option<Self> {
20645        if Self::can_cast(syntax.kind()) {
20646            Some(Self { syntax })
20647        } else {
20648            None
20649        }
20650    }
20651    #[inline]
20652    fn syntax(&self) -> &SyntaxNode {
20653        &self.syntax
20654    }
20655}
20656impl AstNode for Cascade {
20657    #[inline]
20658    fn can_cast(kind: SyntaxKind) -> bool {
20659        kind == SyntaxKind::CASCADE
20660    }
20661    #[inline]
20662    fn cast(syntax: SyntaxNode) -> Option<Self> {
20663        if Self::can_cast(syntax.kind()) {
20664            Some(Self { syntax })
20665        } else {
20666            None
20667        }
20668    }
20669    #[inline]
20670    fn syntax(&self) -> &SyntaxNode {
20671        &self.syntax
20672    }
20673}
20674impl AstNode for CaseExpr {
20675    #[inline]
20676    fn can_cast(kind: SyntaxKind) -> bool {
20677        kind == SyntaxKind::CASE_EXPR
20678    }
20679    #[inline]
20680    fn cast(syntax: SyntaxNode) -> Option<Self> {
20681        if Self::can_cast(syntax.kind()) {
20682            Some(Self { syntax })
20683        } else {
20684            None
20685        }
20686    }
20687    #[inline]
20688    fn syntax(&self) -> &SyntaxNode {
20689        &self.syntax
20690    }
20691}
20692impl AstNode for CastExpr {
20693    #[inline]
20694    fn can_cast(kind: SyntaxKind) -> bool {
20695        kind == SyntaxKind::CAST_EXPR
20696    }
20697    #[inline]
20698    fn cast(syntax: SyntaxNode) -> Option<Self> {
20699        if Self::can_cast(syntax.kind()) {
20700            Some(Self { syntax })
20701        } else {
20702            None
20703        }
20704    }
20705    #[inline]
20706    fn syntax(&self) -> &SyntaxNode {
20707        &self.syntax
20708    }
20709}
20710impl AstNode for CastSig {
20711    #[inline]
20712    fn can_cast(kind: SyntaxKind) -> bool {
20713        kind == SyntaxKind::CAST_SIG
20714    }
20715    #[inline]
20716    fn cast(syntax: SyntaxNode) -> Option<Self> {
20717        if Self::can_cast(syntax.kind()) {
20718            Some(Self { syntax })
20719        } else {
20720            None
20721        }
20722    }
20723    #[inline]
20724    fn syntax(&self) -> &SyntaxNode {
20725        &self.syntax
20726    }
20727}
20728impl AstNode for CharType {
20729    #[inline]
20730    fn can_cast(kind: SyntaxKind) -> bool {
20731        kind == SyntaxKind::CHAR_TYPE
20732    }
20733    #[inline]
20734    fn cast(syntax: SyntaxNode) -> Option<Self> {
20735        if Self::can_cast(syntax.kind()) {
20736            Some(Self { syntax })
20737        } else {
20738            None
20739        }
20740    }
20741    #[inline]
20742    fn syntax(&self) -> &SyntaxNode {
20743        &self.syntax
20744    }
20745}
20746impl AstNode for CheckConstraint {
20747    #[inline]
20748    fn can_cast(kind: SyntaxKind) -> bool {
20749        kind == SyntaxKind::CHECK_CONSTRAINT
20750    }
20751    #[inline]
20752    fn cast(syntax: SyntaxNode) -> Option<Self> {
20753        if Self::can_cast(syntax.kind()) {
20754            Some(Self { syntax })
20755        } else {
20756            None
20757        }
20758    }
20759    #[inline]
20760    fn syntax(&self) -> &SyntaxNode {
20761        &self.syntax
20762    }
20763}
20764impl AstNode for Checkpoint {
20765    #[inline]
20766    fn can_cast(kind: SyntaxKind) -> bool {
20767        kind == SyntaxKind::CHECKPOINT
20768    }
20769    #[inline]
20770    fn cast(syntax: SyntaxNode) -> Option<Self> {
20771        if Self::can_cast(syntax.kind()) {
20772            Some(Self { syntax })
20773        } else {
20774            None
20775        }
20776    }
20777    #[inline]
20778    fn syntax(&self) -> &SyntaxNode {
20779        &self.syntax
20780    }
20781}
20782impl AstNode for Close {
20783    #[inline]
20784    fn can_cast(kind: SyntaxKind) -> bool {
20785        kind == SyntaxKind::CLOSE
20786    }
20787    #[inline]
20788    fn cast(syntax: SyntaxNode) -> Option<Self> {
20789        if Self::can_cast(syntax.kind()) {
20790            Some(Self { syntax })
20791        } else {
20792            None
20793        }
20794    }
20795    #[inline]
20796    fn syntax(&self) -> &SyntaxNode {
20797        &self.syntax
20798    }
20799}
20800impl AstNode for Cluster {
20801    #[inline]
20802    fn can_cast(kind: SyntaxKind) -> bool {
20803        kind == SyntaxKind::CLUSTER
20804    }
20805    #[inline]
20806    fn cast(syntax: SyntaxNode) -> Option<Self> {
20807        if Self::can_cast(syntax.kind()) {
20808            Some(Self { syntax })
20809        } else {
20810            None
20811        }
20812    }
20813    #[inline]
20814    fn syntax(&self) -> &SyntaxNode {
20815        &self.syntax
20816    }
20817}
20818impl AstNode for ClusterOn {
20819    #[inline]
20820    fn can_cast(kind: SyntaxKind) -> bool {
20821        kind == SyntaxKind::CLUSTER_ON
20822    }
20823    #[inline]
20824    fn cast(syntax: SyntaxNode) -> Option<Self> {
20825        if Self::can_cast(syntax.kind()) {
20826            Some(Self { syntax })
20827        } else {
20828            None
20829        }
20830    }
20831    #[inline]
20832    fn syntax(&self) -> &SyntaxNode {
20833        &self.syntax
20834    }
20835}
20836impl AstNode for Collate {
20837    #[inline]
20838    fn can_cast(kind: SyntaxKind) -> bool {
20839        kind == SyntaxKind::COLLATE
20840    }
20841    #[inline]
20842    fn cast(syntax: SyntaxNode) -> Option<Self> {
20843        if Self::can_cast(syntax.kind()) {
20844            Some(Self { syntax })
20845        } else {
20846            None
20847        }
20848    }
20849    #[inline]
20850    fn syntax(&self) -> &SyntaxNode {
20851        &self.syntax
20852    }
20853}
20854impl AstNode for CollationForFn {
20855    #[inline]
20856    fn can_cast(kind: SyntaxKind) -> bool {
20857        kind == SyntaxKind::COLLATION_FOR_FN
20858    }
20859    #[inline]
20860    fn cast(syntax: SyntaxNode) -> Option<Self> {
20861        if Self::can_cast(syntax.kind()) {
20862            Some(Self { syntax })
20863        } else {
20864            None
20865        }
20866    }
20867    #[inline]
20868    fn syntax(&self) -> &SyntaxNode {
20869        &self.syntax
20870    }
20871}
20872impl AstNode for ColonColon {
20873    #[inline]
20874    fn can_cast(kind: SyntaxKind) -> bool {
20875        kind == SyntaxKind::COLON_COLON
20876    }
20877    #[inline]
20878    fn cast(syntax: SyntaxNode) -> Option<Self> {
20879        if Self::can_cast(syntax.kind()) {
20880            Some(Self { syntax })
20881        } else {
20882            None
20883        }
20884    }
20885    #[inline]
20886    fn syntax(&self) -> &SyntaxNode {
20887        &self.syntax
20888    }
20889}
20890impl AstNode for ColonEq {
20891    #[inline]
20892    fn can_cast(kind: SyntaxKind) -> bool {
20893        kind == SyntaxKind::COLON_EQ
20894    }
20895    #[inline]
20896    fn cast(syntax: SyntaxNode) -> Option<Self> {
20897        if Self::can_cast(syntax.kind()) {
20898            Some(Self { syntax })
20899        } else {
20900            None
20901        }
20902    }
20903    #[inline]
20904    fn syntax(&self) -> &SyntaxNode {
20905        &self.syntax
20906    }
20907}
20908impl AstNode for Column {
20909    #[inline]
20910    fn can_cast(kind: SyntaxKind) -> bool {
20911        kind == SyntaxKind::COLUMN
20912    }
20913    #[inline]
20914    fn cast(syntax: SyntaxNode) -> Option<Self> {
20915        if Self::can_cast(syntax.kind()) {
20916            Some(Self { syntax })
20917        } else {
20918            None
20919        }
20920    }
20921    #[inline]
20922    fn syntax(&self) -> &SyntaxNode {
20923        &self.syntax
20924    }
20925}
20926impl AstNode for ColumnList {
20927    #[inline]
20928    fn can_cast(kind: SyntaxKind) -> bool {
20929        kind == SyntaxKind::COLUMN_LIST
20930    }
20931    #[inline]
20932    fn cast(syntax: SyntaxNode) -> Option<Self> {
20933        if Self::can_cast(syntax.kind()) {
20934            Some(Self { syntax })
20935        } else {
20936            None
20937        }
20938    }
20939    #[inline]
20940    fn syntax(&self) -> &SyntaxNode {
20941        &self.syntax
20942    }
20943}
20944impl AstNode for CommentOn {
20945    #[inline]
20946    fn can_cast(kind: SyntaxKind) -> bool {
20947        kind == SyntaxKind::COMMENT_ON
20948    }
20949    #[inline]
20950    fn cast(syntax: SyntaxNode) -> Option<Self> {
20951        if Self::can_cast(syntax.kind()) {
20952            Some(Self { syntax })
20953        } else {
20954            None
20955        }
20956    }
20957    #[inline]
20958    fn syntax(&self) -> &SyntaxNode {
20959        &self.syntax
20960    }
20961}
20962impl AstNode for Commit {
20963    #[inline]
20964    fn can_cast(kind: SyntaxKind) -> bool {
20965        kind == SyntaxKind::COMMIT
20966    }
20967    #[inline]
20968    fn cast(syntax: SyntaxNode) -> Option<Self> {
20969        if Self::can_cast(syntax.kind()) {
20970            Some(Self { syntax })
20971        } else {
20972            None
20973        }
20974    }
20975    #[inline]
20976    fn syntax(&self) -> &SyntaxNode {
20977        &self.syntax
20978    }
20979}
20980impl AstNode for CompoundSelect {
20981    #[inline]
20982    fn can_cast(kind: SyntaxKind) -> bool {
20983        kind == SyntaxKind::COMPOUND_SELECT
20984    }
20985    #[inline]
20986    fn cast(syntax: SyntaxNode) -> Option<Self> {
20987        if Self::can_cast(syntax.kind()) {
20988            Some(Self { syntax })
20989        } else {
20990            None
20991        }
20992    }
20993    #[inline]
20994    fn syntax(&self) -> &SyntaxNode {
20995        &self.syntax
20996    }
20997}
20998impl AstNode for CompressionMethod {
20999    #[inline]
21000    fn can_cast(kind: SyntaxKind) -> bool {
21001        kind == SyntaxKind::COMPRESSION_METHOD
21002    }
21003    #[inline]
21004    fn cast(syntax: SyntaxNode) -> Option<Self> {
21005        if Self::can_cast(syntax.kind()) {
21006            Some(Self { syntax })
21007        } else {
21008            None
21009        }
21010    }
21011    #[inline]
21012    fn syntax(&self) -> &SyntaxNode {
21013        &self.syntax
21014    }
21015}
21016impl AstNode for ConflictDoNothing {
21017    #[inline]
21018    fn can_cast(kind: SyntaxKind) -> bool {
21019        kind == SyntaxKind::CONFLICT_DO_NOTHING
21020    }
21021    #[inline]
21022    fn cast(syntax: SyntaxNode) -> Option<Self> {
21023        if Self::can_cast(syntax.kind()) {
21024            Some(Self { syntax })
21025        } else {
21026            None
21027        }
21028    }
21029    #[inline]
21030    fn syntax(&self) -> &SyntaxNode {
21031        &self.syntax
21032    }
21033}
21034impl AstNode for ConflictDoSelect {
21035    #[inline]
21036    fn can_cast(kind: SyntaxKind) -> bool {
21037        kind == SyntaxKind::CONFLICT_DO_SELECT
21038    }
21039    #[inline]
21040    fn cast(syntax: SyntaxNode) -> Option<Self> {
21041        if Self::can_cast(syntax.kind()) {
21042            Some(Self { syntax })
21043        } else {
21044            None
21045        }
21046    }
21047    #[inline]
21048    fn syntax(&self) -> &SyntaxNode {
21049        &self.syntax
21050    }
21051}
21052impl AstNode for ConflictDoUpdateSet {
21053    #[inline]
21054    fn can_cast(kind: SyntaxKind) -> bool {
21055        kind == SyntaxKind::CONFLICT_DO_UPDATE_SET
21056    }
21057    #[inline]
21058    fn cast(syntax: SyntaxNode) -> Option<Self> {
21059        if Self::can_cast(syntax.kind()) {
21060            Some(Self { syntax })
21061        } else {
21062            None
21063        }
21064    }
21065    #[inline]
21066    fn syntax(&self) -> &SyntaxNode {
21067        &self.syntax
21068    }
21069}
21070impl AstNode for ConflictIndexItem {
21071    #[inline]
21072    fn can_cast(kind: SyntaxKind) -> bool {
21073        kind == SyntaxKind::CONFLICT_INDEX_ITEM
21074    }
21075    #[inline]
21076    fn cast(syntax: SyntaxNode) -> Option<Self> {
21077        if Self::can_cast(syntax.kind()) {
21078            Some(Self { syntax })
21079        } else {
21080            None
21081        }
21082    }
21083    #[inline]
21084    fn syntax(&self) -> &SyntaxNode {
21085        &self.syntax
21086    }
21087}
21088impl AstNode for ConflictIndexItemList {
21089    #[inline]
21090    fn can_cast(kind: SyntaxKind) -> bool {
21091        kind == SyntaxKind::CONFLICT_INDEX_ITEM_LIST
21092    }
21093    #[inline]
21094    fn cast(syntax: SyntaxNode) -> Option<Self> {
21095        if Self::can_cast(syntax.kind()) {
21096            Some(Self { syntax })
21097        } else {
21098            None
21099        }
21100    }
21101    #[inline]
21102    fn syntax(&self) -> &SyntaxNode {
21103        &self.syntax
21104    }
21105}
21106impl AstNode for ConflictOnConstraint {
21107    #[inline]
21108    fn can_cast(kind: SyntaxKind) -> bool {
21109        kind == SyntaxKind::CONFLICT_ON_CONSTRAINT
21110    }
21111    #[inline]
21112    fn cast(syntax: SyntaxNode) -> Option<Self> {
21113        if Self::can_cast(syntax.kind()) {
21114            Some(Self { syntax })
21115        } else {
21116            None
21117        }
21118    }
21119    #[inline]
21120    fn syntax(&self) -> &SyntaxNode {
21121        &self.syntax
21122    }
21123}
21124impl AstNode for ConflictOnIndex {
21125    #[inline]
21126    fn can_cast(kind: SyntaxKind) -> bool {
21127        kind == SyntaxKind::CONFLICT_ON_INDEX
21128    }
21129    #[inline]
21130    fn cast(syntax: SyntaxNode) -> Option<Self> {
21131        if Self::can_cast(syntax.kind()) {
21132            Some(Self { syntax })
21133        } else {
21134            None
21135        }
21136    }
21137    #[inline]
21138    fn syntax(&self) -> &SyntaxNode {
21139        &self.syntax
21140    }
21141}
21142impl AstNode for ConstraintExclusion {
21143    #[inline]
21144    fn can_cast(kind: SyntaxKind) -> bool {
21145        kind == SyntaxKind::CONSTRAINT_EXCLUSION
21146    }
21147    #[inline]
21148    fn cast(syntax: SyntaxNode) -> Option<Self> {
21149        if Self::can_cast(syntax.kind()) {
21150            Some(Self { syntax })
21151        } else {
21152            None
21153        }
21154    }
21155    #[inline]
21156    fn syntax(&self) -> &SyntaxNode {
21157        &self.syntax
21158    }
21159}
21160impl AstNode for ConstraintExclusionList {
21161    #[inline]
21162    fn can_cast(kind: SyntaxKind) -> bool {
21163        kind == SyntaxKind::CONSTRAINT_EXCLUSION_LIST
21164    }
21165    #[inline]
21166    fn cast(syntax: SyntaxNode) -> Option<Self> {
21167        if Self::can_cast(syntax.kind()) {
21168            Some(Self { syntax })
21169        } else {
21170            None
21171        }
21172    }
21173    #[inline]
21174    fn syntax(&self) -> &SyntaxNode {
21175        &self.syntax
21176    }
21177}
21178impl AstNode for ConstraintIncludeClause {
21179    #[inline]
21180    fn can_cast(kind: SyntaxKind) -> bool {
21181        kind == SyntaxKind::CONSTRAINT_INCLUDE_CLAUSE
21182    }
21183    #[inline]
21184    fn cast(syntax: SyntaxNode) -> Option<Self> {
21185        if Self::can_cast(syntax.kind()) {
21186            Some(Self { syntax })
21187        } else {
21188            None
21189        }
21190    }
21191    #[inline]
21192    fn syntax(&self) -> &SyntaxNode {
21193        &self.syntax
21194    }
21195}
21196impl AstNode for ConstraintIndexMethod {
21197    #[inline]
21198    fn can_cast(kind: SyntaxKind) -> bool {
21199        kind == SyntaxKind::CONSTRAINT_INDEX_METHOD
21200    }
21201    #[inline]
21202    fn cast(syntax: SyntaxNode) -> Option<Self> {
21203        if Self::can_cast(syntax.kind()) {
21204            Some(Self { syntax })
21205        } else {
21206            None
21207        }
21208    }
21209    #[inline]
21210    fn syntax(&self) -> &SyntaxNode {
21211        &self.syntax
21212    }
21213}
21214impl AstNode for ConstraintIndexTablespace {
21215    #[inline]
21216    fn can_cast(kind: SyntaxKind) -> bool {
21217        kind == SyntaxKind::CONSTRAINT_INDEX_TABLESPACE
21218    }
21219    #[inline]
21220    fn cast(syntax: SyntaxNode) -> Option<Self> {
21221        if Self::can_cast(syntax.kind()) {
21222            Some(Self { syntax })
21223        } else {
21224            None
21225        }
21226    }
21227    #[inline]
21228    fn syntax(&self) -> &SyntaxNode {
21229        &self.syntax
21230    }
21231}
21232impl AstNode for ConstraintName {
21233    #[inline]
21234    fn can_cast(kind: SyntaxKind) -> bool {
21235        kind == SyntaxKind::CONSTRAINT_NAME
21236    }
21237    #[inline]
21238    fn cast(syntax: SyntaxNode) -> Option<Self> {
21239        if Self::can_cast(syntax.kind()) {
21240            Some(Self { syntax })
21241        } else {
21242            None
21243        }
21244    }
21245    #[inline]
21246    fn syntax(&self) -> &SyntaxNode {
21247        &self.syntax
21248    }
21249}
21250impl AstNode for Copy {
21251    #[inline]
21252    fn can_cast(kind: SyntaxKind) -> bool {
21253        kind == SyntaxKind::COPY
21254    }
21255    #[inline]
21256    fn cast(syntax: SyntaxNode) -> Option<Self> {
21257        if Self::can_cast(syntax.kind()) {
21258            Some(Self { syntax })
21259        } else {
21260            None
21261        }
21262    }
21263    #[inline]
21264    fn syntax(&self) -> &SyntaxNode {
21265        &self.syntax
21266    }
21267}
21268impl AstNode for CopyOption {
21269    #[inline]
21270    fn can_cast(kind: SyntaxKind) -> bool {
21271        kind == SyntaxKind::COPY_OPTION
21272    }
21273    #[inline]
21274    fn cast(syntax: SyntaxNode) -> Option<Self> {
21275        if Self::can_cast(syntax.kind()) {
21276            Some(Self { syntax })
21277        } else {
21278            None
21279        }
21280    }
21281    #[inline]
21282    fn syntax(&self) -> &SyntaxNode {
21283        &self.syntax
21284    }
21285}
21286impl AstNode for CopyOptionList {
21287    #[inline]
21288    fn can_cast(kind: SyntaxKind) -> bool {
21289        kind == SyntaxKind::COPY_OPTION_LIST
21290    }
21291    #[inline]
21292    fn cast(syntax: SyntaxNode) -> Option<Self> {
21293        if Self::can_cast(syntax.kind()) {
21294            Some(Self { syntax })
21295        } else {
21296            None
21297        }
21298    }
21299    #[inline]
21300    fn syntax(&self) -> &SyntaxNode {
21301        &self.syntax
21302    }
21303}
21304impl AstNode for CostFuncOption {
21305    #[inline]
21306    fn can_cast(kind: SyntaxKind) -> bool {
21307        kind == SyntaxKind::COST_FUNC_OPTION
21308    }
21309    #[inline]
21310    fn cast(syntax: SyntaxNode) -> Option<Self> {
21311        if Self::can_cast(syntax.kind()) {
21312            Some(Self { syntax })
21313        } else {
21314            None
21315        }
21316    }
21317    #[inline]
21318    fn syntax(&self) -> &SyntaxNode {
21319        &self.syntax
21320    }
21321}
21322impl AstNode for CreateAccessMethod {
21323    #[inline]
21324    fn can_cast(kind: SyntaxKind) -> bool {
21325        kind == SyntaxKind::CREATE_ACCESS_METHOD
21326    }
21327    #[inline]
21328    fn cast(syntax: SyntaxNode) -> Option<Self> {
21329        if Self::can_cast(syntax.kind()) {
21330            Some(Self { syntax })
21331        } else {
21332            None
21333        }
21334    }
21335    #[inline]
21336    fn syntax(&self) -> &SyntaxNode {
21337        &self.syntax
21338    }
21339}
21340impl AstNode for CreateAggregate {
21341    #[inline]
21342    fn can_cast(kind: SyntaxKind) -> bool {
21343        kind == SyntaxKind::CREATE_AGGREGATE
21344    }
21345    #[inline]
21346    fn cast(syntax: SyntaxNode) -> Option<Self> {
21347        if Self::can_cast(syntax.kind()) {
21348            Some(Self { syntax })
21349        } else {
21350            None
21351        }
21352    }
21353    #[inline]
21354    fn syntax(&self) -> &SyntaxNode {
21355        &self.syntax
21356    }
21357}
21358impl AstNode for CreateCast {
21359    #[inline]
21360    fn can_cast(kind: SyntaxKind) -> bool {
21361        kind == SyntaxKind::CREATE_CAST
21362    }
21363    #[inline]
21364    fn cast(syntax: SyntaxNode) -> Option<Self> {
21365        if Self::can_cast(syntax.kind()) {
21366            Some(Self { syntax })
21367        } else {
21368            None
21369        }
21370    }
21371    #[inline]
21372    fn syntax(&self) -> &SyntaxNode {
21373        &self.syntax
21374    }
21375}
21376impl AstNode for CreateCollation {
21377    #[inline]
21378    fn can_cast(kind: SyntaxKind) -> bool {
21379        kind == SyntaxKind::CREATE_COLLATION
21380    }
21381    #[inline]
21382    fn cast(syntax: SyntaxNode) -> Option<Self> {
21383        if Self::can_cast(syntax.kind()) {
21384            Some(Self { syntax })
21385        } else {
21386            None
21387        }
21388    }
21389    #[inline]
21390    fn syntax(&self) -> &SyntaxNode {
21391        &self.syntax
21392    }
21393}
21394impl AstNode for CreateConversion {
21395    #[inline]
21396    fn can_cast(kind: SyntaxKind) -> bool {
21397        kind == SyntaxKind::CREATE_CONVERSION
21398    }
21399    #[inline]
21400    fn cast(syntax: SyntaxNode) -> Option<Self> {
21401        if Self::can_cast(syntax.kind()) {
21402            Some(Self { syntax })
21403        } else {
21404            None
21405        }
21406    }
21407    #[inline]
21408    fn syntax(&self) -> &SyntaxNode {
21409        &self.syntax
21410    }
21411}
21412impl AstNode for CreateDatabase {
21413    #[inline]
21414    fn can_cast(kind: SyntaxKind) -> bool {
21415        kind == SyntaxKind::CREATE_DATABASE
21416    }
21417    #[inline]
21418    fn cast(syntax: SyntaxNode) -> Option<Self> {
21419        if Self::can_cast(syntax.kind()) {
21420            Some(Self { syntax })
21421        } else {
21422            None
21423        }
21424    }
21425    #[inline]
21426    fn syntax(&self) -> &SyntaxNode {
21427        &self.syntax
21428    }
21429}
21430impl AstNode for CreateDatabaseOption {
21431    #[inline]
21432    fn can_cast(kind: SyntaxKind) -> bool {
21433        kind == SyntaxKind::CREATE_DATABASE_OPTION
21434    }
21435    #[inline]
21436    fn cast(syntax: SyntaxNode) -> Option<Self> {
21437        if Self::can_cast(syntax.kind()) {
21438            Some(Self { syntax })
21439        } else {
21440            None
21441        }
21442    }
21443    #[inline]
21444    fn syntax(&self) -> &SyntaxNode {
21445        &self.syntax
21446    }
21447}
21448impl AstNode for CreateDatabaseOptionList {
21449    #[inline]
21450    fn can_cast(kind: SyntaxKind) -> bool {
21451        kind == SyntaxKind::CREATE_DATABASE_OPTION_LIST
21452    }
21453    #[inline]
21454    fn cast(syntax: SyntaxNode) -> Option<Self> {
21455        if Self::can_cast(syntax.kind()) {
21456            Some(Self { syntax })
21457        } else {
21458            None
21459        }
21460    }
21461    #[inline]
21462    fn syntax(&self) -> &SyntaxNode {
21463        &self.syntax
21464    }
21465}
21466impl AstNode for CreateDomain {
21467    #[inline]
21468    fn can_cast(kind: SyntaxKind) -> bool {
21469        kind == SyntaxKind::CREATE_DOMAIN
21470    }
21471    #[inline]
21472    fn cast(syntax: SyntaxNode) -> Option<Self> {
21473        if Self::can_cast(syntax.kind()) {
21474            Some(Self { syntax })
21475        } else {
21476            None
21477        }
21478    }
21479    #[inline]
21480    fn syntax(&self) -> &SyntaxNode {
21481        &self.syntax
21482    }
21483}
21484impl AstNode for CreateEventTrigger {
21485    #[inline]
21486    fn can_cast(kind: SyntaxKind) -> bool {
21487        kind == SyntaxKind::CREATE_EVENT_TRIGGER
21488    }
21489    #[inline]
21490    fn cast(syntax: SyntaxNode) -> Option<Self> {
21491        if Self::can_cast(syntax.kind()) {
21492            Some(Self { syntax })
21493        } else {
21494            None
21495        }
21496    }
21497    #[inline]
21498    fn syntax(&self) -> &SyntaxNode {
21499        &self.syntax
21500    }
21501}
21502impl AstNode for CreateExtension {
21503    #[inline]
21504    fn can_cast(kind: SyntaxKind) -> bool {
21505        kind == SyntaxKind::CREATE_EXTENSION
21506    }
21507    #[inline]
21508    fn cast(syntax: SyntaxNode) -> Option<Self> {
21509        if Self::can_cast(syntax.kind()) {
21510            Some(Self { syntax })
21511        } else {
21512            None
21513        }
21514    }
21515    #[inline]
21516    fn syntax(&self) -> &SyntaxNode {
21517        &self.syntax
21518    }
21519}
21520impl AstNode for CreateForeignDataWrapper {
21521    #[inline]
21522    fn can_cast(kind: SyntaxKind) -> bool {
21523        kind == SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
21524    }
21525    #[inline]
21526    fn cast(syntax: SyntaxNode) -> Option<Self> {
21527        if Self::can_cast(syntax.kind()) {
21528            Some(Self { syntax })
21529        } else {
21530            None
21531        }
21532    }
21533    #[inline]
21534    fn syntax(&self) -> &SyntaxNode {
21535        &self.syntax
21536    }
21537}
21538impl AstNode for CreateForeignTable {
21539    #[inline]
21540    fn can_cast(kind: SyntaxKind) -> bool {
21541        kind == SyntaxKind::CREATE_FOREIGN_TABLE
21542    }
21543    #[inline]
21544    fn cast(syntax: SyntaxNode) -> Option<Self> {
21545        if Self::can_cast(syntax.kind()) {
21546            Some(Self { syntax })
21547        } else {
21548            None
21549        }
21550    }
21551    #[inline]
21552    fn syntax(&self) -> &SyntaxNode {
21553        &self.syntax
21554    }
21555}
21556impl AstNode for CreateFunction {
21557    #[inline]
21558    fn can_cast(kind: SyntaxKind) -> bool {
21559        kind == SyntaxKind::CREATE_FUNCTION
21560    }
21561    #[inline]
21562    fn cast(syntax: SyntaxNode) -> Option<Self> {
21563        if Self::can_cast(syntax.kind()) {
21564            Some(Self { syntax })
21565        } else {
21566            None
21567        }
21568    }
21569    #[inline]
21570    fn syntax(&self) -> &SyntaxNode {
21571        &self.syntax
21572    }
21573}
21574impl AstNode for CreateGroup {
21575    #[inline]
21576    fn can_cast(kind: SyntaxKind) -> bool {
21577        kind == SyntaxKind::CREATE_GROUP
21578    }
21579    #[inline]
21580    fn cast(syntax: SyntaxNode) -> Option<Self> {
21581        if Self::can_cast(syntax.kind()) {
21582            Some(Self { syntax })
21583        } else {
21584            None
21585        }
21586    }
21587    #[inline]
21588    fn syntax(&self) -> &SyntaxNode {
21589        &self.syntax
21590    }
21591}
21592impl AstNode for CreateIndex {
21593    #[inline]
21594    fn can_cast(kind: SyntaxKind) -> bool {
21595        kind == SyntaxKind::CREATE_INDEX
21596    }
21597    #[inline]
21598    fn cast(syntax: SyntaxNode) -> Option<Self> {
21599        if Self::can_cast(syntax.kind()) {
21600            Some(Self { syntax })
21601        } else {
21602            None
21603        }
21604    }
21605    #[inline]
21606    fn syntax(&self) -> &SyntaxNode {
21607        &self.syntax
21608    }
21609}
21610impl AstNode for CreateLanguage {
21611    #[inline]
21612    fn can_cast(kind: SyntaxKind) -> bool {
21613        kind == SyntaxKind::CREATE_LANGUAGE
21614    }
21615    #[inline]
21616    fn cast(syntax: SyntaxNode) -> Option<Self> {
21617        if Self::can_cast(syntax.kind()) {
21618            Some(Self { syntax })
21619        } else {
21620            None
21621        }
21622    }
21623    #[inline]
21624    fn syntax(&self) -> &SyntaxNode {
21625        &self.syntax
21626    }
21627}
21628impl AstNode for CreateMaterializedView {
21629    #[inline]
21630    fn can_cast(kind: SyntaxKind) -> bool {
21631        kind == SyntaxKind::CREATE_MATERIALIZED_VIEW
21632    }
21633    #[inline]
21634    fn cast(syntax: SyntaxNode) -> Option<Self> {
21635        if Self::can_cast(syntax.kind()) {
21636            Some(Self { syntax })
21637        } else {
21638            None
21639        }
21640    }
21641    #[inline]
21642    fn syntax(&self) -> &SyntaxNode {
21643        &self.syntax
21644    }
21645}
21646impl AstNode for CreateOperator {
21647    #[inline]
21648    fn can_cast(kind: SyntaxKind) -> bool {
21649        kind == SyntaxKind::CREATE_OPERATOR
21650    }
21651    #[inline]
21652    fn cast(syntax: SyntaxNode) -> Option<Self> {
21653        if Self::can_cast(syntax.kind()) {
21654            Some(Self { syntax })
21655        } else {
21656            None
21657        }
21658    }
21659    #[inline]
21660    fn syntax(&self) -> &SyntaxNode {
21661        &self.syntax
21662    }
21663}
21664impl AstNode for CreateOperatorClass {
21665    #[inline]
21666    fn can_cast(kind: SyntaxKind) -> bool {
21667        kind == SyntaxKind::CREATE_OPERATOR_CLASS
21668    }
21669    #[inline]
21670    fn cast(syntax: SyntaxNode) -> Option<Self> {
21671        if Self::can_cast(syntax.kind()) {
21672            Some(Self { syntax })
21673        } else {
21674            None
21675        }
21676    }
21677    #[inline]
21678    fn syntax(&self) -> &SyntaxNode {
21679        &self.syntax
21680    }
21681}
21682impl AstNode for CreateOperatorFamily {
21683    #[inline]
21684    fn can_cast(kind: SyntaxKind) -> bool {
21685        kind == SyntaxKind::CREATE_OPERATOR_FAMILY
21686    }
21687    #[inline]
21688    fn cast(syntax: SyntaxNode) -> Option<Self> {
21689        if Self::can_cast(syntax.kind()) {
21690            Some(Self { syntax })
21691        } else {
21692            None
21693        }
21694    }
21695    #[inline]
21696    fn syntax(&self) -> &SyntaxNode {
21697        &self.syntax
21698    }
21699}
21700impl AstNode for CreatePolicy {
21701    #[inline]
21702    fn can_cast(kind: SyntaxKind) -> bool {
21703        kind == SyntaxKind::CREATE_POLICY
21704    }
21705    #[inline]
21706    fn cast(syntax: SyntaxNode) -> Option<Self> {
21707        if Self::can_cast(syntax.kind()) {
21708            Some(Self { syntax })
21709        } else {
21710            None
21711        }
21712    }
21713    #[inline]
21714    fn syntax(&self) -> &SyntaxNode {
21715        &self.syntax
21716    }
21717}
21718impl AstNode for CreateProcedure {
21719    #[inline]
21720    fn can_cast(kind: SyntaxKind) -> bool {
21721        kind == SyntaxKind::CREATE_PROCEDURE
21722    }
21723    #[inline]
21724    fn cast(syntax: SyntaxNode) -> Option<Self> {
21725        if Self::can_cast(syntax.kind()) {
21726            Some(Self { syntax })
21727        } else {
21728            None
21729        }
21730    }
21731    #[inline]
21732    fn syntax(&self) -> &SyntaxNode {
21733        &self.syntax
21734    }
21735}
21736impl AstNode for CreatePropertyGraph {
21737    #[inline]
21738    fn can_cast(kind: SyntaxKind) -> bool {
21739        kind == SyntaxKind::CREATE_PROPERTY_GRAPH
21740    }
21741    #[inline]
21742    fn cast(syntax: SyntaxNode) -> Option<Self> {
21743        if Self::can_cast(syntax.kind()) {
21744            Some(Self { syntax })
21745        } else {
21746            None
21747        }
21748    }
21749    #[inline]
21750    fn syntax(&self) -> &SyntaxNode {
21751        &self.syntax
21752    }
21753}
21754impl AstNode for CreatePublication {
21755    #[inline]
21756    fn can_cast(kind: SyntaxKind) -> bool {
21757        kind == SyntaxKind::CREATE_PUBLICATION
21758    }
21759    #[inline]
21760    fn cast(syntax: SyntaxNode) -> Option<Self> {
21761        if Self::can_cast(syntax.kind()) {
21762            Some(Self { syntax })
21763        } else {
21764            None
21765        }
21766    }
21767    #[inline]
21768    fn syntax(&self) -> &SyntaxNode {
21769        &self.syntax
21770    }
21771}
21772impl AstNode for CreateRole {
21773    #[inline]
21774    fn can_cast(kind: SyntaxKind) -> bool {
21775        kind == SyntaxKind::CREATE_ROLE
21776    }
21777    #[inline]
21778    fn cast(syntax: SyntaxNode) -> Option<Self> {
21779        if Self::can_cast(syntax.kind()) {
21780            Some(Self { syntax })
21781        } else {
21782            None
21783        }
21784    }
21785    #[inline]
21786    fn syntax(&self) -> &SyntaxNode {
21787        &self.syntax
21788    }
21789}
21790impl AstNode for CreateRule {
21791    #[inline]
21792    fn can_cast(kind: SyntaxKind) -> bool {
21793        kind == SyntaxKind::CREATE_RULE
21794    }
21795    #[inline]
21796    fn cast(syntax: SyntaxNode) -> Option<Self> {
21797        if Self::can_cast(syntax.kind()) {
21798            Some(Self { syntax })
21799        } else {
21800            None
21801        }
21802    }
21803    #[inline]
21804    fn syntax(&self) -> &SyntaxNode {
21805        &self.syntax
21806    }
21807}
21808impl AstNode for CreateSchema {
21809    #[inline]
21810    fn can_cast(kind: SyntaxKind) -> bool {
21811        kind == SyntaxKind::CREATE_SCHEMA
21812    }
21813    #[inline]
21814    fn cast(syntax: SyntaxNode) -> Option<Self> {
21815        if Self::can_cast(syntax.kind()) {
21816            Some(Self { syntax })
21817        } else {
21818            None
21819        }
21820    }
21821    #[inline]
21822    fn syntax(&self) -> &SyntaxNode {
21823        &self.syntax
21824    }
21825}
21826impl AstNode for CreateSequence {
21827    #[inline]
21828    fn can_cast(kind: SyntaxKind) -> bool {
21829        kind == SyntaxKind::CREATE_SEQUENCE
21830    }
21831    #[inline]
21832    fn cast(syntax: SyntaxNode) -> Option<Self> {
21833        if Self::can_cast(syntax.kind()) {
21834            Some(Self { syntax })
21835        } else {
21836            None
21837        }
21838    }
21839    #[inline]
21840    fn syntax(&self) -> &SyntaxNode {
21841        &self.syntax
21842    }
21843}
21844impl AstNode for CreateServer {
21845    #[inline]
21846    fn can_cast(kind: SyntaxKind) -> bool {
21847        kind == SyntaxKind::CREATE_SERVER
21848    }
21849    #[inline]
21850    fn cast(syntax: SyntaxNode) -> Option<Self> {
21851        if Self::can_cast(syntax.kind()) {
21852            Some(Self { syntax })
21853        } else {
21854            None
21855        }
21856    }
21857    #[inline]
21858    fn syntax(&self) -> &SyntaxNode {
21859        &self.syntax
21860    }
21861}
21862impl AstNode for CreateStatistics {
21863    #[inline]
21864    fn can_cast(kind: SyntaxKind) -> bool {
21865        kind == SyntaxKind::CREATE_STATISTICS
21866    }
21867    #[inline]
21868    fn cast(syntax: SyntaxNode) -> Option<Self> {
21869        if Self::can_cast(syntax.kind()) {
21870            Some(Self { syntax })
21871        } else {
21872            None
21873        }
21874    }
21875    #[inline]
21876    fn syntax(&self) -> &SyntaxNode {
21877        &self.syntax
21878    }
21879}
21880impl AstNode for CreateSubscription {
21881    #[inline]
21882    fn can_cast(kind: SyntaxKind) -> bool {
21883        kind == SyntaxKind::CREATE_SUBSCRIPTION
21884    }
21885    #[inline]
21886    fn cast(syntax: SyntaxNode) -> Option<Self> {
21887        if Self::can_cast(syntax.kind()) {
21888            Some(Self { syntax })
21889        } else {
21890            None
21891        }
21892    }
21893    #[inline]
21894    fn syntax(&self) -> &SyntaxNode {
21895        &self.syntax
21896    }
21897}
21898impl AstNode for CreateTable {
21899    #[inline]
21900    fn can_cast(kind: SyntaxKind) -> bool {
21901        kind == SyntaxKind::CREATE_TABLE
21902    }
21903    #[inline]
21904    fn cast(syntax: SyntaxNode) -> Option<Self> {
21905        if Self::can_cast(syntax.kind()) {
21906            Some(Self { syntax })
21907        } else {
21908            None
21909        }
21910    }
21911    #[inline]
21912    fn syntax(&self) -> &SyntaxNode {
21913        &self.syntax
21914    }
21915}
21916impl AstNode for CreateTableAs {
21917    #[inline]
21918    fn can_cast(kind: SyntaxKind) -> bool {
21919        kind == SyntaxKind::CREATE_TABLE_AS
21920    }
21921    #[inline]
21922    fn cast(syntax: SyntaxNode) -> Option<Self> {
21923        if Self::can_cast(syntax.kind()) {
21924            Some(Self { syntax })
21925        } else {
21926            None
21927        }
21928    }
21929    #[inline]
21930    fn syntax(&self) -> &SyntaxNode {
21931        &self.syntax
21932    }
21933}
21934impl AstNode for CreateTablespace {
21935    #[inline]
21936    fn can_cast(kind: SyntaxKind) -> bool {
21937        kind == SyntaxKind::CREATE_TABLESPACE
21938    }
21939    #[inline]
21940    fn cast(syntax: SyntaxNode) -> Option<Self> {
21941        if Self::can_cast(syntax.kind()) {
21942            Some(Self { syntax })
21943        } else {
21944            None
21945        }
21946    }
21947    #[inline]
21948    fn syntax(&self) -> &SyntaxNode {
21949        &self.syntax
21950    }
21951}
21952impl AstNode for CreateTextSearchConfiguration {
21953    #[inline]
21954    fn can_cast(kind: SyntaxKind) -> bool {
21955        kind == SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
21956    }
21957    #[inline]
21958    fn cast(syntax: SyntaxNode) -> Option<Self> {
21959        if Self::can_cast(syntax.kind()) {
21960            Some(Self { syntax })
21961        } else {
21962            None
21963        }
21964    }
21965    #[inline]
21966    fn syntax(&self) -> &SyntaxNode {
21967        &self.syntax
21968    }
21969}
21970impl AstNode for CreateTextSearchDictionary {
21971    #[inline]
21972    fn can_cast(kind: SyntaxKind) -> bool {
21973        kind == SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
21974    }
21975    #[inline]
21976    fn cast(syntax: SyntaxNode) -> Option<Self> {
21977        if Self::can_cast(syntax.kind()) {
21978            Some(Self { syntax })
21979        } else {
21980            None
21981        }
21982    }
21983    #[inline]
21984    fn syntax(&self) -> &SyntaxNode {
21985        &self.syntax
21986    }
21987}
21988impl AstNode for CreateTextSearchParser {
21989    #[inline]
21990    fn can_cast(kind: SyntaxKind) -> bool {
21991        kind == SyntaxKind::CREATE_TEXT_SEARCH_PARSER
21992    }
21993    #[inline]
21994    fn cast(syntax: SyntaxNode) -> Option<Self> {
21995        if Self::can_cast(syntax.kind()) {
21996            Some(Self { syntax })
21997        } else {
21998            None
21999        }
22000    }
22001    #[inline]
22002    fn syntax(&self) -> &SyntaxNode {
22003        &self.syntax
22004    }
22005}
22006impl AstNode for CreateTextSearchTemplate {
22007    #[inline]
22008    fn can_cast(kind: SyntaxKind) -> bool {
22009        kind == SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
22010    }
22011    #[inline]
22012    fn cast(syntax: SyntaxNode) -> Option<Self> {
22013        if Self::can_cast(syntax.kind()) {
22014            Some(Self { syntax })
22015        } else {
22016            None
22017        }
22018    }
22019    #[inline]
22020    fn syntax(&self) -> &SyntaxNode {
22021        &self.syntax
22022    }
22023}
22024impl AstNode for CreateTransform {
22025    #[inline]
22026    fn can_cast(kind: SyntaxKind) -> bool {
22027        kind == SyntaxKind::CREATE_TRANSFORM
22028    }
22029    #[inline]
22030    fn cast(syntax: SyntaxNode) -> Option<Self> {
22031        if Self::can_cast(syntax.kind()) {
22032            Some(Self { syntax })
22033        } else {
22034            None
22035        }
22036    }
22037    #[inline]
22038    fn syntax(&self) -> &SyntaxNode {
22039        &self.syntax
22040    }
22041}
22042impl AstNode for CreateTrigger {
22043    #[inline]
22044    fn can_cast(kind: SyntaxKind) -> bool {
22045        kind == SyntaxKind::CREATE_TRIGGER
22046    }
22047    #[inline]
22048    fn cast(syntax: SyntaxNode) -> Option<Self> {
22049        if Self::can_cast(syntax.kind()) {
22050            Some(Self { syntax })
22051        } else {
22052            None
22053        }
22054    }
22055    #[inline]
22056    fn syntax(&self) -> &SyntaxNode {
22057        &self.syntax
22058    }
22059}
22060impl AstNode for CreateType {
22061    #[inline]
22062    fn can_cast(kind: SyntaxKind) -> bool {
22063        kind == SyntaxKind::CREATE_TYPE
22064    }
22065    #[inline]
22066    fn cast(syntax: SyntaxNode) -> Option<Self> {
22067        if Self::can_cast(syntax.kind()) {
22068            Some(Self { syntax })
22069        } else {
22070            None
22071        }
22072    }
22073    #[inline]
22074    fn syntax(&self) -> &SyntaxNode {
22075        &self.syntax
22076    }
22077}
22078impl AstNode for CreateUser {
22079    #[inline]
22080    fn can_cast(kind: SyntaxKind) -> bool {
22081        kind == SyntaxKind::CREATE_USER
22082    }
22083    #[inline]
22084    fn cast(syntax: SyntaxNode) -> Option<Self> {
22085        if Self::can_cast(syntax.kind()) {
22086            Some(Self { syntax })
22087        } else {
22088            None
22089        }
22090    }
22091    #[inline]
22092    fn syntax(&self) -> &SyntaxNode {
22093        &self.syntax
22094    }
22095}
22096impl AstNode for CreateUserMapping {
22097    #[inline]
22098    fn can_cast(kind: SyntaxKind) -> bool {
22099        kind == SyntaxKind::CREATE_USER_MAPPING
22100    }
22101    #[inline]
22102    fn cast(syntax: SyntaxNode) -> Option<Self> {
22103        if Self::can_cast(syntax.kind()) {
22104            Some(Self { syntax })
22105        } else {
22106            None
22107        }
22108    }
22109    #[inline]
22110    fn syntax(&self) -> &SyntaxNode {
22111        &self.syntax
22112    }
22113}
22114impl AstNode for CreateView {
22115    #[inline]
22116    fn can_cast(kind: SyntaxKind) -> bool {
22117        kind == SyntaxKind::CREATE_VIEW
22118    }
22119    #[inline]
22120    fn cast(syntax: SyntaxNode) -> Option<Self> {
22121        if Self::can_cast(syntax.kind()) {
22122            Some(Self { syntax })
22123        } else {
22124            None
22125        }
22126    }
22127    #[inline]
22128    fn syntax(&self) -> &SyntaxNode {
22129        &self.syntax
22130    }
22131}
22132impl AstNode for CustomOp {
22133    #[inline]
22134    fn can_cast(kind: SyntaxKind) -> bool {
22135        kind == SyntaxKind::CUSTOM_OP
22136    }
22137    #[inline]
22138    fn cast(syntax: SyntaxNode) -> Option<Self> {
22139        if Self::can_cast(syntax.kind()) {
22140            Some(Self { syntax })
22141        } else {
22142            None
22143        }
22144    }
22145    #[inline]
22146    fn syntax(&self) -> &SyntaxNode {
22147        &self.syntax
22148    }
22149}
22150impl AstNode for Deallocate {
22151    #[inline]
22152    fn can_cast(kind: SyntaxKind) -> bool {
22153        kind == SyntaxKind::DEALLOCATE
22154    }
22155    #[inline]
22156    fn cast(syntax: SyntaxNode) -> Option<Self> {
22157        if Self::can_cast(syntax.kind()) {
22158            Some(Self { syntax })
22159        } else {
22160            None
22161        }
22162    }
22163    #[inline]
22164    fn syntax(&self) -> &SyntaxNode {
22165        &self.syntax
22166    }
22167}
22168impl AstNode for Declare {
22169    #[inline]
22170    fn can_cast(kind: SyntaxKind) -> bool {
22171        kind == SyntaxKind::DECLARE
22172    }
22173    #[inline]
22174    fn cast(syntax: SyntaxNode) -> Option<Self> {
22175        if Self::can_cast(syntax.kind()) {
22176            Some(Self { syntax })
22177        } else {
22178            None
22179        }
22180    }
22181    #[inline]
22182    fn syntax(&self) -> &SyntaxNode {
22183        &self.syntax
22184    }
22185}
22186impl AstNode for DefaultConstraint {
22187    #[inline]
22188    fn can_cast(kind: SyntaxKind) -> bool {
22189        kind == SyntaxKind::DEFAULT_CONSTRAINT
22190    }
22191    #[inline]
22192    fn cast(syntax: SyntaxNode) -> Option<Self> {
22193        if Self::can_cast(syntax.kind()) {
22194            Some(Self { syntax })
22195        } else {
22196            None
22197        }
22198    }
22199    #[inline]
22200    fn syntax(&self) -> &SyntaxNode {
22201        &self.syntax
22202    }
22203}
22204impl AstNode for Deferrable {
22205    #[inline]
22206    fn can_cast(kind: SyntaxKind) -> bool {
22207        kind == SyntaxKind::DEFERRABLE
22208    }
22209    #[inline]
22210    fn cast(syntax: SyntaxNode) -> Option<Self> {
22211        if Self::can_cast(syntax.kind()) {
22212            Some(Self { syntax })
22213        } else {
22214            None
22215        }
22216    }
22217    #[inline]
22218    fn syntax(&self) -> &SyntaxNode {
22219        &self.syntax
22220    }
22221}
22222impl AstNode for DeferrableConstraintOption {
22223    #[inline]
22224    fn can_cast(kind: SyntaxKind) -> bool {
22225        kind == SyntaxKind::DEFERRABLE_CONSTRAINT_OPTION
22226    }
22227    #[inline]
22228    fn cast(syntax: SyntaxNode) -> Option<Self> {
22229        if Self::can_cast(syntax.kind()) {
22230            Some(Self { syntax })
22231        } else {
22232            None
22233        }
22234    }
22235    #[inline]
22236    fn syntax(&self) -> &SyntaxNode {
22237        &self.syntax
22238    }
22239}
22240impl AstNode for Delete {
22241    #[inline]
22242    fn can_cast(kind: SyntaxKind) -> bool {
22243        kind == SyntaxKind::DELETE
22244    }
22245    #[inline]
22246    fn cast(syntax: SyntaxNode) -> Option<Self> {
22247        if Self::can_cast(syntax.kind()) {
22248            Some(Self { syntax })
22249        } else {
22250            None
22251        }
22252    }
22253    #[inline]
22254    fn syntax(&self) -> &SyntaxNode {
22255        &self.syntax
22256    }
22257}
22258impl AstNode for DeleteRows {
22259    #[inline]
22260    fn can_cast(kind: SyntaxKind) -> bool {
22261        kind == SyntaxKind::DELETE_ROWS
22262    }
22263    #[inline]
22264    fn cast(syntax: SyntaxNode) -> Option<Self> {
22265        if Self::can_cast(syntax.kind()) {
22266            Some(Self { syntax })
22267        } else {
22268            None
22269        }
22270    }
22271    #[inline]
22272    fn syntax(&self) -> &SyntaxNode {
22273        &self.syntax
22274    }
22275}
22276impl AstNode for DependsOnExtension {
22277    #[inline]
22278    fn can_cast(kind: SyntaxKind) -> bool {
22279        kind == SyntaxKind::DEPENDS_ON_EXTENSION
22280    }
22281    #[inline]
22282    fn cast(syntax: SyntaxNode) -> Option<Self> {
22283        if Self::can_cast(syntax.kind()) {
22284            Some(Self { syntax })
22285        } else {
22286            None
22287        }
22288    }
22289    #[inline]
22290    fn syntax(&self) -> &SyntaxNode {
22291        &self.syntax
22292    }
22293}
22294impl AstNode for DestVertexTable {
22295    #[inline]
22296    fn can_cast(kind: SyntaxKind) -> bool {
22297        kind == SyntaxKind::DEST_VERTEX_TABLE
22298    }
22299    #[inline]
22300    fn cast(syntax: SyntaxNode) -> Option<Self> {
22301        if Self::can_cast(syntax.kind()) {
22302            Some(Self { syntax })
22303        } else {
22304            None
22305        }
22306    }
22307    #[inline]
22308    fn syntax(&self) -> &SyntaxNode {
22309        &self.syntax
22310    }
22311}
22312impl AstNode for DetachPartition {
22313    #[inline]
22314    fn can_cast(kind: SyntaxKind) -> bool {
22315        kind == SyntaxKind::DETACH_PARTITION
22316    }
22317    #[inline]
22318    fn cast(syntax: SyntaxNode) -> Option<Self> {
22319        if Self::can_cast(syntax.kind()) {
22320            Some(Self { syntax })
22321        } else {
22322            None
22323        }
22324    }
22325    #[inline]
22326    fn syntax(&self) -> &SyntaxNode {
22327        &self.syntax
22328    }
22329}
22330impl AstNode for DisableRls {
22331    #[inline]
22332    fn can_cast(kind: SyntaxKind) -> bool {
22333        kind == SyntaxKind::DISABLE_RLS
22334    }
22335    #[inline]
22336    fn cast(syntax: SyntaxNode) -> Option<Self> {
22337        if Self::can_cast(syntax.kind()) {
22338            Some(Self { syntax })
22339        } else {
22340            None
22341        }
22342    }
22343    #[inline]
22344    fn syntax(&self) -> &SyntaxNode {
22345        &self.syntax
22346    }
22347}
22348impl AstNode for DisableRule {
22349    #[inline]
22350    fn can_cast(kind: SyntaxKind) -> bool {
22351        kind == SyntaxKind::DISABLE_RULE
22352    }
22353    #[inline]
22354    fn cast(syntax: SyntaxNode) -> Option<Self> {
22355        if Self::can_cast(syntax.kind()) {
22356            Some(Self { syntax })
22357        } else {
22358            None
22359        }
22360    }
22361    #[inline]
22362    fn syntax(&self) -> &SyntaxNode {
22363        &self.syntax
22364    }
22365}
22366impl AstNode for DisableTrigger {
22367    #[inline]
22368    fn can_cast(kind: SyntaxKind) -> bool {
22369        kind == SyntaxKind::DISABLE_TRIGGER
22370    }
22371    #[inline]
22372    fn cast(syntax: SyntaxNode) -> Option<Self> {
22373        if Self::can_cast(syntax.kind()) {
22374            Some(Self { syntax })
22375        } else {
22376            None
22377        }
22378    }
22379    #[inline]
22380    fn syntax(&self) -> &SyntaxNode {
22381        &self.syntax
22382    }
22383}
22384impl AstNode for Discard {
22385    #[inline]
22386    fn can_cast(kind: SyntaxKind) -> bool {
22387        kind == SyntaxKind::DISCARD
22388    }
22389    #[inline]
22390    fn cast(syntax: SyntaxNode) -> Option<Self> {
22391        if Self::can_cast(syntax.kind()) {
22392            Some(Self { syntax })
22393        } else {
22394            None
22395        }
22396    }
22397    #[inline]
22398    fn syntax(&self) -> &SyntaxNode {
22399        &self.syntax
22400    }
22401}
22402impl AstNode for DistinctClause {
22403    #[inline]
22404    fn can_cast(kind: SyntaxKind) -> bool {
22405        kind == SyntaxKind::DISTINCT_CLAUSE
22406    }
22407    #[inline]
22408    fn cast(syntax: SyntaxNode) -> Option<Self> {
22409        if Self::can_cast(syntax.kind()) {
22410            Some(Self { syntax })
22411        } else {
22412            None
22413        }
22414    }
22415    #[inline]
22416    fn syntax(&self) -> &SyntaxNode {
22417        &self.syntax
22418    }
22419}
22420impl AstNode for Do {
22421    #[inline]
22422    fn can_cast(kind: SyntaxKind) -> bool {
22423        kind == SyntaxKind::DO
22424    }
22425    #[inline]
22426    fn cast(syntax: SyntaxNode) -> Option<Self> {
22427        if Self::can_cast(syntax.kind()) {
22428            Some(Self { syntax })
22429        } else {
22430            None
22431        }
22432    }
22433    #[inline]
22434    fn syntax(&self) -> &SyntaxNode {
22435        &self.syntax
22436    }
22437}
22438impl AstNode for DoubleType {
22439    #[inline]
22440    fn can_cast(kind: SyntaxKind) -> bool {
22441        kind == SyntaxKind::DOUBLE_TYPE
22442    }
22443    #[inline]
22444    fn cast(syntax: SyntaxNode) -> Option<Self> {
22445        if Self::can_cast(syntax.kind()) {
22446            Some(Self { syntax })
22447        } else {
22448            None
22449        }
22450    }
22451    #[inline]
22452    fn syntax(&self) -> &SyntaxNode {
22453        &self.syntax
22454    }
22455}
22456impl AstNode for Drop {
22457    #[inline]
22458    fn can_cast(kind: SyntaxKind) -> bool {
22459        kind == SyntaxKind::DROP
22460    }
22461    #[inline]
22462    fn cast(syntax: SyntaxNode) -> Option<Self> {
22463        if Self::can_cast(syntax.kind()) {
22464            Some(Self { syntax })
22465        } else {
22466            None
22467        }
22468    }
22469    #[inline]
22470    fn syntax(&self) -> &SyntaxNode {
22471        &self.syntax
22472    }
22473}
22474impl AstNode for DropAccessMethod {
22475    #[inline]
22476    fn can_cast(kind: SyntaxKind) -> bool {
22477        kind == SyntaxKind::DROP_ACCESS_METHOD
22478    }
22479    #[inline]
22480    fn cast(syntax: SyntaxNode) -> Option<Self> {
22481        if Self::can_cast(syntax.kind()) {
22482            Some(Self { syntax })
22483        } else {
22484            None
22485        }
22486    }
22487    #[inline]
22488    fn syntax(&self) -> &SyntaxNode {
22489        &self.syntax
22490    }
22491}
22492impl AstNode for DropAggregate {
22493    #[inline]
22494    fn can_cast(kind: SyntaxKind) -> bool {
22495        kind == SyntaxKind::DROP_AGGREGATE
22496    }
22497    #[inline]
22498    fn cast(syntax: SyntaxNode) -> Option<Self> {
22499        if Self::can_cast(syntax.kind()) {
22500            Some(Self { syntax })
22501        } else {
22502            None
22503        }
22504    }
22505    #[inline]
22506    fn syntax(&self) -> &SyntaxNode {
22507        &self.syntax
22508    }
22509}
22510impl AstNode for DropAttribute {
22511    #[inline]
22512    fn can_cast(kind: SyntaxKind) -> bool {
22513        kind == SyntaxKind::DROP_ATTRIBUTE
22514    }
22515    #[inline]
22516    fn cast(syntax: SyntaxNode) -> Option<Self> {
22517        if Self::can_cast(syntax.kind()) {
22518            Some(Self { syntax })
22519        } else {
22520            None
22521        }
22522    }
22523    #[inline]
22524    fn syntax(&self) -> &SyntaxNode {
22525        &self.syntax
22526    }
22527}
22528impl AstNode for DropCast {
22529    #[inline]
22530    fn can_cast(kind: SyntaxKind) -> bool {
22531        kind == SyntaxKind::DROP_CAST
22532    }
22533    #[inline]
22534    fn cast(syntax: SyntaxNode) -> Option<Self> {
22535        if Self::can_cast(syntax.kind()) {
22536            Some(Self { syntax })
22537        } else {
22538            None
22539        }
22540    }
22541    #[inline]
22542    fn syntax(&self) -> &SyntaxNode {
22543        &self.syntax
22544    }
22545}
22546impl AstNode for DropCollation {
22547    #[inline]
22548    fn can_cast(kind: SyntaxKind) -> bool {
22549        kind == SyntaxKind::DROP_COLLATION
22550    }
22551    #[inline]
22552    fn cast(syntax: SyntaxNode) -> Option<Self> {
22553        if Self::can_cast(syntax.kind()) {
22554            Some(Self { syntax })
22555        } else {
22556            None
22557        }
22558    }
22559    #[inline]
22560    fn syntax(&self) -> &SyntaxNode {
22561        &self.syntax
22562    }
22563}
22564impl AstNode for DropColumn {
22565    #[inline]
22566    fn can_cast(kind: SyntaxKind) -> bool {
22567        kind == SyntaxKind::DROP_COLUMN
22568    }
22569    #[inline]
22570    fn cast(syntax: SyntaxNode) -> Option<Self> {
22571        if Self::can_cast(syntax.kind()) {
22572            Some(Self { syntax })
22573        } else {
22574            None
22575        }
22576    }
22577    #[inline]
22578    fn syntax(&self) -> &SyntaxNode {
22579        &self.syntax
22580    }
22581}
22582impl AstNode for DropConstraint {
22583    #[inline]
22584    fn can_cast(kind: SyntaxKind) -> bool {
22585        kind == SyntaxKind::DROP_CONSTRAINT
22586    }
22587    #[inline]
22588    fn cast(syntax: SyntaxNode) -> Option<Self> {
22589        if Self::can_cast(syntax.kind()) {
22590            Some(Self { syntax })
22591        } else {
22592            None
22593        }
22594    }
22595    #[inline]
22596    fn syntax(&self) -> &SyntaxNode {
22597        &self.syntax
22598    }
22599}
22600impl AstNode for DropConversion {
22601    #[inline]
22602    fn can_cast(kind: SyntaxKind) -> bool {
22603        kind == SyntaxKind::DROP_CONVERSION
22604    }
22605    #[inline]
22606    fn cast(syntax: SyntaxNode) -> Option<Self> {
22607        if Self::can_cast(syntax.kind()) {
22608            Some(Self { syntax })
22609        } else {
22610            None
22611        }
22612    }
22613    #[inline]
22614    fn syntax(&self) -> &SyntaxNode {
22615        &self.syntax
22616    }
22617}
22618impl AstNode for DropDatabase {
22619    #[inline]
22620    fn can_cast(kind: SyntaxKind) -> bool {
22621        kind == SyntaxKind::DROP_DATABASE
22622    }
22623    #[inline]
22624    fn cast(syntax: SyntaxNode) -> Option<Self> {
22625        if Self::can_cast(syntax.kind()) {
22626            Some(Self { syntax })
22627        } else {
22628            None
22629        }
22630    }
22631    #[inline]
22632    fn syntax(&self) -> &SyntaxNode {
22633        &self.syntax
22634    }
22635}
22636impl AstNode for DropDefault {
22637    #[inline]
22638    fn can_cast(kind: SyntaxKind) -> bool {
22639        kind == SyntaxKind::DROP_DEFAULT
22640    }
22641    #[inline]
22642    fn cast(syntax: SyntaxNode) -> Option<Self> {
22643        if Self::can_cast(syntax.kind()) {
22644            Some(Self { syntax })
22645        } else {
22646            None
22647        }
22648    }
22649    #[inline]
22650    fn syntax(&self) -> &SyntaxNode {
22651        &self.syntax
22652    }
22653}
22654impl AstNode for DropDomain {
22655    #[inline]
22656    fn can_cast(kind: SyntaxKind) -> bool {
22657        kind == SyntaxKind::DROP_DOMAIN
22658    }
22659    #[inline]
22660    fn cast(syntax: SyntaxNode) -> Option<Self> {
22661        if Self::can_cast(syntax.kind()) {
22662            Some(Self { syntax })
22663        } else {
22664            None
22665        }
22666    }
22667    #[inline]
22668    fn syntax(&self) -> &SyntaxNode {
22669        &self.syntax
22670    }
22671}
22672impl AstNode for DropEdgeTables {
22673    #[inline]
22674    fn can_cast(kind: SyntaxKind) -> bool {
22675        kind == SyntaxKind::DROP_EDGE_TABLES
22676    }
22677    #[inline]
22678    fn cast(syntax: SyntaxNode) -> Option<Self> {
22679        if Self::can_cast(syntax.kind()) {
22680            Some(Self { syntax })
22681        } else {
22682            None
22683        }
22684    }
22685    #[inline]
22686    fn syntax(&self) -> &SyntaxNode {
22687        &self.syntax
22688    }
22689}
22690impl AstNode for DropEventTrigger {
22691    #[inline]
22692    fn can_cast(kind: SyntaxKind) -> bool {
22693        kind == SyntaxKind::DROP_EVENT_TRIGGER
22694    }
22695    #[inline]
22696    fn cast(syntax: SyntaxNode) -> Option<Self> {
22697        if Self::can_cast(syntax.kind()) {
22698            Some(Self { syntax })
22699        } else {
22700            None
22701        }
22702    }
22703    #[inline]
22704    fn syntax(&self) -> &SyntaxNode {
22705        &self.syntax
22706    }
22707}
22708impl AstNode for DropExpression {
22709    #[inline]
22710    fn can_cast(kind: SyntaxKind) -> bool {
22711        kind == SyntaxKind::DROP_EXPRESSION
22712    }
22713    #[inline]
22714    fn cast(syntax: SyntaxNode) -> Option<Self> {
22715        if Self::can_cast(syntax.kind()) {
22716            Some(Self { syntax })
22717        } else {
22718            None
22719        }
22720    }
22721    #[inline]
22722    fn syntax(&self) -> &SyntaxNode {
22723        &self.syntax
22724    }
22725}
22726impl AstNode for DropExtension {
22727    #[inline]
22728    fn can_cast(kind: SyntaxKind) -> bool {
22729        kind == SyntaxKind::DROP_EXTENSION
22730    }
22731    #[inline]
22732    fn cast(syntax: SyntaxNode) -> Option<Self> {
22733        if Self::can_cast(syntax.kind()) {
22734            Some(Self { syntax })
22735        } else {
22736            None
22737        }
22738    }
22739    #[inline]
22740    fn syntax(&self) -> &SyntaxNode {
22741        &self.syntax
22742    }
22743}
22744impl AstNode for DropForeignDataWrapper {
22745    #[inline]
22746    fn can_cast(kind: SyntaxKind) -> bool {
22747        kind == SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
22748    }
22749    #[inline]
22750    fn cast(syntax: SyntaxNode) -> Option<Self> {
22751        if Self::can_cast(syntax.kind()) {
22752            Some(Self { syntax })
22753        } else {
22754            None
22755        }
22756    }
22757    #[inline]
22758    fn syntax(&self) -> &SyntaxNode {
22759        &self.syntax
22760    }
22761}
22762impl AstNode for DropForeignTable {
22763    #[inline]
22764    fn can_cast(kind: SyntaxKind) -> bool {
22765        kind == SyntaxKind::DROP_FOREIGN_TABLE
22766    }
22767    #[inline]
22768    fn cast(syntax: SyntaxNode) -> Option<Self> {
22769        if Self::can_cast(syntax.kind()) {
22770            Some(Self { syntax })
22771        } else {
22772            None
22773        }
22774    }
22775    #[inline]
22776    fn syntax(&self) -> &SyntaxNode {
22777        &self.syntax
22778    }
22779}
22780impl AstNode for DropFunction {
22781    #[inline]
22782    fn can_cast(kind: SyntaxKind) -> bool {
22783        kind == SyntaxKind::DROP_FUNCTION
22784    }
22785    #[inline]
22786    fn cast(syntax: SyntaxNode) -> Option<Self> {
22787        if Self::can_cast(syntax.kind()) {
22788            Some(Self { syntax })
22789        } else {
22790            None
22791        }
22792    }
22793    #[inline]
22794    fn syntax(&self) -> &SyntaxNode {
22795        &self.syntax
22796    }
22797}
22798impl AstNode for DropGroup {
22799    #[inline]
22800    fn can_cast(kind: SyntaxKind) -> bool {
22801        kind == SyntaxKind::DROP_GROUP
22802    }
22803    #[inline]
22804    fn cast(syntax: SyntaxNode) -> Option<Self> {
22805        if Self::can_cast(syntax.kind()) {
22806            Some(Self { syntax })
22807        } else {
22808            None
22809        }
22810    }
22811    #[inline]
22812    fn syntax(&self) -> &SyntaxNode {
22813        &self.syntax
22814    }
22815}
22816impl AstNode for DropIdentity {
22817    #[inline]
22818    fn can_cast(kind: SyntaxKind) -> bool {
22819        kind == SyntaxKind::DROP_IDENTITY
22820    }
22821    #[inline]
22822    fn cast(syntax: SyntaxNode) -> Option<Self> {
22823        if Self::can_cast(syntax.kind()) {
22824            Some(Self { syntax })
22825        } else {
22826            None
22827        }
22828    }
22829    #[inline]
22830    fn syntax(&self) -> &SyntaxNode {
22831        &self.syntax
22832    }
22833}
22834impl AstNode for DropIndex {
22835    #[inline]
22836    fn can_cast(kind: SyntaxKind) -> bool {
22837        kind == SyntaxKind::DROP_INDEX
22838    }
22839    #[inline]
22840    fn cast(syntax: SyntaxNode) -> Option<Self> {
22841        if Self::can_cast(syntax.kind()) {
22842            Some(Self { syntax })
22843        } else {
22844            None
22845        }
22846    }
22847    #[inline]
22848    fn syntax(&self) -> &SyntaxNode {
22849        &self.syntax
22850    }
22851}
22852impl AstNode for DropLanguage {
22853    #[inline]
22854    fn can_cast(kind: SyntaxKind) -> bool {
22855        kind == SyntaxKind::DROP_LANGUAGE
22856    }
22857    #[inline]
22858    fn cast(syntax: SyntaxNode) -> Option<Self> {
22859        if Self::can_cast(syntax.kind()) {
22860            Some(Self { syntax })
22861        } else {
22862            None
22863        }
22864    }
22865    #[inline]
22866    fn syntax(&self) -> &SyntaxNode {
22867        &self.syntax
22868    }
22869}
22870impl AstNode for DropMaterializedView {
22871    #[inline]
22872    fn can_cast(kind: SyntaxKind) -> bool {
22873        kind == SyntaxKind::DROP_MATERIALIZED_VIEW
22874    }
22875    #[inline]
22876    fn cast(syntax: SyntaxNode) -> Option<Self> {
22877        if Self::can_cast(syntax.kind()) {
22878            Some(Self { syntax })
22879        } else {
22880            None
22881        }
22882    }
22883    #[inline]
22884    fn syntax(&self) -> &SyntaxNode {
22885        &self.syntax
22886    }
22887}
22888impl AstNode for DropNotNull {
22889    #[inline]
22890    fn can_cast(kind: SyntaxKind) -> bool {
22891        kind == SyntaxKind::DROP_NOT_NULL
22892    }
22893    #[inline]
22894    fn cast(syntax: SyntaxNode) -> Option<Self> {
22895        if Self::can_cast(syntax.kind()) {
22896            Some(Self { syntax })
22897        } else {
22898            None
22899        }
22900    }
22901    #[inline]
22902    fn syntax(&self) -> &SyntaxNode {
22903        &self.syntax
22904    }
22905}
22906impl AstNode for DropOpClassOption {
22907    #[inline]
22908    fn can_cast(kind: SyntaxKind) -> bool {
22909        kind == SyntaxKind::DROP_OP_CLASS_OPTION
22910    }
22911    #[inline]
22912    fn cast(syntax: SyntaxNode) -> Option<Self> {
22913        if Self::can_cast(syntax.kind()) {
22914            Some(Self { syntax })
22915        } else {
22916            None
22917        }
22918    }
22919    #[inline]
22920    fn syntax(&self) -> &SyntaxNode {
22921        &self.syntax
22922    }
22923}
22924impl AstNode for DropOpClassOptionList {
22925    #[inline]
22926    fn can_cast(kind: SyntaxKind) -> bool {
22927        kind == SyntaxKind::DROP_OP_CLASS_OPTION_LIST
22928    }
22929    #[inline]
22930    fn cast(syntax: SyntaxNode) -> Option<Self> {
22931        if Self::can_cast(syntax.kind()) {
22932            Some(Self { syntax })
22933        } else {
22934            None
22935        }
22936    }
22937    #[inline]
22938    fn syntax(&self) -> &SyntaxNode {
22939        &self.syntax
22940    }
22941}
22942impl AstNode for DropOpClassOptions {
22943    #[inline]
22944    fn can_cast(kind: SyntaxKind) -> bool {
22945        kind == SyntaxKind::DROP_OP_CLASS_OPTIONS
22946    }
22947    #[inline]
22948    fn cast(syntax: SyntaxNode) -> Option<Self> {
22949        if Self::can_cast(syntax.kind()) {
22950            Some(Self { syntax })
22951        } else {
22952            None
22953        }
22954    }
22955    #[inline]
22956    fn syntax(&self) -> &SyntaxNode {
22957        &self.syntax
22958    }
22959}
22960impl AstNode for DropOperator {
22961    #[inline]
22962    fn can_cast(kind: SyntaxKind) -> bool {
22963        kind == SyntaxKind::DROP_OPERATOR
22964    }
22965    #[inline]
22966    fn cast(syntax: SyntaxNode) -> Option<Self> {
22967        if Self::can_cast(syntax.kind()) {
22968            Some(Self { syntax })
22969        } else {
22970            None
22971        }
22972    }
22973    #[inline]
22974    fn syntax(&self) -> &SyntaxNode {
22975        &self.syntax
22976    }
22977}
22978impl AstNode for DropOperatorClass {
22979    #[inline]
22980    fn can_cast(kind: SyntaxKind) -> bool {
22981        kind == SyntaxKind::DROP_OPERATOR_CLASS
22982    }
22983    #[inline]
22984    fn cast(syntax: SyntaxNode) -> Option<Self> {
22985        if Self::can_cast(syntax.kind()) {
22986            Some(Self { syntax })
22987        } else {
22988            None
22989        }
22990    }
22991    #[inline]
22992    fn syntax(&self) -> &SyntaxNode {
22993        &self.syntax
22994    }
22995}
22996impl AstNode for DropOperatorFamily {
22997    #[inline]
22998    fn can_cast(kind: SyntaxKind) -> bool {
22999        kind == SyntaxKind::DROP_OPERATOR_FAMILY
23000    }
23001    #[inline]
23002    fn cast(syntax: SyntaxNode) -> Option<Self> {
23003        if Self::can_cast(syntax.kind()) {
23004            Some(Self { syntax })
23005        } else {
23006            None
23007        }
23008    }
23009    #[inline]
23010    fn syntax(&self) -> &SyntaxNode {
23011        &self.syntax
23012    }
23013}
23014impl AstNode for DropOwned {
23015    #[inline]
23016    fn can_cast(kind: SyntaxKind) -> bool {
23017        kind == SyntaxKind::DROP_OWNED
23018    }
23019    #[inline]
23020    fn cast(syntax: SyntaxNode) -> Option<Self> {
23021        if Self::can_cast(syntax.kind()) {
23022            Some(Self { syntax })
23023        } else {
23024            None
23025        }
23026    }
23027    #[inline]
23028    fn syntax(&self) -> &SyntaxNode {
23029        &self.syntax
23030    }
23031}
23032impl AstNode for DropPolicy {
23033    #[inline]
23034    fn can_cast(kind: SyntaxKind) -> bool {
23035        kind == SyntaxKind::DROP_POLICY
23036    }
23037    #[inline]
23038    fn cast(syntax: SyntaxNode) -> Option<Self> {
23039        if Self::can_cast(syntax.kind()) {
23040            Some(Self { syntax })
23041        } else {
23042            None
23043        }
23044    }
23045    #[inline]
23046    fn syntax(&self) -> &SyntaxNode {
23047        &self.syntax
23048    }
23049}
23050impl AstNode for DropProcedure {
23051    #[inline]
23052    fn can_cast(kind: SyntaxKind) -> bool {
23053        kind == SyntaxKind::DROP_PROCEDURE
23054    }
23055    #[inline]
23056    fn cast(syntax: SyntaxNode) -> Option<Self> {
23057        if Self::can_cast(syntax.kind()) {
23058            Some(Self { syntax })
23059        } else {
23060            None
23061        }
23062    }
23063    #[inline]
23064    fn syntax(&self) -> &SyntaxNode {
23065        &self.syntax
23066    }
23067}
23068impl AstNode for DropPropertyGraph {
23069    #[inline]
23070    fn can_cast(kind: SyntaxKind) -> bool {
23071        kind == SyntaxKind::DROP_PROPERTY_GRAPH
23072    }
23073    #[inline]
23074    fn cast(syntax: SyntaxNode) -> Option<Self> {
23075        if Self::can_cast(syntax.kind()) {
23076            Some(Self { syntax })
23077        } else {
23078            None
23079        }
23080    }
23081    #[inline]
23082    fn syntax(&self) -> &SyntaxNode {
23083        &self.syntax
23084    }
23085}
23086impl AstNode for DropPublication {
23087    #[inline]
23088    fn can_cast(kind: SyntaxKind) -> bool {
23089        kind == SyntaxKind::DROP_PUBLICATION
23090    }
23091    #[inline]
23092    fn cast(syntax: SyntaxNode) -> Option<Self> {
23093        if Self::can_cast(syntax.kind()) {
23094            Some(Self { syntax })
23095        } else {
23096            None
23097        }
23098    }
23099    #[inline]
23100    fn syntax(&self) -> &SyntaxNode {
23101        &self.syntax
23102    }
23103}
23104impl AstNode for DropRole {
23105    #[inline]
23106    fn can_cast(kind: SyntaxKind) -> bool {
23107        kind == SyntaxKind::DROP_ROLE
23108    }
23109    #[inline]
23110    fn cast(syntax: SyntaxNode) -> Option<Self> {
23111        if Self::can_cast(syntax.kind()) {
23112            Some(Self { syntax })
23113        } else {
23114            None
23115        }
23116    }
23117    #[inline]
23118    fn syntax(&self) -> &SyntaxNode {
23119        &self.syntax
23120    }
23121}
23122impl AstNode for DropRoutine {
23123    #[inline]
23124    fn can_cast(kind: SyntaxKind) -> bool {
23125        kind == SyntaxKind::DROP_ROUTINE
23126    }
23127    #[inline]
23128    fn cast(syntax: SyntaxNode) -> Option<Self> {
23129        if Self::can_cast(syntax.kind()) {
23130            Some(Self { syntax })
23131        } else {
23132            None
23133        }
23134    }
23135    #[inline]
23136    fn syntax(&self) -> &SyntaxNode {
23137        &self.syntax
23138    }
23139}
23140impl AstNode for DropRule {
23141    #[inline]
23142    fn can_cast(kind: SyntaxKind) -> bool {
23143        kind == SyntaxKind::DROP_RULE
23144    }
23145    #[inline]
23146    fn cast(syntax: SyntaxNode) -> Option<Self> {
23147        if Self::can_cast(syntax.kind()) {
23148            Some(Self { syntax })
23149        } else {
23150            None
23151        }
23152    }
23153    #[inline]
23154    fn syntax(&self) -> &SyntaxNode {
23155        &self.syntax
23156    }
23157}
23158impl AstNode for DropSchema {
23159    #[inline]
23160    fn can_cast(kind: SyntaxKind) -> bool {
23161        kind == SyntaxKind::DROP_SCHEMA
23162    }
23163    #[inline]
23164    fn cast(syntax: SyntaxNode) -> Option<Self> {
23165        if Self::can_cast(syntax.kind()) {
23166            Some(Self { syntax })
23167        } else {
23168            None
23169        }
23170    }
23171    #[inline]
23172    fn syntax(&self) -> &SyntaxNode {
23173        &self.syntax
23174    }
23175}
23176impl AstNode for DropSequence {
23177    #[inline]
23178    fn can_cast(kind: SyntaxKind) -> bool {
23179        kind == SyntaxKind::DROP_SEQUENCE
23180    }
23181    #[inline]
23182    fn cast(syntax: SyntaxNode) -> Option<Self> {
23183        if Self::can_cast(syntax.kind()) {
23184            Some(Self { syntax })
23185        } else {
23186            None
23187        }
23188    }
23189    #[inline]
23190    fn syntax(&self) -> &SyntaxNode {
23191        &self.syntax
23192    }
23193}
23194impl AstNode for DropServer {
23195    #[inline]
23196    fn can_cast(kind: SyntaxKind) -> bool {
23197        kind == SyntaxKind::DROP_SERVER
23198    }
23199    #[inline]
23200    fn cast(syntax: SyntaxNode) -> Option<Self> {
23201        if Self::can_cast(syntax.kind()) {
23202            Some(Self { syntax })
23203        } else {
23204            None
23205        }
23206    }
23207    #[inline]
23208    fn syntax(&self) -> &SyntaxNode {
23209        &self.syntax
23210    }
23211}
23212impl AstNode for DropStatistics {
23213    #[inline]
23214    fn can_cast(kind: SyntaxKind) -> bool {
23215        kind == SyntaxKind::DROP_STATISTICS
23216    }
23217    #[inline]
23218    fn cast(syntax: SyntaxNode) -> Option<Self> {
23219        if Self::can_cast(syntax.kind()) {
23220            Some(Self { syntax })
23221        } else {
23222            None
23223        }
23224    }
23225    #[inline]
23226    fn syntax(&self) -> &SyntaxNode {
23227        &self.syntax
23228    }
23229}
23230impl AstNode for DropSubscription {
23231    #[inline]
23232    fn can_cast(kind: SyntaxKind) -> bool {
23233        kind == SyntaxKind::DROP_SUBSCRIPTION
23234    }
23235    #[inline]
23236    fn cast(syntax: SyntaxNode) -> Option<Self> {
23237        if Self::can_cast(syntax.kind()) {
23238            Some(Self { syntax })
23239        } else {
23240            None
23241        }
23242    }
23243    #[inline]
23244    fn syntax(&self) -> &SyntaxNode {
23245        &self.syntax
23246    }
23247}
23248impl AstNode for DropTable {
23249    #[inline]
23250    fn can_cast(kind: SyntaxKind) -> bool {
23251        kind == SyntaxKind::DROP_TABLE
23252    }
23253    #[inline]
23254    fn cast(syntax: SyntaxNode) -> Option<Self> {
23255        if Self::can_cast(syntax.kind()) {
23256            Some(Self { syntax })
23257        } else {
23258            None
23259        }
23260    }
23261    #[inline]
23262    fn syntax(&self) -> &SyntaxNode {
23263        &self.syntax
23264    }
23265}
23266impl AstNode for DropTablespace {
23267    #[inline]
23268    fn can_cast(kind: SyntaxKind) -> bool {
23269        kind == SyntaxKind::DROP_TABLESPACE
23270    }
23271    #[inline]
23272    fn cast(syntax: SyntaxNode) -> Option<Self> {
23273        if Self::can_cast(syntax.kind()) {
23274            Some(Self { syntax })
23275        } else {
23276            None
23277        }
23278    }
23279    #[inline]
23280    fn syntax(&self) -> &SyntaxNode {
23281        &self.syntax
23282    }
23283}
23284impl AstNode for DropTextSearchConfig {
23285    #[inline]
23286    fn can_cast(kind: SyntaxKind) -> bool {
23287        kind == SyntaxKind::DROP_TEXT_SEARCH_CONFIG
23288    }
23289    #[inline]
23290    fn cast(syntax: SyntaxNode) -> Option<Self> {
23291        if Self::can_cast(syntax.kind()) {
23292            Some(Self { syntax })
23293        } else {
23294            None
23295        }
23296    }
23297    #[inline]
23298    fn syntax(&self) -> &SyntaxNode {
23299        &self.syntax
23300    }
23301}
23302impl AstNode for DropTextSearchDict {
23303    #[inline]
23304    fn can_cast(kind: SyntaxKind) -> bool {
23305        kind == SyntaxKind::DROP_TEXT_SEARCH_DICT
23306    }
23307    #[inline]
23308    fn cast(syntax: SyntaxNode) -> Option<Self> {
23309        if Self::can_cast(syntax.kind()) {
23310            Some(Self { syntax })
23311        } else {
23312            None
23313        }
23314    }
23315    #[inline]
23316    fn syntax(&self) -> &SyntaxNode {
23317        &self.syntax
23318    }
23319}
23320impl AstNode for DropTextSearchParser {
23321    #[inline]
23322    fn can_cast(kind: SyntaxKind) -> bool {
23323        kind == SyntaxKind::DROP_TEXT_SEARCH_PARSER
23324    }
23325    #[inline]
23326    fn cast(syntax: SyntaxNode) -> Option<Self> {
23327        if Self::can_cast(syntax.kind()) {
23328            Some(Self { syntax })
23329        } else {
23330            None
23331        }
23332    }
23333    #[inline]
23334    fn syntax(&self) -> &SyntaxNode {
23335        &self.syntax
23336    }
23337}
23338impl AstNode for DropTextSearchTemplate {
23339    #[inline]
23340    fn can_cast(kind: SyntaxKind) -> bool {
23341        kind == SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
23342    }
23343    #[inline]
23344    fn cast(syntax: SyntaxNode) -> Option<Self> {
23345        if Self::can_cast(syntax.kind()) {
23346            Some(Self { syntax })
23347        } else {
23348            None
23349        }
23350    }
23351    #[inline]
23352    fn syntax(&self) -> &SyntaxNode {
23353        &self.syntax
23354    }
23355}
23356impl AstNode for DropTransform {
23357    #[inline]
23358    fn can_cast(kind: SyntaxKind) -> bool {
23359        kind == SyntaxKind::DROP_TRANSFORM
23360    }
23361    #[inline]
23362    fn cast(syntax: SyntaxNode) -> Option<Self> {
23363        if Self::can_cast(syntax.kind()) {
23364            Some(Self { syntax })
23365        } else {
23366            None
23367        }
23368    }
23369    #[inline]
23370    fn syntax(&self) -> &SyntaxNode {
23371        &self.syntax
23372    }
23373}
23374impl AstNode for DropTrigger {
23375    #[inline]
23376    fn can_cast(kind: SyntaxKind) -> bool {
23377        kind == SyntaxKind::DROP_TRIGGER
23378    }
23379    #[inline]
23380    fn cast(syntax: SyntaxNode) -> Option<Self> {
23381        if Self::can_cast(syntax.kind()) {
23382            Some(Self { syntax })
23383        } else {
23384            None
23385        }
23386    }
23387    #[inline]
23388    fn syntax(&self) -> &SyntaxNode {
23389        &self.syntax
23390    }
23391}
23392impl AstNode for DropType {
23393    #[inline]
23394    fn can_cast(kind: SyntaxKind) -> bool {
23395        kind == SyntaxKind::DROP_TYPE
23396    }
23397    #[inline]
23398    fn cast(syntax: SyntaxNode) -> Option<Self> {
23399        if Self::can_cast(syntax.kind()) {
23400            Some(Self { syntax })
23401        } else {
23402            None
23403        }
23404    }
23405    #[inline]
23406    fn syntax(&self) -> &SyntaxNode {
23407        &self.syntax
23408    }
23409}
23410impl AstNode for DropUser {
23411    #[inline]
23412    fn can_cast(kind: SyntaxKind) -> bool {
23413        kind == SyntaxKind::DROP_USER
23414    }
23415    #[inline]
23416    fn cast(syntax: SyntaxNode) -> Option<Self> {
23417        if Self::can_cast(syntax.kind()) {
23418            Some(Self { syntax })
23419        } else {
23420            None
23421        }
23422    }
23423    #[inline]
23424    fn syntax(&self) -> &SyntaxNode {
23425        &self.syntax
23426    }
23427}
23428impl AstNode for DropUserMapping {
23429    #[inline]
23430    fn can_cast(kind: SyntaxKind) -> bool {
23431        kind == SyntaxKind::DROP_USER_MAPPING
23432    }
23433    #[inline]
23434    fn cast(syntax: SyntaxNode) -> Option<Self> {
23435        if Self::can_cast(syntax.kind()) {
23436            Some(Self { syntax })
23437        } else {
23438            None
23439        }
23440    }
23441    #[inline]
23442    fn syntax(&self) -> &SyntaxNode {
23443        &self.syntax
23444    }
23445}
23446impl AstNode for DropVertexEdgeLabel {
23447    #[inline]
23448    fn can_cast(kind: SyntaxKind) -> bool {
23449        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL
23450    }
23451    #[inline]
23452    fn cast(syntax: SyntaxNode) -> Option<Self> {
23453        if Self::can_cast(syntax.kind()) {
23454            Some(Self { syntax })
23455        } else {
23456            None
23457        }
23458    }
23459    #[inline]
23460    fn syntax(&self) -> &SyntaxNode {
23461        &self.syntax
23462    }
23463}
23464impl AstNode for DropVertexEdgeLabelProperties {
23465    #[inline]
23466    fn can_cast(kind: SyntaxKind) -> bool {
23467        kind == SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
23468    }
23469    #[inline]
23470    fn cast(syntax: SyntaxNode) -> Option<Self> {
23471        if Self::can_cast(syntax.kind()) {
23472            Some(Self { syntax })
23473        } else {
23474            None
23475        }
23476    }
23477    #[inline]
23478    fn syntax(&self) -> &SyntaxNode {
23479        &self.syntax
23480    }
23481}
23482impl AstNode for DropVertexTables {
23483    #[inline]
23484    fn can_cast(kind: SyntaxKind) -> bool {
23485        kind == SyntaxKind::DROP_VERTEX_TABLES
23486    }
23487    #[inline]
23488    fn cast(syntax: SyntaxNode) -> Option<Self> {
23489        if Self::can_cast(syntax.kind()) {
23490            Some(Self { syntax })
23491        } else {
23492            None
23493        }
23494    }
23495    #[inline]
23496    fn syntax(&self) -> &SyntaxNode {
23497        &self.syntax
23498    }
23499}
23500impl AstNode for DropView {
23501    #[inline]
23502    fn can_cast(kind: SyntaxKind) -> bool {
23503        kind == SyntaxKind::DROP_VIEW
23504    }
23505    #[inline]
23506    fn cast(syntax: SyntaxNode) -> Option<Self> {
23507        if Self::can_cast(syntax.kind()) {
23508            Some(Self { syntax })
23509        } else {
23510            None
23511        }
23512    }
23513    #[inline]
23514    fn syntax(&self) -> &SyntaxNode {
23515        &self.syntax
23516    }
23517}
23518impl AstNode for EdgeAny {
23519    #[inline]
23520    fn can_cast(kind: SyntaxKind) -> bool {
23521        kind == SyntaxKind::EDGE_ANY
23522    }
23523    #[inline]
23524    fn cast(syntax: SyntaxNode) -> Option<Self> {
23525        if Self::can_cast(syntax.kind()) {
23526            Some(Self { syntax })
23527        } else {
23528            None
23529        }
23530    }
23531    #[inline]
23532    fn syntax(&self) -> &SyntaxNode {
23533        &self.syntax
23534    }
23535}
23536impl AstNode for EdgeLeft {
23537    #[inline]
23538    fn can_cast(kind: SyntaxKind) -> bool {
23539        kind == SyntaxKind::EDGE_LEFT
23540    }
23541    #[inline]
23542    fn cast(syntax: SyntaxNode) -> Option<Self> {
23543        if Self::can_cast(syntax.kind()) {
23544            Some(Self { syntax })
23545        } else {
23546            None
23547        }
23548    }
23549    #[inline]
23550    fn syntax(&self) -> &SyntaxNode {
23551        &self.syntax
23552    }
23553}
23554impl AstNode for EdgeRight {
23555    #[inline]
23556    fn can_cast(kind: SyntaxKind) -> bool {
23557        kind == SyntaxKind::EDGE_RIGHT
23558    }
23559    #[inline]
23560    fn cast(syntax: SyntaxNode) -> Option<Self> {
23561        if Self::can_cast(syntax.kind()) {
23562            Some(Self { syntax })
23563        } else {
23564            None
23565        }
23566    }
23567    #[inline]
23568    fn syntax(&self) -> &SyntaxNode {
23569        &self.syntax
23570    }
23571}
23572impl AstNode for EdgeTableDef {
23573    #[inline]
23574    fn can_cast(kind: SyntaxKind) -> bool {
23575        kind == SyntaxKind::EDGE_TABLE_DEF
23576    }
23577    #[inline]
23578    fn cast(syntax: SyntaxNode) -> Option<Self> {
23579        if Self::can_cast(syntax.kind()) {
23580            Some(Self { syntax })
23581        } else {
23582            None
23583        }
23584    }
23585    #[inline]
23586    fn syntax(&self) -> &SyntaxNode {
23587        &self.syntax
23588    }
23589}
23590impl AstNode for EdgeTables {
23591    #[inline]
23592    fn can_cast(kind: SyntaxKind) -> bool {
23593        kind == SyntaxKind::EDGE_TABLES
23594    }
23595    #[inline]
23596    fn cast(syntax: SyntaxNode) -> Option<Self> {
23597        if Self::can_cast(syntax.kind()) {
23598            Some(Self { syntax })
23599        } else {
23600            None
23601        }
23602    }
23603    #[inline]
23604    fn syntax(&self) -> &SyntaxNode {
23605        &self.syntax
23606    }
23607}
23608impl AstNode for ElseClause {
23609    #[inline]
23610    fn can_cast(kind: SyntaxKind) -> bool {
23611        kind == SyntaxKind::ELSE_CLAUSE
23612    }
23613    #[inline]
23614    fn cast(syntax: SyntaxNode) -> Option<Self> {
23615        if Self::can_cast(syntax.kind()) {
23616            Some(Self { syntax })
23617        } else {
23618            None
23619        }
23620    }
23621    #[inline]
23622    fn syntax(&self) -> &SyntaxNode {
23623        &self.syntax
23624    }
23625}
23626impl AstNode for EmptyStmt {
23627    #[inline]
23628    fn can_cast(kind: SyntaxKind) -> bool {
23629        kind == SyntaxKind::EMPTY_STMT
23630    }
23631    #[inline]
23632    fn cast(syntax: SyntaxNode) -> Option<Self> {
23633        if Self::can_cast(syntax.kind()) {
23634            Some(Self { syntax })
23635        } else {
23636            None
23637        }
23638    }
23639    #[inline]
23640    fn syntax(&self) -> &SyntaxNode {
23641        &self.syntax
23642    }
23643}
23644impl AstNode for EnableAlwaysRule {
23645    #[inline]
23646    fn can_cast(kind: SyntaxKind) -> bool {
23647        kind == SyntaxKind::ENABLE_ALWAYS_RULE
23648    }
23649    #[inline]
23650    fn cast(syntax: SyntaxNode) -> Option<Self> {
23651        if Self::can_cast(syntax.kind()) {
23652            Some(Self { syntax })
23653        } else {
23654            None
23655        }
23656    }
23657    #[inline]
23658    fn syntax(&self) -> &SyntaxNode {
23659        &self.syntax
23660    }
23661}
23662impl AstNode for EnableAlwaysTrigger {
23663    #[inline]
23664    fn can_cast(kind: SyntaxKind) -> bool {
23665        kind == SyntaxKind::ENABLE_ALWAYS_TRIGGER
23666    }
23667    #[inline]
23668    fn cast(syntax: SyntaxNode) -> Option<Self> {
23669        if Self::can_cast(syntax.kind()) {
23670            Some(Self { syntax })
23671        } else {
23672            None
23673        }
23674    }
23675    #[inline]
23676    fn syntax(&self) -> &SyntaxNode {
23677        &self.syntax
23678    }
23679}
23680impl AstNode for EnableReplicaRule {
23681    #[inline]
23682    fn can_cast(kind: SyntaxKind) -> bool {
23683        kind == SyntaxKind::ENABLE_REPLICA_RULE
23684    }
23685    #[inline]
23686    fn cast(syntax: SyntaxNode) -> Option<Self> {
23687        if Self::can_cast(syntax.kind()) {
23688            Some(Self { syntax })
23689        } else {
23690            None
23691        }
23692    }
23693    #[inline]
23694    fn syntax(&self) -> &SyntaxNode {
23695        &self.syntax
23696    }
23697}
23698impl AstNode for EnableReplicaTrigger {
23699    #[inline]
23700    fn can_cast(kind: SyntaxKind) -> bool {
23701        kind == SyntaxKind::ENABLE_REPLICA_TRIGGER
23702    }
23703    #[inline]
23704    fn cast(syntax: SyntaxNode) -> Option<Self> {
23705        if Self::can_cast(syntax.kind()) {
23706            Some(Self { syntax })
23707        } else {
23708            None
23709        }
23710    }
23711    #[inline]
23712    fn syntax(&self) -> &SyntaxNode {
23713        &self.syntax
23714    }
23715}
23716impl AstNode for EnableRls {
23717    #[inline]
23718    fn can_cast(kind: SyntaxKind) -> bool {
23719        kind == SyntaxKind::ENABLE_RLS
23720    }
23721    #[inline]
23722    fn cast(syntax: SyntaxNode) -> Option<Self> {
23723        if Self::can_cast(syntax.kind()) {
23724            Some(Self { syntax })
23725        } else {
23726            None
23727        }
23728    }
23729    #[inline]
23730    fn syntax(&self) -> &SyntaxNode {
23731        &self.syntax
23732    }
23733}
23734impl AstNode for EnableRule {
23735    #[inline]
23736    fn can_cast(kind: SyntaxKind) -> bool {
23737        kind == SyntaxKind::ENABLE_RULE
23738    }
23739    #[inline]
23740    fn cast(syntax: SyntaxNode) -> Option<Self> {
23741        if Self::can_cast(syntax.kind()) {
23742            Some(Self { syntax })
23743        } else {
23744            None
23745        }
23746    }
23747    #[inline]
23748    fn syntax(&self) -> &SyntaxNode {
23749        &self.syntax
23750    }
23751}
23752impl AstNode for EnableTrigger {
23753    #[inline]
23754    fn can_cast(kind: SyntaxKind) -> bool {
23755        kind == SyntaxKind::ENABLE_TRIGGER
23756    }
23757    #[inline]
23758    fn cast(syntax: SyntaxNode) -> Option<Self> {
23759        if Self::can_cast(syntax.kind()) {
23760            Some(Self { syntax })
23761        } else {
23762            None
23763        }
23764    }
23765    #[inline]
23766    fn syntax(&self) -> &SyntaxNode {
23767        &self.syntax
23768    }
23769}
23770impl AstNode for Enforced {
23771    #[inline]
23772    fn can_cast(kind: SyntaxKind) -> bool {
23773        kind == SyntaxKind::ENFORCED
23774    }
23775    #[inline]
23776    fn cast(syntax: SyntaxNode) -> Option<Self> {
23777        if Self::can_cast(syntax.kind()) {
23778            Some(Self { syntax })
23779        } else {
23780            None
23781        }
23782    }
23783    #[inline]
23784    fn syntax(&self) -> &SyntaxNode {
23785        &self.syntax
23786    }
23787}
23788impl AstNode for EventTriggerWhen {
23789    #[inline]
23790    fn can_cast(kind: SyntaxKind) -> bool {
23791        kind == SyntaxKind::EVENT_TRIGGER_WHEN
23792    }
23793    #[inline]
23794    fn cast(syntax: SyntaxNode) -> Option<Self> {
23795        if Self::can_cast(syntax.kind()) {
23796            Some(Self { syntax })
23797        } else {
23798            None
23799        }
23800    }
23801    #[inline]
23802    fn syntax(&self) -> &SyntaxNode {
23803        &self.syntax
23804    }
23805}
23806impl AstNode for EventTriggerWhenClause {
23807    #[inline]
23808    fn can_cast(kind: SyntaxKind) -> bool {
23809        kind == SyntaxKind::EVENT_TRIGGER_WHEN_CLAUSE
23810    }
23811    #[inline]
23812    fn cast(syntax: SyntaxNode) -> Option<Self> {
23813        if Self::can_cast(syntax.kind()) {
23814            Some(Self { syntax })
23815        } else {
23816            None
23817        }
23818    }
23819    #[inline]
23820    fn syntax(&self) -> &SyntaxNode {
23821        &self.syntax
23822    }
23823}
23824impl AstNode for ExceptTableClause {
23825    #[inline]
23826    fn can_cast(kind: SyntaxKind) -> bool {
23827        kind == SyntaxKind::EXCEPT_TABLE_CLAUSE
23828    }
23829    #[inline]
23830    fn cast(syntax: SyntaxNode) -> Option<Self> {
23831        if Self::can_cast(syntax.kind()) {
23832            Some(Self { syntax })
23833        } else {
23834            None
23835        }
23836    }
23837    #[inline]
23838    fn syntax(&self) -> &SyntaxNode {
23839        &self.syntax
23840    }
23841}
23842impl AstNode for ExceptTables {
23843    #[inline]
23844    fn can_cast(kind: SyntaxKind) -> bool {
23845        kind == SyntaxKind::EXCEPT_TABLES
23846    }
23847    #[inline]
23848    fn cast(syntax: SyntaxNode) -> Option<Self> {
23849        if Self::can_cast(syntax.kind()) {
23850            Some(Self { syntax })
23851        } else {
23852            None
23853        }
23854    }
23855    #[inline]
23856    fn syntax(&self) -> &SyntaxNode {
23857        &self.syntax
23858    }
23859}
23860impl AstNode for ExcludeConstraint {
23861    #[inline]
23862    fn can_cast(kind: SyntaxKind) -> bool {
23863        kind == SyntaxKind::EXCLUDE_CONSTRAINT
23864    }
23865    #[inline]
23866    fn cast(syntax: SyntaxNode) -> Option<Self> {
23867        if Self::can_cast(syntax.kind()) {
23868            Some(Self { syntax })
23869        } else {
23870            None
23871        }
23872    }
23873    #[inline]
23874    fn syntax(&self) -> &SyntaxNode {
23875        &self.syntax
23876    }
23877}
23878impl AstNode for Execute {
23879    #[inline]
23880    fn can_cast(kind: SyntaxKind) -> bool {
23881        kind == SyntaxKind::EXECUTE
23882    }
23883    #[inline]
23884    fn cast(syntax: SyntaxNode) -> Option<Self> {
23885        if Self::can_cast(syntax.kind()) {
23886            Some(Self { syntax })
23887        } else {
23888            None
23889        }
23890    }
23891    #[inline]
23892    fn syntax(&self) -> &SyntaxNode {
23893        &self.syntax
23894    }
23895}
23896impl AstNode for ExistsFn {
23897    #[inline]
23898    fn can_cast(kind: SyntaxKind) -> bool {
23899        kind == SyntaxKind::EXISTS_FN
23900    }
23901    #[inline]
23902    fn cast(syntax: SyntaxNode) -> Option<Self> {
23903        if Self::can_cast(syntax.kind()) {
23904            Some(Self { syntax })
23905        } else {
23906            None
23907        }
23908    }
23909    #[inline]
23910    fn syntax(&self) -> &SyntaxNode {
23911        &self.syntax
23912    }
23913}
23914impl AstNode for Explain {
23915    #[inline]
23916    fn can_cast(kind: SyntaxKind) -> bool {
23917        kind == SyntaxKind::EXPLAIN
23918    }
23919    #[inline]
23920    fn cast(syntax: SyntaxNode) -> Option<Self> {
23921        if Self::can_cast(syntax.kind()) {
23922            Some(Self { syntax })
23923        } else {
23924            None
23925        }
23926    }
23927    #[inline]
23928    fn syntax(&self) -> &SyntaxNode {
23929        &self.syntax
23930    }
23931}
23932impl AstNode for ExprAsName {
23933    #[inline]
23934    fn can_cast(kind: SyntaxKind) -> bool {
23935        kind == SyntaxKind::EXPR_AS_NAME
23936    }
23937    #[inline]
23938    fn cast(syntax: SyntaxNode) -> Option<Self> {
23939        if Self::can_cast(syntax.kind()) {
23940            Some(Self { syntax })
23941        } else {
23942            None
23943        }
23944    }
23945    #[inline]
23946    fn syntax(&self) -> &SyntaxNode {
23947        &self.syntax
23948    }
23949}
23950impl AstNode for ExprAsNameList {
23951    #[inline]
23952    fn can_cast(kind: SyntaxKind) -> bool {
23953        kind == SyntaxKind::EXPR_AS_NAME_LIST
23954    }
23955    #[inline]
23956    fn cast(syntax: SyntaxNode) -> Option<Self> {
23957        if Self::can_cast(syntax.kind()) {
23958            Some(Self { syntax })
23959        } else {
23960            None
23961        }
23962    }
23963    #[inline]
23964    fn syntax(&self) -> &SyntaxNode {
23965        &self.syntax
23966    }
23967}
23968impl AstNode for ExprType {
23969    #[inline]
23970    fn can_cast(kind: SyntaxKind) -> bool {
23971        kind == SyntaxKind::EXPR_TYPE
23972    }
23973    #[inline]
23974    fn cast(syntax: SyntaxNode) -> Option<Self> {
23975        if Self::can_cast(syntax.kind()) {
23976            Some(Self { syntax })
23977        } else {
23978            None
23979        }
23980    }
23981    #[inline]
23982    fn syntax(&self) -> &SyntaxNode {
23983        &self.syntax
23984    }
23985}
23986impl AstNode for ExtractFn {
23987    #[inline]
23988    fn can_cast(kind: SyntaxKind) -> bool {
23989        kind == SyntaxKind::EXTRACT_FN
23990    }
23991    #[inline]
23992    fn cast(syntax: SyntaxNode) -> Option<Self> {
23993        if Self::can_cast(syntax.kind()) {
23994            Some(Self { syntax })
23995        } else {
23996            None
23997        }
23998    }
23999    #[inline]
24000    fn syntax(&self) -> &SyntaxNode {
24001        &self.syntax
24002    }
24003}
24004impl AstNode for FatArrow {
24005    #[inline]
24006    fn can_cast(kind: SyntaxKind) -> bool {
24007        kind == SyntaxKind::FAT_ARROW
24008    }
24009    #[inline]
24010    fn cast(syntax: SyntaxNode) -> Option<Self> {
24011        if Self::can_cast(syntax.kind()) {
24012            Some(Self { syntax })
24013        } else {
24014            None
24015        }
24016    }
24017    #[inline]
24018    fn syntax(&self) -> &SyntaxNode {
24019        &self.syntax
24020    }
24021}
24022impl AstNode for FdwOption {
24023    #[inline]
24024    fn can_cast(kind: SyntaxKind) -> bool {
24025        kind == SyntaxKind::FDW_OPTION
24026    }
24027    #[inline]
24028    fn cast(syntax: SyntaxNode) -> Option<Self> {
24029        if Self::can_cast(syntax.kind()) {
24030            Some(Self { syntax })
24031        } else {
24032            None
24033        }
24034    }
24035    #[inline]
24036    fn syntax(&self) -> &SyntaxNode {
24037        &self.syntax
24038    }
24039}
24040impl AstNode for FdwOptionList {
24041    #[inline]
24042    fn can_cast(kind: SyntaxKind) -> bool {
24043        kind == SyntaxKind::FDW_OPTION_LIST
24044    }
24045    #[inline]
24046    fn cast(syntax: SyntaxNode) -> Option<Self> {
24047        if Self::can_cast(syntax.kind()) {
24048            Some(Self { syntax })
24049        } else {
24050            None
24051        }
24052    }
24053    #[inline]
24054    fn syntax(&self) -> &SyntaxNode {
24055        &self.syntax
24056    }
24057}
24058impl AstNode for Fetch {
24059    #[inline]
24060    fn can_cast(kind: SyntaxKind) -> bool {
24061        kind == SyntaxKind::FETCH
24062    }
24063    #[inline]
24064    fn cast(syntax: SyntaxNode) -> Option<Self> {
24065        if Self::can_cast(syntax.kind()) {
24066            Some(Self { syntax })
24067        } else {
24068            None
24069        }
24070    }
24071    #[inline]
24072    fn syntax(&self) -> &SyntaxNode {
24073        &self.syntax
24074    }
24075}
24076impl AstNode for FetchClause {
24077    #[inline]
24078    fn can_cast(kind: SyntaxKind) -> bool {
24079        kind == SyntaxKind::FETCH_CLAUSE
24080    }
24081    #[inline]
24082    fn cast(syntax: SyntaxNode) -> Option<Self> {
24083        if Self::can_cast(syntax.kind()) {
24084            Some(Self { syntax })
24085        } else {
24086            None
24087        }
24088    }
24089    #[inline]
24090    fn syntax(&self) -> &SyntaxNode {
24091        &self.syntax
24092    }
24093}
24094impl AstNode for FieldExpr {
24095    #[inline]
24096    fn can_cast(kind: SyntaxKind) -> bool {
24097        kind == SyntaxKind::FIELD_EXPR
24098    }
24099    #[inline]
24100    fn cast(syntax: SyntaxNode) -> Option<Self> {
24101        if Self::can_cast(syntax.kind()) {
24102            Some(Self { syntax })
24103        } else {
24104            None
24105        }
24106    }
24107    #[inline]
24108    fn syntax(&self) -> &SyntaxNode {
24109        &self.syntax
24110    }
24111}
24112impl AstNode for FilterClause {
24113    #[inline]
24114    fn can_cast(kind: SyntaxKind) -> bool {
24115        kind == SyntaxKind::FILTER_CLAUSE
24116    }
24117    #[inline]
24118    fn cast(syntax: SyntaxNode) -> Option<Self> {
24119        if Self::can_cast(syntax.kind()) {
24120            Some(Self { syntax })
24121        } else {
24122            None
24123        }
24124    }
24125    #[inline]
24126    fn syntax(&self) -> &SyntaxNode {
24127        &self.syntax
24128    }
24129}
24130impl AstNode for ForPortionOf {
24131    #[inline]
24132    fn can_cast(kind: SyntaxKind) -> bool {
24133        kind == SyntaxKind::FOR_PORTION_OF
24134    }
24135    #[inline]
24136    fn cast(syntax: SyntaxNode) -> Option<Self> {
24137        if Self::can_cast(syntax.kind()) {
24138            Some(Self { syntax })
24139        } else {
24140            None
24141        }
24142    }
24143    #[inline]
24144    fn syntax(&self) -> &SyntaxNode {
24145        &self.syntax
24146    }
24147}
24148impl AstNode for ForProvider {
24149    #[inline]
24150    fn can_cast(kind: SyntaxKind) -> bool {
24151        kind == SyntaxKind::FOR_PROVIDER
24152    }
24153    #[inline]
24154    fn cast(syntax: SyntaxNode) -> Option<Self> {
24155        if Self::can_cast(syntax.kind()) {
24156            Some(Self { syntax })
24157        } else {
24158            None
24159        }
24160    }
24161    #[inline]
24162    fn syntax(&self) -> &SyntaxNode {
24163        &self.syntax
24164    }
24165}
24166impl AstNode for ForceRls {
24167    #[inline]
24168    fn can_cast(kind: SyntaxKind) -> bool {
24169        kind == SyntaxKind::FORCE_RLS
24170    }
24171    #[inline]
24172    fn cast(syntax: SyntaxNode) -> Option<Self> {
24173        if Self::can_cast(syntax.kind()) {
24174            Some(Self { syntax })
24175        } else {
24176            None
24177        }
24178    }
24179    #[inline]
24180    fn syntax(&self) -> &SyntaxNode {
24181        &self.syntax
24182    }
24183}
24184impl AstNode for ForeignKeyConstraint {
24185    #[inline]
24186    fn can_cast(kind: SyntaxKind) -> bool {
24187        kind == SyntaxKind::FOREIGN_KEY_CONSTRAINT
24188    }
24189    #[inline]
24190    fn cast(syntax: SyntaxNode) -> Option<Self> {
24191        if Self::can_cast(syntax.kind()) {
24192            Some(Self { syntax })
24193        } else {
24194            None
24195        }
24196    }
24197    #[inline]
24198    fn syntax(&self) -> &SyntaxNode {
24199        &self.syntax
24200    }
24201}
24202impl AstNode for FrameClause {
24203    #[inline]
24204    fn can_cast(kind: SyntaxKind) -> bool {
24205        kind == SyntaxKind::FRAME_CLAUSE
24206    }
24207    #[inline]
24208    fn cast(syntax: SyntaxNode) -> Option<Self> {
24209        if Self::can_cast(syntax.kind()) {
24210            Some(Self { syntax })
24211        } else {
24212            None
24213        }
24214    }
24215    #[inline]
24216    fn syntax(&self) -> &SyntaxNode {
24217        &self.syntax
24218    }
24219}
24220impl AstNode for FromClause {
24221    #[inline]
24222    fn can_cast(kind: SyntaxKind) -> bool {
24223        kind == SyntaxKind::FROM_CLAUSE
24224    }
24225    #[inline]
24226    fn cast(syntax: SyntaxNode) -> Option<Self> {
24227        if Self::can_cast(syntax.kind()) {
24228            Some(Self { syntax })
24229        } else {
24230            None
24231        }
24232    }
24233    #[inline]
24234    fn syntax(&self) -> &SyntaxNode {
24235        &self.syntax
24236    }
24237}
24238impl AstNode for FromItem {
24239    #[inline]
24240    fn can_cast(kind: SyntaxKind) -> bool {
24241        kind == SyntaxKind::FROM_ITEM
24242    }
24243    #[inline]
24244    fn cast(syntax: SyntaxNode) -> Option<Self> {
24245        if Self::can_cast(syntax.kind()) {
24246            Some(Self { syntax })
24247        } else {
24248            None
24249        }
24250    }
24251    #[inline]
24252    fn syntax(&self) -> &SyntaxNode {
24253        &self.syntax
24254    }
24255}
24256impl AstNode for FromTable {
24257    #[inline]
24258    fn can_cast(kind: SyntaxKind) -> bool {
24259        kind == SyntaxKind::FROM_TABLE
24260    }
24261    #[inline]
24262    fn cast(syntax: SyntaxNode) -> Option<Self> {
24263        if Self::can_cast(syntax.kind()) {
24264            Some(Self { syntax })
24265        } else {
24266            None
24267        }
24268    }
24269    #[inline]
24270    fn syntax(&self) -> &SyntaxNode {
24271        &self.syntax
24272    }
24273}
24274impl AstNode for FuncOptionList {
24275    #[inline]
24276    fn can_cast(kind: SyntaxKind) -> bool {
24277        kind == SyntaxKind::FUNC_OPTION_LIST
24278    }
24279    #[inline]
24280    fn cast(syntax: SyntaxNode) -> Option<Self> {
24281        if Self::can_cast(syntax.kind()) {
24282            Some(Self { syntax })
24283        } else {
24284            None
24285        }
24286    }
24287    #[inline]
24288    fn syntax(&self) -> &SyntaxNode {
24289        &self.syntax
24290    }
24291}
24292impl AstNode for FunctionSig {
24293    #[inline]
24294    fn can_cast(kind: SyntaxKind) -> bool {
24295        kind == SyntaxKind::FUNCTION_SIG
24296    }
24297    #[inline]
24298    fn cast(syntax: SyntaxNode) -> Option<Self> {
24299        if Self::can_cast(syntax.kind()) {
24300            Some(Self { syntax })
24301        } else {
24302            None
24303        }
24304    }
24305    #[inline]
24306    fn syntax(&self) -> &SyntaxNode {
24307        &self.syntax
24308    }
24309}
24310impl AstNode for FunctionSigList {
24311    #[inline]
24312    fn can_cast(kind: SyntaxKind) -> bool {
24313        kind == SyntaxKind::FUNCTION_SIG_LIST
24314    }
24315    #[inline]
24316    fn cast(syntax: SyntaxNode) -> Option<Self> {
24317        if Self::can_cast(syntax.kind()) {
24318            Some(Self { syntax })
24319        } else {
24320            None
24321        }
24322    }
24323    #[inline]
24324    fn syntax(&self) -> &SyntaxNode {
24325        &self.syntax
24326    }
24327}
24328impl AstNode for GeneratedConstraint {
24329    #[inline]
24330    fn can_cast(kind: SyntaxKind) -> bool {
24331        kind == SyntaxKind::GENERATED_CONSTRAINT
24332    }
24333    #[inline]
24334    fn cast(syntax: SyntaxNode) -> Option<Self> {
24335        if Self::can_cast(syntax.kind()) {
24336            Some(Self { syntax })
24337        } else {
24338            None
24339        }
24340    }
24341    #[inline]
24342    fn syntax(&self) -> &SyntaxNode {
24343        &self.syntax
24344    }
24345}
24346impl AstNode for Grant {
24347    #[inline]
24348    fn can_cast(kind: SyntaxKind) -> bool {
24349        kind == SyntaxKind::GRANT
24350    }
24351    #[inline]
24352    fn cast(syntax: SyntaxNode) -> Option<Self> {
24353        if Self::can_cast(syntax.kind()) {
24354            Some(Self { syntax })
24355        } else {
24356            None
24357        }
24358    }
24359    #[inline]
24360    fn syntax(&self) -> &SyntaxNode {
24361        &self.syntax
24362    }
24363}
24364impl AstNode for GrantDefaultPrivileges {
24365    #[inline]
24366    fn can_cast(kind: SyntaxKind) -> bool {
24367        kind == SyntaxKind::GRANT_DEFAULT_PRIVILEGES
24368    }
24369    #[inline]
24370    fn cast(syntax: SyntaxNode) -> Option<Self> {
24371        if Self::can_cast(syntax.kind()) {
24372            Some(Self { syntax })
24373        } else {
24374            None
24375        }
24376    }
24377    #[inline]
24378    fn syntax(&self) -> &SyntaxNode {
24379        &self.syntax
24380    }
24381}
24382impl AstNode for GraphPatternQualifier {
24383    #[inline]
24384    fn can_cast(kind: SyntaxKind) -> bool {
24385        kind == SyntaxKind::GRAPH_PATTERN_QUALIFIER
24386    }
24387    #[inline]
24388    fn cast(syntax: SyntaxNode) -> Option<Self> {
24389        if Self::can_cast(syntax.kind()) {
24390            Some(Self { syntax })
24391        } else {
24392            None
24393        }
24394    }
24395    #[inline]
24396    fn syntax(&self) -> &SyntaxNode {
24397        &self.syntax
24398    }
24399}
24400impl AstNode for GraphTableFn {
24401    #[inline]
24402    fn can_cast(kind: SyntaxKind) -> bool {
24403        kind == SyntaxKind::GRAPH_TABLE_FN
24404    }
24405    #[inline]
24406    fn cast(syntax: SyntaxNode) -> Option<Self> {
24407        if Self::can_cast(syntax.kind()) {
24408            Some(Self { syntax })
24409        } else {
24410            None
24411        }
24412    }
24413    #[inline]
24414    fn syntax(&self) -> &SyntaxNode {
24415        &self.syntax
24416    }
24417}
24418impl AstNode for GroupByClause {
24419    #[inline]
24420    fn can_cast(kind: SyntaxKind) -> bool {
24421        kind == SyntaxKind::GROUP_BY_CLAUSE
24422    }
24423    #[inline]
24424    fn cast(syntax: SyntaxNode) -> Option<Self> {
24425        if Self::can_cast(syntax.kind()) {
24426            Some(Self { syntax })
24427        } else {
24428            None
24429        }
24430    }
24431    #[inline]
24432    fn syntax(&self) -> &SyntaxNode {
24433        &self.syntax
24434    }
24435}
24436impl AstNode for GroupByList {
24437    #[inline]
24438    fn can_cast(kind: SyntaxKind) -> bool {
24439        kind == SyntaxKind::GROUP_BY_LIST
24440    }
24441    #[inline]
24442    fn cast(syntax: SyntaxNode) -> Option<Self> {
24443        if Self::can_cast(syntax.kind()) {
24444            Some(Self { syntax })
24445        } else {
24446            None
24447        }
24448    }
24449    #[inline]
24450    fn syntax(&self) -> &SyntaxNode {
24451        &self.syntax
24452    }
24453}
24454impl AstNode for GroupingCube {
24455    #[inline]
24456    fn can_cast(kind: SyntaxKind) -> bool {
24457        kind == SyntaxKind::GROUPING_CUBE
24458    }
24459    #[inline]
24460    fn cast(syntax: SyntaxNode) -> Option<Self> {
24461        if Self::can_cast(syntax.kind()) {
24462            Some(Self { syntax })
24463        } else {
24464            None
24465        }
24466    }
24467    #[inline]
24468    fn syntax(&self) -> &SyntaxNode {
24469        &self.syntax
24470    }
24471}
24472impl AstNode for GroupingExpr {
24473    #[inline]
24474    fn can_cast(kind: SyntaxKind) -> bool {
24475        kind == SyntaxKind::GROUPING_EXPR
24476    }
24477    #[inline]
24478    fn cast(syntax: SyntaxNode) -> Option<Self> {
24479        if Self::can_cast(syntax.kind()) {
24480            Some(Self { syntax })
24481        } else {
24482            None
24483        }
24484    }
24485    #[inline]
24486    fn syntax(&self) -> &SyntaxNode {
24487        &self.syntax
24488    }
24489}
24490impl AstNode for GroupingRollup {
24491    #[inline]
24492    fn can_cast(kind: SyntaxKind) -> bool {
24493        kind == SyntaxKind::GROUPING_ROLLUP
24494    }
24495    #[inline]
24496    fn cast(syntax: SyntaxNode) -> Option<Self> {
24497        if Self::can_cast(syntax.kind()) {
24498            Some(Self { syntax })
24499        } else {
24500            None
24501        }
24502    }
24503    #[inline]
24504    fn syntax(&self) -> &SyntaxNode {
24505        &self.syntax
24506    }
24507}
24508impl AstNode for GroupingSets {
24509    #[inline]
24510    fn can_cast(kind: SyntaxKind) -> bool {
24511        kind == SyntaxKind::GROUPING_SETS
24512    }
24513    #[inline]
24514    fn cast(syntax: SyntaxNode) -> Option<Self> {
24515        if Self::can_cast(syntax.kind()) {
24516            Some(Self { syntax })
24517        } else {
24518            None
24519        }
24520    }
24521    #[inline]
24522    fn syntax(&self) -> &SyntaxNode {
24523        &self.syntax
24524    }
24525}
24526impl AstNode for Gteq {
24527    #[inline]
24528    fn can_cast(kind: SyntaxKind) -> bool {
24529        kind == SyntaxKind::GTEQ
24530    }
24531    #[inline]
24532    fn cast(syntax: SyntaxNode) -> Option<Self> {
24533        if Self::can_cast(syntax.kind()) {
24534            Some(Self { syntax })
24535        } else {
24536            None
24537        }
24538    }
24539    #[inline]
24540    fn syntax(&self) -> &SyntaxNode {
24541        &self.syntax
24542    }
24543}
24544impl AstNode for HandlerClause {
24545    #[inline]
24546    fn can_cast(kind: SyntaxKind) -> bool {
24547        kind == SyntaxKind::HANDLER_CLAUSE
24548    }
24549    #[inline]
24550    fn cast(syntax: SyntaxNode) -> Option<Self> {
24551        if Self::can_cast(syntax.kind()) {
24552            Some(Self { syntax })
24553        } else {
24554            None
24555        }
24556    }
24557    #[inline]
24558    fn syntax(&self) -> &SyntaxNode {
24559        &self.syntax
24560    }
24561}
24562impl AstNode for HavingClause {
24563    #[inline]
24564    fn can_cast(kind: SyntaxKind) -> bool {
24565        kind == SyntaxKind::HAVING_CLAUSE
24566    }
24567    #[inline]
24568    fn cast(syntax: SyntaxNode) -> Option<Self> {
24569        if Self::can_cast(syntax.kind()) {
24570            Some(Self { syntax })
24571        } else {
24572            None
24573        }
24574    }
24575    #[inline]
24576    fn syntax(&self) -> &SyntaxNode {
24577        &self.syntax
24578    }
24579}
24580impl AstNode for IfExists {
24581    #[inline]
24582    fn can_cast(kind: SyntaxKind) -> bool {
24583        kind == SyntaxKind::IF_EXISTS
24584    }
24585    #[inline]
24586    fn cast(syntax: SyntaxNode) -> Option<Self> {
24587        if Self::can_cast(syntax.kind()) {
24588            Some(Self { syntax })
24589        } else {
24590            None
24591        }
24592    }
24593    #[inline]
24594    fn syntax(&self) -> &SyntaxNode {
24595        &self.syntax
24596    }
24597}
24598impl AstNode for IfNotExists {
24599    #[inline]
24600    fn can_cast(kind: SyntaxKind) -> bool {
24601        kind == SyntaxKind::IF_NOT_EXISTS
24602    }
24603    #[inline]
24604    fn cast(syntax: SyntaxNode) -> Option<Self> {
24605        if Self::can_cast(syntax.kind()) {
24606            Some(Self { syntax })
24607        } else {
24608            None
24609        }
24610    }
24611    #[inline]
24612    fn syntax(&self) -> &SyntaxNode {
24613        &self.syntax
24614    }
24615}
24616impl AstNode for ImportForeignSchema {
24617    #[inline]
24618    fn can_cast(kind: SyntaxKind) -> bool {
24619        kind == SyntaxKind::IMPORT_FOREIGN_SCHEMA
24620    }
24621    #[inline]
24622    fn cast(syntax: SyntaxNode) -> Option<Self> {
24623        if Self::can_cast(syntax.kind()) {
24624            Some(Self { syntax })
24625        } else {
24626            None
24627        }
24628    }
24629    #[inline]
24630    fn syntax(&self) -> &SyntaxNode {
24631        &self.syntax
24632    }
24633}
24634impl AstNode for IndexExpr {
24635    #[inline]
24636    fn can_cast(kind: SyntaxKind) -> bool {
24637        kind == SyntaxKind::INDEX_EXPR
24638    }
24639    #[inline]
24640    fn cast(syntax: SyntaxNode) -> Option<Self> {
24641        if Self::can_cast(syntax.kind()) {
24642            Some(Self { syntax })
24643        } else {
24644            None
24645        }
24646    }
24647    #[inline]
24648    fn syntax(&self) -> &SyntaxNode {
24649        &self.syntax
24650    }
24651}
24652impl AstNode for Inherit {
24653    #[inline]
24654    fn can_cast(kind: SyntaxKind) -> bool {
24655        kind == SyntaxKind::INHERIT
24656    }
24657    #[inline]
24658    fn cast(syntax: SyntaxNode) -> Option<Self> {
24659        if Self::can_cast(syntax.kind()) {
24660            Some(Self { syntax })
24661        } else {
24662            None
24663        }
24664    }
24665    #[inline]
24666    fn syntax(&self) -> &SyntaxNode {
24667        &self.syntax
24668    }
24669}
24670impl AstNode for InheritTable {
24671    #[inline]
24672    fn can_cast(kind: SyntaxKind) -> bool {
24673        kind == SyntaxKind::INHERIT_TABLE
24674    }
24675    #[inline]
24676    fn cast(syntax: SyntaxNode) -> Option<Self> {
24677        if Self::can_cast(syntax.kind()) {
24678            Some(Self { syntax })
24679        } else {
24680            None
24681        }
24682    }
24683    #[inline]
24684    fn syntax(&self) -> &SyntaxNode {
24685        &self.syntax
24686    }
24687}
24688impl AstNode for Inherits {
24689    #[inline]
24690    fn can_cast(kind: SyntaxKind) -> bool {
24691        kind == SyntaxKind::INHERITS
24692    }
24693    #[inline]
24694    fn cast(syntax: SyntaxNode) -> Option<Self> {
24695        if Self::can_cast(syntax.kind()) {
24696            Some(Self { syntax })
24697        } else {
24698            None
24699        }
24700    }
24701    #[inline]
24702    fn syntax(&self) -> &SyntaxNode {
24703        &self.syntax
24704    }
24705}
24706impl AstNode for InitiallyDeferredConstraintOption {
24707    #[inline]
24708    fn can_cast(kind: SyntaxKind) -> bool {
24709        kind == SyntaxKind::INITIALLY_DEFERRED_CONSTRAINT_OPTION
24710    }
24711    #[inline]
24712    fn cast(syntax: SyntaxNode) -> Option<Self> {
24713        if Self::can_cast(syntax.kind()) {
24714            Some(Self { syntax })
24715        } else {
24716            None
24717        }
24718    }
24719    #[inline]
24720    fn syntax(&self) -> &SyntaxNode {
24721        &self.syntax
24722    }
24723}
24724impl AstNode for InitiallyImmediateConstraintOption {
24725    #[inline]
24726    fn can_cast(kind: SyntaxKind) -> bool {
24727        kind == SyntaxKind::INITIALLY_IMMEDIATE_CONSTRAINT_OPTION
24728    }
24729    #[inline]
24730    fn cast(syntax: SyntaxNode) -> Option<Self> {
24731        if Self::can_cast(syntax.kind()) {
24732            Some(Self { syntax })
24733        } else {
24734            None
24735        }
24736    }
24737    #[inline]
24738    fn syntax(&self) -> &SyntaxNode {
24739        &self.syntax
24740    }
24741}
24742impl AstNode for Insert {
24743    #[inline]
24744    fn can_cast(kind: SyntaxKind) -> bool {
24745        kind == SyntaxKind::INSERT
24746    }
24747    #[inline]
24748    fn cast(syntax: SyntaxNode) -> Option<Self> {
24749        if Self::can_cast(syntax.kind()) {
24750            Some(Self { syntax })
24751        } else {
24752            None
24753        }
24754    }
24755    #[inline]
24756    fn syntax(&self) -> &SyntaxNode {
24757        &self.syntax
24758    }
24759}
24760impl AstNode for IntervalType {
24761    #[inline]
24762    fn can_cast(kind: SyntaxKind) -> bool {
24763        kind == SyntaxKind::INTERVAL_TYPE
24764    }
24765    #[inline]
24766    fn cast(syntax: SyntaxNode) -> Option<Self> {
24767        if Self::can_cast(syntax.kind()) {
24768            Some(Self { syntax })
24769        } else {
24770            None
24771        }
24772    }
24773    #[inline]
24774    fn syntax(&self) -> &SyntaxNode {
24775        &self.syntax
24776    }
24777}
24778impl AstNode for IntoClause {
24779    #[inline]
24780    fn can_cast(kind: SyntaxKind) -> bool {
24781        kind == SyntaxKind::INTO_CLAUSE
24782    }
24783    #[inline]
24784    fn cast(syntax: SyntaxNode) -> Option<Self> {
24785        if Self::can_cast(syntax.kind()) {
24786            Some(Self { syntax })
24787        } else {
24788            None
24789        }
24790    }
24791    #[inline]
24792    fn syntax(&self) -> &SyntaxNode {
24793        &self.syntax
24794    }
24795}
24796impl AstNode for IntoSchema {
24797    #[inline]
24798    fn can_cast(kind: SyntaxKind) -> bool {
24799        kind == SyntaxKind::INTO_SCHEMA
24800    }
24801    #[inline]
24802    fn cast(syntax: SyntaxNode) -> Option<Self> {
24803        if Self::can_cast(syntax.kind()) {
24804            Some(Self { syntax })
24805        } else {
24806            None
24807        }
24808    }
24809    #[inline]
24810    fn syntax(&self) -> &SyntaxNode {
24811        &self.syntax
24812    }
24813}
24814impl AstNode for IsDistinctFrom {
24815    #[inline]
24816    fn can_cast(kind: SyntaxKind) -> bool {
24817        kind == SyntaxKind::IS_DISTINCT_FROM
24818    }
24819    #[inline]
24820    fn cast(syntax: SyntaxNode) -> Option<Self> {
24821        if Self::can_cast(syntax.kind()) {
24822            Some(Self { syntax })
24823        } else {
24824            None
24825        }
24826    }
24827    #[inline]
24828    fn syntax(&self) -> &SyntaxNode {
24829        &self.syntax
24830    }
24831}
24832impl AstNode for IsJson {
24833    #[inline]
24834    fn can_cast(kind: SyntaxKind) -> bool {
24835        kind == SyntaxKind::IS_JSON
24836    }
24837    #[inline]
24838    fn cast(syntax: SyntaxNode) -> Option<Self> {
24839        if Self::can_cast(syntax.kind()) {
24840            Some(Self { syntax })
24841        } else {
24842            None
24843        }
24844    }
24845    #[inline]
24846    fn syntax(&self) -> &SyntaxNode {
24847        &self.syntax
24848    }
24849}
24850impl AstNode for IsJsonArray {
24851    #[inline]
24852    fn can_cast(kind: SyntaxKind) -> bool {
24853        kind == SyntaxKind::IS_JSON_ARRAY
24854    }
24855    #[inline]
24856    fn cast(syntax: SyntaxNode) -> Option<Self> {
24857        if Self::can_cast(syntax.kind()) {
24858            Some(Self { syntax })
24859        } else {
24860            None
24861        }
24862    }
24863    #[inline]
24864    fn syntax(&self) -> &SyntaxNode {
24865        &self.syntax
24866    }
24867}
24868impl AstNode for IsJsonObject {
24869    #[inline]
24870    fn can_cast(kind: SyntaxKind) -> bool {
24871        kind == SyntaxKind::IS_JSON_OBJECT
24872    }
24873    #[inline]
24874    fn cast(syntax: SyntaxNode) -> Option<Self> {
24875        if Self::can_cast(syntax.kind()) {
24876            Some(Self { syntax })
24877        } else {
24878            None
24879        }
24880    }
24881    #[inline]
24882    fn syntax(&self) -> &SyntaxNode {
24883        &self.syntax
24884    }
24885}
24886impl AstNode for IsJsonScalar {
24887    #[inline]
24888    fn can_cast(kind: SyntaxKind) -> bool {
24889        kind == SyntaxKind::IS_JSON_SCALAR
24890    }
24891    #[inline]
24892    fn cast(syntax: SyntaxNode) -> Option<Self> {
24893        if Self::can_cast(syntax.kind()) {
24894            Some(Self { syntax })
24895        } else {
24896            None
24897        }
24898    }
24899    #[inline]
24900    fn syntax(&self) -> &SyntaxNode {
24901        &self.syntax
24902    }
24903}
24904impl AstNode for IsJsonValue {
24905    #[inline]
24906    fn can_cast(kind: SyntaxKind) -> bool {
24907        kind == SyntaxKind::IS_JSON_VALUE
24908    }
24909    #[inline]
24910    fn cast(syntax: SyntaxNode) -> Option<Self> {
24911        if Self::can_cast(syntax.kind()) {
24912            Some(Self { syntax })
24913        } else {
24914            None
24915        }
24916    }
24917    #[inline]
24918    fn syntax(&self) -> &SyntaxNode {
24919        &self.syntax
24920    }
24921}
24922impl AstNode for IsLabel {
24923    #[inline]
24924    fn can_cast(kind: SyntaxKind) -> bool {
24925        kind == SyntaxKind::IS_LABEL
24926    }
24927    #[inline]
24928    fn cast(syntax: SyntaxNode) -> Option<Self> {
24929        if Self::can_cast(syntax.kind()) {
24930            Some(Self { syntax })
24931        } else {
24932            None
24933        }
24934    }
24935    #[inline]
24936    fn syntax(&self) -> &SyntaxNode {
24937        &self.syntax
24938    }
24939}
24940impl AstNode for IsNormalized {
24941    #[inline]
24942    fn can_cast(kind: SyntaxKind) -> bool {
24943        kind == SyntaxKind::IS_NORMALIZED
24944    }
24945    #[inline]
24946    fn cast(syntax: SyntaxNode) -> Option<Self> {
24947        if Self::can_cast(syntax.kind()) {
24948            Some(Self { syntax })
24949        } else {
24950            None
24951        }
24952    }
24953    #[inline]
24954    fn syntax(&self) -> &SyntaxNode {
24955        &self.syntax
24956    }
24957}
24958impl AstNode for IsNot {
24959    #[inline]
24960    fn can_cast(kind: SyntaxKind) -> bool {
24961        kind == SyntaxKind::IS_NOT
24962    }
24963    #[inline]
24964    fn cast(syntax: SyntaxNode) -> Option<Self> {
24965        if Self::can_cast(syntax.kind()) {
24966            Some(Self { syntax })
24967        } else {
24968            None
24969        }
24970    }
24971    #[inline]
24972    fn syntax(&self) -> &SyntaxNode {
24973        &self.syntax
24974    }
24975}
24976impl AstNode for IsNotDistinctFrom {
24977    #[inline]
24978    fn can_cast(kind: SyntaxKind) -> bool {
24979        kind == SyntaxKind::IS_NOT_DISTINCT_FROM
24980    }
24981    #[inline]
24982    fn cast(syntax: SyntaxNode) -> Option<Self> {
24983        if Self::can_cast(syntax.kind()) {
24984            Some(Self { syntax })
24985        } else {
24986            None
24987        }
24988    }
24989    #[inline]
24990    fn syntax(&self) -> &SyntaxNode {
24991        &self.syntax
24992    }
24993}
24994impl AstNode for IsNotJson {
24995    #[inline]
24996    fn can_cast(kind: SyntaxKind) -> bool {
24997        kind == SyntaxKind::IS_NOT_JSON
24998    }
24999    #[inline]
25000    fn cast(syntax: SyntaxNode) -> Option<Self> {
25001        if Self::can_cast(syntax.kind()) {
25002            Some(Self { syntax })
25003        } else {
25004            None
25005        }
25006    }
25007    #[inline]
25008    fn syntax(&self) -> &SyntaxNode {
25009        &self.syntax
25010    }
25011}
25012impl AstNode for IsNotJsonArray {
25013    #[inline]
25014    fn can_cast(kind: SyntaxKind) -> bool {
25015        kind == SyntaxKind::IS_NOT_JSON_ARRAY
25016    }
25017    #[inline]
25018    fn cast(syntax: SyntaxNode) -> Option<Self> {
25019        if Self::can_cast(syntax.kind()) {
25020            Some(Self { syntax })
25021        } else {
25022            None
25023        }
25024    }
25025    #[inline]
25026    fn syntax(&self) -> &SyntaxNode {
25027        &self.syntax
25028    }
25029}
25030impl AstNode for IsNotJsonObject {
25031    #[inline]
25032    fn can_cast(kind: SyntaxKind) -> bool {
25033        kind == SyntaxKind::IS_NOT_JSON_OBJECT
25034    }
25035    #[inline]
25036    fn cast(syntax: SyntaxNode) -> Option<Self> {
25037        if Self::can_cast(syntax.kind()) {
25038            Some(Self { syntax })
25039        } else {
25040            None
25041        }
25042    }
25043    #[inline]
25044    fn syntax(&self) -> &SyntaxNode {
25045        &self.syntax
25046    }
25047}
25048impl AstNode for IsNotJsonScalar {
25049    #[inline]
25050    fn can_cast(kind: SyntaxKind) -> bool {
25051        kind == SyntaxKind::IS_NOT_JSON_SCALAR
25052    }
25053    #[inline]
25054    fn cast(syntax: SyntaxNode) -> Option<Self> {
25055        if Self::can_cast(syntax.kind()) {
25056            Some(Self { syntax })
25057        } else {
25058            None
25059        }
25060    }
25061    #[inline]
25062    fn syntax(&self) -> &SyntaxNode {
25063        &self.syntax
25064    }
25065}
25066impl AstNode for IsNotJsonValue {
25067    #[inline]
25068    fn can_cast(kind: SyntaxKind) -> bool {
25069        kind == SyntaxKind::IS_NOT_JSON_VALUE
25070    }
25071    #[inline]
25072    fn cast(syntax: SyntaxNode) -> Option<Self> {
25073        if Self::can_cast(syntax.kind()) {
25074            Some(Self { syntax })
25075        } else {
25076            None
25077        }
25078    }
25079    #[inline]
25080    fn syntax(&self) -> &SyntaxNode {
25081        &self.syntax
25082    }
25083}
25084impl AstNode for IsNotNormalized {
25085    #[inline]
25086    fn can_cast(kind: SyntaxKind) -> bool {
25087        kind == SyntaxKind::IS_NOT_NORMALIZED
25088    }
25089    #[inline]
25090    fn cast(syntax: SyntaxNode) -> Option<Self> {
25091        if Self::can_cast(syntax.kind()) {
25092            Some(Self { syntax })
25093        } else {
25094            None
25095        }
25096    }
25097    #[inline]
25098    fn syntax(&self) -> &SyntaxNode {
25099        &self.syntax
25100    }
25101}
25102impl AstNode for Join {
25103    #[inline]
25104    fn can_cast(kind: SyntaxKind) -> bool {
25105        kind == SyntaxKind::JOIN
25106    }
25107    #[inline]
25108    fn cast(syntax: SyntaxNode) -> Option<Self> {
25109        if Self::can_cast(syntax.kind()) {
25110            Some(Self { syntax })
25111        } else {
25112            None
25113        }
25114    }
25115    #[inline]
25116    fn syntax(&self) -> &SyntaxNode {
25117        &self.syntax
25118    }
25119}
25120impl AstNode for JoinCross {
25121    #[inline]
25122    fn can_cast(kind: SyntaxKind) -> bool {
25123        kind == SyntaxKind::JOIN_CROSS
25124    }
25125    #[inline]
25126    fn cast(syntax: SyntaxNode) -> Option<Self> {
25127        if Self::can_cast(syntax.kind()) {
25128            Some(Self { syntax })
25129        } else {
25130            None
25131        }
25132    }
25133    #[inline]
25134    fn syntax(&self) -> &SyntaxNode {
25135        &self.syntax
25136    }
25137}
25138impl AstNode for JoinExpr {
25139    #[inline]
25140    fn can_cast(kind: SyntaxKind) -> bool {
25141        kind == SyntaxKind::JOIN_EXPR
25142    }
25143    #[inline]
25144    fn cast(syntax: SyntaxNode) -> Option<Self> {
25145        if Self::can_cast(syntax.kind()) {
25146            Some(Self { syntax })
25147        } else {
25148            None
25149        }
25150    }
25151    #[inline]
25152    fn syntax(&self) -> &SyntaxNode {
25153        &self.syntax
25154    }
25155}
25156impl AstNode for JoinFull {
25157    #[inline]
25158    fn can_cast(kind: SyntaxKind) -> bool {
25159        kind == SyntaxKind::JOIN_FULL
25160    }
25161    #[inline]
25162    fn cast(syntax: SyntaxNode) -> Option<Self> {
25163        if Self::can_cast(syntax.kind()) {
25164            Some(Self { syntax })
25165        } else {
25166            None
25167        }
25168    }
25169    #[inline]
25170    fn syntax(&self) -> &SyntaxNode {
25171        &self.syntax
25172    }
25173}
25174impl AstNode for JoinInner {
25175    #[inline]
25176    fn can_cast(kind: SyntaxKind) -> bool {
25177        kind == SyntaxKind::JOIN_INNER
25178    }
25179    #[inline]
25180    fn cast(syntax: SyntaxNode) -> Option<Self> {
25181        if Self::can_cast(syntax.kind()) {
25182            Some(Self { syntax })
25183        } else {
25184            None
25185        }
25186    }
25187    #[inline]
25188    fn syntax(&self) -> &SyntaxNode {
25189        &self.syntax
25190    }
25191}
25192impl AstNode for JoinLeft {
25193    #[inline]
25194    fn can_cast(kind: SyntaxKind) -> bool {
25195        kind == SyntaxKind::JOIN_LEFT
25196    }
25197    #[inline]
25198    fn cast(syntax: SyntaxNode) -> Option<Self> {
25199        if Self::can_cast(syntax.kind()) {
25200            Some(Self { syntax })
25201        } else {
25202            None
25203        }
25204    }
25205    #[inline]
25206    fn syntax(&self) -> &SyntaxNode {
25207        &self.syntax
25208    }
25209}
25210impl AstNode for JoinRight {
25211    #[inline]
25212    fn can_cast(kind: SyntaxKind) -> bool {
25213        kind == SyntaxKind::JOIN_RIGHT
25214    }
25215    #[inline]
25216    fn cast(syntax: SyntaxNode) -> Option<Self> {
25217        if Self::can_cast(syntax.kind()) {
25218            Some(Self { syntax })
25219        } else {
25220            None
25221        }
25222    }
25223    #[inline]
25224    fn syntax(&self) -> &SyntaxNode {
25225        &self.syntax
25226    }
25227}
25228impl AstNode for JoinUsingClause {
25229    #[inline]
25230    fn can_cast(kind: SyntaxKind) -> bool {
25231        kind == SyntaxKind::JOIN_USING_CLAUSE
25232    }
25233    #[inline]
25234    fn cast(syntax: SyntaxNode) -> Option<Self> {
25235        if Self::can_cast(syntax.kind()) {
25236            Some(Self { syntax })
25237        } else {
25238            None
25239        }
25240    }
25241    #[inline]
25242    fn syntax(&self) -> &SyntaxNode {
25243        &self.syntax
25244    }
25245}
25246impl AstNode for JsonArrayAggFn {
25247    #[inline]
25248    fn can_cast(kind: SyntaxKind) -> bool {
25249        kind == SyntaxKind::JSON_ARRAY_AGG_FN
25250    }
25251    #[inline]
25252    fn cast(syntax: SyntaxNode) -> Option<Self> {
25253        if Self::can_cast(syntax.kind()) {
25254            Some(Self { syntax })
25255        } else {
25256            None
25257        }
25258    }
25259    #[inline]
25260    fn syntax(&self) -> &SyntaxNode {
25261        &self.syntax
25262    }
25263}
25264impl AstNode for JsonArrayFn {
25265    #[inline]
25266    fn can_cast(kind: SyntaxKind) -> bool {
25267        kind == SyntaxKind::JSON_ARRAY_FN
25268    }
25269    #[inline]
25270    fn cast(syntax: SyntaxNode) -> Option<Self> {
25271        if Self::can_cast(syntax.kind()) {
25272            Some(Self { syntax })
25273        } else {
25274            None
25275        }
25276    }
25277    #[inline]
25278    fn syntax(&self) -> &SyntaxNode {
25279        &self.syntax
25280    }
25281}
25282impl AstNode for JsonBehaviorClause {
25283    #[inline]
25284    fn can_cast(kind: SyntaxKind) -> bool {
25285        kind == SyntaxKind::JSON_BEHAVIOR_CLAUSE
25286    }
25287    #[inline]
25288    fn cast(syntax: SyntaxNode) -> Option<Self> {
25289        if Self::can_cast(syntax.kind()) {
25290            Some(Self { syntax })
25291        } else {
25292            None
25293        }
25294    }
25295    #[inline]
25296    fn syntax(&self) -> &SyntaxNode {
25297        &self.syntax
25298    }
25299}
25300impl AstNode for JsonBehaviorDefault {
25301    #[inline]
25302    fn can_cast(kind: SyntaxKind) -> bool {
25303        kind == SyntaxKind::JSON_BEHAVIOR_DEFAULT
25304    }
25305    #[inline]
25306    fn cast(syntax: SyntaxNode) -> Option<Self> {
25307        if Self::can_cast(syntax.kind()) {
25308            Some(Self { syntax })
25309        } else {
25310            None
25311        }
25312    }
25313    #[inline]
25314    fn syntax(&self) -> &SyntaxNode {
25315        &self.syntax
25316    }
25317}
25318impl AstNode for JsonBehaviorEmptyArray {
25319    #[inline]
25320    fn can_cast(kind: SyntaxKind) -> bool {
25321        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
25322    }
25323    #[inline]
25324    fn cast(syntax: SyntaxNode) -> Option<Self> {
25325        if Self::can_cast(syntax.kind()) {
25326            Some(Self { syntax })
25327        } else {
25328            None
25329        }
25330    }
25331    #[inline]
25332    fn syntax(&self) -> &SyntaxNode {
25333        &self.syntax
25334    }
25335}
25336impl AstNode for JsonBehaviorEmptyObject {
25337    #[inline]
25338    fn can_cast(kind: SyntaxKind) -> bool {
25339        kind == SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
25340    }
25341    #[inline]
25342    fn cast(syntax: SyntaxNode) -> Option<Self> {
25343        if Self::can_cast(syntax.kind()) {
25344            Some(Self { syntax })
25345        } else {
25346            None
25347        }
25348    }
25349    #[inline]
25350    fn syntax(&self) -> &SyntaxNode {
25351        &self.syntax
25352    }
25353}
25354impl AstNode for JsonBehaviorError {
25355    #[inline]
25356    fn can_cast(kind: SyntaxKind) -> bool {
25357        kind == SyntaxKind::JSON_BEHAVIOR_ERROR
25358    }
25359    #[inline]
25360    fn cast(syntax: SyntaxNode) -> Option<Self> {
25361        if Self::can_cast(syntax.kind()) {
25362            Some(Self { syntax })
25363        } else {
25364            None
25365        }
25366    }
25367    #[inline]
25368    fn syntax(&self) -> &SyntaxNode {
25369        &self.syntax
25370    }
25371}
25372impl AstNode for JsonBehaviorFalse {
25373    #[inline]
25374    fn can_cast(kind: SyntaxKind) -> bool {
25375        kind == SyntaxKind::JSON_BEHAVIOR_FALSE
25376    }
25377    #[inline]
25378    fn cast(syntax: SyntaxNode) -> Option<Self> {
25379        if Self::can_cast(syntax.kind()) {
25380            Some(Self { syntax })
25381        } else {
25382            None
25383        }
25384    }
25385    #[inline]
25386    fn syntax(&self) -> &SyntaxNode {
25387        &self.syntax
25388    }
25389}
25390impl AstNode for JsonBehaviorNull {
25391    #[inline]
25392    fn can_cast(kind: SyntaxKind) -> bool {
25393        kind == SyntaxKind::JSON_BEHAVIOR_NULL
25394    }
25395    #[inline]
25396    fn cast(syntax: SyntaxNode) -> Option<Self> {
25397        if Self::can_cast(syntax.kind()) {
25398            Some(Self { syntax })
25399        } else {
25400            None
25401        }
25402    }
25403    #[inline]
25404    fn syntax(&self) -> &SyntaxNode {
25405        &self.syntax
25406    }
25407}
25408impl AstNode for JsonBehaviorTrue {
25409    #[inline]
25410    fn can_cast(kind: SyntaxKind) -> bool {
25411        kind == SyntaxKind::JSON_BEHAVIOR_TRUE
25412    }
25413    #[inline]
25414    fn cast(syntax: SyntaxNode) -> Option<Self> {
25415        if Self::can_cast(syntax.kind()) {
25416            Some(Self { syntax })
25417        } else {
25418            None
25419        }
25420    }
25421    #[inline]
25422    fn syntax(&self) -> &SyntaxNode {
25423        &self.syntax
25424    }
25425}
25426impl AstNode for JsonBehaviorUnknown {
25427    #[inline]
25428    fn can_cast(kind: SyntaxKind) -> bool {
25429        kind == SyntaxKind::JSON_BEHAVIOR_UNKNOWN
25430    }
25431    #[inline]
25432    fn cast(syntax: SyntaxNode) -> Option<Self> {
25433        if Self::can_cast(syntax.kind()) {
25434            Some(Self { syntax })
25435        } else {
25436            None
25437        }
25438    }
25439    #[inline]
25440    fn syntax(&self) -> &SyntaxNode {
25441        &self.syntax
25442    }
25443}
25444impl AstNode for JsonEncodingClause {
25445    #[inline]
25446    fn can_cast(kind: SyntaxKind) -> bool {
25447        kind == SyntaxKind::JSON_ENCODING_CLAUSE
25448    }
25449    #[inline]
25450    fn cast(syntax: SyntaxNode) -> Option<Self> {
25451        if Self::can_cast(syntax.kind()) {
25452            Some(Self { syntax })
25453        } else {
25454            None
25455        }
25456    }
25457    #[inline]
25458    fn syntax(&self) -> &SyntaxNode {
25459        &self.syntax
25460    }
25461}
25462impl AstNode for JsonExistsFn {
25463    #[inline]
25464    fn can_cast(kind: SyntaxKind) -> bool {
25465        kind == SyntaxKind::JSON_EXISTS_FN
25466    }
25467    #[inline]
25468    fn cast(syntax: SyntaxNode) -> Option<Self> {
25469        if Self::can_cast(syntax.kind()) {
25470            Some(Self { syntax })
25471        } else {
25472            None
25473        }
25474    }
25475    #[inline]
25476    fn syntax(&self) -> &SyntaxNode {
25477        &self.syntax
25478    }
25479}
25480impl AstNode for JsonExprFormat {
25481    #[inline]
25482    fn can_cast(kind: SyntaxKind) -> bool {
25483        kind == SyntaxKind::JSON_EXPR_FORMAT
25484    }
25485    #[inline]
25486    fn cast(syntax: SyntaxNode) -> Option<Self> {
25487        if Self::can_cast(syntax.kind()) {
25488            Some(Self { syntax })
25489        } else {
25490            None
25491        }
25492    }
25493    #[inline]
25494    fn syntax(&self) -> &SyntaxNode {
25495        &self.syntax
25496    }
25497}
25498impl AstNode for JsonFn {
25499    #[inline]
25500    fn can_cast(kind: SyntaxKind) -> bool {
25501        kind == SyntaxKind::JSON_FN
25502    }
25503    #[inline]
25504    fn cast(syntax: SyntaxNode) -> Option<Self> {
25505        if Self::can_cast(syntax.kind()) {
25506            Some(Self { syntax })
25507        } else {
25508            None
25509        }
25510    }
25511    #[inline]
25512    fn syntax(&self) -> &SyntaxNode {
25513        &self.syntax
25514    }
25515}
25516impl AstNode for JsonFormatClause {
25517    #[inline]
25518    fn can_cast(kind: SyntaxKind) -> bool {
25519        kind == SyntaxKind::JSON_FORMAT_CLAUSE
25520    }
25521    #[inline]
25522    fn cast(syntax: SyntaxNode) -> Option<Self> {
25523        if Self::can_cast(syntax.kind()) {
25524            Some(Self { syntax })
25525        } else {
25526            None
25527        }
25528    }
25529    #[inline]
25530    fn syntax(&self) -> &SyntaxNode {
25531        &self.syntax
25532    }
25533}
25534impl AstNode for JsonKeyValue {
25535    #[inline]
25536    fn can_cast(kind: SyntaxKind) -> bool {
25537        kind == SyntaxKind::JSON_KEY_VALUE
25538    }
25539    #[inline]
25540    fn cast(syntax: SyntaxNode) -> Option<Self> {
25541        if Self::can_cast(syntax.kind()) {
25542            Some(Self { syntax })
25543        } else {
25544            None
25545        }
25546    }
25547    #[inline]
25548    fn syntax(&self) -> &SyntaxNode {
25549        &self.syntax
25550    }
25551}
25552impl AstNode for JsonKeysUniqueClause {
25553    #[inline]
25554    fn can_cast(kind: SyntaxKind) -> bool {
25555        kind == SyntaxKind::JSON_KEYS_UNIQUE_CLAUSE
25556    }
25557    #[inline]
25558    fn cast(syntax: SyntaxNode) -> Option<Self> {
25559        if Self::can_cast(syntax.kind()) {
25560            Some(Self { syntax })
25561        } else {
25562            None
25563        }
25564    }
25565    #[inline]
25566    fn syntax(&self) -> &SyntaxNode {
25567        &self.syntax
25568    }
25569}
25570impl AstNode for JsonNullClause {
25571    #[inline]
25572    fn can_cast(kind: SyntaxKind) -> bool {
25573        kind == SyntaxKind::JSON_NULL_CLAUSE
25574    }
25575    #[inline]
25576    fn cast(syntax: SyntaxNode) -> Option<Self> {
25577        if Self::can_cast(syntax.kind()) {
25578            Some(Self { syntax })
25579        } else {
25580            None
25581        }
25582    }
25583    #[inline]
25584    fn syntax(&self) -> &SyntaxNode {
25585        &self.syntax
25586    }
25587}
25588impl AstNode for JsonObjectAggFn {
25589    #[inline]
25590    fn can_cast(kind: SyntaxKind) -> bool {
25591        kind == SyntaxKind::JSON_OBJECT_AGG_FN
25592    }
25593    #[inline]
25594    fn cast(syntax: SyntaxNode) -> Option<Self> {
25595        if Self::can_cast(syntax.kind()) {
25596            Some(Self { syntax })
25597        } else {
25598            None
25599        }
25600    }
25601    #[inline]
25602    fn syntax(&self) -> &SyntaxNode {
25603        &self.syntax
25604    }
25605}
25606impl AstNode for JsonObjectFn {
25607    #[inline]
25608    fn can_cast(kind: SyntaxKind) -> bool {
25609        kind == SyntaxKind::JSON_OBJECT_FN
25610    }
25611    #[inline]
25612    fn cast(syntax: SyntaxNode) -> Option<Self> {
25613        if Self::can_cast(syntax.kind()) {
25614            Some(Self { syntax })
25615        } else {
25616            None
25617        }
25618    }
25619    #[inline]
25620    fn syntax(&self) -> &SyntaxNode {
25621        &self.syntax
25622    }
25623}
25624impl AstNode for JsonOnEmptyClause {
25625    #[inline]
25626    fn can_cast(kind: SyntaxKind) -> bool {
25627        kind == SyntaxKind::JSON_ON_EMPTY_CLAUSE
25628    }
25629    #[inline]
25630    fn cast(syntax: SyntaxNode) -> Option<Self> {
25631        if Self::can_cast(syntax.kind()) {
25632            Some(Self { syntax })
25633        } else {
25634            None
25635        }
25636    }
25637    #[inline]
25638    fn syntax(&self) -> &SyntaxNode {
25639        &self.syntax
25640    }
25641}
25642impl AstNode for JsonOnErrorClause {
25643    #[inline]
25644    fn can_cast(kind: SyntaxKind) -> bool {
25645        kind == SyntaxKind::JSON_ON_ERROR_CLAUSE
25646    }
25647    #[inline]
25648    fn cast(syntax: SyntaxNode) -> Option<Self> {
25649        if Self::can_cast(syntax.kind()) {
25650            Some(Self { syntax })
25651        } else {
25652            None
25653        }
25654    }
25655    #[inline]
25656    fn syntax(&self) -> &SyntaxNode {
25657        &self.syntax
25658    }
25659}
25660impl AstNode for JsonPassingArg {
25661    #[inline]
25662    fn can_cast(kind: SyntaxKind) -> bool {
25663        kind == SyntaxKind::JSON_PASSING_ARG
25664    }
25665    #[inline]
25666    fn cast(syntax: SyntaxNode) -> Option<Self> {
25667        if Self::can_cast(syntax.kind()) {
25668            Some(Self { syntax })
25669        } else {
25670            None
25671        }
25672    }
25673    #[inline]
25674    fn syntax(&self) -> &SyntaxNode {
25675        &self.syntax
25676    }
25677}
25678impl AstNode for JsonPassingClause {
25679    #[inline]
25680    fn can_cast(kind: SyntaxKind) -> bool {
25681        kind == SyntaxKind::JSON_PASSING_CLAUSE
25682    }
25683    #[inline]
25684    fn cast(syntax: SyntaxNode) -> Option<Self> {
25685        if Self::can_cast(syntax.kind()) {
25686            Some(Self { syntax })
25687        } else {
25688            None
25689        }
25690    }
25691    #[inline]
25692    fn syntax(&self) -> &SyntaxNode {
25693        &self.syntax
25694    }
25695}
25696impl AstNode for JsonPathClause {
25697    #[inline]
25698    fn can_cast(kind: SyntaxKind) -> bool {
25699        kind == SyntaxKind::JSON_PATH_CLAUSE
25700    }
25701    #[inline]
25702    fn cast(syntax: SyntaxNode) -> Option<Self> {
25703        if Self::can_cast(syntax.kind()) {
25704            Some(Self { syntax })
25705        } else {
25706            None
25707        }
25708    }
25709    #[inline]
25710    fn syntax(&self) -> &SyntaxNode {
25711        &self.syntax
25712    }
25713}
25714impl AstNode for JsonQueryFn {
25715    #[inline]
25716    fn can_cast(kind: SyntaxKind) -> bool {
25717        kind == SyntaxKind::JSON_QUERY_FN
25718    }
25719    #[inline]
25720    fn cast(syntax: SyntaxNode) -> Option<Self> {
25721        if Self::can_cast(syntax.kind()) {
25722            Some(Self { syntax })
25723        } else {
25724            None
25725        }
25726    }
25727    #[inline]
25728    fn syntax(&self) -> &SyntaxNode {
25729        &self.syntax
25730    }
25731}
25732impl AstNode for JsonQuotesClause {
25733    #[inline]
25734    fn can_cast(kind: SyntaxKind) -> bool {
25735        kind == SyntaxKind::JSON_QUOTES_CLAUSE
25736    }
25737    #[inline]
25738    fn cast(syntax: SyntaxNode) -> Option<Self> {
25739        if Self::can_cast(syntax.kind()) {
25740            Some(Self { syntax })
25741        } else {
25742            None
25743        }
25744    }
25745    #[inline]
25746    fn syntax(&self) -> &SyntaxNode {
25747        &self.syntax
25748    }
25749}
25750impl AstNode for JsonReturningClause {
25751    #[inline]
25752    fn can_cast(kind: SyntaxKind) -> bool {
25753        kind == SyntaxKind::JSON_RETURNING_CLAUSE
25754    }
25755    #[inline]
25756    fn cast(syntax: SyntaxNode) -> Option<Self> {
25757        if Self::can_cast(syntax.kind()) {
25758            Some(Self { syntax })
25759        } else {
25760            None
25761        }
25762    }
25763    #[inline]
25764    fn syntax(&self) -> &SyntaxNode {
25765        &self.syntax
25766    }
25767}
25768impl AstNode for JsonScalarFn {
25769    #[inline]
25770    fn can_cast(kind: SyntaxKind) -> bool {
25771        kind == SyntaxKind::JSON_SCALAR_FN
25772    }
25773    #[inline]
25774    fn cast(syntax: SyntaxNode) -> Option<Self> {
25775        if Self::can_cast(syntax.kind()) {
25776            Some(Self { syntax })
25777        } else {
25778            None
25779        }
25780    }
25781    #[inline]
25782    fn syntax(&self) -> &SyntaxNode {
25783        &self.syntax
25784    }
25785}
25786impl AstNode for JsonSelectFormat {
25787    #[inline]
25788    fn can_cast(kind: SyntaxKind) -> bool {
25789        kind == SyntaxKind::JSON_SELECT_FORMAT
25790    }
25791    #[inline]
25792    fn cast(syntax: SyntaxNode) -> Option<Self> {
25793        if Self::can_cast(syntax.kind()) {
25794            Some(Self { syntax })
25795        } else {
25796            None
25797        }
25798    }
25799    #[inline]
25800    fn syntax(&self) -> &SyntaxNode {
25801        &self.syntax
25802    }
25803}
25804impl AstNode for JsonSerializeFn {
25805    #[inline]
25806    fn can_cast(kind: SyntaxKind) -> bool {
25807        kind == SyntaxKind::JSON_SERIALIZE_FN
25808    }
25809    #[inline]
25810    fn cast(syntax: SyntaxNode) -> Option<Self> {
25811        if Self::can_cast(syntax.kind()) {
25812            Some(Self { syntax })
25813        } else {
25814            None
25815        }
25816    }
25817    #[inline]
25818    fn syntax(&self) -> &SyntaxNode {
25819        &self.syntax
25820    }
25821}
25822impl AstNode for JsonTable {
25823    #[inline]
25824    fn can_cast(kind: SyntaxKind) -> bool {
25825        kind == SyntaxKind::JSON_TABLE
25826    }
25827    #[inline]
25828    fn cast(syntax: SyntaxNode) -> Option<Self> {
25829        if Self::can_cast(syntax.kind()) {
25830            Some(Self { syntax })
25831        } else {
25832            None
25833        }
25834    }
25835    #[inline]
25836    fn syntax(&self) -> &SyntaxNode {
25837        &self.syntax
25838    }
25839}
25840impl AstNode for JsonTableColumn {
25841    #[inline]
25842    fn can_cast(kind: SyntaxKind) -> bool {
25843        kind == SyntaxKind::JSON_TABLE_COLUMN
25844    }
25845    #[inline]
25846    fn cast(syntax: SyntaxNode) -> Option<Self> {
25847        if Self::can_cast(syntax.kind()) {
25848            Some(Self { syntax })
25849        } else {
25850            None
25851        }
25852    }
25853    #[inline]
25854    fn syntax(&self) -> &SyntaxNode {
25855        &self.syntax
25856    }
25857}
25858impl AstNode for JsonTableColumnList {
25859    #[inline]
25860    fn can_cast(kind: SyntaxKind) -> bool {
25861        kind == SyntaxKind::JSON_TABLE_COLUMN_LIST
25862    }
25863    #[inline]
25864    fn cast(syntax: SyntaxNode) -> Option<Self> {
25865        if Self::can_cast(syntax.kind()) {
25866            Some(Self { syntax })
25867        } else {
25868            None
25869        }
25870    }
25871    #[inline]
25872    fn syntax(&self) -> &SyntaxNode {
25873        &self.syntax
25874    }
25875}
25876impl AstNode for JsonValueExpr {
25877    #[inline]
25878    fn can_cast(kind: SyntaxKind) -> bool {
25879        kind == SyntaxKind::JSON_VALUE_EXPR
25880    }
25881    #[inline]
25882    fn cast(syntax: SyntaxNode) -> Option<Self> {
25883        if Self::can_cast(syntax.kind()) {
25884            Some(Self { syntax })
25885        } else {
25886            None
25887        }
25888    }
25889    #[inline]
25890    fn syntax(&self) -> &SyntaxNode {
25891        &self.syntax
25892    }
25893}
25894impl AstNode for JsonValueFn {
25895    #[inline]
25896    fn can_cast(kind: SyntaxKind) -> bool {
25897        kind == SyntaxKind::JSON_VALUE_FN
25898    }
25899    #[inline]
25900    fn cast(syntax: SyntaxNode) -> Option<Self> {
25901        if Self::can_cast(syntax.kind()) {
25902            Some(Self { syntax })
25903        } else {
25904            None
25905        }
25906    }
25907    #[inline]
25908    fn syntax(&self) -> &SyntaxNode {
25909        &self.syntax
25910    }
25911}
25912impl AstNode for JsonWrapperBehaviorClause {
25913    #[inline]
25914    fn can_cast(kind: SyntaxKind) -> bool {
25915        kind == SyntaxKind::JSON_WRAPPER_BEHAVIOR_CLAUSE
25916    }
25917    #[inline]
25918    fn cast(syntax: SyntaxNode) -> Option<Self> {
25919        if Self::can_cast(syntax.kind()) {
25920            Some(Self { syntax })
25921        } else {
25922            None
25923        }
25924    }
25925    #[inline]
25926    fn syntax(&self) -> &SyntaxNode {
25927        &self.syntax
25928    }
25929}
25930impl AstNode for LabelAndProperties {
25931    #[inline]
25932    fn can_cast(kind: SyntaxKind) -> bool {
25933        kind == SyntaxKind::LABEL_AND_PROPERTIES
25934    }
25935    #[inline]
25936    fn cast(syntax: SyntaxNode) -> Option<Self> {
25937        if Self::can_cast(syntax.kind()) {
25938            Some(Self { syntax })
25939        } else {
25940            None
25941        }
25942    }
25943    #[inline]
25944    fn syntax(&self) -> &SyntaxNode {
25945        &self.syntax
25946    }
25947}
25948impl AstNode for LabelAndPropertiesList {
25949    #[inline]
25950    fn can_cast(kind: SyntaxKind) -> bool {
25951        kind == SyntaxKind::LABEL_AND_PROPERTIES_LIST
25952    }
25953    #[inline]
25954    fn cast(syntax: SyntaxNode) -> Option<Self> {
25955        if Self::can_cast(syntax.kind()) {
25956            Some(Self { syntax })
25957        } else {
25958            None
25959        }
25960    }
25961    #[inline]
25962    fn syntax(&self) -> &SyntaxNode {
25963        &self.syntax
25964    }
25965}
25966impl AstNode for LanguageFuncOption {
25967    #[inline]
25968    fn can_cast(kind: SyntaxKind) -> bool {
25969        kind == SyntaxKind::LANGUAGE_FUNC_OPTION
25970    }
25971    #[inline]
25972    fn cast(syntax: SyntaxNode) -> Option<Self> {
25973        if Self::can_cast(syntax.kind()) {
25974            Some(Self { syntax })
25975        } else {
25976            None
25977        }
25978    }
25979    #[inline]
25980    fn syntax(&self) -> &SyntaxNode {
25981        &self.syntax
25982    }
25983}
25984impl AstNode for LeakproofFuncOption {
25985    #[inline]
25986    fn can_cast(kind: SyntaxKind) -> bool {
25987        kind == SyntaxKind::LEAKPROOF_FUNC_OPTION
25988    }
25989    #[inline]
25990    fn cast(syntax: SyntaxNode) -> Option<Self> {
25991        if Self::can_cast(syntax.kind()) {
25992            Some(Self { syntax })
25993        } else {
25994            None
25995        }
25996    }
25997    #[inline]
25998    fn syntax(&self) -> &SyntaxNode {
25999        &self.syntax
26000    }
26001}
26002impl AstNode for LikeClause {
26003    #[inline]
26004    fn can_cast(kind: SyntaxKind) -> bool {
26005        kind == SyntaxKind::LIKE_CLAUSE
26006    }
26007    #[inline]
26008    fn cast(syntax: SyntaxNode) -> Option<Self> {
26009        if Self::can_cast(syntax.kind()) {
26010            Some(Self { syntax })
26011        } else {
26012            None
26013        }
26014    }
26015    #[inline]
26016    fn syntax(&self) -> &SyntaxNode {
26017        &self.syntax
26018    }
26019}
26020impl AstNode for LikeOption {
26021    #[inline]
26022    fn can_cast(kind: SyntaxKind) -> bool {
26023        kind == SyntaxKind::LIKE_OPTION
26024    }
26025    #[inline]
26026    fn cast(syntax: SyntaxNode) -> Option<Self> {
26027        if Self::can_cast(syntax.kind()) {
26028            Some(Self { syntax })
26029        } else {
26030            None
26031        }
26032    }
26033    #[inline]
26034    fn syntax(&self) -> &SyntaxNode {
26035        &self.syntax
26036    }
26037}
26038impl AstNode for LimitClause {
26039    #[inline]
26040    fn can_cast(kind: SyntaxKind) -> bool {
26041        kind == SyntaxKind::LIMIT_CLAUSE
26042    }
26043    #[inline]
26044    fn cast(syntax: SyntaxNode) -> Option<Self> {
26045        if Self::can_cast(syntax.kind()) {
26046            Some(Self { syntax })
26047        } else {
26048            None
26049        }
26050    }
26051    #[inline]
26052    fn syntax(&self) -> &SyntaxNode {
26053        &self.syntax
26054    }
26055}
26056impl AstNode for LimitToTables {
26057    #[inline]
26058    fn can_cast(kind: SyntaxKind) -> bool {
26059        kind == SyntaxKind::LIMIT_TO_TABLES
26060    }
26061    #[inline]
26062    fn cast(syntax: SyntaxNode) -> Option<Self> {
26063        if Self::can_cast(syntax.kind()) {
26064            Some(Self { syntax })
26065        } else {
26066            None
26067        }
26068    }
26069    #[inline]
26070    fn syntax(&self) -> &SyntaxNode {
26071        &self.syntax
26072    }
26073}
26074impl AstNode for Listen {
26075    #[inline]
26076    fn can_cast(kind: SyntaxKind) -> bool {
26077        kind == SyntaxKind::LISTEN
26078    }
26079    #[inline]
26080    fn cast(syntax: SyntaxNode) -> Option<Self> {
26081        if Self::can_cast(syntax.kind()) {
26082            Some(Self { syntax })
26083        } else {
26084            None
26085        }
26086    }
26087    #[inline]
26088    fn syntax(&self) -> &SyntaxNode {
26089        &self.syntax
26090    }
26091}
26092impl AstNode for Literal {
26093    #[inline]
26094    fn can_cast(kind: SyntaxKind) -> bool {
26095        kind == SyntaxKind::LITERAL
26096    }
26097    #[inline]
26098    fn cast(syntax: SyntaxNode) -> Option<Self> {
26099        if Self::can_cast(syntax.kind()) {
26100            Some(Self { syntax })
26101        } else {
26102            None
26103        }
26104    }
26105    #[inline]
26106    fn syntax(&self) -> &SyntaxNode {
26107        &self.syntax
26108    }
26109}
26110impl AstNode for Load {
26111    #[inline]
26112    fn can_cast(kind: SyntaxKind) -> bool {
26113        kind == SyntaxKind::LOAD
26114    }
26115    #[inline]
26116    fn cast(syntax: SyntaxNode) -> Option<Self> {
26117        if Self::can_cast(syntax.kind()) {
26118            Some(Self { syntax })
26119        } else {
26120            None
26121        }
26122    }
26123    #[inline]
26124    fn syntax(&self) -> &SyntaxNode {
26125        &self.syntax
26126    }
26127}
26128impl AstNode for Lock {
26129    #[inline]
26130    fn can_cast(kind: SyntaxKind) -> bool {
26131        kind == SyntaxKind::LOCK
26132    }
26133    #[inline]
26134    fn cast(syntax: SyntaxNode) -> Option<Self> {
26135        if Self::can_cast(syntax.kind()) {
26136            Some(Self { syntax })
26137        } else {
26138            None
26139        }
26140    }
26141    #[inline]
26142    fn syntax(&self) -> &SyntaxNode {
26143        &self.syntax
26144    }
26145}
26146impl AstNode for LockingClause {
26147    #[inline]
26148    fn can_cast(kind: SyntaxKind) -> bool {
26149        kind == SyntaxKind::LOCKING_CLAUSE
26150    }
26151    #[inline]
26152    fn cast(syntax: SyntaxNode) -> Option<Self> {
26153        if Self::can_cast(syntax.kind()) {
26154            Some(Self { syntax })
26155        } else {
26156            None
26157        }
26158    }
26159    #[inline]
26160    fn syntax(&self) -> &SyntaxNode {
26161        &self.syntax
26162    }
26163}
26164impl AstNode for Lteq {
26165    #[inline]
26166    fn can_cast(kind: SyntaxKind) -> bool {
26167        kind == SyntaxKind::LTEQ
26168    }
26169    #[inline]
26170    fn cast(syntax: SyntaxNode) -> Option<Self> {
26171        if Self::can_cast(syntax.kind()) {
26172            Some(Self { syntax })
26173        } else {
26174            None
26175        }
26176    }
26177    #[inline]
26178    fn syntax(&self) -> &SyntaxNode {
26179        &self.syntax
26180    }
26181}
26182impl AstNode for MatchFull {
26183    #[inline]
26184    fn can_cast(kind: SyntaxKind) -> bool {
26185        kind == SyntaxKind::MATCH_FULL
26186    }
26187    #[inline]
26188    fn cast(syntax: SyntaxNode) -> Option<Self> {
26189        if Self::can_cast(syntax.kind()) {
26190            Some(Self { syntax })
26191        } else {
26192            None
26193        }
26194    }
26195    #[inline]
26196    fn syntax(&self) -> &SyntaxNode {
26197        &self.syntax
26198    }
26199}
26200impl AstNode for MatchPartial {
26201    #[inline]
26202    fn can_cast(kind: SyntaxKind) -> bool {
26203        kind == SyntaxKind::MATCH_PARTIAL
26204    }
26205    #[inline]
26206    fn cast(syntax: SyntaxNode) -> Option<Self> {
26207        if Self::can_cast(syntax.kind()) {
26208            Some(Self { syntax })
26209        } else {
26210            None
26211        }
26212    }
26213    #[inline]
26214    fn syntax(&self) -> &SyntaxNode {
26215        &self.syntax
26216    }
26217}
26218impl AstNode for MatchSimple {
26219    #[inline]
26220    fn can_cast(kind: SyntaxKind) -> bool {
26221        kind == SyntaxKind::MATCH_SIMPLE
26222    }
26223    #[inline]
26224    fn cast(syntax: SyntaxNode) -> Option<Self> {
26225        if Self::can_cast(syntax.kind()) {
26226            Some(Self { syntax })
26227        } else {
26228            None
26229        }
26230    }
26231    #[inline]
26232    fn syntax(&self) -> &SyntaxNode {
26233        &self.syntax
26234    }
26235}
26236impl AstNode for Materialized {
26237    #[inline]
26238    fn can_cast(kind: SyntaxKind) -> bool {
26239        kind == SyntaxKind::MATERIALIZED
26240    }
26241    #[inline]
26242    fn cast(syntax: SyntaxNode) -> Option<Self> {
26243        if Self::can_cast(syntax.kind()) {
26244            Some(Self { syntax })
26245        } else {
26246            None
26247        }
26248    }
26249    #[inline]
26250    fn syntax(&self) -> &SyntaxNode {
26251        &self.syntax
26252    }
26253}
26254impl AstNode for Merge {
26255    #[inline]
26256    fn can_cast(kind: SyntaxKind) -> bool {
26257        kind == SyntaxKind::MERGE
26258    }
26259    #[inline]
26260    fn cast(syntax: SyntaxNode) -> Option<Self> {
26261        if Self::can_cast(syntax.kind()) {
26262            Some(Self { syntax })
26263        } else {
26264            None
26265        }
26266    }
26267    #[inline]
26268    fn syntax(&self) -> &SyntaxNode {
26269        &self.syntax
26270    }
26271}
26272impl AstNode for MergeDelete {
26273    #[inline]
26274    fn can_cast(kind: SyntaxKind) -> bool {
26275        kind == SyntaxKind::MERGE_DELETE
26276    }
26277    #[inline]
26278    fn cast(syntax: SyntaxNode) -> Option<Self> {
26279        if Self::can_cast(syntax.kind()) {
26280            Some(Self { syntax })
26281        } else {
26282            None
26283        }
26284    }
26285    #[inline]
26286    fn syntax(&self) -> &SyntaxNode {
26287        &self.syntax
26288    }
26289}
26290impl AstNode for MergeDoNothing {
26291    #[inline]
26292    fn can_cast(kind: SyntaxKind) -> bool {
26293        kind == SyntaxKind::MERGE_DO_NOTHING
26294    }
26295    #[inline]
26296    fn cast(syntax: SyntaxNode) -> Option<Self> {
26297        if Self::can_cast(syntax.kind()) {
26298            Some(Self { syntax })
26299        } else {
26300            None
26301        }
26302    }
26303    #[inline]
26304    fn syntax(&self) -> &SyntaxNode {
26305        &self.syntax
26306    }
26307}
26308impl AstNode for MergeInsert {
26309    #[inline]
26310    fn can_cast(kind: SyntaxKind) -> bool {
26311        kind == SyntaxKind::MERGE_INSERT
26312    }
26313    #[inline]
26314    fn cast(syntax: SyntaxNode) -> Option<Self> {
26315        if Self::can_cast(syntax.kind()) {
26316            Some(Self { syntax })
26317        } else {
26318            None
26319        }
26320    }
26321    #[inline]
26322    fn syntax(&self) -> &SyntaxNode {
26323        &self.syntax
26324    }
26325}
26326impl AstNode for MergePartitions {
26327    #[inline]
26328    fn can_cast(kind: SyntaxKind) -> bool {
26329        kind == SyntaxKind::MERGE_PARTITIONS
26330    }
26331    #[inline]
26332    fn cast(syntax: SyntaxNode) -> Option<Self> {
26333        if Self::can_cast(syntax.kind()) {
26334            Some(Self { syntax })
26335        } else {
26336            None
26337        }
26338    }
26339    #[inline]
26340    fn syntax(&self) -> &SyntaxNode {
26341        &self.syntax
26342    }
26343}
26344impl AstNode for MergeUpdate {
26345    #[inline]
26346    fn can_cast(kind: SyntaxKind) -> bool {
26347        kind == SyntaxKind::MERGE_UPDATE
26348    }
26349    #[inline]
26350    fn cast(syntax: SyntaxNode) -> Option<Self> {
26351        if Self::can_cast(syntax.kind()) {
26352            Some(Self { syntax })
26353        } else {
26354            None
26355        }
26356    }
26357    #[inline]
26358    fn syntax(&self) -> &SyntaxNode {
26359        &self.syntax
26360    }
26361}
26362impl AstNode for MergeWhenMatched {
26363    #[inline]
26364    fn can_cast(kind: SyntaxKind) -> bool {
26365        kind == SyntaxKind::MERGE_WHEN_MATCHED
26366    }
26367    #[inline]
26368    fn cast(syntax: SyntaxNode) -> Option<Self> {
26369        if Self::can_cast(syntax.kind()) {
26370            Some(Self { syntax })
26371        } else {
26372            None
26373        }
26374    }
26375    #[inline]
26376    fn syntax(&self) -> &SyntaxNode {
26377        &self.syntax
26378    }
26379}
26380impl AstNode for MergeWhenNotMatchedSource {
26381    #[inline]
26382    fn can_cast(kind: SyntaxKind) -> bool {
26383        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
26384    }
26385    #[inline]
26386    fn cast(syntax: SyntaxNode) -> Option<Self> {
26387        if Self::can_cast(syntax.kind()) {
26388            Some(Self { syntax })
26389        } else {
26390            None
26391        }
26392    }
26393    #[inline]
26394    fn syntax(&self) -> &SyntaxNode {
26395        &self.syntax
26396    }
26397}
26398impl AstNode for MergeWhenNotMatchedTarget {
26399    #[inline]
26400    fn can_cast(kind: SyntaxKind) -> bool {
26401        kind == SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
26402    }
26403    #[inline]
26404    fn cast(syntax: SyntaxNode) -> Option<Self> {
26405        if Self::can_cast(syntax.kind()) {
26406            Some(Self { syntax })
26407        } else {
26408            None
26409        }
26410    }
26411    #[inline]
26412    fn syntax(&self) -> &SyntaxNode {
26413        &self.syntax
26414    }
26415}
26416impl AstNode for Move {
26417    #[inline]
26418    fn can_cast(kind: SyntaxKind) -> bool {
26419        kind == SyntaxKind::MOVE
26420    }
26421    #[inline]
26422    fn cast(syntax: SyntaxNode) -> Option<Self> {
26423        if Self::can_cast(syntax.kind()) {
26424            Some(Self { syntax })
26425        } else {
26426            None
26427        }
26428    }
26429    #[inline]
26430    fn syntax(&self) -> &SyntaxNode {
26431        &self.syntax
26432    }
26433}
26434impl AstNode for Name {
26435    #[inline]
26436    fn can_cast(kind: SyntaxKind) -> bool {
26437        kind == SyntaxKind::NAME
26438    }
26439    #[inline]
26440    fn cast(syntax: SyntaxNode) -> Option<Self> {
26441        if Self::can_cast(syntax.kind()) {
26442            Some(Self { syntax })
26443        } else {
26444            None
26445        }
26446    }
26447    #[inline]
26448    fn syntax(&self) -> &SyntaxNode {
26449        &self.syntax
26450    }
26451}
26452impl AstNode for NameRef {
26453    #[inline]
26454    fn can_cast(kind: SyntaxKind) -> bool {
26455        kind == SyntaxKind::NAME_REF
26456    }
26457    #[inline]
26458    fn cast(syntax: SyntaxNode) -> Option<Self> {
26459        if Self::can_cast(syntax.kind()) {
26460            Some(Self { syntax })
26461        } else {
26462            None
26463        }
26464    }
26465    #[inline]
26466    fn syntax(&self) -> &SyntaxNode {
26467        &self.syntax
26468    }
26469}
26470impl AstNode for NamedArg {
26471    #[inline]
26472    fn can_cast(kind: SyntaxKind) -> bool {
26473        kind == SyntaxKind::NAMED_ARG
26474    }
26475    #[inline]
26476    fn cast(syntax: SyntaxNode) -> Option<Self> {
26477        if Self::can_cast(syntax.kind()) {
26478            Some(Self { syntax })
26479        } else {
26480            None
26481        }
26482    }
26483    #[inline]
26484    fn syntax(&self) -> &SyntaxNode {
26485        &self.syntax
26486    }
26487}
26488impl AstNode for Neq {
26489    #[inline]
26490    fn can_cast(kind: SyntaxKind) -> bool {
26491        kind == SyntaxKind::NEQ
26492    }
26493    #[inline]
26494    fn cast(syntax: SyntaxNode) -> Option<Self> {
26495        if Self::can_cast(syntax.kind()) {
26496            Some(Self { syntax })
26497        } else {
26498            None
26499        }
26500    }
26501    #[inline]
26502    fn syntax(&self) -> &SyntaxNode {
26503        &self.syntax
26504    }
26505}
26506impl AstNode for Neqb {
26507    #[inline]
26508    fn can_cast(kind: SyntaxKind) -> bool {
26509        kind == SyntaxKind::NEQB
26510    }
26511    #[inline]
26512    fn cast(syntax: SyntaxNode) -> Option<Self> {
26513        if Self::can_cast(syntax.kind()) {
26514            Some(Self { syntax })
26515        } else {
26516            None
26517        }
26518    }
26519    #[inline]
26520    fn syntax(&self) -> &SyntaxNode {
26521        &self.syntax
26522    }
26523}
26524impl AstNode for NoAction {
26525    #[inline]
26526    fn can_cast(kind: SyntaxKind) -> bool {
26527        kind == SyntaxKind::NO_ACTION
26528    }
26529    #[inline]
26530    fn cast(syntax: SyntaxNode) -> Option<Self> {
26531        if Self::can_cast(syntax.kind()) {
26532            Some(Self { syntax })
26533        } else {
26534            None
26535        }
26536    }
26537    #[inline]
26538    fn syntax(&self) -> &SyntaxNode {
26539        &self.syntax
26540    }
26541}
26542impl AstNode for NoDependsOnExtension {
26543    #[inline]
26544    fn can_cast(kind: SyntaxKind) -> bool {
26545        kind == SyntaxKind::NO_DEPENDS_ON_EXTENSION
26546    }
26547    #[inline]
26548    fn cast(syntax: SyntaxNode) -> Option<Self> {
26549        if Self::can_cast(syntax.kind()) {
26550            Some(Self { syntax })
26551        } else {
26552            None
26553        }
26554    }
26555    #[inline]
26556    fn syntax(&self) -> &SyntaxNode {
26557        &self.syntax
26558    }
26559}
26560impl AstNode for NoForceRls {
26561    #[inline]
26562    fn can_cast(kind: SyntaxKind) -> bool {
26563        kind == SyntaxKind::NO_FORCE_RLS
26564    }
26565    #[inline]
26566    fn cast(syntax: SyntaxNode) -> Option<Self> {
26567        if Self::can_cast(syntax.kind()) {
26568            Some(Self { syntax })
26569        } else {
26570            None
26571        }
26572    }
26573    #[inline]
26574    fn syntax(&self) -> &SyntaxNode {
26575        &self.syntax
26576    }
26577}
26578impl AstNode for NoInherit {
26579    #[inline]
26580    fn can_cast(kind: SyntaxKind) -> bool {
26581        kind == SyntaxKind::NO_INHERIT
26582    }
26583    #[inline]
26584    fn cast(syntax: SyntaxNode) -> Option<Self> {
26585        if Self::can_cast(syntax.kind()) {
26586            Some(Self { syntax })
26587        } else {
26588            None
26589        }
26590    }
26591    #[inline]
26592    fn syntax(&self) -> &SyntaxNode {
26593        &self.syntax
26594    }
26595}
26596impl AstNode for NoInheritTable {
26597    #[inline]
26598    fn can_cast(kind: SyntaxKind) -> bool {
26599        kind == SyntaxKind::NO_INHERIT_TABLE
26600    }
26601    #[inline]
26602    fn cast(syntax: SyntaxNode) -> Option<Self> {
26603        if Self::can_cast(syntax.kind()) {
26604            Some(Self { syntax })
26605        } else {
26606            None
26607        }
26608    }
26609    #[inline]
26610    fn syntax(&self) -> &SyntaxNode {
26611        &self.syntax
26612    }
26613}
26614impl AstNode for NoProperties {
26615    #[inline]
26616    fn can_cast(kind: SyntaxKind) -> bool {
26617        kind == SyntaxKind::NO_PROPERTIES
26618    }
26619    #[inline]
26620    fn cast(syntax: SyntaxNode) -> Option<Self> {
26621        if Self::can_cast(syntax.kind()) {
26622            Some(Self { syntax })
26623        } else {
26624            None
26625        }
26626    }
26627    #[inline]
26628    fn syntax(&self) -> &SyntaxNode {
26629        &self.syntax
26630    }
26631}
26632impl AstNode for NonStandardParam {
26633    #[inline]
26634    fn can_cast(kind: SyntaxKind) -> bool {
26635        kind == SyntaxKind::NON_STANDARD_PARAM
26636    }
26637    #[inline]
26638    fn cast(syntax: SyntaxNode) -> Option<Self> {
26639        if Self::can_cast(syntax.kind()) {
26640            Some(Self { syntax })
26641        } else {
26642            None
26643        }
26644    }
26645    #[inline]
26646    fn syntax(&self) -> &SyntaxNode {
26647        &self.syntax
26648    }
26649}
26650impl AstNode for NotDeferrable {
26651    #[inline]
26652    fn can_cast(kind: SyntaxKind) -> bool {
26653        kind == SyntaxKind::NOT_DEFERRABLE
26654    }
26655    #[inline]
26656    fn cast(syntax: SyntaxNode) -> Option<Self> {
26657        if Self::can_cast(syntax.kind()) {
26658            Some(Self { syntax })
26659        } else {
26660            None
26661        }
26662    }
26663    #[inline]
26664    fn syntax(&self) -> &SyntaxNode {
26665        &self.syntax
26666    }
26667}
26668impl AstNode for NotDeferrableConstraintOption {
26669    #[inline]
26670    fn can_cast(kind: SyntaxKind) -> bool {
26671        kind == SyntaxKind::NOT_DEFERRABLE_CONSTRAINT_OPTION
26672    }
26673    #[inline]
26674    fn cast(syntax: SyntaxNode) -> Option<Self> {
26675        if Self::can_cast(syntax.kind()) {
26676            Some(Self { syntax })
26677        } else {
26678            None
26679        }
26680    }
26681    #[inline]
26682    fn syntax(&self) -> &SyntaxNode {
26683        &self.syntax
26684    }
26685}
26686impl AstNode for NotEnforced {
26687    #[inline]
26688    fn can_cast(kind: SyntaxKind) -> bool {
26689        kind == SyntaxKind::NOT_ENFORCED
26690    }
26691    #[inline]
26692    fn cast(syntax: SyntaxNode) -> Option<Self> {
26693        if Self::can_cast(syntax.kind()) {
26694            Some(Self { syntax })
26695        } else {
26696            None
26697        }
26698    }
26699    #[inline]
26700    fn syntax(&self) -> &SyntaxNode {
26701        &self.syntax
26702    }
26703}
26704impl AstNode for NotIlike {
26705    #[inline]
26706    fn can_cast(kind: SyntaxKind) -> bool {
26707        kind == SyntaxKind::NOT_ILIKE
26708    }
26709    #[inline]
26710    fn cast(syntax: SyntaxNode) -> Option<Self> {
26711        if Self::can_cast(syntax.kind()) {
26712            Some(Self { syntax })
26713        } else {
26714            None
26715        }
26716    }
26717    #[inline]
26718    fn syntax(&self) -> &SyntaxNode {
26719        &self.syntax
26720    }
26721}
26722impl AstNode for NotIn {
26723    #[inline]
26724    fn can_cast(kind: SyntaxKind) -> bool {
26725        kind == SyntaxKind::NOT_IN
26726    }
26727    #[inline]
26728    fn cast(syntax: SyntaxNode) -> Option<Self> {
26729        if Self::can_cast(syntax.kind()) {
26730            Some(Self { syntax })
26731        } else {
26732            None
26733        }
26734    }
26735    #[inline]
26736    fn syntax(&self) -> &SyntaxNode {
26737        &self.syntax
26738    }
26739}
26740impl AstNode for NotLike {
26741    #[inline]
26742    fn can_cast(kind: SyntaxKind) -> bool {
26743        kind == SyntaxKind::NOT_LIKE
26744    }
26745    #[inline]
26746    fn cast(syntax: SyntaxNode) -> Option<Self> {
26747        if Self::can_cast(syntax.kind()) {
26748            Some(Self { syntax })
26749        } else {
26750            None
26751        }
26752    }
26753    #[inline]
26754    fn syntax(&self) -> &SyntaxNode {
26755        &self.syntax
26756    }
26757}
26758impl AstNode for NotMaterialized {
26759    #[inline]
26760    fn can_cast(kind: SyntaxKind) -> bool {
26761        kind == SyntaxKind::NOT_MATERIALIZED
26762    }
26763    #[inline]
26764    fn cast(syntax: SyntaxNode) -> Option<Self> {
26765        if Self::can_cast(syntax.kind()) {
26766            Some(Self { syntax })
26767        } else {
26768            None
26769        }
26770    }
26771    #[inline]
26772    fn syntax(&self) -> &SyntaxNode {
26773        &self.syntax
26774    }
26775}
26776impl AstNode for NotNullConstraint {
26777    #[inline]
26778    fn can_cast(kind: SyntaxKind) -> bool {
26779        kind == SyntaxKind::NOT_NULL_CONSTRAINT
26780    }
26781    #[inline]
26782    fn cast(syntax: SyntaxNode) -> Option<Self> {
26783        if Self::can_cast(syntax.kind()) {
26784            Some(Self { syntax })
26785        } else {
26786            None
26787        }
26788    }
26789    #[inline]
26790    fn syntax(&self) -> &SyntaxNode {
26791        &self.syntax
26792    }
26793}
26794impl AstNode for NotOf {
26795    #[inline]
26796    fn can_cast(kind: SyntaxKind) -> bool {
26797        kind == SyntaxKind::NOT_OF
26798    }
26799    #[inline]
26800    fn cast(syntax: SyntaxNode) -> Option<Self> {
26801        if Self::can_cast(syntax.kind()) {
26802            Some(Self { syntax })
26803        } else {
26804            None
26805        }
26806    }
26807    #[inline]
26808    fn syntax(&self) -> &SyntaxNode {
26809        &self.syntax
26810    }
26811}
26812impl AstNode for NotSimilarTo {
26813    #[inline]
26814    fn can_cast(kind: SyntaxKind) -> bool {
26815        kind == SyntaxKind::NOT_SIMILAR_TO
26816    }
26817    #[inline]
26818    fn cast(syntax: SyntaxNode) -> Option<Self> {
26819        if Self::can_cast(syntax.kind()) {
26820            Some(Self { syntax })
26821        } else {
26822            None
26823        }
26824    }
26825    #[inline]
26826    fn syntax(&self) -> &SyntaxNode {
26827        &self.syntax
26828    }
26829}
26830impl AstNode for NotValid {
26831    #[inline]
26832    fn can_cast(kind: SyntaxKind) -> bool {
26833        kind == SyntaxKind::NOT_VALID
26834    }
26835    #[inline]
26836    fn cast(syntax: SyntaxNode) -> Option<Self> {
26837        if Self::can_cast(syntax.kind()) {
26838            Some(Self { syntax })
26839        } else {
26840            None
26841        }
26842    }
26843    #[inline]
26844    fn syntax(&self) -> &SyntaxNode {
26845        &self.syntax
26846    }
26847}
26848impl AstNode for Notify {
26849    #[inline]
26850    fn can_cast(kind: SyntaxKind) -> bool {
26851        kind == SyntaxKind::NOTIFY
26852    }
26853    #[inline]
26854    fn cast(syntax: SyntaxNode) -> Option<Self> {
26855        if Self::can_cast(syntax.kind()) {
26856            Some(Self { syntax })
26857        } else {
26858            None
26859        }
26860    }
26861    #[inline]
26862    fn syntax(&self) -> &SyntaxNode {
26863        &self.syntax
26864    }
26865}
26866impl AstNode for NullConstraint {
26867    #[inline]
26868    fn can_cast(kind: SyntaxKind) -> bool {
26869        kind == SyntaxKind::NULL_CONSTRAINT
26870    }
26871    #[inline]
26872    fn cast(syntax: SyntaxNode) -> Option<Self> {
26873        if Self::can_cast(syntax.kind()) {
26874            Some(Self { syntax })
26875        } else {
26876            None
26877        }
26878    }
26879    #[inline]
26880    fn syntax(&self) -> &SyntaxNode {
26881        &self.syntax
26882    }
26883}
26884impl AstNode for NullsDistinct {
26885    #[inline]
26886    fn can_cast(kind: SyntaxKind) -> bool {
26887        kind == SyntaxKind::NULLS_DISTINCT
26888    }
26889    #[inline]
26890    fn cast(syntax: SyntaxNode) -> Option<Self> {
26891        if Self::can_cast(syntax.kind()) {
26892            Some(Self { syntax })
26893        } else {
26894            None
26895        }
26896    }
26897    #[inline]
26898    fn syntax(&self) -> &SyntaxNode {
26899        &self.syntax
26900    }
26901}
26902impl AstNode for NullsFirst {
26903    #[inline]
26904    fn can_cast(kind: SyntaxKind) -> bool {
26905        kind == SyntaxKind::NULLS_FIRST
26906    }
26907    #[inline]
26908    fn cast(syntax: SyntaxNode) -> Option<Self> {
26909        if Self::can_cast(syntax.kind()) {
26910            Some(Self { syntax })
26911        } else {
26912            None
26913        }
26914    }
26915    #[inline]
26916    fn syntax(&self) -> &SyntaxNode {
26917        &self.syntax
26918    }
26919}
26920impl AstNode for NullsLast {
26921    #[inline]
26922    fn can_cast(kind: SyntaxKind) -> bool {
26923        kind == SyntaxKind::NULLS_LAST
26924    }
26925    #[inline]
26926    fn cast(syntax: SyntaxNode) -> Option<Self> {
26927        if Self::can_cast(syntax.kind()) {
26928            Some(Self { syntax })
26929        } else {
26930            None
26931        }
26932    }
26933    #[inline]
26934    fn syntax(&self) -> &SyntaxNode {
26935        &self.syntax
26936    }
26937}
26938impl AstNode for NullsNotDistinct {
26939    #[inline]
26940    fn can_cast(kind: SyntaxKind) -> bool {
26941        kind == SyntaxKind::NULLS_NOT_DISTINCT
26942    }
26943    #[inline]
26944    fn cast(syntax: SyntaxNode) -> Option<Self> {
26945        if Self::can_cast(syntax.kind()) {
26946            Some(Self { syntax })
26947        } else {
26948            None
26949        }
26950    }
26951    #[inline]
26952    fn syntax(&self) -> &SyntaxNode {
26953        &self.syntax
26954    }
26955}
26956impl AstNode for OfType {
26957    #[inline]
26958    fn can_cast(kind: SyntaxKind) -> bool {
26959        kind == SyntaxKind::OF_TYPE
26960    }
26961    #[inline]
26962    fn cast(syntax: SyntaxNode) -> Option<Self> {
26963        if Self::can_cast(syntax.kind()) {
26964            Some(Self { syntax })
26965        } else {
26966            None
26967        }
26968    }
26969    #[inline]
26970    fn syntax(&self) -> &SyntaxNode {
26971        &self.syntax
26972    }
26973}
26974impl AstNode for OffsetClause {
26975    #[inline]
26976    fn can_cast(kind: SyntaxKind) -> bool {
26977        kind == SyntaxKind::OFFSET_CLAUSE
26978    }
26979    #[inline]
26980    fn cast(syntax: SyntaxNode) -> Option<Self> {
26981        if Self::can_cast(syntax.kind()) {
26982            Some(Self { syntax })
26983        } else {
26984            None
26985        }
26986    }
26987    #[inline]
26988    fn syntax(&self) -> &SyntaxNode {
26989        &self.syntax
26990    }
26991}
26992impl AstNode for OnClause {
26993    #[inline]
26994    fn can_cast(kind: SyntaxKind) -> bool {
26995        kind == SyntaxKind::ON_CLAUSE
26996    }
26997    #[inline]
26998    fn cast(syntax: SyntaxNode) -> Option<Self> {
26999        if Self::can_cast(syntax.kind()) {
27000            Some(Self { syntax })
27001        } else {
27002            None
27003        }
27004    }
27005    #[inline]
27006    fn syntax(&self) -> &SyntaxNode {
27007        &self.syntax
27008    }
27009}
27010impl AstNode for OnCommit {
27011    #[inline]
27012    fn can_cast(kind: SyntaxKind) -> bool {
27013        kind == SyntaxKind::ON_COMMIT
27014    }
27015    #[inline]
27016    fn cast(syntax: SyntaxNode) -> Option<Self> {
27017        if Self::can_cast(syntax.kind()) {
27018            Some(Self { syntax })
27019        } else {
27020            None
27021        }
27022    }
27023    #[inline]
27024    fn syntax(&self) -> &SyntaxNode {
27025        &self.syntax
27026    }
27027}
27028impl AstNode for OnConflictClause {
27029    #[inline]
27030    fn can_cast(kind: SyntaxKind) -> bool {
27031        kind == SyntaxKind::ON_CONFLICT_CLAUSE
27032    }
27033    #[inline]
27034    fn cast(syntax: SyntaxNode) -> Option<Self> {
27035        if Self::can_cast(syntax.kind()) {
27036            Some(Self { syntax })
27037        } else {
27038            None
27039        }
27040    }
27041    #[inline]
27042    fn syntax(&self) -> &SyntaxNode {
27043        &self.syntax
27044    }
27045}
27046impl AstNode for OnDeleteAction {
27047    #[inline]
27048    fn can_cast(kind: SyntaxKind) -> bool {
27049        kind == SyntaxKind::ON_DELETE_ACTION
27050    }
27051    #[inline]
27052    fn cast(syntax: SyntaxNode) -> Option<Self> {
27053        if Self::can_cast(syntax.kind()) {
27054            Some(Self { syntax })
27055        } else {
27056            None
27057        }
27058    }
27059    #[inline]
27060    fn syntax(&self) -> &SyntaxNode {
27061        &self.syntax
27062    }
27063}
27064impl AstNode for OnPath {
27065    #[inline]
27066    fn can_cast(kind: SyntaxKind) -> bool {
27067        kind == SyntaxKind::ON_PATH
27068    }
27069    #[inline]
27070    fn cast(syntax: SyntaxNode) -> Option<Self> {
27071        if Self::can_cast(syntax.kind()) {
27072            Some(Self { syntax })
27073        } else {
27074            None
27075        }
27076    }
27077    #[inline]
27078    fn syntax(&self) -> &SyntaxNode {
27079        &self.syntax
27080    }
27081}
27082impl AstNode for OnTable {
27083    #[inline]
27084    fn can_cast(kind: SyntaxKind) -> bool {
27085        kind == SyntaxKind::ON_TABLE
27086    }
27087    #[inline]
27088    fn cast(syntax: SyntaxNode) -> Option<Self> {
27089        if Self::can_cast(syntax.kind()) {
27090            Some(Self { syntax })
27091        } else {
27092            None
27093        }
27094    }
27095    #[inline]
27096    fn syntax(&self) -> &SyntaxNode {
27097        &self.syntax
27098    }
27099}
27100impl AstNode for OnUpdateAction {
27101    #[inline]
27102    fn can_cast(kind: SyntaxKind) -> bool {
27103        kind == SyntaxKind::ON_UPDATE_ACTION
27104    }
27105    #[inline]
27106    fn cast(syntax: SyntaxNode) -> Option<Self> {
27107        if Self::can_cast(syntax.kind()) {
27108            Some(Self { syntax })
27109        } else {
27110            None
27111        }
27112    }
27113    #[inline]
27114    fn syntax(&self) -> &SyntaxNode {
27115        &self.syntax
27116    }
27117}
27118impl AstNode for Op {
27119    #[inline]
27120    fn can_cast(kind: SyntaxKind) -> bool {
27121        kind == SyntaxKind::OP
27122    }
27123    #[inline]
27124    fn cast(syntax: SyntaxNode) -> Option<Self> {
27125        if Self::can_cast(syntax.kind()) {
27126            Some(Self { syntax })
27127        } else {
27128            None
27129        }
27130    }
27131    #[inline]
27132    fn syntax(&self) -> &SyntaxNode {
27133        &self.syntax
27134    }
27135}
27136impl AstNode for OpClassOption {
27137    #[inline]
27138    fn can_cast(kind: SyntaxKind) -> bool {
27139        kind == SyntaxKind::OP_CLASS_OPTION
27140    }
27141    #[inline]
27142    fn cast(syntax: SyntaxNode) -> Option<Self> {
27143        if Self::can_cast(syntax.kind()) {
27144            Some(Self { syntax })
27145        } else {
27146            None
27147        }
27148    }
27149    #[inline]
27150    fn syntax(&self) -> &SyntaxNode {
27151        &self.syntax
27152    }
27153}
27154impl AstNode for OpSig {
27155    #[inline]
27156    fn can_cast(kind: SyntaxKind) -> bool {
27157        kind == SyntaxKind::OP_SIG
27158    }
27159    #[inline]
27160    fn cast(syntax: SyntaxNode) -> Option<Self> {
27161        if Self::can_cast(syntax.kind()) {
27162            Some(Self { syntax })
27163        } else {
27164            None
27165        }
27166    }
27167    #[inline]
27168    fn syntax(&self) -> &SyntaxNode {
27169        &self.syntax
27170    }
27171}
27172impl AstNode for OpSigList {
27173    #[inline]
27174    fn can_cast(kind: SyntaxKind) -> bool {
27175        kind == SyntaxKind::OP_SIG_LIST
27176    }
27177    #[inline]
27178    fn cast(syntax: SyntaxNode) -> Option<Self> {
27179        if Self::can_cast(syntax.kind()) {
27180            Some(Self { syntax })
27181        } else {
27182            None
27183        }
27184    }
27185    #[inline]
27186    fn syntax(&self) -> &SyntaxNode {
27187        &self.syntax
27188    }
27189}
27190impl AstNode for OperatorCall {
27191    #[inline]
27192    fn can_cast(kind: SyntaxKind) -> bool {
27193        kind == SyntaxKind::OPERATOR_CALL
27194    }
27195    #[inline]
27196    fn cast(syntax: SyntaxNode) -> Option<Self> {
27197        if Self::can_cast(syntax.kind()) {
27198            Some(Self { syntax })
27199        } else {
27200            None
27201        }
27202    }
27203    #[inline]
27204    fn syntax(&self) -> &SyntaxNode {
27205        &self.syntax
27206    }
27207}
27208impl AstNode for OperatorClassOptionList {
27209    #[inline]
27210    fn can_cast(kind: SyntaxKind) -> bool {
27211        kind == SyntaxKind::OPERATOR_CLASS_OPTION_LIST
27212    }
27213    #[inline]
27214    fn cast(syntax: SyntaxNode) -> Option<Self> {
27215        if Self::can_cast(syntax.kind()) {
27216            Some(Self { syntax })
27217        } else {
27218            None
27219        }
27220    }
27221    #[inline]
27222    fn syntax(&self) -> &SyntaxNode {
27223        &self.syntax
27224    }
27225}
27226impl AstNode for OptionItem {
27227    #[inline]
27228    fn can_cast(kind: SyntaxKind) -> bool {
27229        kind == SyntaxKind::OPTION_ITEM
27230    }
27231    #[inline]
27232    fn cast(syntax: SyntaxNode) -> Option<Self> {
27233        if Self::can_cast(syntax.kind()) {
27234            Some(Self { syntax })
27235        } else {
27236            None
27237        }
27238    }
27239    #[inline]
27240    fn syntax(&self) -> &SyntaxNode {
27241        &self.syntax
27242    }
27243}
27244impl AstNode for OptionItemList {
27245    #[inline]
27246    fn can_cast(kind: SyntaxKind) -> bool {
27247        kind == SyntaxKind::OPTION_ITEM_LIST
27248    }
27249    #[inline]
27250    fn cast(syntax: SyntaxNode) -> Option<Self> {
27251        if Self::can_cast(syntax.kind()) {
27252            Some(Self { syntax })
27253        } else {
27254            None
27255        }
27256    }
27257    #[inline]
27258    fn syntax(&self) -> &SyntaxNode {
27259        &self.syntax
27260    }
27261}
27262impl AstNode for OrReplace {
27263    #[inline]
27264    fn can_cast(kind: SyntaxKind) -> bool {
27265        kind == SyntaxKind::OR_REPLACE
27266    }
27267    #[inline]
27268    fn cast(syntax: SyntaxNode) -> Option<Self> {
27269        if Self::can_cast(syntax.kind()) {
27270            Some(Self { syntax })
27271        } else {
27272            None
27273        }
27274    }
27275    #[inline]
27276    fn syntax(&self) -> &SyntaxNode {
27277        &self.syntax
27278    }
27279}
27280impl AstNode for OrderByClause {
27281    #[inline]
27282    fn can_cast(kind: SyntaxKind) -> bool {
27283        kind == SyntaxKind::ORDER_BY_CLAUSE
27284    }
27285    #[inline]
27286    fn cast(syntax: SyntaxNode) -> Option<Self> {
27287        if Self::can_cast(syntax.kind()) {
27288            Some(Self { syntax })
27289        } else {
27290            None
27291        }
27292    }
27293    #[inline]
27294    fn syntax(&self) -> &SyntaxNode {
27295        &self.syntax
27296    }
27297}
27298impl AstNode for OverClause {
27299    #[inline]
27300    fn can_cast(kind: SyntaxKind) -> bool {
27301        kind == SyntaxKind::OVER_CLAUSE
27302    }
27303    #[inline]
27304    fn cast(syntax: SyntaxNode) -> Option<Self> {
27305        if Self::can_cast(syntax.kind()) {
27306            Some(Self { syntax })
27307        } else {
27308            None
27309        }
27310    }
27311    #[inline]
27312    fn syntax(&self) -> &SyntaxNode {
27313        &self.syntax
27314    }
27315}
27316impl AstNode for OverlayFn {
27317    #[inline]
27318    fn can_cast(kind: SyntaxKind) -> bool {
27319        kind == SyntaxKind::OVERLAY_FN
27320    }
27321    #[inline]
27322    fn cast(syntax: SyntaxNode) -> Option<Self> {
27323        if Self::can_cast(syntax.kind()) {
27324            Some(Self { syntax })
27325        } else {
27326            None
27327        }
27328    }
27329    #[inline]
27330    fn syntax(&self) -> &SyntaxNode {
27331        &self.syntax
27332    }
27333}
27334impl AstNode for OwnedByRoles {
27335    #[inline]
27336    fn can_cast(kind: SyntaxKind) -> bool {
27337        kind == SyntaxKind::OWNED_BY_ROLES
27338    }
27339    #[inline]
27340    fn cast(syntax: SyntaxNode) -> Option<Self> {
27341        if Self::can_cast(syntax.kind()) {
27342            Some(Self { syntax })
27343        } else {
27344            None
27345        }
27346    }
27347    #[inline]
27348    fn syntax(&self) -> &SyntaxNode {
27349        &self.syntax
27350    }
27351}
27352impl AstNode for OwnerTo {
27353    #[inline]
27354    fn can_cast(kind: SyntaxKind) -> bool {
27355        kind == SyntaxKind::OWNER_TO
27356    }
27357    #[inline]
27358    fn cast(syntax: SyntaxNode) -> Option<Self> {
27359        if Self::can_cast(syntax.kind()) {
27360            Some(Self { syntax })
27361        } else {
27362            None
27363        }
27364    }
27365    #[inline]
27366    fn syntax(&self) -> &SyntaxNode {
27367        &self.syntax
27368    }
27369}
27370impl AstNode for ParallelFuncOption {
27371    #[inline]
27372    fn can_cast(kind: SyntaxKind) -> bool {
27373        kind == SyntaxKind::PARALLEL_FUNC_OPTION
27374    }
27375    #[inline]
27376    fn cast(syntax: SyntaxNode) -> Option<Self> {
27377        if Self::can_cast(syntax.kind()) {
27378            Some(Self { syntax })
27379        } else {
27380            None
27381        }
27382    }
27383    #[inline]
27384    fn syntax(&self) -> &SyntaxNode {
27385        &self.syntax
27386    }
27387}
27388impl AstNode for Param {
27389    #[inline]
27390    fn can_cast(kind: SyntaxKind) -> bool {
27391        kind == SyntaxKind::PARAM
27392    }
27393    #[inline]
27394    fn cast(syntax: SyntaxNode) -> Option<Self> {
27395        if Self::can_cast(syntax.kind()) {
27396            Some(Self { syntax })
27397        } else {
27398            None
27399        }
27400    }
27401    #[inline]
27402    fn syntax(&self) -> &SyntaxNode {
27403        &self.syntax
27404    }
27405}
27406impl AstNode for ParamDefault {
27407    #[inline]
27408    fn can_cast(kind: SyntaxKind) -> bool {
27409        kind == SyntaxKind::PARAM_DEFAULT
27410    }
27411    #[inline]
27412    fn cast(syntax: SyntaxNode) -> Option<Self> {
27413        if Self::can_cast(syntax.kind()) {
27414            Some(Self { syntax })
27415        } else {
27416            None
27417        }
27418    }
27419    #[inline]
27420    fn syntax(&self) -> &SyntaxNode {
27421        &self.syntax
27422    }
27423}
27424impl AstNode for ParamIn {
27425    #[inline]
27426    fn can_cast(kind: SyntaxKind) -> bool {
27427        kind == SyntaxKind::PARAM_IN
27428    }
27429    #[inline]
27430    fn cast(syntax: SyntaxNode) -> Option<Self> {
27431        if Self::can_cast(syntax.kind()) {
27432            Some(Self { syntax })
27433        } else {
27434            None
27435        }
27436    }
27437    #[inline]
27438    fn syntax(&self) -> &SyntaxNode {
27439        &self.syntax
27440    }
27441}
27442impl AstNode for ParamInOut {
27443    #[inline]
27444    fn can_cast(kind: SyntaxKind) -> bool {
27445        kind == SyntaxKind::PARAM_IN_OUT
27446    }
27447    #[inline]
27448    fn cast(syntax: SyntaxNode) -> Option<Self> {
27449        if Self::can_cast(syntax.kind()) {
27450            Some(Self { syntax })
27451        } else {
27452            None
27453        }
27454    }
27455    #[inline]
27456    fn syntax(&self) -> &SyntaxNode {
27457        &self.syntax
27458    }
27459}
27460impl AstNode for ParamList {
27461    #[inline]
27462    fn can_cast(kind: SyntaxKind) -> bool {
27463        kind == SyntaxKind::PARAM_LIST
27464    }
27465    #[inline]
27466    fn cast(syntax: SyntaxNode) -> Option<Self> {
27467        if Self::can_cast(syntax.kind()) {
27468            Some(Self { syntax })
27469        } else {
27470            None
27471        }
27472    }
27473    #[inline]
27474    fn syntax(&self) -> &SyntaxNode {
27475        &self.syntax
27476    }
27477}
27478impl AstNode for ParamOut {
27479    #[inline]
27480    fn can_cast(kind: SyntaxKind) -> bool {
27481        kind == SyntaxKind::PARAM_OUT
27482    }
27483    #[inline]
27484    fn cast(syntax: SyntaxNode) -> Option<Self> {
27485        if Self::can_cast(syntax.kind()) {
27486            Some(Self { syntax })
27487        } else {
27488            None
27489        }
27490    }
27491    #[inline]
27492    fn syntax(&self) -> &SyntaxNode {
27493        &self.syntax
27494    }
27495}
27496impl AstNode for ParamVariadic {
27497    #[inline]
27498    fn can_cast(kind: SyntaxKind) -> bool {
27499        kind == SyntaxKind::PARAM_VARIADIC
27500    }
27501    #[inline]
27502    fn cast(syntax: SyntaxNode) -> Option<Self> {
27503        if Self::can_cast(syntax.kind()) {
27504            Some(Self { syntax })
27505        } else {
27506            None
27507        }
27508    }
27509    #[inline]
27510    fn syntax(&self) -> &SyntaxNode {
27511        &self.syntax
27512    }
27513}
27514impl AstNode for ParenExpr {
27515    #[inline]
27516    fn can_cast(kind: SyntaxKind) -> bool {
27517        kind == SyntaxKind::PAREN_EXPR
27518    }
27519    #[inline]
27520    fn cast(syntax: SyntaxNode) -> Option<Self> {
27521        if Self::can_cast(syntax.kind()) {
27522            Some(Self { syntax })
27523        } else {
27524            None
27525        }
27526    }
27527    #[inline]
27528    fn syntax(&self) -> &SyntaxNode {
27529        &self.syntax
27530    }
27531}
27532impl AstNode for ParenGraphPattern {
27533    #[inline]
27534    fn can_cast(kind: SyntaxKind) -> bool {
27535        kind == SyntaxKind::PAREN_GRAPH_PATTERN
27536    }
27537    #[inline]
27538    fn cast(syntax: SyntaxNode) -> Option<Self> {
27539        if Self::can_cast(syntax.kind()) {
27540            Some(Self { syntax })
27541        } else {
27542            None
27543        }
27544    }
27545    #[inline]
27546    fn syntax(&self) -> &SyntaxNode {
27547        &self.syntax
27548    }
27549}
27550impl AstNode for ParenSelect {
27551    #[inline]
27552    fn can_cast(kind: SyntaxKind) -> bool {
27553        kind == SyntaxKind::PAREN_SELECT
27554    }
27555    #[inline]
27556    fn cast(syntax: SyntaxNode) -> Option<Self> {
27557        if Self::can_cast(syntax.kind()) {
27558            Some(Self { syntax })
27559        } else {
27560            None
27561        }
27562    }
27563    #[inline]
27564    fn syntax(&self) -> &SyntaxNode {
27565        &self.syntax
27566    }
27567}
27568impl AstNode for Partition {
27569    #[inline]
27570    fn can_cast(kind: SyntaxKind) -> bool {
27571        kind == SyntaxKind::PARTITION
27572    }
27573    #[inline]
27574    fn cast(syntax: SyntaxNode) -> Option<Self> {
27575        if Self::can_cast(syntax.kind()) {
27576            Some(Self { syntax })
27577        } else {
27578            None
27579        }
27580    }
27581    #[inline]
27582    fn syntax(&self) -> &SyntaxNode {
27583        &self.syntax
27584    }
27585}
27586impl AstNode for PartitionBy {
27587    #[inline]
27588    fn can_cast(kind: SyntaxKind) -> bool {
27589        kind == SyntaxKind::PARTITION_BY
27590    }
27591    #[inline]
27592    fn cast(syntax: SyntaxNode) -> Option<Self> {
27593        if Self::can_cast(syntax.kind()) {
27594            Some(Self { syntax })
27595        } else {
27596            None
27597        }
27598    }
27599    #[inline]
27600    fn syntax(&self) -> &SyntaxNode {
27601        &self.syntax
27602    }
27603}
27604impl AstNode for PartitionDefault {
27605    #[inline]
27606    fn can_cast(kind: SyntaxKind) -> bool {
27607        kind == SyntaxKind::PARTITION_DEFAULT
27608    }
27609    #[inline]
27610    fn cast(syntax: SyntaxNode) -> Option<Self> {
27611        if Self::can_cast(syntax.kind()) {
27612            Some(Self { syntax })
27613        } else {
27614            None
27615        }
27616    }
27617    #[inline]
27618    fn syntax(&self) -> &SyntaxNode {
27619        &self.syntax
27620    }
27621}
27622impl AstNode for PartitionForValuesFrom {
27623    #[inline]
27624    fn can_cast(kind: SyntaxKind) -> bool {
27625        kind == SyntaxKind::PARTITION_FOR_VALUES_FROM
27626    }
27627    #[inline]
27628    fn cast(syntax: SyntaxNode) -> Option<Self> {
27629        if Self::can_cast(syntax.kind()) {
27630            Some(Self { syntax })
27631        } else {
27632            None
27633        }
27634    }
27635    #[inline]
27636    fn syntax(&self) -> &SyntaxNode {
27637        &self.syntax
27638    }
27639}
27640impl AstNode for PartitionForValuesIn {
27641    #[inline]
27642    fn can_cast(kind: SyntaxKind) -> bool {
27643        kind == SyntaxKind::PARTITION_FOR_VALUES_IN
27644    }
27645    #[inline]
27646    fn cast(syntax: SyntaxNode) -> Option<Self> {
27647        if Self::can_cast(syntax.kind()) {
27648            Some(Self { syntax })
27649        } else {
27650            None
27651        }
27652    }
27653    #[inline]
27654    fn syntax(&self) -> &SyntaxNode {
27655        &self.syntax
27656    }
27657}
27658impl AstNode for PartitionForValuesWith {
27659    #[inline]
27660    fn can_cast(kind: SyntaxKind) -> bool {
27661        kind == SyntaxKind::PARTITION_FOR_VALUES_WITH
27662    }
27663    #[inline]
27664    fn cast(syntax: SyntaxNode) -> Option<Self> {
27665        if Self::can_cast(syntax.kind()) {
27666            Some(Self { syntax })
27667        } else {
27668            None
27669        }
27670    }
27671    #[inline]
27672    fn syntax(&self) -> &SyntaxNode {
27673        &self.syntax
27674    }
27675}
27676impl AstNode for PartitionItem {
27677    #[inline]
27678    fn can_cast(kind: SyntaxKind) -> bool {
27679        kind == SyntaxKind::PARTITION_ITEM
27680    }
27681    #[inline]
27682    fn cast(syntax: SyntaxNode) -> Option<Self> {
27683        if Self::can_cast(syntax.kind()) {
27684            Some(Self { syntax })
27685        } else {
27686            None
27687        }
27688    }
27689    #[inline]
27690    fn syntax(&self) -> &SyntaxNode {
27691        &self.syntax
27692    }
27693}
27694impl AstNode for PartitionItemList {
27695    #[inline]
27696    fn can_cast(kind: SyntaxKind) -> bool {
27697        kind == SyntaxKind::PARTITION_ITEM_LIST
27698    }
27699    #[inline]
27700    fn cast(syntax: SyntaxNode) -> Option<Self> {
27701        if Self::can_cast(syntax.kind()) {
27702            Some(Self { syntax })
27703        } else {
27704            None
27705        }
27706    }
27707    #[inline]
27708    fn syntax(&self) -> &SyntaxNode {
27709        &self.syntax
27710    }
27711}
27712impl AstNode for PartitionList {
27713    #[inline]
27714    fn can_cast(kind: SyntaxKind) -> bool {
27715        kind == SyntaxKind::PARTITION_LIST
27716    }
27717    #[inline]
27718    fn cast(syntax: SyntaxNode) -> Option<Self> {
27719        if Self::can_cast(syntax.kind()) {
27720            Some(Self { syntax })
27721        } else {
27722            None
27723        }
27724    }
27725    #[inline]
27726    fn syntax(&self) -> &SyntaxNode {
27727        &self.syntax
27728    }
27729}
27730impl AstNode for PartitionOf {
27731    #[inline]
27732    fn can_cast(kind: SyntaxKind) -> bool {
27733        kind == SyntaxKind::PARTITION_OF
27734    }
27735    #[inline]
27736    fn cast(syntax: SyntaxNode) -> Option<Self> {
27737        if Self::can_cast(syntax.kind()) {
27738            Some(Self { syntax })
27739        } else {
27740            None
27741        }
27742    }
27743    #[inline]
27744    fn syntax(&self) -> &SyntaxNode {
27745        &self.syntax
27746    }
27747}
27748impl AstNode for Path {
27749    #[inline]
27750    fn can_cast(kind: SyntaxKind) -> bool {
27751        kind == SyntaxKind::PATH
27752    }
27753    #[inline]
27754    fn cast(syntax: SyntaxNode) -> Option<Self> {
27755        if Self::can_cast(syntax.kind()) {
27756            Some(Self { syntax })
27757        } else {
27758            None
27759        }
27760    }
27761    #[inline]
27762    fn syntax(&self) -> &SyntaxNode {
27763        &self.syntax
27764    }
27765}
27766impl AstNode for PathFactor {
27767    #[inline]
27768    fn can_cast(kind: SyntaxKind) -> bool {
27769        kind == SyntaxKind::PATH_FACTOR
27770    }
27771    #[inline]
27772    fn cast(syntax: SyntaxNode) -> Option<Self> {
27773        if Self::can_cast(syntax.kind()) {
27774            Some(Self { syntax })
27775        } else {
27776            None
27777        }
27778    }
27779    #[inline]
27780    fn syntax(&self) -> &SyntaxNode {
27781        &self.syntax
27782    }
27783}
27784impl AstNode for PathPattern {
27785    #[inline]
27786    fn can_cast(kind: SyntaxKind) -> bool {
27787        kind == SyntaxKind::PATH_PATTERN
27788    }
27789    #[inline]
27790    fn cast(syntax: SyntaxNode) -> Option<Self> {
27791        if Self::can_cast(syntax.kind()) {
27792            Some(Self { syntax })
27793        } else {
27794            None
27795        }
27796    }
27797    #[inline]
27798    fn syntax(&self) -> &SyntaxNode {
27799        &self.syntax
27800    }
27801}
27802impl AstNode for PathPatternList {
27803    #[inline]
27804    fn can_cast(kind: SyntaxKind) -> bool {
27805        kind == SyntaxKind::PATH_PATTERN_LIST
27806    }
27807    #[inline]
27808    fn cast(syntax: SyntaxNode) -> Option<Self> {
27809        if Self::can_cast(syntax.kind()) {
27810            Some(Self { syntax })
27811        } else {
27812            None
27813        }
27814    }
27815    #[inline]
27816    fn syntax(&self) -> &SyntaxNode {
27817        &self.syntax
27818    }
27819}
27820impl AstNode for PathSegment {
27821    #[inline]
27822    fn can_cast(kind: SyntaxKind) -> bool {
27823        kind == SyntaxKind::PATH_SEGMENT
27824    }
27825    #[inline]
27826    fn cast(syntax: SyntaxNode) -> Option<Self> {
27827        if Self::can_cast(syntax.kind()) {
27828            Some(Self { syntax })
27829        } else {
27830            None
27831        }
27832    }
27833    #[inline]
27834    fn syntax(&self) -> &SyntaxNode {
27835        &self.syntax
27836    }
27837}
27838impl AstNode for PathType {
27839    #[inline]
27840    fn can_cast(kind: SyntaxKind) -> bool {
27841        kind == SyntaxKind::PATH_TYPE
27842    }
27843    #[inline]
27844    fn cast(syntax: SyntaxNode) -> Option<Self> {
27845        if Self::can_cast(syntax.kind()) {
27846            Some(Self { syntax })
27847        } else {
27848            None
27849        }
27850    }
27851    #[inline]
27852    fn syntax(&self) -> &SyntaxNode {
27853        &self.syntax
27854    }
27855}
27856impl AstNode for PercentType {
27857    #[inline]
27858    fn can_cast(kind: SyntaxKind) -> bool {
27859        kind == SyntaxKind::PERCENT_TYPE
27860    }
27861    #[inline]
27862    fn cast(syntax: SyntaxNode) -> Option<Self> {
27863        if Self::can_cast(syntax.kind()) {
27864            Some(Self { syntax })
27865        } else {
27866            None
27867        }
27868    }
27869    #[inline]
27870    fn syntax(&self) -> &SyntaxNode {
27871        &self.syntax
27872    }
27873}
27874impl AstNode for PercentTypeClause {
27875    #[inline]
27876    fn can_cast(kind: SyntaxKind) -> bool {
27877        kind == SyntaxKind::PERCENT_TYPE_CLAUSE
27878    }
27879    #[inline]
27880    fn cast(syntax: SyntaxNode) -> Option<Self> {
27881        if Self::can_cast(syntax.kind()) {
27882            Some(Self { syntax })
27883        } else {
27884            None
27885        }
27886    }
27887    #[inline]
27888    fn syntax(&self) -> &SyntaxNode {
27889        &self.syntax
27890    }
27891}
27892impl AstNode for PositionFn {
27893    #[inline]
27894    fn can_cast(kind: SyntaxKind) -> bool {
27895        kind == SyntaxKind::POSITION_FN
27896    }
27897    #[inline]
27898    fn cast(syntax: SyntaxNode) -> Option<Self> {
27899        if Self::can_cast(syntax.kind()) {
27900            Some(Self { syntax })
27901        } else {
27902            None
27903        }
27904    }
27905    #[inline]
27906    fn syntax(&self) -> &SyntaxNode {
27907        &self.syntax
27908    }
27909}
27910impl AstNode for PostfixExpr {
27911    #[inline]
27912    fn can_cast(kind: SyntaxKind) -> bool {
27913        kind == SyntaxKind::POSTFIX_EXPR
27914    }
27915    #[inline]
27916    fn cast(syntax: SyntaxNode) -> Option<Self> {
27917        if Self::can_cast(syntax.kind()) {
27918            Some(Self { syntax })
27919        } else {
27920            None
27921        }
27922    }
27923    #[inline]
27924    fn syntax(&self) -> &SyntaxNode {
27925        &self.syntax
27926    }
27927}
27928impl AstNode for PrefixExpr {
27929    #[inline]
27930    fn can_cast(kind: SyntaxKind) -> bool {
27931        kind == SyntaxKind::PREFIX_EXPR
27932    }
27933    #[inline]
27934    fn cast(syntax: SyntaxNode) -> Option<Self> {
27935        if Self::can_cast(syntax.kind()) {
27936            Some(Self { syntax })
27937        } else {
27938            None
27939        }
27940    }
27941    #[inline]
27942    fn syntax(&self) -> &SyntaxNode {
27943        &self.syntax
27944    }
27945}
27946impl AstNode for Prepare {
27947    #[inline]
27948    fn can_cast(kind: SyntaxKind) -> bool {
27949        kind == SyntaxKind::PREPARE
27950    }
27951    #[inline]
27952    fn cast(syntax: SyntaxNode) -> Option<Self> {
27953        if Self::can_cast(syntax.kind()) {
27954            Some(Self { syntax })
27955        } else {
27956            None
27957        }
27958    }
27959    #[inline]
27960    fn syntax(&self) -> &SyntaxNode {
27961        &self.syntax
27962    }
27963}
27964impl AstNode for PrepareTransaction {
27965    #[inline]
27966    fn can_cast(kind: SyntaxKind) -> bool {
27967        kind == SyntaxKind::PREPARE_TRANSACTION
27968    }
27969    #[inline]
27970    fn cast(syntax: SyntaxNode) -> Option<Self> {
27971        if Self::can_cast(syntax.kind()) {
27972            Some(Self { syntax })
27973        } else {
27974            None
27975        }
27976    }
27977    #[inline]
27978    fn syntax(&self) -> &SyntaxNode {
27979        &self.syntax
27980    }
27981}
27982impl AstNode for PreserveRows {
27983    #[inline]
27984    fn can_cast(kind: SyntaxKind) -> bool {
27985        kind == SyntaxKind::PRESERVE_ROWS
27986    }
27987    #[inline]
27988    fn cast(syntax: SyntaxNode) -> Option<Self> {
27989        if Self::can_cast(syntax.kind()) {
27990            Some(Self { syntax })
27991        } else {
27992            None
27993        }
27994    }
27995    #[inline]
27996    fn syntax(&self) -> &SyntaxNode {
27997        &self.syntax
27998    }
27999}
28000impl AstNode for PrimaryKeyConstraint {
28001    #[inline]
28002    fn can_cast(kind: SyntaxKind) -> bool {
28003        kind == SyntaxKind::PRIMARY_KEY_CONSTRAINT
28004    }
28005    #[inline]
28006    fn cast(syntax: SyntaxNode) -> Option<Self> {
28007        if Self::can_cast(syntax.kind()) {
28008            Some(Self { syntax })
28009        } else {
28010            None
28011        }
28012    }
28013    #[inline]
28014    fn syntax(&self) -> &SyntaxNode {
28015        &self.syntax
28016    }
28017}
28018impl AstNode for PrivilegeTarget {
28019    #[inline]
28020    fn can_cast(kind: SyntaxKind) -> bool {
28021        kind == SyntaxKind::PRIVILEGE_TARGET
28022    }
28023    #[inline]
28024    fn cast(syntax: SyntaxNode) -> Option<Self> {
28025        if Self::can_cast(syntax.kind()) {
28026            Some(Self { syntax })
28027        } else {
28028            None
28029        }
28030    }
28031    #[inline]
28032    fn syntax(&self) -> &SyntaxNode {
28033        &self.syntax
28034    }
28035}
28036impl AstNode for Privileges {
28037    #[inline]
28038    fn can_cast(kind: SyntaxKind) -> bool {
28039        kind == SyntaxKind::PRIVILEGES
28040    }
28041    #[inline]
28042    fn cast(syntax: SyntaxNode) -> Option<Self> {
28043        if Self::can_cast(syntax.kind()) {
28044            Some(Self { syntax })
28045        } else {
28046            None
28047        }
28048    }
28049    #[inline]
28050    fn syntax(&self) -> &SyntaxNode {
28051        &self.syntax
28052    }
28053}
28054impl AstNode for Properties {
28055    #[inline]
28056    fn can_cast(kind: SyntaxKind) -> bool {
28057        kind == SyntaxKind::PROPERTIES
28058    }
28059    #[inline]
28060    fn cast(syntax: SyntaxNode) -> Option<Self> {
28061        if Self::can_cast(syntax.kind()) {
28062            Some(Self { syntax })
28063        } else {
28064            None
28065        }
28066    }
28067    #[inline]
28068    fn syntax(&self) -> &SyntaxNode {
28069        &self.syntax
28070    }
28071}
28072impl AstNode for PublicationObject {
28073    #[inline]
28074    fn can_cast(kind: SyntaxKind) -> bool {
28075        kind == SyntaxKind::PUBLICATION_OBJECT
28076    }
28077    #[inline]
28078    fn cast(syntax: SyntaxNode) -> Option<Self> {
28079        if Self::can_cast(syntax.kind()) {
28080            Some(Self { syntax })
28081        } else {
28082            None
28083        }
28084    }
28085    #[inline]
28086    fn syntax(&self) -> &SyntaxNode {
28087        &self.syntax
28088    }
28089}
28090impl AstNode for ReadCommitted {
28091    #[inline]
28092    fn can_cast(kind: SyntaxKind) -> bool {
28093        kind == SyntaxKind::READ_COMMITTED
28094    }
28095    #[inline]
28096    fn cast(syntax: SyntaxNode) -> Option<Self> {
28097        if Self::can_cast(syntax.kind()) {
28098            Some(Self { syntax })
28099        } else {
28100            None
28101        }
28102    }
28103    #[inline]
28104    fn syntax(&self) -> &SyntaxNode {
28105        &self.syntax
28106    }
28107}
28108impl AstNode for ReadOnly {
28109    #[inline]
28110    fn can_cast(kind: SyntaxKind) -> bool {
28111        kind == SyntaxKind::READ_ONLY
28112    }
28113    #[inline]
28114    fn cast(syntax: SyntaxNode) -> Option<Self> {
28115        if Self::can_cast(syntax.kind()) {
28116            Some(Self { syntax })
28117        } else {
28118            None
28119        }
28120    }
28121    #[inline]
28122    fn syntax(&self) -> &SyntaxNode {
28123        &self.syntax
28124    }
28125}
28126impl AstNode for ReadUncommitted {
28127    #[inline]
28128    fn can_cast(kind: SyntaxKind) -> bool {
28129        kind == SyntaxKind::READ_UNCOMMITTED
28130    }
28131    #[inline]
28132    fn cast(syntax: SyntaxNode) -> Option<Self> {
28133        if Self::can_cast(syntax.kind()) {
28134            Some(Self { syntax })
28135        } else {
28136            None
28137        }
28138    }
28139    #[inline]
28140    fn syntax(&self) -> &SyntaxNode {
28141        &self.syntax
28142    }
28143}
28144impl AstNode for ReadWrite {
28145    #[inline]
28146    fn can_cast(kind: SyntaxKind) -> bool {
28147        kind == SyntaxKind::READ_WRITE
28148    }
28149    #[inline]
28150    fn cast(syntax: SyntaxNode) -> Option<Self> {
28151        if Self::can_cast(syntax.kind()) {
28152            Some(Self { syntax })
28153        } else {
28154            None
28155        }
28156    }
28157    #[inline]
28158    fn syntax(&self) -> &SyntaxNode {
28159        &self.syntax
28160    }
28161}
28162impl AstNode for Reassign {
28163    #[inline]
28164    fn can_cast(kind: SyntaxKind) -> bool {
28165        kind == SyntaxKind::REASSIGN
28166    }
28167    #[inline]
28168    fn cast(syntax: SyntaxNode) -> Option<Self> {
28169        if Self::can_cast(syntax.kind()) {
28170            Some(Self { syntax })
28171        } else {
28172            None
28173        }
28174    }
28175    #[inline]
28176    fn syntax(&self) -> &SyntaxNode {
28177        &self.syntax
28178    }
28179}
28180impl AstNode for ReferencesConstraint {
28181    #[inline]
28182    fn can_cast(kind: SyntaxKind) -> bool {
28183        kind == SyntaxKind::REFERENCES_CONSTRAINT
28184    }
28185    #[inline]
28186    fn cast(syntax: SyntaxNode) -> Option<Self> {
28187        if Self::can_cast(syntax.kind()) {
28188            Some(Self { syntax })
28189        } else {
28190            None
28191        }
28192    }
28193    #[inline]
28194    fn syntax(&self) -> &SyntaxNode {
28195        &self.syntax
28196    }
28197}
28198impl AstNode for ReferencesTable {
28199    #[inline]
28200    fn can_cast(kind: SyntaxKind) -> bool {
28201        kind == SyntaxKind::REFERENCES_TABLE
28202    }
28203    #[inline]
28204    fn cast(syntax: SyntaxNode) -> Option<Self> {
28205        if Self::can_cast(syntax.kind()) {
28206            Some(Self { syntax })
28207        } else {
28208            None
28209        }
28210    }
28211    #[inline]
28212    fn syntax(&self) -> &SyntaxNode {
28213        &self.syntax
28214    }
28215}
28216impl AstNode for Referencing {
28217    #[inline]
28218    fn can_cast(kind: SyntaxKind) -> bool {
28219        kind == SyntaxKind::REFERENCING
28220    }
28221    #[inline]
28222    fn cast(syntax: SyntaxNode) -> Option<Self> {
28223        if Self::can_cast(syntax.kind()) {
28224            Some(Self { syntax })
28225        } else {
28226            None
28227        }
28228    }
28229    #[inline]
28230    fn syntax(&self) -> &SyntaxNode {
28231        &self.syntax
28232    }
28233}
28234impl AstNode for ReferencingTable {
28235    #[inline]
28236    fn can_cast(kind: SyntaxKind) -> bool {
28237        kind == SyntaxKind::REFERENCING_TABLE
28238    }
28239    #[inline]
28240    fn cast(syntax: SyntaxNode) -> Option<Self> {
28241        if Self::can_cast(syntax.kind()) {
28242            Some(Self { syntax })
28243        } else {
28244            None
28245        }
28246    }
28247    #[inline]
28248    fn syntax(&self) -> &SyntaxNode {
28249        &self.syntax
28250    }
28251}
28252impl AstNode for Refresh {
28253    #[inline]
28254    fn can_cast(kind: SyntaxKind) -> bool {
28255        kind == SyntaxKind::REFRESH
28256    }
28257    #[inline]
28258    fn cast(syntax: SyntaxNode) -> Option<Self> {
28259        if Self::can_cast(syntax.kind()) {
28260            Some(Self { syntax })
28261        } else {
28262            None
28263        }
28264    }
28265    #[inline]
28266    fn syntax(&self) -> &SyntaxNode {
28267        &self.syntax
28268    }
28269}
28270impl AstNode for RefreshCollationVersion {
28271    #[inline]
28272    fn can_cast(kind: SyntaxKind) -> bool {
28273        kind == SyntaxKind::REFRESH_COLLATION_VERSION
28274    }
28275    #[inline]
28276    fn cast(syntax: SyntaxNode) -> Option<Self> {
28277        if Self::can_cast(syntax.kind()) {
28278            Some(Self { syntax })
28279        } else {
28280            None
28281        }
28282    }
28283    #[inline]
28284    fn syntax(&self) -> &SyntaxNode {
28285        &self.syntax
28286    }
28287}
28288impl AstNode for RefreshVersion {
28289    #[inline]
28290    fn can_cast(kind: SyntaxKind) -> bool {
28291        kind == SyntaxKind::REFRESH_VERSION
28292    }
28293    #[inline]
28294    fn cast(syntax: SyntaxNode) -> Option<Self> {
28295        if Self::can_cast(syntax.kind()) {
28296            Some(Self { syntax })
28297        } else {
28298            None
28299        }
28300    }
28301    #[inline]
28302    fn syntax(&self) -> &SyntaxNode {
28303        &self.syntax
28304    }
28305}
28306impl AstNode for Reindex {
28307    #[inline]
28308    fn can_cast(kind: SyntaxKind) -> bool {
28309        kind == SyntaxKind::REINDEX
28310    }
28311    #[inline]
28312    fn cast(syntax: SyntaxNode) -> Option<Self> {
28313        if Self::can_cast(syntax.kind()) {
28314            Some(Self { syntax })
28315        } else {
28316            None
28317        }
28318    }
28319    #[inline]
28320    fn syntax(&self) -> &SyntaxNode {
28321        &self.syntax
28322    }
28323}
28324impl AstNode for RelationName {
28325    #[inline]
28326    fn can_cast(kind: SyntaxKind) -> bool {
28327        kind == SyntaxKind::RELATION_NAME
28328    }
28329    #[inline]
28330    fn cast(syntax: SyntaxNode) -> Option<Self> {
28331        if Self::can_cast(syntax.kind()) {
28332            Some(Self { syntax })
28333        } else {
28334            None
28335        }
28336    }
28337    #[inline]
28338    fn syntax(&self) -> &SyntaxNode {
28339        &self.syntax
28340    }
28341}
28342impl AstNode for ReleaseSavepoint {
28343    #[inline]
28344    fn can_cast(kind: SyntaxKind) -> bool {
28345        kind == SyntaxKind::RELEASE_SAVEPOINT
28346    }
28347    #[inline]
28348    fn cast(syntax: SyntaxNode) -> Option<Self> {
28349        if Self::can_cast(syntax.kind()) {
28350            Some(Self { syntax })
28351        } else {
28352            None
28353        }
28354    }
28355    #[inline]
28356    fn syntax(&self) -> &SyntaxNode {
28357        &self.syntax
28358    }
28359}
28360impl AstNode for RenameAttribute {
28361    #[inline]
28362    fn can_cast(kind: SyntaxKind) -> bool {
28363        kind == SyntaxKind::RENAME_ATTRIBUTE
28364    }
28365    #[inline]
28366    fn cast(syntax: SyntaxNode) -> Option<Self> {
28367        if Self::can_cast(syntax.kind()) {
28368            Some(Self { syntax })
28369        } else {
28370            None
28371        }
28372    }
28373    #[inline]
28374    fn syntax(&self) -> &SyntaxNode {
28375        &self.syntax
28376    }
28377}
28378impl AstNode for RenameColumn {
28379    #[inline]
28380    fn can_cast(kind: SyntaxKind) -> bool {
28381        kind == SyntaxKind::RENAME_COLUMN
28382    }
28383    #[inline]
28384    fn cast(syntax: SyntaxNode) -> Option<Self> {
28385        if Self::can_cast(syntax.kind()) {
28386            Some(Self { syntax })
28387        } else {
28388            None
28389        }
28390    }
28391    #[inline]
28392    fn syntax(&self) -> &SyntaxNode {
28393        &self.syntax
28394    }
28395}
28396impl AstNode for RenameConstraint {
28397    #[inline]
28398    fn can_cast(kind: SyntaxKind) -> bool {
28399        kind == SyntaxKind::RENAME_CONSTRAINT
28400    }
28401    #[inline]
28402    fn cast(syntax: SyntaxNode) -> Option<Self> {
28403        if Self::can_cast(syntax.kind()) {
28404            Some(Self { syntax })
28405        } else {
28406            None
28407        }
28408    }
28409    #[inline]
28410    fn syntax(&self) -> &SyntaxNode {
28411        &self.syntax
28412    }
28413}
28414impl AstNode for RenameTo {
28415    #[inline]
28416    fn can_cast(kind: SyntaxKind) -> bool {
28417        kind == SyntaxKind::RENAME_TO
28418    }
28419    #[inline]
28420    fn cast(syntax: SyntaxNode) -> Option<Self> {
28421        if Self::can_cast(syntax.kind()) {
28422            Some(Self { syntax })
28423        } else {
28424            None
28425        }
28426    }
28427    #[inline]
28428    fn syntax(&self) -> &SyntaxNode {
28429        &self.syntax
28430    }
28431}
28432impl AstNode for RenameValue {
28433    #[inline]
28434    fn can_cast(kind: SyntaxKind) -> bool {
28435        kind == SyntaxKind::RENAME_VALUE
28436    }
28437    #[inline]
28438    fn cast(syntax: SyntaxNode) -> Option<Self> {
28439        if Self::can_cast(syntax.kind()) {
28440            Some(Self { syntax })
28441        } else {
28442            None
28443        }
28444    }
28445    #[inline]
28446    fn syntax(&self) -> &SyntaxNode {
28447        &self.syntax
28448    }
28449}
28450impl AstNode for Repack {
28451    #[inline]
28452    fn can_cast(kind: SyntaxKind) -> bool {
28453        kind == SyntaxKind::REPACK
28454    }
28455    #[inline]
28456    fn cast(syntax: SyntaxNode) -> Option<Self> {
28457        if Self::can_cast(syntax.kind()) {
28458            Some(Self { syntax })
28459        } else {
28460            None
28461        }
28462    }
28463    #[inline]
28464    fn syntax(&self) -> &SyntaxNode {
28465        &self.syntax
28466    }
28467}
28468impl AstNode for RepeatableClause {
28469    #[inline]
28470    fn can_cast(kind: SyntaxKind) -> bool {
28471        kind == SyntaxKind::REPEATABLE_CLAUSE
28472    }
28473    #[inline]
28474    fn cast(syntax: SyntaxNode) -> Option<Self> {
28475        if Self::can_cast(syntax.kind()) {
28476            Some(Self { syntax })
28477        } else {
28478            None
28479        }
28480    }
28481    #[inline]
28482    fn syntax(&self) -> &SyntaxNode {
28483        &self.syntax
28484    }
28485}
28486impl AstNode for RepeatableRead {
28487    #[inline]
28488    fn can_cast(kind: SyntaxKind) -> bool {
28489        kind == SyntaxKind::REPEATABLE_READ
28490    }
28491    #[inline]
28492    fn cast(syntax: SyntaxNode) -> Option<Self> {
28493        if Self::can_cast(syntax.kind()) {
28494            Some(Self { syntax })
28495        } else {
28496            None
28497        }
28498    }
28499    #[inline]
28500    fn syntax(&self) -> &SyntaxNode {
28501        &self.syntax
28502    }
28503}
28504impl AstNode for ReplicaIdentity {
28505    #[inline]
28506    fn can_cast(kind: SyntaxKind) -> bool {
28507        kind == SyntaxKind::REPLICA_IDENTITY
28508    }
28509    #[inline]
28510    fn cast(syntax: SyntaxNode) -> Option<Self> {
28511        if Self::can_cast(syntax.kind()) {
28512            Some(Self { syntax })
28513        } else {
28514            None
28515        }
28516    }
28517    #[inline]
28518    fn syntax(&self) -> &SyntaxNode {
28519        &self.syntax
28520    }
28521}
28522impl AstNode for Reset {
28523    #[inline]
28524    fn can_cast(kind: SyntaxKind) -> bool {
28525        kind == SyntaxKind::RESET
28526    }
28527    #[inline]
28528    fn cast(syntax: SyntaxNode) -> Option<Self> {
28529        if Self::can_cast(syntax.kind()) {
28530            Some(Self { syntax })
28531        } else {
28532            None
28533        }
28534    }
28535    #[inline]
28536    fn syntax(&self) -> &SyntaxNode {
28537        &self.syntax
28538    }
28539}
28540impl AstNode for ResetConfigParam {
28541    #[inline]
28542    fn can_cast(kind: SyntaxKind) -> bool {
28543        kind == SyntaxKind::RESET_CONFIG_PARAM
28544    }
28545    #[inline]
28546    fn cast(syntax: SyntaxNode) -> Option<Self> {
28547        if Self::can_cast(syntax.kind()) {
28548            Some(Self { syntax })
28549        } else {
28550            None
28551        }
28552    }
28553    #[inline]
28554    fn syntax(&self) -> &SyntaxNode {
28555        &self.syntax
28556    }
28557}
28558impl AstNode for ResetFuncOption {
28559    #[inline]
28560    fn can_cast(kind: SyntaxKind) -> bool {
28561        kind == SyntaxKind::RESET_FUNC_OPTION
28562    }
28563    #[inline]
28564    fn cast(syntax: SyntaxNode) -> Option<Self> {
28565        if Self::can_cast(syntax.kind()) {
28566            Some(Self { syntax })
28567        } else {
28568            None
28569        }
28570    }
28571    #[inline]
28572    fn syntax(&self) -> &SyntaxNode {
28573        &self.syntax
28574    }
28575}
28576impl AstNode for ResetOptions {
28577    #[inline]
28578    fn can_cast(kind: SyntaxKind) -> bool {
28579        kind == SyntaxKind::RESET_OPTIONS
28580    }
28581    #[inline]
28582    fn cast(syntax: SyntaxNode) -> Option<Self> {
28583        if Self::can_cast(syntax.kind()) {
28584            Some(Self { syntax })
28585        } else {
28586            None
28587        }
28588    }
28589    #[inline]
28590    fn syntax(&self) -> &SyntaxNode {
28591        &self.syntax
28592    }
28593}
28594impl AstNode for ResetSessionAuth {
28595    #[inline]
28596    fn can_cast(kind: SyntaxKind) -> bool {
28597        kind == SyntaxKind::RESET_SESSION_AUTH
28598    }
28599    #[inline]
28600    fn cast(syntax: SyntaxNode) -> Option<Self> {
28601        if Self::can_cast(syntax.kind()) {
28602            Some(Self { syntax })
28603        } else {
28604            None
28605        }
28606    }
28607    #[inline]
28608    fn syntax(&self) -> &SyntaxNode {
28609        &self.syntax
28610    }
28611}
28612impl AstNode for Restart {
28613    #[inline]
28614    fn can_cast(kind: SyntaxKind) -> bool {
28615        kind == SyntaxKind::RESTART
28616    }
28617    #[inline]
28618    fn cast(syntax: SyntaxNode) -> Option<Self> {
28619        if Self::can_cast(syntax.kind()) {
28620            Some(Self { syntax })
28621        } else {
28622            None
28623        }
28624    }
28625    #[inline]
28626    fn syntax(&self) -> &SyntaxNode {
28627        &self.syntax
28628    }
28629}
28630impl AstNode for Restrict {
28631    #[inline]
28632    fn can_cast(kind: SyntaxKind) -> bool {
28633        kind == SyntaxKind::RESTRICT
28634    }
28635    #[inline]
28636    fn cast(syntax: SyntaxNode) -> Option<Self> {
28637        if Self::can_cast(syntax.kind()) {
28638            Some(Self { syntax })
28639        } else {
28640            None
28641        }
28642    }
28643    #[inline]
28644    fn syntax(&self) -> &SyntaxNode {
28645        &self.syntax
28646    }
28647}
28648impl AstNode for RetType {
28649    #[inline]
28650    fn can_cast(kind: SyntaxKind) -> bool {
28651        kind == SyntaxKind::RET_TYPE
28652    }
28653    #[inline]
28654    fn cast(syntax: SyntaxNode) -> Option<Self> {
28655        if Self::can_cast(syntax.kind()) {
28656            Some(Self { syntax })
28657        } else {
28658            None
28659        }
28660    }
28661    #[inline]
28662    fn syntax(&self) -> &SyntaxNode {
28663        &self.syntax
28664    }
28665}
28666impl AstNode for ReturnFuncOption {
28667    #[inline]
28668    fn can_cast(kind: SyntaxKind) -> bool {
28669        kind == SyntaxKind::RETURN_FUNC_OPTION
28670    }
28671    #[inline]
28672    fn cast(syntax: SyntaxNode) -> Option<Self> {
28673        if Self::can_cast(syntax.kind()) {
28674            Some(Self { syntax })
28675        } else {
28676            None
28677        }
28678    }
28679    #[inline]
28680    fn syntax(&self) -> &SyntaxNode {
28681        &self.syntax
28682    }
28683}
28684impl AstNode for ReturningClause {
28685    #[inline]
28686    fn can_cast(kind: SyntaxKind) -> bool {
28687        kind == SyntaxKind::RETURNING_CLAUSE
28688    }
28689    #[inline]
28690    fn cast(syntax: SyntaxNode) -> Option<Self> {
28691        if Self::can_cast(syntax.kind()) {
28692            Some(Self { syntax })
28693        } else {
28694            None
28695        }
28696    }
28697    #[inline]
28698    fn syntax(&self) -> &SyntaxNode {
28699        &self.syntax
28700    }
28701}
28702impl AstNode for ReturningOption {
28703    #[inline]
28704    fn can_cast(kind: SyntaxKind) -> bool {
28705        kind == SyntaxKind::RETURNING_OPTION
28706    }
28707    #[inline]
28708    fn cast(syntax: SyntaxNode) -> Option<Self> {
28709        if Self::can_cast(syntax.kind()) {
28710            Some(Self { syntax })
28711        } else {
28712            None
28713        }
28714    }
28715    #[inline]
28716    fn syntax(&self) -> &SyntaxNode {
28717        &self.syntax
28718    }
28719}
28720impl AstNode for ReturningOptionList {
28721    #[inline]
28722    fn can_cast(kind: SyntaxKind) -> bool {
28723        kind == SyntaxKind::RETURNING_OPTION_LIST
28724    }
28725    #[inline]
28726    fn cast(syntax: SyntaxNode) -> Option<Self> {
28727        if Self::can_cast(syntax.kind()) {
28728            Some(Self { syntax })
28729        } else {
28730            None
28731        }
28732    }
28733    #[inline]
28734    fn syntax(&self) -> &SyntaxNode {
28735        &self.syntax
28736    }
28737}
28738impl AstNode for Revoke {
28739    #[inline]
28740    fn can_cast(kind: SyntaxKind) -> bool {
28741        kind == SyntaxKind::REVOKE
28742    }
28743    #[inline]
28744    fn cast(syntax: SyntaxNode) -> Option<Self> {
28745        if Self::can_cast(syntax.kind()) {
28746            Some(Self { syntax })
28747        } else {
28748            None
28749        }
28750    }
28751    #[inline]
28752    fn syntax(&self) -> &SyntaxNode {
28753        &self.syntax
28754    }
28755}
28756impl AstNode for RevokeCommand {
28757    #[inline]
28758    fn can_cast(kind: SyntaxKind) -> bool {
28759        kind == SyntaxKind::REVOKE_COMMAND
28760    }
28761    #[inline]
28762    fn cast(syntax: SyntaxNode) -> Option<Self> {
28763        if Self::can_cast(syntax.kind()) {
28764            Some(Self { syntax })
28765        } else {
28766            None
28767        }
28768    }
28769    #[inline]
28770    fn syntax(&self) -> &SyntaxNode {
28771        &self.syntax
28772    }
28773}
28774impl AstNode for RevokeCommandList {
28775    #[inline]
28776    fn can_cast(kind: SyntaxKind) -> bool {
28777        kind == SyntaxKind::REVOKE_COMMAND_LIST
28778    }
28779    #[inline]
28780    fn cast(syntax: SyntaxNode) -> Option<Self> {
28781        if Self::can_cast(syntax.kind()) {
28782            Some(Self { syntax })
28783        } else {
28784            None
28785        }
28786    }
28787    #[inline]
28788    fn syntax(&self) -> &SyntaxNode {
28789        &self.syntax
28790    }
28791}
28792impl AstNode for RevokeDefaultPrivileges {
28793    #[inline]
28794    fn can_cast(kind: SyntaxKind) -> bool {
28795        kind == SyntaxKind::REVOKE_DEFAULT_PRIVILEGES
28796    }
28797    #[inline]
28798    fn cast(syntax: SyntaxNode) -> Option<Self> {
28799        if Self::can_cast(syntax.kind()) {
28800            Some(Self { syntax })
28801        } else {
28802            None
28803        }
28804    }
28805    #[inline]
28806    fn syntax(&self) -> &SyntaxNode {
28807        &self.syntax
28808    }
28809}
28810impl AstNode for Role {
28811    #[inline]
28812    fn can_cast(kind: SyntaxKind) -> bool {
28813        kind == SyntaxKind::ROLE
28814    }
28815    #[inline]
28816    fn cast(syntax: SyntaxNode) -> Option<Self> {
28817        if Self::can_cast(syntax.kind()) {
28818            Some(Self { syntax })
28819        } else {
28820            None
28821        }
28822    }
28823    #[inline]
28824    fn syntax(&self) -> &SyntaxNode {
28825        &self.syntax
28826    }
28827}
28828impl AstNode for RoleOption {
28829    #[inline]
28830    fn can_cast(kind: SyntaxKind) -> bool {
28831        kind == SyntaxKind::ROLE_OPTION
28832    }
28833    #[inline]
28834    fn cast(syntax: SyntaxNode) -> Option<Self> {
28835        if Self::can_cast(syntax.kind()) {
28836            Some(Self { syntax })
28837        } else {
28838            None
28839        }
28840    }
28841    #[inline]
28842    fn syntax(&self) -> &SyntaxNode {
28843        &self.syntax
28844    }
28845}
28846impl AstNode for RoleOptionList {
28847    #[inline]
28848    fn can_cast(kind: SyntaxKind) -> bool {
28849        kind == SyntaxKind::ROLE_OPTION_LIST
28850    }
28851    #[inline]
28852    fn cast(syntax: SyntaxNode) -> Option<Self> {
28853        if Self::can_cast(syntax.kind()) {
28854            Some(Self { syntax })
28855        } else {
28856            None
28857        }
28858    }
28859    #[inline]
28860    fn syntax(&self) -> &SyntaxNode {
28861        &self.syntax
28862    }
28863}
28864impl AstNode for RoleRef {
28865    #[inline]
28866    fn can_cast(kind: SyntaxKind) -> bool {
28867        kind == SyntaxKind::ROLE_REF
28868    }
28869    #[inline]
28870    fn cast(syntax: SyntaxNode) -> Option<Self> {
28871        if Self::can_cast(syntax.kind()) {
28872            Some(Self { syntax })
28873        } else {
28874            None
28875        }
28876    }
28877    #[inline]
28878    fn syntax(&self) -> &SyntaxNode {
28879        &self.syntax
28880    }
28881}
28882impl AstNode for RoleRefList {
28883    #[inline]
28884    fn can_cast(kind: SyntaxKind) -> bool {
28885        kind == SyntaxKind::ROLE_REF_LIST
28886    }
28887    #[inline]
28888    fn cast(syntax: SyntaxNode) -> Option<Self> {
28889        if Self::can_cast(syntax.kind()) {
28890            Some(Self { syntax })
28891        } else {
28892            None
28893        }
28894    }
28895    #[inline]
28896    fn syntax(&self) -> &SyntaxNode {
28897        &self.syntax
28898    }
28899}
28900impl AstNode for Rollback {
28901    #[inline]
28902    fn can_cast(kind: SyntaxKind) -> bool {
28903        kind == SyntaxKind::ROLLBACK
28904    }
28905    #[inline]
28906    fn cast(syntax: SyntaxNode) -> Option<Self> {
28907        if Self::can_cast(syntax.kind()) {
28908            Some(Self { syntax })
28909        } else {
28910            None
28911        }
28912    }
28913    #[inline]
28914    fn syntax(&self) -> &SyntaxNode {
28915        &self.syntax
28916    }
28917}
28918impl AstNode for Row {
28919    #[inline]
28920    fn can_cast(kind: SyntaxKind) -> bool {
28921        kind == SyntaxKind::ROW
28922    }
28923    #[inline]
28924    fn cast(syntax: SyntaxNode) -> Option<Self> {
28925        if Self::can_cast(syntax.kind()) {
28926            Some(Self { syntax })
28927        } else {
28928            None
28929        }
28930    }
28931    #[inline]
28932    fn syntax(&self) -> &SyntaxNode {
28933        &self.syntax
28934    }
28935}
28936impl AstNode for RowList {
28937    #[inline]
28938    fn can_cast(kind: SyntaxKind) -> bool {
28939        kind == SyntaxKind::ROW_LIST
28940    }
28941    #[inline]
28942    fn cast(syntax: SyntaxNode) -> Option<Self> {
28943        if Self::can_cast(syntax.kind()) {
28944            Some(Self { syntax })
28945        } else {
28946            None
28947        }
28948    }
28949    #[inline]
28950    fn syntax(&self) -> &SyntaxNode {
28951        &self.syntax
28952    }
28953}
28954impl AstNode for RowsFuncOption {
28955    #[inline]
28956    fn can_cast(kind: SyntaxKind) -> bool {
28957        kind == SyntaxKind::ROWS_FUNC_OPTION
28958    }
28959    #[inline]
28960    fn cast(syntax: SyntaxNode) -> Option<Self> {
28961        if Self::can_cast(syntax.kind()) {
28962            Some(Self { syntax })
28963        } else {
28964            None
28965        }
28966    }
28967    #[inline]
28968    fn syntax(&self) -> &SyntaxNode {
28969        &self.syntax
28970    }
28971}
28972impl AstNode for Savepoint {
28973    #[inline]
28974    fn can_cast(kind: SyntaxKind) -> bool {
28975        kind == SyntaxKind::SAVEPOINT
28976    }
28977    #[inline]
28978    fn cast(syntax: SyntaxNode) -> Option<Self> {
28979        if Self::can_cast(syntax.kind()) {
28980            Some(Self { syntax })
28981        } else {
28982            None
28983        }
28984    }
28985    #[inline]
28986    fn syntax(&self) -> &SyntaxNode {
28987        &self.syntax
28988    }
28989}
28990impl AstNode for SecurityFuncOption {
28991    #[inline]
28992    fn can_cast(kind: SyntaxKind) -> bool {
28993        kind == SyntaxKind::SECURITY_FUNC_OPTION
28994    }
28995    #[inline]
28996    fn cast(syntax: SyntaxNode) -> Option<Self> {
28997        if Self::can_cast(syntax.kind()) {
28998            Some(Self { syntax })
28999        } else {
29000            None
29001        }
29002    }
29003    #[inline]
29004    fn syntax(&self) -> &SyntaxNode {
29005        &self.syntax
29006    }
29007}
29008impl AstNode for SecurityLabel {
29009    #[inline]
29010    fn can_cast(kind: SyntaxKind) -> bool {
29011        kind == SyntaxKind::SECURITY_LABEL
29012    }
29013    #[inline]
29014    fn cast(syntax: SyntaxNode) -> Option<Self> {
29015        if Self::can_cast(syntax.kind()) {
29016            Some(Self { syntax })
29017        } else {
29018            None
29019        }
29020    }
29021    #[inline]
29022    fn syntax(&self) -> &SyntaxNode {
29023        &self.syntax
29024    }
29025}
29026impl AstNode for Select {
29027    #[inline]
29028    fn can_cast(kind: SyntaxKind) -> bool {
29029        kind == SyntaxKind::SELECT
29030    }
29031    #[inline]
29032    fn cast(syntax: SyntaxNode) -> Option<Self> {
29033        if Self::can_cast(syntax.kind()) {
29034            Some(Self { syntax })
29035        } else {
29036            None
29037        }
29038    }
29039    #[inline]
29040    fn syntax(&self) -> &SyntaxNode {
29041        &self.syntax
29042    }
29043}
29044impl AstNode for SelectClause {
29045    #[inline]
29046    fn can_cast(kind: SyntaxKind) -> bool {
29047        kind == SyntaxKind::SELECT_CLAUSE
29048    }
29049    #[inline]
29050    fn cast(syntax: SyntaxNode) -> Option<Self> {
29051        if Self::can_cast(syntax.kind()) {
29052            Some(Self { syntax })
29053        } else {
29054            None
29055        }
29056    }
29057    #[inline]
29058    fn syntax(&self) -> &SyntaxNode {
29059        &self.syntax
29060    }
29061}
29062impl AstNode for SelectInto {
29063    #[inline]
29064    fn can_cast(kind: SyntaxKind) -> bool {
29065        kind == SyntaxKind::SELECT_INTO
29066    }
29067    #[inline]
29068    fn cast(syntax: SyntaxNode) -> Option<Self> {
29069        if Self::can_cast(syntax.kind()) {
29070            Some(Self { syntax })
29071        } else {
29072            None
29073        }
29074    }
29075    #[inline]
29076    fn syntax(&self) -> &SyntaxNode {
29077        &self.syntax
29078    }
29079}
29080impl AstNode for SequenceOption {
29081    #[inline]
29082    fn can_cast(kind: SyntaxKind) -> bool {
29083        kind == SyntaxKind::SEQUENCE_OPTION
29084    }
29085    #[inline]
29086    fn cast(syntax: SyntaxNode) -> Option<Self> {
29087        if Self::can_cast(syntax.kind()) {
29088            Some(Self { syntax })
29089        } else {
29090            None
29091        }
29092    }
29093    #[inline]
29094    fn syntax(&self) -> &SyntaxNode {
29095        &self.syntax
29096    }
29097}
29098impl AstNode for SequenceOptionList {
29099    #[inline]
29100    fn can_cast(kind: SyntaxKind) -> bool {
29101        kind == SyntaxKind::SEQUENCE_OPTION_LIST
29102    }
29103    #[inline]
29104    fn cast(syntax: SyntaxNode) -> Option<Self> {
29105        if Self::can_cast(syntax.kind()) {
29106            Some(Self { syntax })
29107        } else {
29108            None
29109        }
29110    }
29111    #[inline]
29112    fn syntax(&self) -> &SyntaxNode {
29113        &self.syntax
29114    }
29115}
29116impl AstNode for Serializable {
29117    #[inline]
29118    fn can_cast(kind: SyntaxKind) -> bool {
29119        kind == SyntaxKind::SERIALIZABLE
29120    }
29121    #[inline]
29122    fn cast(syntax: SyntaxNode) -> Option<Self> {
29123        if Self::can_cast(syntax.kind()) {
29124            Some(Self { syntax })
29125        } else {
29126            None
29127        }
29128    }
29129    #[inline]
29130    fn syntax(&self) -> &SyntaxNode {
29131        &self.syntax
29132    }
29133}
29134impl AstNode for ServerName {
29135    #[inline]
29136    fn can_cast(kind: SyntaxKind) -> bool {
29137        kind == SyntaxKind::SERVER_NAME
29138    }
29139    #[inline]
29140    fn cast(syntax: SyntaxNode) -> Option<Self> {
29141        if Self::can_cast(syntax.kind()) {
29142            Some(Self { syntax })
29143        } else {
29144            None
29145        }
29146    }
29147    #[inline]
29148    fn syntax(&self) -> &SyntaxNode {
29149        &self.syntax
29150    }
29151}
29152impl AstNode for Set {
29153    #[inline]
29154    fn can_cast(kind: SyntaxKind) -> bool {
29155        kind == SyntaxKind::SET
29156    }
29157    #[inline]
29158    fn cast(syntax: SyntaxNode) -> Option<Self> {
29159        if Self::can_cast(syntax.kind()) {
29160            Some(Self { syntax })
29161        } else {
29162            None
29163        }
29164    }
29165    #[inline]
29166    fn syntax(&self) -> &SyntaxNode {
29167        &self.syntax
29168    }
29169}
29170impl AstNode for SetAccessMethod {
29171    #[inline]
29172    fn can_cast(kind: SyntaxKind) -> bool {
29173        kind == SyntaxKind::SET_ACCESS_METHOD
29174    }
29175    #[inline]
29176    fn cast(syntax: SyntaxNode) -> Option<Self> {
29177        if Self::can_cast(syntax.kind()) {
29178            Some(Self { syntax })
29179        } else {
29180            None
29181        }
29182    }
29183    #[inline]
29184    fn syntax(&self) -> &SyntaxNode {
29185        &self.syntax
29186    }
29187}
29188impl AstNode for SetClause {
29189    #[inline]
29190    fn can_cast(kind: SyntaxKind) -> bool {
29191        kind == SyntaxKind::SET_CLAUSE
29192    }
29193    #[inline]
29194    fn cast(syntax: SyntaxNode) -> Option<Self> {
29195        if Self::can_cast(syntax.kind()) {
29196            Some(Self { syntax })
29197        } else {
29198            None
29199        }
29200    }
29201    #[inline]
29202    fn syntax(&self) -> &SyntaxNode {
29203        &self.syntax
29204    }
29205}
29206impl AstNode for SetColumnList {
29207    #[inline]
29208    fn can_cast(kind: SyntaxKind) -> bool {
29209        kind == SyntaxKind::SET_COLUMN_LIST
29210    }
29211    #[inline]
29212    fn cast(syntax: SyntaxNode) -> Option<Self> {
29213        if Self::can_cast(syntax.kind()) {
29214            Some(Self { syntax })
29215        } else {
29216            None
29217        }
29218    }
29219    #[inline]
29220    fn syntax(&self) -> &SyntaxNode {
29221        &self.syntax
29222    }
29223}
29224impl AstNode for SetCompression {
29225    #[inline]
29226    fn can_cast(kind: SyntaxKind) -> bool {
29227        kind == SyntaxKind::SET_COMPRESSION
29228    }
29229    #[inline]
29230    fn cast(syntax: SyntaxNode) -> Option<Self> {
29231        if Self::can_cast(syntax.kind()) {
29232            Some(Self { syntax })
29233        } else {
29234            None
29235        }
29236    }
29237    #[inline]
29238    fn syntax(&self) -> &SyntaxNode {
29239        &self.syntax
29240    }
29241}
29242impl AstNode for SetConfigParam {
29243    #[inline]
29244    fn can_cast(kind: SyntaxKind) -> bool {
29245        kind == SyntaxKind::SET_CONFIG_PARAM
29246    }
29247    #[inline]
29248    fn cast(syntax: SyntaxNode) -> Option<Self> {
29249        if Self::can_cast(syntax.kind()) {
29250            Some(Self { syntax })
29251        } else {
29252            None
29253        }
29254    }
29255    #[inline]
29256    fn syntax(&self) -> &SyntaxNode {
29257        &self.syntax
29258    }
29259}
29260impl AstNode for SetConstraints {
29261    #[inline]
29262    fn can_cast(kind: SyntaxKind) -> bool {
29263        kind == SyntaxKind::SET_CONSTRAINTS
29264    }
29265    #[inline]
29266    fn cast(syntax: SyntaxNode) -> Option<Self> {
29267        if Self::can_cast(syntax.kind()) {
29268            Some(Self { syntax })
29269        } else {
29270            None
29271        }
29272    }
29273    #[inline]
29274    fn syntax(&self) -> &SyntaxNode {
29275        &self.syntax
29276    }
29277}
29278impl AstNode for SetDefault {
29279    #[inline]
29280    fn can_cast(kind: SyntaxKind) -> bool {
29281        kind == SyntaxKind::SET_DEFAULT
29282    }
29283    #[inline]
29284    fn cast(syntax: SyntaxNode) -> Option<Self> {
29285        if Self::can_cast(syntax.kind()) {
29286            Some(Self { syntax })
29287        } else {
29288            None
29289        }
29290    }
29291    #[inline]
29292    fn syntax(&self) -> &SyntaxNode {
29293        &self.syntax
29294    }
29295}
29296impl AstNode for SetDefaultColumns {
29297    #[inline]
29298    fn can_cast(kind: SyntaxKind) -> bool {
29299        kind == SyntaxKind::SET_DEFAULT_COLUMNS
29300    }
29301    #[inline]
29302    fn cast(syntax: SyntaxNode) -> Option<Self> {
29303        if Self::can_cast(syntax.kind()) {
29304            Some(Self { syntax })
29305        } else {
29306            None
29307        }
29308    }
29309    #[inline]
29310    fn syntax(&self) -> &SyntaxNode {
29311        &self.syntax
29312    }
29313}
29314impl AstNode for SetExpr {
29315    #[inline]
29316    fn can_cast(kind: SyntaxKind) -> bool {
29317        kind == SyntaxKind::SET_EXPR
29318    }
29319    #[inline]
29320    fn cast(syntax: SyntaxNode) -> Option<Self> {
29321        if Self::can_cast(syntax.kind()) {
29322            Some(Self { syntax })
29323        } else {
29324            None
29325        }
29326    }
29327    #[inline]
29328    fn syntax(&self) -> &SyntaxNode {
29329        &self.syntax
29330    }
29331}
29332impl AstNode for SetExprList {
29333    #[inline]
29334    fn can_cast(kind: SyntaxKind) -> bool {
29335        kind == SyntaxKind::SET_EXPR_LIST
29336    }
29337    #[inline]
29338    fn cast(syntax: SyntaxNode) -> Option<Self> {
29339        if Self::can_cast(syntax.kind()) {
29340            Some(Self { syntax })
29341        } else {
29342            None
29343        }
29344    }
29345    #[inline]
29346    fn syntax(&self) -> &SyntaxNode {
29347        &self.syntax
29348    }
29349}
29350impl AstNode for SetExpression {
29351    #[inline]
29352    fn can_cast(kind: SyntaxKind) -> bool {
29353        kind == SyntaxKind::SET_EXPRESSION
29354    }
29355    #[inline]
29356    fn cast(syntax: SyntaxNode) -> Option<Self> {
29357        if Self::can_cast(syntax.kind()) {
29358            Some(Self { syntax })
29359        } else {
29360            None
29361        }
29362    }
29363    #[inline]
29364    fn syntax(&self) -> &SyntaxNode {
29365        &self.syntax
29366    }
29367}
29368impl AstNode for SetFuncOption {
29369    #[inline]
29370    fn can_cast(kind: SyntaxKind) -> bool {
29371        kind == SyntaxKind::SET_FUNC_OPTION
29372    }
29373    #[inline]
29374    fn cast(syntax: SyntaxNode) -> Option<Self> {
29375        if Self::can_cast(syntax.kind()) {
29376            Some(Self { syntax })
29377        } else {
29378            None
29379        }
29380    }
29381    #[inline]
29382    fn syntax(&self) -> &SyntaxNode {
29383        &self.syntax
29384    }
29385}
29386impl AstNode for SetGenerated {
29387    #[inline]
29388    fn can_cast(kind: SyntaxKind) -> bool {
29389        kind == SyntaxKind::SET_GENERATED
29390    }
29391    #[inline]
29392    fn cast(syntax: SyntaxNode) -> Option<Self> {
29393        if Self::can_cast(syntax.kind()) {
29394            Some(Self { syntax })
29395        } else {
29396            None
29397        }
29398    }
29399    #[inline]
29400    fn syntax(&self) -> &SyntaxNode {
29401        &self.syntax
29402    }
29403}
29404impl AstNode for SetGeneratedOptions {
29405    #[inline]
29406    fn can_cast(kind: SyntaxKind) -> bool {
29407        kind == SyntaxKind::SET_GENERATED_OPTIONS
29408    }
29409    #[inline]
29410    fn cast(syntax: SyntaxNode) -> Option<Self> {
29411        if Self::can_cast(syntax.kind()) {
29412            Some(Self { syntax })
29413        } else {
29414            None
29415        }
29416    }
29417    #[inline]
29418    fn syntax(&self) -> &SyntaxNode {
29419        &self.syntax
29420    }
29421}
29422impl AstNode for SetLogged {
29423    #[inline]
29424    fn can_cast(kind: SyntaxKind) -> bool {
29425        kind == SyntaxKind::SET_LOGGED
29426    }
29427    #[inline]
29428    fn cast(syntax: SyntaxNode) -> Option<Self> {
29429        if Self::can_cast(syntax.kind()) {
29430            Some(Self { syntax })
29431        } else {
29432            None
29433        }
29434    }
29435    #[inline]
29436    fn syntax(&self) -> &SyntaxNode {
29437        &self.syntax
29438    }
29439}
29440impl AstNode for SetMultipleColumns {
29441    #[inline]
29442    fn can_cast(kind: SyntaxKind) -> bool {
29443        kind == SyntaxKind::SET_MULTIPLE_COLUMNS
29444    }
29445    #[inline]
29446    fn cast(syntax: SyntaxNode) -> Option<Self> {
29447        if Self::can_cast(syntax.kind()) {
29448            Some(Self { syntax })
29449        } else {
29450            None
29451        }
29452    }
29453    #[inline]
29454    fn syntax(&self) -> &SyntaxNode {
29455        &self.syntax
29456    }
29457}
29458impl AstNode for SetNotNull {
29459    #[inline]
29460    fn can_cast(kind: SyntaxKind) -> bool {
29461        kind == SyntaxKind::SET_NOT_NULL
29462    }
29463    #[inline]
29464    fn cast(syntax: SyntaxNode) -> Option<Self> {
29465        if Self::can_cast(syntax.kind()) {
29466            Some(Self { syntax })
29467        } else {
29468            None
29469        }
29470    }
29471    #[inline]
29472    fn syntax(&self) -> &SyntaxNode {
29473        &self.syntax
29474    }
29475}
29476impl AstNode for SetNullColumns {
29477    #[inline]
29478    fn can_cast(kind: SyntaxKind) -> bool {
29479        kind == SyntaxKind::SET_NULL_COLUMNS
29480    }
29481    #[inline]
29482    fn cast(syntax: SyntaxNode) -> Option<Self> {
29483        if Self::can_cast(syntax.kind()) {
29484            Some(Self { syntax })
29485        } else {
29486            None
29487        }
29488    }
29489    #[inline]
29490    fn syntax(&self) -> &SyntaxNode {
29491        &self.syntax
29492    }
29493}
29494impl AstNode for SetOptions {
29495    #[inline]
29496    fn can_cast(kind: SyntaxKind) -> bool {
29497        kind == SyntaxKind::SET_OPTIONS
29498    }
29499    #[inline]
29500    fn cast(syntax: SyntaxNode) -> Option<Self> {
29501        if Self::can_cast(syntax.kind()) {
29502            Some(Self { syntax })
29503        } else {
29504            None
29505        }
29506    }
29507    #[inline]
29508    fn syntax(&self) -> &SyntaxNode {
29509        &self.syntax
29510    }
29511}
29512impl AstNode for SetOptionsList {
29513    #[inline]
29514    fn can_cast(kind: SyntaxKind) -> bool {
29515        kind == SyntaxKind::SET_OPTIONS_LIST
29516    }
29517    #[inline]
29518    fn cast(syntax: SyntaxNode) -> Option<Self> {
29519        if Self::can_cast(syntax.kind()) {
29520            Some(Self { syntax })
29521        } else {
29522            None
29523        }
29524    }
29525    #[inline]
29526    fn syntax(&self) -> &SyntaxNode {
29527        &self.syntax
29528    }
29529}
29530impl AstNode for SetRole {
29531    #[inline]
29532    fn can_cast(kind: SyntaxKind) -> bool {
29533        kind == SyntaxKind::SET_ROLE
29534    }
29535    #[inline]
29536    fn cast(syntax: SyntaxNode) -> Option<Self> {
29537        if Self::can_cast(syntax.kind()) {
29538            Some(Self { syntax })
29539        } else {
29540            None
29541        }
29542    }
29543    #[inline]
29544    fn syntax(&self) -> &SyntaxNode {
29545        &self.syntax
29546    }
29547}
29548impl AstNode for SetSchema {
29549    #[inline]
29550    fn can_cast(kind: SyntaxKind) -> bool {
29551        kind == SyntaxKind::SET_SCHEMA
29552    }
29553    #[inline]
29554    fn cast(syntax: SyntaxNode) -> Option<Self> {
29555        if Self::can_cast(syntax.kind()) {
29556            Some(Self { syntax })
29557        } else {
29558            None
29559        }
29560    }
29561    #[inline]
29562    fn syntax(&self) -> &SyntaxNode {
29563        &self.syntax
29564    }
29565}
29566impl AstNode for SetSequenceOption {
29567    #[inline]
29568    fn can_cast(kind: SyntaxKind) -> bool {
29569        kind == SyntaxKind::SET_SEQUENCE_OPTION
29570    }
29571    #[inline]
29572    fn cast(syntax: SyntaxNode) -> Option<Self> {
29573        if Self::can_cast(syntax.kind()) {
29574            Some(Self { syntax })
29575        } else {
29576            None
29577        }
29578    }
29579    #[inline]
29580    fn syntax(&self) -> &SyntaxNode {
29581        &self.syntax
29582    }
29583}
29584impl AstNode for SetSessionAuth {
29585    #[inline]
29586    fn can_cast(kind: SyntaxKind) -> bool {
29587        kind == SyntaxKind::SET_SESSION_AUTH
29588    }
29589    #[inline]
29590    fn cast(syntax: SyntaxNode) -> Option<Self> {
29591        if Self::can_cast(syntax.kind()) {
29592            Some(Self { syntax })
29593        } else {
29594            None
29595        }
29596    }
29597    #[inline]
29598    fn syntax(&self) -> &SyntaxNode {
29599        &self.syntax
29600    }
29601}
29602impl AstNode for SetSingleColumn {
29603    #[inline]
29604    fn can_cast(kind: SyntaxKind) -> bool {
29605        kind == SyntaxKind::SET_SINGLE_COLUMN
29606    }
29607    #[inline]
29608    fn cast(syntax: SyntaxNode) -> Option<Self> {
29609        if Self::can_cast(syntax.kind()) {
29610            Some(Self { syntax })
29611        } else {
29612            None
29613        }
29614    }
29615    #[inline]
29616    fn syntax(&self) -> &SyntaxNode {
29617        &self.syntax
29618    }
29619}
29620impl AstNode for SetStatistics {
29621    #[inline]
29622    fn can_cast(kind: SyntaxKind) -> bool {
29623        kind == SyntaxKind::SET_STATISTICS
29624    }
29625    #[inline]
29626    fn cast(syntax: SyntaxNode) -> Option<Self> {
29627        if Self::can_cast(syntax.kind()) {
29628            Some(Self { syntax })
29629        } else {
29630            None
29631        }
29632    }
29633    #[inline]
29634    fn syntax(&self) -> &SyntaxNode {
29635        &self.syntax
29636    }
29637}
29638impl AstNode for SetStorage {
29639    #[inline]
29640    fn can_cast(kind: SyntaxKind) -> bool {
29641        kind == SyntaxKind::SET_STORAGE
29642    }
29643    #[inline]
29644    fn cast(syntax: SyntaxNode) -> Option<Self> {
29645        if Self::can_cast(syntax.kind()) {
29646            Some(Self { syntax })
29647        } else {
29648            None
29649        }
29650    }
29651    #[inline]
29652    fn syntax(&self) -> &SyntaxNode {
29653        &self.syntax
29654    }
29655}
29656impl AstNode for SetTablespace {
29657    #[inline]
29658    fn can_cast(kind: SyntaxKind) -> bool {
29659        kind == SyntaxKind::SET_TABLESPACE
29660    }
29661    #[inline]
29662    fn cast(syntax: SyntaxNode) -> Option<Self> {
29663        if Self::can_cast(syntax.kind()) {
29664            Some(Self { syntax })
29665        } else {
29666            None
29667        }
29668    }
29669    #[inline]
29670    fn syntax(&self) -> &SyntaxNode {
29671        &self.syntax
29672    }
29673}
29674impl AstNode for SetTransaction {
29675    #[inline]
29676    fn can_cast(kind: SyntaxKind) -> bool {
29677        kind == SyntaxKind::SET_TRANSACTION
29678    }
29679    #[inline]
29680    fn cast(syntax: SyntaxNode) -> Option<Self> {
29681        if Self::can_cast(syntax.kind()) {
29682            Some(Self { syntax })
29683        } else {
29684            None
29685        }
29686    }
29687    #[inline]
29688    fn syntax(&self) -> &SyntaxNode {
29689        &self.syntax
29690    }
29691}
29692impl AstNode for SetType {
29693    #[inline]
29694    fn can_cast(kind: SyntaxKind) -> bool {
29695        kind == SyntaxKind::SET_TYPE
29696    }
29697    #[inline]
29698    fn cast(syntax: SyntaxNode) -> Option<Self> {
29699        if Self::can_cast(syntax.kind()) {
29700            Some(Self { syntax })
29701        } else {
29702            None
29703        }
29704    }
29705    #[inline]
29706    fn syntax(&self) -> &SyntaxNode {
29707        &self.syntax
29708    }
29709}
29710impl AstNode for SetUnlogged {
29711    #[inline]
29712    fn can_cast(kind: SyntaxKind) -> bool {
29713        kind == SyntaxKind::SET_UNLOGGED
29714    }
29715    #[inline]
29716    fn cast(syntax: SyntaxNode) -> Option<Self> {
29717        if Self::can_cast(syntax.kind()) {
29718            Some(Self { syntax })
29719        } else {
29720            None
29721        }
29722    }
29723    #[inline]
29724    fn syntax(&self) -> &SyntaxNode {
29725        &self.syntax
29726    }
29727}
29728impl AstNode for SetWithoutCluster {
29729    #[inline]
29730    fn can_cast(kind: SyntaxKind) -> bool {
29731        kind == SyntaxKind::SET_WITHOUT_CLUSTER
29732    }
29733    #[inline]
29734    fn cast(syntax: SyntaxNode) -> Option<Self> {
29735        if Self::can_cast(syntax.kind()) {
29736            Some(Self { syntax })
29737        } else {
29738            None
29739        }
29740    }
29741    #[inline]
29742    fn syntax(&self) -> &SyntaxNode {
29743        &self.syntax
29744    }
29745}
29746impl AstNode for SetWithoutOids {
29747    #[inline]
29748    fn can_cast(kind: SyntaxKind) -> bool {
29749        kind == SyntaxKind::SET_WITHOUT_OIDS
29750    }
29751    #[inline]
29752    fn cast(syntax: SyntaxNode) -> Option<Self> {
29753        if Self::can_cast(syntax.kind()) {
29754            Some(Self { syntax })
29755        } else {
29756            None
29757        }
29758    }
29759    #[inline]
29760    fn syntax(&self) -> &SyntaxNode {
29761        &self.syntax
29762    }
29763}
29764impl AstNode for Show {
29765    #[inline]
29766    fn can_cast(kind: SyntaxKind) -> bool {
29767        kind == SyntaxKind::SHOW
29768    }
29769    #[inline]
29770    fn cast(syntax: SyntaxNode) -> Option<Self> {
29771        if Self::can_cast(syntax.kind()) {
29772            Some(Self { syntax })
29773        } else {
29774            None
29775        }
29776    }
29777    #[inline]
29778    fn syntax(&self) -> &SyntaxNode {
29779        &self.syntax
29780    }
29781}
29782impl AstNode for SimilarTo {
29783    #[inline]
29784    fn can_cast(kind: SyntaxKind) -> bool {
29785        kind == SyntaxKind::SIMILAR_TO
29786    }
29787    #[inline]
29788    fn cast(syntax: SyntaxNode) -> Option<Self> {
29789        if Self::can_cast(syntax.kind()) {
29790            Some(Self { syntax })
29791        } else {
29792            None
29793        }
29794    }
29795    #[inline]
29796    fn syntax(&self) -> &SyntaxNode {
29797        &self.syntax
29798    }
29799}
29800impl AstNode for SliceExpr {
29801    #[inline]
29802    fn can_cast(kind: SyntaxKind) -> bool {
29803        kind == SyntaxKind::SLICE_EXPR
29804    }
29805    #[inline]
29806    fn cast(syntax: SyntaxNode) -> Option<Self> {
29807        if Self::can_cast(syntax.kind()) {
29808            Some(Self { syntax })
29809        } else {
29810            None
29811        }
29812    }
29813    #[inline]
29814    fn syntax(&self) -> &SyntaxNode {
29815        &self.syntax
29816    }
29817}
29818impl AstNode for SomeFn {
29819    #[inline]
29820    fn can_cast(kind: SyntaxKind) -> bool {
29821        kind == SyntaxKind::SOME_FN
29822    }
29823    #[inline]
29824    fn cast(syntax: SyntaxNode) -> Option<Self> {
29825        if Self::can_cast(syntax.kind()) {
29826            Some(Self { syntax })
29827        } else {
29828            None
29829        }
29830    }
29831    #[inline]
29832    fn syntax(&self) -> &SyntaxNode {
29833        &self.syntax
29834    }
29835}
29836impl AstNode for SortAsc {
29837    #[inline]
29838    fn can_cast(kind: SyntaxKind) -> bool {
29839        kind == SyntaxKind::SORT_ASC
29840    }
29841    #[inline]
29842    fn cast(syntax: SyntaxNode) -> Option<Self> {
29843        if Self::can_cast(syntax.kind()) {
29844            Some(Self { syntax })
29845        } else {
29846            None
29847        }
29848    }
29849    #[inline]
29850    fn syntax(&self) -> &SyntaxNode {
29851        &self.syntax
29852    }
29853}
29854impl AstNode for SortBy {
29855    #[inline]
29856    fn can_cast(kind: SyntaxKind) -> bool {
29857        kind == SyntaxKind::SORT_BY
29858    }
29859    #[inline]
29860    fn cast(syntax: SyntaxNode) -> Option<Self> {
29861        if Self::can_cast(syntax.kind()) {
29862            Some(Self { syntax })
29863        } else {
29864            None
29865        }
29866    }
29867    #[inline]
29868    fn syntax(&self) -> &SyntaxNode {
29869        &self.syntax
29870    }
29871}
29872impl AstNode for SortByList {
29873    #[inline]
29874    fn can_cast(kind: SyntaxKind) -> bool {
29875        kind == SyntaxKind::SORT_BY_LIST
29876    }
29877    #[inline]
29878    fn cast(syntax: SyntaxNode) -> Option<Self> {
29879        if Self::can_cast(syntax.kind()) {
29880            Some(Self { syntax })
29881        } else {
29882            None
29883        }
29884    }
29885    #[inline]
29886    fn syntax(&self) -> &SyntaxNode {
29887        &self.syntax
29888    }
29889}
29890impl AstNode for SortDesc {
29891    #[inline]
29892    fn can_cast(kind: SyntaxKind) -> bool {
29893        kind == SyntaxKind::SORT_DESC
29894    }
29895    #[inline]
29896    fn cast(syntax: SyntaxNode) -> Option<Self> {
29897        if Self::can_cast(syntax.kind()) {
29898            Some(Self { syntax })
29899        } else {
29900            None
29901        }
29902    }
29903    #[inline]
29904    fn syntax(&self) -> &SyntaxNode {
29905        &self.syntax
29906    }
29907}
29908impl AstNode for SortUsing {
29909    #[inline]
29910    fn can_cast(kind: SyntaxKind) -> bool {
29911        kind == SyntaxKind::SORT_USING
29912    }
29913    #[inline]
29914    fn cast(syntax: SyntaxNode) -> Option<Self> {
29915        if Self::can_cast(syntax.kind()) {
29916            Some(Self { syntax })
29917        } else {
29918            None
29919        }
29920    }
29921    #[inline]
29922    fn syntax(&self) -> &SyntaxNode {
29923        &self.syntax
29924    }
29925}
29926impl AstNode for SourceFile {
29927    #[inline]
29928    fn can_cast(kind: SyntaxKind) -> bool {
29929        kind == SyntaxKind::SOURCE_FILE
29930    }
29931    #[inline]
29932    fn cast(syntax: SyntaxNode) -> Option<Self> {
29933        if Self::can_cast(syntax.kind()) {
29934            Some(Self { syntax })
29935        } else {
29936            None
29937        }
29938    }
29939    #[inline]
29940    fn syntax(&self) -> &SyntaxNode {
29941        &self.syntax
29942    }
29943}
29944impl AstNode for SourceVertexTable {
29945    #[inline]
29946    fn can_cast(kind: SyntaxKind) -> bool {
29947        kind == SyntaxKind::SOURCE_VERTEX_TABLE
29948    }
29949    #[inline]
29950    fn cast(syntax: SyntaxNode) -> Option<Self> {
29951        if Self::can_cast(syntax.kind()) {
29952            Some(Self { syntax })
29953        } else {
29954            None
29955        }
29956    }
29957    #[inline]
29958    fn syntax(&self) -> &SyntaxNode {
29959        &self.syntax
29960    }
29961}
29962impl AstNode for SplitPartition {
29963    #[inline]
29964    fn can_cast(kind: SyntaxKind) -> bool {
29965        kind == SyntaxKind::SPLIT_PARTITION
29966    }
29967    #[inline]
29968    fn cast(syntax: SyntaxNode) -> Option<Self> {
29969        if Self::can_cast(syntax.kind()) {
29970            Some(Self { syntax })
29971        } else {
29972            None
29973        }
29974    }
29975    #[inline]
29976    fn syntax(&self) -> &SyntaxNode {
29977        &self.syntax
29978    }
29979}
29980impl AstNode for Storage {
29981    #[inline]
29982    fn can_cast(kind: SyntaxKind) -> bool {
29983        kind == SyntaxKind::STORAGE
29984    }
29985    #[inline]
29986    fn cast(syntax: SyntaxNode) -> Option<Self> {
29987        if Self::can_cast(syntax.kind()) {
29988            Some(Self { syntax })
29989        } else {
29990            None
29991        }
29992    }
29993    #[inline]
29994    fn syntax(&self) -> &SyntaxNode {
29995        &self.syntax
29996    }
29997}
29998impl AstNode for StrictFuncOption {
29999    #[inline]
30000    fn can_cast(kind: SyntaxKind) -> bool {
30001        kind == SyntaxKind::STRICT_FUNC_OPTION
30002    }
30003    #[inline]
30004    fn cast(syntax: SyntaxNode) -> Option<Self> {
30005        if Self::can_cast(syntax.kind()) {
30006            Some(Self { syntax })
30007        } else {
30008            None
30009        }
30010    }
30011    #[inline]
30012    fn syntax(&self) -> &SyntaxNode {
30013        &self.syntax
30014    }
30015}
30016impl AstNode for SubstringFn {
30017    #[inline]
30018    fn can_cast(kind: SyntaxKind) -> bool {
30019        kind == SyntaxKind::SUBSTRING_FN
30020    }
30021    #[inline]
30022    fn cast(syntax: SyntaxNode) -> Option<Self> {
30023        if Self::can_cast(syntax.kind()) {
30024            Some(Self { syntax })
30025        } else {
30026            None
30027        }
30028    }
30029    #[inline]
30030    fn syntax(&self) -> &SyntaxNode {
30031        &self.syntax
30032    }
30033}
30034impl AstNode for SupportFuncOption {
30035    #[inline]
30036    fn can_cast(kind: SyntaxKind) -> bool {
30037        kind == SyntaxKind::SUPPORT_FUNC_OPTION
30038    }
30039    #[inline]
30040    fn cast(syntax: SyntaxNode) -> Option<Self> {
30041        if Self::can_cast(syntax.kind()) {
30042            Some(Self { syntax })
30043        } else {
30044            None
30045        }
30046    }
30047    #[inline]
30048    fn syntax(&self) -> &SyntaxNode {
30049        &self.syntax
30050    }
30051}
30052impl AstNode for Table {
30053    #[inline]
30054    fn can_cast(kind: SyntaxKind) -> bool {
30055        kind == SyntaxKind::TABLE
30056    }
30057    #[inline]
30058    fn cast(syntax: SyntaxNode) -> Option<Self> {
30059        if Self::can_cast(syntax.kind()) {
30060            Some(Self { syntax })
30061        } else {
30062            None
30063        }
30064    }
30065    #[inline]
30066    fn syntax(&self) -> &SyntaxNode {
30067        &self.syntax
30068    }
30069}
30070impl AstNode for TableAndColumns {
30071    #[inline]
30072    fn can_cast(kind: SyntaxKind) -> bool {
30073        kind == SyntaxKind::TABLE_AND_COLUMNS
30074    }
30075    #[inline]
30076    fn cast(syntax: SyntaxNode) -> Option<Self> {
30077        if Self::can_cast(syntax.kind()) {
30078            Some(Self { syntax })
30079        } else {
30080            None
30081        }
30082    }
30083    #[inline]
30084    fn syntax(&self) -> &SyntaxNode {
30085        &self.syntax
30086    }
30087}
30088impl AstNode for TableAndColumnsList {
30089    #[inline]
30090    fn can_cast(kind: SyntaxKind) -> bool {
30091        kind == SyntaxKind::TABLE_AND_COLUMNS_LIST
30092    }
30093    #[inline]
30094    fn cast(syntax: SyntaxNode) -> Option<Self> {
30095        if Self::can_cast(syntax.kind()) {
30096            Some(Self { syntax })
30097        } else {
30098            None
30099        }
30100    }
30101    #[inline]
30102    fn syntax(&self) -> &SyntaxNode {
30103        &self.syntax
30104    }
30105}
30106impl AstNode for TableArgList {
30107    #[inline]
30108    fn can_cast(kind: SyntaxKind) -> bool {
30109        kind == SyntaxKind::TABLE_ARG_LIST
30110    }
30111    #[inline]
30112    fn cast(syntax: SyntaxNode) -> Option<Self> {
30113        if Self::can_cast(syntax.kind()) {
30114            Some(Self { syntax })
30115        } else {
30116            None
30117        }
30118    }
30119    #[inline]
30120    fn syntax(&self) -> &SyntaxNode {
30121        &self.syntax
30122    }
30123}
30124impl AstNode for TableList {
30125    #[inline]
30126    fn can_cast(kind: SyntaxKind) -> bool {
30127        kind == SyntaxKind::TABLE_LIST
30128    }
30129    #[inline]
30130    fn cast(syntax: SyntaxNode) -> Option<Self> {
30131        if Self::can_cast(syntax.kind()) {
30132            Some(Self { syntax })
30133        } else {
30134            None
30135        }
30136    }
30137    #[inline]
30138    fn syntax(&self) -> &SyntaxNode {
30139        &self.syntax
30140    }
30141}
30142impl AstNode for TablesampleClause {
30143    #[inline]
30144    fn can_cast(kind: SyntaxKind) -> bool {
30145        kind == SyntaxKind::TABLESAMPLE_CLAUSE
30146    }
30147    #[inline]
30148    fn cast(syntax: SyntaxNode) -> Option<Self> {
30149        if Self::can_cast(syntax.kind()) {
30150            Some(Self { syntax })
30151        } else {
30152            None
30153        }
30154    }
30155    #[inline]
30156    fn syntax(&self) -> &SyntaxNode {
30157        &self.syntax
30158    }
30159}
30160impl AstNode for Tablespace {
30161    #[inline]
30162    fn can_cast(kind: SyntaxKind) -> bool {
30163        kind == SyntaxKind::TABLESPACE
30164    }
30165    #[inline]
30166    fn cast(syntax: SyntaxNode) -> Option<Self> {
30167        if Self::can_cast(syntax.kind()) {
30168            Some(Self { syntax })
30169        } else {
30170            None
30171        }
30172    }
30173    #[inline]
30174    fn syntax(&self) -> &SyntaxNode {
30175        &self.syntax
30176    }
30177}
30178impl AstNode for Target {
30179    #[inline]
30180    fn can_cast(kind: SyntaxKind) -> bool {
30181        kind == SyntaxKind::TARGET
30182    }
30183    #[inline]
30184    fn cast(syntax: SyntaxNode) -> Option<Self> {
30185        if Self::can_cast(syntax.kind()) {
30186            Some(Self { syntax })
30187        } else {
30188            None
30189        }
30190    }
30191    #[inline]
30192    fn syntax(&self) -> &SyntaxNode {
30193        &self.syntax
30194    }
30195}
30196impl AstNode for TargetList {
30197    #[inline]
30198    fn can_cast(kind: SyntaxKind) -> bool {
30199        kind == SyntaxKind::TARGET_LIST
30200    }
30201    #[inline]
30202    fn cast(syntax: SyntaxNode) -> Option<Self> {
30203        if Self::can_cast(syntax.kind()) {
30204            Some(Self { syntax })
30205        } else {
30206            None
30207        }
30208    }
30209    #[inline]
30210    fn syntax(&self) -> &SyntaxNode {
30211        &self.syntax
30212    }
30213}
30214impl AstNode for Temp {
30215    #[inline]
30216    fn can_cast(kind: SyntaxKind) -> bool {
30217        kind == SyntaxKind::TEMP
30218    }
30219    #[inline]
30220    fn cast(syntax: SyntaxNode) -> Option<Self> {
30221        if Self::can_cast(syntax.kind()) {
30222            Some(Self { syntax })
30223        } else {
30224            None
30225        }
30226    }
30227    #[inline]
30228    fn syntax(&self) -> &SyntaxNode {
30229        &self.syntax
30230    }
30231}
30232impl AstNode for TimeType {
30233    #[inline]
30234    fn can_cast(kind: SyntaxKind) -> bool {
30235        kind == SyntaxKind::TIME_TYPE
30236    }
30237    #[inline]
30238    fn cast(syntax: SyntaxNode) -> Option<Self> {
30239        if Self::can_cast(syntax.kind()) {
30240            Some(Self { syntax })
30241        } else {
30242            None
30243        }
30244    }
30245    #[inline]
30246    fn syntax(&self) -> &SyntaxNode {
30247        &self.syntax
30248    }
30249}
30250impl AstNode for Timing {
30251    #[inline]
30252    fn can_cast(kind: SyntaxKind) -> bool {
30253        kind == SyntaxKind::TIMING
30254    }
30255    #[inline]
30256    fn cast(syntax: SyntaxNode) -> Option<Self> {
30257        if Self::can_cast(syntax.kind()) {
30258            Some(Self { syntax })
30259        } else {
30260            None
30261        }
30262    }
30263    #[inline]
30264    fn syntax(&self) -> &SyntaxNode {
30265        &self.syntax
30266    }
30267}
30268impl AstNode for TransactionModeList {
30269    #[inline]
30270    fn can_cast(kind: SyntaxKind) -> bool {
30271        kind == SyntaxKind::TRANSACTION_MODE_LIST
30272    }
30273    #[inline]
30274    fn cast(syntax: SyntaxNode) -> Option<Self> {
30275        if Self::can_cast(syntax.kind()) {
30276            Some(Self { syntax })
30277        } else {
30278            None
30279        }
30280    }
30281    #[inline]
30282    fn syntax(&self) -> &SyntaxNode {
30283        &self.syntax
30284    }
30285}
30286impl AstNode for TransformFromFunc {
30287    #[inline]
30288    fn can_cast(kind: SyntaxKind) -> bool {
30289        kind == SyntaxKind::TRANSFORM_FROM_FUNC
30290    }
30291    #[inline]
30292    fn cast(syntax: SyntaxNode) -> Option<Self> {
30293        if Self::can_cast(syntax.kind()) {
30294            Some(Self { syntax })
30295        } else {
30296            None
30297        }
30298    }
30299    #[inline]
30300    fn syntax(&self) -> &SyntaxNode {
30301        &self.syntax
30302    }
30303}
30304impl AstNode for TransformFuncOption {
30305    #[inline]
30306    fn can_cast(kind: SyntaxKind) -> bool {
30307        kind == SyntaxKind::TRANSFORM_FUNC_OPTION
30308    }
30309    #[inline]
30310    fn cast(syntax: SyntaxNode) -> Option<Self> {
30311        if Self::can_cast(syntax.kind()) {
30312            Some(Self { syntax })
30313        } else {
30314            None
30315        }
30316    }
30317    #[inline]
30318    fn syntax(&self) -> &SyntaxNode {
30319        &self.syntax
30320    }
30321}
30322impl AstNode for TransformToFunc {
30323    #[inline]
30324    fn can_cast(kind: SyntaxKind) -> bool {
30325        kind == SyntaxKind::TRANSFORM_TO_FUNC
30326    }
30327    #[inline]
30328    fn cast(syntax: SyntaxNode) -> Option<Self> {
30329        if Self::can_cast(syntax.kind()) {
30330            Some(Self { syntax })
30331        } else {
30332            None
30333        }
30334    }
30335    #[inline]
30336    fn syntax(&self) -> &SyntaxNode {
30337        &self.syntax
30338    }
30339}
30340impl AstNode for TriggerEvent {
30341    #[inline]
30342    fn can_cast(kind: SyntaxKind) -> bool {
30343        kind == SyntaxKind::TRIGGER_EVENT
30344    }
30345    #[inline]
30346    fn cast(syntax: SyntaxNode) -> Option<Self> {
30347        if Self::can_cast(syntax.kind()) {
30348            Some(Self { syntax })
30349        } else {
30350            None
30351        }
30352    }
30353    #[inline]
30354    fn syntax(&self) -> &SyntaxNode {
30355        &self.syntax
30356    }
30357}
30358impl AstNode for TriggerEventList {
30359    #[inline]
30360    fn can_cast(kind: SyntaxKind) -> bool {
30361        kind == SyntaxKind::TRIGGER_EVENT_LIST
30362    }
30363    #[inline]
30364    fn cast(syntax: SyntaxNode) -> Option<Self> {
30365        if Self::can_cast(syntax.kind()) {
30366            Some(Self { syntax })
30367        } else {
30368            None
30369        }
30370    }
30371    #[inline]
30372    fn syntax(&self) -> &SyntaxNode {
30373        &self.syntax
30374    }
30375}
30376impl AstNode for TriggerEventUpdate {
30377    #[inline]
30378    fn can_cast(kind: SyntaxKind) -> bool {
30379        kind == SyntaxKind::TRIGGER_EVENT_UPDATE
30380    }
30381    #[inline]
30382    fn cast(syntax: SyntaxNode) -> Option<Self> {
30383        if Self::can_cast(syntax.kind()) {
30384            Some(Self { syntax })
30385        } else {
30386            None
30387        }
30388    }
30389    #[inline]
30390    fn syntax(&self) -> &SyntaxNode {
30391        &self.syntax
30392    }
30393}
30394impl AstNode for TrimFn {
30395    #[inline]
30396    fn can_cast(kind: SyntaxKind) -> bool {
30397        kind == SyntaxKind::TRIM_FN
30398    }
30399    #[inline]
30400    fn cast(syntax: SyntaxNode) -> Option<Self> {
30401        if Self::can_cast(syntax.kind()) {
30402            Some(Self { syntax })
30403        } else {
30404            None
30405        }
30406    }
30407    #[inline]
30408    fn syntax(&self) -> &SyntaxNode {
30409        &self.syntax
30410    }
30411}
30412impl AstNode for Truncate {
30413    #[inline]
30414    fn can_cast(kind: SyntaxKind) -> bool {
30415        kind == SyntaxKind::TRUNCATE
30416    }
30417    #[inline]
30418    fn cast(syntax: SyntaxNode) -> Option<Self> {
30419        if Self::can_cast(syntax.kind()) {
30420            Some(Self { syntax })
30421        } else {
30422            None
30423        }
30424    }
30425    #[inline]
30426    fn syntax(&self) -> &SyntaxNode {
30427        &self.syntax
30428    }
30429}
30430impl AstNode for TupleExpr {
30431    #[inline]
30432    fn can_cast(kind: SyntaxKind) -> bool {
30433        kind == SyntaxKind::TUPLE_EXPR
30434    }
30435    #[inline]
30436    fn cast(syntax: SyntaxNode) -> Option<Self> {
30437        if Self::can_cast(syntax.kind()) {
30438            Some(Self { syntax })
30439        } else {
30440            None
30441        }
30442    }
30443    #[inline]
30444    fn syntax(&self) -> &SyntaxNode {
30445        &self.syntax
30446    }
30447}
30448impl AstNode for UnicodeNormalForm {
30449    #[inline]
30450    fn can_cast(kind: SyntaxKind) -> bool {
30451        kind == SyntaxKind::UNICODE_NORMAL_FORM
30452    }
30453    #[inline]
30454    fn cast(syntax: SyntaxNode) -> Option<Self> {
30455        if Self::can_cast(syntax.kind()) {
30456            Some(Self { syntax })
30457        } else {
30458            None
30459        }
30460    }
30461    #[inline]
30462    fn syntax(&self) -> &SyntaxNode {
30463        &self.syntax
30464    }
30465}
30466impl AstNode for UniqueConstraint {
30467    #[inline]
30468    fn can_cast(kind: SyntaxKind) -> bool {
30469        kind == SyntaxKind::UNIQUE_CONSTRAINT
30470    }
30471    #[inline]
30472    fn cast(syntax: SyntaxNode) -> Option<Self> {
30473        if Self::can_cast(syntax.kind()) {
30474            Some(Self { syntax })
30475        } else {
30476            None
30477        }
30478    }
30479    #[inline]
30480    fn syntax(&self) -> &SyntaxNode {
30481        &self.syntax
30482    }
30483}
30484impl AstNode for Unlisten {
30485    #[inline]
30486    fn can_cast(kind: SyntaxKind) -> bool {
30487        kind == SyntaxKind::UNLISTEN
30488    }
30489    #[inline]
30490    fn cast(syntax: SyntaxNode) -> Option<Self> {
30491        if Self::can_cast(syntax.kind()) {
30492            Some(Self { syntax })
30493        } else {
30494            None
30495        }
30496    }
30497    #[inline]
30498    fn syntax(&self) -> &SyntaxNode {
30499        &self.syntax
30500    }
30501}
30502impl AstNode for Unlogged {
30503    #[inline]
30504    fn can_cast(kind: SyntaxKind) -> bool {
30505        kind == SyntaxKind::UNLOGGED
30506    }
30507    #[inline]
30508    fn cast(syntax: SyntaxNode) -> Option<Self> {
30509        if Self::can_cast(syntax.kind()) {
30510            Some(Self { syntax })
30511        } else {
30512            None
30513        }
30514    }
30515    #[inline]
30516    fn syntax(&self) -> &SyntaxNode {
30517        &self.syntax
30518    }
30519}
30520impl AstNode for Update {
30521    #[inline]
30522    fn can_cast(kind: SyntaxKind) -> bool {
30523        kind == SyntaxKind::UPDATE
30524    }
30525    #[inline]
30526    fn cast(syntax: SyntaxNode) -> Option<Self> {
30527        if Self::can_cast(syntax.kind()) {
30528            Some(Self { syntax })
30529        } else {
30530            None
30531        }
30532    }
30533    #[inline]
30534    fn syntax(&self) -> &SyntaxNode {
30535        &self.syntax
30536    }
30537}
30538impl AstNode for UsingClause {
30539    #[inline]
30540    fn can_cast(kind: SyntaxKind) -> bool {
30541        kind == SyntaxKind::USING_CLAUSE
30542    }
30543    #[inline]
30544    fn cast(syntax: SyntaxNode) -> Option<Self> {
30545        if Self::can_cast(syntax.kind()) {
30546            Some(Self { syntax })
30547        } else {
30548            None
30549        }
30550    }
30551    #[inline]
30552    fn syntax(&self) -> &SyntaxNode {
30553        &self.syntax
30554    }
30555}
30556impl AstNode for UsingExprClause {
30557    #[inline]
30558    fn can_cast(kind: SyntaxKind) -> bool {
30559        kind == SyntaxKind::USING_EXPR_CLAUSE
30560    }
30561    #[inline]
30562    fn cast(syntax: SyntaxNode) -> Option<Self> {
30563        if Self::can_cast(syntax.kind()) {
30564            Some(Self { syntax })
30565        } else {
30566            None
30567        }
30568    }
30569    #[inline]
30570    fn syntax(&self) -> &SyntaxNode {
30571        &self.syntax
30572    }
30573}
30574impl AstNode for UsingIndex {
30575    #[inline]
30576    fn can_cast(kind: SyntaxKind) -> bool {
30577        kind == SyntaxKind::USING_INDEX
30578    }
30579    #[inline]
30580    fn cast(syntax: SyntaxNode) -> Option<Self> {
30581        if Self::can_cast(syntax.kind()) {
30582            Some(Self { syntax })
30583        } else {
30584            None
30585        }
30586    }
30587    #[inline]
30588    fn syntax(&self) -> &SyntaxNode {
30589        &self.syntax
30590    }
30591}
30592impl AstNode for UsingMethod {
30593    #[inline]
30594    fn can_cast(kind: SyntaxKind) -> bool {
30595        kind == SyntaxKind::USING_METHOD
30596    }
30597    #[inline]
30598    fn cast(syntax: SyntaxNode) -> Option<Self> {
30599        if Self::can_cast(syntax.kind()) {
30600            Some(Self { syntax })
30601        } else {
30602            None
30603        }
30604    }
30605    #[inline]
30606    fn syntax(&self) -> &SyntaxNode {
30607        &self.syntax
30608    }
30609}
30610impl AstNode for UsingOnClause {
30611    #[inline]
30612    fn can_cast(kind: SyntaxKind) -> bool {
30613        kind == SyntaxKind::USING_ON_CLAUSE
30614    }
30615    #[inline]
30616    fn cast(syntax: SyntaxNode) -> Option<Self> {
30617        if Self::can_cast(syntax.kind()) {
30618            Some(Self { syntax })
30619        } else {
30620            None
30621        }
30622    }
30623    #[inline]
30624    fn syntax(&self) -> &SyntaxNode {
30625        &self.syntax
30626    }
30627}
30628impl AstNode for Vacuum {
30629    #[inline]
30630    fn can_cast(kind: SyntaxKind) -> bool {
30631        kind == SyntaxKind::VACUUM
30632    }
30633    #[inline]
30634    fn cast(syntax: SyntaxNode) -> Option<Self> {
30635        if Self::can_cast(syntax.kind()) {
30636            Some(Self { syntax })
30637        } else {
30638            None
30639        }
30640    }
30641    #[inline]
30642    fn syntax(&self) -> &SyntaxNode {
30643        &self.syntax
30644    }
30645}
30646impl AstNode for VacuumOption {
30647    #[inline]
30648    fn can_cast(kind: SyntaxKind) -> bool {
30649        kind == SyntaxKind::VACUUM_OPTION
30650    }
30651    #[inline]
30652    fn cast(syntax: SyntaxNode) -> Option<Self> {
30653        if Self::can_cast(syntax.kind()) {
30654            Some(Self { syntax })
30655        } else {
30656            None
30657        }
30658    }
30659    #[inline]
30660    fn syntax(&self) -> &SyntaxNode {
30661        &self.syntax
30662    }
30663}
30664impl AstNode for VacuumOptionList {
30665    #[inline]
30666    fn can_cast(kind: SyntaxKind) -> bool {
30667        kind == SyntaxKind::VACUUM_OPTION_LIST
30668    }
30669    #[inline]
30670    fn cast(syntax: SyntaxNode) -> Option<Self> {
30671        if Self::can_cast(syntax.kind()) {
30672            Some(Self { syntax })
30673        } else {
30674            None
30675        }
30676    }
30677    #[inline]
30678    fn syntax(&self) -> &SyntaxNode {
30679        &self.syntax
30680    }
30681}
30682impl AstNode for ValidateConstraint {
30683    #[inline]
30684    fn can_cast(kind: SyntaxKind) -> bool {
30685        kind == SyntaxKind::VALIDATE_CONSTRAINT
30686    }
30687    #[inline]
30688    fn cast(syntax: SyntaxNode) -> Option<Self> {
30689        if Self::can_cast(syntax.kind()) {
30690            Some(Self { syntax })
30691        } else {
30692            None
30693        }
30694    }
30695    #[inline]
30696    fn syntax(&self) -> &SyntaxNode {
30697        &self.syntax
30698    }
30699}
30700impl AstNode for Values {
30701    #[inline]
30702    fn can_cast(kind: SyntaxKind) -> bool {
30703        kind == SyntaxKind::VALUES
30704    }
30705    #[inline]
30706    fn cast(syntax: SyntaxNode) -> Option<Self> {
30707        if Self::can_cast(syntax.kind()) {
30708            Some(Self { syntax })
30709        } else {
30710            None
30711        }
30712    }
30713    #[inline]
30714    fn syntax(&self) -> &SyntaxNode {
30715        &self.syntax
30716    }
30717}
30718impl AstNode for Variant {
30719    #[inline]
30720    fn can_cast(kind: SyntaxKind) -> bool {
30721        kind == SyntaxKind::VARIANT
30722    }
30723    #[inline]
30724    fn cast(syntax: SyntaxNode) -> Option<Self> {
30725        if Self::can_cast(syntax.kind()) {
30726            Some(Self { syntax })
30727        } else {
30728            None
30729        }
30730    }
30731    #[inline]
30732    fn syntax(&self) -> &SyntaxNode {
30733        &self.syntax
30734    }
30735}
30736impl AstNode for VariantList {
30737    #[inline]
30738    fn can_cast(kind: SyntaxKind) -> bool {
30739        kind == SyntaxKind::VARIANT_LIST
30740    }
30741    #[inline]
30742    fn cast(syntax: SyntaxNode) -> Option<Self> {
30743        if Self::can_cast(syntax.kind()) {
30744            Some(Self { syntax })
30745        } else {
30746            None
30747        }
30748    }
30749    #[inline]
30750    fn syntax(&self) -> &SyntaxNode {
30751        &self.syntax
30752    }
30753}
30754impl AstNode for VertexPattern {
30755    #[inline]
30756    fn can_cast(kind: SyntaxKind) -> bool {
30757        kind == SyntaxKind::VERTEX_PATTERN
30758    }
30759    #[inline]
30760    fn cast(syntax: SyntaxNode) -> Option<Self> {
30761        if Self::can_cast(syntax.kind()) {
30762            Some(Self { syntax })
30763        } else {
30764            None
30765        }
30766    }
30767    #[inline]
30768    fn syntax(&self) -> &SyntaxNode {
30769        &self.syntax
30770    }
30771}
30772impl AstNode for VertexTableDef {
30773    #[inline]
30774    fn can_cast(kind: SyntaxKind) -> bool {
30775        kind == SyntaxKind::VERTEX_TABLE_DEF
30776    }
30777    #[inline]
30778    fn cast(syntax: SyntaxNode) -> Option<Self> {
30779        if Self::can_cast(syntax.kind()) {
30780            Some(Self { syntax })
30781        } else {
30782            None
30783        }
30784    }
30785    #[inline]
30786    fn syntax(&self) -> &SyntaxNode {
30787        &self.syntax
30788    }
30789}
30790impl AstNode for VertexTables {
30791    #[inline]
30792    fn can_cast(kind: SyntaxKind) -> bool {
30793        kind == SyntaxKind::VERTEX_TABLES
30794    }
30795    #[inline]
30796    fn cast(syntax: SyntaxNode) -> Option<Self> {
30797        if Self::can_cast(syntax.kind()) {
30798            Some(Self { syntax })
30799        } else {
30800            None
30801        }
30802    }
30803    #[inline]
30804    fn syntax(&self) -> &SyntaxNode {
30805        &self.syntax
30806    }
30807}
30808impl AstNode for VolatilityFuncOption {
30809    #[inline]
30810    fn can_cast(kind: SyntaxKind) -> bool {
30811        kind == SyntaxKind::VOLATILITY_FUNC_OPTION
30812    }
30813    #[inline]
30814    fn cast(syntax: SyntaxNode) -> Option<Self> {
30815        if Self::can_cast(syntax.kind()) {
30816            Some(Self { syntax })
30817        } else {
30818            None
30819        }
30820    }
30821    #[inline]
30822    fn syntax(&self) -> &SyntaxNode {
30823        &self.syntax
30824    }
30825}
30826impl AstNode for WhenClause {
30827    #[inline]
30828    fn can_cast(kind: SyntaxKind) -> bool {
30829        kind == SyntaxKind::WHEN_CLAUSE
30830    }
30831    #[inline]
30832    fn cast(syntax: SyntaxNode) -> Option<Self> {
30833        if Self::can_cast(syntax.kind()) {
30834            Some(Self { syntax })
30835        } else {
30836            None
30837        }
30838    }
30839    #[inline]
30840    fn syntax(&self) -> &SyntaxNode {
30841        &self.syntax
30842    }
30843}
30844impl AstNode for WhenClauseList {
30845    #[inline]
30846    fn can_cast(kind: SyntaxKind) -> bool {
30847        kind == SyntaxKind::WHEN_CLAUSE_LIST
30848    }
30849    #[inline]
30850    fn cast(syntax: SyntaxNode) -> Option<Self> {
30851        if Self::can_cast(syntax.kind()) {
30852            Some(Self { syntax })
30853        } else {
30854            None
30855        }
30856    }
30857    #[inline]
30858    fn syntax(&self) -> &SyntaxNode {
30859        &self.syntax
30860    }
30861}
30862impl AstNode for WhenCondition {
30863    #[inline]
30864    fn can_cast(kind: SyntaxKind) -> bool {
30865        kind == SyntaxKind::WHEN_CONDITION
30866    }
30867    #[inline]
30868    fn cast(syntax: SyntaxNode) -> Option<Self> {
30869        if Self::can_cast(syntax.kind()) {
30870            Some(Self { syntax })
30871        } else {
30872            None
30873        }
30874    }
30875    #[inline]
30876    fn syntax(&self) -> &SyntaxNode {
30877        &self.syntax
30878    }
30879}
30880impl AstNode for WhereClause {
30881    #[inline]
30882    fn can_cast(kind: SyntaxKind) -> bool {
30883        kind == SyntaxKind::WHERE_CLAUSE
30884    }
30885    #[inline]
30886    fn cast(syntax: SyntaxNode) -> Option<Self> {
30887        if Self::can_cast(syntax.kind()) {
30888            Some(Self { syntax })
30889        } else {
30890            None
30891        }
30892    }
30893    #[inline]
30894    fn syntax(&self) -> &SyntaxNode {
30895        &self.syntax
30896    }
30897}
30898impl AstNode for WhereConditionClause {
30899    #[inline]
30900    fn can_cast(kind: SyntaxKind) -> bool {
30901        kind == SyntaxKind::WHERE_CONDITION_CLAUSE
30902    }
30903    #[inline]
30904    fn cast(syntax: SyntaxNode) -> Option<Self> {
30905        if Self::can_cast(syntax.kind()) {
30906            Some(Self { syntax })
30907        } else {
30908            None
30909        }
30910    }
30911    #[inline]
30912    fn syntax(&self) -> &SyntaxNode {
30913        &self.syntax
30914    }
30915}
30916impl AstNode for WhereCurrentOf {
30917    #[inline]
30918    fn can_cast(kind: SyntaxKind) -> bool {
30919        kind == SyntaxKind::WHERE_CURRENT_OF
30920    }
30921    #[inline]
30922    fn cast(syntax: SyntaxNode) -> Option<Self> {
30923        if Self::can_cast(syntax.kind()) {
30924            Some(Self { syntax })
30925        } else {
30926            None
30927        }
30928    }
30929    #[inline]
30930    fn syntax(&self) -> &SyntaxNode {
30931        &self.syntax
30932    }
30933}
30934impl AstNode for WindowClause {
30935    #[inline]
30936    fn can_cast(kind: SyntaxKind) -> bool {
30937        kind == SyntaxKind::WINDOW_CLAUSE
30938    }
30939    #[inline]
30940    fn cast(syntax: SyntaxNode) -> Option<Self> {
30941        if Self::can_cast(syntax.kind()) {
30942            Some(Self { syntax })
30943        } else {
30944            None
30945        }
30946    }
30947    #[inline]
30948    fn syntax(&self) -> &SyntaxNode {
30949        &self.syntax
30950    }
30951}
30952impl AstNode for WindowDef {
30953    #[inline]
30954    fn can_cast(kind: SyntaxKind) -> bool {
30955        kind == SyntaxKind::WINDOW_DEF
30956    }
30957    #[inline]
30958    fn cast(syntax: SyntaxNode) -> Option<Self> {
30959        if Self::can_cast(syntax.kind()) {
30960            Some(Self { syntax })
30961        } else {
30962            None
30963        }
30964    }
30965    #[inline]
30966    fn syntax(&self) -> &SyntaxNode {
30967        &self.syntax
30968    }
30969}
30970impl AstNode for WindowFuncOption {
30971    #[inline]
30972    fn can_cast(kind: SyntaxKind) -> bool {
30973        kind == SyntaxKind::WINDOW_FUNC_OPTION
30974    }
30975    #[inline]
30976    fn cast(syntax: SyntaxNode) -> Option<Self> {
30977        if Self::can_cast(syntax.kind()) {
30978            Some(Self { syntax })
30979        } else {
30980            None
30981        }
30982    }
30983    #[inline]
30984    fn syntax(&self) -> &SyntaxNode {
30985        &self.syntax
30986    }
30987}
30988impl AstNode for WindowSpec {
30989    #[inline]
30990    fn can_cast(kind: SyntaxKind) -> bool {
30991        kind == SyntaxKind::WINDOW_SPEC
30992    }
30993    #[inline]
30994    fn cast(syntax: SyntaxNode) -> Option<Self> {
30995        if Self::can_cast(syntax.kind()) {
30996            Some(Self { syntax })
30997        } else {
30998            None
30999        }
31000    }
31001    #[inline]
31002    fn syntax(&self) -> &SyntaxNode {
31003        &self.syntax
31004    }
31005}
31006impl AstNode for WithCheckExprClause {
31007    #[inline]
31008    fn can_cast(kind: SyntaxKind) -> bool {
31009        kind == SyntaxKind::WITH_CHECK_EXPR_CLAUSE
31010    }
31011    #[inline]
31012    fn cast(syntax: SyntaxNode) -> Option<Self> {
31013        if Self::can_cast(syntax.kind()) {
31014            Some(Self { syntax })
31015        } else {
31016            None
31017        }
31018    }
31019    #[inline]
31020    fn syntax(&self) -> &SyntaxNode {
31021        &self.syntax
31022    }
31023}
31024impl AstNode for WithClause {
31025    #[inline]
31026    fn can_cast(kind: SyntaxKind) -> bool {
31027        kind == SyntaxKind::WITH_CLAUSE
31028    }
31029    #[inline]
31030    fn cast(syntax: SyntaxNode) -> Option<Self> {
31031        if Self::can_cast(syntax.kind()) {
31032            Some(Self { syntax })
31033        } else {
31034            None
31035        }
31036    }
31037    #[inline]
31038    fn syntax(&self) -> &SyntaxNode {
31039        &self.syntax
31040    }
31041}
31042impl AstNode for WithData {
31043    #[inline]
31044    fn can_cast(kind: SyntaxKind) -> bool {
31045        kind == SyntaxKind::WITH_DATA
31046    }
31047    #[inline]
31048    fn cast(syntax: SyntaxNode) -> Option<Self> {
31049        if Self::can_cast(syntax.kind()) {
31050            Some(Self { syntax })
31051        } else {
31052            None
31053        }
31054    }
31055    #[inline]
31056    fn syntax(&self) -> &SyntaxNode {
31057        &self.syntax
31058    }
31059}
31060impl AstNode for WithNoData {
31061    #[inline]
31062    fn can_cast(kind: SyntaxKind) -> bool {
31063        kind == SyntaxKind::WITH_NO_DATA
31064    }
31065    #[inline]
31066    fn cast(syntax: SyntaxNode) -> Option<Self> {
31067        if Self::can_cast(syntax.kind()) {
31068            Some(Self { syntax })
31069        } else {
31070            None
31071        }
31072    }
31073    #[inline]
31074    fn syntax(&self) -> &SyntaxNode {
31075        &self.syntax
31076    }
31077}
31078impl AstNode for WithOptions {
31079    #[inline]
31080    fn can_cast(kind: SyntaxKind) -> bool {
31081        kind == SyntaxKind::WITH_OPTIONS
31082    }
31083    #[inline]
31084    fn cast(syntax: SyntaxNode) -> Option<Self> {
31085        if Self::can_cast(syntax.kind()) {
31086            Some(Self { syntax })
31087        } else {
31088            None
31089        }
31090    }
31091    #[inline]
31092    fn syntax(&self) -> &SyntaxNode {
31093        &self.syntax
31094    }
31095}
31096impl AstNode for WithParams {
31097    #[inline]
31098    fn can_cast(kind: SyntaxKind) -> bool {
31099        kind == SyntaxKind::WITH_PARAMS
31100    }
31101    #[inline]
31102    fn cast(syntax: SyntaxNode) -> Option<Self> {
31103        if Self::can_cast(syntax.kind()) {
31104            Some(Self { syntax })
31105        } else {
31106            None
31107        }
31108    }
31109    #[inline]
31110    fn syntax(&self) -> &SyntaxNode {
31111        &self.syntax
31112    }
31113}
31114impl AstNode for WithTable {
31115    #[inline]
31116    fn can_cast(kind: SyntaxKind) -> bool {
31117        kind == SyntaxKind::WITH_TABLE
31118    }
31119    #[inline]
31120    fn cast(syntax: SyntaxNode) -> Option<Self> {
31121        if Self::can_cast(syntax.kind()) {
31122            Some(Self { syntax })
31123        } else {
31124            None
31125        }
31126    }
31127    #[inline]
31128    fn syntax(&self) -> &SyntaxNode {
31129        &self.syntax
31130    }
31131}
31132impl AstNode for WithTimezone {
31133    #[inline]
31134    fn can_cast(kind: SyntaxKind) -> bool {
31135        kind == SyntaxKind::WITH_TIMEZONE
31136    }
31137    #[inline]
31138    fn cast(syntax: SyntaxNode) -> Option<Self> {
31139        if Self::can_cast(syntax.kind()) {
31140            Some(Self { syntax })
31141        } else {
31142            None
31143        }
31144    }
31145    #[inline]
31146    fn syntax(&self) -> &SyntaxNode {
31147        &self.syntax
31148    }
31149}
31150impl AstNode for WithinClause {
31151    #[inline]
31152    fn can_cast(kind: SyntaxKind) -> bool {
31153        kind == SyntaxKind::WITHIN_CLAUSE
31154    }
31155    #[inline]
31156    fn cast(syntax: SyntaxNode) -> Option<Self> {
31157        if Self::can_cast(syntax.kind()) {
31158            Some(Self { syntax })
31159        } else {
31160            None
31161        }
31162    }
31163    #[inline]
31164    fn syntax(&self) -> &SyntaxNode {
31165        &self.syntax
31166    }
31167}
31168impl AstNode for WithoutOids {
31169    #[inline]
31170    fn can_cast(kind: SyntaxKind) -> bool {
31171        kind == SyntaxKind::WITHOUT_OIDS
31172    }
31173    #[inline]
31174    fn cast(syntax: SyntaxNode) -> Option<Self> {
31175        if Self::can_cast(syntax.kind()) {
31176            Some(Self { syntax })
31177        } else {
31178            None
31179        }
31180    }
31181    #[inline]
31182    fn syntax(&self) -> &SyntaxNode {
31183        &self.syntax
31184    }
31185}
31186impl AstNode for WithoutTimezone {
31187    #[inline]
31188    fn can_cast(kind: SyntaxKind) -> bool {
31189        kind == SyntaxKind::WITHOUT_TIMEZONE
31190    }
31191    #[inline]
31192    fn cast(syntax: SyntaxNode) -> Option<Self> {
31193        if Self::can_cast(syntax.kind()) {
31194            Some(Self { syntax })
31195        } else {
31196            None
31197        }
31198    }
31199    #[inline]
31200    fn syntax(&self) -> &SyntaxNode {
31201        &self.syntax
31202    }
31203}
31204impl AstNode for XmlColumnOption {
31205    #[inline]
31206    fn can_cast(kind: SyntaxKind) -> bool {
31207        kind == SyntaxKind::XML_COLUMN_OPTION
31208    }
31209    #[inline]
31210    fn cast(syntax: SyntaxNode) -> Option<Self> {
31211        if Self::can_cast(syntax.kind()) {
31212            Some(Self { syntax })
31213        } else {
31214            None
31215        }
31216    }
31217    #[inline]
31218    fn syntax(&self) -> &SyntaxNode {
31219        &self.syntax
31220    }
31221}
31222impl AstNode for XmlColumnOptionList {
31223    #[inline]
31224    fn can_cast(kind: SyntaxKind) -> bool {
31225        kind == SyntaxKind::XML_COLUMN_OPTION_LIST
31226    }
31227    #[inline]
31228    fn cast(syntax: SyntaxNode) -> Option<Self> {
31229        if Self::can_cast(syntax.kind()) {
31230            Some(Self { syntax })
31231        } else {
31232            None
31233        }
31234    }
31235    #[inline]
31236    fn syntax(&self) -> &SyntaxNode {
31237        &self.syntax
31238    }
31239}
31240impl AstNode for XmlElementFn {
31241    #[inline]
31242    fn can_cast(kind: SyntaxKind) -> bool {
31243        kind == SyntaxKind::XML_ELEMENT_FN
31244    }
31245    #[inline]
31246    fn cast(syntax: SyntaxNode) -> Option<Self> {
31247        if Self::can_cast(syntax.kind()) {
31248            Some(Self { syntax })
31249        } else {
31250            None
31251        }
31252    }
31253    #[inline]
31254    fn syntax(&self) -> &SyntaxNode {
31255        &self.syntax
31256    }
31257}
31258impl AstNode for XmlExistsFn {
31259    #[inline]
31260    fn can_cast(kind: SyntaxKind) -> bool {
31261        kind == SyntaxKind::XML_EXISTS_FN
31262    }
31263    #[inline]
31264    fn cast(syntax: SyntaxNode) -> Option<Self> {
31265        if Self::can_cast(syntax.kind()) {
31266            Some(Self { syntax })
31267        } else {
31268            None
31269        }
31270    }
31271    #[inline]
31272    fn syntax(&self) -> &SyntaxNode {
31273        &self.syntax
31274    }
31275}
31276impl AstNode for XmlForestFn {
31277    #[inline]
31278    fn can_cast(kind: SyntaxKind) -> bool {
31279        kind == SyntaxKind::XML_FOREST_FN
31280    }
31281    #[inline]
31282    fn cast(syntax: SyntaxNode) -> Option<Self> {
31283        if Self::can_cast(syntax.kind()) {
31284            Some(Self { syntax })
31285        } else {
31286            None
31287        }
31288    }
31289    #[inline]
31290    fn syntax(&self) -> &SyntaxNode {
31291        &self.syntax
31292    }
31293}
31294impl AstNode for XmlNamespace {
31295    #[inline]
31296    fn can_cast(kind: SyntaxKind) -> bool {
31297        kind == SyntaxKind::XML_NAMESPACE
31298    }
31299    #[inline]
31300    fn cast(syntax: SyntaxNode) -> Option<Self> {
31301        if Self::can_cast(syntax.kind()) {
31302            Some(Self { syntax })
31303        } else {
31304            None
31305        }
31306    }
31307    #[inline]
31308    fn syntax(&self) -> &SyntaxNode {
31309        &self.syntax
31310    }
31311}
31312impl AstNode for XmlNamespaceList {
31313    #[inline]
31314    fn can_cast(kind: SyntaxKind) -> bool {
31315        kind == SyntaxKind::XML_NAMESPACE_LIST
31316    }
31317    #[inline]
31318    fn cast(syntax: SyntaxNode) -> Option<Self> {
31319        if Self::can_cast(syntax.kind()) {
31320            Some(Self { syntax })
31321        } else {
31322            None
31323        }
31324    }
31325    #[inline]
31326    fn syntax(&self) -> &SyntaxNode {
31327        &self.syntax
31328    }
31329}
31330impl AstNode for XmlParseFn {
31331    #[inline]
31332    fn can_cast(kind: SyntaxKind) -> bool {
31333        kind == SyntaxKind::XML_PARSE_FN
31334    }
31335    #[inline]
31336    fn cast(syntax: SyntaxNode) -> Option<Self> {
31337        if Self::can_cast(syntax.kind()) {
31338            Some(Self { syntax })
31339        } else {
31340            None
31341        }
31342    }
31343    #[inline]
31344    fn syntax(&self) -> &SyntaxNode {
31345        &self.syntax
31346    }
31347}
31348impl AstNode for XmlPassingMech {
31349    #[inline]
31350    fn can_cast(kind: SyntaxKind) -> bool {
31351        kind == SyntaxKind::XML_PASSING_MECH
31352    }
31353    #[inline]
31354    fn cast(syntax: SyntaxNode) -> Option<Self> {
31355        if Self::can_cast(syntax.kind()) {
31356            Some(Self { syntax })
31357        } else {
31358            None
31359        }
31360    }
31361    #[inline]
31362    fn syntax(&self) -> &SyntaxNode {
31363        &self.syntax
31364    }
31365}
31366impl AstNode for XmlPiFn {
31367    #[inline]
31368    fn can_cast(kind: SyntaxKind) -> bool {
31369        kind == SyntaxKind::XML_PI_FN
31370    }
31371    #[inline]
31372    fn cast(syntax: SyntaxNode) -> Option<Self> {
31373        if Self::can_cast(syntax.kind()) {
31374            Some(Self { syntax })
31375        } else {
31376            None
31377        }
31378    }
31379    #[inline]
31380    fn syntax(&self) -> &SyntaxNode {
31381        &self.syntax
31382    }
31383}
31384impl AstNode for XmlRootFn {
31385    #[inline]
31386    fn can_cast(kind: SyntaxKind) -> bool {
31387        kind == SyntaxKind::XML_ROOT_FN
31388    }
31389    #[inline]
31390    fn cast(syntax: SyntaxNode) -> Option<Self> {
31391        if Self::can_cast(syntax.kind()) {
31392            Some(Self { syntax })
31393        } else {
31394            None
31395        }
31396    }
31397    #[inline]
31398    fn syntax(&self) -> &SyntaxNode {
31399        &self.syntax
31400    }
31401}
31402impl AstNode for XmlRowPassingClause {
31403    #[inline]
31404    fn can_cast(kind: SyntaxKind) -> bool {
31405        kind == SyntaxKind::XML_ROW_PASSING_CLAUSE
31406    }
31407    #[inline]
31408    fn cast(syntax: SyntaxNode) -> Option<Self> {
31409        if Self::can_cast(syntax.kind()) {
31410            Some(Self { syntax })
31411        } else {
31412            None
31413        }
31414    }
31415    #[inline]
31416    fn syntax(&self) -> &SyntaxNode {
31417        &self.syntax
31418    }
31419}
31420impl AstNode for XmlSerializeFn {
31421    #[inline]
31422    fn can_cast(kind: SyntaxKind) -> bool {
31423        kind == SyntaxKind::XML_SERIALIZE_FN
31424    }
31425    #[inline]
31426    fn cast(syntax: SyntaxNode) -> Option<Self> {
31427        if Self::can_cast(syntax.kind()) {
31428            Some(Self { syntax })
31429        } else {
31430            None
31431        }
31432    }
31433    #[inline]
31434    fn syntax(&self) -> &SyntaxNode {
31435        &self.syntax
31436    }
31437}
31438impl AstNode for XmlTable {
31439    #[inline]
31440    fn can_cast(kind: SyntaxKind) -> bool {
31441        kind == SyntaxKind::XML_TABLE
31442    }
31443    #[inline]
31444    fn cast(syntax: SyntaxNode) -> Option<Self> {
31445        if Self::can_cast(syntax.kind()) {
31446            Some(Self { syntax })
31447        } else {
31448            None
31449        }
31450    }
31451    #[inline]
31452    fn syntax(&self) -> &SyntaxNode {
31453        &self.syntax
31454    }
31455}
31456impl AstNode for XmlTableColumn {
31457    #[inline]
31458    fn can_cast(kind: SyntaxKind) -> bool {
31459        kind == SyntaxKind::XML_TABLE_COLUMN
31460    }
31461    #[inline]
31462    fn cast(syntax: SyntaxNode) -> Option<Self> {
31463        if Self::can_cast(syntax.kind()) {
31464            Some(Self { syntax })
31465        } else {
31466            None
31467        }
31468    }
31469    #[inline]
31470    fn syntax(&self) -> &SyntaxNode {
31471        &self.syntax
31472    }
31473}
31474impl AstNode for XmlTableColumnList {
31475    #[inline]
31476    fn can_cast(kind: SyntaxKind) -> bool {
31477        kind == SyntaxKind::XML_TABLE_COLUMN_LIST
31478    }
31479    #[inline]
31480    fn cast(syntax: SyntaxNode) -> Option<Self> {
31481        if Self::can_cast(syntax.kind()) {
31482            Some(Self { syntax })
31483        } else {
31484            None
31485        }
31486    }
31487    #[inline]
31488    fn syntax(&self) -> &SyntaxNode {
31489        &self.syntax
31490    }
31491}
31492impl AstNode for AlterColumnOption {
31493    #[inline]
31494    fn can_cast(kind: SyntaxKind) -> bool {
31495        matches!(
31496            kind,
31497            SyntaxKind::ADD_GENERATED
31498                | SyntaxKind::DROP_DEFAULT
31499                | SyntaxKind::DROP_EXPRESSION
31500                | SyntaxKind::DROP_IDENTITY
31501                | SyntaxKind::DROP_NOT_NULL
31502                | SyntaxKind::INHERIT
31503                | SyntaxKind::NO_INHERIT
31504                | SyntaxKind::RESET_OPTIONS
31505                | SyntaxKind::RESTART
31506                | SyntaxKind::SET_COMPRESSION
31507                | SyntaxKind::SET_DEFAULT
31508                | SyntaxKind::SET_EXPRESSION
31509                | SyntaxKind::SET_GENERATED
31510                | SyntaxKind::SET_GENERATED_OPTIONS
31511                | SyntaxKind::SET_NOT_NULL
31512                | SyntaxKind::SET_OPTIONS
31513                | SyntaxKind::SET_OPTIONS_LIST
31514                | SyntaxKind::SET_SEQUENCE_OPTION
31515                | SyntaxKind::SET_STATISTICS
31516                | SyntaxKind::SET_STORAGE
31517                | SyntaxKind::SET_TYPE
31518        )
31519    }
31520    #[inline]
31521    fn cast(syntax: SyntaxNode) -> Option<Self> {
31522        let res = match syntax.kind() {
31523            SyntaxKind::ADD_GENERATED => AlterColumnOption::AddGenerated(AddGenerated { syntax }),
31524            SyntaxKind::DROP_DEFAULT => AlterColumnOption::DropDefault(DropDefault { syntax }),
31525            SyntaxKind::DROP_EXPRESSION => {
31526                AlterColumnOption::DropExpression(DropExpression { syntax })
31527            }
31528            SyntaxKind::DROP_IDENTITY => AlterColumnOption::DropIdentity(DropIdentity { syntax }),
31529            SyntaxKind::DROP_NOT_NULL => AlterColumnOption::DropNotNull(DropNotNull { syntax }),
31530            SyntaxKind::INHERIT => AlterColumnOption::Inherit(Inherit { syntax }),
31531            SyntaxKind::NO_INHERIT => AlterColumnOption::NoInherit(NoInherit { syntax }),
31532            SyntaxKind::RESET_OPTIONS => AlterColumnOption::ResetOptions(ResetOptions { syntax }),
31533            SyntaxKind::RESTART => AlterColumnOption::Restart(Restart { syntax }),
31534            SyntaxKind::SET_COMPRESSION => {
31535                AlterColumnOption::SetCompression(SetCompression { syntax })
31536            }
31537            SyntaxKind::SET_DEFAULT => AlterColumnOption::SetDefault(SetDefault { syntax }),
31538            SyntaxKind::SET_EXPRESSION => {
31539                AlterColumnOption::SetExpression(SetExpression { syntax })
31540            }
31541            SyntaxKind::SET_GENERATED => AlterColumnOption::SetGenerated(SetGenerated { syntax }),
31542            SyntaxKind::SET_GENERATED_OPTIONS => {
31543                AlterColumnOption::SetGeneratedOptions(SetGeneratedOptions { syntax })
31544            }
31545            SyntaxKind::SET_NOT_NULL => AlterColumnOption::SetNotNull(SetNotNull { syntax }),
31546            SyntaxKind::SET_OPTIONS => AlterColumnOption::SetOptions(SetOptions { syntax }),
31547            SyntaxKind::SET_OPTIONS_LIST => {
31548                AlterColumnOption::SetOptionsList(SetOptionsList { syntax })
31549            }
31550            SyntaxKind::SET_SEQUENCE_OPTION => {
31551                AlterColumnOption::SetSequenceOption(SetSequenceOption { syntax })
31552            }
31553            SyntaxKind::SET_STATISTICS => {
31554                AlterColumnOption::SetStatistics(SetStatistics { syntax })
31555            }
31556            SyntaxKind::SET_STORAGE => AlterColumnOption::SetStorage(SetStorage { syntax }),
31557            SyntaxKind::SET_TYPE => AlterColumnOption::SetType(SetType { syntax }),
31558            _ => {
31559                return None;
31560            }
31561        };
31562        Some(res)
31563    }
31564    #[inline]
31565    fn syntax(&self) -> &SyntaxNode {
31566        match self {
31567            AlterColumnOption::AddGenerated(it) => &it.syntax,
31568            AlterColumnOption::DropDefault(it) => &it.syntax,
31569            AlterColumnOption::DropExpression(it) => &it.syntax,
31570            AlterColumnOption::DropIdentity(it) => &it.syntax,
31571            AlterColumnOption::DropNotNull(it) => &it.syntax,
31572            AlterColumnOption::Inherit(it) => &it.syntax,
31573            AlterColumnOption::NoInherit(it) => &it.syntax,
31574            AlterColumnOption::ResetOptions(it) => &it.syntax,
31575            AlterColumnOption::Restart(it) => &it.syntax,
31576            AlterColumnOption::SetCompression(it) => &it.syntax,
31577            AlterColumnOption::SetDefault(it) => &it.syntax,
31578            AlterColumnOption::SetExpression(it) => &it.syntax,
31579            AlterColumnOption::SetGenerated(it) => &it.syntax,
31580            AlterColumnOption::SetGeneratedOptions(it) => &it.syntax,
31581            AlterColumnOption::SetNotNull(it) => &it.syntax,
31582            AlterColumnOption::SetOptions(it) => &it.syntax,
31583            AlterColumnOption::SetOptionsList(it) => &it.syntax,
31584            AlterColumnOption::SetSequenceOption(it) => &it.syntax,
31585            AlterColumnOption::SetStatistics(it) => &it.syntax,
31586            AlterColumnOption::SetStorage(it) => &it.syntax,
31587            AlterColumnOption::SetType(it) => &it.syntax,
31588        }
31589    }
31590}
31591impl From<AddGenerated> for AlterColumnOption {
31592    #[inline]
31593    fn from(node: AddGenerated) -> AlterColumnOption {
31594        AlterColumnOption::AddGenerated(node)
31595    }
31596}
31597impl From<DropDefault> for AlterColumnOption {
31598    #[inline]
31599    fn from(node: DropDefault) -> AlterColumnOption {
31600        AlterColumnOption::DropDefault(node)
31601    }
31602}
31603impl From<DropExpression> for AlterColumnOption {
31604    #[inline]
31605    fn from(node: DropExpression) -> AlterColumnOption {
31606        AlterColumnOption::DropExpression(node)
31607    }
31608}
31609impl From<DropIdentity> for AlterColumnOption {
31610    #[inline]
31611    fn from(node: DropIdentity) -> AlterColumnOption {
31612        AlterColumnOption::DropIdentity(node)
31613    }
31614}
31615impl From<DropNotNull> for AlterColumnOption {
31616    #[inline]
31617    fn from(node: DropNotNull) -> AlterColumnOption {
31618        AlterColumnOption::DropNotNull(node)
31619    }
31620}
31621impl From<Inherit> for AlterColumnOption {
31622    #[inline]
31623    fn from(node: Inherit) -> AlterColumnOption {
31624        AlterColumnOption::Inherit(node)
31625    }
31626}
31627impl From<NoInherit> for AlterColumnOption {
31628    #[inline]
31629    fn from(node: NoInherit) -> AlterColumnOption {
31630        AlterColumnOption::NoInherit(node)
31631    }
31632}
31633impl From<ResetOptions> for AlterColumnOption {
31634    #[inline]
31635    fn from(node: ResetOptions) -> AlterColumnOption {
31636        AlterColumnOption::ResetOptions(node)
31637    }
31638}
31639impl From<Restart> for AlterColumnOption {
31640    #[inline]
31641    fn from(node: Restart) -> AlterColumnOption {
31642        AlterColumnOption::Restart(node)
31643    }
31644}
31645impl From<SetCompression> for AlterColumnOption {
31646    #[inline]
31647    fn from(node: SetCompression) -> AlterColumnOption {
31648        AlterColumnOption::SetCompression(node)
31649    }
31650}
31651impl From<SetDefault> for AlterColumnOption {
31652    #[inline]
31653    fn from(node: SetDefault) -> AlterColumnOption {
31654        AlterColumnOption::SetDefault(node)
31655    }
31656}
31657impl From<SetExpression> for AlterColumnOption {
31658    #[inline]
31659    fn from(node: SetExpression) -> AlterColumnOption {
31660        AlterColumnOption::SetExpression(node)
31661    }
31662}
31663impl From<SetGenerated> for AlterColumnOption {
31664    #[inline]
31665    fn from(node: SetGenerated) -> AlterColumnOption {
31666        AlterColumnOption::SetGenerated(node)
31667    }
31668}
31669impl From<SetGeneratedOptions> for AlterColumnOption {
31670    #[inline]
31671    fn from(node: SetGeneratedOptions) -> AlterColumnOption {
31672        AlterColumnOption::SetGeneratedOptions(node)
31673    }
31674}
31675impl From<SetNotNull> for AlterColumnOption {
31676    #[inline]
31677    fn from(node: SetNotNull) -> AlterColumnOption {
31678        AlterColumnOption::SetNotNull(node)
31679    }
31680}
31681impl From<SetOptions> for AlterColumnOption {
31682    #[inline]
31683    fn from(node: SetOptions) -> AlterColumnOption {
31684        AlterColumnOption::SetOptions(node)
31685    }
31686}
31687impl From<SetOptionsList> for AlterColumnOption {
31688    #[inline]
31689    fn from(node: SetOptionsList) -> AlterColumnOption {
31690        AlterColumnOption::SetOptionsList(node)
31691    }
31692}
31693impl From<SetSequenceOption> for AlterColumnOption {
31694    #[inline]
31695    fn from(node: SetSequenceOption) -> AlterColumnOption {
31696        AlterColumnOption::SetSequenceOption(node)
31697    }
31698}
31699impl From<SetStatistics> for AlterColumnOption {
31700    #[inline]
31701    fn from(node: SetStatistics) -> AlterColumnOption {
31702        AlterColumnOption::SetStatistics(node)
31703    }
31704}
31705impl From<SetStorage> for AlterColumnOption {
31706    #[inline]
31707    fn from(node: SetStorage) -> AlterColumnOption {
31708        AlterColumnOption::SetStorage(node)
31709    }
31710}
31711impl From<SetType> for AlterColumnOption {
31712    #[inline]
31713    fn from(node: SetType) -> AlterColumnOption {
31714        AlterColumnOption::SetType(node)
31715    }
31716}
31717impl AstNode for AlterDomainAction {
31718    #[inline]
31719    fn can_cast(kind: SyntaxKind) -> bool {
31720        matches!(
31721            kind,
31722            SyntaxKind::ADD_CONSTRAINT
31723                | SyntaxKind::DROP_CONSTRAINT
31724                | SyntaxKind::DROP_DEFAULT
31725                | SyntaxKind::DROP_NOT_NULL
31726                | SyntaxKind::OWNER_TO
31727                | SyntaxKind::RENAME_CONSTRAINT
31728                | SyntaxKind::RENAME_TO
31729                | SyntaxKind::SET_DEFAULT
31730                | SyntaxKind::SET_NOT_NULL
31731                | SyntaxKind::SET_SCHEMA
31732                | SyntaxKind::VALIDATE_CONSTRAINT
31733        )
31734    }
31735    #[inline]
31736    fn cast(syntax: SyntaxNode) -> Option<Self> {
31737        let res = match syntax.kind() {
31738            SyntaxKind::ADD_CONSTRAINT => {
31739                AlterDomainAction::AddConstraint(AddConstraint { syntax })
31740            }
31741            SyntaxKind::DROP_CONSTRAINT => {
31742                AlterDomainAction::DropConstraint(DropConstraint { syntax })
31743            }
31744            SyntaxKind::DROP_DEFAULT => AlterDomainAction::DropDefault(DropDefault { syntax }),
31745            SyntaxKind::DROP_NOT_NULL => AlterDomainAction::DropNotNull(DropNotNull { syntax }),
31746            SyntaxKind::OWNER_TO => AlterDomainAction::OwnerTo(OwnerTo { syntax }),
31747            SyntaxKind::RENAME_CONSTRAINT => {
31748                AlterDomainAction::RenameConstraint(RenameConstraint { syntax })
31749            }
31750            SyntaxKind::RENAME_TO => AlterDomainAction::RenameTo(RenameTo { syntax }),
31751            SyntaxKind::SET_DEFAULT => AlterDomainAction::SetDefault(SetDefault { syntax }),
31752            SyntaxKind::SET_NOT_NULL => AlterDomainAction::SetNotNull(SetNotNull { syntax }),
31753            SyntaxKind::SET_SCHEMA => AlterDomainAction::SetSchema(SetSchema { syntax }),
31754            SyntaxKind::VALIDATE_CONSTRAINT => {
31755                AlterDomainAction::ValidateConstraint(ValidateConstraint { syntax })
31756            }
31757            _ => {
31758                return None;
31759            }
31760        };
31761        Some(res)
31762    }
31763    #[inline]
31764    fn syntax(&self) -> &SyntaxNode {
31765        match self {
31766            AlterDomainAction::AddConstraint(it) => &it.syntax,
31767            AlterDomainAction::DropConstraint(it) => &it.syntax,
31768            AlterDomainAction::DropDefault(it) => &it.syntax,
31769            AlterDomainAction::DropNotNull(it) => &it.syntax,
31770            AlterDomainAction::OwnerTo(it) => &it.syntax,
31771            AlterDomainAction::RenameConstraint(it) => &it.syntax,
31772            AlterDomainAction::RenameTo(it) => &it.syntax,
31773            AlterDomainAction::SetDefault(it) => &it.syntax,
31774            AlterDomainAction::SetNotNull(it) => &it.syntax,
31775            AlterDomainAction::SetSchema(it) => &it.syntax,
31776            AlterDomainAction::ValidateConstraint(it) => &it.syntax,
31777        }
31778    }
31779}
31780impl From<AddConstraint> for AlterDomainAction {
31781    #[inline]
31782    fn from(node: AddConstraint) -> AlterDomainAction {
31783        AlterDomainAction::AddConstraint(node)
31784    }
31785}
31786impl From<DropConstraint> for AlterDomainAction {
31787    #[inline]
31788    fn from(node: DropConstraint) -> AlterDomainAction {
31789        AlterDomainAction::DropConstraint(node)
31790    }
31791}
31792impl From<DropDefault> for AlterDomainAction {
31793    #[inline]
31794    fn from(node: DropDefault) -> AlterDomainAction {
31795        AlterDomainAction::DropDefault(node)
31796    }
31797}
31798impl From<DropNotNull> for AlterDomainAction {
31799    #[inline]
31800    fn from(node: DropNotNull) -> AlterDomainAction {
31801        AlterDomainAction::DropNotNull(node)
31802    }
31803}
31804impl From<OwnerTo> for AlterDomainAction {
31805    #[inline]
31806    fn from(node: OwnerTo) -> AlterDomainAction {
31807        AlterDomainAction::OwnerTo(node)
31808    }
31809}
31810impl From<RenameConstraint> for AlterDomainAction {
31811    #[inline]
31812    fn from(node: RenameConstraint) -> AlterDomainAction {
31813        AlterDomainAction::RenameConstraint(node)
31814    }
31815}
31816impl From<RenameTo> for AlterDomainAction {
31817    #[inline]
31818    fn from(node: RenameTo) -> AlterDomainAction {
31819        AlterDomainAction::RenameTo(node)
31820    }
31821}
31822impl From<SetDefault> for AlterDomainAction {
31823    #[inline]
31824    fn from(node: SetDefault) -> AlterDomainAction {
31825        AlterDomainAction::SetDefault(node)
31826    }
31827}
31828impl From<SetNotNull> for AlterDomainAction {
31829    #[inline]
31830    fn from(node: SetNotNull) -> AlterDomainAction {
31831        AlterDomainAction::SetNotNull(node)
31832    }
31833}
31834impl From<SetSchema> for AlterDomainAction {
31835    #[inline]
31836    fn from(node: SetSchema) -> AlterDomainAction {
31837        AlterDomainAction::SetSchema(node)
31838    }
31839}
31840impl From<ValidateConstraint> for AlterDomainAction {
31841    #[inline]
31842    fn from(node: ValidateConstraint) -> AlterDomainAction {
31843        AlterDomainAction::ValidateConstraint(node)
31844    }
31845}
31846impl AstNode for AlterIndexAction {
31847    #[inline]
31848    fn can_cast(kind: SyntaxKind) -> bool {
31849        matches!(
31850            kind,
31851            SyntaxKind::ALTER_SET_STATISTICS
31852                | SyntaxKind::ATTACH_PARTITION
31853                | SyntaxKind::DEPENDS_ON_EXTENSION
31854                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31855                | SyntaxKind::RENAME_TO
31856                | SyntaxKind::RESET_OPTIONS
31857                | SyntaxKind::SET_OPTIONS
31858                | SyntaxKind::SET_TABLESPACE
31859        )
31860    }
31861    #[inline]
31862    fn cast(syntax: SyntaxNode) -> Option<Self> {
31863        let res = match syntax.kind() {
31864            SyntaxKind::ALTER_SET_STATISTICS => {
31865                AlterIndexAction::AlterSetStatistics(AlterSetStatistics { syntax })
31866            }
31867            SyntaxKind::ATTACH_PARTITION => {
31868                AlterIndexAction::AttachPartition(AttachPartition { syntax })
31869            }
31870            SyntaxKind::DEPENDS_ON_EXTENSION => {
31871                AlterIndexAction::DependsOnExtension(DependsOnExtension { syntax })
31872            }
31873            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31874                AlterIndexAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31875            }
31876            SyntaxKind::RENAME_TO => AlterIndexAction::RenameTo(RenameTo { syntax }),
31877            SyntaxKind::RESET_OPTIONS => AlterIndexAction::ResetOptions(ResetOptions { syntax }),
31878            SyntaxKind::SET_OPTIONS => AlterIndexAction::SetOptions(SetOptions { syntax }),
31879            SyntaxKind::SET_TABLESPACE => AlterIndexAction::SetTablespace(SetTablespace { syntax }),
31880            _ => {
31881                return None;
31882            }
31883        };
31884        Some(res)
31885    }
31886    #[inline]
31887    fn syntax(&self) -> &SyntaxNode {
31888        match self {
31889            AlterIndexAction::AlterSetStatistics(it) => &it.syntax,
31890            AlterIndexAction::AttachPartition(it) => &it.syntax,
31891            AlterIndexAction::DependsOnExtension(it) => &it.syntax,
31892            AlterIndexAction::NoDependsOnExtension(it) => &it.syntax,
31893            AlterIndexAction::RenameTo(it) => &it.syntax,
31894            AlterIndexAction::ResetOptions(it) => &it.syntax,
31895            AlterIndexAction::SetOptions(it) => &it.syntax,
31896            AlterIndexAction::SetTablespace(it) => &it.syntax,
31897        }
31898    }
31899}
31900impl From<AlterSetStatistics> for AlterIndexAction {
31901    #[inline]
31902    fn from(node: AlterSetStatistics) -> AlterIndexAction {
31903        AlterIndexAction::AlterSetStatistics(node)
31904    }
31905}
31906impl From<AttachPartition> for AlterIndexAction {
31907    #[inline]
31908    fn from(node: AttachPartition) -> AlterIndexAction {
31909        AlterIndexAction::AttachPartition(node)
31910    }
31911}
31912impl From<DependsOnExtension> for AlterIndexAction {
31913    #[inline]
31914    fn from(node: DependsOnExtension) -> AlterIndexAction {
31915        AlterIndexAction::DependsOnExtension(node)
31916    }
31917}
31918impl From<NoDependsOnExtension> for AlterIndexAction {
31919    #[inline]
31920    fn from(node: NoDependsOnExtension) -> AlterIndexAction {
31921        AlterIndexAction::NoDependsOnExtension(node)
31922    }
31923}
31924impl From<RenameTo> for AlterIndexAction {
31925    #[inline]
31926    fn from(node: RenameTo) -> AlterIndexAction {
31927        AlterIndexAction::RenameTo(node)
31928    }
31929}
31930impl From<ResetOptions> for AlterIndexAction {
31931    #[inline]
31932    fn from(node: ResetOptions) -> AlterIndexAction {
31933        AlterIndexAction::ResetOptions(node)
31934    }
31935}
31936impl From<SetOptions> for AlterIndexAction {
31937    #[inline]
31938    fn from(node: SetOptions) -> AlterIndexAction {
31939        AlterIndexAction::SetOptions(node)
31940    }
31941}
31942impl From<SetTablespace> for AlterIndexAction {
31943    #[inline]
31944    fn from(node: SetTablespace) -> AlterIndexAction {
31945        AlterIndexAction::SetTablespace(node)
31946    }
31947}
31948impl AstNode for AlterMaterializedViewAction {
31949    #[inline]
31950    fn can_cast(kind: SyntaxKind) -> bool {
31951        matches!(
31952            kind,
31953            SyntaxKind::DEPENDS_ON_EXTENSION
31954                | SyntaxKind::NO_DEPENDS_ON_EXTENSION
31955                | SyntaxKind::RENAME_COLUMN
31956                | SyntaxKind::RENAME_TO
31957                | SyntaxKind::SET_SCHEMA
31958        )
31959    }
31960    #[inline]
31961    fn cast(syntax: SyntaxNode) -> Option<Self> {
31962        let res = match syntax.kind() {
31963            SyntaxKind::DEPENDS_ON_EXTENSION => {
31964                AlterMaterializedViewAction::DependsOnExtension(DependsOnExtension { syntax })
31965            }
31966            SyntaxKind::NO_DEPENDS_ON_EXTENSION => {
31967                AlterMaterializedViewAction::NoDependsOnExtension(NoDependsOnExtension { syntax })
31968            }
31969            SyntaxKind::RENAME_COLUMN => {
31970                AlterMaterializedViewAction::RenameColumn(RenameColumn { syntax })
31971            }
31972            SyntaxKind::RENAME_TO => AlterMaterializedViewAction::RenameTo(RenameTo { syntax }),
31973            SyntaxKind::SET_SCHEMA => AlterMaterializedViewAction::SetSchema(SetSchema { syntax }),
31974            _ => {
31975                if let Some(result) = AlterTableAction::cast(syntax) {
31976                    return Some(AlterMaterializedViewAction::AlterTableAction(result));
31977                }
31978                return None;
31979            }
31980        };
31981        Some(res)
31982    }
31983    #[inline]
31984    fn syntax(&self) -> &SyntaxNode {
31985        match self {
31986            AlterMaterializedViewAction::DependsOnExtension(it) => &it.syntax,
31987            AlterMaterializedViewAction::NoDependsOnExtension(it) => &it.syntax,
31988            AlterMaterializedViewAction::RenameColumn(it) => &it.syntax,
31989            AlterMaterializedViewAction::RenameTo(it) => &it.syntax,
31990            AlterMaterializedViewAction::SetSchema(it) => &it.syntax,
31991            AlterMaterializedViewAction::AlterTableAction(it) => it.syntax(),
31992        }
31993    }
31994}
31995impl From<DependsOnExtension> for AlterMaterializedViewAction {
31996    #[inline]
31997    fn from(node: DependsOnExtension) -> AlterMaterializedViewAction {
31998        AlterMaterializedViewAction::DependsOnExtension(node)
31999    }
32000}
32001impl From<NoDependsOnExtension> for AlterMaterializedViewAction {
32002    #[inline]
32003    fn from(node: NoDependsOnExtension) -> AlterMaterializedViewAction {
32004        AlterMaterializedViewAction::NoDependsOnExtension(node)
32005    }
32006}
32007impl From<RenameColumn> for AlterMaterializedViewAction {
32008    #[inline]
32009    fn from(node: RenameColumn) -> AlterMaterializedViewAction {
32010        AlterMaterializedViewAction::RenameColumn(node)
32011    }
32012}
32013impl From<RenameTo> for AlterMaterializedViewAction {
32014    #[inline]
32015    fn from(node: RenameTo) -> AlterMaterializedViewAction {
32016        AlterMaterializedViewAction::RenameTo(node)
32017    }
32018}
32019impl From<SetSchema> for AlterMaterializedViewAction {
32020    #[inline]
32021    fn from(node: SetSchema) -> AlterMaterializedViewAction {
32022        AlterMaterializedViewAction::SetSchema(node)
32023    }
32024}
32025impl AstNode for AlterPropertyGraphAction {
32026    #[inline]
32027    fn can_cast(kind: SyntaxKind) -> bool {
32028        matches!(
32029            kind,
32030            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES
32031                | SyntaxKind::ADD_VERTEX_EDGE_TABLES
32032                | SyntaxKind::ALTER_VERTEX_EDGE_LABELS
32033                | SyntaxKind::DROP_EDGE_TABLES
32034                | SyntaxKind::DROP_VERTEX_EDGE_LABEL
32035                | SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES
32036                | SyntaxKind::DROP_VERTEX_TABLES
32037                | SyntaxKind::OWNER_TO
32038                | SyntaxKind::RENAME_TO
32039                | SyntaxKind::SET_SCHEMA
32040        )
32041    }
32042    #[inline]
32043    fn cast(syntax: SyntaxNode) -> Option<Self> {
32044        let res = match syntax.kind() {
32045            SyntaxKind::ADD_VERTEX_EDGE_LABEL_PROPERTIES => {
32046                AlterPropertyGraphAction::AddVertexEdgeLabelProperties(
32047                    AddVertexEdgeLabelProperties { syntax },
32048                )
32049            }
32050            SyntaxKind::ADD_VERTEX_EDGE_TABLES => {
32051                AlterPropertyGraphAction::AddVertexEdgeTables(AddVertexEdgeTables { syntax })
32052            }
32053            SyntaxKind::ALTER_VERTEX_EDGE_LABELS => {
32054                AlterPropertyGraphAction::AlterVertexEdgeLabels(AlterVertexEdgeLabels { syntax })
32055            }
32056            SyntaxKind::DROP_EDGE_TABLES => {
32057                AlterPropertyGraphAction::DropEdgeTables(DropEdgeTables { syntax })
32058            }
32059            SyntaxKind::DROP_VERTEX_EDGE_LABEL => {
32060                AlterPropertyGraphAction::DropVertexEdgeLabel(DropVertexEdgeLabel { syntax })
32061            }
32062            SyntaxKind::DROP_VERTEX_EDGE_LABEL_PROPERTIES => {
32063                AlterPropertyGraphAction::DropVertexEdgeLabelProperties(
32064                    DropVertexEdgeLabelProperties { syntax },
32065                )
32066            }
32067            SyntaxKind::DROP_VERTEX_TABLES => {
32068                AlterPropertyGraphAction::DropVertexTables(DropVertexTables { syntax })
32069            }
32070            SyntaxKind::OWNER_TO => AlterPropertyGraphAction::OwnerTo(OwnerTo { syntax }),
32071            SyntaxKind::RENAME_TO => AlterPropertyGraphAction::RenameTo(RenameTo { syntax }),
32072            SyntaxKind::SET_SCHEMA => AlterPropertyGraphAction::SetSchema(SetSchema { syntax }),
32073            _ => {
32074                return None;
32075            }
32076        };
32077        Some(res)
32078    }
32079    #[inline]
32080    fn syntax(&self) -> &SyntaxNode {
32081        match self {
32082            AlterPropertyGraphAction::AddVertexEdgeLabelProperties(it) => &it.syntax,
32083            AlterPropertyGraphAction::AddVertexEdgeTables(it) => &it.syntax,
32084            AlterPropertyGraphAction::AlterVertexEdgeLabels(it) => &it.syntax,
32085            AlterPropertyGraphAction::DropEdgeTables(it) => &it.syntax,
32086            AlterPropertyGraphAction::DropVertexEdgeLabel(it) => &it.syntax,
32087            AlterPropertyGraphAction::DropVertexEdgeLabelProperties(it) => &it.syntax,
32088            AlterPropertyGraphAction::DropVertexTables(it) => &it.syntax,
32089            AlterPropertyGraphAction::OwnerTo(it) => &it.syntax,
32090            AlterPropertyGraphAction::RenameTo(it) => &it.syntax,
32091            AlterPropertyGraphAction::SetSchema(it) => &it.syntax,
32092        }
32093    }
32094}
32095impl From<AddVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32096    #[inline]
32097    fn from(node: AddVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32098        AlterPropertyGraphAction::AddVertexEdgeLabelProperties(node)
32099    }
32100}
32101impl From<AddVertexEdgeTables> for AlterPropertyGraphAction {
32102    #[inline]
32103    fn from(node: AddVertexEdgeTables) -> AlterPropertyGraphAction {
32104        AlterPropertyGraphAction::AddVertexEdgeTables(node)
32105    }
32106}
32107impl From<AlterVertexEdgeLabels> for AlterPropertyGraphAction {
32108    #[inline]
32109    fn from(node: AlterVertexEdgeLabels) -> AlterPropertyGraphAction {
32110        AlterPropertyGraphAction::AlterVertexEdgeLabels(node)
32111    }
32112}
32113impl From<DropEdgeTables> for AlterPropertyGraphAction {
32114    #[inline]
32115    fn from(node: DropEdgeTables) -> AlterPropertyGraphAction {
32116        AlterPropertyGraphAction::DropEdgeTables(node)
32117    }
32118}
32119impl From<DropVertexEdgeLabel> for AlterPropertyGraphAction {
32120    #[inline]
32121    fn from(node: DropVertexEdgeLabel) -> AlterPropertyGraphAction {
32122        AlterPropertyGraphAction::DropVertexEdgeLabel(node)
32123    }
32124}
32125impl From<DropVertexEdgeLabelProperties> for AlterPropertyGraphAction {
32126    #[inline]
32127    fn from(node: DropVertexEdgeLabelProperties) -> AlterPropertyGraphAction {
32128        AlterPropertyGraphAction::DropVertexEdgeLabelProperties(node)
32129    }
32130}
32131impl From<DropVertexTables> for AlterPropertyGraphAction {
32132    #[inline]
32133    fn from(node: DropVertexTables) -> AlterPropertyGraphAction {
32134        AlterPropertyGraphAction::DropVertexTables(node)
32135    }
32136}
32137impl From<OwnerTo> for AlterPropertyGraphAction {
32138    #[inline]
32139    fn from(node: OwnerTo) -> AlterPropertyGraphAction {
32140        AlterPropertyGraphAction::OwnerTo(node)
32141    }
32142}
32143impl From<RenameTo> for AlterPropertyGraphAction {
32144    #[inline]
32145    fn from(node: RenameTo) -> AlterPropertyGraphAction {
32146        AlterPropertyGraphAction::RenameTo(node)
32147    }
32148}
32149impl From<SetSchema> for AlterPropertyGraphAction {
32150    #[inline]
32151    fn from(node: SetSchema) -> AlterPropertyGraphAction {
32152        AlterPropertyGraphAction::SetSchema(node)
32153    }
32154}
32155impl AstNode for AlterTableAction {
32156    #[inline]
32157    fn can_cast(kind: SyntaxKind) -> bool {
32158        matches!(
32159            kind,
32160            SyntaxKind::ADD_COLUMN
32161                | SyntaxKind::ADD_CONSTRAINT
32162                | SyntaxKind::ALTER_COLUMN
32163                | SyntaxKind::ALTER_CONSTRAINT
32164                | SyntaxKind::ATTACH_PARTITION
32165                | SyntaxKind::CLUSTER_ON
32166                | SyntaxKind::DETACH_PARTITION
32167                | SyntaxKind::DISABLE_RLS
32168                | SyntaxKind::DISABLE_RULE
32169                | SyntaxKind::DISABLE_TRIGGER
32170                | SyntaxKind::DROP_COLUMN
32171                | SyntaxKind::DROP_CONSTRAINT
32172                | SyntaxKind::ENABLE_ALWAYS_RULE
32173                | SyntaxKind::ENABLE_ALWAYS_TRIGGER
32174                | SyntaxKind::ENABLE_REPLICA_RULE
32175                | SyntaxKind::ENABLE_REPLICA_TRIGGER
32176                | SyntaxKind::ENABLE_RLS
32177                | SyntaxKind::ENABLE_RULE
32178                | SyntaxKind::ENABLE_TRIGGER
32179                | SyntaxKind::FORCE_RLS
32180                | SyntaxKind::INHERIT_TABLE
32181                | SyntaxKind::MERGE_PARTITIONS
32182                | SyntaxKind::NO_FORCE_RLS
32183                | SyntaxKind::NO_INHERIT_TABLE
32184                | SyntaxKind::NOT_OF
32185                | SyntaxKind::OF_TYPE
32186                | SyntaxKind::OPTION_ITEM_LIST
32187                | SyntaxKind::OWNER_TO
32188                | SyntaxKind::RENAME_COLUMN
32189                | SyntaxKind::RENAME_CONSTRAINT
32190                | SyntaxKind::RENAME_TO
32191                | SyntaxKind::REPLICA_IDENTITY
32192                | SyntaxKind::RESET_OPTIONS
32193                | SyntaxKind::SET_ACCESS_METHOD
32194                | SyntaxKind::SET_LOGGED
32195                | SyntaxKind::SET_OPTIONS
32196                | SyntaxKind::SET_SCHEMA
32197                | SyntaxKind::SET_TABLESPACE
32198                | SyntaxKind::SET_UNLOGGED
32199                | SyntaxKind::SET_WITHOUT_CLUSTER
32200                | SyntaxKind::SET_WITHOUT_OIDS
32201                | SyntaxKind::SPLIT_PARTITION
32202                | SyntaxKind::VALIDATE_CONSTRAINT
32203        )
32204    }
32205    #[inline]
32206    fn cast(syntax: SyntaxNode) -> Option<Self> {
32207        let res = match syntax.kind() {
32208            SyntaxKind::ADD_COLUMN => AlterTableAction::AddColumn(AddColumn { syntax }),
32209            SyntaxKind::ADD_CONSTRAINT => AlterTableAction::AddConstraint(AddConstraint { syntax }),
32210            SyntaxKind::ALTER_COLUMN => AlterTableAction::AlterColumn(AlterColumn { syntax }),
32211            SyntaxKind::ALTER_CONSTRAINT => {
32212                AlterTableAction::AlterConstraint(AlterConstraint { syntax })
32213            }
32214            SyntaxKind::ATTACH_PARTITION => {
32215                AlterTableAction::AttachPartition(AttachPartition { syntax })
32216            }
32217            SyntaxKind::CLUSTER_ON => AlterTableAction::ClusterOn(ClusterOn { syntax }),
32218            SyntaxKind::DETACH_PARTITION => {
32219                AlterTableAction::DetachPartition(DetachPartition { syntax })
32220            }
32221            SyntaxKind::DISABLE_RLS => AlterTableAction::DisableRls(DisableRls { syntax }),
32222            SyntaxKind::DISABLE_RULE => AlterTableAction::DisableRule(DisableRule { syntax }),
32223            SyntaxKind::DISABLE_TRIGGER => {
32224                AlterTableAction::DisableTrigger(DisableTrigger { syntax })
32225            }
32226            SyntaxKind::DROP_COLUMN => AlterTableAction::DropColumn(DropColumn { syntax }),
32227            SyntaxKind::DROP_CONSTRAINT => {
32228                AlterTableAction::DropConstraint(DropConstraint { syntax })
32229            }
32230            SyntaxKind::ENABLE_ALWAYS_RULE => {
32231                AlterTableAction::EnableAlwaysRule(EnableAlwaysRule { syntax })
32232            }
32233            SyntaxKind::ENABLE_ALWAYS_TRIGGER => {
32234                AlterTableAction::EnableAlwaysTrigger(EnableAlwaysTrigger { syntax })
32235            }
32236            SyntaxKind::ENABLE_REPLICA_RULE => {
32237                AlterTableAction::EnableReplicaRule(EnableReplicaRule { syntax })
32238            }
32239            SyntaxKind::ENABLE_REPLICA_TRIGGER => {
32240                AlterTableAction::EnableReplicaTrigger(EnableReplicaTrigger { syntax })
32241            }
32242            SyntaxKind::ENABLE_RLS => AlterTableAction::EnableRls(EnableRls { syntax }),
32243            SyntaxKind::ENABLE_RULE => AlterTableAction::EnableRule(EnableRule { syntax }),
32244            SyntaxKind::ENABLE_TRIGGER => AlterTableAction::EnableTrigger(EnableTrigger { syntax }),
32245            SyntaxKind::FORCE_RLS => AlterTableAction::ForceRls(ForceRls { syntax }),
32246            SyntaxKind::INHERIT_TABLE => AlterTableAction::InheritTable(InheritTable { syntax }),
32247            SyntaxKind::MERGE_PARTITIONS => {
32248                AlterTableAction::MergePartitions(MergePartitions { syntax })
32249            }
32250            SyntaxKind::NO_FORCE_RLS => AlterTableAction::NoForceRls(NoForceRls { syntax }),
32251            SyntaxKind::NO_INHERIT_TABLE => {
32252                AlterTableAction::NoInheritTable(NoInheritTable { syntax })
32253            }
32254            SyntaxKind::NOT_OF => AlterTableAction::NotOf(NotOf { syntax }),
32255            SyntaxKind::OF_TYPE => AlterTableAction::OfType(OfType { syntax }),
32256            SyntaxKind::OPTION_ITEM_LIST => {
32257                AlterTableAction::OptionItemList(OptionItemList { syntax })
32258            }
32259            SyntaxKind::OWNER_TO => AlterTableAction::OwnerTo(OwnerTo { syntax }),
32260            SyntaxKind::RENAME_COLUMN => AlterTableAction::RenameColumn(RenameColumn { syntax }),
32261            SyntaxKind::RENAME_CONSTRAINT => {
32262                AlterTableAction::RenameConstraint(RenameConstraint { syntax })
32263            }
32264            SyntaxKind::RENAME_TO => AlterTableAction::RenameTo(RenameTo { syntax }),
32265            SyntaxKind::REPLICA_IDENTITY => {
32266                AlterTableAction::ReplicaIdentity(ReplicaIdentity { syntax })
32267            }
32268            SyntaxKind::RESET_OPTIONS => AlterTableAction::ResetOptions(ResetOptions { syntax }),
32269            SyntaxKind::SET_ACCESS_METHOD => {
32270                AlterTableAction::SetAccessMethod(SetAccessMethod { syntax })
32271            }
32272            SyntaxKind::SET_LOGGED => AlterTableAction::SetLogged(SetLogged { syntax }),
32273            SyntaxKind::SET_OPTIONS => AlterTableAction::SetOptions(SetOptions { syntax }),
32274            SyntaxKind::SET_SCHEMA => AlterTableAction::SetSchema(SetSchema { syntax }),
32275            SyntaxKind::SET_TABLESPACE => AlterTableAction::SetTablespace(SetTablespace { syntax }),
32276            SyntaxKind::SET_UNLOGGED => AlterTableAction::SetUnlogged(SetUnlogged { syntax }),
32277            SyntaxKind::SET_WITHOUT_CLUSTER => {
32278                AlterTableAction::SetWithoutCluster(SetWithoutCluster { syntax })
32279            }
32280            SyntaxKind::SET_WITHOUT_OIDS => {
32281                AlterTableAction::SetWithoutOids(SetWithoutOids { syntax })
32282            }
32283            SyntaxKind::SPLIT_PARTITION => {
32284                AlterTableAction::SplitPartition(SplitPartition { syntax })
32285            }
32286            SyntaxKind::VALIDATE_CONSTRAINT => {
32287                AlterTableAction::ValidateConstraint(ValidateConstraint { syntax })
32288            }
32289            _ => {
32290                return None;
32291            }
32292        };
32293        Some(res)
32294    }
32295    #[inline]
32296    fn syntax(&self) -> &SyntaxNode {
32297        match self {
32298            AlterTableAction::AddColumn(it) => &it.syntax,
32299            AlterTableAction::AddConstraint(it) => &it.syntax,
32300            AlterTableAction::AlterColumn(it) => &it.syntax,
32301            AlterTableAction::AlterConstraint(it) => &it.syntax,
32302            AlterTableAction::AttachPartition(it) => &it.syntax,
32303            AlterTableAction::ClusterOn(it) => &it.syntax,
32304            AlterTableAction::DetachPartition(it) => &it.syntax,
32305            AlterTableAction::DisableRls(it) => &it.syntax,
32306            AlterTableAction::DisableRule(it) => &it.syntax,
32307            AlterTableAction::DisableTrigger(it) => &it.syntax,
32308            AlterTableAction::DropColumn(it) => &it.syntax,
32309            AlterTableAction::DropConstraint(it) => &it.syntax,
32310            AlterTableAction::EnableAlwaysRule(it) => &it.syntax,
32311            AlterTableAction::EnableAlwaysTrigger(it) => &it.syntax,
32312            AlterTableAction::EnableReplicaRule(it) => &it.syntax,
32313            AlterTableAction::EnableReplicaTrigger(it) => &it.syntax,
32314            AlterTableAction::EnableRls(it) => &it.syntax,
32315            AlterTableAction::EnableRule(it) => &it.syntax,
32316            AlterTableAction::EnableTrigger(it) => &it.syntax,
32317            AlterTableAction::ForceRls(it) => &it.syntax,
32318            AlterTableAction::InheritTable(it) => &it.syntax,
32319            AlterTableAction::MergePartitions(it) => &it.syntax,
32320            AlterTableAction::NoForceRls(it) => &it.syntax,
32321            AlterTableAction::NoInheritTable(it) => &it.syntax,
32322            AlterTableAction::NotOf(it) => &it.syntax,
32323            AlterTableAction::OfType(it) => &it.syntax,
32324            AlterTableAction::OptionItemList(it) => &it.syntax,
32325            AlterTableAction::OwnerTo(it) => &it.syntax,
32326            AlterTableAction::RenameColumn(it) => &it.syntax,
32327            AlterTableAction::RenameConstraint(it) => &it.syntax,
32328            AlterTableAction::RenameTo(it) => &it.syntax,
32329            AlterTableAction::ReplicaIdentity(it) => &it.syntax,
32330            AlterTableAction::ResetOptions(it) => &it.syntax,
32331            AlterTableAction::SetAccessMethod(it) => &it.syntax,
32332            AlterTableAction::SetLogged(it) => &it.syntax,
32333            AlterTableAction::SetOptions(it) => &it.syntax,
32334            AlterTableAction::SetSchema(it) => &it.syntax,
32335            AlterTableAction::SetTablespace(it) => &it.syntax,
32336            AlterTableAction::SetUnlogged(it) => &it.syntax,
32337            AlterTableAction::SetWithoutCluster(it) => &it.syntax,
32338            AlterTableAction::SetWithoutOids(it) => &it.syntax,
32339            AlterTableAction::SplitPartition(it) => &it.syntax,
32340            AlterTableAction::ValidateConstraint(it) => &it.syntax,
32341        }
32342    }
32343}
32344impl From<AddColumn> for AlterTableAction {
32345    #[inline]
32346    fn from(node: AddColumn) -> AlterTableAction {
32347        AlterTableAction::AddColumn(node)
32348    }
32349}
32350impl From<AddConstraint> for AlterTableAction {
32351    #[inline]
32352    fn from(node: AddConstraint) -> AlterTableAction {
32353        AlterTableAction::AddConstraint(node)
32354    }
32355}
32356impl From<AlterColumn> for AlterTableAction {
32357    #[inline]
32358    fn from(node: AlterColumn) -> AlterTableAction {
32359        AlterTableAction::AlterColumn(node)
32360    }
32361}
32362impl From<AlterConstraint> for AlterTableAction {
32363    #[inline]
32364    fn from(node: AlterConstraint) -> AlterTableAction {
32365        AlterTableAction::AlterConstraint(node)
32366    }
32367}
32368impl From<AttachPartition> for AlterTableAction {
32369    #[inline]
32370    fn from(node: AttachPartition) -> AlterTableAction {
32371        AlterTableAction::AttachPartition(node)
32372    }
32373}
32374impl From<ClusterOn> for AlterTableAction {
32375    #[inline]
32376    fn from(node: ClusterOn) -> AlterTableAction {
32377        AlterTableAction::ClusterOn(node)
32378    }
32379}
32380impl From<DetachPartition> for AlterTableAction {
32381    #[inline]
32382    fn from(node: DetachPartition) -> AlterTableAction {
32383        AlterTableAction::DetachPartition(node)
32384    }
32385}
32386impl From<DisableRls> for AlterTableAction {
32387    #[inline]
32388    fn from(node: DisableRls) -> AlterTableAction {
32389        AlterTableAction::DisableRls(node)
32390    }
32391}
32392impl From<DisableRule> for AlterTableAction {
32393    #[inline]
32394    fn from(node: DisableRule) -> AlterTableAction {
32395        AlterTableAction::DisableRule(node)
32396    }
32397}
32398impl From<DisableTrigger> for AlterTableAction {
32399    #[inline]
32400    fn from(node: DisableTrigger) -> AlterTableAction {
32401        AlterTableAction::DisableTrigger(node)
32402    }
32403}
32404impl From<DropColumn> for AlterTableAction {
32405    #[inline]
32406    fn from(node: DropColumn) -> AlterTableAction {
32407        AlterTableAction::DropColumn(node)
32408    }
32409}
32410impl From<DropConstraint> for AlterTableAction {
32411    #[inline]
32412    fn from(node: DropConstraint) -> AlterTableAction {
32413        AlterTableAction::DropConstraint(node)
32414    }
32415}
32416impl From<EnableAlwaysRule> for AlterTableAction {
32417    #[inline]
32418    fn from(node: EnableAlwaysRule) -> AlterTableAction {
32419        AlterTableAction::EnableAlwaysRule(node)
32420    }
32421}
32422impl From<EnableAlwaysTrigger> for AlterTableAction {
32423    #[inline]
32424    fn from(node: EnableAlwaysTrigger) -> AlterTableAction {
32425        AlterTableAction::EnableAlwaysTrigger(node)
32426    }
32427}
32428impl From<EnableReplicaRule> for AlterTableAction {
32429    #[inline]
32430    fn from(node: EnableReplicaRule) -> AlterTableAction {
32431        AlterTableAction::EnableReplicaRule(node)
32432    }
32433}
32434impl From<EnableReplicaTrigger> for AlterTableAction {
32435    #[inline]
32436    fn from(node: EnableReplicaTrigger) -> AlterTableAction {
32437        AlterTableAction::EnableReplicaTrigger(node)
32438    }
32439}
32440impl From<EnableRls> for AlterTableAction {
32441    #[inline]
32442    fn from(node: EnableRls) -> AlterTableAction {
32443        AlterTableAction::EnableRls(node)
32444    }
32445}
32446impl From<EnableRule> for AlterTableAction {
32447    #[inline]
32448    fn from(node: EnableRule) -> AlterTableAction {
32449        AlterTableAction::EnableRule(node)
32450    }
32451}
32452impl From<EnableTrigger> for AlterTableAction {
32453    #[inline]
32454    fn from(node: EnableTrigger) -> AlterTableAction {
32455        AlterTableAction::EnableTrigger(node)
32456    }
32457}
32458impl From<ForceRls> for AlterTableAction {
32459    #[inline]
32460    fn from(node: ForceRls) -> AlterTableAction {
32461        AlterTableAction::ForceRls(node)
32462    }
32463}
32464impl From<InheritTable> for AlterTableAction {
32465    #[inline]
32466    fn from(node: InheritTable) -> AlterTableAction {
32467        AlterTableAction::InheritTable(node)
32468    }
32469}
32470impl From<MergePartitions> for AlterTableAction {
32471    #[inline]
32472    fn from(node: MergePartitions) -> AlterTableAction {
32473        AlterTableAction::MergePartitions(node)
32474    }
32475}
32476impl From<NoForceRls> for AlterTableAction {
32477    #[inline]
32478    fn from(node: NoForceRls) -> AlterTableAction {
32479        AlterTableAction::NoForceRls(node)
32480    }
32481}
32482impl From<NoInheritTable> for AlterTableAction {
32483    #[inline]
32484    fn from(node: NoInheritTable) -> AlterTableAction {
32485        AlterTableAction::NoInheritTable(node)
32486    }
32487}
32488impl From<NotOf> for AlterTableAction {
32489    #[inline]
32490    fn from(node: NotOf) -> AlterTableAction {
32491        AlterTableAction::NotOf(node)
32492    }
32493}
32494impl From<OfType> for AlterTableAction {
32495    #[inline]
32496    fn from(node: OfType) -> AlterTableAction {
32497        AlterTableAction::OfType(node)
32498    }
32499}
32500impl From<OptionItemList> for AlterTableAction {
32501    #[inline]
32502    fn from(node: OptionItemList) -> AlterTableAction {
32503        AlterTableAction::OptionItemList(node)
32504    }
32505}
32506impl From<OwnerTo> for AlterTableAction {
32507    #[inline]
32508    fn from(node: OwnerTo) -> AlterTableAction {
32509        AlterTableAction::OwnerTo(node)
32510    }
32511}
32512impl From<RenameColumn> for AlterTableAction {
32513    #[inline]
32514    fn from(node: RenameColumn) -> AlterTableAction {
32515        AlterTableAction::RenameColumn(node)
32516    }
32517}
32518impl From<RenameConstraint> for AlterTableAction {
32519    #[inline]
32520    fn from(node: RenameConstraint) -> AlterTableAction {
32521        AlterTableAction::RenameConstraint(node)
32522    }
32523}
32524impl From<RenameTo> for AlterTableAction {
32525    #[inline]
32526    fn from(node: RenameTo) -> AlterTableAction {
32527        AlterTableAction::RenameTo(node)
32528    }
32529}
32530impl From<ReplicaIdentity> for AlterTableAction {
32531    #[inline]
32532    fn from(node: ReplicaIdentity) -> AlterTableAction {
32533        AlterTableAction::ReplicaIdentity(node)
32534    }
32535}
32536impl From<ResetOptions> for AlterTableAction {
32537    #[inline]
32538    fn from(node: ResetOptions) -> AlterTableAction {
32539        AlterTableAction::ResetOptions(node)
32540    }
32541}
32542impl From<SetAccessMethod> for AlterTableAction {
32543    #[inline]
32544    fn from(node: SetAccessMethod) -> AlterTableAction {
32545        AlterTableAction::SetAccessMethod(node)
32546    }
32547}
32548impl From<SetLogged> for AlterTableAction {
32549    #[inline]
32550    fn from(node: SetLogged) -> AlterTableAction {
32551        AlterTableAction::SetLogged(node)
32552    }
32553}
32554impl From<SetOptions> for AlterTableAction {
32555    #[inline]
32556    fn from(node: SetOptions) -> AlterTableAction {
32557        AlterTableAction::SetOptions(node)
32558    }
32559}
32560impl From<SetSchema> for AlterTableAction {
32561    #[inline]
32562    fn from(node: SetSchema) -> AlterTableAction {
32563        AlterTableAction::SetSchema(node)
32564    }
32565}
32566impl From<SetTablespace> for AlterTableAction {
32567    #[inline]
32568    fn from(node: SetTablespace) -> AlterTableAction {
32569        AlterTableAction::SetTablespace(node)
32570    }
32571}
32572impl From<SetUnlogged> for AlterTableAction {
32573    #[inline]
32574    fn from(node: SetUnlogged) -> AlterTableAction {
32575        AlterTableAction::SetUnlogged(node)
32576    }
32577}
32578impl From<SetWithoutCluster> for AlterTableAction {
32579    #[inline]
32580    fn from(node: SetWithoutCluster) -> AlterTableAction {
32581        AlterTableAction::SetWithoutCluster(node)
32582    }
32583}
32584impl From<SetWithoutOids> for AlterTableAction {
32585    #[inline]
32586    fn from(node: SetWithoutOids) -> AlterTableAction {
32587        AlterTableAction::SetWithoutOids(node)
32588    }
32589}
32590impl From<SplitPartition> for AlterTableAction {
32591    #[inline]
32592    fn from(node: SplitPartition) -> AlterTableAction {
32593        AlterTableAction::SplitPartition(node)
32594    }
32595}
32596impl From<ValidateConstraint> for AlterTableAction {
32597    #[inline]
32598    fn from(node: ValidateConstraint) -> AlterTableAction {
32599        AlterTableAction::ValidateConstraint(node)
32600    }
32601}
32602impl AstNode for AlterTypeAction {
32603    #[inline]
32604    fn can_cast(kind: SyntaxKind) -> bool {
32605        matches!(
32606            kind,
32607            SyntaxKind::ADD_ATTRIBUTE | SyntaxKind::ALTER_ATTRIBUTE | SyntaxKind::DROP_ATTRIBUTE
32608        )
32609    }
32610    #[inline]
32611    fn cast(syntax: SyntaxNode) -> Option<Self> {
32612        let res = match syntax.kind() {
32613            SyntaxKind::ADD_ATTRIBUTE => AlterTypeAction::AddAttribute(AddAttribute { syntax }),
32614            SyntaxKind::ALTER_ATTRIBUTE => {
32615                AlterTypeAction::AlterAttribute(AlterAttribute { syntax })
32616            }
32617            SyntaxKind::DROP_ATTRIBUTE => AlterTypeAction::DropAttribute(DropAttribute { syntax }),
32618            _ => {
32619                return None;
32620            }
32621        };
32622        Some(res)
32623    }
32624    #[inline]
32625    fn syntax(&self) -> &SyntaxNode {
32626        match self {
32627            AlterTypeAction::AddAttribute(it) => &it.syntax,
32628            AlterTypeAction::AlterAttribute(it) => &it.syntax,
32629            AlterTypeAction::DropAttribute(it) => &it.syntax,
32630        }
32631    }
32632}
32633impl From<AddAttribute> for AlterTypeAction {
32634    #[inline]
32635    fn from(node: AddAttribute) -> AlterTypeAction {
32636        AlterTypeAction::AddAttribute(node)
32637    }
32638}
32639impl From<AlterAttribute> for AlterTypeAction {
32640    #[inline]
32641    fn from(node: AlterAttribute) -> AlterTypeAction {
32642        AlterTypeAction::AlterAttribute(node)
32643    }
32644}
32645impl From<DropAttribute> for AlterTypeAction {
32646    #[inline]
32647    fn from(node: DropAttribute) -> AlterTypeAction {
32648        AlterTypeAction::DropAttribute(node)
32649    }
32650}
32651impl AstNode for ColumnConstraint {
32652    #[inline]
32653    fn can_cast(kind: SyntaxKind) -> bool {
32654        matches!(
32655            kind,
32656            SyntaxKind::CHECK_CONSTRAINT
32657                | SyntaxKind::DEFAULT_CONSTRAINT
32658                | SyntaxKind::EXCLUDE_CONSTRAINT
32659                | SyntaxKind::NOT_NULL_CONSTRAINT
32660                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32661                | SyntaxKind::REFERENCES_CONSTRAINT
32662                | SyntaxKind::UNIQUE_CONSTRAINT
32663        )
32664    }
32665    #[inline]
32666    fn cast(syntax: SyntaxNode) -> Option<Self> {
32667        let res = match syntax.kind() {
32668            SyntaxKind::CHECK_CONSTRAINT => {
32669                ColumnConstraint::CheckConstraint(CheckConstraint { syntax })
32670            }
32671            SyntaxKind::DEFAULT_CONSTRAINT => {
32672                ColumnConstraint::DefaultConstraint(DefaultConstraint { syntax })
32673            }
32674            SyntaxKind::EXCLUDE_CONSTRAINT => {
32675                ColumnConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
32676            }
32677            SyntaxKind::NOT_NULL_CONSTRAINT => {
32678                ColumnConstraint::NotNullConstraint(NotNullConstraint { syntax })
32679            }
32680            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32681                ColumnConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32682            }
32683            SyntaxKind::REFERENCES_CONSTRAINT => {
32684                ColumnConstraint::ReferencesConstraint(ReferencesConstraint { syntax })
32685            }
32686            SyntaxKind::UNIQUE_CONSTRAINT => {
32687                ColumnConstraint::UniqueConstraint(UniqueConstraint { syntax })
32688            }
32689            _ => {
32690                return None;
32691            }
32692        };
32693        Some(res)
32694    }
32695    #[inline]
32696    fn syntax(&self) -> &SyntaxNode {
32697        match self {
32698            ColumnConstraint::CheckConstraint(it) => &it.syntax,
32699            ColumnConstraint::DefaultConstraint(it) => &it.syntax,
32700            ColumnConstraint::ExcludeConstraint(it) => &it.syntax,
32701            ColumnConstraint::NotNullConstraint(it) => &it.syntax,
32702            ColumnConstraint::PrimaryKeyConstraint(it) => &it.syntax,
32703            ColumnConstraint::ReferencesConstraint(it) => &it.syntax,
32704            ColumnConstraint::UniqueConstraint(it) => &it.syntax,
32705        }
32706    }
32707}
32708impl From<CheckConstraint> for ColumnConstraint {
32709    #[inline]
32710    fn from(node: CheckConstraint) -> ColumnConstraint {
32711        ColumnConstraint::CheckConstraint(node)
32712    }
32713}
32714impl From<DefaultConstraint> for ColumnConstraint {
32715    #[inline]
32716    fn from(node: DefaultConstraint) -> ColumnConstraint {
32717        ColumnConstraint::DefaultConstraint(node)
32718    }
32719}
32720impl From<ExcludeConstraint> for ColumnConstraint {
32721    #[inline]
32722    fn from(node: ExcludeConstraint) -> ColumnConstraint {
32723        ColumnConstraint::ExcludeConstraint(node)
32724    }
32725}
32726impl From<NotNullConstraint> for ColumnConstraint {
32727    #[inline]
32728    fn from(node: NotNullConstraint) -> ColumnConstraint {
32729        ColumnConstraint::NotNullConstraint(node)
32730    }
32731}
32732impl From<PrimaryKeyConstraint> for ColumnConstraint {
32733    #[inline]
32734    fn from(node: PrimaryKeyConstraint) -> ColumnConstraint {
32735        ColumnConstraint::PrimaryKeyConstraint(node)
32736    }
32737}
32738impl From<ReferencesConstraint> for ColumnConstraint {
32739    #[inline]
32740    fn from(node: ReferencesConstraint) -> ColumnConstraint {
32741        ColumnConstraint::ReferencesConstraint(node)
32742    }
32743}
32744impl From<UniqueConstraint> for ColumnConstraint {
32745    #[inline]
32746    fn from(node: UniqueConstraint) -> ColumnConstraint {
32747        ColumnConstraint::UniqueConstraint(node)
32748    }
32749}
32750impl AstNode for ConfigValue {
32751    #[inline]
32752    fn can_cast(kind: SyntaxKind) -> bool {
32753        matches!(kind, SyntaxKind::LITERAL | SyntaxKind::NAME_REF)
32754    }
32755    #[inline]
32756    fn cast(syntax: SyntaxNode) -> Option<Self> {
32757        let res = match syntax.kind() {
32758            SyntaxKind::LITERAL => ConfigValue::Literal(Literal { syntax }),
32759            SyntaxKind::NAME_REF => ConfigValue::NameRef(NameRef { syntax }),
32760            _ => {
32761                return None;
32762            }
32763        };
32764        Some(res)
32765    }
32766    #[inline]
32767    fn syntax(&self) -> &SyntaxNode {
32768        match self {
32769            ConfigValue::Literal(it) => &it.syntax,
32770            ConfigValue::NameRef(it) => &it.syntax,
32771        }
32772    }
32773}
32774impl From<Literal> for ConfigValue {
32775    #[inline]
32776    fn from(node: Literal) -> ConfigValue {
32777        ConfigValue::Literal(node)
32778    }
32779}
32780impl From<NameRef> for ConfigValue {
32781    #[inline]
32782    fn from(node: NameRef) -> ConfigValue {
32783        ConfigValue::NameRef(node)
32784    }
32785}
32786impl AstNode for ConflictAction {
32787    #[inline]
32788    fn can_cast(kind: SyntaxKind) -> bool {
32789        matches!(
32790            kind,
32791            SyntaxKind::CONFLICT_DO_NOTHING
32792                | SyntaxKind::CONFLICT_DO_SELECT
32793                | SyntaxKind::CONFLICT_DO_UPDATE_SET
32794        )
32795    }
32796    #[inline]
32797    fn cast(syntax: SyntaxNode) -> Option<Self> {
32798        let res = match syntax.kind() {
32799            SyntaxKind::CONFLICT_DO_NOTHING => {
32800                ConflictAction::ConflictDoNothing(ConflictDoNothing { syntax })
32801            }
32802            SyntaxKind::CONFLICT_DO_SELECT => {
32803                ConflictAction::ConflictDoSelect(ConflictDoSelect { syntax })
32804            }
32805            SyntaxKind::CONFLICT_DO_UPDATE_SET => {
32806                ConflictAction::ConflictDoUpdateSet(ConflictDoUpdateSet { syntax })
32807            }
32808            _ => {
32809                return None;
32810            }
32811        };
32812        Some(res)
32813    }
32814    #[inline]
32815    fn syntax(&self) -> &SyntaxNode {
32816        match self {
32817            ConflictAction::ConflictDoNothing(it) => &it.syntax,
32818            ConflictAction::ConflictDoSelect(it) => &it.syntax,
32819            ConflictAction::ConflictDoUpdateSet(it) => &it.syntax,
32820        }
32821    }
32822}
32823impl From<ConflictDoNothing> for ConflictAction {
32824    #[inline]
32825    fn from(node: ConflictDoNothing) -> ConflictAction {
32826        ConflictAction::ConflictDoNothing(node)
32827    }
32828}
32829impl From<ConflictDoSelect> for ConflictAction {
32830    #[inline]
32831    fn from(node: ConflictDoSelect) -> ConflictAction {
32832        ConflictAction::ConflictDoSelect(node)
32833    }
32834}
32835impl From<ConflictDoUpdateSet> for ConflictAction {
32836    #[inline]
32837    fn from(node: ConflictDoUpdateSet) -> ConflictAction {
32838        ConflictAction::ConflictDoUpdateSet(node)
32839    }
32840}
32841impl AstNode for ConflictTarget {
32842    #[inline]
32843    fn can_cast(kind: SyntaxKind) -> bool {
32844        matches!(
32845            kind,
32846            SyntaxKind::CONFLICT_ON_CONSTRAINT | SyntaxKind::CONFLICT_ON_INDEX
32847        )
32848    }
32849    #[inline]
32850    fn cast(syntax: SyntaxNode) -> Option<Self> {
32851        let res = match syntax.kind() {
32852            SyntaxKind::CONFLICT_ON_CONSTRAINT => {
32853                ConflictTarget::ConflictOnConstraint(ConflictOnConstraint { syntax })
32854            }
32855            SyntaxKind::CONFLICT_ON_INDEX => {
32856                ConflictTarget::ConflictOnIndex(ConflictOnIndex { syntax })
32857            }
32858            _ => {
32859                return None;
32860            }
32861        };
32862        Some(res)
32863    }
32864    #[inline]
32865    fn syntax(&self) -> &SyntaxNode {
32866        match self {
32867            ConflictTarget::ConflictOnConstraint(it) => &it.syntax,
32868            ConflictTarget::ConflictOnIndex(it) => &it.syntax,
32869        }
32870    }
32871}
32872impl From<ConflictOnConstraint> for ConflictTarget {
32873    #[inline]
32874    fn from(node: ConflictOnConstraint) -> ConflictTarget {
32875        ConflictTarget::ConflictOnConstraint(node)
32876    }
32877}
32878impl From<ConflictOnIndex> for ConflictTarget {
32879    #[inline]
32880    fn from(node: ConflictOnIndex) -> ConflictTarget {
32881        ConflictTarget::ConflictOnIndex(node)
32882    }
32883}
32884impl AstNode for Constraint {
32885    #[inline]
32886    fn can_cast(kind: SyntaxKind) -> bool {
32887        matches!(
32888            kind,
32889            SyntaxKind::CHECK_CONSTRAINT
32890                | SyntaxKind::DEFAULT_CONSTRAINT
32891                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
32892                | SyntaxKind::GENERATED_CONSTRAINT
32893                | SyntaxKind::NOT_NULL_CONSTRAINT
32894                | SyntaxKind::NULL_CONSTRAINT
32895                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
32896                | SyntaxKind::REFERENCES_CONSTRAINT
32897                | SyntaxKind::UNIQUE_CONSTRAINT
32898        )
32899    }
32900    #[inline]
32901    fn cast(syntax: SyntaxNode) -> Option<Self> {
32902        let res = match syntax.kind() {
32903            SyntaxKind::CHECK_CONSTRAINT => Constraint::CheckConstraint(CheckConstraint { syntax }),
32904            SyntaxKind::DEFAULT_CONSTRAINT => {
32905                Constraint::DefaultConstraint(DefaultConstraint { syntax })
32906            }
32907            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
32908                Constraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
32909            }
32910            SyntaxKind::GENERATED_CONSTRAINT => {
32911                Constraint::GeneratedConstraint(GeneratedConstraint { syntax })
32912            }
32913            SyntaxKind::NOT_NULL_CONSTRAINT => {
32914                Constraint::NotNullConstraint(NotNullConstraint { syntax })
32915            }
32916            SyntaxKind::NULL_CONSTRAINT => Constraint::NullConstraint(NullConstraint { syntax }),
32917            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
32918                Constraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
32919            }
32920            SyntaxKind::REFERENCES_CONSTRAINT => {
32921                Constraint::ReferencesConstraint(ReferencesConstraint { syntax })
32922            }
32923            SyntaxKind::UNIQUE_CONSTRAINT => {
32924                Constraint::UniqueConstraint(UniqueConstraint { syntax })
32925            }
32926            _ => {
32927                return None;
32928            }
32929        };
32930        Some(res)
32931    }
32932    #[inline]
32933    fn syntax(&self) -> &SyntaxNode {
32934        match self {
32935            Constraint::CheckConstraint(it) => &it.syntax,
32936            Constraint::DefaultConstraint(it) => &it.syntax,
32937            Constraint::ForeignKeyConstraint(it) => &it.syntax,
32938            Constraint::GeneratedConstraint(it) => &it.syntax,
32939            Constraint::NotNullConstraint(it) => &it.syntax,
32940            Constraint::NullConstraint(it) => &it.syntax,
32941            Constraint::PrimaryKeyConstraint(it) => &it.syntax,
32942            Constraint::ReferencesConstraint(it) => &it.syntax,
32943            Constraint::UniqueConstraint(it) => &it.syntax,
32944        }
32945    }
32946}
32947impl From<CheckConstraint> for Constraint {
32948    #[inline]
32949    fn from(node: CheckConstraint) -> Constraint {
32950        Constraint::CheckConstraint(node)
32951    }
32952}
32953impl From<DefaultConstraint> for Constraint {
32954    #[inline]
32955    fn from(node: DefaultConstraint) -> Constraint {
32956        Constraint::DefaultConstraint(node)
32957    }
32958}
32959impl From<ForeignKeyConstraint> for Constraint {
32960    #[inline]
32961    fn from(node: ForeignKeyConstraint) -> Constraint {
32962        Constraint::ForeignKeyConstraint(node)
32963    }
32964}
32965impl From<GeneratedConstraint> for Constraint {
32966    #[inline]
32967    fn from(node: GeneratedConstraint) -> Constraint {
32968        Constraint::GeneratedConstraint(node)
32969    }
32970}
32971impl From<NotNullConstraint> for Constraint {
32972    #[inline]
32973    fn from(node: NotNullConstraint) -> Constraint {
32974        Constraint::NotNullConstraint(node)
32975    }
32976}
32977impl From<NullConstraint> for Constraint {
32978    #[inline]
32979    fn from(node: NullConstraint) -> Constraint {
32980        Constraint::NullConstraint(node)
32981    }
32982}
32983impl From<PrimaryKeyConstraint> for Constraint {
32984    #[inline]
32985    fn from(node: PrimaryKeyConstraint) -> Constraint {
32986        Constraint::PrimaryKeyConstraint(node)
32987    }
32988}
32989impl From<ReferencesConstraint> for Constraint {
32990    #[inline]
32991    fn from(node: ReferencesConstraint) -> Constraint {
32992        Constraint::ReferencesConstraint(node)
32993    }
32994}
32995impl From<UniqueConstraint> for Constraint {
32996    #[inline]
32997    fn from(node: UniqueConstraint) -> Constraint {
32998        Constraint::UniqueConstraint(node)
32999    }
33000}
33001impl AstNode for ElementTableLabelAndProperties {
33002    #[inline]
33003    fn can_cast(kind: SyntaxKind) -> bool {
33004        matches!(kind, SyntaxKind::LABEL_AND_PROPERTIES_LIST)
33005    }
33006    #[inline]
33007    fn cast(syntax: SyntaxNode) -> Option<Self> {
33008        let res = match syntax.kind() {
33009            SyntaxKind::LABEL_AND_PROPERTIES_LIST => {
33010                ElementTableLabelAndProperties::LabelAndPropertiesList(LabelAndPropertiesList {
33011                    syntax,
33012                })
33013            }
33014            _ => {
33015                if let Some(result) = ElementTableProperties::cast(syntax) {
33016                    return Some(ElementTableLabelAndProperties::ElementTableProperties(
33017                        result,
33018                    ));
33019                }
33020                return None;
33021            }
33022        };
33023        Some(res)
33024    }
33025    #[inline]
33026    fn syntax(&self) -> &SyntaxNode {
33027        match self {
33028            ElementTableLabelAndProperties::LabelAndPropertiesList(it) => &it.syntax,
33029            ElementTableLabelAndProperties::ElementTableProperties(it) => it.syntax(),
33030        }
33031    }
33032}
33033impl From<LabelAndPropertiesList> for ElementTableLabelAndProperties {
33034    #[inline]
33035    fn from(node: LabelAndPropertiesList) -> ElementTableLabelAndProperties {
33036        ElementTableLabelAndProperties::LabelAndPropertiesList(node)
33037    }
33038}
33039impl AstNode for ElementTableProperties {
33040    #[inline]
33041    fn can_cast(kind: SyntaxKind) -> bool {
33042        matches!(
33043            kind,
33044            SyntaxKind::ALL_PROPERTIES | SyntaxKind::NO_PROPERTIES | SyntaxKind::PROPERTIES
33045        )
33046    }
33047    #[inline]
33048    fn cast(syntax: SyntaxNode) -> Option<Self> {
33049        let res = match syntax.kind() {
33050            SyntaxKind::ALL_PROPERTIES => {
33051                ElementTableProperties::AllProperties(AllProperties { syntax })
33052            }
33053            SyntaxKind::NO_PROPERTIES => {
33054                ElementTableProperties::NoProperties(NoProperties { syntax })
33055            }
33056            SyntaxKind::PROPERTIES => ElementTableProperties::Properties(Properties { syntax }),
33057            _ => {
33058                return None;
33059            }
33060        };
33061        Some(res)
33062    }
33063    #[inline]
33064    fn syntax(&self) -> &SyntaxNode {
33065        match self {
33066            ElementTableProperties::AllProperties(it) => &it.syntax,
33067            ElementTableProperties::NoProperties(it) => &it.syntax,
33068            ElementTableProperties::Properties(it) => &it.syntax,
33069        }
33070    }
33071}
33072impl From<AllProperties> for ElementTableProperties {
33073    #[inline]
33074    fn from(node: AllProperties) -> ElementTableProperties {
33075        ElementTableProperties::AllProperties(node)
33076    }
33077}
33078impl From<NoProperties> for ElementTableProperties {
33079    #[inline]
33080    fn from(node: NoProperties) -> ElementTableProperties {
33081        ElementTableProperties::NoProperties(node)
33082    }
33083}
33084impl From<Properties> for ElementTableProperties {
33085    #[inline]
33086    fn from(node: Properties) -> ElementTableProperties {
33087        ElementTableProperties::Properties(node)
33088    }
33089}
33090impl AstNode for ExplainStmt {
33091    #[inline]
33092    fn can_cast(kind: SyntaxKind) -> bool {
33093        matches!(
33094            kind,
33095            SyntaxKind::COMPOUND_SELECT
33096                | SyntaxKind::CREATE_MATERIALIZED_VIEW
33097                | SyntaxKind::CREATE_TABLE_AS
33098                | SyntaxKind::DECLARE
33099                | SyntaxKind::DELETE
33100                | SyntaxKind::EXECUTE
33101                | SyntaxKind::INSERT
33102                | SyntaxKind::MERGE
33103                | SyntaxKind::PAREN_SELECT
33104                | SyntaxKind::SELECT
33105                | SyntaxKind::SELECT_INTO
33106                | SyntaxKind::TABLE
33107                | SyntaxKind::UPDATE
33108                | SyntaxKind::VALUES
33109        )
33110    }
33111    #[inline]
33112    fn cast(syntax: SyntaxNode) -> Option<Self> {
33113        let res = match syntax.kind() {
33114            SyntaxKind::COMPOUND_SELECT => ExplainStmt::CompoundSelect(CompoundSelect { syntax }),
33115            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
33116                ExplainStmt::CreateMaterializedView(CreateMaterializedView { syntax })
33117            }
33118            SyntaxKind::CREATE_TABLE_AS => ExplainStmt::CreateTableAs(CreateTableAs { syntax }),
33119            SyntaxKind::DECLARE => ExplainStmt::Declare(Declare { syntax }),
33120            SyntaxKind::DELETE => ExplainStmt::Delete(Delete { syntax }),
33121            SyntaxKind::EXECUTE => ExplainStmt::Execute(Execute { syntax }),
33122            SyntaxKind::INSERT => ExplainStmt::Insert(Insert { syntax }),
33123            SyntaxKind::MERGE => ExplainStmt::Merge(Merge { syntax }),
33124            SyntaxKind::PAREN_SELECT => ExplainStmt::ParenSelect(ParenSelect { syntax }),
33125            SyntaxKind::SELECT => ExplainStmt::Select(Select { syntax }),
33126            SyntaxKind::SELECT_INTO => ExplainStmt::SelectInto(SelectInto { syntax }),
33127            SyntaxKind::TABLE => ExplainStmt::Table(Table { syntax }),
33128            SyntaxKind::UPDATE => ExplainStmt::Update(Update { syntax }),
33129            SyntaxKind::VALUES => ExplainStmt::Values(Values { syntax }),
33130            _ => {
33131                return None;
33132            }
33133        };
33134        Some(res)
33135    }
33136    #[inline]
33137    fn syntax(&self) -> &SyntaxNode {
33138        match self {
33139            ExplainStmt::CompoundSelect(it) => &it.syntax,
33140            ExplainStmt::CreateMaterializedView(it) => &it.syntax,
33141            ExplainStmt::CreateTableAs(it) => &it.syntax,
33142            ExplainStmt::Declare(it) => &it.syntax,
33143            ExplainStmt::Delete(it) => &it.syntax,
33144            ExplainStmt::Execute(it) => &it.syntax,
33145            ExplainStmt::Insert(it) => &it.syntax,
33146            ExplainStmt::Merge(it) => &it.syntax,
33147            ExplainStmt::ParenSelect(it) => &it.syntax,
33148            ExplainStmt::Select(it) => &it.syntax,
33149            ExplainStmt::SelectInto(it) => &it.syntax,
33150            ExplainStmt::Table(it) => &it.syntax,
33151            ExplainStmt::Update(it) => &it.syntax,
33152            ExplainStmt::Values(it) => &it.syntax,
33153        }
33154    }
33155}
33156impl From<CompoundSelect> for ExplainStmt {
33157    #[inline]
33158    fn from(node: CompoundSelect) -> ExplainStmt {
33159        ExplainStmt::CompoundSelect(node)
33160    }
33161}
33162impl From<CreateMaterializedView> for ExplainStmt {
33163    #[inline]
33164    fn from(node: CreateMaterializedView) -> ExplainStmt {
33165        ExplainStmt::CreateMaterializedView(node)
33166    }
33167}
33168impl From<CreateTableAs> for ExplainStmt {
33169    #[inline]
33170    fn from(node: CreateTableAs) -> ExplainStmt {
33171        ExplainStmt::CreateTableAs(node)
33172    }
33173}
33174impl From<Declare> for ExplainStmt {
33175    #[inline]
33176    fn from(node: Declare) -> ExplainStmt {
33177        ExplainStmt::Declare(node)
33178    }
33179}
33180impl From<Delete> for ExplainStmt {
33181    #[inline]
33182    fn from(node: Delete) -> ExplainStmt {
33183        ExplainStmt::Delete(node)
33184    }
33185}
33186impl From<Execute> for ExplainStmt {
33187    #[inline]
33188    fn from(node: Execute) -> ExplainStmt {
33189        ExplainStmt::Execute(node)
33190    }
33191}
33192impl From<Insert> for ExplainStmt {
33193    #[inline]
33194    fn from(node: Insert) -> ExplainStmt {
33195        ExplainStmt::Insert(node)
33196    }
33197}
33198impl From<Merge> for ExplainStmt {
33199    #[inline]
33200    fn from(node: Merge) -> ExplainStmt {
33201        ExplainStmt::Merge(node)
33202    }
33203}
33204impl From<ParenSelect> for ExplainStmt {
33205    #[inline]
33206    fn from(node: ParenSelect) -> ExplainStmt {
33207        ExplainStmt::ParenSelect(node)
33208    }
33209}
33210impl From<Select> for ExplainStmt {
33211    #[inline]
33212    fn from(node: Select) -> ExplainStmt {
33213        ExplainStmt::Select(node)
33214    }
33215}
33216impl From<SelectInto> for ExplainStmt {
33217    #[inline]
33218    fn from(node: SelectInto) -> ExplainStmt {
33219        ExplainStmt::SelectInto(node)
33220    }
33221}
33222impl From<Table> for ExplainStmt {
33223    #[inline]
33224    fn from(node: Table) -> ExplainStmt {
33225        ExplainStmt::Table(node)
33226    }
33227}
33228impl From<Update> for ExplainStmt {
33229    #[inline]
33230    fn from(node: Update) -> ExplainStmt {
33231        ExplainStmt::Update(node)
33232    }
33233}
33234impl From<Values> for ExplainStmt {
33235    #[inline]
33236    fn from(node: Values) -> ExplainStmt {
33237        ExplainStmt::Values(node)
33238    }
33239}
33240impl AstNode for Expr {
33241    #[inline]
33242    fn can_cast(kind: SyntaxKind) -> bool {
33243        matches!(
33244            kind,
33245            SyntaxKind::ARRAY_EXPR
33246                | SyntaxKind::BETWEEN_EXPR
33247                | SyntaxKind::BIN_EXPR
33248                | SyntaxKind::CALL_EXPR
33249                | SyntaxKind::CASE_EXPR
33250                | SyntaxKind::CAST_EXPR
33251                | SyntaxKind::FIELD_EXPR
33252                | SyntaxKind::INDEX_EXPR
33253                | SyntaxKind::LITERAL
33254                | SyntaxKind::NAME_REF
33255                | SyntaxKind::PAREN_EXPR
33256                | SyntaxKind::POSTFIX_EXPR
33257                | SyntaxKind::PREFIX_EXPR
33258                | SyntaxKind::SLICE_EXPR
33259                | SyntaxKind::TUPLE_EXPR
33260        )
33261    }
33262    #[inline]
33263    fn cast(syntax: SyntaxNode) -> Option<Self> {
33264        let res = match syntax.kind() {
33265            SyntaxKind::ARRAY_EXPR => Expr::ArrayExpr(ArrayExpr { syntax }),
33266            SyntaxKind::BETWEEN_EXPR => Expr::BetweenExpr(BetweenExpr { syntax }),
33267            SyntaxKind::BIN_EXPR => Expr::BinExpr(BinExpr { syntax }),
33268            SyntaxKind::CALL_EXPR => Expr::CallExpr(CallExpr { syntax }),
33269            SyntaxKind::CASE_EXPR => Expr::CaseExpr(CaseExpr { syntax }),
33270            SyntaxKind::CAST_EXPR => Expr::CastExpr(CastExpr { syntax }),
33271            SyntaxKind::FIELD_EXPR => Expr::FieldExpr(FieldExpr { syntax }),
33272            SyntaxKind::INDEX_EXPR => Expr::IndexExpr(IndexExpr { syntax }),
33273            SyntaxKind::LITERAL => Expr::Literal(Literal { syntax }),
33274            SyntaxKind::NAME_REF => Expr::NameRef(NameRef { syntax }),
33275            SyntaxKind::PAREN_EXPR => Expr::ParenExpr(ParenExpr { syntax }),
33276            SyntaxKind::POSTFIX_EXPR => Expr::PostfixExpr(PostfixExpr { syntax }),
33277            SyntaxKind::PREFIX_EXPR => Expr::PrefixExpr(PrefixExpr { syntax }),
33278            SyntaxKind::SLICE_EXPR => Expr::SliceExpr(SliceExpr { syntax }),
33279            SyntaxKind::TUPLE_EXPR => Expr::TupleExpr(TupleExpr { syntax }),
33280            _ => {
33281                return None;
33282            }
33283        };
33284        Some(res)
33285    }
33286    #[inline]
33287    fn syntax(&self) -> &SyntaxNode {
33288        match self {
33289            Expr::ArrayExpr(it) => &it.syntax,
33290            Expr::BetweenExpr(it) => &it.syntax,
33291            Expr::BinExpr(it) => &it.syntax,
33292            Expr::CallExpr(it) => &it.syntax,
33293            Expr::CaseExpr(it) => &it.syntax,
33294            Expr::CastExpr(it) => &it.syntax,
33295            Expr::FieldExpr(it) => &it.syntax,
33296            Expr::IndexExpr(it) => &it.syntax,
33297            Expr::Literal(it) => &it.syntax,
33298            Expr::NameRef(it) => &it.syntax,
33299            Expr::ParenExpr(it) => &it.syntax,
33300            Expr::PostfixExpr(it) => &it.syntax,
33301            Expr::PrefixExpr(it) => &it.syntax,
33302            Expr::SliceExpr(it) => &it.syntax,
33303            Expr::TupleExpr(it) => &it.syntax,
33304        }
33305    }
33306}
33307impl From<ArrayExpr> for Expr {
33308    #[inline]
33309    fn from(node: ArrayExpr) -> Expr {
33310        Expr::ArrayExpr(node)
33311    }
33312}
33313impl From<BetweenExpr> for Expr {
33314    #[inline]
33315    fn from(node: BetweenExpr) -> Expr {
33316        Expr::BetweenExpr(node)
33317    }
33318}
33319impl From<BinExpr> for Expr {
33320    #[inline]
33321    fn from(node: BinExpr) -> Expr {
33322        Expr::BinExpr(node)
33323    }
33324}
33325impl From<CallExpr> for Expr {
33326    #[inline]
33327    fn from(node: CallExpr) -> Expr {
33328        Expr::CallExpr(node)
33329    }
33330}
33331impl From<CaseExpr> for Expr {
33332    #[inline]
33333    fn from(node: CaseExpr) -> Expr {
33334        Expr::CaseExpr(node)
33335    }
33336}
33337impl From<CastExpr> for Expr {
33338    #[inline]
33339    fn from(node: CastExpr) -> Expr {
33340        Expr::CastExpr(node)
33341    }
33342}
33343impl From<FieldExpr> for Expr {
33344    #[inline]
33345    fn from(node: FieldExpr) -> Expr {
33346        Expr::FieldExpr(node)
33347    }
33348}
33349impl From<IndexExpr> for Expr {
33350    #[inline]
33351    fn from(node: IndexExpr) -> Expr {
33352        Expr::IndexExpr(node)
33353    }
33354}
33355impl From<Literal> for Expr {
33356    #[inline]
33357    fn from(node: Literal) -> Expr {
33358        Expr::Literal(node)
33359    }
33360}
33361impl From<NameRef> for Expr {
33362    #[inline]
33363    fn from(node: NameRef) -> Expr {
33364        Expr::NameRef(node)
33365    }
33366}
33367impl From<ParenExpr> for Expr {
33368    #[inline]
33369    fn from(node: ParenExpr) -> Expr {
33370        Expr::ParenExpr(node)
33371    }
33372}
33373impl From<PostfixExpr> for Expr {
33374    #[inline]
33375    fn from(node: PostfixExpr) -> Expr {
33376        Expr::PostfixExpr(node)
33377    }
33378}
33379impl From<PrefixExpr> for Expr {
33380    #[inline]
33381    fn from(node: PrefixExpr) -> Expr {
33382        Expr::PrefixExpr(node)
33383    }
33384}
33385impl From<SliceExpr> for Expr {
33386    #[inline]
33387    fn from(node: SliceExpr) -> Expr {
33388        Expr::SliceExpr(node)
33389    }
33390}
33391impl From<TupleExpr> for Expr {
33392    #[inline]
33393    fn from(node: TupleExpr) -> Expr {
33394        Expr::TupleExpr(node)
33395    }
33396}
33397impl AstNode for FuncOption {
33398    #[inline]
33399    fn can_cast(kind: SyntaxKind) -> bool {
33400        matches!(
33401            kind,
33402            SyntaxKind::AS_FUNC_OPTION
33403                | SyntaxKind::BEGIN_FUNC_OPTION_LIST
33404                | SyntaxKind::COST_FUNC_OPTION
33405                | SyntaxKind::LANGUAGE_FUNC_OPTION
33406                | SyntaxKind::LEAKPROOF_FUNC_OPTION
33407                | SyntaxKind::PARALLEL_FUNC_OPTION
33408                | SyntaxKind::RESET_FUNC_OPTION
33409                | SyntaxKind::RETURN_FUNC_OPTION
33410                | SyntaxKind::ROWS_FUNC_OPTION
33411                | SyntaxKind::SECURITY_FUNC_OPTION
33412                | SyntaxKind::SET_FUNC_OPTION
33413                | SyntaxKind::STRICT_FUNC_OPTION
33414                | SyntaxKind::SUPPORT_FUNC_OPTION
33415                | SyntaxKind::TRANSFORM_FUNC_OPTION
33416                | SyntaxKind::VOLATILITY_FUNC_OPTION
33417                | SyntaxKind::WINDOW_FUNC_OPTION
33418        )
33419    }
33420    #[inline]
33421    fn cast(syntax: SyntaxNode) -> Option<Self> {
33422        let res = match syntax.kind() {
33423            SyntaxKind::AS_FUNC_OPTION => FuncOption::AsFuncOption(AsFuncOption { syntax }),
33424            SyntaxKind::BEGIN_FUNC_OPTION_LIST => {
33425                FuncOption::BeginFuncOptionList(BeginFuncOptionList { syntax })
33426            }
33427            SyntaxKind::COST_FUNC_OPTION => FuncOption::CostFuncOption(CostFuncOption { syntax }),
33428            SyntaxKind::LANGUAGE_FUNC_OPTION => {
33429                FuncOption::LanguageFuncOption(LanguageFuncOption { syntax })
33430            }
33431            SyntaxKind::LEAKPROOF_FUNC_OPTION => {
33432                FuncOption::LeakproofFuncOption(LeakproofFuncOption { syntax })
33433            }
33434            SyntaxKind::PARALLEL_FUNC_OPTION => {
33435                FuncOption::ParallelFuncOption(ParallelFuncOption { syntax })
33436            }
33437            SyntaxKind::RESET_FUNC_OPTION => {
33438                FuncOption::ResetFuncOption(ResetFuncOption { syntax })
33439            }
33440            SyntaxKind::RETURN_FUNC_OPTION => {
33441                FuncOption::ReturnFuncOption(ReturnFuncOption { syntax })
33442            }
33443            SyntaxKind::ROWS_FUNC_OPTION => FuncOption::RowsFuncOption(RowsFuncOption { syntax }),
33444            SyntaxKind::SECURITY_FUNC_OPTION => {
33445                FuncOption::SecurityFuncOption(SecurityFuncOption { syntax })
33446            }
33447            SyntaxKind::SET_FUNC_OPTION => FuncOption::SetFuncOption(SetFuncOption { syntax }),
33448            SyntaxKind::STRICT_FUNC_OPTION => {
33449                FuncOption::StrictFuncOption(StrictFuncOption { syntax })
33450            }
33451            SyntaxKind::SUPPORT_FUNC_OPTION => {
33452                FuncOption::SupportFuncOption(SupportFuncOption { syntax })
33453            }
33454            SyntaxKind::TRANSFORM_FUNC_OPTION => {
33455                FuncOption::TransformFuncOption(TransformFuncOption { syntax })
33456            }
33457            SyntaxKind::VOLATILITY_FUNC_OPTION => {
33458                FuncOption::VolatilityFuncOption(VolatilityFuncOption { syntax })
33459            }
33460            SyntaxKind::WINDOW_FUNC_OPTION => {
33461                FuncOption::WindowFuncOption(WindowFuncOption { syntax })
33462            }
33463            _ => {
33464                return None;
33465            }
33466        };
33467        Some(res)
33468    }
33469    #[inline]
33470    fn syntax(&self) -> &SyntaxNode {
33471        match self {
33472            FuncOption::AsFuncOption(it) => &it.syntax,
33473            FuncOption::BeginFuncOptionList(it) => &it.syntax,
33474            FuncOption::CostFuncOption(it) => &it.syntax,
33475            FuncOption::LanguageFuncOption(it) => &it.syntax,
33476            FuncOption::LeakproofFuncOption(it) => &it.syntax,
33477            FuncOption::ParallelFuncOption(it) => &it.syntax,
33478            FuncOption::ResetFuncOption(it) => &it.syntax,
33479            FuncOption::ReturnFuncOption(it) => &it.syntax,
33480            FuncOption::RowsFuncOption(it) => &it.syntax,
33481            FuncOption::SecurityFuncOption(it) => &it.syntax,
33482            FuncOption::SetFuncOption(it) => &it.syntax,
33483            FuncOption::StrictFuncOption(it) => &it.syntax,
33484            FuncOption::SupportFuncOption(it) => &it.syntax,
33485            FuncOption::TransformFuncOption(it) => &it.syntax,
33486            FuncOption::VolatilityFuncOption(it) => &it.syntax,
33487            FuncOption::WindowFuncOption(it) => &it.syntax,
33488        }
33489    }
33490}
33491impl From<AsFuncOption> for FuncOption {
33492    #[inline]
33493    fn from(node: AsFuncOption) -> FuncOption {
33494        FuncOption::AsFuncOption(node)
33495    }
33496}
33497impl From<BeginFuncOptionList> for FuncOption {
33498    #[inline]
33499    fn from(node: BeginFuncOptionList) -> FuncOption {
33500        FuncOption::BeginFuncOptionList(node)
33501    }
33502}
33503impl From<CostFuncOption> for FuncOption {
33504    #[inline]
33505    fn from(node: CostFuncOption) -> FuncOption {
33506        FuncOption::CostFuncOption(node)
33507    }
33508}
33509impl From<LanguageFuncOption> for FuncOption {
33510    #[inline]
33511    fn from(node: LanguageFuncOption) -> FuncOption {
33512        FuncOption::LanguageFuncOption(node)
33513    }
33514}
33515impl From<LeakproofFuncOption> for FuncOption {
33516    #[inline]
33517    fn from(node: LeakproofFuncOption) -> FuncOption {
33518        FuncOption::LeakproofFuncOption(node)
33519    }
33520}
33521impl From<ParallelFuncOption> for FuncOption {
33522    #[inline]
33523    fn from(node: ParallelFuncOption) -> FuncOption {
33524        FuncOption::ParallelFuncOption(node)
33525    }
33526}
33527impl From<ResetFuncOption> for FuncOption {
33528    #[inline]
33529    fn from(node: ResetFuncOption) -> FuncOption {
33530        FuncOption::ResetFuncOption(node)
33531    }
33532}
33533impl From<ReturnFuncOption> for FuncOption {
33534    #[inline]
33535    fn from(node: ReturnFuncOption) -> FuncOption {
33536        FuncOption::ReturnFuncOption(node)
33537    }
33538}
33539impl From<RowsFuncOption> for FuncOption {
33540    #[inline]
33541    fn from(node: RowsFuncOption) -> FuncOption {
33542        FuncOption::RowsFuncOption(node)
33543    }
33544}
33545impl From<SecurityFuncOption> for FuncOption {
33546    #[inline]
33547    fn from(node: SecurityFuncOption) -> FuncOption {
33548        FuncOption::SecurityFuncOption(node)
33549    }
33550}
33551impl From<SetFuncOption> for FuncOption {
33552    #[inline]
33553    fn from(node: SetFuncOption) -> FuncOption {
33554        FuncOption::SetFuncOption(node)
33555    }
33556}
33557impl From<StrictFuncOption> for FuncOption {
33558    #[inline]
33559    fn from(node: StrictFuncOption) -> FuncOption {
33560        FuncOption::StrictFuncOption(node)
33561    }
33562}
33563impl From<SupportFuncOption> for FuncOption {
33564    #[inline]
33565    fn from(node: SupportFuncOption) -> FuncOption {
33566        FuncOption::SupportFuncOption(node)
33567    }
33568}
33569impl From<TransformFuncOption> for FuncOption {
33570    #[inline]
33571    fn from(node: TransformFuncOption) -> FuncOption {
33572        FuncOption::TransformFuncOption(node)
33573    }
33574}
33575impl From<VolatilityFuncOption> for FuncOption {
33576    #[inline]
33577    fn from(node: VolatilityFuncOption) -> FuncOption {
33578        FuncOption::VolatilityFuncOption(node)
33579    }
33580}
33581impl From<WindowFuncOption> for FuncOption {
33582    #[inline]
33583    fn from(node: WindowFuncOption) -> FuncOption {
33584        FuncOption::WindowFuncOption(node)
33585    }
33586}
33587impl AstNode for GroupBy {
33588    #[inline]
33589    fn can_cast(kind: SyntaxKind) -> bool {
33590        matches!(
33591            kind,
33592            SyntaxKind::GROUPING_CUBE
33593                | SyntaxKind::GROUPING_EXPR
33594                | SyntaxKind::GROUPING_ROLLUP
33595                | SyntaxKind::GROUPING_SETS
33596        )
33597    }
33598    #[inline]
33599    fn cast(syntax: SyntaxNode) -> Option<Self> {
33600        let res = match syntax.kind() {
33601            SyntaxKind::GROUPING_CUBE => GroupBy::GroupingCube(GroupingCube { syntax }),
33602            SyntaxKind::GROUPING_EXPR => GroupBy::GroupingExpr(GroupingExpr { syntax }),
33603            SyntaxKind::GROUPING_ROLLUP => GroupBy::GroupingRollup(GroupingRollup { syntax }),
33604            SyntaxKind::GROUPING_SETS => GroupBy::GroupingSets(GroupingSets { syntax }),
33605            _ => {
33606                return None;
33607            }
33608        };
33609        Some(res)
33610    }
33611    #[inline]
33612    fn syntax(&self) -> &SyntaxNode {
33613        match self {
33614            GroupBy::GroupingCube(it) => &it.syntax,
33615            GroupBy::GroupingExpr(it) => &it.syntax,
33616            GroupBy::GroupingRollup(it) => &it.syntax,
33617            GroupBy::GroupingSets(it) => &it.syntax,
33618        }
33619    }
33620}
33621impl From<GroupingCube> for GroupBy {
33622    #[inline]
33623    fn from(node: GroupingCube) -> GroupBy {
33624        GroupBy::GroupingCube(node)
33625    }
33626}
33627impl From<GroupingExpr> for GroupBy {
33628    #[inline]
33629    fn from(node: GroupingExpr) -> GroupBy {
33630        GroupBy::GroupingExpr(node)
33631    }
33632}
33633impl From<GroupingRollup> for GroupBy {
33634    #[inline]
33635    fn from(node: GroupingRollup) -> GroupBy {
33636        GroupBy::GroupingRollup(node)
33637    }
33638}
33639impl From<GroupingSets> for GroupBy {
33640    #[inline]
33641    fn from(node: GroupingSets) -> GroupBy {
33642        GroupBy::GroupingSets(node)
33643    }
33644}
33645impl AstNode for JoinType {
33646    #[inline]
33647    fn can_cast(kind: SyntaxKind) -> bool {
33648        matches!(
33649            kind,
33650            SyntaxKind::JOIN_CROSS
33651                | SyntaxKind::JOIN_FULL
33652                | SyntaxKind::JOIN_INNER
33653                | SyntaxKind::JOIN_LEFT
33654                | SyntaxKind::JOIN_RIGHT
33655        )
33656    }
33657    #[inline]
33658    fn cast(syntax: SyntaxNode) -> Option<Self> {
33659        let res = match syntax.kind() {
33660            SyntaxKind::JOIN_CROSS => JoinType::JoinCross(JoinCross { syntax }),
33661            SyntaxKind::JOIN_FULL => JoinType::JoinFull(JoinFull { syntax }),
33662            SyntaxKind::JOIN_INNER => JoinType::JoinInner(JoinInner { syntax }),
33663            SyntaxKind::JOIN_LEFT => JoinType::JoinLeft(JoinLeft { syntax }),
33664            SyntaxKind::JOIN_RIGHT => JoinType::JoinRight(JoinRight { syntax }),
33665            _ => {
33666                return None;
33667            }
33668        };
33669        Some(res)
33670    }
33671    #[inline]
33672    fn syntax(&self) -> &SyntaxNode {
33673        match self {
33674            JoinType::JoinCross(it) => &it.syntax,
33675            JoinType::JoinFull(it) => &it.syntax,
33676            JoinType::JoinInner(it) => &it.syntax,
33677            JoinType::JoinLeft(it) => &it.syntax,
33678            JoinType::JoinRight(it) => &it.syntax,
33679        }
33680    }
33681}
33682impl From<JoinCross> for JoinType {
33683    #[inline]
33684    fn from(node: JoinCross) -> JoinType {
33685        JoinType::JoinCross(node)
33686    }
33687}
33688impl From<JoinFull> for JoinType {
33689    #[inline]
33690    fn from(node: JoinFull) -> JoinType {
33691        JoinType::JoinFull(node)
33692    }
33693}
33694impl From<JoinInner> for JoinType {
33695    #[inline]
33696    fn from(node: JoinInner) -> JoinType {
33697        JoinType::JoinInner(node)
33698    }
33699}
33700impl From<JoinLeft> for JoinType {
33701    #[inline]
33702    fn from(node: JoinLeft) -> JoinType {
33703        JoinType::JoinLeft(node)
33704    }
33705}
33706impl From<JoinRight> for JoinType {
33707    #[inline]
33708    fn from(node: JoinRight) -> JoinType {
33709        JoinType::JoinRight(node)
33710    }
33711}
33712impl AstNode for JsonBehavior {
33713    #[inline]
33714    fn can_cast(kind: SyntaxKind) -> bool {
33715        matches!(
33716            kind,
33717            SyntaxKind::JSON_BEHAVIOR_DEFAULT
33718                | SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY
33719                | SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT
33720                | SyntaxKind::JSON_BEHAVIOR_ERROR
33721                | SyntaxKind::JSON_BEHAVIOR_FALSE
33722                | SyntaxKind::JSON_BEHAVIOR_NULL
33723                | SyntaxKind::JSON_BEHAVIOR_TRUE
33724                | SyntaxKind::JSON_BEHAVIOR_UNKNOWN
33725        )
33726    }
33727    #[inline]
33728    fn cast(syntax: SyntaxNode) -> Option<Self> {
33729        let res = match syntax.kind() {
33730            SyntaxKind::JSON_BEHAVIOR_DEFAULT => {
33731                JsonBehavior::JsonBehaviorDefault(JsonBehaviorDefault { syntax })
33732            }
33733            SyntaxKind::JSON_BEHAVIOR_EMPTY_ARRAY => {
33734                JsonBehavior::JsonBehaviorEmptyArray(JsonBehaviorEmptyArray { syntax })
33735            }
33736            SyntaxKind::JSON_BEHAVIOR_EMPTY_OBJECT => {
33737                JsonBehavior::JsonBehaviorEmptyObject(JsonBehaviorEmptyObject { syntax })
33738            }
33739            SyntaxKind::JSON_BEHAVIOR_ERROR => {
33740                JsonBehavior::JsonBehaviorError(JsonBehaviorError { syntax })
33741            }
33742            SyntaxKind::JSON_BEHAVIOR_FALSE => {
33743                JsonBehavior::JsonBehaviorFalse(JsonBehaviorFalse { syntax })
33744            }
33745            SyntaxKind::JSON_BEHAVIOR_NULL => {
33746                JsonBehavior::JsonBehaviorNull(JsonBehaviorNull { syntax })
33747            }
33748            SyntaxKind::JSON_BEHAVIOR_TRUE => {
33749                JsonBehavior::JsonBehaviorTrue(JsonBehaviorTrue { syntax })
33750            }
33751            SyntaxKind::JSON_BEHAVIOR_UNKNOWN => {
33752                JsonBehavior::JsonBehaviorUnknown(JsonBehaviorUnknown { syntax })
33753            }
33754            _ => {
33755                return None;
33756            }
33757        };
33758        Some(res)
33759    }
33760    #[inline]
33761    fn syntax(&self) -> &SyntaxNode {
33762        match self {
33763            JsonBehavior::JsonBehaviorDefault(it) => &it.syntax,
33764            JsonBehavior::JsonBehaviorEmptyArray(it) => &it.syntax,
33765            JsonBehavior::JsonBehaviorEmptyObject(it) => &it.syntax,
33766            JsonBehavior::JsonBehaviorError(it) => &it.syntax,
33767            JsonBehavior::JsonBehaviorFalse(it) => &it.syntax,
33768            JsonBehavior::JsonBehaviorNull(it) => &it.syntax,
33769            JsonBehavior::JsonBehaviorTrue(it) => &it.syntax,
33770            JsonBehavior::JsonBehaviorUnknown(it) => &it.syntax,
33771        }
33772    }
33773}
33774impl From<JsonBehaviorDefault> for JsonBehavior {
33775    #[inline]
33776    fn from(node: JsonBehaviorDefault) -> JsonBehavior {
33777        JsonBehavior::JsonBehaviorDefault(node)
33778    }
33779}
33780impl From<JsonBehaviorEmptyArray> for JsonBehavior {
33781    #[inline]
33782    fn from(node: JsonBehaviorEmptyArray) -> JsonBehavior {
33783        JsonBehavior::JsonBehaviorEmptyArray(node)
33784    }
33785}
33786impl From<JsonBehaviorEmptyObject> for JsonBehavior {
33787    #[inline]
33788    fn from(node: JsonBehaviorEmptyObject) -> JsonBehavior {
33789        JsonBehavior::JsonBehaviorEmptyObject(node)
33790    }
33791}
33792impl From<JsonBehaviorError> for JsonBehavior {
33793    #[inline]
33794    fn from(node: JsonBehaviorError) -> JsonBehavior {
33795        JsonBehavior::JsonBehaviorError(node)
33796    }
33797}
33798impl From<JsonBehaviorFalse> for JsonBehavior {
33799    #[inline]
33800    fn from(node: JsonBehaviorFalse) -> JsonBehavior {
33801        JsonBehavior::JsonBehaviorFalse(node)
33802    }
33803}
33804impl From<JsonBehaviorNull> for JsonBehavior {
33805    #[inline]
33806    fn from(node: JsonBehaviorNull) -> JsonBehavior {
33807        JsonBehavior::JsonBehaviorNull(node)
33808    }
33809}
33810impl From<JsonBehaviorTrue> for JsonBehavior {
33811    #[inline]
33812    fn from(node: JsonBehaviorTrue) -> JsonBehavior {
33813        JsonBehavior::JsonBehaviorTrue(node)
33814    }
33815}
33816impl From<JsonBehaviorUnknown> for JsonBehavior {
33817    #[inline]
33818    fn from(node: JsonBehaviorUnknown) -> JsonBehavior {
33819        JsonBehavior::JsonBehaviorUnknown(node)
33820    }
33821}
33822impl AstNode for MatchType {
33823    #[inline]
33824    fn can_cast(kind: SyntaxKind) -> bool {
33825        matches!(
33826            kind,
33827            SyntaxKind::MATCH_FULL | SyntaxKind::MATCH_PARTIAL | SyntaxKind::MATCH_SIMPLE
33828        )
33829    }
33830    #[inline]
33831    fn cast(syntax: SyntaxNode) -> Option<Self> {
33832        let res = match syntax.kind() {
33833            SyntaxKind::MATCH_FULL => MatchType::MatchFull(MatchFull { syntax }),
33834            SyntaxKind::MATCH_PARTIAL => MatchType::MatchPartial(MatchPartial { syntax }),
33835            SyntaxKind::MATCH_SIMPLE => MatchType::MatchSimple(MatchSimple { syntax }),
33836            _ => {
33837                return None;
33838            }
33839        };
33840        Some(res)
33841    }
33842    #[inline]
33843    fn syntax(&self) -> &SyntaxNode {
33844        match self {
33845            MatchType::MatchFull(it) => &it.syntax,
33846            MatchType::MatchPartial(it) => &it.syntax,
33847            MatchType::MatchSimple(it) => &it.syntax,
33848        }
33849    }
33850}
33851impl From<MatchFull> for MatchType {
33852    #[inline]
33853    fn from(node: MatchFull) -> MatchType {
33854        MatchType::MatchFull(node)
33855    }
33856}
33857impl From<MatchPartial> for MatchType {
33858    #[inline]
33859    fn from(node: MatchPartial) -> MatchType {
33860        MatchType::MatchPartial(node)
33861    }
33862}
33863impl From<MatchSimple> for MatchType {
33864    #[inline]
33865    fn from(node: MatchSimple) -> MatchType {
33866        MatchType::MatchSimple(node)
33867    }
33868}
33869impl AstNode for MergeAction {
33870    #[inline]
33871    fn can_cast(kind: SyntaxKind) -> bool {
33872        matches!(
33873            kind,
33874            SyntaxKind::MERGE_DELETE
33875                | SyntaxKind::MERGE_DO_NOTHING
33876                | SyntaxKind::MERGE_INSERT
33877                | SyntaxKind::MERGE_UPDATE
33878        )
33879    }
33880    #[inline]
33881    fn cast(syntax: SyntaxNode) -> Option<Self> {
33882        let res = match syntax.kind() {
33883            SyntaxKind::MERGE_DELETE => MergeAction::MergeDelete(MergeDelete { syntax }),
33884            SyntaxKind::MERGE_DO_NOTHING => MergeAction::MergeDoNothing(MergeDoNothing { syntax }),
33885            SyntaxKind::MERGE_INSERT => MergeAction::MergeInsert(MergeInsert { syntax }),
33886            SyntaxKind::MERGE_UPDATE => MergeAction::MergeUpdate(MergeUpdate { syntax }),
33887            _ => {
33888                return None;
33889            }
33890        };
33891        Some(res)
33892    }
33893    #[inline]
33894    fn syntax(&self) -> &SyntaxNode {
33895        match self {
33896            MergeAction::MergeDelete(it) => &it.syntax,
33897            MergeAction::MergeDoNothing(it) => &it.syntax,
33898            MergeAction::MergeInsert(it) => &it.syntax,
33899            MergeAction::MergeUpdate(it) => &it.syntax,
33900        }
33901    }
33902}
33903impl From<MergeDelete> for MergeAction {
33904    #[inline]
33905    fn from(node: MergeDelete) -> MergeAction {
33906        MergeAction::MergeDelete(node)
33907    }
33908}
33909impl From<MergeDoNothing> for MergeAction {
33910    #[inline]
33911    fn from(node: MergeDoNothing) -> MergeAction {
33912        MergeAction::MergeDoNothing(node)
33913    }
33914}
33915impl From<MergeInsert> for MergeAction {
33916    #[inline]
33917    fn from(node: MergeInsert) -> MergeAction {
33918        MergeAction::MergeInsert(node)
33919    }
33920}
33921impl From<MergeUpdate> for MergeAction {
33922    #[inline]
33923    fn from(node: MergeUpdate) -> MergeAction {
33924        MergeAction::MergeUpdate(node)
33925    }
33926}
33927impl AstNode for MergeWhenClause {
33928    #[inline]
33929    fn can_cast(kind: SyntaxKind) -> bool {
33930        matches!(
33931            kind,
33932            SyntaxKind::MERGE_WHEN_MATCHED
33933                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE
33934                | SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET
33935        )
33936    }
33937    #[inline]
33938    fn cast(syntax: SyntaxNode) -> Option<Self> {
33939        let res = match syntax.kind() {
33940            SyntaxKind::MERGE_WHEN_MATCHED => {
33941                MergeWhenClause::MergeWhenMatched(MergeWhenMatched { syntax })
33942            }
33943            SyntaxKind::MERGE_WHEN_NOT_MATCHED_SOURCE => {
33944                MergeWhenClause::MergeWhenNotMatchedSource(MergeWhenNotMatchedSource { syntax })
33945            }
33946            SyntaxKind::MERGE_WHEN_NOT_MATCHED_TARGET => {
33947                MergeWhenClause::MergeWhenNotMatchedTarget(MergeWhenNotMatchedTarget { syntax })
33948            }
33949            _ => {
33950                return None;
33951            }
33952        };
33953        Some(res)
33954    }
33955    #[inline]
33956    fn syntax(&self) -> &SyntaxNode {
33957        match self {
33958            MergeWhenClause::MergeWhenMatched(it) => &it.syntax,
33959            MergeWhenClause::MergeWhenNotMatchedSource(it) => &it.syntax,
33960            MergeWhenClause::MergeWhenNotMatchedTarget(it) => &it.syntax,
33961        }
33962    }
33963}
33964impl From<MergeWhenMatched> for MergeWhenClause {
33965    #[inline]
33966    fn from(node: MergeWhenMatched) -> MergeWhenClause {
33967        MergeWhenClause::MergeWhenMatched(node)
33968    }
33969}
33970impl From<MergeWhenNotMatchedSource> for MergeWhenClause {
33971    #[inline]
33972    fn from(node: MergeWhenNotMatchedSource) -> MergeWhenClause {
33973        MergeWhenClause::MergeWhenNotMatchedSource(node)
33974    }
33975}
33976impl From<MergeWhenNotMatchedTarget> for MergeWhenClause {
33977    #[inline]
33978    fn from(node: MergeWhenNotMatchedTarget) -> MergeWhenClause {
33979        MergeWhenClause::MergeWhenNotMatchedTarget(node)
33980    }
33981}
33982impl AstNode for OnCommitAction {
33983    #[inline]
33984    fn can_cast(kind: SyntaxKind) -> bool {
33985        matches!(
33986            kind,
33987            SyntaxKind::DELETE_ROWS | SyntaxKind::DROP | SyntaxKind::PRESERVE_ROWS
33988        )
33989    }
33990    #[inline]
33991    fn cast(syntax: SyntaxNode) -> Option<Self> {
33992        let res = match syntax.kind() {
33993            SyntaxKind::DELETE_ROWS => OnCommitAction::DeleteRows(DeleteRows { syntax }),
33994            SyntaxKind::DROP => OnCommitAction::Drop(Drop { syntax }),
33995            SyntaxKind::PRESERVE_ROWS => OnCommitAction::PreserveRows(PreserveRows { syntax }),
33996            _ => {
33997                return None;
33998            }
33999        };
34000        Some(res)
34001    }
34002    #[inline]
34003    fn syntax(&self) -> &SyntaxNode {
34004        match self {
34005            OnCommitAction::DeleteRows(it) => &it.syntax,
34006            OnCommitAction::Drop(it) => &it.syntax,
34007            OnCommitAction::PreserveRows(it) => &it.syntax,
34008        }
34009    }
34010}
34011impl From<DeleteRows> for OnCommitAction {
34012    #[inline]
34013    fn from(node: DeleteRows) -> OnCommitAction {
34014        OnCommitAction::DeleteRows(node)
34015    }
34016}
34017impl From<Drop> for OnCommitAction {
34018    #[inline]
34019    fn from(node: Drop) -> OnCommitAction {
34020        OnCommitAction::Drop(node)
34021    }
34022}
34023impl From<PreserveRows> for OnCommitAction {
34024    #[inline]
34025    fn from(node: PreserveRows) -> OnCommitAction {
34026        OnCommitAction::PreserveRows(node)
34027    }
34028}
34029impl AstNode for ParamMode {
34030    #[inline]
34031    fn can_cast(kind: SyntaxKind) -> bool {
34032        matches!(
34033            kind,
34034            SyntaxKind::PARAM_IN
34035                | SyntaxKind::PARAM_IN_OUT
34036                | SyntaxKind::PARAM_OUT
34037                | SyntaxKind::PARAM_VARIADIC
34038        )
34039    }
34040    #[inline]
34041    fn cast(syntax: SyntaxNode) -> Option<Self> {
34042        let res = match syntax.kind() {
34043            SyntaxKind::PARAM_IN => ParamMode::ParamIn(ParamIn { syntax }),
34044            SyntaxKind::PARAM_IN_OUT => ParamMode::ParamInOut(ParamInOut { syntax }),
34045            SyntaxKind::PARAM_OUT => ParamMode::ParamOut(ParamOut { syntax }),
34046            SyntaxKind::PARAM_VARIADIC => ParamMode::ParamVariadic(ParamVariadic { syntax }),
34047            _ => {
34048                return None;
34049            }
34050        };
34051        Some(res)
34052    }
34053    #[inline]
34054    fn syntax(&self) -> &SyntaxNode {
34055        match self {
34056            ParamMode::ParamIn(it) => &it.syntax,
34057            ParamMode::ParamInOut(it) => &it.syntax,
34058            ParamMode::ParamOut(it) => &it.syntax,
34059            ParamMode::ParamVariadic(it) => &it.syntax,
34060        }
34061    }
34062}
34063impl From<ParamIn> for ParamMode {
34064    #[inline]
34065    fn from(node: ParamIn) -> ParamMode {
34066        ParamMode::ParamIn(node)
34067    }
34068}
34069impl From<ParamInOut> for ParamMode {
34070    #[inline]
34071    fn from(node: ParamInOut) -> ParamMode {
34072        ParamMode::ParamInOut(node)
34073    }
34074}
34075impl From<ParamOut> for ParamMode {
34076    #[inline]
34077    fn from(node: ParamOut) -> ParamMode {
34078        ParamMode::ParamOut(node)
34079    }
34080}
34081impl From<ParamVariadic> for ParamMode {
34082    #[inline]
34083    fn from(node: ParamVariadic) -> ParamMode {
34084        ParamMode::ParamVariadic(node)
34085    }
34086}
34087impl AstNode for PartitionType {
34088    #[inline]
34089    fn can_cast(kind: SyntaxKind) -> bool {
34090        matches!(
34091            kind,
34092            SyntaxKind::PARTITION_DEFAULT
34093                | SyntaxKind::PARTITION_FOR_VALUES_FROM
34094                | SyntaxKind::PARTITION_FOR_VALUES_IN
34095                | SyntaxKind::PARTITION_FOR_VALUES_WITH
34096        )
34097    }
34098    #[inline]
34099    fn cast(syntax: SyntaxNode) -> Option<Self> {
34100        let res = match syntax.kind() {
34101            SyntaxKind::PARTITION_DEFAULT => {
34102                PartitionType::PartitionDefault(PartitionDefault { syntax })
34103            }
34104            SyntaxKind::PARTITION_FOR_VALUES_FROM => {
34105                PartitionType::PartitionForValuesFrom(PartitionForValuesFrom { syntax })
34106            }
34107            SyntaxKind::PARTITION_FOR_VALUES_IN => {
34108                PartitionType::PartitionForValuesIn(PartitionForValuesIn { syntax })
34109            }
34110            SyntaxKind::PARTITION_FOR_VALUES_WITH => {
34111                PartitionType::PartitionForValuesWith(PartitionForValuesWith { syntax })
34112            }
34113            _ => {
34114                return None;
34115            }
34116        };
34117        Some(res)
34118    }
34119    #[inline]
34120    fn syntax(&self) -> &SyntaxNode {
34121        match self {
34122            PartitionType::PartitionDefault(it) => &it.syntax,
34123            PartitionType::PartitionForValuesFrom(it) => &it.syntax,
34124            PartitionType::PartitionForValuesIn(it) => &it.syntax,
34125            PartitionType::PartitionForValuesWith(it) => &it.syntax,
34126        }
34127    }
34128}
34129impl From<PartitionDefault> for PartitionType {
34130    #[inline]
34131    fn from(node: PartitionDefault) -> PartitionType {
34132        PartitionType::PartitionDefault(node)
34133    }
34134}
34135impl From<PartitionForValuesFrom> for PartitionType {
34136    #[inline]
34137    fn from(node: PartitionForValuesFrom) -> PartitionType {
34138        PartitionType::PartitionForValuesFrom(node)
34139    }
34140}
34141impl From<PartitionForValuesIn> for PartitionType {
34142    #[inline]
34143    fn from(node: PartitionForValuesIn) -> PartitionType {
34144        PartitionType::PartitionForValuesIn(node)
34145    }
34146}
34147impl From<PartitionForValuesWith> for PartitionType {
34148    #[inline]
34149    fn from(node: PartitionForValuesWith) -> PartitionType {
34150        PartitionType::PartitionForValuesWith(node)
34151    }
34152}
34153impl AstNode for PathPrimary {
34154    #[inline]
34155    fn can_cast(kind: SyntaxKind) -> bool {
34156        matches!(
34157            kind,
34158            SyntaxKind::EDGE_ANY
34159                | SyntaxKind::EDGE_LEFT
34160                | SyntaxKind::EDGE_RIGHT
34161                | SyntaxKind::PAREN_GRAPH_PATTERN
34162                | SyntaxKind::VERTEX_PATTERN
34163        )
34164    }
34165    #[inline]
34166    fn cast(syntax: SyntaxNode) -> Option<Self> {
34167        let res = match syntax.kind() {
34168            SyntaxKind::EDGE_ANY => PathPrimary::EdgeAny(EdgeAny { syntax }),
34169            SyntaxKind::EDGE_LEFT => PathPrimary::EdgeLeft(EdgeLeft { syntax }),
34170            SyntaxKind::EDGE_RIGHT => PathPrimary::EdgeRight(EdgeRight { syntax }),
34171            SyntaxKind::PAREN_GRAPH_PATTERN => {
34172                PathPrimary::ParenGraphPattern(ParenGraphPattern { syntax })
34173            }
34174            SyntaxKind::VERTEX_PATTERN => PathPrimary::VertexPattern(VertexPattern { syntax }),
34175            _ => {
34176                return None;
34177            }
34178        };
34179        Some(res)
34180    }
34181    #[inline]
34182    fn syntax(&self) -> &SyntaxNode {
34183        match self {
34184            PathPrimary::EdgeAny(it) => &it.syntax,
34185            PathPrimary::EdgeLeft(it) => &it.syntax,
34186            PathPrimary::EdgeRight(it) => &it.syntax,
34187            PathPrimary::ParenGraphPattern(it) => &it.syntax,
34188            PathPrimary::VertexPattern(it) => &it.syntax,
34189        }
34190    }
34191}
34192impl From<EdgeAny> for PathPrimary {
34193    #[inline]
34194    fn from(node: EdgeAny) -> PathPrimary {
34195        PathPrimary::EdgeAny(node)
34196    }
34197}
34198impl From<EdgeLeft> for PathPrimary {
34199    #[inline]
34200    fn from(node: EdgeLeft) -> PathPrimary {
34201        PathPrimary::EdgeLeft(node)
34202    }
34203}
34204impl From<EdgeRight> for PathPrimary {
34205    #[inline]
34206    fn from(node: EdgeRight) -> PathPrimary {
34207        PathPrimary::EdgeRight(node)
34208    }
34209}
34210impl From<ParenGraphPattern> for PathPrimary {
34211    #[inline]
34212    fn from(node: ParenGraphPattern) -> PathPrimary {
34213        PathPrimary::ParenGraphPattern(node)
34214    }
34215}
34216impl From<VertexPattern> for PathPrimary {
34217    #[inline]
34218    fn from(node: VertexPattern) -> PathPrimary {
34219        PathPrimary::VertexPattern(node)
34220    }
34221}
34222impl AstNode for Persistence {
34223    #[inline]
34224    fn can_cast(kind: SyntaxKind) -> bool {
34225        matches!(kind, SyntaxKind::TEMP | SyntaxKind::UNLOGGED)
34226    }
34227    #[inline]
34228    fn cast(syntax: SyntaxNode) -> Option<Self> {
34229        let res = match syntax.kind() {
34230            SyntaxKind::TEMP => Persistence::Temp(Temp { syntax }),
34231            SyntaxKind::UNLOGGED => Persistence::Unlogged(Unlogged { syntax }),
34232            _ => {
34233                return None;
34234            }
34235        };
34236        Some(res)
34237    }
34238    #[inline]
34239    fn syntax(&self) -> &SyntaxNode {
34240        match self {
34241            Persistence::Temp(it) => &it.syntax,
34242            Persistence::Unlogged(it) => &it.syntax,
34243        }
34244    }
34245}
34246impl From<Temp> for Persistence {
34247    #[inline]
34248    fn from(node: Temp) -> Persistence {
34249        Persistence::Temp(node)
34250    }
34251}
34252impl From<Unlogged> for Persistence {
34253    #[inline]
34254    fn from(node: Unlogged) -> Persistence {
34255        Persistence::Unlogged(node)
34256    }
34257}
34258impl AstNode for PreparableStmt {
34259    #[inline]
34260    fn can_cast(kind: SyntaxKind) -> bool {
34261        matches!(
34262            kind,
34263            SyntaxKind::COMPOUND_SELECT
34264                | SyntaxKind::DELETE
34265                | SyntaxKind::INSERT
34266                | SyntaxKind::MERGE
34267                | SyntaxKind::SELECT
34268                | SyntaxKind::SELECT_INTO
34269                | SyntaxKind::TABLE
34270                | SyntaxKind::UPDATE
34271                | SyntaxKind::VALUES
34272        )
34273    }
34274    #[inline]
34275    fn cast(syntax: SyntaxNode) -> Option<Self> {
34276        let res = match syntax.kind() {
34277            SyntaxKind::COMPOUND_SELECT => {
34278                PreparableStmt::CompoundSelect(CompoundSelect { syntax })
34279            }
34280            SyntaxKind::DELETE => PreparableStmt::Delete(Delete { syntax }),
34281            SyntaxKind::INSERT => PreparableStmt::Insert(Insert { syntax }),
34282            SyntaxKind::MERGE => PreparableStmt::Merge(Merge { syntax }),
34283            SyntaxKind::SELECT => PreparableStmt::Select(Select { syntax }),
34284            SyntaxKind::SELECT_INTO => PreparableStmt::SelectInto(SelectInto { syntax }),
34285            SyntaxKind::TABLE => PreparableStmt::Table(Table { syntax }),
34286            SyntaxKind::UPDATE => PreparableStmt::Update(Update { syntax }),
34287            SyntaxKind::VALUES => PreparableStmt::Values(Values { syntax }),
34288            _ => {
34289                return None;
34290            }
34291        };
34292        Some(res)
34293    }
34294    #[inline]
34295    fn syntax(&self) -> &SyntaxNode {
34296        match self {
34297            PreparableStmt::CompoundSelect(it) => &it.syntax,
34298            PreparableStmt::Delete(it) => &it.syntax,
34299            PreparableStmt::Insert(it) => &it.syntax,
34300            PreparableStmt::Merge(it) => &it.syntax,
34301            PreparableStmt::Select(it) => &it.syntax,
34302            PreparableStmt::SelectInto(it) => &it.syntax,
34303            PreparableStmt::Table(it) => &it.syntax,
34304            PreparableStmt::Update(it) => &it.syntax,
34305            PreparableStmt::Values(it) => &it.syntax,
34306        }
34307    }
34308}
34309impl From<CompoundSelect> for PreparableStmt {
34310    #[inline]
34311    fn from(node: CompoundSelect) -> PreparableStmt {
34312        PreparableStmt::CompoundSelect(node)
34313    }
34314}
34315impl From<Delete> for PreparableStmt {
34316    #[inline]
34317    fn from(node: Delete) -> PreparableStmt {
34318        PreparableStmt::Delete(node)
34319    }
34320}
34321impl From<Insert> for PreparableStmt {
34322    #[inline]
34323    fn from(node: Insert) -> PreparableStmt {
34324        PreparableStmt::Insert(node)
34325    }
34326}
34327impl From<Merge> for PreparableStmt {
34328    #[inline]
34329    fn from(node: Merge) -> PreparableStmt {
34330        PreparableStmt::Merge(node)
34331    }
34332}
34333impl From<Select> for PreparableStmt {
34334    #[inline]
34335    fn from(node: Select) -> PreparableStmt {
34336        PreparableStmt::Select(node)
34337    }
34338}
34339impl From<SelectInto> for PreparableStmt {
34340    #[inline]
34341    fn from(node: SelectInto) -> PreparableStmt {
34342        PreparableStmt::SelectInto(node)
34343    }
34344}
34345impl From<Table> for PreparableStmt {
34346    #[inline]
34347    fn from(node: Table) -> PreparableStmt {
34348        PreparableStmt::Table(node)
34349    }
34350}
34351impl From<Update> for PreparableStmt {
34352    #[inline]
34353    fn from(node: Update) -> PreparableStmt {
34354        PreparableStmt::Update(node)
34355    }
34356}
34357impl From<Values> for PreparableStmt {
34358    #[inline]
34359    fn from(node: Values) -> PreparableStmt {
34360        PreparableStmt::Values(node)
34361    }
34362}
34363impl AstNode for RefAction {
34364    #[inline]
34365    fn can_cast(kind: SyntaxKind) -> bool {
34366        matches!(
34367            kind,
34368            SyntaxKind::CASCADE
34369                | SyntaxKind::NO_ACTION
34370                | SyntaxKind::RESTRICT
34371                | SyntaxKind::SET_DEFAULT_COLUMNS
34372                | SyntaxKind::SET_NULL_COLUMNS
34373        )
34374    }
34375    #[inline]
34376    fn cast(syntax: SyntaxNode) -> Option<Self> {
34377        let res = match syntax.kind() {
34378            SyntaxKind::CASCADE => RefAction::Cascade(Cascade { syntax }),
34379            SyntaxKind::NO_ACTION => RefAction::NoAction(NoAction { syntax }),
34380            SyntaxKind::RESTRICT => RefAction::Restrict(Restrict { syntax }),
34381            SyntaxKind::SET_DEFAULT_COLUMNS => {
34382                RefAction::SetDefaultColumns(SetDefaultColumns { syntax })
34383            }
34384            SyntaxKind::SET_NULL_COLUMNS => RefAction::SetNullColumns(SetNullColumns { syntax }),
34385            _ => {
34386                return None;
34387            }
34388        };
34389        Some(res)
34390    }
34391    #[inline]
34392    fn syntax(&self) -> &SyntaxNode {
34393        match self {
34394            RefAction::Cascade(it) => &it.syntax,
34395            RefAction::NoAction(it) => &it.syntax,
34396            RefAction::Restrict(it) => &it.syntax,
34397            RefAction::SetDefaultColumns(it) => &it.syntax,
34398            RefAction::SetNullColumns(it) => &it.syntax,
34399        }
34400    }
34401}
34402impl From<Cascade> for RefAction {
34403    #[inline]
34404    fn from(node: Cascade) -> RefAction {
34405        RefAction::Cascade(node)
34406    }
34407}
34408impl From<NoAction> for RefAction {
34409    #[inline]
34410    fn from(node: NoAction) -> RefAction {
34411        RefAction::NoAction(node)
34412    }
34413}
34414impl From<Restrict> for RefAction {
34415    #[inline]
34416    fn from(node: Restrict) -> RefAction {
34417        RefAction::Restrict(node)
34418    }
34419}
34420impl From<SetDefaultColumns> for RefAction {
34421    #[inline]
34422    fn from(node: SetDefaultColumns) -> RefAction {
34423        RefAction::SetDefaultColumns(node)
34424    }
34425}
34426impl From<SetNullColumns> for RefAction {
34427    #[inline]
34428    fn from(node: SetNullColumns) -> RefAction {
34429        RefAction::SetNullColumns(node)
34430    }
34431}
34432impl AstNode for RuleStmt {
34433    #[inline]
34434    fn can_cast(kind: SyntaxKind) -> bool {
34435        matches!(
34436            kind,
34437            SyntaxKind::DELETE | SyntaxKind::INSERT | SyntaxKind::NOTIFY | SyntaxKind::UPDATE
34438        )
34439    }
34440    #[inline]
34441    fn cast(syntax: SyntaxNode) -> Option<Self> {
34442        let res = match syntax.kind() {
34443            SyntaxKind::DELETE => RuleStmt::Delete(Delete { syntax }),
34444            SyntaxKind::INSERT => RuleStmt::Insert(Insert { syntax }),
34445            SyntaxKind::NOTIFY => RuleStmt::Notify(Notify { syntax }),
34446            SyntaxKind::UPDATE => RuleStmt::Update(Update { syntax }),
34447            _ => {
34448                if let Some(result) = SelectVariant::cast(syntax) {
34449                    return Some(RuleStmt::SelectVariant(result));
34450                }
34451                return None;
34452            }
34453        };
34454        Some(res)
34455    }
34456    #[inline]
34457    fn syntax(&self) -> &SyntaxNode {
34458        match self {
34459            RuleStmt::Delete(it) => &it.syntax,
34460            RuleStmt::Insert(it) => &it.syntax,
34461            RuleStmt::Notify(it) => &it.syntax,
34462            RuleStmt::Update(it) => &it.syntax,
34463            RuleStmt::SelectVariant(it) => it.syntax(),
34464        }
34465    }
34466}
34467impl From<Delete> for RuleStmt {
34468    #[inline]
34469    fn from(node: Delete) -> RuleStmt {
34470        RuleStmt::Delete(node)
34471    }
34472}
34473impl From<Insert> for RuleStmt {
34474    #[inline]
34475    fn from(node: Insert) -> RuleStmt {
34476        RuleStmt::Insert(node)
34477    }
34478}
34479impl From<Notify> for RuleStmt {
34480    #[inline]
34481    fn from(node: Notify) -> RuleStmt {
34482        RuleStmt::Notify(node)
34483    }
34484}
34485impl From<Update> for RuleStmt {
34486    #[inline]
34487    fn from(node: Update) -> RuleStmt {
34488        RuleStmt::Update(node)
34489    }
34490}
34491impl AstNode for SchemaElement {
34492    #[inline]
34493    fn can_cast(kind: SyntaxKind) -> bool {
34494        matches!(
34495            kind,
34496            SyntaxKind::CREATE_INDEX
34497                | SyntaxKind::CREATE_SEQUENCE
34498                | SyntaxKind::CREATE_TABLE
34499                | SyntaxKind::CREATE_TRIGGER
34500                | SyntaxKind::CREATE_VIEW
34501                | SyntaxKind::GRANT
34502        )
34503    }
34504    #[inline]
34505    fn cast(syntax: SyntaxNode) -> Option<Self> {
34506        let res = match syntax.kind() {
34507            SyntaxKind::CREATE_INDEX => SchemaElement::CreateIndex(CreateIndex { syntax }),
34508            SyntaxKind::CREATE_SEQUENCE => SchemaElement::CreateSequence(CreateSequence { syntax }),
34509            SyntaxKind::CREATE_TABLE => SchemaElement::CreateTable(CreateTable { syntax }),
34510            SyntaxKind::CREATE_TRIGGER => SchemaElement::CreateTrigger(CreateTrigger { syntax }),
34511            SyntaxKind::CREATE_VIEW => SchemaElement::CreateView(CreateView { syntax }),
34512            SyntaxKind::GRANT => SchemaElement::Grant(Grant { syntax }),
34513            _ => {
34514                return None;
34515            }
34516        };
34517        Some(res)
34518    }
34519    #[inline]
34520    fn syntax(&self) -> &SyntaxNode {
34521        match self {
34522            SchemaElement::CreateIndex(it) => &it.syntax,
34523            SchemaElement::CreateSequence(it) => &it.syntax,
34524            SchemaElement::CreateTable(it) => &it.syntax,
34525            SchemaElement::CreateTrigger(it) => &it.syntax,
34526            SchemaElement::CreateView(it) => &it.syntax,
34527            SchemaElement::Grant(it) => &it.syntax,
34528        }
34529    }
34530}
34531impl From<CreateIndex> for SchemaElement {
34532    #[inline]
34533    fn from(node: CreateIndex) -> SchemaElement {
34534        SchemaElement::CreateIndex(node)
34535    }
34536}
34537impl From<CreateSequence> for SchemaElement {
34538    #[inline]
34539    fn from(node: CreateSequence) -> SchemaElement {
34540        SchemaElement::CreateSequence(node)
34541    }
34542}
34543impl From<CreateTable> for SchemaElement {
34544    #[inline]
34545    fn from(node: CreateTable) -> SchemaElement {
34546        SchemaElement::CreateTable(node)
34547    }
34548}
34549impl From<CreateTrigger> for SchemaElement {
34550    #[inline]
34551    fn from(node: CreateTrigger) -> SchemaElement {
34552        SchemaElement::CreateTrigger(node)
34553    }
34554}
34555impl From<CreateView> for SchemaElement {
34556    #[inline]
34557    fn from(node: CreateView) -> SchemaElement {
34558        SchemaElement::CreateView(node)
34559    }
34560}
34561impl From<Grant> for SchemaElement {
34562    #[inline]
34563    fn from(node: Grant) -> SchemaElement {
34564        SchemaElement::Grant(node)
34565    }
34566}
34567impl AstNode for SelectVariant {
34568    #[inline]
34569    fn can_cast(kind: SyntaxKind) -> bool {
34570        matches!(
34571            kind,
34572            SyntaxKind::COMPOUND_SELECT
34573                | SyntaxKind::PAREN_SELECT
34574                | SyntaxKind::SELECT
34575                | SyntaxKind::SELECT_INTO
34576                | SyntaxKind::TABLE
34577                | SyntaxKind::VALUES
34578        )
34579    }
34580    #[inline]
34581    fn cast(syntax: SyntaxNode) -> Option<Self> {
34582        let res = match syntax.kind() {
34583            SyntaxKind::COMPOUND_SELECT => SelectVariant::CompoundSelect(CompoundSelect { syntax }),
34584            SyntaxKind::PAREN_SELECT => SelectVariant::ParenSelect(ParenSelect { syntax }),
34585            SyntaxKind::SELECT => SelectVariant::Select(Select { syntax }),
34586            SyntaxKind::SELECT_INTO => SelectVariant::SelectInto(SelectInto { syntax }),
34587            SyntaxKind::TABLE => SelectVariant::Table(Table { syntax }),
34588            SyntaxKind::VALUES => SelectVariant::Values(Values { syntax }),
34589            _ => {
34590                return None;
34591            }
34592        };
34593        Some(res)
34594    }
34595    #[inline]
34596    fn syntax(&self) -> &SyntaxNode {
34597        match self {
34598            SelectVariant::CompoundSelect(it) => &it.syntax,
34599            SelectVariant::ParenSelect(it) => &it.syntax,
34600            SelectVariant::Select(it) => &it.syntax,
34601            SelectVariant::SelectInto(it) => &it.syntax,
34602            SelectVariant::Table(it) => &it.syntax,
34603            SelectVariant::Values(it) => &it.syntax,
34604        }
34605    }
34606}
34607impl From<CompoundSelect> for SelectVariant {
34608    #[inline]
34609    fn from(node: CompoundSelect) -> SelectVariant {
34610        SelectVariant::CompoundSelect(node)
34611    }
34612}
34613impl From<ParenSelect> for SelectVariant {
34614    #[inline]
34615    fn from(node: ParenSelect) -> SelectVariant {
34616        SelectVariant::ParenSelect(node)
34617    }
34618}
34619impl From<Select> for SelectVariant {
34620    #[inline]
34621    fn from(node: Select) -> SelectVariant {
34622        SelectVariant::Select(node)
34623    }
34624}
34625impl From<SelectInto> for SelectVariant {
34626    #[inline]
34627    fn from(node: SelectInto) -> SelectVariant {
34628        SelectVariant::SelectInto(node)
34629    }
34630}
34631impl From<Table> for SelectVariant {
34632    #[inline]
34633    fn from(node: Table) -> SelectVariant {
34634        SelectVariant::Table(node)
34635    }
34636}
34637impl From<Values> for SelectVariant {
34638    #[inline]
34639    fn from(node: Values) -> SelectVariant {
34640        SelectVariant::Values(node)
34641    }
34642}
34643impl AstNode for SetColumn {
34644    #[inline]
34645    fn can_cast(kind: SyntaxKind) -> bool {
34646        matches!(
34647            kind,
34648            SyntaxKind::SET_MULTIPLE_COLUMNS | SyntaxKind::SET_SINGLE_COLUMN
34649        )
34650    }
34651    #[inline]
34652    fn cast(syntax: SyntaxNode) -> Option<Self> {
34653        let res = match syntax.kind() {
34654            SyntaxKind::SET_MULTIPLE_COLUMNS => {
34655                SetColumn::SetMultipleColumns(SetMultipleColumns { syntax })
34656            }
34657            SyntaxKind::SET_SINGLE_COLUMN => SetColumn::SetSingleColumn(SetSingleColumn { syntax }),
34658            _ => {
34659                return None;
34660            }
34661        };
34662        Some(res)
34663    }
34664    #[inline]
34665    fn syntax(&self) -> &SyntaxNode {
34666        match self {
34667            SetColumn::SetMultipleColumns(it) => &it.syntax,
34668            SetColumn::SetSingleColumn(it) => &it.syntax,
34669        }
34670    }
34671}
34672impl From<SetMultipleColumns> for SetColumn {
34673    #[inline]
34674    fn from(node: SetMultipleColumns) -> SetColumn {
34675        SetColumn::SetMultipleColumns(node)
34676    }
34677}
34678impl From<SetSingleColumn> for SetColumn {
34679    #[inline]
34680    fn from(node: SetSingleColumn) -> SetColumn {
34681        SetColumn::SetSingleColumn(node)
34682    }
34683}
34684impl AstNode for Stmt {
34685    #[inline]
34686    fn can_cast(kind: SyntaxKind) -> bool {
34687        matches!(
34688            kind,
34689            SyntaxKind::ALTER_AGGREGATE
34690                | SyntaxKind::ALTER_COLLATION
34691                | SyntaxKind::ALTER_CONVERSION
34692                | SyntaxKind::ALTER_DATABASE
34693                | SyntaxKind::ALTER_DEFAULT_PRIVILEGES
34694                | SyntaxKind::ALTER_DOMAIN
34695                | SyntaxKind::ALTER_EVENT_TRIGGER
34696                | SyntaxKind::ALTER_EXTENSION
34697                | SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER
34698                | SyntaxKind::ALTER_FOREIGN_TABLE
34699                | SyntaxKind::ALTER_FUNCTION
34700                | SyntaxKind::ALTER_GROUP
34701                | SyntaxKind::ALTER_INDEX
34702                | SyntaxKind::ALTER_LANGUAGE
34703                | SyntaxKind::ALTER_LARGE_OBJECT
34704                | SyntaxKind::ALTER_MATERIALIZED_VIEW
34705                | SyntaxKind::ALTER_OPERATOR
34706                | SyntaxKind::ALTER_OPERATOR_CLASS
34707                | SyntaxKind::ALTER_OPERATOR_FAMILY
34708                | SyntaxKind::ALTER_POLICY
34709                | SyntaxKind::ALTER_PROCEDURE
34710                | SyntaxKind::ALTER_PROPERTY_GRAPH
34711                | SyntaxKind::ALTER_PUBLICATION
34712                | SyntaxKind::ALTER_ROLE
34713                | SyntaxKind::ALTER_ROUTINE
34714                | SyntaxKind::ALTER_RULE
34715                | SyntaxKind::ALTER_SCHEMA
34716                | SyntaxKind::ALTER_SEQUENCE
34717                | SyntaxKind::ALTER_SERVER
34718                | SyntaxKind::ALTER_STATISTICS
34719                | SyntaxKind::ALTER_SUBSCRIPTION
34720                | SyntaxKind::ALTER_SYSTEM
34721                | SyntaxKind::ALTER_TABLE
34722                | SyntaxKind::ALTER_TABLESPACE
34723                | SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION
34724                | SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY
34725                | SyntaxKind::ALTER_TEXT_SEARCH_PARSER
34726                | SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE
34727                | SyntaxKind::ALTER_TRIGGER
34728                | SyntaxKind::ALTER_TYPE
34729                | SyntaxKind::ALTER_USER
34730                | SyntaxKind::ALTER_USER_MAPPING
34731                | SyntaxKind::ALTER_VIEW
34732                | SyntaxKind::ANALYZE
34733                | SyntaxKind::BEGIN
34734                | SyntaxKind::CALL
34735                | SyntaxKind::CHECKPOINT
34736                | SyntaxKind::CLOSE
34737                | SyntaxKind::CLUSTER
34738                | SyntaxKind::COMMENT_ON
34739                | SyntaxKind::COMMIT
34740                | SyntaxKind::COPY
34741                | SyntaxKind::CREATE_ACCESS_METHOD
34742                | SyntaxKind::CREATE_AGGREGATE
34743                | SyntaxKind::CREATE_CAST
34744                | SyntaxKind::CREATE_COLLATION
34745                | SyntaxKind::CREATE_CONVERSION
34746                | SyntaxKind::CREATE_DATABASE
34747                | SyntaxKind::CREATE_DOMAIN
34748                | SyntaxKind::CREATE_EVENT_TRIGGER
34749                | SyntaxKind::CREATE_EXTENSION
34750                | SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER
34751                | SyntaxKind::CREATE_FOREIGN_TABLE
34752                | SyntaxKind::CREATE_FUNCTION
34753                | SyntaxKind::CREATE_GROUP
34754                | SyntaxKind::CREATE_INDEX
34755                | SyntaxKind::CREATE_LANGUAGE
34756                | SyntaxKind::CREATE_MATERIALIZED_VIEW
34757                | SyntaxKind::CREATE_OPERATOR
34758                | SyntaxKind::CREATE_OPERATOR_CLASS
34759                | SyntaxKind::CREATE_OPERATOR_FAMILY
34760                | SyntaxKind::CREATE_POLICY
34761                | SyntaxKind::CREATE_PROCEDURE
34762                | SyntaxKind::CREATE_PROPERTY_GRAPH
34763                | SyntaxKind::CREATE_PUBLICATION
34764                | SyntaxKind::CREATE_ROLE
34765                | SyntaxKind::CREATE_RULE
34766                | SyntaxKind::CREATE_SCHEMA
34767                | SyntaxKind::CREATE_SEQUENCE
34768                | SyntaxKind::CREATE_SERVER
34769                | SyntaxKind::CREATE_STATISTICS
34770                | SyntaxKind::CREATE_SUBSCRIPTION
34771                | SyntaxKind::CREATE_TABLE
34772                | SyntaxKind::CREATE_TABLE_AS
34773                | SyntaxKind::CREATE_TABLESPACE
34774                | SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION
34775                | SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY
34776                | SyntaxKind::CREATE_TEXT_SEARCH_PARSER
34777                | SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE
34778                | SyntaxKind::CREATE_TRANSFORM
34779                | SyntaxKind::CREATE_TRIGGER
34780                | SyntaxKind::CREATE_TYPE
34781                | SyntaxKind::CREATE_USER
34782                | SyntaxKind::CREATE_USER_MAPPING
34783                | SyntaxKind::CREATE_VIEW
34784                | SyntaxKind::DEALLOCATE
34785                | SyntaxKind::DECLARE
34786                | SyntaxKind::DELETE
34787                | SyntaxKind::DISCARD
34788                | SyntaxKind::DO
34789                | SyntaxKind::DROP_ACCESS_METHOD
34790                | SyntaxKind::DROP_AGGREGATE
34791                | SyntaxKind::DROP_CAST
34792                | SyntaxKind::DROP_COLLATION
34793                | SyntaxKind::DROP_CONVERSION
34794                | SyntaxKind::DROP_DATABASE
34795                | SyntaxKind::DROP_DOMAIN
34796                | SyntaxKind::DROP_EVENT_TRIGGER
34797                | SyntaxKind::DROP_EXTENSION
34798                | SyntaxKind::DROP_FOREIGN_DATA_WRAPPER
34799                | SyntaxKind::DROP_FOREIGN_TABLE
34800                | SyntaxKind::DROP_FUNCTION
34801                | SyntaxKind::DROP_GROUP
34802                | SyntaxKind::DROP_INDEX
34803                | SyntaxKind::DROP_LANGUAGE
34804                | SyntaxKind::DROP_MATERIALIZED_VIEW
34805                | SyntaxKind::DROP_OPERATOR
34806                | SyntaxKind::DROP_OPERATOR_CLASS
34807                | SyntaxKind::DROP_OPERATOR_FAMILY
34808                | SyntaxKind::DROP_OWNED
34809                | SyntaxKind::DROP_POLICY
34810                | SyntaxKind::DROP_PROCEDURE
34811                | SyntaxKind::DROP_PROPERTY_GRAPH
34812                | SyntaxKind::DROP_PUBLICATION
34813                | SyntaxKind::DROP_ROLE
34814                | SyntaxKind::DROP_ROUTINE
34815                | SyntaxKind::DROP_RULE
34816                | SyntaxKind::DROP_SCHEMA
34817                | SyntaxKind::DROP_SEQUENCE
34818                | SyntaxKind::DROP_SERVER
34819                | SyntaxKind::DROP_STATISTICS
34820                | SyntaxKind::DROP_SUBSCRIPTION
34821                | SyntaxKind::DROP_TABLE
34822                | SyntaxKind::DROP_TABLESPACE
34823                | SyntaxKind::DROP_TEXT_SEARCH_CONFIG
34824                | SyntaxKind::DROP_TEXT_SEARCH_DICT
34825                | SyntaxKind::DROP_TEXT_SEARCH_PARSER
34826                | SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE
34827                | SyntaxKind::DROP_TRANSFORM
34828                | SyntaxKind::DROP_TRIGGER
34829                | SyntaxKind::DROP_TYPE
34830                | SyntaxKind::DROP_USER
34831                | SyntaxKind::DROP_USER_MAPPING
34832                | SyntaxKind::DROP_VIEW
34833                | SyntaxKind::EMPTY_STMT
34834                | SyntaxKind::EXECUTE
34835                | SyntaxKind::EXPLAIN
34836                | SyntaxKind::FETCH
34837                | SyntaxKind::GRANT
34838                | SyntaxKind::IMPORT_FOREIGN_SCHEMA
34839                | SyntaxKind::INSERT
34840                | SyntaxKind::LISTEN
34841                | SyntaxKind::LOAD
34842                | SyntaxKind::LOCK
34843                | SyntaxKind::MERGE
34844                | SyntaxKind::MOVE
34845                | SyntaxKind::NOTIFY
34846                | SyntaxKind::PAREN_SELECT
34847                | SyntaxKind::PREPARE
34848                | SyntaxKind::PREPARE_TRANSACTION
34849                | SyntaxKind::REASSIGN
34850                | SyntaxKind::REFRESH
34851                | SyntaxKind::REINDEX
34852                | SyntaxKind::RELEASE_SAVEPOINT
34853                | SyntaxKind::REPACK
34854                | SyntaxKind::RESET
34855                | SyntaxKind::RESET_SESSION_AUTH
34856                | SyntaxKind::REVOKE
34857                | SyntaxKind::ROLLBACK
34858                | SyntaxKind::SAVEPOINT
34859                | SyntaxKind::SECURITY_LABEL
34860                | SyntaxKind::SELECT
34861                | SyntaxKind::SELECT_INTO
34862                | SyntaxKind::SET
34863                | SyntaxKind::SET_CONSTRAINTS
34864                | SyntaxKind::SET_ROLE
34865                | SyntaxKind::SET_SESSION_AUTH
34866                | SyntaxKind::SET_TRANSACTION
34867                | SyntaxKind::SHOW
34868                | SyntaxKind::TABLE
34869                | SyntaxKind::TRUNCATE
34870                | SyntaxKind::UNLISTEN
34871                | SyntaxKind::UPDATE
34872                | SyntaxKind::VACUUM
34873                | SyntaxKind::VALUES
34874        )
34875    }
34876    #[inline]
34877    fn cast(syntax: SyntaxNode) -> Option<Self> {
34878        let res = match syntax.kind() {
34879            SyntaxKind::ALTER_AGGREGATE => Stmt::AlterAggregate(AlterAggregate { syntax }),
34880            SyntaxKind::ALTER_COLLATION => Stmt::AlterCollation(AlterCollation { syntax }),
34881            SyntaxKind::ALTER_CONVERSION => Stmt::AlterConversion(AlterConversion { syntax }),
34882            SyntaxKind::ALTER_DATABASE => Stmt::AlterDatabase(AlterDatabase { syntax }),
34883            SyntaxKind::ALTER_DEFAULT_PRIVILEGES => {
34884                Stmt::AlterDefaultPrivileges(AlterDefaultPrivileges { syntax })
34885            }
34886            SyntaxKind::ALTER_DOMAIN => Stmt::AlterDomain(AlterDomain { syntax }),
34887            SyntaxKind::ALTER_EVENT_TRIGGER => {
34888                Stmt::AlterEventTrigger(AlterEventTrigger { syntax })
34889            }
34890            SyntaxKind::ALTER_EXTENSION => Stmt::AlterExtension(AlterExtension { syntax }),
34891            SyntaxKind::ALTER_FOREIGN_DATA_WRAPPER => {
34892                Stmt::AlterForeignDataWrapper(AlterForeignDataWrapper { syntax })
34893            }
34894            SyntaxKind::ALTER_FOREIGN_TABLE => {
34895                Stmt::AlterForeignTable(AlterForeignTable { syntax })
34896            }
34897            SyntaxKind::ALTER_FUNCTION => Stmt::AlterFunction(AlterFunction { syntax }),
34898            SyntaxKind::ALTER_GROUP => Stmt::AlterGroup(AlterGroup { syntax }),
34899            SyntaxKind::ALTER_INDEX => Stmt::AlterIndex(AlterIndex { syntax }),
34900            SyntaxKind::ALTER_LANGUAGE => Stmt::AlterLanguage(AlterLanguage { syntax }),
34901            SyntaxKind::ALTER_LARGE_OBJECT => Stmt::AlterLargeObject(AlterLargeObject { syntax }),
34902            SyntaxKind::ALTER_MATERIALIZED_VIEW => {
34903                Stmt::AlterMaterializedView(AlterMaterializedView { syntax })
34904            }
34905            SyntaxKind::ALTER_OPERATOR => Stmt::AlterOperator(AlterOperator { syntax }),
34906            SyntaxKind::ALTER_OPERATOR_CLASS => {
34907                Stmt::AlterOperatorClass(AlterOperatorClass { syntax })
34908            }
34909            SyntaxKind::ALTER_OPERATOR_FAMILY => {
34910                Stmt::AlterOperatorFamily(AlterOperatorFamily { syntax })
34911            }
34912            SyntaxKind::ALTER_POLICY => Stmt::AlterPolicy(AlterPolicy { syntax }),
34913            SyntaxKind::ALTER_PROCEDURE => Stmt::AlterProcedure(AlterProcedure { syntax }),
34914            SyntaxKind::ALTER_PROPERTY_GRAPH => {
34915                Stmt::AlterPropertyGraph(AlterPropertyGraph { syntax })
34916            }
34917            SyntaxKind::ALTER_PUBLICATION => Stmt::AlterPublication(AlterPublication { syntax }),
34918            SyntaxKind::ALTER_ROLE => Stmt::AlterRole(AlterRole { syntax }),
34919            SyntaxKind::ALTER_ROUTINE => Stmt::AlterRoutine(AlterRoutine { syntax }),
34920            SyntaxKind::ALTER_RULE => Stmt::AlterRule(AlterRule { syntax }),
34921            SyntaxKind::ALTER_SCHEMA => Stmt::AlterSchema(AlterSchema { syntax }),
34922            SyntaxKind::ALTER_SEQUENCE => Stmt::AlterSequence(AlterSequence { syntax }),
34923            SyntaxKind::ALTER_SERVER => Stmt::AlterServer(AlterServer { syntax }),
34924            SyntaxKind::ALTER_STATISTICS => Stmt::AlterStatistics(AlterStatistics { syntax }),
34925            SyntaxKind::ALTER_SUBSCRIPTION => Stmt::AlterSubscription(AlterSubscription { syntax }),
34926            SyntaxKind::ALTER_SYSTEM => Stmt::AlterSystem(AlterSystem { syntax }),
34927            SyntaxKind::ALTER_TABLE => Stmt::AlterTable(AlterTable { syntax }),
34928            SyntaxKind::ALTER_TABLESPACE => Stmt::AlterTablespace(AlterTablespace { syntax }),
34929            SyntaxKind::ALTER_TEXT_SEARCH_CONFIGURATION => {
34930                Stmt::AlterTextSearchConfiguration(AlterTextSearchConfiguration { syntax })
34931            }
34932            SyntaxKind::ALTER_TEXT_SEARCH_DICTIONARY => {
34933                Stmt::AlterTextSearchDictionary(AlterTextSearchDictionary { syntax })
34934            }
34935            SyntaxKind::ALTER_TEXT_SEARCH_PARSER => {
34936                Stmt::AlterTextSearchParser(AlterTextSearchParser { syntax })
34937            }
34938            SyntaxKind::ALTER_TEXT_SEARCH_TEMPLATE => {
34939                Stmt::AlterTextSearchTemplate(AlterTextSearchTemplate { syntax })
34940            }
34941            SyntaxKind::ALTER_TRIGGER => Stmt::AlterTrigger(AlterTrigger { syntax }),
34942            SyntaxKind::ALTER_TYPE => Stmt::AlterType(AlterType { syntax }),
34943            SyntaxKind::ALTER_USER => Stmt::AlterUser(AlterUser { syntax }),
34944            SyntaxKind::ALTER_USER_MAPPING => Stmt::AlterUserMapping(AlterUserMapping { syntax }),
34945            SyntaxKind::ALTER_VIEW => Stmt::AlterView(AlterView { syntax }),
34946            SyntaxKind::ANALYZE => Stmt::Analyze(Analyze { syntax }),
34947            SyntaxKind::BEGIN => Stmt::Begin(Begin { syntax }),
34948            SyntaxKind::CALL => Stmt::Call(Call { syntax }),
34949            SyntaxKind::CHECKPOINT => Stmt::Checkpoint(Checkpoint { syntax }),
34950            SyntaxKind::CLOSE => Stmt::Close(Close { syntax }),
34951            SyntaxKind::CLUSTER => Stmt::Cluster(Cluster { syntax }),
34952            SyntaxKind::COMMENT_ON => Stmt::CommentOn(CommentOn { syntax }),
34953            SyntaxKind::COMMIT => Stmt::Commit(Commit { syntax }),
34954            SyntaxKind::COPY => Stmt::Copy(Copy { syntax }),
34955            SyntaxKind::CREATE_ACCESS_METHOD => {
34956                Stmt::CreateAccessMethod(CreateAccessMethod { syntax })
34957            }
34958            SyntaxKind::CREATE_AGGREGATE => Stmt::CreateAggregate(CreateAggregate { syntax }),
34959            SyntaxKind::CREATE_CAST => Stmt::CreateCast(CreateCast { syntax }),
34960            SyntaxKind::CREATE_COLLATION => Stmt::CreateCollation(CreateCollation { syntax }),
34961            SyntaxKind::CREATE_CONVERSION => Stmt::CreateConversion(CreateConversion { syntax }),
34962            SyntaxKind::CREATE_DATABASE => Stmt::CreateDatabase(CreateDatabase { syntax }),
34963            SyntaxKind::CREATE_DOMAIN => Stmt::CreateDomain(CreateDomain { syntax }),
34964            SyntaxKind::CREATE_EVENT_TRIGGER => {
34965                Stmt::CreateEventTrigger(CreateEventTrigger { syntax })
34966            }
34967            SyntaxKind::CREATE_EXTENSION => Stmt::CreateExtension(CreateExtension { syntax }),
34968            SyntaxKind::CREATE_FOREIGN_DATA_WRAPPER => {
34969                Stmt::CreateForeignDataWrapper(CreateForeignDataWrapper { syntax })
34970            }
34971            SyntaxKind::CREATE_FOREIGN_TABLE => {
34972                Stmt::CreateForeignTable(CreateForeignTable { syntax })
34973            }
34974            SyntaxKind::CREATE_FUNCTION => Stmt::CreateFunction(CreateFunction { syntax }),
34975            SyntaxKind::CREATE_GROUP => Stmt::CreateGroup(CreateGroup { syntax }),
34976            SyntaxKind::CREATE_INDEX => Stmt::CreateIndex(CreateIndex { syntax }),
34977            SyntaxKind::CREATE_LANGUAGE => Stmt::CreateLanguage(CreateLanguage { syntax }),
34978            SyntaxKind::CREATE_MATERIALIZED_VIEW => {
34979                Stmt::CreateMaterializedView(CreateMaterializedView { syntax })
34980            }
34981            SyntaxKind::CREATE_OPERATOR => Stmt::CreateOperator(CreateOperator { syntax }),
34982            SyntaxKind::CREATE_OPERATOR_CLASS => {
34983                Stmt::CreateOperatorClass(CreateOperatorClass { syntax })
34984            }
34985            SyntaxKind::CREATE_OPERATOR_FAMILY => {
34986                Stmt::CreateOperatorFamily(CreateOperatorFamily { syntax })
34987            }
34988            SyntaxKind::CREATE_POLICY => Stmt::CreatePolicy(CreatePolicy { syntax }),
34989            SyntaxKind::CREATE_PROCEDURE => Stmt::CreateProcedure(CreateProcedure { syntax }),
34990            SyntaxKind::CREATE_PROPERTY_GRAPH => {
34991                Stmt::CreatePropertyGraph(CreatePropertyGraph { syntax })
34992            }
34993            SyntaxKind::CREATE_PUBLICATION => Stmt::CreatePublication(CreatePublication { syntax }),
34994            SyntaxKind::CREATE_ROLE => Stmt::CreateRole(CreateRole { syntax }),
34995            SyntaxKind::CREATE_RULE => Stmt::CreateRule(CreateRule { syntax }),
34996            SyntaxKind::CREATE_SCHEMA => Stmt::CreateSchema(CreateSchema { syntax }),
34997            SyntaxKind::CREATE_SEQUENCE => Stmt::CreateSequence(CreateSequence { syntax }),
34998            SyntaxKind::CREATE_SERVER => Stmt::CreateServer(CreateServer { syntax }),
34999            SyntaxKind::CREATE_STATISTICS => Stmt::CreateStatistics(CreateStatistics { syntax }),
35000            SyntaxKind::CREATE_SUBSCRIPTION => {
35001                Stmt::CreateSubscription(CreateSubscription { syntax })
35002            }
35003            SyntaxKind::CREATE_TABLE => Stmt::CreateTable(CreateTable { syntax }),
35004            SyntaxKind::CREATE_TABLE_AS => Stmt::CreateTableAs(CreateTableAs { syntax }),
35005            SyntaxKind::CREATE_TABLESPACE => Stmt::CreateTablespace(CreateTablespace { syntax }),
35006            SyntaxKind::CREATE_TEXT_SEARCH_CONFIGURATION => {
35007                Stmt::CreateTextSearchConfiguration(CreateTextSearchConfiguration { syntax })
35008            }
35009            SyntaxKind::CREATE_TEXT_SEARCH_DICTIONARY => {
35010                Stmt::CreateTextSearchDictionary(CreateTextSearchDictionary { syntax })
35011            }
35012            SyntaxKind::CREATE_TEXT_SEARCH_PARSER => {
35013                Stmt::CreateTextSearchParser(CreateTextSearchParser { syntax })
35014            }
35015            SyntaxKind::CREATE_TEXT_SEARCH_TEMPLATE => {
35016                Stmt::CreateTextSearchTemplate(CreateTextSearchTemplate { syntax })
35017            }
35018            SyntaxKind::CREATE_TRANSFORM => Stmt::CreateTransform(CreateTransform { syntax }),
35019            SyntaxKind::CREATE_TRIGGER => Stmt::CreateTrigger(CreateTrigger { syntax }),
35020            SyntaxKind::CREATE_TYPE => Stmt::CreateType(CreateType { syntax }),
35021            SyntaxKind::CREATE_USER => Stmt::CreateUser(CreateUser { syntax }),
35022            SyntaxKind::CREATE_USER_MAPPING => {
35023                Stmt::CreateUserMapping(CreateUserMapping { syntax })
35024            }
35025            SyntaxKind::CREATE_VIEW => Stmt::CreateView(CreateView { syntax }),
35026            SyntaxKind::DEALLOCATE => Stmt::Deallocate(Deallocate { syntax }),
35027            SyntaxKind::DECLARE => Stmt::Declare(Declare { syntax }),
35028            SyntaxKind::DELETE => Stmt::Delete(Delete { syntax }),
35029            SyntaxKind::DISCARD => Stmt::Discard(Discard { syntax }),
35030            SyntaxKind::DO => Stmt::Do(Do { syntax }),
35031            SyntaxKind::DROP_ACCESS_METHOD => Stmt::DropAccessMethod(DropAccessMethod { syntax }),
35032            SyntaxKind::DROP_AGGREGATE => Stmt::DropAggregate(DropAggregate { syntax }),
35033            SyntaxKind::DROP_CAST => Stmt::DropCast(DropCast { syntax }),
35034            SyntaxKind::DROP_COLLATION => Stmt::DropCollation(DropCollation { syntax }),
35035            SyntaxKind::DROP_CONVERSION => Stmt::DropConversion(DropConversion { syntax }),
35036            SyntaxKind::DROP_DATABASE => Stmt::DropDatabase(DropDatabase { syntax }),
35037            SyntaxKind::DROP_DOMAIN => Stmt::DropDomain(DropDomain { syntax }),
35038            SyntaxKind::DROP_EVENT_TRIGGER => Stmt::DropEventTrigger(DropEventTrigger { syntax }),
35039            SyntaxKind::DROP_EXTENSION => Stmt::DropExtension(DropExtension { syntax }),
35040            SyntaxKind::DROP_FOREIGN_DATA_WRAPPER => {
35041                Stmt::DropForeignDataWrapper(DropForeignDataWrapper { syntax })
35042            }
35043            SyntaxKind::DROP_FOREIGN_TABLE => Stmt::DropForeignTable(DropForeignTable { syntax }),
35044            SyntaxKind::DROP_FUNCTION => Stmt::DropFunction(DropFunction { syntax }),
35045            SyntaxKind::DROP_GROUP => Stmt::DropGroup(DropGroup { syntax }),
35046            SyntaxKind::DROP_INDEX => Stmt::DropIndex(DropIndex { syntax }),
35047            SyntaxKind::DROP_LANGUAGE => Stmt::DropLanguage(DropLanguage { syntax }),
35048            SyntaxKind::DROP_MATERIALIZED_VIEW => {
35049                Stmt::DropMaterializedView(DropMaterializedView { syntax })
35050            }
35051            SyntaxKind::DROP_OPERATOR => Stmt::DropOperator(DropOperator { syntax }),
35052            SyntaxKind::DROP_OPERATOR_CLASS => {
35053                Stmt::DropOperatorClass(DropOperatorClass { syntax })
35054            }
35055            SyntaxKind::DROP_OPERATOR_FAMILY => {
35056                Stmt::DropOperatorFamily(DropOperatorFamily { syntax })
35057            }
35058            SyntaxKind::DROP_OWNED => Stmt::DropOwned(DropOwned { syntax }),
35059            SyntaxKind::DROP_POLICY => Stmt::DropPolicy(DropPolicy { syntax }),
35060            SyntaxKind::DROP_PROCEDURE => Stmt::DropProcedure(DropProcedure { syntax }),
35061            SyntaxKind::DROP_PROPERTY_GRAPH => {
35062                Stmt::DropPropertyGraph(DropPropertyGraph { syntax })
35063            }
35064            SyntaxKind::DROP_PUBLICATION => Stmt::DropPublication(DropPublication { syntax }),
35065            SyntaxKind::DROP_ROLE => Stmt::DropRole(DropRole { syntax }),
35066            SyntaxKind::DROP_ROUTINE => Stmt::DropRoutine(DropRoutine { syntax }),
35067            SyntaxKind::DROP_RULE => Stmt::DropRule(DropRule { syntax }),
35068            SyntaxKind::DROP_SCHEMA => Stmt::DropSchema(DropSchema { syntax }),
35069            SyntaxKind::DROP_SEQUENCE => Stmt::DropSequence(DropSequence { syntax }),
35070            SyntaxKind::DROP_SERVER => Stmt::DropServer(DropServer { syntax }),
35071            SyntaxKind::DROP_STATISTICS => Stmt::DropStatistics(DropStatistics { syntax }),
35072            SyntaxKind::DROP_SUBSCRIPTION => Stmt::DropSubscription(DropSubscription { syntax }),
35073            SyntaxKind::DROP_TABLE => Stmt::DropTable(DropTable { syntax }),
35074            SyntaxKind::DROP_TABLESPACE => Stmt::DropTablespace(DropTablespace { syntax }),
35075            SyntaxKind::DROP_TEXT_SEARCH_CONFIG => {
35076                Stmt::DropTextSearchConfig(DropTextSearchConfig { syntax })
35077            }
35078            SyntaxKind::DROP_TEXT_SEARCH_DICT => {
35079                Stmt::DropTextSearchDict(DropTextSearchDict { syntax })
35080            }
35081            SyntaxKind::DROP_TEXT_SEARCH_PARSER => {
35082                Stmt::DropTextSearchParser(DropTextSearchParser { syntax })
35083            }
35084            SyntaxKind::DROP_TEXT_SEARCH_TEMPLATE => {
35085                Stmt::DropTextSearchTemplate(DropTextSearchTemplate { syntax })
35086            }
35087            SyntaxKind::DROP_TRANSFORM => Stmt::DropTransform(DropTransform { syntax }),
35088            SyntaxKind::DROP_TRIGGER => Stmt::DropTrigger(DropTrigger { syntax }),
35089            SyntaxKind::DROP_TYPE => Stmt::DropType(DropType { syntax }),
35090            SyntaxKind::DROP_USER => Stmt::DropUser(DropUser { syntax }),
35091            SyntaxKind::DROP_USER_MAPPING => Stmt::DropUserMapping(DropUserMapping { syntax }),
35092            SyntaxKind::DROP_VIEW => Stmt::DropView(DropView { syntax }),
35093            SyntaxKind::EMPTY_STMT => Stmt::EmptyStmt(EmptyStmt { syntax }),
35094            SyntaxKind::EXECUTE => Stmt::Execute(Execute { syntax }),
35095            SyntaxKind::EXPLAIN => Stmt::Explain(Explain { syntax }),
35096            SyntaxKind::FETCH => Stmt::Fetch(Fetch { syntax }),
35097            SyntaxKind::GRANT => Stmt::Grant(Grant { syntax }),
35098            SyntaxKind::IMPORT_FOREIGN_SCHEMA => {
35099                Stmt::ImportForeignSchema(ImportForeignSchema { syntax })
35100            }
35101            SyntaxKind::INSERT => Stmt::Insert(Insert { syntax }),
35102            SyntaxKind::LISTEN => Stmt::Listen(Listen { syntax }),
35103            SyntaxKind::LOAD => Stmt::Load(Load { syntax }),
35104            SyntaxKind::LOCK => Stmt::Lock(Lock { syntax }),
35105            SyntaxKind::MERGE => Stmt::Merge(Merge { syntax }),
35106            SyntaxKind::MOVE => Stmt::Move(Move { syntax }),
35107            SyntaxKind::NOTIFY => Stmt::Notify(Notify { syntax }),
35108            SyntaxKind::PAREN_SELECT => Stmt::ParenSelect(ParenSelect { syntax }),
35109            SyntaxKind::PREPARE => Stmt::Prepare(Prepare { syntax }),
35110            SyntaxKind::PREPARE_TRANSACTION => {
35111                Stmt::PrepareTransaction(PrepareTransaction { syntax })
35112            }
35113            SyntaxKind::REASSIGN => Stmt::Reassign(Reassign { syntax }),
35114            SyntaxKind::REFRESH => Stmt::Refresh(Refresh { syntax }),
35115            SyntaxKind::REINDEX => Stmt::Reindex(Reindex { syntax }),
35116            SyntaxKind::RELEASE_SAVEPOINT => Stmt::ReleaseSavepoint(ReleaseSavepoint { syntax }),
35117            SyntaxKind::REPACK => Stmt::Repack(Repack { syntax }),
35118            SyntaxKind::RESET => Stmt::Reset(Reset { syntax }),
35119            SyntaxKind::RESET_SESSION_AUTH => Stmt::ResetSessionAuth(ResetSessionAuth { syntax }),
35120            SyntaxKind::REVOKE => Stmt::Revoke(Revoke { syntax }),
35121            SyntaxKind::ROLLBACK => Stmt::Rollback(Rollback { syntax }),
35122            SyntaxKind::SAVEPOINT => Stmt::Savepoint(Savepoint { syntax }),
35123            SyntaxKind::SECURITY_LABEL => Stmt::SecurityLabel(SecurityLabel { syntax }),
35124            SyntaxKind::SELECT => Stmt::Select(Select { syntax }),
35125            SyntaxKind::SELECT_INTO => Stmt::SelectInto(SelectInto { syntax }),
35126            SyntaxKind::SET => Stmt::Set(Set { syntax }),
35127            SyntaxKind::SET_CONSTRAINTS => Stmt::SetConstraints(SetConstraints { syntax }),
35128            SyntaxKind::SET_ROLE => Stmt::SetRole(SetRole { syntax }),
35129            SyntaxKind::SET_SESSION_AUTH => Stmt::SetSessionAuth(SetSessionAuth { syntax }),
35130            SyntaxKind::SET_TRANSACTION => Stmt::SetTransaction(SetTransaction { syntax }),
35131            SyntaxKind::SHOW => Stmt::Show(Show { syntax }),
35132            SyntaxKind::TABLE => Stmt::Table(Table { syntax }),
35133            SyntaxKind::TRUNCATE => Stmt::Truncate(Truncate { syntax }),
35134            SyntaxKind::UNLISTEN => Stmt::Unlisten(Unlisten { syntax }),
35135            SyntaxKind::UPDATE => Stmt::Update(Update { syntax }),
35136            SyntaxKind::VACUUM => Stmt::Vacuum(Vacuum { syntax }),
35137            SyntaxKind::VALUES => Stmt::Values(Values { syntax }),
35138            _ => {
35139                return None;
35140            }
35141        };
35142        Some(res)
35143    }
35144    #[inline]
35145    fn syntax(&self) -> &SyntaxNode {
35146        match self {
35147            Stmt::AlterAggregate(it) => &it.syntax,
35148            Stmt::AlterCollation(it) => &it.syntax,
35149            Stmt::AlterConversion(it) => &it.syntax,
35150            Stmt::AlterDatabase(it) => &it.syntax,
35151            Stmt::AlterDefaultPrivileges(it) => &it.syntax,
35152            Stmt::AlterDomain(it) => &it.syntax,
35153            Stmt::AlterEventTrigger(it) => &it.syntax,
35154            Stmt::AlterExtension(it) => &it.syntax,
35155            Stmt::AlterForeignDataWrapper(it) => &it.syntax,
35156            Stmt::AlterForeignTable(it) => &it.syntax,
35157            Stmt::AlterFunction(it) => &it.syntax,
35158            Stmt::AlterGroup(it) => &it.syntax,
35159            Stmt::AlterIndex(it) => &it.syntax,
35160            Stmt::AlterLanguage(it) => &it.syntax,
35161            Stmt::AlterLargeObject(it) => &it.syntax,
35162            Stmt::AlterMaterializedView(it) => &it.syntax,
35163            Stmt::AlterOperator(it) => &it.syntax,
35164            Stmt::AlterOperatorClass(it) => &it.syntax,
35165            Stmt::AlterOperatorFamily(it) => &it.syntax,
35166            Stmt::AlterPolicy(it) => &it.syntax,
35167            Stmt::AlterProcedure(it) => &it.syntax,
35168            Stmt::AlterPropertyGraph(it) => &it.syntax,
35169            Stmt::AlterPublication(it) => &it.syntax,
35170            Stmt::AlterRole(it) => &it.syntax,
35171            Stmt::AlterRoutine(it) => &it.syntax,
35172            Stmt::AlterRule(it) => &it.syntax,
35173            Stmt::AlterSchema(it) => &it.syntax,
35174            Stmt::AlterSequence(it) => &it.syntax,
35175            Stmt::AlterServer(it) => &it.syntax,
35176            Stmt::AlterStatistics(it) => &it.syntax,
35177            Stmt::AlterSubscription(it) => &it.syntax,
35178            Stmt::AlterSystem(it) => &it.syntax,
35179            Stmt::AlterTable(it) => &it.syntax,
35180            Stmt::AlterTablespace(it) => &it.syntax,
35181            Stmt::AlterTextSearchConfiguration(it) => &it.syntax,
35182            Stmt::AlterTextSearchDictionary(it) => &it.syntax,
35183            Stmt::AlterTextSearchParser(it) => &it.syntax,
35184            Stmt::AlterTextSearchTemplate(it) => &it.syntax,
35185            Stmt::AlterTrigger(it) => &it.syntax,
35186            Stmt::AlterType(it) => &it.syntax,
35187            Stmt::AlterUser(it) => &it.syntax,
35188            Stmt::AlterUserMapping(it) => &it.syntax,
35189            Stmt::AlterView(it) => &it.syntax,
35190            Stmt::Analyze(it) => &it.syntax,
35191            Stmt::Begin(it) => &it.syntax,
35192            Stmt::Call(it) => &it.syntax,
35193            Stmt::Checkpoint(it) => &it.syntax,
35194            Stmt::Close(it) => &it.syntax,
35195            Stmt::Cluster(it) => &it.syntax,
35196            Stmt::CommentOn(it) => &it.syntax,
35197            Stmt::Commit(it) => &it.syntax,
35198            Stmt::Copy(it) => &it.syntax,
35199            Stmt::CreateAccessMethod(it) => &it.syntax,
35200            Stmt::CreateAggregate(it) => &it.syntax,
35201            Stmt::CreateCast(it) => &it.syntax,
35202            Stmt::CreateCollation(it) => &it.syntax,
35203            Stmt::CreateConversion(it) => &it.syntax,
35204            Stmt::CreateDatabase(it) => &it.syntax,
35205            Stmt::CreateDomain(it) => &it.syntax,
35206            Stmt::CreateEventTrigger(it) => &it.syntax,
35207            Stmt::CreateExtension(it) => &it.syntax,
35208            Stmt::CreateForeignDataWrapper(it) => &it.syntax,
35209            Stmt::CreateForeignTable(it) => &it.syntax,
35210            Stmt::CreateFunction(it) => &it.syntax,
35211            Stmt::CreateGroup(it) => &it.syntax,
35212            Stmt::CreateIndex(it) => &it.syntax,
35213            Stmt::CreateLanguage(it) => &it.syntax,
35214            Stmt::CreateMaterializedView(it) => &it.syntax,
35215            Stmt::CreateOperator(it) => &it.syntax,
35216            Stmt::CreateOperatorClass(it) => &it.syntax,
35217            Stmt::CreateOperatorFamily(it) => &it.syntax,
35218            Stmt::CreatePolicy(it) => &it.syntax,
35219            Stmt::CreateProcedure(it) => &it.syntax,
35220            Stmt::CreatePropertyGraph(it) => &it.syntax,
35221            Stmt::CreatePublication(it) => &it.syntax,
35222            Stmt::CreateRole(it) => &it.syntax,
35223            Stmt::CreateRule(it) => &it.syntax,
35224            Stmt::CreateSchema(it) => &it.syntax,
35225            Stmt::CreateSequence(it) => &it.syntax,
35226            Stmt::CreateServer(it) => &it.syntax,
35227            Stmt::CreateStatistics(it) => &it.syntax,
35228            Stmt::CreateSubscription(it) => &it.syntax,
35229            Stmt::CreateTable(it) => &it.syntax,
35230            Stmt::CreateTableAs(it) => &it.syntax,
35231            Stmt::CreateTablespace(it) => &it.syntax,
35232            Stmt::CreateTextSearchConfiguration(it) => &it.syntax,
35233            Stmt::CreateTextSearchDictionary(it) => &it.syntax,
35234            Stmt::CreateTextSearchParser(it) => &it.syntax,
35235            Stmt::CreateTextSearchTemplate(it) => &it.syntax,
35236            Stmt::CreateTransform(it) => &it.syntax,
35237            Stmt::CreateTrigger(it) => &it.syntax,
35238            Stmt::CreateType(it) => &it.syntax,
35239            Stmt::CreateUser(it) => &it.syntax,
35240            Stmt::CreateUserMapping(it) => &it.syntax,
35241            Stmt::CreateView(it) => &it.syntax,
35242            Stmt::Deallocate(it) => &it.syntax,
35243            Stmt::Declare(it) => &it.syntax,
35244            Stmt::Delete(it) => &it.syntax,
35245            Stmt::Discard(it) => &it.syntax,
35246            Stmt::Do(it) => &it.syntax,
35247            Stmt::DropAccessMethod(it) => &it.syntax,
35248            Stmt::DropAggregate(it) => &it.syntax,
35249            Stmt::DropCast(it) => &it.syntax,
35250            Stmt::DropCollation(it) => &it.syntax,
35251            Stmt::DropConversion(it) => &it.syntax,
35252            Stmt::DropDatabase(it) => &it.syntax,
35253            Stmt::DropDomain(it) => &it.syntax,
35254            Stmt::DropEventTrigger(it) => &it.syntax,
35255            Stmt::DropExtension(it) => &it.syntax,
35256            Stmt::DropForeignDataWrapper(it) => &it.syntax,
35257            Stmt::DropForeignTable(it) => &it.syntax,
35258            Stmt::DropFunction(it) => &it.syntax,
35259            Stmt::DropGroup(it) => &it.syntax,
35260            Stmt::DropIndex(it) => &it.syntax,
35261            Stmt::DropLanguage(it) => &it.syntax,
35262            Stmt::DropMaterializedView(it) => &it.syntax,
35263            Stmt::DropOperator(it) => &it.syntax,
35264            Stmt::DropOperatorClass(it) => &it.syntax,
35265            Stmt::DropOperatorFamily(it) => &it.syntax,
35266            Stmt::DropOwned(it) => &it.syntax,
35267            Stmt::DropPolicy(it) => &it.syntax,
35268            Stmt::DropProcedure(it) => &it.syntax,
35269            Stmt::DropPropertyGraph(it) => &it.syntax,
35270            Stmt::DropPublication(it) => &it.syntax,
35271            Stmt::DropRole(it) => &it.syntax,
35272            Stmt::DropRoutine(it) => &it.syntax,
35273            Stmt::DropRule(it) => &it.syntax,
35274            Stmt::DropSchema(it) => &it.syntax,
35275            Stmt::DropSequence(it) => &it.syntax,
35276            Stmt::DropServer(it) => &it.syntax,
35277            Stmt::DropStatistics(it) => &it.syntax,
35278            Stmt::DropSubscription(it) => &it.syntax,
35279            Stmt::DropTable(it) => &it.syntax,
35280            Stmt::DropTablespace(it) => &it.syntax,
35281            Stmt::DropTextSearchConfig(it) => &it.syntax,
35282            Stmt::DropTextSearchDict(it) => &it.syntax,
35283            Stmt::DropTextSearchParser(it) => &it.syntax,
35284            Stmt::DropTextSearchTemplate(it) => &it.syntax,
35285            Stmt::DropTransform(it) => &it.syntax,
35286            Stmt::DropTrigger(it) => &it.syntax,
35287            Stmt::DropType(it) => &it.syntax,
35288            Stmt::DropUser(it) => &it.syntax,
35289            Stmt::DropUserMapping(it) => &it.syntax,
35290            Stmt::DropView(it) => &it.syntax,
35291            Stmt::EmptyStmt(it) => &it.syntax,
35292            Stmt::Execute(it) => &it.syntax,
35293            Stmt::Explain(it) => &it.syntax,
35294            Stmt::Fetch(it) => &it.syntax,
35295            Stmt::Grant(it) => &it.syntax,
35296            Stmt::ImportForeignSchema(it) => &it.syntax,
35297            Stmt::Insert(it) => &it.syntax,
35298            Stmt::Listen(it) => &it.syntax,
35299            Stmt::Load(it) => &it.syntax,
35300            Stmt::Lock(it) => &it.syntax,
35301            Stmt::Merge(it) => &it.syntax,
35302            Stmt::Move(it) => &it.syntax,
35303            Stmt::Notify(it) => &it.syntax,
35304            Stmt::ParenSelect(it) => &it.syntax,
35305            Stmt::Prepare(it) => &it.syntax,
35306            Stmt::PrepareTransaction(it) => &it.syntax,
35307            Stmt::Reassign(it) => &it.syntax,
35308            Stmt::Refresh(it) => &it.syntax,
35309            Stmt::Reindex(it) => &it.syntax,
35310            Stmt::ReleaseSavepoint(it) => &it.syntax,
35311            Stmt::Repack(it) => &it.syntax,
35312            Stmt::Reset(it) => &it.syntax,
35313            Stmt::ResetSessionAuth(it) => &it.syntax,
35314            Stmt::Revoke(it) => &it.syntax,
35315            Stmt::Rollback(it) => &it.syntax,
35316            Stmt::Savepoint(it) => &it.syntax,
35317            Stmt::SecurityLabel(it) => &it.syntax,
35318            Stmt::Select(it) => &it.syntax,
35319            Stmt::SelectInto(it) => &it.syntax,
35320            Stmt::Set(it) => &it.syntax,
35321            Stmt::SetConstraints(it) => &it.syntax,
35322            Stmt::SetRole(it) => &it.syntax,
35323            Stmt::SetSessionAuth(it) => &it.syntax,
35324            Stmt::SetTransaction(it) => &it.syntax,
35325            Stmt::Show(it) => &it.syntax,
35326            Stmt::Table(it) => &it.syntax,
35327            Stmt::Truncate(it) => &it.syntax,
35328            Stmt::Unlisten(it) => &it.syntax,
35329            Stmt::Update(it) => &it.syntax,
35330            Stmt::Vacuum(it) => &it.syntax,
35331            Stmt::Values(it) => &it.syntax,
35332        }
35333    }
35334}
35335impl From<AlterAggregate> for Stmt {
35336    #[inline]
35337    fn from(node: AlterAggregate) -> Stmt {
35338        Stmt::AlterAggregate(node)
35339    }
35340}
35341impl From<AlterCollation> for Stmt {
35342    #[inline]
35343    fn from(node: AlterCollation) -> Stmt {
35344        Stmt::AlterCollation(node)
35345    }
35346}
35347impl From<AlterConversion> for Stmt {
35348    #[inline]
35349    fn from(node: AlterConversion) -> Stmt {
35350        Stmt::AlterConversion(node)
35351    }
35352}
35353impl From<AlterDatabase> for Stmt {
35354    #[inline]
35355    fn from(node: AlterDatabase) -> Stmt {
35356        Stmt::AlterDatabase(node)
35357    }
35358}
35359impl From<AlterDefaultPrivileges> for Stmt {
35360    #[inline]
35361    fn from(node: AlterDefaultPrivileges) -> Stmt {
35362        Stmt::AlterDefaultPrivileges(node)
35363    }
35364}
35365impl From<AlterDomain> for Stmt {
35366    #[inline]
35367    fn from(node: AlterDomain) -> Stmt {
35368        Stmt::AlterDomain(node)
35369    }
35370}
35371impl From<AlterEventTrigger> for Stmt {
35372    #[inline]
35373    fn from(node: AlterEventTrigger) -> Stmt {
35374        Stmt::AlterEventTrigger(node)
35375    }
35376}
35377impl From<AlterExtension> for Stmt {
35378    #[inline]
35379    fn from(node: AlterExtension) -> Stmt {
35380        Stmt::AlterExtension(node)
35381    }
35382}
35383impl From<AlterForeignDataWrapper> for Stmt {
35384    #[inline]
35385    fn from(node: AlterForeignDataWrapper) -> Stmt {
35386        Stmt::AlterForeignDataWrapper(node)
35387    }
35388}
35389impl From<AlterForeignTable> for Stmt {
35390    #[inline]
35391    fn from(node: AlterForeignTable) -> Stmt {
35392        Stmt::AlterForeignTable(node)
35393    }
35394}
35395impl From<AlterFunction> for Stmt {
35396    #[inline]
35397    fn from(node: AlterFunction) -> Stmt {
35398        Stmt::AlterFunction(node)
35399    }
35400}
35401impl From<AlterGroup> for Stmt {
35402    #[inline]
35403    fn from(node: AlterGroup) -> Stmt {
35404        Stmt::AlterGroup(node)
35405    }
35406}
35407impl From<AlterIndex> for Stmt {
35408    #[inline]
35409    fn from(node: AlterIndex) -> Stmt {
35410        Stmt::AlterIndex(node)
35411    }
35412}
35413impl From<AlterLanguage> for Stmt {
35414    #[inline]
35415    fn from(node: AlterLanguage) -> Stmt {
35416        Stmt::AlterLanguage(node)
35417    }
35418}
35419impl From<AlterLargeObject> for Stmt {
35420    #[inline]
35421    fn from(node: AlterLargeObject) -> Stmt {
35422        Stmt::AlterLargeObject(node)
35423    }
35424}
35425impl From<AlterMaterializedView> for Stmt {
35426    #[inline]
35427    fn from(node: AlterMaterializedView) -> Stmt {
35428        Stmt::AlterMaterializedView(node)
35429    }
35430}
35431impl From<AlterOperator> for Stmt {
35432    #[inline]
35433    fn from(node: AlterOperator) -> Stmt {
35434        Stmt::AlterOperator(node)
35435    }
35436}
35437impl From<AlterOperatorClass> for Stmt {
35438    #[inline]
35439    fn from(node: AlterOperatorClass) -> Stmt {
35440        Stmt::AlterOperatorClass(node)
35441    }
35442}
35443impl From<AlterOperatorFamily> for Stmt {
35444    #[inline]
35445    fn from(node: AlterOperatorFamily) -> Stmt {
35446        Stmt::AlterOperatorFamily(node)
35447    }
35448}
35449impl From<AlterPolicy> for Stmt {
35450    #[inline]
35451    fn from(node: AlterPolicy) -> Stmt {
35452        Stmt::AlterPolicy(node)
35453    }
35454}
35455impl From<AlterProcedure> for Stmt {
35456    #[inline]
35457    fn from(node: AlterProcedure) -> Stmt {
35458        Stmt::AlterProcedure(node)
35459    }
35460}
35461impl From<AlterPropertyGraph> for Stmt {
35462    #[inline]
35463    fn from(node: AlterPropertyGraph) -> Stmt {
35464        Stmt::AlterPropertyGraph(node)
35465    }
35466}
35467impl From<AlterPublication> for Stmt {
35468    #[inline]
35469    fn from(node: AlterPublication) -> Stmt {
35470        Stmt::AlterPublication(node)
35471    }
35472}
35473impl From<AlterRole> for Stmt {
35474    #[inline]
35475    fn from(node: AlterRole) -> Stmt {
35476        Stmt::AlterRole(node)
35477    }
35478}
35479impl From<AlterRoutine> for Stmt {
35480    #[inline]
35481    fn from(node: AlterRoutine) -> Stmt {
35482        Stmt::AlterRoutine(node)
35483    }
35484}
35485impl From<AlterRule> for Stmt {
35486    #[inline]
35487    fn from(node: AlterRule) -> Stmt {
35488        Stmt::AlterRule(node)
35489    }
35490}
35491impl From<AlterSchema> for Stmt {
35492    #[inline]
35493    fn from(node: AlterSchema) -> Stmt {
35494        Stmt::AlterSchema(node)
35495    }
35496}
35497impl From<AlterSequence> for Stmt {
35498    #[inline]
35499    fn from(node: AlterSequence) -> Stmt {
35500        Stmt::AlterSequence(node)
35501    }
35502}
35503impl From<AlterServer> for Stmt {
35504    #[inline]
35505    fn from(node: AlterServer) -> Stmt {
35506        Stmt::AlterServer(node)
35507    }
35508}
35509impl From<AlterStatistics> for Stmt {
35510    #[inline]
35511    fn from(node: AlterStatistics) -> Stmt {
35512        Stmt::AlterStatistics(node)
35513    }
35514}
35515impl From<AlterSubscription> for Stmt {
35516    #[inline]
35517    fn from(node: AlterSubscription) -> Stmt {
35518        Stmt::AlterSubscription(node)
35519    }
35520}
35521impl From<AlterSystem> for Stmt {
35522    #[inline]
35523    fn from(node: AlterSystem) -> Stmt {
35524        Stmt::AlterSystem(node)
35525    }
35526}
35527impl From<AlterTable> for Stmt {
35528    #[inline]
35529    fn from(node: AlterTable) -> Stmt {
35530        Stmt::AlterTable(node)
35531    }
35532}
35533impl From<AlterTablespace> for Stmt {
35534    #[inline]
35535    fn from(node: AlterTablespace) -> Stmt {
35536        Stmt::AlterTablespace(node)
35537    }
35538}
35539impl From<AlterTextSearchConfiguration> for Stmt {
35540    #[inline]
35541    fn from(node: AlterTextSearchConfiguration) -> Stmt {
35542        Stmt::AlterTextSearchConfiguration(node)
35543    }
35544}
35545impl From<AlterTextSearchDictionary> for Stmt {
35546    #[inline]
35547    fn from(node: AlterTextSearchDictionary) -> Stmt {
35548        Stmt::AlterTextSearchDictionary(node)
35549    }
35550}
35551impl From<AlterTextSearchParser> for Stmt {
35552    #[inline]
35553    fn from(node: AlterTextSearchParser) -> Stmt {
35554        Stmt::AlterTextSearchParser(node)
35555    }
35556}
35557impl From<AlterTextSearchTemplate> for Stmt {
35558    #[inline]
35559    fn from(node: AlterTextSearchTemplate) -> Stmt {
35560        Stmt::AlterTextSearchTemplate(node)
35561    }
35562}
35563impl From<AlterTrigger> for Stmt {
35564    #[inline]
35565    fn from(node: AlterTrigger) -> Stmt {
35566        Stmt::AlterTrigger(node)
35567    }
35568}
35569impl From<AlterType> for Stmt {
35570    #[inline]
35571    fn from(node: AlterType) -> Stmt {
35572        Stmt::AlterType(node)
35573    }
35574}
35575impl From<AlterUser> for Stmt {
35576    #[inline]
35577    fn from(node: AlterUser) -> Stmt {
35578        Stmt::AlterUser(node)
35579    }
35580}
35581impl From<AlterUserMapping> for Stmt {
35582    #[inline]
35583    fn from(node: AlterUserMapping) -> Stmt {
35584        Stmt::AlterUserMapping(node)
35585    }
35586}
35587impl From<AlterView> for Stmt {
35588    #[inline]
35589    fn from(node: AlterView) -> Stmt {
35590        Stmt::AlterView(node)
35591    }
35592}
35593impl From<Analyze> for Stmt {
35594    #[inline]
35595    fn from(node: Analyze) -> Stmt {
35596        Stmt::Analyze(node)
35597    }
35598}
35599impl From<Begin> for Stmt {
35600    #[inline]
35601    fn from(node: Begin) -> Stmt {
35602        Stmt::Begin(node)
35603    }
35604}
35605impl From<Call> for Stmt {
35606    #[inline]
35607    fn from(node: Call) -> Stmt {
35608        Stmt::Call(node)
35609    }
35610}
35611impl From<Checkpoint> for Stmt {
35612    #[inline]
35613    fn from(node: Checkpoint) -> Stmt {
35614        Stmt::Checkpoint(node)
35615    }
35616}
35617impl From<Close> for Stmt {
35618    #[inline]
35619    fn from(node: Close) -> Stmt {
35620        Stmt::Close(node)
35621    }
35622}
35623impl From<Cluster> for Stmt {
35624    #[inline]
35625    fn from(node: Cluster) -> Stmt {
35626        Stmt::Cluster(node)
35627    }
35628}
35629impl From<CommentOn> for Stmt {
35630    #[inline]
35631    fn from(node: CommentOn) -> Stmt {
35632        Stmt::CommentOn(node)
35633    }
35634}
35635impl From<Commit> for Stmt {
35636    #[inline]
35637    fn from(node: Commit) -> Stmt {
35638        Stmt::Commit(node)
35639    }
35640}
35641impl From<Copy> for Stmt {
35642    #[inline]
35643    fn from(node: Copy) -> Stmt {
35644        Stmt::Copy(node)
35645    }
35646}
35647impl From<CreateAccessMethod> for Stmt {
35648    #[inline]
35649    fn from(node: CreateAccessMethod) -> Stmt {
35650        Stmt::CreateAccessMethod(node)
35651    }
35652}
35653impl From<CreateAggregate> for Stmt {
35654    #[inline]
35655    fn from(node: CreateAggregate) -> Stmt {
35656        Stmt::CreateAggregate(node)
35657    }
35658}
35659impl From<CreateCast> for Stmt {
35660    #[inline]
35661    fn from(node: CreateCast) -> Stmt {
35662        Stmt::CreateCast(node)
35663    }
35664}
35665impl From<CreateCollation> for Stmt {
35666    #[inline]
35667    fn from(node: CreateCollation) -> Stmt {
35668        Stmt::CreateCollation(node)
35669    }
35670}
35671impl From<CreateConversion> for Stmt {
35672    #[inline]
35673    fn from(node: CreateConversion) -> Stmt {
35674        Stmt::CreateConversion(node)
35675    }
35676}
35677impl From<CreateDatabase> for Stmt {
35678    #[inline]
35679    fn from(node: CreateDatabase) -> Stmt {
35680        Stmt::CreateDatabase(node)
35681    }
35682}
35683impl From<CreateDomain> for Stmt {
35684    #[inline]
35685    fn from(node: CreateDomain) -> Stmt {
35686        Stmt::CreateDomain(node)
35687    }
35688}
35689impl From<CreateEventTrigger> for Stmt {
35690    #[inline]
35691    fn from(node: CreateEventTrigger) -> Stmt {
35692        Stmt::CreateEventTrigger(node)
35693    }
35694}
35695impl From<CreateExtension> for Stmt {
35696    #[inline]
35697    fn from(node: CreateExtension) -> Stmt {
35698        Stmt::CreateExtension(node)
35699    }
35700}
35701impl From<CreateForeignDataWrapper> for Stmt {
35702    #[inline]
35703    fn from(node: CreateForeignDataWrapper) -> Stmt {
35704        Stmt::CreateForeignDataWrapper(node)
35705    }
35706}
35707impl From<CreateForeignTable> for Stmt {
35708    #[inline]
35709    fn from(node: CreateForeignTable) -> Stmt {
35710        Stmt::CreateForeignTable(node)
35711    }
35712}
35713impl From<CreateFunction> for Stmt {
35714    #[inline]
35715    fn from(node: CreateFunction) -> Stmt {
35716        Stmt::CreateFunction(node)
35717    }
35718}
35719impl From<CreateGroup> for Stmt {
35720    #[inline]
35721    fn from(node: CreateGroup) -> Stmt {
35722        Stmt::CreateGroup(node)
35723    }
35724}
35725impl From<CreateIndex> for Stmt {
35726    #[inline]
35727    fn from(node: CreateIndex) -> Stmt {
35728        Stmt::CreateIndex(node)
35729    }
35730}
35731impl From<CreateLanguage> for Stmt {
35732    #[inline]
35733    fn from(node: CreateLanguage) -> Stmt {
35734        Stmt::CreateLanguage(node)
35735    }
35736}
35737impl From<CreateMaterializedView> for Stmt {
35738    #[inline]
35739    fn from(node: CreateMaterializedView) -> Stmt {
35740        Stmt::CreateMaterializedView(node)
35741    }
35742}
35743impl From<CreateOperator> for Stmt {
35744    #[inline]
35745    fn from(node: CreateOperator) -> Stmt {
35746        Stmt::CreateOperator(node)
35747    }
35748}
35749impl From<CreateOperatorClass> for Stmt {
35750    #[inline]
35751    fn from(node: CreateOperatorClass) -> Stmt {
35752        Stmt::CreateOperatorClass(node)
35753    }
35754}
35755impl From<CreateOperatorFamily> for Stmt {
35756    #[inline]
35757    fn from(node: CreateOperatorFamily) -> Stmt {
35758        Stmt::CreateOperatorFamily(node)
35759    }
35760}
35761impl From<CreatePolicy> for Stmt {
35762    #[inline]
35763    fn from(node: CreatePolicy) -> Stmt {
35764        Stmt::CreatePolicy(node)
35765    }
35766}
35767impl From<CreateProcedure> for Stmt {
35768    #[inline]
35769    fn from(node: CreateProcedure) -> Stmt {
35770        Stmt::CreateProcedure(node)
35771    }
35772}
35773impl From<CreatePropertyGraph> for Stmt {
35774    #[inline]
35775    fn from(node: CreatePropertyGraph) -> Stmt {
35776        Stmt::CreatePropertyGraph(node)
35777    }
35778}
35779impl From<CreatePublication> for Stmt {
35780    #[inline]
35781    fn from(node: CreatePublication) -> Stmt {
35782        Stmt::CreatePublication(node)
35783    }
35784}
35785impl From<CreateRole> for Stmt {
35786    #[inline]
35787    fn from(node: CreateRole) -> Stmt {
35788        Stmt::CreateRole(node)
35789    }
35790}
35791impl From<CreateRule> for Stmt {
35792    #[inline]
35793    fn from(node: CreateRule) -> Stmt {
35794        Stmt::CreateRule(node)
35795    }
35796}
35797impl From<CreateSchema> for Stmt {
35798    #[inline]
35799    fn from(node: CreateSchema) -> Stmt {
35800        Stmt::CreateSchema(node)
35801    }
35802}
35803impl From<CreateSequence> for Stmt {
35804    #[inline]
35805    fn from(node: CreateSequence) -> Stmt {
35806        Stmt::CreateSequence(node)
35807    }
35808}
35809impl From<CreateServer> for Stmt {
35810    #[inline]
35811    fn from(node: CreateServer) -> Stmt {
35812        Stmt::CreateServer(node)
35813    }
35814}
35815impl From<CreateStatistics> for Stmt {
35816    #[inline]
35817    fn from(node: CreateStatistics) -> Stmt {
35818        Stmt::CreateStatistics(node)
35819    }
35820}
35821impl From<CreateSubscription> for Stmt {
35822    #[inline]
35823    fn from(node: CreateSubscription) -> Stmt {
35824        Stmt::CreateSubscription(node)
35825    }
35826}
35827impl From<CreateTable> for Stmt {
35828    #[inline]
35829    fn from(node: CreateTable) -> Stmt {
35830        Stmt::CreateTable(node)
35831    }
35832}
35833impl From<CreateTableAs> for Stmt {
35834    #[inline]
35835    fn from(node: CreateTableAs) -> Stmt {
35836        Stmt::CreateTableAs(node)
35837    }
35838}
35839impl From<CreateTablespace> for Stmt {
35840    #[inline]
35841    fn from(node: CreateTablespace) -> Stmt {
35842        Stmt::CreateTablespace(node)
35843    }
35844}
35845impl From<CreateTextSearchConfiguration> for Stmt {
35846    #[inline]
35847    fn from(node: CreateTextSearchConfiguration) -> Stmt {
35848        Stmt::CreateTextSearchConfiguration(node)
35849    }
35850}
35851impl From<CreateTextSearchDictionary> for Stmt {
35852    #[inline]
35853    fn from(node: CreateTextSearchDictionary) -> Stmt {
35854        Stmt::CreateTextSearchDictionary(node)
35855    }
35856}
35857impl From<CreateTextSearchParser> for Stmt {
35858    #[inline]
35859    fn from(node: CreateTextSearchParser) -> Stmt {
35860        Stmt::CreateTextSearchParser(node)
35861    }
35862}
35863impl From<CreateTextSearchTemplate> for Stmt {
35864    #[inline]
35865    fn from(node: CreateTextSearchTemplate) -> Stmt {
35866        Stmt::CreateTextSearchTemplate(node)
35867    }
35868}
35869impl From<CreateTransform> for Stmt {
35870    #[inline]
35871    fn from(node: CreateTransform) -> Stmt {
35872        Stmt::CreateTransform(node)
35873    }
35874}
35875impl From<CreateTrigger> for Stmt {
35876    #[inline]
35877    fn from(node: CreateTrigger) -> Stmt {
35878        Stmt::CreateTrigger(node)
35879    }
35880}
35881impl From<CreateType> for Stmt {
35882    #[inline]
35883    fn from(node: CreateType) -> Stmt {
35884        Stmt::CreateType(node)
35885    }
35886}
35887impl From<CreateUser> for Stmt {
35888    #[inline]
35889    fn from(node: CreateUser) -> Stmt {
35890        Stmt::CreateUser(node)
35891    }
35892}
35893impl From<CreateUserMapping> for Stmt {
35894    #[inline]
35895    fn from(node: CreateUserMapping) -> Stmt {
35896        Stmt::CreateUserMapping(node)
35897    }
35898}
35899impl From<CreateView> for Stmt {
35900    #[inline]
35901    fn from(node: CreateView) -> Stmt {
35902        Stmt::CreateView(node)
35903    }
35904}
35905impl From<Deallocate> for Stmt {
35906    #[inline]
35907    fn from(node: Deallocate) -> Stmt {
35908        Stmt::Deallocate(node)
35909    }
35910}
35911impl From<Declare> for Stmt {
35912    #[inline]
35913    fn from(node: Declare) -> Stmt {
35914        Stmt::Declare(node)
35915    }
35916}
35917impl From<Delete> for Stmt {
35918    #[inline]
35919    fn from(node: Delete) -> Stmt {
35920        Stmt::Delete(node)
35921    }
35922}
35923impl From<Discard> for Stmt {
35924    #[inline]
35925    fn from(node: Discard) -> Stmt {
35926        Stmt::Discard(node)
35927    }
35928}
35929impl From<Do> for Stmt {
35930    #[inline]
35931    fn from(node: Do) -> Stmt {
35932        Stmt::Do(node)
35933    }
35934}
35935impl From<DropAccessMethod> for Stmt {
35936    #[inline]
35937    fn from(node: DropAccessMethod) -> Stmt {
35938        Stmt::DropAccessMethod(node)
35939    }
35940}
35941impl From<DropAggregate> for Stmt {
35942    #[inline]
35943    fn from(node: DropAggregate) -> Stmt {
35944        Stmt::DropAggregate(node)
35945    }
35946}
35947impl From<DropCast> for Stmt {
35948    #[inline]
35949    fn from(node: DropCast) -> Stmt {
35950        Stmt::DropCast(node)
35951    }
35952}
35953impl From<DropCollation> for Stmt {
35954    #[inline]
35955    fn from(node: DropCollation) -> Stmt {
35956        Stmt::DropCollation(node)
35957    }
35958}
35959impl From<DropConversion> for Stmt {
35960    #[inline]
35961    fn from(node: DropConversion) -> Stmt {
35962        Stmt::DropConversion(node)
35963    }
35964}
35965impl From<DropDatabase> for Stmt {
35966    #[inline]
35967    fn from(node: DropDatabase) -> Stmt {
35968        Stmt::DropDatabase(node)
35969    }
35970}
35971impl From<DropDomain> for Stmt {
35972    #[inline]
35973    fn from(node: DropDomain) -> Stmt {
35974        Stmt::DropDomain(node)
35975    }
35976}
35977impl From<DropEventTrigger> for Stmt {
35978    #[inline]
35979    fn from(node: DropEventTrigger) -> Stmt {
35980        Stmt::DropEventTrigger(node)
35981    }
35982}
35983impl From<DropExtension> for Stmt {
35984    #[inline]
35985    fn from(node: DropExtension) -> Stmt {
35986        Stmt::DropExtension(node)
35987    }
35988}
35989impl From<DropForeignDataWrapper> for Stmt {
35990    #[inline]
35991    fn from(node: DropForeignDataWrapper) -> Stmt {
35992        Stmt::DropForeignDataWrapper(node)
35993    }
35994}
35995impl From<DropForeignTable> for Stmt {
35996    #[inline]
35997    fn from(node: DropForeignTable) -> Stmt {
35998        Stmt::DropForeignTable(node)
35999    }
36000}
36001impl From<DropFunction> for Stmt {
36002    #[inline]
36003    fn from(node: DropFunction) -> Stmt {
36004        Stmt::DropFunction(node)
36005    }
36006}
36007impl From<DropGroup> for Stmt {
36008    #[inline]
36009    fn from(node: DropGroup) -> Stmt {
36010        Stmt::DropGroup(node)
36011    }
36012}
36013impl From<DropIndex> for Stmt {
36014    #[inline]
36015    fn from(node: DropIndex) -> Stmt {
36016        Stmt::DropIndex(node)
36017    }
36018}
36019impl From<DropLanguage> for Stmt {
36020    #[inline]
36021    fn from(node: DropLanguage) -> Stmt {
36022        Stmt::DropLanguage(node)
36023    }
36024}
36025impl From<DropMaterializedView> for Stmt {
36026    #[inline]
36027    fn from(node: DropMaterializedView) -> Stmt {
36028        Stmt::DropMaterializedView(node)
36029    }
36030}
36031impl From<DropOperator> for Stmt {
36032    #[inline]
36033    fn from(node: DropOperator) -> Stmt {
36034        Stmt::DropOperator(node)
36035    }
36036}
36037impl From<DropOperatorClass> for Stmt {
36038    #[inline]
36039    fn from(node: DropOperatorClass) -> Stmt {
36040        Stmt::DropOperatorClass(node)
36041    }
36042}
36043impl From<DropOperatorFamily> for Stmt {
36044    #[inline]
36045    fn from(node: DropOperatorFamily) -> Stmt {
36046        Stmt::DropOperatorFamily(node)
36047    }
36048}
36049impl From<DropOwned> for Stmt {
36050    #[inline]
36051    fn from(node: DropOwned) -> Stmt {
36052        Stmt::DropOwned(node)
36053    }
36054}
36055impl From<DropPolicy> for Stmt {
36056    #[inline]
36057    fn from(node: DropPolicy) -> Stmt {
36058        Stmt::DropPolicy(node)
36059    }
36060}
36061impl From<DropProcedure> for Stmt {
36062    #[inline]
36063    fn from(node: DropProcedure) -> Stmt {
36064        Stmt::DropProcedure(node)
36065    }
36066}
36067impl From<DropPropertyGraph> for Stmt {
36068    #[inline]
36069    fn from(node: DropPropertyGraph) -> Stmt {
36070        Stmt::DropPropertyGraph(node)
36071    }
36072}
36073impl From<DropPublication> for Stmt {
36074    #[inline]
36075    fn from(node: DropPublication) -> Stmt {
36076        Stmt::DropPublication(node)
36077    }
36078}
36079impl From<DropRole> for Stmt {
36080    #[inline]
36081    fn from(node: DropRole) -> Stmt {
36082        Stmt::DropRole(node)
36083    }
36084}
36085impl From<DropRoutine> for Stmt {
36086    #[inline]
36087    fn from(node: DropRoutine) -> Stmt {
36088        Stmt::DropRoutine(node)
36089    }
36090}
36091impl From<DropRule> for Stmt {
36092    #[inline]
36093    fn from(node: DropRule) -> Stmt {
36094        Stmt::DropRule(node)
36095    }
36096}
36097impl From<DropSchema> for Stmt {
36098    #[inline]
36099    fn from(node: DropSchema) -> Stmt {
36100        Stmt::DropSchema(node)
36101    }
36102}
36103impl From<DropSequence> for Stmt {
36104    #[inline]
36105    fn from(node: DropSequence) -> Stmt {
36106        Stmt::DropSequence(node)
36107    }
36108}
36109impl From<DropServer> for Stmt {
36110    #[inline]
36111    fn from(node: DropServer) -> Stmt {
36112        Stmt::DropServer(node)
36113    }
36114}
36115impl From<DropStatistics> for Stmt {
36116    #[inline]
36117    fn from(node: DropStatistics) -> Stmt {
36118        Stmt::DropStatistics(node)
36119    }
36120}
36121impl From<DropSubscription> for Stmt {
36122    #[inline]
36123    fn from(node: DropSubscription) -> Stmt {
36124        Stmt::DropSubscription(node)
36125    }
36126}
36127impl From<DropTable> for Stmt {
36128    #[inline]
36129    fn from(node: DropTable) -> Stmt {
36130        Stmt::DropTable(node)
36131    }
36132}
36133impl From<DropTablespace> for Stmt {
36134    #[inline]
36135    fn from(node: DropTablespace) -> Stmt {
36136        Stmt::DropTablespace(node)
36137    }
36138}
36139impl From<DropTextSearchConfig> for Stmt {
36140    #[inline]
36141    fn from(node: DropTextSearchConfig) -> Stmt {
36142        Stmt::DropTextSearchConfig(node)
36143    }
36144}
36145impl From<DropTextSearchDict> for Stmt {
36146    #[inline]
36147    fn from(node: DropTextSearchDict) -> Stmt {
36148        Stmt::DropTextSearchDict(node)
36149    }
36150}
36151impl From<DropTextSearchParser> for Stmt {
36152    #[inline]
36153    fn from(node: DropTextSearchParser) -> Stmt {
36154        Stmt::DropTextSearchParser(node)
36155    }
36156}
36157impl From<DropTextSearchTemplate> for Stmt {
36158    #[inline]
36159    fn from(node: DropTextSearchTemplate) -> Stmt {
36160        Stmt::DropTextSearchTemplate(node)
36161    }
36162}
36163impl From<DropTransform> for Stmt {
36164    #[inline]
36165    fn from(node: DropTransform) -> Stmt {
36166        Stmt::DropTransform(node)
36167    }
36168}
36169impl From<DropTrigger> for Stmt {
36170    #[inline]
36171    fn from(node: DropTrigger) -> Stmt {
36172        Stmt::DropTrigger(node)
36173    }
36174}
36175impl From<DropType> for Stmt {
36176    #[inline]
36177    fn from(node: DropType) -> Stmt {
36178        Stmt::DropType(node)
36179    }
36180}
36181impl From<DropUser> for Stmt {
36182    #[inline]
36183    fn from(node: DropUser) -> Stmt {
36184        Stmt::DropUser(node)
36185    }
36186}
36187impl From<DropUserMapping> for Stmt {
36188    #[inline]
36189    fn from(node: DropUserMapping) -> Stmt {
36190        Stmt::DropUserMapping(node)
36191    }
36192}
36193impl From<DropView> for Stmt {
36194    #[inline]
36195    fn from(node: DropView) -> Stmt {
36196        Stmt::DropView(node)
36197    }
36198}
36199impl From<EmptyStmt> for Stmt {
36200    #[inline]
36201    fn from(node: EmptyStmt) -> Stmt {
36202        Stmt::EmptyStmt(node)
36203    }
36204}
36205impl From<Execute> for Stmt {
36206    #[inline]
36207    fn from(node: Execute) -> Stmt {
36208        Stmt::Execute(node)
36209    }
36210}
36211impl From<Explain> for Stmt {
36212    #[inline]
36213    fn from(node: Explain) -> Stmt {
36214        Stmt::Explain(node)
36215    }
36216}
36217impl From<Fetch> for Stmt {
36218    #[inline]
36219    fn from(node: Fetch) -> Stmt {
36220        Stmt::Fetch(node)
36221    }
36222}
36223impl From<Grant> for Stmt {
36224    #[inline]
36225    fn from(node: Grant) -> Stmt {
36226        Stmt::Grant(node)
36227    }
36228}
36229impl From<ImportForeignSchema> for Stmt {
36230    #[inline]
36231    fn from(node: ImportForeignSchema) -> Stmt {
36232        Stmt::ImportForeignSchema(node)
36233    }
36234}
36235impl From<Insert> for Stmt {
36236    #[inline]
36237    fn from(node: Insert) -> Stmt {
36238        Stmt::Insert(node)
36239    }
36240}
36241impl From<Listen> for Stmt {
36242    #[inline]
36243    fn from(node: Listen) -> Stmt {
36244        Stmt::Listen(node)
36245    }
36246}
36247impl From<Load> for Stmt {
36248    #[inline]
36249    fn from(node: Load) -> Stmt {
36250        Stmt::Load(node)
36251    }
36252}
36253impl From<Lock> for Stmt {
36254    #[inline]
36255    fn from(node: Lock) -> Stmt {
36256        Stmt::Lock(node)
36257    }
36258}
36259impl From<Merge> for Stmt {
36260    #[inline]
36261    fn from(node: Merge) -> Stmt {
36262        Stmt::Merge(node)
36263    }
36264}
36265impl From<Move> for Stmt {
36266    #[inline]
36267    fn from(node: Move) -> Stmt {
36268        Stmt::Move(node)
36269    }
36270}
36271impl From<Notify> for Stmt {
36272    #[inline]
36273    fn from(node: Notify) -> Stmt {
36274        Stmt::Notify(node)
36275    }
36276}
36277impl From<ParenSelect> for Stmt {
36278    #[inline]
36279    fn from(node: ParenSelect) -> Stmt {
36280        Stmt::ParenSelect(node)
36281    }
36282}
36283impl From<Prepare> for Stmt {
36284    #[inline]
36285    fn from(node: Prepare) -> Stmt {
36286        Stmt::Prepare(node)
36287    }
36288}
36289impl From<PrepareTransaction> for Stmt {
36290    #[inline]
36291    fn from(node: PrepareTransaction) -> Stmt {
36292        Stmt::PrepareTransaction(node)
36293    }
36294}
36295impl From<Reassign> for Stmt {
36296    #[inline]
36297    fn from(node: Reassign) -> Stmt {
36298        Stmt::Reassign(node)
36299    }
36300}
36301impl From<Refresh> for Stmt {
36302    #[inline]
36303    fn from(node: Refresh) -> Stmt {
36304        Stmt::Refresh(node)
36305    }
36306}
36307impl From<Reindex> for Stmt {
36308    #[inline]
36309    fn from(node: Reindex) -> Stmt {
36310        Stmt::Reindex(node)
36311    }
36312}
36313impl From<ReleaseSavepoint> for Stmt {
36314    #[inline]
36315    fn from(node: ReleaseSavepoint) -> Stmt {
36316        Stmt::ReleaseSavepoint(node)
36317    }
36318}
36319impl From<Repack> for Stmt {
36320    #[inline]
36321    fn from(node: Repack) -> Stmt {
36322        Stmt::Repack(node)
36323    }
36324}
36325impl From<Reset> for Stmt {
36326    #[inline]
36327    fn from(node: Reset) -> Stmt {
36328        Stmt::Reset(node)
36329    }
36330}
36331impl From<ResetSessionAuth> for Stmt {
36332    #[inline]
36333    fn from(node: ResetSessionAuth) -> Stmt {
36334        Stmt::ResetSessionAuth(node)
36335    }
36336}
36337impl From<Revoke> for Stmt {
36338    #[inline]
36339    fn from(node: Revoke) -> Stmt {
36340        Stmt::Revoke(node)
36341    }
36342}
36343impl From<Rollback> for Stmt {
36344    #[inline]
36345    fn from(node: Rollback) -> Stmt {
36346        Stmt::Rollback(node)
36347    }
36348}
36349impl From<Savepoint> for Stmt {
36350    #[inline]
36351    fn from(node: Savepoint) -> Stmt {
36352        Stmt::Savepoint(node)
36353    }
36354}
36355impl From<SecurityLabel> for Stmt {
36356    #[inline]
36357    fn from(node: SecurityLabel) -> Stmt {
36358        Stmt::SecurityLabel(node)
36359    }
36360}
36361impl From<Select> for Stmt {
36362    #[inline]
36363    fn from(node: Select) -> Stmt {
36364        Stmt::Select(node)
36365    }
36366}
36367impl From<SelectInto> for Stmt {
36368    #[inline]
36369    fn from(node: SelectInto) -> Stmt {
36370        Stmt::SelectInto(node)
36371    }
36372}
36373impl From<Set> for Stmt {
36374    #[inline]
36375    fn from(node: Set) -> Stmt {
36376        Stmt::Set(node)
36377    }
36378}
36379impl From<SetConstraints> for Stmt {
36380    #[inline]
36381    fn from(node: SetConstraints) -> Stmt {
36382        Stmt::SetConstraints(node)
36383    }
36384}
36385impl From<SetRole> for Stmt {
36386    #[inline]
36387    fn from(node: SetRole) -> Stmt {
36388        Stmt::SetRole(node)
36389    }
36390}
36391impl From<SetSessionAuth> for Stmt {
36392    #[inline]
36393    fn from(node: SetSessionAuth) -> Stmt {
36394        Stmt::SetSessionAuth(node)
36395    }
36396}
36397impl From<SetTransaction> for Stmt {
36398    #[inline]
36399    fn from(node: SetTransaction) -> Stmt {
36400        Stmt::SetTransaction(node)
36401    }
36402}
36403impl From<Show> for Stmt {
36404    #[inline]
36405    fn from(node: Show) -> Stmt {
36406        Stmt::Show(node)
36407    }
36408}
36409impl From<Table> for Stmt {
36410    #[inline]
36411    fn from(node: Table) -> Stmt {
36412        Stmt::Table(node)
36413    }
36414}
36415impl From<Truncate> for Stmt {
36416    #[inline]
36417    fn from(node: Truncate) -> Stmt {
36418        Stmt::Truncate(node)
36419    }
36420}
36421impl From<Unlisten> for Stmt {
36422    #[inline]
36423    fn from(node: Unlisten) -> Stmt {
36424        Stmt::Unlisten(node)
36425    }
36426}
36427impl From<Update> for Stmt {
36428    #[inline]
36429    fn from(node: Update) -> Stmt {
36430        Stmt::Update(node)
36431    }
36432}
36433impl From<Vacuum> for Stmt {
36434    #[inline]
36435    fn from(node: Vacuum) -> Stmt {
36436        Stmt::Vacuum(node)
36437    }
36438}
36439impl From<Values> for Stmt {
36440    #[inline]
36441    fn from(node: Values) -> Stmt {
36442        Stmt::Values(node)
36443    }
36444}
36445impl AstNode for TableArg {
36446    #[inline]
36447    fn can_cast(kind: SyntaxKind) -> bool {
36448        matches!(kind, SyntaxKind::COLUMN | SyntaxKind::LIKE_CLAUSE)
36449    }
36450    #[inline]
36451    fn cast(syntax: SyntaxNode) -> Option<Self> {
36452        let res = match syntax.kind() {
36453            SyntaxKind::COLUMN => TableArg::Column(Column { syntax }),
36454            SyntaxKind::LIKE_CLAUSE => TableArg::LikeClause(LikeClause { syntax }),
36455            _ => {
36456                if let Some(result) = TableConstraint::cast(syntax) {
36457                    return Some(TableArg::TableConstraint(result));
36458                }
36459                return None;
36460            }
36461        };
36462        Some(res)
36463    }
36464    #[inline]
36465    fn syntax(&self) -> &SyntaxNode {
36466        match self {
36467            TableArg::Column(it) => &it.syntax,
36468            TableArg::LikeClause(it) => &it.syntax,
36469            TableArg::TableConstraint(it) => it.syntax(),
36470        }
36471    }
36472}
36473impl From<Column> for TableArg {
36474    #[inline]
36475    fn from(node: Column) -> TableArg {
36476        TableArg::Column(node)
36477    }
36478}
36479impl From<LikeClause> for TableArg {
36480    #[inline]
36481    fn from(node: LikeClause) -> TableArg {
36482        TableArg::LikeClause(node)
36483    }
36484}
36485impl AstNode for TableConstraint {
36486    #[inline]
36487    fn can_cast(kind: SyntaxKind) -> bool {
36488        matches!(
36489            kind,
36490            SyntaxKind::CHECK_CONSTRAINT
36491                | SyntaxKind::EXCLUDE_CONSTRAINT
36492                | SyntaxKind::FOREIGN_KEY_CONSTRAINT
36493                | SyntaxKind::PRIMARY_KEY_CONSTRAINT
36494                | SyntaxKind::UNIQUE_CONSTRAINT
36495        )
36496    }
36497    #[inline]
36498    fn cast(syntax: SyntaxNode) -> Option<Self> {
36499        let res = match syntax.kind() {
36500            SyntaxKind::CHECK_CONSTRAINT => {
36501                TableConstraint::CheckConstraint(CheckConstraint { syntax })
36502            }
36503            SyntaxKind::EXCLUDE_CONSTRAINT => {
36504                TableConstraint::ExcludeConstraint(ExcludeConstraint { syntax })
36505            }
36506            SyntaxKind::FOREIGN_KEY_CONSTRAINT => {
36507                TableConstraint::ForeignKeyConstraint(ForeignKeyConstraint { syntax })
36508            }
36509            SyntaxKind::PRIMARY_KEY_CONSTRAINT => {
36510                TableConstraint::PrimaryKeyConstraint(PrimaryKeyConstraint { syntax })
36511            }
36512            SyntaxKind::UNIQUE_CONSTRAINT => {
36513                TableConstraint::UniqueConstraint(UniqueConstraint { syntax })
36514            }
36515            _ => {
36516                return None;
36517            }
36518        };
36519        Some(res)
36520    }
36521    #[inline]
36522    fn syntax(&self) -> &SyntaxNode {
36523        match self {
36524            TableConstraint::CheckConstraint(it) => &it.syntax,
36525            TableConstraint::ExcludeConstraint(it) => &it.syntax,
36526            TableConstraint::ForeignKeyConstraint(it) => &it.syntax,
36527            TableConstraint::PrimaryKeyConstraint(it) => &it.syntax,
36528            TableConstraint::UniqueConstraint(it) => &it.syntax,
36529        }
36530    }
36531}
36532impl From<CheckConstraint> for TableConstraint {
36533    #[inline]
36534    fn from(node: CheckConstraint) -> TableConstraint {
36535        TableConstraint::CheckConstraint(node)
36536    }
36537}
36538impl From<ExcludeConstraint> for TableConstraint {
36539    #[inline]
36540    fn from(node: ExcludeConstraint) -> TableConstraint {
36541        TableConstraint::ExcludeConstraint(node)
36542    }
36543}
36544impl From<ForeignKeyConstraint> for TableConstraint {
36545    #[inline]
36546    fn from(node: ForeignKeyConstraint) -> TableConstraint {
36547        TableConstraint::ForeignKeyConstraint(node)
36548    }
36549}
36550impl From<PrimaryKeyConstraint> for TableConstraint {
36551    #[inline]
36552    fn from(node: PrimaryKeyConstraint) -> TableConstraint {
36553        TableConstraint::PrimaryKeyConstraint(node)
36554    }
36555}
36556impl From<UniqueConstraint> for TableConstraint {
36557    #[inline]
36558    fn from(node: UniqueConstraint) -> TableConstraint {
36559        TableConstraint::UniqueConstraint(node)
36560    }
36561}
36562impl AstNode for Timezone {
36563    #[inline]
36564    fn can_cast(kind: SyntaxKind) -> bool {
36565        matches!(
36566            kind,
36567            SyntaxKind::WITH_TIMEZONE | SyntaxKind::WITHOUT_TIMEZONE
36568        )
36569    }
36570    #[inline]
36571    fn cast(syntax: SyntaxNode) -> Option<Self> {
36572        let res = match syntax.kind() {
36573            SyntaxKind::WITH_TIMEZONE => Timezone::WithTimezone(WithTimezone { syntax }),
36574            SyntaxKind::WITHOUT_TIMEZONE => Timezone::WithoutTimezone(WithoutTimezone { syntax }),
36575            _ => {
36576                return None;
36577            }
36578        };
36579        Some(res)
36580    }
36581    #[inline]
36582    fn syntax(&self) -> &SyntaxNode {
36583        match self {
36584            Timezone::WithTimezone(it) => &it.syntax,
36585            Timezone::WithoutTimezone(it) => &it.syntax,
36586        }
36587    }
36588}
36589impl From<WithTimezone> for Timezone {
36590    #[inline]
36591    fn from(node: WithTimezone) -> Timezone {
36592        Timezone::WithTimezone(node)
36593    }
36594}
36595impl From<WithoutTimezone> for Timezone {
36596    #[inline]
36597    fn from(node: WithoutTimezone) -> Timezone {
36598        Timezone::WithoutTimezone(node)
36599    }
36600}
36601impl AstNode for TransactionMode {
36602    #[inline]
36603    fn can_cast(kind: SyntaxKind) -> bool {
36604        matches!(
36605            kind,
36606            SyntaxKind::DEFERRABLE
36607                | SyntaxKind::NOT_DEFERRABLE
36608                | SyntaxKind::READ_COMMITTED
36609                | SyntaxKind::READ_ONLY
36610                | SyntaxKind::READ_UNCOMMITTED
36611                | SyntaxKind::READ_WRITE
36612                | SyntaxKind::REPEATABLE_READ
36613                | SyntaxKind::SERIALIZABLE
36614        )
36615    }
36616    #[inline]
36617    fn cast(syntax: SyntaxNode) -> Option<Self> {
36618        let res = match syntax.kind() {
36619            SyntaxKind::DEFERRABLE => TransactionMode::Deferrable(Deferrable { syntax }),
36620            SyntaxKind::NOT_DEFERRABLE => TransactionMode::NotDeferrable(NotDeferrable { syntax }),
36621            SyntaxKind::READ_COMMITTED => TransactionMode::ReadCommitted(ReadCommitted { syntax }),
36622            SyntaxKind::READ_ONLY => TransactionMode::ReadOnly(ReadOnly { syntax }),
36623            SyntaxKind::READ_UNCOMMITTED => {
36624                TransactionMode::ReadUncommitted(ReadUncommitted { syntax })
36625            }
36626            SyntaxKind::READ_WRITE => TransactionMode::ReadWrite(ReadWrite { syntax }),
36627            SyntaxKind::REPEATABLE_READ => {
36628                TransactionMode::RepeatableRead(RepeatableRead { syntax })
36629            }
36630            SyntaxKind::SERIALIZABLE => TransactionMode::Serializable(Serializable { syntax }),
36631            _ => {
36632                return None;
36633            }
36634        };
36635        Some(res)
36636    }
36637    #[inline]
36638    fn syntax(&self) -> &SyntaxNode {
36639        match self {
36640            TransactionMode::Deferrable(it) => &it.syntax,
36641            TransactionMode::NotDeferrable(it) => &it.syntax,
36642            TransactionMode::ReadCommitted(it) => &it.syntax,
36643            TransactionMode::ReadOnly(it) => &it.syntax,
36644            TransactionMode::ReadUncommitted(it) => &it.syntax,
36645            TransactionMode::ReadWrite(it) => &it.syntax,
36646            TransactionMode::RepeatableRead(it) => &it.syntax,
36647            TransactionMode::Serializable(it) => &it.syntax,
36648        }
36649    }
36650}
36651impl From<Deferrable> for TransactionMode {
36652    #[inline]
36653    fn from(node: Deferrable) -> TransactionMode {
36654        TransactionMode::Deferrable(node)
36655    }
36656}
36657impl From<NotDeferrable> for TransactionMode {
36658    #[inline]
36659    fn from(node: NotDeferrable) -> TransactionMode {
36660        TransactionMode::NotDeferrable(node)
36661    }
36662}
36663impl From<ReadCommitted> for TransactionMode {
36664    #[inline]
36665    fn from(node: ReadCommitted) -> TransactionMode {
36666        TransactionMode::ReadCommitted(node)
36667    }
36668}
36669impl From<ReadOnly> for TransactionMode {
36670    #[inline]
36671    fn from(node: ReadOnly) -> TransactionMode {
36672        TransactionMode::ReadOnly(node)
36673    }
36674}
36675impl From<ReadUncommitted> for TransactionMode {
36676    #[inline]
36677    fn from(node: ReadUncommitted) -> TransactionMode {
36678        TransactionMode::ReadUncommitted(node)
36679    }
36680}
36681impl From<ReadWrite> for TransactionMode {
36682    #[inline]
36683    fn from(node: ReadWrite) -> TransactionMode {
36684        TransactionMode::ReadWrite(node)
36685    }
36686}
36687impl From<RepeatableRead> for TransactionMode {
36688    #[inline]
36689    fn from(node: RepeatableRead) -> TransactionMode {
36690        TransactionMode::RepeatableRead(node)
36691    }
36692}
36693impl From<Serializable> for TransactionMode {
36694    #[inline]
36695    fn from(node: Serializable) -> TransactionMode {
36696        TransactionMode::Serializable(node)
36697    }
36698}
36699impl AstNode for Type {
36700    #[inline]
36701    fn can_cast(kind: SyntaxKind) -> bool {
36702        matches!(
36703            kind,
36704            SyntaxKind::ARRAY_TYPE
36705                | SyntaxKind::BIT_TYPE
36706                | SyntaxKind::CHAR_TYPE
36707                | SyntaxKind::DOUBLE_TYPE
36708                | SyntaxKind::EXPR_TYPE
36709                | SyntaxKind::INTERVAL_TYPE
36710                | SyntaxKind::PATH_TYPE
36711                | SyntaxKind::PERCENT_TYPE
36712                | SyntaxKind::TIME_TYPE
36713        )
36714    }
36715    #[inline]
36716    fn cast(syntax: SyntaxNode) -> Option<Self> {
36717        let res = match syntax.kind() {
36718            SyntaxKind::ARRAY_TYPE => Type::ArrayType(ArrayType { syntax }),
36719            SyntaxKind::BIT_TYPE => Type::BitType(BitType { syntax }),
36720            SyntaxKind::CHAR_TYPE => Type::CharType(CharType { syntax }),
36721            SyntaxKind::DOUBLE_TYPE => Type::DoubleType(DoubleType { syntax }),
36722            SyntaxKind::EXPR_TYPE => Type::ExprType(ExprType { syntax }),
36723            SyntaxKind::INTERVAL_TYPE => Type::IntervalType(IntervalType { syntax }),
36724            SyntaxKind::PATH_TYPE => Type::PathType(PathType { syntax }),
36725            SyntaxKind::PERCENT_TYPE => Type::PercentType(PercentType { syntax }),
36726            SyntaxKind::TIME_TYPE => Type::TimeType(TimeType { syntax }),
36727            _ => {
36728                return None;
36729            }
36730        };
36731        Some(res)
36732    }
36733    #[inline]
36734    fn syntax(&self) -> &SyntaxNode {
36735        match self {
36736            Type::ArrayType(it) => &it.syntax,
36737            Type::BitType(it) => &it.syntax,
36738            Type::CharType(it) => &it.syntax,
36739            Type::DoubleType(it) => &it.syntax,
36740            Type::ExprType(it) => &it.syntax,
36741            Type::IntervalType(it) => &it.syntax,
36742            Type::PathType(it) => &it.syntax,
36743            Type::PercentType(it) => &it.syntax,
36744            Type::TimeType(it) => &it.syntax,
36745        }
36746    }
36747}
36748impl From<ArrayType> for Type {
36749    #[inline]
36750    fn from(node: ArrayType) -> Type {
36751        Type::ArrayType(node)
36752    }
36753}
36754impl From<BitType> for Type {
36755    #[inline]
36756    fn from(node: BitType) -> Type {
36757        Type::BitType(node)
36758    }
36759}
36760impl From<CharType> for Type {
36761    #[inline]
36762    fn from(node: CharType) -> Type {
36763        Type::CharType(node)
36764    }
36765}
36766impl From<DoubleType> for Type {
36767    #[inline]
36768    fn from(node: DoubleType) -> Type {
36769        Type::DoubleType(node)
36770    }
36771}
36772impl From<ExprType> for Type {
36773    #[inline]
36774    fn from(node: ExprType) -> Type {
36775        Type::ExprType(node)
36776    }
36777}
36778impl From<IntervalType> for Type {
36779    #[inline]
36780    fn from(node: IntervalType) -> Type {
36781        Type::IntervalType(node)
36782    }
36783}
36784impl From<PathType> for Type {
36785    #[inline]
36786    fn from(node: PathType) -> Type {
36787        Type::PathType(node)
36788    }
36789}
36790impl From<PercentType> for Type {
36791    #[inline]
36792    fn from(node: PercentType) -> Type {
36793        Type::PercentType(node)
36794    }
36795}
36796impl From<TimeType> for Type {
36797    #[inline]
36798    fn from(node: TimeType) -> Type {
36799        Type::TimeType(node)
36800    }
36801}
36802impl AstNode for ValuePosition {
36803    #[inline]
36804    fn can_cast(kind: SyntaxKind) -> bool {
36805        matches!(kind, SyntaxKind::AFTER_VALUE | SyntaxKind::BEFORE_VALUE)
36806    }
36807    #[inline]
36808    fn cast(syntax: SyntaxNode) -> Option<Self> {
36809        let res = match syntax.kind() {
36810            SyntaxKind::AFTER_VALUE => ValuePosition::AfterValue(AfterValue { syntax }),
36811            SyntaxKind::BEFORE_VALUE => ValuePosition::BeforeValue(BeforeValue { syntax }),
36812            _ => {
36813                return None;
36814            }
36815        };
36816        Some(res)
36817    }
36818    #[inline]
36819    fn syntax(&self) -> &SyntaxNode {
36820        match self {
36821            ValuePosition::AfterValue(it) => &it.syntax,
36822            ValuePosition::BeforeValue(it) => &it.syntax,
36823        }
36824    }
36825}
36826impl From<AfterValue> for ValuePosition {
36827    #[inline]
36828    fn from(node: AfterValue) -> ValuePosition {
36829        ValuePosition::AfterValue(node)
36830    }
36831}
36832impl From<BeforeValue> for ValuePosition {
36833    #[inline]
36834    fn from(node: BeforeValue) -> ValuePosition {
36835        ValuePosition::BeforeValue(node)
36836    }
36837}
36838impl AstNode for WithQuery {
36839    #[inline]
36840    fn can_cast(kind: SyntaxKind) -> bool {
36841        matches!(
36842            kind,
36843            SyntaxKind::COMPOUND_SELECT
36844                | SyntaxKind::DELETE
36845                | SyntaxKind::INSERT
36846                | SyntaxKind::MERGE
36847                | SyntaxKind::PAREN_SELECT
36848                | SyntaxKind::SELECT
36849                | SyntaxKind::TABLE
36850                | SyntaxKind::UPDATE
36851                | SyntaxKind::VALUES
36852        )
36853    }
36854    #[inline]
36855    fn cast(syntax: SyntaxNode) -> Option<Self> {
36856        let res = match syntax.kind() {
36857            SyntaxKind::COMPOUND_SELECT => WithQuery::CompoundSelect(CompoundSelect { syntax }),
36858            SyntaxKind::DELETE => WithQuery::Delete(Delete { syntax }),
36859            SyntaxKind::INSERT => WithQuery::Insert(Insert { syntax }),
36860            SyntaxKind::MERGE => WithQuery::Merge(Merge { syntax }),
36861            SyntaxKind::PAREN_SELECT => WithQuery::ParenSelect(ParenSelect { syntax }),
36862            SyntaxKind::SELECT => WithQuery::Select(Select { syntax }),
36863            SyntaxKind::TABLE => WithQuery::Table(Table { syntax }),
36864            SyntaxKind::UPDATE => WithQuery::Update(Update { syntax }),
36865            SyntaxKind::VALUES => WithQuery::Values(Values { syntax }),
36866            _ => {
36867                return None;
36868            }
36869        };
36870        Some(res)
36871    }
36872    #[inline]
36873    fn syntax(&self) -> &SyntaxNode {
36874        match self {
36875            WithQuery::CompoundSelect(it) => &it.syntax,
36876            WithQuery::Delete(it) => &it.syntax,
36877            WithQuery::Insert(it) => &it.syntax,
36878            WithQuery::Merge(it) => &it.syntax,
36879            WithQuery::ParenSelect(it) => &it.syntax,
36880            WithQuery::Select(it) => &it.syntax,
36881            WithQuery::Table(it) => &it.syntax,
36882            WithQuery::Update(it) => &it.syntax,
36883            WithQuery::Values(it) => &it.syntax,
36884        }
36885    }
36886}
36887impl From<CompoundSelect> for WithQuery {
36888    #[inline]
36889    fn from(node: CompoundSelect) -> WithQuery {
36890        WithQuery::CompoundSelect(node)
36891    }
36892}
36893impl From<Delete> for WithQuery {
36894    #[inline]
36895    fn from(node: Delete) -> WithQuery {
36896        WithQuery::Delete(node)
36897    }
36898}
36899impl From<Insert> for WithQuery {
36900    #[inline]
36901    fn from(node: Insert) -> WithQuery {
36902        WithQuery::Insert(node)
36903    }
36904}
36905impl From<Merge> for WithQuery {
36906    #[inline]
36907    fn from(node: Merge) -> WithQuery {
36908        WithQuery::Merge(node)
36909    }
36910}
36911impl From<ParenSelect> for WithQuery {
36912    #[inline]
36913    fn from(node: ParenSelect) -> WithQuery {
36914        WithQuery::ParenSelect(node)
36915    }
36916}
36917impl From<Select> for WithQuery {
36918    #[inline]
36919    fn from(node: Select) -> WithQuery {
36920        WithQuery::Select(node)
36921    }
36922}
36923impl From<Table> for WithQuery {
36924    #[inline]
36925    fn from(node: Table) -> WithQuery {
36926        WithQuery::Table(node)
36927    }
36928}
36929impl From<Update> for WithQuery {
36930    #[inline]
36931    fn from(node: Update) -> WithQuery {
36932        WithQuery::Update(node)
36933    }
36934}
36935impl From<Values> for WithQuery {
36936    #[inline]
36937    fn from(node: Values) -> WithQuery {
36938        WithQuery::Values(node)
36939    }
36940}