Skip to content
Florent Biville edited this page Mar 17, 2023 · 50 revisions

v4.4.7

πŸ“ˆ Fixes and improvements

  • [3f5f3f4] Close socket if Bolt handshake fails

The Bolt handshake occurs so that the driver and target server can agree on which Bolt protocol version to use. Prior to this fix, the underlying TCP/Unix Socket connection would remain open if the handshake failed. Failure scenarios are either the usual networking errors OR the driver and server could not find a common version they both support.

Users are highly encouraged to upgrade to this version.

v4.4.6

πŸ“ˆ Fixes and improvements

  • [62bae2d] Fix tfirst tracking for interleaved runs of same transaction

v4.4.5

πŸ“ˆ Fixes and improvements

  • Clarify Single#Result documentation
  • Remove noisy log from critical section
  • Change default TLS min version to always be 1.2

v4.4.4

πŸ“ˆ Fixes and improvements

  • Support UTC DateTime Structures

v4.4.3

πŸ“ˆ Fixes and improvements

  • Handle data race of racingio.Reader and racingio.Writer more elegantly
  • Gracefully handle panics of transaction functions

v4.4.2

πŸ“ˆ Fixes and improvements

  • Back port the 5.0 rewrite of the support for server-side connection read timeout hints. This is especially important in Aura since hints are automatically enabled. If you encounter many "i/o timeout" errors, time to upgrade!

βœ… Testkit

  • Remove temporary feature flags
  • Allow nil values of maxTxRetryTimeMs

v4.4.1

πŸ†• APIs and features

  • Expose number of system updates in result summary (thanks @erictg)
  • Allow fetch size to be configured at the driver level. Session-level configuration keeps precedence.

πŸ“ˆ Fixes and improvements

  • Improve logging:
    • when reading chunks of messages from the Bolt server, the reported connection type would not always be correct (logging bolt4 instead of bolt3 for Bolt 3 connections)
    • log server-side configuration hints if they are enabled (logged at INFO level and with the Bolt logger)
  • Fix error handling in Bolt message hydration
  • Fix the computation of result summary notifications
  • Clarify user impersonation documentation

v4.4.0

This release includes all the improvements present in the previous beta and alpha releases.

v4.4.0-beta1

This is the first beta release that provides a preview of the new features and general improvements.

πŸ‘ Improvements

  • Improve examples which uses the session.WriteTransaction #278

v4.4.0-alpha1

This is the first alpha release that provides a preview of the new features and general improvements.

⭐ New Features

  • Introduce new bearer authentication scheme for SSO support #263
  • Introduce User impersonation support 273

πŸ‘ Improvements

  • Add principal to Kerberos Auth for backwards compatibility #264
  • Add method ResultSummary.Query() to replace the now deprecated ResultSummary.Statement() #265
  • Do not raise error when closing a session with a pending transaction #266
  • Send qid in DISCARD & PULL only when necessary #267

βœ… Testkit

  • Add support to Relationship and Path to testkit-backend #258
  • Add kerberos auth to testkit backend #262

v4.3.8

πŸ“ˆ Fixes and improvements

  • Support UTC DateTime Structures This has no effect on older servers. UTC DateTime structures will only replace the legacy DateTime structures if the target server supports them.

v4.3.7

πŸ“ˆ Fixes and improvements

  • Handle data race of racingio.Reader and racingio.Writer more elegantly
  • Gracefully handle panics of transaction functions

v4.3.6

πŸ“ˆ Fixes and improvements

  • Back port the 5.0 rewrite of the support for server-side connection read timeout hints. This is especially important in Aura since hints are automatically enabled. If you encounter many "i/o timeout" errors AND use the Go driver v4.3.4 or later, time to upgrade!

v4.3.5

πŸ“ˆ Fixes and improvements

  • Improve logging:
    • when reading chunks of messages from the Bolt server, the reported connection type would not always be correct (logging bolt4 instead of bolt3 for Bolt 3 connections)
    • log server-side configuration hints if they are enabled (logged at INFO level and with the Bolt logger)
  • Fix error handling in Bolt message hydration
  • Fix the computation of result summary notifications

v4.3.4

πŸ†• APIs and features

  • Implement connection read timeout server hint - see specs for more information

πŸ“ˆ Fixes and improvements

  • Fix Kerberos authentication
  • Expose number of system updates in result summary (thanks @erictg)

v4.3.3

  • Fix profile children computation, ProfiledPlan#Children() was not returning the right results

v4.3.2

  • neo4j.ResultSummary now exposes neo4j.DatabaseInfo to retrieve information about the database a result has been obtained from:
result, err := session.Run("RETURN 42", map[string]interface{}{})
if err != nil { /* do something useful */ }
summary, err := result.Consume()
if err != nil { /* do something useful */ }
databaseInfo := summary.Database() // caution: this returns `nil` with Neo4j servers 3.x
fmt.Printf("Database name is: %s\n", databaseInfo.Name())      

v4.3.1

  • Update User-Agent string from "Go Driver/4.0" to "Go Driver/4.3"

v4.3.0

No changes were introduced.

v4.3.0-rc2

  • Fix bug when dealing with disconnected node paths (#225)

v4.3.0-rc1

No changes were introduced.

v4.3.0-beta2

  • Deprecate ServerInfo#Version and introduce ServerInfo#Agent and ServerInfo#ProtocolVersion
  • Move Bolt logging (introduced in v4.3.0-alpha1) to session level and default to nil

Bolt message logging is now configured at the session level and is independent from the existing logging configuration - see Bolt logging configuration

v4.3.0-beta1

  • Treat expired authentication errors as fatal

The connection pool will then purge such connections

v4.3.0-alpha1

  • Enable 4.3 protocol and add support for extended handshake

Driver users can now include a range of protocol versions ranging from 3.0 to 4.3

  • Add support for 4.3 ROUTE message
  • Retry fetching routing table until there are readers
  • Send bookmarks when fetching routing table (via ROUTE message or via procedure)

v4.2.5

  • Update User-Agent string from "Go Driver/4.0" to "Go Driver/4.2"

v4.2.4

  • Fix state transition, previously blocked by wrong stream count

v4.2.3

  • Now uses connection timeout setting when connecting to cluster members when updating routing table.
  • Fixes issue with discarding big streams. Streams are discarded if they are still open after their scope ends (like a transaction or session)
  • Session.Run now forces a reset before issuing the command to the server, this makes sure that the connection is still alive. Solves issues with CheckConnectivity when running in a cluster

v4.2.2

  • Fixes issue with corrupt records in some scenarios with records bigger than a transport chunk. Issue 183

v4.2.1

  • Fixes issue with node/relationship counts in summary, issue 178
  • Retries retrieval of routing tables when there are no readers in routing table, same way as previously done with writers

v4.2.0

  • Aligned with Neo4j database version 4.2.
  • Driver supports Neo4j databases of versions 3.5, 4.0, 4.1 and 4.2.

v4.0.0-beta2

  • Added missing temporal conversion functions that converted to native time.Time, existed in 1.8
  • Discards records in pending results when session is closed
  • Change in logger interface, removed Errorf function.
  • Improved retry error handling

v4.0.0-beta1

  • Feature complete to level of 4.2 of other official Neo4j drivers
  • Improved performance as compared to 1.8 (see benchmark tool for some of the tested cases)
  • There are breaking API changes compared to 1.8 (see migration guide for details)