You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Marko A. Rodriguez (JIRA)" <ji...@apache.org> on 2015/06/02 17:09:17 UTC

[jira] [Closed] (TINKERPOP3-639) selectList

     [ https://issues.apache.org/jira/browse/TINKERPOP3-639?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marko A. Rodriguez closed TINKERPOP3-639.
-----------------------------------------
       Resolution: Won't Fix
    Fix Version/s: 3.0.0.GA
         Assignee: Marko A. Rodriguez

Given discussions, we will no longer do this.

> selectList
> ----------
>
>                 Key: TINKERPOP3-639
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-639
>             Project: TinkerPop 3
>          Issue Type: Improvement
>          Components: process
>            Reporter: Matt Frantz
>            Assignee: Marko A. Rodriguez
>             Fix For: 3.0.0.GA
>
>
> The current behavior of {{select}} is to produce a List if there are multiple steps in the path with the same label.  I would propose to add a new step {{selectList}} which always returns a list for each specified label (or a single list if there is a single label).  This list would contain a single element if there is only one step with a label.
> {code}
> <E2> GraphTraversal<S, List<E2> selectList(final String stepLabel);
> <E2> GraphTraversal<S, Map<String, List<E2>> selectList(final String... stepLabels)
> {code}
> Furthermore, the existing {{select}} step would be changed so that it always returns the value from the most recently traversed step with the specified label(s).  Its Java signature would not change, but it would no longer violate its contract, since it would not have a dynamic return type.
> The expected behavior of {{by}} when applied to {{selectList}} is that it would apply to the individual elements of the list.
> The expected behavior of {{where}} when applied to {{selectList}} is TBD.  Perhaps it should be disallowed until it can be designed thoughtfully.  Disabling it would be a more predictable behavior than today's {{select}} when it happens to return lists.  In such a case, {{where}} is likely to fail.  It is currently untested in that mode.
> The {{selectList}} step could have {{TraverserRequirement.PATH}}, using similar logic to the current {{SelectStep}} and {{SelectOneStep}}, although to be safe, it should always require {{PATH}}.
> The {{select}} step would be changed so that it never needs {{TraverserRequirement.PATH}}.
> This proposal makes the resolution of TINKERPOP3-618 more clear.
> The proposed steps would use the {{Path}} improvements associated with TINKERPOP3-549, specifically the {{getList}} and {{getLast}} API's.  In fact, we may want to drop {{Path.get}} in favor of {{Path.getLast}} to mirror the {{select}}/{{selectList}} duality.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)