You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ly...@apache.org on 2022/05/11 20:36:04 UTC

[tinkerpop] branch 3.6-dev updated (0d3211514d -> ffab0f434c)

This is an automated email from the ASF dual-hosted git repository.

lyndonb pushed a change to branch 3.6-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


    from 0d3211514d Merge branch '3.5-dev' into 3.6-dev
     add a106fd5e67 AN-1103 configurable websocket compression
     add ad9fa199b9 AN-1102 allow to set buffers size
     add fe7f6703ed Merge pull request #77 from lyndonbauto/valentyn/AN-1103-ws-conn-config
     add aa55146157 Minor code clean-up (#78)
     add 67db228f6a improve integration tests (#80)
     add 26d6dee919 fixed comment for Iterate() (#81)
     add 9723c7cce3 DataType should not be exported (#84)
     add 76e51ca38d update doc for development topic (#83)
     add 4f020998cc WIthOptions support and testing (#91)
     add 1eb1db26e0 update connection timeout
     add a0163dbe16 Connection pool improvements (#87)
     add 0f9e368bdf Make one public (One) (#85)
     add 117d301437 Clarify error message (#93)
     add 16cd652ab0 update README (#88)
     add bd44c56cd5 readme troubleshooting (#95)
     add e7c5f4adcf Session spawnable only from driverRemoteConnections and Session mirrors Parent DRC settings (#90)
     add 1b0bf4aa4c AN-992-Performance Testing (#86)
     add 306c51bae9 Documentation update (#94)
     add d166a1d15d added examples to intro section (#96)
     add b2b536f747 Update performanceSuite.go (#97)
     add 4be6c0f9f8 Removing outdated TODO from README (#98)
     add 5f5fdc96cc update dependencies (#99)
     add 985d9d6077 Java PerformanceTest code (#89)
     add c8c1cdea5d Fix minor doc errors and missing namespace
     add b3d378b7ad Add Codecov for Tinkerpop/Gremlin-Go (#101)
     add ae0897c96a Update Performance Suite (#102)
     add 16deadc451 Java Performance Testing
     add 0e225c5e79 Addressed Milestone 6 code review comments
     add 2eee3f4398 Merge pull request #1639 from lyndonbauto/gremlin-go-ms6
     new ffab0f434c Merge branch '3.5-dev' into 3.6-dev

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../codecov.yml                                    |   4 +-
 .github/workflows/build-test.yml                   |   5 +
 .../dev/developer/development-environment.asciidoc |  17 +
 docs/src/dev/developer/release.asciidoc            |   3 +
 docs/src/reference/gremlin-applications.asciidoc   |  16 +-
 docs/src/reference/gremlin-variants.asciidoc       | 299 ++++++++++++-
 docs/src/reference/intro.asciidoc                  |  22 +-
 docs/static/images/gremlin-go.png                  | Bin 0 -> 35389 bytes
 .../tinkerpop/gremlin/util/PerformanceTest.java    | 252 +++++++++++
 gremlin-go/Dockerfile                              |  21 +-
 gremlin-go/README.md                               | 309 ++++++--------
 gremlin-go/docker-compose.yml                      |   4 +-
 .../docker}/generate-all.groovy                    |  15 +-
 .../docker/gremlin-server-integration-secure.yaml  |   1 +
 gremlin-go/docker/gremlin-server-integration.yaml  |   1 +
 gremlin-go/driver/client.go                        |  62 ++-
 gremlin-go/driver/client_test.go                   |   2 +-
 gremlin-go/driver/connection.go                    |   5 +-
 gremlin-go/driver/connectionPool.go                | 164 ++++---
 gremlin-go/driver/connectionPool_test.go           |  28 --
 gremlin-go/driver/connection_test.go               | 153 ++++---
 gremlin-go/driver/driverRemoteConnection.go        | 128 +++---
 gremlin-go/driver/error_codes.go                   |   5 +
 gremlin-go/driver/gorillaTransporter.go            |  14 +-
 gremlin-go/driver/graphBinary.go                   | 292 ++++++-------
 gremlin-go/driver/graphBinary_test.go              |   8 +-
 gremlin-go/driver/graphTraversalSource.go          |   2 +-
 gremlin-go/driver/logger.go                        |   7 +-
 gremlin-go/driver/performance/performanceSuite.go  | 470 +++++++++++++++++++++
 gremlin-go/driver/protocol.go                      |  24 +-
 gremlin-go/driver/resources/error-messages/en.json |   5 +-
 .../driver/resources/logger-messages/en.json       |  11 +-
 gremlin-go/driver/resultSet.go                     |   7 +-
 gremlin-go/driver/resultSet_test.go                |  10 +-
 gremlin-go/driver/serializer.go                    |   7 +-
 gremlin-go/driver/strategies.go                    |   8 +-
 gremlin-go/driver/traversal.go                     |  37 +-
 gremlin-go/driver/traversal_test.go                | 152 +++++++
 .../transporterFactory.go => example/example.go}   |  43 +-
 gremlin-go/example/go.mod                          |  29 ++
 gremlin-go/{ => example}/go.sum                    |  20 +-
 gremlin-go/go.mod                                  |   4 +-
 gremlin-go/go.sum                                  |  13 +-
 43 files changed, 1991 insertions(+), 688 deletions(-)
 copy gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/custom-gremlin-server.yaml => .github/codecov.yml (96%)
 create mode 100644 docs/static/images/gremlin-go.png
 create mode 100644 gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/util/PerformanceTest.java
 copy {gremlin-server/src/test/scripts => gremlin-go/docker}/generate-all.groovy (88%)
 create mode 100644 gremlin-go/driver/performance/performanceSuite.go
 copy gremlin-go/{driver/transporterFactory.go => example/example.go} (52%)
 create mode 100644 gremlin-go/example/go.mod
 copy gremlin-go/{ => example}/go.sum (94%)


[tinkerpop] 01/01: Merge branch '3.5-dev' into 3.6-dev

Posted by ly...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lyndonb pushed a commit to branch 3.6-dev
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit ffab0f434c515f4f427872a1bfac2f279a000e78
Merge: 0d3211514d 2eee3f4398
Author: Lyndon Bauto <ly...@bitquilltech.com>
AuthorDate: Wed May 11 13:34:22 2022 -0700

    Merge branch '3.5-dev' into 3.6-dev

 .github/codecov.yml                                |  19 +
 .github/workflows/build-test.yml                   |   5 +
 .../dev/developer/development-environment.asciidoc |  17 +
 docs/src/dev/developer/release.asciidoc            |   3 +
 docs/src/reference/gremlin-applications.asciidoc   |  16 +-
 docs/src/reference/gremlin-variants.asciidoc       | 299 ++++++++++++-
 docs/src/reference/intro.asciidoc                  |  22 +-
 docs/static/images/gremlin-go.png                  | Bin 0 -> 35389 bytes
 .../tinkerpop/gremlin/util/PerformanceTest.java    | 252 +++++++++++
 gremlin-go/Dockerfile                              |  21 +-
 gremlin-go/README.md                               | 309 ++++++--------
 gremlin-go/docker-compose.yml                      |   4 +-
 gremlin-go/docker/generate-all.groovy              |  79 ++++
 .../docker/gremlin-server-integration-secure.yaml  |   1 +
 gremlin-go/docker/gremlin-server-integration.yaml  |   1 +
 gremlin-go/driver/client.go                        |  62 ++-
 gremlin-go/driver/client_test.go                   |   2 +-
 gremlin-go/driver/connection.go                    |   5 +-
 gremlin-go/driver/connectionPool.go                | 164 ++++---
 gremlin-go/driver/connectionPool_test.go           |  28 --
 gremlin-go/driver/connection_test.go               | 153 ++++---
 gremlin-go/driver/driverRemoteConnection.go        | 128 +++---
 gremlin-go/driver/error_codes.go                   |   5 +
 gremlin-go/driver/gorillaTransporter.go            |  14 +-
 gremlin-go/driver/graphBinary.go                   | 292 ++++++-------
 gremlin-go/driver/graphBinary_test.go              |   8 +-
 gremlin-go/driver/graphTraversalSource.go          |   2 +-
 gremlin-go/driver/logger.go                        |   7 +-
 gremlin-go/driver/performance/performanceSuite.go  | 470 +++++++++++++++++++++
 gremlin-go/driver/protocol.go                      |  24 +-
 gremlin-go/driver/resources/error-messages/en.json |   5 +-
 .../driver/resources/logger-messages/en.json       |  11 +-
 gremlin-go/driver/resultSet.go                     |   7 +-
 gremlin-go/driver/resultSet_test.go                |  10 +-
 gremlin-go/driver/serializer.go                    |   7 +-
 gremlin-go/driver/strategies.go                    |   8 +-
 gremlin-go/driver/traversal.go                     |  37 +-
 gremlin-go/driver/traversal_test.go                | 152 +++++++
 gremlin-go/example/example.go                      |  52 +++
 gremlin-go/example/go.mod                          |  29 ++
 gremlin-go/{ => example}/go.sum                    |  20 +-
 gremlin-go/go.mod                                  |   4 +-
 gremlin-go/go.sum                                  |  13 +-
 43 files changed, 2107 insertions(+), 660 deletions(-)

diff --cc .github/workflows/build-test.yml
index 5d85cec234,5befe4519f..78abde8340
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@@ -202,31 -202,36 +202,36 @@@ jobs
          run: |
            mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests -q -DskipTests -Dci
            mvn verify -pl :neo4j-gremlin -DincludeNeo4j
 -  go:
 -    name: go
 -    timeout-minutes: 20
 -    needs: smoke
 -    runs-on: ubuntu-latest
 -    steps:
 -      - name: Checkout
 -        uses: actions/checkout@v3
 -
 -      - name: Setup Go
 -        uses: actions/setup-go@v3
 -        with:
 -          go-version: '1.17'
 -
 -      - name: Generate Gremlin Server Base Image
 -        working-directory: .
 -        run: |
 -          mvn clean install -pl :gremlin-server -DskipTests -DskipIntegrationTests=true -am && mvn install -Pdocker-images -pl :gremlin-server
 -
 -      - name: Execute Go tests
 -        working-directory: ./gremlin-go
 -        run: |
 -          docker-compose up --exit-code-from gremlin-go-integration-tests
 -          docker-compose down
 -
 -      - name: Upload to Codecov
 -        uses: codecov/codecov-action@v2
 -        with:
 -          working-directory: ./gremlin-go
 -
 -      - name: Go-Vet
 -        working-directory: ./gremlin-go
 -        run: go vet ./...
 +  #go:
 +  #  name: go
 +  #  timeout-minutes: 20
 +  #  needs: smoke
 +  #  runs-on: ubuntu-latest
 +  #  steps:
 +  #    - name: Checkout
 +  #      uses: actions/checkout@v3
 +  #
 +  #    - name: Setup Go
 +  #      uses: actions/setup-go@v3
 +  #      with:
 +  #        go-version: '1.17'
 +  #
 +  #    - name: Generate Gremlin Server Base Image
 +  #      working-directory: .
 +  #      run: |
 +  #        mvn clean install -pl :gremlin-server -DskipTests -DskipIntegrationTests=true -am && mvn install -Pdocker-images -pl :gremlin-server
 +  #
 +  #    - name: Execute Go tests
 +  #      working-directory: ./gremlin-go
 +  #      run: |
 +  #        docker-compose up --exit-code-from gremlin-go-integration-tests
 +  #        docker-compose down
 +  #
++  #    - name: Upload to Codecov
++  #      uses: codecov/codecov-action@v2
++  #      with:
++  #        working-directory: ./gremlin-go
++  #
 +  #    - name: Go-Vet
 +  #      working-directory: ./gremlin-go
 +  #      run: go vet ./...
diff --cc docs/src/dev/developer/development-environment.asciidoc
index 5eabaf2286,b2312b43ba..b18dbec756
--- a/docs/src/dev/developer/development-environment.asciidoc
+++ b/docs/src/dev/developer/development-environment.asciidoc
@@@ -293,10 -246,25 +293,27 @@@ easily serve the generated website loca
  TIP: For those who do not have a full Maven environment, please see <<docker-integration,this section>> for how Docker
  can be used to help run tests.
  
 +TIP: Consider installing link:https://github.com/nvm-sh/nvm[nvm-sh] as a convenient way to manage node versions.
 +
  See the <<release-environment,Release Environment>> section for more information on release manager configurations.
  
+ [[go-environment]]
+ === Go Environment
+ 
+ The build optionally requires link:https://go.dev/dl/[Go] (>=1.17) to work with the `gremlin-go` module. If Go is not installed, TinkerPop will still build with Maven, but Go projects will be skipped.
+ 
+ `gremlin-go` can be built the command line with:
+ 
+ [source,text]
+ go build
+ 
+ Docker allows you to test the driver without installing any dependencies. The following command can be used to run docker:
+ 
+ [source,text]
+ docker-compose up --exit-code-from gremlin-go-integration-tests
+ 
+ See the <<release-environment,Release Environment>> section for more information on release manager configurations.
+ 
  [[docker-environment]]
  === Docker Environment
  
diff --cc docs/src/dev/developer/release.asciidoc
index b01643350e,7c46c33093..9d49a6d9a7
--- a/docs/src/dev/developer/release.asciidoc
+++ b/docs/src/dev/developer/release.asciidoc
@@@ -241,8 -240,10 +241,10 @@@ for generating javadoc
  .. `mvn clean install -DskipTests -Dnuget`
  .. `mvn deploy -pl gremlin-python -DskipTests -Dpypi`
  .. `mvn deploy -pl :gremlin-dotnet-source -DskipTests -Dnuget`
 -.. `mvn deploy -pl gremlin-javascript -DskipTests -Dnpm`
 -.. `mvn deploy -pl gremlint -DskipTests -Dnpm`
 -.. `git tag gremlin-go/v3.5.4`
 +.. `mvn deploy -pl gremlin-javascript -DskipTests -Dnpm` - prefer direct deploy with `npm publish --otp <otp>` from `gremlin-javscript/src/main/javascript/gremlin-javascript/`
 +.. `mvn deploy -pl gremlint -DskipTests -Dnpm` - prefer direct deploy with `npm publish --otp <otp>` from `gremlint/`
++.. `git tag gremlin-go/v3.6.1`
+ .. `git push --tags`
  . Review the GLV releases
  .. link:https://pypi.org/project/gremlinpython/[gremlin-python - PyPi]
  .. link:https://www.nuget.org/packages/Gremlin.Net/[Gremlin.Net - nuget]
diff --cc gremlin-go/README.md
index 427c8f0f11,5694cd09fd..9c5be34d0c
--- a/gremlin-go/README.md
+++ b/gremlin-go/README.md
@@@ -117,8 -70,11 +70,11 @@@ require 
  ```
  As well as a populated `go.sum` file.
  
- This following example should run, provided that it is configured to point to a compatible `gremlin-server`. In this example, a simple local server is running on port 8182, and this will print`[2]` as an output. If no server is available, this code can still be executed to print an error as output.
+ *if there are no usages for gremlingo found, it will remove the require from go.mod and not import dependencies.*
+ 
+ ## Simple usage
  
 -Here is a simple example of using Gremlin-Go as an import in a sample project's `main.go` file. 
++Here is a simple example of using Gremlin-Go as an import in a sample project's `main.go` file.
  ```go
  package main
  
@@@ -158,6 -154,42 +154,42 @@@ Note: The exact import name as well as 
  
  See [Gremlin-Go Design Overview](design.MD)
  
+ ## Building Directly
+ 
+ To build the driver you must install `go`. The following command can be used to build the driver:
+ `go build <path to source code>`
+ 
+ ## Code Styling and Linting
+ Before generating a pull request, you should manually run the following to ensure correct code styling and fix any issues indicated by the linters.
+ 
+ ## Formatting files with Gofmt
 -To ensure clean and readable code [Gofmt][gofmt] is used. 
++To ensure clean and readable code [Gofmt][gofmt] is used.
+ 
+ Navigate to file path in a terminal window and run:
+ 
 -`go fmt` 
++`go fmt`
+ 
+ Gofmt will recursively check for and format `.go` files.
+ 
+ Note: If your IDE of choice is [GoLand][goland], code can be automatically formatted with Gofmt on file save. Instructions on how to enable this feature can be found [here][fmtsave].
+ 
+ ## Using the Linter and staticcheck
+ Run [go vet][gvet] and [staticcheck][scheck] and correct any errors.
+ 
+ [go vet][gvet] is installed when you install go, and can be run with:
+ 
 - `go vet <path to source code>`
++`go vet <path to source code>`
+ 
+ Please review the [staticcheck documentation][scheck docs] for more details on installing [staticcheck][scheck]. It can be run with:
+ 
+ `staticcheck <path to source code>`
+ 
+ ## Testing with Docker
+ 
+ Docker allows you to test the driver without installing any dependencies. The following command can be used to run docker:
+ 
+ `docker-compose up --exit-code-from integration-tests`
+ 
  # Go Gremlin Language Variant
  
  [Apache TinkerPop™][tk] is a graph computing framework for both graph databases (OLTP) and graph analytic systems
@@@ -166,7 -198,7 +198,7 @@@ data-flow language that enables users t
  property graph.
  
  Gremlin-Go implements Gremlin within the Go language and can be used on any Go runtime greater than v1.17. One
--important difference between Go and Java is that the functions are capitalized, as is required to export functions is Go. 
++important difference between Go and Java is that the functions are capitalized, as is required to export functions is Go.
  
  Gremlin-Go is designed to connect to a "server" that is hosting a TinkerPop-enabled graph system. That "server"
  could be [Gremlin Server][gs] or a [remote Gremlin provider][rgp] that exposes protocols by which Gremlin-Go
@@@ -299,7 -282,7 +282,7 @@@ if err != nil 
  }
  ```
  ### Find Vertices
--Getting the property value associated with the added vertex. We currently only support `ToList()` for submitting the remote traversal. Support for `Next()` will be implemented in the subsequent milestones. 
++Getting the property value associated with the added vertex. We currently only support `ToList()` for submitting the remote traversal. Support for `Next()` will be implemented in the subsequent milestones.
  ```go
  result, err := g.V().HasLabel("gremlin").Values("language").ToList()
  // Handle error
@@@ -314,16 -297,12 +297,12 @@@ for _, r := range result 
  ```
  
  ### Update Vertex
--Updating vertex by adding another property to it. 
++Updating vertex by adding another property to it.
  ```go
- _, promise, err :=g.AddV("gremlin").Property("language", "go").Iterate()
- // Handle error
- if err != nil {
- 	fmt.Println(err)
-     return
- }
+ promise := g.AddV("gremlin").Property("language", "go").Iterate()
  // Wait for all steps to finish execution and check for error.
- if <-promise != nil {
+ err := <-promise
+ if err != nil {
      fmt.Println(err)
      return
  }
diff --cc gremlin-go/driver/graphBinary.go
index d801e9ced9,f70630b7a3..a43b8c0557
--- a/gremlin-go/driver/graphBinary.go
+++ b/gremlin-go/driver/graphBinary.go
@@@ -32,57 -32,56 +32,57 @@@ import 
  
  // Version 1.0
  
- // DataType graphBinary types.
- type DataType uint8
+ // dataType graphBinary types.
+ type dataType uint8
  
- // DataType defined as constants.
+ // dataType defined as constants.
  const (
- 	IntType               DataType = 0x01
- 	LongType              DataType = 0x02
- 	StringType            DataType = 0x03
- 	DateType              DataType = 0x04
- 	TimestampType         DataType = 0x05
- 	DoubleType            DataType = 0x07
- 	FloatType             DataType = 0x08
- 	ListType              DataType = 0x09
- 	MapType               DataType = 0x0a
- 	SetType               DataType = 0x0b
- 	UUIDType              DataType = 0x0c
- 	EdgeType              DataType = 0x0d
- 	PathType              DataType = 0x0e
- 	PropertyType          DataType = 0x0f
- 	VertexType            DataType = 0x11
- 	VertexPropertyType    DataType = 0x12
- 	BarrierType           DataType = 0x13
- 	BindingType           DataType = 0x14
- 	CardinalityType       DataType = 0x16
- 	BytecodeType          DataType = 0x15
- 	ColumnType            DataType = 0x17
- 	DirectionType         DataType = 0x18
- 	OperatorType          DataType = 0x19
- 	OrderType             DataType = 0x1a
- 	PickType              DataType = 0x1b
- 	PopType               DataType = 0x1c
- 	LambdaType            DataType = 0x1d
- 	PType                 DataType = 0x1e
- 	ScopeType             DataType = 0x1f
- 	TType                 DataType = 0x20
- 	TraverserType         DataType = 0x21
- 	BigIntegerType        DataType = 0x23
- 	ByteType              DataType = 0x24
- 	ShortType             DataType = 0x26
- 	BooleanType           DataType = 0x27
- 	TextPType             DataType = 0x28
- 	TraversalStrategyType DataType = 0x29
- 	BulkSetType           DataType = 0x2a
- 	MergeType             DataType = 0x2e
- 	DurationType          DataType = 0x81
- 	NullType              DataType = 0xFE
+ 	intType               dataType = 0x01
+ 	longType              dataType = 0x02
+ 	stringType            dataType = 0x03
+ 	dateType              dataType = 0x04
+ 	timestampType         dataType = 0x05
+ 	doubleType            dataType = 0x07
+ 	floatType             dataType = 0x08
+ 	listType              dataType = 0x09
+ 	mapType               dataType = 0x0a
+ 	setType               dataType = 0x0b
+ 	uuidType              dataType = 0x0c
+ 	edgeType              dataType = 0x0d
+ 	pathType              dataType = 0x0e
+ 	propertyType          dataType = 0x0f
+ 	vertexType            dataType = 0x11
+ 	vertexPropertyType    dataType = 0x12
+ 	barrierType           dataType = 0x13
+ 	bindingType           dataType = 0x14
+ 	cardinalityType       dataType = 0x16
+ 	bytecodeType          dataType = 0x15
+ 	columnType            dataType = 0x17
+ 	directionType         dataType = 0x18
+ 	operatorType          dataType = 0x19
+ 	orderType             dataType = 0x1a
+ 	pickType              dataType = 0x1b
+ 	popType               dataType = 0x1c
+ 	lambdaType            dataType = 0x1d
+ 	pType                 dataType = 0x1e
+ 	scopeType             dataType = 0x1f
+ 	tType                 dataType = 0x20
+ 	traverserType         dataType = 0x21
+ 	bigIntegerType        dataType = 0x23
+ 	byteType              dataType = 0x24
+ 	shortType             dataType = 0x26
+ 	booleanType           dataType = 0x27
+ 	textPType             dataType = 0x28
+ 	traversalStrategyType dataType = 0x29
+ 	bulkSetType           dataType = 0x2a
++	mergeType             dataType = 0x2e
+ 	durationType          dataType = 0x81
+ 	nullType              dataType = 0xFE
  )
  
- var nullBytes = []byte{NullType.getCodeByte(), 0x01}
+ var nullBytes = []byte{nullType.getCodeByte(), 0x01}
  
- func (dataType DataType) getCodeByte() byte {
+ func (dataType dataType) getCodeByte() byte {
  	return byte(dataType)
  }
  
@@@ -984,53 -983,51 +984,53 @@@ func (serializer *graphBinaryTypeSerial
  			return buffer.Bytes(), err
  		}, logHandler: serializer.logHandler}, nil
  	case *Vertex:
- 		return &graphBinaryTypeSerializer{dataType: VertexType, writer: vertexWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: vertexType, writer: vertexWriter, logHandler: serializer.logHandler}, nil
  	case *Edge:
- 		return &graphBinaryTypeSerializer{dataType: EdgeType, writer: edgeWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: edgeType, writer: edgeWriter, logHandler: serializer.logHandler}, nil
  	case *Property:
- 		return &graphBinaryTypeSerializer{dataType: PropertyType, writer: propertyWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: propertyType, writer: propertyWriter, logHandler: serializer.logHandler}, nil
  	case *VertexProperty:
- 		return &graphBinaryTypeSerializer{dataType: VertexPropertyType, writer: vertexPropertyWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: vertexPropertyType, writer: vertexPropertyWriter, logHandler: serializer.logHandler}, nil
  	case *Lambda:
- 		return &graphBinaryTypeSerializer{dataType: LambdaType, writer: lambdaWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: lambdaType, writer: lambdaWriter, logHandler: serializer.logHandler}, nil
  	case *traversalStrategy:
- 		return &graphBinaryTypeSerializer{dataType: TraversalStrategyType, writer: traversalStrategyWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: traversalStrategyType, writer: traversalStrategyWriter, logHandler: serializer.logHandler}, nil
  	case *Path:
- 		return &graphBinaryTypeSerializer{dataType: PathType, writer: pathWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: pathType, writer: pathWriter, logHandler: serializer.logHandler}, nil
  	case Set:
- 		return &graphBinaryTypeSerializer{dataType: SetType, writer: setWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: setType, writer: setWriter, logHandler: serializer.logHandler}, nil
  	case time.Time:
- 		return &graphBinaryTypeSerializer{dataType: DateType, writer: timeWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: dateType, writer: timeWriter, logHandler: serializer.logHandler}, nil
  	case time.Duration:
- 		return &graphBinaryTypeSerializer{dataType: DurationType, writer: durationWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: durationType, writer: durationWriter, logHandler: serializer.logHandler}, nil
  	case Cardinality:
- 		return &graphBinaryTypeSerializer{dataType: CardinalityType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: cardinalityType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Column:
- 		return &graphBinaryTypeSerializer{dataType: ColumnType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: columnType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Direction:
- 		return &graphBinaryTypeSerializer{dataType: DirectionType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: directionType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Operator:
- 		return &graphBinaryTypeSerializer{dataType: OperatorType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: operatorType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Order:
- 		return &graphBinaryTypeSerializer{dataType: OrderType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: orderType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Pick:
- 		return &graphBinaryTypeSerializer{dataType: PickType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: pickType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Pop:
- 		return &graphBinaryTypeSerializer{dataType: PopType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: popType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case T:
- 		return &graphBinaryTypeSerializer{dataType: TType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: tType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Barrier:
- 		return &graphBinaryTypeSerializer{dataType: BarrierType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: barrierType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case Scope:
- 		return &graphBinaryTypeSerializer{dataType: ScopeType, writer: enumWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: scopeType, writer: enumWriter, logHandler: serializer.logHandler}, nil
 +	case Merge:
- 		return &graphBinaryTypeSerializer{dataType: MergeType, writer: enumWriter, logHandler: serializer.logHandler}, nil
++		return &graphBinaryTypeSerializer{dataType: mergeType, writer: enumWriter, logHandler: serializer.logHandler}, nil
  	case p, Predicate:
- 		return &graphBinaryTypeSerializer{dataType: PType, writer: pWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: pType, writer: pWriter, logHandler: serializer.logHandler}, nil
  	case textP, TextPredicate:
- 		return &graphBinaryTypeSerializer{dataType: TextPType, writer: textPWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: textPType, writer: textPWriter, logHandler: serializer.logHandler}, nil
  	case *Binding, Binding:
- 		return &graphBinaryTypeSerializer{dataType: BindingType, writer: bindingWriter, logHandler: serializer.logHandler}, nil
+ 		return &graphBinaryTypeSerializer{dataType: bindingType, writer: bindingWriter, logHandler: serializer.logHandler}, nil
  	default:
  		switch reflect.TypeOf(val).Kind() {
  		case reflect.Map:
diff --cc gremlin-go/driver/serializer.go
index c51fc7f6e5,4bdebe2604..8b40a355e3
--- a/gremlin-go/driver/serializer.go
+++ b/gremlin-go/driver/serializer.go
@@@ -192,8 -191,8 +191,8 @@@ func readMap(buffer *bytes.Buffer, gs *
  		err = binary.Read(buffer, binary.BigEndian, &keyType)
  		if err != nil {
  			return nil, err
- 		} else if keyType != StringType {
+ 		} else if keyType != stringType {
 -			return nil, newError(err0703ReadMapNonStringKeyError)
 +			return nil, newError(err0703ReadMapNonStringKeyError, keyType)
  		}
  		var nullable byte
  		err = binary.Read(buffer, binary.BigEndian, &nullable)