You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Vladimir Sitnikov (Jira)" <ji...@apache.org> on 2020/10/11 21:43:00 UTC
[jira] [Updated] (CALCITE-4329) Bridge methods in enumerable
adapter should be skipped when actual type is Object
[ https://issues.apache.org/jira/browse/CALCITE-4329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladimir Sitnikov updated CALCITE-4329:
---------------------------------------
Summary: Bridge methods in enumerable adapter should be skipped when actual type is Object (was: EnumerableRules#BRIDGE_METHODS should be skipped when actual type is Object)
> Bridge methods in enumerable adapter 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
> Priority: Major
>
> 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)