You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Taewoo Kim (JIRA)" <ji...@apache.org> on 2016/02/14 04:07:18 UTC

[jira] [Commented] (ASTERIXDB-1161) NullPointerException when rewriting the spatial-intersect query with an RTree index involved

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

Taewoo Kim commented on ASTERIXDB-1161:
---------------------------------------

It's fixed. The left-outer-unnestmap operator will be introduced soon.

> NullPointerException when rewriting the spatial-intersect query with an RTree index involved
> --------------------------------------------------------------------------------------------
>
>                 Key: ASTERIXDB-1161
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1161
>             Project: Apache AsterixDB
>          Issue Type: Bug
>          Components: Optimizer
>            Reporter: Jianfeng Jia
>            Assignee: Taewoo Kim
>
> The following AQL will throw an NPE:
> -------------------------------------
> drop dataverse test if exists;
> create dataverse test;
> use dataverse test;
> create type TPoly as open{
> id: int64,
> geometry: polygon
> }
> create dataset Polygons(TPoly) primary key id;
> create index geoRtree on Polygons(geometry) type rtree;
> create type TSample as closed {
> id : int64,
> location : point
> }
> create dataset Sample(TSample) primary key id;
> insert into dataset Polygons ( [{ "id":1, "geometry": polygon("-1.2,130.0 -214000.0,2.15 -350.0,3.6 -0.0046,4.81")}])
> insert into dataset Sample ( [ {"id": 1, "location" : point("0,0")}] )
> for $s in dataset Sample limit 1 return  {"ids": $s.id,
>   "idp": for $p in dataset Polygons where spatial-intersect($s.location, $p.geometry) return $p.id
> }
> ---------------------------------
> NPE:
> ----------------------------------
> java.lang.NullPointerException
>         at org.apache.asterix.om.util.NonTaggedFormatUtil.isOptional(NonTaggedFormatUtil.java:96)
>         at org.apache.asterix.metadata.entities.Index.getNonNullableType(Index.java:137)
>         at org.apache.asterix.optimizer.rules.am.AbstractIntroduceAccessMethodRule.isMatched(AbstractIntroduceAccessMethodRule.java:323)
>         at org.apache.asterix.optimizer.rules.am.AbstractIntroduceAccessMethodRule.pruneIndexCandidates(AbstractIntroduceAccessMethodRule.java:275)
>         at org.apache.asterix.optimizer.rules.am.AbstractIntroduceAccessMethodRule.pruneIndexCandidates(AbstractIntroduceAccessMethodRule.java:119)
>         at org.apache.asterix.optimizer.rules.am.IntroduceJoinAccessMethodRule.rewritePost(IntroduceJoinAccessMethodRule.java:140)
>         at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:126)
>         at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:100)
>         at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:100)
>         at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:100)
>         at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController.rewriteWithRuleCollection(SequentialFixpointRuleController.java:53)
>         at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:95)
>         at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:82)
>         at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$1$1.optimize(HeuristicCompilerFactoryBuilder.java:87)
>         at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:279)
>         at org.apache.asterix.aql.translator.AqlTranslator.rewriteCompileQuery(AqlTranslator.java:1900)
>         at org.apache.asterix.aql.translator.AqlTranslator.handleQuery(AqlTranslator.java:2480)
>         at org.apache.asterix.aql.translator.AqlTranslator.compileAndExecute(AqlTranslator.java:385)
>         at org.apache.asterix.api.http.servlet.APIServlet.doPost(APIServlet.java:114)
> ---------------------------
> However, it won't be any problem if the ddl doesn't contain a RTree index. 
> E.g. if we comment out this line in the above query it will work fine.
>  // create index geoRtree on Polygons(geometry) type rtree;



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