Enhance Join Operations with Customizable Result Size Allocation
PR Description
Enhancements to Join Operations
This update introduces a new optional parameter, numRowRes, to the InnerJoin and SemiJoin DaphneDSL Operations, enabling precise control over result size allocation. Addresses issue #901.
Key Changes:
Kernel changes:
innerJoin:
If numRowRes = -1, the result size defaults to numRowRhs * numRowLhs (cartesian product).
Otherwise, the result size is defined by numRowRes.
semiJoin:
If numRowRes = -1, the result size defaults to numRowLhs.
Otherwise, the result size is defined by numRowRes.
DaphneDSL Updates:
numRowRes is now an optional argument for innerJoin and semiJoin.
Defaults to -1 if not provided.
DaphneIR Adjustments:
numRowRes is now a mandatory argument for InnerJoinOp and SemiJoinOp.
Implementation Updates:
Modified DaphneDSLBuiltins.cpp to set default values for numRowRes.
Updated SQLVisitor.cpp to ensure compatibility by passing -1 as numRowRes.
Adjusted kernels.json to reflect the new parameter for relevant operations.
Testing:
Added script-level test cases to validate correct behavior across various scenarios.
Bug Fixes
Resolved issues in CastScar, CastObj, and EwBinaryObjSca kernel functions, where string values were not handled correctly during type casting.
Enhance Join Operations with Customizable Result Size Allocation
PR Description
Enhancements to Join Operations
This update introduces a new optional parameter,
numRowRes
, to the InnerJoin and SemiJoin DaphneDSL Operations, enabling precise control over result size allocation. Addresses issue #901.Key Changes:
Kernel changes:
numRowRes = -1
, the result size defaults tonumRowRhs * numRowLhs
(cartesian product).numRowRes
.numRowRes = -1
, the result size defaults tonumRowLhs
.numRowRes
.DaphneDSL Updates:
numRowRes
is now an optional argument forinnerJoin
andsemiJoin
.-1
if not provided.DaphneIR Adjustments:
numRowRes
is now a mandatory argument forInnerJoinOp
andSemiJoinOp
.Implementation Updates:
DaphneDSLBuiltins.cpp
to set default values fornumRowRes
.SQLVisitor.cpp
to ensure compatibility by passing-1
asnumRowRes
.kernels.json
to reflect the new parameter for relevant operations.Testing:
Bug Fixes