[jira] [Closed] (TINKERPOP-1388) Make ExpandableStepIterator non-final
[ https://issues.apache.org/jira/browse/TINKERPOP-1388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] stephen mallette closed TINKERPOP-1388. --- Resolution: Won't Do > Make ExpandableStepIterator non-final > - > > Key: TINKERPOP-1388 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1388 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.1.3 >Reporter: Matthias Broecheler >Assignee: Marko A. Rodriguez >Priority: Minor > > to allow TinkerPop implementations to extend it. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] stephen mallette updated TINKERPOP-1839: Component/s: server > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement > Components: server >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
[ https://issues.apache.org/jira/browse/TINKERPOP-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] David Pitera updated TINKERPOP-1839: Description: This question on StackOverflow https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 along with the fact that most language client's interact with the Gremlin Server through the use of a variable bound to a graph of traversal reference, i.e. `graph` is usually bound to a graph and `g` is usually bound to its traversal https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 mean that we need a way to bind these dynamically created graphs to the script executor. With JanusGraph's notion of dynamic graphs, there is no way to make use of the `withRemote()` functionality or make use of language clients demanding the traversal reference be bound to a variable. Therefore, we need a way to dynamically modify the global bindings on the gremlin script engine without having to restart the server. Note; I answered the original stack overflow question above, however I am pretty sure my answer is actually incorrect because the global binding will be evaluated once at server start and the evaluated references will be stored in the map and passed into the gremlin executor. Is this true? was: This question on StackOverflow https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 along with the fact that most language client's interact with the Gremlin Server through the use of a variable bound to a graph of traversal reference, i.e. `graph` is usually bound to a graph and `g` is usually bound to its traversal https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40. With JanusGraph's notion of dynamic graphs, there is no way to make use of the `withRemote()` functionality or make use of language clients demanding the traversal reference be bound to a variable. Therefore, we need a way to dynamically modify the global bindings on the gremlin script engine without having to restart the server. Note; I answered the original stack overflow question above, however I am pretty sure my answer is actually incorrect because the global binding will be evaluated once at server start and the evaluated references will be stored in the map and passed into the gremlin executor. Is this true? > We need a way to dynamically modify global bindings on the Gremlin Server. > -- > > Key: TINKERPOP-1839 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 > Project: TinkerPop > Issue Type: Improvement >Affects Versions: 3.2.6 >Reporter: David Pitera > > This question on StackOverflow > https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 > along with the fact that most language client's interact with the Gremlin > Server through the use of a variable bound to a graph of traversal reference, > i.e. `graph` is usually bound to a graph and `g` is usually bound to its > traversal > https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40 > mean that we need a way to bind these dynamically created graphs to the > script executor. > With JanusGraph's notion of dynamic graphs, there is no way to make use of > the `withRemote()` functionality or make use of language clients demanding > the traversal reference be bound to a variable. > Therefore, we need a way to dynamically modify the global bindings on the > gremlin script engine without having to restart the server. > Note; I answered the original stack overflow question above, however I am > pretty sure my answer is actually incorrect because the global binding will > be evaluated once at server start and the evaluated references will be stored > in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1834) Consider iterate() as a first class step
[ https://issues.apache.org/jira/browse/TINKERPOP-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257755#comment-16257755 ] ASF GitHub Bot commented on TINKERPOP-1834: --- Github user dkuppitz commented on the issue: https://github.com/apache/tinkerpop/pull/748 `filter(false)` == `not(identity())` > Consider iterate() as a first class step > > > Key: TINKERPOP-1834 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1834 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.6 >Reporter: stephen mallette >Assignee: Marko A. Rodriguez > > The {{iterate()}} terminator on a traversal returns no data. It simply > executes the traversal in full typically for the generation of side-effects. > Graph providers could optimize a traversal that is iterated should they be > able to detect that this method is called as they might avoid certain read > operations if the traversal is explicitly meant to just update the graph. > A possible solution for this would be some form of direct implementation of > an explicit {{IterateStep}} which providers could identify. Or perhaps, a > more generic {{NoOpStep}} would be better where the {{NoOpStep}} would > basically just be a marker with some meta-data tied to it (i.e. a {{Map}} of > arbitrary configuration options). In this case, the configuration options > would simply have an "iterate" value in it which the provider could interpret > if they could optimize based on that. Other solutions? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] tinkerpop issue #748: TINKERPOP-1834: Consider iterate() as a first class st...
Github user dkuppitz commented on the issue: https://github.com/apache/tinkerpop/pull/748 `filter(false)` == `not(identity())` ---
[jira] [Created] (TINKERPOP-1839) We need a way to dynamically modify global bindings on the Gremlin Server.
David Pitera created TINKERPOP-1839: --- Summary: We need a way to dynamically modify global bindings on the Gremlin Server. Key: TINKERPOP-1839 URL: https://issues.apache.org/jira/browse/TINKERPOP-1839 Project: TinkerPop Issue Type: Improvement Affects Versions: 3.2.6 Reporter: David Pitera This question on StackOverflow https://stackoverflow.com/questions/47342524/how-to-traverse-graph-created-using-configuredplanfactory-in-janusgraph/47354728?noredirect=1#comment81670711_47354728 along with the fact that most language client's interact with the Gremlin Server through the use of a variable bound to a graph of traversal reference, i.e. `graph` is usually bound to a graph and `g` is usually bound to its traversal https://github.com/apache/tinkerpop/blob/master/gremlin-server/scripts/empty-sample.groovy#L40. With JanusGraph's notion of dynamic graphs, there is no way to make use of the `withRemote()` functionality or make use of language clients demanding the traversal reference be bound to a variable. Therefore, we need a way to dynamically modify the global bindings on the gremlin script engine without having to restart the server. Note; I answered the original stack overflow question above, however I am pretty sure my answer is actually incorrect because the global binding will be evaluated once at server start and the evaluated references will be stored in the map and passed into the gremlin executor. Is this true? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1834) Consider iterate() as a first class step
[ https://issues.apache.org/jira/browse/TINKERPOP-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257481#comment-16257481 ] ASF GitHub Bot commented on TINKERPOP-1834: --- Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/748 oh`filter(false)` referred to adding a `FilterStep` to the end of the traversal basically that didn't allow any traversers through. Of course, a provider writing a `TraversalStrategy` wouldn't be able to detect "false" if you use the a lambda in `filter()`, so the provider couldn't optimize properly. Are you thinking something else here? > Consider iterate() as a first class step > > > Key: TINKERPOP-1834 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1834 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.6 >Reporter: stephen mallette >Assignee: Marko A. Rodriguez > > The {{iterate()}} terminator on a traversal returns no data. It simply > executes the traversal in full typically for the generation of side-effects. > Graph providers could optimize a traversal that is iterated should they be > able to detect that this method is called as they might avoid certain read > operations if the traversal is explicitly meant to just update the graph. > A possible solution for this would be some form of direct implementation of > an explicit {{IterateStep}} which providers could identify. Or perhaps, a > more generic {{NoOpStep}} would be better where the {{NoOpStep}} would > basically just be a marker with some meta-data tied to it (i.e. a {{Map}} of > arbitrary configuration options). In this case, the configuration options > would simply have an "iterate" value in it which the provider could interpret > if they could optimize based on that. Other solutions? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] tinkerpop issue #748: TINKERPOP-1834: Consider iterate() as a first class st...
Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/748 oh`filter(false)` referred to adding a `FilterStep` to the end of the traversal basically that didn't allow any traversers through. Of course, a provider writing a `TraversalStrategy` wouldn't be able to detect "false" if you use the a lambda in `filter()`, so the provider couldn't optimize properly. Are you thinking something else here? ---
[jira] [Commented] (TINKERPOP-1834) Consider iterate() as a first class step
[ https://issues.apache.org/jira/browse/TINKERPOP-1834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257450#comment-16257450 ] ASF GitHub Bot commented on TINKERPOP-1834: --- Github user okram commented on the issue: https://github.com/apache/tinkerpop/pull/748 There is nothing for "the server" to know. Thus, gutting the introspection. By appending `filter(false)` to the bytecode, you have a traversal that returns nothing. Which is exactly what you want. No need for the receiving/executing engine to reason about anything. A 3-line change to `iterate()` would do the trick. > Consider iterate() as a first class step > > > Key: TINKERPOP-1834 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1834 > Project: TinkerPop > Issue Type: Improvement > Components: process >Affects Versions: 3.2.6 >Reporter: stephen mallette >Assignee: Marko A. Rodriguez > > The {{iterate()}} terminator on a traversal returns no data. It simply > executes the traversal in full typically for the generation of side-effects. > Graph providers could optimize a traversal that is iterated should they be > able to detect that this method is called as they might avoid certain read > operations if the traversal is explicitly meant to just update the graph. > A possible solution for this would be some form of direct implementation of > an explicit {{IterateStep}} which providers could identify. Or perhaps, a > more generic {{NoOpStep}} would be better where the {{NoOpStep}} would > basically just be a marker with some meta-data tied to it (i.e. a {{Map}} of > arbitrary configuration options). In this case, the configuration options > would simply have an "iterate" value in it which the provider could interpret > if they could optimize based on that. Other solutions? -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] tinkerpop issue #748: TINKERPOP-1834: Consider iterate() as a first class st...
Github user okram commented on the issue: https://github.com/apache/tinkerpop/pull/748 There is nothing for "the server" to know. Thus, gutting the introspection. By appending `filter(false)` to the bytecode, you have a traversal that returns nothing. Which is exactly what you want. No need for the receiving/executing engine to reason about anything. A 3-line change to `iterate()` would do the trick. ---
[jira] [Assigned] (TINKERPOP-1832) TraversalHelper.replaceStep sets previousStep to the wrong step
[ https://issues.apache.org/jira/browse/TINKERPOP-1832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] stephen mallette reassigned TINKERPOP-1832: --- Assignee: Daniel Kuppitz [~pietermartin] did you intend to come back to submit a pull request for this? > TraversalHelper.replaceStep sets previousStep to the wrong step > --- > > Key: TINKERPOP-1832 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1832 > Project: TinkerPop > Issue Type: Bug > Components: process >Affects Versions: 3.3.0 >Reporter: pieter martin >Assignee: Daniel Kuppitz > > The bug is described over > [here|http://mail-archives.apache.org/mod_mbox/tinkerpop-dev/201710.mbox/browser] > I have tested [~dkuppitz] fix for it and all seems well. > {code:java} > public staticvoid replaceStep(final StepremoveStep, final > StepinsertStep, final Traversal.Admin traversal) { > final int i; > traversal.removeStep(i = stepIndex(removeStep, traversal)); > traversal.addStep(i, insertStep); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (TINKERPOP-1838) Python sample project
stephen mallette created TINKERPOP-1838: --- Summary: Python sample project Key: TINKERPOP-1838 URL: https://issues.apache.org/jira/browse/TINKERPOP-1838 Project: TinkerPop Issue Type: Improvement Components: python Affects Versions: 3.2.6 Reporter: stephen mallette Priority: Minor Create a sample project that can help get users started with Python and Gremlin. Should probably be added to the series of gremlin-archetype projects.Not sure what this might look like but just trying to be consistent in the availability of sample projects. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite
[ https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257371#comment-16257371 ] ASF GitHub Bot commented on TINKERPOP-1784: --- Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/747 @jorgebay On which OS do you get the test errors? > Gremlin Language Test Suite > --- > > Key: TINKERPOP-1784 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1784 > Project: TinkerPop > Issue Type: Improvement > Components: test-suite >Affects Versions: 3.2.6 >Reporter: stephen mallette >Assignee: stephen mallette > > Provide for a more language agnostic test framework for the Gremlin Language > so that we can properly test GLVs. The current test suite is completely tied > to the JVM. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] tinkerpop issue #747: TINKERPOP-1784 GLV Test Framework
Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/747 @jorgebay On which OS do you get the test errors? ---
[GitHub] tinkerpop issue #749: Tinkerpop 1807 Gremlin-Python doesn't support GraphSON...
Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/749 VOTE +1 ---
[GitHub] tinkerpop issue #749: Tinkerpop 1807 Gremlin-Python doesn't support GraphSON...
Github user davebshow commented on the issue: https://github.com/apache/tinkerpop/pull/749 Done. VOTE +1 ---
[jira] [Commented] (TINKERPOP-1835) Bump Netty 4.0.53
[ https://issues.apache.org/jira/browse/TINKERPOP-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257171#comment-16257171 ] ASF GitHub Bot commented on TINKERPOP-1835: --- Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/750 [INFO] [INFO] BUILD SUCCESS [INFO] [INFO] Total time: 3:37:17.957s [INFO] Finished at: Fri Nov 17 16:16:11 UTC 2017 [INFO] Final Memory: 170M/1088M [INFO] VOTE +1 > Bump Netty 4.0.53 > - > > Key: TINKERPOP-1835 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1835 > Project: TinkerPop > Issue Type: Improvement > Components: driver, server >Affects Versions: 3.3.0, 3.2.6 >Reporter: Robert Dale >Assignee: Robert Dale > > https://netty.io/news/2017/11/08/4-0-53-Final-4-1-17-Final.html > The most important changes for 4.0.53.Final and 4.1.17.Final are: > * OpenSslEngine support unwrap plaintext greater than 214 and avoid infinite > loop (#7352) > * java.lang.NullPointerException: ssl at > ReferenceCountedOpenSslEngine.rejectRemoteInitiatedRenegotiation (#7353) > * Don't disable HttpObjectDecoder on upgrade from HTTP/1.x to HTTP/1.x over > TLS (#7298) > * Support running Netty (in particular netty-tcnative) in the bootstrap class > loader (#7345) > * SslHandler.setHandshakeTimeout*(...) should also been enforced on the > server (#7277) > * ResourceLeakDetector sampling changes (#7232) > * Do not treat errors as decoder exception (redux) (#7279) > * Do not treat errors as decoder exception (#7276) > * Propagate all exceptions when loading native code (#7250) > * Optimistically update ref counts (#7248) > * Fix Java9SslEngine implementation of ApplicationProtocolAccessor and so fix > ApplicationProtocolNegationHandler (#7258) > * Upgrade Conscrypt to 1.0.0.RC11 (#7235) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] tinkerpop issue #750: TINKERPOP-1835 Bump Netty 4.0.53
Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/750 [INFO] [INFO] BUILD SUCCESS [INFO] [INFO] Total time: 3:37:17.957s [INFO] Finished at: Fri Nov 17 16:16:11 UTC 2017 [INFO] Final Memory: 170M/1088M [INFO] VOTE +1 ---
[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite
[ https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257126#comment-16257126 ] ASF GitHub Bot commented on TINKERPOP-1784: --- Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/747 yeah - i'm just realizing how i flubbed a bunch of things on the last commit. i was so focused on your .net problems i only ran tests for .net :disappointed: > Gremlin Language Test Suite > --- > > Key: TINKERPOP-1784 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1784 > Project: TinkerPop > Issue Type: Improvement > Components: test-suite >Affects Versions: 3.2.6 >Reporter: stephen mallette >Assignee: stephen mallette > > Provide for a more language agnostic test framework for the Gremlin Language > so that we can properly test GLVs. The current test suite is completely tied > to the JVM. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] tinkerpop issue #747: TINKERPOP-1784 GLV Test Framework
Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/747 yeah - i'm just realizing how i flubbed a bunch of things on the last commit. i was so focused on your .net problems i only ran tests for .net :disappointed: ---
[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite
[ https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257081#comment-16257081 ] ASF GitHub Bot commented on TINKERPOP-1784: --- Github user jorgebay commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/747#discussion_r151703665 --- Diff: gremlin-test/features/map/Min.feature --- @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +Feature: Step - min() + + Scenario: g_V_age_min +Given the modern graph +And the traversal of + """ + g.V().values("age").min() + """ +When iterated to list +Then the result should be unordered + | result | + | d[27].i | + + Scenario: g_V_repeatXbothX_timesX5X_age_min +Given the modern graph +And the traversal of + """ + g.V().repeat(__.both()).times(5).values("age").min() + """ +When iterated to list +Then the result should be unordered + | result | + | d[27].i | + + Scenario: g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX +Given the modern graph +And the traversal of + """ + g.V().hasLabel("software").group().by("name").by(__.bothE().values("weight").min()) + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"ripple":"d[1.0].d","lop":"d[0.2]d"}] | --- End diff -- Typo: should be `"d[0.2].d"` > Gremlin Language Test Suite > --- > > Key: TINKERPOP-1784 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1784 > Project: TinkerPop > Issue Type: Improvement > Components: test-suite >Affects Versions: 3.2.6 >Reporter: stephen mallette >Assignee: stephen mallette > > Provide for a more language agnostic test framework for the Gremlin Language > so that we can properly test GLVs. The current test suite is completely tied > to the JVM. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] tinkerpop pull request #747: TINKERPOP-1784 GLV Test Framework
Github user jorgebay commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/747#discussion_r151703665 --- Diff: gremlin-test/features/map/Min.feature --- @@ -0,0 +1,51 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +Feature: Step - min() + + Scenario: g_V_age_min +Given the modern graph +And the traversal of + """ + g.V().values("age").min() + """ +When iterated to list +Then the result should be unordered + | result | + | d[27].i | + + Scenario: g_V_repeatXbothX_timesX5X_age_min +Given the modern graph +And the traversal of + """ + g.V().repeat(__.both()).times(5).values("age").min() + """ +When iterated to list +Then the result should be unordered + | result | + | d[27].i | + + Scenario: g_V_hasLabelXsoftwareX_group_byXnameX_byXbothE_weight_minX +Given the modern graph +And the traversal of + """ + g.V().hasLabel("software").group().by("name").by(__.bothE().values("weight").min()) + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"ripple":"d[1.0].d","lop":"d[0.2]d"}] | --- End diff -- Typo: should be `"d[0.2].d"` ---
[jira] [Commented] (TINKERPOP-1784) Gremlin Language Test Suite
[ https://issues.apache.org/jira/browse/TINKERPOP-1784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16257038#comment-16257038 ] ASF GitHub Bot commented on TINKERPOP-1784: --- Github user jorgebay commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/747#discussion_r151698077 --- Diff: gremlin-test/features/sideEffect/Group.feature --- @@ -0,0 +1,244 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +Feature: Step - group() + + Scenario: g_V_group_byXnameX +Given the modern graph +And the traversal of + """ + g.V().group().by("name") + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"ripple":"l[v[ripple]]", "peter":"l[v[peter]]", "vadas":"l[v[vadas]]", "josh": "l[v[josh]]", "lop":"l[v[lop]]", "marko":"l[v[marko]]"}] | + + Scenario: g_V_group_byXnameX_by +Given the modern graph +And the traversal of + """ + g.V().group().by("name").by() + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"ripple":"l[v[ripple]]", "peter":"l[v[peter]]", "vadas":"l[v[vadas]]", "josh": "l[v[josh]]", "lop":"l[v[lop]]", "marko":"l[v[marko]]"}] | + + Scenario: g_V_groupXaX_byXnameX_capXaX +Given the modern graph +And the traversal of + """ + g.V().group("a").by("name").cap("a") + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"ripple":"l[v[ripple]]", "peter":"l[v[peter]]", "vadas":"l[v[vadas]]", "josh": "l[v[josh]]", "lop":"l[v[lop]]", "marko":"l[v[marko]]"}] | + + Scenario: g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX +Given the modern graph +And the traversal of + """ + g.V().has("lang").group("a").by("lang").by("name").out().cap("a") + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"java":["lop","ripple"]}] | + + Scenario: g_V_hasXlangX_group_byXlangX_byXcountX +Given the modern graph +And the traversal of + """ + g.V().has("lang").group().by("lang").by(__.count()) + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"java":"d[2].l"}] | + + Scenario: g_V_repeatXout_groupXaX_byXnameX_byXcountX_timesX2X_capXaX +Given the modern graph +And the traversal of + """ + g.V().repeat(__.out().group("a").by("name").by(__.count())).times(2).cap("a") + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"ripple":"d[2].l", "vadas":"d[1].l", "josh":"d[1].l", "lop":"d[4].l"}] | + + Scenario: g_V_group_byXoutE_countX_byXnameX +Given an unsupported test +Then nothing should happen because + """ + The result returned is not supported under GraphSON 2.x and therefore cannot be properly asserted. More + specifically it has numeric keys which basically get toString()'d under GraphSON 2.x. This test can be supported + with GraphSON 3.x. + """ + + Scenario: g_V_groupXaX_byXlabelX_byXoutE_weight_sumX_capXaX +Given the modern graph +And the traversal of + """ + g.V().group("a").by(T.label).by(__.outE().values("weight").sum()).cap("a") + """ +When iterated to list +Then the result should be unordered + | result | + | m[{"software":"d[0].i", "person":"d[3.5].d}] | --- End diff -- Typo `"d[3.5].d"` > Gremlin Language Test Suite > --- > > Key: TINKERPOP-1784 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1784 > Project: TinkerPop > Issue Type:
[jira] [Created] (TINKERPOP-1837) Gremlin .NET: Provide type coercion between IDictionary<K, V> instances
Jorge Bay created TINKERPOP-1837: Summary: Gremlin .NET: Provide type coercion between IDictionaryinstances Key: TINKERPOP-1837 URL: https://issues.apache.org/jira/browse/TINKERPOP-1837 Project: TinkerPop Issue Type: Improvement Components: dotnet Affects Versions: 3.2.6, 3.3.0 Reporter: Jorge Bay Fix For: 3.2.7, 3.3.1 As [described on the mailing list|https://lists.apache.org/thread.html/368c4aa3b37ef9628a3af612aece93fe9ca1914e3b3393e7e2e9fbdd@%3Cdev.tinkerpop.apache.org%3E], the limitation for of the specification combined with the strictness of .NET generics, makes dealing with maps on the .NET GLV hard / impossible. All methods returning a map have this issue, as in the following example: {code} IDictionary result = g.V().ValueMap ("age").Next(); {code} Causes an exception at runtime: {code} System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.Object,System.Object]' to type 'System.Collections.Generic.IDictionary`2[System.String,System.Collections.Generic.IList`2[System.Int32]]'. {code} We should provide conversion mechanism inside the default traversal. -- This message was sent by Atlassian JIRA (v6.4.14#64029)