Jaehwa Jung created TAJO-778:
--------------------------------

             Summary: TPC-DS Q34 occurs NPE
                 Key: TAJO-778
                 URL: https://issues.apache.org/jira/browse/TAJO-778
             Project: Tajo
          Issue Type: Bug
            Reporter: Jaehwa Jung
            Assignee: Jaehwa Jung


I tested TPC-DS Q34 query as follows:
* SQL
{code:xml}
select c_last_name
      ,c_first_name
      ,c_salutation
      ,c_preferred_cust_flag
      ,ss_ticket_number
      ,cnt from
  (select ss_ticket_number
         ,ss_customer_sk
         ,count(*) cnt
   from store_sales
   JOIN date_dim ON store_sales.ss_sold_date_sk = date_dim.d_date_sk
   JOIN store ON store_sales.ss_store_sk = store.s_store_sk  
   JOIN household_demographics ON store_sales.ss_hdemo_sk = 
household_demographics.hd_demo_sk
   where
       (date_dim.d_dom between 1 and 3 or date_dim.d_dom between 25 and 28)
   and (household_demographics.hd_buy_potential = '>10000' or
        household_demographics.hd_buy_potential = 'unknown')
   and household_demographics.hd_vehicle_count > 0
   and (case when household_demographics.hd_vehicle_count > 0 
       then household_demographics.hd_dep_count/ 
household_demographics.hd_vehicle_count 
       else null 
       end)  > 1.2
   and date_dim.d_year in (1998,1999,2000)
   and store.s_county in ('Williamson County','Williamson County','Williamson 
County','Williamson County',
                          'Williamson County','Williamson County','Williamson 
County','Williamson County')
   group by ss_ticket_number,ss_customer_sk) dn
   JOIN customer ON dn.ss_customer_sk = customer.c_customer_sk
   WHERE
     cnt between 15 and 20
   order by c_last_name,c_first_name,c_salutation,c_preferred_cust_flag desc;
{code}

* Actual Result
{code:xml}
java.lang.NullPointerException
        at org.apache.tajo.catalog.Column.equals(Column.java:115)
        at java.util.ArrayList.indexOf(ArrayList.java:298)
        at java.util.ArrayList.contains(ArrayList.java:281)
        at java.util.AbstractCollection.containsAll(AbstractCollection.java:316)
        at org.apache.tajo.catalog.Schema.containsAll(Schema.java:269)
        at 
org.apache.tajo.engine.planner.LogicalPlanner.checkIfBeEvaluatedAtRelation(LogicalPlanner.java:1556)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitScan(FilterPushDownRule.java:300)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitScan(FilterPushDownRule.java:33)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:96)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitJoin(FilterPushDownRule.java:208)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitJoin(FilterPushDownRule.java:33)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:81)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitFilter(FilterPushDownRule.java:66)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitFilter(FilterPushDownRule.java:33)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:78)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitGroupBy(BasicLogicalPlanVisitor.java:182)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:75)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitProjection(BasicLogicalPlanVisitor.java:146)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:63)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:45)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitTableSubQuery(FilterPushDownRule.java:288)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitTableSubQuery(FilterPushDownRule.java:33)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:93)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitJoin(FilterPushDownRule.java:209)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitJoin(FilterPushDownRule.java:33)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:81)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitFilter(FilterPushDownRule.java:66)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.visitFilter(FilterPushDownRule.java:33)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:78)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitSort(BasicLogicalPlanVisitor.java:164)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:69)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitProjection(BasicLogicalPlanVisitor.java:146)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:63)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitRoot(BasicLogicalPlanVisitor.java:136)
        at 
org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:58)
        at 
org.apache.tajo.engine.planner.rewrite.FilterPushDownRule.rewrite(FilterPushDownRule.java:54)
        at 
org.apache.tajo.engine.planner.rewrite.BasicQueryRewriteEngine.rewrite(BasicQueryRewriteEngine.java:63)
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to