You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2017/03/02 16:59:45 UTC

[jira] [Commented] (ASTERIXDB-1806) IllegalStateException from BTreeAccessMethod

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

ASF subversion and git services commented on ASTERIXDB-1806:
------------------------------------------------------------

Commit 753576f3822e10f148ef37ee3ea4c67e243777a7 in asterixdb's branch refs/heads/master from [~wangsaeu]
[ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=753576f ]

ASTERIXDB-1806: let inject_failure not utilize an index

 - Change the condition check logic of index transformation rule
   so that only arguments of AND function can be checked.
 - Let Index TransFormation Rule ignore Inject_failure()
   since the function can't utilize the index because of its arguments.

Change-Id: I5ca2da1eb08fbb7c27205bdff9795c0aa816794b
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1536
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
BAD: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Yingyi Bu <bu...@gmail.com>


> IllegalStateException from BTreeAccessMethod
> --------------------------------------------
>
>                 Key: ASTERIXDB-1806
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1806
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: Compiler
>            Reporter: Yingyi Bu
>            Assignee: Taewoo Kim
>
> DDL:
> {noformat}
> drop  dataverse tpch if exists;
> create  dataverse tpch;
> use tpch;
> create type LineItemType as
>  closed {
>   l_orderkey : integer,
>   l_partkey : integer,
>   l_suppkey : integer,
>   l_linenumber : integer,
>   l_quantity : double,
>   l_extendedprice : double,
>   l_discount : double,
>   l_tax : double,
>   l_returnflag : string,
>   l_linestatus : string,
>   l_shipdate : string,
>   l_commitdate : string,
>   l_receiptdate : string,
>   l_shipinstruct : string,
>   l_shipmode : string,
>   l_comment : string
> }
> create  dataset LineItem(LineItemType) primary key l_orderkey,l_linenumber;
> {noformat}
> Query:
> {noformat}
> USE tpch;
> SET `import-private-functions` "true";
> SELECT  l_returnflag,
>         l_linestatus,
>         sum(l_quantity) AS sum_qty,
>         sum(l_extendedprice) AS sum_base_price,
>         sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
>         sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
>         avg(l_quantity) AS ave_qty,
>         avg(l_extendedprice) AS ave_price,
>         avg(l_discount) AS ave_disc,
>         count(1) AS count_order
> FROM  LineItem l
> WHERE inject_failure(l.l_shipdate <= '1998-09-02', l.l_orderkey=5988)
> GROUP BY l_returnflag, l_linestatus
> ORDER BY l_returnflag, l_linestatus
> ;
> {noformat}
> Exception:
> {noformat}
> java.lang.IllegalStateException
> 	at org.apache.asterix.optimizer.rules.am.BTreeAccessMethod.getNewConditionExprs(BTreeAccessMethod.java:651)
> 	at org.apache.asterix.optimizer.rules.am.BTreeAccessMethod.createSecondaryToPrimaryPlan(BTreeAccessMethod.java:544)
> 	at org.apache.asterix.optimizer.rules.am.BTreeAccessMethod.applySelectPlanTransformation(BTreeAccessMethod.java:129)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.intersectAllSecondaryIndexes(IntroduceSelectAccessMethodRule.java:221)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.checkAndApplyTheSelectTransformationRule(IntroduceSelectAccessMethodRule.java:176)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.checkAndApplyTheSelectTransformationRule(IntroduceSelectAccessMethodRule.java:195)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.checkAndApplyTheSelectTransformationRule(IntroduceSelectAccessMethodRule.java:195)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.checkAndApplyTheSelectTransformationRule(IntroduceSelectAccessMethodRule.java:195)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.checkAndApplyTheSelectTransformationRule(IntroduceSelectAccessMethodRule.java:195)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.checkAndApplyTheSelectTransformationRule(IntroduceSelectAccessMethodRule.java:195)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.checkAndApplyTheSelectTransformationRule(IntroduceSelectAccessMethodRule.java:195)
> 	at org.apache.asterix.optimizer.rules.am.IntroduceSelectAccessMethodRule.rewritePost(IntroduceSelectAccessMethodRule.java:130)
> 	at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:126)
> 	at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController.rewriteWithRuleCollection(SequentialFixpointRuleController.java:53)
> 	at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:102)
> 	at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:82)
> 	at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$1$1.optimize(HeuristicCompilerFactoryBuilder.java:90)
> 	at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:251)
> 	at org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:1920)
> 	at org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$1(QueryTranslator.java:2393)
> 	at org.apache.asterix.app.translator.QueryTranslator$$Lambda$67/2055910122.compile(Unknown Source)
> 	at org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:2459)
> 	at org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:2438)
> 	at org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:2405)
> 	at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:365)
> 	at org.apache.asterix.api.http.server.QueryServiceServlet.handleRequest(QueryServiceServlet.java:525)
> 	at org.apache.asterix.api.http.server.QueryServiceServlet.handle(QueryServiceServlet.java:94)
> 	at org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:70)
> 	at org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:55)
> 	at org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:36)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> testFile src/test/resources/runtimets/queries_sqlpp/failure/q01_pricing_summary_report_failure/q01_pricing_summary_report_failure.3.query.sqlpp raised an exception: org.apache.asterix.common.exceptions.AsterixException: IllegalStateException
> org.apache.asterix.common.exceptions.AsterixException: IllegalStateException
> 	at org.apache.asterix.test.aql.ResultExtractor.extract(ResultExtractor.java:77)
> 	at org.apache.asterix.test.aql.TestExecutor.executeTestFile(TestExecutor.java:834)
> 	at org.apache.asterix.test.aql.TestExecutor.executeTest(TestExecutor.java:1144)
> 	at org.apache.asterix.test.runtime.LangExecutionUtil.test(LangExecutionUtil.java:118)
> 	at org.apache.asterix.test.runtime.LangExecutionUtil.test(LangExecutionUtil.java:105)
> 	at org.apache.asterix.test.runtime.SqlppExecutionTest.test(SqlppExecutionTest.java:61)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> 	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> 	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> 	at org.junit.runners.Suite.runChild(Suite.java:128)
> 	at org.junit.runners.Suite.runChild(Suite.java:27)
> 	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> 	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
> 	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
> 	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
> 	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
> 	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> 	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> 	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
> 	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
> 	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
> 	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:253)
> 	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:84)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:497)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
> ...Unexpected!
> {noformat}



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