[ 
https://issues.apache.org/jira/browse/ASTERIXDB-2799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wail Y. Alkowaileet updated ASTERIXDB-2799:
-------------------------------------------
    Description: 
 

I'm not sure if I'm doing something wrong.

DDL:
{code:java}
DROP DATAVERSE UDFTest IF EXISTS;
CREATE DATAVERSE UDFTest;
CREATE FUNCTION doubleDigit(digit) {
    CASE WHEN digit < 10 
         THEN concat("0", toString(digit))
         ELSE toString(digit)
         END
};{code}
Query:

 
{code:java}
USE UDFTest;
SELECT doubleDigit(1), doubleDigit(10);
{code}
It throws: 
{code:java}
ASX1079: Compilation error: Recursive invocation UDFTest.doubleDigit(1) <==> 
UDFTest.doubleDigit(1){code}
Log:
{code:java}
22:01:49.997 [QueryTranslator:a5e7e2fe-fcbe-4b6b-ae99-8c0b0e717ddd] INFO  
org.apache.asterix.app.translator.QueryTranslator - ASX1079: Compilation error: 
Recursive invocation UDFTest.doubleDigit(1) <==> UDFTest.doubleDigit(1) (in 
line 9, at column 24)22:01:49.997 
[QueryTranslator:a5e7e2fe-fcbe-4b6b-ae99-8c0b0e717ddd] INFO  
org.apache.asterix.app.translator.QueryTranslator - ASX1079: Compilation error: 
Recursive invocation UDFTest.doubleDigit(1) <==> UDFTest.doubleDigit(1) (in 
line 9, at column 24)org.apache.asterix.common.exceptions.CompilationException: 
ASX1079: Compilation error: Recursive invocation UDFTest.doubleDigit(1) <==> 
UDFTest.doubleDigit(1) (in line 9, at column 24) at 
org.apache.asterix.lang.common.util.FunctionUtil.retrieveUsedStoredFunctions(FunctionUtil.java:236)
 ~[asterix-lang-common-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.inlineDeclaredUdfs(SqlppQueryRewriter.java:318)
 ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.rewrite(SqlppQueryRewriter.java:184)
 ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.common.APIFramework.reWriteQuery(APIFramework.java:191) 
~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:2834)
 ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$3(QueryTranslator.java:3341)
 ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:3473)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:3377)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:3356)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:434)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.http.server.QueryServiceServlet.executeStatement(QueryServiceServlet.java:417)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.http.server.QueryServiceServlet.handleRequest(QueryServiceServlet.java:303)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.http.server.QueryServiceServlet.post(QueryServiceServlet.java:143)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:93) 
[hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:83)
 [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:68)
 [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:37)
 [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
[?:?] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
[?:?] at java.lang.Thread.run(Thread.java:834) [?:?]
{code}
 

 

  was:
 

I'm not sure if I'm doing something wrong.

DDL:
{code:java}
DROP DATAVERSE UDFTest IF EXISTS;
CREATE DATAVERSE UDFTest;
CREATE FUNCTION doubleDigit(digit) {
    CASE WHEN digit < 10 THEN concat("0", toString(digit))
                ELSE toString(digit)
                END
};{code}
Query:

 
{code:java}
USE UDFTest;
SELECT doubleDigit(1), doubleDigit(10);
{code}
It throws: 
{code:java}
ASX1079: Compilation error: Recursive invocation UDFTest.doubleDigit(1) <==> 
UDFTest.doubleDigit(1){code}
Log:
{code:java}
22:01:49.997 [QueryTranslator:a5e7e2fe-fcbe-4b6b-ae99-8c0b0e717ddd] INFO  
org.apache.asterix.app.translator.QueryTranslator - ASX1079: Compilation error: 
Recursive invocation UDFTest.doubleDigit(1) <==> UDFTest.doubleDigit(1) (in 
line 9, at column 24)22:01:49.997 
[QueryTranslator:a5e7e2fe-fcbe-4b6b-ae99-8c0b0e717ddd] INFO  
org.apache.asterix.app.translator.QueryTranslator - ASX1079: Compilation error: 
Recursive invocation UDFTest.doubleDigit(1) <==> UDFTest.doubleDigit(1) (in 
line 9, at column 24)org.apache.asterix.common.exceptions.CompilationException: 
ASX1079: Compilation error: Recursive invocation UDFTest.doubleDigit(1) <==> 
UDFTest.doubleDigit(1) (in line 9, at column 24) at 
org.apache.asterix.lang.common.util.FunctionUtil.retrieveUsedStoredFunctions(FunctionUtil.java:236)
 ~[asterix-lang-common-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.inlineDeclaredUdfs(SqlppQueryRewriter.java:318)
 ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.rewrite(SqlppQueryRewriter.java:184)
 ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.common.APIFramework.reWriteQuery(APIFramework.java:191) 
~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:2834)
 ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$3(QueryTranslator.java:3341)
 ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:3473)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:3377)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:3356)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:434)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.http.server.QueryServiceServlet.executeStatement(QueryServiceServlet.java:417)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.http.server.QueryServiceServlet.handleRequest(QueryServiceServlet.java:303)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.asterix.api.http.server.QueryServiceServlet.post(QueryServiceServlet.java:143)
 [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:93) 
[hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:83)
 [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:68)
 [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:37)
 [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
[?:?] at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
[?:?] at java.lang.Thread.run(Thread.java:834) [?:?]
{code}
 

 


> SQL++ UDF cannot be used twice in SELECT
> ----------------------------------------
>
>                 Key: ASTERIXDB-2799
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2799
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Wail Y. Alkowaileet
>            Assignee: Dmitry Lychagin
>            Priority: Major
>
>  
> I'm not sure if I'm doing something wrong.
> DDL:
> {code:java}
> DROP DATAVERSE UDFTest IF EXISTS;
> CREATE DATAVERSE UDFTest;
> CREATE FUNCTION doubleDigit(digit) {
>     CASE WHEN digit < 10 
>          THEN concat("0", toString(digit))
>          ELSE toString(digit)
>          END
> };{code}
> Query:
>  
> {code:java}
> USE UDFTest;
> SELECT doubleDigit(1), doubleDigit(10);
> {code}
> It throws: 
> {code:java}
> ASX1079: Compilation error: Recursive invocation UDFTest.doubleDigit(1) <==> 
> UDFTest.doubleDigit(1){code}
> Log:
> {code:java}
> 22:01:49.997 [QueryTranslator:a5e7e2fe-fcbe-4b6b-ae99-8c0b0e717ddd] INFO  
> org.apache.asterix.app.translator.QueryTranslator - ASX1079: Compilation 
> error: Recursive invocation UDFTest.doubleDigit(1) <==> 
> UDFTest.doubleDigit(1) (in line 9, at column 24)22:01:49.997 
> [QueryTranslator:a5e7e2fe-fcbe-4b6b-ae99-8c0b0e717ddd] INFO  
> org.apache.asterix.app.translator.QueryTranslator - ASX1079: Compilation 
> error: Recursive invocation UDFTest.doubleDigit(1) <==> 
> UDFTest.doubleDigit(1) (in line 9, at column 
> 24)org.apache.asterix.common.exceptions.CompilationException: ASX1079: 
> Compilation error: Recursive invocation UDFTest.doubleDigit(1) <==> 
> UDFTest.doubleDigit(1) (in line 9, at column 24) at 
> org.apache.asterix.lang.common.util.FunctionUtil.retrieveUsedStoredFunctions(FunctionUtil.java:236)
>  ~[asterix-lang-common-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.inlineDeclaredUdfs(SqlppQueryRewriter.java:318)
>  ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.rewrite(SqlppQueryRewriter.java:184)
>  ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.api.common.APIFramework.reWriteQuery(APIFramework.java:191)
>  ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:2834)
>  ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$3(QueryTranslator.java:3341)
>  ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:3473)
>  [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:3377)
>  [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:3356)
>  [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:434)
>  [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.api.http.server.QueryServiceServlet.executeStatement(QueryServiceServlet.java:417)
>  [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.api.http.server.QueryServiceServlet.handleRequest(QueryServiceServlet.java:303)
>  [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.asterix.api.http.server.QueryServiceServlet.post(QueryServiceServlet.java:143)
>  [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at 
> org.apache.hyracks.http.server.AbstractServlet.handle(AbstractServlet.java:93)
>  [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
> org.apache.hyracks.http.server.HttpRequestHandler.handle(HttpRequestHandler.java:83)
>  [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
> org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:68)
>  [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
> org.apache.hyracks.http.server.HttpRequestHandler.call(HttpRequestHandler.java:37)
>  [hyracks-http-0.3.6-SNAPSHOT.jar:0.3.6-SNAPSHOT] at 
> java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>  [?:?] at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>  [?:?] at java.lang.Thread.run(Thread.java:834) [?:?]
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to