-
Notifications
You must be signed in to change notification settings - Fork 70
4.x changelog
π 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
π 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
This release includes all the improvements present in the previous beta and alpha releases.
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
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 deprecatedResultSummary.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
π Fixes and improvements
- [3e643c1886fe85dc289af0c90e27cb25f164d2ab] Handle data race of
racingio.Reader
andracingio.Writer
more elegantly - [027891f7926855ab9abd1c0882cbd1626f8db94f] Gracefully handle panics of transaction functions
π 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!
π 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
π 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)
- Fix profile children computation,
ProfiledPlan#Children()
was not returning the right results
-
neo4j.ResultSummary
now exposesneo4j.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())
- Update User-Agent string from "Go Driver/4.0" to "Go Driver/4.3"
No changes were introduced.
- Fix bug when dealing with disconnected node paths (#225)
No changes were introduced.
- Deprecate
ServerInfo#Version
and introduceServerInfo#Agent
andServerInfo#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
- Treat expired authentication errors as fatal
The connection pool will then purge such connections
- Log Bolt messages (at DEBUG level - see logging configuration documentation)
- 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)
- Update User-Agent string from "Go Driver/4.0" to "Go Driver/4.2"
- Fix state transition, previously blocked by wrong stream count
- 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
- Fixes issue with corrupt records in some scenarios with records bigger than a transport chunk. Issue 183
- 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
- Aligned with Neo4j database version 4.2.
- Driver supports Neo4j databases of versions 3.5, 4.0, 4.1 and 4.2.
- 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
- 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)