[
https://issues.apache.org/jira/browse/CALCITE-5632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17709973#comment-17709973
]
Kirill Kim commented on CALCITE-5632:
-------------------------------------
I also tried CsvExample, it works, but there is another code in debug:
{code:java}
/* 1 */ public org.apache.calcite.linq4j.Enumerable bind(final
org.apache.calcite.DataContext root) {
/* 2 */ final java.util.Comparator comparator = new java.util.Comparator(){
/* 3 */ public int compare(Object[] v0, Object[] v1) {
/* 4 */ int c;
/* 5 */ c =
org.apache.calcite.runtime.Utilities.compareNullsFirst(v0[3] == null ? (String)
null : v0[3].toString(), v1[3] == null ? (String) null : v1[3].toString());
/* 6 */ if (c != 0) {
/* 7 */ return - c;
/* 8 */ }
/* 9 */ c = org.apache.calcite.runtime.Utilities.compareNullsLast(v0[4]
== null ? (String) null : v0[4].toString(), v1[4] == null ? (String) null :
v1[4].toString());
/* 10 */ if (c != 0) {
/* 11 */ return c;
/* 12 */ }
/* 13 */ return 0;
/* 14 */ }
/* 15 */
/* 16 */ public int compare(Object o0, Object o1) {
/* 17 */ return this.compare((Object[]) o0, (Object[]) o1);
/* 18 */ }
/* 19 */
/* 20 */ };
/* 21 */ return
org.apache.calcite.schema.Schemas.enumerable((org.apache.calcite.schema.ScannableTable)
root.getRootSchema().getSubSchema("BUG").getTable("LONG_EMPS"),
root).orderBy(org.apache.calcite.linq4j.function.Functions.identitySelector(),
comparator);
/* 22 */ }
/* 23 */
/* 24 */
/* 25 */ public Class getElementType() {
/* 26 */ return java.lang.Object[].class;
/* 27 */ }
/* 28 */
/* 29 */ {code}
> Query with ORDER BY and null values NullPointer exception
> ---------------------------------------------------------
>
> Key: CALCITE-5632
> URL: https://issues.apache.org/jira/browse/CALCITE-5632
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.34.0
> Reporter: Kirill Kim
> Priority: Major
> Attachments: image-2023-04-09-11-49-05-991.png,
> image-2023-04-09-11-50-18-796.png
>
>
> I try to perform query over over some table data in Java using Calcite. I try
> to execute query:
> {code:java}
> select distinct tbl.col1 , tbl.col2 from infoset.SUBEKT tbl order by col1 asc
> nulls last , col2 asc nulls last{code}
> And the following exception occurs
> {code:java}
> java.lang.NullPointerException at
> org.apache.calcite.runtime.Utilities.compare(Utilities.java:202)
> at Baz$2.compare(ANONYMOUS.java:15)
> at Baz$2.compare(ANONYMOUS.java:27)
> at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:376)
> at java.util.TreeMap.getEntry(TreeMap.java:345)
> at java.util.TreeMap.get(TreeMap.java:278)
> at
> org.apache.calcite.linq4j.EnumerableDefaults.toLookup_(EnumerableDefaults.java:3608)
>
> at
> org.apache.calcite.linq4j.EnumerableDefaults$14.enumerator(EnumerableDefaults.java:2660)
>
> at
> org.apache.calcite.linq4j.AbstractEnumerable.iterator(AbstractEnumerable.java:33)
>
> at org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:90)
> at
> org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:186)
>
> at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:64)
> at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:43)
> at
> org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:669)
>
> at
> org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:636)
>
> at
> org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:677)
>
> at
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:157)
>
> at
> org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:228)
>
> at
> ru.spi2.modules.infosetquery.InfosetQueryPlugin.executeQuery(InfosetQueryPlugin.java:101)
> {code}
> The error occurs because col1 has some rows with null values. If I order only
> by col1 or col2, all works well.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)