From 355db360fc444144f0bec059ac52e78ca7b0cac3 Mon Sep 17 00:00:00 2001 From: shirly121 Date: Sun, 4 Feb 2024 19:02:41 +0800 Subject: [PATCH 1/3] [GIE Compiler] fix bugs of group result --- .../gremlin/result/processor/AbstractResultProcessor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/result/processor/AbstractResultProcessor.java b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/result/processor/AbstractResultProcessor.java index 8785165f9015..1337830cd64a 100644 --- a/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/result/processor/AbstractResultProcessor.java +++ b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/result/processor/AbstractResultProcessor.java @@ -19,6 +19,7 @@ import com.alibaba.graphscope.common.config.QueryTimeoutConfig; import com.alibaba.graphscope.common.result.ResultParser; import com.alibaba.graphscope.gremlin.plugin.QueryStatusCallback; +import com.alibaba.graphscope.gremlin.result.GroupResultParser; import com.alibaba.pegasus.intf.ResultProcessor; import com.alibaba.pegasus.service.protocol.PegasusClient; @@ -82,7 +83,8 @@ public synchronized void process(PegasusClient.JobResponse response) { if (isContextWritable) { // send back a page of results if batch size is met and then reset the // resultCollectors - if (this.resultCollectors.size() >= this.resultCollectorsBatchSize) { + if (this.resultCollectors.size() >= this.resultCollectorsBatchSize + && !(resultParser instanceof GroupResultParser)) { aggregateResults(); writeResultList( writeResult, resultCollectors, ResponseStatusCode.PARTIAL_CONTENT); From 3e53c18b9b0de7674e1533fc2b49b55088653099 Mon Sep 17 00:00:00 2001 From: shirly121 Date: Sun, 4 Feb 2024 19:20:13 +0800 Subject: [PATCH 2/3] [GIE Compiler] add e2e test --- .../suite/pattern/PatternQueryTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java index 6f24cc46a240..f565eec26a80 100644 --- a/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java +++ b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java @@ -25,6 +25,8 @@ import org.junit.Assert; import org.junit.Test; +import java.util.Map; + public abstract class PatternQueryTest extends AbstractGremlinProcessTest { public abstract Traversal get_pattern_1_test(); @@ -60,6 +62,8 @@ public abstract class PatternQueryTest extends AbstractGremlinProcessTest { public abstract Traversal get_pattern_17_test(); + public abstract Traversal> get_g_V_limit_100_group_test(); + @Test public void run_pattern_1_test() { Traversal traversal = this.get_pattern_1_test(); @@ -179,6 +183,15 @@ public void run_pattern_17_test() { Assert.assertEquals(17367L, traversal.next().longValue()); } + @Test + public void run_g_V_limit_100_group_test() { + Traversal> traversal = this.get_g_V_limit_100_group_test(); + this.printTraversalForm(traversal); + Map map = traversal.next(); + Assert.assertEquals(100, map.size()); + Assert.assertFalse(traversal.hasNext()); + } + public static class Traversals extends PatternQueryTest { // PM1 @@ -386,5 +399,10 @@ public Traversal get_pattern_17_test() { .as("b")) .count(); } + + @Override + public Traversal> get_g_V_limit_100_group_test() { + return g.V().hasLabel("PERSON").limit(100).group().by("firstName").by(__.count()); + } } } From 6cfcd6b32ae0050d8368d87542ab0cbd82f4c5a4 Mon Sep 17 00:00:00 2001 From: shirly121 Date: Mon, 5 Feb 2024 15:20:30 +0800 Subject: [PATCH 3/3] [GIE Compiler] fix ci issue --- .../gremlin/integration/suite/pattern/PatternQueryTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java index f565eec26a80..91dd40b86747 100644 --- a/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java +++ b/interactive_engine/compiler/src/main/java/com/alibaba/graphscope/gremlin/integration/suite/pattern/PatternQueryTest.java @@ -402,7 +402,7 @@ public Traversal get_pattern_17_test() { @Override public Traversal> get_g_V_limit_100_group_test() { - return g.V().hasLabel("PERSON").limit(100).group().by("firstName").by(__.count()); + return g.V().hasLabel("PERSON").limit(100).group().by("id").by(__.count()); } } }