You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2019/06/26 20:04:00 UTC

[jira] [Commented] (TINKERPOP-1553) Deprecate store() in favor of aggregate(Scope)

    [ https://issues.apache.org/jira/browse/TINKERPOP-1553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16873638#comment-16873638 ] 

stephen mallette commented on TINKERPOP-1553:
---------------------------------------------

It might be a bit odd, but I think that in the interest of keeping breaking changes to a minimum, we should perhaps use {{StoreStep}} in the new {{aggregate()}} step for {{Scope.local}}. In that way, we don't break any existing strategies that might be expecting {{StoreStep}}. In 3.5.0 we can simply rename it as discussed in the previous comment and take the breaking change.

> Deprecate store() in favor of aggregate(Scope)
> ----------------------------------------------
>
>                 Key: TINKERPOP-1553
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1553
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.2.3
>            Reporter: Marko A. Rodriguez
>            Assignee: stephen mallette
>            Priority: Major
>              Labels: deprecation
>
> `AggregateStep` can be expressed as `StoreStep.NoOpBarrierStep`. There is no reason to have the extra logic if we don't need it.
> That is:
> {code}
> aggregate('a') => store('a').barrier()
> {code}
> Next, we should get rid of {{aggregate()}} and have two methods:
> {code}
> store(global,'a') => store('a').barrier()
> store(local,'a') => store('a')
> {code}
> If you are storing global that means you are storing every traverser up to the current step. Likewise, store local would only store the current traverser.
> Here is the crappy thing. All of our {{xxx(Scope)}} steps default to {{Scope.global}}: {{range()}}, {{tail()}}, {{count()}}...
> We should probably keep the same pattern of {{Scope.global}} default, but then that means that we would have a breaking change in the API.
> {code}
> store("a") -would-change-to-> store(local,"a")
> {code}
> We should have a {{storeV3d0()}} backward compatibility which would simply use {{store(local,"a")}}. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)