You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Volodymyr Vysotskyi (JIRA)" <ji...@apache.org> on 2017/12/07 12:31:00 UTC
[jira] [Created] (CALCITE-2080) Query with NOT IN operator and
literal fails with error java.lang.AssertionError: Cast for just
nullability not allowed
Volodymyr Vysotskyi created CALCITE-2080:
--------------------------------------------
Summary: Query with NOT IN operator and literal fails with error java.lang.AssertionError: Cast for just nullability not allowed
Key: CALCITE-2080
URL: https://issues.apache.org/jira/browse/CALCITE-2080
Project: Calcite
Issue Type: Bug
Reporter: Volodymyr Vysotskyi
Assignee: Julian Hyde
This test
{code:java}
@Test
public void testNotInWithLiteral() {
final String sql = "SELECT *\n"
+ "FROM SALES.NATION\n"
+ "WHERE n_name NOT IN\n"
+ " (SELECT ''\n"
+ " FROM SALES.NATION)";
sql(sql).with(getTesterWithDynamicTable()).ok();
}
{code}
fails with error:
{noformat}
java.lang.AssertionError: Cast for just nullability not allowed
at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31)
at org.apache.calcite.rel.core.Filter.isValid(Filter.java:116)
at org.apache.calcite.test.SqlToRelConverterTest$RelValidityChecker.visit(SqlToRelConverterTest.java:2753)
at org.apache.calcite.rel.SingleRel.childrenAccept(SingleRel.java:72)
at org.apache.calcite.rel.RelVisitor.visit(RelVisitor.java:44)
at org.apache.calcite.test.SqlToRelConverterTest$RelValidityChecker.visit(SqlToRelConverterTest.java:2756)
at org.apache.calcite.rel.RelVisitor.go(RelVisitor.java:61)
at org.apache.calcite.test.SqlToRelTestBase.assertValid(SqlToRelTestBase.java:129)
at org.apache.calcite.test.SqlToRelTestBase$TesterImpl.assertConvertsTo(SqlToRelTestBase.java:693)
at org.apache.calcite.test.SqlToRelConverterTest$Sql.convertsTo(SqlToRelConverterTest.java:2790)
at org.apache.calcite.test.SqlToRelConverterTest$Sql.ok(SqlToRelConverterTest.java:2786)
at org.apache.calcite.test.SqlToRelConverterTest.testNotInWithLiteral(SqlToRelConverterTest.java:1299)
{noformat}
In [this line|https://github.com/apache/calcite/blob/c7d9b3d561243c3cb97595f4fe9a0ccf05ce85ac/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L4502] cast which just changes types nullability was made. The ending type is taken form validator and it [was made nullable|https://github.com/apache/calcite/blob/f47465236b7650f2280092b708fa39062fe79ffd/core/src/main/java/org/apache/calcite/sql/fun/SqlInOperator.java#L163] because right operand has a nullable type.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)