You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2024/11/19 16:25:33 UTC

(tinkerpop) 10/21: wip - fixed hasLabel(String, String...) for params

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch gvalue
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 088238ea3d9bcabc226c93b3cc77152205ae9a90
Author: Stephen Mallette <st...@amazon.com>
AuthorDate: Sun Aug 25 10:29:19 2024 -0400

    wip - fixed hasLabel(String, String...) for params
---
 .../language/grammar/TraversalMethodVisitor.java   |  2 +-
 .../gremlin/test/features/filter/HasLabel.feature  | 28 ++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
index 011a44cf53..43260c0d88 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/language/grammar/TraversalMethodVisitor.java
@@ -778,7 +778,7 @@ public class TraversalMethodVisitor extends TraversalRootVisitor<GraphTraversal>
             // since we normalized above to gvalue or literal we can just test the first arg for gvalue-ness
             if (GValue.valueInstanceOf(literalOrVar, GType.STRING)) {
                 final GValue[] gvalueLiteralOrVars = literalOrVars == null ? null : Arrays.stream(literalOrVars).map(o -> (GValue) o).toArray(GValue[]::new);
-                return graphTraversal.hasLabel((GValue) literalOrVar, (GValue[]) literalOrVars);
+                return graphTraversal.hasLabel((GValue) literalOrVar, (GValue[]) gvalueLiteralOrVars);
             } else {
                 // convert object array to string array
                 final String[] stringLiteralOrVars = literalOrVars == null ? null : Arrays.stream(literalOrVars).map(o -> (String) o).toArray(String[]::new);
diff --git a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
index 470019f36d..2da655e7e6 100644
--- a/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
+++ b/gremlin-test/src/main/resources/org/apache/tinkerpop/gremlin/test/features/filter/HasLabel.feature
@@ -87,6 +87,34 @@ Feature: Step - hasLabel()
     When iterated to list
     Then the result should be empty
 
+  Scenario: g_V_hasLabelXpersonvarX_hasLabelXsoftwareX
+    Given the modern graph
+    And using the parameter xx1 defined as "person"
+    And the traversal of
+    """
+    g.V().hasLabel(xx1).hasLabel("software")
+    """
+    When iterated to list
+    Then the result should be empty
+
+  Scenario: g_V_hasLabelXpersonvar_softwarevarX
+    Given the modern graph
+    And using the parameter xx1 defined as "person"
+    And using the parameter xx2 defined as "software"
+    And the traversal of
+    """
+    g.V().hasLabel(xx1,xx2)
+    """
+    When iterated to list
+    Then the result should be unordered
+      | result |
+      | v[marko] |
+      | v[vadas] |
+      | v[josh] |
+      | v[peter] |
+      | v[lop] |
+      | v[ripple] |
+
   Scenario: g_V_hasLabelXpersonX_hasXage_notXlteX10X_andXnotXbetweenX11_20XXXX_andXltX29X_orXeqX35XXXX_name
     Given the modern graph
     And the traversal of