Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.8.0
-
None
-
None
Description
When I ran some SQLs on partition table, I got NPE or AssertionError in FindPartitionConditions as below:
partition_table is a partition table
partition_column is the partition column
none_partition_column is a normal column, not the partition column
SQL 1: select * from partition_table where none_partition_column like '%test%';
SQL 2: select partition_column from partition_table where none_partition_column like '%test%';
SQL 3: select * from partition_table where case when partition_column = '2000' then none_partition_column = 'test' end;
Caused by: java.lang.NullPointerException: null
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions$OpState.access$000(FindPartitionConditions.java:63)
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.analyzeCall(FindPartitionConditions.java:315)
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:260)
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:46)
SQL 4: select * from partition_table where none_partition_column = 'a' or (none_partition_column = 'b' and partition_column = '2000');
Caused by: java.lang.AssertionError: null
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.popOpStackAndBuildFilter(FindPartitionConditions.java:198)
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.analyzeCall(FindPartitionConditions.java:335)
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:260)
at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:46)