NEWS file reformatted to reST and included in the docs

This commit is contained in:
Daniele Varrazzo 2013-03-18 15:42:10 +00:00
parent 93928a7141
commit abb3027aa3
6 changed files with 532 additions and 465 deletions

350
NEWS
View File

@ -1,70 +1,80 @@
What's new in psycopg 2.5
-------------------------
- Added JSON adaptation.
- Added support for PostgreSQL 9.2 range types.
- Added support for Python 3.3.
- 'connection' and 'cursor' objects can be used in 'with' statements
as context managers as specified by recent DBAPI extension.
- Added Diagnostics object to get extended info from a database error.
Many thanks to Matthew Woodcraft for the implementation (ticket #149).
New features:
- Added :ref:`JSON adaptation <adapt-json>`.
- Added :ref:`support for PostgreSQL 9.2 range types <adapt-range>`.
- `connection` and `cursor` objects can be used in ``with`` statements
as context managers as specified by recent |DBAPI|_ extension.
- Added `~psycopg2.extensions.Diagnostics` object to get extended info
from a database error. Many thanks to Matthew Woodcraft for the
implementation (:ticket:`#149`).
- Added support for backward scrollable cursors. Thanks to Jon Nelson
for the initial patch (ticket #108).
- Added a simple way to customize casting of composite types into Python
objects other than namedtuples. Many thanks to Ronan Dunklau and
Tobias Oberstein for the feature development.
- connection.reset() implemented using DISCARD ALL on server versions
supporting it.
- Properly cleanup memory of broken connections (ticket #142).
- Fixed bad interaction of setup.py with other dependencies in
Distribute project on Python 3 (ticket #153).
- 'errorcodes' map updated to PostgreSQL 9.2.
- Dropped Zope adapter from source repository. ZPsycopgDA can now be
found at <http://github.com/psycopg/ZPsycopgDA>.
for the initial patch (:ticket:`#108`).
- Added a simple way to :ref:`customize casting of composite types
<adapt-composite>` into Python objects other than namedtuples.
Many thanks to Ronan Dunklau and Tobias Oberstein for the feature
development.
- `connection.reset()` implemented using :sql:`DISCARD ALL` on server
versions supporting it.
Bug fixes:
- Properly cleanup memory of broken connections (:ticket:`#142`).
- Fixed bad interaction of ``setup.py`` with other dependencies in
Distribute projects on Python 3 (:ticket:`#153`).
Other changes:
- Added support for Python 3.3.
- `~psycopg2.errorcodes` map updated to PostgreSQL 9.2.
- Dropped Zope adapter from source repository. ZPsycopgDA now has its own
project at <http://github.com/psycopg/ZPsycopgDA>.
What's new in psycopg 2.4.6
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed 'cursor()' arguments propagation in connection subclasses
and overriding of the 'cursor_factory' argument. Thanks to
Corry Haines for the report and the initial patch (ticket #105).
Corry Haines for the report and the initial patch (:ticket:`#105`).
- Dropped GIL release during string adaptation around a function call
invoking a Python API function, which could cause interpreter crash.
Thanks to Manu Cupcic for the report (ticket #110).
Thanks to Manu Cupcic for the report (:ticket:`#110`).
- Close a green connection if there is an error in the callback.
Maybe a harsh solution but it leaves the program responsive
(ticket #113).
(:ticket:`#113`).
- 'register_hstore()', 'register_composite()', 'tpc_recover()' work with
RealDictConnection and Cursor (ticket #114).
RealDictConnection and Cursor (:ticket:`#114`).
- Fixed broken pool for Zope and connections re-init across ZSQL methods
in the same request (tickets #123, #125, #142).
- connect() raises an exception instead of swallowing keyword arguments
when a connection string is specified as well (ticket #131).
- Discard any result produced by 'executemany()' (ticket #133).
- Fixed pickling of FixedOffsetTimezone objects (ticket #135).
- Release the GIL around PQgetResult calls after COPY (ticket #140).
- Fixed empty strings handling in composite caster (ticket #141).
when a connection string is specified as well (:ticket:`#131`).
- Discard any result produced by 'executemany()' (:ticket:`#133`).
- Fixed pickling of FixedOffsetTimezone objects (:ticket:`#135`).
- Release the GIL around PQgetResult calls after COPY (:ticket:`#140`).
- Fixed empty strings handling in composite caster (:ticket:`#141`).
- Fixed pickling of DictRow and RealDictRow objects.
What's new in psycopg 2.4.5
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- The close() methods on connections and cursors don't raise exceptions
if called on already closed objects.
- Fixed fetchmany() with no argument in cursor subclasses
(ticket #84).
(:ticket:`#84`).
- Use lo_creat() instead of lo_create() when possible for better
interaction with pgpool-II (ticket #88).
interaction with pgpool-II (:ticket:`#88`).
- Error and its subclasses are picklable, useful for multiprocessing
interaction (ticket #90).
interaction (:ticket:`#90`).
- Better efficiency and formatting of timezone offset objects thanks
to Menno Smits (tickets #94, #95).
- Fixed 'rownumber' during iteration on cursor subclasses.
Regression introduced in 2.4.4 (ticket #100).
Regression introduced in 2.4.4 (:ticket:`#100`).
- Added support for 'inet' arrays.
- Fixed 'commit()' concurrency problem (ticket #103).
- Fixed 'commit()' concurrency problem (:ticket:`#103`).
- Codebase cleaned up using the GCC Python plugin's static analysis
tool, which has revealed several unchecked return values, possible
NULL dereferences, reference counting problems. Many thanks to David
@ -72,48 +82,48 @@ What's new in psycopg 2.4.5
What's new in psycopg 2.4.4
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 'register_composite()' also works with the types implicitly defined
after a table row, not only with the ones created by 'CREATE TYPE'.
- Values for the isolation level symbolic constants restored to what
they were before release 2.4.2 to avoid breaking apps using the
values instead of the constants.
- Named DictCursor/RealDictCursor honour itersize (ticket #80).
- Fixed rollback on error on Zope (ticket #73).
- Named DictCursor/RealDictCursor honour itersize (:ticket:`#80`).
- Fixed rollback on error on Zope (:ticket:`#73`).
- Raise 'DatabaseError' instead of 'Error' with empty libpq errors,
consistently with other disconnection-related errors: regression
introduced in release 2.4.1 (ticket #82).
introduced in release 2.4.1 (:ticket:`#82`).
What's new in psycopg 2.4.3
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- connect() supports all the keyword arguments supported by the
database
- Added 'new_array_type()' function for easy creation of array
typecasters.
- Added support for arrays of hstores and composite types (ticket #66).
- Added support for arrays of hstores and composite types (:ticket:`#66`).
- Fixed segfault in case of transaction started with connection lost
(and possibly other events).
- Fixed adaptation of Decimal type in sub-interpreters, such as in
certain mod_wsgi configurations (ticket #52).
certain mod_wsgi configurations (:ticket:`#52`).
- Rollback connections in transaction or in error before putting them
back into a pool. Also discard broken connections (ticket #62).
back into a pool. Also discard broken connections (:ticket:`#62`).
- Lazy import of the slow uuid module, thanks to Marko Kreen.
- Fixed NamedTupleCursor.executemany() (ticket #65).
- Fixed --static-libpq setup option (ticket #64).
- Fixed NamedTupleCursor.executemany() (:ticket:`#65`).
- Fixed --static-libpq setup option (:ticket:`#64`).
- Fixed interaction between RealDictCursor and named cursors
(ticket #67).
- Dropped limit on the columns length in COPY operations (ticket #68).
(:ticket:`#67`).
- Dropped limit on the columns length in COPY operations (:ticket:`#68`).
- Fixed reference leak with arguments referenced more than once
in queries (ticket #81).
in queries (:ticket:`#81`).
- Fixed typecasting of arrays containing consecutive backslashes.
- 'errorcodes' map updated to PostgreSQL 9.1.
What's new in psycopg 2.4.2
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Added 'set_session()' method and 'autocommit' property to the
connection. Added support for read-only sessions and, for PostgreSQL
@ -122,13 +132,13 @@ What's new in psycopg 2.4.2
- Psycopg doesn't execute queries at connection time to find the
default isolation level.
- Fixed bug with multithread code potentially causing loss of sync
with the server communication or lock of the client (ticket #55).
with the server communication or lock of the client (:ticket:`#55`).
- Don't fail import if mx.DateTime module can't be found, even if its
support was built (ticket #53).
support was built (:ticket:`#53`).
- Fixed escape for negative numbers prefixed by minus operator
(ticket #57).
(:ticket:`#57`).
- Fixed refcount issue during copy. Reported and fixed by Dave
Malcolm (ticket #58, Red Hat Bug 711095).
Malcolm (:ticket:`#58`, Red Hat Bug 711095).
- Trying to execute concurrent operations on the same connection
through concurrent green thread results in an error instead of a
deadlock.
@ -137,24 +147,24 @@ What's new in psycopg 2.4.2
What's new in psycopg 2.4.1
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Use own parser for bytea output, not requiring anymore the libpq 9.0
to parse the hex format.
- Don't fail connection if the client encoding is a non-normalized
variant. Issue reported by Peter Eisentraut.
- Correctly detect an empty query sent to the backend (ticket #46).
- Correctly detect an empty query sent to the backend (:ticket:`#46`).
- Fixed a SystemError clobbering libpq errors raised without SQLSTATE.
Bug vivisectioned by Eric Snow.
- Fixed interaction between NamedTuple and server-side cursors.
- Allow to specify --static-libpq on setup.py command line instead of
just in 'setup.cfg'. Patch provided by Matthew Ryan (ticket #48).
just in 'setup.cfg'. Patch provided by Matthew Ryan (:ticket:`#48`).
What's new in psycopg 2.4
-------------------------
* New features and changes:
New features and changes:
- Added support for Python 3.1 and 3.2. The conversion has also
brought several improvements:
@ -195,38 +205,38 @@ What's new in psycopg 2.4
found.
- Connections and cursors are weakly referenceable.
* Bug fixes:
Bug fixes:
- Fixed adaptation of None in composite types (ticket #26). Bug
- Fixed adaptation of None in composite types (:ticket:`#26`). Bug
report by Karsten Hilbert.
- Fixed several reference leaks in less common code paths.
- Fixed segfault when a large object is closed and its connection no
more available.
- Added missing icon to ZPsycopgDA package, not available in Zope
2.12.9 (ticket #30). Bug report and patch by Pumukel.
- Fixed conversion of negative infinity (ticket #40). Bug report and
2.12.9 (:ticket:`#30`). Bug report and patch by Pumukel.
- Fixed conversion of negative infinity (:ticket:`#40`). Bug report and
patch by Marti Raudsepp.
What's new in psycopg 2.3.2
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed segfault with middleware not passing DateStyle to the client
(ticket #24). Bug report and patch by Marti Raudsepp.
(:ticket:`#24`). Bug report and patch by Marti Raudsepp.
What's new in psycopg 2.3.1
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Fixed build problem on CentOS 5.5 x86_64 (ticket #23).
- Fixed build problem on CentOS 5.5 x86_64 (:ticket:`#23`).
What's new in psycopg 2.3.0
---------------------------
What's new in psycopg 2.3
-------------------------
psycopg 2.3 aims to expose some new features introduced in PostgreSQL 9.0.
* Main new features:
Main new features:
- `dict` to `hstore` adapter and `hstore` to `dict` typecaster, using both
9.0 and pre-9.0 syntax.
@ -235,7 +245,7 @@ psycopg 2.3 aims to expose some new features introduced in PostgreSQL 9.0.
- `namedtuple`-returning cursor.
- Query execution cancel.
* Other features and changes:
Other features and changes:
- Dropped support for protocol 2: Psycopg 2.3 can only connect to PostgreSQL
servers with version at least 7.4.
@ -250,19 +260,19 @@ psycopg 2.3 aims to expose some new features introduced in PostgreSQL 9.0.
in release 2.2, but trying to send a command while being destroyed has been
considered not safe.
* Bug fixes:
Bug fixes:
- Fixed use of `PQfreemem` instead of `free` in binary typecaster.
- Fixed access to freed memory in `conn_get_isolation_level()`.
- Fixed crash during Decimal adaptation with a few 2.5.x Python versions
(ticket #7).
- Fixed notices order (ticket #9).
(:ticket:`#7`).
- Fixed notices order (:ticket:`#9`).
What's new in psycopg 2.2.2
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Bux fixes:
Bux fixes:
- the call to logging.basicConfig() in pool.py has been dropped: it was
messing with some projects using logging (and a library should not
@ -275,15 +285,15 @@ What's new in psycopg 2.2.2
What's new in psycopg 2.2.1
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Bux fixes:
Bux fixes:
- psycopg now builds again on MS Windows.
What's new in psycopg 2.2.0
---------------------------
What's new in psycopg 2.2
-------------------------
This is the first release of the new 2.2 series, supporting not just one but
two different ways of executing asynchronous queries, thanks to Jan and Daniele
@ -294,7 +304,7 @@ psycopg now supports both classic select() loops and "green" coroutine
libraries. It is all in the documentation, so just point your browser to
doc/html/advanced.html.
* Other new features:
Other new features:
- truncate() method for lobjects.
- COPY functions are now a little bit faster.
@ -306,7 +316,7 @@ doc/html/advanced.html.
- Better timezone support.
- Lots of documentation updates.
* Bug fixes:
Bug fixes:
- Fixed some gc/refcounting problems.
- Fixed reference leak in NOTIFY reception.
@ -319,49 +329,55 @@ doc/html/advanced.html.
What's new in psycopg 2.0.14
----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
New features:
* 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:
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
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:
* New features:
- Support for UUID arrays.
- It is now possible to build psycopg linking to a static libpq
library.
* Bug fixes:
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:
* New features:
- The connection object now has a reset() method that can be used to
reset the connection to its default state.
* Bug fixes:
Bug fixes:
- copy_to() and copy_from() now accept a much larger number of columns.
- Fixed PostgreSQL version detection.
- Fixed ZPsycopgDA version check.
@ -372,23 +388,26 @@ What's new in psycopg 2.0.12
What's new in psycopg 2.0.11
----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
New features:
* 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:
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:
* 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
@ -401,7 +420,8 @@ What's new in psycopg 2.0.10
- The connection object has a .get_parameter_status() methods that
can be used to obtain useful information from the server.
* Bug fixes:
Bug fixes:
- None is now correctly always adapted to NULL.
- Two double memory free errors provoked by multithreading and
garbage collection are now fixed.
@ -415,22 +435,25 @@ What's new in psycopg 2.0.10
What's new in psycopg 2.0.9
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
New features:
* 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:
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:
* 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
@ -443,30 +466,35 @@ What's new in psycopg 2.0.9
- copy_from() and copy_to() can now use quoted separators.
- "import psycopg2.extras" to get UUID support.
* Bug fixes:
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:
* 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:
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:
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.
@ -480,14 +508,16 @@ What's new in psycopg 2.0.7
raised at that point rather than resulting in "ProgrammingError:
no results to fetch" later on. (#186)
* Better PostgreSQL compatibility:
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:
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
@ -495,7 +525,8 @@ What's new in psycopg 2.0.7
- A few small changes were made to improve DB-API compatibility.
All the dbapi20 tests now pass.
* Miscellaneous:
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,
@ -508,10 +539,12 @@ What's new in psycopg 2.0.7
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:
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
@ -519,19 +552,20 @@ What's new in psycopg 2.0.6
- 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
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.
Better management of times and dates both from Python and in Zope.
* copy_to and copy_from now take an extra "columns" parameter.
copy_to and copy_from now take an extra "columns" parameter.
* Python tuples are now adapted to SQL sequences that can be used with
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:
Fixed some small buglets and build glitches:
- removed double mutex destroy
- removed all non-constant initializers
- fixed PyObject_HEAD declarations to avoid memory corruption
@ -541,15 +575,17 @@ What's new in psycopg 2.0.6
- 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()
@ -560,17 +596,17 @@ What's new in psycopg 2.0.5
* 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.
@ -581,7 +617,7 @@ What's new in psycopg 2.0.2
version is issued only if __GCC__ is defined.)
What's new in psycopg 2.0.1
---------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^
* ZPsycopgDA now actually loads.
@ -597,7 +633,7 @@ What's new in psycopg 2.0
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.)
@ -616,7 +652,7 @@ What's new in psycopg 2.0 beta 7
* 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).
@ -629,7 +665,7 @@ What's new in psycopg 2.0 beta 6
* 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.
@ -651,7 +687,7 @@ What's new in psycopg 2.0 beta 5
* 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.
@ -667,14 +703,14 @@ What's new in psycopg 2.0 beta 4
* 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.)
@ -687,7 +723,7 @@ What's new in psycopg 2.0 beta 2
* 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.)
@ -716,7 +752,7 @@ What's new in psycopg 2.0 beta 1
* A lot of bugfixes (binary, datetime, 64 bit arches, GIL, .executemany())
What's new in psycopg 1.99.13
-----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Added missing .executemany() method.
@ -724,7 +760,7 @@ What's new in psycopg 1.99.13
faster than before.)
What's new in psycopg 1.99.12
-----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* .rowcount should be ok and in sync with psycopg 1.
@ -737,7 +773,7 @@ What's new in psycopg 1.99.12
* 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'.
@ -750,7 +786,7 @@ What's new in psycopg 1.99.11
* 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
@ -763,7 +799,7 @@ What's new in psycopg 1.99.10
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.
@ -778,11 +814,10 @@ What's new in psycopg 1.99.9
* 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:
* added UNICODE typecaster; to activate it just do::
psycopg.extensions.register_type(psycopg.extensions.UNICODE)
@ -790,57 +825,43 @@ What's new in psycopg 1.99.8
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
@ -848,36 +869,33 @@ What's new in psycopg 1.99.6
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
@ -885,7 +903,7 @@ What's new in psycopg 1.99.2
- 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;
@ -895,7 +913,7 @@ What's new in psycopg 1.99.1
What's new in psycopg 1.99.0
----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* reorganized the whole source tree;

View File

@ -26,7 +26,7 @@ extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.ifconfig',
'sphinx.ext.doctest', 'sphinx.ext.intersphinx' ]
# Specific extensions for Psycopg documentation.
extensions += [ 'dbapi_extension', 'sql_role' ]
extensions += [ 'dbapi_extension', 'sql_role', 'ticket_role' ]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
@ -65,6 +65,9 @@ intersphinx_mapping = {
'py3': ('http://docs.python.org/3.2', None),
}
# Pattern to generate links to the bug tracker
ticket_url = 'http://psycopg.lighthouseapp.com/projects/62710/tickets/%s'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None

View File

@ -373,6 +373,8 @@ requires no adapter registration.
List of component type oids of the type to be casted.
.. _adapt-range:
.. index::
pair: range; Data types

View File

@ -54,6 +54,7 @@ Psycopg 2 is both Unicode and Python 3 friendly.
extras
errorcodes
faq
news
.. ifconfig:: builder != 'text'

4
doc/src/news.rst Normal file
View File

@ -0,0 +1,4 @@
Release notes
=============
.. include:: ../../NEWS

View File

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
"""
ticket role
~~~~~~~~~~~
An interpreted text role to link docs to lighthouse issues.
:copyright: Copyright 2013 by Daniele Varrazzo.
"""
from docutils import nodes, utils
from docutils.parsers.rst import roles
def ticket_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
try:
num = int(text.replace('#', ''))
except ValueError:
msg = inliner.reporter.error(
"ticket number must be... a number, got '%s'" % text)
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
url_pattern = inliner.document.settings.env.app.config.ticket_url
if url_pattern is None:
msg = inliner.reporter.warning(
"ticket not configured: please configure ticket_url in conf.py")
prb = inliner.problematic(rawtext, rawtext, msg)
return [prb], [msg]
url = url_pattern % num
roles.set_classes(options)
node = nodes.reference(rawtext, 'ticket ' + utils.unescape(text),
refuri=url, **options)
return [node], []
def setup(app):
app.add_config_value('ticket_url', None, 'env')
app.add_role('ticket', ticket_role)