You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by ta...@apache.org on 2023/12/18 08:15:07 UTC

(calcite) 03/03: Handle code-reviews

This is an automated email from the ASF dual-hosted git repository.

taoran pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit 93c62ba225ffc6f3c4a6e7c71c1e81b8df716e35
Author: Ran Tao <ch...@gmail.com>
AuthorDate: Fri Dec 15 10:59:59 2023 +0800

    Handle code-reviews
---
 .../main/java/org/apache/calcite/sql/type/OperandTypes.java    | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/sql/type/OperandTypes.java b/core/src/main/java/org/apache/calcite/sql/type/OperandTypes.java
index 6d4228d1f8..8abb7c8178 100644
--- a/core/src/main/java/org/apache/calcite/sql/type/OperandTypes.java
+++ b/core/src/main/java/org/apache/calcite/sql/type/OperandTypes.java
@@ -1231,10 +1231,6 @@ public abstract class OperandTypes {
 
   /**
    * Operand type-checking strategy for a ARRAY function, it allows empty array.
-   *
-   * <p> The reason it overrides SameOperandTypeChecker#checkOperandTypesImpl is that it needs
-   * to handle the scenario where row/struct type and NULL exist simultaneously in array.
-   * This scenario need be supported, but will be rejected by the current checkOperandTypesImpl.
    */
   private static class ArrayFunctionOperandTypeChecker
       extends SameOperandTypeChecker {
@@ -1264,15 +1260,14 @@ public abstract class OperandTypes {
       for (int i : operandList) {
         types[i] = operatorBinding.getOperandType(i);
       }
-      int prev = -1;
       for (int i : operandList) {
-        if (prev >= 0) {
+        if (i > 0) {
           // we replace SqlTypeUtil.isComparable with SqlTypeUtil.leastRestrictiveForComparison
           // to handle struct type and NULL constant.
           // details please see: https://issues.apache.org/jira/browse/CALCITE-6163
           RelDataType type =
               SqlTypeUtil.leastRestrictiveForComparison(operatorBinding.getTypeFactory(),
-                  types[i], types[prev]);
+                  types[i], types[i - 1]);
           if (type == null) {
             if (!throwOnFailure) {
               return false;
@@ -1281,7 +1276,6 @@ public abstract class OperandTypes {
                 RESOURCE.needSameTypeParameter());
           }
         }
-        prev = i;
       }
       return true;
     }