You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Vladimir Sitnikov (Jira)" <ji...@apache.org> on 2020/10/11 21:35:00 UTC

[jira] [Created] (CALCITE-4329) EnumerableRules#BRIDGE_METHODS should be skipped when actual type is Object

Vladimir Sitnikov created CALCITE-4329:
------------------------------------------

             Summary: EnumerableRules#BRIDGE_METHODS should be skipped when actual type is Object
                 Key: CALCITE-4329
                 URL: https://issues.apache.org/jira/browse/CALCITE-4329
             Project: Calcite
          Issue Type: Improvement
          Components: core
    Affects Versions: 1.26.0
            Reporter: Vladimir Sitnikov


Calcite generates bridge methods even when actual parameter types are {{Object}}, so the class becomes invalid.

Sample:

{code:java}
Caused by: org.codehaus.janino.InternalCompilerException:
 Two non-abstract methods 
"public int Baz$11.compare(java.lang.Object, java.lang.Object)" 
have the same parameter types, declaring type and return type


    , org.apache.calcite.linq4j.JoinType.LEFT, new java.util.Comparator(){
      public int compare(Object v0, Object v1) {
        final int c;
        c = org.apache.calcite.runtime.Utilities.compareNullsLast((Comparable) v0, (Comparable) v1);
        if (c != 0) {
          return c;
        }
        return 0;
      }

      public int compare(Object o0, Object o1) {
        return this.compare(o0, o1);
      }

    }).
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)