NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #257 most downloaded on PyPI
An asyncio PostgreSQL driver
Last release 10 months ago
24 Nov 2025
Ships fairly regularly
a new release about every 6 months
Most releases are documented
notes for 29 of 42 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
43 releases · first in 2016
Enable Python 3.14 with experimental subinterpreter/freethreading support.
Enable Python 3.14 with experimental subinterpreter/freethreading
support.
Add Python 3.14 support, experimental subinterpreter/freethreading support (#1279)
(by @elprans in 9e42642)
Avoid performing type introspection on known types (#1243)
(by @elprans in 5c9986c)
Make prepare() not use named statements by default when cache is disabled (#1245)
(by @elprans in 5b14653)
Implement connection service file functionality (#1223)
(by @AndrewJackson2020 in 1d63bb1)
Fix multi port connection string issue (#1222)
(by @AndrewJackson2020 in 01c0db7)
Avoid leaking connections if _can_use_connection fails (#1269)
(by @yuliy-openai in e94302d)
One column per quarter.
Support Python 3.13 and PostgreSQL 17.
Support Python 3.13 and PostgreSQL 17.
Implement GSSAPI authentication
(by @eltoder in 1d4e568 for #1122)
Implement SSPI authentication
(by @eltoder in 1aab209 for #1128)
Add initial typings
(by @bryanforbes in d42432b for #1127)
Allow building with Cython 3
(by @musicinmybrain in 258d8a9 for #1101)
docs: fix connection pool close call (#1125)
(by @paulovitorweb in e848814 for #1125)
Add support for the sslnegotiation parameter
(by @elprans in afdb05c for #1187)
Test and build on Python 3.13
(by @elprans in 3aa9894 for #1188)
Support PostgreSQL 17
(by @elprans in cee97e1 for #1189)
(by @MeggyCal in aa2d0e6 for #1185)
Add fetchmany to execute many and return rows
(by @rossmacarthur in 73f2209 for #1175)
Add connect kwarg to Pool to better support GCP's CloudSQL
(by @d1manson in 3ee19ba for #1170)
Allow customizing connection state reset (#1191)
(by @elprans in f6ec755 for #1191)
s/quote/quote_plus/ in the note about DSN part quoting
(by @elprans in 1194a8a for #1151)
Use asyncio.run() instead of run_until_complete()
(by @eltoder in 9fcddfc for #1140)
Require async_timeout for python < 3.11 (#1177)
(by @Pliner in 327f2a7 for #1177)
Allow testing with uvloop on Python 3.12 (#1182)
(by @musicinmybrain in 597fe54 for #1182)
Mark pool-wrapped connection coroutine methods as coroutines
(by @elprans in 636420b for #1134)
handle None parameters in copy_from_query, returning NULL
(by @fobispotc in 259d16e for #1180)
fix: return the pool from async_init_ if it's already initialized (#1104)
(by @guacs in 7dc5872 for #1104)
Replace obsolete, unsafe Py_TRASHCAN_SAFE_BEGIN/END (#1150)
(by @musicinmybrain in 11101c6 for #1150)
Python 3.12 and PostgreSQL 16 support ( #1084 ) (by @elprans in deea86c )
Minor fixes and improvements.
Python 3.12 and PostgreSQL 16 support (#1084)
(by @elprans in deea86c)
Add support for tuple-format custom codecs on composite types (#1061)
(by @elprans in 922fcd1)
Support target_session_attrs in URL format, add tests (#1073)
(by @elprans in 7cb4e70)
Infinity numeric support (#1067)
(by @krokoziabla in 0c3bf60 for #1020)
Add support for the WHERE clause in copy_to methods (#941)
(by @kaylynn234 in b7ffab6)
Add query logging callbacks and context manager (#1043)
(by @dcwatson in b2697ff)
When prepared statements are disabled, avoid relying on them harder (#1065)
(by @elprans in cbf64e1)
Handle environments with HOME set to a not-a-directory (#1063)
(by @elprans in af922bc)
Fix handling of non-ASCII passwords (#1062)
(by @elprans in 89d5bd0)
Disable JIT while doing type introspection (#1082)
(by @elprans in f21ebf6)
Remove connection parameter caching in Pool (#1053)
(by @ermakov-oleg in 4ddb039)
Switch to Python 3.12-style wait_for (#1086)
(by @elprans in 4bdd8a7)
Update automatic PostGIS type conversion for Shapely 2.0 (#1085)
(by @ChimneySwift in 8b45beb)
Use the timeout context manager in the connection path (#1087)
(by @elprans in 313b2b2)
Small fix for documentation on using SSL in Connection (#995)
(by @ScottFred in ccc7baf)
Use cleanup_ctx in pool usage doc (#878)
(by @ir4y in 70c8bd8)
Close cursor portals once the iterator is exhausted (#1088)
(by @elprans in ca9f03b)
Cut BaseProtocol circular reference on close. (#1049)
(by @pteromys in 93a6f79)
Allow passing hosts as tuples to connect() (in addition to lists) (#1021)
(by @lezram in d7faaff)
Do not try to cleanup statements ( #981 ) (by @fvannee in d2e710f for #981 )
Minor fixes and improvements.
Do not try to cleanup statements (#981)
(by @fvannee in d2e710f for #981)
Add Pool.is_closing() method (#973)
(by @singingwolfboy in 9cb2c1c for #973)
Fix test_tls_version for LibreSSL (#974)
(by @CyberTailor in 7df9812 for #974)
Handle environments without home dir (#1011)
(by @LeonardBesson in 172b8f6 for #1011)
fix: salt and iterations parsing for scram (#1026)
(by @trigonometr in 7443a9e for #1026)
Add support for target_session_attrs (#987)
(by @JesseDeLoore in bf74e88 for #987)
Add support for READ UNCOMMITTED (#1039)
(by @benwah in 2f20bae for #1039)
Update benchmarks, add psycopg3 (#1042)
(by @elprans in 7d4fcf0 for #1042)
Test on Python 3.11 and PostgreSQL 15, fix workflow deprecations ( #968 ) (by @elprans in eab7fdf for #968 )
Support Python 3.11 and PostgreSQL 15. This release also drops support
for Python 3.6.
Add arm64 mac and linux wheels
(by @ddelange in 7bd6c49 for #954)
Add Python 3.11 to the test matrix
(by @elprans in 5f908e6 for #948)
Exclude .venv from flake8 (#958)
(by @jparise in 40b16ea for #958)
Upgrade to flake8 5.0.4 (from 3.9.2) (#961)
(by @jparise in 0e73fec for #961)
Show an example of a custom Record class (#960)
(by @jparise in 84c99bf for #960)
Use the exact type name in Record.repr (#959)
(by @jparise in eccdf61 for #959)
Drop Python 3.6 support (#940)
(by @bryanforbes in bb0cb39 for #940)
Test on Python 3.11 and PostgreSQL 15, fix workflow deprecations (#968)
(by @elprans in eab7fdf for #968)
Add support to use awaitable object in password function. ( #889 ) (by @kwarunek in fb3b6bf for #889 )
Add support to use awaitable object in password function. (#889)
(by @kwarunek in fb3b6bf for #889)
Support direct TLS connections (i.e. no STARTTLS) (#923)
(by @jackwotherspoon in f2a937d for #923)
Fix invalid pyproject.toml (#900)
(by @Rongronggg9 in eddb649 for #900)
Add record_class parameter Pool.fetch and Pool.fetchrow (#896)
(by @baltitenger in 2519cf3 for #896)
Domain basetypes are introspected (#886) (#887)
(by @QuantumTM in cca4a2d for #886)
Properly handle exceptions raised while handling server auth messages (#862)
(by @elprans in bd19262 for #862)
Fix SSLContext deprecation warnings (by @elprans in 4d39a05 )
Improve SSL option compatibility in URIs
(by @fantix in 383c711 for #827)
Add Pool methods to determine its min, max, current and idle size
(by @elprans in 603e386 for #849)
Make it possible to specify a statement name in Connection.prepare()
(by @elprans in 03a3d18 for #846)
Implement support for multirange types
(by @elprans in d64a44a for #851)
Make sure timeout callbacks always get cleaned up
(by @elprans in dad2691 for #831)
Update __all__ statements to a simpler form that is better supported by typecheckers
(by @bschnurr in 0a3ae7f for #828)
Fix test_timetz_encoding on Python 3.10
(by @elprans in 3a90fef)
Fix a bunch of ResourceWarnings in the test suite
(by @elprans in 2f4fe53)
Fix SSLContext deprecation warnings
(by @elprans in 4d39a05)
Fix the description of the database argument to connect()
(by @elprans in a2a9237 for #847)
Fix parsing of IPv6 addresses in the connection URI
(by @elprans in f900b73 for #845)
Improve diagnostics of invalid executemany() input
(by @elprans in a8fc21e for #848)
Drop support for Python 3.5 ( #777 ) (by @and-semakin in da58cd2 for #777 )
Drop support for Python 3.5 (#777)
(by @and-semakin in da58cd2 for #777)
Add support for Python 3.10 (#795)
(by @elprans in abf5569 for #795)
Add support for asynchronous iterables to copy_records_to_table() (#713)
(by @elprans in 1d33ff6 for #713)
Add support for coroutine functions as listener callbacks (#802)
(by @elprans in 41da093 for #802)
Add support for sslcert, sslkey and sslrootcert parameters to DSN (#768)
(by @jdobes and @elprans in c674e86 for #768)
Add copy_ wrappers to Pool (#661)
(by @elprans in a6b0f28 for #661)
Add issubset and issuperset methods to the Range type (#563)
(by @kdorsel in de07d0a for #563)
Avoid TypeError in Transaction.__repr__ ( #703 ) (by @BeatButton in d6eea8e for #703 )
Avoid TypeError in Transaction.__repr__ (#703)
(by @BeatButton in d6eea8e for #703)
Feed memoryview to writelines() (#715)
(by @fantix in 359a34c for #715)
Add sslmode=allow support and fix =prefer retry (#720)
(by @fantix in 075114c for #720)
Loosen message test in test_invalid_input (#751)
(by @musicinmybrain in bc4127f for #751)
Support readonly and deferrable for non-serializable transactions (#747)
(by @pauldraper in 5cf4089 for #747)
Fix asyncpg with Py_DEBUG mode (#719)
(by @shadchin in a113d90 for #719)
Fix docs/Makefile and docs/_static/theme_overrides.css missing from PyPI package (#708)
(by @musicinmybrain in c306068 for #708)
Notable additions include Python 3.9 support, support for recently added PostgreSQL types like jsonpath , and last but not least, vastly improved exec
A new asyncpg release is here.
Notable additions include Python 3.9 support, support for recently added
PostgreSQL types like jsonpath, and last but not least, vastly
improved executemany() performance. Importantly, executemany() is
also now atomic, which means that either all iterations succeed, or
none at all, whereas previously partial results would have remained in
place, unless executemany() was called in a transaction.
There is also the usual assortment of improvements and bugfixes, see the
details below.
This is the last release of asyncpg that supports Python 3.5, which has
reached EOL last September.
Vastly speedup executemany by batching protocol messages (#295)
(by @fantix in 690048d for #295)
Allow using custom Record class
(by @elprans in db4f1a6 for #577)
Add Python 3.9 support (#610)
(by @elprans in c05d726 for #610)
Prefer SSL connections by default (#660)
(by @elprans in 16183aa for #660)
Add codecs for a bunch of new builtin types (#665)
(by @elprans in b53f038 for #665)
Expose Pool as asyncpg.Pool (#669)
(by @rugleb in 0e0eb8d for #669)
Avoid unnecessary overhead during connection reset (#648)
(by @kitogo in ff5da5f for #648)
Add a workaround for bpo-37658
(by @elprans in 2bac166 for #21894)
Fix wrong default transaction isolation level (#622)
(by @fantix in 4a627d5 for #622)
Fix set_type_codec() to accept standard SQL type names (#619)
(by @elprans in 68b40cb for #619)
Ignore custom data codec for internal introspection (#618)
(by @fantix in e064f59 for #618)
Fix null/NULL quoting in array text encoder (#627)
(by @fantix in 92aa806 for #627)
Fix link in connect docstring (#653)
(by @samuelcolvin in 8b313bd for #653)
Make asyncpg work with pyinstaller (#651)
(by @Atem18 in 5ddabb1 for #651)
Fix possible AttributeError exception in ConnectionSettings (#632)
(by @petriborg in 0d23182 for #632)
Prohibit custom codecs on domains
(by @elprans in 50f964f for #457)
Raise proper error on anonymous composite input (tuple arguments) (#664)
(by @elprans in 7252dbe for #664)
Fix incorrect application of custom codecs in some cases (#662)
(by @elprans in 50f65fb for #662)
Fix possible uninitalized pointer access on unexpected array message data (CVE-2020-17446, by @elprans in 69bcdf5b, reported by @risicle)
Add support for password functions (useful for RDS IAM auth) (#554) (by Harvey Frye in 1d9457f0 for #554)
Add support for connection termination listeners (#525) (by @iomintz in 8141b93c for #525)
Update CI matrix, aarch64 builds (#595) (by @Gelbpunkt in ac6a2fcf for #595)
Fix possible uninitalized pointer access on unexpected array message data (CVE-2020-17446, by @elprans in 69bcdf5b, reported by @risicle)
Fix Connection class _copy_in private method (by @ABCDeath in 7f5c2a24 for #555)
Bump pgproto to fix compilation issues (by @elprans in aa67d61b for #565)
Improve pool documentation examples (#491) (by @nyurik in 745f8f81 for #491)
Update usage.rst (#572) (by @xuedong09 in f5b425ae for #572)
Fix links in connection documentation (#584) (by @samuelcolvin in b0813204 for #584)
Fix usage documentation for hstore (#515) (by @aaliddell in 39040b3c for #515)
Fix compiler warnings (by @elprans in 6cb5ba19)
Nothing published for this version
Support Python 3.8 (by @1st1 in #504)
Support Python 3.8 (by @1st1 in #504)
Support PgBouncer by sending only a single SYNC message per query (by @fvannee in b043fbd3)
Handle IP values with prefix in "inet" type as ipaddress.IPvXInterface
(by @elprans in 5a4daf71 for #497)
Close transport if connection times out (by @hexrain in 926f4833 for #468)
Use faster UUID codecs; make UUID decoding/encoding/operations 2-7x faster (by @1st1 in edde3ff4)
Use loop.start_tls() to upgrade connections to SSL
(by @1st1 in bdba7ce7)
Fix DeprecationWarning in the docstring of copy_from_query() (by @elprans in 482a39ae)
Add support for SCRAM-SHA-256 authentication. (by @jkatz in 2d76f50d)
Add PostgreSQL 12 support (by @elprans in 23261532)
Remove preexec_fn hack from test cluster management (by @elprans in 36ed11d2)
Fix DeprecationWarning in the docstring of copy_from_query() (by @elprans in 482a39ae)
Allow specifying the target version when generating the release log (by @elprans in 43a7b213)
Check for .flake8 after importing flake8 (by @dotlambda in aaeb7076)
Include .flake8 in PyPI tarball (by @dotlambda in 43c6b9ce)
fix timezone type label in docs (by @claws in e91e4911)
Fix _StatementCache.clear() PS memory leak (by @un-def in f4aa9bf4 for #416)
fix for warning_callback not yet defined (by @samuelcolvin in 354d9be5)
Fix assertion fail on copy_records_to_table (by Petr Reznikov in ae5a89db)
Do not look for a port in a Unix socket domain path (by @Lawouach in b773912d for #419)
Unquote connection string components properly (by @elprans in 5513b9d3 for #418)
Remove superfluous transaction from a cursor example (by @elprans in 32fccaad for #475)
Nothing published for this version
Revert "Stop treating ReadyForQuery as a universal result indicator" to fix stability regression. (by @elprans in 04b67480)
Revert "Stop treating ReadyForQuery as a universal result indicator" to fix stability regression. (by @elprans in 04b67480)
Correctly ignore all incoming messages after the Terminate message (by @elprans in 787317fb)
Properly cleanup connections closed by remote (by @elprans in 4393a159 for #385)
Fix DSN parsing regression (by @elprans in 8b98e7b4)
Implement Record.get() (by @elprans in 2b93ee55 for #330)
Implement Record.get()
(by @elprans in 2b93ee55 for #330)
Internal asyncpg errors are now consistently raised as
InternalClientError (by @elprans in 263de3ff)
Allow mappings as composite type input (by @elprans in eaa2fa1a for #349)
Add BitString.to_int() and BitString.from_int()
(by @percontation in ffd134e8)
Allow 'sslmode' in DSNs (by @percontation in 0304288e)
Add support for specifying multiple host addresses when connecting (by @elprans in 1d650ed9 for #257)
Low-level protocol implementation has been tweaked and optimized for slightly better performance in certain scenarios (by @elprans in 7a816138 and cc053fe5)
Queries with cached statements now generate fewer TCP packets (by @aleksey-mashanov in bf071996)
Allow aliasing builtin types by name in set_builtin_type_codec()
(by @elprans in 687127ed)
Factor out generic PostgreSQL protocol helpers into a separate package (by @1st1 in f0adefc7)
Fix tests and enable CI for PostgreSQL 11 (by @elprans in ddb0ec29 and 716fd9d3)
Handle and ignore permission errors when attempting to read .pgpass (by @elprans in df7830f0 for #356)
Fix decoding of fractional timestamps before Postgres epoch (by @elprans in a7eaf2b3 for #363)
Official support for Python 3.7.
Official support for Python 3.7.
Fix garbage collection of connections and emit a ResourceWarning
if an unclosed connection is garbage collected.
(by @1st1 in d9a236e7 for #323)
Raise a clear error if there's a race in pool intialization. (by @1st1 in 3565ef8c for #320)
Channel names in Connection.add_listener() and
Connection.remove_listener() are now quoted properly.
(by @sqwishy in 3e6ade62)
Fixed endianness detection on *BSD systems. (by @elprans in 8c83add4 for #313)
Fixed handling of large type OIDs. (by @elprans in 2624bdb9 for #300)
Pool.close() now waits until all acquired connections are released. Hence, the below code will now hang indefinitely:
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.
Add support for reading passwords from .pgpass (by @elprans in 55a372fc for #267)
Add Connection.is_in_transaction() (#297)
(by @bcaudell95 in cf523be7 for #297)
Added codec for built-in type tid (by @fantix in cddea9c1)
Allow setting custom codecs on domains and enumerated types (by @elprans in 3139322a)
Allow passing datetime.date instances as timestamp input
(by @elprans in e8cc627a for #288)
Implement support for pool connection rotation (by @elprans in 4d209b75 for #291)
Prohibit non-iterable containers to be passed as array input (by @elprans in a2fa7b23)
Decode numeric zeros with correct scale (by Dmitriy Chugunov in 4124f7d2)
Fix handling of OIDs >= 2**31 (by @elprans in 8dd7a6cb for #279)
Make Pool.close() wait until all checked out connections are released
(by @elprans in 7a0585ac for #290)
Fix type codec cache races (by @elprans in 482a1866 for #278)
Raise a consistent exception on input encoding errors (by @elprans in 0ddfa466 for #260)
asyncpg no longer uses the common statement cache for explicit prepared statements, so Connection.prepare() always returns a new prepared statement (b
asyncpg no longer uses the common statement cache for explicit
prepared statements, so Connection.prepare() always returns a
new prepared statement (by @vangheem in a19ce50f).
Initialize statement codecs immediately after Prepare (by @elprans in 803c1155 for #241)
Fix server version parsing when it contains trailing data (by @elprans in 05dce25f for #250)
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" vers
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. (@elprans in 1fa12fe2)
Support timeouts in Connection.close() and Pool.release()
(by @elprans in bdfdd898 for #220)
Invalidate type cache on schema changes affecting statement result.
A new Connection.reload_schema_state() method.
(by @vitaly-burovoy in b04556e9)
Add CrateDB detection (by @mfussenegger in afc1038f)
Make prepared statement uid generator global (by @1st1 in 3e43fcf5)
Document pgbouncer-related prepared statement breakage (by @elprans in 4a3713f7 for #121)
Fix unaligned access issues in host-network byte I/O on ARM (by @elprans in c04576db for #216)
Fix issues with timetz type I/O (by @vitaly-burovoy in 7b6c0833)
Consistently use postgres/postgres as database/user pair in tests (by @elprans in b4ce7403)
Fix Range.__hash__()
(by @eumiro in 46f468c9)
Guard transaction methods against underlying connection release (by @elprans in 59e2878b for #232)
Remove the deprecated "binary" parameter from Connection.set_type_codec() (by @elprans in 9ad6625a)
Drop support for PostgreSQL 9.1 (by @elprans in eaf298b4)
Remove the deprecated "binary" parameter from Connection.set_type_codec()
(by @elprans in 9ad6625a)
Document that single fetches can return None (by @khazhyk in 23394c9d)
Fix type introspection being very slow on large databases (by @elprans in e0c44ced for #186)
Fix copy tests on PostgreSQL < 9.4 (by @elprans in 327058f8)
Fix DeprecationWarning in tests (by @elprans in 3f9523c2)
Fix intermittent authentication failures against PostgreSQL 10 servers (by @elprans in 498213e6 for #158)
Do not attempt to connect to Unix sockets on Windows when host is not set (by @elprans in 8a32fc4b for #184)
Guard against incorrect use of resources associated with a connection (by @elprans in 089ac818, 93bf26f3 for #190)
Warn when there are active listeners on a connection that is released (by @elprans in d085d2cc for #190)
Add a test for cursors on a standby replica. (by @elprans in c484a470 for #66)
Clarify the argument/parameter count mismatch exception (by @elprans in b6fe0186 for #178)
Fix TypeError on get_attributes when result has no columns
(by @fantix in f29de232)
protocol: Use try-finally explicitly every time we create a waiter
(by @1st1 in 50edd8c8)
Call correct parent constructor in InterfaceWarning.__init__
(by @elprans in eec98b0b)
Allow grabbing the version information programmatically. (by @s0undt3ch in fa6dbc46)
Use the general statement cache for type introspection (by @elprans in 57c9ffdc for #198)
Fix issues with inet type I/O (by @elprans in e54f02e6 for #37)
Handle inactive connection closes while stored in the pool (by @AmatanHead in 9744adee)
Implement as_dict() method for PostgresMessage. (by @vitaly-burovoy in 90725f1f)
Implement as_dict() method for PostgresMessage.
(by @vitaly-burovoy in 90725f1f)
Add API for receiving log messages connection.add_log_listener().
(by @vitaly-burovoy and @1st1 in 1b1893df and f072f883 for #144)
Add support for "tuple" exchange format for codec overrides. (by @elprans in 0453243b and d27dda72)
Implement binary format codec for numeric type. (by @elprans in a5413eb0 for #157)
Fix boundary checks for integers. (by @vitaly-burovoy in e0829104 and dfcf1356)
Fix handling of NULLs in copy_records_to_table().
(by @elprans in 991b1ae8 for #153)
Raise an error when a binary COPY FROM is attempted w/o appropriate codec.
(by @elprans in 7aac14e2 for #157)
Fix Record.items() to support duplicate keys. See #28 for details.
(by @1st1 in 39b390c3 for #28)
Fix Record.keys() to correctly return duplicate keys. See #28.
(by @1st1 in b06114de for #28)
Call notifications listeners using loop.call_soon().
(by @1st1 in 83d08bd8)
Make PoolConnectionProxy more dynamic. Fixes #155.
(by @1st1 in 6ca1f28b for #155)
Make sure set_type_codec() overrides core codec for all formats.
(by @elprans in 9c32b86f for #140)
New severity "V" field as "severity_en" attribute. (by @vitaly-burovoy in 35bce5a8)
Make interval decoding logic match that of psycopg2. (by @elprans in 6b484433 for #150)
Make timeout param of executemany() a keyword-only kwarg. (by @1st1 in bb326fc0)
Make timeout param of executemany() a keyword-only kwarg.
(by @1st1 in bb326fc0)
Prohibit passing non-string instances as text arguments to queries. (by @elprans in ccc5f7a5)
connect() and create_pool() no longer accept arbitrary
keyword arguments for server settings. Use new server_settings
argument for that.
Add support for COPY IN. (by @elprans in 10d95d43 for #123)
Add support for COPY OUT. (by @elprans and @1st1 in 5662d9f5 for #21)
Refactor args parsing and config management for connect() and
create_pool().
(by @1st1 in f280a566)
support postgres-xl version (by songjy in ffb89592)
Fix erroneous codec cache invalidation on internal codec aliasing. (by @elprans in df64f554 for #133)
Fix potential segfault in text array decoder. (by @elprans in bbd116be)
Limit max number of arguments (closes #127). (by @1st1 in 128910e4 for #127)
Add new Connection parameter: max_cacheable_statement_size. (by @1st1 in b1f87ebe for #115)
max_cacheable_statement_size.
(by @1st1 in b1f87ebe for #115)Require command_timeout argument of connect() be greater than 0.
(by @1st1 in 7b7ce990)
Fix SSL support in connection pool. (by @elprans in b89fb458 for #119)
Make timeout in connect() consistent. (by @1st1 in 1d8f5cf1 for #117)
Add support for SSL connections. (by @1st1 in 5836a8fc for #25)
Add support for SSL connections. (by @1st1 in 5836a8fc for #25)
Add max_cached_statement_lifetime parameter to asyncpg.connect().
(by @1st1 in 10955fdd for #76)
Add max_inactive_connection_lifetime parameter to asyncpg.create_pool().
(by @1st1 in a2935aed)
Expose some of Connection methods directly on the Pool object.
(by @1st1 in 1b3a847c for #39)
Allow overriding codecs for builtin types on a connection. (by @elprans in 71de129b for #73)
Add support for the text I/O fallback for arrays of unknown types. (by @elprans in a2e53ab0 for #82)
Make the Record type available as asyncpg.Record.
(by @elprans in d42608f9 for #93)
pool: Track connections and prohibit using them after release. (by @1st1 in 3bf6103e)
Rollback any active transactions in Connection.reset().
(by @1st1 in 0d19d962)
Invalidate statement cache on schema changes affecting statement result. (by @elprans in 749d857a for #72)
Use anonymous prepared statements when the cache is off. (by @1st1 in a3e9cb45 for #76)
Raise an error if connection is used after being closed. (by @1st1 in 5ddd7fc9)
Add Amazon Redshift detection. (by @elprans in 4fdc1dbc for #29)
Add rudimentary server capability detection. (by @elprans in e8bb3dc0 for #87)
Handle exceptions in generators passed to Connection.executemany().
(by @elprans in 8d17eccb for #85)
Shield Pool.release() from task cancellation.
(by @elprans in 537c8c9f for #97)
Fix inclusion of DETAIL and HINT in Postgres messages.
(by @elprans in 2e346c12)
Implement conistent handling of timeouts. (by @elprans in 1674dece)
Make timeout arg of Connection.executemany() a keyword-only arg.
(by @1st1 in 424760d3)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Increase pool.acquire timeout in tests to avoid failures on Travis
Elvis Pranskevichus (9):
Vitaly Burovoy (3):
Nothing published for this version
Fix Connection.reset() on read-only connections
Elvis Pranskevichus (7):
Lele Gaifax (1):
Yury Selivanov (2):
Nothing published for this version
Fix parsing pg_ctl output in some locales
Chris Lamb (1):
Elvis Pranskevichus (9):
Yury Selivanov (3):
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix timestamp codec on 32-bit systems
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →