You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Matt Frantz (JIRA)" <ji...@apache.org> on 2015/09/25 19:04:04 UTC

[jira] [Commented] (TINKERPOP3-854) Remove PropertyMapStep in favor of multi-instruction construction.

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

Matt Frantz commented on TINKERPOP3-854:
----------------------------------------

This is not purely a drop-in replacement, as the local barrier destroys path information.  (See TINKERPOP3-781)

{noformat}
gremlin> g.V().propertyMap().path()
==>[v[1], {name=[vp[name->marko]], age=[vp[age->29]]}]
==>[v[2], {name=[vp[name->vadas]], age=[vp[age->27]]}]
==>[v[3], {name=[vp[name->lop]], lang=[vp[lang->java]]}]
==>[v[4], {name=[vp[name->josh]], age=[vp[age->32]]}]
==>[v[5], {name=[vp[name->ripple]], lang=[vp[lang->java]]}]
==>[v[6], {name=[vp[name->peter]], age=[vp[age->35]]}]
gremlin> g.V().local(properties().group().by(key).by()).path()
==>[{name={vp[name->marko]=1}, age={vp[age->29]=1}}]
==>[{name={vp[name->vadas]=1}, age={vp[age->27]=1}}]
==>[{name={vp[name->lop]=1}, lang={vp[lang->java]=1}}]
==>[{name={vp[name->josh]=1}, age={vp[age->32]=1}}]
==>[{name={vp[name->ripple]=1}, lang={vp[lang->java]=1}}]
==>[{name={vp[name->peter]=1}, age={vp[age->35]=1}}]
{noformat}

Any thoughts about creating a DSL with derivative steps such as {{propertyMap}}?  As we attempt to condense the fundamental instruction set, what is the vehicle for higher level steps that might, for some vendors, provide other opportunities for optimization?

> Remove PropertyMapStep in favor of multi-instruction construction.
> ------------------------------------------------------------------
>
>                 Key: TINKERPOP3-854
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-854
>             Project: TinkerPop 3
>          Issue Type: Improvement
>            Reporter: Marko A. Rodriguez
>             Fix For: 3.1.0-incubating
>
>
> {code}
> gremlin> g.V().valueMap()
> ==>[name:[marko], age:[29]]
> ==>[name:[vadas], age:[27]]
> ==>[name:[lop], lang:[java]]
> ==>[name:[josh], age:[32]]
> ==>[name:[ripple], lang:[java]]
> ==>[name:[peter], age:[35]]
> gremlin> g.V().local(properties().group().by(key).by(value))
> ==>[name:[marko], age:[29]]
> ==>[name:[vadas], age:[27]]
> ==>[name:[lop], lang:[java]]
> ==>[name:[josh], age:[32]]
> ==>[name:[ripple], lang:[java]]
> ==>[name:[peter], age:[35]]
> {code}
> ...and I checked it works for multi-properties.
> {code}
> gremlin> g.V().propertyMap()
> ==>[name:[vp[name->marko]], age:[vp[age->29]]]
> ==>[name:[vp[name->vadas]], age:[vp[age->27]]]
> ==>[name:[vp[name->lop]], lang:[vp[lang->java]]]
> ==>[name:[vp[name->josh]], age:[vp[age->32]]]
> ==>[name:[vp[name->ripple]], lang:[vp[lang->java]]]
> ==>[name:[vp[name->peter]], age:[vp[age->35]]]
> gremlin> g.V().local(properties().group().by(key).by())
> ==>[name:[vp[name->marko]], age:[vp[age->29]]]
> ==>[name:[vp[name->vadas]], age:[vp[age->27]]]
> ==>[name:[vp[name->lop]], lang:[vp[lang->java]]]
> ==>[name:[vp[name->josh]], age:[vp[age->32]]]
> ==>[name:[vp[name->ripple]], lang:[vp[lang->java]]]
> ==>[name:[vp[name->peter]], age:[vp[age->35]]]
> {code}
> We should do some performance checking and as long as its reasonably the same speed, drop {{PropertyMapStep}}.



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