Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 3BA30200B86 for ; Sun, 18 Sep 2016 14:31:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3A482160AC3; Sun, 18 Sep 2016 12:31:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 59F07160AC0 for ; Sun, 18 Sep 2016 14:31:21 +0200 (CEST) Received: (qmail 89054 invoked by uid 500); 18 Sep 2016 12:31:20 -0000 Mailing-List: contact issues-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list issues@drill.apache.org Received: (qmail 89045 invoked by uid 99); 18 Sep 2016 12:31:20 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 18 Sep 2016 12:31:20 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 7127A2C0050 for ; Sun, 18 Sep 2016 12:31:20 +0000 (UTC) Date: Sun, 18 Sep 2016 12:31:20 +0000 (UTC) From: "godfrey he (JIRA)" To: issues@drill.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (DRILL-4889) throw NPE or AssertionError in FindPartitionConditions when running some SQLs on partition table MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Sun, 18 Sep 2016 12:31:22 -0000 [ https://issues.apache.org/jira/browse/DRILL-4889?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] godfrey he updated DRILL-4889: ------------------------------ 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; {quote} 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) {quote} *SQL 4:* select * from partition_table where none_partition_column = 'a' or (none_partition_column = 'b' and partition_column = '2000'); {quote} 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) {quote} was: 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%'; and also *SQL 2:* select * from partition_table where case when partition_column = '2000' then none_partition_column = 'test' end; {quote} 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) {quote} *SQL 3:* select * from partition_table where none_partition_column = 'a' or (none_partition_column = 'b' and partition_column = '2000'); {quote} 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) {quote} > throw NPE or AssertionError in FindPartitionConditions when running some SQLs on partition table > ------------------------------------------------------------------------------------------------ > > Key: DRILL-4889 > URL: https://issues.apache.org/jira/browse/DRILL-4889 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Affects Versions: 1.8.0 > Reporter: godfrey he > > 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; > {quote} > 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) > {quote} > > > *SQL 4:* select * from partition_table where none_partition_column = 'a' or (none_partition_column = 'b' and partition_column = '2000'); > {quote} > 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) > {quote} -- This message was sent by Atlassian JIRA (v6.3.4#6332)