diff --git a/.github/workflows/CloudTesting.yml b/.github/workflows/CloudTesting.yml index f75a37d..ea4cc42 100644 --- a/.github/workflows/CloudTesting.yml +++ b/.github/workflows/CloudTesting.yml @@ -41,6 +41,12 @@ jobs: with: vcpkgGitCommitId: a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 + - name: Configure OpenSSL for Rust + run: | + echo "OPENSSL_ROOT_DIR=`pwd`/build/release/vcpkg_installed/x64-linux" >> $GITHUB_ENV + echo "OPENSSL_DIR=`pwd`/build/release/vcpkg_installed/x64-linux" >> $GITHUB_ENV + echo "OPENSSL_USE_STATIC_LIBS=true" >> $GITHUB_ENV + - name: Setup Rust uses: dtolnay/rust-toolchain@stable @@ -57,7 +63,7 @@ jobs: AZURE_TENANT_ID: ${{secrets.AZURE_TENANT_ID}} AZURE_STORAGE_ACCOUNT: ${{secrets.AZURE_STORAGE_ACCOUNT}} run: | - python3 duckdb/scripts/run_tests_one_by_one.py ./build/release/test/unittest "*test/sql/cloud/*" + python3 duckdb/scripts/run_tests_one_by_one.py ./build/release/test/unittest `pwd`/test/sql/cloud/* - name: Test with SPN logged in in azure-cli env: @@ -65,7 +71,7 @@ jobs: DUCKDB_AZ_CLI_LOGGED_IN: 1 run: | az login --service-principal -u ${{secrets.AZURE_CLIENT_ID}} -p ${{secrets.AZURE_CLIENT_SECRET}} --tenant ${{secrets.AZURE_TENANT_ID}} - python3 duckdb/scripts/run_tests_one_by_one.py ./build/release/test/unittest "*test/sql/cloud/*" + python3 duckdb/scripts/run_tests_one_by_one.py ./build/release/test/unittest `pwd`/test/sql/cloud/* - name: Log out azure-cli if: always() @@ -77,4 +83,4 @@ jobs: AZURE_STORAGE_ACCOUNT: ${{secrets.AZURE_STORAGE_ACCOUNT}} DUCKDB_AZURE_PUBLIC_CONTAINER_AVAILABLE: 1 run: | - python3 duckdb/scripts/run_tests_one_by_one.py ./build/release/test/unittest "*test/sql/cloud/*" \ No newline at end of file + python3 duckdb/scripts/run_tests_one_by_one.py ./build/release/test/unittest `pwd`/test/sql/cloud/* \ No newline at end of file diff --git a/.github/workflows/LocalTesting.yml b/.github/workflows/LocalTesting.yml index a424ebf..5b6a4cb 100644 --- a/.github/workflows/LocalTesting.yml +++ b/.github/workflows/LocalTesting.yml @@ -117,6 +117,12 @@ jobs: with: vcpkgGitCommitId: a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 + - name: Configure OpenSSL for Rust + run: | + echo "OPENSSL_ROOT_DIR=`pwd`/build/release/vcpkg_installed/x64-linux" >> $GITHUB_ENV + echo "OPENSSL_DIR=`pwd`/build/release/vcpkg_installed/x64-linux" >> $GITHUB_ENV + echo "OPENSSL_USE_STATIC_LIBS=true" >> $GITHUB_ENV + - name: Build shell: bash run: make @@ -194,6 +200,12 @@ jobs: with: vcpkgGitCommitId: a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6 + - name: Configure OpenSSL for Rust + run: | + echo "OPENSSL_ROOT_DIR=`pwd`/build/release/vcpkg_installed/x64-linux" >> $GITHUB_ENV + echo "OPENSSL_DIR=`pwd`/build/release/vcpkg_installed/x64-linux" >> $GITHUB_ENV + echo "OPENSSL_USE_STATIC_LIBS=true" >> $GITHUB_ENV + - name: Build shell: bash run: make generate-data diff --git a/.gitignore b/.gitignore index 31bc287..bc1caa6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ build +benchmark_results +duckdb_benchmark_data/ .idea cmake-build-debug duckdb_unittest_tempdir/ diff --git a/.gitmodules b/.gitmodules index cd15846..859dbd9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,5 +4,5 @@ branch = main [submodule "extension-ci-tools"] path = extension-ci-tools - url = git@github.com:duckdb/extension-ci-tools.git - branch = main \ No newline at end of file + url = https://github.com/duckdb/extension-ci-tools.git + branch = main diff --git a/CMakeLists.txt b/CMakeLists.txt index 6797b39..186ca49 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,7 +24,7 @@ if(APPLE) elseif(UNIX) set(PLATFORM_LIBS m c resolv) elseif(WIN32) - set(PLATFORM_LIBS ntdll ncrypt secur32 ws2_32 userenv bcrypt msvcrt advapi32) + set(PLATFORM_LIBS ntdll ncrypt secur32 ws2_32 userenv bcrypt msvcrt advapi32 RuntimeObject) else() message(STATUS "UNKNOWN OS") endif() @@ -99,7 +99,7 @@ ExternalProject_Add( GIT_REPOSITORY "https://github.com/delta-incubator/delta-kernel-rs" # WARNING: the FFI headers are currently pinned due to the C linkage issue of the c++ headers. Currently, when bumping # the kernel version, the produced header in ./src/include/delta_kernel_ffi.hpp should be also bumped, applying the fix - GIT_TAG ed2b80b127984481adba8e59879f39b9e5f871d1 + GIT_TAG v0.2.0 # Prints the env variables passed to the cargo build to the terminal, useful in debugging because passing them # through CMake is an error-prone mess CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env ${RUST_UNSET_ENV_VARS} ${RUST_ENV_VARS} env diff --git a/Makefile b/Makefile index 78144e6..9416f84 100644 --- a/Makefile +++ b/Makefile @@ -11,9 +11,20 @@ test_release: export DAT_PATH=./build/release/rust/src/delta_kernel/acceptance/t test_debug: export DELTA_KERNEL_TESTS_PATH=./build/debug/rust/src/delta_kernel/kernel/tests/data test_debug: export DAT_PATH=./build/debug/rust/src/delta_kernel/acceptance/tests/dat +# Core extensions that we need for testing +CORE_EXTENSIONS='tpcds;tpch;aws;azure;httpfs' + +# Set this flag during building to enable the benchmark runner +ifeq (${BUILD_BENCHMARK}, 1) + TOOLCHAIN_FLAGS:=${TOOLCHAIN_FLAGS} -DBUILD_BENCHMARKS=1 +endif + # Include the Makefile from extension-ci-tools include extension-ci-tools/makefiles/duckdb_extension.Makefile +# Include the Makefile from the benchmark directory +include benchmark/benchmark.Makefile + # Generate some test data to test with generate-data: python3 -m pip install delta-spark duckdb pandas deltalake pyspark delta diff --git a/README.md b/README.md index e10bd74..1e09c3a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,13 @@ # DuckDB Delta Extension + This is the experimental DuckDB extension for [Delta](https://delta.io/). It is built using the (also experimental) [Delta Kernel](https://github.com/delta-incubator/delta-kernel-rs). The extension (currently) offers **read** support for delta tables, both local and remote. -# Supported platforms +## Supported platforms + The supported platforms are: + - `linux_amd64` and `linux_amd64_gcc4` and `linux_arm64` - `osx_amd64` and `osx_arm64` - `windows_amd64` @@ -12,29 +15,54 @@ The supported platforms are: Support for the [other](https://duckdb.org/docs/extensions/working_with_extensions#platforms) DuckDB platforms is work-in-progress -# How to use -**NOTE: this extension requires the DuckDB v0.10.3 or higher** +## How to use + +> [!NOTE] +> This extension requires the DuckDB v0.10.3 or higher This extension is distributed as a binary extension. To use it, simply use one of its functions from DuckDB and the extension will be autoloaded: + ```SQL FROM delta_scan('s3://some/delta/table'); ``` -Note that using DuckDB [Secrets](https://duckdb.org/docs/configuration/secrets_manager.html) for S3 authentication is supported: +To scan a local table, use the full path prefixes with `file://` + +```SQL +FROM delta_scan('file:///some/path/on/local/machine'); +``` + +## Cloud Storage authentication + +Note that using DuckDB [Secrets](https://duckdb.org/docs/configuration/secrets_manager.html) for Cloud authentication is supported. + +### S3 Example ```SQL -CREATE SECRET (TYPE S3, provider credential_chain); +CREATE SECRET ( + TYPE S3, + PROVIDER CREDENTIAL_CHAIN +); FROM delta_scan('s3://some/delta/table/with/auth'); ``` -To scan a local table, use the full path prefixes with `file://` +### Azure Example + ```SQL -FROM delta_scan('file:///some/path/on/local/machine'); +CREATE SECRET ( + TYPE AZURE, + PROVIDER CREDENTIAL_CHAIN, + CHAIN 'cli', + ACCOUNT_NAME 'mystorageaccount' +); +FROM delta_scan('abfss://some/delta/table/with/auth'); ``` -# Features +## Features + While still experimental, many (scanning) features/optimizations are already supported in this extension as it reuses most of DuckDB's regular parquet scanning logic: + - multithreaded scans and parquet metadata reading - data skipping/filter pushdown - skipping row-groups in file (based on parquet metadata) @@ -43,24 +71,30 @@ regular parquet scanning logic: - scanning tables with deletion vectors - all primitive types - structs -- S3 support with secrets +- Cloud storage (AWS, Azure, GCP) support with secrets More features coming soon! -# Building +## Building + See the [Extension Template](https://github.com/duckdb/extension-template) for generic build instructions -# Running tests +## Running tests + There are various tests available for the delta extension: + 1. Delta Acceptence Test (DAT) based tests in `/test/sql/dat` 2. delta-kernel-rs based tests in `/test/sql/delta_kernel_rs` 3. Generated data based tests in `tests/sql/generated` (generated using [delta-rs](https://delta-io.github.io/delta-rs/), [PySpark](https://spark.apache.org/docs/latest/api/python/index.html), and DuckDB) To run the first 2 sets of tests: + ```shell make test_debug ``` + or in release mode + ```shell make test ``` diff --git a/benchmark/README.md b/benchmark/README.md new file mode 100644 index 0000000..edc0497 --- /dev/null +++ b/benchmark/README.md @@ -0,0 +1,41 @@ +# Benchmarking the Delta Extension + +## Basics +A primitive benchmarking suite exists for the Delta extension. + +To run the benchmarks, firstly run the build using: +```shell +BUILD_BENCHMARK=1 make +``` + +Then, make sure that the generated data is created using: +```shell +make generate-data +``` + +Then to run a benchmark, use one of the benchmark Makefile targets prefixed with `bench-run-`: +```shell +make bench-run-tpch-sf1 +``` +Now the TPCH benchmark will be run twice, once on parquet files and once on a delta table. + +To create a plot from the results run: +```shell +make plot +``` + +## More options +Specific benchmarks can be run from a suite using the `BENCHMARK_PATTERN` variable. For example to compare +only Q01 from TPCH SF1, run: +```shell +BENCHMARK_PATTERN=q01.benchmark make bench-run-tpch-sf1 +``` + +Also, we can run all local benchmarks using: +```shell +make bench-run-all-local +``` +Or all remote benchmarks using +```shell +make bench-run-all-remote +``` \ No newline at end of file diff --git a/benchmark/benchmark.Makefile b/benchmark/benchmark.Makefile new file mode 100644 index 0000000..b3f4202 --- /dev/null +++ b/benchmark/benchmark.Makefile @@ -0,0 +1,70 @@ +.PHONY: bench-output-dir clean_benchmark plot + +ifeq ("$(BENCHMARK_PATTERN)a", "a") + BENCHMARK_PATTERN:=.* +endif + +bench-output-dir: + mkdir -p benchmark_results + +clean_benchmark: + rm -rf benchmark_results + +plot: + python3 scripts/plot.py + + +############### BENCHMARK TARGETS ############### + +### +# TPCH LOCAL +### + +# TPCH SF1 on delta table +bench-run-tpch-sf1-delta: bench-output-dir + ./build/release/benchmark/benchmark_runner --root-dir './' 'benchmark/tpch/sf1-delta/$(BENCHMARK_PATTERN)' &> benchmark_results/tpch-sf1-delta.csv +# TPCH SF1 on parquet files +bench-run-tpch-sf1-parquet: bench-output-dir + ./build/release/benchmark/benchmark_runner 'benchmark/tpch/sf1-parquet/$(BENCHMARK_PATTERN)' &> benchmark_results/tpch-sf1-parquet.csv +# TPCH SF1 on duckdb file +bench-run-tpch-sf1-duckdb: bench-output-dir + ./build/release/benchmark/benchmark_runner 'benchmark/tpch/sf1/$(BENCHMARK_PATTERN)' &> benchmark_results/tpch-sf1-duckdb.csv +# COMPARES TPCH SF1 on parquet file vs on delta files +bench-run-tpch-sf1: bench-run-tpch-sf1-delta bench-run-tpch-sf1-parquet + +### +# TPCH REMOTE +### + +# TPCH on remote delta table (set BENCHMARK_DATA_S3_LINEITEM_SF1) +bench-run-tpch-sf1-remote-delta: bench-output-dir + ./build/release/benchmark/benchmark_runner --root-dir './' 'benchmark/tpch/sf1-delta-remote/$(BENCHMARK_PATTERN)' &> benchmark_results/tpch-sf1-remote-delta.csv +# TPCH on remote parquet table (set BENCHMARK_DATA_S3_LINEITEM_SF1) +bench-run-tpch-sf1-remote-parquet: bench-output-dir + ./build/release/benchmark/benchmark_runner --root-dir './' 'benchmark/tpch/sf1-parquet-remote/$(BENCHMARK_PATTERN)' &> benchmark_results/tpch-sf1-remote-parquet.csv +# COMPARES TPCH SF1 on parquet file vs on delta files +bench-run-tpch-sf1-remote: bench-run-tpch-sf1-remote-parquet bench-run-tpch-sf1-remote-delta + +### +# TPCDS LOCAL +### + +# TPCDS SF1 on delta table +bench-run-tpcds-sf1-delta: bench-output-dir + ./build/release/benchmark/benchmark_runner --root-dir './' 'benchmark/tpcds/sf1-delta/$(BENCHMARK_PATTERN)' &> benchmark_results/tpcds-sf1-delta.csv +# TPCDS SF1 on parquet files +bench-run-tpcds-sf1-parquet: bench-output-dir + ./build/release/benchmark/benchmark_runner --root-dir './' 'benchmark/tpcds/sf1-parquet/$(BENCHMARK_PATTERN)' &> benchmark_results/tpcds-sf1-parquet.csv +# TPCDS SF1 on duckdb files +bench-run-tpcds-sf1-duckdb: bench-output-dir + ./build/release/benchmark/benchmark_runner 'benchmark/tpcds/sf1/$(BENCHMARK_PATTERN)' &> benchmark_results/tpcds-sf1-duckdb.csv + +# COMPARES TPCDS SF1 on parquet file vs on delta files +bench-run-tpcds-sf1: bench-run-tpcds-sf1-delta bench-run-tpcds-sf1-parquet + +### +# ALL +### +bench-run-all-local: bench-run-tpcds-sf1 bench-run-tpch-sf1 + +bench-run-all-remote: bench-run-tpch-sf1-remote diff --git a/benchmark/tpcds/sf1-delta/load.sql b/benchmark/tpcds/sf1-delta/load.sql new file mode 100644 index 0000000..c482618 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/load.sql @@ -0,0 +1,24 @@ +create view call_center as from delta_scan('./data/generated/tpcds_sf1/call_center/delta_lake'); +create view catalog_page as from delta_scan('./data/generated/tpcds_sf1/catalog_page/delta_lake'); +create view catalog_returns as from delta_scan('./data/generated/tpcds_sf1/catalog_returns/delta_lake'); +create view catalog_sales as from delta_scan('./data/generated/tpcds_sf1/catalog_sales/delta_lake'); +create view customer as from delta_scan('./data/generated/tpcds_sf1/customer/delta_lake'); +create view customer_demographics as from delta_scan('./data/generated/tpcds_sf1/customer_demographics/delta_lake'); +create view customer_address as from delta_scan('./data/generated/tpcds_sf1/customer_address/delta_lake'); +create view date_dim as from delta_scan('./data/generated/tpcds_sf1/date_dim/delta_lake'); +create view household_demographics as from delta_scan('./data/generated/tpcds_sf1/household_demographics/delta_lake'); +create view inventory as from delta_scan('./data/generated/tpcds_sf1/inventory/delta_lake'); +create view income_band as from delta_scan('./data/generated/tpcds_sf1/income_band/delta_lake'); +create view item as from delta_scan('./data/generated/tpcds_sf1/item/delta_lake'); +create view promotion as from delta_scan('./data/generated/tpcds_sf1/promotion/delta_lake'); +create view reason as from delta_scan('./data/generated/tpcds_sf1/reason/delta_lake'); +create view ship_mode as from delta_scan('./data/generated/tpcds_sf1/ship_mode/delta_lake'); +create view store as from delta_scan('./data/generated/tpcds_sf1/store/delta_lake'); +create view store_returns as from delta_scan('./data/generated/tpcds_sf1/store_returns/delta_lake'); +create view store_sales as from delta_scan('./data/generated/tpcds_sf1/store_sales/delta_lake'); +create view time_dim as from delta_scan('./data/generated/tpcds_sf1/time_dim/delta_lake'); +create view warehouse as from delta_scan('./data/generated/tpcds_sf1/warehouse/delta_lake'); +create view web_page as from delta_scan('./data/generated/tpcds_sf1/web_page/delta_lake'); +create view web_returns as from delta_scan('./data/generated/tpcds_sf1/web_returns/delta_lake'); +create view web_sales as from delta_scan('./data/generated/tpcds_sf1/web_sales/delta_lake'); +create view web_site as from delta_scan('./data/generated/tpcds_sf1/web_site/delta_lake'); \ No newline at end of file diff --git a/benchmark/tpcds/sf1-delta/q01.benchmark b/benchmark/tpcds/sf1-delta/q01.benchmark new file mode 100644 index 0000000..4afa256 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q01.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q01.benchmark +# description: Run query 01 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=1 +QUERY_NUMBER_PADDED=01 diff --git a/benchmark/tpcds/sf1-delta/q02.benchmark b/benchmark/tpcds/sf1-delta/q02.benchmark new file mode 100644 index 0000000..260f65a --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q02.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q02.benchmark +# description: Run query 02 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=2 +QUERY_NUMBER_PADDED=02 diff --git a/benchmark/tpcds/sf1-delta/q03.benchmark b/benchmark/tpcds/sf1-delta/q03.benchmark new file mode 100644 index 0000000..06c4bf0 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q03.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q03.benchmark +# description: Run query 03 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=3 +QUERY_NUMBER_PADDED=03 diff --git a/benchmark/tpcds/sf1-delta/q04.benchmark b/benchmark/tpcds/sf1-delta/q04.benchmark new file mode 100644 index 0000000..ab13a2a --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q04.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q04.benchmark +# description: Run query 04 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=4 +QUERY_NUMBER_PADDED=04 diff --git a/benchmark/tpcds/sf1-delta/q05.benchmark b/benchmark/tpcds/sf1-delta/q05.benchmark new file mode 100644 index 0000000..583f4bc --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q05.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q05.benchmark +# description: Run query 05 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=5 +QUERY_NUMBER_PADDED=05 diff --git a/benchmark/tpcds/sf1-delta/q06.benchmark b/benchmark/tpcds/sf1-delta/q06.benchmark new file mode 100644 index 0000000..17a5d62 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q06.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q06.benchmark +# description: Run query 06 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=6 +QUERY_NUMBER_PADDED=06 diff --git a/benchmark/tpcds/sf1-delta/q07.benchmark b/benchmark/tpcds/sf1-delta/q07.benchmark new file mode 100644 index 0000000..aa54538 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q07.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q07.benchmark +# description: Run query 07 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=7 +QUERY_NUMBER_PADDED=07 diff --git a/benchmark/tpcds/sf1-delta/q08.benchmark b/benchmark/tpcds/sf1-delta/q08.benchmark new file mode 100644 index 0000000..655ac7f --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q08.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q08.benchmark +# description: Run query 08 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=8 +QUERY_NUMBER_PADDED=08 diff --git a/benchmark/tpcds/sf1-delta/q09.benchmark b/benchmark/tpcds/sf1-delta/q09.benchmark new file mode 100644 index 0000000..c0bef34 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q09.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q09.benchmark +# description: Run query 09 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=9 +QUERY_NUMBER_PADDED=09 diff --git a/benchmark/tpcds/sf1-delta/q10.benchmark b/benchmark/tpcds/sf1-delta/q10.benchmark new file mode 100644 index 0000000..c99f19e --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q10.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q10.benchmark +# description: Run query 10 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=10 +QUERY_NUMBER_PADDED=10 diff --git a/benchmark/tpcds/sf1-delta/q11.benchmark b/benchmark/tpcds/sf1-delta/q11.benchmark new file mode 100644 index 0000000..bddc394 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q11.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q11.benchmark +# description: Run query 11 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=11 +QUERY_NUMBER_PADDED=11 diff --git a/benchmark/tpcds/sf1-delta/q12.benchmark b/benchmark/tpcds/sf1-delta/q12.benchmark new file mode 100644 index 0000000..475d6c8 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q12.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q12.benchmark +# description: Run query 12 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=12 +QUERY_NUMBER_PADDED=12 diff --git a/benchmark/tpcds/sf1-delta/q13.benchmark b/benchmark/tpcds/sf1-delta/q13.benchmark new file mode 100644 index 0000000..a6915d0 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q13.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q13.benchmark +# description: Run query 13 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=13 +QUERY_NUMBER_PADDED=13 diff --git a/benchmark/tpcds/sf1-delta/q14.benchmark b/benchmark/tpcds/sf1-delta/q14.benchmark new file mode 100644 index 0000000..eec9b70 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q14.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q14.benchmark +# description: Run query 14 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=14 +QUERY_NUMBER_PADDED=14 diff --git a/benchmark/tpcds/sf1-delta/q15.benchmark b/benchmark/tpcds/sf1-delta/q15.benchmark new file mode 100644 index 0000000..9f44d26 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q15.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q15.benchmark +# description: Run query 15 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=15 +QUERY_NUMBER_PADDED=15 diff --git a/benchmark/tpcds/sf1-delta/q16.benchmark b/benchmark/tpcds/sf1-delta/q16.benchmark new file mode 100644 index 0000000..b76f510 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q16.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q16.benchmark +# description: Run query 16 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=16 +QUERY_NUMBER_PADDED=16 diff --git a/benchmark/tpcds/sf1-delta/q17.benchmark b/benchmark/tpcds/sf1-delta/q17.benchmark new file mode 100644 index 0000000..46fa716 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q17.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q17.benchmark +# description: Run query 17 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=17 +QUERY_NUMBER_PADDED=17 diff --git a/benchmark/tpcds/sf1-delta/q18.benchmark b/benchmark/tpcds/sf1-delta/q18.benchmark new file mode 100644 index 0000000..e7cebaa --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q18.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q18.benchmark +# description: Run query 18 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=18 +QUERY_NUMBER_PADDED=18 diff --git a/benchmark/tpcds/sf1-delta/q19.benchmark b/benchmark/tpcds/sf1-delta/q19.benchmark new file mode 100644 index 0000000..88d96c6 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q19.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q19.benchmark +# description: Run query 19 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=19 +QUERY_NUMBER_PADDED=19 diff --git a/benchmark/tpcds/sf1-delta/q20.benchmark b/benchmark/tpcds/sf1-delta/q20.benchmark new file mode 100644 index 0000000..aa01979 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q20.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q20.benchmark +# description: Run query 20 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=20 +QUERY_NUMBER_PADDED=20 diff --git a/benchmark/tpcds/sf1-delta/q21.benchmark b/benchmark/tpcds/sf1-delta/q21.benchmark new file mode 100644 index 0000000..dbe5a17 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q21.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q21.benchmark +# description: Run query 21 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=21 +QUERY_NUMBER_PADDED=21 diff --git a/benchmark/tpcds/sf1-delta/q22.benchmark b/benchmark/tpcds/sf1-delta/q22.benchmark new file mode 100644 index 0000000..486db66 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q22.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q22.benchmark +# description: Run query 22 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=22 +QUERY_NUMBER_PADDED=22 diff --git a/benchmark/tpcds/sf1-delta/q23.benchmark b/benchmark/tpcds/sf1-delta/q23.benchmark new file mode 100644 index 0000000..695da9a --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q23.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q23.benchmark +# description: Run query 23 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=23 +QUERY_NUMBER_PADDED=23 diff --git a/benchmark/tpcds/sf1-delta/q24.benchmark b/benchmark/tpcds/sf1-delta/q24.benchmark new file mode 100644 index 0000000..e12cffc --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q24.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q24.benchmark +# description: Run query 24 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=24 +QUERY_NUMBER_PADDED=24 diff --git a/benchmark/tpcds/sf1-delta/q25.benchmark b/benchmark/tpcds/sf1-delta/q25.benchmark new file mode 100644 index 0000000..988426f --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q25.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q25.benchmark +# description: Run query 25 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=25 +QUERY_NUMBER_PADDED=25 diff --git a/benchmark/tpcds/sf1-delta/q26.benchmark b/benchmark/tpcds/sf1-delta/q26.benchmark new file mode 100644 index 0000000..a475e11 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q26.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q26.benchmark +# description: Run query 26 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=26 +QUERY_NUMBER_PADDED=26 diff --git a/benchmark/tpcds/sf1-delta/q27.benchmark b/benchmark/tpcds/sf1-delta/q27.benchmark new file mode 100644 index 0000000..3474886 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q27.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q27.benchmark +# description: Run query 27 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=27 +QUERY_NUMBER_PADDED=27 diff --git a/benchmark/tpcds/sf1-delta/q28.benchmark b/benchmark/tpcds/sf1-delta/q28.benchmark new file mode 100644 index 0000000..9dea5b9 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q28.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q28.benchmark +# description: Run query 28 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=28 +QUERY_NUMBER_PADDED=28 diff --git a/benchmark/tpcds/sf1-delta/q29.benchmark b/benchmark/tpcds/sf1-delta/q29.benchmark new file mode 100644 index 0000000..22247ea --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q29.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q29.benchmark +# description: Run query 29 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=29 +QUERY_NUMBER_PADDED=29 diff --git a/benchmark/tpcds/sf1-delta/q30.benchmark b/benchmark/tpcds/sf1-delta/q30.benchmark new file mode 100644 index 0000000..b41d4ad --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q30.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q30.benchmark +# description: Run query 30 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=30 +QUERY_NUMBER_PADDED=30 diff --git a/benchmark/tpcds/sf1-delta/q31.benchmark b/benchmark/tpcds/sf1-delta/q31.benchmark new file mode 100644 index 0000000..92a0306 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q31.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q31.benchmark +# description: Run query 31 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=31 +QUERY_NUMBER_PADDED=31 diff --git a/benchmark/tpcds/sf1-delta/q32.benchmark b/benchmark/tpcds/sf1-delta/q32.benchmark new file mode 100644 index 0000000..57ebee9 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q32.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q32.benchmark +# description: Run query 32 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=32 +QUERY_NUMBER_PADDED=32 diff --git a/benchmark/tpcds/sf1-delta/q33.benchmark b/benchmark/tpcds/sf1-delta/q33.benchmark new file mode 100644 index 0000000..32c0479 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q33.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q33.benchmark +# description: Run query 33 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=33 +QUERY_NUMBER_PADDED=33 diff --git a/benchmark/tpcds/sf1-delta/q34.benchmark b/benchmark/tpcds/sf1-delta/q34.benchmark new file mode 100644 index 0000000..0a034c4 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q34.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q34.benchmark +# description: Run query 34 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=34 +QUERY_NUMBER_PADDED=34 diff --git a/benchmark/tpcds/sf1-delta/q35.benchmark b/benchmark/tpcds/sf1-delta/q35.benchmark new file mode 100644 index 0000000..7ee5bb2 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q35.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q35.benchmark +# description: Run query 35 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=35 +QUERY_NUMBER_PADDED=35 diff --git a/benchmark/tpcds/sf1-delta/q36.benchmark b/benchmark/tpcds/sf1-delta/q36.benchmark new file mode 100644 index 0000000..f7b3fc0 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q36.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q36.benchmark +# description: Run query 36 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=36 +QUERY_NUMBER_PADDED=36 diff --git a/benchmark/tpcds/sf1-delta/q37.benchmark b/benchmark/tpcds/sf1-delta/q37.benchmark new file mode 100644 index 0000000..e482a3d --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q37.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q37.benchmark +# description: Run query 37 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=37 +QUERY_NUMBER_PADDED=37 diff --git a/benchmark/tpcds/sf1-delta/q38.benchmark b/benchmark/tpcds/sf1-delta/q38.benchmark new file mode 100644 index 0000000..120d4d1 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q38.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q38.benchmark +# description: Run query 38 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=38 +QUERY_NUMBER_PADDED=38 diff --git a/benchmark/tpcds/sf1-delta/q39.benchmark b/benchmark/tpcds/sf1-delta/q39.benchmark new file mode 100644 index 0000000..9216a08 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q39.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q39.benchmark +# description: Run query 39 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=39 +QUERY_NUMBER_PADDED=39 diff --git a/benchmark/tpcds/sf1-delta/q40.benchmark b/benchmark/tpcds/sf1-delta/q40.benchmark new file mode 100644 index 0000000..7b78045 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q40.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q40.benchmark +# description: Run query 40 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=40 +QUERY_NUMBER_PADDED=40 diff --git a/benchmark/tpcds/sf1-delta/q41.benchmark b/benchmark/tpcds/sf1-delta/q41.benchmark new file mode 100644 index 0000000..03c041f --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q41.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q41.benchmark +# description: Run query 41 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=41 +QUERY_NUMBER_PADDED=41 diff --git a/benchmark/tpcds/sf1-delta/q42.benchmark b/benchmark/tpcds/sf1-delta/q42.benchmark new file mode 100644 index 0000000..80eabea --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q42.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q42.benchmark +# description: Run query 42 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=42 +QUERY_NUMBER_PADDED=42 diff --git a/benchmark/tpcds/sf1-delta/q43.benchmark b/benchmark/tpcds/sf1-delta/q43.benchmark new file mode 100644 index 0000000..2b0e27a --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q43.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q43.benchmark +# description: Run query 43 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=43 +QUERY_NUMBER_PADDED=43 diff --git a/benchmark/tpcds/sf1-delta/q44.benchmark b/benchmark/tpcds/sf1-delta/q44.benchmark new file mode 100644 index 0000000..6e2571a --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q44.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q44.benchmark +# description: Run query 44 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=44 +QUERY_NUMBER_PADDED=44 diff --git a/benchmark/tpcds/sf1-delta/q45.benchmark b/benchmark/tpcds/sf1-delta/q45.benchmark new file mode 100644 index 0000000..bc733aa --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q45.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q45.benchmark +# description: Run query 45 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=45 +QUERY_NUMBER_PADDED=45 diff --git a/benchmark/tpcds/sf1-delta/q46.benchmark b/benchmark/tpcds/sf1-delta/q46.benchmark new file mode 100644 index 0000000..338d6c2 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q46.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q46.benchmark +# description: Run query 46 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=46 +QUERY_NUMBER_PADDED=46 diff --git a/benchmark/tpcds/sf1-delta/q47.benchmark b/benchmark/tpcds/sf1-delta/q47.benchmark new file mode 100644 index 0000000..0031c36 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q47.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q47.benchmark +# description: Run query 47 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=47 +QUERY_NUMBER_PADDED=47 diff --git a/benchmark/tpcds/sf1-delta/q48.benchmark b/benchmark/tpcds/sf1-delta/q48.benchmark new file mode 100644 index 0000000..dba4376 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q48.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q48.benchmark +# description: Run query 48 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=48 +QUERY_NUMBER_PADDED=48 diff --git a/benchmark/tpcds/sf1-delta/q49.benchmark b/benchmark/tpcds/sf1-delta/q49.benchmark new file mode 100644 index 0000000..e87d59d --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q49.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q49.benchmark +# description: Run query 49 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=49 +QUERY_NUMBER_PADDED=49 diff --git a/benchmark/tpcds/sf1-delta/q50.benchmark b/benchmark/tpcds/sf1-delta/q50.benchmark new file mode 100644 index 0000000..994ca01 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q50.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q50.benchmark +# description: Run query 50 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=50 +QUERY_NUMBER_PADDED=50 diff --git a/benchmark/tpcds/sf1-delta/q51.benchmark b/benchmark/tpcds/sf1-delta/q51.benchmark new file mode 100644 index 0000000..f684809 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q51.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q51.benchmark +# description: Run query 51 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=51 +QUERY_NUMBER_PADDED=51 diff --git a/benchmark/tpcds/sf1-delta/q52.benchmark b/benchmark/tpcds/sf1-delta/q52.benchmark new file mode 100644 index 0000000..d10ac68 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q52.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q52.benchmark +# description: Run query 52 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=52 +QUERY_NUMBER_PADDED=52 diff --git a/benchmark/tpcds/sf1-delta/q53.benchmark b/benchmark/tpcds/sf1-delta/q53.benchmark new file mode 100644 index 0000000..209bb6c --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q53.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q53.benchmark +# description: Run query 53 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=53 +QUERY_NUMBER_PADDED=53 diff --git a/benchmark/tpcds/sf1-delta/q54.benchmark b/benchmark/tpcds/sf1-delta/q54.benchmark new file mode 100644 index 0000000..bac8abd --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q54.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q54.benchmark +# description: Run query 54 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=54 +QUERY_NUMBER_PADDED=54 diff --git a/benchmark/tpcds/sf1-delta/q55.benchmark b/benchmark/tpcds/sf1-delta/q55.benchmark new file mode 100644 index 0000000..cf9cfde --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q55.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q55.benchmark +# description: Run query 55 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=55 +QUERY_NUMBER_PADDED=55 diff --git a/benchmark/tpcds/sf1-delta/q56.benchmark b/benchmark/tpcds/sf1-delta/q56.benchmark new file mode 100644 index 0000000..3658451 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q56.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q56.benchmark +# description: Run query 56 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=56 +QUERY_NUMBER_PADDED=56 diff --git a/benchmark/tpcds/sf1-delta/q57.benchmark b/benchmark/tpcds/sf1-delta/q57.benchmark new file mode 100644 index 0000000..6730b17 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q57.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q57.benchmark +# description: Run query 57 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=57 +QUERY_NUMBER_PADDED=57 diff --git a/benchmark/tpcds/sf1-delta/q58.benchmark b/benchmark/tpcds/sf1-delta/q58.benchmark new file mode 100644 index 0000000..e462efb --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q58.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q58.benchmark +# description: Run query 58 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=58 +QUERY_NUMBER_PADDED=58 diff --git a/benchmark/tpcds/sf1-delta/q59.benchmark b/benchmark/tpcds/sf1-delta/q59.benchmark new file mode 100644 index 0000000..5281155 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q59.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q59.benchmark +# description: Run query 59 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=59 +QUERY_NUMBER_PADDED=59 diff --git a/benchmark/tpcds/sf1-delta/q60.benchmark b/benchmark/tpcds/sf1-delta/q60.benchmark new file mode 100644 index 0000000..71be7db --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q60.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q60.benchmark +# description: Run query 60 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=60 +QUERY_NUMBER_PADDED=60 diff --git a/benchmark/tpcds/sf1-delta/q61.benchmark b/benchmark/tpcds/sf1-delta/q61.benchmark new file mode 100644 index 0000000..95506eb --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q61.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q61.benchmark +# description: Run query 61 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=61 +QUERY_NUMBER_PADDED=61 diff --git a/benchmark/tpcds/sf1-delta/q62.benchmark b/benchmark/tpcds/sf1-delta/q62.benchmark new file mode 100644 index 0000000..349e4e9 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q62.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q62.benchmark +# description: Run query 62 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=62 +QUERY_NUMBER_PADDED=62 diff --git a/benchmark/tpcds/sf1-delta/q63.benchmark b/benchmark/tpcds/sf1-delta/q63.benchmark new file mode 100644 index 0000000..6a03287 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q63.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q63.benchmark +# description: Run query 63 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=63 +QUERY_NUMBER_PADDED=63 diff --git a/benchmark/tpcds/sf1-delta/q64.benchmark b/benchmark/tpcds/sf1-delta/q64.benchmark new file mode 100644 index 0000000..3c3c968 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q64.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q64.benchmark +# description: Run query 64 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=64 +QUERY_NUMBER_PADDED=64 diff --git a/benchmark/tpcds/sf1-delta/q65.benchmark b/benchmark/tpcds/sf1-delta/q65.benchmark new file mode 100644 index 0000000..8e4d181 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q65.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q65.benchmark +# description: Run query 65 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=65 +QUERY_NUMBER_PADDED=65 diff --git a/benchmark/tpcds/sf1-delta/q66.benchmark b/benchmark/tpcds/sf1-delta/q66.benchmark new file mode 100644 index 0000000..c0130f2 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q66.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q66.benchmark +# description: Run query 66 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=66 +QUERY_NUMBER_PADDED=66 diff --git a/benchmark/tpcds/sf1-delta/q67.benchmark b/benchmark/tpcds/sf1-delta/q67.benchmark new file mode 100644 index 0000000..3aa7a26 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q67.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q67.benchmark +# description: Run query 67 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=67 +QUERY_NUMBER_PADDED=67 diff --git a/benchmark/tpcds/sf1-delta/q68.benchmark b/benchmark/tpcds/sf1-delta/q68.benchmark new file mode 100644 index 0000000..faf1c29 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q68.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q68.benchmark +# description: Run query 68 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=68 +QUERY_NUMBER_PADDED=68 diff --git a/benchmark/tpcds/sf1-delta/q69.benchmark b/benchmark/tpcds/sf1-delta/q69.benchmark new file mode 100644 index 0000000..bd36138 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q69.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q69.benchmark +# description: Run query 69 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=69 +QUERY_NUMBER_PADDED=69 diff --git a/benchmark/tpcds/sf1-delta/q70.benchmark b/benchmark/tpcds/sf1-delta/q70.benchmark new file mode 100644 index 0000000..f5a4e89 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q70.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q70.benchmark +# description: Run query 70 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=70 +QUERY_NUMBER_PADDED=70 diff --git a/benchmark/tpcds/sf1-delta/q71.benchmark b/benchmark/tpcds/sf1-delta/q71.benchmark new file mode 100644 index 0000000..9eab10a --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q71.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q71.benchmark +# description: Run query 71 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=71 +QUERY_NUMBER_PADDED=71 diff --git a/benchmark/tpcds/sf1-delta/q72.benchmark b/benchmark/tpcds/sf1-delta/q72.benchmark new file mode 100644 index 0000000..e07b4a0 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q72.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q72.benchmark +# description: Run query 72 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=72 +QUERY_NUMBER_PADDED=72 diff --git a/benchmark/tpcds/sf1-delta/q73.benchmark b/benchmark/tpcds/sf1-delta/q73.benchmark new file mode 100644 index 0000000..2a4205b --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q73.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q73.benchmark +# description: Run query 73 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=73 +QUERY_NUMBER_PADDED=73 diff --git a/benchmark/tpcds/sf1-delta/q74.benchmark b/benchmark/tpcds/sf1-delta/q74.benchmark new file mode 100644 index 0000000..6b51bb4 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q74.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q74.benchmark +# description: Run query 74 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=74 +QUERY_NUMBER_PADDED=74 diff --git a/benchmark/tpcds/sf1-delta/q75.benchmark b/benchmark/tpcds/sf1-delta/q75.benchmark new file mode 100644 index 0000000..1ec1156 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q75.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q75.benchmark +# description: Run query 75 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=75 +QUERY_NUMBER_PADDED=75 diff --git a/benchmark/tpcds/sf1-delta/q76.benchmark b/benchmark/tpcds/sf1-delta/q76.benchmark new file mode 100644 index 0000000..1c50fa8 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q76.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q76.benchmark +# description: Run query 76 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=76 +QUERY_NUMBER_PADDED=76 diff --git a/benchmark/tpcds/sf1-delta/q77.benchmark b/benchmark/tpcds/sf1-delta/q77.benchmark new file mode 100644 index 0000000..d4751c3 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q77.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q77.benchmark +# description: Run query 77 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=77 +QUERY_NUMBER_PADDED=77 diff --git a/benchmark/tpcds/sf1-delta/q78.benchmark b/benchmark/tpcds/sf1-delta/q78.benchmark new file mode 100644 index 0000000..e820401 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q78.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q78.benchmark +# description: Run query 78 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=78 +QUERY_NUMBER_PADDED=78 diff --git a/benchmark/tpcds/sf1-delta/q79.benchmark b/benchmark/tpcds/sf1-delta/q79.benchmark new file mode 100644 index 0000000..58b820f --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q79.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q79.benchmark +# description: Run query 79 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=79 +QUERY_NUMBER_PADDED=79 diff --git a/benchmark/tpcds/sf1-delta/q80.benchmark b/benchmark/tpcds/sf1-delta/q80.benchmark new file mode 100644 index 0000000..1815a97 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q80.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q80.benchmark +# description: Run query 80 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=80 +QUERY_NUMBER_PADDED=80 diff --git a/benchmark/tpcds/sf1-delta/q81.benchmark b/benchmark/tpcds/sf1-delta/q81.benchmark new file mode 100644 index 0000000..9a07b52 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q81.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q81.benchmark +# description: Run query 81 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=81 +QUERY_NUMBER_PADDED=81 diff --git a/benchmark/tpcds/sf1-delta/q82.benchmark b/benchmark/tpcds/sf1-delta/q82.benchmark new file mode 100644 index 0000000..6c27933 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q82.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q82.benchmark +# description: Run query 82 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=82 +QUERY_NUMBER_PADDED=82 diff --git a/benchmark/tpcds/sf1-delta/q83.benchmark b/benchmark/tpcds/sf1-delta/q83.benchmark new file mode 100644 index 0000000..96dd1f3 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q83.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q83.benchmark +# description: Run query 83 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=83 +QUERY_NUMBER_PADDED=83 diff --git a/benchmark/tpcds/sf1-delta/q84.benchmark b/benchmark/tpcds/sf1-delta/q84.benchmark new file mode 100644 index 0000000..1c90d12 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q84.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q84.benchmark +# description: Run query 84 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=84 +QUERY_NUMBER_PADDED=84 diff --git a/benchmark/tpcds/sf1-delta/q85.benchmark b/benchmark/tpcds/sf1-delta/q85.benchmark new file mode 100644 index 0000000..9687a23 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q85.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q85.benchmark +# description: Run query 85 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=85 +QUERY_NUMBER_PADDED=85 diff --git a/benchmark/tpcds/sf1-delta/q86.benchmark b/benchmark/tpcds/sf1-delta/q86.benchmark new file mode 100644 index 0000000..b2c74c8 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q86.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q86.benchmark +# description: Run query 86 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=86 +QUERY_NUMBER_PADDED=86 diff --git a/benchmark/tpcds/sf1-delta/q87.benchmark b/benchmark/tpcds/sf1-delta/q87.benchmark new file mode 100644 index 0000000..95a55c5 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q87.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q87.benchmark +# description: Run query 87 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=87 +QUERY_NUMBER_PADDED=87 diff --git a/benchmark/tpcds/sf1-delta/q88.benchmark b/benchmark/tpcds/sf1-delta/q88.benchmark new file mode 100644 index 0000000..c6de497 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q88.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q88.benchmark +# description: Run query 88 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=88 +QUERY_NUMBER_PADDED=88 diff --git a/benchmark/tpcds/sf1-delta/q89.benchmark b/benchmark/tpcds/sf1-delta/q89.benchmark new file mode 100644 index 0000000..f7bb181 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q89.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q89.benchmark +# description: Run query 89 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=89 +QUERY_NUMBER_PADDED=89 diff --git a/benchmark/tpcds/sf1-delta/q90.benchmark b/benchmark/tpcds/sf1-delta/q90.benchmark new file mode 100644 index 0000000..b641fd9 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q90.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q90.benchmark +# description: Run query 90 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=90 +QUERY_NUMBER_PADDED=90 diff --git a/benchmark/tpcds/sf1-delta/q91.benchmark b/benchmark/tpcds/sf1-delta/q91.benchmark new file mode 100644 index 0000000..7e960d5 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q91.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q91.benchmark +# description: Run query 91 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=91 +QUERY_NUMBER_PADDED=91 diff --git a/benchmark/tpcds/sf1-delta/q92.benchmark b/benchmark/tpcds/sf1-delta/q92.benchmark new file mode 100644 index 0000000..6486179 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q92.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q92.benchmark +# description: Run query 92 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=92 +QUERY_NUMBER_PADDED=92 diff --git a/benchmark/tpcds/sf1-delta/q93.benchmark b/benchmark/tpcds/sf1-delta/q93.benchmark new file mode 100644 index 0000000..e42fded --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q93.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q93.benchmark +# description: Run query 93 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=93 +QUERY_NUMBER_PADDED=93 diff --git a/benchmark/tpcds/sf1-delta/q94.benchmark b/benchmark/tpcds/sf1-delta/q94.benchmark new file mode 100644 index 0000000..13bab12 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q94.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q94.benchmark +# description: Run query 94 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=94 +QUERY_NUMBER_PADDED=94 diff --git a/benchmark/tpcds/sf1-delta/q95.benchmark b/benchmark/tpcds/sf1-delta/q95.benchmark new file mode 100644 index 0000000..a6cffc8 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q95.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q95.benchmark +# description: Run query 95 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=95 +QUERY_NUMBER_PADDED=95 diff --git a/benchmark/tpcds/sf1-delta/q96.benchmark b/benchmark/tpcds/sf1-delta/q96.benchmark new file mode 100644 index 0000000..10cb8ad --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q96.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q96.benchmark +# description: Run query 96 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=96 +QUERY_NUMBER_PADDED=96 diff --git a/benchmark/tpcds/sf1-delta/q97.benchmark b/benchmark/tpcds/sf1-delta/q97.benchmark new file mode 100644 index 0000000..465959f --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q97.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q97.benchmark +# description: Run query 97 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=97 +QUERY_NUMBER_PADDED=97 diff --git a/benchmark/tpcds/sf1-delta/q98.benchmark b/benchmark/tpcds/sf1-delta/q98.benchmark new file mode 100644 index 0000000..d57b90c --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q98.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q98.benchmark +# description: Run query 98 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=98 +QUERY_NUMBER_PADDED=98 diff --git a/benchmark/tpcds/sf1-delta/q99.benchmark b/benchmark/tpcds/sf1-delta/q99.benchmark new file mode 100644 index 0000000..9a3cf32 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/q99.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q99.benchmark +# description: Run query 99 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in +QUERY_NUMBER=99 +QUERY_NUMBER_PADDED=99 diff --git a/benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in b/benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in new file mode 100644 index 0000000..57d33d1 --- /dev/null +++ b/benchmark/tpcds/sf1-delta/tpcds_sf1.benchmark.in @@ -0,0 +1,17 @@ +# name: ${FILE_PATH} +# description: ${DESCRIPTION} +# group: [tpcds-sf1] + +name DSQ${QUERY_NUMBER_PADDED} +group tpcds +subgroup sf1 + +require delta + +require parquet + +load benchmark/tpcds/sf1-delta/load.sql + +run duckdb/extension/tpcds/dsdgen/queries/${QUERY_NUMBER_PADDED}.sql + +result duckdb/extension/tpcds/dsdgen/answers/sf1/${QUERY_NUMBER_PADDED}.csv diff --git a/benchmark/tpcds/sf1-parquet/load.sql b/benchmark/tpcds/sf1-parquet/load.sql new file mode 100644 index 0000000..23e75d7 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/load.sql @@ -0,0 +1,24 @@ +create view call_center as from parquet_scan('./data/generated/tpcds_sf1/call_center/parquet/**/*.parquet'); +create view catalog_page as from parquet_scan('./data/generated/tpcds_sf1/catalog_page/parquet/**/*.parquet'); +create view catalog_returns as from parquet_scan('./data/generated/tpcds_sf1/catalog_returns/parquet/**/*.parquet'); +create view catalog_sales as from parquet_scan('./data/generated/tpcds_sf1/catalog_sales/parquet/**/*.parquet'); +create view customer as from parquet_scan('./data/generated/tpcds_sf1/customer/parquet/**/*.parquet'); +create view customer_demographics as from parquet_scan('./data/generated/tpcds_sf1/customer_demographics/parquet/**/*.parquet'); +create view customer_address as from parquet_scan('./data/generated/tpcds_sf1/customer_address/parquet/**/*.parquet'); +create view date_dim as from parquet_scan('./data/generated/tpcds_sf1/date_dim/parquet/**/*.parquet'); +create view household_demographics as from parquet_scan('./data/generated/tpcds_sf1/household_demographics/parquet/**/*.parquet'); +create view inventory as from parquet_scan('./data/generated/tpcds_sf1/inventory/parquet/**/*.parquet'); +create view income_band as from parquet_scan('./data/generated/tpcds_sf1/income_band/parquet/**/*.parquet'); +create view item as from parquet_scan('./data/generated/tpcds_sf1/item/parquet/**/*.parquet'); +create view promotion as from parquet_scan('./data/generated/tpcds_sf1/promotion/parquet/**/*.parquet'); +create view reason as from parquet_scan('./data/generated/tpcds_sf1/reason/parquet/**/*.parquet'); +create view ship_mode as from parquet_scan('./data/generated/tpcds_sf1/ship_mode/parquet/**/*.parquet'); +create view store as from parquet_scan('./data/generated/tpcds_sf1/store/parquet/**/*.parquet'); +create view store_returns as from parquet_scan('./data/generated/tpcds_sf1/store_returns/parquet/**/*.parquet'); +create view store_sales as from parquet_scan('./data/generated/tpcds_sf1/store_sales/parquet/**/*.parquet'); +create view time_dim as from parquet_scan('./data/generated/tpcds_sf1/time_dim/parquet/**/*.parquet'); +create view warehouse as from parquet_scan('./data/generated/tpcds_sf1/warehouse/parquet/**/*.parquet'); +create view web_page as from parquet_scan('./data/generated/tpcds_sf1/web_page/parquet/**/*.parquet'); +create view web_returns as from parquet_scan('./data/generated/tpcds_sf1/web_returns/parquet/**/*.parquet'); +create view web_sales as from parquet_scan('./data/generated/tpcds_sf1/web_sales/parquet/**/*.parquet'); +create view web_site as from parquet_scan('./data/generated/tpcds_sf1/web_site/parquet/**/*.parquet'); \ No newline at end of file diff --git a/benchmark/tpcds/sf1-parquet/q01.benchmark b/benchmark/tpcds/sf1-parquet/q01.benchmark new file mode 100644 index 0000000..80cfeec --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q01.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q01.benchmark +# description: Run query 01 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=1 +QUERY_NUMBER_PADDED=01 diff --git a/benchmark/tpcds/sf1-parquet/q02.benchmark b/benchmark/tpcds/sf1-parquet/q02.benchmark new file mode 100644 index 0000000..fe7d0fd --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q02.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q02.benchmark +# description: Run query 02 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=2 +QUERY_NUMBER_PADDED=02 diff --git a/benchmark/tpcds/sf1-parquet/q03.benchmark b/benchmark/tpcds/sf1-parquet/q03.benchmark new file mode 100644 index 0000000..214ed35 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q03.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q03.benchmark +# description: Run query 03 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=3 +QUERY_NUMBER_PADDED=03 diff --git a/benchmark/tpcds/sf1-parquet/q04.benchmark b/benchmark/tpcds/sf1-parquet/q04.benchmark new file mode 100644 index 0000000..246e1fb --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q04.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q04.benchmark +# description: Run query 04 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=4 +QUERY_NUMBER_PADDED=04 diff --git a/benchmark/tpcds/sf1-parquet/q05.benchmark b/benchmark/tpcds/sf1-parquet/q05.benchmark new file mode 100644 index 0000000..1ea004b --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q05.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q05.benchmark +# description: Run query 05 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=5 +QUERY_NUMBER_PADDED=05 diff --git a/benchmark/tpcds/sf1-parquet/q06.benchmark b/benchmark/tpcds/sf1-parquet/q06.benchmark new file mode 100644 index 0000000..4f887b2 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q06.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q06.benchmark +# description: Run query 06 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=6 +QUERY_NUMBER_PADDED=06 diff --git a/benchmark/tpcds/sf1-parquet/q07.benchmark b/benchmark/tpcds/sf1-parquet/q07.benchmark new file mode 100644 index 0000000..1d116c9 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q07.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q07.benchmark +# description: Run query 07 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=7 +QUERY_NUMBER_PADDED=07 diff --git a/benchmark/tpcds/sf1-parquet/q08.benchmark b/benchmark/tpcds/sf1-parquet/q08.benchmark new file mode 100644 index 0000000..2d0f9cb --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q08.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q08.benchmark +# description: Run query 08 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=8 +QUERY_NUMBER_PADDED=08 diff --git a/benchmark/tpcds/sf1-parquet/q09.benchmark b/benchmark/tpcds/sf1-parquet/q09.benchmark new file mode 100644 index 0000000..d115826 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q09.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q09.benchmark +# description: Run query 09 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=9 +QUERY_NUMBER_PADDED=09 diff --git a/benchmark/tpcds/sf1-parquet/q10.benchmark b/benchmark/tpcds/sf1-parquet/q10.benchmark new file mode 100644 index 0000000..f4a048d --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q10.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q10.benchmark +# description: Run query 10 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=10 +QUERY_NUMBER_PADDED=10 diff --git a/benchmark/tpcds/sf1-parquet/q11.benchmark b/benchmark/tpcds/sf1-parquet/q11.benchmark new file mode 100644 index 0000000..3c1f80a --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q11.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q11.benchmark +# description: Run query 11 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=11 +QUERY_NUMBER_PADDED=11 diff --git a/benchmark/tpcds/sf1-parquet/q12.benchmark b/benchmark/tpcds/sf1-parquet/q12.benchmark new file mode 100644 index 0000000..4af68b7 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q12.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q12.benchmark +# description: Run query 12 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=12 +QUERY_NUMBER_PADDED=12 diff --git a/benchmark/tpcds/sf1-parquet/q13.benchmark b/benchmark/tpcds/sf1-parquet/q13.benchmark new file mode 100644 index 0000000..d4066d6 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q13.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q13.benchmark +# description: Run query 13 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=13 +QUERY_NUMBER_PADDED=13 diff --git a/benchmark/tpcds/sf1-parquet/q14.benchmark b/benchmark/tpcds/sf1-parquet/q14.benchmark new file mode 100644 index 0000000..af8071e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q14.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q14.benchmark +# description: Run query 14 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=14 +QUERY_NUMBER_PADDED=14 diff --git a/benchmark/tpcds/sf1-parquet/q15.benchmark b/benchmark/tpcds/sf1-parquet/q15.benchmark new file mode 100644 index 0000000..7ac477c --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q15.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q15.benchmark +# description: Run query 15 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=15 +QUERY_NUMBER_PADDED=15 diff --git a/benchmark/tpcds/sf1-parquet/q16.benchmark b/benchmark/tpcds/sf1-parquet/q16.benchmark new file mode 100644 index 0000000..e89fc35 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q16.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q16.benchmark +# description: Run query 16 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=16 +QUERY_NUMBER_PADDED=16 diff --git a/benchmark/tpcds/sf1-parquet/q17.benchmark b/benchmark/tpcds/sf1-parquet/q17.benchmark new file mode 100644 index 0000000..78af07a --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q17.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q17.benchmark +# description: Run query 17 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=17 +QUERY_NUMBER_PADDED=17 diff --git a/benchmark/tpcds/sf1-parquet/q18.benchmark b/benchmark/tpcds/sf1-parquet/q18.benchmark new file mode 100644 index 0000000..c993e81 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q18.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q18.benchmark +# description: Run query 18 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=18 +QUERY_NUMBER_PADDED=18 diff --git a/benchmark/tpcds/sf1-parquet/q19.benchmark b/benchmark/tpcds/sf1-parquet/q19.benchmark new file mode 100644 index 0000000..8781304 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q19.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q19.benchmark +# description: Run query 19 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=19 +QUERY_NUMBER_PADDED=19 diff --git a/benchmark/tpcds/sf1-parquet/q20.benchmark b/benchmark/tpcds/sf1-parquet/q20.benchmark new file mode 100644 index 0000000..eabd4f6 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q20.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q20.benchmark +# description: Run query 20 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=20 +QUERY_NUMBER_PADDED=20 diff --git a/benchmark/tpcds/sf1-parquet/q21.benchmark b/benchmark/tpcds/sf1-parquet/q21.benchmark new file mode 100644 index 0000000..acf7b1c --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q21.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q21.benchmark +# description: Run query 21 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=21 +QUERY_NUMBER_PADDED=21 diff --git a/benchmark/tpcds/sf1-parquet/q22.benchmark b/benchmark/tpcds/sf1-parquet/q22.benchmark new file mode 100644 index 0000000..1b1b008 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q22.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q22.benchmark +# description: Run query 22 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=22 +QUERY_NUMBER_PADDED=22 diff --git a/benchmark/tpcds/sf1-parquet/q23.benchmark b/benchmark/tpcds/sf1-parquet/q23.benchmark new file mode 100644 index 0000000..52f434f --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q23.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q23.benchmark +# description: Run query 23 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=23 +QUERY_NUMBER_PADDED=23 diff --git a/benchmark/tpcds/sf1-parquet/q24.benchmark b/benchmark/tpcds/sf1-parquet/q24.benchmark new file mode 100644 index 0000000..17b6627 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q24.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q24.benchmark +# description: Run query 24 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=24 +QUERY_NUMBER_PADDED=24 diff --git a/benchmark/tpcds/sf1-parquet/q25.benchmark b/benchmark/tpcds/sf1-parquet/q25.benchmark new file mode 100644 index 0000000..b349885 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q25.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q25.benchmark +# description: Run query 25 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=25 +QUERY_NUMBER_PADDED=25 diff --git a/benchmark/tpcds/sf1-parquet/q26.benchmark b/benchmark/tpcds/sf1-parquet/q26.benchmark new file mode 100644 index 0000000..4ff955e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q26.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q26.benchmark +# description: Run query 26 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=26 +QUERY_NUMBER_PADDED=26 diff --git a/benchmark/tpcds/sf1-parquet/q27.benchmark b/benchmark/tpcds/sf1-parquet/q27.benchmark new file mode 100644 index 0000000..05a2dae --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q27.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q27.benchmark +# description: Run query 27 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=27 +QUERY_NUMBER_PADDED=27 diff --git a/benchmark/tpcds/sf1-parquet/q28.benchmark b/benchmark/tpcds/sf1-parquet/q28.benchmark new file mode 100644 index 0000000..cbc909e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q28.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q28.benchmark +# description: Run query 28 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=28 +QUERY_NUMBER_PADDED=28 diff --git a/benchmark/tpcds/sf1-parquet/q29.benchmark b/benchmark/tpcds/sf1-parquet/q29.benchmark new file mode 100644 index 0000000..922a7cc --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q29.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q29.benchmark +# description: Run query 29 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=29 +QUERY_NUMBER_PADDED=29 diff --git a/benchmark/tpcds/sf1-parquet/q30.benchmark b/benchmark/tpcds/sf1-parquet/q30.benchmark new file mode 100644 index 0000000..e610adc --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q30.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q30.benchmark +# description: Run query 30 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=30 +QUERY_NUMBER_PADDED=30 diff --git a/benchmark/tpcds/sf1-parquet/q31.benchmark b/benchmark/tpcds/sf1-parquet/q31.benchmark new file mode 100644 index 0000000..d08908e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q31.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q31.benchmark +# description: Run query 31 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=31 +QUERY_NUMBER_PADDED=31 diff --git a/benchmark/tpcds/sf1-parquet/q32.benchmark b/benchmark/tpcds/sf1-parquet/q32.benchmark new file mode 100644 index 0000000..50d6382 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q32.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q32.benchmark +# description: Run query 32 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=32 +QUERY_NUMBER_PADDED=32 diff --git a/benchmark/tpcds/sf1-parquet/q33.benchmark b/benchmark/tpcds/sf1-parquet/q33.benchmark new file mode 100644 index 0000000..b74cc23 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q33.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q33.benchmark +# description: Run query 33 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=33 +QUERY_NUMBER_PADDED=33 diff --git a/benchmark/tpcds/sf1-parquet/q34.benchmark b/benchmark/tpcds/sf1-parquet/q34.benchmark new file mode 100644 index 0000000..10887ab --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q34.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q34.benchmark +# description: Run query 34 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=34 +QUERY_NUMBER_PADDED=34 diff --git a/benchmark/tpcds/sf1-parquet/q35.benchmark b/benchmark/tpcds/sf1-parquet/q35.benchmark new file mode 100644 index 0000000..871d4a5 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q35.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q35.benchmark +# description: Run query 35 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=35 +QUERY_NUMBER_PADDED=35 diff --git a/benchmark/tpcds/sf1-parquet/q36.benchmark b/benchmark/tpcds/sf1-parquet/q36.benchmark new file mode 100644 index 0000000..134c567 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q36.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q36.benchmark +# description: Run query 36 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=36 +QUERY_NUMBER_PADDED=36 diff --git a/benchmark/tpcds/sf1-parquet/q37.benchmark b/benchmark/tpcds/sf1-parquet/q37.benchmark new file mode 100644 index 0000000..5851965 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q37.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q37.benchmark +# description: Run query 37 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=37 +QUERY_NUMBER_PADDED=37 diff --git a/benchmark/tpcds/sf1-parquet/q38.benchmark b/benchmark/tpcds/sf1-parquet/q38.benchmark new file mode 100644 index 0000000..498f842 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q38.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q38.benchmark +# description: Run query 38 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=38 +QUERY_NUMBER_PADDED=38 diff --git a/benchmark/tpcds/sf1-parquet/q39.benchmark b/benchmark/tpcds/sf1-parquet/q39.benchmark new file mode 100644 index 0000000..e7b00bd --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q39.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q39.benchmark +# description: Run query 39 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=39 +QUERY_NUMBER_PADDED=39 diff --git a/benchmark/tpcds/sf1-parquet/q40.benchmark b/benchmark/tpcds/sf1-parquet/q40.benchmark new file mode 100644 index 0000000..e2463d6 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q40.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q40.benchmark +# description: Run query 40 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=40 +QUERY_NUMBER_PADDED=40 diff --git a/benchmark/tpcds/sf1-parquet/q41.benchmark b/benchmark/tpcds/sf1-parquet/q41.benchmark new file mode 100644 index 0000000..6577235 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q41.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q41.benchmark +# description: Run query 41 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=41 +QUERY_NUMBER_PADDED=41 diff --git a/benchmark/tpcds/sf1-parquet/q42.benchmark b/benchmark/tpcds/sf1-parquet/q42.benchmark new file mode 100644 index 0000000..933d648 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q42.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q42.benchmark +# description: Run query 42 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=42 +QUERY_NUMBER_PADDED=42 diff --git a/benchmark/tpcds/sf1-parquet/q43.benchmark b/benchmark/tpcds/sf1-parquet/q43.benchmark new file mode 100644 index 0000000..b60ff92 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q43.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q43.benchmark +# description: Run query 43 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=43 +QUERY_NUMBER_PADDED=43 diff --git a/benchmark/tpcds/sf1-parquet/q44.benchmark b/benchmark/tpcds/sf1-parquet/q44.benchmark new file mode 100644 index 0000000..8baefdb --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q44.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q44.benchmark +# description: Run query 44 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=44 +QUERY_NUMBER_PADDED=44 diff --git a/benchmark/tpcds/sf1-parquet/q45.benchmark b/benchmark/tpcds/sf1-parquet/q45.benchmark new file mode 100644 index 0000000..8e6ecd5 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q45.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q45.benchmark +# description: Run query 45 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=45 +QUERY_NUMBER_PADDED=45 diff --git a/benchmark/tpcds/sf1-parquet/q46.benchmark b/benchmark/tpcds/sf1-parquet/q46.benchmark new file mode 100644 index 0000000..2b266c8 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q46.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q46.benchmark +# description: Run query 46 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=46 +QUERY_NUMBER_PADDED=46 diff --git a/benchmark/tpcds/sf1-parquet/q47.benchmark b/benchmark/tpcds/sf1-parquet/q47.benchmark new file mode 100644 index 0000000..684daef --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q47.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q47.benchmark +# description: Run query 47 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=47 +QUERY_NUMBER_PADDED=47 diff --git a/benchmark/tpcds/sf1-parquet/q48.benchmark b/benchmark/tpcds/sf1-parquet/q48.benchmark new file mode 100644 index 0000000..5452cff --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q48.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q48.benchmark +# description: Run query 48 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=48 +QUERY_NUMBER_PADDED=48 diff --git a/benchmark/tpcds/sf1-parquet/q49.benchmark b/benchmark/tpcds/sf1-parquet/q49.benchmark new file mode 100644 index 0000000..dbbc8bf --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q49.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q49.benchmark +# description: Run query 49 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=49 +QUERY_NUMBER_PADDED=49 diff --git a/benchmark/tpcds/sf1-parquet/q50.benchmark b/benchmark/tpcds/sf1-parquet/q50.benchmark new file mode 100644 index 0000000..37e0ba3 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q50.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q50.benchmark +# description: Run query 50 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=50 +QUERY_NUMBER_PADDED=50 diff --git a/benchmark/tpcds/sf1-parquet/q51.benchmark b/benchmark/tpcds/sf1-parquet/q51.benchmark new file mode 100644 index 0000000..7b8e96d --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q51.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q51.benchmark +# description: Run query 51 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=51 +QUERY_NUMBER_PADDED=51 diff --git a/benchmark/tpcds/sf1-parquet/q52.benchmark b/benchmark/tpcds/sf1-parquet/q52.benchmark new file mode 100644 index 0000000..a4aca4c --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q52.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q52.benchmark +# description: Run query 52 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=52 +QUERY_NUMBER_PADDED=52 diff --git a/benchmark/tpcds/sf1-parquet/q53.benchmark b/benchmark/tpcds/sf1-parquet/q53.benchmark new file mode 100644 index 0000000..80c1f6f --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q53.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q53.benchmark +# description: Run query 53 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=53 +QUERY_NUMBER_PADDED=53 diff --git a/benchmark/tpcds/sf1-parquet/q54.benchmark b/benchmark/tpcds/sf1-parquet/q54.benchmark new file mode 100644 index 0000000..496eb9e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q54.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q54.benchmark +# description: Run query 54 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=54 +QUERY_NUMBER_PADDED=54 diff --git a/benchmark/tpcds/sf1-parquet/q55.benchmark b/benchmark/tpcds/sf1-parquet/q55.benchmark new file mode 100644 index 0000000..1117fac --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q55.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q55.benchmark +# description: Run query 55 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=55 +QUERY_NUMBER_PADDED=55 diff --git a/benchmark/tpcds/sf1-parquet/q56.benchmark b/benchmark/tpcds/sf1-parquet/q56.benchmark new file mode 100644 index 0000000..43c423f --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q56.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q56.benchmark +# description: Run query 56 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=56 +QUERY_NUMBER_PADDED=56 diff --git a/benchmark/tpcds/sf1-parquet/q57.benchmark b/benchmark/tpcds/sf1-parquet/q57.benchmark new file mode 100644 index 0000000..25b36ed --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q57.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q57.benchmark +# description: Run query 57 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=57 +QUERY_NUMBER_PADDED=57 diff --git a/benchmark/tpcds/sf1-parquet/q58.benchmark b/benchmark/tpcds/sf1-parquet/q58.benchmark new file mode 100644 index 0000000..b60ebfc --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q58.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q58.benchmark +# description: Run query 58 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=58 +QUERY_NUMBER_PADDED=58 diff --git a/benchmark/tpcds/sf1-parquet/q59.benchmark b/benchmark/tpcds/sf1-parquet/q59.benchmark new file mode 100644 index 0000000..296ac30 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q59.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q59.benchmark +# description: Run query 59 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=59 +QUERY_NUMBER_PADDED=59 diff --git a/benchmark/tpcds/sf1-parquet/q60.benchmark b/benchmark/tpcds/sf1-parquet/q60.benchmark new file mode 100644 index 0000000..a383742 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q60.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q60.benchmark +# description: Run query 60 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=60 +QUERY_NUMBER_PADDED=60 diff --git a/benchmark/tpcds/sf1-parquet/q61.benchmark b/benchmark/tpcds/sf1-parquet/q61.benchmark new file mode 100644 index 0000000..794f3de --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q61.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q61.benchmark +# description: Run query 61 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=61 +QUERY_NUMBER_PADDED=61 diff --git a/benchmark/tpcds/sf1-parquet/q62.benchmark b/benchmark/tpcds/sf1-parquet/q62.benchmark new file mode 100644 index 0000000..01e52ac --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q62.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q62.benchmark +# description: Run query 62 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=62 +QUERY_NUMBER_PADDED=62 diff --git a/benchmark/tpcds/sf1-parquet/q63.benchmark b/benchmark/tpcds/sf1-parquet/q63.benchmark new file mode 100644 index 0000000..2027bf4 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q63.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q63.benchmark +# description: Run query 63 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=63 +QUERY_NUMBER_PADDED=63 diff --git a/benchmark/tpcds/sf1-parquet/q64.benchmark b/benchmark/tpcds/sf1-parquet/q64.benchmark new file mode 100644 index 0000000..0e7178e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q64.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q64.benchmark +# description: Run query 64 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=64 +QUERY_NUMBER_PADDED=64 diff --git a/benchmark/tpcds/sf1-parquet/q65.benchmark b/benchmark/tpcds/sf1-parquet/q65.benchmark new file mode 100644 index 0000000..b3f6ea2 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q65.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q65.benchmark +# description: Run query 65 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=65 +QUERY_NUMBER_PADDED=65 diff --git a/benchmark/tpcds/sf1-parquet/q66.benchmark b/benchmark/tpcds/sf1-parquet/q66.benchmark new file mode 100644 index 0000000..479dfb5 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q66.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q66.benchmark +# description: Run query 66 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=66 +QUERY_NUMBER_PADDED=66 diff --git a/benchmark/tpcds/sf1-parquet/q67.benchmark b/benchmark/tpcds/sf1-parquet/q67.benchmark new file mode 100644 index 0000000..3971bc0 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q67.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q67.benchmark +# description: Run query 67 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=67 +QUERY_NUMBER_PADDED=67 diff --git a/benchmark/tpcds/sf1-parquet/q68.benchmark b/benchmark/tpcds/sf1-parquet/q68.benchmark new file mode 100644 index 0000000..80b5bd3 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q68.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q68.benchmark +# description: Run query 68 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=68 +QUERY_NUMBER_PADDED=68 diff --git a/benchmark/tpcds/sf1-parquet/q69.benchmark b/benchmark/tpcds/sf1-parquet/q69.benchmark new file mode 100644 index 0000000..20cbc5b --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q69.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q69.benchmark +# description: Run query 69 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=69 +QUERY_NUMBER_PADDED=69 diff --git a/benchmark/tpcds/sf1-parquet/q70.benchmark b/benchmark/tpcds/sf1-parquet/q70.benchmark new file mode 100644 index 0000000..64590ae --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q70.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q70.benchmark +# description: Run query 70 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=70 +QUERY_NUMBER_PADDED=70 diff --git a/benchmark/tpcds/sf1-parquet/q71.benchmark b/benchmark/tpcds/sf1-parquet/q71.benchmark new file mode 100644 index 0000000..bfb61bf --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q71.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q71.benchmark +# description: Run query 71 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=71 +QUERY_NUMBER_PADDED=71 diff --git a/benchmark/tpcds/sf1-parquet/q72.benchmark b/benchmark/tpcds/sf1-parquet/q72.benchmark new file mode 100644 index 0000000..8cab000 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q72.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q72.benchmark +# description: Run query 72 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=72 +QUERY_NUMBER_PADDED=72 diff --git a/benchmark/tpcds/sf1-parquet/q73.benchmark b/benchmark/tpcds/sf1-parquet/q73.benchmark new file mode 100644 index 0000000..23a8ea4 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q73.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q73.benchmark +# description: Run query 73 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=73 +QUERY_NUMBER_PADDED=73 diff --git a/benchmark/tpcds/sf1-parquet/q74.benchmark b/benchmark/tpcds/sf1-parquet/q74.benchmark new file mode 100644 index 0000000..883c44d --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q74.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q74.benchmark +# description: Run query 74 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=74 +QUERY_NUMBER_PADDED=74 diff --git a/benchmark/tpcds/sf1-parquet/q75.benchmark b/benchmark/tpcds/sf1-parquet/q75.benchmark new file mode 100644 index 0000000..6ab4a04 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q75.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q75.benchmark +# description: Run query 75 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=75 +QUERY_NUMBER_PADDED=75 diff --git a/benchmark/tpcds/sf1-parquet/q76.benchmark b/benchmark/tpcds/sf1-parquet/q76.benchmark new file mode 100644 index 0000000..ddb1f4e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q76.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q76.benchmark +# description: Run query 76 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=76 +QUERY_NUMBER_PADDED=76 diff --git a/benchmark/tpcds/sf1-parquet/q77.benchmark b/benchmark/tpcds/sf1-parquet/q77.benchmark new file mode 100644 index 0000000..f69818e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q77.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q77.benchmark +# description: Run query 77 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=77 +QUERY_NUMBER_PADDED=77 diff --git a/benchmark/tpcds/sf1-parquet/q78.benchmark b/benchmark/tpcds/sf1-parquet/q78.benchmark new file mode 100644 index 0000000..9156c52 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q78.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q78.benchmark +# description: Run query 78 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=78 +QUERY_NUMBER_PADDED=78 diff --git a/benchmark/tpcds/sf1-parquet/q79.benchmark b/benchmark/tpcds/sf1-parquet/q79.benchmark new file mode 100644 index 0000000..ae54bba --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q79.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q79.benchmark +# description: Run query 79 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=79 +QUERY_NUMBER_PADDED=79 diff --git a/benchmark/tpcds/sf1-parquet/q80.benchmark b/benchmark/tpcds/sf1-parquet/q80.benchmark new file mode 100644 index 0000000..282c8d9 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q80.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q80.benchmark +# description: Run query 80 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=80 +QUERY_NUMBER_PADDED=80 diff --git a/benchmark/tpcds/sf1-parquet/q81.benchmark b/benchmark/tpcds/sf1-parquet/q81.benchmark new file mode 100644 index 0000000..b33e8e7 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q81.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q81.benchmark +# description: Run query 81 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=81 +QUERY_NUMBER_PADDED=81 diff --git a/benchmark/tpcds/sf1-parquet/q82.benchmark b/benchmark/tpcds/sf1-parquet/q82.benchmark new file mode 100644 index 0000000..b74d67d --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q82.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q82.benchmark +# description: Run query 82 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=82 +QUERY_NUMBER_PADDED=82 diff --git a/benchmark/tpcds/sf1-parquet/q83.benchmark b/benchmark/tpcds/sf1-parquet/q83.benchmark new file mode 100644 index 0000000..79a4221 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q83.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q83.benchmark +# description: Run query 83 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=83 +QUERY_NUMBER_PADDED=83 diff --git a/benchmark/tpcds/sf1-parquet/q84.benchmark b/benchmark/tpcds/sf1-parquet/q84.benchmark new file mode 100644 index 0000000..61b4ba0 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q84.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q84.benchmark +# description: Run query 84 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=84 +QUERY_NUMBER_PADDED=84 diff --git a/benchmark/tpcds/sf1-parquet/q85.benchmark b/benchmark/tpcds/sf1-parquet/q85.benchmark new file mode 100644 index 0000000..19458e3 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q85.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q85.benchmark +# description: Run query 85 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=85 +QUERY_NUMBER_PADDED=85 diff --git a/benchmark/tpcds/sf1-parquet/q86.benchmark b/benchmark/tpcds/sf1-parquet/q86.benchmark new file mode 100644 index 0000000..6b687fc --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q86.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q86.benchmark +# description: Run query 86 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=86 +QUERY_NUMBER_PADDED=86 diff --git a/benchmark/tpcds/sf1-parquet/q87.benchmark b/benchmark/tpcds/sf1-parquet/q87.benchmark new file mode 100644 index 0000000..d1c4a02 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q87.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q87.benchmark +# description: Run query 87 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=87 +QUERY_NUMBER_PADDED=87 diff --git a/benchmark/tpcds/sf1-parquet/q88.benchmark b/benchmark/tpcds/sf1-parquet/q88.benchmark new file mode 100644 index 0000000..758597f --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q88.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q88.benchmark +# description: Run query 88 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=88 +QUERY_NUMBER_PADDED=88 diff --git a/benchmark/tpcds/sf1-parquet/q89.benchmark b/benchmark/tpcds/sf1-parquet/q89.benchmark new file mode 100644 index 0000000..626a3f0 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q89.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q89.benchmark +# description: Run query 89 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=89 +QUERY_NUMBER_PADDED=89 diff --git a/benchmark/tpcds/sf1-parquet/q90.benchmark b/benchmark/tpcds/sf1-parquet/q90.benchmark new file mode 100644 index 0000000..f88d96d --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q90.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q90.benchmark +# description: Run query 90 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=90 +QUERY_NUMBER_PADDED=90 diff --git a/benchmark/tpcds/sf1-parquet/q91.benchmark b/benchmark/tpcds/sf1-parquet/q91.benchmark new file mode 100644 index 0000000..85d5ef8 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q91.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q91.benchmark +# description: Run query 91 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=91 +QUERY_NUMBER_PADDED=91 diff --git a/benchmark/tpcds/sf1-parquet/q92.benchmark b/benchmark/tpcds/sf1-parquet/q92.benchmark new file mode 100644 index 0000000..880af0b --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q92.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q92.benchmark +# description: Run query 92 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=92 +QUERY_NUMBER_PADDED=92 diff --git a/benchmark/tpcds/sf1-parquet/q93.benchmark b/benchmark/tpcds/sf1-parquet/q93.benchmark new file mode 100644 index 0000000..1b5c5f6 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q93.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q93.benchmark +# description: Run query 93 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=93 +QUERY_NUMBER_PADDED=93 diff --git a/benchmark/tpcds/sf1-parquet/q94.benchmark b/benchmark/tpcds/sf1-parquet/q94.benchmark new file mode 100644 index 0000000..46886f2 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q94.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q94.benchmark +# description: Run query 94 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=94 +QUERY_NUMBER_PADDED=94 diff --git a/benchmark/tpcds/sf1-parquet/q95.benchmark b/benchmark/tpcds/sf1-parquet/q95.benchmark new file mode 100644 index 0000000..35b283e --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q95.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q95.benchmark +# description: Run query 95 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=95 +QUERY_NUMBER_PADDED=95 diff --git a/benchmark/tpcds/sf1-parquet/q96.benchmark b/benchmark/tpcds/sf1-parquet/q96.benchmark new file mode 100644 index 0000000..2955000 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q96.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q96.benchmark +# description: Run query 96 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=96 +QUERY_NUMBER_PADDED=96 diff --git a/benchmark/tpcds/sf1-parquet/q97.benchmark b/benchmark/tpcds/sf1-parquet/q97.benchmark new file mode 100644 index 0000000..1d2aa64 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q97.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q97.benchmark +# description: Run query 97 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=97 +QUERY_NUMBER_PADDED=97 diff --git a/benchmark/tpcds/sf1-parquet/q98.benchmark b/benchmark/tpcds/sf1-parquet/q98.benchmark new file mode 100644 index 0000000..c36e0e6 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q98.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q98.benchmark +# description: Run query 98 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=98 +QUERY_NUMBER_PADDED=98 diff --git a/benchmark/tpcds/sf1-parquet/q99.benchmark b/benchmark/tpcds/sf1-parquet/q99.benchmark new file mode 100644 index 0000000..2e6d066 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/q99.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpcds/sf1/q99.benchmark +# description: Run query 99 from the TPC-DS benchmark +# group: [sf1] + +template benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in +QUERY_NUMBER=99 +QUERY_NUMBER_PADDED=99 diff --git a/benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in b/benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in new file mode 100644 index 0000000..37dbc34 --- /dev/null +++ b/benchmark/tpcds/sf1-parquet/tpcds_sf1.benchmark.in @@ -0,0 +1,17 @@ +# name: ${FILE_PATH} +# description: ${DESCRIPTION} +# group: [tpcds-sf1] + +name DSQ${QUERY_NUMBER_PADDED} +group tpcds +subgroup sf1 + +require delta + +require parquet + +load benchmark/tpcds/sf1-parquet/load.sql + +run duckdb/extension/tpcds/dsdgen/queries/${QUERY_NUMBER_PADDED}.sql + +result duckdb/extension/tpcds/dsdgen/answers/sf1/${QUERY_NUMBER_PADDED}.csv diff --git a/benchmark/tpch/sf1-delta-remote/load.sql b/benchmark/tpch/sf1-delta-remote/load.sql new file mode 100644 index 0000000..a095ffd --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/load.sql @@ -0,0 +1,8 @@ +create view customer as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/customer/delta_lake'); +create view lineitem as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/lineitem/delta_lake'); +create view nation as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/nation/delta_lake'); +create view orders as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/orders/delta_lake'); +create view part as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/part/delta_lake'); +create view partsupp as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/partsupp/delta_lake'); +create view region as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/region/delta_lake'); +create view supplier as from delta_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/supplier/delta_lake'); \ No newline at end of file diff --git a/benchmark/tpch/sf1-delta-remote/q01.benchmark b/benchmark/tpch/sf1-delta-remote/q01.benchmark new file mode 100644 index 0000000..df280b4 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q01.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q01.benchmark +# description: Run query 01 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=1 +QUERY_NUMBER_PADDED=01 diff --git a/benchmark/tpch/sf1-delta-remote/q02.benchmark b/benchmark/tpch/sf1-delta-remote/q02.benchmark new file mode 100644 index 0000000..94b9891 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q02.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q02.benchmark +# description: Run query 02 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=2 +QUERY_NUMBER_PADDED=02 diff --git a/benchmark/tpch/sf1-delta-remote/q03.benchmark b/benchmark/tpch/sf1-delta-remote/q03.benchmark new file mode 100644 index 0000000..6a63a9a --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q03.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q03.benchmark +# description: Run query 03 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=3 +QUERY_NUMBER_PADDED=03 diff --git a/benchmark/tpch/sf1-delta-remote/q04.benchmark b/benchmark/tpch/sf1-delta-remote/q04.benchmark new file mode 100644 index 0000000..7049851 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q04.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q04.benchmark +# description: Run query 04 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=4 +QUERY_NUMBER_PADDED=04 diff --git a/benchmark/tpch/sf1-delta-remote/q05.benchmark b/benchmark/tpch/sf1-delta-remote/q05.benchmark new file mode 100644 index 0000000..4f93fb7 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q05.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q05.benchmark +# description: Run query 05 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=5 +QUERY_NUMBER_PADDED=05 diff --git a/benchmark/tpch/sf1-delta-remote/q06.benchmark b/benchmark/tpch/sf1-delta-remote/q06.benchmark new file mode 100644 index 0000000..78854bb --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q06.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q06.benchmark +# description: Run query 06 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=6 +QUERY_NUMBER_PADDED=06 diff --git a/benchmark/tpch/sf1-delta-remote/q07.benchmark b/benchmark/tpch/sf1-delta-remote/q07.benchmark new file mode 100644 index 0000000..9bf2a7b --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q07.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q07.benchmark +# description: Run query 07 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=7 +QUERY_NUMBER_PADDED=07 diff --git a/benchmark/tpch/sf1-delta-remote/q08.benchmark b/benchmark/tpch/sf1-delta-remote/q08.benchmark new file mode 100644 index 0000000..a7f1a80 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q08.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q08.benchmark +# description: Run query 08 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=8 +QUERY_NUMBER_PADDED=08 diff --git a/benchmark/tpch/sf1-delta-remote/q09.benchmark b/benchmark/tpch/sf1-delta-remote/q09.benchmark new file mode 100644 index 0000000..272167a --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q09.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q09.benchmark +# description: Run query 09 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=9 +QUERY_NUMBER_PADDED=09 diff --git a/benchmark/tpch/sf1-delta-remote/q10.benchmark b/benchmark/tpch/sf1-delta-remote/q10.benchmark new file mode 100644 index 0000000..14822e3 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q10.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q10.benchmark +# description: Run query 10 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=10 +QUERY_NUMBER_PADDED=10 diff --git a/benchmark/tpch/sf1-delta-remote/q11.benchmark b/benchmark/tpch/sf1-delta-remote/q11.benchmark new file mode 100644 index 0000000..df5276e --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q11.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q11.benchmark +# description: Run query 11 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=11 +QUERY_NUMBER_PADDED=11 diff --git a/benchmark/tpch/sf1-delta-remote/q12.benchmark b/benchmark/tpch/sf1-delta-remote/q12.benchmark new file mode 100644 index 0000000..fee7641 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q12.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q12.benchmark +# description: Run query 12 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=12 +QUERY_NUMBER_PADDED=12 diff --git a/benchmark/tpch/sf1-delta-remote/q13.benchmark b/benchmark/tpch/sf1-delta-remote/q13.benchmark new file mode 100644 index 0000000..2050dd4 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q13.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q13.benchmark +# description: Run query 13 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=13 +QUERY_NUMBER_PADDED=13 diff --git a/benchmark/tpch/sf1-delta-remote/q14.benchmark b/benchmark/tpch/sf1-delta-remote/q14.benchmark new file mode 100644 index 0000000..e458993 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q14.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q14.benchmark +# description: Run query 14 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=14 +QUERY_NUMBER_PADDED=14 diff --git a/benchmark/tpch/sf1-delta-remote/q15.benchmark b/benchmark/tpch/sf1-delta-remote/q15.benchmark new file mode 100644 index 0000000..fcd0523 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q15.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q15.benchmark +# description: Run query 15 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=15 +QUERY_NUMBER_PADDED=15 diff --git a/benchmark/tpch/sf1-delta-remote/q16.benchmark b/benchmark/tpch/sf1-delta-remote/q16.benchmark new file mode 100644 index 0000000..a7524ad --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q16.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q16.benchmark +# description: Run query 16 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=16 +QUERY_NUMBER_PADDED=16 diff --git a/benchmark/tpch/sf1-delta-remote/q17.benchmark b/benchmark/tpch/sf1-delta-remote/q17.benchmark new file mode 100644 index 0000000..05c9584 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q17.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q17.benchmark +# description: Run query 17 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=17 +QUERY_NUMBER_PADDED=17 diff --git a/benchmark/tpch/sf1-delta-remote/q18.benchmark b/benchmark/tpch/sf1-delta-remote/q18.benchmark new file mode 100644 index 0000000..a645646 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q18.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q18.benchmark +# description: Run query 18 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=18 +QUERY_NUMBER_PADDED=18 diff --git a/benchmark/tpch/sf1-delta-remote/q19.benchmark b/benchmark/tpch/sf1-delta-remote/q19.benchmark new file mode 100644 index 0000000..3bc9baf --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q19.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q19.benchmark +# description: Run query 19 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=19 +QUERY_NUMBER_PADDED=19 diff --git a/benchmark/tpch/sf1-delta-remote/q20.benchmark b/benchmark/tpch/sf1-delta-remote/q20.benchmark new file mode 100644 index 0000000..766e1d2 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q20.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q20.benchmark +# description: Run query 20 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=20 +QUERY_NUMBER_PADDED=20 diff --git a/benchmark/tpch/sf1-delta-remote/q21.benchmark b/benchmark/tpch/sf1-delta-remote/q21.benchmark new file mode 100644 index 0000000..6d75456 --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q21.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q21.benchmark +# description: Run query 21 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=21 +QUERY_NUMBER_PADDED=21 diff --git a/benchmark/tpch/sf1-delta-remote/q22.benchmark b/benchmark/tpch/sf1-delta-remote/q22.benchmark new file mode 100644 index 0000000..c808aad --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/q22.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q22.benchmark +# description: Run query 22 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=22 +QUERY_NUMBER_PADDED=22 diff --git a/benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in b/benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in new file mode 100644 index 0000000..c94ee1c --- /dev/null +++ b/benchmark/tpch/sf1-delta-remote/tpch_sf1_delta.benchmark.in @@ -0,0 +1,19 @@ +# name: ${FILE_PATH} +# description: ${DESCRIPTION} +# group: [sf1] + +name Q${QUERY_NUMBER_PADDED} +group tpch +subgroup sf1 + +require delta + +require parquet + +require httpfs + +load benchmark/tpch/sf1-delta-remote/load.sql + +run duckdb/extension/tpch/dbgen/queries/q${QUERY_NUMBER_PADDED}.sql + +result duckdb/extension/tpch/dbgen/answers/sf0.01/q${QUERY_NUMBER_PADDED}.csv \ No newline at end of file diff --git a/benchmark/tpch/sf1-delta/load.sql b/benchmark/tpch/sf1-delta/load.sql new file mode 100644 index 0000000..5d97a08 --- /dev/null +++ b/benchmark/tpch/sf1-delta/load.sql @@ -0,0 +1,8 @@ +create view customer as from delta_scan('./data/generated/tpch_sf1/customer/delta_lake'); +create view lineitem as from delta_scan('./data/generated/tpch_sf1/lineitem/delta_lake'); +create view nation as from delta_scan('./data/generated/tpch_sf1/nation/delta_lake'); +create view orders as from delta_scan('./data/generated/tpch_sf1/orders/delta_lake'); +create view part as from delta_scan('./data/generated/tpch_sf1/part/delta_lake'); +create view partsupp as from delta_scan('./data/generated/tpch_sf1/partsupp/delta_lake'); +create view region as from delta_scan('./data/generated/tpch_sf1/region/delta_lake'); +create view supplier as from delta_scan('./data/generated/tpch_sf1/supplier/delta_lake'); \ No newline at end of file diff --git a/benchmark/tpch/sf1-delta/q01.benchmark b/benchmark/tpch/sf1-delta/q01.benchmark new file mode 100644 index 0000000..c002271 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q01.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q01.benchmark +# description: Run query 01 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=1 +QUERY_NUMBER_PADDED=01 diff --git a/benchmark/tpch/sf1-delta/q02.benchmark b/benchmark/tpch/sf1-delta/q02.benchmark new file mode 100644 index 0000000..1b29623 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q02.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q02.benchmark +# description: Run query 02 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=2 +QUERY_NUMBER_PADDED=02 diff --git a/benchmark/tpch/sf1-delta/q03.benchmark b/benchmark/tpch/sf1-delta/q03.benchmark new file mode 100644 index 0000000..105db6c --- /dev/null +++ b/benchmark/tpch/sf1-delta/q03.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q03.benchmark +# description: Run query 03 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=3 +QUERY_NUMBER_PADDED=03 diff --git a/benchmark/tpch/sf1-delta/q04.benchmark b/benchmark/tpch/sf1-delta/q04.benchmark new file mode 100644 index 0000000..e6adaa9 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q04.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q04.benchmark +# description: Run query 04 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=4 +QUERY_NUMBER_PADDED=04 diff --git a/benchmark/tpch/sf1-delta/q05.benchmark b/benchmark/tpch/sf1-delta/q05.benchmark new file mode 100644 index 0000000..c3d58fa --- /dev/null +++ b/benchmark/tpch/sf1-delta/q05.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q05.benchmark +# description: Run query 05 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=5 +QUERY_NUMBER_PADDED=05 diff --git a/benchmark/tpch/sf1-delta/q06.benchmark b/benchmark/tpch/sf1-delta/q06.benchmark new file mode 100644 index 0000000..f0f4edf --- /dev/null +++ b/benchmark/tpch/sf1-delta/q06.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q06.benchmark +# description: Run query 06 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=6 +QUERY_NUMBER_PADDED=06 diff --git a/benchmark/tpch/sf1-delta/q07.benchmark b/benchmark/tpch/sf1-delta/q07.benchmark new file mode 100644 index 0000000..ef73acb --- /dev/null +++ b/benchmark/tpch/sf1-delta/q07.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q07.benchmark +# description: Run query 07 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=7 +QUERY_NUMBER_PADDED=07 diff --git a/benchmark/tpch/sf1-delta/q08.benchmark b/benchmark/tpch/sf1-delta/q08.benchmark new file mode 100644 index 0000000..ea07628 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q08.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q08.benchmark +# description: Run query 08 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=8 +QUERY_NUMBER_PADDED=08 diff --git a/benchmark/tpch/sf1-delta/q09.benchmark b/benchmark/tpch/sf1-delta/q09.benchmark new file mode 100644 index 0000000..d56ce49 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q09.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q09.benchmark +# description: Run query 09 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=9 +QUERY_NUMBER_PADDED=09 diff --git a/benchmark/tpch/sf1-delta/q10.benchmark b/benchmark/tpch/sf1-delta/q10.benchmark new file mode 100644 index 0000000..c288da4 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q10.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q10.benchmark +# description: Run query 10 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=10 +QUERY_NUMBER_PADDED=10 diff --git a/benchmark/tpch/sf1-delta/q11.benchmark b/benchmark/tpch/sf1-delta/q11.benchmark new file mode 100644 index 0000000..67840f1 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q11.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q11.benchmark +# description: Run query 11 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=11 +QUERY_NUMBER_PADDED=11 diff --git a/benchmark/tpch/sf1-delta/q12.benchmark b/benchmark/tpch/sf1-delta/q12.benchmark new file mode 100644 index 0000000..875acad --- /dev/null +++ b/benchmark/tpch/sf1-delta/q12.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q12.benchmark +# description: Run query 12 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=12 +QUERY_NUMBER_PADDED=12 diff --git a/benchmark/tpch/sf1-delta/q13.benchmark b/benchmark/tpch/sf1-delta/q13.benchmark new file mode 100644 index 0000000..cb28472 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q13.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q13.benchmark +# description: Run query 13 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=13 +QUERY_NUMBER_PADDED=13 diff --git a/benchmark/tpch/sf1-delta/q14.benchmark b/benchmark/tpch/sf1-delta/q14.benchmark new file mode 100644 index 0000000..8cd85a0 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q14.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q14.benchmark +# description: Run query 14 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=14 +QUERY_NUMBER_PADDED=14 diff --git a/benchmark/tpch/sf1-delta/q15.benchmark b/benchmark/tpch/sf1-delta/q15.benchmark new file mode 100644 index 0000000..b18fa75 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q15.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q15.benchmark +# description: Run query 15 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=15 +QUERY_NUMBER_PADDED=15 diff --git a/benchmark/tpch/sf1-delta/q16.benchmark b/benchmark/tpch/sf1-delta/q16.benchmark new file mode 100644 index 0000000..9fa0790 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q16.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q16.benchmark +# description: Run query 16 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=16 +QUERY_NUMBER_PADDED=16 diff --git a/benchmark/tpch/sf1-delta/q17.benchmark b/benchmark/tpch/sf1-delta/q17.benchmark new file mode 100644 index 0000000..fc64954 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q17.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q17.benchmark +# description: Run query 17 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=17 +QUERY_NUMBER_PADDED=17 diff --git a/benchmark/tpch/sf1-delta/q18.benchmark b/benchmark/tpch/sf1-delta/q18.benchmark new file mode 100644 index 0000000..13f17a1 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q18.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q18.benchmark +# description: Run query 18 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=18 +QUERY_NUMBER_PADDED=18 diff --git a/benchmark/tpch/sf1-delta/q19.benchmark b/benchmark/tpch/sf1-delta/q19.benchmark new file mode 100644 index 0000000..88f1bba --- /dev/null +++ b/benchmark/tpch/sf1-delta/q19.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q19.benchmark +# description: Run query 19 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=19 +QUERY_NUMBER_PADDED=19 diff --git a/benchmark/tpch/sf1-delta/q20.benchmark b/benchmark/tpch/sf1-delta/q20.benchmark new file mode 100644 index 0000000..3d07a89 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q20.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q20.benchmark +# description: Run query 20 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=20 +QUERY_NUMBER_PADDED=20 diff --git a/benchmark/tpch/sf1-delta/q21.benchmark b/benchmark/tpch/sf1-delta/q21.benchmark new file mode 100644 index 0000000..29c0162 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q21.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q21.benchmark +# description: Run query 21 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=21 +QUERY_NUMBER_PADDED=21 diff --git a/benchmark/tpch/sf1-delta/q22.benchmark b/benchmark/tpch/sf1-delta/q22.benchmark new file mode 100644 index 0000000..1d9cc53 --- /dev/null +++ b/benchmark/tpch/sf1-delta/q22.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q22.benchmark +# description: Run query 22 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=22 +QUERY_NUMBER_PADDED=22 diff --git a/benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in b/benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in new file mode 100644 index 0000000..8b8ef40 --- /dev/null +++ b/benchmark/tpch/sf1-delta/tpch_sf1_delta.benchmark.in @@ -0,0 +1,17 @@ +# name: ${FILE_PATH} +# description: ${DESCRIPTION} +# group: [sf1] + +name Q${QUERY_NUMBER_PADDED} +group tpch +subgroup sf1 + +require delta + +require parquet + +load benchmark/tpch/sf1-delta/load.sql + +run duckdb/extension/tpch/dbgen/queries/q${QUERY_NUMBER_PADDED}.sql + +result duckdb/extension/tpch/dbgen/answers/sf1/q${QUERY_NUMBER_PADDED}.csv \ No newline at end of file diff --git a/benchmark/tpch/sf1-parquet-remote/load.sql b/benchmark/tpch/sf1-parquet-remote/load.sql new file mode 100644 index 0000000..23c8ed2 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/load.sql @@ -0,0 +1,8 @@ +create view customer as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/customer/parquet/**/*.parquet'); +create view lineitem as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/lineitem/parquet/**/*.parquet'); +create view nation as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/nation/parquet/**/*.parquet'); +create view orders as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/orders/parquet/**/*.parquet'); +create view part as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/part/parquet/**/*.parquet'); +create view partsupp as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/partsupp/parquet/**/*.parquet'); +create view region as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/region/parquet/**/*.parquet'); +create view supplier as from parquet_scan('s3://test-bucket-ceiveran/delta_testing/tpch_sf0_01' || '/supplier/parquet/**/*.parquet'); \ No newline at end of file diff --git a/benchmark/tpch/sf1-parquet-remote/q01.benchmark b/benchmark/tpch/sf1-parquet-remote/q01.benchmark new file mode 100644 index 0000000..bb83e6a --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q01.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q01.benchmark +# description: Run query 01 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=1 +QUERY_NUMBER_PADDED=01 diff --git a/benchmark/tpch/sf1-parquet-remote/q02.benchmark b/benchmark/tpch/sf1-parquet-remote/q02.benchmark new file mode 100644 index 0000000..577415f --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q02.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q02.benchmark +# description: Run query 02 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=2 +QUERY_NUMBER_PADDED=02 diff --git a/benchmark/tpch/sf1-parquet-remote/q03.benchmark b/benchmark/tpch/sf1-parquet-remote/q03.benchmark new file mode 100644 index 0000000..665980c --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q03.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q03.benchmark +# description: Run query 03 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=3 +QUERY_NUMBER_PADDED=03 diff --git a/benchmark/tpch/sf1-parquet-remote/q04.benchmark b/benchmark/tpch/sf1-parquet-remote/q04.benchmark new file mode 100644 index 0000000..537f15d --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q04.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q04.benchmark +# description: Run query 04 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=4 +QUERY_NUMBER_PADDED=04 diff --git a/benchmark/tpch/sf1-parquet-remote/q05.benchmark b/benchmark/tpch/sf1-parquet-remote/q05.benchmark new file mode 100644 index 0000000..616bc5d --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q05.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q05.benchmark +# description: Run query 05 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=5 +QUERY_NUMBER_PADDED=05 diff --git a/benchmark/tpch/sf1-parquet-remote/q06.benchmark b/benchmark/tpch/sf1-parquet-remote/q06.benchmark new file mode 100644 index 0000000..8a471a9 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q06.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q06.benchmark +# description: Run query 06 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=6 +QUERY_NUMBER_PADDED=06 diff --git a/benchmark/tpch/sf1-parquet-remote/q07.benchmark b/benchmark/tpch/sf1-parquet-remote/q07.benchmark new file mode 100644 index 0000000..02f87dd --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q07.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q07.benchmark +# description: Run query 07 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=7 +QUERY_NUMBER_PADDED=07 diff --git a/benchmark/tpch/sf1-parquet-remote/q08.benchmark b/benchmark/tpch/sf1-parquet-remote/q08.benchmark new file mode 100644 index 0000000..69a8b4f --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q08.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q08.benchmark +# description: Run query 08 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=8 +QUERY_NUMBER_PADDED=08 diff --git a/benchmark/tpch/sf1-parquet-remote/q09.benchmark b/benchmark/tpch/sf1-parquet-remote/q09.benchmark new file mode 100644 index 0000000..bbd0413 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q09.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q09.benchmark +# description: Run query 09 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=9 +QUERY_NUMBER_PADDED=09 diff --git a/benchmark/tpch/sf1-parquet-remote/q10.benchmark b/benchmark/tpch/sf1-parquet-remote/q10.benchmark new file mode 100644 index 0000000..8f0564e --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q10.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q10.benchmark +# description: Run query 10 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=10 +QUERY_NUMBER_PADDED=10 diff --git a/benchmark/tpch/sf1-parquet-remote/q11.benchmark b/benchmark/tpch/sf1-parquet-remote/q11.benchmark new file mode 100644 index 0000000..61f7a01 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q11.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q11.benchmark +# description: Run query 11 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=11 +QUERY_NUMBER_PADDED=11 diff --git a/benchmark/tpch/sf1-parquet-remote/q12.benchmark b/benchmark/tpch/sf1-parquet-remote/q12.benchmark new file mode 100644 index 0000000..48e2b2c --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q12.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q12.benchmark +# description: Run query 12 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=12 +QUERY_NUMBER_PADDED=12 diff --git a/benchmark/tpch/sf1-parquet-remote/q13.benchmark b/benchmark/tpch/sf1-parquet-remote/q13.benchmark new file mode 100644 index 0000000..f5b2ee3 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q13.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q13.benchmark +# description: Run query 13 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=13 +QUERY_NUMBER_PADDED=13 diff --git a/benchmark/tpch/sf1-parquet-remote/q14.benchmark b/benchmark/tpch/sf1-parquet-remote/q14.benchmark new file mode 100644 index 0000000..2ddcaa5 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q14.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q14.benchmark +# description: Run query 14 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=14 +QUERY_NUMBER_PADDED=14 diff --git a/benchmark/tpch/sf1-parquet-remote/q15.benchmark b/benchmark/tpch/sf1-parquet-remote/q15.benchmark new file mode 100644 index 0000000..f7414fd --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q15.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q15.benchmark +# description: Run query 15 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=15 +QUERY_NUMBER_PADDED=15 diff --git a/benchmark/tpch/sf1-parquet-remote/q16.benchmark b/benchmark/tpch/sf1-parquet-remote/q16.benchmark new file mode 100644 index 0000000..4375e61 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q16.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q16.benchmark +# description: Run query 16 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=16 +QUERY_NUMBER_PADDED=16 diff --git a/benchmark/tpch/sf1-parquet-remote/q17.benchmark b/benchmark/tpch/sf1-parquet-remote/q17.benchmark new file mode 100644 index 0000000..df38847 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q17.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q17.benchmark +# description: Run query 17 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=17 +QUERY_NUMBER_PADDED=17 diff --git a/benchmark/tpch/sf1-parquet-remote/q18.benchmark b/benchmark/tpch/sf1-parquet-remote/q18.benchmark new file mode 100644 index 0000000..d01d822 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q18.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q18.benchmark +# description: Run query 18 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=18 +QUERY_NUMBER_PADDED=18 diff --git a/benchmark/tpch/sf1-parquet-remote/q19.benchmark b/benchmark/tpch/sf1-parquet-remote/q19.benchmark new file mode 100644 index 0000000..7a5a33e --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q19.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q19.benchmark +# description: Run query 19 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=19 +QUERY_NUMBER_PADDED=19 diff --git a/benchmark/tpch/sf1-parquet-remote/q20.benchmark b/benchmark/tpch/sf1-parquet-remote/q20.benchmark new file mode 100644 index 0000000..e1ff9d0 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q20.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q20.benchmark +# description: Run query 20 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=20 +QUERY_NUMBER_PADDED=20 diff --git a/benchmark/tpch/sf1-parquet-remote/q21.benchmark b/benchmark/tpch/sf1-parquet-remote/q21.benchmark new file mode 100644 index 0000000..af179e8 --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q21.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q21.benchmark +# description: Run query 21 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=21 +QUERY_NUMBER_PADDED=21 diff --git a/benchmark/tpch/sf1-parquet-remote/q22.benchmark b/benchmark/tpch/sf1-parquet-remote/q22.benchmark new file mode 100644 index 0000000..527adcf --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/q22.benchmark @@ -0,0 +1,7 @@ +# name: benchmark/tpch/sf1-delta/q22.benchmark +# description: Run query 22 from the TPC-H benchmark +# group: [sf1-parquet] + +template benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in +QUERY_NUMBER=22 +QUERY_NUMBER_PADDED=22 diff --git a/benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in b/benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in new file mode 100644 index 0000000..dbc4e0a --- /dev/null +++ b/benchmark/tpch/sf1-parquet-remote/tpch_sf1_delta.benchmark.in @@ -0,0 +1,19 @@ +# name: ${FILE_PATH} +# description: ${DESCRIPTION} +# group: [sf1] + +name Q${QUERY_NUMBER_PADDED} +group tpch +subgroup sf1 + +require delta + +require parquet + +require httpfs + +load benchmark/tpch/sf1-parquet-remote/load.sql + +run duckdb/extension/tpch/dbgen/queries/q${QUERY_NUMBER_PADDED}.sql + +result duckdb/extension/tpch/dbgen/answers/sf0.01/q${QUERY_NUMBER_PADDED}.csv \ No newline at end of file diff --git a/duckdb b/duckdb index c8fa71c..45787e5 160000 --- a/duckdb +++ b/duckdb @@ -1 +1 @@ -Subproject commit c8fa71cd5ed2546c08f1ef5f2c4b0fb1420ddaff +Subproject commit 45787e5f9f8bdb9dce97890c1ac7a7eb2dc3a49f diff --git a/extension-ci-tools b/extension-ci-tools index ebf18ed..638a972 160000 --- a/extension-ci-tools +++ b/extension-ci-tools @@ -1 +1 @@ -Subproject commit ebf18ed49b11e656adc20d721bf7dac2de15d439 +Subproject commit 638a97210d162f6133fea31c6b524c516d10e515 diff --git a/extension_config.cmake b/extension_config.cmake index 5324873..c1b6e20 100644 --- a/extension_config.cmake +++ b/extension_config.cmake @@ -4,25 +4,4 @@ duckdb_extension_load(delta SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR} LOAD_TESTS -) - -# Build the httpfs extension to test with s3/http -duckdb_extension_load(httpfs) - -# Build the azure extension to test with azure -duckdb_extension_load(azure - LOAD_TESTS - GIT_URL https://github.com/duckdb/duckdb_azure - GIT_TAG d92b3b87ff06e6694883b1a6dbf684eeefedd609 -) - -# Build the aws extension to test with credential providers -duckdb_extension_load(aws - LOAD_TESTS - GIT_URL https://github.com/duckdb/duckdb_aws - GIT_TAG 42c78d3f99e1a188a2b178ea59e3c17907af4fb2 -) - -# Build the tpch and tpcds extension for testing/benchmarking -duckdb_extension_load(tpch) -duckdb_extension_load(tpcds) +) \ No newline at end of file diff --git a/scripts/generate_test_data.py b/scripts/generate_test_data.py index eaf9d30..73d3d1b 100644 --- a/scripts/generate_test_data.py +++ b/scripts/generate_test_data.py @@ -13,7 +13,45 @@ def delete_old_files(): if (os.path.isdir(BASE_PATH)): shutil.rmtree(BASE_PATH) -def generate_test_data_delta_rs(path, query, part_column=False): + +def generate_test_data_delta_rs_multi(path, init, tables): + """ + generate_test_data_delta_rs generates some test data using delta-rs and duckdb + + :param path: the test data path (prefixed with BASE_PATH) + :param init: a duckdb query initializes the duckdb tables that will be written + :param tables: list of dicts containing the fields: name, query, (optionally) part_column + :return: describe what it returns + """ + generated_path = f"{BASE_PATH}/{path}" + + if (os.path.isdir(generated_path)): + return + + con = duckdb.connect() + + con.sql(init) + + for table in tables: + # Write delta table data + test_table_df = con.sql(table['query']).df() + table_name = table['name'] + + os.makedirs(f"{generated_path}/{table_name}/delta_lake", exist_ok=True) + os.makedirs(f"{generated_path}/{table_name}/duckdb", exist_ok=True) + + if 'part_column' in table: + write_deltalake(f"{generated_path}/{table_name}/delta_lake", test_table_df, partition_by=[table['part_column']]) + else: + write_deltalake(f"{generated_path}/{table_name}/delta_lake", test_table_df) + + # Write DuckDB's reference data + if 'part_column' in table: + con.sql(f"COPY ({table['query']}) to '{generated_path}/{table_name}/duckdb' (FORMAT parquet, PARTITION_BY {table['part_column']})") + else: + con.sql(f"COPY ({table['query']}) to '{generated_path}/{table_name}/duckdb/data.parquet' (FORMAT parquet)") + +def generate_test_data_delta_rs(path, query, part_column=False, add_golden_table=True): """ generate_test_data_delta_rs generates some test data using delta-rs and duckdb @@ -38,12 +76,13 @@ def generate_test_data_delta_rs(path, query, part_column=False): else: write_deltalake(f"{generated_path}/delta_lake", test_table_df) - # Write DuckDB's reference data - os.mkdir(f'{generated_path}/duckdb') - if (part_column): - con.sql(f"COPY test_table to '{generated_path}/duckdb' (FORMAT parquet, PARTITION_BY {part_column})") - else: - con.sql(f"COPY test_table to '{generated_path}/duckdb/data.parquet' (FORMAT parquet)") + if add_golden_table: + # Write DuckDB's reference data + os.mkdir(f'{generated_path}/duckdb') + if (part_column): + con.sql(f"COPY test_table to '{generated_path}/duckdb' (FORMAT parquet, PARTITION_BY {part_column})") + else: + con.sql(f"COPY test_table to '{generated_path}/duckdb/data.parquet' (FORMAT parquet)") def generate_test_data_pyspark(name, current_path, input_path, delete_predicate = False): """ @@ -86,13 +125,20 @@ def generate_test_data_pyspark(name, current_path, input_path, delete_predicate if delete_predicate: deltaTable.delete(delete_predicate) - ## Writing the + ## WRITING THE PARQUET FILES df = spark.table(f'test_table_{name}') df.write.parquet(parquet_reference_path, mode='overwrite') # TO CLEAN, uncomment # delete_old_files() +### TPCH SF1 +init = "call dbgen(sf=1);" +tables = ["customer","lineitem","nation","orders","part","partsupp","region","supplier"] +queries = [f"from {x}" for x in tables] +tables = [{'name': x[0], 'query':x[1]} for x in zip(tables,queries)] +generate_test_data_delta_rs_multi("delta_rs_tpch_sf1", init, tables) + ### Simple partitioned table query = "CREATE table test_table AS SELECT i, i%2 as part from range(0,10) tbl(i);" generate_test_data_delta_rs("simple_partitioned", query, "part") @@ -112,14 +158,18 @@ def generate_test_data_pyspark(name, current_path, input_path, delete_predicate query += "CREATE table test_table AS SELECT *, l_orderkey%10 as part from lineitem;" generate_test_data_delta_rs("lineitem_sf1_10part", query, "part") +## Simple table with a blob as a value +query = "create table test_table as SELECT encode('ABCDE') as blob, encode('ABCDE') as blob_part, 'ABCDE' as string UNION ALL SELECT encode('😈') as blob, encode('😈') as blob_part, '😈' as string" +generate_test_data_delta_rs("simple_blob_table", query, "blob_part", add_golden_table=False) + ## Simple partitioned table with structs query = "CREATE table test_table AS SELECT {'i':i, 'j':i+1} as value, i%2 as part from range(0,10) tbl(i);" -generate_test_data_delta_rs("simple_partitioned_with_structs", query, "part"); +generate_test_data_delta_rs("simple_partitioned_with_structs", query, "part") ## Partitioned table with all types we can file skip on for type in ["bool", "int", "tinyint", "smallint", "bigint", "float", "double", "varchar"]: query = f"CREATE table test_table as select i::{type} as value, i::{type} as part from range(0,2) tbl(i)" - generate_test_data_delta_rs(f"test_file_skipping/{type}", query, "part"); + generate_test_data_delta_rs(f"test_file_skipping/{type}", query, "part") ## Simple table with deletion vector con = duckdb.connect() diff --git a/scripts/plot.py b/scripts/plot.py new file mode 100644 index 0000000..c5ea201 --- /dev/null +++ b/scripts/plot.py @@ -0,0 +1,27 @@ +import duckdb + +### Parse Query Results +parse_benchmark_result_query = """ +SELECT + parse_filename(name, true) as benchmark, + parse_filename(filename, true) as config, + avg(timing) as timing +FROM + read_csv('benchmark_results/*.csv', filename=1) +GROUP BY + config, + benchmark +ORDER BY + config, + benchmark +""" + +benchmark_results = duckdb.execute(parse_benchmark_result_query).df() + +### Plot graph +import matplotlib.pyplot as plt +import numpy as np + +plt.rcParams["figure.figsize"] = [10, 5] +fig = benchmark_results.pivot(index='benchmark', columns='config', values='timing').plot(kind='bar', title='', ylabel='runtime [s]').get_figure() +fig.savefig('benchmark_results/result.png') \ No newline at end of file diff --git a/src/delta_utils.cpp b/src/delta_utils.cpp index 4f6fb71..32db255 100644 --- a/src/delta_utils.cpp +++ b/src/delta_utils.cpp @@ -25,10 +25,10 @@ unique_ptr SchemaVisitor::VisitSnapshotSchema(ffi::Sha visitor.visit_float = VisitSimpleType(); visitor.visit_double = VisitSimpleType(); visitor.visit_boolean = VisitSimpleType(); - visitor.visit_binary = VisitSimpleType(); + visitor.visit_binary = VisitSimpleType(); visitor.visit_date = VisitSimpleType(); - visitor.visit_timestamp = VisitSimpleType(); - visitor.visit_timestamp_ntz = VisitSimpleType(); + visitor.visit_timestamp = VisitSimpleType(); + visitor.visit_timestamp_ntz = VisitSimpleType(); uintptr_t result = visit_schema(snapshot, &visitor); return state.TakeFieldList(result); diff --git a/src/functions/delta_scan.cpp b/src/functions/delta_scan.cpp index be17052..2a3dd18 100644 --- a/src/functions/delta_scan.cpp +++ b/src/functions/delta_scan.cpp @@ -19,6 +19,7 @@ #include #include #include +#include namespace duckdb { @@ -83,7 +84,7 @@ static void visit_callback(ffi::NullableCvoid engine_context, struct ffi::Kernel context->metadata.back()->partition_map = std::move(constant_map); } - static void visit_data(void *engine_context, ffi::EngineData* engine_data, const struct ffi::KernelBoolSlice selection_vec) { + static void visit_data(void *engine_context, ffi::ExclusiveEngineData* engine_data, const struct ffi::KernelBoolSlice selection_vec) { ffi::visit_scan_data(engine_data, selection_vec, engine_context, visit_callback); } @@ -222,16 +223,21 @@ static ffi::EngineBuilder* CreateBuilder(ClientContext &context, const string &p } const auto &kv_secret = dynamic_cast(*secret_match.secret_entry->secret); + KeyValueSecretReader secret_reader(kv_secret, *context.client_data->file_opener); + // Here you would need to add the logic for setting the builder options for Azure // This is just a placeholder and will need to be replaced with the actual logic if (secret_type == "s3" || secret_type == "gcs" || secret_type == "r2") { - auto key_id = kv_secret.TryGetValue("key_id").ToString(); - auto secret = kv_secret.TryGetValue("secret").ToString(); - auto session_token = kv_secret.TryGetValue("session_token").ToString(); - auto region = kv_secret.TryGetValue("region").ToString(); - auto endpoint = kv_secret.TryGetValue("endpoint").ToString(); - auto use_ssl = kv_secret.TryGetValue("use_ssl").ToString(); - auto url_style = kv_secret.TryGetValue("url_style").ToString(); + + string key_id, secret, session_token, region, endpoint, url_style; + bool use_ssl = true; + secret_reader.TryGetSecretKey("key_id", key_id); + secret_reader.TryGetSecretKey("secret", secret); + secret_reader.TryGetSecretKey("session_token", session_token); + secret_reader.TryGetSecretKey("region", region); + secret_reader.TryGetSecretKey("endpoint", endpoint); + secret_reader.TryGetSecretKey("url_style", url_style); + secret_reader.TryGetSecretKey("use_ssl", use_ssl); if (key_id.empty() && secret.empty()) { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("skip_signature"), KernelUtils::ToDeltaString("true")); @@ -248,7 +254,7 @@ static ffi::EngineBuilder* CreateBuilder(ClientContext &context, const string &p } if (!endpoint.empty() && endpoint != "s3.amazonaws.com") { if(!StringUtil::StartsWith(endpoint, "https://") && !StringUtil::StartsWith(endpoint, "http://")) { - if(use_ssl == "1" || use_ssl == "NULL") { + if(use_ssl) { endpoint = "https://" + endpoint; } else { endpoint = "http://" + endpoint; @@ -266,13 +272,15 @@ static ffi::EngineBuilder* CreateBuilder(ClientContext &context, const string &p } else if (secret_type == "azure") { // azure seems to be super complicated as we need to cover duckdb azure plugin and delta RS builder // and both require different settings - auto connection_string = kv_secret.TryGetValue("connection_string").ToString(); - auto account_name = kv_secret.TryGetValue("account_name").ToString(); - auto endpoint = kv_secret.TryGetValue("endpoint").ToString(); - auto client_id = kv_secret.TryGetValue("client_id").ToString(); - auto client_secret = kv_secret.TryGetValue("client_secret").ToString(); - auto tenant_id = kv_secret.TryGetValue("tenant_id").ToString(); - auto chain = kv_secret.TryGetValue("chain").ToString(); + string connection_string, account_name, endpoint, client_id, client_secret, tenant_id, chain; + secret_reader.TryGetSecretKey("connection_string", connection_string); + secret_reader.TryGetSecretKey("account_name", account_name); + secret_reader.TryGetSecretKey("endpoint", endpoint); + secret_reader.TryGetSecretKey("client_id", client_id); + secret_reader.TryGetSecretKey("client_secret", client_secret); + secret_reader.TryGetSecretKey("tenant_id", tenant_id); + secret_reader.TryGetSecretKey("chain", chain); + auto provider = kv_secret.GetProvider(); if (provider == "credential_chain") { @@ -304,13 +312,13 @@ static ffi::EngineBuilder* CreateBuilder(ClientContext &context, const string &p } } } else if (provider == "service_principal") { - if (!client_id.empty() && client_id != "NULL") { + if (!client_id.empty()) { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("azure_client_id"), KernelUtils::ToDeltaString(client_id)); } - if (!client_secret.empty() && client_secret != "NULL") { + if (!client_secret.empty()) { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("azure_client_secret"), KernelUtils::ToDeltaString(client_secret)); } - if (!tenant_id.empty() && tenant_id != "NULL") { + if (!tenant_id.empty()) { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("azure_tenant_id"), KernelUtils::ToDeltaString(tenant_id)); } } else { @@ -321,10 +329,10 @@ static ffi::EngineBuilder* CreateBuilder(ClientContext &context, const string &p if (account_name == "devstoreaccount1" || connection_string.find("devstoreaccount1") != string::npos) { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("use_emulator"), KernelUtils::ToDeltaString("true")); } - if (!account_name.empty() && account_name != "NULL") { + if (!account_name.empty()) { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("account_name"), KernelUtils::ToDeltaString(account_name)); //needed for delta RS builder } - if (!endpoint.empty() && endpoint != "NULL") { + if (!endpoint.empty()) { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("azure_endpoint"), KernelUtils::ToDeltaString(endpoint)); } else { ffi::set_builder_option(builder, KernelUtils::ToDeltaString("azure_endpoint"), KernelUtils::ToDeltaString("https://" + account_name + ".blob.core.windows.net/")); @@ -562,9 +570,13 @@ void DeltaMultiFileReader::FinalizeBind(const MultiFileReaderOptions &file_optio } auto col_partition_entry = file_metadata->partition_map.find(global_names[col_id]); if (col_partition_entry != file_metadata->partition_map.end()) { - // Todo: use https://github.com/delta-io/delta/blob/master/PROTOCOL.md#partition-value-serialization - auto maybe_value = Value(col_partition_entry->second).DefaultCastAs(global_types[i]); - reader_data.constant_map.emplace_back(i, maybe_value); + auto ¤t_type = global_types[col_id]; + if (current_type == LogicalType::BLOB) { + reader_data.constant_map.emplace_back(i, Value::BLOB_RAW(col_partition_entry->second)); + } else { + auto maybe_value = Value(col_partition_entry->second).DefaultCastAs(current_type); + reader_data.constant_map.emplace_back(i, maybe_value); + } } } } diff --git a/src/include/delta_kernel_ffi.hpp b/src/include/delta_kernel_ffi.hpp index de22390..cf69a8d 100644 --- a/src/include/delta_kernel_ffi.hpp +++ b/src/include/delta_kernel_ffi.hpp @@ -49,15 +49,9 @@ enum class KernelError { InvalidTableLocationError, InvalidDecimalError, InvalidStructDataError, + InternalError, }; -#if defined(DEFINE_DEFAULT_ENGINE) -/// Struct to allow binding to the arrow [C Data -/// Interface](https://arrow.apache.org/docs/format/CDataInterface.html). This includes the data and -/// the schema. -struct ArrowFFIData; -#endif - struct CStringMap; /// this struct can be used by an engine to materialize a selection vector @@ -71,7 +65,9 @@ struct EngineBuilder; /// an opaque struct that encapsulates data read by an engine. this handle can be passed back into /// some kernel calls to operate on the data, or can be converted into the raw data as read by the /// [`delta_kernel::Engine`] by calling [`get_raw_engine_data`] -struct EngineData; +struct ExclusiveEngineData; + +struct ExclusiveFileReadResultIterator; struct KernelExpressionVisitorState; @@ -83,16 +79,55 @@ struct SharedScan; struct SharedScanDataIterator; +struct SharedSchema; + struct SharedSnapshot; +struct StringSliceIterator; + /// Represents an owned slice of boolean values allocated by the kernel. Any time the engine /// receives a `KernelBoolSlice` as a return value from a kernel method, engine is responsible -/// to free that slice, by calling [super::drop_bool_slice] exactly once. +/// to free that slice, by calling [super::free_bool_slice] exactly once. struct KernelBoolSlice { bool *ptr; uintptr_t len; }; +/// Represents an object that crosses the FFI boundary and which outlives the scope that created +/// it. It can be passed freely between rust code and external code. The +/// +/// An accompanying [`HandleDescriptor`] trait defines the behavior of each handle type: +/// +/// * The true underlying ("target") type the handle represents. For safety reasons, target type +/// must always be [`Send`]. +/// +/// * Mutable (`Box`-like) vs. shared (`Arc`-like). For safety reasons, the target type of a +/// shared handle must always be [`Send`]+[`Sync`]. +/// +/// * Sized vs. unsized. Sized types allow handle operations to be implemented more efficiently. +/// +/// # Validity +/// +/// A `Handle` is _valid_ if all of the following hold: +/// +/// * It was created by a call to [`Handle::from`] +/// * Not yet dropped by a call to [`Handle::drop_handle`] +/// * Not yet consumed by a call to [`Handle::into_inner`] +/// +/// Additionally, in keeping with the [`Send`] contract, multi-threaded external code must +/// enforce mutual exclusion -- no mutable handle should ever be passed to more than one kernel +/// API call at a time. If thread races are possible, the handle should be protected with a +/// mutex. Due to Rust [reference +/// rules](https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html#the-rules-of-references), +/// this requirement applies even for API calls that appear to be read-only (because Rust code +/// always receives the handle as mutable). +/// +/// NOTE: Because the underlying type is always [`Sync`], multi-threaded external code can +/// freely access shared (non-mutable) handles. +/// +template +using Handle = H*; + /// An error that can be returned to the engine. Engines that wish to associate additional /// information can define and use any type that is [pointer /// interconvertible](https://en.cppreference.com/w/cpp/language/static_cast#pointer-interconvertible) @@ -155,40 +190,11 @@ struct KernelStringSlice { using AllocateErrorFn = EngineError*(*)(KernelError etype, KernelStringSlice msg); -/// Represents an object that crosses the FFI boundary and which outlives the scope that created -/// it. It can be passed freely between rust code and external code. The -/// -/// An accompanying [`HandleDescriptor`] trait defines the behavior of each handle type: -/// -/// * The true underlying ("target") type the handle represents. For safety reasons, target type -/// must always be [`Send`]. -/// -/// * Mutable (`Box`-like) vs. shared (`Arc`-like). For safety reasons, the target type of a -/// shared handle must always be [`Send`]+[`Sync`]. -/// -/// * Sized vs. unsized. Sized types allow handle operations to be implemented more efficiently. -/// -/// # Validity -/// -/// A `Handle` is _valid_ if all of the following hold: -/// -/// * It was created by a call to [`Handle::from`] -/// * Not yet dropped by a call to [`Handle::drop_handle`] -/// * Not yet consumed by a call to [`Handle::into_inner`] -/// -/// Additionally, in keeping with the [`Send`] contract, multi-threaded external code must -/// enforce mutual exclusion -- no mutable handle should ever be passed to more than one kernel -/// API call at a time. If thread races are possible, the handle should be protected with a -/// mutex. Due to Rust [reference -/// rules](https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html#the-rules-of-references), -/// this requirement applies even for API calls that appear to be read-only (because Rust code -/// always receives the handle as mutable). -/// -/// NOTE: Because the underlying type is always [`Sync`], multi-threaded external code can -/// freely access shared (non-mutable) handles. -/// -template -using Handle = H*; +using NullableCvoid = void*; + +/// Allow engines to allocate strings of their own type. the contract of calling a passed allocate +/// function is that `kernel_str` is _only_ valid until the return from this function +using AllocateStringFn = NullableCvoid(*)(KernelStringSlice kernel_str); /// The `EngineSchemaVisitor` defines a visitor system to allow engines to build their own /// representation of a schema from a particular schema within kernel. @@ -283,6 +289,68 @@ struct EngineIterator { const void *(*get_next)(void *data); }; +struct FileMeta { + KernelStringSlice path; + int64_t last_modified; + uintptr_t size; +}; + +/// ABI-compatible struct for ArrowArray from C Data Interface +/// See +/// +/// ``` +/// # use arrow_data::ArrayData; +/// # use arrow_data::ffi::FFI_ArrowArray; +/// fn export_array(array: &ArrayData) -> FFI_ArrowArray { +/// FFI_ArrowArray::new(array) +/// } +/// ``` +struct FFI_ArrowArray { + int64_t length; + int64_t null_count; + int64_t offset; + int64_t n_buffers; + int64_t n_children; + const void **buffers; + FFI_ArrowArray **children; + FFI_ArrowArray *dictionary; + void (*release)(FFI_ArrowArray *arg1); + void *private_data; +}; + +/// ABI-compatible struct for `ArrowSchema` from C Data Interface +/// See +/// +/// ``` +/// # use arrow_schema::DataType; +/// # use arrow_schema::ffi::FFI_ArrowSchema; +/// fn array_schema(data_type: &DataType) -> FFI_ArrowSchema { +/// FFI_ArrowSchema::try_from(data_type).unwrap() +/// } +/// ``` +/// +struct FFI_ArrowSchema { + const char *format; + const char *name; + const char *metadata; + int64_t flags; + int64_t n_children; + FFI_ArrowSchema **children; + FFI_ArrowSchema *dictionary; + void (*release)(FFI_ArrowSchema *arg1); + void *private_data; +}; + +#if defined(DEFINE_DEFAULT_ENGINE) +/// Struct to allow binding to the arrow [C Data +/// Interface](https://arrow.apache.org/docs/format/CDataInterface.html). This includes the data and +/// the schema. +struct ArrowFFIData { + FFI_ArrowArray array; + FFI_ArrowSchema schema; +}; +#endif + /// A predicate that can be used to skip data when scanning. /// /// When invoking [`scan::scan`], The engine provides a pointer to the (engine's native) predicate, @@ -298,12 +366,6 @@ struct EnginePredicate { uintptr_t (*visitor)(void *predicate, KernelExpressionVisitorState *state); }; -using NullableCvoid = void*; - -/// Allow engines to allocate strings of their own type. the contract of calling a passed allocate -/// function is that `kernel_str` is _only_ valid until the return from this function -using AllocateStringFn = NullableCvoid(*)(KernelStringSlice kernel_str); - /// Give engines an easy way to consume stats struct Stats { /// For any file where the deletion vector is not present (see [`DvInfo::has_vector`]), the @@ -331,7 +393,7 @@ struct im_an_unused_struct_that_tricks_msvc_into_compilation { ExternResult field7; ExternResult> field8; ExternResult> field9; - ExternResult> field10; + ExternResult> field10; }; extern "C" { @@ -339,7 +401,14 @@ extern "C" { /// # Safety /// /// Caller is responsible for passing a valid handle. -void drop_bool_slice(KernelBoolSlice slice); +void free_bool_slice(KernelBoolSlice slice); + +/// Drop an `ExclusiveEngineData`. +/// +/// # Safety +/// +/// Caller is responsible for passing a valid handle as engine_data +void free_engine_data(Handle engine_data); #if defined(DEFINE_DEFAULT_ENGINE) /// Get a "builder" that can be used to construct an engine. The function @@ -390,7 +459,7 @@ ExternResult> get_sync_engine(AllocateErrorFn allocat /// # Safety /// /// Caller is responsible for passing a valid handle. -void drop_engine(Handle engine); +void free_engine(Handle engine); /// Get the latest snapshot from the specified table /// @@ -403,7 +472,7 @@ ExternResult> snapshot(KernelStringSlice path, /// # Safety /// /// Caller is responsible for passing a valid handle. -void drop_snapshot(Handle snapshot); +void free_snapshot(Handle snapshot); /// Get the version of the specified snapshot /// @@ -412,6 +481,27 @@ void drop_snapshot(Handle snapshot); /// Caller is responsible for passing a valid handle. uint64_t version(Handle snapshot); +/// Get the resolved root of the table. This should be used in any future calls that require +/// constructing a path +/// +/// # Safety +/// +/// Caller is responsible for passing a valid handle. +NullableCvoid snapshot_table_root(Handle snapshot, AllocateStringFn allocate_fn); + +/// # Safety +/// +/// The iterator must be valid (returned by [kernel_scan_data_init]) and not yet freed by +/// [kernel_scan_data_free]. The visitor function pointer must be non-null. +bool string_slice_next(Handle data, + NullableCvoid engine_context, + void (*engine_visitor)(NullableCvoid engine_context, KernelStringSlice slice)); + +/// # Safety +/// +/// Caller is responsible for (at most once) passing a valid pointer to a [`StringSliceIterator`] +void free_string_slice_data(Handle data); + /// Visit the schema of the passed `SnapshotHandle`, using the provided `visitor`. See the /// documentation of [`EngineSchemaVisitor`] for a description of how this visitor works. /// @@ -464,14 +554,49 @@ uintptr_t visit_expression_literal_double(KernelExpressionVisitorState *state, d uintptr_t visit_expression_literal_bool(KernelExpressionVisitorState *state, bool value); -/// Allow an engine to "unwrap" an [`EngineData`] into the raw pointer for the case it wants +/// Call the engine back with the next `EngingeData` batch read by Parquet/Json handler. The +/// _engine_ "owns" the data that is passed into the `engine_visitor`, since it is allocated by the +/// `Engine` being used for log-replay. If the engine wants the kernel to free this data, it _must_ +/// call [`free_engine_data`] on it. +/// +/// # Safety +/// +/// The iterator must be valid (returned by [`read_parquet_file`]) and not yet freed by +/// [`free_read_result_iter`]. The visitor function pointer must be non-null. +ExternResult read_result_next(Handle data, + NullableCvoid engine_context, + void (*engine_visitor)(NullableCvoid engine_context, + Handle engine_data)); + +/// Free the memory from the passed read result iterator +/// # Safety +/// +/// Caller is responsible for (at most once) passing a valid pointer returned by a call to +/// [`read_parquet_file`]. +void free_read_result_iter(Handle data); + +/// Use the specified engine's [`delta_kernel::ParquetHandler`] to read the specified file. +/// +/// # Safety +/// Caller is responsible for calling with a valid `ExternEngineHandle` and `FileMeta` +ExternResult> read_parquet_file(Handle engine, + const FileMeta *file, + Handle physical_schema); + +/// Get the number of rows in an engine data +/// +/// # Safety +/// `data_handle` must be a valid pointer to a kernel allocated `ExclusiveEngineData` +uintptr_t engine_data_length(Handle *data); + +/// Allow an engine to "unwrap" an [`ExclusiveEngineData`] into the raw pointer for the case it wants /// to use its own engine data format /// /// # Safety /// -/// `data_handle` must be a valid pointer to a kernel allocated `EngineData`. The Engine must +/// `data_handle` must be a valid pointer to a kernel allocated `ExclusiveEngineData`. The Engine must /// ensure the handle outlives the returned pointer. -void *get_raw_engine_data(Handle data); +void *get_raw_engine_data(Handle data); #if defined(DEFINE_DEFAULT_ENGINE) /// Get an [`ArrowFFIData`] to allow binding to the arrow [C Data @@ -479,16 +604,16 @@ void *get_raw_engine_data(Handle data); /// the schema. /// /// # Safety -/// data_handle must be a valid EngineData as read by the +/// data_handle must be a valid ExclusiveEngineData as read by the /// [`delta_kernel::engine::default::DefaultEngine`] obtained from `get_default_engine`. -ExternResult get_raw_arrow_data(Handle data, +ExternResult get_raw_arrow_data(Handle data, Handle engine); #endif /// Drops a scan. /// # Safety /// Caller is responsible for passing a [valid][Handle#Validity] scan handle. -void drop_scan(Handle scan); +void free_scan(Handle scan); /// Get a [`Scan`] over the table specified by the passed snapshot. /// # Safety @@ -505,10 +630,35 @@ ExternResult> scan(Handle snapshot, /// Engine is responsible for providing a valid scan pointer Handle get_global_scan_state(Handle scan); +/// Get the kernel view of the physical read schema that an engine should read from parquet file in +/// a scan +/// /// # Safety +/// Engine is responsible for providing a valid GlobalScanState pointer +Handle get_global_read_schema(Handle state); + +/// Free a global read schema +/// +/// # Safety +/// Engine is responsible for providing a valid schema obtained via [`get_global_read_schema`] +void free_global_read_schema(Handle schema); + +/// Get a count of the number of partition columns for this scan /// +/// # Safety +/// Caller is responsible for passing a valid global scan pointer. +uintptr_t get_partition_column_count(Handle state); + +/// Get an iterator of the list of partition columns for this scan. +/// +/// # Safety /// Caller is responsible for passing a valid global scan pointer. -void drop_global_scan_state(Handle state); +Handle get_partition_columns(Handle state); + +/// # Safety +/// +/// Caller is responsible for passing a valid global scan state pointer. +void free_global_scan_state(Handle state); /// Get an iterator over the data needed to perform a scan. This will return a /// [`KernelScanDataIterator`] which can be passed to [`kernel_scan_data_next`] to get the actual @@ -523,18 +673,18 @@ ExternResult> kernel_scan_data_init(Handle kernel_scan_data_next(Handle data, NullableCvoid engine_context, void (*engine_visitor)(NullableCvoid engine_context, - Handle engine_data, + Handle engine_data, KernelBoolSlice selection_vector)); /// # Safety /// /// Caller is responsible for (at most once) passing a valid pointer returned by a call to /// [`kernel_scan_data_init`]. -void kernel_scan_data_free(Handle data); +void free_kernel_scan_data(Handle data); /// allow probing into a CStringMap. If the specified key is in the map, kernel will call /// allocate_fn with the value associated with the key and return the value returned from that @@ -559,8 +709,8 @@ ExternResult selection_vector_from_dv(const DvInfo *dv_info, /// data which provides the data handle and selection vector as each element in the iterator. /// /// # Safety -/// engine is responsbile for passing a valid [`EngineData`] and selection vector. -void visit_scan_data(Handle data, +/// engine is responsbile for passing a valid [`ExclusiveEngineData`] and selection vector. +void visit_scan_data(Handle data, KernelBoolSlice selection_vec, NullableCvoid engine_context, CScanCallback callback); diff --git a/src/include/delta_utils.hpp b/src/include/delta_utils.hpp index 37dc289..9b33c5c 100644 --- a/src/include/delta_utils.hpp +++ b/src/include/delta_utils.hpp @@ -102,11 +102,11 @@ struct TemplatedUniqueKernelPointer : public UniqueKernelPointer { }; }; -typedef TemplatedUniqueKernelPointer KernelSnapshot; -typedef TemplatedUniqueKernelPointer KernelExternEngine; -typedef TemplatedUniqueKernelPointer KernelScan; -typedef TemplatedUniqueKernelPointer KernelGlobalScanState; -typedef TemplatedUniqueKernelPointer KernelScanDataIterator; +typedef TemplatedUniqueKernelPointer KernelSnapshot; +typedef TemplatedUniqueKernelPointer KernelExternEngine; +typedef TemplatedUniqueKernelPointer KernelScan; +typedef TemplatedUniqueKernelPointer KernelGlobalScanState; +typedef TemplatedUniqueKernelPointer KernelScanDataIterator; struct KernelUtils { static ffi::KernelStringSlice ToDeltaString(const string &str); diff --git a/src/include/functions/delta_scan.hpp b/src/include/functions/delta_scan.hpp index 5a8c6a6..25e312f 100644 --- a/src/include/functions/delta_scan.hpp +++ b/src/include/functions/delta_scan.hpp @@ -22,7 +22,7 @@ struct DeltaFileMetaData { ~DeltaFileMetaData() { if (selection_vector.ptr) { - ffi::drop_bool_slice(selection_vector); + ffi::free_bool_slice(selection_vector); } } diff --git a/test/sql/dat/all.test b/test/sql/dat/all.test index f6332da..ecd06c9 100644 --- a/test/sql/dat/all.test +++ b/test/sql/dat/all.test @@ -12,15 +12,26 @@ require-env DAT_PATH # all_primitive_types query I rowsort all_primitive_types -SELECT * +SELECT * EXCLUDE(timestamp) FROM delta_scan('${DAT_PATH}/out/reader_tests/generated/all_primitive_types/delta') ---- +# TODO: exclude is necessary due to issue with the golden tables, this should be fixed upstream query I rowsort all_primitive_types -SELECT * +SELECT * EXCLUDE(timestamp) FROM parquet_scan('${DAT_PATH}/out/reader_tests/generated/all_primitive_types/expected/latest/**/*.parquet') ---- +query I +SELECT timestamp +FROM delta_scan('${DAT_PATH}/out/reader_tests/generated/all_primitive_types/delta') +---- +1970-01-01 00:00:00+00 +1970-01-01 01:00:00+00 +1970-01-01 02:00:00+00 +1970-01-01 03:00:00+00 +1970-01-01 04:00:00+00 + # nested_types query I rowsort nested_types SELECT * @@ -53,22 +64,22 @@ FROM parquet_scan('${DAT_PATH}/out/reader_tests/generated/basic_append/expected/ ---- # with_schema_change -query I rowsort with_checkpoint +query I rowsort with_schema_change SELECT * FROM delta_scan('${DAT_PATH}/out/reader_tests/generated/with_schema_change/delta') ---- -query I rowsort with_checkpoint +query I rowsort with_schema_change SELECT * FROM parquet_scan('${DAT_PATH}/out/reader_tests/generated/with_schema_change/expected/latest/**/*.parquet') ---- -query I rowsort with_checkpoint_count +query I rowsort with_schema_change_count SELECT count(*) FROM delta_scan('${DAT_PATH}/out/reader_tests/generated/with_schema_change/delta') ---- -query I rowsort with_checkpoint_count +query I rowsort with_schema_change_count SELECT count(*) FROM parquet_scan('${DAT_PATH}/out/reader_tests/generated/with_schema_change/expected/latest/**/*.parquet') ---- @@ -101,7 +112,7 @@ FROM delta_scan('${DAT_PATH}/out/reader_tests/generated/multi_partitioned/delta' ---- query I rowsort multi_partitioned -SELECT letter, date, decode(data) as data, number +SELECT * FROM parquet_scan('${DAT_PATH}/out/reader_tests/generated/multi_partitioned/expected/latest/**/*.parquet') ---- @@ -120,19 +131,24 @@ require notwindows # multi_partitioned_2 query I rowsort multi_partitioned_2 -SELECT * +SELECT * EXCLUDE(time) FROM delta_scan('${DAT_PATH}/out/reader_tests/generated/multi_partitioned_2/delta') ---- +# TODO: exclude is necessary due to issue with the golden tables, this should be fixed upstream query I rowsort multi_partitioned_2 -SELECT * +SELECT * EXCLUDE(time) FROM parquet_scan('${DAT_PATH}/out/reader_tests/generated/multi_partitioned_2/expected/latest/**/*.parquet') ---- -### FAILING DAT TESTS - -# TODO fix all of these -mode skip +query I +SELECT time +FROM delta_scan('${DAT_PATH}/out/reader_tests/generated/multi_partitioned_2/delta') +order by time +---- +1970-01-01 00:00:00+00 +1970-01-01 12:30:00+00 +1970-01-02 08:45:00+00 # no_replay query I rowsort no_replay diff --git a/test/sql/delta_kernel_rs/timestamp_ntz.test b/test/sql/delta_kernel_rs/timestamp_ntz.test new file mode 100644 index 0000000..1f89b09 --- /dev/null +++ b/test/sql/delta_kernel_rs/timestamp_ntz.test @@ -0,0 +1,29 @@ +# name: test/sql/delta_kernel_rs/timestamp_ntz.test +# description: table with timestamp_ntz type (timstamp without timezone) +# group: [delta_kernel_rs] + +require parquet + +require delta + +require-env DELTA_KERNEL_TESTS_PATH + +query IIIIII +DESCRIBE FROM delta_scan('${DELTA_KERNEL_TESTS_PATH}/data-reader-timestamp_ntz') order by id +---- +id INTEGER YES NULL NULL NULL +tsNtz TIMESTAMP YES NULL NULL NULL +tsNtzPartition TIMESTAMP YES NULL NULL NULL + +query III +FROM delta_scan('${DELTA_KERNEL_TESTS_PATH}/data-reader-timestamp_ntz') order by id +---- +0 2021-11-18 02:30:00.123456 2021-11-18 02:30:00.123456 +1 2013-07-05 17:01:00.123456 2021-11-18 02:30:00.123456 +2 NULL 2021-11-18 02:30:00.123456 +3 2021-11-18 02:30:00.123456 2013-07-05 17:01:00.123456 +4 2013-07-05 17:01:00.123456 2013-07-05 17:01:00.123456 +5 NULL 2013-07-05 17:01:00.123456 +6 2021-11-18 02:30:00.123456 NULL +7 2013-07-05 17:01:00.123456 NULL +8 NULL NULL diff --git a/test/sql/generated/blob.test b/test/sql/generated/blob.test new file mode 100644 index 0000000..569609e --- /dev/null +++ b/test/sql/generated/blob.test @@ -0,0 +1,27 @@ +# name: test/sql/generated/blob.test +# description: Test the BLOB type +# group: [delta_generated] + +require parquet + +require delta + +require-env GENERATED_DATA_AVAILABLE + +# Skipped for now: needs further investigation, this is broken on latest deltalake-written table, but works on +# deltalake==0.18.2 +mode skip + +query IIIIII +describe select * +from delta_scan('./data/generated/simple_blob_table/delta_lake'); +---- +blob BLOB YES NULL NULL NULL +blob_part BLOB YES NULL NULL NULL +string VARCHAR YES NULL NULL NULL + +query III +from delta_scan('./data/generated/simple_blob_table/delta_lake') order by string; +---- +ABCDE ABCDE ABCDE +\xF0\x9F\x98\x88 \xF0\x9F\x98\x88 😈 diff --git a/vcpkg.json b/vcpkg.json index 8e8245d..2f3c27d 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -7,7 +7,7 @@ "zlib", { "name": "aws-sdk-cpp", - "features": [ "sts" ] + "features": [ "sts", "sso" ] } ] } \ No newline at end of file