equal
deleted
inserted
replaced
434 (kk as {kk_intersect, kk_product, kk_join, kk_project_seq, ...}) one R1 |
434 (kk as {kk_intersect, kk_product, kk_join, kk_project_seq, ...}) one R1 |
435 res_R r1 r2 = |
435 res_R r1 r2 = |
436 case arity_of_rep R1 of |
436 case arity_of_rep R1 of |
437 1 => kk_join r1 r2 |
437 1 => kk_join r1 r2 |
438 | arity1 => |
438 | arity1 => |
439 let |
439 let val unpacked_rs1 = unpack_products r1 in |
440 val unpacked_rs1 = |
|
441 if inline_rel_expr r1 then unpack_vect_in_chunks kk 1 arity1 r1 |
|
442 else unpack_products r1 |
|
443 in |
|
444 if one andalso length unpacked_rs1 = arity1 then |
440 if one andalso length unpacked_rs1 = arity1 then |
445 fold kk_join unpacked_rs1 r2 |
441 fold kk_join unpacked_rs1 r2 |
|
442 else if one andalso inline_rel_expr r1 then |
|
443 fold kk_join (unpack_vect_in_chunks kk 1 arity1 r1) r2 |
446 else |
444 else |
447 kk_project_seq |
445 kk_project_seq |
448 (kk_intersect (kk_product r1 (full_rel_for_rep res_R)) r2) |
446 (kk_intersect (kk_product r1 (full_rel_for_rep res_R)) r2) |
449 arity1 (arity_of_rep res_R) |
447 arity1 (arity_of_rep res_R) |
450 end |
448 end |