You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Kirill Kim (Jira)" <ji...@apache.org> on 2023/04/06 06:15:00 UTC
[jira] [Updated] (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:all-tabpanel ]
Kirill Kim updated CALCITE-5632:
--------------------------------
Description:
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.
was:
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.
> 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)