Skip to main content

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

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