Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[BUG] IC14无法用Cypher执行

Aperta
#4,639 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
30/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
cpp, java
Ambito
databases

Direzione di ricerca

La query che fallisce è ic14.cypher; inizia riproducendola e ispeziona GraphRowCountHandler.java alla riga 225, dove lo stack trace segnala un errore nella stima del numero di righe di GraphLogicalUnfold. Traccia la pianificazione attraverso GraphPlanner.java e QueryCache.java. Il lavoro è completato quando la query Cypher IC14 viene eseguita senza LOGICAL_PLAN_BUILD_FAILED.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

stale

执行查询文件: 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无法执行

Lingua principale
C++
Stelle
3.6k
Fork
470
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di alibaba/GraphScope

Tutte le issue di alibaba/GraphScope

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.