rubenada commented on code in PR #3977:
URL: https://github.com/apache/calcite/pull/3977#discussion_r1775783119
##########
core/src/main/java/org/apache/calcite/adapter/enumerable/EnumUtils.java:
##########
@@ -159,40 +159,18 @@ static List<RelDataType> fieldRowTypes(
static Expression joinSelector(JoinRelType joinType, PhysType physType,
List<PhysType> inputPhysTypes) {
- // A parameter for each input.
- final List<ParameterExpression> parameters = new ArrayList<>();
-
- // Generate all fields.
- final List<Expression> expressions = new ArrayList<>();
final int outputFieldCount = physType.getRowType().getFieldCount();
-
// If there are many output fields, create the output dynamically so that
the code size stays
// below the limit. See CALCITE-3094.
- final boolean generateCompactCode = outputFieldCount >= 100;
- final ParameterExpression compactOutputVar;
- final BlockBuilder compactCode = new BlockBuilder();
- if (generateCompactCode) {
- Class<?> fieldClass = physType.fieldClass(0);
- // If all fields have the same type, use the specific type. Otherwise
just use Object.
- for (int fieldIndex = 1; fieldIndex < outputFieldCount; ++fieldIndex) {
- if (fieldClass != physType.fieldClass(fieldIndex)) {
- fieldClass = Object.class;
- break;
- }
- }
-
- final Class<?> arrayClass = Array.newInstance(fieldClass, 0).getClass();
- compactOutputVar = Expressions.variable(arrayClass, "outputArray");
- final DeclarationStatement exp =
- Expressions.declare(
- 0, compactOutputVar, new NewArrayExpression(fieldClass, 1,
- Expressions.constant(outputFieldCount), null));
- compactCode.add(exp);
- } else {
- compactOutputVar = null;
+ if (outputFieldCount >= 100) {
Review Comment:
Also, please verify that setting the new CalciteSystemProperty to e.g. `-1`
causes all test to pass, except for LargeGeneratedJoinTest (which should fail
since it should reach the 64KB error if compact code is not used)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]