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