Releases: MagicStack/asyncpg
v0.30.0
Support Python 3.13 and PostgreSQL 17.
Improvements
-
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)
Fixes
-
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 incopy_from_query
, returningNULL
(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)
v0.29.0
Minor fixes and improvements.
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 incopy_to
methods (#941)
(by @kaylynn234 in b7ffab6) -
Add query logging callbacks and context manager (#1043)
(by @dcwatson in b2697ff)
Fixes
-
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)
Other
- Drop support for Python 3.7 (#1064)
(by @bryanforbes in 87ab143)
v0.28.0
Minor fixes and improvements.
Changes
-
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)
v0.27.0
Support Python 3.11 and PostgreSQL 15. This release also drops support
for Python 3.6.
Changes
-
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)
v0.26.0
Changes
-
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)
Fixes
-
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)
v0.25.0
Changes
-
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)
Fixes
-
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)
v0.24.0
Changes
-
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)
Fixes
v0.23.0
Fixes
-
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)
v0.22.0
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.
Improvements
-
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)
Fixes
-
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 inConnectionSettings
(#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)
asyncpg v0.21.0
Improvements
-
Add support for password functions (useful for RDS IAM auth) (#554)
(by Harvey Frye in 1d9457f for #554) -
Add support for connection termination listeners (#525)
(by @iomintz in 8141b93 for #525) -
Update CI matrix, aarch64 builds (#595)
(by @Gelbpunkt in ac6a2fc for #595)
Fixes
-
Fix possible uninitalized pointer access on unexpected array
message data (CVE-2020-17446, by @elprans in 69bcdf5,
reported by @risicle) -
Fix Connection class _copy_in private method
(by @ABCDeath in 7f5c2a2 for #555) -
Bump pgproto to fix compilation issues
(by @elprans in aa67d61 for #565) -
Improve pool documentation examples (#491)
(by @nyurik in 745f8f8 for #491) -
Update usage.rst (#572)
(by @xuedong09 in f5b425a for #572) -
Fix links in connection documentation (#584)
(by @samuelcolvin in b081320 for #584) -
Fix usage documentation for hstore (#515)
(by @aaliddell in 39040b3 for #515)