benchbox 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- benchbox/__init__.py +1 -1
- benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query72.tpl +1 -1
- benchbox/_binaries/tpc-ds/{darwin-x86_64/query_templates/ansi.tpl → templates/query_templates/sqlserver.tpl} +1 -1
- benchbox/_binaries/tpc-ds/templates/query_variants/README +6 -0
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query10.tpl → templates/query_variants/query10a.tpl} +13 -14
- benchbox/_binaries/tpc-ds/{darwin-x86_64/query_templates/query14.tpl → templates/query_variants/query14a.tpl} +30 -26
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query18.tpl → templates/query_variants/query18a.tpl} +40 -19
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query22.tpl → templates/query_variants/query22a.tpl} +31 -9
- benchbox/_binaries/tpc-ds/{darwin-x86_64/query_templates/query27.tpl → templates/query_variants/query27a.tpl} +23 -10
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query35.tpl → templates/query_variants/query35a.tpl} +9 -8
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query36.tpl → templates/query_variants/query36a.tpl} +24 -12
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query51.tpl → templates/query_variants/query51a.tpl} +37 -20
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query5.tpl → templates/query_variants/query5a.tpl} +15 -10
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query67.tpl → templates/query_variants/query67a.tpl} +46 -18
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query70.tpl → templates/query_variants/query70a.tpl} +31 -27
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query77.tpl → templates/query_variants/query77a.tpl} +22 -15
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query80.tpl → templates/query_variants/query80a.tpl} +22 -8
- benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query86.tpl → templates/query_variants/query86a.tpl} +22 -13
- benchbox/_binaries/tpc-h/templates/dists.dss +836 -0
- benchbox/_binaries/tpc-h/templates/queries/1.sql +28 -0
- benchbox/_binaries/tpc-h/templates/queries/10.sql +38 -0
- benchbox/_binaries/tpc-h/templates/queries/11.sql +34 -0
- benchbox/_binaries/tpc-h/templates/queries/12.sql +35 -0
- benchbox/_binaries/tpc-h/templates/queries/13.sql +27 -0
- benchbox/_binaries/tpc-h/templates/queries/14.sql +20 -0
- benchbox/_binaries/tpc-h/templates/queries/15.sql +40 -0
- benchbox/_binaries/tpc-h/templates/queries/16.sql +37 -0
- benchbox/_binaries/tpc-h/templates/queries/17.sql +24 -0
- benchbox/_binaries/tpc-h/templates/queries/18.sql +39 -0
- benchbox/_binaries/tpc-h/templates/queries/19.sql +42 -0
- benchbox/_binaries/tpc-h/templates/queries/2.sql +50 -0
- benchbox/_binaries/tpc-h/templates/queries/20.sql +44 -0
- benchbox/_binaries/tpc-h/templates/queries/21.sql +46 -0
- benchbox/_binaries/tpc-h/templates/queries/22.sql +44 -0
- benchbox/_binaries/tpc-h/templates/queries/3.sql +29 -0
- benchbox/_binaries/tpc-h/templates/queries/4.sql +28 -0
- benchbox/_binaries/tpc-h/templates/queries/5.sql +31 -0
- benchbox/_binaries/tpc-h/templates/queries/6.sql +16 -0
- benchbox/_binaries/tpc-h/templates/queries/7.sql +46 -0
- benchbox/_binaries/tpc-h/templates/queries/8.sql +44 -0
- benchbox/_binaries/tpc-h/templates/queries/9.sql +39 -0
- benchbox/_binaries/tpc-h/templates/variants/12a.sql +27 -0
- benchbox/_binaries/tpc-h/templates/variants/13a.sql +30 -0
- benchbox/_binaries/tpc-h/templates/variants/14a.sql +18 -0
- benchbox/_binaries/tpc-h/templates/variants/15a.sql +39 -0
- benchbox/_binaries/tpc-h/templates/variants/8a.sql +77 -0
- benchbox/base.py +88 -121
- benchbox/cli/benchmarks.py +3 -3
- benchbox/cli/commands/calculate_qphh.py +55 -14
- benchbox/cli/commands/checks.py +1 -4
- benchbox/cli/commands/convert.py +8 -3
- benchbox/cli/commands/metrics.py +55 -14
- benchbox/cli/commands/results.py +131 -3
- benchbox/cli/commands/run.py +157 -22
- benchbox/cli/commands/visualize.py +3 -3
- benchbox/cli/composite_params.py +1 -1
- benchbox/cli/config.py +13 -3
- benchbox/cli/database.py +3 -3
- benchbox/cli/dryrun.py +30 -4
- benchbox/cli/exceptions.py +2 -1
- benchbox/cli/execution_pipeline.py +2 -1
- benchbox/cli/orchestrator.py +25 -71
- benchbox/cli/tuning.py +1 -1
- benchbox/core/ai_primitives/benchmark.py +53 -0
- benchbox/core/ai_primitives/dataframe_operations.py +1217 -0
- benchbox/core/base_benchmark.py +90 -68
- benchbox/core/coffeeshop/queries.py +1 -1
- benchbox/core/coffeeshop/schema.py +1 -1
- benchbox/core/comparison/plotter.py +5 -4
- benchbox/core/dataframe/__init__.py +26 -0
- benchbox/core/dataframe/benchmark_suite.py +5 -4
- benchbox/core/dataframe/context.py +45 -0
- benchbox/core/dataframe/data_loader.py +180 -79
- benchbox/core/dataframe/maintenance_interface.py +866 -0
- benchbox/core/dryrun.py +152 -22
- benchbox/core/expected_results/registry.py +22 -5
- benchbox/core/manifest/io.py +4 -3
- benchbox/core/metadata_primitives/__init__.py +31 -0
- benchbox/core/metadata_primitives/benchmark.py +337 -0
- benchbox/core/metadata_primitives/dataframe_operations.py +1824 -0
- benchbox/core/platform_registry.py +134 -45
- benchbox/core/read_primitives/benchmark.py +56 -4
- benchbox/core/read_primitives/dataframe_queries.py +6547 -0
- benchbox/core/results/__init__.py +47 -6
- benchbox/core/results/builder.py +909 -0
- benchbox/core/results/database.py +5 -5
- benchbox/core/results/exporter.py +58 -96
- benchbox/core/results/filenames.py +102 -0
- benchbox/core/results/loader.py +10 -9
- benchbox/core/results/metrics.py +211 -0
- benchbox/core/results/models.py +3 -1
- benchbox/core/results/normalizer.py +346 -0
- benchbox/core/results/platform_info.py +235 -0
- benchbox/core/results/query_normalizer.py +200 -0
- benchbox/core/results/schema.py +368 -69
- benchbox/core/runner/conversion.py +2 -0
- benchbox/core/runner/dataframe_runner.py +135 -131
- benchbox/core/runner/runner.py +111 -18
- benchbox/core/schemas.py +145 -3
- benchbox/core/ssb/generator.py +14 -2
- benchbox/core/tpc_compliance.py +4 -4
- benchbox/core/tpc_metrics.py +9 -4
- benchbox/core/tpcdi/generator/manifest.py +15 -2
- benchbox/core/tpcds/benchmark/runner.py +3 -7
- benchbox/core/tpcds/c_tools.py +34 -28
- benchbox/core/tpcds/dataframe_queries/queries.py +44 -21
- benchbox/core/tpcds/generator/filesystem.py +23 -11
- benchbox/core/tpcds/generator/manager.py +3 -2
- benchbox/core/tpcds/maintenance_test.py +281 -0
- benchbox/core/tpcds/power_test.py +21 -11
- benchbox/core/tpcds/throughput_test.py +27 -9
- benchbox/core/tpcds_obt/etl/transformer.py +24 -5
- benchbox/core/tpch/dataframe_queries.py +46 -43
- benchbox/core/tpch/generator.py +21 -8
- benchbox/core/tpch/maintenance_test.py +87 -0
- benchbox/core/tpch/power_test.py +21 -5
- benchbox/core/tpch/queries.py +2 -7
- benchbox/core/tpch/streams.py +3 -19
- benchbox/core/transaction_primitives/benchmark.py +99 -0
- benchbox/core/transaction_primitives/dataframe_operations.py +1294 -0
- benchbox/core/transaction_primitives/generator.py +11 -4
- benchbox/core/visualization/__init__.py +2 -2
- benchbox/core/visualization/charts.py +4 -4
- benchbox/core/visualization/dependencies.py +1 -12
- benchbox/core/visualization/exporters.py +15 -26
- benchbox/core/visualization/result_plotter.py +90 -49
- benchbox/core/visualization/templates.py +6 -6
- benchbox/core/write_primitives/__init__.py +13 -0
- benchbox/core/write_primitives/benchmark.py +66 -0
- benchbox/core/write_primitives/dataframe_operations.py +912 -0
- benchbox/core/write_primitives/generator.py +11 -4
- benchbox/mcp/__init__.py +5 -1
- benchbox/mcp/errors.py +29 -0
- benchbox/mcp/resources/registry.py +12 -7
- benchbox/mcp/schemas.py +62 -0
- benchbox/mcp/server.py +17 -14
- benchbox/mcp/tools/__init__.py +3 -0
- benchbox/mcp/tools/analytics.py +550 -582
- benchbox/mcp/tools/benchmark.py +603 -611
- benchbox/mcp/tools/discovery.py +156 -205
- benchbox/mcp/tools/results.py +332 -533
- benchbox/mcp/tools/visualization.py +449 -0
- benchbox/platforms/__init__.py +740 -622
- benchbox/platforms/adapter_factory.py +6 -6
- benchbox/platforms/azure_synapse.py +3 -7
- benchbox/platforms/base/adapter.py +189 -49
- benchbox/platforms/base/cloud_spark/config.py +8 -0
- benchbox/platforms/base/cloud_spark/mixins.py +96 -0
- benchbox/platforms/base/cloud_spark/session.py +4 -2
- benchbox/platforms/base/cloud_spark/staging.py +15 -7
- benchbox/platforms/base/data_loading.py +315 -1
- benchbox/platforms/base/format_capabilities.py +37 -2
- benchbox/platforms/base/utils.py +6 -4
- benchbox/platforms/bigquery.py +5 -6
- benchbox/platforms/clickhouse_cloud.py +263 -0
- benchbox/platforms/databricks/adapter.py +16 -15
- benchbox/platforms/databricks/dataframe_adapter.py +4 -1
- benchbox/platforms/dataframe/__init__.py +31 -0
- benchbox/platforms/dataframe/benchmark_mixin.py +779 -0
- benchbox/platforms/dataframe/cudf_df.py +3 -3
- benchbox/platforms/dataframe/dask_df.py +3 -3
- benchbox/platforms/dataframe/datafusion_df.py +152 -15
- benchbox/platforms/dataframe/delta_lake_maintenance.py +341 -0
- benchbox/platforms/dataframe/ducklake_maintenance.py +402 -0
- benchbox/platforms/dataframe/expression_family.py +47 -8
- benchbox/platforms/dataframe/hudi_maintenance.py +437 -0
- benchbox/platforms/dataframe/iceberg_maintenance.py +605 -0
- benchbox/platforms/dataframe/modin_df.py +3 -3
- benchbox/platforms/dataframe/pandas_df.py +3 -3
- benchbox/platforms/dataframe/pandas_family.py +59 -8
- benchbox/platforms/dataframe/platform_checker.py +16 -49
- benchbox/platforms/dataframe/polars_df.py +14 -12
- benchbox/platforms/dataframe/polars_maintenance.py +630 -0
- benchbox/platforms/dataframe/pyspark_df.py +15 -0
- benchbox/platforms/dataframe/pyspark_maintenance.py +613 -0
- benchbox/platforms/datafusion.py +5 -6
- benchbox/platforms/duckdb.py +2 -1
- benchbox/platforms/fabric_warehouse.py +15 -15
- benchbox/platforms/firebolt.py +3 -2
- benchbox/platforms/influxdb/adapter.py +7 -3
- benchbox/platforms/motherduck.py +3 -2
- benchbox/platforms/onehouse/__init__.py +39 -0
- benchbox/platforms/onehouse/onehouse_client.py +509 -0
- benchbox/platforms/onehouse/quanton_adapter.py +646 -0
- benchbox/platforms/postgresql.py +5 -9
- benchbox/platforms/presto.py +2 -2
- benchbox/platforms/pyspark/session.py +3 -3
- benchbox/platforms/pyspark/sql_adapter.py +2 -3
- benchbox/platforms/redshift.py +7 -7
- benchbox/platforms/snowflake.py +4 -4
- benchbox/platforms/snowpark_connect.py +2 -1
- benchbox/platforms/trino.py +2 -2
- benchbox/release/__init__.py +17 -0
- benchbox/release/content_validation.py +745 -0
- benchbox/release/workflow.py +17 -0
- benchbox/utils/VERSION_MANAGEMENT.md +1 -1
- benchbox/utils/cloud_storage.py +7 -5
- benchbox/utils/compression.py +8 -8
- benchbox/utils/compression_mixin.py +2 -1
- benchbox/utils/data_validation.py +23 -14
- benchbox/utils/dependencies.py +47 -7
- benchbox/utils/file_format.py +407 -0
- benchbox/utils/format_converters/__init__.py +5 -1
- benchbox/utils/format_converters/ducklake_converter.py +227 -0
- benchbox/utils/format_converters/vortex_converter.py +168 -0
- benchbox/utils/tpc_compilation.py +43 -0
- benchbox/utils/version.py +14 -2
- {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/METADATA +15 -15
- benchbox-0.1.1.dist-info/RECORD +839 -0
- {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/WHEEL +1 -1
- benchbox/_binaries/tpc-ds/darwin-arm64/query_templates/sqlserver.tpl +0 -37
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/README +0 -4
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/db2.tpl +0 -38
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/netezza.tpl +0 -38
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/oracle.tpl +0 -38
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query1.tpl +0 -62
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query10.tpl +0 -98
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query11.tpl +0 -119
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query12.tpl +0 -72
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query13.tpl +0 -89
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query15.tpl +0 -56
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query16.tpl +0 -76
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query17.tpl +0 -80
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query18.tpl +0 -73
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query19.tpl +0 -64
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query2.tpl +0 -94
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query20.tpl +0 -67
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query21.tpl +0 -65
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query22.tpl +0 -54
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query23.tpl +0 -144
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query24.tpl +0 -147
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query25.tpl +0 -84
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query26.tpl +0 -61
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query28.tpl +0 -90
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query29.tpl +0 -85
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query3.tpl +0 -58
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query30.tpl +0 -66
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query31.tpl +0 -88
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query32.tpl +0 -65
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query33.tpl +0 -113
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query34.tpl +0 -77
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query35.tpl +0 -98
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query36.tpl +0 -74
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query37.tpl +0 -57
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query38.tpl +0 -58
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query39.tpl +0 -93
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query4.tpl +0 -154
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query40.tpl +0 -63
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query41.tpl +0 -90
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query42.tpl +0 -64
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query43.tpl +0 -55
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query44.tpl +0 -72
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query45.tpl +0 -56
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query46.tpl +0 -78
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query47.tpl +0 -89
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query48.tpl +0 -104
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query49.tpl +0 -164
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query5.tpl +0 -165
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query50.tpl +0 -96
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query51.tpl +0 -80
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query52.tpl +0 -59
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query53.tpl +0 -64
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query54.tpl +0 -95
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query55.tpl +0 -52
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query56.tpl +0 -108
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query57.tpl +0 -87
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query58.tpl +0 -101
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query59.tpl +0 -79
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query6.tpl +0 -62
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query60.tpl +0 -115
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query61.tpl +0 -83
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query62.tpl +0 -71
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query63.tpl +0 -64
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query64.tpl +0 -157
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query65.tpl +0 -62
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query66.tpl +0 -261
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query67.tpl +0 -81
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query68.tpl +0 -82
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query69.tpl +0 -85
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query7.tpl +0 -60
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query70.tpl +0 -73
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query71.tpl +0 -74
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query72.tpl +0 -67
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query73.tpl +0 -69
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query74.tpl +0 -99
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query75.tpl +0 -107
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query76.tpl +0 -64
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query77.tpl +0 -145
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query78.tpl +0 -94
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query79.tpl +0 -60
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query8.tpl +0 -144
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query80.tpl +0 -131
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query81.tpl +0 -68
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query82.tpl +0 -56
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query83.tpl +0 -104
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query84.tpl +0 -58
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query85.tpl +0 -121
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query86.tpl +0 -60
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query87.tpl +0 -56
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query88.tpl +0 -128
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query89.tpl +0 -75
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query9.tpl +0 -88
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query90.tpl +0 -58
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query91.tpl +0 -68
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query92.tpl +0 -68
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query93.tpl +0 -53
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query94.tpl +0 -67
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query95.tpl +0 -71
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query96.tpl +0 -52
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query97.tpl +0 -62
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query98.tpl +0 -70
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query99.tpl +0 -69
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/sqlserver.tpl +0 -37
- benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/templates.lst +0 -99
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/README +0 -4
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/ansi.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/db2.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/netezza.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/oracle.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query1.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query11.tpl +0 -119
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query12.tpl +0 -72
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query13.tpl +0 -89
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query14.tpl +0 -247
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query15.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query16.tpl +0 -76
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query17.tpl +0 -80
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query19.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query2.tpl +0 -94
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query20.tpl +0 -67
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query21.tpl +0 -65
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query23.tpl +0 -144
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query24.tpl +0 -147
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query25.tpl +0 -84
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query26.tpl +0 -61
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query27.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query28.tpl +0 -90
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query29.tpl +0 -85
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query3.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query30.tpl +0 -66
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query31.tpl +0 -88
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query32.tpl +0 -65
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query33.tpl +0 -113
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query34.tpl +0 -77
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query37.tpl +0 -57
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query38.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query39.tpl +0 -93
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query4.tpl +0 -154
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query40.tpl +0 -63
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query41.tpl +0 -90
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query42.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query43.tpl +0 -55
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query44.tpl +0 -72
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query45.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query46.tpl +0 -78
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query47.tpl +0 -89
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query48.tpl +0 -104
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query49.tpl +0 -164
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query50.tpl +0 -96
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query52.tpl +0 -59
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query53.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query54.tpl +0 -95
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query55.tpl +0 -52
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query56.tpl +0 -108
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query57.tpl +0 -87
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query58.tpl +0 -101
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query59.tpl +0 -79
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query6.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query60.tpl +0 -115
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query61.tpl +0 -83
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query62.tpl +0 -71
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query63.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query64.tpl +0 -157
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query65.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query66.tpl +0 -261
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query68.tpl +0 -82
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query69.tpl +0 -85
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query7.tpl +0 -60
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query71.tpl +0 -74
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query72.tpl +0 -67
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query73.tpl +0 -69
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query74.tpl +0 -99
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query75.tpl +0 -107
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query76.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query78.tpl +0 -94
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query79.tpl +0 -60
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query8.tpl +0 -144
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query81.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query82.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query83.tpl +0 -104
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query84.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query85.tpl +0 -121
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query87.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query88.tpl +0 -128
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query89.tpl +0 -75
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query9.tpl +0 -88
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query90.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query91.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query92.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query93.tpl +0 -53
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query94.tpl +0 -67
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query95.tpl +0 -71
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query96.tpl +0 -52
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query97.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query98.tpl +0 -70
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query99.tpl +0 -69
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/sqlserver.tpl +0 -37
- benchbox/_binaries/tpc-ds/linux-arm64/query_templates/templates.lst +0 -99
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/README +0 -4
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/ansi.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/db2.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/netezza.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/oracle.tpl +0 -38
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query1.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query10.tpl +0 -98
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query11.tpl +0 -119
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query12.tpl +0 -72
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query13.tpl +0 -89
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query14.tpl +0 -247
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query15.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query16.tpl +0 -76
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query17.tpl +0 -80
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query18.tpl +0 -73
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query19.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query2.tpl +0 -94
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query20.tpl +0 -67
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query21.tpl +0 -65
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query22.tpl +0 -54
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query23.tpl +0 -144
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query24.tpl +0 -147
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query25.tpl +0 -84
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query26.tpl +0 -61
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query27.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query28.tpl +0 -90
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query29.tpl +0 -85
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query3.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query30.tpl +0 -66
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query31.tpl +0 -88
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query32.tpl +0 -65
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query33.tpl +0 -113
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query34.tpl +0 -77
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query35.tpl +0 -98
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query36.tpl +0 -74
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query37.tpl +0 -57
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query38.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query39.tpl +0 -93
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query4.tpl +0 -154
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query40.tpl +0 -63
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query41.tpl +0 -90
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query42.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query43.tpl +0 -55
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query44.tpl +0 -72
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query45.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query46.tpl +0 -78
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query47.tpl +0 -89
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query48.tpl +0 -104
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query49.tpl +0 -164
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query5.tpl +0 -165
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query50.tpl +0 -96
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query51.tpl +0 -80
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query52.tpl +0 -59
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query53.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query54.tpl +0 -95
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query55.tpl +0 -52
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query56.tpl +0 -108
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query57.tpl +0 -87
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query58.tpl +0 -101
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query59.tpl +0 -79
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query6.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query60.tpl +0 -115
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query61.tpl +0 -83
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query62.tpl +0 -71
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query63.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query64.tpl +0 -157
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query65.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query66.tpl +0 -261
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query67.tpl +0 -81
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query68.tpl +0 -82
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query69.tpl +0 -85
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query7.tpl +0 -60
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query70.tpl +0 -73
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query71.tpl +0 -74
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query72.tpl +0 -67
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query73.tpl +0 -69
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query74.tpl +0 -99
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query75.tpl +0 -107
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query76.tpl +0 -64
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query77.tpl +0 -145
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query78.tpl +0 -94
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query79.tpl +0 -60
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query8.tpl +0 -144
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query80.tpl +0 -131
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query81.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query82.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query83.tpl +0 -104
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query84.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query85.tpl +0 -121
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query86.tpl +0 -60
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query87.tpl +0 -56
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query88.tpl +0 -128
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query89.tpl +0 -75
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query9.tpl +0 -88
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query90.tpl +0 -58
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query91.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query92.tpl +0 -68
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query93.tpl +0 -53
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query94.tpl +0 -67
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query95.tpl +0 -71
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query96.tpl +0 -52
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query97.tpl +0 -62
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query98.tpl +0 -70
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query99.tpl +0 -69
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/sqlserver.tpl +0 -37
- benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/templates.lst +0 -99
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/README +0 -4
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/ansi.tpl +0 -38
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/db2.tpl +0 -38
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/netezza.tpl +0 -38
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/oracle.tpl +0 -38
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query1.tpl +0 -62
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query10.tpl +0 -98
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query11.tpl +0 -119
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query12.tpl +0 -72
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query13.tpl +0 -89
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query14.tpl +0 -247
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query15.tpl +0 -56
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query16.tpl +0 -76
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query17.tpl +0 -80
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query18.tpl +0 -73
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query19.tpl +0 -64
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query2.tpl +0 -94
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query20.tpl +0 -67
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query21.tpl +0 -65
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query22.tpl +0 -54
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query23.tpl +0 -144
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query24.tpl +0 -147
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query25.tpl +0 -84
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query26.tpl +0 -61
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query27.tpl +0 -68
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query28.tpl +0 -90
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query29.tpl +0 -85
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query3.tpl +0 -58
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query30.tpl +0 -66
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query31.tpl +0 -88
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query32.tpl +0 -65
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query33.tpl +0 -113
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query34.tpl +0 -77
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query35.tpl +0 -98
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query36.tpl +0 -74
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query37.tpl +0 -57
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query38.tpl +0 -58
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query39.tpl +0 -93
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query4.tpl +0 -154
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query40.tpl +0 -63
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query41.tpl +0 -90
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query42.tpl +0 -64
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query43.tpl +0 -55
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query44.tpl +0 -72
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query45.tpl +0 -56
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query46.tpl +0 -78
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query47.tpl +0 -89
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query48.tpl +0 -104
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query49.tpl +0 -164
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query5.tpl +0 -165
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query50.tpl +0 -96
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query51.tpl +0 -80
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query52.tpl +0 -59
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query53.tpl +0 -64
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query54.tpl +0 -95
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query55.tpl +0 -52
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query56.tpl +0 -108
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query57.tpl +0 -87
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query58.tpl +0 -101
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query59.tpl +0 -79
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query6.tpl +0 -62
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query60.tpl +0 -115
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query61.tpl +0 -83
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query62.tpl +0 -71
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query63.tpl +0 -64
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query64.tpl +0 -157
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query65.tpl +0 -62
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query66.tpl +0 -261
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query67.tpl +0 -81
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query68.tpl +0 -82
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query69.tpl +0 -85
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query7.tpl +0 -60
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query70.tpl +0 -73
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query71.tpl +0 -74
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query72.tpl +0 -67
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query73.tpl +0 -69
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query74.tpl +0 -99
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query75.tpl +0 -107
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query76.tpl +0 -64
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query77.tpl +0 -145
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query78.tpl +0 -94
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query79.tpl +0 -60
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query8.tpl +0 -144
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query80.tpl +0 -131
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query81.tpl +0 -68
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query82.tpl +0 -56
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query83.tpl +0 -104
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query84.tpl +0 -58
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query85.tpl +0 -121
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query86.tpl +0 -60
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query87.tpl +0 -56
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query88.tpl +0 -128
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query89.tpl +0 -75
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query9.tpl +0 -88
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query90.tpl +0 -58
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query91.tpl +0 -68
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query92.tpl +0 -68
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query93.tpl +0 -53
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query94.tpl +0 -67
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query95.tpl +0 -71
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query96.tpl +0 -52
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query97.tpl +0 -62
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query98.tpl +0 -70
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query99.tpl +0 -69
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/sqlserver.tpl +0 -37
- benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/templates.lst +0 -99
- benchbox-0.1.0.dist-info/RECORD +0 -1192
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/README +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/ansi.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/db2.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/netezza.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/oracle.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query1.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query10.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query11.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query12.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query13.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query14.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query15.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query16.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query17.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query18.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query19.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query2.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query20.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query21.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query22.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query23.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query24.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query25.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query26.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query27.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query28.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query29.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query3.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query30.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query31.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query32.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query33.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query34.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query35.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query36.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query37.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query38.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query39.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query4.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query40.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query41.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query42.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query43.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query44.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query45.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query46.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query47.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query48.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query49.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query5.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query50.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query51.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query52.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query53.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query54.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query55.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query56.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query57.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query58.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query59.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query6.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query60.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query61.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query62.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query63.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query64.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query65.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query66.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query67.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query68.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query69.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query7.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query70.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query71.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query73.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query74.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query75.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query76.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query77.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query78.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query79.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query8.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query80.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query81.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query82.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query83.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query84.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query85.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query86.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query87.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query88.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query89.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query9.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query90.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query91.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query92.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query93.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query94.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query95.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query96.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query97.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query98.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query99.tpl +0 -0
- /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/templates.lst +0 -0
- {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/entry_points.txt +0 -0
- {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/licenses/LICENSE +0 -0
- {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/top_level.txt +0 -0
benchbox/cli/commands/checks.py
CHANGED
|
@@ -91,10 +91,7 @@ def check_dependencies(ctx, platform, verbose, show_matrix):
|
|
|
91
91
|
else:
|
|
92
92
|
console.print(f"[red]❌ {platform} missing dependencies: {', '.join(missing)}[/red]")
|
|
93
93
|
console.print(f"\nExtra: [yellow]{dep_info.name}[/yellow]")
|
|
94
|
-
console.print(
|
|
95
|
-
console.print(f" • {dep_info.install_command}")
|
|
96
|
-
console.print(f' • python -m pip install "benchbox[{dep_info.name}]"')
|
|
97
|
-
console.print(f' • pipx install "benchbox[{dep_info.name}]"')
|
|
94
|
+
console.print(dep_info.get_install_message())
|
|
98
95
|
console.print("\nNeed help comparing extras? Run: benchbox check-deps --matrix")
|
|
99
96
|
|
|
100
97
|
if verbose:
|
benchbox/cli/commands/convert.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Format conversion command for benchmark data.
|
|
2
2
|
|
|
3
3
|
This command converts benchmark data between different table formats
|
|
4
|
-
(TBL, Parquet, Delta Lake, Apache Iceberg) for optimized query performance.
|
|
4
|
+
(TBL, Parquet, Vortex, Delta Lake, Apache Iceberg) for optimized query performance.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
from __future__ import annotations
|
|
@@ -91,7 +91,7 @@ def _get_schemas_from_manifest(manifest: ManifestV2, benchmark_name: str | None)
|
|
|
91
91
|
@click.option(
|
|
92
92
|
"--format",
|
|
93
93
|
"target_format",
|
|
94
|
-
type=click.Choice(["parquet", "delta", "iceberg"], case_sensitive=False),
|
|
94
|
+
type=click.Choice(["parquet", "vortex", "delta", "iceberg", "ducklake"], case_sensitive=False),
|
|
95
95
|
required=True,
|
|
96
96
|
help="Target format for conversion",
|
|
97
97
|
)
|
|
@@ -144,7 +144,7 @@ def convert(
|
|
|
144
144
|
"""Convert benchmark data to optimized table formats.
|
|
145
145
|
|
|
146
146
|
Converts TPC benchmark data from TBL (pipe-delimited) format to columnar
|
|
147
|
-
formats like Parquet, Delta Lake, or Apache Iceberg. This enables
|
|
147
|
+
formats like Parquet, Vortex, Delta Lake, or Apache Iceberg. This enables
|
|
148
148
|
significant query performance improvements (2-10x faster).
|
|
149
149
|
|
|
150
150
|
The command reads the manifest file in the input directory to discover
|
|
@@ -155,6 +155,9 @@ def convert(
|
|
|
155
155
|
# Convert to Parquet with default settings
|
|
156
156
|
benchbox convert --input ./data/tpch_sf1 --format parquet
|
|
157
157
|
|
|
158
|
+
# Convert to Vortex for high compression
|
|
159
|
+
benchbox convert --input ./data/tpch_sf1 --format vortex
|
|
160
|
+
|
|
158
161
|
# Convert to Delta Lake with Zstd compression
|
|
159
162
|
benchbox convert --input ./data/tpch_sf1 --format delta --compression zstd
|
|
160
163
|
|
|
@@ -175,8 +178,10 @@ def convert(
|
|
|
175
178
|
\b
|
|
176
179
|
Supported Formats:
|
|
177
180
|
parquet - Apache Parquet (columnar, compressed)
|
|
181
|
+
vortex - Vortex (high compression, fast scans)
|
|
178
182
|
delta - Delta Lake (ACID transactions, time travel)
|
|
179
183
|
iceberg - Apache Iceberg (schema evolution, hidden partitioning)
|
|
184
|
+
ducklake - DuckLake (DuckDB native, ACID transactions, time travel)
|
|
180
185
|
|
|
181
186
|
\b
|
|
182
187
|
Compression Options:
|
benchbox/cli/commands/metrics.py
CHANGED
|
@@ -130,21 +130,54 @@ def qphh(ctx, power_results, throughput_results, scale_factor, output_format, ou
|
|
|
130
130
|
console.print("[red]Error: Could not auto-detect scale factor. Please specify --scale-factor[/red]")
|
|
131
131
|
sys.exit(1)
|
|
132
132
|
|
|
133
|
-
# Extract
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
133
|
+
# Extract metrics if available (preferred)
|
|
134
|
+
power_metrics = power_data.get("summary", {}).get("tpc_metrics", {})
|
|
135
|
+
throughput_metrics = throughput_data.get("summary", {}).get("tpc_metrics", {})
|
|
136
|
+
|
|
137
|
+
power_time_ms = power_data.get("summary", {}).get("timing", {}).get("total_ms")
|
|
138
|
+
throughput_time_ms = throughput_data.get("summary", {}).get("timing", {}).get("total_ms")
|
|
139
|
+
power_time = (power_time_ms / 1000.0) if power_time_ms else None
|
|
140
|
+
throughput_time = (throughput_time_ms / 1000.0) if throughput_time_ms else None
|
|
141
|
+
|
|
142
|
+
power_at_size = power_metrics.get("power_at_size")
|
|
143
|
+
throughput_at_size = throughput_metrics.get("throughput_at_size")
|
|
144
|
+
|
|
145
|
+
# Fallback: derive metrics from query timings if needed
|
|
146
|
+
if power_at_size is None or throughput_at_size is None:
|
|
147
|
+
from benchbox.core.results.metrics import TPCMetricsCalculator
|
|
148
|
+
|
|
149
|
+
if power_at_size is None:
|
|
150
|
+
power_query_times = [
|
|
151
|
+
q["ms"] / 1000.0
|
|
152
|
+
for q in power_data.get("queries", [])
|
|
153
|
+
if q.get("run_type") == "measurement" and q.get("status") == "SUCCESS"
|
|
154
|
+
]
|
|
155
|
+
if power_query_times:
|
|
156
|
+
power_at_size = TPCMetricsCalculator.calculate_power_at_size(power_query_times, scale_factor)
|
|
157
|
+
|
|
158
|
+
if throughput_at_size is None:
|
|
159
|
+
throughput_summary = throughput_data.get("summary", {}).get("queries", {})
|
|
160
|
+
total_queries = throughput_summary.get("total")
|
|
161
|
+
throughput_time_ms = throughput_data.get("summary", {}).get("timing", {}).get("total_ms")
|
|
162
|
+
if total_queries and throughput_time_ms:
|
|
163
|
+
num_streams = throughput_data.get("run", {}).get("streams", 1)
|
|
164
|
+
throughput_at_size = TPCMetricsCalculator.calculate_throughput_at_size(
|
|
165
|
+
total_queries,
|
|
166
|
+
throughput_time_ms / 1000.0,
|
|
167
|
+
scale_factor,
|
|
168
|
+
num_streams,
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
if power_at_size is None or throughput_at_size is None:
|
|
172
|
+
console.print("[red]Error: Could not derive Power@Size or Throughput@Size from result files[/red]")
|
|
140
173
|
sys.exit(1)
|
|
141
174
|
|
|
142
|
-
# Extract number of streams for throughput test
|
|
143
|
-
num_streams = throughput_data.get("
|
|
175
|
+
# Extract number of streams for throughput test (best-effort)
|
|
176
|
+
num_streams = throughput_data.get("run", {}).get("streams") or throughput_data.get("environment", {}).get(
|
|
177
|
+
"num_streams", 1
|
|
178
|
+
)
|
|
144
179
|
|
|
145
|
-
# Calculate
|
|
146
|
-
power_at_size = (3600.0 * scale_factor) / power_time
|
|
147
|
-
throughput_at_size = (num_streams * 3600.0 * scale_factor) / throughput_time
|
|
180
|
+
# Calculate composite metric according to TPC-H specification
|
|
148
181
|
qphh_at_size = math.sqrt(power_at_size * throughput_at_size)
|
|
149
182
|
|
|
150
183
|
# Prepare output
|
|
@@ -191,8 +224,16 @@ def _format_text_output(result: dict) -> str:
|
|
|
191
224
|
lines.append("-" * 70)
|
|
192
225
|
lines.append("TEST EXECUTION TIMES")
|
|
193
226
|
lines.append("-" * 70)
|
|
194
|
-
|
|
195
|
-
|
|
227
|
+
power_time = result.get("power_test_time")
|
|
228
|
+
throughput_time = result.get("throughput_test_time")
|
|
229
|
+
if power_time is not None:
|
|
230
|
+
lines.append(f"Power Test: {power_time:.3f} seconds")
|
|
231
|
+
else:
|
|
232
|
+
lines.append("Power Test: n/a")
|
|
233
|
+
if throughput_time is not None:
|
|
234
|
+
lines.append(f"Throughput Test: {throughput_time:.3f} seconds")
|
|
235
|
+
else:
|
|
236
|
+
lines.append("Throughput Test: n/a")
|
|
196
237
|
lines.append("")
|
|
197
238
|
lines.append("-" * 70)
|
|
198
239
|
lines.append("TPC-H METRICS")
|
benchbox/cli/commands/results.py
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
"""Results command implementation."""
|
|
2
2
|
|
|
3
|
+
import json
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
3
6
|
import click
|
|
7
|
+
from pydantic import ValidationError
|
|
8
|
+
from rich.console import Console
|
|
9
|
+
from rich.panel import Panel
|
|
4
10
|
|
|
5
11
|
from benchbox.cli.output import ResultExporter
|
|
12
|
+
from benchbox.core.schemas import ExecutionContext
|
|
13
|
+
|
|
14
|
+
console = Console()
|
|
6
15
|
|
|
7
16
|
|
|
8
|
-
@click.
|
|
17
|
+
@click.group("results", invoke_without_command=True)
|
|
9
18
|
@click.option("--limit", type=int, default=10, help="Number of results to show")
|
|
10
19
|
@click.pass_context
|
|
11
20
|
def results(ctx, limit):
|
|
@@ -17,9 +26,128 @@ def results(ctx, limit):
|
|
|
17
26
|
Examples:
|
|
18
27
|
benchbox results # Show last 10 results
|
|
19
28
|
benchbox results --limit 25 # Show last 25 results
|
|
29
|
+
benchbox results show-cli <file> # Show CLI command to reproduce a run
|
|
30
|
+
"""
|
|
31
|
+
# If no subcommand is invoked, show results summary
|
|
32
|
+
if ctx.invoked_subcommand is None:
|
|
33
|
+
exporter = ResultExporter()
|
|
34
|
+
exporter.show_results_summary()
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@results.command("show-cli")
|
|
38
|
+
@click.argument("result_file", type=click.Path(exists=True))
|
|
39
|
+
@click.option("--full", is_flag=True, help="Show full command with all options")
|
|
40
|
+
def show_cli(result_file: str, full: bool) -> None:
|
|
41
|
+
"""Reconstruct the CLI command from a benchmark result file.
|
|
42
|
+
|
|
43
|
+
Reads a benchmark result JSON file and reconstructs the CLI command
|
|
44
|
+
that can be used to reproduce the benchmark run.
|
|
45
|
+
|
|
46
|
+
Examples:
|
|
47
|
+
benchbox results show-cli benchmark_runs/results/tpch_sf001_duckdb_20240101_120000.json
|
|
48
|
+
benchbox results show-cli ./result.json --full
|
|
20
49
|
"""
|
|
21
|
-
|
|
22
|
-
|
|
50
|
+
try:
|
|
51
|
+
result_path = Path(result_file)
|
|
52
|
+
with result_path.open("r") as f:
|
|
53
|
+
data = json.load(f)
|
|
54
|
+
|
|
55
|
+
# Extract key identifiers
|
|
56
|
+
platform = None
|
|
57
|
+
benchmark_name = None
|
|
58
|
+
scale_factor = None
|
|
59
|
+
execution_context = None
|
|
60
|
+
|
|
61
|
+
# Try schema v2.x format first
|
|
62
|
+
if "benchmark" in data and isinstance(data["benchmark"], dict):
|
|
63
|
+
benchmark_name = data["benchmark"].get("name") or data["benchmark"].get("id")
|
|
64
|
+
scale_factor = data["benchmark"].get("scale_factor")
|
|
65
|
+
|
|
66
|
+
if "platform" in data and isinstance(data["platform"], dict):
|
|
67
|
+
platform = data["platform"].get("name")
|
|
68
|
+
|
|
69
|
+
# Try legacy format
|
|
70
|
+
if not platform:
|
|
71
|
+
platform = data.get("platform")
|
|
72
|
+
if not benchmark_name:
|
|
73
|
+
benchmark_name = data.get("benchmark_name") or data.get("benchmark_id")
|
|
74
|
+
if not scale_factor:
|
|
75
|
+
scale_factor = data.get("scale_factor")
|
|
76
|
+
|
|
77
|
+
# Get execution context
|
|
78
|
+
execution_context = data.get("execution") or data.get("execution_context")
|
|
79
|
+
|
|
80
|
+
if not all([platform, benchmark_name, scale_factor is not None]):
|
|
81
|
+
console.print(
|
|
82
|
+
"[red]❌ Could not extract required fields (platform, benchmark, scale_factor) from result file[/red]"
|
|
83
|
+
)
|
|
84
|
+
return
|
|
85
|
+
|
|
86
|
+
# Build base command
|
|
87
|
+
base_cmd = f"benchbox run --platform {platform} --benchmark {benchmark_name} --scale {scale_factor}"
|
|
88
|
+
|
|
89
|
+
# If we have execution context, reconstruct full command
|
|
90
|
+
if execution_context:
|
|
91
|
+
ctx = ExecutionContext(**{k: v for k, v in execution_context.items() if k != "invocation_timestamp"})
|
|
92
|
+
cli_args = ctx.to_cli_args()
|
|
93
|
+
if cli_args:
|
|
94
|
+
full_cmd = f"{base_cmd} {' '.join(cli_args)}"
|
|
95
|
+
else:
|
|
96
|
+
full_cmd = base_cmd
|
|
97
|
+
else:
|
|
98
|
+
full_cmd = base_cmd
|
|
99
|
+
# Try to reconstruct from other fields
|
|
100
|
+
extra_args = []
|
|
101
|
+
|
|
102
|
+
# Query subset from run block
|
|
103
|
+
if "run" in data and data["run"].get("query_subset"):
|
|
104
|
+
extra_args.extend(["--queries", ",".join(data["run"]["query_subset"])])
|
|
105
|
+
|
|
106
|
+
# Seed
|
|
107
|
+
if execution_context and execution_context.get("seed"):
|
|
108
|
+
extra_args.extend(["--seed", str(execution_context["seed"])])
|
|
109
|
+
|
|
110
|
+
if extra_args:
|
|
111
|
+
full_cmd = f"{base_cmd} {' '.join(extra_args)}"
|
|
112
|
+
|
|
113
|
+
# Display the command
|
|
114
|
+
console.print("\n[bold]Reconstructed CLI Command:[/bold]")
|
|
115
|
+
console.print(Panel(full_cmd, style="green"))
|
|
116
|
+
|
|
117
|
+
# Show provenance info
|
|
118
|
+
if execution_context:
|
|
119
|
+
entry_point = execution_context.get("entry_point", "unknown")
|
|
120
|
+
timestamp = execution_context.get("timestamp") or execution_context.get("invocation_timestamp")
|
|
121
|
+
console.print(f"\n[dim]Entry point: {entry_point}[/dim]")
|
|
122
|
+
if timestamp:
|
|
123
|
+
console.print(f"[dim]Executed: {timestamp}[/dim]")
|
|
124
|
+
|
|
125
|
+
# If --full flag, show what options were non-default
|
|
126
|
+
if full and execution_context:
|
|
127
|
+
console.print("\n[bold]Execution Context Details:[/bold]")
|
|
128
|
+
for key, value in execution_context.items():
|
|
129
|
+
if key not in ("invocation_timestamp", "entry_point") and value is not None:
|
|
130
|
+
# Skip default values
|
|
131
|
+
if key == "phases" and value == ["power"]:
|
|
132
|
+
continue
|
|
133
|
+
if key == "mode" and value == "sql":
|
|
134
|
+
continue
|
|
135
|
+
if key == "compression_type" and value == "none":
|
|
136
|
+
continue
|
|
137
|
+
if key == "compression_enabled" and not value:
|
|
138
|
+
continue
|
|
139
|
+
if isinstance(value, bool) and not value:
|
|
140
|
+
continue
|
|
141
|
+
console.print(f" {key}: {value}")
|
|
142
|
+
|
|
143
|
+
except json.JSONDecodeError as e:
|
|
144
|
+
console.print(f"[red]❌ Invalid JSON file: {e}[/red]")
|
|
145
|
+
except (FileNotFoundError, PermissionError, IsADirectoryError) as e:
|
|
146
|
+
console.print(f"[red]❌ Cannot read file: {e}[/red]")
|
|
147
|
+
except (KeyError, TypeError) as e:
|
|
148
|
+
console.print(f"[red]❌ Invalid result file format: {e}[/red]")
|
|
149
|
+
except ValidationError as e:
|
|
150
|
+
console.print(f"[red]❌ Invalid execution context in result file: {e}[/red]")
|
|
23
151
|
|
|
24
152
|
|
|
25
153
|
__all__ = ["results"]
|
benchbox/cli/commands/run.py
CHANGED
|
@@ -52,6 +52,7 @@ from benchbox.cli.tuning_resolver import (
|
|
|
52
52
|
)
|
|
53
53
|
from benchbox.core.config import DatabaseConfig
|
|
54
54
|
from benchbox.core.platform_registry import PlatformRegistry
|
|
55
|
+
from benchbox.core.schemas import ExecutionContext
|
|
55
56
|
from benchbox.platforms import is_dataframe_platform, list_available_dataframe_platforms
|
|
56
57
|
from benchbox.utils.cloud_storage import is_cloud_path
|
|
57
58
|
from benchbox.utils.compression import CompressionManager
|
|
@@ -86,6 +87,59 @@ def normalize_benchmark_name(name: str) -> str:
|
|
|
86
87
|
return BENCHMARK_ALIASES.get(normalized, normalized)
|
|
87
88
|
|
|
88
89
|
|
|
90
|
+
def _build_execution_context(
|
|
91
|
+
phases_to_run: list[str],
|
|
92
|
+
seed: int | None,
|
|
93
|
+
compression: CompressionConfig,
|
|
94
|
+
mode: str | None,
|
|
95
|
+
official: bool,
|
|
96
|
+
validation: ValidationConfig,
|
|
97
|
+
force: ForceConfig,
|
|
98
|
+
queries_to_run: list[str] | None,
|
|
99
|
+
capture_plans: bool,
|
|
100
|
+
strict_plan_capture: bool,
|
|
101
|
+
non_interactive: bool,
|
|
102
|
+
tuning: str | None,
|
|
103
|
+
) -> ExecutionContext:
|
|
104
|
+
"""Build ExecutionContext from CLI parameters for result reproducibility.
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
phases_to_run: List of phases to execute
|
|
108
|
+
seed: Random seed for query generation
|
|
109
|
+
compression: Compression configuration
|
|
110
|
+
mode: Execution mode (sql/dataframe)
|
|
111
|
+
official: TPC-compliant mode flag
|
|
112
|
+
validation: Validation configuration
|
|
113
|
+
force: Force flags configuration
|
|
114
|
+
queries_to_run: Query subset
|
|
115
|
+
capture_plans: Whether to capture query plans
|
|
116
|
+
strict_plan_capture: Strict plan capture mode
|
|
117
|
+
non_interactive: Non-interactive mode flag
|
|
118
|
+
tuning: Tuning mode/path
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
ExecutionContext populated from CLI parameters
|
|
122
|
+
"""
|
|
123
|
+
return ExecutionContext(
|
|
124
|
+
entry_point="cli",
|
|
125
|
+
phases=phases_to_run,
|
|
126
|
+
seed=seed,
|
|
127
|
+
compression_enabled=compression.enabled,
|
|
128
|
+
compression_type=compression.type,
|
|
129
|
+
compression_level=compression.level,
|
|
130
|
+
mode=mode or "sql",
|
|
131
|
+
official=official,
|
|
132
|
+
validation_mode=validation.mode if validation.mode != "exact" else None,
|
|
133
|
+
force_datagen=force.datagen,
|
|
134
|
+
force_upload=force.upload,
|
|
135
|
+
query_subset=queries_to_run,
|
|
136
|
+
capture_plans=capture_plans,
|
|
137
|
+
strict_plan_capture=strict_plan_capture,
|
|
138
|
+
non_interactive=non_interactive,
|
|
139
|
+
tuning_mode=tuning if tuning and tuning != "notuning" else None,
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
|
|
89
143
|
class PlatformOptionParamType(click.ParamType):
|
|
90
144
|
"""Click parameter type for key=value platform options."""
|
|
91
145
|
|
|
@@ -307,7 +361,7 @@ def setup_verbose_logging(
|
|
|
307
361
|
"--convert",
|
|
308
362
|
type=CONVERT,
|
|
309
363
|
default=None,
|
|
310
|
-
help="Convert format: parquet, delta:snappy, iceberg:zstd,partition:year,month",
|
|
364
|
+
help="Convert format: parquet, vortex, delta:snappy, iceberg:zstd,partition:year,month",
|
|
311
365
|
)
|
|
312
366
|
# Validation
|
|
313
367
|
@advanced_option(
|
|
@@ -447,14 +501,6 @@ def run(
|
|
|
447
501
|
"[yellow]⚠️ Warning: No --seed specified. Official TPC runs require a random seed for reproducibility.[/yellow]"
|
|
448
502
|
)
|
|
449
503
|
|
|
450
|
-
# Validate throughput phase requires streams (not implemented yet, but warn)
|
|
451
|
-
phase_list = [p.strip().lower() for p in phases.split(",")]
|
|
452
|
-
if "throughput" in phase_list:
|
|
453
|
-
console.print(
|
|
454
|
-
"[yellow]⚠️ Note: Throughput test requires multiple concurrent streams. "
|
|
455
|
-
"Multi-stream support is not yet implemented.[/yellow]"
|
|
456
|
-
)
|
|
457
|
-
|
|
458
504
|
# Show compliance banner
|
|
459
505
|
console.print("[bold blue]TPC-Compliant Official Benchmark Run[/bold blue]")
|
|
460
506
|
console.print(f"Scale Factor: {scale} (TPC-allowed)")
|
|
@@ -996,7 +1042,7 @@ def run(
|
|
|
996
1042
|
console.print("[yellow]Use values like 0.1, 0.01, 0.001, etc. for small scale factors[/yellow]")
|
|
997
1043
|
if logger:
|
|
998
1044
|
logger.error(f"Invalid scale factor for dry run: {scale}")
|
|
999
|
-
|
|
1045
|
+
ctx.exit(1)
|
|
1000
1046
|
|
|
1001
1047
|
# Create configurations for dry run
|
|
1002
1048
|
if logger:
|
|
@@ -1014,7 +1060,7 @@ def run(
|
|
|
1014
1060
|
console.print(f"Available benchmarks: {', '.join(bench_manager.benchmarks.keys())}")
|
|
1015
1061
|
if logger:
|
|
1016
1062
|
logger.error(f"Unknown benchmark: {benchmark}. Available: {list(bench_manager.benchmarks.keys())}")
|
|
1017
|
-
|
|
1063
|
+
ctx.exit(1)
|
|
1018
1064
|
|
|
1019
1065
|
# Create database config (skip for data-only mode)
|
|
1020
1066
|
if execution_mode == "data_only":
|
|
@@ -1072,7 +1118,7 @@ def run(
|
|
|
1072
1118
|
console.print(f"[red]❌ {e}[/red]")
|
|
1073
1119
|
if logger:
|
|
1074
1120
|
logger.error(f"Scale factor validation failed: {e}")
|
|
1075
|
-
|
|
1121
|
+
ctx.exit(1)
|
|
1076
1122
|
|
|
1077
1123
|
benchmark_config = BenchmarkConfig(
|
|
1078
1124
|
name=benchmark,
|
|
@@ -1226,7 +1272,7 @@ def run(
|
|
|
1226
1272
|
console.print(f"[red]❌ {e}[/red]")
|
|
1227
1273
|
if logger:
|
|
1228
1274
|
logger.error(f"Scale factor validation failed: {e}")
|
|
1229
|
-
|
|
1275
|
+
ctx.exit(1)
|
|
1230
1276
|
|
|
1231
1277
|
# Create benchmark config
|
|
1232
1278
|
benchmark_config = BenchmarkConfig(
|
|
@@ -1261,6 +1307,22 @@ def run(
|
|
|
1261
1307
|
profiler = SystemProfiler()
|
|
1262
1308
|
system_profile = profiler.get_system_profile()
|
|
1263
1309
|
|
|
1310
|
+
# Build execution context for reproducibility
|
|
1311
|
+
execution_context = _build_execution_context(
|
|
1312
|
+
phases_to_run=phases_to_run,
|
|
1313
|
+
seed=seed,
|
|
1314
|
+
compression=comp_config,
|
|
1315
|
+
mode=mode,
|
|
1316
|
+
official=official,
|
|
1317
|
+
validation=val_config,
|
|
1318
|
+
force=force_config,
|
|
1319
|
+
queries_to_run=queries_to_run,
|
|
1320
|
+
capture_plans=capture_plans,
|
|
1321
|
+
strict_plan_capture=strict_plan_capture,
|
|
1322
|
+
non_interactive=non_interactive,
|
|
1323
|
+
tuning=tuning,
|
|
1324
|
+
)
|
|
1325
|
+
|
|
1264
1326
|
# Execute benchmark using orchestrator
|
|
1265
1327
|
orchestrator = BenchmarkOrchestrator()
|
|
1266
1328
|
orchestrator.set_verbosity(verbosity_settings)
|
|
@@ -1283,12 +1345,22 @@ def run(
|
|
|
1283
1345
|
)
|
|
1284
1346
|
with progress:
|
|
1285
1347
|
result = orchestrator.execute_benchmark(
|
|
1286
|
-
benchmark_config,
|
|
1348
|
+
benchmark_config,
|
|
1349
|
+
system_profile,
|
|
1350
|
+
database_config,
|
|
1351
|
+
phases_to_run,
|
|
1352
|
+
progress=progress,
|
|
1353
|
+
execution_context=execution_context,
|
|
1287
1354
|
)
|
|
1288
1355
|
else:
|
|
1289
1356
|
# No progress bars - use simple text output
|
|
1290
1357
|
result = orchestrator.execute_benchmark(
|
|
1291
|
-
benchmark_config,
|
|
1358
|
+
benchmark_config,
|
|
1359
|
+
system_profile,
|
|
1360
|
+
database_config,
|
|
1361
|
+
phases_to_run,
|
|
1362
|
+
progress=None,
|
|
1363
|
+
execution_context=execution_context,
|
|
1292
1364
|
)
|
|
1293
1365
|
|
|
1294
1366
|
# Export results if successful
|
|
@@ -1300,7 +1372,7 @@ def run(
|
|
|
1300
1372
|
|
|
1301
1373
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
1302
1374
|
result_path = orchestrator.directory_manager.get_result_path(
|
|
1303
|
-
benchmark, scale, platform.lower(), timestamp, result.execution_id
|
|
1375
|
+
benchmark, scale, platform.lower(), timestamp, result.execution_id, mode=resolved_mode
|
|
1304
1376
|
)
|
|
1305
1377
|
|
|
1306
1378
|
# Export to the organized directory
|
|
@@ -1421,7 +1493,7 @@ def run(
|
|
|
1421
1493
|
console.print(f"[red]❌ {e}[/red]")
|
|
1422
1494
|
if logger:
|
|
1423
1495
|
logger.error(f"Scale factor validation failed: {e}")
|
|
1424
|
-
|
|
1496
|
+
ctx.exit(1)
|
|
1425
1497
|
|
|
1426
1498
|
benchmark_config = BenchmarkConfig(
|
|
1427
1499
|
name=benchmark,
|
|
@@ -1452,6 +1524,22 @@ def run(
|
|
|
1452
1524
|
profiler = SystemProfiler()
|
|
1453
1525
|
system_profile = profiler.get_system_profile()
|
|
1454
1526
|
|
|
1527
|
+
# Build execution context for reproducibility
|
|
1528
|
+
execution_context = _build_execution_context(
|
|
1529
|
+
phases_to_run=phases_to_run,
|
|
1530
|
+
seed=seed,
|
|
1531
|
+
compression=comp_config,
|
|
1532
|
+
mode=mode,
|
|
1533
|
+
official=official,
|
|
1534
|
+
validation=val_config,
|
|
1535
|
+
force=force_config,
|
|
1536
|
+
queries_to_run=queries_to_run,
|
|
1537
|
+
capture_plans=capture_plans,
|
|
1538
|
+
strict_plan_capture=strict_plan_capture,
|
|
1539
|
+
non_interactive=non_interactive,
|
|
1540
|
+
tuning=tuning,
|
|
1541
|
+
)
|
|
1542
|
+
|
|
1455
1543
|
# Execute using orchestrator
|
|
1456
1544
|
orchestrator = BenchmarkOrchestrator()
|
|
1457
1545
|
orchestrator.set_verbosity(verbosity_settings)
|
|
@@ -1479,19 +1567,40 @@ def run(
|
|
|
1479
1567
|
)
|
|
1480
1568
|
with progress:
|
|
1481
1569
|
result = orchestrator.execute_benchmark(
|
|
1482
|
-
benchmark_config,
|
|
1570
|
+
benchmark_config,
|
|
1571
|
+
system_profile,
|
|
1572
|
+
database_config,
|
|
1573
|
+
phases_to_run,
|
|
1574
|
+
progress=progress,
|
|
1575
|
+
execution_context=execution_context,
|
|
1483
1576
|
)
|
|
1484
1577
|
else:
|
|
1485
1578
|
# No progress bars - use simple text output
|
|
1486
1579
|
result = orchestrator.execute_benchmark(
|
|
1487
|
-
benchmark_config,
|
|
1580
|
+
benchmark_config,
|
|
1581
|
+
system_profile,
|
|
1582
|
+
database_config,
|
|
1583
|
+
phases_to_run,
|
|
1584
|
+
progress=None,
|
|
1585
|
+
execution_context=execution_context,
|
|
1488
1586
|
)
|
|
1489
1587
|
|
|
1490
1588
|
# Export results if successful
|
|
1491
1589
|
if result.validation_status not in ["FAILED", "INTERRUPTED"]:
|
|
1492
1590
|
console.print("\n[bold]Exporting results...[/bold]")
|
|
1591
|
+
from datetime import datetime
|
|
1592
|
+
|
|
1493
1593
|
exporter = ResultExporter()
|
|
1494
1594
|
export_formats = ["json"] # Default format for command-line execution
|
|
1595
|
+
|
|
1596
|
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
1597
|
+
platform_label = platform.lower() if platform else "unknown"
|
|
1598
|
+
mode_label = "data_only" if execution_mode == "data_only" else resolved_mode
|
|
1599
|
+
result_path = orchestrator.directory_manager.get_result_path(
|
|
1600
|
+
benchmark, scale, platform_label, timestamp, result.execution_id, mode=mode_label
|
|
1601
|
+
)
|
|
1602
|
+
result.output_filename = result_path.name
|
|
1603
|
+
|
|
1495
1604
|
exported_files = exporter.export_result(result, export_formats)
|
|
1496
1605
|
|
|
1497
1606
|
# Determine actual status from execution phases, not validation status
|
|
@@ -1635,7 +1744,7 @@ def run(
|
|
|
1635
1744
|
console.print(f"[red]❌ {e}[/red]")
|
|
1636
1745
|
if logger:
|
|
1637
1746
|
logger.error(f"Scale factor validation failed: {e}")
|
|
1638
|
-
|
|
1747
|
+
ctx.exit(1)
|
|
1639
1748
|
|
|
1640
1749
|
benchmark_config = BenchmarkConfig(
|
|
1641
1750
|
name=benchmark,
|
|
@@ -1972,6 +2081,22 @@ def run(
|
|
|
1972
2081
|
console.print("\n[bold]Step 6 of 6:[/bold] [cyan]Benchmark Execution[/cyan]")
|
|
1973
2082
|
console.print("Executing benchmark with platform optimizations...")
|
|
1974
2083
|
|
|
2084
|
+
# Build execution context for reproducibility
|
|
2085
|
+
execution_context = _build_execution_context(
|
|
2086
|
+
phases_to_run=phases_to_run,
|
|
2087
|
+
seed=seed,
|
|
2088
|
+
compression=comp_config,
|
|
2089
|
+
mode=mode,
|
|
2090
|
+
official=official,
|
|
2091
|
+
validation=val_config,
|
|
2092
|
+
force=force_config,
|
|
2093
|
+
queries_to_run=queries_to_run,
|
|
2094
|
+
capture_plans=capture_plans,
|
|
2095
|
+
strict_plan_capture=strict_plan_capture,
|
|
2096
|
+
non_interactive=non_interactive,
|
|
2097
|
+
tuning=tuning,
|
|
2098
|
+
)
|
|
2099
|
+
|
|
1975
2100
|
# Use orchestrator for better execution
|
|
1976
2101
|
orchestrator = BenchmarkOrchestrator()
|
|
1977
2102
|
orchestrator.set_verbosity(verbosity_settings)
|
|
@@ -1994,12 +2119,22 @@ def run(
|
|
|
1994
2119
|
)
|
|
1995
2120
|
with progress:
|
|
1996
2121
|
result = orchestrator.execute_benchmark(
|
|
1997
|
-
benchmark_config,
|
|
2122
|
+
benchmark_config,
|
|
2123
|
+
system_profile,
|
|
2124
|
+
database_config,
|
|
2125
|
+
phases_to_run,
|
|
2126
|
+
progress=progress,
|
|
2127
|
+
execution_context=execution_context,
|
|
1998
2128
|
)
|
|
1999
2129
|
else:
|
|
2000
2130
|
# No progress bars - use simple text output
|
|
2001
2131
|
result = orchestrator.execute_benchmark(
|
|
2002
|
-
benchmark_config,
|
|
2132
|
+
benchmark_config,
|
|
2133
|
+
system_profile,
|
|
2134
|
+
database_config,
|
|
2135
|
+
phases_to_run,
|
|
2136
|
+
progress=None,
|
|
2137
|
+
execution_context=execution_context,
|
|
2003
2138
|
)
|
|
2004
2139
|
|
|
2005
2140
|
# Export results
|
|
@@ -33,9 +33,9 @@ SUPPORTED_CHART_TYPES = ("performance_bar", "distribution_box", "query_heatmap",
|
|
|
33
33
|
"--format",
|
|
34
34
|
"formats",
|
|
35
35
|
multiple=True,
|
|
36
|
-
default=("
|
|
36
|
+
default=("html",),
|
|
37
37
|
show_default=True,
|
|
38
|
-
help="Export formats (
|
|
38
|
+
help="Export formats (html only; raster formats planned for future).",
|
|
39
39
|
)
|
|
40
40
|
@click.option(
|
|
41
41
|
"--chart-type",
|
|
@@ -92,7 +92,7 @@ def visualize(
|
|
|
92
92
|
console.print(f"[red]Error:[/red] {exc}")
|
|
93
93
|
ctx.exit(1)
|
|
94
94
|
|
|
95
|
-
formats = tuple(formats) if formats else ("
|
|
95
|
+
formats = tuple(formats) if formats else ("html",)
|
|
96
96
|
chosen_chart_types: list[str] | None = None
|
|
97
97
|
|
|
98
98
|
if template_name:
|
benchbox/cli/composite_params.py
CHANGED
|
@@ -214,7 +214,7 @@ class ConvertConfig:
|
|
|
214
214
|
config.format = format_part.lower()
|
|
215
215
|
|
|
216
216
|
# Validate format
|
|
217
|
-
valid_formats = ("parquet", "delta", "iceberg")
|
|
217
|
+
valid_formats = ("parquet", "vortex", "delta", "iceberg")
|
|
218
218
|
if config.format not in valid_formats:
|
|
219
219
|
raise click.BadParameter(f"Invalid format '{config.format}'. Valid formats: {', '.join(valid_formats)}")
|
|
220
220
|
|
benchbox/cli/config.py
CHANGED
|
@@ -875,10 +875,19 @@ class DirectoryManager:
|
|
|
875
875
|
platform: str,
|
|
876
876
|
timestamp: str,
|
|
877
877
|
execution_id: str,
|
|
878
|
+
mode: str | None = None,
|
|
878
879
|
) -> str:
|
|
879
880
|
"""Generate standardized result filename."""
|
|
880
|
-
|
|
881
|
-
|
|
881
|
+
from benchbox.core.results.filenames import build_result_filename
|
|
882
|
+
|
|
883
|
+
return build_result_filename(
|
|
884
|
+
benchmark_id=benchmark_name,
|
|
885
|
+
scale_factor=scale_factor,
|
|
886
|
+
platform=platform,
|
|
887
|
+
timestamp=timestamp,
|
|
888
|
+
execution_id=execution_id,
|
|
889
|
+
mode=mode,
|
|
890
|
+
)
|
|
882
891
|
|
|
883
892
|
def get_result_path(
|
|
884
893
|
self,
|
|
@@ -887,9 +896,10 @@ class DirectoryManager:
|
|
|
887
896
|
platform: str,
|
|
888
897
|
timestamp: str,
|
|
889
898
|
execution_id: str,
|
|
899
|
+
mode: str | None = None,
|
|
890
900
|
) -> Path:
|
|
891
901
|
"""Get full path for result file."""
|
|
892
|
-
filename = self.get_result_filename(benchmark_name, scale_factor, platform, timestamp, execution_id)
|
|
902
|
+
filename = self.get_result_filename(benchmark_name, scale_factor, platform, timestamp, execution_id, mode=mode)
|
|
893
903
|
return self.results_dir / filename
|
|
894
904
|
|
|
895
905
|
def get_database_filename(
|