You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Jiajun Xie (Jira)" <ji...@apache.org> on 2023/04/09 07:46:00 UTC

[jira] [Commented] (CALCITE-5632) Query with ORDER BY and null values NullPointer exception

    [ https://issues.apache.org/jira/browse/CALCITE-5632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17709950#comment-17709950 ] 

Jiajun Xie commented on CALCITE-5632:
-------------------------------------

I cannot reproduce your problem in main branch, which calcite and avatica version you using?
{code:java}
# [CALCITE-5632] Query with ORDER BY and null values NullPointer exception
select distinct MGR, empno
from emp
order by MGR asc nulls last ,
empno asc nulls last;
+------+-------+
| MGR  | EMPNO |
+------+-------+
| 7566 |  7788 |
| 7566 |  7902 |
| 7698 |  7499 |
| 7698 |  7521 |
| 7698 |  7654 |
| 7698 |  7844 |
| 7698 |  7900 |
| 7782 |  7934 |
| 7788 |  7876 |
| 7839 |  7566 |
| 7839 |  7698 |
| 7839 |  7782 |
| 7902 |  7369 |
|      |  7839 |
+------+-------+
(14 rows)

!ok {code}
One null value in MGR and the result is right in agg.iq, not your exception.

> 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
>
> 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)