Yonatan Graber created CALCITE-6341: ---------------------------------------
Summary: DynamicRecordType join query will generate uncompailable code Key: CALCITE-6341 URL: https://issues.apache.org/jira/browse/CALCITE-6341 Project: Calcite Issue Type: Bug Components: core Affects Versions: 1.36.0, 1.35.0, 1.34.0, 1.33.0, 1.32.0, 1.31.0, 1.30.0, 1.29.0, 1.28.0, 1.27.0, 1.26.0, 1.25.0, 1.24.0, 1.23.0 Reporter: Yonatan Graber See full minimal reproduction in [https://github.com/yonatang/calcite-join-issue/|https://github.com/yonatang/calcite-join-issue/tree/main] — When creating a table with {{DynamicRecordType}} rowType, a joined query will generate a code that won't get compiled. For example, with the relevant schema, this query: {{SELECT d1.a ,d2.a FROM static_table d1 join static_table d2 on d1.a=d2.a}} Will not execute, because the generated code will contain a Baz class with the following Comparator class: {code:java} new java.util.Comparator(){ public int compare(Object v0, Object v1) { final int c; c = org.apache.calcite.runtime.Utilities.compareNullsLastForMergeJoin((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 fails because it has two {{int compare(Object o0, Object o1)}} methods. Notice this issue was introduced at Calcite 1.23.0. The query will work as expected in versions 1.22 and below. -- This message was sent by Atlassian Jira (v8.20.10#820010)