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, 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]

Reply via email to