asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Taewoo Kim (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ASTERIXDB-1079) IX-NLJ fails with limit (during rewrite)
Date Mon, 26 Oct 2015 20:19:27 GMT

    [ https://issues.apache.org/jira/browse/ASTERIXDB-1079?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14974959#comment-14974959
] 

Taewoo Kim commented on ASTERIXDB-1079:
---------------------------------------

The simple reason was that after copying the LIMIT operator, we didn't compute delivered physical
properties. This can be easily fixed. However, there is another issue. We should not copy
LIMIT operator under the UNNEST-MAP unless UNNEST-MAP retains null value during the search
(e.g., left-outer-join case). This needs to be fixed, too. 

> IX-NLJ fails with limit (during rewrite)
> ----------------------------------------
>
>                 Key: ASTERIXDB-1079
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1079
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: AsterixDB, Optimizer
>            Reporter: Pouria
>            Assignee: Yingyi Bu
>
> Adding a limit clause to the Index join query from our famous TinySocial tutorial causes
the query to fail during rewrite phase. 
> Here is the query;
> use dataverse TinySocial;
>        for $user in dataset MugshotUsers
>         for $message in dataset MugshotMessages
>         where $message.author_id /*+ indexnl */  = $user.id
>         limit 20
>         return {
>         "uname": $user.name,
>         "message": $message.message
>         };
> and Here is the error stack:
> java.lang.NullPointerException
> 	at edu.uci.ics.hyracks.algebricks.core.algebra.operators.physical.OneToOneExchangePOperator.computeDeliveredProperties(OneToOneExchangePOperator.java:45)
> 	at edu.uci.ics.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator.computeDeliveredPhysicalProperties(AbstractLogicalOperator.java:118)
> 	at edu.uci.ics.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil.computeSchemaAndPropertiesRecIfNull(OperatorPropertiesUtil.java:227)
> 	at edu.uci.ics.hyracks.algebricks.rewriter.rules.IsolateHyracksOperatorsRule.insertOneToOneExchange(IsolateHyracksOperatorsRule.java:133)
> 	at edu.uci.ics.hyracks.algebricks.rewriter.rules.IsolateHyracksOperatorsRule.testIfExchangeBelow(IsolateHyracksOperatorsRule.java:73)
> 	at edu.uci.ics.hyracks.algebricks.rewriter.rules.IsolateHyracksOperatorsRule.rewritePost(IsolateHyracksOperatorsRule.java:51)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:122)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:96)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:96)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:96)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:96)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:96)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:96)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:96)
> 	at edu.uci.ics.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialOnceRuleController.rewriteWithRuleCollection(SequentialOnceRuleController.java:40)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:91)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runPhysicalOptimizations(HeuristicOptimizer.java:122)
> 	at edu.uci.ics.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:80)
> 	at edu.uci.ics.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$1$1.optimize(HeuristicCompilerFactoryBuilder.java:83)
> 	at edu.uci.ics.asterix.api.common.APIFramework.compileQuery(APIFramework.java:275)
> 	at edu.uci.ics.asterix.aql.translator.AqlTranslator.rewriteCompileQuery(AqlTranslator.java:1893)
> 	at edu.uci.ics.asterix.aql.translator.AqlTranslator.handleQuery(AqlTranslator.java:2473)
> 	at edu.uci.ics.asterix.aql.translator.AqlTranslator.compileAndExecute(AqlTranslator.java:378)
> 	at edu.uci.ics.asterix.api.http.servlet.APIServlet.doPost(APIServlet.java:111)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:970)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:904)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:347)
> 	at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:439)
> 	at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:924)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:781)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
> 	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:43)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
> 	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
> 	at java.lang.Thread.run(Thread.java:745)
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message