This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new 11caa4c1bb Add clickbench SQL benchmark (#22633)
11caa4c1bb is described below

commit 11caa4c1bb498eb5a766dd3a14c5bc54a14d48b5
Author: Bruce Ritchie <[email protected]>
AuthorDate: Fri Jun 5 15:25:58 2026 -0400

    Add clickbench SQL benchmark (#22633)
    
    ## Which issue does this PR close?
    
    <!--
    We generally require a GitHub issue to be filed for all bug fixes and
    enhancements and this helps us generate change logs for our releases.
    You can link an issue to this PR using the GitHub syntax. For example
    `Closes #123` indicates that this PR will close issue #123.
    -->
    
    Part of #21706
    
    ## Rationale for this change
    
    Continue work on sql benchmark migration.
    
    ## What changes are included in this PR?
    
    Clickbench sql benchmark.
    
    ## Are these changes tested?
    
    Yes
    
    BENCH_NAME=clickbench CLICKBENCH_TYPE=single cargo bench --bench sql
    BENCH_NAME=clickbench CLICKBENCH_TYPE=partitioned cargo bench --bench
    sql
    
    ## Are there any user-facing changes?
    
    no
    
    ---------
    
    Co-authored-by: Adrian Garcia Badaracco 
<[email protected]>
    Co-authored-by: Copilot Autofix powered by AI 
<[email protected]>
---
 .../clickbench/benchmarks/q00.benchmark            |  17 ++++
 .../clickbench/benchmarks/q01.benchmark            |  18 ++++
 .../clickbench/benchmarks/q02.benchmark            |  17 ++++
 .../clickbench/benchmarks/q03.benchmark            |  17 ++++
 .../clickbench/benchmarks/q04.benchmark            |  17 ++++
 .../clickbench/benchmarks/q05.benchmark            |  17 ++++
 .../clickbench/benchmarks/q06.benchmark            |  17 ++++
 .../clickbench/benchmarks/q07.benchmark            |  20 ++++
 .../clickbench/benchmarks/q08.benchmark            |  16 ++++
 .../clickbench/benchmarks/q09.benchmark            |  16 ++++
 .../clickbench/benchmarks/q10.benchmark            |  16 ++++
 .../clickbench/benchmarks/q11.benchmark            |  16 ++++
 .../clickbench/benchmarks/q12.benchmark            |  16 ++++
 .../clickbench/benchmarks/q13.benchmark            |  16 ++++
 .../clickbench/benchmarks/q14.benchmark            |  16 ++++
 .../clickbench/benchmarks/q15.benchmark            |  16 ++++
 .../clickbench/benchmarks/q16.benchmark            |  16 ++++
 .../clickbench/benchmarks/q17.benchmark            |  16 ++++
 .../clickbench/benchmarks/q18.benchmark            |  16 ++++
 .../clickbench/benchmarks/q19.benchmark            |  18 ++++
 .../clickbench/benchmarks/q20.benchmark            |  18 ++++
 .../clickbench/benchmarks/q21.benchmark            |  16 ++++
 .../clickbench/benchmarks/q22.benchmark            |  16 ++++
 .../clickbench/benchmarks/q23.benchmark            |  16 ++++
 .../clickbench/benchmarks/q24.benchmark            |  16 ++++
 .../clickbench/benchmarks/q25.benchmark            |  16 ++++
 .../clickbench/benchmarks/q26.benchmark            |  16 ++++
 .../clickbench/benchmarks/q27.benchmark            |  16 ++++
 .../clickbench/benchmarks/q28.benchmark            |  16 ++++
 .../clickbench/benchmarks/q29.benchmark            | 106 +++++++++++++++++++++
 .../clickbench/benchmarks/q30.benchmark            |  16 ++++
 .../clickbench/benchmarks/q31.benchmark            |  16 ++++
 .../clickbench/benchmarks/q32.benchmark            |  16 ++++
 .../clickbench/benchmarks/q33.benchmark            |  16 ++++
 .../clickbench/benchmarks/q34.benchmark            |  16 ++++
 .../clickbench/benchmarks/q35.benchmark            |  16 ++++
 .../clickbench/benchmarks/q36.benchmark            |  16 ++++
 .../clickbench/benchmarks/q37.benchmark            |  16 ++++
 .../clickbench/benchmarks/q38.benchmark            |  16 ++++
 .../clickbench/benchmarks/q39.benchmark            |  16 ++++
 .../clickbench/benchmarks/q40.benchmark            |  16 ++++
 .../clickbench/benchmarks/q41.benchmark            |  16 ++++
 .../clickbench/benchmarks/q42.benchmark            |  16 ++++
 .../clickbench/init/load-partitioned.sql           |   3 +
 .../sql_benchmarks/clickbench/init/load-single.sql |   3 +
 .../sql_benchmarks/clickbench/init/set_config.sql  |   5 +
 46 files changed, 805 insertions(+)

diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q00.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q00.benchmark
new file mode 100644
index 0000000000..0ea18a7273
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q00.benchmark
@@ -0,0 +1,17 @@
+name Q00
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT COUNT(*)
+FROM hits;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q00.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q01.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q01.benchmark
new file mode 100644
index 0000000000..1512ef10b5
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q01.benchmark
@@ -0,0 +1,18 @@
+name Q01
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT COUNT(*)
+FROM hits
+WHERE "AdvEngineID" <> 0;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q01.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q02.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q02.benchmark
new file mode 100644
index 0000000000..3bc1a4ec4a
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q02.benchmark
@@ -0,0 +1,17 @@
+name Q02
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT SUM("AdvEngineID"), COUNT(*), AVG("ResolutionWidth")
+FROM hits;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q02.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q03.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q03.benchmark
new file mode 100644
index 0000000000..c545a27d8c
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q03.benchmark
@@ -0,0 +1,17 @@
+name Q03
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT AVG("UserID")
+FROM hits;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q03.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q04.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q04.benchmark
new file mode 100644
index 0000000000..5ae8ad3b8f
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q04.benchmark
@@ -0,0 +1,17 @@
+name Q04
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT COUNT(DISTINCT "UserID")
+FROM hits;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q04.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q05.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q05.benchmark
new file mode 100644
index 0000000000..dd2f654698
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q05.benchmark
@@ -0,0 +1,17 @@
+name Q05
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT COUNT(DISTINCT "SearchPhrase")
+FROM hits;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q05.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q06.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q06.benchmark
new file mode 100644
index 0000000000..1b5e105a1a
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q06.benchmark
@@ -0,0 +1,17 @@
+name Q06
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT MIN("EventDate"), MAX("EventDate")
+FROM hits;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q06.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q07.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q07.benchmark
new file mode 100644
index 0000000000..882f5ad3d8
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q07.benchmark
@@ -0,0 +1,20 @@
+name Q07
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "AdvEngineID", COUNT(*)
+FROM hits
+WHERE "AdvEngineID" <> 0
+GROUP BY "AdvEngineID"
+ORDER BY COUNT(*) DESC;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q07.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q08.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q08.benchmark
new file mode 100644
index 0000000000..525a39cf47
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q08.benchmark
@@ -0,0 +1,16 @@
+name Q08
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "RegionID", COUNT(DISTINCT "UserID") AS u FROM hits GROUP BY "RegionID" 
ORDER BY u DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q08.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q09.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q09.benchmark
new file mode 100644
index 0000000000..3f58fc3c95
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q09.benchmark
@@ -0,0 +1,16 @@
+name Q09
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "RegionID", SUM("AdvEngineID"), COUNT(*) AS c, AVG("ResolutionWidth"), 
COUNT(DISTINCT "UserID") FROM hits GROUP BY "RegionID" ORDER BY c DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q09.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q10.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q10.benchmark
new file mode 100644
index 0000000000..4a3506d747
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q10.benchmark
@@ -0,0 +1,16 @@
+name Q10
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "MobilePhoneModel", COUNT(DISTINCT "UserID") AS u FROM hits WHERE 
"MobilePhoneModel" <> '' GROUP BY "MobilePhoneModel" ORDER BY u DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q10.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q11.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q11.benchmark
new file mode 100644
index 0000000000..b18f194678
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q11.benchmark
@@ -0,0 +1,16 @@
+name Q11
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "MobilePhone", "MobilePhoneModel", COUNT(DISTINCT "UserID") AS u FROM 
hits WHERE "MobilePhoneModel" <> '' GROUP BY "MobilePhone", "MobilePhoneModel" 
ORDER BY u DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q11.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q12.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q12.benchmark
new file mode 100644
index 0000000000..0586305e3d
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q12.benchmark
@@ -0,0 +1,16 @@
+name Q12
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchPhrase", COUNT(*) AS c FROM hits WHERE "SearchPhrase" <> '' 
GROUP BY "SearchPhrase" ORDER BY c DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q12.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q13.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q13.benchmark
new file mode 100644
index 0000000000..b36449e05b
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q13.benchmark
@@ -0,0 +1,16 @@
+name Q13
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchPhrase", COUNT(DISTINCT "UserID") AS u FROM hits WHERE 
"SearchPhrase" <> '' GROUP BY "SearchPhrase" ORDER BY u DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q13.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q14.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q14.benchmark
new file mode 100644
index 0000000000..2b7c3b196f
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q14.benchmark
@@ -0,0 +1,16 @@
+name Q14
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchEngineID", "SearchPhrase", COUNT(*) AS c FROM hits WHERE 
"SearchPhrase" <> '' GROUP BY "SearchEngineID", "SearchPhrase" ORDER BY c DESC 
LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q14.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q15.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q15.benchmark
new file mode 100644
index 0000000000..8e8be04644
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q15.benchmark
@@ -0,0 +1,16 @@
+name Q15
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "UserID", COUNT(*) FROM hits GROUP BY "UserID" ORDER BY COUNT(*) DESC 
LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q15.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q16.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q16.benchmark
new file mode 100644
index 0000000000..93fb630d73
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q16.benchmark
@@ -0,0 +1,16 @@
+name Q16
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "UserID", "SearchPhrase", COUNT(*) FROM hits GROUP BY "UserID", 
"SearchPhrase" ORDER BY COUNT(*) DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q16.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q17.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q17.benchmark
new file mode 100644
index 0000000000..60725ae005
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q17.benchmark
@@ -0,0 +1,16 @@
+name Q17
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "UserID", "SearchPhrase", COUNT(*) FROM hits GROUP BY "UserID", 
"SearchPhrase" LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q17.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q18.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q18.benchmark
new file mode 100644
index 0000000000..1f5bad2a02
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q18.benchmark
@@ -0,0 +1,16 @@
+name Q18
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "UserID", extract(minute FROM to_timestamp_seconds("EventTime")) AS m, 
"SearchPhrase", COUNT(*) FROM hits GROUP BY "UserID", m, "SearchPhrase" ORDER 
BY COUNT(*) DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q18.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q19.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q19.benchmark
new file mode 100644
index 0000000000..7bd760aaff
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q19.benchmark
@@ -0,0 +1,18 @@
+name Q19
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "UserID"
+FROM hits
+WHERE "UserID" = 435090932899640449;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q19.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q20.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q20.benchmark
new file mode 100644
index 0000000000..6ec6c5c0a6
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q20.benchmark
@@ -0,0 +1,18 @@
+name Q20
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT COUNT(*)
+FROM hits
+WHERE "URL" LIKE '%google%';
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q20.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q21.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q21.benchmark
new file mode 100644
index 0000000000..a1123e9391
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q21.benchmark
@@ -0,0 +1,16 @@
+name Q21
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchPhrase", MIN("URL"), COUNT(*) AS c FROM hits WHERE "URL" LIKE 
'%google%' AND "SearchPhrase" <> '' GROUP BY "SearchPhrase" ORDER BY c DESC 
LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q21.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q22.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q22.benchmark
new file mode 100644
index 0000000000..9df61823b3
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q22.benchmark
@@ -0,0 +1,16 @@
+name Q22
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchPhrase", MIN("URL"), MIN("Title"), COUNT(*) AS c, COUNT(DISTINCT 
"UserID") FROM hits WHERE "Title" LIKE '%Google%' AND "URL" NOT LIKE 
'%.google.%' AND "SearchPhrase" <> '' GROUP BY "SearchPhrase" ORDER BY c DESC 
LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q22.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q23.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q23.benchmark
new file mode 100644
index 0000000000..aa742cb56b
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q23.benchmark
@@ -0,0 +1,16 @@
+name Q23
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT * FROM hits WHERE "URL" LIKE '%google%' ORDER BY "EventTime" LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q23.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q24.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q24.benchmark
new file mode 100644
index 0000000000..4b30c5fef3
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q24.benchmark
@@ -0,0 +1,16 @@
+name Q24
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchPhrase" FROM hits WHERE "SearchPhrase" <> '' ORDER BY 
"EventTime" LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q24.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q25.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q25.benchmark
new file mode 100644
index 0000000000..5a8a425703
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q25.benchmark
@@ -0,0 +1,16 @@
+name Q25
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchPhrase" FROM hits WHERE "SearchPhrase" <> '' ORDER BY 
"SearchPhrase" LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q25.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q26.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q26.benchmark
new file mode 100644
index 0000000000..b87f59a847
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q26.benchmark
@@ -0,0 +1,16 @@
+name Q26
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchPhrase" FROM hits WHERE "SearchPhrase" <> '' ORDER BY 
"EventTime", "SearchPhrase" LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q26.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q27.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q27.benchmark
new file mode 100644
index 0000000000..c4531b0d6a
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q27.benchmark
@@ -0,0 +1,16 @@
+name Q27
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "CounterID", AVG(length("URL")) AS l, COUNT(*) AS c FROM hits WHERE 
"URL" <> '' GROUP BY "CounterID" HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 
25;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q27.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q28.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q28.benchmark
new file mode 100644
index 0000000000..32599d608c
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q28.benchmark
@@ -0,0 +1,16 @@
+name Q28
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT REGEXP_REPLACE("Referer", '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS 
k, AVG(length("Referer")) AS l, COUNT(*) AS c, MIN("Referer") FROM hits WHERE 
"Referer" <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q28.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q29.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q29.benchmark
new file mode 100644
index 0000000000..a76d6c6f2d
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q29.benchmark
@@ -0,0 +1,106 @@
+name Q29
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT SUM("ResolutionWidth"),
+       SUM("ResolutionWidth" + 1),
+       SUM("ResolutionWidth" + 2),
+       SUM("ResolutionWidth" + 3),
+       SUM("ResolutionWidth" + 4),
+       SUM("ResolutionWidth" + 5),
+       SUM("ResolutionWidth" + 6),
+       SUM("ResolutionWidth" + 7),
+       SUM("ResolutionWidth" + 8),
+       SUM("ResolutionWidth" + 9),
+       SUM("ResolutionWidth" + 10),
+       SUM("ResolutionWidth" + 11),
+       SUM("ResolutionWidth" + 12),
+       SUM("ResolutionWidth" + 13),
+       SUM("ResolutionWidth" + 14),
+       SUM("ResolutionWidth" + 15),
+       SUM("ResolutionWidth" + 16),
+       SUM("ResolutionWidth" + 17),
+       SUM("ResolutionWidth" + 18),
+       SUM("ResolutionWidth" + 19),
+       SUM("ResolutionWidth" + 20),
+       SUM("ResolutionWidth" + 21),
+       SUM("ResolutionWidth" + 22),
+       SUM("ResolutionWidth" + 23),
+       SUM("ResolutionWidth" + 24),
+       SUM("ResolutionWidth" + 25),
+       SUM("ResolutionWidth" + 26),
+       SUM("ResolutionWidth" + 27),
+       SUM("ResolutionWidth" + 28),
+       SUM("ResolutionWidth" + 29),
+       SUM("ResolutionWidth" + 30),
+       SUM("ResolutionWidth" + 31),
+       SUM("ResolutionWidth" + 32),
+       SUM("ResolutionWidth" + 33),
+       SUM("ResolutionWidth" + 34),
+       SUM("ResolutionWidth" + 35),
+       SUM("ResolutionWidth" + 36),
+       SUM("ResolutionWidth" + 37),
+       SUM("ResolutionWidth" + 38),
+       SUM("ResolutionWidth" + 39),
+       SUM("ResolutionWidth" + 40),
+       SUM("ResolutionWidth" + 41),
+       SUM("ResolutionWidth" + 42),
+       SUM("ResolutionWidth" + 43),
+       SUM("ResolutionWidth" + 44),
+       SUM("ResolutionWidth" + 45),
+       SUM("ResolutionWidth" + 46),
+       SUM("ResolutionWidth" + 47),
+       SUM("ResolutionWidth" + 48),
+       SUM("ResolutionWidth" + 49),
+       SUM("ResolutionWidth" + 50),
+       SUM("ResolutionWidth" + 51),
+       SUM("ResolutionWidth" + 52),
+       SUM("ResolutionWidth" + 53),
+       SUM("ResolutionWidth" + 54),
+       SUM("ResolutionWidth" + 55),
+       SUM("ResolutionWidth" + 56),
+       SUM("ResolutionWidth" + 57),
+       SUM("ResolutionWidth" + 58),
+       SUM("ResolutionWidth" + 59),
+       SUM("ResolutionWidth" + 60),
+       SUM("ResolutionWidth" + 61),
+       SUM("ResolutionWidth" + 62),
+       SUM("ResolutionWidth" + 63),
+       SUM("ResolutionWidth" + 64),
+       SUM("ResolutionWidth" + 65),
+       SUM("ResolutionWidth" + 66),
+       SUM("ResolutionWidth" + 67),
+       SUM("ResolutionWidth" + 68),
+       SUM("ResolutionWidth" + 69),
+       SUM("ResolutionWidth" + 70),
+       SUM("ResolutionWidth" + 71),
+       SUM("ResolutionWidth" + 72),
+       SUM("ResolutionWidth" + 73),
+       SUM("ResolutionWidth" + 74),
+       SUM("ResolutionWidth" + 75),
+       SUM("ResolutionWidth" + 76),
+       SUM("ResolutionWidth" + 77),
+       SUM("ResolutionWidth" + 78),
+       SUM("ResolutionWidth" + 79),
+       SUM("ResolutionWidth" + 80),
+       SUM("ResolutionWidth" + 81),
+       SUM("ResolutionWidth" + 82),
+       SUM("ResolutionWidth" + 83),
+       SUM("ResolutionWidth" + 84),
+       SUM("ResolutionWidth" + 85),
+       SUM("ResolutionWidth" + 86),
+       SUM("ResolutionWidth" + 87),
+       SUM("ResolutionWidth" + 88),
+       SUM("ResolutionWidth" + 89)
+FROM hits;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q29.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q30.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q30.benchmark
new file mode 100644
index 0000000000..740a6724cc
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q30.benchmark
@@ -0,0 +1,16 @@
+name Q30
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "SearchEngineID", "ClientIP", COUNT(*) AS c, SUM("IsRefresh"), 
AVG("ResolutionWidth") FROM hits WHERE "SearchPhrase" <> '' GROUP BY 
"SearchEngineID", "ClientIP" ORDER BY c DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q30.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q31.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q31.benchmark
new file mode 100644
index 0000000000..91035bcf69
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q31.benchmark
@@ -0,0 +1,16 @@
+name Q31
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "WatchID", "ClientIP", COUNT(*) AS c, SUM("IsRefresh"), 
AVG("ResolutionWidth") FROM hits WHERE "SearchPhrase" <> '' GROUP BY "WatchID", 
"ClientIP" ORDER BY c DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q31.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q32.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q32.benchmark
new file mode 100644
index 0000000000..15a5867609
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q32.benchmark
@@ -0,0 +1,16 @@
+name Q32
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "WatchID", "ClientIP", COUNT(*) AS c, SUM("IsRefresh"), 
AVG("ResolutionWidth") FROM hits GROUP BY "WatchID", "ClientIP" ORDER BY c DESC 
LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q32.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q33.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q33.benchmark
new file mode 100644
index 0000000000..2742a609c3
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q33.benchmark
@@ -0,0 +1,16 @@
+name Q33
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "URL", COUNT(*) AS c FROM hits GROUP BY "URL" ORDER BY c DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q33.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q34.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q34.benchmark
new file mode 100644
index 0000000000..6b8c2beb9c
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q34.benchmark
@@ -0,0 +1,16 @@
+name Q34
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT 1, "URL", COUNT(*) AS c FROM hits GROUP BY 1, "URL" ORDER BY c DESC 
LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q34.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q35.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q35.benchmark
new file mode 100644
index 0000000000..75a6b21099
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q35.benchmark
@@ -0,0 +1,16 @@
+name Q35
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "ClientIP", "ClientIP" - 1, "ClientIP" - 2, "ClientIP" - 3, COUNT(*) AS 
c FROM hits GROUP BY "ClientIP", "ClientIP" - 1, "ClientIP" - 2, "ClientIP" - 3 
ORDER BY c DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q35.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q36.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q36.benchmark
new file mode 100644
index 0000000000..95f7c4b03b
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q36.benchmark
@@ -0,0 +1,16 @@
+name Q36
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "URL", COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND 
"EventDate" >= '2013-07-01' AND "EventDate" <= '2013-07-31' AND "DontCountHits" 
= 0 AND "IsRefresh" = 0 AND "URL" <> '' GROUP BY "URL" ORDER BY PageViews DESC 
LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q36.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q37.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q37.benchmark
new file mode 100644
index 0000000000..dd8ef38bb2
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q37.benchmark
@@ -0,0 +1,16 @@
+name Q37
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "Title", COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND 
"EventDate" >= '2013-07-01' AND "EventDate" <= '2013-07-31' AND "DontCountHits" 
= 0 AND "IsRefresh" = 0 AND "Title" <> '' GROUP BY "Title" ORDER BY PageViews 
DESC LIMIT 10;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q37.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q38.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q38.benchmark
new file mode 100644
index 0000000000..93d4d1722d
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q38.benchmark
@@ -0,0 +1,16 @@
+name Q38
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "URL", COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND 
"EventDate" >= '2013-07-01' AND "EventDate" <= '2013-07-31' AND "IsRefresh" = 0 
AND "IsLink" <> 0 AND "IsDownload" = 0 GROUP BY "URL" ORDER BY PageViews DESC 
LIMIT 10 OFFSET 1000;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q38.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q39.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q39.benchmark
new file mode 100644
index 0000000000..443e2120fc
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q39.benchmark
@@ -0,0 +1,16 @@
+name Q39
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "TraficSourceID", "SearchEngineID", "AdvEngineID", CASE WHEN 
("SearchEngineID" = 0 AND "AdvEngineID" = 0) THEN "Referer" ELSE '' END AS Src, 
"URL" AS Dst, COUNT(*) AS PageViews FROM hits WHERE "CounterID" = 62 AND 
"EventDate" >= '2013-07-01' AND "EventDate" <= '2013-07-31' AND "IsRefresh" = 0 
GROUP BY "TraficSourceID", "SearchEngineID", "AdvEngineID", Src, Dst ORDER BY 
PageViews DESC LIMIT 10 OFFSET 1000;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q39.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q40.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q40.benchmark
new file mode 100644
index 0000000000..b3358dc166
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q40.benchmark
@@ -0,0 +1,16 @@
+name Q40
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "URLHash", "EventDate", COUNT(*) AS PageViews FROM hits WHERE 
"CounterID" = 62 AND "EventDate" >= '2013-07-01' AND "EventDate" <= 
'2013-07-31' AND "IsRefresh" = 0 AND "TraficSourceID" IN (-1, 6) AND 
"RefererHash" = 3594120000172545465 GROUP BY "URLHash", "EventDate" ORDER BY 
PageViews DESC LIMIT 10 OFFSET 100;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q40.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q41.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q41.benchmark
new file mode 100644
index 0000000000..0cbafea468
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q41.benchmark
@@ -0,0 +1,16 @@
+name Q41
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT "WindowClientWidth", "WindowClientHeight", COUNT(*) AS PageViews FROM 
hits WHERE "CounterID" = 62 AND "EventDate" >= '2013-07-01' AND "EventDate" <= 
'2013-07-31' AND "IsRefresh" = 0 AND "DontCountHits" = 0 AND "URLHash" = 
2868770270353813622 GROUP BY "WindowClientWidth", "WindowClientHeight" ORDER BY 
PageViews DESC LIMIT 10 OFFSET 10000;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q41.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/benchmarks/q42.benchmark 
b/benchmarks/sql_benchmarks/clickbench/benchmarks/q42.benchmark
new file mode 100644
index 0000000000..7822062fd0
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/benchmarks/q42.benchmark
@@ -0,0 +1,16 @@
+name Q42
+group clickbench
+
+init sql_benchmarks/clickbench/init/set_config.sql
+
+load sql_benchmarks/clickbench/init/load-${CLICKBENCH_TYPE:-single}.sql
+
+assert I
+SELECT COUNT(*) > 0 from hits;
+----
+true
+
+run
+SELECT DATE_TRUNC('minute', to_timestamp_seconds("EventTime")) AS M, COUNT(*) 
AS PageViews FROM hits WHERE "CounterID" = 62 AND "EventDate" >= '2013-07-14' 
AND "EventDate" <= '2013-07-15' AND "IsRefresh" = 0 AND "DontCountHits" = 0 
GROUP BY DATE_TRUNC('minute', to_timestamp_seconds("EventTime")) ORDER BY 
DATE_TRUNC('minute', M) LIMIT 10 OFFSET 1000;
+
+result sql_benchmarks/clickbench/results/${CLICKBENCH_TYPE:-single}/q42.csv
diff --git a/benchmarks/sql_benchmarks/clickbench/init/load-partitioned.sql 
b/benchmarks/sql_benchmarks/clickbench/init/load-partitioned.sql
new file mode 100644
index 0000000000..2e4a39625c
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/init/load-partitioned.sql
@@ -0,0 +1,3 @@
+CREATE EXTERNAL TABLE hits_raw STORED AS PARQUET LOCATION 
'${DATA_DIR:-data}/hits_partitioned/';
+
+CREATE VIEW hits AS SELECT * EXCEPT ("EventDate"), CAST(CAST("EventDate" AS 
INTEGER) AS DATE) AS "EventDate" FROM hits_raw
\ No newline at end of file
diff --git a/benchmarks/sql_benchmarks/clickbench/init/load-single.sql 
b/benchmarks/sql_benchmarks/clickbench/init/load-single.sql
new file mode 100644
index 0000000000..3bba417443
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/init/load-single.sql
@@ -0,0 +1,3 @@
+CREATE EXTERNAL TABLE hits_raw STORED AS PARQUET LOCATION 
'${DATA_DIR:-data}/hits.parquet';
+
+CREATE VIEW hits AS SELECT * EXCEPT ("EventDate"), CAST(CAST("EventDate" AS 
INTEGER) AS DATE) AS "EventDate" FROM hits_raw
\ No newline at end of file
diff --git a/benchmarks/sql_benchmarks/clickbench/init/set_config.sql 
b/benchmarks/sql_benchmarks/clickbench/init/set_config.sql
new file mode 100644
index 0000000000..ee2ac0b3c9
--- /dev/null
+++ b/benchmarks/sql_benchmarks/clickbench/init/set_config.sql
@@ -0,0 +1,5 @@
+# ClickBench partitioned dataset was written by an ancient version of PyArrow 
that
+# wrote strings with the wrong logical type. To read it correctly, we must
+# automatically convert binary to string.
+  
+SET datafusion.execution.parquet.binary_as_string = true;
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to