Skip to content

4.4 Changelog

Robsdedude edited this page Aug 31, 2022 · 34 revisions

Driver Migration Guide

Please read our Driver Migration Guide for guidance and breaking changes when migrating from 1.7 drivers to 4.X drivers.

Changelog

4.4.6


🔧 Fixes

  • Fix method accidentally marked async (#774).

👏 Improvements

  • Speed up DateTime.to_clock_time by 2 orders of magnitude and with it the serialization of DateTime objects (#781).

🧹Clean-up

  • ⚠️ Deprecate timeout config options introduced in 4.4.5 (#768).
    update_routing_table_timeout and session_connection_timeout have been deprecated and will be removed in 5.0.
    Server-side keep-alives communicated through configuration hints together with connection_acquisition_timeout are sufficient to avoid the driver getting stuck.

4.4.5


🔧 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 options update_routing_table_timeout and session_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.

4.4.4


🔧 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.

4.4.3


🔧 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).

4.4.2


🔧 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.

4.4.1


🔧 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).

4.4.0


🔧 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 and Neo.ClientError.Transaction.InvalidBookmark(#611).
  • Fix wrong serialization of the Time type's timezone (#616).

4.4.0b1


🔧 Fixes

  • Use selectors.DefaultSelector instead of select.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).

4.4.0a1


⭐ 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).
Clone this wiki locally