[
https://issues.apache.org/jira/browse/TAJO-778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13976460#comment-13976460
]
Jaehwa Jung commented on TAJO-778:
----------------------------------
This issue includes various type of bugs.
> TPC-DS Q34 occurs NPE
> ---------------------
>
> Key: TAJO-778
> URL: https://issues.apache.org/jira/browse/TAJO-778
> Project: Tajo
> Issue Type: Bug
> Components: planner/optimizer
> Affects Versions: 0.9
> Reporter: Jaehwa Jung
> Assignee: Jaehwa Jung
> Fix For: 0.9
>
>
> 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}
> * Expected Result
> It must returns 2,905 rows.
> * 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)