2013-04-22 50 views
4

以下查詢有什麼問題? [Neo4j的1.8.2,嵌入式]Cypher:ThisShouldNotHappenError:此執行計劃不應存在

start merchant = node:merchants('id:10') 
match (merchant)<-[:VALID_AT]-(offer)-[:TARGET_PINCODE]->(pincode)<-[:RESIDES_IN]-(customer) where (offer)-[:VALID_OFFER]->() and offer.endDate > 1 
return count(offer) 

網站管理返回undefined

Java異常:

org.neo4j.helpers.ThisShouldNotHappenError: Developer: Andres claims that: This execution plan should not exist. at org.neo4j.cypher.internal.commands.PathExpression$$anonfun$4.apply(PathExpression.scala:47) at org.neo4j.cypher.internal.commands.PathExpression$$anonfun$4.apply(PathExpression.scala:46) at scala.collection.LinearSeqOptimized$class.exists(LinearSeqOptimized.scala:79) at scala.collection.immutable.List.exists(List.scala:45) at org.neo4j.cypher.internal.commands.PathExpression.apply(PathExpression.scala:46) at org.neo4j.cypher.internal.commands.PathExpression.apply(PathExpression.scala:31) at org.neo4j.cypher.internal.commands.NonEmpty.isMatch(Predicate.scala:283) at org.neo4j.cypher.internal.commands.And.isMatch(Predicate.scala:83) at org.neo4j.cypher.internal.pipes.matching.FilteringIterable$FilteringIterator.spoolToNextInLine(FilteringIterable.scala:55) at org.neo4j.cypher.internal.pipes.matching.FilteringIterable$FilteringIterator.(FilteringIterable.scala:34) at org.neo4j.cypher.internal.pipes.matching.FilteringIterable.iterator(FilteringIterable.scala:72) at org.neo4j.cypher.internal.pipes.matching.FilteringIterable.iterator(FilteringIterable.scala:27) at scala.collection.JavaConversions$IterableWrapperTrait$class.iterator(JavaConversions.scala:557) at scala.collection.JavaConversions$IterableWrapper.iterator(JavaConversions.scala:583) at scala.collection.JavaConversions$IterableWrapper.iterator(JavaConversions.scala:583) at org.neo4j.kernel.impl.traversal.TraversalBranchWithState.expandRelationshipsWithoutChecks(TraversalBranchWithState.java:70) at org.neo4j.kernel.impl.traversal.TraversalBranchImpl.expandRelationships(TraversalBranchImpl.java:104) at org.neo4j.kernel.impl.traversal.StartNodeTraversalBranch.next(StartNodeTraversalBranch.java:47) at org.neo4j.kernel.impl.traversal.AsOneStartBranch.next(AsOneStartBranch.java:100) at org.neo4j.kernel.PreorderDepthFirstSelector.next(PreorderDepthFirstSelector.java:52) at org.neo4j.kernel.impl.traversal.TraverserIterator.fetchNextOrNull(TraverserIterator.java:65) at org.neo4j.kernel.impl.traversal.TraverserIterator.fetchNextOrNull(TraverserIterator.java:34) at org.neo4j.helpers.collection.PrefetchingIterator.hasNext(PrefetchingIterator.java:55) at scala.collection.JavaConversions$JIteratorWrapper.hasNext(JavaConversions.scala:574) at scala.collection.Iterator$$anon$21.hasNext(Iterator.scala:371) at scala.collection.Iterator$$anon$21.hasNext(Iterator.scala:371) at scala.collection.Iterator$$anon$22.hasNext(Iterator.scala:388) at scala.collection.Iterator$class.foreach(Iterator.scala:660) at scala.collection.Iterator$$anon$22.foreach(Iterator.scala:382) at org.neo4j.cypher.internal.pipes.EagerAggregationPipe.createResults(EagerAggregationPipe.scala:76) at org.neo4j.cypher.internal.pipes.ColumnFilterPipe.createResults(ColumnFilterPipe.scala:37) at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl$$anonfun$6.apply(ExecutionPlanImpl.scala:127) at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl$$anonfun$6.apply(ExecutionPlanImpl.scala:125) at org.neo4j.cypher.internal.executionplan.ExecutionPlanImpl.execute(ExecutionPlanImpl.scala:33) at org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:59) at org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:63) at org.neo4j.cypher.javacompat.ExecutionEngine.execute(ExecutionEngine.java:79)

注意:提供回報,而不是返回計數(報價)的作品

+0

我希望我能夠更多地讚揚這個 – Tyrsius 2013-04-22 20:21:52

+0

99%肯定這固定在1.9。 :( – 2013-04-22 22:08:21

+0

:-(Wes,我敢肯定你會提到它,但是有什麼解決方法?這是較大查詢中最小的部分,因此計算代碼中的優惠效果並不理想 – Luanne 2013-04-23 03:04:19

回答

0

升級到Neo4j 1.9 RC1並且問題不再存在

+0

解決方法1.8.2:將(offer) - [:VALID_OFFER] - >()移入match子句。 start merchant = node:merchants('id:10') match(merchant)< - [:VALID_AT] - ) - [:TARGET_PINCODE] - >(pincode)< - [:RESIDES_IN] - (customer),(offer) - [:VALID_OFFER] - >()WHERE offer.endDate> 1 return count(offer) – Luanne 2013-05-03 05:37:30