You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Wail Y. Alkowaileet (Jira)" <ji...@apache.org> on 2020/10/29 20:25:00 UTC

[jira] [Assigned] (ASTERIXDB-2794) SQL++ UDF inside WITH clause throws illegal state

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

Wail Y. Alkowaileet reassigned ASTERIXDB-2794:
----------------------------------------------

    Assignee: Dmitry Lychagin

> SQL++ UDF inside WITH clause throws illegal state
> -------------------------------------------------
>
>                 Key: ASTERIXDB-2794
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2794
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Wail Y. Alkowaileet
>            Assignee: Dmitry Lychagin
>            Priority: Minor
>
> If a SQL++ UDF used inside WITH clause, it throws Illegal sate
> DDL:
> {code:java}
> DROP DATAVERSE CS122A IF EXISTS;
> CREATE DATAVERSE CS122A;
> USE CS122A;
> CREATE TYPE TweetType AS {
>     id: string
> };
> CREATE DATASET Tweets(TweetType)
> PRIMARY KEY id;{code}
> UDF declaration:
>  
> {code:java}
> USE CS122A;
> DROP FUNCTION replaceUnknown(1) IF EXISTS;
> CREATE FUNCTION replaceUnknown(x) {
>   CASE WHEN x IS UNKNOWN THEN "" ELSE x END
> };
> {code}
> Query1 ({color:#00875a}works as expected{color}):
> {code:java}
> USE CS122A;
> SELECT replaceUnknown(in_reply_to_status_id_str)
> FROM Tweets
> LIMIT 10
> {code}
> Query 2 ({color:#de350b}throws an exception{color}):
> {code:java}
> USE CS122A;
> WITH t as (SELECT id, extended_tweet.full_text as tweet_text, replaceUnknown(in_reply_to_status_id_str) as replies_to, quoted_status_id_str as quotes
>             FROM Tweets
>             LIMIT 50)
> SELECT tweet_id, t[tweet_id].tweet_text, t[tweet_id].id, t[tweet_id].replies_to, t[tweet_id].quotes
> FROM range(0, 49) tweet_id
> {code}
> Logs:
> {code:java}
> 18:51:27.067 [QueryTranslator:ef93c7fb-3248-4e2e-a5b1-90ef6254d38a] INFO  org.apache.asterix.app.translator.QueryTranslator - ASX1038: Illegal state. CS122A.replaceUnknown(1) (in line 3, at column 19)18:51:27.067 [QueryTranslator:ef93c7fb-3248-4e2e-a5b1-90ef6254d38a] INFO  org.apache.asterix.app.translator.QueryTranslator - ASX1038: Illegal state. CS122A.replaceUnknown(1) (in line 3, at column 19)org.apache.asterix.common.exceptions.CompilationException: ASX1038: Illegal state. CS122A.replaceUnknown(1) (in line 3, at column 19) at org.apache.asterix.lang.sqlpp.visitor.CheckNonFunctionalExpressionVisitor.visit(CheckNonFunctionalExpressionVisitor.java:63) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.CheckNonFunctionalExpressionVisitor.visit(CheckNonFunctionalExpressionVisitor.java:36) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.common.expression.CallExpr.accept(CallExpr.java:80) ~[asterix-lang-common-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:311) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:111) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:71) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.clause.Projection.accept(Projection.java:46) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:311) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visitExprList(AbstractSqlppContainsExpressionVisitor.java:317) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:137) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:127) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:121) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:71) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.struct.SetOperationInput.accept(SetOperationInput.java:65) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:142) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:158) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppContainsExpressionVisitor.visit(AbstractSqlppContainsExpressionVisitor.java:71) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.expression.SelectExpression.accept(SelectExpression.java:55) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.rewrites.visitor.InlineWithExpressionVisitor.visit(InlineWithExpressionVisitor.java:66) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.rewrites.visitor.InlineWithExpressionVisitor.visit(InlineWithExpressionVisitor.java:39) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.expression.SelectExpression.accept(SelectExpression.java:55) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppSimpleExpressionVisitor.visit(AbstractSqlppSimpleExpressionVisitor.java:405) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppExpressionScopingVisitor.visit(AbstractSqlppExpressionScopingVisitor.java:223) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.visitor.base.AbstractSqlppExpressionScopingVisitor.visit(AbstractSqlppExpressionScopingVisitor.java:64) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.common.statement.Query.accept(Query.java:102) ~[asterix-lang-common-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.rewriteTopExpr(SqlppQueryRewriter.java:335) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.inlineWithExpressions(SqlppQueryRewriter.java:232) ~[asterix-lang-sqlpp-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.lang.sqlpp.rewrites.SqlppQueryRewriter.rewrite(SqlppQueryRewriter.java:198) ~[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:2826) ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$3(QueryTranslator.java:3331) ~[asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:3463) [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:3367) [asterix-app-0.9.6-SNAPSHOT.jar:0.9.6-SNAPSHOT] at org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:3346) [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)