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