[ https://issues.apache.org/jira/browse/TINKERPOP-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17630542#comment-17630542 ]
ASF GitHub Bot commented on TINKERPOP-2824: ------------------------------------------- vkagamlyk commented on code in PR #1843: URL: https://github.com/apache/tinkerpop/pull/1843#discussion_r1016933749 ########## docs/src/reference/the-traversal.asciidoc: ########## @@ -4916,6 +4916,28 @@ g.V().hasLabel('person'). <1> <8> `PathRetractionStrategy` will remove paths from the traversers and increase the likelihood of bulking as path data is not required after `select('b')`. <9> `AdjacentToIncidentStrategy` will turn `out()` into `outE()` to increase data access locality. +=== DetachStrategy + +`DetachStrategy` manages the fields that will be included in the result. The strategy adds a step to the end of the traversal +and does not affect the previous steps. +There are 3 options for detachMode: `ALL` for all properties, `NONE` for no properties, `CUSTOM` for a specific list of properties. +`id` and `label` always included in response. +Same for Vertexes and Edges. + +WARNING: by default Gremlin Server configured to use `ReferenceElementStrategy` which removes all properties. Review Comment: 1. The result will be Vertex without properties. I don't think it makes sense to use them at the same time. 2. I think `ReferenceElementStrategy` may be deprecated in 3.7. There are some small differences between ReferenceElement and DetachedElement that need to be aligned before. For example https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/reference/ReferenceElement.java#L50 and https://github.com/apache/tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedElement.java#L49 3. I consider default may be `DetachStrategy` configured to skip properties. I think users who want to get properties can remove the strategy from server startup or use it from the client when needed. Most current users don't expect to get properties and it doesn't make sense to load the server and network. Another option is to remove `ReferenceElementStrategy` and allow users to choose the settings themselves, with the recommendation to skip properties by default. > Properties on Elements > ---------------------- > > Key: TINKERPOP-2824 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2824 > Project: TinkerPop > Issue Type: Improvement > Components: dotnet, driver, go, javascript, process, python > Affects Versions: 3.5.4 > Reporter: Valentyn Kahamlyk > Assignee: Valentyn Kahamlyk > Priority: Major > Fix For: 3.7.0 > > > Problem: When a user writes `g.V()` they get back a Vertex object. The > problem is that depending on the execution context of the traversal, the > result could be quite different, with or without properties. > Solution: Implement new finalization strategy DetachStrategy(detachMode, > properties) where mode is one of ALL, NONE or CUSTOM. `properties` is list of > properties name, are taken into account only for CUSTOM mode. > Discussion thread in dev list: [Proposal to handle properties on response > Elements-Apache Mail > Archives|https://lists.apache.org/thread/l8rw7ydj7kym8vhtwk50nhbp45ng9986] > Stephen's thread in dev list: [The Issue of Detachment-Apache Mail > Archives|https://lists.apache.org/thread/xltcon4zxnwq4fyw2r2126syyrqm8spy] -- This message was sent by Atlassian Jira (v8.20.10#820010)