Skip to main content

mz_sql_parser/mnt/build/debug/build/mz-sql-parser-e6983a97ed43670a/out/
visit_mut.rs

1pub trait VisitMut<'ast, T: AstInfo, > {
2    fn visit_abbreviated_grant_or_revoke_statement_mut(&mut self, node: &'ast mut AbbreviatedGrantOrRevokeStatement<T>) {
3        visit_abbreviated_grant_or_revoke_statement_mut(self, node)
4    }
5    fn visit_abbreviated_grant_statement_mut(&mut self, node: &'ast mut AbbreviatedGrantStatement<T>) {
6        visit_abbreviated_grant_statement_mut(self, node)
7    }
8    fn visit_abbreviated_revoke_statement_mut(&mut self, node: &'ast mut AbbreviatedRevokeStatement<T>) {
9        visit_abbreviated_revoke_statement_mut(self, node)
10    }
11    fn visit_alter_cluster_action_mut(&mut self, node: &'ast mut AlterClusterAction<T>) {
12        visit_alter_cluster_action_mut(self, node)
13    }
14    fn visit_alter_cluster_statement_mut(&mut self, node: &'ast mut AlterClusterStatement<T>) {
15        visit_alter_cluster_statement_mut(self, node)
16    }
17    fn visit_alter_connection_action_mut(&mut self, node: &'ast mut AlterConnectionAction<T>) {
18        visit_alter_connection_action_mut(self, node)
19    }
20    fn visit_alter_connection_option_mut(&mut self, node: &'ast mut AlterConnectionOption<T>) {
21        visit_alter_connection_option_mut(self, node)
22    }
23    fn visit_alter_connection_option_name_mut(&mut self, node: &'ast mut AlterConnectionOptionName) {
24        visit_alter_connection_option_name_mut(self, node)
25    }
26    fn visit_alter_connection_statement_mut(&mut self, node: &'ast mut AlterConnectionStatement<T>) {
27        visit_alter_connection_statement_mut(self, node)
28    }
29    fn visit_alter_default_privileges_statement_mut(&mut self, node: &'ast mut AlterDefaultPrivilegesStatement<T>) {
30        visit_alter_default_privileges_statement_mut(self, node)
31    }
32    fn visit_alter_index_action_mut(&mut self, node: &'ast mut AlterIndexAction<T>) {
33        visit_alter_index_action_mut(self, node)
34    }
35    fn visit_alter_index_statement_mut(&mut self, node: &'ast mut AlterIndexStatement<T>) {
36        visit_alter_index_statement_mut(self, node)
37    }
38    fn visit_alter_materialized_view_apply_replacement_statement_mut(&mut self, node: &'ast mut AlterMaterializedViewApplyReplacementStatement) {
39        visit_alter_materialized_view_apply_replacement_statement_mut(self, node)
40    }
41    fn visit_alter_network_policy_statement_mut(&mut self, node: &'ast mut AlterNetworkPolicyStatement<T>) {
42        visit_alter_network_policy_statement_mut(self, node)
43    }
44    fn visit_alter_object_rename_statement_mut(&mut self, node: &'ast mut AlterObjectRenameStatement) {
45        visit_alter_object_rename_statement_mut(self, node)
46    }
47    fn visit_alter_object_swap_statement_mut(&mut self, node: &'ast mut AlterObjectSwapStatement) {
48        visit_alter_object_swap_statement_mut(self, node)
49    }
50    fn visit_alter_owner_statement_mut(&mut self, node: &'ast mut AlterOwnerStatement<T>) {
51        visit_alter_owner_statement_mut(self, node)
52    }
53    fn visit_alter_retain_history_statement_mut(&mut self, node: &'ast mut AlterRetainHistoryStatement<T>) {
54        visit_alter_retain_history_statement_mut(self, node)
55    }
56    fn visit_alter_role_option_mut(&mut self, node: &'ast mut AlterRoleOption) {
57        visit_alter_role_option_mut(self, node)
58    }
59    fn visit_alter_role_statement_mut(&mut self, node: &'ast mut AlterRoleStatement<T>) {
60        visit_alter_role_statement_mut(self, node)
61    }
62    fn visit_alter_secret_statement_mut(&mut self, node: &'ast mut AlterSecretStatement<T>) {
63        visit_alter_secret_statement_mut(self, node)
64    }
65    fn visit_alter_set_cluster_statement_mut(&mut self, node: &'ast mut AlterSetClusterStatement<T>) {
66        visit_alter_set_cluster_statement_mut(self, node)
67    }
68    fn visit_alter_sink_action_mut(&mut self, node: &'ast mut AlterSinkAction<T>) {
69        visit_alter_sink_action_mut(self, node)
70    }
71    fn visit_alter_sink_statement_mut(&mut self, node: &'ast mut AlterSinkStatement<T>) {
72        visit_alter_sink_statement_mut(self, node)
73    }
74    fn visit_alter_source_action_mut(&mut self, node: &'ast mut AlterSourceAction<T>) {
75        visit_alter_source_action_mut(self, node)
76    }
77    fn visit_alter_source_add_subsource_option_mut(&mut self, node: &'ast mut AlterSourceAddSubsourceOption<T>) {
78        visit_alter_source_add_subsource_option_mut(self, node)
79    }
80    fn visit_alter_source_add_subsource_option_name_mut(&mut self, node: &'ast mut AlterSourceAddSubsourceOptionName) {
81        visit_alter_source_add_subsource_option_name_mut(self, node)
82    }
83    fn visit_alter_source_statement_mut(&mut self, node: &'ast mut AlterSourceStatement<T>) {
84        visit_alter_source_statement_mut(self, node)
85    }
86    fn visit_alter_system_reset_all_statement_mut(&mut self, node: &'ast mut AlterSystemResetAllStatement) {
87        visit_alter_system_reset_all_statement_mut(self, node)
88    }
89    fn visit_alter_system_reset_statement_mut(&mut self, node: &'ast mut AlterSystemResetStatement) {
90        visit_alter_system_reset_statement_mut(self, node)
91    }
92    fn visit_alter_system_set_statement_mut(&mut self, node: &'ast mut AlterSystemSetStatement) {
93        visit_alter_system_set_statement_mut(self, node)
94    }
95    fn visit_alter_table_add_column_statement_mut(&mut self, node: &'ast mut AlterTableAddColumnStatement<T>) {
96        visit_alter_table_add_column_statement_mut(self, node)
97    }
98    fn visit_as_of_mut(&mut self, node: &'ast mut AsOf<T>) {
99        visit_as_of_mut(self, node)
100    }
101    fn visit_assignment_mut(&mut self, node: &'ast mut Assignment<T>) {
102        visit_assignment_mut(self, node)
103    }
104    fn visit_avro_doc_on_mut(&mut self, node: &'ast mut AvroDocOn<T>) {
105        visit_avro_doc_on_mut(self, node)
106    }
107    fn visit_avro_schema_mut(&mut self, node: &'ast mut AvroSchema<T>) {
108        visit_avro_schema_mut(self, node)
109    }
110    fn visit_avro_schema_option_mut(&mut self, node: &'ast mut AvroSchemaOption<T>) {
111        visit_avro_schema_option_mut(self, node)
112    }
113    fn visit_avro_schema_option_name_mut(&mut self, node: &'ast mut AvroSchemaOptionName) {
114        visit_avro_schema_option_name_mut(self, node)
115    }
116    fn visit_catalog_name_mut(&mut self, node: &'ast mut CatalogName) {
117        visit_catalog_name_mut(self, node)
118    }
119    fn visit_close_statement_mut(&mut self, node: &'ast mut CloseStatement) {
120        visit_close_statement_mut(self, node)
121    }
122    fn visit_cluster_alter_option_mut(&mut self, node: &'ast mut ClusterAlterOption<T>) {
123        visit_cluster_alter_option_mut(self, node)
124    }
125    fn visit_cluster_alter_option_name_mut(&mut self, node: &'ast mut ClusterAlterOptionName) {
126        visit_cluster_alter_option_name_mut(self, node)
127    }
128    fn visit_cluster_alter_option_value_mut(&mut self, node: &'ast mut ClusterAlterOptionValue<T>) {
129        visit_cluster_alter_option_value_mut(self, node)
130    }
131    fn visit_cluster_alter_until_ready_option_mut(&mut self, node: &'ast mut ClusterAlterUntilReadyOption<T>) {
132        visit_cluster_alter_until_ready_option_mut(self, node)
133    }
134    fn visit_cluster_alter_until_ready_option_name_mut(&mut self, node: &'ast mut ClusterAlterUntilReadyOptionName) {
135        visit_cluster_alter_until_ready_option_name_mut(self, node)
136    }
137    fn visit_cluster_feature_mut(&mut self, node: &'ast mut ClusterFeature<T>) {
138        visit_cluster_feature_mut(self, node)
139    }
140    fn visit_cluster_feature_name_mut(&mut self, node: &'ast mut ClusterFeatureName) {
141        visit_cluster_feature_name_mut(self, node)
142    }
143    fn visit_cluster_option_mut(&mut self, node: &'ast mut ClusterOption<T>) {
144        visit_cluster_option_mut(self, node)
145    }
146    fn visit_cluster_option_name_mut(&mut self, node: &'ast mut ClusterOptionName) {
147        visit_cluster_option_name_mut(self, node)
148    }
149    fn visit_cluster_schedule_option_value_mut(&mut self, node: &'ast mut ClusterScheduleOptionValue) {
150        visit_cluster_schedule_option_value_mut(self, node)
151    }
152    fn visit_column_def_mut(&mut self, node: &'ast mut ColumnDef<T>) {
153        visit_column_def_mut(self, node)
154    }
155    fn visit_column_name_mut(&mut self, node: &'ast mut ColumnName<T>) {
156        visit_column_name_mut(self, node)
157    }
158    fn visit_column_option_mut(&mut self, node: &'ast mut ColumnOption<T>) {
159        visit_column_option_mut(self, node)
160    }
161    fn visit_column_option_def_mut(&mut self, node: &'ast mut ColumnOptionDef<T>) {
162        visit_column_option_def_mut(self, node)
163    }
164    fn visit_column_versioned_mut(&mut self, node: &'ast mut ColumnVersioned) {
165        visit_column_versioned_mut(self, node)
166    }
167    fn visit_comment_object_type_mut(&mut self, node: &'ast mut CommentObjectType<T>) {
168        visit_comment_object_type_mut(self, node)
169    }
170    fn visit_comment_statement_mut(&mut self, node: &'ast mut CommentStatement<T>) {
171        visit_comment_statement_mut(self, node)
172    }
173    fn visit_commit_statement_mut(&mut self, node: &'ast mut CommitStatement) {
174        visit_commit_statement_mut(self, node)
175    }
176    fn visit_connection_default_aws_privatelink_mut(&mut self, node: &'ast mut ConnectionDefaultAwsPrivatelink<T>) {
177        visit_connection_default_aws_privatelink_mut(self, node)
178    }
179    fn visit_connection_option_mut(&mut self, node: &'ast mut ConnectionOption<T>) {
180        visit_connection_option_mut(self, node)
181    }
182    fn visit_connection_option_name_mut(&mut self, node: &'ast mut ConnectionOptionName) {
183        visit_connection_option_name_mut(self, node)
184    }
185    fn visit_continual_task_option_mut(&mut self, node: &'ast mut ContinualTaskOption<T>) {
186        visit_continual_task_option_mut(self, node)
187    }
188    fn visit_continual_task_option_name_mut(&mut self, node: &'ast mut ContinualTaskOptionName) {
189        visit_continual_task_option_name_mut(self, node)
190    }
191    fn visit_continual_task_stmt_mut(&mut self, node: &'ast mut ContinualTaskStmt<T>) {
192        visit_continual_task_stmt_mut(self, node)
193    }
194    fn visit_copy_direction_mut(&mut self, node: &'ast mut CopyDirection) {
195        visit_copy_direction_mut(self, node)
196    }
197    fn visit_copy_option_mut(&mut self, node: &'ast mut CopyOption<T>) {
198        visit_copy_option_mut(self, node)
199    }
200    fn visit_copy_option_name_mut(&mut self, node: &'ast mut CopyOptionName) {
201        visit_copy_option_name_mut(self, node)
202    }
203    fn visit_copy_relation_mut(&mut self, node: &'ast mut CopyRelation<T>) {
204        visit_copy_relation_mut(self, node)
205    }
206    fn visit_copy_statement_mut(&mut self, node: &'ast mut CopyStatement<T>) {
207        visit_copy_statement_mut(self, node)
208    }
209    fn visit_copy_target_mut(&mut self, node: &'ast mut CopyTarget<T>) {
210        visit_copy_target_mut(self, node)
211    }
212    fn visit_create_cluster_replica_statement_mut(&mut self, node: &'ast mut CreateClusterReplicaStatement<T>) {
213        visit_create_cluster_replica_statement_mut(self, node)
214    }
215    fn visit_create_cluster_statement_mut(&mut self, node: &'ast mut CreateClusterStatement<T>) {
216        visit_create_cluster_statement_mut(self, node)
217    }
218    fn visit_create_connection_option_mut(&mut self, node: &'ast mut CreateConnectionOption<T>) {
219        visit_create_connection_option_mut(self, node)
220    }
221    fn visit_create_connection_option_name_mut(&mut self, node: &'ast mut CreateConnectionOptionName) {
222        visit_create_connection_option_name_mut(self, node)
223    }
224    fn visit_create_connection_statement_mut(&mut self, node: &'ast mut CreateConnectionStatement<T>) {
225        visit_create_connection_statement_mut(self, node)
226    }
227    fn visit_create_connection_type_mut(&mut self, node: &'ast mut CreateConnectionType) {
228        visit_create_connection_type_mut(self, node)
229    }
230    fn visit_create_continual_task_statement_mut(&mut self, node: &'ast mut CreateContinualTaskStatement<T>) {
231        visit_create_continual_task_statement_mut(self, node)
232    }
233    fn visit_create_continual_task_sugar_mut(&mut self, node: &'ast mut CreateContinualTaskSugar<T>) {
234        visit_create_continual_task_sugar_mut(self, node)
235    }
236    fn visit_create_database_statement_mut(&mut self, node: &'ast mut CreateDatabaseStatement) {
237        visit_create_database_statement_mut(self, node)
238    }
239    fn visit_create_index_statement_mut(&mut self, node: &'ast mut CreateIndexStatement<T>) {
240        visit_create_index_statement_mut(self, node)
241    }
242    fn visit_create_materialized_view_statement_mut(&mut self, node: &'ast mut CreateMaterializedViewStatement<T>) {
243        visit_create_materialized_view_statement_mut(self, node)
244    }
245    fn visit_create_network_policy_statement_mut(&mut self, node: &'ast mut CreateNetworkPolicyStatement<T>) {
246        visit_create_network_policy_statement_mut(self, node)
247    }
248    fn visit_create_role_statement_mut(&mut self, node: &'ast mut CreateRoleStatement) {
249        visit_create_role_statement_mut(self, node)
250    }
251    fn visit_create_schema_statement_mut(&mut self, node: &'ast mut CreateSchemaStatement) {
252        visit_create_schema_statement_mut(self, node)
253    }
254    fn visit_create_secret_statement_mut(&mut self, node: &'ast mut CreateSecretStatement<T>) {
255        visit_create_secret_statement_mut(self, node)
256    }
257    fn visit_create_sink_connection_mut(&mut self, node: &'ast mut CreateSinkConnection<T>) {
258        visit_create_sink_connection_mut(self, node)
259    }
260    fn visit_create_sink_option_mut(&mut self, node: &'ast mut CreateSinkOption<T>) {
261        visit_create_sink_option_mut(self, node)
262    }
263    fn visit_create_sink_option_name_mut(&mut self, node: &'ast mut CreateSinkOptionName) {
264        visit_create_sink_option_name_mut(self, node)
265    }
266    fn visit_create_sink_statement_mut(&mut self, node: &'ast mut CreateSinkStatement<T>) {
267        visit_create_sink_statement_mut(self, node)
268    }
269    fn visit_create_source_connection_mut(&mut self, node: &'ast mut CreateSourceConnection<T>) {
270        visit_create_source_connection_mut(self, node)
271    }
272    fn visit_create_source_option_mut(&mut self, node: &'ast mut CreateSourceOption<T>) {
273        visit_create_source_option_mut(self, node)
274    }
275    fn visit_create_source_option_name_mut(&mut self, node: &'ast mut CreateSourceOptionName) {
276        visit_create_source_option_name_mut(self, node)
277    }
278    fn visit_create_source_statement_mut(&mut self, node: &'ast mut CreateSourceStatement<T>) {
279        visit_create_source_statement_mut(self, node)
280    }
281    fn visit_create_subsource_option_mut(&mut self, node: &'ast mut CreateSubsourceOption<T>) {
282        visit_create_subsource_option_mut(self, node)
283    }
284    fn visit_create_subsource_option_name_mut(&mut self, node: &'ast mut CreateSubsourceOptionName) {
285        visit_create_subsource_option_name_mut(self, node)
286    }
287    fn visit_create_subsource_statement_mut(&mut self, node: &'ast mut CreateSubsourceStatement<T>) {
288        visit_create_subsource_statement_mut(self, node)
289    }
290    fn visit_create_table_from_source_statement_mut(&mut self, node: &'ast mut CreateTableFromSourceStatement<T>) {
291        visit_create_table_from_source_statement_mut(self, node)
292    }
293    fn visit_create_table_statement_mut(&mut self, node: &'ast mut CreateTableStatement<T>) {
294        visit_create_table_statement_mut(self, node)
295    }
296    fn visit_create_type_as_mut(&mut self, node: &'ast mut CreateTypeAs<T>) {
297        visit_create_type_as_mut(self, node)
298    }
299    fn visit_create_type_list_option_mut(&mut self, node: &'ast mut CreateTypeListOption<T>) {
300        visit_create_type_list_option_mut(self, node)
301    }
302    fn visit_create_type_list_option_name_mut(&mut self, node: &'ast mut CreateTypeListOptionName) {
303        visit_create_type_list_option_name_mut(self, node)
304    }
305    fn visit_create_type_map_option_mut(&mut self, node: &'ast mut CreateTypeMapOption<T>) {
306        visit_create_type_map_option_mut(self, node)
307    }
308    fn visit_create_type_map_option_name_mut(&mut self, node: &'ast mut CreateTypeMapOptionName) {
309        visit_create_type_map_option_name_mut(self, node)
310    }
311    fn visit_create_type_statement_mut(&mut self, node: &'ast mut CreateTypeStatement<T>) {
312        visit_create_type_statement_mut(self, node)
313    }
314    fn visit_create_view_statement_mut(&mut self, node: &'ast mut CreateViewStatement<T>) {
315        visit_create_view_statement_mut(self, node)
316    }
317    fn visit_create_webhook_source_body_mut(&mut self, node: &'ast mut CreateWebhookSourceBody) {
318        visit_create_webhook_source_body_mut(self, node)
319    }
320    fn visit_create_webhook_source_check_mut(&mut self, node: &'ast mut CreateWebhookSourceCheck<T>) {
321        visit_create_webhook_source_check_mut(self, node)
322    }
323    fn visit_create_webhook_source_check_options_mut(&mut self, node: &'ast mut CreateWebhookSourceCheckOptions<T>) {
324        visit_create_webhook_source_check_options_mut(self, node)
325    }
326    fn visit_create_webhook_source_filter_header_mut(&mut self, node: &'ast mut CreateWebhookSourceFilterHeader) {
327        visit_create_webhook_source_filter_header_mut(self, node)
328    }
329    fn visit_create_webhook_source_header_mut(&mut self, node: &'ast mut CreateWebhookSourceHeader) {
330        visit_create_webhook_source_header_mut(self, node)
331    }
332    fn visit_create_webhook_source_include_headers_mut(&mut self, node: &'ast mut CreateWebhookSourceIncludeHeaders) {
333        visit_create_webhook_source_include_headers_mut(self, node)
334    }
335    fn visit_create_webhook_source_map_header_mut(&mut self, node: &'ast mut CreateWebhookSourceMapHeader) {
336        visit_create_webhook_source_map_header_mut(self, node)
337    }
338    fn visit_create_webhook_source_secret_mut(&mut self, node: &'ast mut CreateWebhookSourceSecret<T>) {
339        visit_create_webhook_source_secret_mut(self, node)
340    }
341    fn visit_create_webhook_source_statement_mut(&mut self, node: &'ast mut CreateWebhookSourceStatement<T>) {
342        visit_create_webhook_source_statement_mut(self, node)
343    }
344    fn visit_csr_config_option_mut(&mut self, node: &'ast mut CsrConfigOption<T>) {
345        visit_csr_config_option_mut(self, node)
346    }
347    fn visit_csr_config_option_name_mut(&mut self, node: &'ast mut CsrConfigOptionName<T>) {
348        visit_csr_config_option_name_mut(self, node)
349    }
350    fn visit_csr_connection_mut(&mut self, node: &'ast mut CsrConnection<T>) {
351        visit_csr_connection_mut(self, node)
352    }
353    fn visit_csr_connection_avro_mut(&mut self, node: &'ast mut CsrConnectionAvro<T>) {
354        visit_csr_connection_avro_mut(self, node)
355    }
356    fn visit_csr_connection_protobuf_mut(&mut self, node: &'ast mut CsrConnectionProtobuf<T>) {
357        visit_csr_connection_protobuf_mut(self, node)
358    }
359    fn visit_csr_seed_avro_mut(&mut self, node: &'ast mut CsrSeedAvro) {
360        visit_csr_seed_avro_mut(self, node)
361    }
362    fn visit_csr_seed_protobuf_mut(&mut self, node: &'ast mut CsrSeedProtobuf) {
363        visit_csr_seed_protobuf_mut(self, node)
364    }
365    fn visit_csr_seed_protobuf_schema_mut(&mut self, node: &'ast mut CsrSeedProtobufSchema) {
366        visit_csr_seed_protobuf_schema_mut(self, node)
367    }
368    fn visit_csv_columns_mut(&mut self, node: &'ast mut CsvColumns) {
369        visit_csv_columns_mut(self, node)
370    }
371    fn visit_cte_mut(&mut self, node: &'ast mut Cte<T>) {
372        visit_cte_mut(self, node)
373    }
374    fn visit_cte_block_mut(&mut self, node: &'ast mut CteBlock<T>) {
375        visit_cte_block_mut(self, node)
376    }
377    fn visit_cte_mut_rec_mut(&mut self, node: &'ast mut CteMutRec<T>) {
378        visit_cte_mut_rec_mut(self, node)
379    }
380    fn visit_cte_mut_rec_column_def_mut(&mut self, node: &'ast mut CteMutRecColumnDef<T>) {
381        visit_cte_mut_rec_column_def_mut(self, node)
382    }
383    fn visit_date_time_field_mut(&mut self, node: &'ast mut DateTimeField) {
384        visit_date_time_field_mut(self, node)
385    }
386    fn visit_deallocate_statement_mut(&mut self, node: &'ast mut DeallocateStatement) {
387        visit_deallocate_statement_mut(self, node)
388    }
389    fn visit_declare_statement_mut(&mut self, node: &'ast mut DeclareStatement<T>) {
390        visit_declare_statement_mut(self, node)
391    }
392    fn visit_deferred_item_name_mut(&mut self, node: &'ast mut DeferredItemName<T>) {
393        visit_deferred_item_name_mut(self, node)
394    }
395    fn visit_delete_statement_mut(&mut self, node: &'ast mut DeleteStatement<T>) {
396        visit_delete_statement_mut(self, node)
397    }
398    fn visit_discard_statement_mut(&mut self, node: &'ast mut DiscardStatement) {
399        visit_discard_statement_mut(self, node)
400    }
401    fn visit_discard_target_mut(&mut self, node: &'ast mut DiscardTarget) {
402        visit_discard_target_mut(self, node)
403    }
404    fn visit_distinct_mut(&mut self, node: &'ast mut Distinct<T>) {
405        visit_distinct_mut(self, node)
406    }
407    fn visit_doc_on_identifier_mut(&mut self, node: &'ast mut DocOnIdentifier<T>) {
408        visit_doc_on_identifier_mut(self, node)
409    }
410    fn visit_doc_on_schema_mut(&mut self, node: &'ast mut DocOnSchema) {
411        visit_doc_on_schema_mut(self, node)
412    }
413    fn visit_drop_objects_statement_mut(&mut self, node: &'ast mut DropObjectsStatement) {
414        visit_drop_objects_statement_mut(self, node)
415    }
416    fn visit_drop_owned_statement_mut(&mut self, node: &'ast mut DropOwnedStatement<T>) {
417        visit_drop_owned_statement_mut(self, node)
418    }
419    fn visit_execute_statement_mut(&mut self, node: &'ast mut ExecuteStatement<T>) {
420        visit_execute_statement_mut(self, node)
421    }
422    fn visit_explain_analyze_cluster_statement_mut(&mut self, node: &'ast mut ExplainAnalyzeClusterStatement) {
423        visit_explain_analyze_cluster_statement_mut(self, node)
424    }
425    fn visit_explain_analyze_computation_properties_mut(&mut self, node: &'ast mut ExplainAnalyzeComputationProperties) {
426        visit_explain_analyze_computation_properties_mut(self, node)
427    }
428    fn visit_explain_analyze_computation_property_mut(&mut self, node: &'ast mut ExplainAnalyzeComputationProperty) {
429        visit_explain_analyze_computation_property_mut(self, node)
430    }
431    fn visit_explain_analyze_object_statement_mut(&mut self, node: &'ast mut ExplainAnalyzeObjectStatement<T>) {
432        visit_explain_analyze_object_statement_mut(self, node)
433    }
434    fn visit_explain_analyze_property_mut(&mut self, node: &'ast mut ExplainAnalyzeProperty) {
435        visit_explain_analyze_property_mut(self, node)
436    }
437    fn visit_explain_format_mut(&mut self, node: &'ast mut ExplainFormat) {
438        visit_explain_format_mut(self, node)
439    }
440    fn visit_explain_plan_option_mut(&mut self, node: &'ast mut ExplainPlanOption<T>) {
441        visit_explain_plan_option_mut(self, node)
442    }
443    fn visit_explain_plan_option_name_mut(&mut self, node: &'ast mut ExplainPlanOptionName) {
444        visit_explain_plan_option_name_mut(self, node)
445    }
446    fn visit_explain_plan_statement_mut(&mut self, node: &'ast mut ExplainPlanStatement<T>) {
447        visit_explain_plan_statement_mut(self, node)
448    }
449    fn visit_explain_pushdown_statement_mut(&mut self, node: &'ast mut ExplainPushdownStatement<T>) {
450        visit_explain_pushdown_statement_mut(self, node)
451    }
452    fn visit_explain_sink_schema_for_mut(&mut self, node: &'ast mut ExplainSinkSchemaFor) {
453        visit_explain_sink_schema_for_mut(self, node)
454    }
455    fn visit_explain_sink_schema_statement_mut(&mut self, node: &'ast mut ExplainSinkSchemaStatement<T>) {
456        visit_explain_sink_schema_statement_mut(self, node)
457    }
458    fn visit_explain_stage_mut(&mut self, node: &'ast mut ExplainStage) {
459        visit_explain_stage_mut(self, node)
460    }
461    fn visit_explain_timestamp_statement_mut(&mut self, node: &'ast mut ExplainTimestampStatement<T>) {
462        visit_explain_timestamp_statement_mut(self, node)
463    }
464    fn visit_explainee_mut(&mut self, node: &'ast mut Explainee<T>) {
465        visit_explainee_mut(self, node)
466    }
467    fn visit_expr_mut(&mut self, node: &'ast mut Expr<T>) {
468        visit_expr_mut(self, node)
469    }
470    fn visit_external_reference_export_mut(&mut self, node: &'ast mut ExternalReferenceExport) {
471        visit_external_reference_export_mut(self, node)
472    }
473    fn visit_external_references_mut(&mut self, node: &'ast mut ExternalReferences) {
474        visit_external_references_mut(self, node)
475    }
476    fn visit_fetch_direction_mut(&mut self, node: &'ast mut FetchDirection) {
477        visit_fetch_direction_mut(self, node)
478    }
479    fn visit_fetch_option_mut(&mut self, node: &'ast mut FetchOption<T>) {
480        visit_fetch_option_mut(self, node)
481    }
482    fn visit_fetch_option_name_mut(&mut self, node: &'ast mut FetchOptionName) {
483        visit_fetch_option_name_mut(self, node)
484    }
485    fn visit_fetch_statement_mut(&mut self, node: &'ast mut FetchStatement<T>) {
486        visit_fetch_statement_mut(self, node)
487    }
488    fn visit_format_mut(&mut self, node: &'ast mut Format<T>) {
489        visit_format_mut(self, node)
490    }
491    fn visit_format_specifier_mut(&mut self, node: &'ast mut FormatSpecifier<T>) {
492        visit_format_specifier_mut(self, node)
493    }
494    fn visit_function_mut(&mut self, node: &'ast mut Function<T>) {
495        visit_function_mut(self, node)
496    }
497    fn visit_function_args_mut(&mut self, node: &'ast mut FunctionArgs<T>) {
498        visit_function_args_mut(self, node)
499    }
500    fn visit_grant_privileges_statement_mut(&mut self, node: &'ast mut GrantPrivilegesStatement<T>) {
501        visit_grant_privileges_statement_mut(self, node)
502    }
503    fn visit_grant_role_statement_mut(&mut self, node: &'ast mut GrantRoleStatement<T>) {
504        visit_grant_role_statement_mut(self, node)
505    }
506    fn visit_grant_target_all_specification_mut(&mut self, node: &'ast mut GrantTargetAllSpecification<T>) {
507        visit_grant_target_all_specification_mut(self, node)
508    }
509    fn visit_grant_target_specification_mut(&mut self, node: &'ast mut GrantTargetSpecification<T>) {
510        visit_grant_target_specification_mut(self, node)
511    }
512    fn visit_grant_target_specification_inner_mut(&mut self, node: &'ast mut GrantTargetSpecificationInner<T>) {
513        visit_grant_target_specification_inner_mut(self, node)
514    }
515    fn visit_homogenizing_function_mut(&mut self, node: &'ast mut HomogenizingFunction) {
516        visit_homogenizing_function_mut(self, node)
517    }
518    fn visit_iceberg_sink_config_option_mut(&mut self, node: &'ast mut IcebergSinkConfigOption<T>) {
519        visit_iceberg_sink_config_option_mut(self, node)
520    }
521    fn visit_iceberg_sink_config_option_name_mut(&mut self, node: &'ast mut IcebergSinkConfigOptionName) {
522        visit_iceberg_sink_config_option_name_mut(self, node)
523    }
524    fn visit_iceberg_sink_mode_mut(&mut self, node: &'ast mut IcebergSinkMode) {
525        visit_iceberg_sink_mode_mut(self, node)
526    }
527    fn visit_ident_mut(&mut self, node: &'ast mut Ident) {
528        visit_ident_mut(self, node)
529    }
530    fn visit_ident_error_mut(&mut self, node: &'ast mut IdentError) {
531        visit_ident_error_mut(self, node)
532    }
533    fn visit_if_exists_behavior_mut(&mut self, node: &'ast mut IfExistsBehavior) {
534        visit_if_exists_behavior_mut(self, node)
535    }
536    fn visit_index_option_mut(&mut self, node: &'ast mut IndexOption<T>) {
537        visit_index_option_mut(self, node)
538    }
539    fn visit_index_option_name_mut(&mut self, node: &'ast mut IndexOptionName) {
540        visit_index_option_name_mut(self, node)
541    }
542    fn visit_insert_source_mut(&mut self, node: &'ast mut InsertSource<T>) {
543        visit_insert_source_mut(self, node)
544    }
545    fn visit_insert_statement_mut(&mut self, node: &'ast mut InsertStatement<T>) {
546        visit_insert_statement_mut(self, node)
547    }
548    fn visit_inspect_shard_statement_mut(&mut self, node: &'ast mut InspectShardStatement) {
549        visit_inspect_shard_statement_mut(self, node)
550    }
551    fn visit_interval_value_mut(&mut self, node: &'ast mut IntervalValue) {
552        visit_interval_value_mut(self, node)
553    }
554    fn visit_is_expr_construct_mut(&mut self, node: &'ast mut IsExprConstruct<T>) {
555        visit_is_expr_construct_mut(self, node)
556    }
557    fn visit_join_mut(&mut self, node: &'ast mut Join<T>) {
558        visit_join_mut(self, node)
559    }
560    fn visit_join_constraint_mut(&mut self, node: &'ast mut JoinConstraint<T>) {
561        visit_join_constraint_mut(self, node)
562    }
563    fn visit_join_operator_mut(&mut self, node: &'ast mut JoinOperator<T>) {
564        visit_join_operator_mut(self, node)
565    }
566    fn visit_kafka_broker_mut(&mut self, node: &'ast mut KafkaBroker<T>) {
567        visit_kafka_broker_mut(self, node)
568    }
569    fn visit_kafka_broker_aws_privatelink_mut(&mut self, node: &'ast mut KafkaBrokerAwsPrivatelink<T>) {
570        visit_kafka_broker_aws_privatelink_mut(self, node)
571    }
572    fn visit_kafka_broker_aws_privatelink_option_mut(&mut self, node: &'ast mut KafkaBrokerAwsPrivatelinkOption<T>) {
573        visit_kafka_broker_aws_privatelink_option_mut(self, node)
574    }
575    fn visit_kafka_broker_aws_privatelink_option_name_mut(&mut self, node: &'ast mut KafkaBrokerAwsPrivatelinkOptionName) {
576        visit_kafka_broker_aws_privatelink_option_name_mut(self, node)
577    }
578    fn visit_kafka_broker_tunnel_mut(&mut self, node: &'ast mut KafkaBrokerTunnel<T>) {
579        visit_kafka_broker_tunnel_mut(self, node)
580    }
581    fn visit_kafka_sink_config_option_mut(&mut self, node: &'ast mut KafkaSinkConfigOption<T>) {
582        visit_kafka_sink_config_option_mut(self, node)
583    }
584    fn visit_kafka_sink_config_option_name_mut(&mut self, node: &'ast mut KafkaSinkConfigOptionName) {
585        visit_kafka_sink_config_option_name_mut(self, node)
586    }
587    fn visit_kafka_source_config_option_mut(&mut self, node: &'ast mut KafkaSourceConfigOption<T>) {
588        visit_kafka_source_config_option_mut(self, node)
589    }
590    fn visit_kafka_source_config_option_name_mut(&mut self, node: &'ast mut KafkaSourceConfigOptionName) {
591        visit_kafka_source_config_option_name_mut(self, node)
592    }
593    fn visit_key_constraint_mut(&mut self, node: &'ast mut KeyConstraint) {
594        visit_key_constraint_mut(self, node)
595    }
596    fn visit_limit_mut(&mut self, node: &'ast mut Limit<T>) {
597        visit_limit_mut(self, node)
598    }
599    fn visit_load_generator_mut(&mut self, node: &'ast mut LoadGenerator) {
600        visit_load_generator_mut(self, node)
601    }
602    fn visit_load_generator_option_mut(&mut self, node: &'ast mut LoadGeneratorOption<T>) {
603        visit_load_generator_option_mut(self, node)
604    }
605    fn visit_load_generator_option_name_mut(&mut self, node: &'ast mut LoadGeneratorOptionName) {
606        visit_load_generator_option_name_mut(self, node)
607    }
608    fn visit_map_entry_mut(&mut self, node: &'ast mut MapEntry<T>) {
609        visit_map_entry_mut(self, node)
610    }
611    fn visit_materialized_view_option_mut(&mut self, node: &'ast mut MaterializedViewOption<T>) {
612        visit_materialized_view_option_mut(self, node)
613    }
614    fn visit_materialized_view_option_name_mut(&mut self, node: &'ast mut MaterializedViewOptionName) {
615        visit_materialized_view_option_name_mut(self, node)
616    }
617    fn visit_mut_rec_block_mut(&mut self, node: &'ast mut MutRecBlock<T>) {
618        visit_mut_rec_block_mut(self, node)
619    }
620    fn visit_mut_rec_block_option_mut(&mut self, node: &'ast mut MutRecBlockOption<T>) {
621        visit_mut_rec_block_option_mut(self, node)
622    }
623    fn visit_mut_rec_block_option_name_mut(&mut self, node: &'ast mut MutRecBlockOptionName) {
624        visit_mut_rec_block_option_name_mut(self, node)
625    }
626    fn visit_my_sql_config_option_mut(&mut self, node: &'ast mut MySqlConfigOption<T>) {
627        visit_my_sql_config_option_mut(self, node)
628    }
629    fn visit_my_sql_config_option_name_mut(&mut self, node: &'ast mut MySqlConfigOptionName) {
630        visit_my_sql_config_option_name_mut(self, node)
631    }
632    fn visit_named_plan_mut(&mut self, node: &'ast mut NamedPlan) {
633        visit_named_plan_mut(self, node)
634    }
635    fn visit_network_policy_option_mut(&mut self, node: &'ast mut NetworkPolicyOption<T>) {
636        visit_network_policy_option_mut(self, node)
637    }
638    fn visit_network_policy_option_name_mut(&mut self, node: &'ast mut NetworkPolicyOptionName) {
639        visit_network_policy_option_name_mut(self, node)
640    }
641    fn visit_network_policy_rule_definition_mut(&mut self, node: &'ast mut NetworkPolicyRuleDefinition<T>) {
642        visit_network_policy_rule_definition_mut(self, node)
643    }
644    fn visit_network_policy_rule_option_mut(&mut self, node: &'ast mut NetworkPolicyRuleOption<T>) {
645        visit_network_policy_rule_option_mut(self, node)
646    }
647    fn visit_network_policy_rule_option_name_mut(&mut self, node: &'ast mut NetworkPolicyRuleOptionName) {
648        visit_network_policy_rule_option_name_mut(self, node)
649    }
650    fn visit_notice_severity_mut(&mut self, node: &'ast mut NoticeSeverity) {
651        visit_notice_severity_mut(self, node)
652    }
653    fn visit_object_type_mut(&mut self, node: &'ast mut ObjectType) {
654        visit_object_type_mut(self, node)
655    }
656    fn visit_op_mut(&mut self, node: &'ast mut Op) {
657        visit_op_mut(self, node)
658    }
659    fn visit_order_by_expr_mut(&mut self, node: &'ast mut OrderByExpr<T>) {
660        visit_order_by_expr_mut(self, node)
661    }
662    fn visit_pg_config_option_mut(&mut self, node: &'ast mut PgConfigOption<T>) {
663        visit_pg_config_option_mut(self, node)
664    }
665    fn visit_pg_config_option_name_mut(&mut self, node: &'ast mut PgConfigOptionName) {
666        visit_pg_config_option_name_mut(self, node)
667    }
668    fn visit_prepare_statement_mut(&mut self, node: &'ast mut PrepareStatement<T>) {
669        visit_prepare_statement_mut(self, node)
670    }
671    fn visit_privilege_mut(&mut self, node: &'ast mut Privilege) {
672        visit_privilege_mut(self, node)
673    }
674    fn visit_privilege_specification_mut(&mut self, node: &'ast mut PrivilegeSpecification) {
675        visit_privilege_specification_mut(self, node)
676    }
677    fn visit_protobuf_schema_mut(&mut self, node: &'ast mut ProtobufSchema<T>) {
678        visit_protobuf_schema_mut(self, node)
679    }
680    fn visit_qualified_replica_mut(&mut self, node: &'ast mut QualifiedReplica) {
681        visit_qualified_replica_mut(self, node)
682    }
683    fn visit_query_mut(&mut self, node: &'ast mut Query<T>) {
684        visit_query_mut(self, node)
685    }
686    fn visit_raise_statement_mut(&mut self, node: &'ast mut RaiseStatement) {
687        visit_raise_statement_mut(self, node)
688    }
689    fn visit_reader_schema_selection_strategy_mut(&mut self, node: &'ast mut ReaderSchemaSelectionStrategy) {
690        visit_reader_schema_selection_strategy_mut(self, node)
691    }
692    fn visit_reassign_owned_statement_mut(&mut self, node: &'ast mut ReassignOwnedStatement<T>) {
693        visit_reassign_owned_statement_mut(self, node)
694    }
695    fn visit_refresh_at_option_value_mut(&mut self, node: &'ast mut RefreshAtOptionValue<T>) {
696        visit_refresh_at_option_value_mut(self, node)
697    }
698    fn visit_refresh_every_option_value_mut(&mut self, node: &'ast mut RefreshEveryOptionValue<T>) {
699        visit_refresh_every_option_value_mut(self, node)
700    }
701    fn visit_refresh_option_value_mut(&mut self, node: &'ast mut RefreshOptionValue<T>) {
702        visit_refresh_option_value_mut(self, node)
703    }
704    fn visit_replica_definition_mut(&mut self, node: &'ast mut ReplicaDefinition<T>) {
705        visit_replica_definition_mut(self, node)
706    }
707    fn visit_replica_option_mut(&mut self, node: &'ast mut ReplicaOption<T>) {
708        visit_replica_option_mut(self, node)
709    }
710    fn visit_replica_option_name_mut(&mut self, node: &'ast mut ReplicaOptionName) {
711        visit_replica_option_name_mut(self, node)
712    }
713    fn visit_reset_variable_statement_mut(&mut self, node: &'ast mut ResetVariableStatement) {
714        visit_reset_variable_statement_mut(self, node)
715    }
716    fn visit_revoke_privileges_statement_mut(&mut self, node: &'ast mut RevokePrivilegesStatement<T>) {
717        visit_revoke_privileges_statement_mut(self, node)
718    }
719    fn visit_revoke_role_statement_mut(&mut self, node: &'ast mut RevokeRoleStatement<T>) {
720        visit_revoke_role_statement_mut(self, node)
721    }
722    fn visit_role_attribute_mut(&mut self, node: &'ast mut RoleAttribute) {
723        visit_role_attribute_mut(self, node)
724    }
725    fn visit_rollback_statement_mut(&mut self, node: &'ast mut RollbackStatement) {
726        visit_rollback_statement_mut(self, node)
727    }
728    fn visit_schema_mut(&mut self, node: &'ast mut Schema) {
729        visit_schema_mut(self, node)
730    }
731    fn visit_select_mut(&mut self, node: &'ast mut Select<T>) {
732        visit_select_mut(self, node)
733    }
734    fn visit_select_item_mut(&mut self, node: &'ast mut SelectItem<T>) {
735        visit_select_item_mut(self, node)
736    }
737    fn visit_select_option_mut(&mut self, node: &'ast mut SelectOption<T>) {
738        visit_select_option_mut(self, node)
739    }
740    fn visit_select_option_name_mut(&mut self, node: &'ast mut SelectOptionName) {
741        visit_select_option_name_mut(self, node)
742    }
743    fn visit_select_statement_mut(&mut self, node: &'ast mut SelectStatement<T>) {
744        visit_select_statement_mut(self, node)
745    }
746    fn visit_set_expr_mut(&mut self, node: &'ast mut SetExpr<T>) {
747        visit_set_expr_mut(self, node)
748    }
749    fn visit_set_operator_mut(&mut self, node: &'ast mut SetOperator) {
750        visit_set_operator_mut(self, node)
751    }
752    fn visit_set_role_var_mut(&mut self, node: &'ast mut SetRoleVar) {
753        visit_set_role_var_mut(self, node)
754    }
755    fn visit_set_transaction_statement_mut(&mut self, node: &'ast mut SetTransactionStatement) {
756        visit_set_transaction_statement_mut(self, node)
757    }
758    fn visit_set_variable_statement_mut(&mut self, node: &'ast mut SetVariableStatement) {
759        visit_set_variable_statement_mut(self, node)
760    }
761    fn visit_set_variable_to_mut(&mut self, node: &'ast mut SetVariableTo) {
762        visit_set_variable_to_mut(self, node)
763    }
764    fn visit_set_variable_value_mut(&mut self, node: &'ast mut SetVariableValue) {
765        visit_set_variable_value_mut(self, node)
766    }
767    fn visit_show_columns_statement_mut(&mut self, node: &'ast mut ShowColumnsStatement<T>) {
768        visit_show_columns_statement_mut(self, node)
769    }
770    fn visit_show_create_cluster_statement_mut(&mut self, node: &'ast mut ShowCreateClusterStatement<T>) {
771        visit_show_create_cluster_statement_mut(self, node)
772    }
773    fn visit_show_create_connection_statement_mut(&mut self, node: &'ast mut ShowCreateConnectionStatement<T>) {
774        visit_show_create_connection_statement_mut(self, node)
775    }
776    fn visit_show_create_index_statement_mut(&mut self, node: &'ast mut ShowCreateIndexStatement<T>) {
777        visit_show_create_index_statement_mut(self, node)
778    }
779    fn visit_show_create_materialized_view_statement_mut(&mut self, node: &'ast mut ShowCreateMaterializedViewStatement<T>) {
780        visit_show_create_materialized_view_statement_mut(self, node)
781    }
782    fn visit_show_create_sink_statement_mut(&mut self, node: &'ast mut ShowCreateSinkStatement<T>) {
783        visit_show_create_sink_statement_mut(self, node)
784    }
785    fn visit_show_create_source_statement_mut(&mut self, node: &'ast mut ShowCreateSourceStatement<T>) {
786        visit_show_create_source_statement_mut(self, node)
787    }
788    fn visit_show_create_table_statement_mut(&mut self, node: &'ast mut ShowCreateTableStatement<T>) {
789        visit_show_create_table_statement_mut(self, node)
790    }
791    fn visit_show_create_type_statement_mut(&mut self, node: &'ast mut ShowCreateTypeStatement<T>) {
792        visit_show_create_type_statement_mut(self, node)
793    }
794    fn visit_show_create_view_statement_mut(&mut self, node: &'ast mut ShowCreateViewStatement<T>) {
795        visit_show_create_view_statement_mut(self, node)
796    }
797    fn visit_show_object_type_mut(&mut self, node: &'ast mut ShowObjectType<T>) {
798        visit_show_object_type_mut(self, node)
799    }
800    fn visit_show_objects_statement_mut(&mut self, node: &'ast mut ShowObjectsStatement<T>) {
801        visit_show_objects_statement_mut(self, node)
802    }
803    fn visit_show_statement_mut(&mut self, node: &'ast mut ShowStatement<T>) {
804        visit_show_statement_mut(self, node)
805    }
806    fn visit_show_statement_filter_mut(&mut self, node: &'ast mut ShowStatementFilter<T>) {
807        visit_show_statement_filter_mut(self, node)
808    }
809    fn visit_show_variable_statement_mut(&mut self, node: &'ast mut ShowVariableStatement) {
810        visit_show_variable_statement_mut(self, node)
811    }
812    fn visit_sink_envelope_mut(&mut self, node: &'ast mut SinkEnvelope) {
813        visit_sink_envelope_mut(self, node)
814    }
815    fn visit_sink_key_mut(&mut self, node: &'ast mut SinkKey) {
816        visit_sink_key_mut(self, node)
817    }
818    fn visit_source_envelope_mut(&mut self, node: &'ast mut SourceEnvelope) {
819        visit_source_envelope_mut(self, node)
820    }
821    fn visit_source_error_policy_mut(&mut self, node: &'ast mut SourceErrorPolicy) {
822        visit_source_error_policy_mut(self, node)
823    }
824    fn visit_source_include_metadata_mut(&mut self, node: &'ast mut SourceIncludeMetadata) {
825        visit_source_include_metadata_mut(self, node)
826    }
827    fn visit_sql_server_config_option_mut(&mut self, node: &'ast mut SqlServerConfigOption<T>) {
828        visit_sql_server_config_option_mut(self, node)
829    }
830    fn visit_sql_server_config_option_name_mut(&mut self, node: &'ast mut SqlServerConfigOptionName) {
831        visit_sql_server_config_option_name_mut(self, node)
832    }
833    fn visit_start_transaction_statement_mut(&mut self, node: &'ast mut StartTransactionStatement) {
834        visit_start_transaction_statement_mut(self, node)
835    }
836    fn visit_statement_mut(&mut self, node: &'ast mut Statement<T>) {
837        visit_statement_mut(self, node)
838    }
839    fn visit_subscribe_option_mut(&mut self, node: &'ast mut SubscribeOption<T>) {
840        visit_subscribe_option_mut(self, node)
841    }
842    fn visit_subscribe_option_name_mut(&mut self, node: &'ast mut SubscribeOptionName) {
843        visit_subscribe_option_name_mut(self, node)
844    }
845    fn visit_subscribe_output_mut(&mut self, node: &'ast mut SubscribeOutput<T>) {
846        visit_subscribe_output_mut(self, node)
847    }
848    fn visit_subscribe_relation_mut(&mut self, node: &'ast mut SubscribeRelation<T>) {
849        visit_subscribe_relation_mut(self, node)
850    }
851    fn visit_subscribe_statement_mut(&mut self, node: &'ast mut SubscribeStatement<T>) {
852        visit_subscribe_statement_mut(self, node)
853    }
854    fn visit_subscript_position_mut(&mut self, node: &'ast mut SubscriptPosition<T>) {
855        visit_subscript_position_mut(self, node)
856    }
857    fn visit_system_object_type_mut(&mut self, node: &'ast mut SystemObjectType) {
858        visit_system_object_type_mut(self, node)
859    }
860    fn visit_cluster_name_mut(&mut self, node: &'ast mut T::ClusterName) {
861        visit_cluster_name_mut(self, node)
862    }
863    fn visit_column_reference_mut(&mut self, node: &'ast mut T::ColumnReference) {
864        visit_column_reference_mut(self, node)
865    }
866    fn visit_cte_id_mut(&mut self, node: &'ast mut T::CteId) {
867        visit_cte_id_mut(self, node)
868    }
869    fn visit_data_type_mut(&mut self, node: &'ast mut T::DataType) {
870        visit_data_type_mut(self, node)
871    }
872    fn visit_database_name_mut(&mut self, node: &'ast mut T::DatabaseName) {
873        visit_database_name_mut(self, node)
874    }
875    fn visit_item_name_mut(&mut self, node: &'ast mut T::ItemName) {
876        visit_item_name_mut(self, node)
877    }
878    fn visit_nested_statement_mut(&mut self, node: &'ast mut T::NestedStatement) {
879        visit_nested_statement_mut(self, node)
880    }
881    fn visit_network_policy_name_mut(&mut self, node: &'ast mut T::NetworkPolicyName) {
882        visit_network_policy_name_mut(self, node)
883    }
884    fn visit_object_name_mut(&mut self, node: &'ast mut T::ObjectName) {
885        visit_object_name_mut(self, node)
886    }
887    fn visit_role_name_mut(&mut self, node: &'ast mut T::RoleName) {
888        visit_role_name_mut(self, node)
889    }
890    fn visit_schema_name_mut(&mut self, node: &'ast mut T::SchemaName) {
891        visit_schema_name_mut(self, node)
892    }
893    fn visit_table_alias_mut(&mut self, node: &'ast mut TableAlias) {
894        visit_table_alias_mut(self, node)
895    }
896    fn visit_table_constraint_mut(&mut self, node: &'ast mut TableConstraint<T>) {
897        visit_table_constraint_mut(self, node)
898    }
899    fn visit_table_factor_mut(&mut self, node: &'ast mut TableFactor<T>) {
900        visit_table_factor_mut(self, node)
901    }
902    fn visit_table_from_source_columns_mut(&mut self, node: &'ast mut TableFromSourceColumns<T>) {
903        visit_table_from_source_columns_mut(self, node)
904    }
905    fn visit_table_from_source_option_mut(&mut self, node: &'ast mut TableFromSourceOption<T>) {
906        visit_table_from_source_option_mut(self, node)
907    }
908    fn visit_table_from_source_option_name_mut(&mut self, node: &'ast mut TableFromSourceOptionName) {
909        visit_table_from_source_option_name_mut(self, node)
910    }
911    fn visit_table_option_mut(&mut self, node: &'ast mut TableOption<T>) {
912        visit_table_option_mut(self, node)
913    }
914    fn visit_table_option_name_mut(&mut self, node: &'ast mut TableOptionName) {
915        visit_table_option_name_mut(self, node)
916    }
917    fn visit_table_with_joins_mut(&mut self, node: &'ast mut TableWithJoins<T>) {
918        visit_table_with_joins_mut(self, node)
919    }
920    fn visit_target_role_specification_mut(&mut self, node: &'ast mut TargetRoleSpecification<T>) {
921        visit_target_role_specification_mut(self, node)
922    }
923    fn visit_transaction_access_mode_mut(&mut self, node: &'ast mut TransactionAccessMode) {
924        visit_transaction_access_mode_mut(self, node)
925    }
926    fn visit_transaction_isolation_level_mut(&mut self, node: &'ast mut TransactionIsolationLevel) {
927        visit_transaction_isolation_level_mut(self, node)
928    }
929    fn visit_transaction_mode_mut(&mut self, node: &'ast mut TransactionMode) {
930        visit_transaction_mode_mut(self, node)
931    }
932    fn visit_unresolved_database_name_mut(&mut self, node: &'ast mut UnresolvedDatabaseName) {
933        visit_unresolved_database_name_mut(self, node)
934    }
935    fn visit_unresolved_item_name_mut(&mut self, node: &'ast mut UnresolvedItemName) {
936        visit_unresolved_item_name_mut(self, node)
937    }
938    fn visit_unresolved_object_name_mut(&mut self, node: &'ast mut UnresolvedObjectName) {
939        visit_unresolved_object_name_mut(self, node)
940    }
941    fn visit_unresolved_schema_name_mut(&mut self, node: &'ast mut UnresolvedSchemaName) {
942        visit_unresolved_schema_name_mut(self, node)
943    }
944    fn visit_update_statement_mut(&mut self, node: &'ast mut UpdateStatement<T>) {
945        visit_update_statement_mut(self, node)
946    }
947    fn visit_validate_connection_statement_mut(&mut self, node: &'ast mut ValidateConnectionStatement<T>) {
948        visit_validate_connection_statement_mut(self, node)
949    }
950    fn visit_value_mut(&mut self, node: &'ast mut Value) {
951        visit_value_mut(self, node)
952    }
953    fn visit_value_error_mut(&mut self, node: &'ast mut ValueError) {
954        visit_value_error_mut(self, node)
955    }
956    fn visit_values_mut(&mut self, node: &'ast mut Values<T>) {
957        visit_values_mut(self, node)
958    }
959    fn visit_version_mut(&mut self, node: &'ast mut Version) {
960        visit_version_mut(self, node)
961    }
962    fn visit_view_definition_mut(&mut self, node: &'ast mut ViewDefinition<T>) {
963        visit_view_definition_mut(self, node)
964    }
965    fn visit_window_frame_mut(&mut self, node: &'ast mut WindowFrame) {
966        visit_window_frame_mut(self, node)
967    }
968    fn visit_window_frame_bound_mut(&mut self, node: &'ast mut WindowFrameBound) {
969        visit_window_frame_bound_mut(self, node)
970    }
971    fn visit_window_frame_units_mut(&mut self, node: &'ast mut WindowFrameUnits) {
972        visit_window_frame_units_mut(self, node)
973    }
974    fn visit_window_spec_mut(&mut self, node: &'ast mut WindowSpec<T>) {
975        visit_window_spec_mut(self, node)
976    }
977    fn visit_with_option_value_mut(&mut self, node: &'ast mut WithOptionValue<T>) {
978        visit_with_option_value_mut(self, node)
979    }
980}
981pub trait VisitMutNode<'ast, T: AstInfo, > {
982    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V);
983}
984impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AbbreviatedGrantOrRevokeStatement<T> {
985    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
986        visitor.visit_abbreviated_grant_or_revoke_statement_mut(self)
987    }
988}
989#[allow(clippy::needless_pass_by_ref_mut)]
990pub fn visit_abbreviated_grant_or_revoke_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AbbreviatedGrantOrRevokeStatement<T>)
991where
992    V: VisitMut<'ast, T, > + ?Sized,
993{
994    match node {
995        AbbreviatedGrantOrRevokeStatement::Grant {
996            0: binding0,
997        } => {
998            visitor.visit_abbreviated_grant_statement_mut(binding0);
999        }
1000        AbbreviatedGrantOrRevokeStatement::Revoke {
1001            0: binding0,
1002        } => {
1003            visitor.visit_abbreviated_revoke_statement_mut(binding0);
1004        }
1005    }
1006}
1007impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AbbreviatedGrantStatement<T> {
1008    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1009        visitor.visit_abbreviated_grant_statement_mut(self)
1010    }
1011}
1012#[allow(clippy::needless_pass_by_ref_mut)]
1013pub fn visit_abbreviated_grant_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AbbreviatedGrantStatement<T>)
1014where
1015    V: VisitMut<'ast, T, > + ?Sized,
1016{
1017    visitor.visit_privilege_specification_mut(&mut node.privileges);
1018    visitor.visit_object_type_mut(&mut node.object_type);
1019    for v in &mut node.grantees {
1020        visitor.visit_role_name_mut(v);
1021    }
1022}
1023impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AbbreviatedRevokeStatement<T> {
1024    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1025        visitor.visit_abbreviated_revoke_statement_mut(self)
1026    }
1027}
1028#[allow(clippy::needless_pass_by_ref_mut)]
1029pub fn visit_abbreviated_revoke_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AbbreviatedRevokeStatement<T>)
1030where
1031    V: VisitMut<'ast, T, > + ?Sized,
1032{
1033    visitor.visit_privilege_specification_mut(&mut node.privileges);
1034    visitor.visit_object_type_mut(&mut node.object_type);
1035    for v in &mut node.revokees {
1036        visitor.visit_role_name_mut(v);
1037    }
1038}
1039impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterClusterAction<T> {
1040    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1041        visitor.visit_alter_cluster_action_mut(self)
1042    }
1043}
1044#[allow(clippy::needless_pass_by_ref_mut)]
1045pub fn visit_alter_cluster_action_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterClusterAction<T>)
1046where
1047    V: VisitMut<'ast, T, > + ?Sized,
1048{
1049    match node {
1050        AlterClusterAction::SetOptions {
1051            options: binding0,
1052            with_options: binding1,
1053        } => {
1054            for v in binding0 {
1055                visitor.visit_cluster_option_mut(v);
1056            }
1057            for v in binding1 {
1058                visitor.visit_cluster_alter_option_mut(v);
1059            }
1060        }
1061        AlterClusterAction::ResetOptions {
1062            0: binding0,
1063        } => {
1064            for v in binding0 {
1065                visitor.visit_cluster_option_name_mut(v);
1066            }
1067        }
1068    }
1069}
1070impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterClusterStatement<T> {
1071    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1072        visitor.visit_alter_cluster_statement_mut(self)
1073    }
1074}
1075#[allow(clippy::needless_pass_by_ref_mut)]
1076pub fn visit_alter_cluster_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterClusterStatement<T>)
1077where
1078    V: VisitMut<'ast, T, > + ?Sized,
1079{
1080    visitor.visit_ident_mut(&mut node.name);
1081    visitor.visit_alter_cluster_action_mut(&mut node.action);
1082}
1083impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterConnectionAction<T> {
1084    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1085        visitor.visit_alter_connection_action_mut(self)
1086    }
1087}
1088#[allow(clippy::needless_pass_by_ref_mut)]
1089pub fn visit_alter_connection_action_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterConnectionAction<T>)
1090where
1091    V: VisitMut<'ast, T, > + ?Sized,
1092{
1093    match node {
1094        AlterConnectionAction::RotateKeys {
1095        } => {
1096        }
1097        AlterConnectionAction::SetOption {
1098            0: binding0,
1099        } => {
1100            visitor.visit_connection_option_mut(binding0);
1101        }
1102        AlterConnectionAction::DropOption {
1103            0: binding0,
1104        } => {
1105            visitor.visit_connection_option_name_mut(binding0);
1106        }
1107    }
1108}
1109impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterConnectionOption<T> {
1110    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1111        visitor.visit_alter_connection_option_mut(self)
1112    }
1113}
1114#[allow(clippy::needless_pass_by_ref_mut)]
1115pub fn visit_alter_connection_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterConnectionOption<T>)
1116where
1117    V: VisitMut<'ast, T, > + ?Sized,
1118{
1119    visitor.visit_alter_connection_option_name_mut(&mut node.name);
1120    if let Some(v) = &mut node.value {
1121        visitor.visit_with_option_value_mut(v);
1122    }
1123}
1124impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterConnectionOptionName {
1125    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1126        visitor.visit_alter_connection_option_name_mut(self)
1127    }
1128}
1129#[allow(clippy::needless_pass_by_ref_mut)]
1130pub fn visit_alter_connection_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterConnectionOptionName)
1131where
1132    V: VisitMut<'ast, T, > + ?Sized,
1133{
1134    match node {
1135        AlterConnectionOptionName::Validate {
1136        } => {
1137        }
1138    }
1139}
1140impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterConnectionStatement<T> {
1141    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1142        visitor.visit_alter_connection_statement_mut(self)
1143    }
1144}
1145#[allow(clippy::needless_pass_by_ref_mut)]
1146pub fn visit_alter_connection_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterConnectionStatement<T>)
1147where
1148    V: VisitMut<'ast, T, > + ?Sized,
1149{
1150    visitor.visit_unresolved_item_name_mut(&mut node.name);
1151    for v in &mut node.actions {
1152        visitor.visit_alter_connection_action_mut(v);
1153    }
1154    for v in &mut node.with_options {
1155        visitor.visit_alter_connection_option_mut(v);
1156    }
1157}
1158impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterDefaultPrivilegesStatement<T> {
1159    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1160        visitor.visit_alter_default_privileges_statement_mut(self)
1161    }
1162}
1163#[allow(clippy::needless_pass_by_ref_mut)]
1164pub fn visit_alter_default_privileges_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterDefaultPrivilegesStatement<T>)
1165where
1166    V: VisitMut<'ast, T, > + ?Sized,
1167{
1168    visitor.visit_target_role_specification_mut(&mut node.target_roles);
1169    visitor.visit_grant_target_all_specification_mut(&mut node.target_objects);
1170    visitor.visit_abbreviated_grant_or_revoke_statement_mut(&mut node.grant_or_revoke);
1171}
1172impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterIndexAction<T> {
1173    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1174        visitor.visit_alter_index_action_mut(self)
1175    }
1176}
1177#[allow(clippy::needless_pass_by_ref_mut)]
1178pub fn visit_alter_index_action_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterIndexAction<T>)
1179where
1180    V: VisitMut<'ast, T, > + ?Sized,
1181{
1182    match node {
1183        AlterIndexAction::SetOptions {
1184            0: binding0,
1185        } => {
1186            for v in binding0 {
1187                visitor.visit_index_option_mut(v);
1188            }
1189        }
1190        AlterIndexAction::ResetOptions {
1191            0: binding0,
1192        } => {
1193            for v in binding0 {
1194                visitor.visit_index_option_name_mut(v);
1195            }
1196        }
1197    }
1198}
1199impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterIndexStatement<T> {
1200    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1201        visitor.visit_alter_index_statement_mut(self)
1202    }
1203}
1204#[allow(clippy::needless_pass_by_ref_mut)]
1205pub fn visit_alter_index_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterIndexStatement<T>)
1206where
1207    V: VisitMut<'ast, T, > + ?Sized,
1208{
1209    visitor.visit_unresolved_item_name_mut(&mut node.index_name);
1210    visitor.visit_alter_index_action_mut(&mut node.action);
1211}
1212impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterMaterializedViewApplyReplacementStatement {
1213    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1214        visitor.visit_alter_materialized_view_apply_replacement_statement_mut(self)
1215    }
1216}
1217#[allow(clippy::needless_pass_by_ref_mut)]
1218pub fn visit_alter_materialized_view_apply_replacement_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterMaterializedViewApplyReplacementStatement)
1219where
1220    V: VisitMut<'ast, T, > + ?Sized,
1221{
1222    visitor.visit_unresolved_item_name_mut(&mut node.name);
1223    visitor.visit_unresolved_item_name_mut(&mut node.replacement_name);
1224}
1225impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterNetworkPolicyStatement<T> {
1226    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1227        visitor.visit_alter_network_policy_statement_mut(self)
1228    }
1229}
1230#[allow(clippy::needless_pass_by_ref_mut)]
1231pub fn visit_alter_network_policy_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterNetworkPolicyStatement<T>)
1232where
1233    V: VisitMut<'ast, T, > + ?Sized,
1234{
1235    visitor.visit_ident_mut(&mut node.name);
1236    for v in &mut node.options {
1237        visitor.visit_network_policy_option_mut(v);
1238    }
1239}
1240impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterObjectRenameStatement {
1241    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1242        visitor.visit_alter_object_rename_statement_mut(self)
1243    }
1244}
1245#[allow(clippy::needless_pass_by_ref_mut)]
1246pub fn visit_alter_object_rename_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterObjectRenameStatement)
1247where
1248    V: VisitMut<'ast, T, > + ?Sized,
1249{
1250    visitor.visit_object_type_mut(&mut node.object_type);
1251    visitor.visit_unresolved_object_name_mut(&mut node.name);
1252    visitor.visit_ident_mut(&mut node.to_item_name);
1253}
1254impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterObjectSwapStatement {
1255    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1256        visitor.visit_alter_object_swap_statement_mut(self)
1257    }
1258}
1259#[allow(clippy::needless_pass_by_ref_mut)]
1260pub fn visit_alter_object_swap_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterObjectSwapStatement)
1261where
1262    V: VisitMut<'ast, T, > + ?Sized,
1263{
1264    visitor.visit_object_type_mut(&mut node.object_type);
1265    visitor.visit_unresolved_object_name_mut(&mut node.name_a);
1266    visitor.visit_ident_mut(&mut node.name_b);
1267}
1268impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterOwnerStatement<T> {
1269    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1270        visitor.visit_alter_owner_statement_mut(self)
1271    }
1272}
1273#[allow(clippy::needless_pass_by_ref_mut)]
1274pub fn visit_alter_owner_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterOwnerStatement<T>)
1275where
1276    V: VisitMut<'ast, T, > + ?Sized,
1277{
1278    visitor.visit_object_type_mut(&mut node.object_type);
1279    visitor.visit_unresolved_object_name_mut(&mut node.name);
1280    visitor.visit_role_name_mut(&mut node.new_owner);
1281}
1282impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterRetainHistoryStatement<T> {
1283    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1284        visitor.visit_alter_retain_history_statement_mut(self)
1285    }
1286}
1287#[allow(clippy::needless_pass_by_ref_mut)]
1288pub fn visit_alter_retain_history_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterRetainHistoryStatement<T>)
1289where
1290    V: VisitMut<'ast, T, > + ?Sized,
1291{
1292    visitor.visit_object_type_mut(&mut node.object_type);
1293    visitor.visit_unresolved_object_name_mut(&mut node.name);
1294    if let Some(v) = &mut node.history {
1295        visitor.visit_with_option_value_mut(v);
1296    }
1297}
1298impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterRoleOption {
1299    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1300        visitor.visit_alter_role_option_mut(self)
1301    }
1302}
1303#[allow(clippy::needless_pass_by_ref_mut)]
1304pub fn visit_alter_role_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterRoleOption)
1305where
1306    V: VisitMut<'ast, T, > + ?Sized,
1307{
1308    match node {
1309        AlterRoleOption::Attributes {
1310            0: binding0,
1311        } => {
1312            for v in binding0 {
1313                visitor.visit_role_attribute_mut(v);
1314            }
1315        }
1316        AlterRoleOption::Variable {
1317            0: binding0,
1318        } => {
1319            visitor.visit_set_role_var_mut(binding0);
1320        }
1321    }
1322}
1323impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterRoleStatement<T> {
1324    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1325        visitor.visit_alter_role_statement_mut(self)
1326    }
1327}
1328#[allow(clippy::needless_pass_by_ref_mut)]
1329pub fn visit_alter_role_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterRoleStatement<T>)
1330where
1331    V: VisitMut<'ast, T, > + ?Sized,
1332{
1333    visitor.visit_role_name_mut(&mut node.name);
1334    visitor.visit_alter_role_option_mut(&mut node.option);
1335}
1336impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSecretStatement<T> {
1337    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1338        visitor.visit_alter_secret_statement_mut(self)
1339    }
1340}
1341#[allow(clippy::needless_pass_by_ref_mut)]
1342pub fn visit_alter_secret_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSecretStatement<T>)
1343where
1344    V: VisitMut<'ast, T, > + ?Sized,
1345{
1346    visitor.visit_unresolved_item_name_mut(&mut node.name);
1347    visitor.visit_expr_mut(&mut node.value);
1348}
1349impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSetClusterStatement<T> {
1350    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1351        visitor.visit_alter_set_cluster_statement_mut(self)
1352    }
1353}
1354#[allow(clippy::needless_pass_by_ref_mut)]
1355pub fn visit_alter_set_cluster_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSetClusterStatement<T>)
1356where
1357    V: VisitMut<'ast, T, > + ?Sized,
1358{
1359    visitor.visit_unresolved_item_name_mut(&mut node.name);
1360    visitor.visit_object_type_mut(&mut node.object_type);
1361    visitor.visit_cluster_name_mut(&mut node.set_cluster);
1362}
1363impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSinkAction<T> {
1364    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1365        visitor.visit_alter_sink_action_mut(self)
1366    }
1367}
1368#[allow(clippy::needless_pass_by_ref_mut)]
1369pub fn visit_alter_sink_action_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSinkAction<T>)
1370where
1371    V: VisitMut<'ast, T, > + ?Sized,
1372{
1373    match node {
1374        AlterSinkAction::SetOptions {
1375            0: binding0,
1376        } => {
1377            for v in binding0 {
1378                visitor.visit_create_sink_option_mut(v);
1379            }
1380        }
1381        AlterSinkAction::ResetOptions {
1382            0: binding0,
1383        } => {
1384            for v in binding0 {
1385                visitor.visit_create_sink_option_name_mut(v);
1386            }
1387        }
1388        AlterSinkAction::ChangeRelation {
1389            0: binding0,
1390        } => {
1391            visitor.visit_item_name_mut(binding0);
1392        }
1393    }
1394}
1395impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSinkStatement<T> {
1396    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1397        visitor.visit_alter_sink_statement_mut(self)
1398    }
1399}
1400#[allow(clippy::needless_pass_by_ref_mut)]
1401pub fn visit_alter_sink_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSinkStatement<T>)
1402where
1403    V: VisitMut<'ast, T, > + ?Sized,
1404{
1405    visitor.visit_unresolved_item_name_mut(&mut node.sink_name);
1406    visitor.visit_alter_sink_action_mut(&mut node.action);
1407}
1408impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSourceAction<T> {
1409    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1410        visitor.visit_alter_source_action_mut(self)
1411    }
1412}
1413#[allow(clippy::needless_pass_by_ref_mut)]
1414pub fn visit_alter_source_action_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSourceAction<T>)
1415where
1416    V: VisitMut<'ast, T, > + ?Sized,
1417{
1418    match node {
1419        AlterSourceAction::SetOptions {
1420            0: binding0,
1421        } => {
1422            for v in binding0 {
1423                visitor.visit_create_source_option_mut(v);
1424            }
1425        }
1426        AlterSourceAction::ResetOptions {
1427            0: binding0,
1428        } => {
1429            for v in binding0 {
1430                visitor.visit_create_source_option_name_mut(v);
1431            }
1432        }
1433        AlterSourceAction::AddSubsources {
1434            external_references: binding0,
1435            options: binding1,
1436        } => {
1437            for v in binding0 {
1438                visitor.visit_external_reference_export_mut(v);
1439            }
1440            for v in binding1 {
1441                visitor.visit_alter_source_add_subsource_option_mut(v);
1442            }
1443        }
1444        AlterSourceAction::DropSubsources {
1445            if_exists: binding0,
1446            cascade: binding1,
1447            names: binding2,
1448        } => {
1449            for v in binding2 {
1450                visitor.visit_unresolved_item_name_mut(v);
1451            }
1452        }
1453        AlterSourceAction::RefreshReferences {
1454        } => {
1455        }
1456    }
1457}
1458impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSourceAddSubsourceOption<T> {
1459    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1460        visitor.visit_alter_source_add_subsource_option_mut(self)
1461    }
1462}
1463#[allow(clippy::needless_pass_by_ref_mut)]
1464pub fn visit_alter_source_add_subsource_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSourceAddSubsourceOption<T>)
1465where
1466    V: VisitMut<'ast, T, > + ?Sized,
1467{
1468    visitor.visit_alter_source_add_subsource_option_name_mut(&mut node.name);
1469    if let Some(v) = &mut node.value {
1470        visitor.visit_with_option_value_mut(v);
1471    }
1472}
1473impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSourceAddSubsourceOptionName {
1474    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1475        visitor.visit_alter_source_add_subsource_option_name_mut(self)
1476    }
1477}
1478#[allow(clippy::needless_pass_by_ref_mut)]
1479pub fn visit_alter_source_add_subsource_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSourceAddSubsourceOptionName)
1480where
1481    V: VisitMut<'ast, T, > + ?Sized,
1482{
1483    match node {
1484        AlterSourceAddSubsourceOptionName::TextColumns {
1485        } => {
1486        }
1487        AlterSourceAddSubsourceOptionName::ExcludeColumns {
1488        } => {
1489        }
1490        AlterSourceAddSubsourceOptionName::Details {
1491        } => {
1492        }
1493    }
1494}
1495impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSourceStatement<T> {
1496    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1497        visitor.visit_alter_source_statement_mut(self)
1498    }
1499}
1500#[allow(clippy::needless_pass_by_ref_mut)]
1501pub fn visit_alter_source_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSourceStatement<T>)
1502where
1503    V: VisitMut<'ast, T, > + ?Sized,
1504{
1505    visitor.visit_unresolved_item_name_mut(&mut node.source_name);
1506    visitor.visit_alter_source_action_mut(&mut node.action);
1507}
1508impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSystemResetAllStatement {
1509    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1510        visitor.visit_alter_system_reset_all_statement_mut(self)
1511    }
1512}
1513#[allow(clippy::needless_pass_by_ref_mut)]
1514pub fn visit_alter_system_reset_all_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSystemResetAllStatement)
1515where
1516    V: VisitMut<'ast, T, > + ?Sized,
1517{
1518}
1519impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSystemResetStatement {
1520    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1521        visitor.visit_alter_system_reset_statement_mut(self)
1522    }
1523}
1524#[allow(clippy::needless_pass_by_ref_mut)]
1525pub fn visit_alter_system_reset_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSystemResetStatement)
1526where
1527    V: VisitMut<'ast, T, > + ?Sized,
1528{
1529    visitor.visit_ident_mut(&mut node.name);
1530}
1531impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterSystemSetStatement {
1532    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1533        visitor.visit_alter_system_set_statement_mut(self)
1534    }
1535}
1536#[allow(clippy::needless_pass_by_ref_mut)]
1537pub fn visit_alter_system_set_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterSystemSetStatement)
1538where
1539    V: VisitMut<'ast, T, > + ?Sized,
1540{
1541    visitor.visit_ident_mut(&mut node.name);
1542    visitor.visit_set_variable_to_mut(&mut node.to);
1543}
1544impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AlterTableAddColumnStatement<T> {
1545    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1546        visitor.visit_alter_table_add_column_statement_mut(self)
1547    }
1548}
1549#[allow(clippy::needless_pass_by_ref_mut)]
1550pub fn visit_alter_table_add_column_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AlterTableAddColumnStatement<T>)
1551where
1552    V: VisitMut<'ast, T, > + ?Sized,
1553{
1554    visitor.visit_unresolved_item_name_mut(&mut node.name);
1555    visitor.visit_ident_mut(&mut node.column_name);
1556    visitor.visit_data_type_mut(&mut node.data_type);
1557}
1558impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AsOf<T> {
1559    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1560        visitor.visit_as_of_mut(self)
1561    }
1562}
1563#[allow(clippy::needless_pass_by_ref_mut)]
1564pub fn visit_as_of_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AsOf<T>)
1565where
1566    V: VisitMut<'ast, T, > + ?Sized,
1567{
1568    match node {
1569        AsOf::At {
1570            0: binding0,
1571        } => {
1572            visitor.visit_expr_mut(binding0);
1573        }
1574        AsOf::AtLeast {
1575            0: binding0,
1576        } => {
1577            visitor.visit_expr_mut(binding0);
1578        }
1579    }
1580}
1581impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Assignment<T> {
1582    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1583        visitor.visit_assignment_mut(self)
1584    }
1585}
1586#[allow(clippy::needless_pass_by_ref_mut)]
1587pub fn visit_assignment_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Assignment<T>)
1588where
1589    V: VisitMut<'ast, T, > + ?Sized,
1590{
1591    visitor.visit_ident_mut(&mut node.id);
1592    visitor.visit_expr_mut(&mut node.value);
1593}
1594impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AvroDocOn<T> {
1595    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1596        visitor.visit_avro_doc_on_mut(self)
1597    }
1598}
1599#[allow(clippy::needless_pass_by_ref_mut)]
1600pub fn visit_avro_doc_on_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AvroDocOn<T>)
1601where
1602    V: VisitMut<'ast, T, > + ?Sized,
1603{
1604    visitor.visit_doc_on_identifier_mut(&mut node.identifier);
1605    visitor.visit_doc_on_schema_mut(&mut node.for_schema);
1606}
1607impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AvroSchema<T> {
1608    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1609        visitor.visit_avro_schema_mut(self)
1610    }
1611}
1612#[allow(clippy::needless_pass_by_ref_mut)]
1613pub fn visit_avro_schema_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AvroSchema<T>)
1614where
1615    V: VisitMut<'ast, T, > + ?Sized,
1616{
1617    match node {
1618        AvroSchema::Csr {
1619            csr_connection: binding0,
1620        } => {
1621            visitor.visit_csr_connection_avro_mut(binding0);
1622        }
1623        AvroSchema::InlineSchema {
1624            schema: binding0,
1625            with_options: binding1,
1626        } => {
1627            visitor.visit_schema_mut(binding0);
1628            for v in binding1 {
1629                visitor.visit_avro_schema_option_mut(v);
1630            }
1631        }
1632    }
1633}
1634impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AvroSchemaOption<T> {
1635    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1636        visitor.visit_avro_schema_option_mut(self)
1637    }
1638}
1639#[allow(clippy::needless_pass_by_ref_mut)]
1640pub fn visit_avro_schema_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AvroSchemaOption<T>)
1641where
1642    V: VisitMut<'ast, T, > + ?Sized,
1643{
1644    visitor.visit_avro_schema_option_name_mut(&mut node.name);
1645    if let Some(v) = &mut node.value {
1646        visitor.visit_with_option_value_mut(v);
1647    }
1648}
1649impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for AvroSchemaOptionName {
1650    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1651        visitor.visit_avro_schema_option_name_mut(self)
1652    }
1653}
1654#[allow(clippy::needless_pass_by_ref_mut)]
1655pub fn visit_avro_schema_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut AvroSchemaOptionName)
1656where
1657    V: VisitMut<'ast, T, > + ?Sized,
1658{
1659    match node {
1660        AvroSchemaOptionName::ConfluentWireFormat {
1661        } => {
1662        }
1663    }
1664}
1665impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CatalogName {
1666    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1667        visitor.visit_catalog_name_mut(self)
1668    }
1669}
1670#[allow(clippy::needless_pass_by_ref_mut)]
1671pub fn visit_catalog_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CatalogName)
1672where
1673    V: VisitMut<'ast, T, > + ?Sized,
1674{
1675    match node {
1676        CatalogName::ItemName {
1677            0: binding0,
1678        } => {
1679            for v in binding0 {
1680                visitor.visit_ident_mut(v);
1681            }
1682        }
1683        CatalogName::FuncName {
1684            0: binding0,
1685        } => {
1686            for v in binding0 {
1687                visitor.visit_ident_mut(v);
1688            }
1689        }
1690    }
1691}
1692impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CloseStatement {
1693    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1694        visitor.visit_close_statement_mut(self)
1695    }
1696}
1697#[allow(clippy::needless_pass_by_ref_mut)]
1698pub fn visit_close_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CloseStatement)
1699where
1700    V: VisitMut<'ast, T, > + ?Sized,
1701{
1702    visitor.visit_ident_mut(&mut node.name);
1703}
1704impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterAlterOption<T> {
1705    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1706        visitor.visit_cluster_alter_option_mut(self)
1707    }
1708}
1709#[allow(clippy::needless_pass_by_ref_mut)]
1710pub fn visit_cluster_alter_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterAlterOption<T>)
1711where
1712    V: VisitMut<'ast, T, > + ?Sized,
1713{
1714    visitor.visit_cluster_alter_option_name_mut(&mut node.name);
1715    if let Some(v) = &mut node.value {
1716        visitor.visit_with_option_value_mut(v);
1717    }
1718}
1719impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterAlterOptionName {
1720    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1721        visitor.visit_cluster_alter_option_name_mut(self)
1722    }
1723}
1724#[allow(clippy::needless_pass_by_ref_mut)]
1725pub fn visit_cluster_alter_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterAlterOptionName)
1726where
1727    V: VisitMut<'ast, T, > + ?Sized,
1728{
1729    match node {
1730        ClusterAlterOptionName::Wait {
1731        } => {
1732        }
1733    }
1734}
1735impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterAlterOptionValue<T> {
1736    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1737        visitor.visit_cluster_alter_option_value_mut(self)
1738    }
1739}
1740#[allow(clippy::needless_pass_by_ref_mut)]
1741pub fn visit_cluster_alter_option_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterAlterOptionValue<T>)
1742where
1743    V: VisitMut<'ast, T, > + ?Sized,
1744{
1745    match node {
1746        ClusterAlterOptionValue::For {
1747            0: binding0,
1748        } => {
1749            visitor.visit_value_mut(binding0);
1750        }
1751        ClusterAlterOptionValue::UntilReady {
1752            0: binding0,
1753        } => {
1754            for v in binding0 {
1755                visitor.visit_cluster_alter_until_ready_option_mut(v);
1756            }
1757        }
1758    }
1759}
1760impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterAlterUntilReadyOption<T> {
1761    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1762        visitor.visit_cluster_alter_until_ready_option_mut(self)
1763    }
1764}
1765#[allow(clippy::needless_pass_by_ref_mut)]
1766pub fn visit_cluster_alter_until_ready_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterAlterUntilReadyOption<T>)
1767where
1768    V: VisitMut<'ast, T, > + ?Sized,
1769{
1770    visitor.visit_cluster_alter_until_ready_option_name_mut(&mut node.name);
1771    if let Some(v) = &mut node.value {
1772        visitor.visit_with_option_value_mut(v);
1773    }
1774}
1775impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterAlterUntilReadyOptionName {
1776    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1777        visitor.visit_cluster_alter_until_ready_option_name_mut(self)
1778    }
1779}
1780#[allow(clippy::needless_pass_by_ref_mut)]
1781pub fn visit_cluster_alter_until_ready_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterAlterUntilReadyOptionName)
1782where
1783    V: VisitMut<'ast, T, > + ?Sized,
1784{
1785    match node {
1786        ClusterAlterUntilReadyOptionName::Timeout {
1787        } => {
1788        }
1789        ClusterAlterUntilReadyOptionName::OnTimeout {
1790        } => {
1791        }
1792    }
1793}
1794impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterFeature<T> {
1795    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1796        visitor.visit_cluster_feature_mut(self)
1797    }
1798}
1799#[allow(clippy::needless_pass_by_ref_mut)]
1800pub fn visit_cluster_feature_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterFeature<T>)
1801where
1802    V: VisitMut<'ast, T, > + ?Sized,
1803{
1804    visitor.visit_cluster_feature_name_mut(&mut node.name);
1805    if let Some(v) = &mut node.value {
1806        visitor.visit_with_option_value_mut(v);
1807    }
1808}
1809impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterFeatureName {
1810    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1811        visitor.visit_cluster_feature_name_mut(self)
1812    }
1813}
1814#[allow(clippy::needless_pass_by_ref_mut)]
1815pub fn visit_cluster_feature_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterFeatureName)
1816where
1817    V: VisitMut<'ast, T, > + ?Sized,
1818{
1819    match node {
1820        ClusterFeatureName::ReoptimizeImportedViews {
1821        } => {
1822        }
1823        ClusterFeatureName::EnableNewOuterJoinLowering {
1824        } => {
1825        }
1826        ClusterFeatureName::EnableEagerDeltaJoins {
1827        } => {
1828        }
1829        ClusterFeatureName::EnableVariadicLeftJoinLowering {
1830        } => {
1831        }
1832        ClusterFeatureName::EnableLetrecFixpointAnalysis {
1833        } => {
1834        }
1835        ClusterFeatureName::EnableJoinPrioritizeArranged {
1836        } => {
1837        }
1838        ClusterFeatureName::EnableProjectionPushdownAfterRelationCse {
1839        } => {
1840        }
1841    }
1842}
1843impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterOption<T> {
1844    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1845        visitor.visit_cluster_option_mut(self)
1846    }
1847}
1848#[allow(clippy::needless_pass_by_ref_mut)]
1849pub fn visit_cluster_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterOption<T>)
1850where
1851    V: VisitMut<'ast, T, > + ?Sized,
1852{
1853    visitor.visit_cluster_option_name_mut(&mut node.name);
1854    if let Some(v) = &mut node.value {
1855        visitor.visit_with_option_value_mut(v);
1856    }
1857}
1858impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterOptionName {
1859    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1860        visitor.visit_cluster_option_name_mut(self)
1861    }
1862}
1863#[allow(clippy::needless_pass_by_ref_mut)]
1864pub fn visit_cluster_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterOptionName)
1865where
1866    V: VisitMut<'ast, T, > + ?Sized,
1867{
1868    match node {
1869        ClusterOptionName::AvailabilityZones {
1870        } => {
1871        }
1872        ClusterOptionName::Disk {
1873        } => {
1874        }
1875        ClusterOptionName::IntrospectionInterval {
1876        } => {
1877        }
1878        ClusterOptionName::IntrospectionDebugging {
1879        } => {
1880        }
1881        ClusterOptionName::Managed {
1882        } => {
1883        }
1884        ClusterOptionName::Replicas {
1885        } => {
1886        }
1887        ClusterOptionName::ReplicationFactor {
1888        } => {
1889        }
1890        ClusterOptionName::Size {
1891        } => {
1892        }
1893        ClusterOptionName::Schedule {
1894        } => {
1895        }
1896        ClusterOptionName::WorkloadClass {
1897        } => {
1898        }
1899    }
1900}
1901impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ClusterScheduleOptionValue {
1902    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1903        visitor.visit_cluster_schedule_option_value_mut(self)
1904    }
1905}
1906#[allow(clippy::needless_pass_by_ref_mut)]
1907pub fn visit_cluster_schedule_option_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ClusterScheduleOptionValue)
1908where
1909    V: VisitMut<'ast, T, > + ?Sized,
1910{
1911    match node {
1912        ClusterScheduleOptionValue::Manual {
1913        } => {
1914        }
1915        ClusterScheduleOptionValue::Refresh {
1916            hydration_time_estimate: binding0,
1917        } => {
1918            if let Some(v) = binding0 {
1919                visitor.visit_interval_value_mut(v);
1920            }
1921        }
1922    }
1923}
1924impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ColumnDef<T> {
1925    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1926        visitor.visit_column_def_mut(self)
1927    }
1928}
1929#[allow(clippy::needless_pass_by_ref_mut)]
1930pub fn visit_column_def_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ColumnDef<T>)
1931where
1932    V: VisitMut<'ast, T, > + ?Sized,
1933{
1934    visitor.visit_ident_mut(&mut node.name);
1935    visitor.visit_data_type_mut(&mut node.data_type);
1936    if let Some(v) = &mut node.collation {
1937        visitor.visit_unresolved_item_name_mut(v);
1938    }
1939    for v in &mut node.options {
1940        visitor.visit_column_option_def_mut(v);
1941    }
1942}
1943impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ColumnName<T> {
1944    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1945        visitor.visit_column_name_mut(self)
1946    }
1947}
1948#[allow(clippy::needless_pass_by_ref_mut)]
1949pub fn visit_column_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ColumnName<T>)
1950where
1951    V: VisitMut<'ast, T, > + ?Sized,
1952{
1953    visitor.visit_item_name_mut(&mut node.relation);
1954    visitor.visit_column_reference_mut(&mut node.column);
1955}
1956impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ColumnOption<T> {
1957    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
1958        visitor.visit_column_option_mut(self)
1959    }
1960}
1961#[allow(clippy::needless_pass_by_ref_mut)]
1962pub fn visit_column_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ColumnOption<T>)
1963where
1964    V: VisitMut<'ast, T, > + ?Sized,
1965{
1966    match node {
1967        ColumnOption::Null {
1968        } => {
1969        }
1970        ColumnOption::NotNull {
1971        } => {
1972        }
1973        ColumnOption::Default {
1974            0: binding0,
1975        } => {
1976            visitor.visit_expr_mut(binding0);
1977        }
1978        ColumnOption::Unique {
1979            is_primary: binding0,
1980        } => {
1981        }
1982        ColumnOption::ForeignKey {
1983            foreign_table: binding0,
1984            referred_columns: binding1,
1985        } => {
1986            visitor.visit_unresolved_item_name_mut(binding0);
1987            for v in binding1 {
1988                visitor.visit_ident_mut(v);
1989            }
1990        }
1991        ColumnOption::Check {
1992            0: binding0,
1993        } => {
1994            visitor.visit_expr_mut(binding0);
1995        }
1996        ColumnOption::Versioned {
1997            action: binding0,
1998            version: binding1,
1999        } => {
2000            visitor.visit_column_versioned_mut(binding0);
2001            visitor.visit_version_mut(binding1);
2002        }
2003    }
2004}
2005impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ColumnOptionDef<T> {
2006    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2007        visitor.visit_column_option_def_mut(self)
2008    }
2009}
2010#[allow(clippy::needless_pass_by_ref_mut)]
2011pub fn visit_column_option_def_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ColumnOptionDef<T>)
2012where
2013    V: VisitMut<'ast, T, > + ?Sized,
2014{
2015    if let Some(v) = &mut node.name {
2016        visitor.visit_ident_mut(v);
2017    }
2018    visitor.visit_column_option_mut(&mut node.option);
2019}
2020impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ColumnVersioned {
2021    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2022        visitor.visit_column_versioned_mut(self)
2023    }
2024}
2025#[allow(clippy::needless_pass_by_ref_mut)]
2026pub fn visit_column_versioned_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ColumnVersioned)
2027where
2028    V: VisitMut<'ast, T, > + ?Sized,
2029{
2030    match node {
2031        ColumnVersioned::Added {
2032        } => {
2033        }
2034    }
2035}
2036impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CommentObjectType<T> {
2037    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2038        visitor.visit_comment_object_type_mut(self)
2039    }
2040}
2041#[allow(clippy::needless_pass_by_ref_mut)]
2042pub fn visit_comment_object_type_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CommentObjectType<T>)
2043where
2044    V: VisitMut<'ast, T, > + ?Sized,
2045{
2046    match node {
2047        CommentObjectType::Table {
2048            name: binding0,
2049        } => {
2050            visitor.visit_item_name_mut(binding0);
2051        }
2052        CommentObjectType::View {
2053            name: binding0,
2054        } => {
2055            visitor.visit_item_name_mut(binding0);
2056        }
2057        CommentObjectType::Column {
2058            name: binding0,
2059        } => {
2060            visitor.visit_column_name_mut(binding0);
2061        }
2062        CommentObjectType::MaterializedView {
2063            name: binding0,
2064        } => {
2065            visitor.visit_item_name_mut(binding0);
2066        }
2067        CommentObjectType::Source {
2068            name: binding0,
2069        } => {
2070            visitor.visit_item_name_mut(binding0);
2071        }
2072        CommentObjectType::Sink {
2073            name: binding0,
2074        } => {
2075            visitor.visit_item_name_mut(binding0);
2076        }
2077        CommentObjectType::Index {
2078            name: binding0,
2079        } => {
2080            visitor.visit_item_name_mut(binding0);
2081        }
2082        CommentObjectType::Func {
2083            name: binding0,
2084        } => {
2085            visitor.visit_item_name_mut(binding0);
2086        }
2087        CommentObjectType::Connection {
2088            name: binding0,
2089        } => {
2090            visitor.visit_item_name_mut(binding0);
2091        }
2092        CommentObjectType::Type {
2093            ty: binding0,
2094        } => {
2095            visitor.visit_data_type_mut(binding0);
2096        }
2097        CommentObjectType::Secret {
2098            name: binding0,
2099        } => {
2100            visitor.visit_item_name_mut(binding0);
2101        }
2102        CommentObjectType::Role {
2103            name: binding0,
2104        } => {
2105            visitor.visit_role_name_mut(binding0);
2106        }
2107        CommentObjectType::Database {
2108            name: binding0,
2109        } => {
2110            visitor.visit_database_name_mut(binding0);
2111        }
2112        CommentObjectType::Schema {
2113            name: binding0,
2114        } => {
2115            visitor.visit_schema_name_mut(binding0);
2116        }
2117        CommentObjectType::Cluster {
2118            name: binding0,
2119        } => {
2120            visitor.visit_cluster_name_mut(binding0);
2121        }
2122        CommentObjectType::ClusterReplica {
2123            name: binding0,
2124        } => {
2125            visitor.visit_qualified_replica_mut(binding0);
2126        }
2127        CommentObjectType::ContinualTask {
2128            name: binding0,
2129        } => {
2130            visitor.visit_item_name_mut(binding0);
2131        }
2132        CommentObjectType::NetworkPolicy {
2133            name: binding0,
2134        } => {
2135            visitor.visit_network_policy_name_mut(binding0);
2136        }
2137    }
2138}
2139impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CommentStatement<T> {
2140    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2141        visitor.visit_comment_statement_mut(self)
2142    }
2143}
2144#[allow(clippy::needless_pass_by_ref_mut)]
2145pub fn visit_comment_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CommentStatement<T>)
2146where
2147    V: VisitMut<'ast, T, > + ?Sized,
2148{
2149    visitor.visit_comment_object_type_mut(&mut node.object);
2150    if let Some(v) = &mut node.comment {
2151    }
2152}
2153impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CommitStatement {
2154    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2155        visitor.visit_commit_statement_mut(self)
2156    }
2157}
2158#[allow(clippy::needless_pass_by_ref_mut)]
2159pub fn visit_commit_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CommitStatement)
2160where
2161    V: VisitMut<'ast, T, > + ?Sized,
2162{
2163}
2164impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ConnectionDefaultAwsPrivatelink<T> {
2165    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2166        visitor.visit_connection_default_aws_privatelink_mut(self)
2167    }
2168}
2169#[allow(clippy::needless_pass_by_ref_mut)]
2170pub fn visit_connection_default_aws_privatelink_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ConnectionDefaultAwsPrivatelink<T>)
2171where
2172    V: VisitMut<'ast, T, > + ?Sized,
2173{
2174    visitor.visit_item_name_mut(&mut node.connection);
2175    if let Some(v) = &mut node.port {
2176    }
2177}
2178impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ConnectionOption<T> {
2179    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2180        visitor.visit_connection_option_mut(self)
2181    }
2182}
2183#[allow(clippy::needless_pass_by_ref_mut)]
2184pub fn visit_connection_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ConnectionOption<T>)
2185where
2186    V: VisitMut<'ast, T, > + ?Sized,
2187{
2188    visitor.visit_connection_option_name_mut(&mut node.name);
2189    if let Some(v) = &mut node.value {
2190        visitor.visit_with_option_value_mut(v);
2191    }
2192}
2193impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ConnectionOptionName {
2194    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2195        visitor.visit_connection_option_name_mut(self)
2196    }
2197}
2198#[allow(clippy::needless_pass_by_ref_mut)]
2199pub fn visit_connection_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ConnectionOptionName)
2200where
2201    V: VisitMut<'ast, T, > + ?Sized,
2202{
2203    match node {
2204        ConnectionOptionName::AccessKeyId {
2205        } => {
2206        }
2207        ConnectionOptionName::AssumeRoleArn {
2208        } => {
2209        }
2210        ConnectionOptionName::AssumeRoleSessionName {
2211        } => {
2212        }
2213        ConnectionOptionName::AvailabilityZones {
2214        } => {
2215        }
2216        ConnectionOptionName::AwsConnection {
2217        } => {
2218        }
2219        ConnectionOptionName::AwsPrivatelink {
2220        } => {
2221        }
2222        ConnectionOptionName::Broker {
2223        } => {
2224        }
2225        ConnectionOptionName::Brokers {
2226        } => {
2227        }
2228        ConnectionOptionName::Credential {
2229        } => {
2230        }
2231        ConnectionOptionName::Database {
2232        } => {
2233        }
2234        ConnectionOptionName::Endpoint {
2235        } => {
2236        }
2237        ConnectionOptionName::Host {
2238        } => {
2239        }
2240        ConnectionOptionName::Password {
2241        } => {
2242        }
2243        ConnectionOptionName::Port {
2244        } => {
2245        }
2246        ConnectionOptionName::ProgressTopic {
2247        } => {
2248        }
2249        ConnectionOptionName::ProgressTopicReplicationFactor {
2250        } => {
2251        }
2252        ConnectionOptionName::PublicKey1 {
2253        } => {
2254        }
2255        ConnectionOptionName::PublicKey2 {
2256        } => {
2257        }
2258        ConnectionOptionName::Region {
2259        } => {
2260        }
2261        ConnectionOptionName::SaslMechanisms {
2262        } => {
2263        }
2264        ConnectionOptionName::SaslPassword {
2265        } => {
2266        }
2267        ConnectionOptionName::SaslUsername {
2268        } => {
2269        }
2270        ConnectionOptionName::Scope {
2271        } => {
2272        }
2273        ConnectionOptionName::SecretAccessKey {
2274        } => {
2275        }
2276        ConnectionOptionName::SecurityProtocol {
2277        } => {
2278        }
2279        ConnectionOptionName::ServiceName {
2280        } => {
2281        }
2282        ConnectionOptionName::SshTunnel {
2283        } => {
2284        }
2285        ConnectionOptionName::SslCertificate {
2286        } => {
2287        }
2288        ConnectionOptionName::SslCertificateAuthority {
2289        } => {
2290        }
2291        ConnectionOptionName::SslKey {
2292        } => {
2293        }
2294        ConnectionOptionName::SslMode {
2295        } => {
2296        }
2297        ConnectionOptionName::SessionToken {
2298        } => {
2299        }
2300        ConnectionOptionName::CatalogType {
2301        } => {
2302        }
2303        ConnectionOptionName::Url {
2304        } => {
2305        }
2306        ConnectionOptionName::User {
2307        } => {
2308        }
2309        ConnectionOptionName::Warehouse {
2310        } => {
2311        }
2312    }
2313}
2314impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ContinualTaskOption<T> {
2315    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2316        visitor.visit_continual_task_option_mut(self)
2317    }
2318}
2319#[allow(clippy::needless_pass_by_ref_mut)]
2320pub fn visit_continual_task_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ContinualTaskOption<T>)
2321where
2322    V: VisitMut<'ast, T, > + ?Sized,
2323{
2324    visitor.visit_continual_task_option_name_mut(&mut node.name);
2325    if let Some(v) = &mut node.value {
2326        visitor.visit_with_option_value_mut(v);
2327    }
2328}
2329impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ContinualTaskOptionName {
2330    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2331        visitor.visit_continual_task_option_name_mut(self)
2332    }
2333}
2334#[allow(clippy::needless_pass_by_ref_mut)]
2335pub fn visit_continual_task_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ContinualTaskOptionName)
2336where
2337    V: VisitMut<'ast, T, > + ?Sized,
2338{
2339    match node {
2340        ContinualTaskOptionName::Snapshot {
2341        } => {
2342        }
2343    }
2344}
2345impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ContinualTaskStmt<T> {
2346    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2347        visitor.visit_continual_task_stmt_mut(self)
2348    }
2349}
2350#[allow(clippy::needless_pass_by_ref_mut)]
2351pub fn visit_continual_task_stmt_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ContinualTaskStmt<T>)
2352where
2353    V: VisitMut<'ast, T, > + ?Sized,
2354{
2355    match node {
2356        ContinualTaskStmt::Delete {
2357            0: binding0,
2358        } => {
2359            visitor.visit_delete_statement_mut(binding0);
2360        }
2361        ContinualTaskStmt::Insert {
2362            0: binding0,
2363        } => {
2364            visitor.visit_insert_statement_mut(binding0);
2365        }
2366    }
2367}
2368impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CopyDirection {
2369    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2370        visitor.visit_copy_direction_mut(self)
2371    }
2372}
2373#[allow(clippy::needless_pass_by_ref_mut)]
2374pub fn visit_copy_direction_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CopyDirection)
2375where
2376    V: VisitMut<'ast, T, > + ?Sized,
2377{
2378    match node {
2379        CopyDirection::To {
2380        } => {
2381        }
2382        CopyDirection::From {
2383        } => {
2384        }
2385    }
2386}
2387impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CopyOption<T> {
2388    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2389        visitor.visit_copy_option_mut(self)
2390    }
2391}
2392#[allow(clippy::needless_pass_by_ref_mut)]
2393pub fn visit_copy_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CopyOption<T>)
2394where
2395    V: VisitMut<'ast, T, > + ?Sized,
2396{
2397    visitor.visit_copy_option_name_mut(&mut node.name);
2398    if let Some(v) = &mut node.value {
2399        visitor.visit_with_option_value_mut(v);
2400    }
2401}
2402impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CopyOptionName {
2403    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2404        visitor.visit_copy_option_name_mut(self)
2405    }
2406}
2407#[allow(clippy::needless_pass_by_ref_mut)]
2408pub fn visit_copy_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CopyOptionName)
2409where
2410    V: VisitMut<'ast, T, > + ?Sized,
2411{
2412    match node {
2413        CopyOptionName::Format {
2414        } => {
2415        }
2416        CopyOptionName::Delimiter {
2417        } => {
2418        }
2419        CopyOptionName::Null {
2420        } => {
2421        }
2422        CopyOptionName::Escape {
2423        } => {
2424        }
2425        CopyOptionName::Quote {
2426        } => {
2427        }
2428        CopyOptionName::Header {
2429        } => {
2430        }
2431        CopyOptionName::AwsConnection {
2432        } => {
2433        }
2434        CopyOptionName::MaxFileSize {
2435        } => {
2436        }
2437        CopyOptionName::Files {
2438        } => {
2439        }
2440        CopyOptionName::Pattern {
2441        } => {
2442        }
2443    }
2444}
2445impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CopyRelation<T> {
2446    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2447        visitor.visit_copy_relation_mut(self)
2448    }
2449}
2450#[allow(clippy::needless_pass_by_ref_mut)]
2451pub fn visit_copy_relation_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CopyRelation<T>)
2452where
2453    V: VisitMut<'ast, T, > + ?Sized,
2454{
2455    match node {
2456        CopyRelation::Named {
2457            name: binding0,
2458            columns: binding1,
2459        } => {
2460            visitor.visit_item_name_mut(binding0);
2461            for v in binding1 {
2462                visitor.visit_ident_mut(v);
2463            }
2464        }
2465        CopyRelation::Select {
2466            0: binding0,
2467        } => {
2468            visitor.visit_select_statement_mut(binding0);
2469        }
2470        CopyRelation::Subscribe {
2471            0: binding0,
2472        } => {
2473            visitor.visit_subscribe_statement_mut(binding0);
2474        }
2475    }
2476}
2477impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CopyStatement<T> {
2478    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2479        visitor.visit_copy_statement_mut(self)
2480    }
2481}
2482#[allow(clippy::needless_pass_by_ref_mut)]
2483pub fn visit_copy_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CopyStatement<T>)
2484where
2485    V: VisitMut<'ast, T, > + ?Sized,
2486{
2487    visitor.visit_copy_relation_mut(&mut node.relation);
2488    visitor.visit_copy_direction_mut(&mut node.direction);
2489    visitor.visit_copy_target_mut(&mut node.target);
2490    for v in &mut node.options {
2491        visitor.visit_copy_option_mut(v);
2492    }
2493}
2494impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CopyTarget<T> {
2495    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2496        visitor.visit_copy_target_mut(self)
2497    }
2498}
2499#[allow(clippy::needless_pass_by_ref_mut)]
2500pub fn visit_copy_target_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CopyTarget<T>)
2501where
2502    V: VisitMut<'ast, T, > + ?Sized,
2503{
2504    match node {
2505        CopyTarget::Stdin {
2506        } => {
2507        }
2508        CopyTarget::Stdout {
2509        } => {
2510        }
2511        CopyTarget::Expr {
2512            0: binding0,
2513        } => {
2514            visitor.visit_expr_mut(binding0);
2515        }
2516    }
2517}
2518impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateClusterReplicaStatement<T> {
2519    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2520        visitor.visit_create_cluster_replica_statement_mut(self)
2521    }
2522}
2523#[allow(clippy::needless_pass_by_ref_mut)]
2524pub fn visit_create_cluster_replica_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateClusterReplicaStatement<T>)
2525where
2526    V: VisitMut<'ast, T, > + ?Sized,
2527{
2528    visitor.visit_ident_mut(&mut node.of_cluster);
2529    visitor.visit_replica_definition_mut(&mut node.definition);
2530}
2531impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateClusterStatement<T> {
2532    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2533        visitor.visit_create_cluster_statement_mut(self)
2534    }
2535}
2536#[allow(clippy::needless_pass_by_ref_mut)]
2537pub fn visit_create_cluster_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateClusterStatement<T>)
2538where
2539    V: VisitMut<'ast, T, > + ?Sized,
2540{
2541    visitor.visit_ident_mut(&mut node.name);
2542    for v in &mut node.options {
2543        visitor.visit_cluster_option_mut(v);
2544    }
2545    for v in &mut node.features {
2546        visitor.visit_cluster_feature_mut(v);
2547    }
2548}
2549impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateConnectionOption<T> {
2550    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2551        visitor.visit_create_connection_option_mut(self)
2552    }
2553}
2554#[allow(clippy::needless_pass_by_ref_mut)]
2555pub fn visit_create_connection_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateConnectionOption<T>)
2556where
2557    V: VisitMut<'ast, T, > + ?Sized,
2558{
2559    visitor.visit_create_connection_option_name_mut(&mut node.name);
2560    if let Some(v) = &mut node.value {
2561        visitor.visit_with_option_value_mut(v);
2562    }
2563}
2564impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateConnectionOptionName {
2565    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2566        visitor.visit_create_connection_option_name_mut(self)
2567    }
2568}
2569#[allow(clippy::needless_pass_by_ref_mut)]
2570pub fn visit_create_connection_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateConnectionOptionName)
2571where
2572    V: VisitMut<'ast, T, > + ?Sized,
2573{
2574    match node {
2575        CreateConnectionOptionName::Validate {
2576        } => {
2577        }
2578    }
2579}
2580impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateConnectionStatement<T> {
2581    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2582        visitor.visit_create_connection_statement_mut(self)
2583    }
2584}
2585#[allow(clippy::needless_pass_by_ref_mut)]
2586pub fn visit_create_connection_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateConnectionStatement<T>)
2587where
2588    V: VisitMut<'ast, T, > + ?Sized,
2589{
2590    visitor.visit_unresolved_item_name_mut(&mut node.name);
2591    visitor.visit_create_connection_type_mut(&mut node.connection_type);
2592    for v in &mut node.values {
2593        visitor.visit_connection_option_mut(v);
2594    }
2595    for v in &mut node.with_options {
2596        visitor.visit_create_connection_option_mut(v);
2597    }
2598}
2599impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateConnectionType {
2600    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2601        visitor.visit_create_connection_type_mut(self)
2602    }
2603}
2604#[allow(clippy::needless_pass_by_ref_mut)]
2605pub fn visit_create_connection_type_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateConnectionType)
2606where
2607    V: VisitMut<'ast, T, > + ?Sized,
2608{
2609    match node {
2610        CreateConnectionType::Aws {
2611        } => {
2612        }
2613        CreateConnectionType::AwsPrivatelink {
2614        } => {
2615        }
2616        CreateConnectionType::Kafka {
2617        } => {
2618        }
2619        CreateConnectionType::Csr {
2620        } => {
2621        }
2622        CreateConnectionType::Postgres {
2623        } => {
2624        }
2625        CreateConnectionType::Ssh {
2626        } => {
2627        }
2628        CreateConnectionType::SqlServer {
2629        } => {
2630        }
2631        CreateConnectionType::MySql {
2632        } => {
2633        }
2634        CreateConnectionType::IcebergCatalog {
2635        } => {
2636        }
2637    }
2638}
2639impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateContinualTaskStatement<T> {
2640    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2641        visitor.visit_create_continual_task_statement_mut(self)
2642    }
2643}
2644#[allow(clippy::needless_pass_by_ref_mut)]
2645pub fn visit_create_continual_task_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateContinualTaskStatement<T>)
2646where
2647    V: VisitMut<'ast, T, > + ?Sized,
2648{
2649    visitor.visit_item_name_mut(&mut node.name);
2650    if let Some(v) = &mut node.columns {
2651        for v in v {
2652            visitor.visit_cte_mut_rec_column_def_mut(v);
2653        }
2654    }
2655    if let Some(v) = &mut node.in_cluster {
2656        visitor.visit_cluster_name_mut(v);
2657    }
2658    if let Some(v) = &mut node.as_of {
2659    }
2660    for v in &mut node.with_options {
2661        visitor.visit_continual_task_option_mut(v);
2662    }
2663    visitor.visit_item_name_mut(&mut node.input);
2664    for v in &mut node.stmts {
2665        visitor.visit_continual_task_stmt_mut(v);
2666    }
2667    if let Some(v) = &mut node.sugar {
2668        visitor.visit_create_continual_task_sugar_mut(v);
2669    }
2670}
2671impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateContinualTaskSugar<T> {
2672    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2673        visitor.visit_create_continual_task_sugar_mut(self)
2674    }
2675}
2676#[allow(clippy::needless_pass_by_ref_mut)]
2677pub fn visit_create_continual_task_sugar_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateContinualTaskSugar<T>)
2678where
2679    V: VisitMut<'ast, T, > + ?Sized,
2680{
2681    match node {
2682        CreateContinualTaskSugar::Transform {
2683            transform: binding0,
2684        } => {
2685            visitor.visit_query_mut(binding0);
2686        }
2687        CreateContinualTaskSugar::Retain {
2688            retain: binding0,
2689        } => {
2690            visitor.visit_expr_mut(binding0);
2691        }
2692    }
2693}
2694impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateDatabaseStatement {
2695    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2696        visitor.visit_create_database_statement_mut(self)
2697    }
2698}
2699#[allow(clippy::needless_pass_by_ref_mut)]
2700pub fn visit_create_database_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateDatabaseStatement)
2701where
2702    V: VisitMut<'ast, T, > + ?Sized,
2703{
2704    visitor.visit_unresolved_database_name_mut(&mut node.name);
2705}
2706impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateIndexStatement<T> {
2707    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2708        visitor.visit_create_index_statement_mut(self)
2709    }
2710}
2711#[allow(clippy::needless_pass_by_ref_mut)]
2712pub fn visit_create_index_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateIndexStatement<T>)
2713where
2714    V: VisitMut<'ast, T, > + ?Sized,
2715{
2716    if let Some(v) = &mut node.name {
2717        visitor.visit_ident_mut(v);
2718    }
2719    if let Some(v) = &mut node.in_cluster {
2720        visitor.visit_cluster_name_mut(v);
2721    }
2722    visitor.visit_item_name_mut(&mut node.on_name);
2723    if let Some(v) = &mut node.key_parts {
2724        for v in v {
2725            visitor.visit_expr_mut(v);
2726        }
2727    }
2728    for v in &mut node.with_options {
2729        visitor.visit_index_option_mut(v);
2730    }
2731}
2732impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateMaterializedViewStatement<T> {
2733    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2734        visitor.visit_create_materialized_view_statement_mut(self)
2735    }
2736}
2737#[allow(clippy::needless_pass_by_ref_mut)]
2738pub fn visit_create_materialized_view_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateMaterializedViewStatement<T>)
2739where
2740    V: VisitMut<'ast, T, > + ?Sized,
2741{
2742    visitor.visit_if_exists_behavior_mut(&mut node.if_exists);
2743    visitor.visit_unresolved_item_name_mut(&mut node.name);
2744    for v in &mut node.columns {
2745        visitor.visit_ident_mut(v);
2746    }
2747    if let Some(v) = &mut node.replacement_for {
2748        visitor.visit_item_name_mut(v);
2749    }
2750    if let Some(v) = &mut node.in_cluster {
2751        visitor.visit_cluster_name_mut(v);
2752    }
2753    if let Some(v) = &mut node.in_cluster_replica {
2754        visitor.visit_ident_mut(v);
2755    }
2756    visitor.visit_query_mut(&mut node.query);
2757    if let Some(v) = &mut node.as_of {
2758    }
2759    for v in &mut node.with_options {
2760        visitor.visit_materialized_view_option_mut(v);
2761    }
2762}
2763impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateNetworkPolicyStatement<T> {
2764    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2765        visitor.visit_create_network_policy_statement_mut(self)
2766    }
2767}
2768#[allow(clippy::needless_pass_by_ref_mut)]
2769pub fn visit_create_network_policy_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateNetworkPolicyStatement<T>)
2770where
2771    V: VisitMut<'ast, T, > + ?Sized,
2772{
2773    visitor.visit_ident_mut(&mut node.name);
2774    for v in &mut node.options {
2775        visitor.visit_network_policy_option_mut(v);
2776    }
2777}
2778impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateRoleStatement {
2779    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2780        visitor.visit_create_role_statement_mut(self)
2781    }
2782}
2783#[allow(clippy::needless_pass_by_ref_mut)]
2784pub fn visit_create_role_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateRoleStatement)
2785where
2786    V: VisitMut<'ast, T, > + ?Sized,
2787{
2788    visitor.visit_ident_mut(&mut node.name);
2789    for v in &mut node.options {
2790        visitor.visit_role_attribute_mut(v);
2791    }
2792}
2793impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSchemaStatement {
2794    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2795        visitor.visit_create_schema_statement_mut(self)
2796    }
2797}
2798#[allow(clippy::needless_pass_by_ref_mut)]
2799pub fn visit_create_schema_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSchemaStatement)
2800where
2801    V: VisitMut<'ast, T, > + ?Sized,
2802{
2803    visitor.visit_unresolved_schema_name_mut(&mut node.name);
2804}
2805impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSecretStatement<T> {
2806    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2807        visitor.visit_create_secret_statement_mut(self)
2808    }
2809}
2810#[allow(clippy::needless_pass_by_ref_mut)]
2811pub fn visit_create_secret_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSecretStatement<T>)
2812where
2813    V: VisitMut<'ast, T, > + ?Sized,
2814{
2815    visitor.visit_unresolved_item_name_mut(&mut node.name);
2816    visitor.visit_expr_mut(&mut node.value);
2817}
2818impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSinkConnection<T> {
2819    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2820        visitor.visit_create_sink_connection_mut(self)
2821    }
2822}
2823#[allow(clippy::needless_pass_by_ref_mut)]
2824pub fn visit_create_sink_connection_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSinkConnection<T>)
2825where
2826    V: VisitMut<'ast, T, > + ?Sized,
2827{
2828    match node {
2829        CreateSinkConnection::Kafka {
2830            connection: binding0,
2831            options: binding1,
2832            key: binding2,
2833            headers: binding3,
2834        } => {
2835            visitor.visit_item_name_mut(binding0);
2836            for v in binding1 {
2837                visitor.visit_kafka_sink_config_option_mut(v);
2838            }
2839            if let Some(v) = binding2 {
2840                visitor.visit_sink_key_mut(v);
2841            }
2842            if let Some(v) = binding3 {
2843                visitor.visit_ident_mut(v);
2844            }
2845        }
2846        CreateSinkConnection::Iceberg {
2847            connection: binding0,
2848            aws_connection: binding1,
2849            key: binding2,
2850            options: binding3,
2851        } => {
2852            visitor.visit_item_name_mut(binding0);
2853            visitor.visit_item_name_mut(binding1);
2854            if let Some(v) = binding2 {
2855                visitor.visit_sink_key_mut(v);
2856            }
2857            for v in binding3 {
2858                visitor.visit_iceberg_sink_config_option_mut(v);
2859            }
2860        }
2861    }
2862}
2863impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSinkOption<T> {
2864    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2865        visitor.visit_create_sink_option_mut(self)
2866    }
2867}
2868#[allow(clippy::needless_pass_by_ref_mut)]
2869pub fn visit_create_sink_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSinkOption<T>)
2870where
2871    V: VisitMut<'ast, T, > + ?Sized,
2872{
2873    visitor.visit_create_sink_option_name_mut(&mut node.name);
2874    if let Some(v) = &mut node.value {
2875        visitor.visit_with_option_value_mut(v);
2876    }
2877}
2878impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSinkOptionName {
2879    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2880        visitor.visit_create_sink_option_name_mut(self)
2881    }
2882}
2883#[allow(clippy::needless_pass_by_ref_mut)]
2884pub fn visit_create_sink_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSinkOptionName)
2885where
2886    V: VisitMut<'ast, T, > + ?Sized,
2887{
2888    match node {
2889        CreateSinkOptionName::Snapshot {
2890        } => {
2891        }
2892        CreateSinkOptionName::Version {
2893        } => {
2894        }
2895        CreateSinkOptionName::PartitionStrategy {
2896        } => {
2897        }
2898        CreateSinkOptionName::CommitInterval {
2899        } => {
2900        }
2901    }
2902}
2903impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSinkStatement<T> {
2904    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2905        visitor.visit_create_sink_statement_mut(self)
2906    }
2907}
2908#[allow(clippy::needless_pass_by_ref_mut)]
2909pub fn visit_create_sink_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSinkStatement<T>)
2910where
2911    V: VisitMut<'ast, T, > + ?Sized,
2912{
2913    if let Some(v) = &mut node.name {
2914        visitor.visit_unresolved_item_name_mut(v);
2915    }
2916    if let Some(v) = &mut node.in_cluster {
2917        visitor.visit_cluster_name_mut(v);
2918    }
2919    visitor.visit_item_name_mut(&mut node.from);
2920    visitor.visit_create_sink_connection_mut(&mut node.connection);
2921    if let Some(v) = &mut node.format {
2922        visitor.visit_format_specifier_mut(v);
2923    }
2924    if let Some(v) = &mut node.envelope {
2925        visitor.visit_sink_envelope_mut(v);
2926    }
2927    if let Some(v) = &mut node.mode {
2928        visitor.visit_iceberg_sink_mode_mut(v);
2929    }
2930    for v in &mut node.with_options {
2931        visitor.visit_create_sink_option_mut(v);
2932    }
2933}
2934impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSourceConnection<T> {
2935    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2936        visitor.visit_create_source_connection_mut(self)
2937    }
2938}
2939#[allow(clippy::needless_pass_by_ref_mut)]
2940pub fn visit_create_source_connection_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSourceConnection<T>)
2941where
2942    V: VisitMut<'ast, T, > + ?Sized,
2943{
2944    match node {
2945        CreateSourceConnection::Kafka {
2946            connection: binding0,
2947            options: binding1,
2948        } => {
2949            visitor.visit_item_name_mut(binding0);
2950            for v in binding1 {
2951                visitor.visit_kafka_source_config_option_mut(v);
2952            }
2953        }
2954        CreateSourceConnection::Postgres {
2955            connection: binding0,
2956            options: binding1,
2957        } => {
2958            visitor.visit_item_name_mut(binding0);
2959            for v in binding1 {
2960                visitor.visit_pg_config_option_mut(v);
2961            }
2962        }
2963        CreateSourceConnection::SqlServer {
2964            connection: binding0,
2965            options: binding1,
2966        } => {
2967            visitor.visit_item_name_mut(binding0);
2968            for v in binding1 {
2969                visitor.visit_sql_server_config_option_mut(v);
2970            }
2971        }
2972        CreateSourceConnection::MySql {
2973            connection: binding0,
2974            options: binding1,
2975        } => {
2976            visitor.visit_item_name_mut(binding0);
2977            for v in binding1 {
2978                visitor.visit_my_sql_config_option_mut(v);
2979            }
2980        }
2981        CreateSourceConnection::LoadGenerator {
2982            generator: binding0,
2983            options: binding1,
2984        } => {
2985            visitor.visit_load_generator_mut(binding0);
2986            for v in binding1 {
2987                visitor.visit_load_generator_option_mut(v);
2988            }
2989        }
2990    }
2991}
2992impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSourceOption<T> {
2993    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
2994        visitor.visit_create_source_option_mut(self)
2995    }
2996}
2997#[allow(clippy::needless_pass_by_ref_mut)]
2998pub fn visit_create_source_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSourceOption<T>)
2999where
3000    V: VisitMut<'ast, T, > + ?Sized,
3001{
3002    visitor.visit_create_source_option_name_mut(&mut node.name);
3003    if let Some(v) = &mut node.value {
3004        visitor.visit_with_option_value_mut(v);
3005    }
3006}
3007impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSourceOptionName {
3008    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3009        visitor.visit_create_source_option_name_mut(self)
3010    }
3011}
3012#[allow(clippy::needless_pass_by_ref_mut)]
3013pub fn visit_create_source_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSourceOptionName)
3014where
3015    V: VisitMut<'ast, T, > + ?Sized,
3016{
3017    match node {
3018        CreateSourceOptionName::TimestampInterval {
3019        } => {
3020        }
3021        CreateSourceOptionName::RetainHistory {
3022        } => {
3023        }
3024    }
3025}
3026impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSourceStatement<T> {
3027    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3028        visitor.visit_create_source_statement_mut(self)
3029    }
3030}
3031#[allow(clippy::needless_pass_by_ref_mut)]
3032pub fn visit_create_source_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSourceStatement<T>)
3033where
3034    V: VisitMut<'ast, T, > + ?Sized,
3035{
3036    visitor.visit_unresolved_item_name_mut(&mut node.name);
3037    if let Some(v) = &mut node.in_cluster {
3038        visitor.visit_cluster_name_mut(v);
3039    }
3040    for v in &mut node.col_names {
3041        visitor.visit_ident_mut(v);
3042    }
3043    visitor.visit_create_source_connection_mut(&mut node.connection);
3044    for v in &mut node.include_metadata {
3045        visitor.visit_source_include_metadata_mut(v);
3046    }
3047    if let Some(v) = &mut node.format {
3048        visitor.visit_format_specifier_mut(v);
3049    }
3050    if let Some(v) = &mut node.envelope {
3051        visitor.visit_source_envelope_mut(v);
3052    }
3053    if let Some(v) = &mut node.key_constraint {
3054        visitor.visit_key_constraint_mut(v);
3055    }
3056    for v in &mut node.with_options {
3057        visitor.visit_create_source_option_mut(v);
3058    }
3059    if let Some(v) = &mut node.external_references {
3060        visitor.visit_external_references_mut(v);
3061    }
3062    if let Some(v) = &mut node.progress_subsource {
3063        visitor.visit_deferred_item_name_mut(v);
3064    }
3065}
3066impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSubsourceOption<T> {
3067    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3068        visitor.visit_create_subsource_option_mut(self)
3069    }
3070}
3071#[allow(clippy::needless_pass_by_ref_mut)]
3072pub fn visit_create_subsource_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSubsourceOption<T>)
3073where
3074    V: VisitMut<'ast, T, > + ?Sized,
3075{
3076    visitor.visit_create_subsource_option_name_mut(&mut node.name);
3077    if let Some(v) = &mut node.value {
3078        visitor.visit_with_option_value_mut(v);
3079    }
3080}
3081impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSubsourceOptionName {
3082    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3083        visitor.visit_create_subsource_option_name_mut(self)
3084    }
3085}
3086#[allow(clippy::needless_pass_by_ref_mut)]
3087pub fn visit_create_subsource_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSubsourceOptionName)
3088where
3089    V: VisitMut<'ast, T, > + ?Sized,
3090{
3091    match node {
3092        CreateSubsourceOptionName::Progress {
3093        } => {
3094        }
3095        CreateSubsourceOptionName::ExternalReference {
3096        } => {
3097        }
3098        CreateSubsourceOptionName::RetainHistory {
3099        } => {
3100        }
3101        CreateSubsourceOptionName::TextColumns {
3102        } => {
3103        }
3104        CreateSubsourceOptionName::ExcludeColumns {
3105        } => {
3106        }
3107        CreateSubsourceOptionName::Details {
3108        } => {
3109        }
3110    }
3111}
3112impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateSubsourceStatement<T> {
3113    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3114        visitor.visit_create_subsource_statement_mut(self)
3115    }
3116}
3117#[allow(clippy::needless_pass_by_ref_mut)]
3118pub fn visit_create_subsource_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateSubsourceStatement<T>)
3119where
3120    V: VisitMut<'ast, T, > + ?Sized,
3121{
3122    visitor.visit_unresolved_item_name_mut(&mut node.name);
3123    for v in &mut node.columns {
3124        visitor.visit_column_def_mut(v);
3125    }
3126    if let Some(v) = &mut node.of_source {
3127        visitor.visit_item_name_mut(v);
3128    }
3129    for v in &mut node.constraints {
3130        visitor.visit_table_constraint_mut(v);
3131    }
3132    for v in &mut node.with_options {
3133        visitor.visit_create_subsource_option_mut(v);
3134    }
3135}
3136impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTableFromSourceStatement<T> {
3137    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3138        visitor.visit_create_table_from_source_statement_mut(self)
3139    }
3140}
3141#[allow(clippy::needless_pass_by_ref_mut)]
3142pub fn visit_create_table_from_source_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTableFromSourceStatement<T>)
3143where
3144    V: VisitMut<'ast, T, > + ?Sized,
3145{
3146    visitor.visit_unresolved_item_name_mut(&mut node.name);
3147    visitor.visit_table_from_source_columns_mut(&mut node.columns);
3148    for v in &mut node.constraints {
3149        visitor.visit_table_constraint_mut(v);
3150    }
3151    visitor.visit_item_name_mut(&mut node.source);
3152    if let Some(v) = &mut node.external_reference {
3153        visitor.visit_unresolved_item_name_mut(v);
3154    }
3155    for v in &mut node.with_options {
3156        visitor.visit_table_from_source_option_mut(v);
3157    }
3158    for v in &mut node.include_metadata {
3159        visitor.visit_source_include_metadata_mut(v);
3160    }
3161    if let Some(v) = &mut node.format {
3162        visitor.visit_format_specifier_mut(v);
3163    }
3164    if let Some(v) = &mut node.envelope {
3165        visitor.visit_source_envelope_mut(v);
3166    }
3167}
3168impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTableStatement<T> {
3169    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3170        visitor.visit_create_table_statement_mut(self)
3171    }
3172}
3173#[allow(clippy::needless_pass_by_ref_mut)]
3174pub fn visit_create_table_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTableStatement<T>)
3175where
3176    V: VisitMut<'ast, T, > + ?Sized,
3177{
3178    visitor.visit_unresolved_item_name_mut(&mut node.name);
3179    for v in &mut node.columns {
3180        visitor.visit_column_def_mut(v);
3181    }
3182    for v in &mut node.constraints {
3183        visitor.visit_table_constraint_mut(v);
3184    }
3185    for v in &mut node.with_options {
3186        visitor.visit_table_option_mut(v);
3187    }
3188}
3189impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTypeAs<T> {
3190    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3191        visitor.visit_create_type_as_mut(self)
3192    }
3193}
3194#[allow(clippy::needless_pass_by_ref_mut)]
3195pub fn visit_create_type_as_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTypeAs<T>)
3196where
3197    V: VisitMut<'ast, T, > + ?Sized,
3198{
3199    match node {
3200        CreateTypeAs::List {
3201            options: binding0,
3202        } => {
3203            for v in binding0 {
3204                visitor.visit_create_type_list_option_mut(v);
3205            }
3206        }
3207        CreateTypeAs::Map {
3208            options: binding0,
3209        } => {
3210            for v in binding0 {
3211                visitor.visit_create_type_map_option_mut(v);
3212            }
3213        }
3214        CreateTypeAs::Record {
3215            column_defs: binding0,
3216        } => {
3217            for v in binding0 {
3218                visitor.visit_column_def_mut(v);
3219            }
3220        }
3221    }
3222}
3223impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTypeListOption<T> {
3224    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3225        visitor.visit_create_type_list_option_mut(self)
3226    }
3227}
3228#[allow(clippy::needless_pass_by_ref_mut)]
3229pub fn visit_create_type_list_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTypeListOption<T>)
3230where
3231    V: VisitMut<'ast, T, > + ?Sized,
3232{
3233    visitor.visit_create_type_list_option_name_mut(&mut node.name);
3234    if let Some(v) = &mut node.value {
3235        visitor.visit_with_option_value_mut(v);
3236    }
3237}
3238impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTypeListOptionName {
3239    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3240        visitor.visit_create_type_list_option_name_mut(self)
3241    }
3242}
3243#[allow(clippy::needless_pass_by_ref_mut)]
3244pub fn visit_create_type_list_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTypeListOptionName)
3245where
3246    V: VisitMut<'ast, T, > + ?Sized,
3247{
3248    match node {
3249        CreateTypeListOptionName::ElementType {
3250        } => {
3251        }
3252    }
3253}
3254impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTypeMapOption<T> {
3255    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3256        visitor.visit_create_type_map_option_mut(self)
3257    }
3258}
3259#[allow(clippy::needless_pass_by_ref_mut)]
3260pub fn visit_create_type_map_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTypeMapOption<T>)
3261where
3262    V: VisitMut<'ast, T, > + ?Sized,
3263{
3264    visitor.visit_create_type_map_option_name_mut(&mut node.name);
3265    if let Some(v) = &mut node.value {
3266        visitor.visit_with_option_value_mut(v);
3267    }
3268}
3269impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTypeMapOptionName {
3270    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3271        visitor.visit_create_type_map_option_name_mut(self)
3272    }
3273}
3274#[allow(clippy::needless_pass_by_ref_mut)]
3275pub fn visit_create_type_map_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTypeMapOptionName)
3276where
3277    V: VisitMut<'ast, T, > + ?Sized,
3278{
3279    match node {
3280        CreateTypeMapOptionName::KeyType {
3281        } => {
3282        }
3283        CreateTypeMapOptionName::ValueType {
3284        } => {
3285        }
3286    }
3287}
3288impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateTypeStatement<T> {
3289    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3290        visitor.visit_create_type_statement_mut(self)
3291    }
3292}
3293#[allow(clippy::needless_pass_by_ref_mut)]
3294pub fn visit_create_type_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateTypeStatement<T>)
3295where
3296    V: VisitMut<'ast, T, > + ?Sized,
3297{
3298    visitor.visit_unresolved_item_name_mut(&mut node.name);
3299    visitor.visit_create_type_as_mut(&mut node.as_type);
3300}
3301impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateViewStatement<T> {
3302    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3303        visitor.visit_create_view_statement_mut(self)
3304    }
3305}
3306#[allow(clippy::needless_pass_by_ref_mut)]
3307pub fn visit_create_view_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateViewStatement<T>)
3308where
3309    V: VisitMut<'ast, T, > + ?Sized,
3310{
3311    visitor.visit_if_exists_behavior_mut(&mut node.if_exists);
3312    visitor.visit_view_definition_mut(&mut node.definition);
3313}
3314impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceBody {
3315    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3316        visitor.visit_create_webhook_source_body_mut(self)
3317    }
3318}
3319#[allow(clippy::needless_pass_by_ref_mut)]
3320pub fn visit_create_webhook_source_body_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceBody)
3321where
3322    V: VisitMut<'ast, T, > + ?Sized,
3323{
3324    if let Some(v) = &mut node.alias {
3325        visitor.visit_ident_mut(v);
3326    }
3327}
3328impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceCheck<T> {
3329    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3330        visitor.visit_create_webhook_source_check_mut(self)
3331    }
3332}
3333#[allow(clippy::needless_pass_by_ref_mut)]
3334pub fn visit_create_webhook_source_check_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceCheck<T>)
3335where
3336    V: VisitMut<'ast, T, > + ?Sized,
3337{
3338    if let Some(v) = &mut node.options {
3339        visitor.visit_create_webhook_source_check_options_mut(v);
3340    }
3341    visitor.visit_expr_mut(&mut node.using);
3342}
3343impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceCheckOptions<T> {
3344    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3345        visitor.visit_create_webhook_source_check_options_mut(self)
3346    }
3347}
3348#[allow(clippy::needless_pass_by_ref_mut)]
3349pub fn visit_create_webhook_source_check_options_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceCheckOptions<T>)
3350where
3351    V: VisitMut<'ast, T, > + ?Sized,
3352{
3353    for v in &mut node.secrets {
3354        visitor.visit_create_webhook_source_secret_mut(v);
3355    }
3356    for v in &mut node.headers {
3357        visitor.visit_create_webhook_source_header_mut(v);
3358    }
3359    for v in &mut node.bodies {
3360        visitor.visit_create_webhook_source_body_mut(v);
3361    }
3362}
3363impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceFilterHeader {
3364    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3365        visitor.visit_create_webhook_source_filter_header_mut(self)
3366    }
3367}
3368#[allow(clippy::needless_pass_by_ref_mut)]
3369pub fn visit_create_webhook_source_filter_header_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceFilterHeader)
3370where
3371    V: VisitMut<'ast, T, > + ?Sized,
3372{
3373}
3374impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceHeader {
3375    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3376        visitor.visit_create_webhook_source_header_mut(self)
3377    }
3378}
3379#[allow(clippy::needless_pass_by_ref_mut)]
3380pub fn visit_create_webhook_source_header_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceHeader)
3381where
3382    V: VisitMut<'ast, T, > + ?Sized,
3383{
3384    if let Some(v) = &mut node.alias {
3385        visitor.visit_ident_mut(v);
3386    }
3387}
3388impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceIncludeHeaders {
3389    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3390        visitor.visit_create_webhook_source_include_headers_mut(self)
3391    }
3392}
3393#[allow(clippy::needless_pass_by_ref_mut)]
3394pub fn visit_create_webhook_source_include_headers_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceIncludeHeaders)
3395where
3396    V: VisitMut<'ast, T, > + ?Sized,
3397{
3398    for v in &mut node.mappings {
3399        visitor.visit_create_webhook_source_map_header_mut(v);
3400    }
3401    if let Some(v) = &mut node.column {
3402        for v in v {
3403            visitor.visit_create_webhook_source_filter_header_mut(v);
3404        }
3405    }
3406}
3407impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceMapHeader {
3408    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3409        visitor.visit_create_webhook_source_map_header_mut(self)
3410    }
3411}
3412#[allow(clippy::needless_pass_by_ref_mut)]
3413pub fn visit_create_webhook_source_map_header_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceMapHeader)
3414where
3415    V: VisitMut<'ast, T, > + ?Sized,
3416{
3417    visitor.visit_ident_mut(&mut node.column_name);
3418}
3419impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceSecret<T> {
3420    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3421        visitor.visit_create_webhook_source_secret_mut(self)
3422    }
3423}
3424#[allow(clippy::needless_pass_by_ref_mut)]
3425pub fn visit_create_webhook_source_secret_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceSecret<T>)
3426where
3427    V: VisitMut<'ast, T, > + ?Sized,
3428{
3429    visitor.visit_item_name_mut(&mut node.secret);
3430    if let Some(v) = &mut node.alias {
3431        visitor.visit_ident_mut(v);
3432    }
3433}
3434impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CreateWebhookSourceStatement<T> {
3435    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3436        visitor.visit_create_webhook_source_statement_mut(self)
3437    }
3438}
3439#[allow(clippy::needless_pass_by_ref_mut)]
3440pub fn visit_create_webhook_source_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CreateWebhookSourceStatement<T>)
3441where
3442    V: VisitMut<'ast, T, > + ?Sized,
3443{
3444    visitor.visit_unresolved_item_name_mut(&mut node.name);
3445    visitor.visit_format_mut(&mut node.body_format);
3446    visitor.visit_create_webhook_source_include_headers_mut(&mut node.include_headers);
3447    if let Some(v) = &mut node.validate_using {
3448        visitor.visit_create_webhook_source_check_mut(v);
3449    }
3450    if let Some(v) = &mut node.in_cluster {
3451        visitor.visit_cluster_name_mut(v);
3452    }
3453}
3454impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrConfigOption<T> {
3455    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3456        visitor.visit_csr_config_option_mut(self)
3457    }
3458}
3459#[allow(clippy::needless_pass_by_ref_mut)]
3460pub fn visit_csr_config_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrConfigOption<T>)
3461where
3462    V: VisitMut<'ast, T, > + ?Sized,
3463{
3464    visitor.visit_csr_config_option_name_mut(&mut node.name);
3465    if let Some(v) = &mut node.value {
3466        visitor.visit_with_option_value_mut(v);
3467    }
3468}
3469impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrConfigOptionName<T> {
3470    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3471        visitor.visit_csr_config_option_name_mut(self)
3472    }
3473}
3474#[allow(clippy::needless_pass_by_ref_mut)]
3475pub fn visit_csr_config_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrConfigOptionName<T>)
3476where
3477    V: VisitMut<'ast, T, > + ?Sized,
3478{
3479    match node {
3480        CsrConfigOptionName::AvroKeyFullname {
3481        } => {
3482        }
3483        CsrConfigOptionName::AvroValueFullname {
3484        } => {
3485        }
3486        CsrConfigOptionName::NullDefaults {
3487        } => {
3488        }
3489        CsrConfigOptionName::AvroDocOn {
3490            0: binding0,
3491        } => {
3492            visitor.visit_avro_doc_on_mut(binding0);
3493        }
3494        CsrConfigOptionName::KeyCompatibilityLevel {
3495        } => {
3496        }
3497        CsrConfigOptionName::ValueCompatibilityLevel {
3498        } => {
3499        }
3500    }
3501}
3502impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrConnection<T> {
3503    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3504        visitor.visit_csr_connection_mut(self)
3505    }
3506}
3507#[allow(clippy::needless_pass_by_ref_mut)]
3508pub fn visit_csr_connection_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrConnection<T>)
3509where
3510    V: VisitMut<'ast, T, > + ?Sized,
3511{
3512    visitor.visit_item_name_mut(&mut node.connection);
3513    for v in &mut node.options {
3514        visitor.visit_csr_config_option_mut(v);
3515    }
3516}
3517impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrConnectionAvro<T> {
3518    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3519        visitor.visit_csr_connection_avro_mut(self)
3520    }
3521}
3522#[allow(clippy::needless_pass_by_ref_mut)]
3523pub fn visit_csr_connection_avro_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrConnectionAvro<T>)
3524where
3525    V: VisitMut<'ast, T, > + ?Sized,
3526{
3527    visitor.visit_csr_connection_mut(&mut node.connection);
3528    if let Some(v) = &mut node.key_strategy {
3529        visitor.visit_reader_schema_selection_strategy_mut(v);
3530    }
3531    if let Some(v) = &mut node.value_strategy {
3532        visitor.visit_reader_schema_selection_strategy_mut(v);
3533    }
3534    if let Some(v) = &mut node.seed {
3535        visitor.visit_csr_seed_avro_mut(v);
3536    }
3537}
3538impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrConnectionProtobuf<T> {
3539    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3540        visitor.visit_csr_connection_protobuf_mut(self)
3541    }
3542}
3543#[allow(clippy::needless_pass_by_ref_mut)]
3544pub fn visit_csr_connection_protobuf_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrConnectionProtobuf<T>)
3545where
3546    V: VisitMut<'ast, T, > + ?Sized,
3547{
3548    visitor.visit_csr_connection_mut(&mut node.connection);
3549    if let Some(v) = &mut node.seed {
3550        visitor.visit_csr_seed_protobuf_mut(v);
3551    }
3552}
3553impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrSeedAvro {
3554    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3555        visitor.visit_csr_seed_avro_mut(self)
3556    }
3557}
3558#[allow(clippy::needless_pass_by_ref_mut)]
3559pub fn visit_csr_seed_avro_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrSeedAvro)
3560where
3561    V: VisitMut<'ast, T, > + ?Sized,
3562{
3563    if let Some(v) = &mut node.key_schema {
3564    }
3565    for v in &mut node.key_reference_schemas {
3566    }
3567    for v in &mut node.value_reference_schemas {
3568    }
3569}
3570impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrSeedProtobuf {
3571    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3572        visitor.visit_csr_seed_protobuf_mut(self)
3573    }
3574}
3575#[allow(clippy::needless_pass_by_ref_mut)]
3576pub fn visit_csr_seed_protobuf_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrSeedProtobuf)
3577where
3578    V: VisitMut<'ast, T, > + ?Sized,
3579{
3580    if let Some(v) = &mut node.key {
3581        visitor.visit_csr_seed_protobuf_schema_mut(v);
3582    }
3583    visitor.visit_csr_seed_protobuf_schema_mut(&mut node.value);
3584}
3585impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsrSeedProtobufSchema {
3586    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3587        visitor.visit_csr_seed_protobuf_schema_mut(self)
3588    }
3589}
3590#[allow(clippy::needless_pass_by_ref_mut)]
3591pub fn visit_csr_seed_protobuf_schema_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsrSeedProtobufSchema)
3592where
3593    V: VisitMut<'ast, T, > + ?Sized,
3594{
3595}
3596impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CsvColumns {
3597    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3598        visitor.visit_csv_columns_mut(self)
3599    }
3600}
3601#[allow(clippy::needless_pass_by_ref_mut)]
3602pub fn visit_csv_columns_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CsvColumns)
3603where
3604    V: VisitMut<'ast, T, > + ?Sized,
3605{
3606    match node {
3607        CsvColumns::Count {
3608            0: binding0,
3609        } => {
3610        }
3611        CsvColumns::Header {
3612            names: binding0,
3613        } => {
3614            for v in binding0 {
3615                visitor.visit_ident_mut(v);
3616            }
3617        }
3618    }
3619}
3620impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Cte<T> {
3621    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3622        visitor.visit_cte_mut(self)
3623    }
3624}
3625#[allow(clippy::needless_pass_by_ref_mut)]
3626pub fn visit_cte_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Cte<T>)
3627where
3628    V: VisitMut<'ast, T, > + ?Sized,
3629{
3630    visitor.visit_table_alias_mut(&mut node.alias);
3631    visitor.visit_cte_id_mut(&mut node.id);
3632    visitor.visit_query_mut(&mut node.query);
3633}
3634impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CteBlock<T> {
3635    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3636        visitor.visit_cte_block_mut(self)
3637    }
3638}
3639#[allow(clippy::needless_pass_by_ref_mut)]
3640pub fn visit_cte_block_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CteBlock<T>)
3641where
3642    V: VisitMut<'ast, T, > + ?Sized,
3643{
3644    match node {
3645        CteBlock::Simple {
3646            0: binding0,
3647        } => {
3648            for v in binding0 {
3649                visitor.visit_cte_mut(v);
3650            }
3651        }
3652        CteBlock::MutuallyRecursive {
3653            0: binding0,
3654        } => {
3655            visitor.visit_mut_rec_block_mut(binding0);
3656        }
3657    }
3658}
3659impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CteMutRec<T> {
3660    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3661        visitor.visit_cte_mut_rec_mut(self)
3662    }
3663}
3664#[allow(clippy::needless_pass_by_ref_mut)]
3665pub fn visit_cte_mut_rec_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CteMutRec<T>)
3666where
3667    V: VisitMut<'ast, T, > + ?Sized,
3668{
3669    visitor.visit_ident_mut(&mut node.name);
3670    for v in &mut node.columns {
3671        visitor.visit_cte_mut_rec_column_def_mut(v);
3672    }
3673    visitor.visit_cte_id_mut(&mut node.id);
3674    visitor.visit_query_mut(&mut node.query);
3675}
3676impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for CteMutRecColumnDef<T> {
3677    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3678        visitor.visit_cte_mut_rec_column_def_mut(self)
3679    }
3680}
3681#[allow(clippy::needless_pass_by_ref_mut)]
3682pub fn visit_cte_mut_rec_column_def_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut CteMutRecColumnDef<T>)
3683where
3684    V: VisitMut<'ast, T, > + ?Sized,
3685{
3686    visitor.visit_ident_mut(&mut node.name);
3687    visitor.visit_data_type_mut(&mut node.data_type);
3688}
3689impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DateTimeField {
3690    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3691        visitor.visit_date_time_field_mut(self)
3692    }
3693}
3694#[allow(clippy::needless_pass_by_ref_mut)]
3695pub fn visit_date_time_field_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DateTimeField)
3696where
3697    V: VisitMut<'ast, T, > + ?Sized,
3698{
3699    match node {
3700        DateTimeField::Millennium {
3701        } => {
3702        }
3703        DateTimeField::Century {
3704        } => {
3705        }
3706        DateTimeField::Decade {
3707        } => {
3708        }
3709        DateTimeField::Year {
3710        } => {
3711        }
3712        DateTimeField::Month {
3713        } => {
3714        }
3715        DateTimeField::Day {
3716        } => {
3717        }
3718        DateTimeField::Hour {
3719        } => {
3720        }
3721        DateTimeField::Minute {
3722        } => {
3723        }
3724        DateTimeField::Second {
3725        } => {
3726        }
3727        DateTimeField::Milliseconds {
3728        } => {
3729        }
3730        DateTimeField::Microseconds {
3731        } => {
3732        }
3733    }
3734}
3735impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DeallocateStatement {
3736    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3737        visitor.visit_deallocate_statement_mut(self)
3738    }
3739}
3740#[allow(clippy::needless_pass_by_ref_mut)]
3741pub fn visit_deallocate_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DeallocateStatement)
3742where
3743    V: VisitMut<'ast, T, > + ?Sized,
3744{
3745    if let Some(v) = &mut node.name {
3746        visitor.visit_ident_mut(v);
3747    }
3748}
3749impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DeclareStatement<T> {
3750    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3751        visitor.visit_declare_statement_mut(self)
3752    }
3753}
3754#[allow(clippy::needless_pass_by_ref_mut)]
3755pub fn visit_declare_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DeclareStatement<T>)
3756where
3757    V: VisitMut<'ast, T, > + ?Sized,
3758{
3759    visitor.visit_ident_mut(&mut node.name);
3760    visitor.visit_nested_statement_mut(&mut *&mut node.stmt);
3761}
3762impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DeferredItemName<T> {
3763    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3764        visitor.visit_deferred_item_name_mut(self)
3765    }
3766}
3767#[allow(clippy::needless_pass_by_ref_mut)]
3768pub fn visit_deferred_item_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DeferredItemName<T>)
3769where
3770    V: VisitMut<'ast, T, > + ?Sized,
3771{
3772    match node {
3773        DeferredItemName::Named {
3774            0: binding0,
3775        } => {
3776            visitor.visit_item_name_mut(binding0);
3777        }
3778        DeferredItemName::Deferred {
3779            0: binding0,
3780        } => {
3781            visitor.visit_unresolved_item_name_mut(binding0);
3782        }
3783    }
3784}
3785impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DeleteStatement<T> {
3786    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3787        visitor.visit_delete_statement_mut(self)
3788    }
3789}
3790#[allow(clippy::needless_pass_by_ref_mut)]
3791pub fn visit_delete_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DeleteStatement<T>)
3792where
3793    V: VisitMut<'ast, T, > + ?Sized,
3794{
3795    visitor.visit_item_name_mut(&mut node.table_name);
3796    if let Some(v) = &mut node.alias {
3797        visitor.visit_table_alias_mut(v);
3798    }
3799    for v in &mut node.using {
3800        visitor.visit_table_with_joins_mut(v);
3801    }
3802    if let Some(v) = &mut node.selection {
3803        visitor.visit_expr_mut(v);
3804    }
3805}
3806impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DiscardStatement {
3807    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3808        visitor.visit_discard_statement_mut(self)
3809    }
3810}
3811#[allow(clippy::needless_pass_by_ref_mut)]
3812pub fn visit_discard_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DiscardStatement)
3813where
3814    V: VisitMut<'ast, T, > + ?Sized,
3815{
3816    visitor.visit_discard_target_mut(&mut node.target);
3817}
3818impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DiscardTarget {
3819    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3820        visitor.visit_discard_target_mut(self)
3821    }
3822}
3823#[allow(clippy::needless_pass_by_ref_mut)]
3824pub fn visit_discard_target_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DiscardTarget)
3825where
3826    V: VisitMut<'ast, T, > + ?Sized,
3827{
3828    match node {
3829        DiscardTarget::Plans {
3830        } => {
3831        }
3832        DiscardTarget::Sequences {
3833        } => {
3834        }
3835        DiscardTarget::Temp {
3836        } => {
3837        }
3838        DiscardTarget::All {
3839        } => {
3840        }
3841    }
3842}
3843impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Distinct<T> {
3844    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3845        visitor.visit_distinct_mut(self)
3846    }
3847}
3848#[allow(clippy::needless_pass_by_ref_mut)]
3849pub fn visit_distinct_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Distinct<T>)
3850where
3851    V: VisitMut<'ast, T, > + ?Sized,
3852{
3853    match node {
3854        Distinct::EntireRow {
3855        } => {
3856        }
3857        Distinct::On {
3858            0: binding0,
3859        } => {
3860            for v in binding0 {
3861                visitor.visit_expr_mut(v);
3862            }
3863        }
3864    }
3865}
3866impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DocOnIdentifier<T> {
3867    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3868        visitor.visit_doc_on_identifier_mut(self)
3869    }
3870}
3871#[allow(clippy::needless_pass_by_ref_mut)]
3872pub fn visit_doc_on_identifier_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DocOnIdentifier<T>)
3873where
3874    V: VisitMut<'ast, T, > + ?Sized,
3875{
3876    match node {
3877        DocOnIdentifier::Column {
3878            0: binding0,
3879        } => {
3880            visitor.visit_column_name_mut(binding0);
3881        }
3882        DocOnIdentifier::Type {
3883            0: binding0,
3884        } => {
3885            visitor.visit_item_name_mut(binding0);
3886        }
3887    }
3888}
3889impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DocOnSchema {
3890    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3891        visitor.visit_doc_on_schema_mut(self)
3892    }
3893}
3894#[allow(clippy::needless_pass_by_ref_mut)]
3895pub fn visit_doc_on_schema_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DocOnSchema)
3896where
3897    V: VisitMut<'ast, T, > + ?Sized,
3898{
3899    match node {
3900        DocOnSchema::KeyOnly {
3901        } => {
3902        }
3903        DocOnSchema::ValueOnly {
3904        } => {
3905        }
3906        DocOnSchema::All {
3907        } => {
3908        }
3909    }
3910}
3911impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DropObjectsStatement {
3912    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3913        visitor.visit_drop_objects_statement_mut(self)
3914    }
3915}
3916#[allow(clippy::needless_pass_by_ref_mut)]
3917pub fn visit_drop_objects_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DropObjectsStatement)
3918where
3919    V: VisitMut<'ast, T, > + ?Sized,
3920{
3921    visitor.visit_object_type_mut(&mut node.object_type);
3922    for v in &mut node.names {
3923        visitor.visit_unresolved_object_name_mut(v);
3924    }
3925}
3926impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for DropOwnedStatement<T> {
3927    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3928        visitor.visit_drop_owned_statement_mut(self)
3929    }
3930}
3931#[allow(clippy::needless_pass_by_ref_mut)]
3932pub fn visit_drop_owned_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut DropOwnedStatement<T>)
3933where
3934    V: VisitMut<'ast, T, > + ?Sized,
3935{
3936    for v in &mut node.role_names {
3937        visitor.visit_role_name_mut(v);
3938    }
3939    if let Some(v) = &mut node.cascade {
3940    }
3941}
3942impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExecuteStatement<T> {
3943    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3944        visitor.visit_execute_statement_mut(self)
3945    }
3946}
3947#[allow(clippy::needless_pass_by_ref_mut)]
3948pub fn visit_execute_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExecuteStatement<T>)
3949where
3950    V: VisitMut<'ast, T, > + ?Sized,
3951{
3952    visitor.visit_ident_mut(&mut node.name);
3953    for v in &mut node.params {
3954        visitor.visit_expr_mut(v);
3955    }
3956}
3957impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainAnalyzeClusterStatement {
3958    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3959        visitor.visit_explain_analyze_cluster_statement_mut(self)
3960    }
3961}
3962#[allow(clippy::needless_pass_by_ref_mut)]
3963pub fn visit_explain_analyze_cluster_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainAnalyzeClusterStatement)
3964where
3965    V: VisitMut<'ast, T, > + ?Sized,
3966{
3967    visitor.visit_explain_analyze_computation_properties_mut(&mut node.properties);
3968}
3969impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainAnalyzeComputationProperties {
3970    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3971        visitor.visit_explain_analyze_computation_properties_mut(self)
3972    }
3973}
3974#[allow(clippy::needless_pass_by_ref_mut)]
3975pub fn visit_explain_analyze_computation_properties_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainAnalyzeComputationProperties)
3976where
3977    V: VisitMut<'ast, T, > + ?Sized,
3978{
3979    for v in &mut node.properties {
3980        visitor.visit_explain_analyze_computation_property_mut(v);
3981    }
3982}
3983impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainAnalyzeComputationProperty {
3984    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
3985        visitor.visit_explain_analyze_computation_property_mut(self)
3986    }
3987}
3988#[allow(clippy::needless_pass_by_ref_mut)]
3989pub fn visit_explain_analyze_computation_property_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainAnalyzeComputationProperty)
3990where
3991    V: VisitMut<'ast, T, > + ?Sized,
3992{
3993    match node {
3994        ExplainAnalyzeComputationProperty::Cpu {
3995        } => {
3996        }
3997        ExplainAnalyzeComputationProperty::Memory {
3998        } => {
3999        }
4000    }
4001}
4002impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainAnalyzeObjectStatement<T> {
4003    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4004        visitor.visit_explain_analyze_object_statement_mut(self)
4005    }
4006}
4007#[allow(clippy::needless_pass_by_ref_mut)]
4008pub fn visit_explain_analyze_object_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainAnalyzeObjectStatement<T>)
4009where
4010    V: VisitMut<'ast, T, > + ?Sized,
4011{
4012    visitor.visit_explain_analyze_property_mut(&mut node.properties);
4013    visitor.visit_explainee_mut(&mut node.explainee);
4014}
4015impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainAnalyzeProperty {
4016    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4017        visitor.visit_explain_analyze_property_mut(self)
4018    }
4019}
4020#[allow(clippy::needless_pass_by_ref_mut)]
4021pub fn visit_explain_analyze_property_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainAnalyzeProperty)
4022where
4023    V: VisitMut<'ast, T, > + ?Sized,
4024{
4025    match node {
4026        ExplainAnalyzeProperty::Computation {
4027            0: binding0,
4028        } => {
4029            visitor.visit_explain_analyze_computation_properties_mut(binding0);
4030        }
4031        ExplainAnalyzeProperty::Hints {
4032        } => {
4033        }
4034    }
4035}
4036impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainFormat {
4037    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4038        visitor.visit_explain_format_mut(self)
4039    }
4040}
4041#[allow(clippy::needless_pass_by_ref_mut)]
4042pub fn visit_explain_format_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainFormat)
4043where
4044    V: VisitMut<'ast, T, > + ?Sized,
4045{
4046    match node {
4047        ExplainFormat::Text {
4048        } => {
4049        }
4050        ExplainFormat::VerboseText {
4051        } => {
4052        }
4053        ExplainFormat::Json {
4054        } => {
4055        }
4056        ExplainFormat::Dot {
4057        } => {
4058        }
4059    }
4060}
4061impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainPlanOption<T> {
4062    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4063        visitor.visit_explain_plan_option_mut(self)
4064    }
4065}
4066#[allow(clippy::needless_pass_by_ref_mut)]
4067pub fn visit_explain_plan_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainPlanOption<T>)
4068where
4069    V: VisitMut<'ast, T, > + ?Sized,
4070{
4071    visitor.visit_explain_plan_option_name_mut(&mut node.name);
4072    if let Some(v) = &mut node.value {
4073        visitor.visit_with_option_value_mut(v);
4074    }
4075}
4076impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainPlanOptionName {
4077    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4078        visitor.visit_explain_plan_option_name_mut(self)
4079    }
4080}
4081#[allow(clippy::needless_pass_by_ref_mut)]
4082pub fn visit_explain_plan_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainPlanOptionName)
4083where
4084    V: VisitMut<'ast, T, > + ?Sized,
4085{
4086    match node {
4087        ExplainPlanOptionName::Arity {
4088        } => {
4089        }
4090        ExplainPlanOptionName::Cardinality {
4091        } => {
4092        }
4093        ExplainPlanOptionName::ColumnNames {
4094        } => {
4095        }
4096        ExplainPlanOptionName::FilterPushdown {
4097        } => {
4098        }
4099        ExplainPlanOptionName::HumanizedExpressions {
4100        } => {
4101        }
4102        ExplainPlanOptionName::JoinImplementations {
4103        } => {
4104        }
4105        ExplainPlanOptionName::Keys {
4106        } => {
4107        }
4108        ExplainPlanOptionName::LinearChains {
4109        } => {
4110        }
4111        ExplainPlanOptionName::NonNegative {
4112        } => {
4113        }
4114        ExplainPlanOptionName::NoFastPath {
4115        } => {
4116        }
4117        ExplainPlanOptionName::NoNotices {
4118        } => {
4119        }
4120        ExplainPlanOptionName::NodeIdentifiers {
4121        } => {
4122        }
4123        ExplainPlanOptionName::RawPlans {
4124        } => {
4125        }
4126        ExplainPlanOptionName::RawSyntax {
4127        } => {
4128        }
4129        ExplainPlanOptionName::Raw {
4130        } => {
4131        }
4132        ExplainPlanOptionName::Redacted {
4133        } => {
4134        }
4135        ExplainPlanOptionName::SubtreeSize {
4136        } => {
4137        }
4138        ExplainPlanOptionName::Timing {
4139        } => {
4140        }
4141        ExplainPlanOptionName::Types {
4142        } => {
4143        }
4144        ExplainPlanOptionName::Equivalences {
4145        } => {
4146        }
4147        ExplainPlanOptionName::ReoptimizeImportedViews {
4148        } => {
4149        }
4150        ExplainPlanOptionName::EnableNewOuterJoinLowering {
4151        } => {
4152        }
4153        ExplainPlanOptionName::EnableEagerDeltaJoins {
4154        } => {
4155        }
4156        ExplainPlanOptionName::EnableVariadicLeftJoinLowering {
4157        } => {
4158        }
4159        ExplainPlanOptionName::EnableLetrecFixpointAnalysis {
4160        } => {
4161        }
4162        ExplainPlanOptionName::EnableJoinPrioritizeArranged {
4163        } => {
4164        }
4165        ExplainPlanOptionName::EnableProjectionPushdownAfterRelationCse {
4166        } => {
4167        }
4168    }
4169}
4170impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainPlanStatement<T> {
4171    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4172        visitor.visit_explain_plan_statement_mut(self)
4173    }
4174}
4175#[allow(clippy::needless_pass_by_ref_mut)]
4176pub fn visit_explain_plan_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainPlanStatement<T>)
4177where
4178    V: VisitMut<'ast, T, > + ?Sized,
4179{
4180    if let Some(v) = &mut node.stage {
4181        visitor.visit_explain_stage_mut(v);
4182    }
4183    for v in &mut node.with_options {
4184        visitor.visit_explain_plan_option_mut(v);
4185    }
4186    if let Some(v) = &mut node.format {
4187        visitor.visit_explain_format_mut(v);
4188    }
4189    visitor.visit_explainee_mut(&mut node.explainee);
4190}
4191impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainPushdownStatement<T> {
4192    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4193        visitor.visit_explain_pushdown_statement_mut(self)
4194    }
4195}
4196#[allow(clippy::needless_pass_by_ref_mut)]
4197pub fn visit_explain_pushdown_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainPushdownStatement<T>)
4198where
4199    V: VisitMut<'ast, T, > + ?Sized,
4200{
4201    visitor.visit_explainee_mut(&mut node.explainee);
4202}
4203impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainSinkSchemaFor {
4204    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4205        visitor.visit_explain_sink_schema_for_mut(self)
4206    }
4207}
4208#[allow(clippy::needless_pass_by_ref_mut)]
4209pub fn visit_explain_sink_schema_for_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainSinkSchemaFor)
4210where
4211    V: VisitMut<'ast, T, > + ?Sized,
4212{
4213    match node {
4214        ExplainSinkSchemaFor::Key {
4215        } => {
4216        }
4217        ExplainSinkSchemaFor::Value {
4218        } => {
4219        }
4220    }
4221}
4222impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainSinkSchemaStatement<T> {
4223    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4224        visitor.visit_explain_sink_schema_statement_mut(self)
4225    }
4226}
4227#[allow(clippy::needless_pass_by_ref_mut)]
4228pub fn visit_explain_sink_schema_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainSinkSchemaStatement<T>)
4229where
4230    V: VisitMut<'ast, T, > + ?Sized,
4231{
4232    visitor.visit_explain_sink_schema_for_mut(&mut node.schema_for);
4233    if let Some(v) = &mut node.format {
4234        visitor.visit_explain_format_mut(v);
4235    }
4236    visitor.visit_create_sink_statement_mut(&mut node.statement);
4237}
4238impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainStage {
4239    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4240        visitor.visit_explain_stage_mut(self)
4241    }
4242}
4243#[allow(clippy::needless_pass_by_ref_mut)]
4244pub fn visit_explain_stage_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainStage)
4245where
4246    V: VisitMut<'ast, T, > + ?Sized,
4247{
4248    match node {
4249        ExplainStage::RawPlan {
4250        } => {
4251        }
4252        ExplainStage::DecorrelatedPlan {
4253        } => {
4254        }
4255        ExplainStage::LocalPlan {
4256        } => {
4257        }
4258        ExplainStage::GlobalPlan {
4259        } => {
4260        }
4261        ExplainStage::PhysicalPlan {
4262        } => {
4263        }
4264        ExplainStage::Trace {
4265        } => {
4266        }
4267        ExplainStage::PlanInsights {
4268        } => {
4269        }
4270    }
4271}
4272impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExplainTimestampStatement<T> {
4273    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4274        visitor.visit_explain_timestamp_statement_mut(self)
4275    }
4276}
4277#[allow(clippy::needless_pass_by_ref_mut)]
4278pub fn visit_explain_timestamp_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExplainTimestampStatement<T>)
4279where
4280    V: VisitMut<'ast, T, > + ?Sized,
4281{
4282    if let Some(v) = &mut node.format {
4283        visitor.visit_explain_format_mut(v);
4284    }
4285    visitor.visit_select_statement_mut(&mut node.select);
4286}
4287impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Explainee<T> {
4288    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4289        visitor.visit_explainee_mut(self)
4290    }
4291}
4292#[allow(clippy::needless_pass_by_ref_mut)]
4293pub fn visit_explainee_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Explainee<T>)
4294where
4295    V: VisitMut<'ast, T, > + ?Sized,
4296{
4297    match node {
4298        Explainee::View {
4299            0: binding0,
4300        } => {
4301            visitor.visit_item_name_mut(binding0);
4302        }
4303        Explainee::MaterializedView {
4304            0: binding0,
4305        } => {
4306            visitor.visit_item_name_mut(binding0);
4307        }
4308        Explainee::Index {
4309            0: binding0,
4310        } => {
4311            visitor.visit_item_name_mut(binding0);
4312        }
4313        Explainee::ReplanView {
4314            0: binding0,
4315        } => {
4316            visitor.visit_item_name_mut(binding0);
4317        }
4318        Explainee::ReplanMaterializedView {
4319            0: binding0,
4320        } => {
4321            visitor.visit_item_name_mut(binding0);
4322        }
4323        Explainee::ReplanIndex {
4324            0: binding0,
4325        } => {
4326            visitor.visit_item_name_mut(binding0);
4327        }
4328        Explainee::Select {
4329            0: binding0,
4330            1: binding1,
4331        } => {
4332            visitor.visit_select_statement_mut(&mut *binding0);
4333        }
4334        Explainee::CreateView {
4335            0: binding0,
4336            1: binding1,
4337        } => {
4338            visitor.visit_create_view_statement_mut(&mut *binding0);
4339        }
4340        Explainee::CreateMaterializedView {
4341            0: binding0,
4342            1: binding1,
4343        } => {
4344            visitor.visit_create_materialized_view_statement_mut(&mut *binding0);
4345        }
4346        Explainee::CreateIndex {
4347            0: binding0,
4348            1: binding1,
4349        } => {
4350            visitor.visit_create_index_statement_mut(&mut *binding0);
4351        }
4352        Explainee::Subscribe {
4353            0: binding0,
4354            1: binding1,
4355        } => {
4356            visitor.visit_subscribe_statement_mut(&mut *binding0);
4357        }
4358    }
4359}
4360impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Expr<T> {
4361    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4362        visitor.visit_expr_mut(self)
4363    }
4364}
4365#[allow(clippy::needless_pass_by_ref_mut)]
4366pub fn visit_expr_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Expr<T>)
4367where
4368    V: VisitMut<'ast, T, > + ?Sized,
4369{
4370    match node {
4371        Expr::Identifier {
4372            0: binding0,
4373        } => {
4374            for v in binding0 {
4375                visitor.visit_ident_mut(v);
4376            }
4377        }
4378        Expr::QualifiedWildcard {
4379            0: binding0,
4380        } => {
4381            for v in binding0 {
4382                visitor.visit_ident_mut(v);
4383            }
4384        }
4385        Expr::FieldAccess {
4386            expr: binding0,
4387            field: binding1,
4388        } => {
4389            visitor.visit_expr_mut(&mut *binding0);
4390            visitor.visit_ident_mut(binding1);
4391        }
4392        Expr::WildcardAccess {
4393            0: binding0,
4394        } => {
4395            visitor.visit_expr_mut(&mut *binding0);
4396        }
4397        Expr::Parameter {
4398            0: binding0,
4399        } => {
4400        }
4401        Expr::Not {
4402            expr: binding0,
4403        } => {
4404            visitor.visit_expr_mut(&mut *binding0);
4405        }
4406        Expr::And {
4407            left: binding0,
4408            right: binding1,
4409        } => {
4410            visitor.visit_expr_mut(&mut *binding0);
4411            visitor.visit_expr_mut(&mut *binding1);
4412        }
4413        Expr::Or {
4414            left: binding0,
4415            right: binding1,
4416        } => {
4417            visitor.visit_expr_mut(&mut *binding0);
4418            visitor.visit_expr_mut(&mut *binding1);
4419        }
4420        Expr::IsExpr {
4421            expr: binding0,
4422            construct: binding1,
4423            negated: binding2,
4424        } => {
4425            visitor.visit_expr_mut(&mut *binding0);
4426            visitor.visit_is_expr_construct_mut(binding1);
4427        }
4428        Expr::InList {
4429            expr: binding0,
4430            list: binding1,
4431            negated: binding2,
4432        } => {
4433            visitor.visit_expr_mut(&mut *binding0);
4434            for v in binding1 {
4435                visitor.visit_expr_mut(v);
4436            }
4437        }
4438        Expr::InSubquery {
4439            expr: binding0,
4440            subquery: binding1,
4441            negated: binding2,
4442        } => {
4443            visitor.visit_expr_mut(&mut *binding0);
4444            visitor.visit_query_mut(&mut *binding1);
4445        }
4446        Expr::Like {
4447            expr: binding0,
4448            pattern: binding1,
4449            escape: binding2,
4450            case_insensitive: binding3,
4451            negated: binding4,
4452        } => {
4453            visitor.visit_expr_mut(&mut *binding0);
4454            visitor.visit_expr_mut(&mut *binding1);
4455            if let Some(v) = binding2 {
4456                visitor.visit_expr_mut(&mut *v);
4457            }
4458        }
4459        Expr::Between {
4460            expr: binding0,
4461            negated: binding1,
4462            low: binding2,
4463            high: binding3,
4464        } => {
4465            visitor.visit_expr_mut(&mut *binding0);
4466            visitor.visit_expr_mut(&mut *binding2);
4467            visitor.visit_expr_mut(&mut *binding3);
4468        }
4469        Expr::Op {
4470            op: binding0,
4471            expr1: binding1,
4472            expr2: binding2,
4473        } => {
4474            visitor.visit_op_mut(binding0);
4475            visitor.visit_expr_mut(&mut *binding1);
4476            if let Some(v) = binding2 {
4477                visitor.visit_expr_mut(&mut *v);
4478            }
4479        }
4480        Expr::Cast {
4481            expr: binding0,
4482            data_type: binding1,
4483        } => {
4484            visitor.visit_expr_mut(&mut *binding0);
4485            visitor.visit_data_type_mut(binding1);
4486        }
4487        Expr::Collate {
4488            expr: binding0,
4489            collation: binding1,
4490        } => {
4491            visitor.visit_expr_mut(&mut *binding0);
4492            visitor.visit_unresolved_item_name_mut(binding1);
4493        }
4494        Expr::HomogenizingFunction {
4495            function: binding0,
4496            exprs: binding1,
4497        } => {
4498            visitor.visit_homogenizing_function_mut(binding0);
4499            for v in binding1 {
4500                visitor.visit_expr_mut(v);
4501            }
4502        }
4503        Expr::NullIf {
4504            l_expr: binding0,
4505            r_expr: binding1,
4506        } => {
4507            visitor.visit_expr_mut(&mut *binding0);
4508            visitor.visit_expr_mut(&mut *binding1);
4509        }
4510        Expr::Nested {
4511            0: binding0,
4512        } => {
4513            visitor.visit_expr_mut(&mut *binding0);
4514        }
4515        Expr::Row {
4516            exprs: binding0,
4517        } => {
4518            for v in binding0 {
4519                visitor.visit_expr_mut(v);
4520            }
4521        }
4522        Expr::Value {
4523            0: binding0,
4524        } => {
4525            visitor.visit_value_mut(binding0);
4526        }
4527        Expr::Function {
4528            0: binding0,
4529        } => {
4530            visitor.visit_function_mut(binding0);
4531        }
4532        Expr::Case {
4533            operand: binding0,
4534            conditions: binding1,
4535            results: binding2,
4536            else_result: binding3,
4537        } => {
4538            if let Some(v) = binding0 {
4539                visitor.visit_expr_mut(&mut *v);
4540            }
4541            for v in binding1 {
4542                visitor.visit_expr_mut(v);
4543            }
4544            for v in binding2 {
4545                visitor.visit_expr_mut(v);
4546            }
4547            if let Some(v) = binding3 {
4548                visitor.visit_expr_mut(&mut *v);
4549            }
4550        }
4551        Expr::Exists {
4552            0: binding0,
4553        } => {
4554            visitor.visit_query_mut(&mut *binding0);
4555        }
4556        Expr::Subquery {
4557            0: binding0,
4558        } => {
4559            visitor.visit_query_mut(&mut *binding0);
4560        }
4561        Expr::AnySubquery {
4562            left: binding0,
4563            op: binding1,
4564            right: binding2,
4565        } => {
4566            visitor.visit_expr_mut(&mut *binding0);
4567            visitor.visit_op_mut(binding1);
4568            visitor.visit_query_mut(&mut *binding2);
4569        }
4570        Expr::AnyExpr {
4571            left: binding0,
4572            op: binding1,
4573            right: binding2,
4574        } => {
4575            visitor.visit_expr_mut(&mut *binding0);
4576            visitor.visit_op_mut(binding1);
4577            visitor.visit_expr_mut(&mut *binding2);
4578        }
4579        Expr::AllSubquery {
4580            left: binding0,
4581            op: binding1,
4582            right: binding2,
4583        } => {
4584            visitor.visit_expr_mut(&mut *binding0);
4585            visitor.visit_op_mut(binding1);
4586            visitor.visit_query_mut(&mut *binding2);
4587        }
4588        Expr::AllExpr {
4589            left: binding0,
4590            op: binding1,
4591            right: binding2,
4592        } => {
4593            visitor.visit_expr_mut(&mut *binding0);
4594            visitor.visit_op_mut(binding1);
4595            visitor.visit_expr_mut(&mut *binding2);
4596        }
4597        Expr::Array {
4598            0: binding0,
4599        } => {
4600            for v in binding0 {
4601                visitor.visit_expr_mut(v);
4602            }
4603        }
4604        Expr::ArraySubquery {
4605            0: binding0,
4606        } => {
4607            visitor.visit_query_mut(&mut *binding0);
4608        }
4609        Expr::List {
4610            0: binding0,
4611        } => {
4612            for v in binding0 {
4613                visitor.visit_expr_mut(v);
4614            }
4615        }
4616        Expr::ListSubquery {
4617            0: binding0,
4618        } => {
4619            visitor.visit_query_mut(&mut *binding0);
4620        }
4621        Expr::Map {
4622            0: binding0,
4623        } => {
4624            for v in binding0 {
4625                visitor.visit_map_entry_mut(v);
4626            }
4627        }
4628        Expr::MapSubquery {
4629            0: binding0,
4630        } => {
4631            visitor.visit_query_mut(&mut *binding0);
4632        }
4633        Expr::Subscript {
4634            expr: binding0,
4635            positions: binding1,
4636        } => {
4637            visitor.visit_expr_mut(&mut *binding0);
4638            for v in binding1 {
4639                visitor.visit_subscript_position_mut(v);
4640            }
4641        }
4642    }
4643}
4644impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExternalReferenceExport {
4645    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4646        visitor.visit_external_reference_export_mut(self)
4647    }
4648}
4649#[allow(clippy::needless_pass_by_ref_mut)]
4650pub fn visit_external_reference_export_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExternalReferenceExport)
4651where
4652    V: VisitMut<'ast, T, > + ?Sized,
4653{
4654    visitor.visit_unresolved_item_name_mut(&mut node.reference);
4655    if let Some(v) = &mut node.alias {
4656        visitor.visit_unresolved_item_name_mut(v);
4657    }
4658}
4659impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ExternalReferences {
4660    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4661        visitor.visit_external_references_mut(self)
4662    }
4663}
4664#[allow(clippy::needless_pass_by_ref_mut)]
4665pub fn visit_external_references_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ExternalReferences)
4666where
4667    V: VisitMut<'ast, T, > + ?Sized,
4668{
4669    match node {
4670        ExternalReferences::SubsetTables {
4671            0: binding0,
4672        } => {
4673            for v in binding0 {
4674                visitor.visit_external_reference_export_mut(v);
4675            }
4676        }
4677        ExternalReferences::SubsetSchemas {
4678            0: binding0,
4679        } => {
4680            for v in binding0 {
4681                visitor.visit_ident_mut(v);
4682            }
4683        }
4684        ExternalReferences::All {
4685        } => {
4686        }
4687    }
4688}
4689impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for FetchDirection {
4690    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4691        visitor.visit_fetch_direction_mut(self)
4692    }
4693}
4694#[allow(clippy::needless_pass_by_ref_mut)]
4695pub fn visit_fetch_direction_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut FetchDirection)
4696where
4697    V: VisitMut<'ast, T, > + ?Sized,
4698{
4699    match node {
4700        FetchDirection::ForwardAll {
4701        } => {
4702        }
4703        FetchDirection::ForwardCount {
4704            0: binding0,
4705        } => {
4706        }
4707    }
4708}
4709impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for FetchOption<T> {
4710    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4711        visitor.visit_fetch_option_mut(self)
4712    }
4713}
4714#[allow(clippy::needless_pass_by_ref_mut)]
4715pub fn visit_fetch_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut FetchOption<T>)
4716where
4717    V: VisitMut<'ast, T, > + ?Sized,
4718{
4719    visitor.visit_fetch_option_name_mut(&mut node.name);
4720    if let Some(v) = &mut node.value {
4721        visitor.visit_with_option_value_mut(v);
4722    }
4723}
4724impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for FetchOptionName {
4725    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4726        visitor.visit_fetch_option_name_mut(self)
4727    }
4728}
4729#[allow(clippy::needless_pass_by_ref_mut)]
4730pub fn visit_fetch_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut FetchOptionName)
4731where
4732    V: VisitMut<'ast, T, > + ?Sized,
4733{
4734    match node {
4735        FetchOptionName::Timeout {
4736        } => {
4737        }
4738    }
4739}
4740impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for FetchStatement<T> {
4741    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4742        visitor.visit_fetch_statement_mut(self)
4743    }
4744}
4745#[allow(clippy::needless_pass_by_ref_mut)]
4746pub fn visit_fetch_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut FetchStatement<T>)
4747where
4748    V: VisitMut<'ast, T, > + ?Sized,
4749{
4750    visitor.visit_ident_mut(&mut node.name);
4751    if let Some(v) = &mut node.count {
4752        visitor.visit_fetch_direction_mut(v);
4753    }
4754    for v in &mut node.options {
4755        visitor.visit_fetch_option_mut(v);
4756    }
4757}
4758impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Format<T> {
4759    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4760        visitor.visit_format_mut(self)
4761    }
4762}
4763#[allow(clippy::needless_pass_by_ref_mut)]
4764pub fn visit_format_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Format<T>)
4765where
4766    V: VisitMut<'ast, T, > + ?Sized,
4767{
4768    match node {
4769        Format::Bytes {
4770        } => {
4771        }
4772        Format::Avro {
4773            0: binding0,
4774        } => {
4775            visitor.visit_avro_schema_mut(binding0);
4776        }
4777        Format::Protobuf {
4778            0: binding0,
4779        } => {
4780            visitor.visit_protobuf_schema_mut(binding0);
4781        }
4782        Format::Regex {
4783            0: binding0,
4784        } => {
4785        }
4786        Format::Csv {
4787            columns: binding0,
4788            delimiter: binding1,
4789        } => {
4790            visitor.visit_csv_columns_mut(binding0);
4791        }
4792        Format::Json {
4793            array: binding0,
4794        } => {
4795        }
4796        Format::Text {
4797        } => {
4798        }
4799    }
4800}
4801impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for FormatSpecifier<T> {
4802    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4803        visitor.visit_format_specifier_mut(self)
4804    }
4805}
4806#[allow(clippy::needless_pass_by_ref_mut)]
4807pub fn visit_format_specifier_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut FormatSpecifier<T>)
4808where
4809    V: VisitMut<'ast, T, > + ?Sized,
4810{
4811    match node {
4812        FormatSpecifier::Bare {
4813            0: binding0,
4814        } => {
4815            visitor.visit_format_mut(binding0);
4816        }
4817        FormatSpecifier::KeyValue {
4818            key: binding0,
4819            value: binding1,
4820        } => {
4821            visitor.visit_format_mut(binding0);
4822            visitor.visit_format_mut(binding1);
4823        }
4824    }
4825}
4826impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Function<T> {
4827    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4828        visitor.visit_function_mut(self)
4829    }
4830}
4831#[allow(clippy::needless_pass_by_ref_mut)]
4832pub fn visit_function_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Function<T>)
4833where
4834    V: VisitMut<'ast, T, > + ?Sized,
4835{
4836    visitor.visit_item_name_mut(&mut node.name);
4837    visitor.visit_function_args_mut(&mut node.args);
4838    if let Some(v) = &mut node.filter {
4839        visitor.visit_expr_mut(&mut *v);
4840    }
4841    if let Some(v) = &mut node.over {
4842        visitor.visit_window_spec_mut(v);
4843    }
4844}
4845impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for FunctionArgs<T> {
4846    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4847        visitor.visit_function_args_mut(self)
4848    }
4849}
4850#[allow(clippy::needless_pass_by_ref_mut)]
4851pub fn visit_function_args_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut FunctionArgs<T>)
4852where
4853    V: VisitMut<'ast, T, > + ?Sized,
4854{
4855    match node {
4856        FunctionArgs::Star {
4857        } => {
4858        }
4859        FunctionArgs::Args {
4860            args: binding0,
4861            order_by: binding1,
4862        } => {
4863            for v in binding0 {
4864                visitor.visit_expr_mut(v);
4865            }
4866            for v in binding1 {
4867                visitor.visit_order_by_expr_mut(v);
4868            }
4869        }
4870    }
4871}
4872impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for GrantPrivilegesStatement<T> {
4873    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4874        visitor.visit_grant_privileges_statement_mut(self)
4875    }
4876}
4877#[allow(clippy::needless_pass_by_ref_mut)]
4878pub fn visit_grant_privileges_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut GrantPrivilegesStatement<T>)
4879where
4880    V: VisitMut<'ast, T, > + ?Sized,
4881{
4882    visitor.visit_privilege_specification_mut(&mut node.privileges);
4883    visitor.visit_grant_target_specification_mut(&mut node.target);
4884    for v in &mut node.roles {
4885        visitor.visit_role_name_mut(v);
4886    }
4887}
4888impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for GrantRoleStatement<T> {
4889    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4890        visitor.visit_grant_role_statement_mut(self)
4891    }
4892}
4893#[allow(clippy::needless_pass_by_ref_mut)]
4894pub fn visit_grant_role_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut GrantRoleStatement<T>)
4895where
4896    V: VisitMut<'ast, T, > + ?Sized,
4897{
4898    for v in &mut node.role_names {
4899        visitor.visit_role_name_mut(v);
4900    }
4901    for v in &mut node.member_names {
4902        visitor.visit_role_name_mut(v);
4903    }
4904}
4905impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for GrantTargetAllSpecification<T> {
4906    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4907        visitor.visit_grant_target_all_specification_mut(self)
4908    }
4909}
4910#[allow(clippy::needless_pass_by_ref_mut)]
4911pub fn visit_grant_target_all_specification_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut GrantTargetAllSpecification<T>)
4912where
4913    V: VisitMut<'ast, T, > + ?Sized,
4914{
4915    match node {
4916        GrantTargetAllSpecification::All {
4917        } => {
4918        }
4919        GrantTargetAllSpecification::AllDatabases {
4920            databases: binding0,
4921        } => {
4922            for v in binding0 {
4923                visitor.visit_database_name_mut(v);
4924            }
4925        }
4926        GrantTargetAllSpecification::AllSchemas {
4927            schemas: binding0,
4928        } => {
4929            for v in binding0 {
4930                visitor.visit_schema_name_mut(v);
4931            }
4932        }
4933    }
4934}
4935impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for GrantTargetSpecification<T> {
4936    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4937        visitor.visit_grant_target_specification_mut(self)
4938    }
4939}
4940#[allow(clippy::needless_pass_by_ref_mut)]
4941pub fn visit_grant_target_specification_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut GrantTargetSpecification<T>)
4942where
4943    V: VisitMut<'ast, T, > + ?Sized,
4944{
4945    match node {
4946        GrantTargetSpecification::Object {
4947            object_type: binding0,
4948            object_spec_inner: binding1,
4949        } => {
4950            visitor.visit_object_type_mut(binding0);
4951            visitor.visit_grant_target_specification_inner_mut(binding1);
4952        }
4953        GrantTargetSpecification::System {
4954        } => {
4955        }
4956    }
4957}
4958impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for GrantTargetSpecificationInner<T> {
4959    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4960        visitor.visit_grant_target_specification_inner_mut(self)
4961    }
4962}
4963#[allow(clippy::needless_pass_by_ref_mut)]
4964pub fn visit_grant_target_specification_inner_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut GrantTargetSpecificationInner<T>)
4965where
4966    V: VisitMut<'ast, T, > + ?Sized,
4967{
4968    match node {
4969        GrantTargetSpecificationInner::All {
4970            0: binding0,
4971        } => {
4972            visitor.visit_grant_target_all_specification_mut(binding0);
4973        }
4974        GrantTargetSpecificationInner::Objects {
4975            names: binding0,
4976        } => {
4977            for v in binding0 {
4978                visitor.visit_object_name_mut(v);
4979            }
4980        }
4981    }
4982}
4983impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for HomogenizingFunction {
4984    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
4985        visitor.visit_homogenizing_function_mut(self)
4986    }
4987}
4988#[allow(clippy::needless_pass_by_ref_mut)]
4989pub fn visit_homogenizing_function_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut HomogenizingFunction)
4990where
4991    V: VisitMut<'ast, T, > + ?Sized,
4992{
4993    match node {
4994        HomogenizingFunction::Coalesce {
4995        } => {
4996        }
4997        HomogenizingFunction::Greatest {
4998        } => {
4999        }
5000        HomogenizingFunction::Least {
5001        } => {
5002        }
5003    }
5004}
5005impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IcebergSinkConfigOption<T> {
5006    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5007        visitor.visit_iceberg_sink_config_option_mut(self)
5008    }
5009}
5010#[allow(clippy::needless_pass_by_ref_mut)]
5011pub fn visit_iceberg_sink_config_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IcebergSinkConfigOption<T>)
5012where
5013    V: VisitMut<'ast, T, > + ?Sized,
5014{
5015    visitor.visit_iceberg_sink_config_option_name_mut(&mut node.name);
5016    if let Some(v) = &mut node.value {
5017        visitor.visit_with_option_value_mut(v);
5018    }
5019}
5020impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IcebergSinkConfigOptionName {
5021    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5022        visitor.visit_iceberg_sink_config_option_name_mut(self)
5023    }
5024}
5025#[allow(clippy::needless_pass_by_ref_mut)]
5026pub fn visit_iceberg_sink_config_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IcebergSinkConfigOptionName)
5027where
5028    V: VisitMut<'ast, T, > + ?Sized,
5029{
5030    match node {
5031        IcebergSinkConfigOptionName::Namespace {
5032        } => {
5033        }
5034        IcebergSinkConfigOptionName::Table {
5035        } => {
5036        }
5037    }
5038}
5039impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IcebergSinkMode {
5040    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5041        visitor.visit_iceberg_sink_mode_mut(self)
5042    }
5043}
5044#[allow(clippy::needless_pass_by_ref_mut)]
5045pub fn visit_iceberg_sink_mode_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IcebergSinkMode)
5046where
5047    V: VisitMut<'ast, T, > + ?Sized,
5048{
5049    match node {
5050        IcebergSinkMode::Upsert {
5051        } => {
5052        }
5053        IcebergSinkMode::Append {
5054        } => {
5055        }
5056    }
5057}
5058impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Ident {
5059    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5060        visitor.visit_ident_mut(self)
5061    }
5062}
5063#[allow(clippy::needless_pass_by_ref_mut)]
5064pub fn visit_ident_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Ident)
5065where
5066    V: VisitMut<'ast, T, > + ?Sized,
5067{
5068}
5069impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IdentError {
5070    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5071        visitor.visit_ident_error_mut(self)
5072    }
5073}
5074#[allow(clippy::needless_pass_by_ref_mut)]
5075pub fn visit_ident_error_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IdentError)
5076where
5077    V: VisitMut<'ast, T, > + ?Sized,
5078{
5079    match node {
5080        IdentError::TooLong {
5081            0: binding0,
5082        } => {
5083        }
5084        IdentError::FailedToGenerate {
5085            prefix: binding0,
5086            suffix: binding1,
5087            attempts: binding2,
5088        } => {
5089        }
5090        IdentError::Invalid {
5091            0: binding0,
5092        } => {
5093        }
5094    }
5095}
5096impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IfExistsBehavior {
5097    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5098        visitor.visit_if_exists_behavior_mut(self)
5099    }
5100}
5101#[allow(clippy::needless_pass_by_ref_mut)]
5102pub fn visit_if_exists_behavior_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IfExistsBehavior)
5103where
5104    V: VisitMut<'ast, T, > + ?Sized,
5105{
5106    match node {
5107        IfExistsBehavior::Error {
5108        } => {
5109        }
5110        IfExistsBehavior::Skip {
5111        } => {
5112        }
5113        IfExistsBehavior::Replace {
5114        } => {
5115        }
5116    }
5117}
5118impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IndexOption<T> {
5119    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5120        visitor.visit_index_option_mut(self)
5121    }
5122}
5123#[allow(clippy::needless_pass_by_ref_mut)]
5124pub fn visit_index_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IndexOption<T>)
5125where
5126    V: VisitMut<'ast, T, > + ?Sized,
5127{
5128    visitor.visit_index_option_name_mut(&mut node.name);
5129    if let Some(v) = &mut node.value {
5130        visitor.visit_with_option_value_mut(v);
5131    }
5132}
5133impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IndexOptionName {
5134    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5135        visitor.visit_index_option_name_mut(self)
5136    }
5137}
5138#[allow(clippy::needless_pass_by_ref_mut)]
5139pub fn visit_index_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IndexOptionName)
5140where
5141    V: VisitMut<'ast, T, > + ?Sized,
5142{
5143    match node {
5144        IndexOptionName::RetainHistory {
5145        } => {
5146        }
5147    }
5148}
5149impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for InsertSource<T> {
5150    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5151        visitor.visit_insert_source_mut(self)
5152    }
5153}
5154#[allow(clippy::needless_pass_by_ref_mut)]
5155pub fn visit_insert_source_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut InsertSource<T>)
5156where
5157    V: VisitMut<'ast, T, > + ?Sized,
5158{
5159    match node {
5160        InsertSource::Query {
5161            0: binding0,
5162        } => {
5163            visitor.visit_query_mut(binding0);
5164        }
5165        InsertSource::DefaultValues {
5166        } => {
5167        }
5168    }
5169}
5170impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for InsertStatement<T> {
5171    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5172        visitor.visit_insert_statement_mut(self)
5173    }
5174}
5175#[allow(clippy::needless_pass_by_ref_mut)]
5176pub fn visit_insert_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut InsertStatement<T>)
5177where
5178    V: VisitMut<'ast, T, > + ?Sized,
5179{
5180    visitor.visit_item_name_mut(&mut node.table_name);
5181    for v in &mut node.columns {
5182        visitor.visit_ident_mut(v);
5183    }
5184    visitor.visit_insert_source_mut(&mut node.source);
5185    for v in &mut node.returning {
5186        visitor.visit_select_item_mut(v);
5187    }
5188}
5189impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for InspectShardStatement {
5190    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5191        visitor.visit_inspect_shard_statement_mut(self)
5192    }
5193}
5194#[allow(clippy::needless_pass_by_ref_mut)]
5195pub fn visit_inspect_shard_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut InspectShardStatement)
5196where
5197    V: VisitMut<'ast, T, > + ?Sized,
5198{
5199}
5200impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IntervalValue {
5201    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5202        visitor.visit_interval_value_mut(self)
5203    }
5204}
5205#[allow(clippy::needless_pass_by_ref_mut)]
5206pub fn visit_interval_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IntervalValue)
5207where
5208    V: VisitMut<'ast, T, > + ?Sized,
5209{
5210    visitor.visit_date_time_field_mut(&mut node.precision_high);
5211    visitor.visit_date_time_field_mut(&mut node.precision_low);
5212    if let Some(v) = &mut node.fsec_max_precision {
5213    }
5214}
5215impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for IsExprConstruct<T> {
5216    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5217        visitor.visit_is_expr_construct_mut(self)
5218    }
5219}
5220#[allow(clippy::needless_pass_by_ref_mut)]
5221pub fn visit_is_expr_construct_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut IsExprConstruct<T>)
5222where
5223    V: VisitMut<'ast, T, > + ?Sized,
5224{
5225    match node {
5226        IsExprConstruct::Null {
5227        } => {
5228        }
5229        IsExprConstruct::True {
5230        } => {
5231        }
5232        IsExprConstruct::False {
5233        } => {
5234        }
5235        IsExprConstruct::Unknown {
5236        } => {
5237        }
5238        IsExprConstruct::DistinctFrom {
5239            0: binding0,
5240        } => {
5241            visitor.visit_expr_mut(&mut *binding0);
5242        }
5243    }
5244}
5245impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Join<T> {
5246    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5247        visitor.visit_join_mut(self)
5248    }
5249}
5250#[allow(clippy::needless_pass_by_ref_mut)]
5251pub fn visit_join_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Join<T>)
5252where
5253    V: VisitMut<'ast, T, > + ?Sized,
5254{
5255    visitor.visit_table_factor_mut(&mut node.relation);
5256    visitor.visit_join_operator_mut(&mut node.join_operator);
5257}
5258impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for JoinConstraint<T> {
5259    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5260        visitor.visit_join_constraint_mut(self)
5261    }
5262}
5263#[allow(clippy::needless_pass_by_ref_mut)]
5264pub fn visit_join_constraint_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut JoinConstraint<T>)
5265where
5266    V: VisitMut<'ast, T, > + ?Sized,
5267{
5268    match node {
5269        JoinConstraint::On {
5270            0: binding0,
5271        } => {
5272            visitor.visit_expr_mut(binding0);
5273        }
5274        JoinConstraint::Using {
5275            columns: binding0,
5276            alias: binding1,
5277        } => {
5278            for v in binding0 {
5279                visitor.visit_ident_mut(v);
5280            }
5281            if let Some(v) = binding1 {
5282                visitor.visit_ident_mut(v);
5283            }
5284        }
5285        JoinConstraint::Natural {
5286        } => {
5287        }
5288    }
5289}
5290impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for JoinOperator<T> {
5291    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5292        visitor.visit_join_operator_mut(self)
5293    }
5294}
5295#[allow(clippy::needless_pass_by_ref_mut)]
5296pub fn visit_join_operator_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut JoinOperator<T>)
5297where
5298    V: VisitMut<'ast, T, > + ?Sized,
5299{
5300    match node {
5301        JoinOperator::Inner {
5302            0: binding0,
5303        } => {
5304            visitor.visit_join_constraint_mut(binding0);
5305        }
5306        JoinOperator::LeftOuter {
5307            0: binding0,
5308        } => {
5309            visitor.visit_join_constraint_mut(binding0);
5310        }
5311        JoinOperator::RightOuter {
5312            0: binding0,
5313        } => {
5314            visitor.visit_join_constraint_mut(binding0);
5315        }
5316        JoinOperator::FullOuter {
5317            0: binding0,
5318        } => {
5319            visitor.visit_join_constraint_mut(binding0);
5320        }
5321        JoinOperator::CrossJoin {
5322        } => {
5323        }
5324    }
5325}
5326impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaBroker<T> {
5327    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5328        visitor.visit_kafka_broker_mut(self)
5329    }
5330}
5331#[allow(clippy::needless_pass_by_ref_mut)]
5332pub fn visit_kafka_broker_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaBroker<T>)
5333where
5334    V: VisitMut<'ast, T, > + ?Sized,
5335{
5336    visitor.visit_kafka_broker_tunnel_mut(&mut node.tunnel);
5337}
5338impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaBrokerAwsPrivatelink<T> {
5339    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5340        visitor.visit_kafka_broker_aws_privatelink_mut(self)
5341    }
5342}
5343#[allow(clippy::needless_pass_by_ref_mut)]
5344pub fn visit_kafka_broker_aws_privatelink_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaBrokerAwsPrivatelink<T>)
5345where
5346    V: VisitMut<'ast, T, > + ?Sized,
5347{
5348    visitor.visit_item_name_mut(&mut node.connection);
5349    for v in &mut node.options {
5350        visitor.visit_kafka_broker_aws_privatelink_option_mut(v);
5351    }
5352}
5353impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaBrokerAwsPrivatelinkOption<T> {
5354    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5355        visitor.visit_kafka_broker_aws_privatelink_option_mut(self)
5356    }
5357}
5358#[allow(clippy::needless_pass_by_ref_mut)]
5359pub fn visit_kafka_broker_aws_privatelink_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaBrokerAwsPrivatelinkOption<T>)
5360where
5361    V: VisitMut<'ast, T, > + ?Sized,
5362{
5363    visitor.visit_kafka_broker_aws_privatelink_option_name_mut(&mut node.name);
5364    if let Some(v) = &mut node.value {
5365        visitor.visit_with_option_value_mut(v);
5366    }
5367}
5368impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaBrokerAwsPrivatelinkOptionName {
5369    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5370        visitor.visit_kafka_broker_aws_privatelink_option_name_mut(self)
5371    }
5372}
5373#[allow(clippy::needless_pass_by_ref_mut)]
5374pub fn visit_kafka_broker_aws_privatelink_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaBrokerAwsPrivatelinkOptionName)
5375where
5376    V: VisitMut<'ast, T, > + ?Sized,
5377{
5378    match node {
5379        KafkaBrokerAwsPrivatelinkOptionName::AvailabilityZone {
5380        } => {
5381        }
5382        KafkaBrokerAwsPrivatelinkOptionName::Port {
5383        } => {
5384        }
5385    }
5386}
5387impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaBrokerTunnel<T> {
5388    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5389        visitor.visit_kafka_broker_tunnel_mut(self)
5390    }
5391}
5392#[allow(clippy::needless_pass_by_ref_mut)]
5393pub fn visit_kafka_broker_tunnel_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaBrokerTunnel<T>)
5394where
5395    V: VisitMut<'ast, T, > + ?Sized,
5396{
5397    match node {
5398        KafkaBrokerTunnel::Direct {
5399        } => {
5400        }
5401        KafkaBrokerTunnel::AwsPrivatelink {
5402            0: binding0,
5403        } => {
5404            visitor.visit_kafka_broker_aws_privatelink_mut(binding0);
5405        }
5406        KafkaBrokerTunnel::SshTunnel {
5407            0: binding0,
5408        } => {
5409            visitor.visit_item_name_mut(binding0);
5410        }
5411    }
5412}
5413impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaSinkConfigOption<T> {
5414    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5415        visitor.visit_kafka_sink_config_option_mut(self)
5416    }
5417}
5418#[allow(clippy::needless_pass_by_ref_mut)]
5419pub fn visit_kafka_sink_config_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaSinkConfigOption<T>)
5420where
5421    V: VisitMut<'ast, T, > + ?Sized,
5422{
5423    visitor.visit_kafka_sink_config_option_name_mut(&mut node.name);
5424    if let Some(v) = &mut node.value {
5425        visitor.visit_with_option_value_mut(v);
5426    }
5427}
5428impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaSinkConfigOptionName {
5429    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5430        visitor.visit_kafka_sink_config_option_name_mut(self)
5431    }
5432}
5433#[allow(clippy::needless_pass_by_ref_mut)]
5434pub fn visit_kafka_sink_config_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaSinkConfigOptionName)
5435where
5436    V: VisitMut<'ast, T, > + ?Sized,
5437{
5438    match node {
5439        KafkaSinkConfigOptionName::CompressionType {
5440        } => {
5441        }
5442        KafkaSinkConfigOptionName::PartitionBy {
5443        } => {
5444        }
5445        KafkaSinkConfigOptionName::ProgressGroupIdPrefix {
5446        } => {
5447        }
5448        KafkaSinkConfigOptionName::Topic {
5449        } => {
5450        }
5451        KafkaSinkConfigOptionName::TransactionalIdPrefix {
5452        } => {
5453        }
5454        KafkaSinkConfigOptionName::LegacyIds {
5455        } => {
5456        }
5457        KafkaSinkConfigOptionName::TopicConfig {
5458        } => {
5459        }
5460        KafkaSinkConfigOptionName::TopicMetadataRefreshInterval {
5461        } => {
5462        }
5463        KafkaSinkConfigOptionName::TopicPartitionCount {
5464        } => {
5465        }
5466        KafkaSinkConfigOptionName::TopicReplicationFactor {
5467        } => {
5468        }
5469    }
5470}
5471impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaSourceConfigOption<T> {
5472    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5473        visitor.visit_kafka_source_config_option_mut(self)
5474    }
5475}
5476#[allow(clippy::needless_pass_by_ref_mut)]
5477pub fn visit_kafka_source_config_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaSourceConfigOption<T>)
5478where
5479    V: VisitMut<'ast, T, > + ?Sized,
5480{
5481    visitor.visit_kafka_source_config_option_name_mut(&mut node.name);
5482    if let Some(v) = &mut node.value {
5483        visitor.visit_with_option_value_mut(v);
5484    }
5485}
5486impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KafkaSourceConfigOptionName {
5487    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5488        visitor.visit_kafka_source_config_option_name_mut(self)
5489    }
5490}
5491#[allow(clippy::needless_pass_by_ref_mut)]
5492pub fn visit_kafka_source_config_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KafkaSourceConfigOptionName)
5493where
5494    V: VisitMut<'ast, T, > + ?Sized,
5495{
5496    match node {
5497        KafkaSourceConfigOptionName::GroupIdPrefix {
5498        } => {
5499        }
5500        KafkaSourceConfigOptionName::Topic {
5501        } => {
5502        }
5503        KafkaSourceConfigOptionName::TopicMetadataRefreshInterval {
5504        } => {
5505        }
5506        KafkaSourceConfigOptionName::StartTimestamp {
5507        } => {
5508        }
5509        KafkaSourceConfigOptionName::StartOffset {
5510        } => {
5511        }
5512    }
5513}
5514impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for KeyConstraint {
5515    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5516        visitor.visit_key_constraint_mut(self)
5517    }
5518}
5519#[allow(clippy::needless_pass_by_ref_mut)]
5520pub fn visit_key_constraint_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut KeyConstraint)
5521where
5522    V: VisitMut<'ast, T, > + ?Sized,
5523{
5524    match node {
5525        KeyConstraint::PrimaryKeyNotEnforced {
5526            columns: binding0,
5527        } => {
5528            for v in binding0 {
5529                visitor.visit_ident_mut(v);
5530            }
5531        }
5532    }
5533}
5534impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Limit<T> {
5535    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5536        visitor.visit_limit_mut(self)
5537    }
5538}
5539#[allow(clippy::needless_pass_by_ref_mut)]
5540pub fn visit_limit_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Limit<T>)
5541where
5542    V: VisitMut<'ast, T, > + ?Sized,
5543{
5544    visitor.visit_expr_mut(&mut node.quantity);
5545}
5546impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for LoadGenerator {
5547    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5548        visitor.visit_load_generator_mut(self)
5549    }
5550}
5551#[allow(clippy::needless_pass_by_ref_mut)]
5552pub fn visit_load_generator_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut LoadGenerator)
5553where
5554    V: VisitMut<'ast, T, > + ?Sized,
5555{
5556    match node {
5557        LoadGenerator::Clock {
5558        } => {
5559        }
5560        LoadGenerator::Counter {
5561        } => {
5562        }
5563        LoadGenerator::Marketing {
5564        } => {
5565        }
5566        LoadGenerator::Auction {
5567        } => {
5568        }
5569        LoadGenerator::Datums {
5570        } => {
5571        }
5572        LoadGenerator::Tpch {
5573        } => {
5574        }
5575        LoadGenerator::KeyValue {
5576        } => {
5577        }
5578    }
5579}
5580impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for LoadGeneratorOption<T> {
5581    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5582        visitor.visit_load_generator_option_mut(self)
5583    }
5584}
5585#[allow(clippy::needless_pass_by_ref_mut)]
5586pub fn visit_load_generator_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut LoadGeneratorOption<T>)
5587where
5588    V: VisitMut<'ast, T, > + ?Sized,
5589{
5590    visitor.visit_load_generator_option_name_mut(&mut node.name);
5591    if let Some(v) = &mut node.value {
5592        visitor.visit_with_option_value_mut(v);
5593    }
5594}
5595impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for LoadGeneratorOptionName {
5596    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5597        visitor.visit_load_generator_option_name_mut(self)
5598    }
5599}
5600#[allow(clippy::needless_pass_by_ref_mut)]
5601pub fn visit_load_generator_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut LoadGeneratorOptionName)
5602where
5603    V: VisitMut<'ast, T, > + ?Sized,
5604{
5605    match node {
5606        LoadGeneratorOptionName::ScaleFactor {
5607        } => {
5608        }
5609        LoadGeneratorOptionName::TickInterval {
5610        } => {
5611        }
5612        LoadGeneratorOptionName::AsOf {
5613        } => {
5614        }
5615        LoadGeneratorOptionName::UpTo {
5616        } => {
5617        }
5618        LoadGeneratorOptionName::MaxCardinality {
5619        } => {
5620        }
5621        LoadGeneratorOptionName::Keys {
5622        } => {
5623        }
5624        LoadGeneratorOptionName::SnapshotRounds {
5625        } => {
5626        }
5627        LoadGeneratorOptionName::TransactionalSnapshot {
5628        } => {
5629        }
5630        LoadGeneratorOptionName::ValueSize {
5631        } => {
5632        }
5633        LoadGeneratorOptionName::Seed {
5634        } => {
5635        }
5636        LoadGeneratorOptionName::Partitions {
5637        } => {
5638        }
5639        LoadGeneratorOptionName::BatchSize {
5640        } => {
5641        }
5642    }
5643}
5644impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MapEntry<T> {
5645    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5646        visitor.visit_map_entry_mut(self)
5647    }
5648}
5649#[allow(clippy::needless_pass_by_ref_mut)]
5650pub fn visit_map_entry_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MapEntry<T>)
5651where
5652    V: VisitMut<'ast, T, > + ?Sized,
5653{
5654    visitor.visit_expr_mut(&mut node.key);
5655    visitor.visit_expr_mut(&mut node.value);
5656}
5657impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MaterializedViewOption<T> {
5658    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5659        visitor.visit_materialized_view_option_mut(self)
5660    }
5661}
5662#[allow(clippy::needless_pass_by_ref_mut)]
5663pub fn visit_materialized_view_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MaterializedViewOption<T>)
5664where
5665    V: VisitMut<'ast, T, > + ?Sized,
5666{
5667    visitor.visit_materialized_view_option_name_mut(&mut node.name);
5668    if let Some(v) = &mut node.value {
5669        visitor.visit_with_option_value_mut(v);
5670    }
5671}
5672impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MaterializedViewOptionName {
5673    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5674        visitor.visit_materialized_view_option_name_mut(self)
5675    }
5676}
5677#[allow(clippy::needless_pass_by_ref_mut)]
5678pub fn visit_materialized_view_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MaterializedViewOptionName)
5679where
5680    V: VisitMut<'ast, T, > + ?Sized,
5681{
5682    match node {
5683        MaterializedViewOptionName::AssertNotNull {
5684        } => {
5685        }
5686        MaterializedViewOptionName::PartitionBy {
5687        } => {
5688        }
5689        MaterializedViewOptionName::RetainHistory {
5690        } => {
5691        }
5692        MaterializedViewOptionName::Refresh {
5693        } => {
5694        }
5695    }
5696}
5697impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MutRecBlock<T> {
5698    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5699        visitor.visit_mut_rec_block_mut(self)
5700    }
5701}
5702#[allow(clippy::needless_pass_by_ref_mut)]
5703pub fn visit_mut_rec_block_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MutRecBlock<T>)
5704where
5705    V: VisitMut<'ast, T, > + ?Sized,
5706{
5707    for v in &mut node.options {
5708        visitor.visit_mut_rec_block_option_mut(v);
5709    }
5710    for v in &mut node.ctes {
5711        visitor.visit_cte_mut_rec_mut(v);
5712    }
5713}
5714impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MutRecBlockOption<T> {
5715    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5716        visitor.visit_mut_rec_block_option_mut(self)
5717    }
5718}
5719#[allow(clippy::needless_pass_by_ref_mut)]
5720pub fn visit_mut_rec_block_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MutRecBlockOption<T>)
5721where
5722    V: VisitMut<'ast, T, > + ?Sized,
5723{
5724    visitor.visit_mut_rec_block_option_name_mut(&mut node.name);
5725    if let Some(v) = &mut node.value {
5726        visitor.visit_with_option_value_mut(v);
5727    }
5728}
5729impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MutRecBlockOptionName {
5730    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5731        visitor.visit_mut_rec_block_option_name_mut(self)
5732    }
5733}
5734#[allow(clippy::needless_pass_by_ref_mut)]
5735pub fn visit_mut_rec_block_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MutRecBlockOptionName)
5736where
5737    V: VisitMut<'ast, T, > + ?Sized,
5738{
5739    match node {
5740        MutRecBlockOptionName::RecursionLimit {
5741        } => {
5742        }
5743        MutRecBlockOptionName::ErrorAtRecursionLimit {
5744        } => {
5745        }
5746        MutRecBlockOptionName::ReturnAtRecursionLimit {
5747        } => {
5748        }
5749    }
5750}
5751impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MySqlConfigOption<T> {
5752    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5753        visitor.visit_my_sql_config_option_mut(self)
5754    }
5755}
5756#[allow(clippy::needless_pass_by_ref_mut)]
5757pub fn visit_my_sql_config_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MySqlConfigOption<T>)
5758where
5759    V: VisitMut<'ast, T, > + ?Sized,
5760{
5761    visitor.visit_my_sql_config_option_name_mut(&mut node.name);
5762    if let Some(v) = &mut node.value {
5763        visitor.visit_with_option_value_mut(v);
5764    }
5765}
5766impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for MySqlConfigOptionName {
5767    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5768        visitor.visit_my_sql_config_option_name_mut(self)
5769    }
5770}
5771#[allow(clippy::needless_pass_by_ref_mut)]
5772pub fn visit_my_sql_config_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut MySqlConfigOptionName)
5773where
5774    V: VisitMut<'ast, T, > + ?Sized,
5775{
5776    match node {
5777        MySqlConfigOptionName::Details {
5778        } => {
5779        }
5780        MySqlConfigOptionName::TextColumns {
5781        } => {
5782        }
5783        MySqlConfigOptionName::ExcludeColumns {
5784        } => {
5785        }
5786    }
5787}
5788impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for NamedPlan {
5789    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5790        visitor.visit_named_plan_mut(self)
5791    }
5792}
5793#[allow(clippy::needless_pass_by_ref_mut)]
5794pub fn visit_named_plan_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut NamedPlan)
5795where
5796    V: VisitMut<'ast, T, > + ?Sized,
5797{
5798    match node {
5799        NamedPlan::Raw {
5800        } => {
5801        }
5802        NamedPlan::Decorrelated {
5803        } => {
5804        }
5805        NamedPlan::Local {
5806        } => {
5807        }
5808        NamedPlan::Global {
5809        } => {
5810        }
5811        NamedPlan::Physical {
5812        } => {
5813        }
5814        NamedPlan::FastPath {
5815        } => {
5816        }
5817    }
5818}
5819impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for NetworkPolicyOption<T> {
5820    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5821        visitor.visit_network_policy_option_mut(self)
5822    }
5823}
5824#[allow(clippy::needless_pass_by_ref_mut)]
5825pub fn visit_network_policy_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut NetworkPolicyOption<T>)
5826where
5827    V: VisitMut<'ast, T, > + ?Sized,
5828{
5829    visitor.visit_network_policy_option_name_mut(&mut node.name);
5830    if let Some(v) = &mut node.value {
5831        visitor.visit_with_option_value_mut(v);
5832    }
5833}
5834impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for NetworkPolicyOptionName {
5835    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5836        visitor.visit_network_policy_option_name_mut(self)
5837    }
5838}
5839#[allow(clippy::needless_pass_by_ref_mut)]
5840pub fn visit_network_policy_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut NetworkPolicyOptionName)
5841where
5842    V: VisitMut<'ast, T, > + ?Sized,
5843{
5844    match node {
5845        NetworkPolicyOptionName::Rules {
5846        } => {
5847        }
5848    }
5849}
5850impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for NetworkPolicyRuleDefinition<T> {
5851    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5852        visitor.visit_network_policy_rule_definition_mut(self)
5853    }
5854}
5855#[allow(clippy::needless_pass_by_ref_mut)]
5856pub fn visit_network_policy_rule_definition_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut NetworkPolicyRuleDefinition<T>)
5857where
5858    V: VisitMut<'ast, T, > + ?Sized,
5859{
5860    visitor.visit_ident_mut(&mut node.name);
5861    for v in &mut node.options {
5862        visitor.visit_network_policy_rule_option_mut(v);
5863    }
5864}
5865impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for NetworkPolicyRuleOption<T> {
5866    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5867        visitor.visit_network_policy_rule_option_mut(self)
5868    }
5869}
5870#[allow(clippy::needless_pass_by_ref_mut)]
5871pub fn visit_network_policy_rule_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut NetworkPolicyRuleOption<T>)
5872where
5873    V: VisitMut<'ast, T, > + ?Sized,
5874{
5875    visitor.visit_network_policy_rule_option_name_mut(&mut node.name);
5876    if let Some(v) = &mut node.value {
5877        visitor.visit_with_option_value_mut(v);
5878    }
5879}
5880impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for NetworkPolicyRuleOptionName {
5881    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5882        visitor.visit_network_policy_rule_option_name_mut(self)
5883    }
5884}
5885#[allow(clippy::needless_pass_by_ref_mut)]
5886pub fn visit_network_policy_rule_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut NetworkPolicyRuleOptionName)
5887where
5888    V: VisitMut<'ast, T, > + ?Sized,
5889{
5890    match node {
5891        NetworkPolicyRuleOptionName::Direction {
5892        } => {
5893        }
5894        NetworkPolicyRuleOptionName::Action {
5895        } => {
5896        }
5897        NetworkPolicyRuleOptionName::Address {
5898        } => {
5899        }
5900    }
5901}
5902impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for NoticeSeverity {
5903    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5904        visitor.visit_notice_severity_mut(self)
5905    }
5906}
5907#[allow(clippy::needless_pass_by_ref_mut)]
5908pub fn visit_notice_severity_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut NoticeSeverity)
5909where
5910    V: VisitMut<'ast, T, > + ?Sized,
5911{
5912    match node {
5913        NoticeSeverity::Debug {
5914        } => {
5915        }
5916        NoticeSeverity::Info {
5917        } => {
5918        }
5919        NoticeSeverity::Log {
5920        } => {
5921        }
5922        NoticeSeverity::Notice {
5923        } => {
5924        }
5925        NoticeSeverity::Warning {
5926        } => {
5927        }
5928    }
5929}
5930impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ObjectType {
5931    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5932        visitor.visit_object_type_mut(self)
5933    }
5934}
5935#[allow(clippy::needless_pass_by_ref_mut)]
5936pub fn visit_object_type_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ObjectType)
5937where
5938    V: VisitMut<'ast, T, > + ?Sized,
5939{
5940    match node {
5941        ObjectType::Table {
5942        } => {
5943        }
5944        ObjectType::View {
5945        } => {
5946        }
5947        ObjectType::MaterializedView {
5948        } => {
5949        }
5950        ObjectType::Source {
5951        } => {
5952        }
5953        ObjectType::Sink {
5954        } => {
5955        }
5956        ObjectType::Index {
5957        } => {
5958        }
5959        ObjectType::Type {
5960        } => {
5961        }
5962        ObjectType::Role {
5963        } => {
5964        }
5965        ObjectType::Cluster {
5966        } => {
5967        }
5968        ObjectType::ClusterReplica {
5969        } => {
5970        }
5971        ObjectType::Secret {
5972        } => {
5973        }
5974        ObjectType::Connection {
5975        } => {
5976        }
5977        ObjectType::Database {
5978        } => {
5979        }
5980        ObjectType::Schema {
5981        } => {
5982        }
5983        ObjectType::Func {
5984        } => {
5985        }
5986        ObjectType::Subsource {
5987        } => {
5988        }
5989        ObjectType::ContinualTask {
5990        } => {
5991        }
5992        ObjectType::NetworkPolicy {
5993        } => {
5994        }
5995    }
5996}
5997impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Op {
5998    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
5999        visitor.visit_op_mut(self)
6000    }
6001}
6002#[allow(clippy::needless_pass_by_ref_mut)]
6003pub fn visit_op_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Op)
6004where
6005    V: VisitMut<'ast, T, > + ?Sized,
6006{
6007    if let Some(v) = &mut node.namespace {
6008        for v in v {
6009            visitor.visit_ident_mut(v);
6010        }
6011    }
6012}
6013impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for OrderByExpr<T> {
6014    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6015        visitor.visit_order_by_expr_mut(self)
6016    }
6017}
6018#[allow(clippy::needless_pass_by_ref_mut)]
6019pub fn visit_order_by_expr_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut OrderByExpr<T>)
6020where
6021    V: VisitMut<'ast, T, > + ?Sized,
6022{
6023    visitor.visit_expr_mut(&mut node.expr);
6024    if let Some(v) = &mut node.asc {
6025    }
6026    if let Some(v) = &mut node.nulls_last {
6027    }
6028}
6029impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for PgConfigOption<T> {
6030    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6031        visitor.visit_pg_config_option_mut(self)
6032    }
6033}
6034#[allow(clippy::needless_pass_by_ref_mut)]
6035pub fn visit_pg_config_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut PgConfigOption<T>)
6036where
6037    V: VisitMut<'ast, T, > + ?Sized,
6038{
6039    visitor.visit_pg_config_option_name_mut(&mut node.name);
6040    if let Some(v) = &mut node.value {
6041        visitor.visit_with_option_value_mut(v);
6042    }
6043}
6044impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for PgConfigOptionName {
6045    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6046        visitor.visit_pg_config_option_name_mut(self)
6047    }
6048}
6049#[allow(clippy::needless_pass_by_ref_mut)]
6050pub fn visit_pg_config_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut PgConfigOptionName)
6051where
6052    V: VisitMut<'ast, T, > + ?Sized,
6053{
6054    match node {
6055        PgConfigOptionName::Details {
6056        } => {
6057        }
6058        PgConfigOptionName::Publication {
6059        } => {
6060        }
6061        PgConfigOptionName::TextColumns {
6062        } => {
6063        }
6064        PgConfigOptionName::ExcludeColumns {
6065        } => {
6066        }
6067    }
6068}
6069impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for PrepareStatement<T> {
6070    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6071        visitor.visit_prepare_statement_mut(self)
6072    }
6073}
6074#[allow(clippy::needless_pass_by_ref_mut)]
6075pub fn visit_prepare_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut PrepareStatement<T>)
6076where
6077    V: VisitMut<'ast, T, > + ?Sized,
6078{
6079    visitor.visit_ident_mut(&mut node.name);
6080    visitor.visit_nested_statement_mut(&mut *&mut node.stmt);
6081}
6082impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Privilege {
6083    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6084        visitor.visit_privilege_mut(self)
6085    }
6086}
6087#[allow(clippy::needless_pass_by_ref_mut)]
6088pub fn visit_privilege_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Privilege)
6089where
6090    V: VisitMut<'ast, T, > + ?Sized,
6091{
6092    match node {
6093        Privilege::SELECT {
6094        } => {
6095        }
6096        Privilege::INSERT {
6097        } => {
6098        }
6099        Privilege::UPDATE {
6100        } => {
6101        }
6102        Privilege::DELETE {
6103        } => {
6104        }
6105        Privilege::USAGE {
6106        } => {
6107        }
6108        Privilege::CREATE {
6109        } => {
6110        }
6111        Privilege::CREATEROLE {
6112        } => {
6113        }
6114        Privilege::CREATEDB {
6115        } => {
6116        }
6117        Privilege::CREATECLUSTER {
6118        } => {
6119        }
6120        Privilege::CREATENETWORKPOLICY {
6121        } => {
6122        }
6123    }
6124}
6125impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for PrivilegeSpecification {
6126    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6127        visitor.visit_privilege_specification_mut(self)
6128    }
6129}
6130#[allow(clippy::needless_pass_by_ref_mut)]
6131pub fn visit_privilege_specification_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut PrivilegeSpecification)
6132where
6133    V: VisitMut<'ast, T, > + ?Sized,
6134{
6135    match node {
6136        PrivilegeSpecification::All {
6137        } => {
6138        }
6139        PrivilegeSpecification::Privileges {
6140            0: binding0,
6141        } => {
6142            for v in binding0 {
6143                visitor.visit_privilege_mut(v);
6144            }
6145        }
6146    }
6147}
6148impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ProtobufSchema<T> {
6149    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6150        visitor.visit_protobuf_schema_mut(self)
6151    }
6152}
6153#[allow(clippy::needless_pass_by_ref_mut)]
6154pub fn visit_protobuf_schema_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ProtobufSchema<T>)
6155where
6156    V: VisitMut<'ast, T, > + ?Sized,
6157{
6158    match node {
6159        ProtobufSchema::Csr {
6160            csr_connection: binding0,
6161        } => {
6162            visitor.visit_csr_connection_protobuf_mut(binding0);
6163        }
6164        ProtobufSchema::InlineSchema {
6165            message_name: binding0,
6166            schema: binding1,
6167        } => {
6168            visitor.visit_schema_mut(binding1);
6169        }
6170    }
6171}
6172impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for QualifiedReplica {
6173    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6174        visitor.visit_qualified_replica_mut(self)
6175    }
6176}
6177#[allow(clippy::needless_pass_by_ref_mut)]
6178pub fn visit_qualified_replica_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut QualifiedReplica)
6179where
6180    V: VisitMut<'ast, T, > + ?Sized,
6181{
6182    visitor.visit_ident_mut(&mut node.cluster);
6183    visitor.visit_ident_mut(&mut node.replica);
6184}
6185impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Query<T> {
6186    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6187        visitor.visit_query_mut(self)
6188    }
6189}
6190#[allow(clippy::needless_pass_by_ref_mut)]
6191pub fn visit_query_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Query<T>)
6192where
6193    V: VisitMut<'ast, T, > + ?Sized,
6194{
6195    visitor.visit_cte_block_mut(&mut node.ctes);
6196    visitor.visit_set_expr_mut(&mut node.body);
6197    for v in &mut node.order_by {
6198        visitor.visit_order_by_expr_mut(v);
6199    }
6200    if let Some(v) = &mut node.limit {
6201        visitor.visit_limit_mut(v);
6202    }
6203    if let Some(v) = &mut node.offset {
6204        visitor.visit_expr_mut(v);
6205    }
6206}
6207impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RaiseStatement {
6208    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6209        visitor.visit_raise_statement_mut(self)
6210    }
6211}
6212#[allow(clippy::needless_pass_by_ref_mut)]
6213pub fn visit_raise_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RaiseStatement)
6214where
6215    V: VisitMut<'ast, T, > + ?Sized,
6216{
6217    visitor.visit_notice_severity_mut(&mut node.severity);
6218}
6219impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ReaderSchemaSelectionStrategy {
6220    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6221        visitor.visit_reader_schema_selection_strategy_mut(self)
6222    }
6223}
6224#[allow(clippy::needless_pass_by_ref_mut)]
6225pub fn visit_reader_schema_selection_strategy_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ReaderSchemaSelectionStrategy)
6226where
6227    V: VisitMut<'ast, T, > + ?Sized,
6228{
6229    match node {
6230        ReaderSchemaSelectionStrategy::Latest {
6231        } => {
6232        }
6233        ReaderSchemaSelectionStrategy::Inline {
6234            0: binding0,
6235        } => {
6236        }
6237        ReaderSchemaSelectionStrategy::ById {
6238            0: binding0,
6239        } => {
6240        }
6241    }
6242}
6243impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ReassignOwnedStatement<T> {
6244    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6245        visitor.visit_reassign_owned_statement_mut(self)
6246    }
6247}
6248#[allow(clippy::needless_pass_by_ref_mut)]
6249pub fn visit_reassign_owned_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ReassignOwnedStatement<T>)
6250where
6251    V: VisitMut<'ast, T, > + ?Sized,
6252{
6253    for v in &mut node.old_roles {
6254        visitor.visit_role_name_mut(v);
6255    }
6256    visitor.visit_role_name_mut(&mut node.new_role);
6257}
6258impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RefreshAtOptionValue<T> {
6259    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6260        visitor.visit_refresh_at_option_value_mut(self)
6261    }
6262}
6263#[allow(clippy::needless_pass_by_ref_mut)]
6264pub fn visit_refresh_at_option_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RefreshAtOptionValue<T>)
6265where
6266    V: VisitMut<'ast, T, > + ?Sized,
6267{
6268    visitor.visit_expr_mut(&mut node.time);
6269}
6270impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RefreshEveryOptionValue<T> {
6271    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6272        visitor.visit_refresh_every_option_value_mut(self)
6273    }
6274}
6275#[allow(clippy::needless_pass_by_ref_mut)]
6276pub fn visit_refresh_every_option_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RefreshEveryOptionValue<T>)
6277where
6278    V: VisitMut<'ast, T, > + ?Sized,
6279{
6280    visitor.visit_interval_value_mut(&mut node.interval);
6281    if let Some(v) = &mut node.aligned_to {
6282        visitor.visit_expr_mut(v);
6283    }
6284}
6285impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RefreshOptionValue<T> {
6286    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6287        visitor.visit_refresh_option_value_mut(self)
6288    }
6289}
6290#[allow(clippy::needless_pass_by_ref_mut)]
6291pub fn visit_refresh_option_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RefreshOptionValue<T>)
6292where
6293    V: VisitMut<'ast, T, > + ?Sized,
6294{
6295    match node {
6296        RefreshOptionValue::OnCommit {
6297        } => {
6298        }
6299        RefreshOptionValue::AtCreation {
6300        } => {
6301        }
6302        RefreshOptionValue::At {
6303            0: binding0,
6304        } => {
6305            visitor.visit_refresh_at_option_value_mut(binding0);
6306        }
6307        RefreshOptionValue::Every {
6308            0: binding0,
6309        } => {
6310            visitor.visit_refresh_every_option_value_mut(binding0);
6311        }
6312    }
6313}
6314impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ReplicaDefinition<T> {
6315    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6316        visitor.visit_replica_definition_mut(self)
6317    }
6318}
6319#[allow(clippy::needless_pass_by_ref_mut)]
6320pub fn visit_replica_definition_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ReplicaDefinition<T>)
6321where
6322    V: VisitMut<'ast, T, > + ?Sized,
6323{
6324    visitor.visit_ident_mut(&mut node.name);
6325    for v in &mut node.options {
6326        visitor.visit_replica_option_mut(v);
6327    }
6328}
6329impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ReplicaOption<T> {
6330    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6331        visitor.visit_replica_option_mut(self)
6332    }
6333}
6334#[allow(clippy::needless_pass_by_ref_mut)]
6335pub fn visit_replica_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ReplicaOption<T>)
6336where
6337    V: VisitMut<'ast, T, > + ?Sized,
6338{
6339    visitor.visit_replica_option_name_mut(&mut node.name);
6340    if let Some(v) = &mut node.value {
6341        visitor.visit_with_option_value_mut(v);
6342    }
6343}
6344impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ReplicaOptionName {
6345    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6346        visitor.visit_replica_option_name_mut(self)
6347    }
6348}
6349#[allow(clippy::needless_pass_by_ref_mut)]
6350pub fn visit_replica_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ReplicaOptionName)
6351where
6352    V: VisitMut<'ast, T, > + ?Sized,
6353{
6354    match node {
6355        ReplicaOptionName::BilledAs {
6356        } => {
6357        }
6358        ReplicaOptionName::Size {
6359        } => {
6360        }
6361        ReplicaOptionName::AvailabilityZone {
6362        } => {
6363        }
6364        ReplicaOptionName::StorageAddresses {
6365        } => {
6366        }
6367        ReplicaOptionName::StoragectlAddresses {
6368        } => {
6369        }
6370        ReplicaOptionName::ComputectlAddresses {
6371        } => {
6372        }
6373        ReplicaOptionName::ComputeAddresses {
6374        } => {
6375        }
6376        ReplicaOptionName::Workers {
6377        } => {
6378        }
6379        ReplicaOptionName::Internal {
6380        } => {
6381        }
6382        ReplicaOptionName::IntrospectionInterval {
6383        } => {
6384        }
6385        ReplicaOptionName::IntrospectionDebugging {
6386        } => {
6387        }
6388        ReplicaOptionName::Disk {
6389        } => {
6390        }
6391    }
6392}
6393impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ResetVariableStatement {
6394    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6395        visitor.visit_reset_variable_statement_mut(self)
6396    }
6397}
6398#[allow(clippy::needless_pass_by_ref_mut)]
6399pub fn visit_reset_variable_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ResetVariableStatement)
6400where
6401    V: VisitMut<'ast, T, > + ?Sized,
6402{
6403    visitor.visit_ident_mut(&mut node.variable);
6404}
6405impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RevokePrivilegesStatement<T> {
6406    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6407        visitor.visit_revoke_privileges_statement_mut(self)
6408    }
6409}
6410#[allow(clippy::needless_pass_by_ref_mut)]
6411pub fn visit_revoke_privileges_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RevokePrivilegesStatement<T>)
6412where
6413    V: VisitMut<'ast, T, > + ?Sized,
6414{
6415    visitor.visit_privilege_specification_mut(&mut node.privileges);
6416    visitor.visit_grant_target_specification_mut(&mut node.target);
6417    for v in &mut node.roles {
6418        visitor.visit_role_name_mut(v);
6419    }
6420}
6421impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RevokeRoleStatement<T> {
6422    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6423        visitor.visit_revoke_role_statement_mut(self)
6424    }
6425}
6426#[allow(clippy::needless_pass_by_ref_mut)]
6427pub fn visit_revoke_role_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RevokeRoleStatement<T>)
6428where
6429    V: VisitMut<'ast, T, > + ?Sized,
6430{
6431    for v in &mut node.role_names {
6432        visitor.visit_role_name_mut(v);
6433    }
6434    for v in &mut node.member_names {
6435        visitor.visit_role_name_mut(v);
6436    }
6437}
6438impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RoleAttribute {
6439    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6440        visitor.visit_role_attribute_mut(self)
6441    }
6442}
6443#[allow(clippy::needless_pass_by_ref_mut)]
6444pub fn visit_role_attribute_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RoleAttribute)
6445where
6446    V: VisitMut<'ast, T, > + ?Sized,
6447{
6448    match node {
6449        RoleAttribute::Inherit {
6450        } => {
6451        }
6452        RoleAttribute::NoInherit {
6453        } => {
6454        }
6455        RoleAttribute::Password {
6456            0: binding0,
6457        } => {
6458            if let Some(v) = binding0 {
6459            }
6460        }
6461        RoleAttribute::Login {
6462        } => {
6463        }
6464        RoleAttribute::NoLogin {
6465        } => {
6466        }
6467        RoleAttribute::SuperUser {
6468        } => {
6469        }
6470        RoleAttribute::NoSuperUser {
6471        } => {
6472        }
6473        RoleAttribute::CreateCluster {
6474        } => {
6475        }
6476        RoleAttribute::NoCreateCluster {
6477        } => {
6478        }
6479        RoleAttribute::CreateDB {
6480        } => {
6481        }
6482        RoleAttribute::NoCreateDB {
6483        } => {
6484        }
6485        RoleAttribute::CreateRole {
6486        } => {
6487        }
6488        RoleAttribute::NoCreateRole {
6489        } => {
6490        }
6491    }
6492}
6493impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for RollbackStatement {
6494    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6495        visitor.visit_rollback_statement_mut(self)
6496    }
6497}
6498#[allow(clippy::needless_pass_by_ref_mut)]
6499pub fn visit_rollback_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut RollbackStatement)
6500where
6501    V: VisitMut<'ast, T, > + ?Sized,
6502{
6503}
6504impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Schema {
6505    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6506        visitor.visit_schema_mut(self)
6507    }
6508}
6509#[allow(clippy::needless_pass_by_ref_mut)]
6510pub fn visit_schema_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Schema)
6511where
6512    V: VisitMut<'ast, T, > + ?Sized,
6513{
6514}
6515impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Select<T> {
6516    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6517        visitor.visit_select_mut(self)
6518    }
6519}
6520#[allow(clippy::needless_pass_by_ref_mut)]
6521pub fn visit_select_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Select<T>)
6522where
6523    V: VisitMut<'ast, T, > + ?Sized,
6524{
6525    if let Some(v) = &mut node.distinct {
6526        visitor.visit_distinct_mut(v);
6527    }
6528    for v in &mut node.projection {
6529        visitor.visit_select_item_mut(v);
6530    }
6531    for v in &mut node.from {
6532        visitor.visit_table_with_joins_mut(v);
6533    }
6534    if let Some(v) = &mut node.selection {
6535        visitor.visit_expr_mut(v);
6536    }
6537    for v in &mut node.group_by {
6538        visitor.visit_expr_mut(v);
6539    }
6540    if let Some(v) = &mut node.having {
6541        visitor.visit_expr_mut(v);
6542    }
6543    if let Some(v) = &mut node.qualify {
6544        visitor.visit_expr_mut(v);
6545    }
6546    for v in &mut node.options {
6547        visitor.visit_select_option_mut(v);
6548    }
6549}
6550impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SelectItem<T> {
6551    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6552        visitor.visit_select_item_mut(self)
6553    }
6554}
6555#[allow(clippy::needless_pass_by_ref_mut)]
6556pub fn visit_select_item_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SelectItem<T>)
6557where
6558    V: VisitMut<'ast, T, > + ?Sized,
6559{
6560    match node {
6561        SelectItem::Expr {
6562            expr: binding0,
6563            alias: binding1,
6564        } => {
6565            visitor.visit_expr_mut(binding0);
6566            if let Some(v) = binding1 {
6567                visitor.visit_ident_mut(v);
6568            }
6569        }
6570        SelectItem::Wildcard {
6571        } => {
6572        }
6573    }
6574}
6575impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SelectOption<T> {
6576    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6577        visitor.visit_select_option_mut(self)
6578    }
6579}
6580#[allow(clippy::needless_pass_by_ref_mut)]
6581pub fn visit_select_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SelectOption<T>)
6582where
6583    V: VisitMut<'ast, T, > + ?Sized,
6584{
6585    visitor.visit_select_option_name_mut(&mut node.name);
6586    if let Some(v) = &mut node.value {
6587        visitor.visit_with_option_value_mut(v);
6588    }
6589}
6590impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SelectOptionName {
6591    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6592        visitor.visit_select_option_name_mut(self)
6593    }
6594}
6595#[allow(clippy::needless_pass_by_ref_mut)]
6596pub fn visit_select_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SelectOptionName)
6597where
6598    V: VisitMut<'ast, T, > + ?Sized,
6599{
6600    match node {
6601        SelectOptionName::ExpectedGroupSize {
6602        } => {
6603        }
6604        SelectOptionName::AggregateInputGroupSize {
6605        } => {
6606        }
6607        SelectOptionName::DistinctOnInputGroupSize {
6608        } => {
6609        }
6610        SelectOptionName::LimitInputGroupSize {
6611        } => {
6612        }
6613    }
6614}
6615impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SelectStatement<T> {
6616    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6617        visitor.visit_select_statement_mut(self)
6618    }
6619}
6620#[allow(clippy::needless_pass_by_ref_mut)]
6621pub fn visit_select_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SelectStatement<T>)
6622where
6623    V: VisitMut<'ast, T, > + ?Sized,
6624{
6625    visitor.visit_query_mut(&mut node.query);
6626    if let Some(v) = &mut node.as_of {
6627        visitor.visit_as_of_mut(v);
6628    }
6629}
6630impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SetExpr<T> {
6631    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6632        visitor.visit_set_expr_mut(self)
6633    }
6634}
6635#[allow(clippy::needless_pass_by_ref_mut)]
6636pub fn visit_set_expr_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SetExpr<T>)
6637where
6638    V: VisitMut<'ast, T, > + ?Sized,
6639{
6640    match node {
6641        SetExpr::Select {
6642            0: binding0,
6643        } => {
6644            visitor.visit_select_mut(&mut *binding0);
6645        }
6646        SetExpr::Query {
6647            0: binding0,
6648        } => {
6649            visitor.visit_query_mut(&mut *binding0);
6650        }
6651        SetExpr::SetOperation {
6652            op: binding0,
6653            all: binding1,
6654            left: binding2,
6655            right: binding3,
6656        } => {
6657            visitor.visit_set_operator_mut(binding0);
6658            visitor.visit_set_expr_mut(&mut *binding2);
6659            visitor.visit_set_expr_mut(&mut *binding3);
6660        }
6661        SetExpr::Values {
6662            0: binding0,
6663        } => {
6664            visitor.visit_values_mut(binding0);
6665        }
6666        SetExpr::Show {
6667            0: binding0,
6668        } => {
6669            visitor.visit_show_statement_mut(binding0);
6670        }
6671        SetExpr::Table {
6672            0: binding0,
6673        } => {
6674            visitor.visit_item_name_mut(binding0);
6675        }
6676    }
6677}
6678impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SetOperator {
6679    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6680        visitor.visit_set_operator_mut(self)
6681    }
6682}
6683#[allow(clippy::needless_pass_by_ref_mut)]
6684pub fn visit_set_operator_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SetOperator)
6685where
6686    V: VisitMut<'ast, T, > + ?Sized,
6687{
6688    match node {
6689        SetOperator::Union {
6690        } => {
6691        }
6692        SetOperator::Except {
6693        } => {
6694        }
6695        SetOperator::Intersect {
6696        } => {
6697        }
6698    }
6699}
6700impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SetRoleVar {
6701    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6702        visitor.visit_set_role_var_mut(self)
6703    }
6704}
6705#[allow(clippy::needless_pass_by_ref_mut)]
6706pub fn visit_set_role_var_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SetRoleVar)
6707where
6708    V: VisitMut<'ast, T, > + ?Sized,
6709{
6710    match node {
6711        SetRoleVar::Set {
6712            name: binding0,
6713            value: binding1,
6714        } => {
6715            visitor.visit_ident_mut(binding0);
6716            visitor.visit_set_variable_to_mut(binding1);
6717        }
6718        SetRoleVar::Reset {
6719            name: binding0,
6720        } => {
6721            visitor.visit_ident_mut(binding0);
6722        }
6723    }
6724}
6725impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SetTransactionStatement {
6726    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6727        visitor.visit_set_transaction_statement_mut(self)
6728    }
6729}
6730#[allow(clippy::needless_pass_by_ref_mut)]
6731pub fn visit_set_transaction_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SetTransactionStatement)
6732where
6733    V: VisitMut<'ast, T, > + ?Sized,
6734{
6735    for v in &mut node.modes {
6736        visitor.visit_transaction_mode_mut(v);
6737    }
6738}
6739impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SetVariableStatement {
6740    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6741        visitor.visit_set_variable_statement_mut(self)
6742    }
6743}
6744#[allow(clippy::needless_pass_by_ref_mut)]
6745pub fn visit_set_variable_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SetVariableStatement)
6746where
6747    V: VisitMut<'ast, T, > + ?Sized,
6748{
6749    visitor.visit_ident_mut(&mut node.variable);
6750    visitor.visit_set_variable_to_mut(&mut node.to);
6751}
6752impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SetVariableTo {
6753    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6754        visitor.visit_set_variable_to_mut(self)
6755    }
6756}
6757#[allow(clippy::needless_pass_by_ref_mut)]
6758pub fn visit_set_variable_to_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SetVariableTo)
6759where
6760    V: VisitMut<'ast, T, > + ?Sized,
6761{
6762    match node {
6763        SetVariableTo::Default {
6764        } => {
6765        }
6766        SetVariableTo::Values {
6767            0: binding0,
6768        } => {
6769            for v in binding0 {
6770                visitor.visit_set_variable_value_mut(v);
6771            }
6772        }
6773    }
6774}
6775impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SetVariableValue {
6776    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6777        visitor.visit_set_variable_value_mut(self)
6778    }
6779}
6780#[allow(clippy::needless_pass_by_ref_mut)]
6781pub fn visit_set_variable_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SetVariableValue)
6782where
6783    V: VisitMut<'ast, T, > + ?Sized,
6784{
6785    match node {
6786        SetVariableValue::Ident {
6787            0: binding0,
6788        } => {
6789            visitor.visit_ident_mut(binding0);
6790        }
6791        SetVariableValue::Literal {
6792            0: binding0,
6793        } => {
6794            visitor.visit_value_mut(binding0);
6795        }
6796    }
6797}
6798impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowColumnsStatement<T> {
6799    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6800        visitor.visit_show_columns_statement_mut(self)
6801    }
6802}
6803#[allow(clippy::needless_pass_by_ref_mut)]
6804pub fn visit_show_columns_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowColumnsStatement<T>)
6805where
6806    V: VisitMut<'ast, T, > + ?Sized,
6807{
6808    visitor.visit_item_name_mut(&mut node.table_name);
6809    if let Some(v) = &mut node.filter {
6810        visitor.visit_show_statement_filter_mut(v);
6811    }
6812}
6813impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateClusterStatement<T> {
6814    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6815        visitor.visit_show_create_cluster_statement_mut(self)
6816    }
6817}
6818#[allow(clippy::needless_pass_by_ref_mut)]
6819pub fn visit_show_create_cluster_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateClusterStatement<T>)
6820where
6821    V: VisitMut<'ast, T, > + ?Sized,
6822{
6823    visitor.visit_cluster_name_mut(&mut node.cluster_name);
6824}
6825impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateConnectionStatement<T> {
6826    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6827        visitor.visit_show_create_connection_statement_mut(self)
6828    }
6829}
6830#[allow(clippy::needless_pass_by_ref_mut)]
6831pub fn visit_show_create_connection_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateConnectionStatement<T>)
6832where
6833    V: VisitMut<'ast, T, > + ?Sized,
6834{
6835    visitor.visit_item_name_mut(&mut node.connection_name);
6836}
6837impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateIndexStatement<T> {
6838    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6839        visitor.visit_show_create_index_statement_mut(self)
6840    }
6841}
6842#[allow(clippy::needless_pass_by_ref_mut)]
6843pub fn visit_show_create_index_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateIndexStatement<T>)
6844where
6845    V: VisitMut<'ast, T, > + ?Sized,
6846{
6847    visitor.visit_item_name_mut(&mut node.index_name);
6848}
6849impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateMaterializedViewStatement<T> {
6850    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6851        visitor.visit_show_create_materialized_view_statement_mut(self)
6852    }
6853}
6854#[allow(clippy::needless_pass_by_ref_mut)]
6855pub fn visit_show_create_materialized_view_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateMaterializedViewStatement<T>)
6856where
6857    V: VisitMut<'ast, T, > + ?Sized,
6858{
6859    visitor.visit_item_name_mut(&mut node.materialized_view_name);
6860}
6861impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateSinkStatement<T> {
6862    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6863        visitor.visit_show_create_sink_statement_mut(self)
6864    }
6865}
6866#[allow(clippy::needless_pass_by_ref_mut)]
6867pub fn visit_show_create_sink_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateSinkStatement<T>)
6868where
6869    V: VisitMut<'ast, T, > + ?Sized,
6870{
6871    visitor.visit_item_name_mut(&mut node.sink_name);
6872}
6873impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateSourceStatement<T> {
6874    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6875        visitor.visit_show_create_source_statement_mut(self)
6876    }
6877}
6878#[allow(clippy::needless_pass_by_ref_mut)]
6879pub fn visit_show_create_source_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateSourceStatement<T>)
6880where
6881    V: VisitMut<'ast, T, > + ?Sized,
6882{
6883    visitor.visit_item_name_mut(&mut node.source_name);
6884}
6885impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateTableStatement<T> {
6886    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6887        visitor.visit_show_create_table_statement_mut(self)
6888    }
6889}
6890#[allow(clippy::needless_pass_by_ref_mut)]
6891pub fn visit_show_create_table_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateTableStatement<T>)
6892where
6893    V: VisitMut<'ast, T, > + ?Sized,
6894{
6895    visitor.visit_item_name_mut(&mut node.table_name);
6896}
6897impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateTypeStatement<T> {
6898    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6899        visitor.visit_show_create_type_statement_mut(self)
6900    }
6901}
6902#[allow(clippy::needless_pass_by_ref_mut)]
6903pub fn visit_show_create_type_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateTypeStatement<T>)
6904where
6905    V: VisitMut<'ast, T, > + ?Sized,
6906{
6907    visitor.visit_data_type_mut(&mut node.type_name);
6908}
6909impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowCreateViewStatement<T> {
6910    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6911        visitor.visit_show_create_view_statement_mut(self)
6912    }
6913}
6914#[allow(clippy::needless_pass_by_ref_mut)]
6915pub fn visit_show_create_view_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowCreateViewStatement<T>)
6916where
6917    V: VisitMut<'ast, T, > + ?Sized,
6918{
6919    visitor.visit_item_name_mut(&mut node.view_name);
6920}
6921impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowObjectType<T> {
6922    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
6923        visitor.visit_show_object_type_mut(self)
6924    }
6925}
6926#[allow(clippy::needless_pass_by_ref_mut)]
6927pub fn visit_show_object_type_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowObjectType<T>)
6928where
6929    V: VisitMut<'ast, T, > + ?Sized,
6930{
6931    match node {
6932        ShowObjectType::MaterializedView {
6933            in_cluster: binding0,
6934        } => {
6935            if let Some(v) = binding0 {
6936                visitor.visit_cluster_name_mut(v);
6937            }
6938        }
6939        ShowObjectType::Index {
6940            in_cluster: binding0,
6941            on_object: binding1,
6942        } => {
6943            if let Some(v) = binding0 {
6944                visitor.visit_cluster_name_mut(v);
6945            }
6946            if let Some(v) = binding1 {
6947                visitor.visit_item_name_mut(v);
6948            }
6949        }
6950        ShowObjectType::Table {
6951            on_source: binding0,
6952        } => {
6953            if let Some(v) = binding0 {
6954                visitor.visit_item_name_mut(v);
6955            }
6956        }
6957        ShowObjectType::View {
6958        } => {
6959        }
6960        ShowObjectType::Source {
6961            in_cluster: binding0,
6962        } => {
6963            if let Some(v) = binding0 {
6964                visitor.visit_cluster_name_mut(v);
6965            }
6966        }
6967        ShowObjectType::Sink {
6968            in_cluster: binding0,
6969        } => {
6970            if let Some(v) = binding0 {
6971                visitor.visit_cluster_name_mut(v);
6972            }
6973        }
6974        ShowObjectType::Type {
6975        } => {
6976        }
6977        ShowObjectType::Role {
6978        } => {
6979        }
6980        ShowObjectType::Cluster {
6981        } => {
6982        }
6983        ShowObjectType::ClusterReplica {
6984        } => {
6985        }
6986        ShowObjectType::Object {
6987        } => {
6988        }
6989        ShowObjectType::Secret {
6990        } => {
6991        }
6992        ShowObjectType::Connection {
6993        } => {
6994        }
6995        ShowObjectType::Database {
6996        } => {
6997        }
6998        ShowObjectType::Schema {
6999            from: binding0,
7000        } => {
7001            if let Some(v) = binding0 {
7002                visitor.visit_database_name_mut(v);
7003            }
7004        }
7005        ShowObjectType::Subsource {
7006            on_source: binding0,
7007        } => {
7008            if let Some(v) = binding0 {
7009                visitor.visit_item_name_mut(v);
7010            }
7011        }
7012        ShowObjectType::Privileges {
7013            object_type: binding0,
7014            role: binding1,
7015        } => {
7016            if let Some(v) = binding0 {
7017                visitor.visit_system_object_type_mut(v);
7018            }
7019            if let Some(v) = binding1 {
7020                visitor.visit_role_name_mut(v);
7021            }
7022        }
7023        ShowObjectType::DefaultPrivileges {
7024            object_type: binding0,
7025            role: binding1,
7026        } => {
7027            if let Some(v) = binding0 {
7028                visitor.visit_object_type_mut(v);
7029            }
7030            if let Some(v) = binding1 {
7031                visitor.visit_role_name_mut(v);
7032            }
7033        }
7034        ShowObjectType::RoleMembership {
7035            role: binding0,
7036        } => {
7037            if let Some(v) = binding0 {
7038                visitor.visit_role_name_mut(v);
7039            }
7040        }
7041        ShowObjectType::ContinualTask {
7042            in_cluster: binding0,
7043        } => {
7044            if let Some(v) = binding0 {
7045                visitor.visit_cluster_name_mut(v);
7046            }
7047        }
7048        ShowObjectType::NetworkPolicy {
7049        } => {
7050        }
7051    }
7052}
7053impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowObjectsStatement<T> {
7054    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7055        visitor.visit_show_objects_statement_mut(self)
7056    }
7057}
7058#[allow(clippy::needless_pass_by_ref_mut)]
7059pub fn visit_show_objects_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowObjectsStatement<T>)
7060where
7061    V: VisitMut<'ast, T, > + ?Sized,
7062{
7063    visitor.visit_show_object_type_mut(&mut node.object_type);
7064    if let Some(v) = &mut node.from {
7065        visitor.visit_schema_name_mut(v);
7066    }
7067    if let Some(v) = &mut node.filter {
7068        visitor.visit_show_statement_filter_mut(v);
7069    }
7070}
7071impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowStatement<T> {
7072    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7073        visitor.visit_show_statement_mut(self)
7074    }
7075}
7076#[allow(clippy::needless_pass_by_ref_mut)]
7077pub fn visit_show_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowStatement<T>)
7078where
7079    V: VisitMut<'ast, T, > + ?Sized,
7080{
7081    match node {
7082        ShowStatement::ShowObjects {
7083            0: binding0,
7084        } => {
7085            visitor.visit_show_objects_statement_mut(binding0);
7086        }
7087        ShowStatement::ShowColumns {
7088            0: binding0,
7089        } => {
7090            visitor.visit_show_columns_statement_mut(binding0);
7091        }
7092        ShowStatement::ShowCreateView {
7093            0: binding0,
7094        } => {
7095            visitor.visit_show_create_view_statement_mut(binding0);
7096        }
7097        ShowStatement::ShowCreateMaterializedView {
7098            0: binding0,
7099        } => {
7100            visitor.visit_show_create_materialized_view_statement_mut(binding0);
7101        }
7102        ShowStatement::ShowCreateSource {
7103            0: binding0,
7104        } => {
7105            visitor.visit_show_create_source_statement_mut(binding0);
7106        }
7107        ShowStatement::ShowCreateTable {
7108            0: binding0,
7109        } => {
7110            visitor.visit_show_create_table_statement_mut(binding0);
7111        }
7112        ShowStatement::ShowCreateSink {
7113            0: binding0,
7114        } => {
7115            visitor.visit_show_create_sink_statement_mut(binding0);
7116        }
7117        ShowStatement::ShowCreateIndex {
7118            0: binding0,
7119        } => {
7120            visitor.visit_show_create_index_statement_mut(binding0);
7121        }
7122        ShowStatement::ShowCreateConnection {
7123            0: binding0,
7124        } => {
7125            visitor.visit_show_create_connection_statement_mut(binding0);
7126        }
7127        ShowStatement::ShowCreateCluster {
7128            0: binding0,
7129        } => {
7130            visitor.visit_show_create_cluster_statement_mut(binding0);
7131        }
7132        ShowStatement::ShowCreateType {
7133            0: binding0,
7134        } => {
7135            visitor.visit_show_create_type_statement_mut(binding0);
7136        }
7137        ShowStatement::ShowVariable {
7138            0: binding0,
7139        } => {
7140            visitor.visit_show_variable_statement_mut(binding0);
7141        }
7142        ShowStatement::InspectShard {
7143            0: binding0,
7144        } => {
7145            visitor.visit_inspect_shard_statement_mut(binding0);
7146        }
7147    }
7148}
7149impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowStatementFilter<T> {
7150    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7151        visitor.visit_show_statement_filter_mut(self)
7152    }
7153}
7154#[allow(clippy::needless_pass_by_ref_mut)]
7155pub fn visit_show_statement_filter_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowStatementFilter<T>)
7156where
7157    V: VisitMut<'ast, T, > + ?Sized,
7158{
7159    match node {
7160        ShowStatementFilter::Like {
7161            0: binding0,
7162        } => {
7163        }
7164        ShowStatementFilter::Where {
7165            0: binding0,
7166        } => {
7167            visitor.visit_expr_mut(binding0);
7168        }
7169    }
7170}
7171impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ShowVariableStatement {
7172    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7173        visitor.visit_show_variable_statement_mut(self)
7174    }
7175}
7176#[allow(clippy::needless_pass_by_ref_mut)]
7177pub fn visit_show_variable_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ShowVariableStatement)
7178where
7179    V: VisitMut<'ast, T, > + ?Sized,
7180{
7181    visitor.visit_ident_mut(&mut node.variable);
7182}
7183impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SinkEnvelope {
7184    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7185        visitor.visit_sink_envelope_mut(self)
7186    }
7187}
7188#[allow(clippy::needless_pass_by_ref_mut)]
7189pub fn visit_sink_envelope_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SinkEnvelope)
7190where
7191    V: VisitMut<'ast, T, > + ?Sized,
7192{
7193    match node {
7194        SinkEnvelope::Debezium {
7195        } => {
7196        }
7197        SinkEnvelope::Upsert {
7198        } => {
7199        }
7200    }
7201}
7202impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SinkKey {
7203    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7204        visitor.visit_sink_key_mut(self)
7205    }
7206}
7207#[allow(clippy::needless_pass_by_ref_mut)]
7208pub fn visit_sink_key_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SinkKey)
7209where
7210    V: VisitMut<'ast, T, > + ?Sized,
7211{
7212    for v in &mut node.key_columns {
7213        visitor.visit_ident_mut(v);
7214    }
7215}
7216impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SourceEnvelope {
7217    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7218        visitor.visit_source_envelope_mut(self)
7219    }
7220}
7221#[allow(clippy::needless_pass_by_ref_mut)]
7222pub fn visit_source_envelope_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SourceEnvelope)
7223where
7224    V: VisitMut<'ast, T, > + ?Sized,
7225{
7226    match node {
7227        SourceEnvelope::None {
7228        } => {
7229        }
7230        SourceEnvelope::Debezium {
7231        } => {
7232        }
7233        SourceEnvelope::Upsert {
7234            value_decode_err_policy: binding0,
7235        } => {
7236            for v in binding0 {
7237                visitor.visit_source_error_policy_mut(v);
7238            }
7239        }
7240        SourceEnvelope::CdcV2 {
7241        } => {
7242        }
7243    }
7244}
7245impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SourceErrorPolicy {
7246    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7247        visitor.visit_source_error_policy_mut(self)
7248    }
7249}
7250#[allow(clippy::needless_pass_by_ref_mut)]
7251pub fn visit_source_error_policy_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SourceErrorPolicy)
7252where
7253    V: VisitMut<'ast, T, > + ?Sized,
7254{
7255    match node {
7256        SourceErrorPolicy::Inline {
7257            alias: binding0,
7258        } => {
7259            if let Some(v) = binding0 {
7260                visitor.visit_ident_mut(v);
7261            }
7262        }
7263    }
7264}
7265impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SourceIncludeMetadata {
7266    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7267        visitor.visit_source_include_metadata_mut(self)
7268    }
7269}
7270#[allow(clippy::needless_pass_by_ref_mut)]
7271pub fn visit_source_include_metadata_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SourceIncludeMetadata)
7272where
7273    V: VisitMut<'ast, T, > + ?Sized,
7274{
7275    match node {
7276        SourceIncludeMetadata::Key {
7277            alias: binding0,
7278        } => {
7279            if let Some(v) = binding0 {
7280                visitor.visit_ident_mut(v);
7281            }
7282        }
7283        SourceIncludeMetadata::Timestamp {
7284            alias: binding0,
7285        } => {
7286            if let Some(v) = binding0 {
7287                visitor.visit_ident_mut(v);
7288            }
7289        }
7290        SourceIncludeMetadata::Partition {
7291            alias: binding0,
7292        } => {
7293            if let Some(v) = binding0 {
7294                visitor.visit_ident_mut(v);
7295            }
7296        }
7297        SourceIncludeMetadata::Offset {
7298            alias: binding0,
7299        } => {
7300            if let Some(v) = binding0 {
7301                visitor.visit_ident_mut(v);
7302            }
7303        }
7304        SourceIncludeMetadata::Headers {
7305            alias: binding0,
7306        } => {
7307            if let Some(v) = binding0 {
7308                visitor.visit_ident_mut(v);
7309            }
7310        }
7311        SourceIncludeMetadata::Header {
7312            key: binding0,
7313            alias: binding1,
7314            use_bytes: binding2,
7315        } => {
7316            visitor.visit_ident_mut(binding1);
7317        }
7318    }
7319}
7320impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SqlServerConfigOption<T> {
7321    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7322        visitor.visit_sql_server_config_option_mut(self)
7323    }
7324}
7325#[allow(clippy::needless_pass_by_ref_mut)]
7326pub fn visit_sql_server_config_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SqlServerConfigOption<T>)
7327where
7328    V: VisitMut<'ast, T, > + ?Sized,
7329{
7330    visitor.visit_sql_server_config_option_name_mut(&mut node.name);
7331    if let Some(v) = &mut node.value {
7332        visitor.visit_with_option_value_mut(v);
7333    }
7334}
7335impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SqlServerConfigOptionName {
7336    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7337        visitor.visit_sql_server_config_option_name_mut(self)
7338    }
7339}
7340#[allow(clippy::needless_pass_by_ref_mut)]
7341pub fn visit_sql_server_config_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SqlServerConfigOptionName)
7342where
7343    V: VisitMut<'ast, T, > + ?Sized,
7344{
7345    match node {
7346        SqlServerConfigOptionName::Details {
7347        } => {
7348        }
7349        SqlServerConfigOptionName::TextColumns {
7350        } => {
7351        }
7352        SqlServerConfigOptionName::ExcludeColumns {
7353        } => {
7354        }
7355    }
7356}
7357impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for StartTransactionStatement {
7358    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7359        visitor.visit_start_transaction_statement_mut(self)
7360    }
7361}
7362#[allow(clippy::needless_pass_by_ref_mut)]
7363pub fn visit_start_transaction_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut StartTransactionStatement)
7364where
7365    V: VisitMut<'ast, T, > + ?Sized,
7366{
7367    for v in &mut node.modes {
7368        visitor.visit_transaction_mode_mut(v);
7369    }
7370}
7371impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Statement<T> {
7372    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7373        visitor.visit_statement_mut(self)
7374    }
7375}
7376#[allow(clippy::needless_pass_by_ref_mut)]
7377pub fn visit_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Statement<T>)
7378where
7379    V: VisitMut<'ast, T, > + ?Sized,
7380{
7381    match node {
7382        Statement::Select {
7383            0: binding0,
7384        } => {
7385            visitor.visit_select_statement_mut(binding0);
7386        }
7387        Statement::Insert {
7388            0: binding0,
7389        } => {
7390            visitor.visit_insert_statement_mut(binding0);
7391        }
7392        Statement::Copy {
7393            0: binding0,
7394        } => {
7395            visitor.visit_copy_statement_mut(binding0);
7396        }
7397        Statement::Update {
7398            0: binding0,
7399        } => {
7400            visitor.visit_update_statement_mut(binding0);
7401        }
7402        Statement::Delete {
7403            0: binding0,
7404        } => {
7405            visitor.visit_delete_statement_mut(binding0);
7406        }
7407        Statement::CreateConnection {
7408            0: binding0,
7409        } => {
7410            visitor.visit_create_connection_statement_mut(binding0);
7411        }
7412        Statement::CreateDatabase {
7413            0: binding0,
7414        } => {
7415            visitor.visit_create_database_statement_mut(binding0);
7416        }
7417        Statement::CreateSchema {
7418            0: binding0,
7419        } => {
7420            visitor.visit_create_schema_statement_mut(binding0);
7421        }
7422        Statement::CreateWebhookSource {
7423            0: binding0,
7424        } => {
7425            visitor.visit_create_webhook_source_statement_mut(binding0);
7426        }
7427        Statement::CreateSource {
7428            0: binding0,
7429        } => {
7430            visitor.visit_create_source_statement_mut(binding0);
7431        }
7432        Statement::CreateSubsource {
7433            0: binding0,
7434        } => {
7435            visitor.visit_create_subsource_statement_mut(binding0);
7436        }
7437        Statement::CreateSink {
7438            0: binding0,
7439        } => {
7440            visitor.visit_create_sink_statement_mut(binding0);
7441        }
7442        Statement::CreateView {
7443            0: binding0,
7444        } => {
7445            visitor.visit_create_view_statement_mut(binding0);
7446        }
7447        Statement::CreateMaterializedView {
7448            0: binding0,
7449        } => {
7450            visitor.visit_create_materialized_view_statement_mut(binding0);
7451        }
7452        Statement::CreateContinualTask {
7453            0: binding0,
7454        } => {
7455            visitor.visit_create_continual_task_statement_mut(binding0);
7456        }
7457        Statement::CreateTable {
7458            0: binding0,
7459        } => {
7460            visitor.visit_create_table_statement_mut(binding0);
7461        }
7462        Statement::CreateTableFromSource {
7463            0: binding0,
7464        } => {
7465            visitor.visit_create_table_from_source_statement_mut(binding0);
7466        }
7467        Statement::CreateIndex {
7468            0: binding0,
7469        } => {
7470            visitor.visit_create_index_statement_mut(binding0);
7471        }
7472        Statement::CreateType {
7473            0: binding0,
7474        } => {
7475            visitor.visit_create_type_statement_mut(binding0);
7476        }
7477        Statement::CreateRole {
7478            0: binding0,
7479        } => {
7480            visitor.visit_create_role_statement_mut(binding0);
7481        }
7482        Statement::CreateCluster {
7483            0: binding0,
7484        } => {
7485            visitor.visit_create_cluster_statement_mut(binding0);
7486        }
7487        Statement::CreateClusterReplica {
7488            0: binding0,
7489        } => {
7490            visitor.visit_create_cluster_replica_statement_mut(binding0);
7491        }
7492        Statement::CreateSecret {
7493            0: binding0,
7494        } => {
7495            visitor.visit_create_secret_statement_mut(binding0);
7496        }
7497        Statement::CreateNetworkPolicy {
7498            0: binding0,
7499        } => {
7500            visitor.visit_create_network_policy_statement_mut(binding0);
7501        }
7502        Statement::AlterCluster {
7503            0: binding0,
7504        } => {
7505            visitor.visit_alter_cluster_statement_mut(binding0);
7506        }
7507        Statement::AlterOwner {
7508            0: binding0,
7509        } => {
7510            visitor.visit_alter_owner_statement_mut(binding0);
7511        }
7512        Statement::AlterObjectRename {
7513            0: binding0,
7514        } => {
7515            visitor.visit_alter_object_rename_statement_mut(binding0);
7516        }
7517        Statement::AlterObjectSwap {
7518            0: binding0,
7519        } => {
7520            visitor.visit_alter_object_swap_statement_mut(binding0);
7521        }
7522        Statement::AlterRetainHistory {
7523            0: binding0,
7524        } => {
7525            visitor.visit_alter_retain_history_statement_mut(binding0);
7526        }
7527        Statement::AlterIndex {
7528            0: binding0,
7529        } => {
7530            visitor.visit_alter_index_statement_mut(binding0);
7531        }
7532        Statement::AlterSecret {
7533            0: binding0,
7534        } => {
7535            visitor.visit_alter_secret_statement_mut(binding0);
7536        }
7537        Statement::AlterSetCluster {
7538            0: binding0,
7539        } => {
7540            visitor.visit_alter_set_cluster_statement_mut(binding0);
7541        }
7542        Statement::AlterSink {
7543            0: binding0,
7544        } => {
7545            visitor.visit_alter_sink_statement_mut(binding0);
7546        }
7547        Statement::AlterSource {
7548            0: binding0,
7549        } => {
7550            visitor.visit_alter_source_statement_mut(binding0);
7551        }
7552        Statement::AlterSystemSet {
7553            0: binding0,
7554        } => {
7555            visitor.visit_alter_system_set_statement_mut(binding0);
7556        }
7557        Statement::AlterSystemReset {
7558            0: binding0,
7559        } => {
7560            visitor.visit_alter_system_reset_statement_mut(binding0);
7561        }
7562        Statement::AlterSystemResetAll {
7563            0: binding0,
7564        } => {
7565            visitor.visit_alter_system_reset_all_statement_mut(binding0);
7566        }
7567        Statement::AlterConnection {
7568            0: binding0,
7569        } => {
7570            visitor.visit_alter_connection_statement_mut(binding0);
7571        }
7572        Statement::AlterNetworkPolicy {
7573            0: binding0,
7574        } => {
7575            visitor.visit_alter_network_policy_statement_mut(binding0);
7576        }
7577        Statement::AlterRole {
7578            0: binding0,
7579        } => {
7580            visitor.visit_alter_role_statement_mut(binding0);
7581        }
7582        Statement::AlterTableAddColumn {
7583            0: binding0,
7584        } => {
7585            visitor.visit_alter_table_add_column_statement_mut(binding0);
7586        }
7587        Statement::AlterMaterializedViewApplyReplacement {
7588            0: binding0,
7589        } => {
7590            visitor.visit_alter_materialized_view_apply_replacement_statement_mut(binding0);
7591        }
7592        Statement::Discard {
7593            0: binding0,
7594        } => {
7595            visitor.visit_discard_statement_mut(binding0);
7596        }
7597        Statement::DropObjects {
7598            0: binding0,
7599        } => {
7600            visitor.visit_drop_objects_statement_mut(binding0);
7601        }
7602        Statement::DropOwned {
7603            0: binding0,
7604        } => {
7605            visitor.visit_drop_owned_statement_mut(binding0);
7606        }
7607        Statement::SetVariable {
7608            0: binding0,
7609        } => {
7610            visitor.visit_set_variable_statement_mut(binding0);
7611        }
7612        Statement::ResetVariable {
7613            0: binding0,
7614        } => {
7615            visitor.visit_reset_variable_statement_mut(binding0);
7616        }
7617        Statement::Show {
7618            0: binding0,
7619        } => {
7620            visitor.visit_show_statement_mut(binding0);
7621        }
7622        Statement::StartTransaction {
7623            0: binding0,
7624        } => {
7625            visitor.visit_start_transaction_statement_mut(binding0);
7626        }
7627        Statement::SetTransaction {
7628            0: binding0,
7629        } => {
7630            visitor.visit_set_transaction_statement_mut(binding0);
7631        }
7632        Statement::Commit {
7633            0: binding0,
7634        } => {
7635            visitor.visit_commit_statement_mut(binding0);
7636        }
7637        Statement::Rollback {
7638            0: binding0,
7639        } => {
7640            visitor.visit_rollback_statement_mut(binding0);
7641        }
7642        Statement::Subscribe {
7643            0: binding0,
7644        } => {
7645            visitor.visit_subscribe_statement_mut(binding0);
7646        }
7647        Statement::ExplainPlan {
7648            0: binding0,
7649        } => {
7650            visitor.visit_explain_plan_statement_mut(binding0);
7651        }
7652        Statement::ExplainPushdown {
7653            0: binding0,
7654        } => {
7655            visitor.visit_explain_pushdown_statement_mut(binding0);
7656        }
7657        Statement::ExplainTimestamp {
7658            0: binding0,
7659        } => {
7660            visitor.visit_explain_timestamp_statement_mut(binding0);
7661        }
7662        Statement::ExplainSinkSchema {
7663            0: binding0,
7664        } => {
7665            visitor.visit_explain_sink_schema_statement_mut(binding0);
7666        }
7667        Statement::ExplainAnalyzeObject {
7668            0: binding0,
7669        } => {
7670            visitor.visit_explain_analyze_object_statement_mut(binding0);
7671        }
7672        Statement::ExplainAnalyzeCluster {
7673            0: binding0,
7674        } => {
7675            visitor.visit_explain_analyze_cluster_statement_mut(binding0);
7676        }
7677        Statement::Declare {
7678            0: binding0,
7679        } => {
7680            visitor.visit_declare_statement_mut(binding0);
7681        }
7682        Statement::Fetch {
7683            0: binding0,
7684        } => {
7685            visitor.visit_fetch_statement_mut(binding0);
7686        }
7687        Statement::Close {
7688            0: binding0,
7689        } => {
7690            visitor.visit_close_statement_mut(binding0);
7691        }
7692        Statement::Prepare {
7693            0: binding0,
7694        } => {
7695            visitor.visit_prepare_statement_mut(binding0);
7696        }
7697        Statement::Execute {
7698            0: binding0,
7699        } => {
7700            visitor.visit_execute_statement_mut(binding0);
7701        }
7702        Statement::Deallocate {
7703            0: binding0,
7704        } => {
7705            visitor.visit_deallocate_statement_mut(binding0);
7706        }
7707        Statement::Raise {
7708            0: binding0,
7709        } => {
7710            visitor.visit_raise_statement_mut(binding0);
7711        }
7712        Statement::GrantRole {
7713            0: binding0,
7714        } => {
7715            visitor.visit_grant_role_statement_mut(binding0);
7716        }
7717        Statement::RevokeRole {
7718            0: binding0,
7719        } => {
7720            visitor.visit_revoke_role_statement_mut(binding0);
7721        }
7722        Statement::GrantPrivileges {
7723            0: binding0,
7724        } => {
7725            visitor.visit_grant_privileges_statement_mut(binding0);
7726        }
7727        Statement::RevokePrivileges {
7728            0: binding0,
7729        } => {
7730            visitor.visit_revoke_privileges_statement_mut(binding0);
7731        }
7732        Statement::AlterDefaultPrivileges {
7733            0: binding0,
7734        } => {
7735            visitor.visit_alter_default_privileges_statement_mut(binding0);
7736        }
7737        Statement::ReassignOwned {
7738            0: binding0,
7739        } => {
7740            visitor.visit_reassign_owned_statement_mut(binding0);
7741        }
7742        Statement::ValidateConnection {
7743            0: binding0,
7744        } => {
7745            visitor.visit_validate_connection_statement_mut(binding0);
7746        }
7747        Statement::Comment {
7748            0: binding0,
7749        } => {
7750            visitor.visit_comment_statement_mut(binding0);
7751        }
7752    }
7753}
7754impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SubscribeOption<T> {
7755    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7756        visitor.visit_subscribe_option_mut(self)
7757    }
7758}
7759#[allow(clippy::needless_pass_by_ref_mut)]
7760pub fn visit_subscribe_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SubscribeOption<T>)
7761where
7762    V: VisitMut<'ast, T, > + ?Sized,
7763{
7764    visitor.visit_subscribe_option_name_mut(&mut node.name);
7765    if let Some(v) = &mut node.value {
7766        visitor.visit_with_option_value_mut(v);
7767    }
7768}
7769impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SubscribeOptionName {
7770    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7771        visitor.visit_subscribe_option_name_mut(self)
7772    }
7773}
7774#[allow(clippy::needless_pass_by_ref_mut)]
7775pub fn visit_subscribe_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SubscribeOptionName)
7776where
7777    V: VisitMut<'ast, T, > + ?Sized,
7778{
7779    match node {
7780        SubscribeOptionName::Snapshot {
7781        } => {
7782        }
7783        SubscribeOptionName::Progress {
7784        } => {
7785        }
7786    }
7787}
7788impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SubscribeOutput<T> {
7789    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7790        visitor.visit_subscribe_output_mut(self)
7791    }
7792}
7793#[allow(clippy::needless_pass_by_ref_mut)]
7794pub fn visit_subscribe_output_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SubscribeOutput<T>)
7795where
7796    V: VisitMut<'ast, T, > + ?Sized,
7797{
7798    match node {
7799        SubscribeOutput::Diffs {
7800        } => {
7801        }
7802        SubscribeOutput::WithinTimestampOrderBy {
7803            order_by: binding0,
7804        } => {
7805            for v in binding0 {
7806                visitor.visit_order_by_expr_mut(v);
7807            }
7808        }
7809        SubscribeOutput::EnvelopeUpsert {
7810            key_columns: binding0,
7811        } => {
7812            for v in binding0 {
7813                visitor.visit_ident_mut(v);
7814            }
7815        }
7816        SubscribeOutput::EnvelopeDebezium {
7817            key_columns: binding0,
7818        } => {
7819            for v in binding0 {
7820                visitor.visit_ident_mut(v);
7821            }
7822        }
7823    }
7824}
7825impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SubscribeRelation<T> {
7826    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7827        visitor.visit_subscribe_relation_mut(self)
7828    }
7829}
7830#[allow(clippy::needless_pass_by_ref_mut)]
7831pub fn visit_subscribe_relation_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SubscribeRelation<T>)
7832where
7833    V: VisitMut<'ast, T, > + ?Sized,
7834{
7835    match node {
7836        SubscribeRelation::Name {
7837            0: binding0,
7838        } => {
7839            visitor.visit_item_name_mut(binding0);
7840        }
7841        SubscribeRelation::Query {
7842            0: binding0,
7843        } => {
7844            visitor.visit_query_mut(binding0);
7845        }
7846    }
7847}
7848impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SubscribeStatement<T> {
7849    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7850        visitor.visit_subscribe_statement_mut(self)
7851    }
7852}
7853#[allow(clippy::needless_pass_by_ref_mut)]
7854pub fn visit_subscribe_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SubscribeStatement<T>)
7855where
7856    V: VisitMut<'ast, T, > + ?Sized,
7857{
7858    visitor.visit_subscribe_relation_mut(&mut node.relation);
7859    for v in &mut node.options {
7860        visitor.visit_subscribe_option_mut(v);
7861    }
7862    if let Some(v) = &mut node.as_of {
7863        visitor.visit_as_of_mut(v);
7864    }
7865    if let Some(v) = &mut node.up_to {
7866        visitor.visit_expr_mut(v);
7867    }
7868    visitor.visit_subscribe_output_mut(&mut node.output);
7869}
7870impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SubscriptPosition<T> {
7871    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7872        visitor.visit_subscript_position_mut(self)
7873    }
7874}
7875#[allow(clippy::needless_pass_by_ref_mut)]
7876pub fn visit_subscript_position_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SubscriptPosition<T>)
7877where
7878    V: VisitMut<'ast, T, > + ?Sized,
7879{
7880    if let Some(v) = &mut node.start {
7881        visitor.visit_expr_mut(v);
7882    }
7883    if let Some(v) = &mut node.end {
7884        visitor.visit_expr_mut(v);
7885    }
7886}
7887impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for SystemObjectType {
7888    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7889        visitor.visit_system_object_type_mut(self)
7890    }
7891}
7892#[allow(clippy::needless_pass_by_ref_mut)]
7893pub fn visit_system_object_type_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut SystemObjectType)
7894where
7895    V: VisitMut<'ast, T, > + ?Sized,
7896{
7897    match node {
7898        SystemObjectType::System {
7899        } => {
7900        }
7901        SystemObjectType::Object {
7902            0: binding0,
7903        } => {
7904            visitor.visit_object_type_mut(binding0);
7905        }
7906    }
7907}
7908#[allow(clippy::needless_pass_by_ref_mut)]
7909pub fn visit_cluster_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::ClusterName)
7910where
7911    V: VisitMut<'ast, T, > + ?Sized,
7912{
7913}
7914#[allow(clippy::needless_pass_by_ref_mut)]
7915pub fn visit_column_reference_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::ColumnReference)
7916where
7917    V: VisitMut<'ast, T, > + ?Sized,
7918{
7919}
7920#[allow(clippy::needless_pass_by_ref_mut)]
7921pub fn visit_cte_id_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::CteId)
7922where
7923    V: VisitMut<'ast, T, > + ?Sized,
7924{
7925}
7926#[allow(clippy::needless_pass_by_ref_mut)]
7927pub fn visit_data_type_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::DataType)
7928where
7929    V: VisitMut<'ast, T, > + ?Sized,
7930{
7931}
7932#[allow(clippy::needless_pass_by_ref_mut)]
7933pub fn visit_database_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::DatabaseName)
7934where
7935    V: VisitMut<'ast, T, > + ?Sized,
7936{
7937}
7938#[allow(clippy::needless_pass_by_ref_mut)]
7939pub fn visit_item_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::ItemName)
7940where
7941    V: VisitMut<'ast, T, > + ?Sized,
7942{
7943}
7944#[allow(clippy::needless_pass_by_ref_mut)]
7945pub fn visit_nested_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::NestedStatement)
7946where
7947    V: VisitMut<'ast, T, > + ?Sized,
7948{
7949}
7950#[allow(clippy::needless_pass_by_ref_mut)]
7951pub fn visit_network_policy_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::NetworkPolicyName)
7952where
7953    V: VisitMut<'ast, T, > + ?Sized,
7954{
7955}
7956#[allow(clippy::needless_pass_by_ref_mut)]
7957pub fn visit_object_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::ObjectName)
7958where
7959    V: VisitMut<'ast, T, > + ?Sized,
7960{
7961}
7962#[allow(clippy::needless_pass_by_ref_mut)]
7963pub fn visit_role_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::RoleName)
7964where
7965    V: VisitMut<'ast, T, > + ?Sized,
7966{
7967}
7968#[allow(clippy::needless_pass_by_ref_mut)]
7969pub fn visit_schema_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut T::SchemaName)
7970where
7971    V: VisitMut<'ast, T, > + ?Sized,
7972{
7973}
7974impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableAlias {
7975    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7976        visitor.visit_table_alias_mut(self)
7977    }
7978}
7979#[allow(clippy::needless_pass_by_ref_mut)]
7980pub fn visit_table_alias_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableAlias)
7981where
7982    V: VisitMut<'ast, T, > + ?Sized,
7983{
7984    visitor.visit_ident_mut(&mut node.name);
7985    for v in &mut node.columns {
7986        visitor.visit_ident_mut(v);
7987    }
7988}
7989impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableConstraint<T> {
7990    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
7991        visitor.visit_table_constraint_mut(self)
7992    }
7993}
7994#[allow(clippy::needless_pass_by_ref_mut)]
7995pub fn visit_table_constraint_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableConstraint<T>)
7996where
7997    V: VisitMut<'ast, T, > + ?Sized,
7998{
7999    match node {
8000        TableConstraint::Unique {
8001            name: binding0,
8002            columns: binding1,
8003            is_primary: binding2,
8004            nulls_not_distinct: binding3,
8005        } => {
8006            if let Some(v) = binding0 {
8007                visitor.visit_ident_mut(v);
8008            }
8009            for v in binding1 {
8010                visitor.visit_ident_mut(v);
8011            }
8012        }
8013        TableConstraint::ForeignKey {
8014            name: binding0,
8015            columns: binding1,
8016            foreign_table: binding2,
8017            referred_columns: binding3,
8018        } => {
8019            if let Some(v) = binding0 {
8020                visitor.visit_ident_mut(v);
8021            }
8022            for v in binding1 {
8023                visitor.visit_ident_mut(v);
8024            }
8025            visitor.visit_item_name_mut(binding2);
8026            for v in binding3 {
8027                visitor.visit_ident_mut(v);
8028            }
8029        }
8030        TableConstraint::Check {
8031            name: binding0,
8032            expr: binding1,
8033        } => {
8034            if let Some(v) = binding0 {
8035                visitor.visit_ident_mut(v);
8036            }
8037            visitor.visit_expr_mut(&mut *binding1);
8038        }
8039    }
8040}
8041impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableFactor<T> {
8042    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8043        visitor.visit_table_factor_mut(self)
8044    }
8045}
8046#[allow(clippy::needless_pass_by_ref_mut)]
8047pub fn visit_table_factor_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableFactor<T>)
8048where
8049    V: VisitMut<'ast, T, > + ?Sized,
8050{
8051    match node {
8052        TableFactor::Table {
8053            name: binding0,
8054            alias: binding1,
8055        } => {
8056            visitor.visit_item_name_mut(binding0);
8057            if let Some(v) = binding1 {
8058                visitor.visit_table_alias_mut(v);
8059            }
8060        }
8061        TableFactor::Function {
8062            function: binding0,
8063            alias: binding1,
8064            with_ordinality: binding2,
8065        } => {
8066            visitor.visit_function_mut(binding0);
8067            if let Some(v) = binding1 {
8068                visitor.visit_table_alias_mut(v);
8069            }
8070        }
8071        TableFactor::RowsFrom {
8072            functions: binding0,
8073            alias: binding1,
8074            with_ordinality: binding2,
8075        } => {
8076            for v in binding0 {
8077                visitor.visit_function_mut(v);
8078            }
8079            if let Some(v) = binding1 {
8080                visitor.visit_table_alias_mut(v);
8081            }
8082        }
8083        TableFactor::Derived {
8084            lateral: binding0,
8085            subquery: binding1,
8086            alias: binding2,
8087        } => {
8088            visitor.visit_query_mut(&mut *binding1);
8089            if let Some(v) = binding2 {
8090                visitor.visit_table_alias_mut(v);
8091            }
8092        }
8093        TableFactor::NestedJoin {
8094            join: binding0,
8095            alias: binding1,
8096        } => {
8097            visitor.visit_table_with_joins_mut(&mut *binding0);
8098            if let Some(v) = binding1 {
8099                visitor.visit_table_alias_mut(v);
8100            }
8101        }
8102    }
8103}
8104impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableFromSourceColumns<T> {
8105    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8106        visitor.visit_table_from_source_columns_mut(self)
8107    }
8108}
8109#[allow(clippy::needless_pass_by_ref_mut)]
8110pub fn visit_table_from_source_columns_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableFromSourceColumns<T>)
8111where
8112    V: VisitMut<'ast, T, > + ?Sized,
8113{
8114    match node {
8115        TableFromSourceColumns::NotSpecified {
8116        } => {
8117        }
8118        TableFromSourceColumns::Named {
8119            0: binding0,
8120        } => {
8121            for v in binding0 {
8122                visitor.visit_ident_mut(v);
8123            }
8124        }
8125        TableFromSourceColumns::Defined {
8126            0: binding0,
8127        } => {
8128            for v in binding0 {
8129                visitor.visit_column_def_mut(v);
8130            }
8131        }
8132    }
8133}
8134impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableFromSourceOption<T> {
8135    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8136        visitor.visit_table_from_source_option_mut(self)
8137    }
8138}
8139#[allow(clippy::needless_pass_by_ref_mut)]
8140pub fn visit_table_from_source_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableFromSourceOption<T>)
8141where
8142    V: VisitMut<'ast, T, > + ?Sized,
8143{
8144    visitor.visit_table_from_source_option_name_mut(&mut node.name);
8145    if let Some(v) = &mut node.value {
8146        visitor.visit_with_option_value_mut(v);
8147    }
8148}
8149impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableFromSourceOptionName {
8150    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8151        visitor.visit_table_from_source_option_name_mut(self)
8152    }
8153}
8154#[allow(clippy::needless_pass_by_ref_mut)]
8155pub fn visit_table_from_source_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableFromSourceOptionName)
8156where
8157    V: VisitMut<'ast, T, > + ?Sized,
8158{
8159    match node {
8160        TableFromSourceOptionName::TextColumns {
8161        } => {
8162        }
8163        TableFromSourceOptionName::ExcludeColumns {
8164        } => {
8165        }
8166        TableFromSourceOptionName::Details {
8167        } => {
8168        }
8169        TableFromSourceOptionName::PartitionBy {
8170        } => {
8171        }
8172        TableFromSourceOptionName::RetainHistory {
8173        } => {
8174        }
8175    }
8176}
8177impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableOption<T> {
8178    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8179        visitor.visit_table_option_mut(self)
8180    }
8181}
8182#[allow(clippy::needless_pass_by_ref_mut)]
8183pub fn visit_table_option_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableOption<T>)
8184where
8185    V: VisitMut<'ast, T, > + ?Sized,
8186{
8187    visitor.visit_table_option_name_mut(&mut node.name);
8188    if let Some(v) = &mut node.value {
8189        visitor.visit_with_option_value_mut(v);
8190    }
8191}
8192impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableOptionName {
8193    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8194        visitor.visit_table_option_name_mut(self)
8195    }
8196}
8197#[allow(clippy::needless_pass_by_ref_mut)]
8198pub fn visit_table_option_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableOptionName)
8199where
8200    V: VisitMut<'ast, T, > + ?Sized,
8201{
8202    match node {
8203        TableOptionName::PartitionBy {
8204        } => {
8205        }
8206        TableOptionName::RetainHistory {
8207        } => {
8208        }
8209        TableOptionName::RedactedTest {
8210        } => {
8211        }
8212    }
8213}
8214impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TableWithJoins<T> {
8215    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8216        visitor.visit_table_with_joins_mut(self)
8217    }
8218}
8219#[allow(clippy::needless_pass_by_ref_mut)]
8220pub fn visit_table_with_joins_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TableWithJoins<T>)
8221where
8222    V: VisitMut<'ast, T, > + ?Sized,
8223{
8224    visitor.visit_table_factor_mut(&mut node.relation);
8225    for v in &mut node.joins {
8226        visitor.visit_join_mut(v);
8227    }
8228}
8229impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TargetRoleSpecification<T> {
8230    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8231        visitor.visit_target_role_specification_mut(self)
8232    }
8233}
8234#[allow(clippy::needless_pass_by_ref_mut)]
8235pub fn visit_target_role_specification_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TargetRoleSpecification<T>)
8236where
8237    V: VisitMut<'ast, T, > + ?Sized,
8238{
8239    match node {
8240        TargetRoleSpecification::Roles {
8241            0: binding0,
8242        } => {
8243            for v in binding0 {
8244                visitor.visit_role_name_mut(v);
8245            }
8246        }
8247        TargetRoleSpecification::AllRoles {
8248        } => {
8249        }
8250    }
8251}
8252impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TransactionAccessMode {
8253    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8254        visitor.visit_transaction_access_mode_mut(self)
8255    }
8256}
8257#[allow(clippy::needless_pass_by_ref_mut)]
8258pub fn visit_transaction_access_mode_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TransactionAccessMode)
8259where
8260    V: VisitMut<'ast, T, > + ?Sized,
8261{
8262    match node {
8263        TransactionAccessMode::ReadOnly {
8264        } => {
8265        }
8266        TransactionAccessMode::ReadWrite {
8267        } => {
8268        }
8269    }
8270}
8271impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TransactionIsolationLevel {
8272    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8273        visitor.visit_transaction_isolation_level_mut(self)
8274    }
8275}
8276#[allow(clippy::needless_pass_by_ref_mut)]
8277pub fn visit_transaction_isolation_level_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TransactionIsolationLevel)
8278where
8279    V: VisitMut<'ast, T, > + ?Sized,
8280{
8281    match node {
8282        TransactionIsolationLevel::ReadUncommitted {
8283        } => {
8284        }
8285        TransactionIsolationLevel::ReadCommitted {
8286        } => {
8287        }
8288        TransactionIsolationLevel::RepeatableRead {
8289        } => {
8290        }
8291        TransactionIsolationLevel::Serializable {
8292        } => {
8293        }
8294        TransactionIsolationLevel::StrongSessionSerializable {
8295        } => {
8296        }
8297        TransactionIsolationLevel::StrictSerializable {
8298        } => {
8299        }
8300    }
8301}
8302impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for TransactionMode {
8303    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8304        visitor.visit_transaction_mode_mut(self)
8305    }
8306}
8307#[allow(clippy::needless_pass_by_ref_mut)]
8308pub fn visit_transaction_mode_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut TransactionMode)
8309where
8310    V: VisitMut<'ast, T, > + ?Sized,
8311{
8312    match node {
8313        TransactionMode::AccessMode {
8314            0: binding0,
8315        } => {
8316            visitor.visit_transaction_access_mode_mut(binding0);
8317        }
8318        TransactionMode::IsolationLevel {
8319            0: binding0,
8320        } => {
8321            visitor.visit_transaction_isolation_level_mut(binding0);
8322        }
8323    }
8324}
8325impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for UnresolvedDatabaseName {
8326    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8327        visitor.visit_unresolved_database_name_mut(self)
8328    }
8329}
8330#[allow(clippy::needless_pass_by_ref_mut)]
8331pub fn visit_unresolved_database_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut UnresolvedDatabaseName)
8332where
8333    V: VisitMut<'ast, T, > + ?Sized,
8334{
8335    visitor.visit_ident_mut(&mut node.0);
8336}
8337impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for UnresolvedItemName {
8338    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8339        visitor.visit_unresolved_item_name_mut(self)
8340    }
8341}
8342#[allow(clippy::needless_pass_by_ref_mut)]
8343pub fn visit_unresolved_item_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut UnresolvedItemName)
8344where
8345    V: VisitMut<'ast, T, > + ?Sized,
8346{
8347    for v in &mut node.0 {
8348        visitor.visit_ident_mut(v);
8349    }
8350}
8351impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for UnresolvedObjectName {
8352    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8353        visitor.visit_unresolved_object_name_mut(self)
8354    }
8355}
8356#[allow(clippy::needless_pass_by_ref_mut)]
8357pub fn visit_unresolved_object_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut UnresolvedObjectName)
8358where
8359    V: VisitMut<'ast, T, > + ?Sized,
8360{
8361    match node {
8362        UnresolvedObjectName::Cluster {
8363            0: binding0,
8364        } => {
8365            visitor.visit_ident_mut(binding0);
8366        }
8367        UnresolvedObjectName::ClusterReplica {
8368            0: binding0,
8369        } => {
8370            visitor.visit_qualified_replica_mut(binding0);
8371        }
8372        UnresolvedObjectName::Database {
8373            0: binding0,
8374        } => {
8375            visitor.visit_unresolved_database_name_mut(binding0);
8376        }
8377        UnresolvedObjectName::Schema {
8378            0: binding0,
8379        } => {
8380            visitor.visit_unresolved_schema_name_mut(binding0);
8381        }
8382        UnresolvedObjectName::Role {
8383            0: binding0,
8384        } => {
8385            visitor.visit_ident_mut(binding0);
8386        }
8387        UnresolvedObjectName::Item {
8388            0: binding0,
8389        } => {
8390            visitor.visit_unresolved_item_name_mut(binding0);
8391        }
8392        UnresolvedObjectName::NetworkPolicy {
8393            0: binding0,
8394        } => {
8395            visitor.visit_ident_mut(binding0);
8396        }
8397    }
8398}
8399impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for UnresolvedSchemaName {
8400    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8401        visitor.visit_unresolved_schema_name_mut(self)
8402    }
8403}
8404#[allow(clippy::needless_pass_by_ref_mut)]
8405pub fn visit_unresolved_schema_name_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut UnresolvedSchemaName)
8406where
8407    V: VisitMut<'ast, T, > + ?Sized,
8408{
8409    for v in &mut node.0 {
8410        visitor.visit_ident_mut(v);
8411    }
8412}
8413impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for UpdateStatement<T> {
8414    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8415        visitor.visit_update_statement_mut(self)
8416    }
8417}
8418#[allow(clippy::needless_pass_by_ref_mut)]
8419pub fn visit_update_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut UpdateStatement<T>)
8420where
8421    V: VisitMut<'ast, T, > + ?Sized,
8422{
8423    visitor.visit_item_name_mut(&mut node.table_name);
8424    if let Some(v) = &mut node.alias {
8425        visitor.visit_table_alias_mut(v);
8426    }
8427    for v in &mut node.assignments {
8428        visitor.visit_assignment_mut(v);
8429    }
8430    if let Some(v) = &mut node.selection {
8431        visitor.visit_expr_mut(v);
8432    }
8433}
8434impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ValidateConnectionStatement<T> {
8435    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8436        visitor.visit_validate_connection_statement_mut(self)
8437    }
8438}
8439#[allow(clippy::needless_pass_by_ref_mut)]
8440pub fn visit_validate_connection_statement_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ValidateConnectionStatement<T>)
8441where
8442    V: VisitMut<'ast, T, > + ?Sized,
8443{
8444    visitor.visit_item_name_mut(&mut node.name);
8445}
8446impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Value {
8447    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8448        visitor.visit_value_mut(self)
8449    }
8450}
8451#[allow(clippy::needless_pass_by_ref_mut)]
8452pub fn visit_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Value)
8453where
8454    V: VisitMut<'ast, T, > + ?Sized,
8455{
8456    match node {
8457        Value::Number {
8458            0: binding0,
8459        } => {
8460        }
8461        Value::String {
8462            0: binding0,
8463        } => {
8464        }
8465        Value::HexString {
8466            0: binding0,
8467        } => {
8468        }
8469        Value::Boolean {
8470            0: binding0,
8471        } => {
8472        }
8473        Value::Interval {
8474            0: binding0,
8475        } => {
8476            visitor.visit_interval_value_mut(binding0);
8477        }
8478        Value::Null {
8479        } => {
8480        }
8481    }
8482}
8483impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ValueError {
8484    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8485        visitor.visit_value_error_mut(self)
8486    }
8487}
8488#[allow(clippy::needless_pass_by_ref_mut)]
8489pub fn visit_value_error_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ValueError)
8490where
8491    V: VisitMut<'ast, T, > + ?Sized,
8492{
8493}
8494impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Values<T> {
8495    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8496        visitor.visit_values_mut(self)
8497    }
8498}
8499#[allow(clippy::needless_pass_by_ref_mut)]
8500pub fn visit_values_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Values<T>)
8501where
8502    V: VisitMut<'ast, T, > + ?Sized,
8503{
8504    for v in &mut node.0 {
8505        for v in v {
8506            visitor.visit_expr_mut(v);
8507        }
8508    }
8509}
8510impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for Version {
8511    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8512        visitor.visit_version_mut(self)
8513    }
8514}
8515#[allow(clippy::needless_pass_by_ref_mut)]
8516pub fn visit_version_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut Version)
8517where
8518    V: VisitMut<'ast, T, > + ?Sized,
8519{
8520}
8521impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for ViewDefinition<T> {
8522    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8523        visitor.visit_view_definition_mut(self)
8524    }
8525}
8526#[allow(clippy::needless_pass_by_ref_mut)]
8527pub fn visit_view_definition_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut ViewDefinition<T>)
8528where
8529    V: VisitMut<'ast, T, > + ?Sized,
8530{
8531    visitor.visit_unresolved_item_name_mut(&mut node.name);
8532    for v in &mut node.columns {
8533        visitor.visit_ident_mut(v);
8534    }
8535    visitor.visit_query_mut(&mut node.query);
8536}
8537impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for WindowFrame {
8538    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8539        visitor.visit_window_frame_mut(self)
8540    }
8541}
8542#[allow(clippy::needless_pass_by_ref_mut)]
8543pub fn visit_window_frame_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut WindowFrame)
8544where
8545    V: VisitMut<'ast, T, > + ?Sized,
8546{
8547    visitor.visit_window_frame_units_mut(&mut node.units);
8548    visitor.visit_window_frame_bound_mut(&mut node.start_bound);
8549    if let Some(v) = &mut node.end_bound {
8550        visitor.visit_window_frame_bound_mut(v);
8551    }
8552}
8553impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for WindowFrameBound {
8554    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8555        visitor.visit_window_frame_bound_mut(self)
8556    }
8557}
8558#[allow(clippy::needless_pass_by_ref_mut)]
8559pub fn visit_window_frame_bound_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut WindowFrameBound)
8560where
8561    V: VisitMut<'ast, T, > + ?Sized,
8562{
8563    match node {
8564        WindowFrameBound::CurrentRow {
8565        } => {
8566        }
8567        WindowFrameBound::Preceding {
8568            0: binding0,
8569        } => {
8570            if let Some(v) = binding0 {
8571            }
8572        }
8573        WindowFrameBound::Following {
8574            0: binding0,
8575        } => {
8576            if let Some(v) = binding0 {
8577            }
8578        }
8579    }
8580}
8581impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for WindowFrameUnits {
8582    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8583        visitor.visit_window_frame_units_mut(self)
8584    }
8585}
8586#[allow(clippy::needless_pass_by_ref_mut)]
8587pub fn visit_window_frame_units_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut WindowFrameUnits)
8588where
8589    V: VisitMut<'ast, T, > + ?Sized,
8590{
8591    match node {
8592        WindowFrameUnits::Rows {
8593        } => {
8594        }
8595        WindowFrameUnits::Range {
8596        } => {
8597        }
8598        WindowFrameUnits::Groups {
8599        } => {
8600        }
8601    }
8602}
8603impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for WindowSpec<T> {
8604    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8605        visitor.visit_window_spec_mut(self)
8606    }
8607}
8608#[allow(clippy::needless_pass_by_ref_mut)]
8609pub fn visit_window_spec_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut WindowSpec<T>)
8610where
8611    V: VisitMut<'ast, T, > + ?Sized,
8612{
8613    for v in &mut node.partition_by {
8614        visitor.visit_expr_mut(v);
8615    }
8616    for v in &mut node.order_by {
8617        visitor.visit_order_by_expr_mut(v);
8618    }
8619    if let Some(v) = &mut node.window_frame {
8620        visitor.visit_window_frame_mut(v);
8621    }
8622}
8623impl<'ast, T: AstInfo, > VisitMutNode<'ast, T, > for WithOptionValue<T> {
8624    fn visit_mut<V: VisitMut<'ast, T, >>(&'ast mut self, visitor: &mut V) {
8625        visitor.visit_with_option_value_mut(self)
8626    }
8627}
8628#[allow(clippy::needless_pass_by_ref_mut)]
8629pub fn visit_with_option_value_mut<'ast, V, T: AstInfo, >(visitor: &mut V, node: &'ast mut WithOptionValue<T>)
8630where
8631    V: VisitMut<'ast, T, > + ?Sized,
8632{
8633    match node {
8634        WithOptionValue::Value {
8635            0: binding0,
8636        } => {
8637            visitor.visit_value_mut(binding0);
8638        }
8639        WithOptionValue::DataType {
8640            0: binding0,
8641        } => {
8642            visitor.visit_data_type_mut(binding0);
8643        }
8644        WithOptionValue::Secret {
8645            0: binding0,
8646        } => {
8647            visitor.visit_item_name_mut(binding0);
8648        }
8649        WithOptionValue::Item {
8650            0: binding0,
8651        } => {
8652            visitor.visit_item_name_mut(binding0);
8653        }
8654        WithOptionValue::UnresolvedItemName {
8655            0: binding0,
8656        } => {
8657            visitor.visit_unresolved_item_name_mut(binding0);
8658        }
8659        WithOptionValue::Ident {
8660            0: binding0,
8661        } => {
8662            visitor.visit_ident_mut(binding0);
8663        }
8664        WithOptionValue::Sequence {
8665            0: binding0,
8666        } => {
8667            for v in binding0 {
8668                visitor.visit_with_option_value_mut(v);
8669            }
8670        }
8671        WithOptionValue::Map {
8672            0: binding0,
8673        } => {
8674            for (_, value) in binding0 {
8675                visitor.visit_with_option_value_mut(value);
8676            }
8677        }
8678        WithOptionValue::Expr {
8679            0: binding0,
8680        } => {
8681            visitor.visit_expr_mut(binding0);
8682        }
8683        WithOptionValue::ClusterReplicas {
8684            0: binding0,
8685        } => {
8686            for v in binding0 {
8687                visitor.visit_replica_definition_mut(v);
8688            }
8689        }
8690        WithOptionValue::ConnectionKafkaBroker {
8691            0: binding0,
8692        } => {
8693            visitor.visit_kafka_broker_mut(binding0);
8694        }
8695        WithOptionValue::ConnectionAwsPrivatelink {
8696            0: binding0,
8697        } => {
8698            visitor.visit_connection_default_aws_privatelink_mut(binding0);
8699        }
8700        WithOptionValue::RetainHistoryFor {
8701            0: binding0,
8702        } => {
8703            visitor.visit_value_mut(binding0);
8704        }
8705        WithOptionValue::Refresh {
8706            0: binding0,
8707        } => {
8708            visitor.visit_refresh_option_value_mut(binding0);
8709        }
8710        WithOptionValue::ClusterScheduleOptionValue {
8711            0: binding0,
8712        } => {
8713            visitor.visit_cluster_schedule_option_value_mut(binding0);
8714        }
8715        WithOptionValue::ClusterAlterStrategy {
8716            0: binding0,
8717        } => {
8718            visitor.visit_cluster_alter_option_value_mut(binding0);
8719        }
8720        WithOptionValue::NetworkPolicyRules {
8721            0: binding0,
8722        } => {
8723            for v in binding0 {
8724                visitor.visit_network_policy_rule_definition_mut(v);
8725            }
8726        }
8727    }
8728}