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] [Closed] (ASTERIXDB-1700) edit-distance-check on the fields with the 2-gram and the 3-gram index generates a null pointer exception.
Date Fri, 21 Oct 2016 03:49:58 GMT

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

Taewoo Kim closed ASTERIXDB-1700.
---------------------------------
    Resolution: Fixed

Still, there is one issue. But the chances are low that the following error will occur because
this issue is fixed by applying the method 1) on the previous comments.

Remaining issue: Replicate Operator is introduced by ExtractCommonOperatorsRule. ExtractCommonOperatorsRule
doesn't transform the plan correctly since the runtime complains about the input connector.

> edit-distance-check on the fields with the 2-gram and the 3-gram index generates a null
pointer exception.
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: ASTERIXDB-1700
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1700
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Taewoo Kim
>            Assignee: Taewoo Kim
>
> If there multiple indexes on the same field, we use intersect operator to integrate the
result from each index. In the following AQL query, we have two n-gram indexes on the same
field. And, the null pointer exception happens.
> {code}
> java.lang.NullPointerException
> 	at org.apache.hyracks.api.job.JobSpecification.getInputConnectorDescriptor(JobSpecification.java:192)
> 	at org.apache.hyracks.api.job.JobSpecification.getInputConnectorDescriptor(JobSpecification.java:188)
> 	at org.apache.hyracks.api.client.impl.JobActivityGraphBuilder.addSourceEdge(JobActivityGraphBuilder.java:81)
> 	at org.apache.hyracks.dataflow.std.base.AbstractSingleActivityOperatorDescriptor.contributeActivities(AbstractSingleActivityOperatorDescriptor.java:54)
> 	at org.apache.hyracks.api.client.impl.JobSpecificationActivityClusterGraphGeneratorFactory$2.visit(JobSpecificationActivityClusterGraphGeneratorFactory.java:67)
> 	at org.apache.hyracks.api.client.impl.PlanUtils.visitOperator(PlanUtils.java:41)
> 	at org.apache.hyracks.api.client.impl.PlanUtils.visit(PlanUtils.java:34)
> 	at org.apache.hyracks.api.client.impl.JobSpecificationActivityClusterGraphGeneratorFactory.createActivityClusterGraphGenerator(JobSpecificationActivityClusterGraphGeneratorFactory.java:64)
> 	at org.apache.hyracks.control.cc.work.JobStartWork.doRun(JobStartWork.java:61)
> 	at org.apache.hyracks.control.common.work.SynchronizableWork.run(SynchronizableWork.java:39)
> 	at org.apache.hyracks.control.common.work.WorkQueue$WorkerThread.run(WorkQueue.java:127)
> Oct 19, 2016 7:10:22 PM org.apache.asterix.app.translator.QueryTranslator handleQuery
> {code}
> {code}
> create type DBLPType as closed {
>   id: int64,
>   dblpid: string,
>   title: string,
>   authors: string,
>   misc: string
> }
> create dataset DBLP(DBLPType)
>   primary key id on group1;
> create index ngram2_index on DBLP(authors) type ngram(2);
> create index ngram3_index on DBLP(authors) type ngram(3);
> for $o in dataset('DBLP')
> let $ed := edit-distance-check($o.authors, "Amihay Motro", 1)
> where $ed[0]
> return $o
> {code}
> {code}
> -- DISTRIBUTE_RESULT  |PARTITIONED|
>   exchange
>   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>     select (function-call: asterix:get-item, Args:[function-call: asterix:edit-distance-check,
Args:[function-call: asterix:field-access-by-index, Args:[%0->$$0, AInt32: {3}], AString:
{Amihay Motro}, AInt64: {1}], AInt64: {0}])
>     -- STREAM_SELECT  |PARTITIONED|
>       project ([$$0])
>       -- STREAM_PROJECT  |PARTITIONED|
>         exchange
>         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>           unnest-map [$$6, $$0] <- function-call: asterix:index-search, Args:[AString:
{DBLP}, AInt32: {0}, AString: {test}, AString: {DBLP}, ABoolean: {false}, ABoolean: {false},
AInt32: {1}, %0->$$9, AInt32: {1}, %0->$$9, TRUE, TRUE, TRUE]
>           -- BTREE_SEARCH  |PARTITIONED|
>             exchange
>             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>               intersect ([$$9] <- [[$$9], [$$11]])
>               -- INTERSECT  |PARTITIONED|
>                 exchange
>                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                   order (ASC, %0->$$9) 
>                   -- STABLE_SORT [$$9(ASC)]  |PARTITIONED|
>                     exchange
>                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                       unnest-map [$$9] <- function-call: asterix:index-search, Args:[AString:
{ngram2_index}, AInt32: {5}, AString: {test}, AString: {DBLP}, ABoolean: {false}, ABoolean:
{false}, AInt32: {2}, AInt64: {1}, AInt32: {12}, AInt32: {1}, %0->$$8]
>                       -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
>                         project ([$$8])
>                         -- STREAM_PROJECT  |PARTITIONED|
>                           assign [$$8] <- [%0->$$10]
>                           -- ASSIGN  |PARTITIONED|
>                             exchange
>                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                               replicate
>                               -- REPLICATE  |PARTITIONED|
>                                 exchange
>                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                                   assign [$$10] <- [AString: {Amihay Motro}]
>                                   -- ASSIGN  |PARTITIONED|
>                                     empty-tuple-source
>                                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
>                 exchange
>                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                   order (ASC, %0->$$11) 
>                   -- STABLE_SORT [$$11(ASC)]  |PARTITIONED|
>                     exchange
>                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                       unnest-map [$$11] <- function-call: asterix:index-search, Args:[AString:
{ngram3_index}, AInt32: {5}, AString: {test}, AString: {DBLP}, ABoolean: {false}, ABoolean:
{false}, AInt32: {2}, AInt64: {1}, AInt32: {12}, AInt32: {1}, %0->$$10]
>                       -- LENGTH_PARTITIONED_INVERTED_INDEX_SEARCH  |PARTITIONED|
>                         exchange
>                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                           replicate
>                           -- REPLICATE  |PARTITIONED|
>                             exchange
>                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
>                               assign [$$10] <- [AString: {Amihay Motro}]
>                               -- ASSIGN  |PARTITIONED|
>                                 empty-tuple-source
>                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
> {code}



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

Mime
View raw message