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.
Files changed (728) hide show
  1. benchbox/__init__.py +1 -1
  2. benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query72.tpl +1 -1
  3. benchbox/_binaries/tpc-ds/{darwin-x86_64/query_templates/ansi.tpl → templates/query_templates/sqlserver.tpl} +1 -1
  4. benchbox/_binaries/tpc-ds/templates/query_variants/README +6 -0
  5. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query10.tpl → templates/query_variants/query10a.tpl} +13 -14
  6. benchbox/_binaries/tpc-ds/{darwin-x86_64/query_templates/query14.tpl → templates/query_variants/query14a.tpl} +30 -26
  7. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query18.tpl → templates/query_variants/query18a.tpl} +40 -19
  8. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query22.tpl → templates/query_variants/query22a.tpl} +31 -9
  9. benchbox/_binaries/tpc-ds/{darwin-x86_64/query_templates/query27.tpl → templates/query_variants/query27a.tpl} +23 -10
  10. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query35.tpl → templates/query_variants/query35a.tpl} +9 -8
  11. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query36.tpl → templates/query_variants/query36a.tpl} +24 -12
  12. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query51.tpl → templates/query_variants/query51a.tpl} +37 -20
  13. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query5.tpl → templates/query_variants/query5a.tpl} +15 -10
  14. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query67.tpl → templates/query_variants/query67a.tpl} +46 -18
  15. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query70.tpl → templates/query_variants/query70a.tpl} +31 -27
  16. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query77.tpl → templates/query_variants/query77a.tpl} +22 -15
  17. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query80.tpl → templates/query_variants/query80a.tpl} +22 -8
  18. benchbox/_binaries/tpc-ds/{linux-arm64/query_templates/query86.tpl → templates/query_variants/query86a.tpl} +22 -13
  19. benchbox/_binaries/tpc-h/templates/dists.dss +836 -0
  20. benchbox/_binaries/tpc-h/templates/queries/1.sql +28 -0
  21. benchbox/_binaries/tpc-h/templates/queries/10.sql +38 -0
  22. benchbox/_binaries/tpc-h/templates/queries/11.sql +34 -0
  23. benchbox/_binaries/tpc-h/templates/queries/12.sql +35 -0
  24. benchbox/_binaries/tpc-h/templates/queries/13.sql +27 -0
  25. benchbox/_binaries/tpc-h/templates/queries/14.sql +20 -0
  26. benchbox/_binaries/tpc-h/templates/queries/15.sql +40 -0
  27. benchbox/_binaries/tpc-h/templates/queries/16.sql +37 -0
  28. benchbox/_binaries/tpc-h/templates/queries/17.sql +24 -0
  29. benchbox/_binaries/tpc-h/templates/queries/18.sql +39 -0
  30. benchbox/_binaries/tpc-h/templates/queries/19.sql +42 -0
  31. benchbox/_binaries/tpc-h/templates/queries/2.sql +50 -0
  32. benchbox/_binaries/tpc-h/templates/queries/20.sql +44 -0
  33. benchbox/_binaries/tpc-h/templates/queries/21.sql +46 -0
  34. benchbox/_binaries/tpc-h/templates/queries/22.sql +44 -0
  35. benchbox/_binaries/tpc-h/templates/queries/3.sql +29 -0
  36. benchbox/_binaries/tpc-h/templates/queries/4.sql +28 -0
  37. benchbox/_binaries/tpc-h/templates/queries/5.sql +31 -0
  38. benchbox/_binaries/tpc-h/templates/queries/6.sql +16 -0
  39. benchbox/_binaries/tpc-h/templates/queries/7.sql +46 -0
  40. benchbox/_binaries/tpc-h/templates/queries/8.sql +44 -0
  41. benchbox/_binaries/tpc-h/templates/queries/9.sql +39 -0
  42. benchbox/_binaries/tpc-h/templates/variants/12a.sql +27 -0
  43. benchbox/_binaries/tpc-h/templates/variants/13a.sql +30 -0
  44. benchbox/_binaries/tpc-h/templates/variants/14a.sql +18 -0
  45. benchbox/_binaries/tpc-h/templates/variants/15a.sql +39 -0
  46. benchbox/_binaries/tpc-h/templates/variants/8a.sql +77 -0
  47. benchbox/base.py +88 -121
  48. benchbox/cli/benchmarks.py +3 -3
  49. benchbox/cli/commands/calculate_qphh.py +55 -14
  50. benchbox/cli/commands/checks.py +1 -4
  51. benchbox/cli/commands/convert.py +8 -3
  52. benchbox/cli/commands/metrics.py +55 -14
  53. benchbox/cli/commands/results.py +131 -3
  54. benchbox/cli/commands/run.py +157 -22
  55. benchbox/cli/commands/visualize.py +3 -3
  56. benchbox/cli/composite_params.py +1 -1
  57. benchbox/cli/config.py +13 -3
  58. benchbox/cli/database.py +3 -3
  59. benchbox/cli/dryrun.py +30 -4
  60. benchbox/cli/exceptions.py +2 -1
  61. benchbox/cli/execution_pipeline.py +2 -1
  62. benchbox/cli/orchestrator.py +25 -71
  63. benchbox/cli/tuning.py +1 -1
  64. benchbox/core/ai_primitives/benchmark.py +53 -0
  65. benchbox/core/ai_primitives/dataframe_operations.py +1217 -0
  66. benchbox/core/base_benchmark.py +90 -68
  67. benchbox/core/coffeeshop/queries.py +1 -1
  68. benchbox/core/coffeeshop/schema.py +1 -1
  69. benchbox/core/comparison/plotter.py +5 -4
  70. benchbox/core/dataframe/__init__.py +26 -0
  71. benchbox/core/dataframe/benchmark_suite.py +5 -4
  72. benchbox/core/dataframe/context.py +45 -0
  73. benchbox/core/dataframe/data_loader.py +180 -79
  74. benchbox/core/dataframe/maintenance_interface.py +866 -0
  75. benchbox/core/dryrun.py +152 -22
  76. benchbox/core/expected_results/registry.py +22 -5
  77. benchbox/core/manifest/io.py +4 -3
  78. benchbox/core/metadata_primitives/__init__.py +31 -0
  79. benchbox/core/metadata_primitives/benchmark.py +337 -0
  80. benchbox/core/metadata_primitives/dataframe_operations.py +1824 -0
  81. benchbox/core/platform_registry.py +134 -45
  82. benchbox/core/read_primitives/benchmark.py +56 -4
  83. benchbox/core/read_primitives/dataframe_queries.py +6547 -0
  84. benchbox/core/results/__init__.py +47 -6
  85. benchbox/core/results/builder.py +909 -0
  86. benchbox/core/results/database.py +5 -5
  87. benchbox/core/results/exporter.py +58 -96
  88. benchbox/core/results/filenames.py +102 -0
  89. benchbox/core/results/loader.py +10 -9
  90. benchbox/core/results/metrics.py +211 -0
  91. benchbox/core/results/models.py +3 -1
  92. benchbox/core/results/normalizer.py +346 -0
  93. benchbox/core/results/platform_info.py +235 -0
  94. benchbox/core/results/query_normalizer.py +200 -0
  95. benchbox/core/results/schema.py +368 -69
  96. benchbox/core/runner/conversion.py +2 -0
  97. benchbox/core/runner/dataframe_runner.py +135 -131
  98. benchbox/core/runner/runner.py +111 -18
  99. benchbox/core/schemas.py +145 -3
  100. benchbox/core/ssb/generator.py +14 -2
  101. benchbox/core/tpc_compliance.py +4 -4
  102. benchbox/core/tpc_metrics.py +9 -4
  103. benchbox/core/tpcdi/generator/manifest.py +15 -2
  104. benchbox/core/tpcds/benchmark/runner.py +3 -7
  105. benchbox/core/tpcds/c_tools.py +34 -28
  106. benchbox/core/tpcds/dataframe_queries/queries.py +44 -21
  107. benchbox/core/tpcds/generator/filesystem.py +23 -11
  108. benchbox/core/tpcds/generator/manager.py +3 -2
  109. benchbox/core/tpcds/maintenance_test.py +281 -0
  110. benchbox/core/tpcds/power_test.py +21 -11
  111. benchbox/core/tpcds/throughput_test.py +27 -9
  112. benchbox/core/tpcds_obt/etl/transformer.py +24 -5
  113. benchbox/core/tpch/dataframe_queries.py +46 -43
  114. benchbox/core/tpch/generator.py +21 -8
  115. benchbox/core/tpch/maintenance_test.py +87 -0
  116. benchbox/core/tpch/power_test.py +21 -5
  117. benchbox/core/tpch/queries.py +2 -7
  118. benchbox/core/tpch/streams.py +3 -19
  119. benchbox/core/transaction_primitives/benchmark.py +99 -0
  120. benchbox/core/transaction_primitives/dataframe_operations.py +1294 -0
  121. benchbox/core/transaction_primitives/generator.py +11 -4
  122. benchbox/core/visualization/__init__.py +2 -2
  123. benchbox/core/visualization/charts.py +4 -4
  124. benchbox/core/visualization/dependencies.py +1 -12
  125. benchbox/core/visualization/exporters.py +15 -26
  126. benchbox/core/visualization/result_plotter.py +90 -49
  127. benchbox/core/visualization/templates.py +6 -6
  128. benchbox/core/write_primitives/__init__.py +13 -0
  129. benchbox/core/write_primitives/benchmark.py +66 -0
  130. benchbox/core/write_primitives/dataframe_operations.py +912 -0
  131. benchbox/core/write_primitives/generator.py +11 -4
  132. benchbox/mcp/__init__.py +5 -1
  133. benchbox/mcp/errors.py +29 -0
  134. benchbox/mcp/resources/registry.py +12 -7
  135. benchbox/mcp/schemas.py +62 -0
  136. benchbox/mcp/server.py +17 -14
  137. benchbox/mcp/tools/__init__.py +3 -0
  138. benchbox/mcp/tools/analytics.py +550 -582
  139. benchbox/mcp/tools/benchmark.py +603 -611
  140. benchbox/mcp/tools/discovery.py +156 -205
  141. benchbox/mcp/tools/results.py +332 -533
  142. benchbox/mcp/tools/visualization.py +449 -0
  143. benchbox/platforms/__init__.py +740 -622
  144. benchbox/platforms/adapter_factory.py +6 -6
  145. benchbox/platforms/azure_synapse.py +3 -7
  146. benchbox/platforms/base/adapter.py +189 -49
  147. benchbox/platforms/base/cloud_spark/config.py +8 -0
  148. benchbox/platforms/base/cloud_spark/mixins.py +96 -0
  149. benchbox/platforms/base/cloud_spark/session.py +4 -2
  150. benchbox/platforms/base/cloud_spark/staging.py +15 -7
  151. benchbox/platforms/base/data_loading.py +315 -1
  152. benchbox/platforms/base/format_capabilities.py +37 -2
  153. benchbox/platforms/base/utils.py +6 -4
  154. benchbox/platforms/bigquery.py +5 -6
  155. benchbox/platforms/clickhouse_cloud.py +263 -0
  156. benchbox/platforms/databricks/adapter.py +16 -15
  157. benchbox/platforms/databricks/dataframe_adapter.py +4 -1
  158. benchbox/platforms/dataframe/__init__.py +31 -0
  159. benchbox/platforms/dataframe/benchmark_mixin.py +779 -0
  160. benchbox/platforms/dataframe/cudf_df.py +3 -3
  161. benchbox/platforms/dataframe/dask_df.py +3 -3
  162. benchbox/platforms/dataframe/datafusion_df.py +152 -15
  163. benchbox/platforms/dataframe/delta_lake_maintenance.py +341 -0
  164. benchbox/platforms/dataframe/ducklake_maintenance.py +402 -0
  165. benchbox/platforms/dataframe/expression_family.py +47 -8
  166. benchbox/platforms/dataframe/hudi_maintenance.py +437 -0
  167. benchbox/platforms/dataframe/iceberg_maintenance.py +605 -0
  168. benchbox/platforms/dataframe/modin_df.py +3 -3
  169. benchbox/platforms/dataframe/pandas_df.py +3 -3
  170. benchbox/platforms/dataframe/pandas_family.py +59 -8
  171. benchbox/platforms/dataframe/platform_checker.py +16 -49
  172. benchbox/platforms/dataframe/polars_df.py +14 -12
  173. benchbox/platforms/dataframe/polars_maintenance.py +630 -0
  174. benchbox/platforms/dataframe/pyspark_df.py +15 -0
  175. benchbox/platforms/dataframe/pyspark_maintenance.py +613 -0
  176. benchbox/platforms/datafusion.py +5 -6
  177. benchbox/platforms/duckdb.py +2 -1
  178. benchbox/platforms/fabric_warehouse.py +15 -15
  179. benchbox/platforms/firebolt.py +3 -2
  180. benchbox/platforms/influxdb/adapter.py +7 -3
  181. benchbox/platforms/motherduck.py +3 -2
  182. benchbox/platforms/onehouse/__init__.py +39 -0
  183. benchbox/platforms/onehouse/onehouse_client.py +509 -0
  184. benchbox/platforms/onehouse/quanton_adapter.py +646 -0
  185. benchbox/platforms/postgresql.py +5 -9
  186. benchbox/platforms/presto.py +2 -2
  187. benchbox/platforms/pyspark/session.py +3 -3
  188. benchbox/platforms/pyspark/sql_adapter.py +2 -3
  189. benchbox/platforms/redshift.py +7 -7
  190. benchbox/platforms/snowflake.py +4 -4
  191. benchbox/platforms/snowpark_connect.py +2 -1
  192. benchbox/platforms/trino.py +2 -2
  193. benchbox/release/__init__.py +17 -0
  194. benchbox/release/content_validation.py +745 -0
  195. benchbox/release/workflow.py +17 -0
  196. benchbox/utils/VERSION_MANAGEMENT.md +1 -1
  197. benchbox/utils/cloud_storage.py +7 -5
  198. benchbox/utils/compression.py +8 -8
  199. benchbox/utils/compression_mixin.py +2 -1
  200. benchbox/utils/data_validation.py +23 -14
  201. benchbox/utils/dependencies.py +47 -7
  202. benchbox/utils/file_format.py +407 -0
  203. benchbox/utils/format_converters/__init__.py +5 -1
  204. benchbox/utils/format_converters/ducklake_converter.py +227 -0
  205. benchbox/utils/format_converters/vortex_converter.py +168 -0
  206. benchbox/utils/tpc_compilation.py +43 -0
  207. benchbox/utils/version.py +14 -2
  208. {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/METADATA +15 -15
  209. benchbox-0.1.1.dist-info/RECORD +839 -0
  210. {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/WHEEL +1 -1
  211. benchbox/_binaries/tpc-ds/darwin-arm64/query_templates/sqlserver.tpl +0 -37
  212. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/README +0 -4
  213. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/db2.tpl +0 -38
  214. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/netezza.tpl +0 -38
  215. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/oracle.tpl +0 -38
  216. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query1.tpl +0 -62
  217. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query10.tpl +0 -98
  218. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query11.tpl +0 -119
  219. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query12.tpl +0 -72
  220. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query13.tpl +0 -89
  221. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query15.tpl +0 -56
  222. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query16.tpl +0 -76
  223. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query17.tpl +0 -80
  224. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query18.tpl +0 -73
  225. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query19.tpl +0 -64
  226. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query2.tpl +0 -94
  227. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query20.tpl +0 -67
  228. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query21.tpl +0 -65
  229. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query22.tpl +0 -54
  230. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query23.tpl +0 -144
  231. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query24.tpl +0 -147
  232. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query25.tpl +0 -84
  233. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query26.tpl +0 -61
  234. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query28.tpl +0 -90
  235. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query29.tpl +0 -85
  236. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query3.tpl +0 -58
  237. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query30.tpl +0 -66
  238. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query31.tpl +0 -88
  239. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query32.tpl +0 -65
  240. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query33.tpl +0 -113
  241. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query34.tpl +0 -77
  242. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query35.tpl +0 -98
  243. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query36.tpl +0 -74
  244. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query37.tpl +0 -57
  245. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query38.tpl +0 -58
  246. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query39.tpl +0 -93
  247. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query4.tpl +0 -154
  248. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query40.tpl +0 -63
  249. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query41.tpl +0 -90
  250. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query42.tpl +0 -64
  251. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query43.tpl +0 -55
  252. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query44.tpl +0 -72
  253. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query45.tpl +0 -56
  254. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query46.tpl +0 -78
  255. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query47.tpl +0 -89
  256. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query48.tpl +0 -104
  257. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query49.tpl +0 -164
  258. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query5.tpl +0 -165
  259. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query50.tpl +0 -96
  260. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query51.tpl +0 -80
  261. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query52.tpl +0 -59
  262. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query53.tpl +0 -64
  263. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query54.tpl +0 -95
  264. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query55.tpl +0 -52
  265. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query56.tpl +0 -108
  266. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query57.tpl +0 -87
  267. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query58.tpl +0 -101
  268. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query59.tpl +0 -79
  269. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query6.tpl +0 -62
  270. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query60.tpl +0 -115
  271. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query61.tpl +0 -83
  272. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query62.tpl +0 -71
  273. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query63.tpl +0 -64
  274. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query64.tpl +0 -157
  275. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query65.tpl +0 -62
  276. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query66.tpl +0 -261
  277. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query67.tpl +0 -81
  278. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query68.tpl +0 -82
  279. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query69.tpl +0 -85
  280. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query7.tpl +0 -60
  281. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query70.tpl +0 -73
  282. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query71.tpl +0 -74
  283. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query72.tpl +0 -67
  284. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query73.tpl +0 -69
  285. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query74.tpl +0 -99
  286. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query75.tpl +0 -107
  287. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query76.tpl +0 -64
  288. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query77.tpl +0 -145
  289. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query78.tpl +0 -94
  290. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query79.tpl +0 -60
  291. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query8.tpl +0 -144
  292. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query80.tpl +0 -131
  293. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query81.tpl +0 -68
  294. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query82.tpl +0 -56
  295. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query83.tpl +0 -104
  296. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query84.tpl +0 -58
  297. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query85.tpl +0 -121
  298. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query86.tpl +0 -60
  299. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query87.tpl +0 -56
  300. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query88.tpl +0 -128
  301. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query89.tpl +0 -75
  302. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query9.tpl +0 -88
  303. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query90.tpl +0 -58
  304. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query91.tpl +0 -68
  305. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query92.tpl +0 -68
  306. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query93.tpl +0 -53
  307. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query94.tpl +0 -67
  308. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query95.tpl +0 -71
  309. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query96.tpl +0 -52
  310. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query97.tpl +0 -62
  311. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query98.tpl +0 -70
  312. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/query99.tpl +0 -69
  313. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/sqlserver.tpl +0 -37
  314. benchbox/_binaries/tpc-ds/darwin-x86_64/query_templates/templates.lst +0 -99
  315. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/README +0 -4
  316. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/ansi.tpl +0 -38
  317. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/db2.tpl +0 -38
  318. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/netezza.tpl +0 -38
  319. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/oracle.tpl +0 -38
  320. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query1.tpl +0 -62
  321. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query11.tpl +0 -119
  322. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query12.tpl +0 -72
  323. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query13.tpl +0 -89
  324. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query14.tpl +0 -247
  325. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query15.tpl +0 -56
  326. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query16.tpl +0 -76
  327. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query17.tpl +0 -80
  328. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query19.tpl +0 -64
  329. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query2.tpl +0 -94
  330. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query20.tpl +0 -67
  331. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query21.tpl +0 -65
  332. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query23.tpl +0 -144
  333. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query24.tpl +0 -147
  334. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query25.tpl +0 -84
  335. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query26.tpl +0 -61
  336. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query27.tpl +0 -68
  337. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query28.tpl +0 -90
  338. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query29.tpl +0 -85
  339. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query3.tpl +0 -58
  340. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query30.tpl +0 -66
  341. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query31.tpl +0 -88
  342. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query32.tpl +0 -65
  343. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query33.tpl +0 -113
  344. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query34.tpl +0 -77
  345. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query37.tpl +0 -57
  346. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query38.tpl +0 -58
  347. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query39.tpl +0 -93
  348. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query4.tpl +0 -154
  349. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query40.tpl +0 -63
  350. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query41.tpl +0 -90
  351. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query42.tpl +0 -64
  352. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query43.tpl +0 -55
  353. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query44.tpl +0 -72
  354. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query45.tpl +0 -56
  355. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query46.tpl +0 -78
  356. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query47.tpl +0 -89
  357. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query48.tpl +0 -104
  358. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query49.tpl +0 -164
  359. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query50.tpl +0 -96
  360. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query52.tpl +0 -59
  361. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query53.tpl +0 -64
  362. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query54.tpl +0 -95
  363. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query55.tpl +0 -52
  364. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query56.tpl +0 -108
  365. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query57.tpl +0 -87
  366. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query58.tpl +0 -101
  367. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query59.tpl +0 -79
  368. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query6.tpl +0 -62
  369. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query60.tpl +0 -115
  370. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query61.tpl +0 -83
  371. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query62.tpl +0 -71
  372. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query63.tpl +0 -64
  373. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query64.tpl +0 -157
  374. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query65.tpl +0 -62
  375. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query66.tpl +0 -261
  376. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query68.tpl +0 -82
  377. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query69.tpl +0 -85
  378. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query7.tpl +0 -60
  379. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query71.tpl +0 -74
  380. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query72.tpl +0 -67
  381. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query73.tpl +0 -69
  382. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query74.tpl +0 -99
  383. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query75.tpl +0 -107
  384. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query76.tpl +0 -64
  385. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query78.tpl +0 -94
  386. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query79.tpl +0 -60
  387. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query8.tpl +0 -144
  388. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query81.tpl +0 -68
  389. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query82.tpl +0 -56
  390. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query83.tpl +0 -104
  391. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query84.tpl +0 -58
  392. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query85.tpl +0 -121
  393. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query87.tpl +0 -56
  394. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query88.tpl +0 -128
  395. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query89.tpl +0 -75
  396. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query9.tpl +0 -88
  397. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query90.tpl +0 -58
  398. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query91.tpl +0 -68
  399. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query92.tpl +0 -68
  400. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query93.tpl +0 -53
  401. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query94.tpl +0 -67
  402. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query95.tpl +0 -71
  403. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query96.tpl +0 -52
  404. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query97.tpl +0 -62
  405. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query98.tpl +0 -70
  406. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/query99.tpl +0 -69
  407. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/sqlserver.tpl +0 -37
  408. benchbox/_binaries/tpc-ds/linux-arm64/query_templates/templates.lst +0 -99
  409. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/README +0 -4
  410. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/ansi.tpl +0 -38
  411. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/db2.tpl +0 -38
  412. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/netezza.tpl +0 -38
  413. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/oracle.tpl +0 -38
  414. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query1.tpl +0 -62
  415. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query10.tpl +0 -98
  416. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query11.tpl +0 -119
  417. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query12.tpl +0 -72
  418. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query13.tpl +0 -89
  419. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query14.tpl +0 -247
  420. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query15.tpl +0 -56
  421. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query16.tpl +0 -76
  422. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query17.tpl +0 -80
  423. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query18.tpl +0 -73
  424. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query19.tpl +0 -64
  425. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query2.tpl +0 -94
  426. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query20.tpl +0 -67
  427. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query21.tpl +0 -65
  428. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query22.tpl +0 -54
  429. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query23.tpl +0 -144
  430. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query24.tpl +0 -147
  431. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query25.tpl +0 -84
  432. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query26.tpl +0 -61
  433. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query27.tpl +0 -68
  434. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query28.tpl +0 -90
  435. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query29.tpl +0 -85
  436. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query3.tpl +0 -58
  437. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query30.tpl +0 -66
  438. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query31.tpl +0 -88
  439. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query32.tpl +0 -65
  440. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query33.tpl +0 -113
  441. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query34.tpl +0 -77
  442. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query35.tpl +0 -98
  443. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query36.tpl +0 -74
  444. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query37.tpl +0 -57
  445. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query38.tpl +0 -58
  446. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query39.tpl +0 -93
  447. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query4.tpl +0 -154
  448. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query40.tpl +0 -63
  449. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query41.tpl +0 -90
  450. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query42.tpl +0 -64
  451. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query43.tpl +0 -55
  452. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query44.tpl +0 -72
  453. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query45.tpl +0 -56
  454. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query46.tpl +0 -78
  455. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query47.tpl +0 -89
  456. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query48.tpl +0 -104
  457. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query49.tpl +0 -164
  458. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query5.tpl +0 -165
  459. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query50.tpl +0 -96
  460. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query51.tpl +0 -80
  461. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query52.tpl +0 -59
  462. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query53.tpl +0 -64
  463. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query54.tpl +0 -95
  464. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query55.tpl +0 -52
  465. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query56.tpl +0 -108
  466. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query57.tpl +0 -87
  467. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query58.tpl +0 -101
  468. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query59.tpl +0 -79
  469. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query6.tpl +0 -62
  470. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query60.tpl +0 -115
  471. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query61.tpl +0 -83
  472. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query62.tpl +0 -71
  473. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query63.tpl +0 -64
  474. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query64.tpl +0 -157
  475. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query65.tpl +0 -62
  476. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query66.tpl +0 -261
  477. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query67.tpl +0 -81
  478. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query68.tpl +0 -82
  479. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query69.tpl +0 -85
  480. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query7.tpl +0 -60
  481. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query70.tpl +0 -73
  482. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query71.tpl +0 -74
  483. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query72.tpl +0 -67
  484. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query73.tpl +0 -69
  485. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query74.tpl +0 -99
  486. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query75.tpl +0 -107
  487. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query76.tpl +0 -64
  488. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query77.tpl +0 -145
  489. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query78.tpl +0 -94
  490. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query79.tpl +0 -60
  491. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query8.tpl +0 -144
  492. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query80.tpl +0 -131
  493. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query81.tpl +0 -68
  494. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query82.tpl +0 -56
  495. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query83.tpl +0 -104
  496. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query84.tpl +0 -58
  497. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query85.tpl +0 -121
  498. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query86.tpl +0 -60
  499. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query87.tpl +0 -56
  500. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query88.tpl +0 -128
  501. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query89.tpl +0 -75
  502. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query9.tpl +0 -88
  503. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query90.tpl +0 -58
  504. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query91.tpl +0 -68
  505. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query92.tpl +0 -68
  506. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query93.tpl +0 -53
  507. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query94.tpl +0 -67
  508. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query95.tpl +0 -71
  509. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query96.tpl +0 -52
  510. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query97.tpl +0 -62
  511. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query98.tpl +0 -70
  512. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/query99.tpl +0 -69
  513. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/sqlserver.tpl +0 -37
  514. benchbox/_binaries/tpc-ds/linux-x86_64/query_templates/templates.lst +0 -99
  515. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/README +0 -4
  516. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/ansi.tpl +0 -38
  517. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/db2.tpl +0 -38
  518. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/netezza.tpl +0 -38
  519. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/oracle.tpl +0 -38
  520. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query1.tpl +0 -62
  521. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query10.tpl +0 -98
  522. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query11.tpl +0 -119
  523. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query12.tpl +0 -72
  524. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query13.tpl +0 -89
  525. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query14.tpl +0 -247
  526. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query15.tpl +0 -56
  527. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query16.tpl +0 -76
  528. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query17.tpl +0 -80
  529. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query18.tpl +0 -73
  530. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query19.tpl +0 -64
  531. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query2.tpl +0 -94
  532. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query20.tpl +0 -67
  533. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query21.tpl +0 -65
  534. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query22.tpl +0 -54
  535. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query23.tpl +0 -144
  536. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query24.tpl +0 -147
  537. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query25.tpl +0 -84
  538. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query26.tpl +0 -61
  539. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query27.tpl +0 -68
  540. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query28.tpl +0 -90
  541. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query29.tpl +0 -85
  542. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query3.tpl +0 -58
  543. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query30.tpl +0 -66
  544. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query31.tpl +0 -88
  545. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query32.tpl +0 -65
  546. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query33.tpl +0 -113
  547. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query34.tpl +0 -77
  548. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query35.tpl +0 -98
  549. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query36.tpl +0 -74
  550. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query37.tpl +0 -57
  551. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query38.tpl +0 -58
  552. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query39.tpl +0 -93
  553. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query4.tpl +0 -154
  554. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query40.tpl +0 -63
  555. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query41.tpl +0 -90
  556. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query42.tpl +0 -64
  557. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query43.tpl +0 -55
  558. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query44.tpl +0 -72
  559. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query45.tpl +0 -56
  560. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query46.tpl +0 -78
  561. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query47.tpl +0 -89
  562. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query48.tpl +0 -104
  563. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query49.tpl +0 -164
  564. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query5.tpl +0 -165
  565. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query50.tpl +0 -96
  566. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query51.tpl +0 -80
  567. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query52.tpl +0 -59
  568. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query53.tpl +0 -64
  569. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query54.tpl +0 -95
  570. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query55.tpl +0 -52
  571. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query56.tpl +0 -108
  572. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query57.tpl +0 -87
  573. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query58.tpl +0 -101
  574. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query59.tpl +0 -79
  575. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query6.tpl +0 -62
  576. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query60.tpl +0 -115
  577. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query61.tpl +0 -83
  578. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query62.tpl +0 -71
  579. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query63.tpl +0 -64
  580. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query64.tpl +0 -157
  581. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query65.tpl +0 -62
  582. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query66.tpl +0 -261
  583. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query67.tpl +0 -81
  584. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query68.tpl +0 -82
  585. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query69.tpl +0 -85
  586. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query7.tpl +0 -60
  587. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query70.tpl +0 -73
  588. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query71.tpl +0 -74
  589. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query72.tpl +0 -67
  590. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query73.tpl +0 -69
  591. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query74.tpl +0 -99
  592. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query75.tpl +0 -107
  593. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query76.tpl +0 -64
  594. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query77.tpl +0 -145
  595. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query78.tpl +0 -94
  596. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query79.tpl +0 -60
  597. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query8.tpl +0 -144
  598. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query80.tpl +0 -131
  599. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query81.tpl +0 -68
  600. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query82.tpl +0 -56
  601. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query83.tpl +0 -104
  602. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query84.tpl +0 -58
  603. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query85.tpl +0 -121
  604. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query86.tpl +0 -60
  605. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query87.tpl +0 -56
  606. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query88.tpl +0 -128
  607. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query89.tpl +0 -75
  608. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query9.tpl +0 -88
  609. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query90.tpl +0 -58
  610. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query91.tpl +0 -68
  611. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query92.tpl +0 -68
  612. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query93.tpl +0 -53
  613. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query94.tpl +0 -67
  614. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query95.tpl +0 -71
  615. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query96.tpl +0 -52
  616. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query97.tpl +0 -62
  617. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query98.tpl +0 -70
  618. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/query99.tpl +0 -69
  619. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/sqlserver.tpl +0 -37
  620. benchbox/_binaries/tpc-ds/windows-x86_64/query_templates/templates.lst +0 -99
  621. benchbox-0.1.0.dist-info/RECORD +0 -1192
  622. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/README +0 -0
  623. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/ansi.tpl +0 -0
  624. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/db2.tpl +0 -0
  625. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/netezza.tpl +0 -0
  626. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/oracle.tpl +0 -0
  627. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query1.tpl +0 -0
  628. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query10.tpl +0 -0
  629. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query11.tpl +0 -0
  630. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query12.tpl +0 -0
  631. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query13.tpl +0 -0
  632. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query14.tpl +0 -0
  633. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query15.tpl +0 -0
  634. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query16.tpl +0 -0
  635. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query17.tpl +0 -0
  636. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query18.tpl +0 -0
  637. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query19.tpl +0 -0
  638. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query2.tpl +0 -0
  639. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query20.tpl +0 -0
  640. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query21.tpl +0 -0
  641. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query22.tpl +0 -0
  642. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query23.tpl +0 -0
  643. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query24.tpl +0 -0
  644. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query25.tpl +0 -0
  645. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query26.tpl +0 -0
  646. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query27.tpl +0 -0
  647. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query28.tpl +0 -0
  648. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query29.tpl +0 -0
  649. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query3.tpl +0 -0
  650. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query30.tpl +0 -0
  651. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query31.tpl +0 -0
  652. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query32.tpl +0 -0
  653. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query33.tpl +0 -0
  654. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query34.tpl +0 -0
  655. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query35.tpl +0 -0
  656. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query36.tpl +0 -0
  657. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query37.tpl +0 -0
  658. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query38.tpl +0 -0
  659. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query39.tpl +0 -0
  660. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query4.tpl +0 -0
  661. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query40.tpl +0 -0
  662. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query41.tpl +0 -0
  663. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query42.tpl +0 -0
  664. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query43.tpl +0 -0
  665. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query44.tpl +0 -0
  666. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query45.tpl +0 -0
  667. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query46.tpl +0 -0
  668. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query47.tpl +0 -0
  669. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query48.tpl +0 -0
  670. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query49.tpl +0 -0
  671. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query5.tpl +0 -0
  672. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query50.tpl +0 -0
  673. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query51.tpl +0 -0
  674. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query52.tpl +0 -0
  675. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query53.tpl +0 -0
  676. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query54.tpl +0 -0
  677. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query55.tpl +0 -0
  678. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query56.tpl +0 -0
  679. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query57.tpl +0 -0
  680. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query58.tpl +0 -0
  681. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query59.tpl +0 -0
  682. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query6.tpl +0 -0
  683. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query60.tpl +0 -0
  684. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query61.tpl +0 -0
  685. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query62.tpl +0 -0
  686. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query63.tpl +0 -0
  687. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query64.tpl +0 -0
  688. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query65.tpl +0 -0
  689. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query66.tpl +0 -0
  690. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query67.tpl +0 -0
  691. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query68.tpl +0 -0
  692. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query69.tpl +0 -0
  693. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query7.tpl +0 -0
  694. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query70.tpl +0 -0
  695. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query71.tpl +0 -0
  696. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query73.tpl +0 -0
  697. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query74.tpl +0 -0
  698. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query75.tpl +0 -0
  699. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query76.tpl +0 -0
  700. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query77.tpl +0 -0
  701. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query78.tpl +0 -0
  702. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query79.tpl +0 -0
  703. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query8.tpl +0 -0
  704. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query80.tpl +0 -0
  705. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query81.tpl +0 -0
  706. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query82.tpl +0 -0
  707. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query83.tpl +0 -0
  708. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query84.tpl +0 -0
  709. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query85.tpl +0 -0
  710. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query86.tpl +0 -0
  711. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query87.tpl +0 -0
  712. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query88.tpl +0 -0
  713. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query89.tpl +0 -0
  714. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query9.tpl +0 -0
  715. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query90.tpl +0 -0
  716. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query91.tpl +0 -0
  717. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query92.tpl +0 -0
  718. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query93.tpl +0 -0
  719. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query94.tpl +0 -0
  720. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query95.tpl +0 -0
  721. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query96.tpl +0 -0
  722. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query97.tpl +0 -0
  723. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query98.tpl +0 -0
  724. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/query99.tpl +0 -0
  725. /benchbox/_binaries/tpc-ds/{darwin-arm64 → templates}/query_templates/templates.lst +0 -0
  726. {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/entry_points.txt +0 -0
  727. {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/licenses/LICENSE +0 -0
  728. {benchbox-0.1.0.dist-info → benchbox-0.1.1.dist-info}/top_level.txt +0 -0
@@ -230,13 +230,13 @@ def _get_dataframe_adapter(platform: str, **config: Any) -> Any:
230
230
  )
231
231
 
232
232
  adapter_mapping = {
233
- "polars": (PolarsDataFrameAdapter, POLARS_AVAILABLE, "uv add polars"),
234
- "pandas": (PandasDataFrameAdapter, PANDAS_AVAILABLE, "uv add pandas"),
235
- "modin": (ModinDataFrameAdapter, MODIN_AVAILABLE, "uv add modin[ray]"),
233
+ "polars": (PolarsDataFrameAdapter, POLARS_AVAILABLE, "pip install polars"),
234
+ "pandas": (PandasDataFrameAdapter, PANDAS_AVAILABLE, "pip install pandas"),
235
+ "modin": (ModinDataFrameAdapter, MODIN_AVAILABLE, "pip install modin[ray]"),
236
236
  "cudf": (CuDFDataFrameAdapter, CUDF_AVAILABLE, "pip install cudf-cu12"),
237
- "dask": (DaskDataFrameAdapter, DASK_AVAILABLE, "uv add dask[distributed]"),
238
- "pyspark": (PySparkDataFrameAdapter, PYSPARK_AVAILABLE, "uv add benchbox --extra dataframe-pyspark"),
239
- "datafusion": (DataFusionDataFrameAdapter, DATAFUSION_DF_AVAILABLE, "uv add datafusion"),
237
+ "dask": (DaskDataFrameAdapter, DASK_AVAILABLE, "pip install dask[distributed]"),
238
+ "pyspark": (PySparkDataFrameAdapter, PYSPARK_AVAILABLE, "pip install pyspark"),
239
+ "datafusion": (DataFusionDataFrameAdapter, DATAFUSION_DF_AVAILABLE, "pip install datafusion"),
240
240
  }
241
241
 
242
242
  if platform not in adapter_mapping:
@@ -26,6 +26,7 @@ if TYPE_CHECKING:
26
26
  )
27
27
 
28
28
  from ..utils.dependencies import check_platform_dependencies, get_dependency_error_message
29
+ from ..utils.file_format import get_delimiter_for_file
29
30
  from .base import PlatformAdapter
30
31
 
31
32
  # Azure Synapse uses T-SQL dialect (compatible with SQL Server)
@@ -541,11 +542,7 @@ class AzureSynapseAdapter(PlatformAdapter):
541
542
 
542
543
  # Determine file format
543
544
  first_file = valid_files[0]
544
- file_str = str(first_file.name)
545
- if ".tbl" in file_str or ".dat" in file_str:
546
- field_terminator = "|"
547
- else:
548
- field_terminator = ","
545
+ field_terminator = get_delimiter_for_file(first_file)
549
546
 
550
547
  # Use COPY INTO for loading
551
548
  qualified_table = f"[{self.schema}].[{table_name}]"
@@ -609,8 +606,7 @@ class AzureSynapseAdapter(PlatformAdapter):
609
606
  qualified_table = f"[{self.schema}].[{table_name}]"
610
607
 
611
608
  for file_path in valid_files:
612
- file_str = str(file_path.name)
613
- delimiter = "|" if ".tbl" in file_str or ".dat" in file_str else ","
609
+ delimiter = get_delimiter_for_file(file_path)
614
610
 
615
611
  with open(file_path) as f:
616
612
  batch_size = 1000
@@ -37,6 +37,7 @@ from benchbox.core.constants import (
37
37
  )
38
38
  from benchbox.core.errors import PlanCaptureError, SerializationError
39
39
  from benchbox.core.operations import OperationExecutor
40
+ from benchbox.core.results.builder import normalize_benchmark_id
40
41
  from benchbox.platforms.base.models import (
41
42
  ConnectionConfig,
42
43
  DataGenerationPhase,
@@ -1340,29 +1341,27 @@ class PlatformAdapter(VerbosityMixin, ABC):
1340
1341
  Returns:
1341
1342
  Benchmark type string (lowercase) or None if unknown
1342
1343
  """
1343
- # Try to get explicit _name attribute
1344
+ # Try to get explicit _name attribute first
1344
1345
  if hasattr(benchmark, "_name"):
1345
- name = benchmark._name.lower()
1346
- # Normalize common patterns - extract just the benchmark identifier
1347
- if "tpc-h" in name or "tpch" in name:
1348
- return "tpch"
1349
- elif "tpc-ds" in name or "tpcds" in name:
1350
- return "tpcds"
1351
- # If it's a simple name without spaces, use it directly
1352
- if " " not in name:
1353
- return name
1346
+ benchmark_id = normalize_benchmark_id(benchmark._name)
1347
+ # normalize_benchmark_id returns the lowercase name for unknown benchmarks
1348
+ # Check if it's a known benchmark or use as-is if simple
1349
+ if benchmark_id in ("tpch", "tpcds", "ssb", "clickbench"):
1350
+ return benchmark_id
1351
+ # If the original name had no spaces, use it directly
1352
+ if " " not in benchmark._name:
1353
+ return benchmark._name.lower()
1354
1354
 
1355
1355
  # Fall back to class name analysis
1356
1356
  class_name = type(benchmark).__name__.lower()
1357
- if "tpch" in class_name:
1358
- return "tpch"
1359
- elif "tpcds" in class_name or "tpc_ds" in class_name:
1360
- return "tpcds"
1361
- elif "clickbench" in class_name:
1362
- return "clickbench"
1363
- elif "ssb" in class_name or "star_schema" in class_name:
1364
- return "ssb"
1365
- elif "amplab" in class_name:
1357
+
1358
+ # Use normalize_benchmark_id for TPC benchmarks
1359
+ normalized = normalize_benchmark_id(class_name)
1360
+ if normalized in ("tpch", "tpcds", "ssb", "clickbench"):
1361
+ return normalized
1362
+
1363
+ # Handle other benchmark types by class name pattern
1364
+ if "amplab" in class_name:
1366
1365
  return "amplab"
1367
1366
  elif "h2odb" in class_name or "h2o" in class_name:
1368
1367
  return "h2odb"
@@ -1372,14 +1371,14 @@ class PlatformAdapter(VerbosityMixin, ABC):
1372
1371
  return "joinorder"
1373
1372
  elif "tpcdi" in class_name or "tpc_di" in class_name:
1374
1373
  return "tpcdi"
1374
+ elif "star_schema" in class_name:
1375
+ return "ssb"
1375
1376
 
1376
1377
  # Check display_name if available
1377
1378
  if hasattr(benchmark, "display_name"):
1378
- display_name = str(benchmark.display_name).lower()
1379
- if "tpch" in display_name:
1380
- return "tpch"
1381
- elif "tpcds" in display_name or "tpc-ds" in display_name:
1382
- return "tpcds"
1379
+ benchmark_id = normalize_benchmark_id(str(benchmark.display_name))
1380
+ if benchmark_id in ("tpch", "tpcds", "ssb", "clickbench"):
1381
+ return benchmark_id
1383
1382
 
1384
1383
  # Unknown benchmark type - validation will be skipped
1385
1384
  return None
@@ -2756,6 +2755,12 @@ class PlatformAdapter(VerbosityMixin, ABC):
2756
2755
 
2757
2756
  execution_type = run_config.get("test_execution_type", "standard")
2758
2757
 
2758
+ # Extract cached power test metrics
2759
+ power_at_size_value = 0.0
2760
+ if getattr(self, "_last_power_test_result", None) is not None:
2761
+ power_at_size_value = getattr(self._last_power_test_result, "power_at_size", 0.0) or 0.0
2762
+ self._last_power_test_result = None
2763
+
2759
2764
  power_test_phase = None
2760
2765
  if execution_type not in {"throughput"}:
2761
2766
  power_test_phase = PowerTestPhase(
@@ -2764,7 +2769,7 @@ class PlatformAdapter(VerbosityMixin, ABC):
2764
2769
  duration_ms=int(total_exec_time * 1000),
2765
2770
  query_executions=query_executions,
2766
2771
  geometric_mean_time=avg_time,
2767
- power_at_size=0.0, # Can be calculated later if needed
2772
+ power_at_size=power_at_size_value,
2768
2773
  )
2769
2774
 
2770
2775
  throughput_test_phase = None
@@ -2808,6 +2813,22 @@ class PlatformAdapter(VerbosityMixin, ABC):
2808
2813
  "connection_config_hash": self._hash_connection_config(run_config.get("connection", {})),
2809
2814
  "python_version": platform.python_version(),
2810
2815
  "benchbox_version": "0.1.0",
2816
+ "mode": "sql",
2817
+ "benchmark_id": run_config.get("benchmark") or run_config.get("benchmark_name"),
2818
+ "run_config": {
2819
+ "compression": {
2820
+ "type": run_config.get("compression_type"),
2821
+ "level": run_config.get("compression_level"),
2822
+ }
2823
+ if run_config.get("compression_type")
2824
+ else None,
2825
+ "seed": run_config.get("seed"),
2826
+ "phases": run_config.get("phases"),
2827
+ "query_subset": run_config.get("query_subset"),
2828
+ "platform_options": run_config.get("platform_options"),
2829
+ "tuning_mode": run_config.get("tuning_mode"),
2830
+ "tuning_config": run_config.get("tuning_config"),
2831
+ },
2811
2832
  }
2812
2833
 
2813
2834
  # Calculate additional metrics needed
@@ -2822,6 +2843,17 @@ class PlatformAdapter(VerbosityMixin, ABC):
2822
2843
  total_rows_loaded=total_rows_loaded,
2823
2844
  )
2824
2845
 
2846
+ # Extract TPC metrics from phases for result propagation
2847
+ power_at_size = power_test_phase.power_at_size if power_test_phase else None
2848
+ throughput_at_size = throughput_test_phase.throughput_at_size if throughput_test_phase else None
2849
+
2850
+ # Calculate composite metric if both power and throughput are available
2851
+ import math
2852
+
2853
+ qph_at_size = None
2854
+ if power_at_size and power_at_size > 0 and throughput_at_size and throughput_at_size > 0:
2855
+ qph_at_size = math.sqrt(power_at_size * throughput_at_size)
2856
+
2825
2857
  return benchmark.create_enhanced_benchmark_result(
2826
2858
  platform=self.platform_name,
2827
2859
  query_results=query_results,
@@ -2848,6 +2880,11 @@ class PlatformAdapter(VerbosityMixin, ABC):
2848
2880
  anonymous_machine_id=anonymous_machine_id,
2849
2881
  validation_status=self._determine_overall_validation_status(validation_phase),
2850
2882
  validation_details=validation_phase.validation_details,
2883
+ # TPC metrics
2884
+ power_at_size=power_at_size,
2885
+ throughput_at_size=throughput_at_size,
2886
+ qph_at_size=qph_at_size,
2887
+ test_execution_type=execution_type,
2851
2888
  )
2852
2889
 
2853
2890
  finally:
@@ -3384,8 +3421,15 @@ class PlatformAdapter(VerbosityMixin, ABC):
3384
3421
  connection = kwargs.pop("connection", None)
3385
3422
  if connection is None:
3386
3423
  raise ValueError("TPC benchmarks require a connection object for throughput tests")
3424
+
3387
3425
  # TPC-DS uses connection_factory pattern
3388
- connection_factory = kwargs.pop("connection_factory", lambda: connection)
3426
+ # Create thread-safe cursor for concurrent stream execution
3427
+ # See: https://duckdb.org/docs/stable/guides/python/multiple_threads
3428
+ def _default_connection_factory():
3429
+ stream_cursor = connection.cursor()
3430
+ return stream_cursor
3431
+
3432
+ connection_factory = kwargs.pop("connection_factory", _default_connection_factory)
3389
3433
 
3390
3434
  # Inject platform's target dialect if not already specified
3391
3435
  if "dialect" not in kwargs:
@@ -3609,7 +3653,7 @@ class PlatformAdapter(VerbosityMixin, ABC):
3609
3653
  try:
3610
3654
  # Extract configuration
3611
3655
  scale_factor = run_config.get("scale_factor", 1.0)
3612
- seed = run_config.get("seed", 1)
3656
+ seed = run_config.get("seed")
3613
3657
  validation_mode = run_config.get("validation_mode") # Universal validation mode
3614
3658
  stream_id = run_config.get("stream_id", 0)
3615
3659
  query_subset = run_config.get("query_subset")
@@ -3648,7 +3692,22 @@ class PlatformAdapter(VerbosityMixin, ABC):
3648
3692
  validation_mode=validation_mode,
3649
3693
  query_subset=query_subset,
3650
3694
  )
3651
- power_test.run()
3695
+ power_test_result = power_test.run()
3696
+ for query_result in power_test_result.query_results:
3697
+ platform_result = {
3698
+ "query_id": query_result["query_id"],
3699
+ "execution_time": query_result["execution_time"],
3700
+ "status": "SUCCESS" if query_result["success"] else "FAILED",
3701
+ "rows_returned": query_result.get("result_count", 0),
3702
+ "test_type": "power",
3703
+ "stream_id": query_result.get("stream_id", current_stream_id),
3704
+ "position": query_result.get("position", 0),
3705
+ "iteration": 0,
3706
+ "run_type": "warmup",
3707
+ }
3708
+ if not query_result["success"]:
3709
+ platform_result["error"] = query_result.get("error", "Unknown error")
3710
+ all_results.append(platform_result)
3652
3711
 
3653
3712
  # Measurement runs
3654
3713
  for i in range(iterations):
@@ -3670,6 +3729,9 @@ class PlatformAdapter(VerbosityMixin, ABC):
3670
3729
  # Execute the power test
3671
3730
  power_test_result = power_test.run()
3672
3731
 
3732
+ # Cache the power test result for metric extraction
3733
+ self._last_power_test_result = power_test_result
3734
+
3673
3735
  # Display results
3674
3736
  if power_test_result.success:
3675
3737
  success_rate = power_test_result.queries_successful / max(power_test_result.queries_executed, 1)
@@ -3698,6 +3760,7 @@ class PlatformAdapter(VerbosityMixin, ABC):
3698
3760
  "stream_id": query_result.get("stream_id", current_stream_id),
3699
3761
  "position": query_result.get("position", 0),
3700
3762
  "iteration": i + 1,
3763
+ "run_type": "measurement",
3701
3764
  }
3702
3765
  if not query_result["success"]:
3703
3766
  platform_result["error"] = query_result.get("error", "Unknown error")
@@ -3736,9 +3799,8 @@ class PlatformAdapter(VerbosityMixin, ABC):
3736
3799
  - scale_factor: Benchmark scale factor
3737
3800
 
3738
3801
  Returns:
3739
- List of query results from all measurement iterations, with each result
3740
- tagged with iteration number and run_type='measurement'. Warmup results
3741
- are discarded.
3802
+ List of query results from all warmup and measurement iterations, with each result
3803
+ tagged with iteration number and run_type ("warmup" or "measurement").
3742
3804
  """
3743
3805
  from rich.console import Console
3744
3806
 
@@ -3757,11 +3819,15 @@ class PlatformAdapter(VerbosityMixin, ABC):
3757
3819
 
3758
3820
  all_measurement_results = []
3759
3821
 
3760
- # Warm-up runs (results discarded)
3822
+ # Warm-up runs (results captured)
3761
3823
  for i in range(warm_up_iterations):
3762
3824
  console.print(f"[cyan]--- Warm-up Run {i + 1}/{warm_up_iterations} ---[/cyan]")
3763
- # Execute all queries once, discard results
3764
- _ = self._execute_all_queries(benchmark, connection, run_config)
3825
+ warmup_results = self._execute_all_queries(benchmark, connection, run_config)
3826
+ for result in warmup_results:
3827
+ result["iteration"] = 0
3828
+ result["stream_id"] = 0
3829
+ result["run_type"] = "warmup"
3830
+ all_measurement_results.append(result)
3765
3831
 
3766
3832
  # Measurement runs (results collected)
3767
3833
  for i in range(iterations):
@@ -3771,6 +3837,7 @@ class PlatformAdapter(VerbosityMixin, ABC):
3771
3837
  # Tag each result with iteration number and run type
3772
3838
  for result in iteration_results:
3773
3839
  result["iteration"] = i + 1
3840
+ result["stream_id"] = i + 1
3774
3841
  result["run_type"] = "measurement"
3775
3842
 
3776
3843
  all_measurement_results.extend(iteration_results)
@@ -3821,7 +3888,10 @@ class PlatformAdapter(VerbosityMixin, ABC):
3821
3888
 
3822
3889
  # Create connection factory that wraps the platform adapter connection
3823
3890
  def connection_factory():
3824
- conn_wrapper = PlatformAdapterConnection(connection, self)
3891
+ # Create thread-safe cursor for concurrent stream execution
3892
+ # See: https://duckdb.org/docs/stable/guides/python/multiple_threads
3893
+ stream_cursor = connection.cursor()
3894
+ conn_wrapper = PlatformAdapterConnection(stream_cursor, self)
3825
3895
  # Configure benchmark context for query validation
3826
3896
  conn_wrapper.benchmark_type = "tpcds"
3827
3897
  conn_wrapper.scale_factor = scale_factor
@@ -3844,7 +3914,22 @@ class PlatformAdapter(VerbosityMixin, ABC):
3844
3914
  dialect=self.get_target_dialect(),
3845
3915
  query_subset=query_subset,
3846
3916
  )
3847
- power_test.run() # Results discarded for warmup
3917
+ power_test_result = power_test.run()
3918
+ for query_result in power_test_result.query_results:
3919
+ platform_result = {
3920
+ "query_id": query_result["query_id"],
3921
+ "execution_time": query_result["execution_time"],
3922
+ "status": "SUCCESS" if query_result["success"] else "FAILED",
3923
+ "rows_returned": query_result.get("result_count", 0),
3924
+ "test_type": "power",
3925
+ "stream_id": query_result.get("stream_id", current_stream_id),
3926
+ "position": query_result.get("position", 0),
3927
+ "iteration": 0,
3928
+ "run_type": "warmup",
3929
+ }
3930
+ if not query_result["success"]:
3931
+ platform_result["error"] = query_result.get("error", "Unknown error")
3932
+ all_results.append(platform_result)
3848
3933
 
3849
3934
  # Measurement runs
3850
3935
  for i in range(iterations):
@@ -3865,6 +3950,9 @@ class PlatformAdapter(VerbosityMixin, ABC):
3865
3950
  # Execute the power test
3866
3951
  power_test_result = power_test.run()
3867
3952
 
3953
+ # Cache the power test result for metric extraction
3954
+ self._last_power_test_result = power_test_result
3955
+
3868
3956
  # Display results
3869
3957
  if self.very_verbose:
3870
3958
  with contextlib.suppress(Exception):
@@ -3903,6 +3991,7 @@ class PlatformAdapter(VerbosityMixin, ABC):
3903
3991
  "stream_id": query_result.get("stream_id", current_stream_id),
3904
3992
  "position": query_result.get("position", 0),
3905
3993
  "iteration": i + 1, # Add iteration tracking
3994
+ "run_type": "measurement",
3906
3995
  }
3907
3996
  if not query_result["success"]:
3908
3997
  platform_result["error"] = query_result.get("error", "Unknown error")
@@ -3949,7 +4038,10 @@ class PlatformAdapter(VerbosityMixin, ABC):
3949
4038
 
3950
4039
  # Create connection factory that wraps the platform adapter connection
3951
4040
  def connection_factory():
3952
- conn_wrapper = PlatformAdapterConnection(connection, self)
4041
+ # Create thread-safe cursor for concurrent stream execution
4042
+ # See: https://duckdb.org/docs/stable/guides/python/multiple_threads
4043
+ stream_cursor = connection.cursor()
4044
+ conn_wrapper = PlatformAdapterConnection(stream_cursor, self)
3953
4045
  # Configure benchmark context for query validation
3954
4046
  conn_wrapper.benchmark_type = "tpcds"
3955
4047
  conn_wrapper.scale_factor = scale_factor
@@ -4074,7 +4166,10 @@ class PlatformAdapter(VerbosityMixin, ABC):
4074
4166
  )
4075
4167
 
4076
4168
  def connection_factory():
4077
- conn_wrapper = PlatformAdapterConnection(connection, self)
4169
+ # Create thread-safe cursor for concurrent stream execution
4170
+ # See: https://duckdb.org/docs/stable/guides/python/multiple_threads
4171
+ stream_cursor = connection.cursor()
4172
+ conn_wrapper = PlatformAdapterConnection(stream_cursor, self)
4078
4173
  # Configure benchmark context for query validation
4079
4174
  conn_wrapper.benchmark_type = "tpch"
4080
4175
  conn_wrapper.scale_factor = scale_factor
@@ -4086,7 +4181,6 @@ class PlatformAdapter(VerbosityMixin, ABC):
4086
4181
  scale_factor=scale_factor,
4087
4182
  num_streams=num_streams,
4088
4183
  verbose=verbose,
4089
- dialect=self.get_target_dialect(),
4090
4184
  )
4091
4185
 
4092
4186
  seed = run_config.get("seed")
@@ -4167,7 +4261,10 @@ class PlatformAdapter(VerbosityMixin, ABC):
4167
4261
 
4168
4262
  # Create connection factory that wraps the platform adapter connection
4169
4263
  def connection_factory():
4170
- conn_wrapper = PlatformAdapterConnection(connection, self)
4264
+ # Create thread-safe cursor for concurrent stream execution
4265
+ # See: https://duckdb.org/docs/stable/guides/python/multiple_threads
4266
+ stream_cursor = connection.cursor()
4267
+ conn_wrapper = PlatformAdapterConnection(stream_cursor, self)
4171
4268
  # Configure benchmark context for query validation
4172
4269
  conn_wrapper.benchmark_type = "tpcds"
4173
4270
  conn_wrapper.scale_factor = scale_factor
@@ -4256,8 +4353,12 @@ class PlatformAdapter(VerbosityMixin, ABC):
4256
4353
  console.print(f"[green]Running TPC-H Maintenance Test (Scale Factor: {scale_factor})[/green]")
4257
4354
 
4258
4355
  def connection_factory():
4259
- conn_wrapper = PlatformAdapterConnection(connection, self)
4260
- # Configure benchmark context for query validation
4356
+ # Create thread-safe cursor for maintenance operations
4357
+ # See: https://duckdb.org/docs/stable/guides/python/multiple_threads
4358
+ stream_cursor = connection.cursor()
4359
+ # Use maintenance_mode=True to execute all queries directly on the connection
4360
+ # (RF1/RF2 operations need real data, not validation-wrapped results)
4361
+ conn_wrapper = PlatformAdapterConnection(stream_cursor, self, maintenance_mode=True)
4261
4362
  conn_wrapper.benchmark_type = "tpch"
4262
4363
  conn_wrapper.scale_factor = scale_factor
4263
4364
  return conn_wrapper
@@ -4267,7 +4368,6 @@ class PlatformAdapter(VerbosityMixin, ABC):
4267
4368
  scale_factor=scale_factor,
4268
4369
  output_dir=Path(output_dir) if isinstance(output_dir, str) else output_dir,
4269
4370
  verbose=verbose,
4270
- dialect=self.get_target_dialect(),
4271
4371
  )
4272
4372
 
4273
4373
  result = maintenance_test.run_maintenance_test(
@@ -4337,19 +4437,30 @@ class PlatformAdapter(VerbosityMixin, ABC):
4337
4437
 
4338
4438
 
4339
4439
  class PlatformAdapterConnection:
4340
- """Adapter to wrap platform adapter connections for TPC test classes."""
4440
+ """Adapter to wrap platform adapter connections for TPC test classes.
4441
+
4442
+ Supports two modes:
4443
+ - Validation mode (default): Routes queries through platform adapter for TPC validation
4444
+ - Maintenance mode: Routes all queries directly to underlying connection for real data
4445
+
4446
+ Maintenance operations (RF1/RF2) require real query results and parameterized queries,
4447
+ so they use maintenance mode. Power/throughput tests use validation mode for result checking.
4448
+ """
4341
4449
 
4342
- def __init__(self, connection: Any, platform_adapter: PlatformAdapter):
4450
+ def __init__(self, connection: Any, platform_adapter: PlatformAdapter, maintenance_mode: bool = False):
4343
4451
  """Initialize the connection adapter.
4344
4452
 
4345
4453
  Args:
4346
4454
  connection: Original platform connection
4347
4455
  platform_adapter: Platform adapter instance for query execution
4456
+ maintenance_mode: If True, all queries bypass validation and execute directly
4457
+ on the underlying connection (needed for RF1/RF2 operations)
4348
4458
  """
4349
4459
  self.connection = connection
4350
4460
  self.platform_adapter = platform_adapter
4351
4461
  self.connection_string = getattr(connection, "connection_string", "platform_adapter_connection")
4352
4462
  self.dialect = getattr(platform_adapter, "get_target_dialect", lambda: "standard")()
4463
+ self._maintenance_mode = maintenance_mode
4353
4464
 
4354
4465
  # Benchmark context for query validation (set by TPC test runners)
4355
4466
  self.benchmark_type: str | None = None
@@ -4370,15 +4481,35 @@ class PlatformAdapterConnection:
4370
4481
  self._current_query_id = query_id
4371
4482
  self._current_stream_id = stream_id
4372
4483
 
4373
- def execute(self, query: str):
4484
+ def execute(self, query: str, parameters: tuple | list | None = None):
4374
4485
  """Execute a query using the platform adapter with validation support.
4375
4486
 
4487
+ In maintenance mode, all queries execute directly on the underlying connection
4488
+ to get real results (needed for RF1/RF2 operations that use INSERT/DELETE/SELECT).
4489
+
4490
+ In validation mode (default), non-parameterized queries use the platform adapter
4491
+ for TPC result validation support.
4492
+
4376
4493
  Args:
4377
4494
  query: SQL query to execute
4495
+ parameters: Optional parameters for parameterized queries
4378
4496
 
4379
4497
  Returns:
4380
- Mock cursor with results and validation metadata
4498
+ Cursor with results - either raw DB cursor (maintenance) or PlatformAdapterCursor
4381
4499
  """
4500
+ # Maintenance mode: all queries execute directly on underlying connection
4501
+ # This is needed for RF1/RF2 operations that require real data
4502
+ if self._maintenance_mode:
4503
+ if parameters:
4504
+ return self.connection.execute(query, parameters)
4505
+ else:
4506
+ return self.connection.execute(query)
4507
+
4508
+ # Validation mode: parameterized queries still go through directly
4509
+ if parameters:
4510
+ return self.connection.execute(query, parameters)
4511
+
4512
+ # Non-parameterized queries use the platform adapter for validation support
4382
4513
  # Debug: Write query to file to see what's being executed
4383
4514
  try:
4384
4515
  with open("/tmp/tpc_debug_queries.log", "a") as f:
@@ -4399,10 +4530,19 @@ class PlatformAdapterConnection:
4399
4530
  return PlatformAdapterCursor(result)
4400
4531
 
4401
4532
  def commit(self):
4402
- """Mock commit method."""
4533
+ """Commit transaction on underlying connection."""
4534
+ if hasattr(self.connection, "commit"):
4535
+ self.connection.commit()
4536
+
4537
+ def rollback(self):
4538
+ """Rollback transaction on underlying connection."""
4539
+ if hasattr(self.connection, "rollback"):
4540
+ self.connection.rollback()
4403
4541
 
4404
4542
  def close(self):
4405
- """Mock close method."""
4543
+ """Close underlying connection."""
4544
+ if hasattr(self.connection, "close"):
4545
+ self.connection.close()
4406
4546
 
4407
4547
 
4408
4548
  class PlatformAdapterCursor:
@@ -61,6 +61,7 @@ class CloudPlatform(Enum):
61
61
  SYNAPSE = "synapse"
62
62
  GLUE = "glue"
63
63
  FABRIC = "fabric"
64
+ QUANTON = "quanton"
64
65
  LOCAL = "local"
65
66
 
66
67
 
@@ -478,6 +479,13 @@ class SparkConfigOptimizer:
478
479
  # Synapse-specific optimizations
479
480
  config.extra["spark.sql.optimizer.dynamicPartitionPruning.enabled"] = "true"
480
481
 
482
+ elif platform == CloudPlatform.QUANTON:
483
+ # Onehouse Quanton-specific optimizations
484
+ config.extra["spark.sql.optimizer.dynamicPartitionPruning.enabled"] = "true"
485
+ config.extra["spark.sql.parquet.filterPushdown"] = "true"
486
+ # Quanton uses intelligent lakehouse I/O optimization
487
+ config.extra["spark.sql.adaptive.advisoryPartitionSizeInBytes"] = "67108864" # 64MB
488
+
481
489
  @classmethod
482
490
  def merge_configs(cls, *configs: SparkConfig) -> SparkConfig:
483
491
  """Merge multiple SparkConfigs, later configs override earlier.
@@ -214,6 +214,7 @@ class SparkTableFormat(str, Enum):
214
214
 
215
215
  DELTA = "delta" # Delta Lake (Databricks, EMR, Dataproc with Delta)
216
216
  ICEBERG = "iceberg" # Apache Iceberg
217
+ HUDI = "hudi" # Apache Hudi (Onehouse, AWS EMR, Dataproc)
217
218
  PARQUET = "parquet" # Apache Parquet (native Spark)
218
219
  HIVE = "hive" # Legacy Hive format
219
220
 
@@ -290,6 +291,8 @@ class SparkDDLGeneratorMixin:
290
291
  return self._generate_delta_tuning(table_tuning, platform_opts)
291
292
  elif table_format == SparkTableFormat.ICEBERG:
292
293
  return self._generate_iceberg_tuning(table_tuning, platform_opts)
294
+ elif table_format == SparkTableFormat.HUDI:
295
+ return self._generate_hudi_tuning(table_tuning, platform_opts)
293
296
  elif table_format == SparkTableFormat.PARQUET:
294
297
  return self._generate_parquet_tuning(table_tuning, platform_opts)
295
298
  elif table_format == SparkTableFormat.HIVE:
@@ -480,6 +483,99 @@ class SparkDDLGeneratorMixin:
480
483
  # Default to identity transform
481
484
  return col_name
482
485
 
486
+ def _generate_hudi_tuning(
487
+ self,
488
+ table_tuning: TableTuning | None,
489
+ platform_opts: PlatformOptimizationConfiguration | None = None,
490
+ ) -> TuningClauses:
491
+ """Generate Apache Hudi tuning clauses.
492
+
493
+ Hudi supports:
494
+ - PARTITIONED BY (col1, col2) with hive_style_partitioning
495
+ - TBLPROPERTIES for:
496
+ - hoodie.table.name (table name for metadata)
497
+ - hoodie.datasource.write.recordkey.field (required: record key for dedup)
498
+ - hoodie.datasource.write.precombine.field (ordering field for updates)
499
+ - hoodie.table.type (COPY_ON_WRITE default, MERGE_ON_READ option)
500
+ - hoodie.datasource.write.operation (insert, upsert, bulk_insert)
501
+ - hoodie.datasource.write.hive_style_partitioning (for partition path)
502
+
503
+ Unlike Delta Lake/Iceberg, Hudi requires explicit record key and precombine
504
+ field configuration. These must be provided via platform_opts or detected
505
+ from table schema.
506
+ """
507
+ from benchbox.core.tuning.ddl_generator import TuningClauses
508
+ from benchbox.core.tuning.interface import TuningType
509
+
510
+ clauses = TuningClauses()
511
+
512
+ # Set table format
513
+ clauses.additional_clauses.append("USING HUDI")
514
+
515
+ # Get Hudi-specific configuration from platform_opts
516
+ record_key = None
517
+ precombine_field = None
518
+ table_type = "COPY_ON_WRITE" # Default: better for analytics reads
519
+ write_operation = "upsert" # Default write mode
520
+
521
+ if platform_opts:
522
+ record_key = getattr(platform_opts, "record_key", None)
523
+ precombine_field = getattr(platform_opts, "precombine_field", None)
524
+ table_type = getattr(platform_opts, "hudi_table_type", table_type)
525
+ write_operation = getattr(platform_opts, "hudi_write_operation", write_operation)
526
+
527
+ # Record key is required - use sensible defaults if not provided
528
+ if record_key:
529
+ clauses.table_properties["hoodie.datasource.write.recordkey.field"] = record_key
530
+ # Note: If no record_key is provided, the caller should set it based on schema
531
+
532
+ # Precombine field for ordering during updates
533
+ if precombine_field:
534
+ clauses.table_properties["hoodie.datasource.write.precombine.field"] = precombine_field
535
+
536
+ # Table type: COW for analytics (faster reads), MOR for streaming (faster writes)
537
+ clauses.table_properties["hoodie.table.type"] = table_type
538
+
539
+ # Write operation mode
540
+ clauses.table_properties["hoodie.datasource.write.operation"] = write_operation
541
+
542
+ if not table_tuning:
543
+ return clauses
544
+
545
+ # Handle partitioning
546
+ partition_columns = table_tuning.get_columns_by_type(TuningType.PARTITIONING)
547
+ if partition_columns:
548
+ sorted_cols = sorted(partition_columns, key=lambda c: c.order)
549
+ col_names = [c.name for c in sorted_cols]
550
+ clauses.partition_by = f"PARTITIONED BY ({', '.join(col_names)})"
551
+
552
+ # Enable hive-style partitioning for better compatibility
553
+ clauses.table_properties["hoodie.datasource.write.hive_style_partitioning"] = "true"
554
+
555
+ # Handle distribution via Hudi's file group assignment
556
+ # Hudi uses record key for distribution, not explicit CLUSTERED BY
557
+ distribution_columns = table_tuning.get_columns_by_type(TuningType.DISTRIBUTION)
558
+ if distribution_columns and not record_key:
559
+ # Use first distribution column as record key if not explicitly set
560
+ sorted_cols = sorted(distribution_columns, key=lambda c: c.order)
561
+ clauses.table_properties["hoodie.datasource.write.recordkey.field"] = sorted_cols[0].name
562
+
563
+ # Handle sorting via Hudi's clustering
564
+ sort_columns = table_tuning.get_columns_by_type(TuningType.SORTING)
565
+ cluster_columns = table_tuning.get_columns_by_type(TuningType.CLUSTERING)
566
+
567
+ all_sort_cols = list(sort_columns) + [c for c in cluster_columns if c not in sort_columns]
568
+ if all_sort_cols:
569
+ sorted_cols = sorted(all_sort_cols, key=lambda c: c.order)
570
+ col_names = [c.name for c in sorted_cols]
571
+
572
+ # Enable Hudi clustering for sorted data layout
573
+ clauses.table_properties["hoodie.clustering.inline"] = "true"
574
+ clauses.table_properties["hoodie.clustering.inline.max.commits"] = "4"
575
+ clauses.table_properties["hoodie.clustering.plan.strategy.sort.columns"] = ",".join(col_names)
576
+
577
+ return clauses
578
+
483
579
  def _generate_parquet_tuning(
484
580
  self,
485
581
  table_tuning: TableTuning | None,