43 lines
2.0 KiB
Plaintext
43 lines
2.0 KiB
Plaintext
|
|
# 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[. + ..];
|
|
|
|
|
|
|
|
|
|
|
|
|