Skip to content

[BUG] IC14无法用Cypher执行 #4639

Description

@theKingEpic

执行查询文件: ic14.cypher

查询内容:
MATCH all ShortestPath((person1:PERSON { id: 32985348834605L })-[path:KNOWS0..]-(person2:PERSON { id: 4398046511592L }))
WITH path, gs.function.relationships(path) as rels_in_path
UNWIND rels_in_path as rel
WITH path, gs.function.startNode(rel) as rel0, gs.function.endNode(rel) as rel1
OPTIONAL MATCH (rel0:PERSON)<-[:HASCREATOR]-(n)-[:REPLYOF]-(m)-[:HASCREATOR]->(rel1:PERSON)
With path,
CASE WHEN labels(m) = labels(n) OR n is null THEN 0 ELSE 1 END as ra,
CASE WHEN labels(m) <> labels(n) OR n is null THEN 0 ELSE 1 END as rb
With path, gs.function.nodes(path) as nodes_in_path, SUM(ra) AS weight1Count, SUM(rb) as weight2Count
UNWIND nodes_in_path as node
WITH path, COLLECT(node.id) as personIdsInPath, weight1Count, weight2Count
RETURN personIdsInPath, (weight1Count + gs.function.toFloat(weight2Count) / 2) AS pathWeight
ORDER BY pathWeight DESC;

查询执行失败: {code: Neo.DatabaseError.General.UnknownError} {message: com.google.common.util.concurrent.UncheckedExecutionException: com.alibaba.graphscope.common.exception.FrontendException: ErrorCode: LOGICAL_PLAN_BUILD_FAILED
Message: can not estimate row count for the node=rel#10344:GraphLogicalUnfold.(input=GraphLogicalProject#10342,key=rels_in_path,alias=rel)
EC: 03-0106
stacktrace: java.lang.IllegalArgumentException: can not estimate row count for the node=rel#10344:GraphLogicalUnfold.(input=GraphLogicalProject#10342,key=rels_in_path,alias=rel)
at com.alibaba.graphscope.common.ir.meta.glogue.calcite.handler.GraphRowCountHandler.getRowCount(GraphRowCountHandler.java:225)
at org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:258)
at org.apache.calcite.rel.AbstractRelNode.computeSelfCost(AbstractRelNode.java:232)
at com.alibaba.graphscope.common.ir.meta.glogue.calcite.handler.GraphNonCumulativeCostHandler.getNonCumulativeCost(GraphNonCumulativeCostHandler.java:92)
at org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMetadataQuery.java:331)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:62)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.planner.volcano.VolcanoPlannerX.getCost(VolcanoPlannerX.java:56)
at com.alibaba.graphscope.common.ir.tools.GraphPlanner$PlannerInstance.planLogical(GraphPlanner.java:177)
at com.alibaba.graphscope.common.ir.tools.GraphPlanner$PlannerInstance.lambda$plan$0(GraphPlanner.java:151)
at com.alibaba.graphscope.common.utils.ClassUtils.callExceptionWithDetails(ClassUtils.java:54)
at com.alibaba.graphscope.common.utils.ClassUtils.callException(ClassUtils.java:48)
at com.alibaba.graphscope.common.ir.tools.GraphPlanner$PlannerInstance.plan(GraphPlanner.java:151)
at com.alibaba.graphscope.common.ir.tools.QueryCache.lambda$new$0(QueryCache.java:52)
at com.google.common.cache.CacheLoader$FunctionToCacheLoader.load(CacheLoader.java:169)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
at com.alibaba.graphscope.common.ir.tools.QueryCache.get(QueryCache.java:124)
at com.alibaba.graphscope.cypher.executor.GraphQueryExecutor.run(GraphQueryExecutor.java:146)
at org.neo4j.fabric.bolt.BoltFabricDatabaseService$BoltTransactionImpl.executeQuery(BoltFabricDatabaseService.java:186)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractTransactionStateMachineSPI$AbstractBoltResultHandle.start(AbstractTransactionStateMachineSPI.java:128)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State.startExecution(TransactionStateMachine.java:530)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$1.run(TransactionStateMachine.java:213)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine.run(TransactionStateMachine.java:89)
at org.neo4j.bolt.transaction.StatementProcessorTxManager.runProgram(StatementProcessorTxManager.java:103)
at org.neo4j.bolt.v4.runtime.ReadyState.processRunMessage(ReadyState.java:80)
at org.neo4j.bolt.v44.runtime.ReadyState.processRunMessage(ReadyState.java:93)
at org.neo4j.bolt.v3.runtime.ReadyState.processUnsafe(ReadyState.java:62)
at org.neo4j.bolt.v4.runtime.ReadyState.processUnsafe(ReadyState.java:53)
at org.neo4j.bolt.v43.runtime.ReadyState.processUnsafe(ReadyState.java:56)
at org.neo4j.bolt.v44.runtime.ReadyState.processUnsafe(ReadyState.java:48)
at org.neo4j.bolt.v3.runtime.FailSafeBoltStateMachineState.process(FailSafeBoltStateMachineState.java:48)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:154)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:102)
at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:93)
at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:156)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:252)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:187)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:177)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:257)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:240)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)

}

IC14无法执行

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions