summaryrefslogtreecommitdiff
path: root/NEWS-2.0
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS-2.0')
-rw-r--r--NEWS-2.0586
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.)