asyncpg v0.20.0
Improvements
Support Python 3.8
Support PgBouncer by sending only a single SYNC message per query
Bug Fixes
Handle IP values with prefix in "inet" type as ipaddress.IPvXInterface
Close transport if connection times out
Use faster UUID codecs; make UUID decoding/encoding/operations 2-7x faster
Use loop.start_tls() to upgrade connections to SSL
Build
Bump Cython to 0.29.14
asyncpg v0.19.0
Improvements
Add support for SCRAM-SHA-256 authentication.
Add PostgreSQL 12 support
Bug Fixes
Remove preexec_fn hack from test cluster management
Fix DeprecationWarning in the docstring of copy_from_query()
Allow specifying the target version when generating the release log
Check for .flake8 after importing flake8
Include .flake8 in PyPI tarball
fix timezone type label in docs
Fix _StatementCache.clear() PS memory leak
fix for warning_callback not yet defined
Fix assertion fail on copy_records_to_table
Do not look for a port in a Unix socket domain path
Unquote connection string components properly
Remove superfluous transaction from a cursor example
asyncpg v0.18.2
Bug Fixes
* Revert "Stop treating ReadyForQuery as a universal result indicator"
to fix stability regression.
* Correctly ignore all incoming messages after the Terminate message
* Properly cleanup connections closed by remote
asyncpg v0.18.1:
Fix DSN parsing regression
asyncpg v0.18.0:
Improvements
Implement Record.get()
Internal asyncpg errors are now consistently raised as InternalClientError
Allow mappings as composite type input
Add BitString.to_int() and BitString.from_int()
Allow 'sslmode' in DSNs
Add support for specifying multiple host addresses when connecting
Low-level protocol implementation has been tweaked and
optimized for slightly better performance in certain scenarios
Queries with cached statements now generate fewer TCP packets
Allow aliasing builtin types by name in set_builtin_type_codec()
Factor out generic PostgreSQL protocol helpers into a separate package
Fix tests and enable CI for PostgreSQL 11
Bug Fixes
Handle and ignore permission errors when attempting to read .pgpass
Fix decoding of fractional timestamps before Postgres epoch
asyncpg v0.17.0:
Improvements
Official support for Python 3.7.
Bug Fixes
Fix garbage collection of connections and emit a ResourceWarning
if an unclosed connection is garbage collected.
Raise a clear error if there's a race in pool intialization.
Channel names in Connection.add_listener() and
Connection.remove_listener() are now quoted properly.
Fixed endianness detection on *BSD systems.
Fixed handling of large type OIDs.
asyncpg v0.16.0:
Behavior Changes
----------------
Pool.close() now waits until all acquired connections are released.
Hence, the below code will now hang indefinitely:
conn = await pool.acquire()
await pool.close()
Asyncpg will log a warning if pool.close() takes over 60 seconds to
complete. It is advisable to use asyncio.wait_for() to set a timeout.
Improvements
------------
Add support for reading passwords from .pgpass
Add Connection.is_in_transaction()
Added codec for built-in type tid
Allow setting custom codecs on domains and enumerated types
Allow passing datetime.date instances as timestamp input
Implement support for pool connection rotation
Bug Fixes
---------
Prohibit non-iterable containers to be passed as array input
Decode numeric zeros with correct scale
Fix handling of OIDs >= 2**31
Make Pool.close() wait until all checked out connections are released
Fix type codec cache races
Raise a consistent exception on input encoding errors
asyncpg v0.15.0
Behavior Changes
asyncpg no longer uses the common statement cache for explicit
prepared statements, so Connection.prepare() always returns a
new prepared statement
Bug Fixes
Initialize statement codecs immediately after Prepare
Fix server version parsing when it contains trailing data
v0.14.0:
Backwards Incompatible Changes:
asyncpg now reports the server version as x.0.y for PostgreSQL 10.0 and later.
This is in alignment with how upstream is interpreting the "minor" version
component now.
Improvements:
Support timeouts in Connection.close() and Pool.release()
Invalidate type cache on schema changes affecting statement result.
A new Connection.reload_schema_state() method.
Add CrateDB detection
Bug Fixes:
Make prepared statement uid generator global
Document pgbouncer-related prepared statement breakage
Fix unaligned access issues in host-network byte I/O on ARM
Fix issues with timetz type I/O
Consistently use postgres/postgres as database/user pair in tests
Fix Range.__hash__()
Guard transaction methods against underlying connection release
v0.13.0
Backwards Incompatible Changes
------------------------------
Drop support for PostgreSQL 9.1
Remove the deprecated "binary" parameter from Connection.set_type_codec()
New Features
------------
Add support for PostgreSQL 10
Bug Fixes
---------
Document that single fetches can return None
Fix type introspection being very slow on large databases
Fix copy tests on PostgreSQL < 9.4
Fix DeprecationWarning in tests
Fix intermittent authentication failures against PostgreSQL 10 servers
Do not attempt to connect to Unix sockets on Windows when host is not set
Guard against incorrect use of resources associated with a connection
Warn when there are active listeners on a connection that is released
Add a test for cursors on a standby replica.
Clarify the argument/parameter count mismatch exception
Fix TypeError on get_attributes when result has no columns
protocol: Use try-finally explicitly every time we create a waiter
Call correct parent constructor in InterfaceWarning.__init__
Allow grabbing the version information programmatically.
Use the general statement cache for type introspection
Fix issues with inet type I/O
Handle inactive connection closes while stored in the pool