snuyanzin commented on code in PR #4889:
URL: https://github.com/apache/calcite/pull/4889#discussion_r3089590830
##########
core/src/main/java/org/apache/calcite/adapter/enumerable/RexImpTable.java:
##########
@@ -4173,43 +4172,27 @@ private static class LastImplementor implements
MatchImplementor {
final String alpha = ((RexPatternFieldRef)
call.getOperands().get(0)).getAlpha();
- // TODO: verify if the variable is needed
- @SuppressWarnings("unused")
- final BinaryExpression lastIndex =
- Expressions.subtract(
- Expressions.call(rows, BuiltInMethod.COLLECTION_SIZE.method),
- Expressions.constant(1));
-
// Just take the last one, if exists
if ("*".equals(alpha)) {
setInputGetterIndex(translator, i);
- // Important, unbox the node / expression to avoid NullAs.NOT_POSSIBLE
- final RexPatternFieldRef ref = (RexPatternFieldRef) node;
- final RexPatternFieldRef newRef =
- new RexPatternFieldRef(ref.getAlpha(),
- ref.getIndex(),
- translator.typeFactory.createTypeWithNullability(ref.getType(),
- true));
- final Expression expression = translator.translate(newRef,
NullAs.NULL);
- setInputGetterIndex(translator, null);
- return expression;
} else {
// Alpha != "*" so we have to search for a specific one to find and
use that, if found
+ // otherwise pick the last one
setInputGetterIndex(translator,
- Expressions.call(BuiltInMethod.MATCH_UTILS_LAST_WITH_SYMBOL.method,
- Expressions.constant(alpha), rows, symbols, i));
-
- // Important, unbox the node / expression to avoid NullAs.NOT_POSSIBLE
- final RexPatternFieldRef ref = (RexPatternFieldRef) node;
- final RexPatternFieldRef newRef =
- new RexPatternFieldRef(ref.getAlpha(),
- ref.getIndex(),
- translator.typeFactory.createTypeWithNullability(ref.getType(),
- true));
- final Expression expression = translator.translate(newRef,
NullAs.NULL);
- setInputGetterIndex(translator, null);
- return expression;
+
Expressions.call(BuiltInMethod.MATCH_UTILS_LAST_WITH_SYMBOL_OR_DEFAULT.method,
Review Comment:
reduced amount of args
> Does that function have any other callers?
in Calcite yes, there is no other callers, not sure about downstream
projects if any
as mentioned above, reverted changes to existing method and created a new one
--
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]