diff options
Diffstat (limited to 'NEWS-2.0')
| -rw-r--r-- | NEWS-2.0 | 586 |
1 files changed, 586 insertions, 0 deletions
diff --git a/NEWS-2.0 b/NEWS-2.0 new file mode 100644 index 0000000..6f32ee7 --- /dev/null +++ b/NEWS-2.0 @@ -0,0 +1,586 @@ +What's new in psycopg 2.0.14 +---------------------------- + +* New features: + - Support for adapting tuples to PostgreSQL arrays is now enabled by + default and does not require importing psycopg2.extensions anymore. + - "can't adapt" error message now includes full type information. + - Thank to Daniele Varrazzo (piro) psycopg2's source package now includes + full documentation in HTML and plain text format. + +* Bug fixes: + - No loss of precision when using floats anymore. + - decimal.Decimal "nan" and "infinity" correctly converted to PostgreSQL + numeric NaN values (note that PostgreSQL numeric type does not support + infinity but just NaNs.) + - psycopg2.extensions now includes Binary. + +* It seems we're good citizens of the free software ecosystem and that big + big big companies and people ranting on the pgsql-hackers mailing list + we'll now not dislike us. *g* (See LICENSE file for the details.) + + +What's new in psycopg 2.0.13 +---------------------------- + +* New features: + - Support for UUID arrays. + - It is now possible to build psycopg linking to a static libpq + library. + +* Bug fixes: + - Fixed a deadlock related to using the same connection with + multiple cursors from different threads. + - Builds again with MSVC. + + +What's new in psycopg 2.0.12 +---------------------------- + +* New features: + - The connection object now has a reset() method that can be used to + reset the connection to its default state. + +* Bug fixes: + - copy_to() and copy_from() now accept a much larger number of columns. + - Fixed PostgreSQL version detection. + - Fixed ZPsycopgDA version check. + - Fixed regression in ZPsycopgDA that made it behave wrongly when + receiving serialization errors: now the query is re-issued as it + should be by propagating the correct exception to Zope. + - Writing "large" large objects should now work. + + +What's new in psycopg 2.0.11 +---------------------------- + +* New features: + - DictRow and RealDictRow now use less memory. If you inherit on them + remember to set __slots__ for your new attributes or be prepare to + go back to old memory usage. + +* Bug fixes: + - Fixed exeception in setup.py. + - More robust detection of PostgreSQL development versions. + - Fixed exception in RealDictCursor, introduced in 2.0.10. + + +What's new in psycopg 2.0.10 +---------------------------- + +* New features: + - A specialized type-caster that can parse time zones with seconds is + now available. Note that after enabling it (see extras.py) "wrong" + time zones will be parsed without raising an exception but the + result will be rounded. + - DictCursor can be used as a named cursor. + - DictRow now implements more dict methods. + - The connection object now expose PostgreSQL server version as the + .server_version attribute and the protocol version used as + .protocol_version. + - The connection object has a .get_parameter_status() methods that + can be used to obtain useful information from the server. + +* Bug fixes: + - None is now correctly always adapted to NULL. + - Two double memory free errors provoked by multithreading and + garbage collection are now fixed. + - Fixed usage of internal Python code in the notice processor; this + should fix segfaults when receiving a lot of notices in + multithreaded programs. + - Should build again on MSVC and Solaris. + - Should build with development versions of PostgreSQL (ones with + -devel version string.) + - Fixed some tests that failed even when psycopg was right. + + +What's new in psycopg 2.0.9 +--------------------------- + +* New features: + - "import psycopg2.extras" to get some support for handling times + and timestamps with seconds in the time zone offset. + - DictCursors can now be used as named cursors. + +* Bug fixes: + - register_type() now accept an explicit None as its second parameter. + - psycopg2 should build again on MSVC and Solaris. + + +What's new in psycopg 2.0.9 +--------------------------- + +* New features: + - COPY TO/COPY FROM queries now can be of any size and psycopg will + correctly quote separators. + - float values Inf and NaN are now correctly handled and can + round-trip to the database. + - executemany() now return the numer of total INSERTed or UPDATEd + rows. Note that, as it has always been, executemany() should not + be used to execute multiple SELECT statements and while it will + execute the statements without any problem, it will return the + wrong value. + - copy_from() and copy_to() can now use quoted separators. + - "import psycopg2.extras" to get UUID support. + +* Bug fixes: + - register_type() now works on connection and cursor subclasses. + - fixed a memory leak when using lobjects. + + +What's new in psycopg 2.0.8 +--------------------------- + +* New features: + - The connection object now has a get_backend_pid() method that + returns the current PostgreSQL connection backend process PID. + - The PostgreSQL large object API has been exposed through the + Cursor.lobject() method. + +* Bug fixes: + - Some fixes to ZPsycopgDA have been merged from the Debian package. + - A memory leak was fixed in Cursor.executemany(). + - A double free was fixed in pq_complete_error(), that caused crashes + under some error conditions. + +What's new in psycopg 2.0.7 +--------------------------- + +* Improved error handling: + - All instances of psycopg2.Error subclasses now have pgerror, + pgcode and cursor attributes. They will be set to None if no + value is available. + - Exception classes are now chosen based on the SQLSTATE value from + the result. (#184) + - The commit() and rollback() methods now set the pgerror and pgcode + attributes on exceptions. (#152) + - errors from commit() and rollback() are no longer considered + fatal. (#194) + - If a disconnect is detected during execute(), an exception will be + raised at that point rather than resulting in "ProgrammingError: + no results to fetch" later on. (#186) + +* Better PostgreSQL compatibility: + - If the server uses standard_conforming_strings, perform + appropriate quoting. + - BC dates are now handled if psycopg is compiled with mxDateTime + support. If using datetime, an appropriate ValueError is + raised. (#203) + +* Other bug fixes: + - If multiple sub-interpreters are in use, do not share the Decimal + type between them. (#192) + - Buffer objects obtained from psycopg are now accepted by psycopg + too, without segfaulting. (#209) + - A few small changes were made to improve DB-API compatibility. + All the dbapi20 tests now pass. + +* Miscellaneous: + - The PSYCOPG_DISPLAY_SIZE option is now off by default. This means + that display size will always be set to "None" in + cursor.description. Calculating the display size was expensive, + and infrequently used so this should improve performance. + - New QueryCanceledError and TransactionRollbackError exceptions + have been added to the psycopg2.extensions module. They can be + used to detect statement timeouts and deadlocks respectively. + - Cursor objects now have a "closed" attribute. (#164) + - If psycopg has been built with debug support, it is now necessary + to set the PSYCOPG_DEBUG environment variable to turn on debug + spew. + +What's new in psycopg 2.0.6 +--------------------------- + +* Better support for PostgreSQL, Python and win32: + - full support for PostgreSQL 8.2, including NULLs in arrays + - support for almost all existing PostgreSQL encodings + - full list of PostgreSQL error codes available by importing the + psycopg2.errorcodes module + - full support for Python 2.5 and 64 bit architectures + - better build support on win32 platform + +* Support for per-connection type-casters (used by ZPsycopgDA too, this + fixes a long standing bug that made different connections use a random + set of date/time type-casters instead of the configured one.) + +* Better management of times and dates both from Python and in Zope. + +* copy_to and copy_from now take an extra "columns" parameter. + +* Python tuples are now adapted to SQL sequences that can be used with + the "IN" operator by default if the psycopg2.extensions module is + imported (i.e., the SQL_IN adapter was moved from extras to extensions.) + +* Fixed some small buglets and build glitches: + - removed double mutex destroy + - removed all non-constant initializers + - fixed PyObject_HEAD declarations to avoid memory corruption + on 64 bit architectures + - fixed several Python API calls to work on 64 bit architectures + - applied compatibility macros from PEP 353 + - now using more than one argument format raise an error instead of + a segfault + +What's new in psycopg 2.0.5.1 +---------------------------- + +* Now it really, really builds on MSVC and older gcc versions. + +What's new in psycopg 2.0.5 +-------------------------- + +* Fixed various buglets such as: + - segfault when passing an empty string to Binary() + - segfault on null queries + - segfault and bad keyword naming in .executemany() + - OperationalError in connection objects was always None + +* Various changes to ZPsycopgDA to make it more zope2.9-ish. + +* connect() now accept both integers and strings as port parameter + +What's new in psycopg 2.0.4 +--------------------------- + +* Fixed float conversion bug introduced in 2.0.3. + +What's new in psycopg 2.0.3 +--------------------------- + +* Fixed various buglets and a memory leak (see ChangeLog for details) + +What's new in psycopg 2.0.2 +--------------------------- + +* Fixed a bug in array typecasting that sometimes made psycopg forget about + the last element in the array. + +* Fixed some minor buglets in string memory allocations. + +* Builds again with compilers different from gcc (#warning about PostgreSQL + version is issued only if __GCC__ is defined.) + +What's new in psycopg 2.0.1 +--------------------------- + +* ZPsycopgDA now actually loads. + +What's new in psycopg 2.0 +------------------------- + +* Fixed handle leak on win32. + +* If available the new "safe" encoding functions of libpq are used. + +* django and tinyerp people, please switch to psycopg 2 _without_ + using a psycopg 1 compatibility layer (this release was anticipated + so that you all stop grumbling about psycopg 2 is still in beta.. :) + +What's new in psycopg 2.0 beta 7 +-------------------------------- + +* Ironed out last problems with times and date (should be quite solid now.) + +* Fixed problems with some arrays. + +* Slightly better ZPsycopgDA (no more double connection objects in the menu + and other minor fixes.) + +* ProgrammingError exceptions now have three extra attributes: .cursor + (it is possible to access the query that caused the exception using + error.cursor.query), .pgerror and .pgcode (PostgreSQL original error + text and code.) + +* The build system uses pg_config when available. + +* Documentation in the doc/ directory! (With many kudos to piro.) + +What's new in psycopg 2.0 beta 6 +-------------------------------- + +* Support for named cursors (see examples/fetch.py). + +* Safer parsing of time intervals. + +* Better parsing of times and dates, no more locale problems. + +* Should now play well with py2exe and similar tools. + +* The "decimal" module is now used if available under Python 2.3. + +What's new in psycopg 2.0 beta 5 +-------------------------------- + +* Fixed all known bugs. + +* The initial isolation level is now read from the server and + .set_isolation_level() now takes values defined in psycopg2.extensions. + +* .callproc() implemented as a SELECT of the given procedure. + +* Better docstrings for a few functions/methods. + +* Some time-related functions like psycopg2.TimeFromTicks() now take the + local timezone into account. Also a tzinfo object (as per datetime module + specifications) can be passed to the psycopg2.Time and psycopg2.Datetime + constructors. + +* All classes have been renamed to exist in the psycopg2._psycopg module, + to fix problems with automatic documentation generators like epydoc. + +* NOTIFY is correctly trapped (see examples/notify.py for example code.) + +What's new in psycopg 2.0 beta 4 +-------------------------------- + +* psycopg module is now named psycopg2. + +* No more segfaults when a UNICODE query can't be converted to the + backend encoding. + +* No more segfaults on empty queries. + +* psycopg2.connect() now takes an integer for the port keyword parameter. + +* "python setup.py bdist_rpm" now works. + +* Fixed lots of small bugs, see ChangeLog for details. + +What's new in psycopg 2.0 beta 3 +-------------------------------- + +* ZPsycopgDA now works (except table browsing.) + +* psycopg build again on Python 2.2. + +What's new in psycopg 2.0 beta 2 +-------------------------------- + +* Fixed ZPsycopgDA version check (ZPsycopgDA can now be imported in + Zope.) + +* psycopg.extras.DictRow works even after a new query on the generating + cursor. + +* Better setup.py for win32 (should build with MSCV or mingw.) + +* Generic fixed and memory leaks plugs. + +What's new in psycopg 2.0 beta 1 +-------------------------------- + +* Officially in beta (i.e., no new features will be added.) + +* Array support: list objects can be passed as bound variables and are + correctly returned for array columns. + +* Added the psycopg.psycopg1 compatibility module (if you want instant + psycopg 1 compatibility just "from psycopg import psycopg1 as psycopg".) + +* Complete support for BYTEA columns and buffer objects. + +* Added error codes to error messages. + +* The AsIs adapter is now exported by default (also Decimal objects are + adapted using the AsIs adapter (when str() is called on them they + already format themselves using the right precision and scale.) + +* The connect() function now takes "connection_factory" instead of + "factory" as keyword argument. + +* New setup.py code to build on win32 using mingw and better error + messages on missing datetime headers, + +* Internal changes that allow much better user-defined type casters. + +* A lot of bugfixes (binary, datetime, 64 bit arches, GIL, .executemany()) + +What's new in psycopg 1.99.13 +----------------------------- + +* Added missing .executemany() method. + +* Optimized type cast from PostgreSQL to Python (psycopg should be even + faster than before.) + +What's new in psycopg 1.99.12 +----------------------------- + +* .rowcount should be ok and in sync with psycopg 1. + +* Implemented the new COPY FROM/COPY TO code when connection to the + backend using libpq protocol 3 (this also removes all asprintf calls: + build on win32 works again.) A protocol 3-enabled psycopg *can* + connect to an old protocol 2 database and will detect it and use the + right code. + +* getquoted() called for real by the mogrification code. + +What's new in psycopg 1.99.11 +----------------------------- + +* 'cursor' argument in .cursor() connection method renamed to + 'cursor_factory'. + +* changed 'tuple_factory' cursor attribute name to 'row_factory'. + +* the .cursor attribute is gone and connections and cursors are propely + gc-managed. + +* fixes to the async core. + +What's new in psycopg 1.99.10 +----------------------------- + +* The adapt() function now fully supports the adaptation protocol + described in PEP 246. Note that the adapters registry now is indexed + by (type, protocol) and not by type alone. Change your adapters + accordingly. + +* More configuration options moved from setup.py to setup.cfg. + +* Fixed two memory leaks: one in cursor deallocation and one in row + fetching (.fetchXXX() methods.) + +What's new in psycopg 1.99.9 +---------------------------- + +* Added simple pooling code (psycopg.pool module); see the reworked + examples/threads.py for example code. + +* Added DECIMAL typecaster to convert postgresql DECIMAL and NUMERIC + types (i.e, all types with an OID of NUMERICOID.) Note that the + DECIMAL typecaster does not set scale and precision on the created + objects but uses Python defaults. + +* ZPsycopgDA back in and working using the new pooling code. + +* Isn't that enough? :) + +What's new in psycopg 1.99.8 +---------------------------- + +* added support for UNICODE queries. + +* added UNICODE typecaster; to activate it just do: + + psycopg.extensions.register_type(psycopg.extensions.UNICODE) + + Note that the UNICODE typecaster override the STRING one, so it is + not activated by default. + +* cursors now really support the iterator protocol. + +* solved the rounding errors in time conversions. + +* now cursors support .fileno() and .isready() methods, to be used in + select() calls. + +* .copy_from() and .copy_in() methods are back in (still using the old + protocol, will be updated to use new one in next releasae.) + +* fixed memory corruption bug reported on win32 platform. + +What's new in psycopg 1.99.7 +---------------------------- + +* added support for tuple factories in cursor objects (removed factory + argument in favor of a .tuple_factory attribute on the cursor object); + see the new module psycopg.extras for a cursor (DictCursor) that + return rows as objects that support indexing both by position and + column name. + +* added support for tzinfo objects in datetime.timestamp objects: the + PostgreSQL type "timestamp with time zone" is converted to + datetime.timestamp with a FixedOffsetTimezone initialized as necessary. + +What's new in psycopg 1.99.6 +---------------------------- + +* sslmode parameter from 1.1.x + +* various datetime conversion improvements. + +* now psycopg should compile without mx or without native datetime + (not both, obviously.) + +* included various win32/MSVC fixes (pthread.h changes, winsock2 + library, include path in setup.py, etc.) + +* ported interval fixes from 1.1.14/1.1.15. + +* the last query executed by a cursor is now available in the + .query attribute. + +* conversion of unicode strings to backend encoding now uses a table + (that still need to be filled.) + +* cursors now have a .mogrify() method that return the query string + instead of executing it. + +* connection objects now have a .dsn read-only attribute that holds the + connection string. + +* moved psycopg C module to _psycopg and made psycopg a python module: + this allows for a neat separation of DBAPI-2.0 functionality and psycopg + extensions; the psycopg namespace will be also used to provide + python-only extensions (like the pooling code, some ZPsycopgDA support + functions and the like.) + +What's new in psycopg 1.99.3 +---------------------------- + +* added support for python 2.3 datetime types (both ways) and made datetime + the default set of typecasters when available. + +* added example: dt.py. + +What's new in psycopg 1.99.3 +---------------------------- + +* initial working support for unicode bound variables: UTF-8 and latin-1 + backend encodings are natively supported (and the encoding.py example even + works!) + +* added .set_client_encoding() method on the connection object. + +* added examples: encoding.py, binary.py, lastrowid.py. + +What's new in psycopg 1.99.2 +---------------------------- + +* better typecasting: + - DateTimeDelta used for postgresql TIME (merge from 1.1) + - BYTEA now is converted to a real buffer object, not to a string + +* buffer objects are now adapted into Binary objects automatically. + +* ported scroll method from 1.1 (DBAPI-2.0 extension for cursors) + +* initial support for some DBAPI-2.0 extensions: + - .rownumber attribute for cursors + - .connection attribute for cursors + - .next() and .__iter__() methods to have cursors support the iterator + protocol + - all exception objects are exported to the connection object + +What's new in psycopg 1.99.1 +---------------------------- + +* implemented microprotocols to adapt arbitrary types to the interface used by + psycopg to bind variables in execute; + +* moved qstring, pboolean and mxdatetime to the new adapter layout (binary is + still missing; python 2.3 datetime needs to be written). + + +What's new in psycopg 1.99.0 +---------------------------- + +* reorganized the whole source tree; + +* async core is in place; + +* splitted QuotedString objects from mx stuff; + +* dropped autotools and moved to pythonic setup.py (needs work.) |
