Uploaded image for project: 'Apache AsterixDB'
  1. Apache AsterixDB
  2. ASTERIXDB-3205

Avoid inlining non-pure functions in aggregate functions

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 0.9.9
    • 0.9.9
    • COMP - Compiler

    Description

      The following query fails at compile time

      SELECT SUM(random(1))
      FROM ExperDataset
      GROUP BY a.ai; 

      With the following error

      org.apache.asterix.common.exceptions.CompilationException: ASX1079: Compilation error: Found non-functional function asterix:agg-local-sql-sum#1 (in line 3, at column 12)
          at org.apache.asterix.optimizer.rules.SweepIllegalNonfunctionalFunctions$IllegalNonfunctionalFunctionSweeperOperatorVisitor.sweepExpression(SweepIllegalNonfunctionalFunctions.java:108) ~[classes/:?]
          at org.apache.asterix.optimizer.rules.SweepIllegalNonfunctionalFunctions$IllegalNonfunctionalFunctionSweeperOperatorVisitor.visitAggregateOperator(SweepIllegalNonfunctionalFunctions.java:115) ~[classes/:?]
          at org.apache.asterix.optimizer.rules.SweepIllegalNonfunctionalFunctions$IllegalNonfunctionalFunctionSweeperOperatorVisitor.visitAggregateOperator(SweepIllegalNonfunctionalFunctions.java:102) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.algebra.operators.logical.AggregateOperator.accept(AggregateOperator.java:54) ~[classes/:?]
          at org.apache.asterix.optimizer.rules.SweepIllegalNonfunctionalFunctions.rewritePost(SweepIllegalNonfunctionalFunctions.java:96) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:119) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:104) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialOnceRuleController.rewriteWithRuleCollection(SequentialOnceRuleController.java:43) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:92) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runPhysicalOptimizationSets(HeuristicOptimizer.java:122) ~[classes/:?]
          at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:66) ~[classes/:?]
          at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$CompilerImpl.optimize(HeuristicCompilerFactoryBuilder.java:163) ~[classes/:?]
          at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:268) ~[classes/:?]
          at org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:3630) ~[classes/:?]
          at org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$2(QueryTranslator.java:4543) ~[classes/:?]
          at org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:4685) ~[classes/:?]
          at org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:4580) ~[classes/:?]
          at org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:4559) ~[classes/:?]
          at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:497) ~[classes/:?]
          at org.apache.asterix.api.http.server.QueryServiceServlet.executeStatement(QueryServiceServlet.java:415) ~[classes/:?]
          at org.apache.asterix.api.http.server.QueryServiceServlet.handleRequest(QueryServiceServlet.java:305) ~[classes/:?]
          at org.apache.asterix.api.http.server.QueryServiceServlet.post(QueryServiceServlet.java:139) ~[classes/:?]
          at org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:94) ~[classes/:?]
          at org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:83) ~[classes/:?]
          at org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:68) ~[classes/:?]
          at org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:37) ~[classes/:?]
          at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
          at java.lang.Thread.run(Thread.java:833) ~[?:?]

       

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            wyk Wail Y. Alkowaileet
            wyk Wail Y. Alkowaileet
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment