Files
secondo/Tools/Generators/TPC-H/queries/tpc_join_array

43 lines
2.0 KiB
Plaintext
Raw Permalink Normal View History

2026-01-23 17:03:45 +08:00
# static joins on arrays
# 1. hashjoin
query LINEITEM_25 loop[. feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count] tie[. + ..];
# 2. product filter
query LINEITEM_25 loop[. feed LINEITEM2 feed {x} symmproduct[.L_PARTKEY = ..L_PARTKEY_x] count] tie[. + ..];
query LINEITEM_25 loop[. feed LINEITEM2 feed {x} product filter[.L_PARTKEY = .L_PARTKEY_x] count] tie[. + ..];
# 2a. Non Equi Joins
query LINEITEM_25 loop[. feed LINEITEM2 feed {x} symmproduct[.L_PARTKEY >= ..L_PARTKEY_x] count] tie[. + ..];
query LINEITEM_25 loop[. feed LINEITEM2 feed {x} product filter[.L_PARTKEY >= .L_PARTKEY_x] count] tie[. + ..];
# 3. sortmergejoin
query LINEITEM_25 loop[. feed LINEITEM2 feed {x} sortmergejoin[L_PARTKEY, L_PARTKEY_x] count] tie[. + ..];
# 4. loopjoin
query LINEITEM_25 loop[. feed {x} loopjoin[fun(t1: TUPLE) LINEITEM2 feed filter[.L_PARTKEY = attr(t1, L_PARTKEY_x)]] count] tie[. + ..];
# 5. index loop join variant 1: Probe every tuple in the array with the btree
query LINEITEM_25 loop[. feed {x} loopjoin[fun(t1: TUPLE) LINEITEM_L_PARTKEY LINEITEM exactmatch[attr(t1, L_PARTKEY_x)]] count] tie[. + ..];
query LINEITEM_25 loop[. feed {x} loopjoin[fun(t1: TUPLE) LINEITEM_L_PARTKEY LINEITEM rightrange[attr(t1, L_PARTKEY_x)]] count] tie[. + ..];
# 6. index loop join variant 2: Probe every tuple of a single relation with the array of indexes
#query LINEITEM_L_PARTKEY_25 LINEITEM_25 loopa[fun(e1: ELEMENT, e2:ELEMENT2) e1 e2 exactmatch[20] count] tie[. + ..];
#query LINEITEM_L_PARTKEY_25 LINEITEM_25 loopa[fun(e1: ELEMENT, e2:ELEMENT2) LINEITEM2 feed fun(t1: TUPLE) e1 e2 exactmatch[attr(t1,L_PARTKEY)] count] tie[. + ..];
#(query (loopa LINEITEM_L_PARTKEY_25 LINEITEM_25 (fun (e1 ELEMENT) (e2 ELEMENT2) (count ((feed LINEITEM2) (fun (tuple1 TUPLE) (exactmatch e1 e2 (attr tuple1 L_PARTKEY) )))))))
# Overhead with materialization !!!!
# Not possible with LINEITEM_100: too many open files!
query LINEITEM_25 loop[. feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] consume] loop[. count] tie[. + ..];