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
|
@@ -41,6 +41,8 @@ from dataclasses import dataclass, field
|
|
|
41
41
|
from enum import Enum
|
|
42
42
|
from typing import TYPE_CHECKING, Any
|
|
43
43
|
|
|
44
|
+
from benchbox.utils.dependencies import get_package_install_message
|
|
45
|
+
|
|
44
46
|
if TYPE_CHECKING:
|
|
45
47
|
from pyspark.sql import SparkSession
|
|
46
48
|
|
|
@@ -332,7 +334,7 @@ class LivySessionManager(CloudSparkSessionManager):
|
|
|
332
334
|
try:
|
|
333
335
|
import requests
|
|
334
336
|
except ImportError as e:
|
|
335
|
-
raise ImportError("requests required for Livy API.
|
|
337
|
+
raise ImportError(get_package_install_message("requests", "requests required for Livy API.")) from e
|
|
336
338
|
self._http_client = requests.Session()
|
|
337
339
|
return self._http_client
|
|
338
340
|
|
|
@@ -495,7 +497,7 @@ class DatabricksConnectSessionManager(CloudSparkSessionManager):
|
|
|
495
497
|
try:
|
|
496
498
|
from databricks.connect import DatabricksSession
|
|
497
499
|
except ImportError as e:
|
|
498
|
-
raise ImportError("databricks-connect
|
|
500
|
+
raise ImportError(get_package_install_message("databricks-connect", "databricks-connect required.")) from e
|
|
499
501
|
|
|
500
502
|
self._state = SessionState.STARTING
|
|
501
503
|
self._logger.info("Creating Databricks Connect session...")
|
|
@@ -40,6 +40,8 @@ from pathlib import Path
|
|
|
40
40
|
from typing import Any, Callable
|
|
41
41
|
from urllib.parse import urlparse
|
|
42
42
|
|
|
43
|
+
from benchbox.utils.dependencies import get_package_install_message
|
|
44
|
+
|
|
43
45
|
logger = logging.getLogger(__name__)
|
|
44
46
|
|
|
45
47
|
|
|
@@ -370,7 +372,7 @@ class S3Staging(CloudSparkStaging):
|
|
|
370
372
|
try:
|
|
371
373
|
import boto3
|
|
372
374
|
except ImportError as e:
|
|
373
|
-
raise ImportError("boto3 required for S3 staging.
|
|
375
|
+
raise ImportError(get_package_install_message("boto3", "boto3 required for S3 staging.")) from e
|
|
374
376
|
|
|
375
377
|
session_kwargs = {}
|
|
376
378
|
if self.config.credentials:
|
|
@@ -462,7 +464,9 @@ class GCSStaging(CloudSparkStaging):
|
|
|
462
464
|
from google.cloud import storage
|
|
463
465
|
except ImportError as e:
|
|
464
466
|
raise ImportError(
|
|
465
|
-
|
|
467
|
+
get_package_install_message(
|
|
468
|
+
"google-cloud-storage", "google-cloud-storage required for GCS staging."
|
|
469
|
+
)
|
|
466
470
|
) from e
|
|
467
471
|
|
|
468
472
|
self._client = storage.Client()
|
|
@@ -539,8 +543,10 @@ class AzureADLSStaging(CloudSparkStaging):
|
|
|
539
543
|
from azure.storage.filedatalake import DataLakeServiceClient
|
|
540
544
|
except ImportError as e:
|
|
541
545
|
raise ImportError(
|
|
542
|
-
|
|
543
|
-
|
|
546
|
+
get_package_install_message(
|
|
547
|
+
"azure-storage-file-datalake azure-identity",
|
|
548
|
+
"azure-storage-file-datalake required for Azure ADLS staging.",
|
|
549
|
+
)
|
|
544
550
|
) from e
|
|
545
551
|
|
|
546
552
|
# Parse account from container@account.dfs.core.windows.net
|
|
@@ -628,8 +634,10 @@ class AzureBlobStaging(CloudSparkStaging):
|
|
|
628
634
|
from azure.storage.blob import ContainerClient
|
|
629
635
|
except ImportError as e:
|
|
630
636
|
raise ImportError(
|
|
631
|
-
|
|
632
|
-
|
|
637
|
+
get_package_install_message(
|
|
638
|
+
"azure-storage-blob azure-identity",
|
|
639
|
+
"azure-storage-blob required for Azure Blob staging.",
|
|
640
|
+
)
|
|
633
641
|
) from e
|
|
634
642
|
|
|
635
643
|
credential = DefaultAzureCredential()
|
|
@@ -707,7 +715,7 @@ class DBFSStaging(CloudSparkStaging):
|
|
|
707
715
|
from databricks.sdk import WorkspaceClient
|
|
708
716
|
except ImportError as e:
|
|
709
717
|
raise ImportError(
|
|
710
|
-
"databricks-sdk required for DBFS staging.
|
|
718
|
+
get_package_install_message("databricks-sdk", "databricks-sdk required for DBFS staging.")
|
|
711
719
|
) from e
|
|
712
720
|
|
|
713
721
|
self._client = WorkspaceClient()
|
|
@@ -22,6 +22,8 @@ from dataclasses import dataclass
|
|
|
22
22
|
from pathlib import Path
|
|
23
23
|
from typing import Any, Protocol, cast
|
|
24
24
|
|
|
25
|
+
from benchbox.utils.file_format import detect_compression
|
|
26
|
+
|
|
25
27
|
logger = logging.getLogger(__name__)
|
|
26
28
|
|
|
27
29
|
# Regex pattern for valid SQL identifiers (table/column names)
|
|
@@ -944,6 +946,177 @@ class DuckDBDeltaHandler(FileFormatHandler):
|
|
|
944
946
|
return row_count
|
|
945
947
|
|
|
946
948
|
|
|
949
|
+
class DuckLakeFileHandler(FileFormatHandler):
|
|
950
|
+
"""Handler for DuckLake tables using DuckDB's ducklake extension.
|
|
951
|
+
|
|
952
|
+
This handler reads DuckLake tables and loads data via INSERT statements.
|
|
953
|
+
"""
|
|
954
|
+
|
|
955
|
+
def get_delimiter(self) -> str:
|
|
956
|
+
"""DuckLake is a table format, not delimited."""
|
|
957
|
+
return "" # Not applicable for DuckLake
|
|
958
|
+
|
|
959
|
+
def load_table(self, table_name: str, file_path: Path, connection: Any, benchmark: Any, logger: Any) -> int:
|
|
960
|
+
"""Load DuckLake table into database table.
|
|
961
|
+
|
|
962
|
+
Args:
|
|
963
|
+
table_name: Name of table to load
|
|
964
|
+
file_path: Path to DuckLake table directory
|
|
965
|
+
connection: Database connection
|
|
966
|
+
benchmark: Benchmark instance
|
|
967
|
+
logger: Logger instance
|
|
968
|
+
|
|
969
|
+
Returns:
|
|
970
|
+
Number of rows loaded
|
|
971
|
+
"""
|
|
972
|
+
# Validate table name to prevent SQL injection
|
|
973
|
+
validated_table = validate_sql_identifier(table_name, "table name")
|
|
974
|
+
|
|
975
|
+
try:
|
|
976
|
+
import duckdb
|
|
977
|
+
except ImportError as e:
|
|
978
|
+
raise RuntimeError("DuckLake support requires DuckDB. Install it with: uv add duckdb") from e
|
|
979
|
+
|
|
980
|
+
# DuckLake tables have a metadata.ducklake file and data directory
|
|
981
|
+
metadata_path = file_path / "metadata.ducklake"
|
|
982
|
+
data_path = file_path / "data"
|
|
983
|
+
|
|
984
|
+
if not metadata_path.exists():
|
|
985
|
+
raise RuntimeError(f"DuckLake catalog not found at {metadata_path}")
|
|
986
|
+
|
|
987
|
+
# Create a temporary connection to read the DuckLake table
|
|
988
|
+
temp_conn = duckdb.connect(":memory:")
|
|
989
|
+
try:
|
|
990
|
+
# Load ducklake extension
|
|
991
|
+
temp_conn.execute("INSTALL ducklake")
|
|
992
|
+
temp_conn.execute("LOAD ducklake")
|
|
993
|
+
|
|
994
|
+
# Attach the DuckLake catalog (use DATA_PATH option, not query string)
|
|
995
|
+
temp_conn.execute(f"ATTACH 'ducklake:{metadata_path}' AS ducklake_db (DATA_PATH '{data_path}')")
|
|
996
|
+
|
|
997
|
+
# Read data from DuckLake table
|
|
998
|
+
arrow_table = temp_conn.execute(f"SELECT * FROM ducklake_db.main.{validated_table}").fetch_arrow_table()
|
|
999
|
+
|
|
1000
|
+
row_count = arrow_table.num_rows
|
|
1001
|
+
|
|
1002
|
+
if row_count == 0:
|
|
1003
|
+
return 0
|
|
1004
|
+
|
|
1005
|
+
# Convert to Python data for insertion
|
|
1006
|
+
data = arrow_table.to_pylist()
|
|
1007
|
+
|
|
1008
|
+
# Get column names from schema and validate each one
|
|
1009
|
+
column_names = arrow_table.schema.names
|
|
1010
|
+
validated_columns = [validate_sql_identifier(col, "column name") for col in column_names]
|
|
1011
|
+
placeholders = ",".join(["?" for _ in validated_columns])
|
|
1012
|
+
columns_str = ",".join(validated_columns)
|
|
1013
|
+
|
|
1014
|
+
# Prepare INSERT statement
|
|
1015
|
+
insert_sql = f"INSERT INTO {validated_table} ({columns_str}) VALUES ({placeholders})"
|
|
1016
|
+
|
|
1017
|
+
# Convert dicts to tuples in correct column order
|
|
1018
|
+
data_tuples = [tuple(row[col] for col in column_names) for row in data]
|
|
1019
|
+
|
|
1020
|
+
# Insert in batches for better performance
|
|
1021
|
+
batch_size = 1000
|
|
1022
|
+
for i in range(0, len(data_tuples), batch_size):
|
|
1023
|
+
batch = data_tuples[i : i + batch_size]
|
|
1024
|
+
connection.executemany(insert_sql, batch)
|
|
1025
|
+
|
|
1026
|
+
return row_count
|
|
1027
|
+
|
|
1028
|
+
finally:
|
|
1029
|
+
temp_conn.close()
|
|
1030
|
+
|
|
1031
|
+
|
|
1032
|
+
class DuckDBDuckLakeHandler(FileFormatHandler):
|
|
1033
|
+
"""Handler for DuckDB's native DuckLake support.
|
|
1034
|
+
|
|
1035
|
+
This handler leverages DuckDB's ducklake extension for optimized
|
|
1036
|
+
DuckLake reading directly within DuckDB.
|
|
1037
|
+
"""
|
|
1038
|
+
|
|
1039
|
+
def __init__(self, adapter: Any):
|
|
1040
|
+
"""Initialize handler.
|
|
1041
|
+
|
|
1042
|
+
Args:
|
|
1043
|
+
adapter: Platform adapter (for dry-run support)
|
|
1044
|
+
"""
|
|
1045
|
+
self.adapter = adapter
|
|
1046
|
+
|
|
1047
|
+
def get_delimiter(self) -> str:
|
|
1048
|
+
"""DuckLake is a table format, not delimited."""
|
|
1049
|
+
return ""
|
|
1050
|
+
|
|
1051
|
+
def load_table(self, table_name: str, file_path: Path, connection: Any, benchmark: Any, logger: Any) -> int:
|
|
1052
|
+
"""Load table using DuckDB's ducklake extension.
|
|
1053
|
+
|
|
1054
|
+
Args:
|
|
1055
|
+
table_name: Name of table to load
|
|
1056
|
+
file_path: Path to DuckLake table directory
|
|
1057
|
+
connection: DuckDB connection
|
|
1058
|
+
benchmark: Benchmark instance
|
|
1059
|
+
logger: Logger instance
|
|
1060
|
+
|
|
1061
|
+
Returns:
|
|
1062
|
+
Number of rows loaded
|
|
1063
|
+
"""
|
|
1064
|
+
# Validate table name to prevent SQL injection
|
|
1065
|
+
validated_table = validate_sql_identifier(table_name, "table name")
|
|
1066
|
+
|
|
1067
|
+
# DuckLake tables have a metadata.ducklake file and data directory
|
|
1068
|
+
metadata_path = file_path / "metadata.ducklake"
|
|
1069
|
+
data_path = file_path / "data"
|
|
1070
|
+
|
|
1071
|
+
if not metadata_path.exists():
|
|
1072
|
+
raise RuntimeError(f"DuckLake catalog not found at {metadata_path}")
|
|
1073
|
+
|
|
1074
|
+
# Ensure ducklake extension is installed and loaded
|
|
1075
|
+
try:
|
|
1076
|
+
connection.execute("INSTALL ducklake")
|
|
1077
|
+
connection.execute("LOAD ducklake")
|
|
1078
|
+
except Exception:
|
|
1079
|
+
# Extension might already be installed/loaded
|
|
1080
|
+
pass
|
|
1081
|
+
|
|
1082
|
+
# Generate a unique alias for the catalog
|
|
1083
|
+
import uuid
|
|
1084
|
+
|
|
1085
|
+
catalog_alias = f"ducklake_{uuid.uuid4().hex[:8]}"
|
|
1086
|
+
|
|
1087
|
+
# Attach the DuckLake catalog (use DATA_PATH option, not query string)
|
|
1088
|
+
escaped_metadata = escape_sql_string_literal(str(metadata_path))
|
|
1089
|
+
escaped_data_path = escape_sql_string_literal(str(data_path))
|
|
1090
|
+
|
|
1091
|
+
try:
|
|
1092
|
+
connection.execute(
|
|
1093
|
+
f"ATTACH 'ducklake:{escaped_metadata}' AS {catalog_alias} (DATA_PATH '{escaped_data_path}')"
|
|
1094
|
+
)
|
|
1095
|
+
|
|
1096
|
+
# Build INSERT SELECT from the DuckLake table
|
|
1097
|
+
insert_sql = f"""
|
|
1098
|
+
INSERT INTO {validated_table}
|
|
1099
|
+
SELECT * FROM {catalog_alias}.main.{validated_table}
|
|
1100
|
+
"""
|
|
1101
|
+
|
|
1102
|
+
# Execute or capture based on dry-run mode
|
|
1103
|
+
if hasattr(self.adapter, "dry_run_mode") and self.adapter.dry_run_mode:
|
|
1104
|
+
self.adapter.capture_sql(insert_sql, "load_data", validated_table)
|
|
1105
|
+
return 1000 # Placeholder for dry-run
|
|
1106
|
+
else:
|
|
1107
|
+
connection.execute(insert_sql)
|
|
1108
|
+
# Get actual row count
|
|
1109
|
+
row_count = connection.execute(f"SELECT COUNT(*) FROM {validated_table}").fetchone()[0]
|
|
1110
|
+
return row_count
|
|
1111
|
+
|
|
1112
|
+
finally:
|
|
1113
|
+
# Detach the catalog
|
|
1114
|
+
try:
|
|
1115
|
+
connection.execute(f"DETACH {catalog_alias}")
|
|
1116
|
+
except Exception:
|
|
1117
|
+
pass
|
|
1118
|
+
|
|
1119
|
+
|
|
947
1120
|
class IcebergFileHandler(FileFormatHandler):
|
|
948
1121
|
"""Handler for Apache Iceberg tables using pyiceberg library.
|
|
949
1122
|
|
|
@@ -1052,6 +1225,137 @@ class IcebergFileHandler(FileFormatHandler):
|
|
|
1052
1225
|
pass
|
|
1053
1226
|
|
|
1054
1227
|
|
|
1228
|
+
class VortexFileHandler(FileFormatHandler):
|
|
1229
|
+
"""Handler for Vortex columnar files using the vortex Python library.
|
|
1230
|
+
|
|
1231
|
+
This is a generic handler that works across platforms by reading
|
|
1232
|
+
Vortex files and loading via INSERT statements.
|
|
1233
|
+
"""
|
|
1234
|
+
|
|
1235
|
+
def get_delimiter(self) -> str:
|
|
1236
|
+
"""Vortex is a columnar format, not delimited."""
|
|
1237
|
+
return "" # Not applicable for Vortex
|
|
1238
|
+
|
|
1239
|
+
def load_table(self, table_name: str, file_path: Path, connection: Any, benchmark: Any, logger: Any) -> int:
|
|
1240
|
+
"""Load Vortex file into table.
|
|
1241
|
+
|
|
1242
|
+
Args:
|
|
1243
|
+
table_name: Name of table to load
|
|
1244
|
+
file_path: Path to Vortex file
|
|
1245
|
+
connection: Database connection
|
|
1246
|
+
benchmark: Benchmark instance
|
|
1247
|
+
logger: Logger instance
|
|
1248
|
+
|
|
1249
|
+
Returns:
|
|
1250
|
+
Number of rows loaded
|
|
1251
|
+
"""
|
|
1252
|
+
# Validate table name to prevent SQL injection
|
|
1253
|
+
validated_table = validate_sql_identifier(table_name, "table name")
|
|
1254
|
+
|
|
1255
|
+
try:
|
|
1256
|
+
import vortex
|
|
1257
|
+
except ImportError as e:
|
|
1258
|
+
raise RuntimeError(
|
|
1259
|
+
"Vortex format support requires the 'vortex' package. "
|
|
1260
|
+
"Install it with: uv add vortex --optional table-formats"
|
|
1261
|
+
) from e
|
|
1262
|
+
|
|
1263
|
+
# Read Vortex file and convert to PyArrow table
|
|
1264
|
+
vortex_array = vortex.io.read(file_path)
|
|
1265
|
+
arrow_table = vortex_array.to_arrow()
|
|
1266
|
+
row_count = arrow_table.num_rows
|
|
1267
|
+
|
|
1268
|
+
if row_count == 0:
|
|
1269
|
+
return 0
|
|
1270
|
+
|
|
1271
|
+
# Convert to Python data for insertion
|
|
1272
|
+
data = arrow_table.to_pylist()
|
|
1273
|
+
|
|
1274
|
+
# Get column names from schema and validate each one
|
|
1275
|
+
column_names = arrow_table.schema.names
|
|
1276
|
+
validated_columns = [validate_sql_identifier(col, "column name") for col in column_names]
|
|
1277
|
+
placeholders = ",".join(["?" for _ in validated_columns])
|
|
1278
|
+
columns_str = ",".join(validated_columns)
|
|
1279
|
+
|
|
1280
|
+
# Prepare INSERT statement
|
|
1281
|
+
insert_sql = f"INSERT INTO {validated_table} ({columns_str}) VALUES ({placeholders})"
|
|
1282
|
+
|
|
1283
|
+
# Convert dicts to tuples in correct column order
|
|
1284
|
+
data_tuples = [tuple(row[col] for col in column_names) for row in data]
|
|
1285
|
+
|
|
1286
|
+
# Insert in batches for better performance
|
|
1287
|
+
batch_size = 1000
|
|
1288
|
+
for i in range(0, len(data_tuples), batch_size):
|
|
1289
|
+
batch = data_tuples[i : i + batch_size]
|
|
1290
|
+
connection.executemany(insert_sql, batch)
|
|
1291
|
+
|
|
1292
|
+
return row_count
|
|
1293
|
+
|
|
1294
|
+
|
|
1295
|
+
class DuckDBVortexHandler(FileFormatHandler):
|
|
1296
|
+
"""Handler for DuckDB's native Vortex support via extension.
|
|
1297
|
+
|
|
1298
|
+
This handler leverages DuckDB's vortex extension for optimized
|
|
1299
|
+
Vortex reading instead of using the Python vortex library.
|
|
1300
|
+
"""
|
|
1301
|
+
|
|
1302
|
+
def __init__(self, adapter: Any):
|
|
1303
|
+
"""Initialize handler.
|
|
1304
|
+
|
|
1305
|
+
Args:
|
|
1306
|
+
adapter: Platform adapter (for dry-run support)
|
|
1307
|
+
"""
|
|
1308
|
+
self.adapter = adapter
|
|
1309
|
+
|
|
1310
|
+
def get_delimiter(self) -> str:
|
|
1311
|
+
"""Vortex is a columnar format, not delimited."""
|
|
1312
|
+
return ""
|
|
1313
|
+
|
|
1314
|
+
def load_table(self, table_name: str, file_path: Path, connection: Any, benchmark: Any, logger: Any) -> int:
|
|
1315
|
+
"""Load table using DuckDB's vortex extension.
|
|
1316
|
+
|
|
1317
|
+
Args:
|
|
1318
|
+
table_name: Name of table to load
|
|
1319
|
+
file_path: Path to Vortex file
|
|
1320
|
+
connection: DuckDB connection
|
|
1321
|
+
benchmark: Benchmark instance
|
|
1322
|
+
logger: Logger instance
|
|
1323
|
+
|
|
1324
|
+
Returns:
|
|
1325
|
+
Number of rows loaded
|
|
1326
|
+
"""
|
|
1327
|
+
# Validate table name and escape file path to prevent SQL injection
|
|
1328
|
+
validated_table = validate_sql_identifier(table_name, "table name")
|
|
1329
|
+
escaped_path = escape_sql_string_literal(str(file_path))
|
|
1330
|
+
|
|
1331
|
+
# Ensure vortex extension is installed and loaded
|
|
1332
|
+
try:
|
|
1333
|
+
# Install vortex extension if not already installed
|
|
1334
|
+
connection.execute("INSTALL vortex")
|
|
1335
|
+
connection.execute("LOAD vortex")
|
|
1336
|
+
except Exception:
|
|
1337
|
+
# Extension might already be installed/loaded, or not available
|
|
1338
|
+
# Fall back to generic handler
|
|
1339
|
+
logger.debug("DuckDB vortex extension not available, falling back to generic handler")
|
|
1340
|
+
return VortexFileHandler().load_table(table_name, file_path, connection, benchmark, logger)
|
|
1341
|
+
|
|
1342
|
+
# Build INSERT SELECT from read_vortex()
|
|
1343
|
+
insert_sql = f"""
|
|
1344
|
+
INSERT INTO {validated_table}
|
|
1345
|
+
SELECT * FROM read_vortex('{escaped_path}')
|
|
1346
|
+
"""
|
|
1347
|
+
|
|
1348
|
+
# Execute or capture based on dry-run mode
|
|
1349
|
+
if hasattr(self.adapter, "dry_run_mode") and self.adapter.dry_run_mode:
|
|
1350
|
+
self.adapter.capture_sql(insert_sql, "load_data", validated_table)
|
|
1351
|
+
return 1000 # Placeholder for dry-run
|
|
1352
|
+
else:
|
|
1353
|
+
connection.execute(insert_sql)
|
|
1354
|
+
# Get actual row count
|
|
1355
|
+
row_count = connection.execute(f"SELECT COUNT(*) FROM {validated_table}").fetchone()[0]
|
|
1356
|
+
return row_count
|
|
1357
|
+
|
|
1358
|
+
|
|
1055
1359
|
class ClickHouseNativeHandler(FileFormatHandler):
|
|
1056
1360
|
"""Handler for ClickHouse's native file() function.
|
|
1057
1361
|
|
|
@@ -1137,7 +1441,7 @@ class ClickHouseNativeHandler(FileFormatHandler):
|
|
|
1137
1441
|
actual_file_path = file_path
|
|
1138
1442
|
temp_file_path = None
|
|
1139
1443
|
|
|
1140
|
-
if hasattr(self.adapter, "mode") and self.adapter.mode == "local" and
|
|
1444
|
+
if hasattr(self.adapter, "mode") and self.adapter.mode == "local" and detect_compression(file_path) == "zstd":
|
|
1141
1445
|
# Decompress zstd files for local mode
|
|
1142
1446
|
self.adapter.log_verbose(f"Decompressing {file_path.name} for local mode...")
|
|
1143
1447
|
try:
|
|
@@ -1256,6 +1560,7 @@ class FileFormatRegistry:
|
|
|
1256
1560
|
".tbl": lambda: DelimitedFileHandler("|"),
|
|
1257
1561
|
".dat": lambda: DelimitedFileHandler("|"),
|
|
1258
1562
|
".parquet": lambda: ParquetFileHandler(),
|
|
1563
|
+
".vortex": lambda: VortexFileHandler(),
|
|
1259
1564
|
}
|
|
1260
1565
|
|
|
1261
1566
|
# Map compression extensions to handlers
|
|
@@ -1306,6 +1611,11 @@ class FileFormatRegistry:
|
|
|
1306
1611
|
"""
|
|
1307
1612
|
# Check if this is a directory-based table format
|
|
1308
1613
|
if file_path.is_dir():
|
|
1614
|
+
# Check for DuckLake (metadata.ducklake file)
|
|
1615
|
+
ducklake_metadata = file_path / "metadata.ducklake"
|
|
1616
|
+
if ducklake_metadata.exists():
|
|
1617
|
+
return DuckLakeFileHandler()
|
|
1618
|
+
|
|
1309
1619
|
# Check for Delta Lake (_delta_log directory)
|
|
1310
1620
|
delta_log_dir = file_path / "_delta_log"
|
|
1311
1621
|
if delta_log_dir.exists() and delta_log_dir.is_dir():
|
|
@@ -1540,7 +1850,11 @@ __all__ = [
|
|
|
1540
1850
|
"DuckDBParquetHandler",
|
|
1541
1851
|
"DeltaFileHandler",
|
|
1542
1852
|
"DuckDBDeltaHandler",
|
|
1853
|
+
"DuckLakeFileHandler",
|
|
1854
|
+
"DuckDBDuckLakeHandler",
|
|
1543
1855
|
"IcebergFileHandler",
|
|
1856
|
+
"VortexFileHandler",
|
|
1857
|
+
"DuckDBVortexHandler",
|
|
1544
1858
|
"ClickHouseNativeHandler",
|
|
1545
1859
|
"InMemoryDataHandler",
|
|
1546
1860
|
"FileFormatRegistry",
|
|
@@ -99,17 +99,52 @@ ICEBERG_CAPABILITY = FormatCapability(
|
|
|
99
99
|
},
|
|
100
100
|
)
|
|
101
101
|
|
|
102
|
+
VORTEX_CAPABILITY = FormatCapability(
|
|
103
|
+
format_name="vortex",
|
|
104
|
+
display_name="Vortex",
|
|
105
|
+
file_extension=".vortex",
|
|
106
|
+
features={
|
|
107
|
+
"compression",
|
|
108
|
+
"column_pruning",
|
|
109
|
+
"predicate_pushdown",
|
|
110
|
+
"statistics",
|
|
111
|
+
},
|
|
112
|
+
supported_platforms={
|
|
113
|
+
"duckdb": SupportLevel.EXTENSION, # vortex extension
|
|
114
|
+
"datafusion": SupportLevel.EXPERIMENTAL,
|
|
115
|
+
},
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
DUCKLAKE_CAPABILITY = FormatCapability(
|
|
119
|
+
format_name="ducklake",
|
|
120
|
+
display_name="DuckLake",
|
|
121
|
+
file_extension="", # DuckLake is directory-based
|
|
122
|
+
features={
|
|
123
|
+
"time_travel",
|
|
124
|
+
"acid_transactions",
|
|
125
|
+
"schema_evolution",
|
|
126
|
+
"snapshot_isolation",
|
|
127
|
+
"predicate_pushdown",
|
|
128
|
+
"column_pruning",
|
|
129
|
+
},
|
|
130
|
+
supported_platforms={
|
|
131
|
+
"duckdb": SupportLevel.NATIVE, # DuckLake is DuckDB's native table format
|
|
132
|
+
},
|
|
133
|
+
)
|
|
134
|
+
|
|
102
135
|
# Registry of all format capabilities
|
|
103
136
|
CAPABILITIES_REGISTRY: dict[str, FormatCapability] = {
|
|
104
137
|
"parquet": PARQUET_CAPABILITY,
|
|
105
138
|
"delta": DELTA_CAPABILITY,
|
|
106
139
|
"iceberg": ICEBERG_CAPABILITY,
|
|
140
|
+
"vortex": VORTEX_CAPABILITY,
|
|
141
|
+
"ducklake": DUCKLAKE_CAPABILITY,
|
|
107
142
|
}
|
|
108
143
|
|
|
109
144
|
# Platform format preferences (which format to prefer when multiple available)
|
|
110
145
|
PLATFORM_FORMAT_PREFERENCES: dict[str, list[str]] = {
|
|
111
|
-
"duckdb": ["parquet", "delta", "tbl", "csv"],
|
|
112
|
-
"datafusion": ["parquet", "tbl", "csv"],
|
|
146
|
+
"duckdb": ["parquet", "ducklake", "vortex", "delta", "tbl", "csv"],
|
|
147
|
+
"datafusion": ["parquet", "vortex", "tbl", "csv"],
|
|
113
148
|
"clickhouse": ["parquet", "tbl", "csv"],
|
|
114
149
|
"databricks": ["delta", "parquet", "tbl", "csv"],
|
|
115
150
|
"snowflake": ["parquet", "tbl", "csv"],
|
benchbox/platforms/base/utils.py
CHANGED
|
@@ -7,6 +7,8 @@ import sys
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from typing import NamedTuple
|
|
9
9
|
|
|
10
|
+
from benchbox.utils.file_format import is_parquet_format, is_tpc_format
|
|
11
|
+
|
|
10
12
|
|
|
11
13
|
class FileFormatInfo(NamedTuple):
|
|
12
14
|
"""Information about detected file format."""
|
|
@@ -34,17 +36,17 @@ def detect_file_format(file_paths: list[Path] | Path) -> FileFormatInfo:
|
|
|
34
36
|
if not file_paths:
|
|
35
37
|
return FileFormatInfo(format_type="csv", delimiter=",", has_trailing_delimiter=False)
|
|
36
38
|
|
|
37
|
-
first_file =
|
|
39
|
+
first_file = file_paths[0]
|
|
38
40
|
|
|
39
|
-
# Check for Parquet
|
|
40
|
-
if first_file
|
|
41
|
+
# Check for Parquet (handles compression like .parquet.zst)
|
|
42
|
+
if is_parquet_format(first_file):
|
|
41
43
|
return FileFormatInfo(format_type="parquet", delimiter="", has_trailing_delimiter=False)
|
|
42
44
|
|
|
43
45
|
# Check for TPC benchmark format (.tbl, .dat)
|
|
44
46
|
# BenchBox generators produce TPC files WITHOUT trailing delimiters:
|
|
45
47
|
# - TPC-H: dbgen binary doesn't add trailing delimiters
|
|
46
48
|
# - TPC-DS: dsdgen uses -terminate n flag to disable trailing delimiters
|
|
47
|
-
if
|
|
49
|
+
if is_tpc_format(first_file):
|
|
48
50
|
return FileFormatInfo(format_type="tpc", delimiter="|", has_trailing_delimiter=False)
|
|
49
51
|
|
|
50
52
|
# Default to standard CSV
|
benchbox/platforms/bigquery.py
CHANGED
|
@@ -26,6 +26,7 @@ if TYPE_CHECKING:
|
|
|
26
26
|
)
|
|
27
27
|
|
|
28
28
|
from benchbox.utils.cloud_storage import get_cloud_path_info, is_cloud_path
|
|
29
|
+
from benchbox.utils.file_format import detect_compression, get_delimiter_for_file
|
|
29
30
|
|
|
30
31
|
from ..utils.dependencies import check_platform_dependencies, get_dependency_error_message
|
|
31
32
|
from .base import PlatformAdapter
|
|
@@ -933,7 +934,7 @@ class BigQueryAdapter(PlatformAdapter):
|
|
|
933
934
|
if not isinstance(file_paths, list):
|
|
934
935
|
file_paths = [file_paths]
|
|
935
936
|
for file_path in file_paths:
|
|
936
|
-
if
|
|
937
|
+
if detect_compression(file_path) == "zstd":
|
|
937
938
|
benchmark_name = getattr(benchmark, "name", "unknown")
|
|
938
939
|
scale_factor = getattr(benchmark, "scale_factor", "unknown")
|
|
939
940
|
raise ValueError(
|
|
@@ -996,9 +997,8 @@ class BigQueryAdapter(PlatformAdapter):
|
|
|
996
997
|
|
|
997
998
|
# Detect file format to determine delimiter
|
|
998
999
|
# TPC-H uses .tbl (pipe-delimited), TPC-DS uses .dat (pipe-delimited)
|
|
999
|
-
#
|
|
1000
|
-
|
|
1001
|
-
delimiter = "|" if ".tbl" in file_str or ".dat" in file_str else ","
|
|
1000
|
+
# get_delimiter_for_file handles chunked files like customer.tbl.1 or customer.tbl.1.zst
|
|
1001
|
+
delimiter = get_delimiter_for_file(file_path)
|
|
1002
1002
|
|
|
1003
1003
|
# Upload file directly to Cloud Storage with original compression and format
|
|
1004
1004
|
# BigQuery supports compressed files and any delimiter natively
|
|
@@ -1083,8 +1083,7 @@ class BigQueryAdapter(PlatformAdapter):
|
|
|
1083
1083
|
self.log_very_verbose(f"Loading {table_name}{chunk_info} from {file_path.name}")
|
|
1084
1084
|
|
|
1085
1085
|
# Detect delimiter from filename (handle chunked files like customer.tbl.1)
|
|
1086
|
-
|
|
1087
|
-
delimiter = "|" if ".tbl" in file_str or ".dat" in file_str else ","
|
|
1086
|
+
delimiter = get_delimiter_for_file(file_path)
|
|
1088
1087
|
|
|
1089
1088
|
# Use WRITE_APPEND for subsequent chunks, WRITE_TRUNCATE for first
|
|
1090
1089
|
write_disposition = (
|