[ https://issues.apache.org/jira/browse/TINKERPOP-2824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17695929#comment-17695929 ]
ASF GitHub Bot commented on TINKERPOP-2824: ------------------------------------------- Cole-Greer commented on code in PR #1843: URL: https://github.com/apache/tinkerpop/pull/1843#discussion_r1123865203 ########## docs/src/upgrade/release-3.7.x.asciidoc: ########## @@ -29,9 +29,73 @@ Please see the link:https://github.com/apache/tinkerpop/blob/3.7.0/CHANGELOG.asc === Upgrading for Users +==== Properties on Elements + +===== Introduction + +By default properties on Elements are now returned for OLTP requests. Gremlin Server 3.5 and 3.6 does not return properties by default. +More hitory details about serialization of properties can be found in the link:https://lists.apache.org/thread/xltcon4zxnwq4fyw2r2126syyrqm8spy[Stephen's post]. + +===== Behavior for OLAP queries + +Queries still won't return Properties on Elements. The main reason for this is performance considerations. +If you need to get a properties, then this can be explicitly configured with `HaltedTraverserStrategy` + +[source,java] +---- + g.withComputer().withStrategies(HaltedTraverserFactoryStrategy.detached()) +---- + +===== Output compare for Gremlin Server 3.5/3.6 and 3.7 + +Let's take a closer look at Javascript GLV code example in 3.6 and 3.7 + +[source,javascript] +---- + const client = new Client('ws://localhost:8182/gremlin',{traversalSource: 'gmodern'}); + await client.open(); + const result = await client.submit('g.V(1)'); + console.log(JSON.stringify(result.first())); + await client.close(); +---- + +The result will be different depending on the version of Gremlin Server. +For 3.5/3.6: +[source,json] +---- + {"id":1,"label":"person"} +---- + +For 3.7: +[source,json] +---- + {"id":1,"label":"person","properties":{"name":[{"id":0,"label":"name","value":"marko","key":"name"}],"age":[{"id":1,"label":"age","value":29,"key":"age"}]}} +-- > 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 > > 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)