# adaptive joins #overhead loopswitch query LINEITEM_25 loopswitch[ f1: . feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count, f2: . feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count, f3: . feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count, f4: . feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count, f5: . feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count ] tie[. + ..]; query LINEITEM_25 loopswitch[ f0: . feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count, f1: . feed LINEITEM2 feed {x} product filter[.L_PARTKEY = .L_PARTKEY_x] count, f2: . feed LINEITEM2 feed {x} symmproduct[.L_PARTKEY = ..L_PARTKEY_x] count, f3: . feed LINEITEM2 feed {x} sortmergejoin[L_PARTKEY, L_PARTKEY_x] count, f4: . feed {x} loopjoin[fun(t1: TUPLE) LINEITEM2 feed filter[.L_PARTKEY = attr(t1, L_PARTKEY_x)]] count, f5: . feed {x} loopjoin[fun(t2: TUPLE) LINEITEM_L_PARTKEY LINEITEM exactmatch[attr(t2, L_PARTKEY_x)]] count ] tie[. + ..]; query LINEITEM_25 loopswitch[ f0: . feed LINEITEM2 feed {x} hashjoin[L_PARTKEY, L_PARTKEY_x, 997] count, f5: . feed {x} loopjoin[fun(t2: TUPLE) LINEITEM_L_PARTKEY LINEITEM exactmatch[attr(t2, L_PARTKEY_x)]] count ] tie[. + ..]; #non equi join query LINEITEM_25 loopswitch[ f6: . feed LINEITEM2 feed {x} symmproduct[.L_PARTKEY >= ..L_PARTKEY_x] count, f7: . feed {x} loopjoin[fun(t2: TUPLE) LINEITEM_L_PARTKEY LINEITEM rightrange[attr(t2, L_PARTKEY_x)]] count ] tie[. + ..]; query LINEITEM_J1_A loopswitch[ f0: . feed LINEITEM_J1 feed {x} hashjoin[L_JoinKey, L_JoinKey_x, 997] count, f1: . feed LINEITEM_J1 feed {x} product filter[.L_JoinKey = .L_JoinKey_x] count, f2: . feed LINEITEM_J1 feed {x} symmproduct[.L_JoinKey = ..L_JoinKey_x] count, f3: . feed LINEITEM_J1 feed {x} sortmergejoin[L_JoinKey, L_JoinKey_x] count, f4: . feed {x} loopjoin[fun(t1: TUPLE) LINEITEM_J1 feed filter[.L_JoinKey = attr(t1, L_JoinKey_x)]] count, f5: . feed {x} loopjoin[fun(t2: TUPLE) LINEITEM_J1_L_JoinKey LINEITEM_J1 exactmatch[attr(t2, L_JoinKey_x)]] count ] tie[. + ..]; query LINEITEM_J1_A loop[ . feed LINEITEM_J1 feed {x} hashjoin[L_JoinKey, L_JoinKey_x, 997] count ] tie[. + ..];