This is an automated email from the ASF dual-hosted git repository. Cole-Greer pushed a commit to branch simplePDT in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit ba9f3b45a45721c28138886423d445be783ddbf1 Author: Cole Greer <[email protected]> AuthorDate: Thu Jun 25 09:01:20 2026 -0700 Document why the Go PrimitivePDT test uses a named uint32 type Go natively serializes the built-in uint32 (emitted as a Gremlin Long), and that native type-switch in argAsString runs before the PDT registry lookup, so a bare uint32 never reaches a primitive adapter. The nested integration test therefore defines a distinct named type (type myUint32 uint32) to opt into PDT handling. Added a comment explaining this and contrasting with .NET (where System.UInt32 is not natively serialized and can be registered directly). Filed tinkerpop-kof to decide whether a registered adapter should take precedence over native type serialization across all GLVs. tinkerpop-2gy Assisted-by: Kiro:claude-opus-4.8 --- gremlin-go/driver/traversal_test.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gremlin-go/driver/traversal_test.go b/gremlin-go/driver/traversal_test.go index 9e3a8e3da5..0a94e90ddc 100644 --- a/gremlin-go/driver/traversal_test.go +++ b/gremlin-go/driver/traversal_test.go @@ -640,6 +640,12 @@ func TestPrimitiveProviderDefinedTypeTraversalAPIIntegration(t *testing.T) { t.Run("registered primitive nested in composite", func(t *testing.T) { skipTestsIfNotEnabled(t, integrationTestSuiteName, testNoAuthEnable) + // A distinct named type is required to route a value through the PrimitivePDT registry. + // Go natively serializes the built-in uint32 (argAsString emits it as a Gremlin Long), and + // that native type-switch runs before the PDT registry lookup — so a bare uint32 would never + // reach a primitive adapter. Defining myUint32 (a named type based on uint32) opts the type + // into PDT handling. This differs from .NET, where System.UInt32 is not natively serialized + // and can be registered directly. See tinkerpop-kof for the adapter-vs-native-type precedence follow-up. type myUint32 uint32 registry := NewPDTRegistry() registry.RegisterPrimitiveFuncsWithType("x:MyUint32", reflect.TypeOf(myUint32(0)),
