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

ASF GitHub Bot commented on TINKERPOP-1330:
-------------------------------------------

Github user okram commented on the issue:

    https://github.com/apache/tinkerpop/pull/417
  
    @spmallette I updated `traversal-induced-values.asciidoc`. Wow -- 
`where().by()` is super powerful. That nested `where(select())`-clause you had 
in there was naaaasty. 
    
    Given how much easier some things are to express, I'm realizing that people 
will be wanting to use `where().by()`  more often than not and given that 
`where().by()` is a `PathProcessor` now, OLAP will not allow any `by()` beyond 
the element id! Eek. No fear, we have `PathProcessorStrategy` that knows how to 
"flatten" `select().by()` accordingly. With that, I think another ticket should 
provide two things:
    
    1. `PathProcessorStrategy` should be updated to support `where().by()` 
flattening.
    2. Create a new strategy called `WhereByMatchStrategy` which turns 
`where().by()` patterns into `match()`-steps. (@dkuppitz's idea)
    
    Now, if (1) above happens then (2) above won't do anything. Why would (1) 
happen, but not (2). The complexity of the `where()`-step's `by()`-clause. If 
the `by()` clause is within the bounds of the local star graph, then (1) will 
trigger. Else, it won't and (2) would trigger.  Next, we will have to see how 
these two strategies interact with `MatchPredicateStrategy` as this folds 
`where()`-clauses into `match()` to get the runtime optimizer benefits... Its 
all very complex :D 


> by()-modulation for where()
> ---------------------------
>
>                 Key: TINKERPOP-1330
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1330
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.2.1
>            Reporter: Daniel Kuppitz
>            Assignee: Marko A. Rodriguez
>
> As discussed in https://issues.apache.org/jira/browse/TINKERPOP-1329, it 
> would be nice to have {{by()}}-modulators for {{where()}}. For example:
> {code}
> g.V().as("a").out().where(gt("a")).by("age") // both a and current ages are 
> selected
> g.V().as("a").out().as("b").where("b",gt("a")).by("age") // both a and b ages 
> are selected
> g.V().as("a").out().as("b").where("b",gt("a")).by("age").by("weight") // 
> where b.age > a.weight
> {code}



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

Reply via email to