Hi,

Recently, I have noticed that the aggregation functions I have been
implementing only work as collection functions, and it will produce errors
when ran as an array function. This only affects the new aggregate
functions I have added and does not affect the existing aggregate
functions(avg, max, min). Is there something specific I have to do to make
these functions work as array functions.

For example:
*My Functions:*
coll_stddev( [1.0, 2.0, 3.0] ) --> works
array_stddev( [1.0, 2.0, 3.0] ) - --> undefined function.

*Exisitng Functions:*
coll_avg( [1.0, 2.0, 3.0] ) --> works
array_avg( [1.0, 2.0, 3.0] ) - --> works


I have only modified or added files in:
1) New FunctionDescriptors and AggregateFunctions
2) BuiltinFunctions.java
3) FunctionCollection.java
4) New Typecomputer.

Stack trace of undefined function:
11:15:48.177 [HttpExecutor(port:19001)-13] ERROR org.apache.asterix -
function Default.array_stddev@1 is not defined
org.apache.asterix.common.exceptions.CompilationException: function
Default.array_stddev@1 is not defined
at
org.apache.asterix.lang.common.util.FunctionUtil.retrieveUsedStoredFunctions(FunctionUtil.java:144)
~[classes/:?]
at
org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.inlineDeclaredUdfs(SqlppQueryRewriter.java:226)
~[classes/:?]
at
org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.rewrite(SqlppQueryRewriter.java:131)
~[classes/:?]
at
org.apache.asterix.api.common.APIFramework.reWriteQuery(APIFramework.java:199)
~[classes/:?]
at
org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:1894)
~[classes/:?]
at
org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$2(QueryTranslator.java:2373)
~[classes/:?]
at
org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:2496)
~[classes/:?]
at
org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:2406)
~[classes/:?]
at
org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:2385)
~[classes/:?]
at
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:381)
~[classes/:?]
at org.apache.asterix.api.http.server.ApiServlet.post(ApiServlet.java:168)
[classes/:?]
at
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:92)
[classes/:?]
at
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:71)
[classes/:?]
at
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:56)
[classes/:?]
at
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:37)
[classes/:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[?:1.8.0_131]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[?:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]

Reply via email to