[
https://issues.apache.org/jira/browse/ASTERIXDB-3205?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wail Y. Alkowaileet updated ASTERIXDB-3205:
-------------------------------------------
Description:
The following query fails at compile time
{code:sql}SELECT SUM(random(1))
FROM ExperDataset
GROUP BY a.ai; {code}
With the following error
{noformat}
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) ~[?:?]{noformat}
was:
The following queries fail at compile time
{code:sql}SELECT SUM(random(1))
FROM ExperDataset
GROUP BY a.ai; {code}
With the following error
{noformat}
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) ~[?:?]{noformat}
> Avoid inlining non-pure functions in aggregate functions
> --------------------------------------------------------
>
> Key: ASTERIXDB-3205
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-3205
> Project: Apache AsterixDB
> Issue Type: Bug
> Components: COMP - Compiler
> Affects Versions: 0.9.9
> Reporter: Wail Y. Alkowaileet
> Assignee: Wail Y. Alkowaileet
> Priority: Critical
> Fix For: 0.9.9
>
>
> The following query fails at compile time
> {code:sql}SELECT SUM(random(1))
> FROM ExperDataset
> GROUP BY a.ai; {code}
> With the following error
> {noformat}
> 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) ~[?:?]{noformat}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)