mirror of
https://github.com/psycopg/psycopg2.git
synced 2024-11-25 10:23:43 +03:00
NEWS file reformatted to reST and included in the docs
This commit is contained in:
parent
93928a7141
commit
abb3027aa3
350
NEWS
350
NEWS
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
4
doc/src/news.rst
Normal file
|
@ -0,0 +1,4 @@
|
|||
Release notes
|
||||
=============
|
||||
|
||||
.. include:: ../../NEWS
|
39
doc/src/tools/lib/ticket_role.py
Normal file
39
doc/src/tools/lib/ticket_role.py
Normal 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)
|
||||
|
Loading…
Reference in New Issue
Block a user