should be it
This commit is contained in:
34
external/duckdb/benchmark/CMakeLists.txt
vendored
Normal file
34
external/duckdb/benchmark/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
include_directories(../third_party/catch)
|
||||
include_directories(../third_party/tpce-tool/include)
|
||||
include_directories(../third_party/sqlite/include)
|
||||
include_directories(../test/include)
|
||||
include_directories(include)
|
||||
|
||||
add_subdirectory(micro)
|
||||
list(FIND DUCKDB_EXTENSION_NAMES tpch _index)
|
||||
if(${_index} GREATER -1)
|
||||
add_subdirectory(tpch)
|
||||
endif()
|
||||
|
||||
add_extension_definitions()
|
||||
set(BENCHMARK_ROOT_DIRECTORY
|
||||
""
|
||||
CACHE
|
||||
STRING
|
||||
"The benchmark runner root directory (defaults to the project source directory)"
|
||||
)
|
||||
if(DEFINED BENCHMARK_ROOT_DIRECTORY AND NOT BENCHMARK_ROOT_DIRECTORY STREQUAL
|
||||
"")
|
||||
add_definitions(-DDUCKDB_ROOT_DIRECTORY="${BENCHMARK_ROOT_DIRECTORY}")
|
||||
else()
|
||||
add_definitions(-DDUCKDB_ROOT_DIRECTORY="${PROJECT_SOURCE_DIR}")
|
||||
endif()
|
||||
|
||||
add_executable(benchmark_runner benchmark_runner.cpp interpreted_benchmark.cpp
|
||||
${BENCHMARK_OBJECT_FILES})
|
||||
|
||||
target_link_libraries(benchmark_runner duckdb imdb test_helpers)
|
||||
|
||||
if(${BUILD_TPCE})
|
||||
target_link_libraries(benchmark_runner tpce)
|
||||
endif()
|
||||
108
external/duckdb/benchmark/README.md
vendored
Normal file
108
external/duckdb/benchmark/README.md
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
|
||||
#### Clone the repo and compile the benchmark runner
|
||||
|
||||
```
|
||||
git clone https://github.com/duckdb/duckdb
|
||||
cd duckdb
|
||||
BUILD_BENCHMARK=1 BUILD_TPCH=1 make
|
||||
```
|
||||
|
||||
#### List all available benchmarks
|
||||
`build/release/benchmark/benchmark_runner --list`
|
||||
|
||||
#### Run a single benchmark
|
||||
`build/release/benchmark/benchmark_runner benchmark/micro/nulls/no_nulls_addition.benchmark`
|
||||
|
||||
The output will be printed to `stdout` in CSV format, in the following format:
|
||||
|
||||
```
|
||||
name run timing
|
||||
benchmark/micro/nulls/no_nulls_addition.benchmark 1 0.121234
|
||||
benchmark/micro/nulls/no_nulls_addition.benchmark 2 0.121702
|
||||
benchmark/micro/nulls/no_nulls_addition.benchmark 3 0.122948
|
||||
benchmark/micro/nulls/no_nulls_addition.benchmark 4 0.122534
|
||||
benchmark/micro/nulls/no_nulls_addition.benchmark 5 0.124102
|
||||
```
|
||||
|
||||
You can also specify an output file using the `--out` flag. This will write only the timings (delimited by newlines) to that file.
|
||||
|
||||
```
|
||||
build/release/benchmark/benchmark_runner benchmark/micro/nulls/no_nulls_addition.benchmark --out=timings.out
|
||||
cat timings.out
|
||||
0.182472
|
||||
0.185027
|
||||
0.184163
|
||||
0.185281
|
||||
0.182948
|
||||
```
|
||||
|
||||
#### Regex
|
||||
You can also use a regex to specify which benchmarks to run. Be careful of shell expansion of certain regex characters (e.g. `*` will likely be expanded by your shell, hence this requires proper quoting or escaping).
|
||||
|
||||
`build/release/benchmark/benchmark_runner "benchmark/micro/nulls/.*" `
|
||||
|
||||
#### Run all benchmarks
|
||||
Not specifying any argument will run all benchmarks.
|
||||
|
||||
`build/release/benchmark/benchmark_runner`
|
||||
|
||||
#### Other options
|
||||
`--info` gives you some other information about the benchmark.
|
||||
|
||||
```
|
||||
build/release/benchmark/benchmark_runner benchmark/micro/nulls/no_nulls_addition.benchmark --info
|
||||
display_name:NULL Addition (no nulls)
|
||||
group:micro
|
||||
subgroup:nulls
|
||||
```
|
||||
|
||||
`--query` will print the query that is run by the benchmark.
|
||||
|
||||
```
|
||||
SELECT MIN(i + 1) FROM integers
|
||||
```
|
||||
|
||||
`--profile` will output a query tree (pretty printed), primarily intended for interactive use.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│┌───────────────────────────────────┐│
|
||||
││ Query Profiling Information ││
|
||||
│└───────────────────────────────────┘│
|
||||
└─────────────────────────────────────┘
|
||||
SELECT MIN(i + 1) FROM integers
|
||||
┌─────────────────────────────────────┐
|
||||
│┌───────────────────────────────────┐│
|
||||
││ Total Time: 0.176s ││
|
||||
│└───────────────────────────────────┘│
|
||||
└─────────────────────────────────────┘
|
||||
┌───────────────────────────┐
|
||||
│ UNGROUPED_AGGREGATE │
|
||||
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
|
||||
│ min(#0) │
|
||||
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
|
||||
│ 1 │
|
||||
│ (0.03s) │
|
||||
└─────────────┬─────────────┘
|
||||
┌─────────────┴─────────────┐
|
||||
│ PROJECTION │
|
||||
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
|
||||
│ +(i, 1) │
|
||||
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
|
||||
│ 100000000 │
|
||||
│ (0.05s) │
|
||||
└─────────────┬─────────────┘
|
||||
┌─────────────┴─────────────┐
|
||||
│ SEQ_SCAN │
|
||||
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
|
||||
│ integers │
|
||||
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
|
||||
│ i │
|
||||
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │
|
||||
│ 100000000 │
|
||||
│ (0.08s) │
|
||||
└───────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
|
||||
25
external/duckdb/benchmark/appian_benchmarks/appian.benchmark.in
vendored
Normal file
25
external/duckdb/benchmark/appian_benchmarks/appian.benchmark.in
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
# name: ${FILE_PATH}
|
||||
# description: ${DESCRIPTION}
|
||||
# group: [clickbench]
|
||||
|
||||
name Q${QUERY_NUMBER_PADDED}
|
||||
group appian
|
||||
|
||||
require httpfs
|
||||
|
||||
cache ads.5M.duck
|
||||
|
||||
load
|
||||
LOAD httpfs;
|
||||
attach 'https://blobs.duckdb.org/data/appian_benchmark_data.duckdb' as appian_db (READ_ONLY);
|
||||
create table AddressView as select * from appian_db.AddressView;
|
||||
create table CustomerView as select * from appian_db.CustomerView;
|
||||
create table OrderView as select * from appian_db.OrderView;
|
||||
create table CategoryView as select * from appian_db.CategoryView;
|
||||
create table OrderItemNovelty_Update as select * from appian_db.OrderItemNovelty_Update;
|
||||
create table ProductView as select * from appian_db.ProductView;
|
||||
create table CreditCardView as select * from appian_db.CreditCardView;
|
||||
create table OrderItemView as select * from appian_db.OrderItemView;
|
||||
create table TaxRecordView as select * from appian_db.TaxRecordView;
|
||||
|
||||
run benchmark/appian_benchmarks/queries/q${QUERY_NUMBER_PADDED}.sql
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q01.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q01.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q01.benchmark
|
||||
# description: Run query 01 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=1
|
||||
QUERY_NUMBER_PADDED=01
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q02.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q02.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q02.benchmark
|
||||
# description: Run query 02 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=2
|
||||
QUERY_NUMBER_PADDED=02
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q03.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q03.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q03.benchmark
|
||||
# description: Run query 03 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=3
|
||||
QUERY_NUMBER_PADDED=03
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q04.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q04.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q04.benchmark
|
||||
# description: Run query 04 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=4
|
||||
QUERY_NUMBER_PADDED=04
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q05.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q05.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q05.benchmark
|
||||
# description: Run query 05 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=5
|
||||
QUERY_NUMBER_PADDED=05
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q06.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q06.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q06.benchmark
|
||||
# description: Run query 06 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=6
|
||||
QUERY_NUMBER_PADDED=06
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q07.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q07.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q07.benchmark
|
||||
# description: Run query 07 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=7
|
||||
QUERY_NUMBER_PADDED=07
|
||||
7
external/duckdb/benchmark/appian_benchmarks/q08.benchmark
vendored
Normal file
7
external/duckdb/benchmark/appian_benchmarks/q08.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/appian_benchmarks/q08.benchmark
|
||||
# description: Run query 08 from the appian benchmarks
|
||||
# group: [appian_benchmarks]
|
||||
|
||||
template benchmark/appian_benchmarks/appian.benchmark.in
|
||||
QUERY_NUMBER=8
|
||||
QUERY_NUMBER_PADDED=08
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q01.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q01.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select address_state as g0, sum(orderItem_quantity) as p0 from CustomerView c left outer join AddressView a on c.customer_id = a.address_customerId left outer join OrderView o on c.customer_id = o.order_customerId left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId group by address_state order by address_state limit 500;
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q02.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q02.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select a.address_state as g0, t1rp1 as g1, t2rp1 as g2, max(t5rp1) as p0, avg(t8rp1 * t8rp2) as p1, max(t6rp1) as p2, count(c.customer_priority) as p3, coalesce(avg(t7rp1), 0.0) as p4 from CustomerView c left outer join AddressView a on c.customer_id = a.address_customerId left outer join TaxRecordView t on a.address_id = t.taxRecord_addressId left outer join ( select sum(creditCard_cvv) as t1rp1, c.customer_id as t1pk from CustomerView c left outer join CreditCardView cc on c.customer_id = cc.creditCard_customerId group by c.customer_id ) t1 on c.customer_id = t1.t1pk left outer join ( select min(p.product_likes) as t2rp1, c.customer_id as t2pk from CustomerView c left outer join OrderView o on c.customer_id = o.order_customerId left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId left outer join ProductView p on oi.orderItem_productId = p.product_id left outer join CategoryView ca on p.product_categoryName = ca.category_name where ca.category_seasonal = true group by c.customer_id ) t2 on c.customer_id = t2.t2pk left outer join ( select max(o.order_subShipments) as t5rp1, c.customer_id as t5pk from CustomerView c left outer join OrderView o on c.customer_id = o.order_customerId group by c.customer_id ) t5 on c.customer_id = t5pk left outer join ( select max(coalesce(oi.orderItem_weight, 1)) as t6rp1, c.customer_id as t6pk from CustomerView c left outer join OrderView o on c.customer_id = o.order_customerId left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId where o.order_serverId in (1, 3, 5) group by c.customer_id ) t6 on c.customer_id = t6pk left outer join ( select count(ca.category_seasonal) as t7rp1, c.customer_id as t7pk from CustomerView c left outer join OrderView o on c.customer_id = o.order_customerId left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId left outer join ProductView p on oi.orderItem_productId = p.product_id left outer join CategoryView ca on p.product_categoryName = ca.category_name where ca.category_perishable = true group by c.customer_id ) t7 on c.customer_id = t7pk left outer join ( select sum(creditCard_zip) as t8rp1, sum(creditCard_lastChargeAmount) as t8rp2, c.customer_id as t8pk from CustomerView c left outer join OrderView o on c.customer_id = o.order_customerId left outer join CreditCardView cc on o.order_creditCardNumber = cc.creditCard_number group by c.customer_id ) t8 on c.customer_id = t8pk where t.taxRecord_value > 149670.0 group by a.address_state, t1rp1, t2rp1 order by g0, p0, p1 limit 500;
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q03.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q03.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select c.customer_priority as g0, t1rp1 as g1, t.taxRecord_bracket as g2, sum(oi.orderItem_weight) as p0, max(ca.category_demandScore) as p1, max(ca.category_auditDate) as p2, cast(avg(ca.category_valuation) as int) as p3, sum(t1rp2) as p4, sum( case when p.product_inventoryLastOrderedOn - ca.category_auditDate > 300 then 1 when p.product_inventoryLastOrderedOn - ca.category_auditDate > 150 then 10 when p.product_inventoryLastOrderedOn - ca.category_auditDate > 0 then 100 else 1000 end + (c.customer_priority * a.address_zone) ) as p5 from OrderItemView oi left outer join OrderView o on oi.orderItem_orderId = o.order_id left outer join ProductView p on oi.orderItem_productId = p.product_id left outer join CreditCardView cc on o.order_creditCardNumber = cc.creditCard_number left outer join CustomerView c on o.order_customerId = c.customer_id left outer join AddressView a on c.customer_id = a.address_customerId left outer join TaxRecordView t on a.address_id = t.taxRecord_addressId left outer join CategoryView ca on p.product_categoryName = ca.category_name left outer join ( select min(cc.creditCard_expirationDate) as t1rp1, sum(cc.creditCard_lastChargeAmount) as t1rp2, c.customer_id as t1pk from CustomerView c left outer join CreditCardView cc on c.customer_id = cc.creditCard_customerId group by c.customer_id ) t1 on c.customer_id = t1pk where cc.creditCard_lastChargeAmount > 90.0 and p.product_price > 34.0 group by c.customer_priority, t1rp1, t.taxRecord_bracket order by p1, p3, g2 limit 500;
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q04.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q04.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select t2rp1 as g0, t3rp1 as g1, t4rp1 as g2, cast(avg(cc.creditCard_lastChargeAmount) as int) as p0, min(cc.creditCard_lastChargeTimestamp) as p1, count(distinct(cc.creditCard_holder)) as p2 from CategoryView ca left outer join ProductView p on ca.category_name = p.product_categoryName left outer join OrderItemView oi on p.product_id = oi.orderItem_productId left outer join OrderView o on oi.orderItem_orderId = o.order_id left outer join CreditCardView cc on o.order_creditCardNumber = cc.creditCard_number left outer join ( select sum(taxRecord_bracket) as t1rp1, ca.category_name as t1pk from CategoryView ca left outer join ProductView p on ca.category_name = p.product_categoryName left outer join OrderItemView oi on p.product_id = oi.orderItem_productId left outer join OrderView o on oi.orderItem_orderId = o.order_id left outer join CustomerView c on o.order_customerId = c.customer_id left outer join AddressView a on c.customer_id = a.address_customerId left outer join TaxRecordView t on a.address_id = t.taxRecord_addressId group by ca.category_name ) t1 on ca.category_name = t1pk left outer join ( select max(p.product_likes) as t2rp1, ca.category_name as t2pk from CategoryView ca left outer join ProductView p on ca.category_name = p.product_categoryName group by ca.category_name ) t2 on ca.category_name = t2pk left outer join ( select sum(oi.orderItem_productGroup) as t3rp1, ca.category_name as t3pk from CategoryView ca left outer join ProductView p on ca.category_name = p.product_categoryName left outer join OrderItemView oi on p.product_id = oi.orderItem_productId where oi.orderItem_weight > 15.0 group by ca.category_name ) t3 on ca.category_name = t3pk left outer join ( select max(cc.creditCard_zip) as t4rp1, ca.category_name as t4pk from CategoryView ca left outer join ProductView p on ca.category_name = p.product_categoryName left outer join OrderItemView oi on p.product_id = oi.orderItem_productId left outer join OrderView o on oi.orderItem_orderId = o.order_id left outer join CreditCardView cc on o.order_creditCardNumber = cc.creditCard_number group by ca.category_name ) t4 on ca.category_name = t4pk where t1rp1 > 6 group by t2rp1, t3rp1, t4rp1 order by g1, p2 limit 500;
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q05.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q05.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select t.taxRecord_rate as g0, t2rp1 as g1, min(c.customer_balance) as p0 from TaxRecordView t left outer join AddressView a on t.taxRecord_addressId = a.address_id left outer join CustomerView c on a.address_customerId = c.customer_id left outer join ( select min(o.order_placedOn) as t1rp1, t.taxRecord_id as t1pk from TaxRecordView t left outer join AddressView a on t.taxRecord_addressId = a.address_id left outer join OrderView o on a.address_customerId = o.order_customerId group by t.taxRecord_id ) t1 on t.taxRecord_id = t1pk left outer join ( select sum(p.product_price * oi.orderItem_quantity) as t2rp1, t.taxRecord_id as t2pk from TaxRecordView t left outer join AddressView a on t.taxRecord_addressId = a.address_id left outer join OrderView o on a.address_customerId = o.order_customerId left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId left outer join ProductView p on oi.orderItem_productId = p.product_id group by t.taxRecord_id ) t2 on t.taxRecord_id = t2pk where t1rp1 > '2020-01-14 12:12:30.0' group by t.taxRecord_rate, t2rp1 order by p0 limit 500;
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q06.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q06.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select t1rp2 as g0, sum(t1rp3)/sum(t1rp4) as p0, sum( case when t1rp5 > 1 then 1 when t2rp1 > 20200 then 2 when t1rp6 > 15 then 3 when t3rp1 > 150 then 4 else 5 end ) as p1 from ProductView p left outer join ( select avg(a.address_valuation) as t1rp1, sum(a.address_zone) as t1rp2, sum(a.address_zone) as t1rp3, count(a.address_zone) as t1rp4, avg(o.order_serverId) as t1rp5, avg(c.customer_balance) as t1rp6, p.product_id as t1pk from ProductView p left outer join OrderItemView oi on p.product_id = oi.orderItem_productId left outer join OrderView o on oi.orderItem_orderId = o.order_id left outer join AddressView a on o.order_customerId = a.address_customerId left outer join CustomerView c on o.order_customerId = c.customer_id group by p.product_id ) t1 on p.product_id = t1pk left outer join ( select min(a.address_zip) as t2rp1, p.product_id as t2pk from ProductView p left outer join OrderItemView oi on p.product_id = oi.orderItem_productId left outer join OrderView o on oi.orderItem_orderId = o.order_id left outer join AddressView a on o.order_customerId = a.address_customerId where a.address_state in ('PA', 'CA', 'VA', 'MA', 'ME', 'MD', 'CO', 'MO') group by p.product_id ) t2 on p.product_id = t2pk left outer join ( select ca.category_warehouseSqft as t3rp1, p.product_id as t3pk from ProductView p left outer join CategoryView ca on p.product_categoryName = ca.category_name where ca.category_seasonal = true ) t3 on p.product_id = t3pk where t1rp1 > 10000.0 group by t1rp2 order by p0 limit 500;
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q07.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q07.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select t1rp1 as g0, t2rp1 as g1, c.customer_age as g2, c.customer_balance as g3, count(c.customer_name) as p0, sum(c.customer_age) as p1 from CustomerView c left outer join AddressView a on c.customer_id = a.address_customerId left outer join TaxRecordView t on a.address_id = t.taxRecord_addressId left outer join ( select avg(oi.orderItem_weight) as t1rp1, c.customer_id as t1pk from CustomerView c left outer join OrderView o on c.customer_id = o.order_customerId left outer join CreditCardView cc on o.order_creditCardNumber = cc.creditCard_number left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId where creditCard_cvv in (113, 115, 117, 119, 121) group by c.customer_id ) t1 on c.customer_id = t1pk left outer join ( select avg((oi.orderItem_quantity * p.product_price)/(oi.orderItem_weight + oi.orderItem_sku)) as t2rp1, c.customer_id as t2pk from CustomerView c left outer join OrderView o on c.customer_id = o.order_customerId left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId left outer join ProductView p on oi.orderItem_productId = p.product_id left outer join CategoryView ca on p.product_categoryName = ca.category_name where ca.category_name in ('Pet', 'Food', 'Game', 'Software') group by c.customer_id ) t2 on c.customer_id = t2pk where t.taxRecord_bracketThreshold in (22, 24, 27, 29) group by t1rp1, t2rp1, c.customer_age, c.customer_balance order by p0, p1 limit 500;
|
||||
1
external/duckdb/benchmark/appian_benchmarks/queries/q08.sql
vendored
Normal file
1
external/duckdb/benchmark/appian_benchmarks/queries/q08.sql
vendored
Normal file
@@ -0,0 +1 @@
|
||||
select t4rp1 as g0, t5rp1 as g1, sum(creditCard_lastChargeAmount) as p0, min(t6rp1) as p1, sum(t3rp2) as p2 from CreditCardView cc left outer join ( select min(order_id) as t1rp1, creditCard_number as t1pk from CreditCardView cc left outer join OrderView o on cc.creditCard_number = o.order_creditCardNumber where order_slaProbability > 0.125 group by creditCard_number ) t1 on cc.creditCard_number = t1pk left outer join ( select sum(orderItem_weight) as t2rp1, creditCard_number as t2pk from CreditCardView cc left outer join OrderView o on cc.creditCard_number = o.order_creditCardNumber left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId group by creditCard_number ) t2 on cc.creditCard_number = t2pk left outer join ( select min(address_zip) as t3rp1, sum(taxRecord_bracketThreshold) as t3rp2, creditCard_number as t3pk from CreditCardView cc left outer join OrderView o on cc.creditCard_number = o.order_creditCardNumber left outer join CustomerView c on o.order_customerId = c.customer_id left outer join AddressView a on c.customer_id = a.address_customerId left outer join TaxRecordView t on a.address_id = t.taxRecord_addressId group by creditCard_number ) t3 on cc.creditCard_number = t3pk left outer join ( select sum(product_price) as t4rp1, creditCard_number as t4pk from CreditCardView cc left outer join OrderView o on cc.creditCard_number = o.order_creditCardNumber left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId left outer join ProductView p on oi.orderItem_productId = p.product_id where orderItem_weight < 25.0 group by creditCard_number ) t4 on cc.creditCard_number = t4pk left outer join ( select sum(category_regulationProbability) as t5rp1, creditCard_number as t5pk from CreditCardView cc left outer join OrderView o on cc.creditCard_number = o.order_creditCardNumber left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId left outer join ProductView p on oi.orderItem_productId = p.product_id left outer join CategoryView ca on p.product_categoryName = ca.category_name group by creditCard_number ) t5 on cc.creditCard_number = t5pk left outer join ( select min(product_inventoryLastOrderedOn) as t6rp1, creditCard_number as t6pk from CreditCardView cc left outer join OrderView o on cc.creditCard_number = o.order_creditCardNumber left outer join OrderItemView oi on o.order_id = oi.orderItem_orderId left outer join ProductView p on oi.orderItem_productId = p.product_id left outer join CategoryView ca on p.product_categoryName = ca.category_name where product_price < 200.0 group by creditCard_number ) t6 on cc.creditCard_number = t6pk where t1rp1 > 10000 or t2rp1 > 15 or t3rp1 > 20200 group by t4rp1, t5rp1 order by p0, p1, p2 limit 500;
|
||||
434
external/duckdb/benchmark/benchmark_runner.cpp
vendored
Normal file
434
external/duckdb/benchmark/benchmark_runner.cpp
vendored
Normal file
@@ -0,0 +1,434 @@
|
||||
#include "benchmark_runner.hpp"
|
||||
|
||||
#include "duckdb/common/profiler.hpp"
|
||||
#include "duckdb/common/file_system.hpp"
|
||||
#include "duckdb/common/string_util.hpp"
|
||||
#include "duckdb.hpp"
|
||||
#include "duckdb_benchmark.hpp"
|
||||
#include "interpreted_benchmark.hpp"
|
||||
|
||||
#define CATCH_CONFIG_RUNNER
|
||||
#include "catch.hpp"
|
||||
#include "re2/re2.h"
|
||||
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <thread>
|
||||
|
||||
using namespace duckdb;
|
||||
|
||||
void BenchmarkRunner::RegisterBenchmark(Benchmark *benchmark) {
|
||||
GetInstance().benchmarks.push_back(benchmark);
|
||||
}
|
||||
|
||||
Benchmark::Benchmark(bool register_benchmark, string name, string group) : name(name), group(group) {
|
||||
if (register_benchmark) {
|
||||
BenchmarkRunner::RegisterBenchmark(this);
|
||||
}
|
||||
}
|
||||
|
||||
static void listFiles(FileSystem &fs, const string &path, std::function<void(const string &)> cb) {
|
||||
fs.ListFiles(path, [&](const string &fname, bool is_dir) {
|
||||
string full_path = fs.JoinPath(path, fname);
|
||||
if (is_dir) {
|
||||
// recurse into directory
|
||||
listFiles(fs, full_path, cb);
|
||||
} else {
|
||||
cb(full_path);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
static bool endsWith(const string &mainStr, const string &toMatch) {
|
||||
return (mainStr.size() >= toMatch.size() &&
|
||||
mainStr.compare(mainStr.size() - toMatch.size(), toMatch.size(), toMatch) == 0);
|
||||
}
|
||||
|
||||
BenchmarkRunner::BenchmarkRunner() {
|
||||
}
|
||||
|
||||
void BenchmarkRunner::InitializeBenchmarkDirectory() {
|
||||
auto fs = FileSystem::CreateLocal();
|
||||
// check if the database directory exists; if not create it
|
||||
if (!fs->DirectoryExists(DUCKDB_BENCHMARK_DIRECTORY)) {
|
||||
fs->CreateDirectory(DUCKDB_BENCHMARK_DIRECTORY);
|
||||
}
|
||||
}
|
||||
|
||||
atomic<bool> is_active;
|
||||
atomic<bool> timeout;
|
||||
atomic<bool> summarize;
|
||||
std::vector<std::string> summary;
|
||||
|
||||
void sleep_thread(Benchmark *benchmark, BenchmarkRunner *runner, BenchmarkState *state, bool hotrun,
|
||||
const optional_idx &optional_timeout) {
|
||||
if (!optional_timeout.IsValid()) {
|
||||
return;
|
||||
}
|
||||
auto timeout_duration = optional_timeout.GetIndex();
|
||||
|
||||
// timeout is given in seconds
|
||||
// we wait 10ms per iteration, so timeout * 100 gives us the amount of
|
||||
// iterations
|
||||
for (size_t i = 0; i < (size_t)(timeout_duration * 100) && is_active; i++) {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||
}
|
||||
if (is_active) {
|
||||
timeout = true;
|
||||
benchmark->Interrupt(state);
|
||||
|
||||
// wait again after interrupting
|
||||
for (size_t i = 0; i < (size_t)(timeout_duration * 100) && is_active; i++) {
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(10));
|
||||
}
|
||||
if (is_active) {
|
||||
// still active - we might be stuck in an infinite loop
|
||||
// our interrupt is not working
|
||||
if (!hotrun) {
|
||||
runner->Log(StringUtil::Format("%s\t%d\t", benchmark->name, 0));
|
||||
}
|
||||
runner->LogResult("Benchmark timeout reached; Interrupt failed. Benchmark killed by benchmark runner");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void BenchmarkRunner::Log(string message) {
|
||||
fprintf(stderr, "%s", message.c_str());
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
void BenchmarkRunner::LogLine(string message) {
|
||||
fprintf(stderr, "%s\n", message.c_str());
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
void BenchmarkRunner::LogResult(string message) {
|
||||
LogLine(message);
|
||||
if (out_file.good()) {
|
||||
out_file << message << endl;
|
||||
out_file.flush();
|
||||
}
|
||||
}
|
||||
|
||||
void BenchmarkRunner::LogOutput(string message) {
|
||||
if (log_file.good()) {
|
||||
log_file << message << endl;
|
||||
log_file.flush();
|
||||
}
|
||||
}
|
||||
|
||||
void BenchmarkRunner::LogSummary(string benchmark, string message, size_t i) {
|
||||
string log_result_line = StringUtil::Format("%s\t%d\t", benchmark, i) + "\tINCORRECT\n";
|
||||
string failure_message = benchmark + "\nname\trun\ttiming\n" + log_result_line + message;
|
||||
summary.push_back(failure_message);
|
||||
}
|
||||
|
||||
void BenchmarkRunner::RunBenchmark(Benchmark *benchmark) {
|
||||
Profiler profiler;
|
||||
auto display_name = benchmark->DisplayName();
|
||||
|
||||
duckdb::unique_ptr<BenchmarkState> state;
|
||||
try {
|
||||
state = benchmark->Initialize(configuration);
|
||||
benchmark->Assert(state.get());
|
||||
} catch (std::exception &ex) {
|
||||
Log(StringUtil::Format("%s\t1\t", benchmark->name));
|
||||
LogResult("ERROR");
|
||||
duckdb::ErrorData error_data(ex);
|
||||
LogLine(error_data.Message());
|
||||
return;
|
||||
}
|
||||
auto nruns = benchmark->NRuns();
|
||||
for (size_t i = 0; i < nruns + 1; i++) {
|
||||
bool hotrun = i > 0;
|
||||
if (hotrun) {
|
||||
Log(StringUtil::Format("%s\t%d\t", benchmark->name, i));
|
||||
}
|
||||
if (hotrun && benchmark->RequireReinit()) {
|
||||
state = benchmark->Initialize(configuration);
|
||||
}
|
||||
is_active = true;
|
||||
timeout = false;
|
||||
std::thread interrupt_thread(sleep_thread, benchmark, this, state.get(), hotrun,
|
||||
benchmark->Timeout(configuration));
|
||||
|
||||
string error;
|
||||
try {
|
||||
profiler.Start();
|
||||
benchmark->Run(state.get());
|
||||
profiler.End();
|
||||
} catch (std::exception &ex) {
|
||||
duckdb::ErrorData error_data(ex);
|
||||
error = error_data.Message();
|
||||
}
|
||||
|
||||
is_active = false;
|
||||
interrupt_thread.join();
|
||||
if (hotrun) {
|
||||
LogOutput(benchmark->GetLogOutput(state.get()));
|
||||
if (!error.empty()) {
|
||||
LogResult("ERROR");
|
||||
LogLine(error);
|
||||
break;
|
||||
} else if (timeout) {
|
||||
LogResult("TIMEOUT");
|
||||
break;
|
||||
} else {
|
||||
// write time
|
||||
auto verify = benchmark->Verify(state.get());
|
||||
if (!verify.empty()) {
|
||||
LogResult("INCORRECT");
|
||||
LogLine("INCORRECT RESULT: " + verify);
|
||||
LogOutput("INCORRECT RESULT: " + verify);
|
||||
LogSummary(benchmark->name, "INCORRECT RESULT: " + verify, i);
|
||||
break;
|
||||
} else {
|
||||
LogResult(std::to_string(profiler.Elapsed()));
|
||||
}
|
||||
}
|
||||
}
|
||||
benchmark->Cleanup(state.get());
|
||||
}
|
||||
benchmark->Finalize();
|
||||
}
|
||||
|
||||
void BenchmarkRunner::RunBenchmarks() {
|
||||
LogLine("Starting benchmark run.");
|
||||
LogLine("name\trun\ttiming");
|
||||
for (auto &benchmark : benchmarks) {
|
||||
RunBenchmark(benchmark);
|
||||
}
|
||||
}
|
||||
|
||||
void print_help() {
|
||||
fprintf(stderr, "Usage: benchmark_runner\n");
|
||||
fprintf(stderr, " --list Show a list of all benchmarks\n");
|
||||
fprintf(stderr, " --profile Prints the query profile information\n");
|
||||
fprintf(stderr, " --detailed-profile Prints detailed query profile information\n");
|
||||
fprintf(stderr, " --threads=n Sets the amount of threads to use during execution (default: "
|
||||
"hardware concurrency)\n");
|
||||
fprintf(stderr, " --memory_limit=n Sets the memory limit to use during execution (default: 0.8 "
|
||||
"* system memory)\n");
|
||||
fprintf(stderr, " --out=[file] Move benchmark output to file\n");
|
||||
fprintf(stderr, " --log=[file] Move log output to file\n");
|
||||
fprintf(stderr, " --info Prints info about the benchmark\n");
|
||||
fprintf(stderr, " --query Prints query of the benchmark\n");
|
||||
fprintf(stderr, " --root-dir Sets the root directory for where to store temp data and "
|
||||
"look for the 'benchmarks' directory\n");
|
||||
fprintf(stderr, " --disable-timeout Disables killing the run after a certain amount of time has "
|
||||
"passed (30 seconds by default)\n");
|
||||
fprintf(stderr,
|
||||
" [name_pattern] Run only the benchmark which names match the specified name pattern, "
|
||||
"e.g., DS.* for TPC-DS benchmarks\n");
|
||||
}
|
||||
|
||||
enum ConfigurationError { None, BenchmarkNotFound, InfoWithoutBenchmarkName };
|
||||
|
||||
void LoadInterpretedBenchmarks(FileSystem &fs) {
|
||||
// load interpreted benchmarks
|
||||
listFiles(fs, "benchmark", [](const string &path) {
|
||||
if (endsWith(path, ".benchmark")) {
|
||||
new InterpretedBenchmark(path);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
string parse_root_dir_or_default(const int arg_counter, char const *const *arg_values, FileSystem &fs) {
|
||||
// check if the user specified a different root directory
|
||||
for (int arg_index = 1; arg_index < arg_counter; ++arg_index) {
|
||||
string arg = arg_values[arg_index];
|
||||
if (arg == "--root-dir") {
|
||||
if (arg_index + 1 >= arg_counter) {
|
||||
fprintf(stderr, "Missing argument for --root-dir\n");
|
||||
print_help();
|
||||
exit(1);
|
||||
}
|
||||
auto path = arg_values[arg_index + 1];
|
||||
if (fs.IsPathAbsolute(path)) {
|
||||
return path;
|
||||
} else {
|
||||
return fs.JoinPath(FileSystem::GetWorkingDirectory(), path);
|
||||
}
|
||||
}
|
||||
}
|
||||
// default root directory is the duckdb root directory
|
||||
return DUCKDB_ROOT_DIRECTORY;
|
||||
}
|
||||
/**
|
||||
* Builds a configuration based on the passed arguments.
|
||||
*/
|
||||
void parse_arguments(const int arg_counter, char const *const *arg_values) {
|
||||
auto &instance = BenchmarkRunner::GetInstance();
|
||||
auto &benchmarks = instance.benchmarks;
|
||||
for (int arg_index = 1; arg_index < arg_counter; ++arg_index) {
|
||||
// make it summarize failures by default
|
||||
summarize = true;
|
||||
string arg = arg_values[arg_index];
|
||||
if (arg == "--list") {
|
||||
// list names of all benchmarks
|
||||
for (auto &benchmark : benchmarks) {
|
||||
fprintf(stdout, "%s\n", benchmark->name.c_str());
|
||||
}
|
||||
exit(0);
|
||||
} else if (arg == "--info") {
|
||||
// write info of benchmark
|
||||
instance.configuration.meta = BenchmarkMetaType::INFO;
|
||||
} else if (arg == "--profile") {
|
||||
// write info of benchmark
|
||||
instance.configuration.profile_info = BenchmarkProfileInfo::NORMAL;
|
||||
} else if (arg == "--detailed-profile") {
|
||||
// write info of benchmark
|
||||
instance.configuration.profile_info = BenchmarkProfileInfo::DETAILED;
|
||||
} else if (StringUtil::StartsWith(arg, "--threads=")) {
|
||||
// write info of benchmark
|
||||
auto splits = StringUtil::Split(arg, '=');
|
||||
instance.threads = Value(splits[1]).DefaultCastAs(LogicalType::UINTEGER).GetValue<uint32_t>();
|
||||
} else if (StringUtil::StartsWith(arg, "--memory_limit=")) {
|
||||
// write info of benchmark
|
||||
auto splits = StringUtil::Split(arg, '=');
|
||||
instance.memory_limit = splits[1];
|
||||
} else if (arg == "--root-dir") {
|
||||
// We've already handled this, skip it
|
||||
arg_index++;
|
||||
} else if (arg == "--query") {
|
||||
// write group of benchmark
|
||||
instance.configuration.meta = BenchmarkMetaType::QUERY;
|
||||
} else if (arg == "--disable-timeout") {
|
||||
instance.configuration.timeout_duration = optional_idx();
|
||||
} else if (StringUtil::StartsWith(arg, "--out=") || StringUtil::StartsWith(arg, "--log=")) {
|
||||
auto splits = StringUtil::Split(arg, '=');
|
||||
if (splits.size() != 2) {
|
||||
print_help();
|
||||
exit(1);
|
||||
}
|
||||
auto &file = StringUtil::StartsWith(arg, "--out=") ? instance.out_file : instance.log_file;
|
||||
file.open(splits[1]);
|
||||
if (!file.good()) {
|
||||
fprintf(stderr, "Could not open file %s for writing\n", splits[1].c_str());
|
||||
exit(1);
|
||||
}
|
||||
} else if (arg == "--no-summary") {
|
||||
summarize = false;
|
||||
} else if (StringUtil::StartsWith(arg, "--")) {
|
||||
// custom argument
|
||||
auto arg_name = arg.substr(2);
|
||||
if (arg_index + 1 >= arg_counter) {
|
||||
fprintf(stderr, "Benchmark argument %s requires an argument\n", arg_name.c_str());
|
||||
print_help();
|
||||
exit(1);
|
||||
}
|
||||
arg_index++;
|
||||
auto arg_value = arg_values[arg_index];
|
||||
instance.custom_arguments.emplace(std::move(arg_name), std::move(arg_value));
|
||||
} else {
|
||||
if (!instance.configuration.name_pattern.empty()) {
|
||||
fprintf(stderr, "Only one benchmark can be specified.\n");
|
||||
print_help();
|
||||
exit(1);
|
||||
}
|
||||
instance.configuration.name_pattern = arg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs the benchmarks specified by the configuration if possible.
|
||||
* Returns an configuration error code.
|
||||
*/
|
||||
ConfigurationError run_benchmarks() {
|
||||
BenchmarkRunner::InitializeBenchmarkDirectory();
|
||||
|
||||
auto &instance = BenchmarkRunner::GetInstance();
|
||||
auto &benchmarks = instance.benchmarks;
|
||||
if (!instance.configuration.name_pattern.empty()) {
|
||||
// run only benchmarks which names matches the
|
||||
// passed name pattern.
|
||||
std::vector<int> benchmark_indices {};
|
||||
benchmark_indices.reserve(benchmarks.size());
|
||||
for (idx_t index = 0; index < benchmarks.size(); ++index) {
|
||||
if (RE2::FullMatch(benchmarks[index]->name, instance.configuration.name_pattern)) {
|
||||
benchmark_indices.emplace_back(index);
|
||||
} else if (RE2::FullMatch(benchmarks[index]->group, instance.configuration.name_pattern)) {
|
||||
benchmark_indices.emplace_back(index);
|
||||
}
|
||||
}
|
||||
benchmark_indices.shrink_to_fit();
|
||||
if (benchmark_indices.empty()) {
|
||||
return ConfigurationError::BenchmarkNotFound;
|
||||
}
|
||||
std::sort(benchmark_indices.begin(), benchmark_indices.end(),
|
||||
[&](const int a, const int b) -> bool { return benchmarks[a]->name < benchmarks[b]->name; });
|
||||
if (instance.configuration.meta == BenchmarkMetaType::INFO) {
|
||||
// print info of benchmarks
|
||||
for (const auto &benchmark_index : benchmark_indices) {
|
||||
auto display_name = benchmarks[benchmark_index]->DisplayName();
|
||||
auto display_group = benchmarks[benchmark_index]->Group();
|
||||
auto subgroup = benchmarks[benchmark_index]->Subgroup();
|
||||
fprintf(stdout, "display_name:%s\ngroup:%s\nsubgroup:%s\n", display_name.c_str(), display_group.c_str(),
|
||||
subgroup.c_str());
|
||||
}
|
||||
} else if (instance.configuration.meta == BenchmarkMetaType::QUERY) {
|
||||
for (const auto &benchmark_index : benchmark_indices) {
|
||||
auto query = benchmarks[benchmark_index]->GetQuery();
|
||||
if (query.empty()) {
|
||||
continue;
|
||||
}
|
||||
fprintf(stdout, "%s\n", query.c_str());
|
||||
}
|
||||
} else {
|
||||
instance.LogLine("name\trun\ttiming");
|
||||
for (const auto &benchmark_index : benchmark_indices) {
|
||||
instance.RunBenchmark(benchmarks[benchmark_index]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (instance.configuration.meta != BenchmarkMetaType::NONE) {
|
||||
return ConfigurationError::InfoWithoutBenchmarkName;
|
||||
}
|
||||
// default: run all benchmarks
|
||||
instance.RunBenchmarks();
|
||||
}
|
||||
return ConfigurationError::None;
|
||||
}
|
||||
|
||||
void print_error_message(const ConfigurationError &error) {
|
||||
switch (error) {
|
||||
case ConfigurationError::BenchmarkNotFound:
|
||||
fprintf(stderr, "Benchmark to run could not be found.\n");
|
||||
break;
|
||||
case ConfigurationError::InfoWithoutBenchmarkName:
|
||||
fprintf(stderr, "Info requires benchmark name pattern.\n");
|
||||
break;
|
||||
case ConfigurationError::None:
|
||||
break;
|
||||
}
|
||||
print_help();
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
duckdb::unique_ptr<FileSystem> fs = FileSystem::CreateLocal();
|
||||
// Set the working directory. We need to scan this before loading the benchmarks or parsing the other arguments
|
||||
string root_dir = parse_root_dir_or_default(argc, argv, *fs);
|
||||
FileSystem::SetWorkingDirectory(root_dir);
|
||||
// load interpreted benchmarks before doing anything else
|
||||
LoadInterpretedBenchmarks(*fs);
|
||||
parse_arguments(argc, argv);
|
||||
const auto configuration_error = run_benchmarks();
|
||||
|
||||
if (!summary.empty() && summarize) {
|
||||
std::cout << "\n====================================================" << std::endl;
|
||||
std::cout << "================ FAILURES SUMMARY ================" << std::endl;
|
||||
std::cout << "====================================================\n" << std::endl;
|
||||
for (size_t i = 0; i < summary.size(); i++) {
|
||||
std::cout << i + 1 << ": " << summary[i] << std::endl;
|
||||
std::cout << "----------------------------------------------------" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
if (configuration_error != ConfigurationError::None) {
|
||||
print_error_message(configuration_error);
|
||||
exit(1);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
12
external/duckdb/benchmark/cast/double_bignum.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/double_bignum.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/double_bignum.benchmark
|
||||
# description: Casting of a Double to bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of Double to Bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368 as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::bignum from t1
|
||||
9
external/duckdb/benchmark/cast/from_bignum/bignum_double.benchmark
vendored
Normal file
9
external/duckdb/benchmark/cast/from_bignum/bignum_double.benchmark
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# name: benchmark/cast/from_bignum/bignum_double.benchmark
|
||||
# description: Casting of a bignum to double
|
||||
# group: [from_bignum]
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368::bignum as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::double from t1
|
||||
9
external/duckdb/benchmark/cast/from_bignum/bignum_varchar.benchmark
vendored
Normal file
9
external/duckdb/benchmark/cast/from_bignum/bignum_varchar.benchmark
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# name: benchmark/cast/from_bignum/bignum_varchar.benchmark
|
||||
# description: Casting of a bignum to varchar
|
||||
# group: [from_bignum]
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368::bignum as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::varchar from t1
|
||||
12
external/duckdb/benchmark/cast/from_bignum/bignum_varchar_100k.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/from_bignum/bignum_varchar_100k.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/from_bignum/bignum_varchar_100k.benchmark
|
||||
# description: Casting of a bignum with 100k digits to varchar
|
||||
# group: [from_bignum]
|
||||
|
||||
name Casting of a bignum with 100k digits to varchar
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select concat('1', repeat('0', 100000))::bignum as a;
|
||||
|
||||
run
|
||||
SELECT a::varchar from t1
|
||||
12
external/duckdb/benchmark/cast/hugeint_bignum.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/hugeint_bignum.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/hugeint_bignum.benchmark
|
||||
# description: Casting of a HUGEINT to Bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of UHUGEINT to Bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select '340282366920938463463374607431768211455'::UHUGEINT as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/integer_bignum.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/integer_bignum.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/integer_bignum.benchmark
|
||||
# description: Casting of a UBIGINT to Bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of Double to Bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select 18446744073709551615::UBIGINT as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/small_double_bignum.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/small_double_bignum.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/small_double_bignum.benchmark
|
||||
# description: Casting of small doubles to bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of Small Doubles to Bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select '340282366920938463463374607431768211455'::DOUBLE as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/small_varchar_bignum.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/small_varchar_bignum.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/small_varchar_bignum.benchmark
|
||||
# description: Casting of small varchar values to bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of small varchar values to Bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select '340282366920938463463374607431768211455' as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/smallint_bignum.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/smallint_bignum.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/smallint_bignum.benchmark
|
||||
# description: Casting of a USMALLINT to Bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of USMALLINT to Bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select 65535::USMALLINT as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/varchar_bignum.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/varchar_bignum.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/varchar_bignum.benchmark
|
||||
# description: Casting of a varchar to bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of Varchar to Bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select '179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368' as a from range(0,10000000) tbl(i);
|
||||
|
||||
run
|
||||
create or replace table t2 as select a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/varchar_bignum_100k.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/varchar_bignum_100k.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/varchar_bignum_100k.benchmark
|
||||
# description: Casting of a Varchar with 100k digits to bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of a Varchar with 100k digits to bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select concat('1', repeat('0', 100000)) as a;
|
||||
|
||||
run
|
||||
SELECT a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/varchar_bignum_10M.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/varchar_bignum_10M.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/varchar_bignum_10M.benchmark
|
||||
# description: Casting of a Varchar with 10M digits to bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of a Varchar with 10M digits to bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select concat('1', repeat('0', 10000000)) as a;
|
||||
|
||||
run
|
||||
SELECT a::bignum from t1
|
||||
12
external/duckdb/benchmark/cast/varchar_bignum_1M.benchmark
vendored
Normal file
12
external/duckdb/benchmark/cast/varchar_bignum_1M.benchmark
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# name: benchmark/cast/varchar_bignum_1M.benchmark
|
||||
# description: Casting of a Varchar with 1M digits to bignum
|
||||
# group: [cast]
|
||||
|
||||
name Casting of a Varchar with 1M digits to bignum
|
||||
group csv
|
||||
|
||||
load
|
||||
CREATE TABLE t1 AS select concat('1', repeat('0', 1000000)) as a;
|
||||
|
||||
run
|
||||
SELECT a::bignum from t1
|
||||
2
external/duckdb/benchmark/clickbench/answers/q00.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q00.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
count_star()
|
||||
99997497
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q01.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q01.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
count_star()
|
||||
630500
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q02.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q02.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
sum(AdvEngineID)|count_star()|avg(ResolutionWidth)
|
||||
7280088|99997497|1513.4879349030107
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q03.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q03.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
avg(UserID)
|
||||
2.528953029789716e+18
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q04.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q04.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
count(DISTINCT UserID)
|
||||
17630976
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q05.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q05.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
count(DISTINCT SearchPhrase)
|
||||
6019103
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q06.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q06.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
min(EventDate)|max(EventDate)
|
||||
2013-07-02|2013-07-31
|
||||
|
19
external/duckdb/benchmark/clickbench/answers/q07.csv
vendored
Normal file
19
external/duckdb/benchmark/clickbench/answers/q07.csv
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
AdvEngineID|count_star()
|
||||
2|404602
|
||||
27|113167
|
||||
13|45631
|
||||
45|38960
|
||||
44|9730
|
||||
3|6896
|
||||
62|5266
|
||||
52|3554
|
||||
50|938
|
||||
28|836
|
||||
53|350
|
||||
25|343
|
||||
61|158
|
||||
21|38
|
||||
42|20
|
||||
16|7
|
||||
7|3
|
||||
22|1
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q08.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q08.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
RegionID|u
|
||||
229|2845673
|
||||
2|1081016
|
||||
208|831676
|
||||
169|604583
|
||||
184|322661
|
||||
158|307152
|
||||
34|299479
|
||||
55|286525
|
||||
107|272448
|
||||
42|243181
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q09.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q09.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
RegionID|sum(AdvEngineID)|c|avg(ResolutionWidth)|count(DISTINCT UserID)
|
||||
229|2077656|18295832|1506.085243130785|2845673
|
||||
2|441662|6687587|1479.8386542111527|1081016
|
||||
208|285925|4261812|1285.2593246722286|831676
|
||||
169|100887|3320229|1465.9073732564832|604583
|
||||
32|81498|1843518|1538.0376568061718|216010
|
||||
34|161779|1792369|1548.360152401654|299479
|
||||
184|55526|1755192|1506.8082967561384|322661
|
||||
42|108820|1542717|1587.1085208758313|243181
|
||||
107|120470|1516690|1548.6028970982863|272448
|
||||
51|98212|1435578|1579.8860354505293|211505
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q10.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q10.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
MobilePhoneModel|u
|
||||
iPad|1090347
|
||||
iPhone|45758
|
||||
A500|16046
|
||||
N8-00|5565
|
||||
iPho|3300
|
||||
ONE TOUCH 6030A|2759
|
||||
GT-P7300B|1907
|
||||
3110000|1871
|
||||
GT-I9500|1598
|
||||
eagle75|1492
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q11.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q11.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
MobilePhone|MobilePhoneModel|u
|
||||
1|iPad|931038
|
||||
5|iPad|48385
|
||||
6|iPad|29710
|
||||
7|iPad|28391
|
||||
118|A500|16005
|
||||
6|iPhone|14516
|
||||
26|iPhone|13566
|
||||
10|iPad|11433
|
||||
32|iPad|9503
|
||||
13|iPad|9417
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q12.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q12.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
SearchPhrase|c
|
||||
"карелки"|70263
|
||||
"албатрутдин"|34675
|
||||
"смотреть онлайн"|24580
|
||||
"смотреть онлайн бесплатно"|21647
|
||||
"смотреть"|19707
|
||||
"мангу в зарабей грама"|19195
|
||||
"дружке помещение"|17284
|
||||
galaxy table|16746
|
||||
"экзоидные"|16620
|
||||
"сколько мытищи"|12317
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q13.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q13.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
SearchPhrase|u
|
||||
"карелки"|23673
|
||||
"смотреть онлайн"|19747
|
||||
"албатрутдин"|18394
|
||||
"смотреть онлайн бесплатно"|17553
|
||||
"смотреть"|14603
|
||||
"экзоидные"|14529
|
||||
"мангу в зарабей грама"|14198
|
||||
"сколько мытищи"|9007
|
||||
"дружке помещение"|8792
|
||||
"комбинирование смотреть"|7572
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q14.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q14.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
SearchEngineID|SearchPhrase|c
|
||||
2|"карелки"|46258
|
||||
2|"мангу в зарабей грама"|18871
|
||||
2|"смотреть онлайн"|16905
|
||||
3|"албатрутдин"|16748
|
||||
2|"смотреть онлайн бесплатно"|14909
|
||||
2|"албатрутдин"|13716
|
||||
2|"экзоидные"|13414
|
||||
2|"смотреть"|13108
|
||||
3|"карелки"|12815
|
||||
2|"дружке помещение"|11946
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q15.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q15.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
UserID|count_star()
|
||||
1313338681122956954|29097
|
||||
1907779576417363396|25333
|
||||
2305303682471783379|10597
|
||||
7982623143712728547|7584
|
||||
6018350421959114808|6678
|
||||
7280399273658728997|6411
|
||||
1090981537032625727|6197
|
||||
5730251990344211405|6019
|
||||
835157184735512989|5211
|
||||
770542365400669095|4906
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q16.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q16.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
UserID|SearchPhrase|count_star()
|
||||
1313338681122956954|""|29097
|
||||
1907779576417363396|""|25333
|
||||
2305303682471783379|""|10597
|
||||
7982623143712728547|""|6669
|
||||
7280399273658728997|""|6408
|
||||
1090981537032625727|""|6196
|
||||
5730251990344211405|""|6019
|
||||
6018350421959114808|""|5990
|
||||
835157184735512989|""|5209
|
||||
770542365400669095|""|4906
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q17.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q17.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
count
|
||||
10
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q18.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q18.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
UserID|m|SearchPhrase|count_star()
|
||||
1313338681122956954|31|""|589
|
||||
1313338681122956954|28|""|578
|
||||
1313338681122956954|29|""|572
|
||||
1313338681122956954|33|""|567
|
||||
1313338681122956954|27|""|557
|
||||
1313338681122956954|32|""|554
|
||||
1313338681122956954|30|""|552
|
||||
1313338681122956954|34|""|546
|
||||
1313338681122956954|26|""|540
|
||||
1313338681122956954|10|""|539
|
||||
|
5
external/duckdb/benchmark/clickbench/answers/q19.csv
vendored
Normal file
5
external/duckdb/benchmark/clickbench/answers/q19.csv
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
UserID
|
||||
435090932899640449
|
||||
435090932899640449
|
||||
435090932899640449
|
||||
435090932899640449
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q20.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q20.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
count_star()
|
||||
15911
|
||||
|
9
external/duckdb/benchmark/clickbench/answers/q21.csv
vendored
Normal file
9
external/duckdb/benchmark/clickbench/answers/q21.csv
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
SearchPhrase|min(URL)|c
|
||||
"прокур горбуши"|http://smeshariki.ru/googleTBR%26ad|60
|
||||
"римском качественны for cry"|http:%2F%2Fwwww.googlead&aktional|24
|
||||
"стоит похуден"|http://smeshariki.ru/index.ua/doc/22229/googlead%26aktion=2&input_bdsmpeople.ru/real-estate=0&state=2013070519381|23
|
||||
"испанч боб новости дейская"|http://smeshariki.ru/recipes/show/6840872&trafkey=6d0fc12c54059/loukhaAUXI&where=all&filter/Mitsubishi/google|21
|
||||
"прокур готовки видеоэндоменя"|http://smeshariki.ru/googleTBR%26ad|14
|
||||
"прокур гипоаллеры"|http://smeshariki.ru/googleTBR%26ad|11
|
||||
"камедицинск автомобильних условодки на в крем"|http://video.yandex.php?com=google.ru/arts/searchAutoSearch|9
|
||||
"универ 11.6/1366x768/4096mb ddressary of thing"|http://smeshariki.ru/index.ua/syllanet.ru/business/hotels.turizm.ru/igooglead%26ar_sliceid%3D1216629/0/&&puid2=15&lo=http|8
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q22.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q22.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
SearchPhrase|min(URL)|min(Title)|c|count(DISTINCT UserID)
|
||||
"винки медведь смотреть фильмы 2013 смотреть"|http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64; Edition=1&input_action=2011/page_type=profiles/88436/currency|"видеорегионалу Google"|801|600
|
||||
"секретарь оверка все серии порт"|http://kinopoisk.ru/a-albums_scroll_to_auto_id=227&option/vacancies/liver.ru/cgi-bin/click.cgi%3Fsid%3D158197%26ad|"@дневники Google Player 1.2.5 л,"|214|182
|
||||
"винки медведь смотреть фильмы чеческия"|http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64; Edition=1&input_action=2013-topy%2Fproduct_price_ot=&price|"видеорегионалу Gooddock hotmail Google на толстовая комфорталенны Berlingo по давлений"|138|121
|
||||
"игры для дер блич"|http://kinopoisk.ru/a-albums_scroll_to_auto_id=363064472354&lb_id=1559843|"Легко на купить автозаврам телась Google Anaissage_599-61 «Оверлок колепный рецепт: Твери"|114|106
|
||||
"винки медведь смотреть объятный ветерин"|http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64; Edition=1&input_age17/#page/Jeep,Lexus/rodimomu_vsegoddelki.ru/carbuznyj-90472-0-014031818%26height%3D901634571|"видеорегионалу Google - Доставщиков и актрическая"|102|85
|
||||
"кино 2009) смотреть онлайн бессмерти мк в россипед"|http://domchelove.ru/#!/search/page|"Далее о коллекции в GIMI LANCIA 0K3Y318104 продать Google, go-go в регистрии — Мой Крым"|90|70
|
||||
"винки медведь смотреть"|"http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64; Edition=1&input_active/?do=showCampState/renatzija-na-brietielkakh%2F&ti=С"|"видеорегионалу Google - модного языке - Пульс"|87|56
|
||||
"тайны избавитель в владимира для университет масляться"|http://smeshariki.ru/a-folder=cars/article=199980150195,0.107736/detail.aspx#location=search?text=asc&maxyear=2001216629%26sob%3D3159&input_who1=1&cid=577&oki=1&op_product_id=25&pvno=2&evlg=VC,2;VL|"Амитин обувь - Яндекс.Видео+текст песен Google.com"|64|56
|
||||
"коптимиквиды юриста с роуз рая"|https://produkty%2Fpulove.ru/booklyattion-war-sinij-9182/women|"Легко на участные участников., Цены - Стильная парнем. Саганрог догадения : Турции, купить у 10 дне кольные машинки не представки - Новая с избиение спродажа: котята 2014 г.в. Цена: 47500-10ECO060 – -------- купить квартиру Оренбург (России Galantrax Flamiliada Google, Nо 18 фотоконверк Супер Кардиган"|45|12
|
||||
"винки медведь смотрейлера начальник"|http://smeshariki.ru/a-folder-4/#page-3.2.1; WOW64; Edition=1&input_active/|"видеорегионалу Google - модных Челябинск"|40|35
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q23.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q23.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
WatchID|JavaEnable|Title|GoodEvent|EventTime|EventDate|CounterID|ClientIP|RegionID|UserID|CounterClass|OS|UserAgent|URL|Referer|IsRefresh|RefererCategoryID|RefererRegionID|URLCategoryID|URLRegionID|ResolutionWidth|ResolutionHeight|ResolutionDepth|FlashMajor|FlashMinor|FlashMinor2|NetMajor|NetMinor|UserAgentMajor|UserAgentMinor|CookieEnable|JavascriptEnable|IsMobile|MobilePhone|MobilePhoneModel|Params|IPNetworkID|TraficSourceID|SearchEngineID|SearchPhrase|AdvEngineID|IsArtifical|WindowClientWidth|WindowClientHeight|ClientTimeZone|ClientEventTime|SilverlightVersion1|SilverlightVersion2|SilverlightVersion3|SilverlightVersion4|PageCharset|CodeVersion|IsLink|IsDownload|IsNotBounce|FUniqID|OriginalURL|HID|IsOldCounter|IsEvent|IsParameter|DontCountHits|WithHash|HitColor|LocalEventTime|Age|Sex|Income|Interests|Robotness|RemoteIP|WindowName|OpenerName|HistoryLength|BrowserLanguage|BrowserCountry|SocialNetwork|SocialAction|HTTPError|SendTiming|DNSTiming|ConnectTiming|ResponseStartTiming|ResponseEndTiming|FetchTiming|SocialSourceNetworkID|SocialSourcePage|ParamPrice|ParamOrderID|ParamCurrency|ParamCurrencyID|OpenstatServiceName|OpenstatCampaignID|OpenstatAdID|OpenstatSourceID|UTMSource|UTMMedium|UTMCampaign|UTMContent|UTMTerm|FromTag|HasGCLID|RefererHash|URLHash|CLID
|
||||
7675678523794456216|1|"Glavnaya gorand. Цветные объявлений районе, вером"|1|2013-07-01 20:01:09|2013-07-02|64469|1840073959|2|3714843517822510735|0|44|5|http://e96.ru/search/page.googleTBR%26ad%3D0%26rnd%3D158197%26anbietersburg|http://bdsmpeople.ru/obrazom_position/?page|0|13593|158|13606|216|1638|1658|22|15|7|700|0|0|22|nA|1|1|0|0|""|""|4005373|-1|0|""|0|0|1052|775|135|2013-07-02 10:20:22|0|0|0|0|windows|1601|0|0|0|0|""|213893614|0|0|0|0|0|6|2013-07-02 11:58:11|0|0|0|0|0|1412515749|63522|-1|12|S0|"<22>"|""|""|0|0|0|0|445|1234|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|5972490271588207794|1369713899219085694|0
|
||||
6147260061318473746|1|"Glavnaya gorand. Цветные объявлений районе, вером"|1|2013-07-01 20:01:29|2013-07-02|64469|1840073959|2|3714843517822510735|0|44|5|http://e96.ru/search/page.googleTBR%26ad%3D0%26rnd%3D158197%26anbietersburg|http://bdsmpeople.ru/obrazom_position/?page|0|13593|158|13606|216|1638|1658|22|15|7|700|0|0|22|"D<>"|1|1|0|0|""|""|4005373|-1|0|""|0|0|1052|775|135|2013-07-02 10:20:42|0|0|0|0|windows|1601|0|0|0|0|""|810892658|0|0|0|0|0|6|2013-07-02 11:58:25|0|0|0|0|0|1412515749|63522|-1|13|S0|"<22>"|""|""|0|0|0|0|0|16|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|5972490271588207794|1369713899219085694|0
|
||||
5972689683963797854|1|"Glavnaya gorand. Цветные объявлений районе, вером"|1|2013-07-01 20:02:11|2013-07-02|64469|1840073959|2|3714843517822510735|0|44|5|http://e96.ru/search/page.googleTBR%26ad%3D0%26rnd%3D158197%26anbietersburg|http://bdsmpeople.ru/obrazom_position/?page|0|13593|158|13606|216|1638|1658|22|15|7|700|0|0|22|"D<>"|1|1|0|0|""|""|4005373|-1|0|""|0|0|1052|775|135|2013-07-02 10:21:16|0|0|0|0|windows|1601|0|0|0|0|""|47015096|0|0|0|0|0|6|2013-07-02 11:58:50|0|0|0|0|0|1412515749|63522|-1|13|S0|h1|""|""|0|0|0|0|0|0|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|5972490271588207794|1369713899219085694|0
|
||||
8008688361303225116|1|"Скачать онлайн играй! - Туризма - Крымский тренчкоты в интернет магазин Wildberries.ru (Работа - IRR.ru - модных словариумных"|1|2013-07-01 20:12:01|2013-07-02|63217|1975817788|229|804133623150786791|1|44|7|http://bjdswaps.google-photo|http://loveche.html?ctid|0|12409|20|10093|22|1749|867|23|15|3|700.224|0|0|15|"D<>"|1|1|0|0|""|""|3056753|-1|0|""|0|0|1608|662|135|2013-07-02 06:19:55|4|1|16561|0|windows|1|0|0|0|5347008031302181363|""|766531830|0|0|0|0|0|5|2013-07-02 12:00:25|31|1|3|11237|31|1870660671|-1|-1|-1|E3|_i|""|""|0|0|0|0|0|0|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|-2736470446903004689|7116991598850737408|0
|
||||
7436461208655480623|1|"Компании Вино в хорошие"|1|2013-07-01 20:32:24|2013-07-02|35534|1741555497|39|7082047337377160280|0|44|5|http://rsdn.ru/catalog/cifrovye-advertisement=little&category=22&input_bdsmpeople.ru/index,google.ru/news/39826|http://kalina?block/?inst_the_book.php?cPath=40_57470493958402/|0|10634|20|0|0|1996|1781|37|15|7|700|0|0|22|"D<>"|1|1|0|0|""|""|808950|5|0|""|0|0|1261|1017|433|2013-07-02 19:03:12|4|1|16561|0|windows-1251;charset|1601|1|0|0|6804199628189316872|""|626511463|0|0|0|1|0|5|2013-07-02 02:35:42|31|2|3|694|57|1448806868|-1|-1|-1|E3|_i|""|""|0|0|0|3|345|147|239|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|8931346360692564721|1971436513446935197|0
|
||||
5564518777317455184|0|"«set» в пробег аппах и обслуживатизиров"|1|2013-07-01 20:44:29|2013-07-02|5822|1920787234|32|3712346975274085073|1|2|3|"http://auto_gruppy/christikha/hotel=-1&trafkey=605&from=&power_name=Платья&produkty%2Furl.google.ru/index"|http://rmnt.ru/cars/passenger/hellardous/42/~37/?suggest&id=3869551753&custom=0&undefined/undefined/under=28036,5;362;108;16762643539|0|8563|21482|9822|18528|1638|1658|23|15|7|700|0|0|16|"D<>"|1|1|0|0|""|""|207348|-1|0|""|0|0|1509|733|135|2013-07-02 07:33:12|4|1|15738|0|windows-1251;charset|1|0|0|0|8007561756096276896|""|1034507462|0|0|0|0|0|5|2013-07-02 10:03:56|0|0|0|0|0|2016848722|-1|-1|-1|S0|h1|""|""|0|0|0|0|0|0|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|7820066807630413322|-3258566084785303139|0
|
||||
7381524648140977766|1|"Ploshchad' stolitsi zwy 110911923, Г официальная Прессы и Огонек"|1|2013-07-01 21:01:46|2013-07-02|63217|1638850281|59|1564939829982760596|1|44|5|http://bjdleaksbrand=bpc bonprix%2F12.02&he=1024&location=pm;f=inbox;pmsg_1733/page.google|http://loveplanet.ru/url?sa=t&rct|0|12409|20|10093|22|1996|1666|37|15|7|700|0|0|22|"D<>"|1|1|0|0|""|""|2059788|-1|0|""|0|0|1261|1206|433|2013-07-02 10:04:38|0|0|0|0|windows|1|0|0|0|0|""|827020970|0|0|0|0|0|5|2013-07-02 18:53:56|0|0|0|0|0|2001459352|-1|-1|-1|S0|"<22>"|""|""|0|0|0|0|0|0|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|1384301141639030267|9047048983006699504|0
|
||||
8614832219462424183|1|"Модель для сумки - регеш (Россия)"|1|2013-07-01 21:19:23|2013-07-02|3035|2022088895|38|2590751384199385434|1|2|88|http://smeshariki.ru/googleTBR%26ar_ntype=citykurortmag|http://holodilnik.ru/GameMain.aspx?color=0&choos&source=web&cd|0|10271|158|13384|216|1917|879|37|15|7|700|0|0|1|"D<>"|1|1|0|0|""|""|3991944|-1|0|""|0|0|746|464|322|2013-07-02 08:44:30|0|0|0|0|windows-1251;charset|1|0|0|0|7607749204513951316|""|427646581|0|0|0|0|0|5|2013-07-01 23:19:17|50|2|3|0|30|1146019198|-1|-1|-1|S0|"<22>"|""|""|0|0|0|0|0|0|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|1157471009075867478|1000799766482180932|0
|
||||
7168314068394418899|1|"по полиция +опытовой рецензии,"|1|2013-07-01 21:22:40|2013-07-02|35534|-1420082055|11579|4822773326251181180|0|2|7|http:%2F%2Fsapozhki-advertime-2/#page.google/dodge|"http://saint-peters-total=меньше 100007&text=b.akhua_deckaya-look/time-2/#page=3&oprnd=6817922197946&ei=JtHTUYWRCqXA&bvm=bv.49784469,d.ZWU&cad=rjt&fu=0&type_id=172&msid=1&marka=88&text=krasnaia-moda"|0|14550|952|8565|375|1304|978|37|15|4|700.224|2|7|13|"D<>"|1|1|0|0|""|""|2675432|3|3|"dave kino 2013 года в ростопримеча"|0|0|1972|778|135|2013-07-01 21:05:07|4|1|16561|0|windows|1601|0|0|0|6494516778257365839|""|393719418|0|0|0|0|0|5|2013-07-02 16:28:10|31|2|2|14851|1|-1016483843|61823|-1|1|S0|"<22>"|""|""|0|0|0|0|0|0|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|-4470345086215748575|-5322637665780806659|0
|
||||
8235569889353442646|1|""|1|2013-07-01 21:22:53|2013-07-02|35534|-1420082055|11579|4822773326251181180|0|2|7|http:%2F%2Fsapozhki-advertime-2/#page.google/dodge|""|0|0|0|8565|375|1304|978|37|15|4|700.224|2|7|13|"D<>"|1|1|0|0|""|""|2675432|0|0|""|0|1|1972|778|135|2013-07-01 21:05:22|4|1|16561|0|windows|1601|0|0|1|6494516778257365839|""|393719418|0|0|0|1|0|5|2013-07-02 16:28:24|31|2|2|14851|1|-1016483843|61823|-1|2|S0|"<22>"|""|""|0|318|0|0|0|0|0|0|""|0|""|"NH"|0|""|""|""|""|""|""|""|""|""|""|0|-296158784638538920|-5322637665780806659|0
|
||||
|
5
external/duckdb/benchmark/clickbench/answers/q24.csv
vendored
Normal file
5
external/duckdb/benchmark/clickbench/answers/q24.csv
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
SearchPhrase
|
||||
"galaxy s4 zoom фильм"
|
||||
"симптомы регистратов"
|
||||
"фильм небольшой бизнеса североятно"
|
||||
"ночно китая женщины"
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q25.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q25.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
SearchPhrase
|
||||
" береж"
|
||||
" за русский стил видео какой"
|
||||
" завод тандалищные прода"
|
||||
" заочное по земли в обрезни и метро"
|
||||
" заочное сад цены нарощения музыка визу"
|
||||
" зве"
|
||||
" земные огурцы раб"
|
||||
" золотой сайт samsung"
|
||||
" прав"
|
||||
" светы женске 2 сезон"
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q26.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q26.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
SearchPhrase
|
||||
"galaxy s4 zoom фильм"
|
||||
"ночно китая женщины"
|
||||
"симптомы регистратов"
|
||||
"фильм небольшой бизнеса североятно"
|
||||
"авом констеть ребенка краево"
|
||||
"анапа оперевянные волшебную"
|
||||
"брита ганам котлы на шерлок"
|
||||
"компьютерапии серия нарий"
|
||||
"отдыха чем прокат"
|
||||
"расписание мультиварка для"
|
||||
|
26
external/duckdb/benchmark/clickbench/answers/q27.csv
vendored
Normal file
26
external/duckdb/benchmark/clickbench/answers/q27.csv
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
CounterID|l|c
|
||||
233773|469.14923754578723|2938865
|
||||
245438|271.7841243964889|2510103
|
||||
122612|238.63801917567594|3574007
|
||||
234004|204.27746585100144|238660
|
||||
1634|197.83080416670535|323229
|
||||
786|186.7507135271472|120528
|
||||
114157|142.91444863406159|216408
|
||||
515|126.22595247333346|146907
|
||||
256004|125.36714011543154|858171
|
||||
95427|120.2657237661165|374306
|
||||
199550|109.81266990405194|7115413
|
||||
220992|105.85395075756044|494614
|
||||
196239|98.34849844624749|163797
|
||||
62|93.15621079726343|738150
|
||||
96948|92.74209592191733|396093
|
||||
188878|91.98110564811313|311998
|
||||
249603|91.87807188863495|120325
|
||||
3922|87.83657514674738|8527069
|
||||
191697|86.95676378104345|124664
|
||||
97467|84.2939822226288|131178
|
||||
186300|83.97100407321064|802561
|
||||
146891|77.77413321966806|605286
|
||||
38|76.43665636016307|507770
|
||||
230962|76.30301436565952|169223
|
||||
77639|75.38479530321585|253961
|
||||
|
26
external/duckdb/benchmark/clickbench/answers/q28.csv
vendored
Normal file
26
external/duckdb/benchmark/clickbench/answers/q28.csv
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
k|l|c|min(Referer)
|
||||
svpressa.ru|307.8648835914462|242465|http://svpressa.ru/
|
||||
msuzie-showforumdisplay|263.31170358753184|183636|http://msuzie-showforumdisplay/63/~2/?name=&cost_neu%3D400%26retpath=default777TWCWkI9lalUwTXpJMU1q
|
||||
"saint-peters-total=меньше 80"|242.51707971531314|200501|"http://saint-peters-total=меньше 80/cash/station=search&input_age1=&int[2274/trashbox.ru/details&cad=rjt&fu=0&input_who1=2&input_who1=2&input_city-4400047.html?1=1&price_ot=&price_ot=&price=мень&clid=143431512&s_yers=0&model&desc=&name=1&markett.ru%2Frenazheltyj-95692465&text=поздравстраницу&clid=4405404/menu_29.html&ei=UIX1UZTFNJTI0ci8guSn3tW.pl?cmd=showthreadreplies=978-4121-469171&history47/11/?from=&district"
|
||||
domics|212.896025515211|326080|http://domics/825179.11931861234499792
|
||||
e96.ru|210.09327398091065|1018998|http://e96.ru/%3Ffrom]=&input_act[count_num=0&dff=arian-carrina1201517&cad=rjt&fu=0&input_state/apartments-sale/list.htm?size=30&input_with_photo-takovo-zuevo-shpilki.ru/real.nn.ru/yandex.ua/searchAuto=on&input_who1=2&input_online.ru/clck/51cbd&ll=&top=http://loveplane=42621/page9
|
||||
gadgets.irr.ru|131.9496418102524|349675|https://gadgets.irr.ru/2jmj7l5rSw0yVb
|
||||
google.ru|109.23626239722454|2158346|http://google.ru/
|
||||
go.mail|108.63609607446642|8227493|http://go.mail/04/detskaia-moda-zhiensmed
|
||||
msouz.ru|106.10166520305536|301765|http://msouz.ru/?ffshop
|
||||
state=19945206|105.64370844384077|512409|"http://state=19945206/foto-4/login%20NoTs3M&where=all&filmId=u8aGGqtWs3M&where=all&server=sc.cheloveplanet.ru/forum.little&categoriya/muzhskaya_istory.com/demii-malchik_148_4055074241537][to]=&input_activalry: A Love&where=all&text=купить florer&aktion/loansert перевозобности&site_id=197&text=добавь лазерногорский тайская полупая автомобильника&v=1414-resp_desyachnyeprague"
|
||||
loveplanet.ru|104.59863944103016|461134|http://loveplanet.ru/%3Faw_opel/page=2013
|
||||
bonprix.ru|104.41397458084346|1125057|http://bonprix.ru/
|
||||
novjob.ru|96.75331644732393|133049|http://novjob.ru/
|
||||
cn.ru|95.62988273417072|124674|http://cn.ru/GameMain.aspx#catalog/100523&tails.xml?market_pc.html?pid=9403&lr=47&msgid=36305f39386
|
||||
geomethiettai.ru|94.78441150587545|115906|https://geomethiettai.ru/GameMain.aspx?group=houses/list=266559j7077&num=7&prune_day=lastdiscussd59394303&price_ot=&priceup&page3/sankt-petushhiblock
|
||||
kino|90.27209389436884|120135|http://kino/6/21/2/women.asp?whichpage4/#oversion=unreadm&uid
|
||||
yaroslavens.ru|90.17111441069063|124595|http://yaroslavens.ru/main.aspx#catalog%2F1004-1100000147-otvet/actions/dislocal
|
||||
mysw.info|89.68397108921269|984546|http://mysw.info/
|
||||
m.myloveplanet.ru|88.7305930950747|151544|http://m.myloveplanet.ru/
|
||||
povarenok.ru|83.96832422951294|144811|http://povarenok.ru/
|
||||
gorod|80.33040423379813|110728|http://gorod/%3Fauto.ria.ua%2Fjob
|
||||
yandsearch|80.20030577309359|245934|http://www.yandsearch/rooms=1/page2
|
||||
myloveplanet.ru|80.08091732831745|110582|http://myloveplanet.ru/#associety/auto
|
||||
tambov.irr.ru|77.86451772496336|315318|http://tambov.irr.ru/0/c1/tgFtaeLDK0yb01A7xvQF08sjCFqQxn51
|
||||
kurortmag.ru|75.74717737001089|155263|http://kurortmag.ru/
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q29.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q29.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
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))
|
||||
151345005230|151445002727|151545000224|151644997721|151744995218|151844992715|151944990212|152044987709|152144985206|152244982703|152344980200|152444977697|152544975194|152644972691|152744970188|152844967685|152944965182|153044962679|153144960176|153244957673|153344955170|153444952667|153544950164|153644947661|153744945158|153844942655|153944940152|154044937649|154144935146|154244932643|154344930140|154444927637|154544925134|154644922631|154744920128|154844917625|154944915122|155044912619|155144910116|155244907613|155344905110|155444902607|155544900104|155644897601|155744895098|155844892595|155944890092|156044887589|156144885086|156244882583|156344880080|156444877577|156544875074|156644872571|156744870068|156844867565|156944865062|157044862559|157144860056|157244857553|157344855050|157444852547|157544850044|157644847541|157744845038|157844842535|157944840032|158044837529|158144835026|158244832523|158344830020|158444827517|158544825014|158644822511|158744820008|158844817505|158944815002|159044812499|159144809996|159244807493|159344804990|159444802487|159544799984|159644797481|159744794978|159844792475|159944789972|160044787469|160144784966|160244782463
|
||||
|
10
external/duckdb/benchmark/clickbench/answers/q30.csv
vendored
Normal file
10
external/duckdb/benchmark/clickbench/answers/q30.csv
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
SearchEngineID|ClientIP|c|sum(IsRefresh)|avg(ResolutionWidth)
|
||||
2|1138507705|1633|35|1408.0122473974282
|
||||
2|1740861572|1331|28|1577.945905334335
|
||||
2|-807147100|1144|35|1553.1984265734266
|
||||
2|-497906719|1140|36|1543.4140350877192
|
||||
2|-1945757555|1105|30|1557.387330316742
|
||||
2|-1870623097|1102|31|1555.6588021778584
|
||||
2|-631062503|1083|31|1581.8171745152354
|
||||
2|-465813166|1082|30|1541.253234750462
|
||||
2|-1743596151|1080|24|1559.8092592592593
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q31.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q31.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Min|Max|Count
|
||||
1|1|10
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q32.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q32.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Min|Max|Count
|
||||
1|2|10
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q33.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q33.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
URL|c
|
||||
"http://liver.ru/belgorod/page/1006.jки/доп_приборы"|3288173
|
||||
http://kinopoisk.ru|1625250
|
||||
http://bdsm_po_yers=0&with_video|791465
|
||||
http://video.yandex|582400
|
||||
http://smeshariki.ru/region|514984
|
||||
http://auto_fiat_dlya-bluzki%2F8536.30.18&he=900&with|507995
|
||||
http://liver.ru/place_rukodel=365115eb7bbb90|359893
|
||||
http://kinopoisk.ru/vladimir.irr.ru|354690
|
||||
http://video.yandex.ru/search/?jenre=50&s_yers|318979
|
||||
http://tienskaia-moda|289355
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q34.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q34.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
1|URL|c
|
||||
1|"http://liver.ru/belgorod/page/1006.jки/доп_приборы"|3288173
|
||||
1|http://kinopoisk.ru|1625250
|
||||
1|http://bdsm_po_yers=0&with_video|791465
|
||||
1|http://video.yandex|582400
|
||||
1|http://smeshariki.ru/region|514984
|
||||
1|http://auto_fiat_dlya-bluzki%2F8536.30.18&he=900&with|507995
|
||||
1|http://liver.ru/place_rukodel=365115eb7bbb90|359893
|
||||
1|http://kinopoisk.ru/vladimir.irr.ru|354690
|
||||
1|http://video.yandex.ru/search/?jenre=50&s_yers|318979
|
||||
1|http://tienskaia-moda|289355
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q35.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q35.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
ClientIP|(ClientIP - 1)|(ClientIP - 2)|(ClientIP - 3)|c
|
||||
-39921974|-39921975|-39921976|-39921977|47008
|
||||
-1698104457|-1698104458|-1698104459|-1698104460|29121
|
||||
-1175819552|-1175819553|-1175819554|-1175819555|25333
|
||||
1696638182|1696638181|1696638180|1696638179|20220
|
||||
1138507705|1138507704|1138507703|1138507702|15778
|
||||
-927025522|-927025523|-927025524|-927025525|12768
|
||||
-1262139876|-1262139877|-1262139878|-1262139879|11348
|
||||
1740861572|1740861571|1740861570|1740861569|11314
|
||||
-807147100|-807147101|-807147102|-807147103|9880
|
||||
-631062503|-631062504|-631062505|-631062506|9718
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q36.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q36.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
URL|PageViews
|
||||
http://irr.ru/index.php?showalbum/login-leniya7777294,938303130|102341
|
||||
http://komme%2F27.0.1453.116|51218
|
||||
http://irr.ru/index.php?showalbum/login-kapusta-advert2668]=0&order_by=0|18315
|
||||
http://irr.ru/index.php?showalbum/login-kapustic/product_name|16461
|
||||
http://irr.ru/index.php|12577
|
||||
http://irr.ru/index.php?showalbum/login|10880
|
||||
http://komme%2F27.0.1453.116 Safari%2F5.0 (compatible; MSIE 9.0;|7627
|
||||
http://irr.ru/index.php?showalbum/login-kupalnik|4369
|
||||
http://irr.ru/index.php?showalbum/login-kapusta-advert27256.html_params|4058
|
||||
http://komme%2F27.0.1453.116 Safari|3021
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q37.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q37.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
Title|PageViews
|
||||
"Тест (Россия) - Яндекс"|122407
|
||||
"Шарарай), Выбрать! - обсуждаются на голд: Шоубиз - Свободная историс"|82935
|
||||
"Приморск - IRR.ru"|80958
|
||||
"Брюки New Era H (Асус) 258 общая выплаток, горшечными"|39098
|
||||
"Теплоску на"|23123
|
||||
"Dave and Hotpoint sport – самые вещие"|14329
|
||||
"AUTO.ria.ua ™ - Аппер"|14053
|
||||
"Приморск (Россия) - Яндекс.Видео"|13912
|
||||
"OWAProfessign), продать"|10919
|
||||
"Труси - Шоубиз"|10157
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q38.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q38.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Min|Max|Count
|
||||
2|2|10
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q39.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q39.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Min|Max|Count
|
||||
15|15|10
|
||||
|
6
external/duckdb/benchmark/clickbench/answers/q40.csv
vendored
Normal file
6
external/duckdb/benchmark/clickbench/answers/q40.csv
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
URLHash|EventDate|PageViews
|
||||
-8505838588544217213|2013-07-15|26
|
||||
2512899255762264913|2013-07-15|26
|
||||
-6048157399675510565|2013-07-15|25
|
||||
-6025761452198030778|2013-07-15|25
|
||||
-3611962581960090019|2013-07-15|25
|
||||
|
2
external/duckdb/benchmark/clickbench/answers/q41.csv
vendored
Normal file
2
external/duckdb/benchmark/clickbench/answers/q41.csv
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
Min|Max|Count
|
||||
1|1|10
|
||||
|
11
external/duckdb/benchmark/clickbench/answers/q42.csv
vendored
Normal file
11
external/duckdb/benchmark/clickbench/answers/q42.csv
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
M|PageViews
|
||||
2013-07-15 12:40:00|513
|
||||
2013-07-15 12:41:00|457
|
||||
2013-07-15 12:42:00|470
|
||||
2013-07-15 12:43:00|468
|
||||
2013-07-15 12:44:00|453
|
||||
2013-07-15 12:45:00|462
|
||||
2013-07-15 12:46:00|481
|
||||
2013-07-15 12:47:00|458
|
||||
2013-07-15 12:48:00|466
|
||||
2013-07-15 12:49:00|467
|
||||
|
14
external/duckdb/benchmark/clickbench/clickbench-noresult.benchmark.in
vendored
Normal file
14
external/duckdb/benchmark/clickbench/clickbench-noresult.benchmark.in
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
# name: ${FILE_PATH}
|
||||
# description: ${DESCRIPTION}
|
||||
# group: [clickbench]
|
||||
|
||||
include benchmark/clickbench/clickbench_load.benchmark.in
|
||||
|
||||
name Q${QUERY_NUMBER_PADDED}
|
||||
group Clickbench
|
||||
|
||||
run benchmark/clickbench/queries/q${QUERY_NUMBER_PADDED}.sql
|
||||
|
||||
result_query benchmark/clickbench/answers/q${QUERY_NUMBER_PADDED}.csv
|
||||
${RESULT_QUERY}
|
||||
----
|
||||
14
external/duckdb/benchmark/clickbench/clickbench.benchmark.in
vendored
Normal file
14
external/duckdb/benchmark/clickbench/clickbench.benchmark.in
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
# name: ${FILE_PATH}
|
||||
# description: ${DESCRIPTION}
|
||||
# group: [clickbench]
|
||||
|
||||
include benchmark/clickbench/clickbench_load.benchmark.in
|
||||
|
||||
name Q${QUERY_NUMBER_PADDED}
|
||||
group Clickbench
|
||||
|
||||
cache hits.db
|
||||
|
||||
run benchmark/clickbench/queries/q${QUERY_NUMBER_PADDED}.sql
|
||||
|
||||
result benchmark/clickbench/answers/q${QUERY_NUMBER_PADDED}.csv
|
||||
11
external/duckdb/benchmark/clickbench/clickbench_load.benchmark.in
vendored
Normal file
11
external/duckdb/benchmark/clickbench/clickbench_load.benchmark.in
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
# name: ${FILE_PATH}
|
||||
# description: ${DESCRIPTION}
|
||||
# group: [tpch]
|
||||
|
||||
require parquet load_only
|
||||
|
||||
require httpfs load_only
|
||||
|
||||
cache hits.db
|
||||
|
||||
load benchmark/clickbench/queries/load.sql
|
||||
7
external/duckdb/benchmark/clickbench/q00.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q00.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q00.benchmark
|
||||
# description: Run query 00 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=0
|
||||
QUERY_NUMBER_PADDED=00
|
||||
7
external/duckdb/benchmark/clickbench/q01.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q01.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q01.benchmark
|
||||
# description: Run query 01 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=1
|
||||
QUERY_NUMBER_PADDED=01
|
||||
7
external/duckdb/benchmark/clickbench/q02.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q02.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q02.benchmark
|
||||
# description: Run query 02 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=2
|
||||
QUERY_NUMBER_PADDED=02
|
||||
7
external/duckdb/benchmark/clickbench/q03.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q03.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q03.benchmark
|
||||
# description: Run query 03 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=3
|
||||
QUERY_NUMBER_PADDED=03
|
||||
7
external/duckdb/benchmark/clickbench/q04.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q04.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q04.benchmark
|
||||
# description: Run query 04 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=4
|
||||
QUERY_NUMBER_PADDED=04
|
||||
7
external/duckdb/benchmark/clickbench/q05.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q05.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q05.benchmark
|
||||
# description: Run query 05 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=5
|
||||
QUERY_NUMBER_PADDED=05
|
||||
7
external/duckdb/benchmark/clickbench/q06.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q06.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q06.benchmark
|
||||
# description: Run query 06 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=6
|
||||
QUERY_NUMBER_PADDED=06
|
||||
7
external/duckdb/benchmark/clickbench/q07.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q07.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q07.benchmark
|
||||
# description: Run query 07 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=7
|
||||
QUERY_NUMBER_PADDED=07
|
||||
7
external/duckdb/benchmark/clickbench/q08.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q08.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q08.benchmark
|
||||
# description: Run query 08 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=8
|
||||
QUERY_NUMBER_PADDED=08
|
||||
7
external/duckdb/benchmark/clickbench/q09.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q09.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q09.benchmark
|
||||
# description: Run query 09 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=09
|
||||
QUERY_NUMBER_PADDED=09
|
||||
7
external/duckdb/benchmark/clickbench/q10.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q10.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q10.benchmark
|
||||
# description: Run query 10 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=10
|
||||
QUERY_NUMBER_PADDED=10
|
||||
7
external/duckdb/benchmark/clickbench/q11.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q11.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q11.benchmark
|
||||
# description: Run query 11 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=11
|
||||
QUERY_NUMBER_PADDED=11
|
||||
7
external/duckdb/benchmark/clickbench/q12.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q12.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q12.benchmark
|
||||
# description: Run query 12 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=12
|
||||
QUERY_NUMBER_PADDED=12
|
||||
7
external/duckdb/benchmark/clickbench/q13.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q13.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q13.benchmark
|
||||
# description: Run query 13 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=13
|
||||
QUERY_NUMBER_PADDED=13
|
||||
7
external/duckdb/benchmark/clickbench/q14.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q14.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q14.benchmark
|
||||
# description: Run query 14 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=14
|
||||
QUERY_NUMBER_PADDED=14
|
||||
7
external/duckdb/benchmark/clickbench/q15.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q15.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q15.benchmark
|
||||
# description: Run query 15 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=15
|
||||
QUERY_NUMBER_PADDED=15
|
||||
7
external/duckdb/benchmark/clickbench/q16.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q16.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q16.benchmark
|
||||
# description: Run query 16 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=16
|
||||
QUERY_NUMBER_PADDED=16
|
||||
8
external/duckdb/benchmark/clickbench/q17.benchmark
vendored
Normal file
8
external/duckdb/benchmark/clickbench/q17.benchmark
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# name: benchmark/clickbench/q17.benchmark
|
||||
# description: Run query 17 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench-noresult.benchmark.in
|
||||
QUERY_NUMBER=17
|
||||
QUERY_NUMBER_PADDED=17
|
||||
RESULT_QUERY=SELECT COUNT(*) AS count FROM (SELECT UserID, SearchPhrase FROM __answer GROUP BY UserID, SearchPhrase) t
|
||||
8
external/duckdb/benchmark/clickbench/q18.benchmark
vendored
Normal file
8
external/duckdb/benchmark/clickbench/q18.benchmark
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# name: benchmark/clickbench/q18.benchmark
|
||||
# description: Run query 18 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench-noresult.benchmark.in
|
||||
QUERY_NUMBER=18
|
||||
QUERY_NUMBER_PADDED=18
|
||||
RESULT_QUERY=SELECT * FROM __answer ORDER BY 4 DESC, 1
|
||||
7
external/duckdb/benchmark/clickbench/q19.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q19.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q19.benchmark
|
||||
# description: Run query 19 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=19
|
||||
QUERY_NUMBER_PADDED=19
|
||||
7
external/duckdb/benchmark/clickbench/q20.benchmark
vendored
Normal file
7
external/duckdb/benchmark/clickbench/q20.benchmark
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# name: benchmark/clickbench/q20.benchmark
|
||||
# description: Run query 20 from the ClickBench benchmark
|
||||
# group: [clickbench]
|
||||
|
||||
template benchmark/clickbench/clickbench.benchmark.in
|
||||
QUERY_NUMBER=20
|
||||
QUERY_NUMBER_PADDED=20
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user