Changes since 4.0:
- Dropped support for Python below 2.5 and PostgreSQL below 8.3.
- Added support for Python up to 2.7 and PostgreSQL up to 9.2.
- Particularly, support PQescapeLiteral() and PQescapeIdentifier().
- The query method of the classic API now supports positional parameters.
This an effective way to pass arbitrary or unknown data without worrying
about SQL injection or syntax errors (contribution by Patrick TJ McPhee).
- The classic API now supports a method namedresult() in addition to
getresult() and dictresult(), which returns the rows of the result
as named tuples if these are supported (Python 2.6 or higher).
- The classic API has got the new methods begin(), commit(), rollback(),
savepoint() and release() for handling transactions.
- Both classic and DBAPI 2 connections can now be used as context
managers for encapsulating transactions.
- The execute() and executemany() methods now return the cursor object,
so you can now write statements like "for row in cursor.execute(...)"
(as suggested by Adam Frederick).
- Binary objects are now automatically escaped and unescaped.
- Bug in money quoting fixed. Amounts of $0.00 handled correctly.
- Proper handling of date and time objects as input.
- Proper handling of floats with 'nan' or 'inf' values as input.
- Fixed the set_decimal() function.
- All DatabaseError instances now have a sqlstate attribute.
- The getnotify() method can now also return payload strings (#15).
- Better support for notice processing with the new methods
set_notice_receiver() and get_notice_receiver()
(as suggested by Michael Filonenko, see #12 and #37).
- Open transactions are rolled back when pgdb connections are closed
(as suggested by Peter Harris, see #46).
- Connections and cursors can now be used with the "with" statement
(as suggested by Peter Harris, see #46).
- New method use_regtypes() that can be called to let getattnames()
return regular type names instead of the simplified classic types (#44).
Mostly bug fixes from 3.8.
- Use string methods instead of deprecated string functions.
- Only use SQL-standard way of escaping quotes.
- Added the functions escape_string() and escape/unescape_bytea()
(as suggested by Charlie Dyson and Kavous Bojnourdi a long time ago).
- Reverted code in clear() method that set date to current.
- Added code for backwards compatibility in OID munging code.
- Reorder attnames tests so that "interval" is checked for before "int."
- If caller supplies key dictionary, make sure that all has a namespace.
<explorer@flame.org> for most of the work on this update.
Pkgsrc changes from the previous version include removing Makefile.ssl and
some patches that have been integrated into this release of PostgreSQL. We
leave open the question of when to byte-compile the Python modules for the
PyGreSQL interface and just do it as before, although we should consider
doing the compilation as a post-install step to ensure that the timestamps
are correct. We also reorder some lines in the Makefile to include
Makefile.common below certain definitions (GNU_CONFIGURE, USE_BUILDLINK_ONLY)
as they may possibly trigger different portions of Makefile.common.
*** Please note that a dump/restore is required to migrate an existing ***
*** PostgreSQL installation to 7.2. ***
Major changes from version 7.1.3 are geared toward improving use in
high-volume applications and include:
VACUUM
Vacuuming no longer locks tables, thus allowing normal user access
during the vacuum. A new "VACUUM FULL" command does old-style
vacuum by locking the table and shrinking the on-disk copy of the
table.
Transactions
There is no longer a problem with installations that exceed four
billion transactions.
OID's
OID's are now optional. Users can now create tables without OID's
for cases where OID usage is excessive.
Optimizer
The system now computes histogram column statistics during
"ANALYZE", allowing much better optimizer choices.
Security
A new MD5 encryption option allows more secure storage and
transfer of passwords. A new Unix-domain socket authentication
option is available on Linux and BSD systems. PAM authentication
is also available.
Statistics
Administrators can use the new table access statistics module to
get fine-grained information about table and index usage.