Uploaded image for project: 'Tajo (Retired)'
  1. Tajo (Retired)
  2. TAJO-779

TPC-DS Q46 occurs NPE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • None
    • 0.9.0
    • Planner/Optimizer
    • None

    Description

      I tested TPC-DS Q46 query as follows:

      • SQL
        select  c_last_name
               ,c_first_name
               ,ca_city
               ,bought_city
               ,ss_ticket_number
               ,amt,profit
         from
           (select ss_ticket_number
                  ,ss_customer_sk
                  ,ca_city as bought_city
                  ,sum(ss_coupon_amt) as amt
                  ,sum(ss_net_profit) as profit
            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
                 JOIN customer_address ON store_sales.ss_addr_sk = customer_address.ca_address_sk
            where
                (household_demographics.hd_dep_count = 5 or
                 household_demographics.hd_vehicle_count= 3)
            and date_dim.d_dow in (6,0)
            and date_dim.d_year in (1999,1999+1,1999+2)
            and store.s_city in ('Midway','Fairview','Fairview','Fairview','Fairview')
            group by ss_ticket_number,ss_customer_sk,ss_addr_sk,ca_city) dn
          JOIN customer ON dn.ss_customer_sk = customer.c_customer_sk
          JOIN customer_address ON customer.c_current_addr_sk = customer_address.ca_address_sk
            where
              customer_address.ca_city <> dn.bought_city
          order by c_last_name
                  ,c_first_name
                  ,ca_city
                  ,bought_city
                  ,ss_ticket_number
          limit 100;
        
      • Actual Result
        java.lang.NullPointerException
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule$TargetListManager.getTarget(ProjectionPushDownRule.java:256)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitJoin(ProjectionPushDownRule.java:728)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitJoin(ProjectionPushDownRule.java:42)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:81)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitGroupBy(BasicLogicalPlanVisitor.java:182)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitGroupBy(ProjectionPushDownRule.java:571)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitGroupBy(ProjectionPushDownRule.java:42)
        	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.rewrite.ProjectionPushDownRule.visitProjection(ProjectionPushDownRule.java:399)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitProjection(ProjectionPushDownRule.java:42)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:63)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitTableSubQuery(BasicLogicalPlanVisitor.java:243)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitTableSubQuery(ProjectionPushDownRule.java:925)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitTableSubQuery(ProjectionPushDownRule.java:42)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:93)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitJoin(ProjectionPushDownRule.java:707)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitJoin(ProjectionPushDownRule.java:42)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:81)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitSort(BasicLogicalPlanVisitor.java:164)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitSort(ProjectionPushDownRule.java:487)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitSort(ProjectionPushDownRule.java:42)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:69)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitLimit(BasicLogicalPlanVisitor.java:155)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitLimit(ProjectionPushDownRule.java:468)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitLimit(ProjectionPushDownRule.java:42)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:66)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visitProjection(BasicLogicalPlanVisitor.java:146)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitProjection(ProjectionPushDownRule.java:399)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitProjection(ProjectionPushDownRule.java:42)
        	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.rewrite.ProjectionPushDownRule.visitRoot(ProjectionPushDownRule.java:382)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.visitRoot(ProjectionPushDownRule.java:42)
        	at org.apache.tajo.engine.planner.BasicLogicalPlanVisitor.visit(BasicLogicalPlanVisitor.java:58)
        	at org.apache.tajo.engine.planner.rewrite.ProjectionPushDownRule.rewrite(ProjectionPushDownRule.java:73)
        	at org.apache.tajo.engine.planner.rewrite.BasicQueryRewriteEngine.rewrite(BasicQueryRewriteEngine.java:63)
        	at org.apache.tajo.engine.planner.LogicalOptimizer.optimize(LogicalOptimizer.java:74)
        

      Attachments

        Activity

          People

            blrunner JaeHwa Jung
            blrunner JaeHwa Jung
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: