From 36aab705e569aae0b77b4407e87e91160c8db810 Mon Sep 17 00:00:00 2001 From: jimingquan Date: Tue, 19 Oct 2021 14:00:27 +0800 Subject: [PATCH] fix go mTOn filter bug --- src/graph/planner/ngql/GoPlanner.cpp | 2 +- tests/tck/features/go/GO.IntVid.feature | 16 ++++++++++++++++ tests/tck/features/go/GO.feature | 17 +++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/graph/planner/ngql/GoPlanner.cpp b/src/graph/planner/ngql/GoPlanner.cpp index fc0a38ddda3..aa747c2063d 100644 --- a/src/graph/planner/ngql/GoPlanner.cpp +++ b/src/graph/planner/ngql/GoPlanner.cpp @@ -504,7 +504,7 @@ SubPlan GoPlanner::mToNStepsPlan(SubPlan& startVidPlan) { } const auto& projectInput = - (joinInput || joinDst) ? loopBody->outputVar() : sampleLimit->outputVar(); + (loopBody != getDst) ? loopBody->outputVar() : sampleLimit->outputVar(); loopBody = Project::make(qctx, loopBody, goCtx_->yieldExpr); loopBody->setInputVar(projectInput); loopBody->setColNames(std::move(goCtx_->colNames)); diff --git a/tests/tck/features/go/GO.IntVid.feature b/tests/tck/features/go/GO.IntVid.feature index 1bb89bfca70..cf61ebef3cb 100644 --- a/tests/tck/features/go/GO.IntVid.feature +++ b/tests/tck/features/go/GO.IntVid.feature @@ -1434,6 +1434,22 @@ Feature: IntegerVid Go Sentence | EMPTY | "Russell Westbrook" | | EMPTY | "Luka Doncic" | | EMPTY | "Russell Westbrook" | + When executing query: + """ + go 1 to 4 steps from hash("Tim Duncan") over like where like.likeness > 90 yield like.likeness, edge as e + """ + Then the result should be, in any order, with relax comparison: + | like.likeness | e | + | 95 | [:like "Tim Duncan"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Tony Parker" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Tim Duncan" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Tony Parker" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Tim Duncan" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Tony Parker" @0 {likeness: 95}] | Scenario: Integer Vid error message When executing query: diff --git a/tests/tck/features/go/GO.feature b/tests/tck/features/go/GO.feature index 6f46375ec5e..708916d938b 100644 --- a/tests/tck/features/go/GO.feature +++ b/tests/tck/features/go/GO.feature @@ -2,6 +2,7 @@ # # This source code is licensed under Apache 2.0 License, # attached with Common Clause Condition 1.0, found in the LICENSES directory. +@jmq Feature: Go Sentence Background: @@ -1490,6 +1491,22 @@ Feature: Go Sentence | EMPTY | "Russell Westbrook" | | EMPTY | "Luka Doncic" | | EMPTY | "Russell Westbrook" | + When executing query: + """ + go 1 to 4 steps from "Tim Duncan" over like where like.likeness > 90 yield like.likeness, edge as e + """ + Then the result should be, in any order, with relax comparison: + | like.likeness | e | + | 95 | [:like "Tim Duncan"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Tony Parker" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Tim Duncan" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Tony Parker" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tony Parker"->"Tim Duncan" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Manu Ginobili" @0 {likeness: 95}] | + | 95 | [:like "Tim Duncan"->"Tony Parker" @0 {likeness: 95}] | Scenario: error message When executing query: