[ 
https://issues.apache.org/jira/browse/DRILL-5245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15858611#comment-15858611
 ] 

Rahul Challapalli commented on DRILL-5245:
------------------------------------------

The above query only got past the Assertion error when I used an *OFFSET of 1*

> Using filter and offset could lead to an assertion error in Calcite
> -------------------------------------------------------------------
>
>                 Key: DRILL-5245
>                 URL: https://issues.apache.org/jira/browse/DRILL-5245
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>    Affects Versions: 1.10.0
>            Reporter: Rahul Challapalli
>
> git.commit.id.abbrev=2af709f
> Based on the filter selectivity, the planner might think that the number of 
> records from upstream in lesser than the "OFFSET" value and can fail with an 
> assertion error. Though in reality the estimate based on filter selectivity 
> could be wrong
> Below is one such example where I am hitting this issue
> {code}
> select * from (
>   select * from (
>     select d.*, concat(d.c_first_name, d.c_last_name) as name from (
>       SELECT 
>             *
>       FROM   catalog_sales,
>            customer
>       WHERE  cs_bill_customer_sk = c_customer_sk
>     ) as d 
>     order by d.c_email_address nulls first 
>   ) as d1 
>   where d1.name is not null
> ) d2
> OFFSET 1434510;
> {code}
> Exception from the logs
> {code}
> 2017-02-08 11:42:39,925 [27648b4f-98e5-22a9-f7d7-eccb587854a6:foreman] ERROR 
> o.a.drill.exec.work.foreman.Foreman - SYSTEM ERROR: AssertionError
> [Error Id: d026ab7f-9e11-4854-b39c-66a7846b6a3a on qa-node190.qa.lab:31010]
> org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: AssertionError
> [Error Id: d026ab7f-9e11-4854-b39c-66a7846b6a3a on qa-node190.qa.lab:31010]
>         at 
> org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:544)
>  ~[drill-common-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:825)
>  [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:945) 
> [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:281) 
> [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_111]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_111]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_111]
> Caused by: org.apache.drill.exec.work.foreman.ForemanException: Unexpected 
> exception during fragment initialization: null
>         ... 4 common frames omitted
> Caused by: java.lang.AssertionError: null
>         at 
> org.apache.calcite.rel.metadata.RelMetadataQuery.isNonNegative(RelMetadataQuery.java:524)
>  ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at 
> org.apache.calcite.rel.metadata.RelMetadataQuery.validateResult(RelMetadataQuery.java:543)
>  ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at 
> org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:87)
>  ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at 
> org.apache.calcite.rel.externalize.RelWriterImpl.explain_(RelWriterImpl.java:103)
>  ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at 
> org.apache.calcite.rel.externalize.RelWriterImpl.done(RelWriterImpl.java:160) 
> ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at 
> org.apache.calcite.rel.AbstractRelNode.explain(AbstractRelNode.java:283) 
> ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.calcite.plan.RelOptUtil.toString(RelOptUtil.java:1927) 
> ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.log(DefaultSqlHandler.java:138)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.log(DefaultSqlHandler.java:132)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform(DefaultSqlHandler.java:411)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform(DefaultSqlHandler.java:343)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:240)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:290)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:168)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan(DrillSqlWorker.java:117)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:91)
>  ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at 
> org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:1018) 
> [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:264) 
> [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         ... 3 common frames omitted
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to