-
Notifications
You must be signed in to change notification settings - Fork 188
4.4 Changelog
Robsdedude edited this page Aug 31, 2022
·
34 revisions
Please read our Driver Migration Guide for guidance and breaking changes when migrating from 1.7 drivers to 4.X drivers.
🔧 Fixes
- Fix method accidentally marked
async
(#774).
👏 Improvements
- Speed up
DateTime.to_clock_time
by 2 orders of magnitude and with it the serialization ofDateTime
objects (#781).
🧹Clean-up
⚠️ Deprecate timeout config options introduced in 4.4.5 (#768).
update_routing_table_timeout
andsession_connection_timeout
have been deprecated and will be removed in 5.0.
Server-side keep-alives communicated through configuration hints together withconnection_acquisition_timeout
are sufficient to avoid the driver getting stuck.
🔧 Fixes
- Implement patched protocol that removes ambiguity in datetimes with named zone. For this to take effect, the server needs to be at least on patch version 4.3.?+ or 4.4.?+ respectively (both releases pending).
👏 Improvements
- Clarify the documentation around
session.read_transaction
: it does not enforce access control (#753). - Multiple improvements around timeouts (#746):
- The configuration option
connection_acquisition_timeout
does only limit the amount of time the driver waits for a connection from the pool. It does not cater for potential routing table updates. Therefore, two new configuration optionsupdate_routing_table_timeout
andsession_connection_timeout
are being introduced. Read more about them in the API docs . - A slow response from the server while opening a new connection does no longer block the whole connection pool.
- The configuration option
🔧 Fixes
- Fix pool closing connections that are in use when opening a new connection fails (#733). Especially, but not only, in concurrent contexts, this would lead to all sorts of unspecific errors.
- Fix pool trying to close the same connection multiple times if closing fails. (#733). This would lead to
ValueError: deque.remove(x): x not in deque
(Issue #739).
👏 Improvements
- Performance improvement around logging calls (even with disabled logging) (#726).
- Several small improvements to docstrings and API docs.
🔧 Fixes
- Fix wrong serialization of the
DateTime
type's timezone (#684). - Fix wrong comparison operators of several types in the
neo4j.time
package (#684). - Improve compatibility of
neo4j.time
with different timezone implementations (#684).
🔧 Fixes
- Fix the driver sending partial data (causing connection closure and hence slightly worse performance) on errors during data serialization (#641).
⭐ New Features
- Backported (experimental) preview of pandas DataFrame export for results. (#678). Note: the change is self-contained and does not affect any other parts of the driver.
🔧 Fixes
- Fix pool closing stale connections that are in use (#631). Especially, but not only, in concurrent contexts, this would lead to all sorts of unspecific errors.
👏 Improvements
- Performance improvement when packing data (#622).
🔧 Fixes
- Fail fast and raise the original error during discovery (initial attempt to connect to the server) on certain errors that are expected to be experienced across all cluster-members ,e.g.,
Neo.ClientError.Database.DatabaseNotFound
andNeo.ClientError.Transaction.InvalidBookmark
(#611). - Fix wrong serialization of the
Time
type's timezone (#616).
🔧 Fixes
- Use
selectors.DefaultSelector
instead ofselect.select
which resolves the number of simultaneously open files (including sockets) being limited to 1024 on all operating systems that support it (#604). - Fixed
AttributeError
on connection clean-up (#603).
👏 Improvements
- Log the reason when a secure connection could not be established (#608).
⭐ New Features
- Introduce impersonation support (#599).
- Add bearer authentication support (single sign-on) (#579).
- Add Bolt 4.4 support (#560).
🔧 Fixes
- Time types use Decimals and integers instead of floats for sub-seconds (#551).
This fixes rounding issues and allows for an exact representation of nanoseconds, but comes at the cost of a slightly altered API. Please refer to the documentation.
👏 Improvements
- Fail fast on transaction begin (#586).
- Only send
qid
parameter over the wire when necessary (#585). - Reduce the number of
RESET
messages send over the wire to the bare minimum (#572). - Fail fast on re-using a broken transaction (#566).
🧹Clean-up
- Drop support for Python 3.5 (end of life 2020-11-13) (#560).