Articles tagged news
I am extremely excited to announce the first stable release of Psycopg 3!
We are immensely proud to release on PyPI the first beta package of Psycopg 3!
Psycopg 2.9 has been released!
This is a relatively small release compared to previous major releases. However the creation of the packages took a lot of effort. The previously used CI system now has reduced support for free software projects - it was decided that package building should be moved to GitHub Actions.
Packaging has also become more complex because of the evolution of the Python packaging standards and the need to support multiple architectures (Intel, ARM, PPC...).
Maintaining a project such as Psycopg requires a lot of effort. For this reason, we are extremely grateful to all our sponsors who are enabling the maintenance and development of Psycopg. Thank you very much!
The adaptation system between Python objects and PostgreSQL types is at the core of psycopg2 and psycopg3. The flexibility of the psycopg2 adaptation system provides good out-of-the-box object mapping and allows users to customise it to suit any need. Do you want your decimal numbers returned as float because you need speed over pennies? Do you want to map PostgreSQL Infinity dates to the 25th of December 3099? That's certainly doable.
The psycopg3 adaptation system needs some modification compared to psycopg2, because psycopg3 uses the "extended query protocol" to send query parameters separately from the query. Together, with the differences to accommodate, there is also a chance to improve a system that has been in use for several years and has shown its shortcomings together with its strengths.
psycopg2 allows interaction with PostgreSQL COPY commands. However what is possible to do with them is relatively limited: the only possible interaction is with file-like objects:
- there is no adaptation from Python objects to PostgreSQL, as there is for normal queries: data must be formatted "manually" by the user;
- psycopg2 "pulls" data from the file: writing a system that produces data and pushes it into PostgreSQL is a very contrived operation, requiring to write a blocking file-like object;
- there is no support for asynchronous copy.
psycopg3 addresses these shortcomings and makes it easy to write Python programs producing data and pushing it efficiently to the database using the COPY protocol.
Psycopg 2.8.6 has been released.
Psycopg 2.8.5 has been released.
This release adds support for AIX and brings a few bug fixes.
Psycopg 2.8.4 has been released.
The release brings a few assorted bugfixes and adds support for Python 3.8 and PostgreSQL 12.
We have released Psycopg 2.8.3, which includes a slight change to the logical replication.
Choosing the right frequency to send replication feedback messages from the client to the server was previously the developer's responsibility, with too many feedback messages being a waste of bandwidth and server resources, too few slowing down WAL cleanup and possibly preventing a server graceful shutdown.
We have just released Psycopg 2.8.2; a few days ago Psycopg 2.8.1 was released.
Some of the bugs addressed are ordinary teething problem with the 2.8 release, but an important change landed with 2.8.2: binary packages now ship with OpenSSL 1.1 instead of 1.0. This should fix concurrency problems on connection experienced both on Windows and Linux. Many thanks to Matthew Brett and Jason Erickson for this improvement!
After about two years from the previous major release, psycopg 2.8 is finally here!
Among the highlights, PostgreSQL errors are now mapped to Python exceptions for a more idiomatic way to handle them. Several additions allow a better insight of the connection status and query results.
Behind the scene, asynchronous communication and concurrency received several improvements, and dropping support for older versions of Python gave the chance to refactor and modernise the codebase (with the especial help from Jon Dufresne who ruthlessly butchered our code into a streamlined pulp).
Thank you very much to everyone contributing so far. Happy hacking!
psycopg2 version 2.7.5 has been released, fixing a few bugs found in the last months:
We have released Psycopg version 2.7.4, bringing a few bug fixes... and working out the problem with Wheel packages.
Following the release of PostgreSQL 10 we have released new binary packages as Psycopg 22.214.171.124. There are no code changes from Psycopg 2.7.3, but the new binary packages ship with the PostgreSQL 10 client library, enabling the use of new features such as multiple hosts in connection string, read-only mode, SCRAM-SHA-256 authentication.
We have released psycopg2 release 126.96.36.199 as a new build of psycopg 2.7.3. The new build only affects the wheel packages and contains no change in the code.
The release 188.8.131.52 fixes psycopg2-wheels bug #2 which was in turn caused by auditwheel bug #80, resulting in incompatibility with glibc 2.26. The problem only affects Linux wheels users, it doesn't affect Windows, OSX, or user installing psycopg2 from source.
A quick release to fix a regression found in psycopg 2.7.2:
- Restored default timestamptz typecasting to Python datetime. Regression introduced in Psycopg 2.7.2 (ticket #578).
Releasing psycopg2 version 2.7.2: a release fixing a host of bugs found in the last 3-4 months.
A quick bugfix release to solve some teething problems with some of the changes introduced in 2.7:
- Ignore None arguments passed to connect() and make_dsn() (ticket #517).
- OpenSSL upgraded from major version 0.9.8 to 1.0.2 in the Linux wheel packages (ticket #518).
- Fixed build with libpq versions < 9.3 (ticket #520).
Finally here! Thank you very much for waiting so long: we have finally released Psycopg 2.7!
- Faster! Helps generating SQL for repeatedly executed statements and faster Unicode decoding.
- Safer! Helps generating dynamic SQL statements with variable table and field names.
- Easier! Use the binary package to avoid the need of C compiler, pg_config, libpq required on the clients.
- Replication! Support for PostgreSQL physical and logical replication.
- Plays-better-with-pgbouncer-at-transaction-pooling-level! This.
we have released psycopg2 version 2.7 beta 2. This version comes two years after the previous major release so it is packed with new features and improvements; among the main points:
Psycopg 2.6.2 has been released. You can get it from:
This is an interim release, packing together one year of bug fixes, before the release 2.7, intended to deliver several new features. Thank you very much to everybody contributing with reports, code, suggestions.
Psycopg 2.6.1 has been released. You can get it from:
We have just released two Psycopg versions: 2.5.5 containing a few bug fixes and 2.6 introducing some new features.
Psycopg 2.5.4 has been released. You can get it from:
This version supports the new jsonb PostgreSQL type out-of-the-box. And of course there are a few bug fixed:
Psycopg 2.5.3 has been released. You can get it from:
This version contains several bug fixes over the previous release 2.5.2:
Psycopg 2.5.2 has been released. You can get it from:
This version contains a few bug fixes over the previous release 2.5.1:
- Fixed segfault pickling the exception raised on connection error (ticket #170).
- Meaningful connection errors report a meaningful message, thanks to Alexey Borzenkov (ticket #173).
- Manually creating lobject with the wrong parameter doesn't segfault (ticket #187).
Thank you very much to all the people who helped during the development!
Psycopg 2.5.1 has been released. You can get it from:
The version contains a few bug fixes over the previous 2.5:
- Fixed build on Solaris 10 and 11 where the round() function is already declared (ticket #146).
- Fixed comparison of Range with non-range objects (ticket #164). Thanks to Chris Withers for the patch.
- Fixed double-free on connection dealloc (ticket #166). Thanks to Gangadharan S.A. for the report and fix suggestion.
We are happy to introduce the release 2.5 of Psycopg, packed with several juicy new features!
Here are a few highlights of the release:
I'm happy to announce the release of Psycopg 2.4.6: a huge thank you to the many contributors.
This is a bugfix release, introducing no new feature. There are several small corrections in different areas (copy, adaptation, use of extra cursors, stability). The biggest improvements are with the Zope adapter: Zope users using previous 2.4.x versions are encouraged to update to version 2.4.6 soon.
Many thanks to everybody that contributed with bug reports and comments to this release!
After a short discussion on this list we decided to change the definitions of isolation levels to make sure old code using numeric constants (both psycopg1 and psycopg2) continue to works. Other small fixes are included in the release: see below for details.
Mostly a bugfix release, with as usual a couple of small feature added:
Psycopg 2.4.2 has been released: it brings a few small but interesting new features, and a lot of bug fixes.
Daniele stacked another round of fixes on the devel branch, so it is time for another release. So, as always, kudos to Daniele and here are the direct download links:
Release notes attached, as always. And al always, have fun,
this is probably one of the best psycopg releases ever. Daniele, Jason and all the others that sent patches did an impressive work to have psycopg build and work flawlessy on all the supported platforms (well.. we can probably do a little bit better on MacOS but everything else is almost perfect). So here it is (followed by NEWS excerpt, as always):
me and Daniele, we just went through his series of patches (a loooot of patches) and we're ready to release a beta version of the new psycopg. Apart the usual changes and enhancements (detailed below) this is the first version that supports Python 3 (thanks to, guess who? :)
I've mostly finished the porting of psycopg2 to Python 3. Here is a report of what done and what can be improved.
After a long while Psycopg has a Mailing List again!
You are welcome to subscribe, either if you are an user dealing with the first stumbling blocks (albeit a look at the documentation or the FAQ wouldn't hurt!) or if you want to contribute to the psycopg2 development, about which there are several upcoming news.
To post, send mail to <email@example.com>. Yes, we are proud to be hosted on the mighty shoulders of the PostgreSQL Infrastructure team. I want to thank them and the PostgreSQL Global Development Group wholeheartedly for making this happen.
See you there!
just released Psycopg 2.3.2. The release fixes a bug reported in 2.3.0 and 2.3.1 preventing Psycopg to connect to pgBouncer. Thanks to Marti Raudsepp for the bug report and the patch.
lately my involvment on psycopg has been quite small (work and other projects are taking their toll) but thanks to Daniele (with some help from Jan) here is a new psycopg2 release. The number of changes is big (an excerpt from the NEWS file is at the end, as always) so we decided to bump up the version to 2.3.0 and to test, and test... and test. We tested this new release on Linux and Windows, with Python 2.4, 2.5, 2.6, 2.7 and on PostgreSQL from 7.4 to 9.0.
Psycopg will be at PGDay Italy in Rome, on December 10th.
We have just released a new testing package: psycopg 2.3.0-beta1!
There are several new features being prepared in the upcoming Psycopg version. The documentation refers to it as release 2.2.3 but it may be ultimately released as 2.3. The main target of the release is to expose some of the new features introduced in PostgreSQL 9.0.
I will be at PgDay Europe 2010 in Stuttgart with a talk about Psycopg: Advanced PostgreSQL Access from Python with Psycopg.
The talk will be about some of the most advanced functionalities and new features available in the latest Psycopg releases: asynchronous communication, notifications, server-side cursors, advanced data mapping between Python and PostgreSQL, the upcoming support for two-phase commit and hstore objects.
If you have any suggestion about what you'd like to be shown in the talk, you may leave a feedback.
See you in Stuttgart!
summer release! Just bugfixes, this time. Get it from:
repeat with me:
for x in xrange(1000): print "Always check it build on windows!"
but thank to Jason Erickson here is 2.2.1 that DO build on windows. :) No excerpt this time, it's a single liner, but here are the URLs:
With many thanks to all the contributors here it is, psycopg 2.2.0:
As always, an excerpt from the NEWS file follows.