Skip to content

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

@theKingEpic

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无法执行

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions