4.x changelog - neo4j/neo4j-go-driver GitHub Wiki

v4.4.8

📈 Fixes and improvements

bd8e59c(https://github.com/neo4j/neo4j-go-driver/commit/bd8e59c66bf07d78d025438de149366b4605fe90) Fix panic when calling driver.Close concurrently

v4.4.7

📈 Fixes and improvements

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

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)