Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-57238

Avoid inlining non-pure functions in aggregate functions

    XMLWordPrintable

Details

    • Untriaged
    • 0
    • Unknown
    • Analytics Sprint 21

    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

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              vipul.bhardwaj Vipul Bhardwaj
              wail.alkowaileet Wail Alkowaileet
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty