@@ -23,6 +23,42 @@ image::gremlin-zamfir.png[width=185]
2323
2424*Gremfir Master of the Pan Flute*
2525
26+ == TinkerPop 3.7.7
27+
28+ *Release Date: NOT OFFICIALLY RELEASED YET*
29+
30+ Please see the link:https://github.com/apache/tinkerpop/blob/3.7.7/CHANGELOG.asciidoc#release-3-7-7[changelog] for a
31+ complete list of all the modifications that are part of this release.
32+
33+ === Upgrading for Users
34+
35+ ==== conjoin() Step Null Handling
36+
37+ The `conjoin()` step previously returned `null` when elements in the incoming list are `null`. This behavior has
38+ been changed so that `conjoin()` now returns an empty string (`""`) in that case.
39+
40+ [source,groovy]
41+ ----
42+ // 3.7.6
43+ gremlin> g.inject([null]).conjoin("-")
44+ ==>null
45+ gremlin> g.inject([null, null]).conjoin("-")
46+ ==>null
47+
48+ // 3.7.7
49+ gremlin> g.inject([null]).conjoin("+")
50+ ==>
51+ gremlin> g.inject([null, null]).conjoin("+")
52+ ==>
53+ ----
54+
55+ Code that checks the result of `conjoin()` for lists that include `null` elements should be updated to check for
56+ an empty string instead.
57+
58+ See: link:https://issues.apache.org/jira/browse/TINKERPOP-3225[TINKERPOP-3225]
59+
60+
61+
2662== TinkerPop 3.7.6
2763
2864*Release Date: April 1, 2026*
@@ -122,13 +158,13 @@ opens a session, submits one or more `addV()` operations, commits, and closes th
122158The benchmark varies the following parameters:
123159
124160* *Concurrent clients* (`threads`): The number of threads issuing transactions simultaneously. A value of 1 means
125- transactions are executed sequentially by a single client. Higher values simulate multiple application threads or
126- service instances issuing transactions concurrently against the same server.
161+ transactions are executed sequentially by a single client. Higher values simulate multiple application threads or
162+ service instances issuing transactions concurrently against the same server.
127163* *Connection pool size* (`pool`): The number of WebSocket connections maintained in the pool when
128- `reuseConnectionsForSessions` is enabled. When reuse is disabled, each session creates its own dedicated connection
129- and this parameter does not apply (shown as `n/a`).
164+ `reuseConnectionsForSessions` is enabled. When reuse is disabled, each session creates its own dedicated connection
165+ and this parameter does not apply (shown as `n/a`).
130166* *Transaction weight* (`weight`): "light" transactions perform a single `addV()` plus commit. "heavy" transactions
131- perform ten `addV()` operations plus commit, simulating a more substantial unit of work per transaction.
167+ perform ten `addV()` operations plus commit, simulating a more substantial unit of work per transaction.
132168
133169Tests were conducted both locally (client and server on the same machine) and remotely (client on the US west coast,
134170server on the US east coast) to isolate the effect of network latency on connection setup overhead. Each scenario
@@ -1001,7 +1037,7 @@ For 3.7:
10011037[source,json]
10021038----
10031039{"id":1,"label":"person","properties":{"name":[{"id":0,"label":"name","value":"marko","key":"name"}],"age":[{"id":1,"label":"age","value":29,"key":"age"}]}}
1004- ----
1040+ ----
10051041
10061042===== Enabling the previous behavior
10071043
0 commit comments