spmallette commented on code in PR #3458:
URL: https://github.com/apache/tinkerpop/pull/3458#discussion_r3443693938
##########
docs/src/upgrade/release-4.x.x.asciidoc:
##########
@@ -101,6 +70,51 @@ partial work is discarded if the user forgets to call
`commit()`. In Java (both
can still be overridden via `tx.onClose(Transaction.CLOSE_BEHAVIOR.COMMIT)`.
The non-Java GLVs do not support
configuring close behavior and always rollback.
+==== Expanding Dynamic Arguments to Additional Steps
+
+Prior to 4.0, comparing a traverser's value against a dynamically computed
reference required verbose workarounds with
+`where()`, `select()`, and labeled steps. For example, finding all people
older than "marko" previously required:
+
+[source,groovy]
+----
+// Old way: label marko's age, compare via where()
+g.V(1).values("age").as("markosAge").
+ V().hasLabel("person").as("p").
+ values("age").as("otherAge").
+ where("otherAge", gt("markosAge")).
+ select("p").values("name")
+----
+
+This pattern was unintuitive and could not easily compose with other
predicates. With traversal-accepting arguments,
+the same query becomes a single, readable step:
+
+[source,groovy]
+----
+// New way: traversal inside the predicate
+g.V().has("age", P.gt(__.V(1).values("age"))).values("name")
+----
+
+Steps and predicates that previously only accepted literal values now accept
child traversals resolved per-traverser
+at runtime. Affected steps: `has()`, `hasId()`, `hasKey()`, `hasLabel()`,
`hasValue()`, `V()`, `E()`, `property()`,
+`is()`, `where(P)`, and all `P` and `TextP` predicates.
+
+[source,groovy]
+----
+// Multi-source filtering with within()
+g.V().has("name", P.within(__.V(1).out("knows").values("name").fold(),
__.constant("peter")))
+
+// Set multiple properties from a computed Map
+g.V(4).property(__.V(1).project("friendCount").by(__.out("knows").count()))
+----
+
+See <<has-step,has()>>, <<v-step,V()>>, <<property-step,property()>>,
<<is-step,is()>>, and
Review Comment:
These should be linked as part of the "See:" below.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]