Files
email-tracker/external/duckdb/benchmark/micro/join/iejoin_selectivity.benchmark
2025-10-24 19:21:19 -05:00

30 lines
724 B
Plaintext

# name: benchmark/micro/join/iejoin_selectivity.benchmark
# description: Mixed predicate where range is faster
# group: [join]
name IEJoin Selectivity
group join
load
SELECT SETSEED(0.8675309);
PRAGMA prefer_range_joins=False;
CREATE TABLE df AS
SELECT
(random() * 1000)::INTEGER + 1 as id,
(random() * 10)::INTEGER + 1 as id2,
(random() * 500)::INTEGER + 1 as id3,
random() as value,
FROM range(5000000);
run
SELECT id2, id3, id3_right, corr(value, value_right) as value
FROM (
SELECT df.*, df2.id3 as id3_right, df2.value as value_right
FROM df JOIN df as df2
ON (df.id = df2.id
AND df.id2 = df2.id2
AND df.id3 > df2.id3
AND df.id3 < df2.id3 + 30)
) tbl
GROUP BY ALL