- 
                Notifications
    
You must be signed in to change notification settings  - Fork 203
 
4.4 Changelog
        Robsdedude edited this page Sep 19, 2022 
        ·
        35 revisions
      
    Please read our Driver Migration Guide for guidance and breaking changes when migrating from 1.7 drivers to 4.X drivers.
🔧 Fixes
- Fix connection pool clogging up when checking if new connections can be created while the pool is full (#803; fixes #796).
 - Fix string representation of 
neo4j.exceptions.ClientErrorandneo4j.exceptions.Neo4jErrorwhen raised from the driver code (805). 
🔧 Fixes
- Fix 
DeprecationWarningforupdate_routing_table_timeoutconfig option being emitted if the option was not used (#789). - Fix relying on garbage collector to close sockets under certain failure conditions (#794).
 
🔧 Fixes
- Fix method accidentally marked 
async(#774). 
👏 Improvements
- Speed up 
DateTime.to_clock_timeby 2 orders of magnitude and with it the serialization ofDateTimeobjects (#781). 
🧹Clean-up
⚠️ Deprecate timeout config options introduced in 4.4.5 (#768).
update_routing_table_timeoutandsession_connection_timeouthave been deprecated and will be removed in 5.0.
Server-side keep-alives communicated through configuration hints together withconnection_acquisition_timeoutare 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.18 or 4.4.11 respectively.
 
👏 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_timeoutdoes 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_timeoutandsession_connection_timeoutare 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 
DateTimetype's timezone (#684). - Fix wrong comparison operators of several types in the 
neo4j.timepackage (#684). - Improve compatibility of 
neo4j.timewith 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.DatabaseNotFoundandNeo.ClientError.Transaction.InvalidBookmark(#611). - Fix wrong serialization of the 
Timetype's timezone (#616). 
🔧 Fixes
- Use 
selectors.DefaultSelectorinstead ofselect.selectwhich resolves the number of simultaneously open files (including sockets) being limited to 1024 on all operating systems that support it (#604). - Fixed 
AttributeErroron 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 
qidparameter over the wire when necessary (#585). - Reduce the number of 
RESETmessages 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).