yinli-systems opened a new pull request, #25303: URL: https://github.com/apache/datafusion/pull/25303
## Which issue does this PR close?\n\n- Part of #24117.\n\n## Rationale for this change\n\nThe existing dictionary benchmark only measures pre-encoded dictionaries with cardinality expressed as a fraction of row count. That is not enough to derive a safe automatic encoding policy: native dictionaries, per-batch dictionaries, plain strings, and runtime encoding have materially different costs, and the crossover also depends on absolute NDV, value width, and batch layout.\n\nThe initial benchmark evidence is recorded in https://github.com/apache/datafusion/issues/24117#issuecomment-5671192732. In particular, runtime encoding lost in every measured case, while pre-encoded dictionaries changed from a substantial win at low NDV to a loss at higher NDV.\n\n## What changes are included in this PR?\n\n- Compare pre-encoded dictionaries, plain strings, and runtime dictionary casts.\n- Configure absolute NDV, value width, and input batch size.\n- Model shared dictionary values and independe nt per-batch values.\n- Optionally normalize dictionary group keys back to Utf8 in the output so output-type preservation is included in the measurement.\n- Preserve the existing default benchmark behavior and case names.\n- Reject invalid benchmark configurations instead of silently changing the requested workload.\n- Verify that all encodings produce identical grouped counts.\n\nThis PR only establishes the benchmark surface needed to evaluate #24117; it does not add an optimizer rule or select a universal threshold.\n\n## What is the testing strategy for this PR?\n\n- running 148 tests test dict::tests::query_sql_keeps_user_visible_string_type ... ok test dict::tests::rejects_zero_input_batch_size ... ok test dict::tests::rejects_invalid_distinct_count_and_dictionary_reuse ... ok test dict::tests::per_batch_dictionaries_keep_global_row_pattern ... ok test sql_benchmark::tests::parse_group_from_path_handles_relative_and_absolute_paths ... ok test sql_benchmark::tests::parse_group_from_path_matches_benchmark_directory_case_insensitively ... ok test sql_benchmark::tests::parse_group_from_path_pins_fallback_for_paths_outside_benchmark_directory ... ok test sql_benchmark::tests::parse_group_from_path_returns_group_under_benchmark_directory ... ok test dict::tests::dictionary_batches_share_values_and_preserve_padding ... ok test sql_benchmark::tests::parser_accepts_assert_with_expected_rows ... ok test sql_benchmark::tests::parser_accepts_case_insensitive_query_directives ... ok test sql_benchmark::tests::initialize_rejects_benchmark_without_run_query ... ok test sql_benchmark::tests::parser_accepts_indented_comments_and_blank_lines ... ok test sql_benchmark::tests::parser_accepts_include_file ... ok test sql_benchmark::tests::parser_accepts_malformed_result_file ... ok test sql_benchmark::tests::assert_propagates_query_failures ... ok test sql_benchmark::tests::cleanup_propagates_query_failures ... ok test sql_benchmark::tests::initialize_propagates_init_query_failures ... ok test sql_benchmark::tests::initialize_propagates_load_query_failures ... ok test sql_benchmark::tests::parser_accepts_missing_result_file ... ok test sql_benchmark::tests::parser_accepts_metadata_expect_echo_and_sql_sections ... ok test sql_benchmark::tests::parser_accepts_multiple_cleanup_directives ... ok test sql_benchmark::tests::parser_accepts_multiple_init_directives ... ok test sql_benchmark::tests::parser_accepts_multiple_load_directives ... ok test sql_benchmark::tests::parser_accepts_query_file_and_splits_statements ... ok test sql_benchmark::tests::parser_accepts_result_query_with_expected_rows ... ok test sql_benchmark::tests::parser_ignores_query_file_with_only_comments_and_blank_lines ... ok test sql_benchmark::tests::parser_preserves_expected_result_cell_whitespace ... ok test sql_benchmark::tests::parser_accepts_template_file_with_parameters ... ok test sql_benchmark::tests::parser_records_result_file_without_parsing_contents ... ok test sql_benchmark::tests::parser_accepts_replacements_in_query_file_path ... ok test sql_benchmark::tests::parser_accepts_replacement_in_result_file_path ... ok test sql_benchmark::tests::parser_rejects_duplicate_run_directives ... ok test sql_benchmark::tests::parser_rejects_assert_without_column_count ... ok test sql_benchmark::tests::parser_rejects_assert_without_result_separator ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_cleanup_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_init_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_include_and_template_with_too_many_arguments ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_load_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_query_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_missing_query_file ... ok test sql_benchmark::tests::parser_rejects_missing_replacement_in_result_file_path ... ok test sql_benchmark::tests::parser_rejects_multiple_result_queries ... ok test sql_benchmark::tests::parser_rejects_missing_include_file ... ok test sql_benchmark::tests::parser_rejects_missing_template_file ... ok test sql_benchmark::tests::parser_rejects_result_query_with_wrong_column_count ... ok test sql_benchmark::tests::parser_splits_inline_run_block_on_semicolon_newline ... ok test sql_benchmark::tests::parser_rejects_unknown_command ... ok test sql_benchmark::tests::parser_rejects_template_with_invalid_parameter_assignment ... ok test sql_benchmark::tests::parser_rejects_result_query_without_separator ... ok test sql_benchmark::tests::path_ends_with_ignore_ascii_case_matches_component_suffixes ... ok test sql_benchmark::tests::parser_splits_query_file_with_windows_line_endings ... ok test sql_benchmark::tests::parser_uses_metadata_values_as_replacements ... ok test sql_benchmark::tests::parser_trims_template_parameter_keys_and_values ... ok test sql_benchmark::tests::parser_rejects_metadata_and_result_directives_without_values ... ok test sql_benchmark::tests::process_replacements_applies_true_false_false_branch ... ok test sql_benchmark::tests::process_replacements_applies_true_false_true_branch ... ok test sql_benchmark::tests::process_replacements_leaves_unsupported_placeholder_syntax_unchanged ... ok test sql_benchmark::tests::process_replacements_prefers_map_over_env ... ok test sql_benchmark::tests::process_replacements_prefers_map_over_env_for_true_false_branch ... ok test sql_benchmark::tests::process_replacements_replaces_map_values_case_insensitively ... ok test sql_benchmark::tests::process_replacements_reports_missing_true_false_variable_without_default ... ok test sql_benchmark::tests::process_replacements_reports_missing_variable_without_default ... ok test sql_benchmark::tests::process_replacements_resolves_variables_after_true_false_replacement ... ok test sql_benchmark::tests::process_replacements_uses_default_for_missing_variable ... ok test sql_benchmark::tests::process_replacements_uses_env_when_map_value_is_missing ... ok test sql_benchmark::tests::process_replacements_uses_map_for_true_false_branch ... ok test sql_benchmark::tests::process_replacements_uses_true_false_default_for_missing_false_value ... ok test sql_benchmark::tests::process_replacements_uses_true_false_default_for_missing_true_value ... ok test sql_benchmark::tests::resolves_sql_benchmarks_paths_from_manifest_directory ... ok test sql_benchmark::tests::assert_succeeds_with_zero_actual_and_expected_rows ... ok test sql_benchmark::tests::assert_accepts_empty_marker_for_null_actual ... ok test sql_benchmark::tests::assert_accepts_null_expected_for_empty_actual ... ok test sql_benchmark::tests::assert_accepts_empty_marker_for_empty_actual ... ok test sql_benchmark::tests::parser_applies_data_dir_replacement_in_load_query_file ... ok test sql_benchmark::tests::persist_without_result_query_returns_ok ... ok test sql_benchmark::tests::assert_reports_column_count_mismatch ... ok test sql_benchmark::tests::assert_executes_assert_queries_successfully ... ok test sql_benchmark::tests::persist_writes_header_for_zero_row_select_results ... ok test sql_benchmark::tests::assert_reports_row_count_mismatch ... ok test sql_benchmark::tests::persist_rejects_result_query_without_file_path ... ok test sql_benchmark::tests::assert_reports_value_mismatch ... ok test sql_benchmark::tests::run_does_not_save_results_for_non_select_statement ... ok test sql_benchmark::tests::persist_rejects_run_without_saved_result_batches ... ok test sql_benchmark::tests::run_propagates_query_failures_when_buffering_results ... ok test sql_benchmark::tests::run_propagates_query_failures_when_streaming_results ... ok test sql_benchmark::tests::run_saves_uppercase_select_results ... ok test sql_benchmark::tests::persist_writes_header_and_pipe_delimited_rows ... ok test sql_benchmark::tests::verify_errors_when_benchmark_has_not_run ... ok test sql_benchmark::tests::run_saves_with_query_results ... ok test sql_benchmark::tests::run_inline_multi_statement_only_keeps_last_select_or_with_result ... ok test sql_benchmark::tests::run_only_keeps_last_select_or_with_result ... ok test sql_benchmark_runner::tests::criterion_group_names_include_safe_namespaces ... ok test sql_benchmark::tests::verify_propagates_result_query_failures ... ok test sql_benchmark_runner::tests::criterion_group_names_reject_unsafe_namespaces ... ok test sql_benchmark_runner::tests::criterion_group_names_reject_components_criterion_would_truncate ... ok test sql_benchmark_runner::tests::criterion_group_names_reject_windows_case_collisions ... ok test sql_benchmark::tests::verify_executes_result_query_instead_of_last_results ... ok test sql_benchmark::tests::run_accepts_matching_expect_plan_for_buffered_and_streaming_modes ... ok test sql_benchmark_runner::tests::criterion_replacements_use_explicit_data_directory ... ok test sql_benchmark_runner::tests::criterion_replacements_use_benchmarks_data_directory ... ok test sql_benchmark_runner::tests::normalizes_query_like_existing_sql_harness ... ok test sql_benchmark::tests::verify_without_result_query_returns_ok ... ok test sql_benchmark::tests::cleanup_executes_cleanup_queries ... ok test sql_benchmark::tests::streaming_run_reports_last_select_row_count_after_ddl ... ok test sql_benchmark::tests::verify_rejects_missing_result_file ... ok test sql_benchmark::tests::run_returns_row_count_when_saving_results ... ok test sql_benchmark::tests::run_returns_row_count_when_not_saving_results ... ok test sql_benchmark::tests::verify_reports_result_mismatch_context ... ok test sql_benchmark_suite::tests::propagates_directory_entry_errors ... ok test sql_benchmark::tests::run_rejects_missing_expect_plan_for_buffered_and_streaming_modes ... ok test sql_benchmark_runner::tests::caller_replacements_reach_parser ... ok test sql_benchmark::tests::verify_rejects_malformed_result_file ... ok test sql_benchmark_suite::tests::validates_value_sets ... ok test sql_benchmark_runner::tests::query_filename_accepts_alphanumeric_pattern ... ok test sql_benchmark::tests::initialize_executes_load_before_init_and_is_idempotent ... ok test sql_benchmark_runner::tests::criterion_names_match_existing_sql_harness ... ok test statistics::tests::parses_statements_without_losing_external_table_details ... ok test statistics::tests::parses_statements_with_session_sql_dialect ... ok test sql_benchmark_suite::tests::rejects_mismatched_suite_filename ... ok test sql_benchmark::tests::verify_uses_last_results_for_result_file_entries ... ok test sql_benchmark_suite::tests::loads_complete_suite ... ok test tpch::run::scale_factor_tests::defaults_to_sf1_when_path_has_no_scale_factor ... ok test tpch::run::scale_factor_tests::uses_explicit_scale_factor_when_provided ... ok test tpch::run::scale_factor_tests::infers_scale_factor_from_standard_tpch_path ... ok test sql_benchmark_suite::tests::rejects_unknown_field ... ok test tpch::run::scale_factor_tests::rejects_invalid_scale_factors ... ok test util::options::tests::test_parse_capacity_limit_all ... ok test util::run::tests::a_failed_query_still_reports_its_peak ... ok test util::run::tests::a_later_pool_replaces_an_earlier_one ... ok test util::options::tests::test_runtime_env_builder_reads_env_var ... ok test util::run::tests::each_case_reports_its_own_peak ... ok test util::run::tests::the_peak_is_omitted_without_a_recording_pool ... ok test statistics::tests::applies_session_changing_statements_before_reporting_queries ... ok test tpch::tests::q11_uses_scale_factor_substitution ... ok test sql_benchmark::tests::verify_uses_last_results_for_zero_row_result_file_entries ... ok test sql_benchmark_suite::tests::formats_query_filenames ... ok test tpch::tests::interval_queries_use_interval_arithmetic ... ok test statistics::tests::persists_failed_reports ... ok test sql_benchmark_runner::tests::query_filename_filters_paths_before_parsing ... ok test sql_benchmark_suite::tests::discovers_sorted_suites_and_counts_benchmarks ... ok test statistics::tests::rejects_duplicate_table_names ... ok test sql_benchmark_runner::tests::query_filename_keeps_matches_in_multiple_subgroups ... ok test sql_benchmark_suite::tests::rejects_duplicate_and_colliding_options ... ok test sql_benchmark_runner::tests::criterion_harness_reads_namespace_from_env_in_subprocess ... ok test sql_benchmark_suite::tests::rejects_invalid_metadata ... ok test dict::tests::encodings_produce_identical_grouped_counts ... ok test sql_benchmark_suite::tests::checked_in_suites_cover_benchmark_directories ... ok test result: ok. 148 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s (148 passed)\n- running 148 tests test dict::tests::query_sql_keeps_user_visible_string_type ... ok test dict::tests::rejects_zero_input_batch_size ... ok test dict::tests::rejects_invalid_distinct_count_and_dictionary_reuse ... ok test dict::tests::per_batch_dictionaries_keep_global_row_pattern ... ok test sql_benchmark::tests::parse_group_from_path_handles_relative_and_absolute_paths ... ok test sql_benchmark::tests::parse_group_from_path_matches_benchmark_directory_case_insensitively ... ok test sql_benchmark::tests::parse_group_from_path_pins_fallback_for_paths_outside_benchmark_directory ... ok test sql_benchmark::tests::parse_group_from_path_returns_group_under_benchmark_directory ... ok test dict::tests::dictionary_batches_share_values_and_preserve_padding ... ok test sql_benchmark::tests::parser_accepts_assert_with_expected_rows ... ok test sql_benchmark::tests::parser_accepts_case_insensitive_query_directives ... ok test sql_benchmark::tests::initialize_rejects_benchmark_without_run_query ... ok test sql_benchmark::tests::parser_accepts_indented_comments_and_blank_lines ... ok test sql_benchmark::tests::parser_accepts_include_file ... ok test sql_benchmark::tests::parser_accepts_malformed_result_file ... ok test sql_benchmark::tests::parser_accepts_multiple_cleanup_directives ... ok test sql_benchmark::tests::assert_propagates_query_failures ... ok test sql_benchmark::tests::parser_accepts_missing_result_file ... ok test sql_benchmark::tests::cleanup_propagates_query_failures ... ok test sql_benchmark::tests::initialize_propagates_init_query_failures ... ok test sql_benchmark::tests::initialize_propagates_load_query_failures ... ok test sql_benchmark::tests::parser_accepts_metadata_expect_echo_and_sql_sections ... ok test sql_benchmark::tests::parser_accepts_multiple_load_directives ... ok test sql_benchmark::tests::parser_accepts_multiple_init_directives ... ok test sql_benchmark::tests::parser_accepts_result_query_with_expected_rows ... ok test sql_benchmark::tests::parser_accepts_query_file_and_splits_statements ... ok test sql_benchmark::tests::parser_preserves_expected_result_cell_whitespace ... ok test sql_benchmark::tests::parser_ignores_query_file_with_only_comments_and_blank_lines ... ok test sql_benchmark::tests::parser_accepts_template_file_with_parameters ... ok test sql_benchmark::tests::parser_accepts_replacement_in_result_file_path ... ok test sql_benchmark::tests::parser_records_result_file_without_parsing_contents ... ok test sql_benchmark::tests::parser_accepts_replacements_in_query_file_path ... ok test sql_benchmark::tests::parser_rejects_assert_without_result_separator ... ok test sql_benchmark::tests::parser_rejects_assert_without_column_count ... ok test sql_benchmark::tests::parser_rejects_duplicate_run_directives ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_cleanup_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_init_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_load_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_inline_sql_when_query_file_is_provided ... ok test sql_benchmark::tests::parser_rejects_include_and_template_with_too_many_arguments ... ok test sql_benchmark::tests::parser_rejects_missing_query_file ... ok test sql_benchmark::tests::parser_rejects_missing_replacement_in_result_file_path ... ok test sql_benchmark::tests::parser_rejects_missing_template_file ... ok test sql_benchmark::tests::parser_rejects_missing_include_file ... ok test sql_benchmark::tests::parser_rejects_multiple_result_queries ... ok test sql_benchmark::tests::parser_rejects_result_query_with_wrong_column_count ... ok test sql_benchmark::tests::parser_rejects_result_query_without_separator ... ok test sql_benchmark::tests::parser_splits_inline_run_block_on_semicolon_newline ... ok test sql_benchmark::tests::parser_rejects_unknown_command ... ok test sql_benchmark::tests::parser_rejects_template_with_invalid_parameter_assignment ... ok test sql_benchmark::tests::path_ends_with_ignore_ascii_case_matches_component_suffixes ... ok test sql_benchmark::tests::parser_uses_metadata_values_as_replacements ... ok test sql_benchmark::tests::parser_splits_query_file_with_windows_line_endings ... ok test sql_benchmark::tests::parser_trims_template_parameter_keys_and_values ... ok test sql_benchmark::tests::parser_rejects_metadata_and_result_directives_without_values ... ok test sql_benchmark::tests::process_replacements_applies_true_false_false_branch ... ok test sql_benchmark::tests::process_replacements_applies_true_false_true_branch ... ok test sql_benchmark::tests::process_replacements_leaves_unsupported_placeholder_syntax_unchanged ... ok test sql_benchmark::tests::process_replacements_prefers_map_over_env ... ok test sql_benchmark::tests::process_replacements_prefers_map_over_env_for_true_false_branch ... ok test sql_benchmark::tests::process_replacements_replaces_map_values_case_insensitively ... ok test sql_benchmark::tests::process_replacements_reports_missing_true_false_variable_without_default ... ok test sql_benchmark::tests::process_replacements_reports_missing_variable_without_default ... ok test sql_benchmark::tests::process_replacements_resolves_variables_after_true_false_replacement ... ok test sql_benchmark::tests::process_replacements_uses_default_for_missing_variable ... ok test sql_benchmark::tests::process_replacements_uses_env_when_map_value_is_missing ... ok test sql_benchmark::tests::process_replacements_uses_map_for_true_false_branch ... ok test sql_benchmark::tests::process_replacements_uses_true_false_default_for_missing_false_value ... ok test sql_benchmark::tests::process_replacements_uses_true_false_default_for_missing_true_value ... ok test sql_benchmark::tests::resolves_sql_benchmarks_paths_from_manifest_directory ... ok test sql_benchmark::tests::assert_succeeds_with_zero_actual_and_expected_rows ... ok test sql_benchmark::tests::assert_accepts_empty_marker_for_null_actual ... ok test sql_benchmark::tests::persist_writes_header_for_zero_row_select_results ... ok test sql_benchmark::tests::assert_accepts_empty_marker_for_empty_actual ... ok test sql_benchmark::tests::assert_accepts_null_expected_for_empty_actual ... ok test sql_benchmark::tests::parser_applies_data_dir_replacement_in_load_query_file ... ok test sql_benchmark::tests::persist_rejects_result_query_without_file_path ... ok test sql_benchmark::tests::persist_without_result_query_returns_ok ... ok test sql_benchmark::tests::assert_reports_value_mismatch ... ok test sql_benchmark::tests::assert_reports_column_count_mismatch ... ok test sql_benchmark::tests::assert_executes_assert_queries_successfully ... ok test sql_benchmark::tests::assert_reports_row_count_mismatch ... ok test sql_benchmark::tests::run_does_not_save_results_for_non_select_statement ... ok test sql_benchmark::tests::persist_rejects_run_without_saved_result_batches ... ok test sql_benchmark::tests::run_propagates_query_failures_when_buffering_results ... ok test sql_benchmark::tests::run_propagates_query_failures_when_streaming_results ... ok test sql_benchmark::tests::verify_errors_when_benchmark_has_not_run ... ok test sql_benchmark::tests::persist_writes_header_and_pipe_delimited_rows ... ok test sql_benchmark::tests::run_saves_uppercase_select_results ... ok test sql_benchmark::tests::run_inline_multi_statement_only_keeps_last_select_or_with_result ... ok test sql_benchmark::tests::run_saves_with_query_results ... ok test sql_benchmark::tests::run_accepts_matching_expect_plan_for_buffered_and_streaming_modes ... ok test sql_benchmark_runner::tests::criterion_group_names_include_safe_namespaces ... ok test sql_benchmark::tests::verify_propagates_result_query_failures ... ok test sql_benchmark::tests::verify_executes_result_query_instead_of_last_results ... ok test sql_benchmark_runner::tests::criterion_group_names_reject_components_criterion_would_truncate ... ok test sql_benchmark_runner::tests::criterion_group_names_reject_windows_case_collisions ... ok test sql_benchmark_runner::tests::criterion_group_names_reject_unsafe_namespaces ... ok test sql_benchmark::tests::run_rejects_missing_expect_plan_for_buffered_and_streaming_modes ... ok test sql_benchmark::tests::run_only_keeps_last_select_or_with_result ... ok test sql_benchmark_runner::tests::normalizes_query_like_existing_sql_harness ... ok test sql_benchmark_runner::tests::criterion_replacements_use_explicit_data_directory ... ok test sql_benchmark_runner::tests::criterion_replacements_use_benchmarks_data_directory ... ok test sql_benchmark::tests::verify_rejects_missing_result_file ... ok test sql_benchmark::tests::verify_without_result_query_returns_ok ... ok test sql_benchmark::tests::streaming_run_reports_last_select_row_count_after_ddl ... ok test sql_benchmark::tests::verify_rejects_malformed_result_file ... ok test sql_benchmark::tests::verify_reports_result_mismatch_context ... ok test sql_benchmark::tests::run_returns_row_count_when_not_saving_results ... ok test sql_benchmark::tests::run_returns_row_count_when_saving_results ... ok test sql_benchmark_suite::tests::propagates_directory_entry_errors ... ok test sql_benchmark::tests::cleanup_executes_cleanup_queries ... ok test sql_benchmark_runner::tests::query_filename_accepts_alphanumeric_pattern ... ok test sql_benchmark_suite::tests::validates_value_sets ... ok test sql_benchmark_runner::tests::caller_replacements_reach_parser ... ok test sql_benchmark_runner::tests::criterion_names_match_existing_sql_harness ... ok test statistics::tests::parses_statements_with_session_sql_dialect ... ok test statistics::tests::parses_statements_without_losing_external_table_details ... ok test sql_benchmark_suite::tests::rejects_unknown_field ... ok test tpch::run::scale_factor_tests::defaults_to_sf1_when_path_has_no_scale_factor ... ok test sql_benchmark::tests::verify_uses_last_results_for_zero_row_result_file_entries ... ok test tpch::run::scale_factor_tests::infers_scale_factor_from_standard_tpch_path ... ok test sql_benchmark_suite::tests::loads_complete_suite ... ok test tpch::run::scale_factor_tests::rejects_invalid_scale_factors ... ok test tpch::run::scale_factor_tests::uses_explicit_scale_factor_when_provided ... ok test sql_benchmark_suite::tests::rejects_mismatched_suite_filename ... ok test util::options::tests::test_parse_capacity_limit_all ... ok test sql_benchmark::tests::initialize_executes_load_before_init_and_is_idempotent ... ok test util::options::tests::test_runtime_env_builder_reads_env_var ... ok test statistics::tests::applies_session_changing_statements_before_reporting_queries ... ok test util::run::tests::a_failed_query_still_reports_its_peak ... ok test sql_benchmark::tests::verify_uses_last_results_for_result_file_entries ... ok test sql_benchmark_suite::tests::formats_query_filenames ... ok test util::run::tests::the_peak_is_omitted_without_a_recording_pool ... ok test tpch::tests::interval_queries_use_interval_arithmetic ... ok test tpch::tests::q11_uses_scale_factor_substitution ... ok test util::run::tests::each_case_reports_its_own_peak ... ok test util::run::tests::a_later_pool_replaces_an_earlier_one ... ok test statistics::tests::persists_failed_reports ... ok test sql_benchmark_runner::tests::query_filename_filters_paths_before_parsing ... ok test sql_benchmark_runner::tests::query_filename_keeps_matches_in_multiple_subgroups ... ok test sql_benchmark_suite::tests::discovers_sorted_suites_and_counts_benchmarks ... ok test statistics::tests::rejects_duplicate_table_names ... ok test sql_benchmark_suite::tests::rejects_duplicate_and_colliding_options ... ok test sql_benchmark_runner::tests::criterion_harness_reads_namespace_from_env_in_subprocess ... ok test sql_benchmark_suite::tests::rejects_invalid_metadata ... ok test sql_benchmark_suite::tests::checked_in_suites_cover_benchmark_directories ... ok test dict::tests::encodings_produce_identical_grouped_counts ... ok test result: ok. 148 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s (148 passed)\n- \n- \n- \n- Runtime-dictionary CLI smoke test with fixed NDV, input batching, value width, and output normalization\n\nA full transitive clippy run currently stops on the pre-existing lint in after the Rust 1.98 toolchain update; the benchmark crate itself is clean with both default and all features.\n\n## Are there any user-facing changes?\n\nNo DataFusion runtime or public API behavior changes. This only adds benchmark CLI controls. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
