# static joins # 1. hashjoin query LINEITEM feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count; query plz feed plz feed {x1} hashjoin[PLZ, PLZ_x1, 997] count; query plz feed plz feed {x1} hashjoin[Ort, Ort_x1, 997] count; query million feed thousand feed {x1} hashjoin[nr, nr_x1, 997] count; # 2. product filter query LINEITEM feed LINEITEM2 feed {x} product filter[.L_PARTKEY = .L_PARTKEY_x] count; query LINEITEM feed LINEITEM2 feed {x} symmproduct[.L_PARTKEY = ..L_PARTKEY_x] count # 2a. Non Equi Join query LINEITEM feed LINEITEM2 feed {x} product filter[.L_PARTKEY >= .L_PARTKEY_x] count; query LINEITEM feed LINEITEM2 feed {x} symmproduct[.L_PARTKEY >= ..L_PARTKEY_x] count # 3. sortmergejoin query LINEITEM feed LINEITEM2 feed {x} sortmergejoin[L_PARTKEY, L_PARTKEY_x] count; # 4. loopjoin query LINEITEM feed {x} loopjoin[fun(t1: TUPLE) LINEITEM2 feed filter[.L_PARTKEY = attr(t1, L_PARTKEY_x)]] count; # 5. index loop join query LINEITEM feed {x} loopjoin[fun(t1: TUPLE) LINEITEM_L_PARTKEY LINEITEM exactmatch[attr(t1, L_PARTKEY_x)]] count; query LINEITEM feed {x} loopjoin[fun(t1: TUPLE) LINEITEM_L_PARTKEY LINEITEM rightrange[attr(t1, L_PARTKEY_x)]] count; query plz feed {x1} loopjoin[fun(t1: TUPLE) plz_PLZ plz exactmatch[attr(t1, PLZ_x1)]] count; query thousand feed {x1} loopjoin[fun(t1: TUPLE) million_nr million exactmatch[attr(t1, no_x1)]] count; query plz_PLZ plz within2[ fun(c1: ANY, c2: ANY) plz feed {x1} loopjoin[fun(t1: TUPLE) c1 c2 exactmatch[attr(t1, PLZ_x1)]] count ];